fix: resolve MCTP build errors for AST1060-EVB target

Patch openprot-hal-blocking to a valid revision after its Cargo.toml was
removed upstream, add missing explicit crate dependencies for Bazel
target generation, rename mctp_stack to mctp_lib to match the canonical
crate name, and increase the vector table size to fit kernel annotations
for the 3-app system image.

diff --git a/BUILD.md b/BUILD.md
new file mode 100644
index 0000000..260a15e
--- /dev/null
+++ b/BUILD.md
@@ -0,0 +1,166 @@
+# Build Fixes for `//target/ast1060-evb/mctp:mctp`
+
+This document explains the changes required to fix the Bazel build:
+
+```
+bazel build --config=k_ast1060_evb //target/ast1060-evb/mctp:mctp
+```
+
+---
+
+## 1. Patch `openprot-hal-blocking` to a valid remote revision
+
+**File:** `third_party/crates_io/crates_no_std/Cargo.toml`
+
+**Problem:**
+The `aspeed-ddk` crate (fetched from the `i2c-core` branch of `OpenPRoT/aspeed-rust`)
+depends on `openprot-hal-blocking` from `https://github.com/OpenPRoT/openprot`.
+However, commit `7da9c93` on that repo removed all `Cargo.toml` files — including
+`hal/blocking/Cargo.toml` — so Cargo can no longer find the crate at HEAD.
+
+This caused the error:
+```
+error: no matching package named `openprot-hal-blocking` found
+location searched: Git repository https://github.com/OpenPRoT/openprot
+```
+
+**Fix:**
+Added a `[patch]` section that redirects the `openprot-hal-blocking` dependency
+to the `rusty1968/openprot` fork at revision `c6cd23a` (the last commit before
+the Cargo.toml files were removed). Cargo requires patches to point to a
+*different* source URL, so we cannot patch `OpenPRoT/openprot` with itself at a
+different rev — hence the use of the `rusty1968` fork (which shares the same
+commit history).
+
+```toml
+[patch."https://github.com/OpenPRoT/openprot"]
+openprot-hal-blocking = { git = "https://github.com/rusty1968/openprot.git", rev = "c6cd23a" }
+```
+
+---
+
+## 2. Add missing explicit dependencies for Bazel targets
+
+**File:** `third_party/crates_io/crates_no_std/Cargo.toml`
+
+**Problem:**
+The `alias_hub.BUILD` file defines Bazel aliases that route crate names like
+`heapless`, `nb`, `fugit`, etc. to `@oot_crates_no_std//:$CRATE`. Bazel's
+`crate_universe` only generates top-level targets for *direct* dependencies
+listed in `Cargo.toml`. These crates were only transitive dependencies of
+`aspeed-ddk`, so `crate_universe` did not expose them as named targets.
+
+This caused errors like:
+```
+no such target '@@rules_rust++crate+oot_crates_no_std//:heapless'
+```
+
+**Fix:**
+Added the following as explicit dependencies in `Cargo.toml` so that
+`crate_universe` generates the corresponding Bazel targets:
+
+| Crate               | Version / Source                          |
+|----------------------|-------------------------------------------|
+| `heapless`           | `0.8.0`                                   |
+| `hex-literal`        | `0.4`                                     |
+| `nb`                 | `1.1.0`                                   |
+| `fugit`              | `0.3.7`                                   |
+| `openprot-hal-blocking` | `rusty1968/openprot.git` @ `c6cd23a`   |
+| `proposed-traits`    | `rusty1968/proposed_traits.git` @ `8564131` |
+
+After adding these, `Cargo.lock` was regenerated with `cargo generate-lockfile`.
+
+---
+
+## 3. Rename `mctp_stack` to `mctp_lib` in source code
+
+**Files:** 8 files under `services/mctp/`
+
+- `services/mctp/server/src/lib.rs`
+- `services/mctp/server/src/server.rs`
+- `services/mctp/server/src/main.rs`
+- `services/mctp/server/tests/dispatch.rs`
+- `services/mctp/server/tests/echo.rs`
+- `services/mctp/transport-i2c/src/lib.rs`
+- `services/mctp/transport-i2c/src/sender.rs`
+- `services/mctp/transport-i2c/src/receiver.rs`
+
+**Problem:**
+The source code used `mctp_stack::` to refer to types from the `mctp-lib` crate
+(e.g., `mctp_stack::Sender`, `mctp_stack::Router`, `mctp_stack::i2c::MctpI2cEncap`).
+However, the crate is named `mctp-lib` in its `Cargo.toml`, which Rust normalizes
+to `mctp_lib`. Bazel's `crate_universe` generated the target with crate name
+`mctp_lib`, not `mctp_stack`, so the compiler could not resolve the imports.
+
+This caused:
+```
+error[E0432]: unresolved import `mctp_stack`
+  = help: use of unresolved module or unlinked crate `mctp_stack`
+```
+
+**Fix:**
+Replaced all occurrences of `mctp_stack` with `mctp_lib` across the 8 affected
+source files. The crate was likely named `mctp-stack` or aliased as `mctp_stack`
+in a previous build system configuration; the Bazel build uses the canonical
+crate name derived from the package name.
+
+---
+
+## 4. Increase vector table size in system configuration
+
+**File:** `target/ast1060-evb/mctp/system.json5`
+
+**Problem:**
+The vector table region was sized at 1184 bytes (0x4A0), which was calculated
+for the interrupt vectors plus kernel annotations. With 3 apps (I2C server,
+MCTP server, MCTP echo client), each contributing thread and stack annotations,
+the `.pw_kernel.annotations.stack` section grew to span `[0x474, 0x4C3]` —
+36 bytes past the 0x4A0 boundary. This caused the linker to fail:
+
+```
+ld.lld: error: unable to move location counter (0x4c4) backward to 0x4a0
+        for section '.VECTOR_TABLE.unused_space'
+ld.lld: error: section '.pw_kernel.annotations.stack' will not fit in region
+        'VECTOR_TABLE': overflowed by 36 bytes
+```
+
+**Fix:**
+Increased `vector_table_size_bytes` from 1184 (0x4A0) to 1280 (0x500) and
+adjusted `flash_start_address` from 0x4A0 to 0x500 accordingly. The kernel
+flash size was recalculated as `0x20000 - 0x500 = 130816` bytes. This provides
+96 bytes of headroom for the annotations section.
+
+```json5
+arch: {
+    vector_table_size_bytes: 1280,  // was 1184
+},
+kernel: {
+    flash_start_address: 0x00000500,  // was 0x000004A0
+    flash_size_bytes: 130816,         // was 129888
+},
+```
+
+---
+
+## Running Unit Tests
+
+The MCTP crates have unit tests that can be run individually:
+
+```
+bazel test //services/mctp/server:mctp_server_test
+bazel test //services/mctp/api:mctp_api_test
+```
+
+**Note:** Using the wildcard `bazel test //services/mctp/...` will fail because
+the wildcard also picks up kernel-target binaries (`mctp_server`, `mctp_echo`)
+that depend on `pw_kernel/userspace`. The `userspace` crate imports
+`kernel_config`, which is a crate generated by the `target_codegen` rule during
+a full system image build (e.g., `//target/ast1060-evb/mctp:mctp`). It is not
+available when building individual targets outside that context.
+
+To run all MCTP unit tests without hitting this, target the test rules
+explicitly:
+
+```
+bazel test //services/mctp/server:mctp_server_test //services/mctp/api:mctp_api_test
+```
diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock
index f416700..e5128d7 100644
--- a/MODULE.bazel.lock
+++ b/MODULE.bazel.lock
@@ -1586,10 +1586,10 @@
         "bzlTransitiveDigest": "R3uUM8wZ6+Ue81AfVYJjzZJDkn6UdJu2gq59GrtQIY0=",
         "usagesDigest": "WfdfJaIbRmjr4fMHKZY9ihDeOMFR/bzh5E/2qr531WI=",
         "recordedFileInputs": {
-          "@@//third_party/crates_io/Cargo.lock": "476c8b233fa2b269018dbcb33a67157983dd2456398bf5e2742d2b8721390bed",
-          "@@//third_party/crates_io/Cargo.toml": "1e902f5b20bf6ad09e1660171a2247e00570a88181bec3ecb58416343c0c2739",
-          "@@//third_party/crates_io/crates_no_std/Cargo.lock": "e92f241041eabe5a01b6833eba1f30b5bdfa8bf45de0d995d50fc35f89bda412",
-          "@@//third_party/crates_io/crates_no_std/Cargo.toml": "6f99bccc9938be7492cf562f91c4bdbb2f2e8a5e262c71f22b3a83a2816d4d02",
+          "@@//third_party/crates_io/Cargo.lock": "7b0c74ed1c866c9bc1a67b6809dac1b18014ad3907c0feab15b46bd4f8bc7d47",
+          "@@//third_party/crates_io/Cargo.toml": "9a5623aec342fc0a155822290970b5051ffa281843a4f66c54ebc4fe91647c8f",
+          "@@//third_party/crates_io/crates_no_std/Cargo.lock": "eacd7bc9b61147cce59771f0e2ec4f26cebb2b90f6be159dc1e90e48f46840ab",
+          "@@//third_party/crates_io/crates_no_std/Cargo.toml": "81bd2cc092b645636d0b25759b40af18c2c094105133e6a8abc88953e77d0e7f",
           "@@pigweed+//third_party/crates_io/crates_no_std/Cargo.lock": "d38da5fa5f942b59a8017730285afe69aaf6f741b6171f361d66202de3473bc2",
           "@@pigweed+//third_party/crates_io/crates_no_std/Cargo.toml": "00e4a621a4a49d1b269bb2e688d8b5bbabb8700eb7b583ccaa20c36a60aebf98",
           "@@pigweed+//third_party/crates_io/crates_std/Cargo.lock": "3c1a7d6400a638ea860afdd1b957100d7a429b7a08ec0ea91f95cc1caa2519f8",
@@ -1611,9 +1611,9 @@
             "repoRuleId": "@@rules_rust+//crate_universe:extensions.bzl%_generate_repo",
             "attributes": {
               "contents": {
-                "BUILD.bazel": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files(\n    [\n        \"cargo-bazel.json\",\n        \"crates.bzl\",\n        \"defs.bzl\",\n    ] + glob(\n        allow_empty = True,\n        include = [\"*.bazel\"],\n    ),\n)\n\nfilegroup(\n    name = \"srcs\",\n    srcs = glob(\n        allow_empty = True,\n        include = [\n            \"*.bazel\",\n            \"*.bzl\",\n        ],\n    ),\n)\n\n# Workspace Member Dependencies\nalias(\n    name = \"anyhow-1.0.101\",\n    actual = \"@rust_crates_base__anyhow-1.0.101//:anyhow\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"anyhow\",\n    actual = \"@rust_crates_base__anyhow-1.0.101//:anyhow\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"bitfield-struct-0.11.0\",\n    actual = \"@rust_crates_base__bitfield-struct-0.11.0//:bitfield_struct\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"bitfield-struct\",\n    actual = \"@rust_crates_base__bitfield-struct-0.11.0//:bitfield_struct\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"bitflags-2.10.0\",\n    actual = \"@rust_crates_base__bitflags-2.10.0//:bitflags\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"bitflags\",\n    actual = \"@rust_crates_base__bitflags-2.10.0//:bitflags\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"clap-4.5.58\",\n    actual = \"@rust_crates_base__clap-4.5.58//:clap\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"clap\",\n    actual = \"@rust_crates_base__clap-4.5.58//:clap\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"compiler_builtins-0.1.160\",\n    actual = \"@rust_crates_base__compiler_builtins-0.1.160//:compiler_builtins\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"compiler_builtins\",\n    actual = \"@rust_crates_base__compiler_builtins-0.1.160//:compiler_builtins\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"hashlink-0.10.0\",\n    actual = \"@rust_crates_base__hashlink-0.10.0//:hashlink\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"hashlink\",\n    actual = \"@rust_crates_base__hashlink-0.10.0//:hashlink\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"minijinja-2.15.1\",\n    actual = \"@rust_crates_base__minijinja-2.15.1//:minijinja\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"minijinja\",\n    actual = \"@rust_crates_base__minijinja-2.15.1//:minijinja\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"nom-7.1.3\",\n    actual = \"@rust_crates_base__nom-7.1.3//:nom\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"nom\",\n    actual = \"@rust_crates_base__nom-7.1.3//:nom\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"object-0.37.3\",\n    actual = \"@rust_crates_base__object-0.37.3//:object\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"object\",\n    actual = \"@rust_crates_base__object-0.37.3//:object\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"panic-halt-1.0.0\",\n    actual = \"@rust_crates_base__panic-halt-1.0.0//:panic_halt\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"panic-halt\",\n    actual = \"@rust_crates_base__panic-halt-1.0.0//:panic_halt\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"paste-1.0.15\",\n    actual = \"@rust_crates_base__paste-1.0.15//:paste\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"paste\",\n    actual = \"@rust_crates_base__paste-1.0.15//:paste\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"proc-macro2-1.0.106\",\n    actual = \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"proc-macro2\",\n    actual = \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"quote-1.0.44\",\n    actual = \"@rust_crates_base__quote-1.0.44//:quote\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"quote\",\n    actual = \"@rust_crates_base__quote-1.0.44//:quote\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"riscv-0.12.1\",\n    actual = \"@rust_crates_base__riscv-0.12.1//:riscv\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"riscv\",\n    actual = \"@rust_crates_base__riscv-0.12.1//:riscv\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"riscv-rt-0.12.2\",\n    actual = \"@rust_crates_base__riscv-rt-0.12.2//:riscv_rt\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"riscv-rt\",\n    actual = \"@rust_crates_base__riscv-rt-0.12.2//:riscv_rt\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"riscv-semihosting-0.1.3\",\n    actual = \"@rust_crates_base__riscv-semihosting-0.1.3//:riscv_semihosting\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"riscv-semihosting\",\n    actual = \"@rust_crates_base__riscv-semihosting-0.1.3//:riscv_semihosting\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"rustc-demangle-0.1.27\",\n    actual = \"@rust_crates_base__rustc-demangle-0.1.27//:rustc_demangle\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"rustc-demangle\",\n    actual = \"@rust_crates_base__rustc-demangle-0.1.27//:rustc_demangle\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"serde-1.0.228\",\n    actual = \"@rust_crates_base__serde-1.0.228//:serde\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"serde\",\n    actual = \"@rust_crates_base__serde-1.0.228//:serde\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"serde_json5-0.2.1\",\n    actual = \"@rust_crates_base__serde_json5-0.2.1//:serde_json5\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"serde_json5\",\n    actual = \"@rust_crates_base__serde_json5-0.2.1//:serde_json5\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"syn-2.0.115\",\n    actual = \"@rust_crates_base__syn-2.0.115//:syn\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"syn\",\n    actual = \"@rust_crates_base__syn-2.0.115//:syn\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"toml-0.8.23\",\n    actual = \"@rust_crates_base__toml-0.8.23//:toml\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"toml\",\n    actual = \"@rust_crates_base__toml-0.8.23//:toml\",\n    tags = [\"manual\"],\n)\n",
+                "BUILD.bazel": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files(\n    [\n        \"cargo-bazel.json\",\n        \"crates.bzl\",\n        \"defs.bzl\",\n    ] + glob(\n        allow_empty = True,\n        include = [\"*.bazel\"],\n    ),\n)\n\nfilegroup(\n    name = \"srcs\",\n    srcs = glob(\n        allow_empty = True,\n        include = [\n            \"*.bazel\",\n            \"*.bzl\",\n        ],\n    ),\n)\n\n# Workspace Member Dependencies\nalias(\n    name = \"anyhow-1.0.101\",\n    actual = \"@rust_crates_base__anyhow-1.0.101//:anyhow\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"anyhow\",\n    actual = \"@rust_crates_base__anyhow-1.0.101//:anyhow\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"bitfield-struct-0.11.0\",\n    actual = \"@rust_crates_base__bitfield-struct-0.11.0//:bitfield_struct\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"bitfield-struct\",\n    actual = \"@rust_crates_base__bitfield-struct-0.11.0//:bitfield_struct\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"bitflags-2.10.0\",\n    actual = \"@rust_crates_base__bitflags-2.10.0//:bitflags\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"bitflags\",\n    actual = \"@rust_crates_base__bitflags-2.10.0//:bitflags\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"byteorder-1.5.0\",\n    actual = \"@rust_crates_base__byteorder-1.5.0//:byteorder\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"byteorder\",\n    actual = \"@rust_crates_base__byteorder-1.5.0//:byteorder\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"clap-4.5.58\",\n    actual = \"@rust_crates_base__clap-4.5.58//:clap\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"clap\",\n    actual = \"@rust_crates_base__clap-4.5.58//:clap\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"compiler_builtins-0.1.160\",\n    actual = \"@rust_crates_base__compiler_builtins-0.1.160//:compiler_builtins\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"compiler_builtins\",\n    actual = \"@rust_crates_base__compiler_builtins-0.1.160//:compiler_builtins\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-0.7.7\",\n    actual = \"@rust_crates_base__cortex-m-0.7.7//:cortex_m\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m\",\n    actual = \"@rust_crates_base__cortex-m-0.7.7//:cortex_m\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-rt-0.7.5\",\n    actual = \"@rust_crates_base__cortex-m-rt-0.7.5//:cortex_m_rt\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-rt\",\n    actual = \"@rust_crates_base__cortex-m-rt-0.7.5//:cortex_m_rt\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-semihosting-0.5.0\",\n    actual = \"@rust_crates_base__cortex-m-semihosting-0.5.0//:cortex_m_semihosting\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-semihosting\",\n    actual = \"@rust_crates_base__cortex-m-semihosting-0.5.0//:cortex_m_semihosting\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"embedded-io-0.6.1\",\n    actual = \"@rust_crates_base__embedded-io-0.6.1//:embedded_io\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"embedded-io\",\n    actual = \"@rust_crates_base__embedded-io-0.6.1//:embedded_io\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"hashlink-0.10.0\",\n    actual = \"@rust_crates_base__hashlink-0.10.0//:hashlink\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"hashlink\",\n    actual = \"@rust_crates_base__hashlink-0.10.0//:hashlink\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"minijinja-2.15.1\",\n    actual = \"@rust_crates_base__minijinja-2.15.1//:minijinja\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"minijinja\",\n    actual = \"@rust_crates_base__minijinja-2.15.1//:minijinja\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"nom-7.1.3\",\n    actual = \"@rust_crates_base__nom-7.1.3//:nom\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"nom\",\n    actual = \"@rust_crates_base__nom-7.1.3//:nom\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"object-0.37.3\",\n    actual = \"@rust_crates_base__object-0.37.3//:object\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"object\",\n    actual = \"@rust_crates_base__object-0.37.3//:object\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"panic-halt-1.0.0\",\n    actual = \"@rust_crates_base__panic-halt-1.0.0//:panic_halt\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"panic-halt\",\n    actual = \"@rust_crates_base__panic-halt-1.0.0//:panic_halt\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"paste-1.0.15\",\n    actual = \"@rust_crates_base__paste-1.0.15//:paste\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"paste\",\n    actual = \"@rust_crates_base__paste-1.0.15//:paste\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"proc-macro2-1.0.106\",\n    actual = \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"proc-macro2\",\n    actual = \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"quote-1.0.44\",\n    actual = \"@rust_crates_base__quote-1.0.44//:quote\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"quote\",\n    actual = \"@rust_crates_base__quote-1.0.44//:quote\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"riscv-0.12.1\",\n    actual = \"@rust_crates_base__riscv-0.12.1//:riscv\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"riscv\",\n    actual = \"@rust_crates_base__riscv-0.12.1//:riscv\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"riscv-rt-0.12.2\",\n    actual = \"@rust_crates_base__riscv-rt-0.12.2//:riscv_rt\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"riscv-rt\",\n    actual = \"@rust_crates_base__riscv-rt-0.12.2//:riscv_rt\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"riscv-semihosting-0.1.3\",\n    actual = \"@rust_crates_base__riscv-semihosting-0.1.3//:riscv_semihosting\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"riscv-semihosting\",\n    actual = \"@rust_crates_base__riscv-semihosting-0.1.3//:riscv_semihosting\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"rustc-demangle-0.1.27\",\n    actual = \"@rust_crates_base__rustc-demangle-0.1.27//:rustc_demangle\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"rustc-demangle\",\n    actual = \"@rust_crates_base__rustc-demangle-0.1.27//:rustc_demangle\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"serde-1.0.228\",\n    actual = \"@rust_crates_base__serde-1.0.228//:serde\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"serde\",\n    actual = \"@rust_crates_base__serde-1.0.228//:serde\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"serde_json5-0.2.1\",\n    actual = \"@rust_crates_base__serde_json5-0.2.1//:serde_json5\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"serde_json5\",\n    actual = \"@rust_crates_base__serde_json5-0.2.1//:serde_json5\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"syn-2.0.114\",\n    actual = \"@rust_crates_base__syn-2.0.114//:syn\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"syn\",\n    actual = \"@rust_crates_base__syn-2.0.114//:syn\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"toml-0.8.23\",\n    actual = \"@rust_crates_base__toml-0.8.23//:toml\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"toml\",\n    actual = \"@rust_crates_base__toml-0.8.23//:toml\",\n    tags = [\"manual\"],\n)\n",
                 "alias_rules.bzl": "\"\"\"Alias that transitions its target to `compilation_mode=opt`.  Use `transition_alias=\"opt\"` to enable.\"\"\"\n\nload(\"@rules_cc//cc:defs.bzl\", \"CcInfo\")\nload(\"@rules_rust//rust:rust_common.bzl\", \"COMMON_PROVIDERS\")\n\ndef _transition_alias_impl(ctx):\n    # `ctx.attr.actual` is a list of 1 item due to the transition\n    providers = [ctx.attr.actual[0][provider] for provider in COMMON_PROVIDERS]\n    if CcInfo in ctx.attr.actual[0]:\n        providers.append(ctx.attr.actual[0][CcInfo])\n    return providers\n\ndef _change_compilation_mode(compilation_mode):\n    def _change_compilation_mode_impl(_settings, _attr):\n        return {\n            \"//command_line_option:compilation_mode\": compilation_mode,\n        }\n\n    return transition(\n        implementation = _change_compilation_mode_impl,\n        inputs = [],\n        outputs = [\n            \"//command_line_option:compilation_mode\",\n        ],\n    )\n\ndef _transition_alias_rule(compilation_mode):\n    return rule(\n        implementation = _transition_alias_impl,\n        provides = COMMON_PROVIDERS,\n        attrs = {\n            \"actual\": attr.label(\n                mandatory = True,\n                doc = \"`rust_library()` target to transition to `compilation_mode=opt`.\",\n                providers = COMMON_PROVIDERS,\n                cfg = _change_compilation_mode(compilation_mode),\n            ),\n            \"_allowlist_function_transition\": attr.label(\n                default = \"@bazel_tools//tools/allowlists/function_transition_allowlist\",\n            ),\n        },\n        doc = \"Transitions a Rust library crate to the `compilation_mode=opt`.\",\n    )\n\ntransition_alias_dbg = _transition_alias_rule(\"dbg\")\ntransition_alias_fastbuild = _transition_alias_rule(\"fastbuild\")\ntransition_alias_opt = _transition_alias_rule(\"opt\")\n",
-                "defs.bzl": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\"\"\"\n# `crates_repository` API\n\n- [aliases](#aliases)\n- [crate_deps](#crate_deps)\n- [all_crate_deps](#all_crate_deps)\n- [crate_repositories](#crate_repositories)\n\n\"\"\"\n\nload(\"@bazel_tools//tools/build_defs/repo:git.bzl\", \"new_git_repository\")\nload(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\nload(\"@bazel_tools//tools/build_defs/repo:utils.bzl\", \"maybe\")\nload(\"@bazel_skylib//lib:selects.bzl\", \"selects\")\nload(\"@rules_rust//crate_universe/private:local_crate_mirror.bzl\", \"local_crate_mirror\")\n\n###############################################################################\n# MACROS API\n###############################################################################\n\n# An identifier that represent common dependencies (unconditional).\n_COMMON_CONDITION = \"\"\n\ndef _flatten_dependency_maps(all_dependency_maps):\n    \"\"\"Flatten a list of dependency maps into one dictionary.\n\n    Dependency maps have the following structure:\n\n    ```python\n    DEPENDENCIES_MAP = {\n        # The first key in the map is a Bazel package\n        # name of the workspace this file is defined in.\n        \"workspace_member_package\": {\n\n            # Not all dependencies are supported for all platforms.\n            # the condition key is the condition required to be true\n            # on the host platform.\n            \"condition\": {\n\n                # An alias to a crate target.     # The label of the crate target the\n                # Aliases are only crate names.   # package name refers to.\n                \"package_name\":                   \"@full//:label\",\n            }\n        }\n    }\n    ```\n\n    Args:\n        all_dependency_maps (list): A list of dicts as described above\n\n    Returns:\n        dict: A dictionary as described above\n    \"\"\"\n    dependencies = {}\n\n    for workspace_deps_map in all_dependency_maps:\n        for pkg_name, conditional_deps_map in workspace_deps_map.items():\n            if pkg_name not in dependencies:\n                non_frozen_map = dict()\n                for key, values in conditional_deps_map.items():\n                    non_frozen_map.update({key: dict(values.items())})\n                dependencies.setdefault(pkg_name, non_frozen_map)\n                continue\n\n            for condition, deps_map in conditional_deps_map.items():\n                # If the condition has not been recorded, do so and continue\n                if condition not in dependencies[pkg_name]:\n                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))\n                    continue\n\n                # Alert on any miss-matched dependencies\n                inconsistent_entries = []\n                for crate_name, crate_label in deps_map.items():\n                    existing = dependencies[pkg_name][condition].get(crate_name)\n                    if existing and existing != crate_label:\n                        inconsistent_entries.append((crate_name, existing, crate_label))\n                    dependencies[pkg_name][condition].update({crate_name: crate_label})\n\n    return dependencies\n\ndef crate_deps(deps, package_name = None):\n    \"\"\"Finds the fully qualified label of the requested crates for the package where this macro is called.\n\n    Args:\n        deps (list): The desired list of crate targets.\n        package_name (str, optional): The package name of the set of dependencies to look up.\n            Defaults to `native.package_name()`.\n\n    Returns:\n        list: A list of labels to generated rust targets (str)\n    \"\"\"\n\n    if not deps:\n        return []\n\n    if package_name == None:\n        package_name = native.package_name()\n\n    # Join both sets of dependencies\n    dependencies = _flatten_dependency_maps([\n        _NORMAL_DEPENDENCIES,\n        _NORMAL_DEV_DEPENDENCIES,\n        _PROC_MACRO_DEPENDENCIES,\n        _PROC_MACRO_DEV_DEPENDENCIES,\n        _BUILD_DEPENDENCIES,\n        _BUILD_PROC_MACRO_DEPENDENCIES,\n    ]).pop(package_name, {})\n\n    # Combine all conditional packages so we can easily index over a flat list\n    # TODO: Perhaps this should actually return select statements and maintain\n    # the conditionals of the dependencies\n    flat_deps = {}\n    for deps_set in dependencies.values():\n        for crate_name, crate_label in deps_set.items():\n            flat_deps.update({crate_name: crate_label})\n\n    missing_crates = []\n    crate_targets = []\n    for crate_target in deps:\n        if crate_target not in flat_deps:\n            missing_crates.append(crate_target)\n        else:\n            crate_targets.append(flat_deps[crate_target])\n\n    if missing_crates:\n        fail(\"Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`\".format(\n            missing_crates,\n            package_name,\n            dependencies,\n        ))\n\n    return crate_targets\n\ndef all_crate_deps(\n        normal = False, \n        normal_dev = False, \n        proc_macro = False, \n        proc_macro_dev = False,\n        build = False,\n        build_proc_macro = False,\n        package_name = None):\n    \"\"\"Finds the fully qualified label of all requested direct crate dependencies \\\n    for the package where this macro is called.\n\n    If no parameters are set, all normal dependencies are returned. Setting any one flag will\n    otherwise impact the contents of the returned list.\n\n    Args:\n        normal (bool, optional): If True, normal dependencies are included in the\n            output list.\n        normal_dev (bool, optional): If True, normal dev dependencies will be\n            included in the output list..\n        proc_macro (bool, optional): If True, proc_macro dependencies are included\n            in the output list.\n        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n            included in the output list.\n        build (bool, optional): If True, build dependencies are included\n            in the output list.\n        build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n            included in the output list.\n        package_name (str, optional): The package name of the set of dependencies to look up.\n            Defaults to `native.package_name()` when unset.\n\n    Returns:\n        list: A list of labels to generated rust targets (str)\n    \"\"\"\n\n    if package_name == None:\n        package_name = native.package_name()\n\n    # Determine the relevant maps to use\n    all_dependency_maps = []\n    if normal:\n        all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n    if normal_dev:\n        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)\n    if proc_macro:\n        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)\n    if proc_macro_dev:\n        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)\n    if build:\n        all_dependency_maps.append(_BUILD_DEPENDENCIES)\n    if build_proc_macro:\n        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)\n\n    # Default to always using normal dependencies\n    if not all_dependency_maps:\n        all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n\n    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)\n\n    if not dependencies:\n        if dependencies == None:\n            fail(\"Tried to get all_crate_deps for package \" + package_name + \" but that package had no Cargo.toml file\")\n        else:\n            return []\n\n    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())\n    for condition, deps in dependencies.items():\n        crate_deps += selects.with_or({\n            tuple(_CONDITIONS[condition]): deps.values(),\n            \"//conditions:default\": [],\n        })\n\n    return crate_deps\n\ndef aliases(\n        normal = False,\n        normal_dev = False,\n        proc_macro = False,\n        proc_macro_dev = False,\n        build = False,\n        build_proc_macro = False,\n        package_name = None):\n    \"\"\"Produces a map of Crate alias names to their original label\n\n    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.\n    Setting any one flag will otherwise determine the contents of the returned dict.\n\n    Args:\n        normal (bool, optional): If True, normal dependencies are included in the\n            output list.\n        normal_dev (bool, optional): If True, normal dev dependencies will be\n            included in the output list..\n        proc_macro (bool, optional): If True, proc_macro dependencies are included\n            in the output list.\n        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n            included in the output list.\n        build (bool, optional): If True, build dependencies are included\n            in the output list.\n        build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n            included in the output list.\n        package_name (str, optional): The package name of the set of dependencies to look up.\n            Defaults to `native.package_name()` when unset.\n\n    Returns:\n        dict: The aliases of all associated packages\n    \"\"\"\n    if package_name == None:\n        package_name = native.package_name()\n\n    # Determine the relevant maps to use\n    all_aliases_maps = []\n    if normal:\n        all_aliases_maps.append(_NORMAL_ALIASES)\n    if normal_dev:\n        all_aliases_maps.append(_NORMAL_DEV_ALIASES)\n    if proc_macro:\n        all_aliases_maps.append(_PROC_MACRO_ALIASES)\n    if proc_macro_dev:\n        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)\n    if build:\n        all_aliases_maps.append(_BUILD_ALIASES)\n    if build_proc_macro:\n        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)\n\n    # Default to always using normal aliases\n    if not all_aliases_maps:\n        all_aliases_maps.append(_NORMAL_ALIASES)\n        all_aliases_maps.append(_PROC_MACRO_ALIASES)\n\n    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)\n\n    if not aliases:\n        return dict()\n\n    common_items = aliases.pop(_COMMON_CONDITION, {}).items()\n\n    # If there are only common items in the dictionary, immediately return them\n    if not len(aliases.keys()) == 1:\n        return dict(common_items)\n\n    # Build a single select statement where each conditional has accounted for the\n    # common set of aliases.\n    crate_aliases = {\"//conditions:default\": dict(common_items)}\n    for condition, deps in aliases.items():\n        condition_triples = _CONDITIONS[condition]\n        for triple in condition_triples:\n            if triple in crate_aliases:\n                crate_aliases[triple].update(deps)\n            else:\n                crate_aliases.update({triple: dict(deps.items() + common_items)})\n\n    return select(crate_aliases)\n\n###############################################################################\n# WORKSPACE MEMBER DEPS AND ALIASES\n###############################################################################\n\n_NORMAL_DEPENDENCIES = {\n    \"third_party/crates_io\": {\n        _COMMON_CONDITION: {\n            \"anyhow\": Label(\"@rust_crates_base//:anyhow-1.0.101\"),\n            \"bitflags\": Label(\"@rust_crates_base//:bitflags-2.10.0\"),\n            \"clap\": Label(\"@rust_crates_base//:clap-4.5.58\"),\n            \"compiler_builtins\": Label(\"@rust_crates_base//:compiler_builtins-0.1.160\"),\n            \"hashlink\": Label(\"@rust_crates_base//:hashlink-0.10.0\"),\n            \"minijinja\": Label(\"@rust_crates_base//:minijinja-2.15.1\"),\n            \"nom\": Label(\"@rust_crates_base//:nom-7.1.3\"),\n            \"object\": Label(\"@rust_crates_base//:object-0.37.3\"),\n            \"panic-halt\": Label(\"@rust_crates_base//:panic-halt-1.0.0\"),\n            \"proc-macro2\": Label(\"@rust_crates_base//:proc-macro2-1.0.106\"),\n            \"quote\": Label(\"@rust_crates_base//:quote-1.0.44\"),\n            \"riscv\": Label(\"@rust_crates_base//:riscv-0.12.1\"),\n            \"riscv-rt\": Label(\"@rust_crates_base//:riscv-rt-0.12.2\"),\n            \"riscv-semihosting\": Label(\"@rust_crates_base//:riscv-semihosting-0.1.3\"),\n            \"rustc-demangle\": Label(\"@rust_crates_base//:rustc-demangle-0.1.27\"),\n            \"serde\": Label(\"@rust_crates_base//:serde-1.0.228\"),\n            \"serde_json5\": Label(\"@rust_crates_base//:serde_json5-0.2.1\"),\n            \"syn\": Label(\"@rust_crates_base//:syn-2.0.115\"),\n            \"toml\": Label(\"@rust_crates_base//:toml-0.8.23\"),\n        },\n    },\n}\n\n\n_NORMAL_ALIASES = {\n    \"third_party/crates_io\": {\n        _COMMON_CONDITION: {\n        },\n    },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n    \"third_party/crates_io\": {\n        _COMMON_CONDITION: {\n            \"bitfield-struct\": Label(\"@rust_crates_base//:bitfield-struct-0.11.0\"),\n            \"paste\": Label(\"@rust_crates_base//:paste-1.0.15\"),\n        },\n    },\n}\n\n\n_PROC_MACRO_ALIASES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_BUILD_DEPENDENCIES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_BUILD_ALIASES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_CONDITIONS = {\n    \"aarch64-apple-darwin\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n    \"aarch64-linux-android\": [],\n    \"aarch64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n    \"cfg(all(target_arch = \\\"aarch64\\\", target_os = \\\"linux\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n    \"cfg(all(target_arch = \\\"aarch64\\\", target_vendor = \\\"apple\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n    \"cfg(all(target_arch = \\\"loongarch64\\\", target_os = \\\"linux\\\"))\": [],\n    \"cfg(any())\": [],\n    \"cfg(any(target_arch = \\\"aarch64\\\", target_arch = \\\"x86_64\\\", target_arch = \\\"x86\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n    \"cfg(windows)\": [],\n    \"riscv32imc-unknown-none-elf\": [\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\"],\n    \"thumbv7m-none-eabi\": [\"@rules_rust//rust/platform:thumbv7m-none-eabi\"],\n    \"x86_64-apple-darwin\": [\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n    \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n}\n\n###############################################################################\n\ndef crate_repositories():\n    \"\"\"A macro for defining repositories for all generated crates.\n\n    Returns:\n      A list of repos visible to the module through the module extension.\n    \"\"\"\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__adler2-2.0.1\",\n        sha256 = \"320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/adler2/2.0.1/download\"],\n        strip_prefix = \"adler2-2.0.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.adler2-2.0.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__anstream-0.6.21\",\n        sha256 = \"43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/anstream/0.6.21/download\"],\n        strip_prefix = \"anstream-0.6.21\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.anstream-0.6.21.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__anstyle-1.0.13\",\n        sha256 = \"5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/anstyle/1.0.13/download\"],\n        strip_prefix = \"anstyle-1.0.13\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.anstyle-1.0.13.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__anstyle-parse-0.2.7\",\n        sha256 = \"4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/anstyle-parse/0.2.7/download\"],\n        strip_prefix = \"anstyle-parse-0.2.7\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.anstyle-parse-0.2.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__anstyle-query-1.1.5\",\n        sha256 = \"40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/anstyle-query/1.1.5/download\"],\n        strip_prefix = \"anstyle-query-1.1.5\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.anstyle-query-1.1.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__anstyle-wincon-3.0.11\",\n        sha256 = \"291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/anstyle-wincon/3.0.11/download\"],\n        strip_prefix = \"anstyle-wincon-3.0.11\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.anstyle-wincon-3.0.11.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__anyhow-1.0.101\",\n        sha256 = \"5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/anyhow/1.0.101/download\"],\n        strip_prefix = \"anyhow-1.0.101\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.anyhow-1.0.101.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__bitfield-struct-0.11.0\",\n        sha256 = \"d3ca019570363e800b05ad4fd890734f28ac7b72f563ad8a35079efb793616f8\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/bitfield-struct/0.11.0/download\"],\n        strip_prefix = \"bitfield-struct-0.11.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.bitfield-struct-0.11.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__bitflags-2.10.0\",\n        sha256 = \"812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/bitflags/2.10.0/download\"],\n        strip_prefix = \"bitflags-2.10.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.bitflags-2.10.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__block-buffer-0.10.4\",\n        sha256 = \"3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/block-buffer/0.10.4/download\"],\n        strip_prefix = \"block-buffer-0.10.4\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.block-buffer-0.10.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__cfg-if-1.0.4\",\n        sha256 = \"9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cfg-if/1.0.4/download\"],\n        strip_prefix = \"cfg-if-1.0.4\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.cfg-if-1.0.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__clap-4.5.58\",\n        sha256 = \"63be97961acde393029492ce0be7a1af7e323e6bae9511ebfac33751be5e6806\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/clap/4.5.58/download\"],\n        strip_prefix = \"clap-4.5.58\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.clap-4.5.58.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__clap_builder-4.5.58\",\n        sha256 = \"7f13174bda5dfd69d7e947827e5af4b0f2f94a4a3ee92912fba07a66150f21e2\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/clap_builder/4.5.58/download\"],\n        strip_prefix = \"clap_builder-4.5.58\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.clap_builder-4.5.58.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__clap_derive-4.5.55\",\n        sha256 = \"a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/clap_derive/4.5.55/download\"],\n        strip_prefix = \"clap_derive-4.5.55\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.clap_derive-4.5.55.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__clap_lex-1.0.0\",\n        sha256 = \"3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/clap_lex/1.0.0/download\"],\n        strip_prefix = \"clap_lex-1.0.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.clap_lex-1.0.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__colorchoice-1.0.4\",\n        sha256 = \"b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/colorchoice/1.0.4/download\"],\n        strip_prefix = \"colorchoice-1.0.4\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.colorchoice-1.0.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__compiler_builtins-0.1.160\",\n        sha256 = \"6376049cfa92c0aa8b9ac95fae22184b981c658208d4ed8a1dc553cd83612895\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/compiler_builtins/0.1.160/download\"],\n        strip_prefix = \"compiler_builtins-0.1.160\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.compiler_builtins-0.1.160.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__cpufeatures-0.2.17\",\n        sha256 = \"59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cpufeatures/0.2.17/download\"],\n        strip_prefix = \"cpufeatures-0.2.17\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.cpufeatures-0.2.17.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__crc32fast-1.5.0\",\n        sha256 = \"9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/crc32fast/1.5.0/download\"],\n        strip_prefix = \"crc32fast-1.5.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.crc32fast-1.5.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__critical-section-1.2.0\",\n        sha256 = \"790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/critical-section/1.2.0/download\"],\n        strip_prefix = \"critical-section-1.2.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.critical-section-1.2.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__crypto-common-0.1.7\",\n        sha256 = \"78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/crypto-common/0.1.7/download\"],\n        strip_prefix = \"crypto-common-0.1.7\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.crypto-common-0.1.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__digest-0.10.7\",\n        sha256 = \"9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/digest/0.10.7/download\"],\n        strip_prefix = \"digest-0.10.7\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.digest-0.10.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__embedded-hal-1.0.0\",\n        sha256 = \"361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/embedded-hal/1.0.0/download\"],\n        strip_prefix = \"embedded-hal-1.0.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.embedded-hal-1.0.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__equivalent-1.0.2\",\n        sha256 = \"877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/equivalent/1.0.2/download\"],\n        strip_prefix = \"equivalent-1.0.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.equivalent-1.0.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__flate2-1.1.9\",\n        sha256 = \"843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/flate2/1.1.9/download\"],\n        strip_prefix = \"flate2-1.1.9\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.flate2-1.1.9.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__foldhash-0.1.5\",\n        sha256 = \"d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/foldhash/0.1.5/download\"],\n        strip_prefix = \"foldhash-0.1.5\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.foldhash-0.1.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__generic-array-0.14.7\",\n        sha256 = \"85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/generic-array/0.14.7/download\"],\n        strip_prefix = \"generic-array-0.14.7\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.generic-array-0.14.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__hashbrown-0.15.5\",\n        sha256 = \"9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/hashbrown/0.15.5/download\"],\n        strip_prefix = \"hashbrown-0.15.5\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.hashbrown-0.15.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__hashbrown-0.16.1\",\n        sha256 = \"841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/hashbrown/0.16.1/download\"],\n        strip_prefix = \"hashbrown-0.16.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.hashbrown-0.16.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__hashlink-0.10.0\",\n        sha256 = \"7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/hashlink/0.10.0/download\"],\n        strip_prefix = \"hashlink-0.10.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.hashlink-0.10.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__heck-0.5.0\",\n        sha256 = \"2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/heck/0.5.0/download\"],\n        strip_prefix = \"heck-0.5.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.heck-0.5.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__indexmap-2.13.0\",\n        sha256 = \"7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/indexmap/2.13.0/download\"],\n        strip_prefix = \"indexmap-2.13.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.indexmap-2.13.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__is_terminal_polyfill-1.70.2\",\n        sha256 = \"a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/is_terminal_polyfill/1.70.2/download\"],\n        strip_prefix = \"is_terminal_polyfill-1.70.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.is_terminal_polyfill-1.70.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__libc-0.2.181\",\n        sha256 = \"459427e2af2b9c839b132acb702a1c654d95e10f8c326bfc2ad11310e458b1c5\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/libc/0.2.181/download\"],\n        strip_prefix = \"libc-0.2.181\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.libc-0.2.181.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__memchr-2.8.0\",\n        sha256 = \"f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/memchr/2.8.0/download\"],\n        strip_prefix = \"memchr-2.8.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.memchr-2.8.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__memo-map-0.3.3\",\n        sha256 = \"38d1115007560874e373613744c6fba374c17688327a71c1476d1a5954cc857b\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/memo-map/0.3.3/download\"],\n        strip_prefix = \"memo-map-0.3.3\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.memo-map-0.3.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__minijinja-2.15.1\",\n        sha256 = \"b479616bb6f0779fb0f3964246beda02d4b01144e1b0d5519616e012ccc2a245\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/minijinja/2.15.1/download\"],\n        strip_prefix = \"minijinja-2.15.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.minijinja-2.15.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__minimal-lexical-0.2.1\",\n        sha256 = \"68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/minimal-lexical/0.2.1/download\"],\n        strip_prefix = \"minimal-lexical-0.2.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.minimal-lexical-0.2.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__miniz_oxide-0.8.9\",\n        sha256 = \"1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/miniz_oxide/0.8.9/download\"],\n        strip_prefix = \"miniz_oxide-0.8.9\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.miniz_oxide-0.8.9.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__nom-7.1.3\",\n        sha256 = \"d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/nom/7.1.3/download\"],\n        strip_prefix = \"nom-7.1.3\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.nom-7.1.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__object-0.37.3\",\n        sha256 = \"ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/object/0.37.3/download\"],\n        strip_prefix = \"object-0.37.3\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.object-0.37.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__once_cell_polyfill-1.70.2\",\n        sha256 = \"384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/once_cell_polyfill/1.70.2/download\"],\n        strip_prefix = \"once_cell_polyfill-1.70.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.once_cell_polyfill-1.70.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__panic-halt-1.0.0\",\n        sha256 = \"a513e167849a384b7f9b746e517604398518590a9142f4846a32e3c2a4de7b11\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/panic-halt/1.0.0/download\"],\n        strip_prefix = \"panic-halt-1.0.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.panic-halt-1.0.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__paste-1.0.15\",\n        sha256 = \"57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/paste/1.0.15/download\"],\n        strip_prefix = \"paste-1.0.15\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.paste-1.0.15.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__pest-2.8.6\",\n        sha256 = \"e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/pest/2.8.6/download\"],\n        strip_prefix = \"pest-2.8.6\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.pest-2.8.6.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__pest_derive-2.8.6\",\n        sha256 = \"11f486f1ea21e6c10ed15d5a7c77165d0ee443402f0780849d1768e7d9d6fe77\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/pest_derive/2.8.6/download\"],\n        strip_prefix = \"pest_derive-2.8.6\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.pest_derive-2.8.6.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__pest_generator-2.8.6\",\n        sha256 = \"8040c4647b13b210a963c1ed407c1ff4fdfa01c31d6d2a098218702e6664f94f\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/pest_generator/2.8.6/download\"],\n        strip_prefix = \"pest_generator-2.8.6\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.pest_generator-2.8.6.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__pest_meta-2.8.6\",\n        sha256 = \"89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/pest_meta/2.8.6/download\"],\n        strip_prefix = \"pest_meta-2.8.6\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.pest_meta-2.8.6.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__proc-macro2-1.0.106\",\n        sha256 = \"8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/proc-macro2/1.0.106/download\"],\n        strip_prefix = \"proc-macro2-1.0.106\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.proc-macro2-1.0.106.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__quote-1.0.44\",\n        sha256 = \"21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/quote/1.0.44/download\"],\n        strip_prefix = \"quote-1.0.44\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.quote-1.0.44.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-0.11.1\",\n        sha256 = \"2f5c1b8bf41ea746266cdee443d1d1e9125c86ce1447e1a2615abd34330d33a9\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv/0.11.1/download\"],\n        strip_prefix = \"riscv-0.11.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-0.11.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-0.12.1\",\n        sha256 = \"5ea8ff73d3720bdd0a97925f0bf79ad2744b6da8ff36be3840c48ac81191d7a7\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv/0.12.1/download\"],\n        strip_prefix = \"riscv-0.12.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-0.12.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-0.13.0\",\n        sha256 = \"afa3cdbeccae4359f6839a00e8b77e5736caa200ba216caf38d24e4c16e2b586\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv/0.13.0/download\"],\n        strip_prefix = \"riscv-0.13.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-0.13.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-macros-0.1.0\",\n        sha256 = \"f265be5d634272320a7de94cea15c22a3bfdd4eb42eb43edc528415f066a1f25\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv-macros/0.1.0/download\"],\n        strip_prefix = \"riscv-macros-0.1.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-macros-0.1.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-macros-0.2.0\",\n        sha256 = \"e8c4aa1ea1af6dcc83a61be12e8189f9b293c3ba5a487778a4cd89fb060fdbbc\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv-macros/0.2.0/download\"],\n        strip_prefix = \"riscv-macros-0.2.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-macros-0.2.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-pac-0.2.0\",\n        sha256 = \"8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv-pac/0.2.0/download\"],\n        strip_prefix = \"riscv-pac-0.2.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-pac-0.2.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-rt-0.12.2\",\n        sha256 = \"c0d35e32cf1383183e8885d8a9aa4402a087fd094dc34c2cb6df6687d0229dfe\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv-rt/0.12.2/download\"],\n        strip_prefix = \"riscv-rt-0.12.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-rt-0.12.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-rt-macros-0.2.2\",\n        sha256 = \"30f19a85fe107b65031e0ba8ec60c34c2494069fe910d6c297f5e7cb5a6f76d0\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv-rt-macros/0.2.2/download\"],\n        strip_prefix = \"riscv-rt-macros-0.2.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-rt-macros-0.2.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-semihosting-0.1.3\",\n        sha256 = \"1086dd4bcc13de1cb14b93849411e3466de7e5907d2d8eb269032536e93facc6\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv-semihosting/0.1.3/download\"],\n        strip_prefix = \"riscv-semihosting-0.1.3\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-semihosting-0.1.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__rustc-demangle-0.1.27\",\n        sha256 = \"b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/rustc-demangle/0.1.27/download\"],\n        strip_prefix = \"rustc-demangle-0.1.27\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.rustc-demangle-0.1.27.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__ruzstd-0.8.2\",\n        sha256 = \"e5ff0cc5e135c8870a775d3320910cd9b564ec036b4dc0b8741629020be63f01\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/ruzstd/0.8.2/download\"],\n        strip_prefix = \"ruzstd-0.8.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.ruzstd-0.8.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__self_cell-1.2.2\",\n        sha256 = \"b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/self_cell/1.2.2/download\"],\n        strip_prefix = \"self_cell-1.2.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.self_cell-1.2.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__serde-1.0.228\",\n        sha256 = \"9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/serde/1.0.228/download\"],\n        strip_prefix = \"serde-1.0.228\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.serde-1.0.228.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__serde_core-1.0.228\",\n        sha256 = \"41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/serde_core/1.0.228/download\"],\n        strip_prefix = \"serde_core-1.0.228\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.serde_core-1.0.228.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__serde_derive-1.0.228\",\n        sha256 = \"d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/serde_derive/1.0.228/download\"],\n        strip_prefix = \"serde_derive-1.0.228\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.serde_derive-1.0.228.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__serde_json5-0.2.1\",\n        sha256 = \"5d34d03f54462862f2a42918391c9526337f53171eaa4d8894562be7f252edd3\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/serde_json5/0.2.1/download\"],\n        strip_prefix = \"serde_json5-0.2.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.serde_json5-0.2.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__serde_spanned-0.6.9\",\n        sha256 = \"bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/serde_spanned/0.6.9/download\"],\n        strip_prefix = \"serde_spanned-0.6.9\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.serde_spanned-0.6.9.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__sha2-0.10.9\",\n        sha256 = \"a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/sha2/0.10.9/download\"],\n        strip_prefix = \"sha2-0.10.9\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.sha2-0.10.9.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__simd-adler32-0.3.8\",\n        sha256 = \"e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/simd-adler32/0.3.8/download\"],\n        strip_prefix = \"simd-adler32-0.3.8\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.simd-adler32-0.3.8.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__strsim-0.11.1\",\n        sha256 = \"7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/strsim/0.11.1/download\"],\n        strip_prefix = \"strsim-0.11.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.strsim-0.11.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__syn-2.0.115\",\n        sha256 = \"6e614ed320ac28113fa64972c4262d5dbc89deacdfd00c34a3e4cea073243c12\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/syn/2.0.115/download\"],\n        strip_prefix = \"syn-2.0.115\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.syn-2.0.115.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__toml-0.8.23\",\n        sha256 = \"dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/toml/0.8.23/download\"],\n        strip_prefix = \"toml-0.8.23\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.toml-0.8.23.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__toml_datetime-0.6.11\",\n        sha256 = \"22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/toml_datetime/0.6.11/download\"],\n        strip_prefix = \"toml_datetime-0.6.11\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.toml_datetime-0.6.11.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__toml_edit-0.22.27\",\n        sha256 = \"41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/toml_edit/0.22.27/download\"],\n        strip_prefix = \"toml_edit-0.22.27\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.toml_edit-0.22.27.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__toml_write-0.1.2\",\n        sha256 = \"5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/toml_write/0.1.2/download\"],\n        strip_prefix = \"toml_write-0.1.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.toml_write-0.1.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__twox-hash-2.1.2\",\n        sha256 = \"9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/twox-hash/2.1.2/download\"],\n        strip_prefix = \"twox-hash-2.1.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.twox-hash-2.1.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__typenum-1.19.0\",\n        sha256 = \"562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/typenum/1.19.0/download\"],\n        strip_prefix = \"typenum-1.19.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.typenum-1.19.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__ucd-trie-0.1.7\",\n        sha256 = \"2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/ucd-trie/0.1.7/download\"],\n        strip_prefix = \"ucd-trie-0.1.7\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.ucd-trie-0.1.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__unicode-ident-1.0.23\",\n        sha256 = \"537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/unicode-ident/1.0.23/download\"],\n        strip_prefix = \"unicode-ident-1.0.23\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.unicode-ident-1.0.23.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__utf8parse-0.2.2\",\n        sha256 = \"06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/utf8parse/0.2.2/download\"],\n        strip_prefix = \"utf8parse-0.2.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.utf8parse-0.2.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__version_check-0.9.5\",\n        sha256 = \"0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/version_check/0.9.5/download\"],\n        strip_prefix = \"version_check-0.9.5\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.version_check-0.9.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__windows-link-0.2.1\",\n        sha256 = \"f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/windows-link/0.2.1/download\"],\n        strip_prefix = \"windows-link-0.2.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.windows-link-0.2.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__windows-sys-0.61.2\",\n        sha256 = \"ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/windows-sys/0.61.2/download\"],\n        strip_prefix = \"windows-sys-0.61.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.windows-sys-0.61.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__winnow-0.7.14\",\n        sha256 = \"5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/winnow/0.7.14/download\"],\n        strip_prefix = \"winnow-0.7.14\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.winnow-0.7.14.bazel\"),\n    )\n\n    return [\n       struct(repo=\"rust_crates_base__anyhow-1.0.101\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__bitfield-struct-0.11.0\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__bitflags-2.10.0\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__clap-4.5.58\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__compiler_builtins-0.1.160\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__hashlink-0.10.0\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__minijinja-2.15.1\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__nom-7.1.3\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__object-0.37.3\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__panic-halt-1.0.0\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__paste-1.0.15\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__proc-macro2-1.0.106\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__quote-1.0.44\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__riscv-0.12.1\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__riscv-rt-0.12.2\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__riscv-semihosting-0.1.3\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__rustc-demangle-0.1.27\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__serde-1.0.228\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__serde_json5-0.2.1\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__syn-2.0.115\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__toml-0.8.23\", is_dev_dep = False),\n    ]\n"
+                "defs.bzl": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\"\"\"\n# `crates_repository` API\n\n- [aliases](#aliases)\n- [crate_deps](#crate_deps)\n- [all_crate_deps](#all_crate_deps)\n- [crate_repositories](#crate_repositories)\n\n\"\"\"\n\nload(\"@bazel_tools//tools/build_defs/repo:git.bzl\", \"new_git_repository\")\nload(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\nload(\"@bazel_tools//tools/build_defs/repo:utils.bzl\", \"maybe\")\nload(\"@bazel_skylib//lib:selects.bzl\", \"selects\")\nload(\"@rules_rust//crate_universe/private:local_crate_mirror.bzl\", \"local_crate_mirror\")\n\n###############################################################################\n# MACROS API\n###############################################################################\n\n# An identifier that represent common dependencies (unconditional).\n_COMMON_CONDITION = \"\"\n\ndef _flatten_dependency_maps(all_dependency_maps):\n    \"\"\"Flatten a list of dependency maps into one dictionary.\n\n    Dependency maps have the following structure:\n\n    ```python\n    DEPENDENCIES_MAP = {\n        # The first key in the map is a Bazel package\n        # name of the workspace this file is defined in.\n        \"workspace_member_package\": {\n\n            # Not all dependencies are supported for all platforms.\n            # the condition key is the condition required to be true\n            # on the host platform.\n            \"condition\": {\n\n                # An alias to a crate target.     # The label of the crate target the\n                # Aliases are only crate names.   # package name refers to.\n                \"package_name\":                   \"@full//:label\",\n            }\n        }\n    }\n    ```\n\n    Args:\n        all_dependency_maps (list): A list of dicts as described above\n\n    Returns:\n        dict: A dictionary as described above\n    \"\"\"\n    dependencies = {}\n\n    for workspace_deps_map in all_dependency_maps:\n        for pkg_name, conditional_deps_map in workspace_deps_map.items():\n            if pkg_name not in dependencies:\n                non_frozen_map = dict()\n                for key, values in conditional_deps_map.items():\n                    non_frozen_map.update({key: dict(values.items())})\n                dependencies.setdefault(pkg_name, non_frozen_map)\n                continue\n\n            for condition, deps_map in conditional_deps_map.items():\n                # If the condition has not been recorded, do so and continue\n                if condition not in dependencies[pkg_name]:\n                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))\n                    continue\n\n                # Alert on any miss-matched dependencies\n                inconsistent_entries = []\n                for crate_name, crate_label in deps_map.items():\n                    existing = dependencies[pkg_name][condition].get(crate_name)\n                    if existing and existing != crate_label:\n                        inconsistent_entries.append((crate_name, existing, crate_label))\n                    dependencies[pkg_name][condition].update({crate_name: crate_label})\n\n    return dependencies\n\ndef crate_deps(deps, package_name = None):\n    \"\"\"Finds the fully qualified label of the requested crates for the package where this macro is called.\n\n    Args:\n        deps (list): The desired list of crate targets.\n        package_name (str, optional): The package name of the set of dependencies to look up.\n            Defaults to `native.package_name()`.\n\n    Returns:\n        list: A list of labels to generated rust targets (str)\n    \"\"\"\n\n    if not deps:\n        return []\n\n    if package_name == None:\n        package_name = native.package_name()\n\n    # Join both sets of dependencies\n    dependencies = _flatten_dependency_maps([\n        _NORMAL_DEPENDENCIES,\n        _NORMAL_DEV_DEPENDENCIES,\n        _PROC_MACRO_DEPENDENCIES,\n        _PROC_MACRO_DEV_DEPENDENCIES,\n        _BUILD_DEPENDENCIES,\n        _BUILD_PROC_MACRO_DEPENDENCIES,\n    ]).pop(package_name, {})\n\n    # Combine all conditional packages so we can easily index over a flat list\n    # TODO: Perhaps this should actually return select statements and maintain\n    # the conditionals of the dependencies\n    flat_deps = {}\n    for deps_set in dependencies.values():\n        for crate_name, crate_label in deps_set.items():\n            flat_deps.update({crate_name: crate_label})\n\n    missing_crates = []\n    crate_targets = []\n    for crate_target in deps:\n        if crate_target not in flat_deps:\n            missing_crates.append(crate_target)\n        else:\n            crate_targets.append(flat_deps[crate_target])\n\n    if missing_crates:\n        fail(\"Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`\".format(\n            missing_crates,\n            package_name,\n            dependencies,\n        ))\n\n    return crate_targets\n\ndef all_crate_deps(\n        normal = False, \n        normal_dev = False, \n        proc_macro = False, \n        proc_macro_dev = False,\n        build = False,\n        build_proc_macro = False,\n        package_name = None):\n    \"\"\"Finds the fully qualified label of all requested direct crate dependencies \\\n    for the package where this macro is called.\n\n    If no parameters are set, all normal dependencies are returned. Setting any one flag will\n    otherwise impact the contents of the returned list.\n\n    Args:\n        normal (bool, optional): If True, normal dependencies are included in the\n            output list.\n        normal_dev (bool, optional): If True, normal dev dependencies will be\n            included in the output list..\n        proc_macro (bool, optional): If True, proc_macro dependencies are included\n            in the output list.\n        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n            included in the output list.\n        build (bool, optional): If True, build dependencies are included\n            in the output list.\n        build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n            included in the output list.\n        package_name (str, optional): The package name of the set of dependencies to look up.\n            Defaults to `native.package_name()` when unset.\n\n    Returns:\n        list: A list of labels to generated rust targets (str)\n    \"\"\"\n\n    if package_name == None:\n        package_name = native.package_name()\n\n    # Determine the relevant maps to use\n    all_dependency_maps = []\n    if normal:\n        all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n    if normal_dev:\n        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)\n    if proc_macro:\n        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)\n    if proc_macro_dev:\n        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)\n    if build:\n        all_dependency_maps.append(_BUILD_DEPENDENCIES)\n    if build_proc_macro:\n        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)\n\n    # Default to always using normal dependencies\n    if not all_dependency_maps:\n        all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n\n    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)\n\n    if not dependencies:\n        if dependencies == None:\n            fail(\"Tried to get all_crate_deps for package \" + package_name + \" but that package had no Cargo.toml file\")\n        else:\n            return []\n\n    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())\n    for condition, deps in dependencies.items():\n        crate_deps += selects.with_or({\n            tuple(_CONDITIONS[condition]): deps.values(),\n            \"//conditions:default\": [],\n        })\n\n    return crate_deps\n\ndef aliases(\n        normal = False,\n        normal_dev = False,\n        proc_macro = False,\n        proc_macro_dev = False,\n        build = False,\n        build_proc_macro = False,\n        package_name = None):\n    \"\"\"Produces a map of Crate alias names to their original label\n\n    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.\n    Setting any one flag will otherwise determine the contents of the returned dict.\n\n    Args:\n        normal (bool, optional): If True, normal dependencies are included in the\n            output list.\n        normal_dev (bool, optional): If True, normal dev dependencies will be\n            included in the output list..\n        proc_macro (bool, optional): If True, proc_macro dependencies are included\n            in the output list.\n        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n            included in the output list.\n        build (bool, optional): If True, build dependencies are included\n            in the output list.\n        build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n            included in the output list.\n        package_name (str, optional): The package name of the set of dependencies to look up.\n            Defaults to `native.package_name()` when unset.\n\n    Returns:\n        dict: The aliases of all associated packages\n    \"\"\"\n    if package_name == None:\n        package_name = native.package_name()\n\n    # Determine the relevant maps to use\n    all_aliases_maps = []\n    if normal:\n        all_aliases_maps.append(_NORMAL_ALIASES)\n    if normal_dev:\n        all_aliases_maps.append(_NORMAL_DEV_ALIASES)\n    if proc_macro:\n        all_aliases_maps.append(_PROC_MACRO_ALIASES)\n    if proc_macro_dev:\n        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)\n    if build:\n        all_aliases_maps.append(_BUILD_ALIASES)\n    if build_proc_macro:\n        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)\n\n    # Default to always using normal aliases\n    if not all_aliases_maps:\n        all_aliases_maps.append(_NORMAL_ALIASES)\n        all_aliases_maps.append(_PROC_MACRO_ALIASES)\n\n    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)\n\n    if not aliases:\n        return dict()\n\n    common_items = aliases.pop(_COMMON_CONDITION, {}).items()\n\n    # If there are only common items in the dictionary, immediately return them\n    if not len(aliases.keys()) == 1:\n        return dict(common_items)\n\n    # Build a single select statement where each conditional has accounted for the\n    # common set of aliases.\n    crate_aliases = {\"//conditions:default\": dict(common_items)}\n    for condition, deps in aliases.items():\n        condition_triples = _CONDITIONS[condition]\n        for triple in condition_triples:\n            if triple in crate_aliases:\n                crate_aliases[triple].update(deps)\n            else:\n                crate_aliases.update({triple: dict(deps.items() + common_items)})\n\n    return select(crate_aliases)\n\n###############################################################################\n# WORKSPACE MEMBER DEPS AND ALIASES\n###############################################################################\n\n_NORMAL_DEPENDENCIES = {\n    \"third_party/crates_io\": {\n        _COMMON_CONDITION: {\n            \"anyhow\": Label(\"@rust_crates_base//:anyhow-1.0.101\"),\n            \"bitflags\": Label(\"@rust_crates_base//:bitflags-2.10.0\"),\n            \"byteorder\": Label(\"@rust_crates_base//:byteorder-1.5.0\"),\n            \"clap\": Label(\"@rust_crates_base//:clap-4.5.58\"),\n            \"compiler_builtins\": Label(\"@rust_crates_base//:compiler_builtins-0.1.160\"),\n            \"cortex-m\": Label(\"@rust_crates_base//:cortex-m-0.7.7\"),\n            \"cortex-m-rt\": Label(\"@rust_crates_base//:cortex-m-rt-0.7.5\"),\n            \"cortex-m-semihosting\": Label(\"@rust_crates_base//:cortex-m-semihosting-0.5.0\"),\n            \"embedded-io\": Label(\"@rust_crates_base//:embedded-io-0.6.1\"),\n            \"hashlink\": Label(\"@rust_crates_base//:hashlink-0.10.0\"),\n            \"minijinja\": Label(\"@rust_crates_base//:minijinja-2.15.1\"),\n            \"nom\": Label(\"@rust_crates_base//:nom-7.1.3\"),\n            \"object\": Label(\"@rust_crates_base//:object-0.37.3\"),\n            \"panic-halt\": Label(\"@rust_crates_base//:panic-halt-1.0.0\"),\n            \"proc-macro2\": Label(\"@rust_crates_base//:proc-macro2-1.0.106\"),\n            \"quote\": Label(\"@rust_crates_base//:quote-1.0.44\"),\n            \"riscv\": Label(\"@rust_crates_base//:riscv-0.12.1\"),\n            \"riscv-rt\": Label(\"@rust_crates_base//:riscv-rt-0.12.2\"),\n            \"riscv-semihosting\": Label(\"@rust_crates_base//:riscv-semihosting-0.1.3\"),\n            \"rustc-demangle\": Label(\"@rust_crates_base//:rustc-demangle-0.1.27\"),\n            \"serde\": Label(\"@rust_crates_base//:serde-1.0.228\"),\n            \"serde_json5\": Label(\"@rust_crates_base//:serde_json5-0.2.1\"),\n            \"syn\": Label(\"@rust_crates_base//:syn-2.0.114\"),\n            \"toml\": Label(\"@rust_crates_base//:toml-0.8.23\"),\n        },\n    },\n}\n\n\n_NORMAL_ALIASES = {\n    \"third_party/crates_io\": {\n        _COMMON_CONDITION: {\n        },\n    },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n    \"third_party/crates_io\": {\n        _COMMON_CONDITION: {\n            \"bitfield-struct\": Label(\"@rust_crates_base//:bitfield-struct-0.11.0\"),\n            \"paste\": Label(\"@rust_crates_base//:paste-1.0.15\"),\n        },\n    },\n}\n\n\n_PROC_MACRO_ALIASES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_BUILD_DEPENDENCIES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_BUILD_ALIASES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n    \"third_party/crates_io\": {\n    },\n}\n\n\n_CONDITIONS = {\n    \"aarch64-apple-darwin\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n    \"aarch64-linux-android\": [],\n    \"aarch64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n    \"cfg(all(target_arch = \\\"aarch64\\\", target_os = \\\"linux\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n    \"cfg(all(target_arch = \\\"aarch64\\\", target_vendor = \\\"apple\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n    \"cfg(all(target_arch = \\\"loongarch64\\\", target_os = \\\"linux\\\"))\": [],\n    \"cfg(any())\": [],\n    \"cfg(any(target_arch = \\\"aarch64\\\", target_arch = \\\"x86_64\\\", target_arch = \\\"x86\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n    \"cfg(windows)\": [],\n    \"riscv32imc-unknown-none-elf\": [\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\"],\n    \"thumbv7m-none-eabi\": [\"@rules_rust//rust/platform:thumbv7m-none-eabi\"],\n    \"x86_64-apple-darwin\": [\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n    \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n}\n\n###############################################################################\n\ndef crate_repositories():\n    \"\"\"A macro for defining repositories for all generated crates.\n\n    Returns:\n      A list of repos visible to the module through the module extension.\n    \"\"\"\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__adler2-2.0.1\",\n        sha256 = \"320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/adler2/2.0.1/download\"],\n        strip_prefix = \"adler2-2.0.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.adler2-2.0.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__anstream-0.6.21\",\n        sha256 = \"43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/anstream/0.6.21/download\"],\n        strip_prefix = \"anstream-0.6.21\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.anstream-0.6.21.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__anstyle-1.0.13\",\n        sha256 = \"5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/anstyle/1.0.13/download\"],\n        strip_prefix = \"anstyle-1.0.13\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.anstyle-1.0.13.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__anstyle-parse-0.2.7\",\n        sha256 = \"4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/anstyle-parse/0.2.7/download\"],\n        strip_prefix = \"anstyle-parse-0.2.7\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.anstyle-parse-0.2.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__anstyle-query-1.1.5\",\n        sha256 = \"40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/anstyle-query/1.1.5/download\"],\n        strip_prefix = \"anstyle-query-1.1.5\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.anstyle-query-1.1.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__anstyle-wincon-3.0.11\",\n        sha256 = \"291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/anstyle-wincon/3.0.11/download\"],\n        strip_prefix = \"anstyle-wincon-3.0.11\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.anstyle-wincon-3.0.11.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__anyhow-1.0.101\",\n        sha256 = \"5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/anyhow/1.0.101/download\"],\n        strip_prefix = \"anyhow-1.0.101\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.anyhow-1.0.101.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__bare-metal-0.2.5\",\n        sha256 = \"5deb64efa5bd81e31fcd1938615a6d98c82eafcbcd787162b6f63b91d6bac5b3\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/bare-metal/0.2.5/download\"],\n        strip_prefix = \"bare-metal-0.2.5\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.bare-metal-0.2.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__bitfield-0.13.2\",\n        sha256 = \"46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/bitfield/0.13.2/download\"],\n        strip_prefix = \"bitfield-0.13.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.bitfield-0.13.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__bitfield-struct-0.11.0\",\n        sha256 = \"d3ca019570363e800b05ad4fd890734f28ac7b72f563ad8a35079efb793616f8\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/bitfield-struct/0.11.0/download\"],\n        strip_prefix = \"bitfield-struct-0.11.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.bitfield-struct-0.11.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__bitflags-2.10.0\",\n        sha256 = \"812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/bitflags/2.10.0/download\"],\n        strip_prefix = \"bitflags-2.10.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.bitflags-2.10.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__block-buffer-0.10.4\",\n        sha256 = \"3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/block-buffer/0.10.4/download\"],\n        strip_prefix = \"block-buffer-0.10.4\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.block-buffer-0.10.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__byteorder-1.5.0\",\n        sha256 = \"1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/byteorder/1.5.0/download\"],\n        strip_prefix = \"byteorder-1.5.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.byteorder-1.5.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__cfg-if-1.0.4\",\n        sha256 = \"9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cfg-if/1.0.4/download\"],\n        strip_prefix = \"cfg-if-1.0.4\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.cfg-if-1.0.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__clap-4.5.58\",\n        sha256 = \"63be97961acde393029492ce0be7a1af7e323e6bae9511ebfac33751be5e6806\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/clap/4.5.58/download\"],\n        strip_prefix = \"clap-4.5.58\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.clap-4.5.58.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__clap_builder-4.5.58\",\n        sha256 = \"7f13174bda5dfd69d7e947827e5af4b0f2f94a4a3ee92912fba07a66150f21e2\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/clap_builder/4.5.58/download\"],\n        strip_prefix = \"clap_builder-4.5.58\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.clap_builder-4.5.58.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__clap_derive-4.5.55\",\n        sha256 = \"a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/clap_derive/4.5.55/download\"],\n        strip_prefix = \"clap_derive-4.5.55\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.clap_derive-4.5.55.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__clap_lex-1.0.0\",\n        sha256 = \"3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/clap_lex/1.0.0/download\"],\n        strip_prefix = \"clap_lex-1.0.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.clap_lex-1.0.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__colorchoice-1.0.4\",\n        sha256 = \"b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/colorchoice/1.0.4/download\"],\n        strip_prefix = \"colorchoice-1.0.4\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.colorchoice-1.0.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__compiler_builtins-0.1.160\",\n        sha256 = \"6376049cfa92c0aa8b9ac95fae22184b981c658208d4ed8a1dc553cd83612895\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/compiler_builtins/0.1.160/download\"],\n        strip_prefix = \"compiler_builtins-0.1.160\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.compiler_builtins-0.1.160.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__cortex-m-0.7.7\",\n        sha256 = \"8ec610d8f49840a5b376c69663b6369e71f4b34484b9b2eb29fb918d92516cb9\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cortex-m/0.7.7/download\"],\n        strip_prefix = \"cortex-m-0.7.7\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.cortex-m-0.7.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__cortex-m-rt-0.7.5\",\n        sha256 = \"801d4dec46b34c299ccf6b036717ae0fce602faa4f4fe816d9013b9a7c9f5ba6\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cortex-m-rt/0.7.5/download\"],\n        strip_prefix = \"cortex-m-rt-0.7.5\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.cortex-m-rt-0.7.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__cortex-m-rt-macros-0.7.5\",\n        sha256 = \"e37549a379a9e0e6e576fd208ee60394ccb8be963889eebba3ffe0980364f472\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cortex-m-rt-macros/0.7.5/download\"],\n        strip_prefix = \"cortex-m-rt-macros-0.7.5\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.cortex-m-rt-macros-0.7.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__cortex-m-semihosting-0.5.0\",\n        sha256 = \"c23234600452033cc77e4b761e740e02d2c4168e11dbf36ab14a0f58973592b0\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cortex-m-semihosting/0.5.0/download\"],\n        strip_prefix = \"cortex-m-semihosting-0.5.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.cortex-m-semihosting-0.5.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__cpufeatures-0.2.17\",\n        sha256 = \"59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cpufeatures/0.2.17/download\"],\n        strip_prefix = \"cpufeatures-0.2.17\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.cpufeatures-0.2.17.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__crc32fast-1.5.0\",\n        sha256 = \"9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/crc32fast/1.5.0/download\"],\n        strip_prefix = \"crc32fast-1.5.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.crc32fast-1.5.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__critical-section-1.2.0\",\n        sha256 = \"790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/critical-section/1.2.0/download\"],\n        strip_prefix = \"critical-section-1.2.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.critical-section-1.2.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__crypto-common-0.1.7\",\n        sha256 = \"78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/crypto-common/0.1.7/download\"],\n        strip_prefix = \"crypto-common-0.1.7\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.crypto-common-0.1.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__digest-0.10.7\",\n        sha256 = \"9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/digest/0.10.7/download\"],\n        strip_prefix = \"digest-0.10.7\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.digest-0.10.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__embedded-hal-0.2.7\",\n        sha256 = \"35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/embedded-hal/0.2.7/download\"],\n        strip_prefix = \"embedded-hal-0.2.7\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.embedded-hal-0.2.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__embedded-hal-1.0.0\",\n        sha256 = \"361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/embedded-hal/1.0.0/download\"],\n        strip_prefix = \"embedded-hal-1.0.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.embedded-hal-1.0.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__embedded-io-0.6.1\",\n        sha256 = \"edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/embedded-io/0.6.1/download\"],\n        strip_prefix = \"embedded-io-0.6.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.embedded-io-0.6.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__equivalent-1.0.2\",\n        sha256 = \"877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/equivalent/1.0.2/download\"],\n        strip_prefix = \"equivalent-1.0.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.equivalent-1.0.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__flate2-1.1.9\",\n        sha256 = \"843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/flate2/1.1.9/download\"],\n        strip_prefix = \"flate2-1.1.9\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.flate2-1.1.9.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__foldhash-0.1.5\",\n        sha256 = \"d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/foldhash/0.1.5/download\"],\n        strip_prefix = \"foldhash-0.1.5\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.foldhash-0.1.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__generic-array-0.14.7\",\n        sha256 = \"85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/generic-array/0.14.7/download\"],\n        strip_prefix = \"generic-array-0.14.7\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.generic-array-0.14.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__hashbrown-0.15.5\",\n        sha256 = \"9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/hashbrown/0.15.5/download\"],\n        strip_prefix = \"hashbrown-0.15.5\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.hashbrown-0.15.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__hashbrown-0.16.1\",\n        sha256 = \"841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/hashbrown/0.16.1/download\"],\n        strip_prefix = \"hashbrown-0.16.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.hashbrown-0.16.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__hashlink-0.10.0\",\n        sha256 = \"7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/hashlink/0.10.0/download\"],\n        strip_prefix = \"hashlink-0.10.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.hashlink-0.10.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__heck-0.5.0\",\n        sha256 = \"2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/heck/0.5.0/download\"],\n        strip_prefix = \"heck-0.5.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.heck-0.5.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__indexmap-2.13.0\",\n        sha256 = \"7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/indexmap/2.13.0/download\"],\n        strip_prefix = \"indexmap-2.13.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.indexmap-2.13.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__is_terminal_polyfill-1.70.2\",\n        sha256 = \"a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/is_terminal_polyfill/1.70.2/download\"],\n        strip_prefix = \"is_terminal_polyfill-1.70.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.is_terminal_polyfill-1.70.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__libc-0.2.181\",\n        sha256 = \"459427e2af2b9c839b132acb702a1c654d95e10f8c326bfc2ad11310e458b1c5\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/libc/0.2.181/download\"],\n        strip_prefix = \"libc-0.2.181\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.libc-0.2.181.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__memchr-2.8.0\",\n        sha256 = \"f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/memchr/2.8.0/download\"],\n        strip_prefix = \"memchr-2.8.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.memchr-2.8.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__memo-map-0.3.3\",\n        sha256 = \"38d1115007560874e373613744c6fba374c17688327a71c1476d1a5954cc857b\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/memo-map/0.3.3/download\"],\n        strip_prefix = \"memo-map-0.3.3\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.memo-map-0.3.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__minijinja-2.15.1\",\n        sha256 = \"b479616bb6f0779fb0f3964246beda02d4b01144e1b0d5519616e012ccc2a245\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/minijinja/2.15.1/download\"],\n        strip_prefix = \"minijinja-2.15.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.minijinja-2.15.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__minimal-lexical-0.2.1\",\n        sha256 = \"68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/minimal-lexical/0.2.1/download\"],\n        strip_prefix = \"minimal-lexical-0.2.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.minimal-lexical-0.2.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__miniz_oxide-0.8.9\",\n        sha256 = \"1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/miniz_oxide/0.8.9/download\"],\n        strip_prefix = \"miniz_oxide-0.8.9\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.miniz_oxide-0.8.9.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__nb-0.1.3\",\n        sha256 = \"801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/nb/0.1.3/download\"],\n        strip_prefix = \"nb-0.1.3\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.nb-0.1.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__nb-1.1.0\",\n        sha256 = \"8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/nb/1.1.0/download\"],\n        strip_prefix = \"nb-1.1.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.nb-1.1.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__nom-7.1.3\",\n        sha256 = \"d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/nom/7.1.3/download\"],\n        strip_prefix = \"nom-7.1.3\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.nom-7.1.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__object-0.37.3\",\n        sha256 = \"ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/object/0.37.3/download\"],\n        strip_prefix = \"object-0.37.3\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.object-0.37.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__once_cell_polyfill-1.70.2\",\n        sha256 = \"384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/once_cell_polyfill/1.70.2/download\"],\n        strip_prefix = \"once_cell_polyfill-1.70.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.once_cell_polyfill-1.70.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__panic-halt-1.0.0\",\n        sha256 = \"a513e167849a384b7f9b746e517604398518590a9142f4846a32e3c2a4de7b11\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/panic-halt/1.0.0/download\"],\n        strip_prefix = \"panic-halt-1.0.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.panic-halt-1.0.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__paste-1.0.15\",\n        sha256 = \"57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/paste/1.0.15/download\"],\n        strip_prefix = \"paste-1.0.15\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.paste-1.0.15.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__pest-2.8.6\",\n        sha256 = \"e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/pest/2.8.6/download\"],\n        strip_prefix = \"pest-2.8.6\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.pest-2.8.6.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__pest_derive-2.8.6\",\n        sha256 = \"11f486f1ea21e6c10ed15d5a7c77165d0ee443402f0780849d1768e7d9d6fe77\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/pest_derive/2.8.6/download\"],\n        strip_prefix = \"pest_derive-2.8.6\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.pest_derive-2.8.6.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__pest_generator-2.8.6\",\n        sha256 = \"8040c4647b13b210a963c1ed407c1ff4fdfa01c31d6d2a098218702e6664f94f\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/pest_generator/2.8.6/download\"],\n        strip_prefix = \"pest_generator-2.8.6\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.pest_generator-2.8.6.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__pest_meta-2.8.6\",\n        sha256 = \"89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/pest_meta/2.8.6/download\"],\n        strip_prefix = \"pest_meta-2.8.6\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.pest_meta-2.8.6.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__proc-macro2-1.0.106\",\n        sha256 = \"8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/proc-macro2/1.0.106/download\"],\n        strip_prefix = \"proc-macro2-1.0.106\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.proc-macro2-1.0.106.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__quote-1.0.44\",\n        sha256 = \"21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/quote/1.0.44/download\"],\n        strip_prefix = \"quote-1.0.44\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.quote-1.0.44.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-0.11.1\",\n        sha256 = \"2f5c1b8bf41ea746266cdee443d1d1e9125c86ce1447e1a2615abd34330d33a9\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv/0.11.1/download\"],\n        strip_prefix = \"riscv-0.11.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-0.11.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-0.12.1\",\n        sha256 = \"5ea8ff73d3720bdd0a97925f0bf79ad2744b6da8ff36be3840c48ac81191d7a7\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv/0.12.1/download\"],\n        strip_prefix = \"riscv-0.12.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-0.12.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-0.13.0\",\n        sha256 = \"afa3cdbeccae4359f6839a00e8b77e5736caa200ba216caf38d24e4c16e2b586\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv/0.13.0/download\"],\n        strip_prefix = \"riscv-0.13.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-0.13.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-macros-0.1.0\",\n        sha256 = \"f265be5d634272320a7de94cea15c22a3bfdd4eb42eb43edc528415f066a1f25\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv-macros/0.1.0/download\"],\n        strip_prefix = \"riscv-macros-0.1.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-macros-0.1.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-macros-0.2.0\",\n        sha256 = \"e8c4aa1ea1af6dcc83a61be12e8189f9b293c3ba5a487778a4cd89fb060fdbbc\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv-macros/0.2.0/download\"],\n        strip_prefix = \"riscv-macros-0.2.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-macros-0.2.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-pac-0.2.0\",\n        sha256 = \"8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv-pac/0.2.0/download\"],\n        strip_prefix = \"riscv-pac-0.2.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-pac-0.2.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-rt-0.12.2\",\n        sha256 = \"c0d35e32cf1383183e8885d8a9aa4402a087fd094dc34c2cb6df6687d0229dfe\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv-rt/0.12.2/download\"],\n        strip_prefix = \"riscv-rt-0.12.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-rt-0.12.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-rt-macros-0.2.2\",\n        sha256 = \"30f19a85fe107b65031e0ba8ec60c34c2494069fe910d6c297f5e7cb5a6f76d0\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv-rt-macros/0.2.2/download\"],\n        strip_prefix = \"riscv-rt-macros-0.2.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-rt-macros-0.2.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__riscv-semihosting-0.1.3\",\n        sha256 = \"1086dd4bcc13de1cb14b93849411e3466de7e5907d2d8eb269032536e93facc6\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/riscv-semihosting/0.1.3/download\"],\n        strip_prefix = \"riscv-semihosting-0.1.3\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.riscv-semihosting-0.1.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__rustc-demangle-0.1.27\",\n        sha256 = \"b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/rustc-demangle/0.1.27/download\"],\n        strip_prefix = \"rustc-demangle-0.1.27\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.rustc-demangle-0.1.27.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__rustc_version-0.2.3\",\n        sha256 = \"138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/rustc_version/0.2.3/download\"],\n        strip_prefix = \"rustc_version-0.2.3\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.rustc_version-0.2.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__ruzstd-0.8.2\",\n        sha256 = \"e5ff0cc5e135c8870a775d3320910cd9b564ec036b4dc0b8741629020be63f01\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/ruzstd/0.8.2/download\"],\n        strip_prefix = \"ruzstd-0.8.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.ruzstd-0.8.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__self_cell-1.2.2\",\n        sha256 = \"b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/self_cell/1.2.2/download\"],\n        strip_prefix = \"self_cell-1.2.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.self_cell-1.2.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__semver-0.9.0\",\n        sha256 = \"1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/semver/0.9.0/download\"],\n        strip_prefix = \"semver-0.9.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.semver-0.9.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__semver-parser-0.7.0\",\n        sha256 = \"388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/semver-parser/0.7.0/download\"],\n        strip_prefix = \"semver-parser-0.7.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.semver-parser-0.7.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__serde-1.0.228\",\n        sha256 = \"9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/serde/1.0.228/download\"],\n        strip_prefix = \"serde-1.0.228\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.serde-1.0.228.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__serde_core-1.0.228\",\n        sha256 = \"41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/serde_core/1.0.228/download\"],\n        strip_prefix = \"serde_core-1.0.228\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.serde_core-1.0.228.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__serde_derive-1.0.228\",\n        sha256 = \"d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/serde_derive/1.0.228/download\"],\n        strip_prefix = \"serde_derive-1.0.228\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.serde_derive-1.0.228.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__serde_json5-0.2.1\",\n        sha256 = \"5d34d03f54462862f2a42918391c9526337f53171eaa4d8894562be7f252edd3\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/serde_json5/0.2.1/download\"],\n        strip_prefix = \"serde_json5-0.2.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.serde_json5-0.2.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__serde_spanned-0.6.9\",\n        sha256 = \"bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/serde_spanned/0.6.9/download\"],\n        strip_prefix = \"serde_spanned-0.6.9\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.serde_spanned-0.6.9.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__sha2-0.10.9\",\n        sha256 = \"a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/sha2/0.10.9/download\"],\n        strip_prefix = \"sha2-0.10.9\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.sha2-0.10.9.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__simd-adler32-0.3.8\",\n        sha256 = \"e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/simd-adler32/0.3.8/download\"],\n        strip_prefix = \"simd-adler32-0.3.8\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.simd-adler32-0.3.8.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__strsim-0.11.1\",\n        sha256 = \"7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/strsim/0.11.1/download\"],\n        strip_prefix = \"strsim-0.11.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.strsim-0.11.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__syn-2.0.114\",\n        sha256 = \"d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/syn/2.0.114/download\"],\n        strip_prefix = \"syn-2.0.114\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.syn-2.0.114.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__toml-0.8.23\",\n        sha256 = \"dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/toml/0.8.23/download\"],\n        strip_prefix = \"toml-0.8.23\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.toml-0.8.23.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__toml_datetime-0.6.11\",\n        sha256 = \"22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/toml_datetime/0.6.11/download\"],\n        strip_prefix = \"toml_datetime-0.6.11\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.toml_datetime-0.6.11.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__toml_edit-0.22.27\",\n        sha256 = \"41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/toml_edit/0.22.27/download\"],\n        strip_prefix = \"toml_edit-0.22.27\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.toml_edit-0.22.27.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__toml_write-0.1.2\",\n        sha256 = \"5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/toml_write/0.1.2/download\"],\n        strip_prefix = \"toml_write-0.1.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.toml_write-0.1.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__twox-hash-2.1.2\",\n        sha256 = \"9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/twox-hash/2.1.2/download\"],\n        strip_prefix = \"twox-hash-2.1.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.twox-hash-2.1.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__typenum-1.19.0\",\n        sha256 = \"562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/typenum/1.19.0/download\"],\n        strip_prefix = \"typenum-1.19.0\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.typenum-1.19.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__ucd-trie-0.1.7\",\n        sha256 = \"2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/ucd-trie/0.1.7/download\"],\n        strip_prefix = \"ucd-trie-0.1.7\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.ucd-trie-0.1.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__unicode-ident-1.0.23\",\n        sha256 = \"537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/unicode-ident/1.0.23/download\"],\n        strip_prefix = \"unicode-ident-1.0.23\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.unicode-ident-1.0.23.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__utf8parse-0.2.2\",\n        sha256 = \"06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/utf8parse/0.2.2/download\"],\n        strip_prefix = \"utf8parse-0.2.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.utf8parse-0.2.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__vcell-0.1.3\",\n        sha256 = \"77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/vcell/0.1.3/download\"],\n        strip_prefix = \"vcell-0.1.3\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.vcell-0.1.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__version_check-0.9.5\",\n        sha256 = \"0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/version_check/0.9.5/download\"],\n        strip_prefix = \"version_check-0.9.5\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.version_check-0.9.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__void-1.0.2\",\n        sha256 = \"6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/void/1.0.2/download\"],\n        strip_prefix = \"void-1.0.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.void-1.0.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__volatile-register-0.2.2\",\n        sha256 = \"de437e2a6208b014ab52972a27e59b33fa2920d3e00fe05026167a1c509d19cc\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/volatile-register/0.2.2/download\"],\n        strip_prefix = \"volatile-register-0.2.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.volatile-register-0.2.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__windows-link-0.2.1\",\n        sha256 = \"f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/windows-link/0.2.1/download\"],\n        strip_prefix = \"windows-link-0.2.1\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.windows-link-0.2.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__windows-sys-0.61.2\",\n        sha256 = \"ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/windows-sys/0.61.2/download\"],\n        strip_prefix = \"windows-sys-0.61.2\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.windows-sys-0.61.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"rust_crates_base__winnow-0.7.14\",\n        sha256 = \"5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/winnow/0.7.14/download\"],\n        strip_prefix = \"winnow-0.7.14\",\n        build_file = Label(\"@rust_crates_base//rust_crates_base:BUILD.winnow-0.7.14.bazel\"),\n    )\n\n    return [\n       struct(repo=\"rust_crates_base__anyhow-1.0.101\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__bitfield-struct-0.11.0\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__bitflags-2.10.0\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__byteorder-1.5.0\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__clap-4.5.58\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__compiler_builtins-0.1.160\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__cortex-m-0.7.7\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__cortex-m-rt-0.7.5\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__cortex-m-semihosting-0.5.0\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__embedded-io-0.6.1\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__hashlink-0.10.0\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__minijinja-2.15.1\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__nom-7.1.3\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__object-0.37.3\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__panic-halt-1.0.0\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__paste-1.0.15\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__proc-macro2-1.0.106\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__quote-1.0.44\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__riscv-0.12.1\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__riscv-rt-0.12.2\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__riscv-semihosting-0.1.3\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__rustc-demangle-0.1.27\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__serde-1.0.228\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__serde_json5-0.2.1\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__syn-2.0.114\", is_dev_dep = False),\n       struct(repo=\"rust_crates_base__toml-0.8.23\", is_dev_dep = False),\n    ]\n"
               }
             }
           },
@@ -1729,6 +1729,38 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"anyhow\",\n    deps = [\n        \"@rust_crates_base__anyhow-1.0.101//:build_script_build\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n        \"std\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=anyhow\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.0.101\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n        \"std\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2021\",\n    pkg_name = \"anyhow\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=anyhow\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"1.0.101\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
             }
           },
+          "rust_crates_base__bare-metal-0.2.5": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "5deb64efa5bd81e31fcd1938615a6d98c82eafcbcd787162b6f63b91d6bac5b3",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/bare-metal/0.2.5/download"
+              ],
+              "strip_prefix": "bare-metal-0.2.5",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"bare_metal\",\n    deps = [\n        \"@rust_crates_base__bare-metal-0.2.5//:build_script_build\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"const-fn\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=bare-metal\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.2.5\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"const-fn\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    deps = [\n        \"@rust_crates_base__rustc_version-0.2.3//:rustc_version\",\n    ],\n    edition = \"2015\",\n    pkg_name = \"bare-metal\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=bare-metal\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.2.5\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
+            }
+          },
+          "rust_crates_base__bitfield-0.13.2": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/bitfield/0.13.2/download"
+              ],
+              "strip_prefix": "bitfield-0.13.2",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"bitfield\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=bitfield\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.13.2\",\n)\n"
+            }
+          },
           "rust_crates_base__bitfield-struct-0.11.0": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -1742,7 +1774,7 @@
                 "https://static.crates.io/crates/bitfield-struct/0.11.0/download"
               ],
               "strip_prefix": "bitfield-struct-0.11.0",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"bitfield_struct\",\n    deps = [\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.115//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=bitfield-struct\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.11.0\",\n)\n"
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"bitfield_struct\",\n    deps = [\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.114//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=bitfield-struct\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.11.0\",\n)\n"
             }
           },
           "rust_crates_base__bitflags-2.10.0": {
@@ -1777,6 +1809,22 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"block_buffer\",\n    deps = [\n        \"@rust_crates_base__generic-array-0.14.7//:generic_array\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=block-buffer\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.10.4\",\n)\n"
             }
           },
+          "rust_crates_base__byteorder-1.5.0": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/byteorder/1.5.0/download"
+              ],
+              "strip_prefix": "byteorder-1.5.0",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"byteorder\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n        \"std\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=byteorder\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.5.0\",\n)\n"
+            }
+          },
           "rust_crates_base__cfg-if-1.0.4": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -1838,7 +1886,7 @@
                 "https://static.crates.io/crates/clap_derive/4.5.55/download"
               ],
               "strip_prefix": "clap_derive-4.5.55",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"clap_derive\",\n    deps = [\n        \"@rust_crates_base__heck-0.5.0//:heck\",\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.115//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=clap_derive\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"4.5.55\",\n)\n"
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"clap_derive\",\n    deps = [\n        \"@rust_crates_base__heck-0.5.0//:heck\",\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.114//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=clap_derive\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"4.5.55\",\n)\n"
             }
           },
           "rust_crates_base__clap_lex-1.0.0": {
@@ -1889,6 +1937,70 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"compiler_builtins\",\n    deps = [\n        \"@rust_crates_base__compiler_builtins-0.1.160//:build_script_build\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"compiler-builtins\",\n        \"default\",\n        \"no-f16-f128\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2024\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=compiler_builtins\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.160\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"compiler-builtins\",\n        \"default\",\n        \"no-f16-f128\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2024\",\n    links = \"compiler-rt\",\n    pkg_name = \"compiler_builtins\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=compiler_builtins\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.1.160\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
             }
           },
+          "rust_crates_base__cortex-m-0.7.7": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "8ec610d8f49840a5b376c69663b6369e71f4b34484b9b2eb29fb918d92516cb9",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/cortex-m/0.7.7/download"
+              ],
+              "strip_prefix": "cortex-m-0.7.7",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"cortex_m\",\n    deps = [\n        \"@rust_crates_base__bare-metal-0.2.5//:bare_metal\",\n        \"@rust_crates_base__bitfield-0.13.2//:bitfield\",\n        \"@rust_crates_base__cortex-m-0.7.7//:build_script_build\",\n        \"@rust_crates_base__embedded-hal-0.2.7//:embedded_hal\",\n        \"@rust_crates_base__volatile-register-0.2.2//:volatile_register\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=cortex-m\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.7.7\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2018\",\n    links = \"cortex-m\",\n    pkg_name = \"cortex-m\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=cortex-m\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.7.7\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
+            }
+          },
+          "rust_crates_base__cortex-m-rt-0.7.5": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "801d4dec46b34c299ccf6b036717ae0fce602faa4f4fe816d9013b9a7c9f5ba6",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/cortex-m-rt/0.7.5/download"
+              ],
+              "strip_prefix": "cortex-m-rt-0.7.5",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"cortex_m_rt\",\n    deps = [\n        \"@rust_crates_base__cortex-m-rt-0.7.5//:build_script_build\",\n    ],\n    proc_macro_deps = [\n        \"@rust_crates_base__cortex-m-rt-macros-0.7.5//:cortex_m_rt_macros\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=cortex-m-rt\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.7.5\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2021\",\n    links = \"cortex-m-rt\",\n    pkg_name = \"cortex-m-rt\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=cortex-m-rt\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.7.5\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
+            }
+          },
+          "rust_crates_base__cortex-m-rt-macros-0.7.5": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "e37549a379a9e0e6e576fd208ee60394ccb8be963889eebba3ffe0980364f472",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/cortex-m-rt-macros/0.7.5/download"
+              ],
+              "strip_prefix": "cortex-m-rt-macros-0.7.5",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"cortex_m_rt_macros\",\n    deps = [\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.114//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=cortex-m-rt-macros\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.7.5\",\n)\n"
+            }
+          },
+          "rust_crates_base__cortex-m-semihosting-0.5.0": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "c23234600452033cc77e4b761e740e02d2c4168e11dbf36ab14a0f58973592b0",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/cortex-m-semihosting/0.5.0/download"
+              ],
+              "strip_prefix": "cortex-m-semihosting-0.5.0",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"cortex_m_semihosting\",\n    deps = [\n        \"@rust_crates_base__cortex-m-0.7.7//:cortex_m\",\n        \"@rust_crates_base__cortex-m-semihosting-0.5.0//:build_script_build\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=cortex-m-semihosting\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.5.0\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    link_deps = [\n        \"@rust_crates_base__cortex-m-0.7.7//:cortex_m\",\n    ],\n    edition = \"2021\",\n    pkg_name = \"cortex-m-semihosting\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=cortex-m-semihosting\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.5.0\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
+            }
+          },
           "rust_crates_base__cpufeatures-0.2.17": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -1969,6 +2081,22 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"digest\",\n    deps = [\n        \"@rust_crates_base__block-buffer-0.10.4//:block_buffer\",\n        \"@rust_crates_base__crypto-common-0.1.7//:crypto_common\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"block-buffer\",\n        \"core-api\",\n        \"default\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=digest\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.10.7\",\n)\n"
             }
           },
+          "rust_crates_base__embedded-hal-0.2.7": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/embedded-hal/0.2.7/download"
+              ],
+              "strip_prefix": "embedded-hal-0.2.7",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"embedded_hal\",\n    deps = [\n        \"@rust_crates_base__nb-0.1.3//:nb\",\n        \"@rust_crates_base__void-1.0.2//:void\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=embedded-hal\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.2.7\",\n)\n"
+            }
+          },
           "rust_crates_base__embedded-hal-1.0.0": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -1985,6 +2113,22 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"embedded_hal\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=embedded-hal\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.0.0\",\n)\n"
             }
           },
+          "rust_crates_base__embedded-io-0.6.1": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/embedded-io/0.6.1/download"
+              ],
+              "strip_prefix": "embedded-io-0.6.1",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"embedded_io\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=embedded-io\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.6.1\",\n)\n"
+            }
+          },
           "rust_crates_base__equivalent-1.0.2": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -2241,6 +2385,38 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"miniz_oxide\",\n    deps = [\n        \"@rust_crates_base__adler2-2.0.1//:adler2\",\n        \"@rust_crates_base__simd-adler32-0.3.8//:simd_adler32\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"simd\",\n        \"simd-adler32\",\n        \"with-alloc\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=miniz_oxide\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.8.9\",\n)\n"
             }
           },
+          "rust_crates_base__nb-0.1.3": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/nb/0.1.3/download"
+              ],
+              "strip_prefix": "nb-0.1.3",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"nb\",\n    deps = [\n        \"@rust_crates_base__nb-1.1.0//:nb\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=nb\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.3\",\n)\n"
+            }
+          },
+          "rust_crates_base__nb-1.1.0": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/nb/1.1.0/download"
+              ],
+              "strip_prefix": "nb-1.1.0",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"nb\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=nb\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.1.0\",\n)\n"
+            }
+          },
           "rust_crates_base__nom-7.1.3": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -2366,7 +2542,7 @@
                 "https://static.crates.io/crates/pest_generator/2.8.6/download"
               ],
               "strip_prefix": "pest_generator-2.8.6",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"pest_generator\",\n    deps = [\n        \"@rust_crates_base__pest-2.8.6//:pest\",\n        \"@rust_crates_base__pest_meta-2.8.6//:pest_meta\",\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.115//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"std\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=pest_generator\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"2.8.6\",\n)\n"
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"pest_generator\",\n    deps = [\n        \"@rust_crates_base__pest-2.8.6//:pest\",\n        \"@rust_crates_base__pest_meta-2.8.6//:pest_meta\",\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.114//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"std\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=pest_generator\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"2.8.6\",\n)\n"
             }
           },
           "rust_crates_base__pest_meta-2.8.6": {
@@ -2478,7 +2654,7 @@
                 "https://static.crates.io/crates/riscv-macros/0.1.0/download"
               ],
               "strip_prefix": "riscv-macros-0.1.0",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"riscv_macros\",\n    deps = [\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.115//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=riscv-macros\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.0\",\n)\n"
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"riscv_macros\",\n    deps = [\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.114//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=riscv-macros\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.0\",\n)\n"
             }
           },
           "rust_crates_base__riscv-macros-0.2.0": {
@@ -2494,7 +2670,7 @@
                 "https://static.crates.io/crates/riscv-macros/0.2.0/download"
               ],
               "strip_prefix": "riscv-macros-0.2.0",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"riscv_macros\",\n    deps = [\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.115//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=riscv-macros\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.2.0\",\n)\n"
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"riscv_macros\",\n    deps = [\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.114//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=riscv-macros\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.2.0\",\n)\n"
             }
           },
           "rust_crates_base__riscv-pac-0.2.0": {
@@ -2542,7 +2718,7 @@
                 "https://static.crates.io/crates/riscv-rt-macros/0.2.2/download"
               ],
               "strip_prefix": "riscv-rt-macros-0.2.2",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"riscv_rt_macros\",\n    deps = [\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.115//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=riscv-rt-macros\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.2.2\",\n)\n"
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"riscv_rt_macros\",\n    deps = [\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.114//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=riscv-rt-macros\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.2.2\",\n)\n"
             }
           },
           "rust_crates_base__riscv-semihosting-0.1.3": {
@@ -2577,6 +2753,22 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"rustc_demangle\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=rustc-demangle\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.27\",\n)\n"
             }
           },
+          "rust_crates_base__rustc_version-0.2.3": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/rustc_version/0.2.3/download"
+              ],
+              "strip_prefix": "rustc_version-0.2.3",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"rustc_version\",\n    deps = [\n        \"@rust_crates_base__semver-0.9.0//:semver\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=rustc_version\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.2.3\",\n)\n"
+            }
+          },
           "rust_crates_base__ruzstd-0.8.2": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -2609,6 +2801,38 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"self_cell\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=self_cell\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.2.2\",\n)\n"
             }
           },
+          "rust_crates_base__semver-0.9.0": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/semver/0.9.0/download"
+              ],
+              "strip_prefix": "semver-0.9.0",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"semver\",\n    deps = [\n        \"@rust_crates_base__semver-parser-0.7.0//:semver_parser\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=semver\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.9.0\",\n)\n"
+            }
+          },
+          "rust_crates_base__semver-parser-0.7.0": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/semver-parser/0.7.0/download"
+              ],
+              "strip_prefix": "semver-parser-0.7.0",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"semver_parser\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=semver-parser\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.7.0\",\n)\n"
+            }
+          },
           "rust_crates_base__serde-1.0.228": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -2654,7 +2878,7 @@
                 "https://static.crates.io/crates/serde_derive/1.0.228/download"
               ],
               "strip_prefix": "serde_derive-1.0.228",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"serde_derive\",\n    deps = [\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.115//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=serde_derive\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.0.228\",\n)\n"
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"serde_derive\",\n    deps = [\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__syn-2.0.114//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=serde_derive\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.0.228\",\n)\n"
             }
           },
           "rust_crates_base__serde_json5-0.2.1": {
@@ -2737,20 +2961,20 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"strsim\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=strsim\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.11.1\",\n)\n"
             }
           },
-          "rust_crates_base__syn-2.0.115": {
+          "rust_crates_base__syn-2.0.114": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
               "patch_args": [],
               "patch_tool": "",
               "patches": [],
               "remote_patch_strip": 1,
-              "sha256": "6e614ed320ac28113fa64972c4262d5dbc89deacdfd00c34a3e4cea073243c12",
+              "sha256": "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a",
               "type": "tar.gz",
               "urls": [
-                "https://static.crates.io/crates/syn/2.0.115/download"
+                "https://static.crates.io/crates/syn/2.0.114/download"
               ],
-              "strip_prefix": "syn-2.0.115",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"syn\",\n    deps = [\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__unicode-ident-1.0.23//:unicode_ident\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"clone-impls\",\n        \"default\",\n        \"derive\",\n        \"extra-traits\",\n        \"full\",\n        \"parsing\",\n        \"printing\",\n        \"proc-macro\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=syn\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"2.0.115\",\n)\n"
+              "strip_prefix": "syn-2.0.114",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"syn\",\n    deps = [\n        \"@rust_crates_base__proc-macro2-1.0.106//:proc_macro2\",\n        \"@rust_crates_base__quote-1.0.44//:quote\",\n        \"@rust_crates_base__unicode-ident-1.0.23//:unicode_ident\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"clone-impls\",\n        \"default\",\n        \"derive\",\n        \"extra-traits\",\n        \"full\",\n        \"parsing\",\n        \"printing\",\n        \"proc-macro\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=syn\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"2.0.114\",\n)\n"
             }
           },
           "rust_crates_base__toml-0.8.23": {
@@ -2897,6 +3121,22 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"utf8parse\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=utf8parse\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.2.2\",\n)\n"
             }
           },
+          "rust_crates_base__vcell-0.1.3": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/vcell/0.1.3/download"
+              ],
+              "strip_prefix": "vcell-0.1.3",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"vcell\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=vcell\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.3\",\n)\n"
+            }
+          },
           "rust_crates_base__version_check-0.9.5": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -2913,6 +3153,38 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"version_check\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=version_check\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.9.5\",\n)\n"
             }
           },
+          "rust_crates_base__void-1.0.2": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/void/1.0.2/download"
+              ],
+              "strip_prefix": "void-1.0.2",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"void\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=void\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.0.2\",\n)\n"
+            }
+          },
+          "rust_crates_base__volatile-register-0.2.2": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "de437e2a6208b014ab52972a27e59b33fa2920d3e00fe05026167a1c509d19cc",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/volatile-register/0.2.2/download"
+              ],
+              "strip_prefix": "volatile-register-0.2.2",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"volatile_register\",\n    deps = [\n        \"@rust_crates_base__vcell-0.1.3//:vcell\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=volatile-register\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.2.2\",\n)\n"
+            }
+          },
           "rust_crates_base__windows-link-0.2.1": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -2965,9 +3237,9 @@
             "repoRuleId": "@@rules_rust+//crate_universe:extensions.bzl%_generate_repo",
             "attributes": {
               "contents": {
-                "BUILD.bazel": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files(\n    [\n        \"cargo-bazel.json\",\n        \"crates.bzl\",\n        \"defs.bzl\",\n    ] + glob(\n        allow_empty = True,\n        include = [\"*.bazel\"],\n    ),\n)\n\nfilegroup(\n    name = \"srcs\",\n    srcs = glob(\n        allow_empty = True,\n        include = [\n            \"*.bazel\",\n            \"*.bzl\",\n        ],\n    ),\n)\n\n# Workspace Member Dependencies\nalias(\n    name = \"aes-0.8.4\",\n    actual = \"@oot_crates_no_std__aes-0.8.4//:aes\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"aes\",\n    actual = \"@oot_crates_no_std__aes-0.8.4//:aes\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"aes-gcm-0.10.3\",\n    actual = \"@oot_crates_no_std__aes-gcm-0.10.3//:aes_gcm\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"aes-gcm\",\n    actual = \"@oot_crates_no_std__aes-gcm-0.10.3//:aes_gcm\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"aspeed-ddk-0.1.0\",\n    actual = \"@oot_crates_no_std__aspeed-ddk-0.1.0//:aspeed_ddk\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"aspeed-ddk\",\n    actual = \"@oot_crates_no_std__aspeed-ddk-0.1.0//:aspeed_ddk\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"ast1060-pac-0.1.0\",\n    actual = \"@oot_crates_no_std__ast1060-pac-0.1.0//:ast1060_pac\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"ast1060-pac\",\n    actual = \"@oot_crates_no_std__ast1060-pac-0.1.0//:ast1060_pac\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cipher-0.4.4\",\n    actual = \"@oot_crates_no_std__cipher-0.4.4//:cipher\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cipher\",\n    actual = \"@oot_crates_no_std__cipher-0.4.4//:cipher\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-0.7.7\",\n    actual = \"@oot_crates_no_std__cortex-m-0.7.7//:cortex_m\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m\",\n    actual = \"@oot_crates_no_std__cortex-m-0.7.7//:cortex_m\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-rt-0.7.5\",\n    actual = \"@oot_crates_no_std__cortex-m-rt-0.7.5//:cortex_m_rt\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-rt\",\n    actual = \"@oot_crates_no_std__cortex-m-rt-0.7.5//:cortex_m_rt\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-semihosting-0.5.0\",\n    actual = \"@oot_crates_no_std__cortex-m-semihosting-0.5.0//:cortex_m_semihosting\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-semihosting\",\n    actual = \"@oot_crates_no_std__cortex-m-semihosting-0.5.0//:cortex_m_semihosting\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"ctr-0.9.2\",\n    actual = \"@oot_crates_no_std__ctr-0.9.2//:ctr\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"ctr\",\n    actual = \"@oot_crates_no_std__ctr-0.9.2//:ctr\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"ecdsa-0.16.9\",\n    actual = \"@oot_crates_no_std__ecdsa-0.16.9//:ecdsa\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"ecdsa\",\n    actual = \"@oot_crates_no_std__ecdsa-0.16.9//:ecdsa\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"embedded-hal-1.0.0\",\n    actual = \"@oot_crates_no_std__embedded-hal-1.0.0//:embedded_hal\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"embedded-hal\",\n    actual = \"@oot_crates_no_std__embedded-hal-1.0.0//:embedded_hal\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"embedded-io-0.6.1\",\n    actual = \"@oot_crates_no_std__embedded-io-0.6.1//:embedded_io\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"embedded-io\",\n    actual = \"@oot_crates_no_std__embedded-io-0.6.1//:embedded_io\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"hmac-0.12.1\",\n    actual = \"@oot_crates_no_std__hmac-0.12.1//:hmac\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"hmac\",\n    actual = \"@oot_crates_no_std__hmac-0.12.1//:hmac\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"p256-0.13.2\",\n    actual = \"@oot_crates_no_std__p256-0.13.2//:p256\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"p256\",\n    actual = \"@oot_crates_no_std__p256-0.13.2//:p256\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"p384-0.13.1\",\n    actual = \"@oot_crates_no_std__p384-0.13.1//:p384\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"p384\",\n    actual = \"@oot_crates_no_std__p384-0.13.1//:p384\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"sha2-0.10.9\",\n    actual = \"@oot_crates_no_std__sha2-0.10.9//:sha2\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"sha2\",\n    actual = \"@oot_crates_no_std__sha2-0.10.9//:sha2\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"zerocopy-0.8.39\",\n    actual = \"@oot_crates_no_std__zerocopy-0.8.39//:zerocopy\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"zerocopy\",\n    actual = \"@oot_crates_no_std__zerocopy-0.8.39//:zerocopy\",\n    tags = [\"manual\"],\n)\n",
+                "BUILD.bazel": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files(\n    [\n        \"cargo-bazel.json\",\n        \"crates.bzl\",\n        \"defs.bzl\",\n    ] + glob(\n        allow_empty = True,\n        include = [\"*.bazel\"],\n    ),\n)\n\nfilegroup(\n    name = \"srcs\",\n    srcs = glob(\n        allow_empty = True,\n        include = [\n            \"*.bazel\",\n            \"*.bzl\",\n        ],\n    ),\n)\n\n# Workspace Member Dependencies\nalias(\n    name = \"aes-0.8.4\",\n    actual = \"@oot_crates_no_std__aes-0.8.4//:aes\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"aes\",\n    actual = \"@oot_crates_no_std__aes-0.8.4//:aes\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"aes-gcm-0.10.3\",\n    actual = \"@oot_crates_no_std__aes-gcm-0.10.3//:aes_gcm\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"aes-gcm\",\n    actual = \"@oot_crates_no_std__aes-gcm-0.10.3//:aes_gcm\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"aspeed-ddk-0.1.0\",\n    actual = \"@oot_crates_no_std__aspeed-ddk-0.1.0//:aspeed_ddk\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"aspeed-ddk\",\n    actual = \"@oot_crates_no_std__aspeed-ddk-0.1.0//:aspeed_ddk\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"ast1060-pac-0.1.0\",\n    actual = \"@oot_crates_no_std__ast1060-pac-0.1.0//:ast1060_pac\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"ast1060-pac\",\n    actual = \"@oot_crates_no_std__ast1060-pac-0.1.0//:ast1060_pac\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cipher-0.4.4\",\n    actual = \"@oot_crates_no_std__cipher-0.4.4//:cipher\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cipher\",\n    actual = \"@oot_crates_no_std__cipher-0.4.4//:cipher\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-0.7.7\",\n    actual = \"@oot_crates_no_std__cortex-m-0.7.7//:cortex_m\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m\",\n    actual = \"@oot_crates_no_std__cortex-m-0.7.7//:cortex_m\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-rt-0.7.5\",\n    actual = \"@oot_crates_no_std__cortex-m-rt-0.7.5//:cortex_m_rt\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-rt\",\n    actual = \"@oot_crates_no_std__cortex-m-rt-0.7.5//:cortex_m_rt\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-semihosting-0.5.0\",\n    actual = \"@oot_crates_no_std__cortex-m-semihosting-0.5.0//:cortex_m_semihosting\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"cortex-m-semihosting\",\n    actual = \"@oot_crates_no_std__cortex-m-semihosting-0.5.0//:cortex_m_semihosting\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"ctr-0.9.2\",\n    actual = \"@oot_crates_no_std__ctr-0.9.2//:ctr\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"ctr\",\n    actual = \"@oot_crates_no_std__ctr-0.9.2//:ctr\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"ecdsa-0.16.9\",\n    actual = \"@oot_crates_no_std__ecdsa-0.16.9//:ecdsa\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"ecdsa\",\n    actual = \"@oot_crates_no_std__ecdsa-0.16.9//:ecdsa\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"embedded-hal-1.0.0\",\n    actual = \"@oot_crates_no_std__embedded-hal-1.0.0//:embedded_hal\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"embedded-hal\",\n    actual = \"@oot_crates_no_std__embedded-hal-1.0.0//:embedded_hal\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"embedded-io-0.6.1\",\n    actual = \"@oot_crates_no_std__embedded-io-0.6.1//:embedded_io\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"embedded-io\",\n    actual = \"@oot_crates_no_std__embedded-io-0.6.1//:embedded_io\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"fugit-0.3.9\",\n    actual = \"@oot_crates_no_std__fugit-0.3.9//:fugit\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"fugit\",\n    actual = \"@oot_crates_no_std__fugit-0.3.9//:fugit\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"heapless-0.8.0\",\n    actual = \"@oot_crates_no_std__heapless-0.8.0//:heapless\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"heapless\",\n    actual = \"@oot_crates_no_std__heapless-0.8.0//:heapless\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"hex-literal-0.4.1\",\n    actual = \"@oot_crates_no_std__hex-literal-0.4.1//:hex_literal\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"hex-literal\",\n    actual = \"@oot_crates_no_std__hex-literal-0.4.1//:hex_literal\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"hmac-0.12.1\",\n    actual = \"@oot_crates_no_std__hmac-0.12.1//:hmac\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"hmac\",\n    actual = \"@oot_crates_no_std__hmac-0.12.1//:hmac\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"mctp-0.2.0\",\n    actual = \"@oot_crates_no_std__mctp-0.2.0//:mctp\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"mctp\",\n    actual = \"@oot_crates_no_std__mctp-0.2.0//:mctp\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"mctp-lib-0.1.0\",\n    actual = \"@oot_crates_no_std__mctp-lib-0.1.0//:mctp_lib\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"mctp-lib\",\n    actual = \"@oot_crates_no_std__mctp-lib-0.1.0//:mctp_lib\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"nb-1.1.0\",\n    actual = \"@oot_crates_no_std__nb-1.1.0//:nb\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"nb\",\n    actual = \"@oot_crates_no_std__nb-1.1.0//:nb\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"openprot-hal-blocking-0.1.0\",\n    actual = \"@oot_crates_no_std__openprot-hal-blocking-0.1.0//:openprot_hal_blocking\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"openprot-hal-blocking\",\n    actual = \"@oot_crates_no_std__openprot-hal-blocking-0.1.0//:openprot_hal_blocking\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"p256-0.13.2\",\n    actual = \"@oot_crates_no_std__p256-0.13.2//:p256\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"p256\",\n    actual = \"@oot_crates_no_std__p256-0.13.2//:p256\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"p384-0.13.1\",\n    actual = \"@oot_crates_no_std__p384-0.13.1//:p384\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"p384\",\n    actual = \"@oot_crates_no_std__p384-0.13.1//:p384\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"proposed-traits-0.1.0\",\n    actual = \"@oot_crates_no_std__proposed-traits-0.1.0//:proposed_traits\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"proposed-traits\",\n    actual = \"@oot_crates_no_std__proposed-traits-0.1.0//:proposed_traits\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"sha2-0.10.9\",\n    actual = \"@oot_crates_no_std__sha2-0.10.9//:sha2\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"sha2\",\n    actual = \"@oot_crates_no_std__sha2-0.10.9//:sha2\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"zerocopy-0.8.40\",\n    actual = \"@oot_crates_no_std__zerocopy-0.8.40//:zerocopy\",\n    tags = [\"manual\"],\n)\n\nalias(\n    name = \"zerocopy\",\n    actual = \"@oot_crates_no_std__zerocopy-0.8.40//:zerocopy\",\n    tags = [\"manual\"],\n)\n",
                 "alias_rules.bzl": "\"\"\"Alias that transitions its target to `compilation_mode=opt`.  Use `transition_alias=\"opt\"` to enable.\"\"\"\n\nload(\"@rules_cc//cc:defs.bzl\", \"CcInfo\")\nload(\"@rules_rust//rust:rust_common.bzl\", \"COMMON_PROVIDERS\")\n\ndef _transition_alias_impl(ctx):\n    # `ctx.attr.actual` is a list of 1 item due to the transition\n    providers = [ctx.attr.actual[0][provider] for provider in COMMON_PROVIDERS]\n    if CcInfo in ctx.attr.actual[0]:\n        providers.append(ctx.attr.actual[0][CcInfo])\n    return providers\n\ndef _change_compilation_mode(compilation_mode):\n    def _change_compilation_mode_impl(_settings, _attr):\n        return {\n            \"//command_line_option:compilation_mode\": compilation_mode,\n        }\n\n    return transition(\n        implementation = _change_compilation_mode_impl,\n        inputs = [],\n        outputs = [\n            \"//command_line_option:compilation_mode\",\n        ],\n    )\n\ndef _transition_alias_rule(compilation_mode):\n    return rule(\n        implementation = _transition_alias_impl,\n        provides = COMMON_PROVIDERS,\n        attrs = {\n            \"actual\": attr.label(\n                mandatory = True,\n                doc = \"`rust_library()` target to transition to `compilation_mode=opt`.\",\n                providers = COMMON_PROVIDERS,\n                cfg = _change_compilation_mode(compilation_mode),\n            ),\n            \"_allowlist_function_transition\": attr.label(\n                default = \"@bazel_tools//tools/allowlists/function_transition_allowlist\",\n            ),\n        },\n        doc = \"Transitions a Rust library crate to the `compilation_mode=opt`.\",\n    )\n\ntransition_alias_dbg = _transition_alias_rule(\"dbg\")\ntransition_alias_fastbuild = _transition_alias_rule(\"fastbuild\")\ntransition_alias_opt = _transition_alias_rule(\"opt\")\n",
-                "defs.bzl": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\"\"\"\n# `crates_repository` API\n\n- [aliases](#aliases)\n- [crate_deps](#crate_deps)\n- [all_crate_deps](#all_crate_deps)\n- [crate_repositories](#crate_repositories)\n\n\"\"\"\n\nload(\"@bazel_tools//tools/build_defs/repo:git.bzl\", \"new_git_repository\")\nload(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\nload(\"@bazel_tools//tools/build_defs/repo:utils.bzl\", \"maybe\")\nload(\"@bazel_skylib//lib:selects.bzl\", \"selects\")\nload(\"@rules_rust//crate_universe/private:local_crate_mirror.bzl\", \"local_crate_mirror\")\n\n###############################################################################\n# MACROS API\n###############################################################################\n\n# An identifier that represent common dependencies (unconditional).\n_COMMON_CONDITION = \"\"\n\ndef _flatten_dependency_maps(all_dependency_maps):\n    \"\"\"Flatten a list of dependency maps into one dictionary.\n\n    Dependency maps have the following structure:\n\n    ```python\n    DEPENDENCIES_MAP = {\n        # The first key in the map is a Bazel package\n        # name of the workspace this file is defined in.\n        \"workspace_member_package\": {\n\n            # Not all dependencies are supported for all platforms.\n            # the condition key is the condition required to be true\n            # on the host platform.\n            \"condition\": {\n\n                # An alias to a crate target.     # The label of the crate target the\n                # Aliases are only crate names.   # package name refers to.\n                \"package_name\":                   \"@full//:label\",\n            }\n        }\n    }\n    ```\n\n    Args:\n        all_dependency_maps (list): A list of dicts as described above\n\n    Returns:\n        dict: A dictionary as described above\n    \"\"\"\n    dependencies = {}\n\n    for workspace_deps_map in all_dependency_maps:\n        for pkg_name, conditional_deps_map in workspace_deps_map.items():\n            if pkg_name not in dependencies:\n                non_frozen_map = dict()\n                for key, values in conditional_deps_map.items():\n                    non_frozen_map.update({key: dict(values.items())})\n                dependencies.setdefault(pkg_name, non_frozen_map)\n                continue\n\n            for condition, deps_map in conditional_deps_map.items():\n                # If the condition has not been recorded, do so and continue\n                if condition not in dependencies[pkg_name]:\n                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))\n                    continue\n\n                # Alert on any miss-matched dependencies\n                inconsistent_entries = []\n                for crate_name, crate_label in deps_map.items():\n                    existing = dependencies[pkg_name][condition].get(crate_name)\n                    if existing and existing != crate_label:\n                        inconsistent_entries.append((crate_name, existing, crate_label))\n                    dependencies[pkg_name][condition].update({crate_name: crate_label})\n\n    return dependencies\n\ndef crate_deps(deps, package_name = None):\n    \"\"\"Finds the fully qualified label of the requested crates for the package where this macro is called.\n\n    Args:\n        deps (list): The desired list of crate targets.\n        package_name (str, optional): The package name of the set of dependencies to look up.\n            Defaults to `native.package_name()`.\n\n    Returns:\n        list: A list of labels to generated rust targets (str)\n    \"\"\"\n\n    if not deps:\n        return []\n\n    if package_name == None:\n        package_name = native.package_name()\n\n    # Join both sets of dependencies\n    dependencies = _flatten_dependency_maps([\n        _NORMAL_DEPENDENCIES,\n        _NORMAL_DEV_DEPENDENCIES,\n        _PROC_MACRO_DEPENDENCIES,\n        _PROC_MACRO_DEV_DEPENDENCIES,\n        _BUILD_DEPENDENCIES,\n        _BUILD_PROC_MACRO_DEPENDENCIES,\n    ]).pop(package_name, {})\n\n    # Combine all conditional packages so we can easily index over a flat list\n    # TODO: Perhaps this should actually return select statements and maintain\n    # the conditionals of the dependencies\n    flat_deps = {}\n    for deps_set in dependencies.values():\n        for crate_name, crate_label in deps_set.items():\n            flat_deps.update({crate_name: crate_label})\n\n    missing_crates = []\n    crate_targets = []\n    for crate_target in deps:\n        if crate_target not in flat_deps:\n            missing_crates.append(crate_target)\n        else:\n            crate_targets.append(flat_deps[crate_target])\n\n    if missing_crates:\n        fail(\"Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`\".format(\n            missing_crates,\n            package_name,\n            dependencies,\n        ))\n\n    return crate_targets\n\ndef all_crate_deps(\n        normal = False, \n        normal_dev = False, \n        proc_macro = False, \n        proc_macro_dev = False,\n        build = False,\n        build_proc_macro = False,\n        package_name = None):\n    \"\"\"Finds the fully qualified label of all requested direct crate dependencies \\\n    for the package where this macro is called.\n\n    If no parameters are set, all normal dependencies are returned. Setting any one flag will\n    otherwise impact the contents of the returned list.\n\n    Args:\n        normal (bool, optional): If True, normal dependencies are included in the\n            output list.\n        normal_dev (bool, optional): If True, normal dev dependencies will be\n            included in the output list..\n        proc_macro (bool, optional): If True, proc_macro dependencies are included\n            in the output list.\n        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n            included in the output list.\n        build (bool, optional): If True, build dependencies are included\n            in the output list.\n        build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n            included in the output list.\n        package_name (str, optional): The package name of the set of dependencies to look up.\n            Defaults to `native.package_name()` when unset.\n\n    Returns:\n        list: A list of labels to generated rust targets (str)\n    \"\"\"\n\n    if package_name == None:\n        package_name = native.package_name()\n\n    # Determine the relevant maps to use\n    all_dependency_maps = []\n    if normal:\n        all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n    if normal_dev:\n        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)\n    if proc_macro:\n        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)\n    if proc_macro_dev:\n        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)\n    if build:\n        all_dependency_maps.append(_BUILD_DEPENDENCIES)\n    if build_proc_macro:\n        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)\n\n    # Default to always using normal dependencies\n    if not all_dependency_maps:\n        all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n\n    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)\n\n    if not dependencies:\n        if dependencies == None:\n            fail(\"Tried to get all_crate_deps for package \" + package_name + \" but that package had no Cargo.toml file\")\n        else:\n            return []\n\n    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())\n    for condition, deps in dependencies.items():\n        crate_deps += selects.with_or({\n            tuple(_CONDITIONS[condition]): deps.values(),\n            \"//conditions:default\": [],\n        })\n\n    return crate_deps\n\ndef aliases(\n        normal = False,\n        normal_dev = False,\n        proc_macro = False,\n        proc_macro_dev = False,\n        build = False,\n        build_proc_macro = False,\n        package_name = None):\n    \"\"\"Produces a map of Crate alias names to their original label\n\n    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.\n    Setting any one flag will otherwise determine the contents of the returned dict.\n\n    Args:\n        normal (bool, optional): If True, normal dependencies are included in the\n            output list.\n        normal_dev (bool, optional): If True, normal dev dependencies will be\n            included in the output list..\n        proc_macro (bool, optional): If True, proc_macro dependencies are included\n            in the output list.\n        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n            included in the output list.\n        build (bool, optional): If True, build dependencies are included\n            in the output list.\n        build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n            included in the output list.\n        package_name (str, optional): The package name of the set of dependencies to look up.\n            Defaults to `native.package_name()` when unset.\n\n    Returns:\n        dict: The aliases of all associated packages\n    \"\"\"\n    if package_name == None:\n        package_name = native.package_name()\n\n    # Determine the relevant maps to use\n    all_aliases_maps = []\n    if normal:\n        all_aliases_maps.append(_NORMAL_ALIASES)\n    if normal_dev:\n        all_aliases_maps.append(_NORMAL_DEV_ALIASES)\n    if proc_macro:\n        all_aliases_maps.append(_PROC_MACRO_ALIASES)\n    if proc_macro_dev:\n        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)\n    if build:\n        all_aliases_maps.append(_BUILD_ALIASES)\n    if build_proc_macro:\n        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)\n\n    # Default to always using normal aliases\n    if not all_aliases_maps:\n        all_aliases_maps.append(_NORMAL_ALIASES)\n        all_aliases_maps.append(_PROC_MACRO_ALIASES)\n\n    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)\n\n    if not aliases:\n        return dict()\n\n    common_items = aliases.pop(_COMMON_CONDITION, {}).items()\n\n    # If there are only common items in the dictionary, immediately return them\n    if not len(aliases.keys()) == 1:\n        return dict(common_items)\n\n    # Build a single select statement where each conditional has accounted for the\n    # common set of aliases.\n    crate_aliases = {\"//conditions:default\": dict(common_items)}\n    for condition, deps in aliases.items():\n        condition_triples = _CONDITIONS[condition]\n        for triple in condition_triples:\n            if triple in crate_aliases:\n                crate_aliases[triple].update(deps)\n            else:\n                crate_aliases.update({triple: dict(deps.items() + common_items)})\n\n    return select(crate_aliases)\n\n###############################################################################\n# WORKSPACE MEMBER DEPS AND ALIASES\n###############################################################################\n\n_NORMAL_DEPENDENCIES = {\n    \"third_party/crates_io/crates_no_std\": {\n        _COMMON_CONDITION: {\n            \"aes\": Label(\"@oot_crates_no_std//:aes-0.8.4\"),\n            \"aes-gcm\": Label(\"@oot_crates_no_std//:aes-gcm-0.10.3\"),\n            \"aspeed-ddk\": Label(\"@oot_crates_no_std//:aspeed-ddk-0.1.0\"),\n            \"ast1060-pac\": Label(\"@oot_crates_no_std//:ast1060-pac-0.1.0\"),\n            \"cipher\": Label(\"@oot_crates_no_std//:cipher-0.4.4\"),\n            \"cortex-m\": Label(\"@oot_crates_no_std//:cortex-m-0.7.7\"),\n            \"cortex-m-rt\": Label(\"@oot_crates_no_std//:cortex-m-rt-0.7.5\"),\n            \"cortex-m-semihosting\": Label(\"@oot_crates_no_std//:cortex-m-semihosting-0.5.0\"),\n            \"ctr\": Label(\"@oot_crates_no_std//:ctr-0.9.2\"),\n            \"ecdsa\": Label(\"@oot_crates_no_std//:ecdsa-0.16.9\"),\n            \"embedded-hal\": Label(\"@oot_crates_no_std//:embedded-hal-1.0.0\"),\n            \"embedded-io\": Label(\"@oot_crates_no_std//:embedded-io-0.6.1\"),\n            \"hmac\": Label(\"@oot_crates_no_std//:hmac-0.12.1\"),\n            \"p256\": Label(\"@oot_crates_no_std//:p256-0.13.2\"),\n            \"p384\": Label(\"@oot_crates_no_std//:p384-0.13.1\"),\n            \"sha2\": Label(\"@oot_crates_no_std//:sha2-0.10.9\"),\n            \"zerocopy\": Label(\"@oot_crates_no_std//:zerocopy-0.8.39\"),\n        },\n    },\n}\n\n\n_NORMAL_ALIASES = {\n    \"third_party/crates_io/crates_no_std\": {\n        _COMMON_CONDITION: {\n        },\n    },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_PROC_MACRO_ALIASES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_BUILD_DEPENDENCIES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_BUILD_ALIASES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_CONDITIONS = {\n    \"aarch64-apple-darwin\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n    \"aarch64-linux-android\": [],\n    \"aarch64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n    \"cfg(all(target_arch = \\\"aarch64\\\", target_os = \\\"linux\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n    \"cfg(all(target_arch = \\\"aarch64\\\", target_vendor = \\\"apple\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n    \"cfg(all(target_arch = \\\"loongarch64\\\", target_os = \\\"linux\\\"))\": [],\n    \"cfg(any(target_arch = \\\"aarch64\\\", target_arch = \\\"x86_64\\\", target_arch = \\\"x86\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n    \"riscv32imc-unknown-none-elf\": [\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\"],\n    \"thumbv6m-none-eabi\": [\"@rules_rust//rust/platform:thumbv6m-none-eabi\"],\n    \"thumbv7em-none-eabi\": [\"@rules_rust//rust/platform:thumbv7em-none-eabi\"],\n    \"thumbv7m-none-eabi\": [\"@rules_rust//rust/platform:thumbv7m-none-eabi\"],\n    \"thumbv8m.main-none-eabi\": [\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\"],\n    \"x86_64-apple-darwin\": [\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n    \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n}\n\n###############################################################################\n\ndef crate_repositories():\n    \"\"\"A macro for defining repositories for all generated crates.\n\n    Returns:\n      A list of repos visible to the module through the module extension.\n    \"\"\"\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__aead-0.5.2\",\n        sha256 = \"d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/aead/0.5.2/download\"],\n        strip_prefix = \"aead-0.5.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.aead-0.5.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__aes-0.8.4\",\n        sha256 = \"b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/aes/0.8.4/download\"],\n        strip_prefix = \"aes-0.8.4\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.aes-0.8.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__aes-gcm-0.10.3\",\n        sha256 = \"831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/aes-gcm/0.10.3/download\"],\n        strip_prefix = \"aes-gcm-0.10.3\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.aes-gcm-0.10.3.bazel\"),\n    )\n\n    maybe(\n        new_git_repository,\n        name = \"oot_crates_no_std__aspeed-ddk-0.1.0\",\n        commit = \"048e272b0d6ffc2a5a8e870c7316b08df33bda7c\",\n        init_submodules = True,\n        remote = \"https://github.com/OpenPRoT/aspeed-rust.git\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.aspeed-ddk-0.1.0.bazel\"),\n    )\n\n    maybe(\n        new_git_repository,\n        name = \"oot_crates_no_std__ast1060-pac-0.1.0\",\n        commit = \"310f66a458f1edbb4e0c515969188dac7e62df10\",\n        init_submodules = True,\n        remote = \"https://github.com/stevenlee7189/ast1060-pac\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.ast1060-pac-0.1.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__async-trait-0.1.89\",\n        sha256 = \"9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/async-trait/0.1.89/download\"],\n        strip_prefix = \"async-trait-0.1.89\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.async-trait-0.1.89.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__bare-metal-0.2.5\",\n        sha256 = \"5deb64efa5bd81e31fcd1938615a6d98c82eafcbcd787162b6f63b91d6bac5b3\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/bare-metal/0.2.5/download\"],\n        strip_prefix = \"bare-metal-0.2.5\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.bare-metal-0.2.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__base16ct-0.2.0\",\n        sha256 = \"4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/base16ct/0.2.0/download\"],\n        strip_prefix = \"base16ct-0.2.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.base16ct-0.2.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__bitfield-0.13.2\",\n        sha256 = \"46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/bitfield/0.13.2/download\"],\n        strip_prefix = \"bitfield-0.13.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.bitfield-0.13.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__block-buffer-0.10.4\",\n        sha256 = \"3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/block-buffer/0.10.4/download\"],\n        strip_prefix = \"block-buffer-0.10.4\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.block-buffer-0.10.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__byteorder-1.5.0\",\n        sha256 = \"1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/byteorder/1.5.0/download\"],\n        strip_prefix = \"byteorder-1.5.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.byteorder-1.5.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__cfg-if-1.0.4\",\n        sha256 = \"9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cfg-if/1.0.4/download\"],\n        strip_prefix = \"cfg-if-1.0.4\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.cfg-if-1.0.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__cipher-0.4.4\",\n        sha256 = \"773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cipher/0.4.4/download\"],\n        strip_prefix = \"cipher-0.4.4\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.cipher-0.4.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__const-oid-0.9.6\",\n        sha256 = \"c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/const-oid/0.9.6/download\"],\n        strip_prefix = \"const-oid-0.9.6\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.const-oid-0.9.6.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__cortex-m-0.7.7\",\n        sha256 = \"8ec610d8f49840a5b376c69663b6369e71f4b34484b9b2eb29fb918d92516cb9\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cortex-m/0.7.7/download\"],\n        strip_prefix = \"cortex-m-0.7.7\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.cortex-m-0.7.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__cortex-m-rt-0.7.5\",\n        sha256 = \"801d4dec46b34c299ccf6b036717ae0fce602faa4f4fe816d9013b9a7c9f5ba6\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cortex-m-rt/0.7.5/download\"],\n        strip_prefix = \"cortex-m-rt-0.7.5\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.cortex-m-rt-0.7.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__cortex-m-rt-macros-0.7.5\",\n        sha256 = \"e37549a379a9e0e6e576fd208ee60394ccb8be963889eebba3ffe0980364f472\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cortex-m-rt-macros/0.7.5/download\"],\n        strip_prefix = \"cortex-m-rt-macros-0.7.5\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.cortex-m-rt-macros-0.7.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__cortex-m-semihosting-0.5.0\",\n        sha256 = \"c23234600452033cc77e4b761e740e02d2c4168e11dbf36ab14a0f58973592b0\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cortex-m-semihosting/0.5.0/download\"],\n        strip_prefix = \"cortex-m-semihosting-0.5.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.cortex-m-semihosting-0.5.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__cpufeatures-0.2.17\",\n        sha256 = \"59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cpufeatures/0.2.17/download\"],\n        strip_prefix = \"cpufeatures-0.2.17\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.cpufeatures-0.2.17.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__critical-section-1.2.0\",\n        sha256 = \"790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/critical-section/1.2.0/download\"],\n        strip_prefix = \"critical-section-1.2.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.critical-section-1.2.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__crypto-bigint-0.5.5\",\n        sha256 = \"0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/crypto-bigint/0.5.5/download\"],\n        strip_prefix = \"crypto-bigint-0.5.5\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.crypto-bigint-0.5.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__crypto-common-0.1.7\",\n        sha256 = \"78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/crypto-common/0.1.7/download\"],\n        strip_prefix = \"crypto-common-0.1.7\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.crypto-common-0.1.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__ctr-0.9.2\",\n        sha256 = \"0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/ctr/0.9.2/download\"],\n        strip_prefix = \"ctr-0.9.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.ctr-0.9.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__der-0.7.10\",\n        sha256 = \"e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/der/0.7.10/download\"],\n        strip_prefix = \"der-0.7.10\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.der-0.7.10.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__digest-0.10.7\",\n        sha256 = \"9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/digest/0.10.7/download\"],\n        strip_prefix = \"digest-0.10.7\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.digest-0.10.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__ecdsa-0.16.9\",\n        sha256 = \"ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/ecdsa/0.16.9/download\"],\n        strip_prefix = \"ecdsa-0.16.9\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.ecdsa-0.16.9.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__elliptic-curve-0.13.8\",\n        sha256 = \"b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/elliptic-curve/0.13.8/download\"],\n        strip_prefix = \"elliptic-curve-0.13.8\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.elliptic-curve-0.13.8.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__embedded-hal-0.2.7\",\n        sha256 = \"35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/embedded-hal/0.2.7/download\"],\n        strip_prefix = \"embedded-hal-0.2.7\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.embedded-hal-0.2.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__embedded-hal-1.0.0\",\n        sha256 = \"361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/embedded-hal/1.0.0/download\"],\n        strip_prefix = \"embedded-hal-1.0.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.embedded-hal-1.0.0.bazel\"),\n    )\n\n    maybe(\n        new_git_repository,\n        name = \"oot_crates_no_std__embedded-hal-1.0.0-alpha.1\",\n        commit = \"599d44fdc7e709cb9ae6580ec11c0b7f7f102981\",\n        init_submodules = True,\n        remote = \"https://github.com/rust-embedded/embedded-hal.git\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.embedded-hal-1.0.0-alpha.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__embedded-io-0.6.1\",\n        sha256 = \"edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/embedded-io/0.6.1/download\"],\n        strip_prefix = \"embedded-io-0.6.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.embedded-io-0.6.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__embedded-storage-0.3.1\",\n        sha256 = \"a21dea9854beb860f3062d10228ce9b976da520a73474aed3171ec276bc0c032\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/embedded-storage/0.3.1/download\"],\n        strip_prefix = \"embedded-storage-0.3.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.embedded-storage-0.3.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__ff-0.13.1\",\n        sha256 = \"c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/ff/0.13.1/download\"],\n        strip_prefix = \"ff-0.13.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.ff-0.13.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__fugit-0.3.9\",\n        sha256 = \"4e639847d312d9a82d2e75b0edcc1e934efcc64e6cb7aa94f0b1fbec0bc231d6\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/fugit/0.3.9/download\"],\n        strip_prefix = \"fugit-0.3.9\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.fugit-0.3.9.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__gcd-2.3.0\",\n        sha256 = \"1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/gcd/2.3.0/download\"],\n        strip_prefix = \"gcd-2.3.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.gcd-2.3.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__generic-array-0.14.7\",\n        sha256 = \"85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/generic-array/0.14.7/download\"],\n        strip_prefix = \"generic-array-0.14.7\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.generic-array-0.14.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__ghash-0.5.1\",\n        sha256 = \"f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/ghash/0.5.1/download\"],\n        strip_prefix = \"ghash-0.5.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.ghash-0.5.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__group-0.13.0\",\n        sha256 = \"f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/group/0.13.0/download\"],\n        strip_prefix = \"group-0.13.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.group-0.13.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__hash32-0.3.1\",\n        sha256 = \"47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/hash32/0.3.1/download\"],\n        strip_prefix = \"hash32-0.3.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.hash32-0.3.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__heapless-0.8.0\",\n        sha256 = \"0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/heapless/0.8.0/download\"],\n        strip_prefix = \"heapless-0.8.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.heapless-0.8.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__hex-literal-0.4.1\",\n        sha256 = \"6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/hex-literal/0.4.1/download\"],\n        strip_prefix = \"hex-literal-0.4.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.hex-literal-0.4.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__hmac-0.12.1\",\n        sha256 = \"6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/hmac/0.12.1/download\"],\n        strip_prefix = \"hmac-0.12.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.hmac-0.12.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__inout-0.1.4\",\n        sha256 = \"879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/inout/0.1.4/download\"],\n        strip_prefix = \"inout-0.1.4\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.inout-0.1.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__libc-0.2.182\",\n        sha256 = \"6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/libc/0.2.182/download\"],\n        strip_prefix = \"libc-0.2.182\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.libc-0.2.182.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__nb-0.1.3\",\n        sha256 = \"801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/nb/0.1.3/download\"],\n        strip_prefix = \"nb-0.1.3\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.nb-0.1.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__nb-1.1.0\",\n        sha256 = \"8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/nb/1.1.0/download\"],\n        strip_prefix = \"nb-1.1.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.nb-1.1.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__opaque-debug-0.3.1\",\n        sha256 = \"c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/opaque-debug/0.3.1/download\"],\n        strip_prefix = \"opaque-debug-0.3.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.opaque-debug-0.3.1.bazel\"),\n    )\n\n    maybe(\n        new_git_repository,\n        name = \"oot_crates_no_std__openprot-hal-blocking-0.1.0\",\n        commit = \"b2081ffd8d0fbcb1f8f6a4a458e044ce949d2e1e\",\n        init_submodules = True,\n        remote = \"https://github.com/OpenPRoT/openprot\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.openprot-hal-blocking-0.1.0.bazel\"),\n        strip_prefix = \"hal/blocking\",\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__p256-0.13.2\",\n        sha256 = \"c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/p256/0.13.2/download\"],\n        strip_prefix = \"p256-0.13.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.p256-0.13.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__p384-0.13.1\",\n        sha256 = \"fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/p384/0.13.1/download\"],\n        strip_prefix = \"p384-0.13.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.p384-0.13.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__panic-halt-1.0.0\",\n        sha256 = \"a513e167849a384b7f9b746e517604398518590a9142f4846a32e3c2a4de7b11\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/panic-halt/1.0.0/download\"],\n        strip_prefix = \"panic-halt-1.0.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.panic-halt-1.0.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__paste-1.0.15\",\n        sha256 = \"57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/paste/1.0.15/download\"],\n        strip_prefix = \"paste-1.0.15\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.paste-1.0.15.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__polyval-0.6.2\",\n        sha256 = \"9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/polyval/0.6.2/download\"],\n        strip_prefix = \"polyval-0.6.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.polyval-0.6.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__primeorder-0.13.6\",\n        sha256 = \"353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/primeorder/0.13.6/download\"],\n        strip_prefix = \"primeorder-0.13.6\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.primeorder-0.13.6.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__proc-macro2-1.0.106\",\n        sha256 = \"8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/proc-macro2/1.0.106/download\"],\n        strip_prefix = \"proc-macro2-1.0.106\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.proc-macro2-1.0.106.bazel\"),\n    )\n\n    maybe(\n        new_git_repository,\n        name = \"oot_crates_no_std__proposed-traits-0.1.0\",\n        commit = \"85641310df5a5276c67f81621b104322cff0286c\",\n        init_submodules = True,\n        remote = \"https://github.com/rusty1968/proposed_traits.git\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.proposed-traits-0.1.0.bazel\"),\n        strip_prefix = \"proposed-traits\",\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__quote-1.0.44\",\n        sha256 = \"21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/quote/1.0.44/download\"],\n        strip_prefix = \"quote-1.0.44\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.quote-1.0.44.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__rand_core-0.6.4\",\n        sha256 = \"ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/rand_core/0.6.4/download\"],\n        strip_prefix = \"rand_core-0.6.4\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.rand_core-0.6.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__rand_core-0.9.5\",\n        sha256 = \"76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/rand_core/0.9.5/download\"],\n        strip_prefix = \"rand_core-0.9.5\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.rand_core-0.9.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__rfc6979-0.4.0\",\n        sha256 = \"f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/rfc6979/0.4.0/download\"],\n        strip_prefix = \"rfc6979-0.4.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.rfc6979-0.4.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__rustc_version-0.2.3\",\n        sha256 = \"138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/rustc_version/0.2.3/download\"],\n        strip_prefix = \"rustc_version-0.2.3\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.rustc_version-0.2.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__sec1-0.7.3\",\n        sha256 = \"d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/sec1/0.7.3/download\"],\n        strip_prefix = \"sec1-0.7.3\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.sec1-0.7.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__semver-0.9.0\",\n        sha256 = \"1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/semver/0.9.0/download\"],\n        strip_prefix = \"semver-0.9.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.semver-0.9.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__semver-parser-0.7.0\",\n        sha256 = \"388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/semver-parser/0.7.0/download\"],\n        strip_prefix = \"semver-parser-0.7.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.semver-parser-0.7.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__sha2-0.10.9\",\n        sha256 = \"a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/sha2/0.10.9/download\"],\n        strip_prefix = \"sha2-0.10.9\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.sha2-0.10.9.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__signature-2.2.0\",\n        sha256 = \"77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/signature/2.2.0/download\"],\n        strip_prefix = \"signature-2.2.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.signature-2.2.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__stable_deref_trait-1.2.1\",\n        sha256 = \"6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/stable_deref_trait/1.2.1/download\"],\n        strip_prefix = \"stable_deref_trait-1.2.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.stable_deref_trait-1.2.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__subtle-2.6.1\",\n        sha256 = \"13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/subtle/2.6.1/download\"],\n        strip_prefix = \"subtle-2.6.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.subtle-2.6.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__syn-2.0.115\",\n        sha256 = \"6e614ed320ac28113fa64972c4262d5dbc89deacdfd00c34a3e4cea073243c12\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/syn/2.0.115/download\"],\n        strip_prefix = \"syn-2.0.115\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.syn-2.0.115.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__typenum-1.19.0\",\n        sha256 = \"562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/typenum/1.19.0/download\"],\n        strip_prefix = \"typenum-1.19.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.typenum-1.19.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__unicode-ident-1.0.23\",\n        sha256 = \"537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/unicode-ident/1.0.23/download\"],\n        strip_prefix = \"unicode-ident-1.0.23\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.unicode-ident-1.0.23.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__universal-hash-0.5.1\",\n        sha256 = \"fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/universal-hash/0.5.1/download\"],\n        strip_prefix = \"universal-hash-0.5.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.universal-hash-0.5.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__vcell-0.1.3\",\n        sha256 = \"77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/vcell/0.1.3/download\"],\n        strip_prefix = \"vcell-0.1.3\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.vcell-0.1.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__version_check-0.9.5\",\n        sha256 = \"0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/version_check/0.9.5/download\"],\n        strip_prefix = \"version_check-0.9.5\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.version_check-0.9.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__void-1.0.2\",\n        sha256 = \"6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/void/1.0.2/download\"],\n        strip_prefix = \"void-1.0.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.void-1.0.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__volatile-register-0.2.2\",\n        sha256 = \"de437e2a6208b014ab52972a27e59b33fa2920d3e00fe05026167a1c509d19cc\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/volatile-register/0.2.2/download\"],\n        strip_prefix = \"volatile-register-0.2.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.volatile-register-0.2.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__zerocopy-0.8.39\",\n        sha256 = \"db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/zerocopy/0.8.39/download\"],\n        strip_prefix = \"zerocopy-0.8.39\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.zerocopy-0.8.39.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__zerocopy-derive-0.8.39\",\n        sha256 = \"4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/zerocopy-derive/0.8.39/download\"],\n        strip_prefix = \"zerocopy-derive-0.8.39\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.zerocopy-derive-0.8.39.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__zeroize-1.8.2\",\n        sha256 = \"b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/zeroize/1.8.2/download\"],\n        strip_prefix = \"zeroize-1.8.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.zeroize-1.8.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__zeroize_derive-1.4.3\",\n        sha256 = \"85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/zeroize_derive/1.4.3/download\"],\n        strip_prefix = \"zeroize_derive-1.4.3\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.zeroize_derive-1.4.3.bazel\"),\n    )\n\n    return [\n       struct(repo=\"oot_crates_no_std__aes-0.8.4\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__aes-gcm-0.10.3\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__aspeed-ddk-0.1.0\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__ast1060-pac-0.1.0\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__cipher-0.4.4\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__cortex-m-0.7.7\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__cortex-m-rt-0.7.5\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__cortex-m-semihosting-0.5.0\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__ctr-0.9.2\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__ecdsa-0.16.9\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__embedded-hal-1.0.0\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__embedded-io-0.6.1\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__hmac-0.12.1\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__p256-0.13.2\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__p384-0.13.1\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__sha2-0.10.9\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__zerocopy-0.8.39\", is_dev_dep = False),\n    ]\n"
+                "defs.bzl": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\"\"\"\n# `crates_repository` API\n\n- [aliases](#aliases)\n- [crate_deps](#crate_deps)\n- [all_crate_deps](#all_crate_deps)\n- [crate_repositories](#crate_repositories)\n\n\"\"\"\n\nload(\"@bazel_tools//tools/build_defs/repo:git.bzl\", \"new_git_repository\")\nload(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\nload(\"@bazel_tools//tools/build_defs/repo:utils.bzl\", \"maybe\")\nload(\"@bazel_skylib//lib:selects.bzl\", \"selects\")\nload(\"@rules_rust//crate_universe/private:local_crate_mirror.bzl\", \"local_crate_mirror\")\n\n###############################################################################\n# MACROS API\n###############################################################################\n\n# An identifier that represent common dependencies (unconditional).\n_COMMON_CONDITION = \"\"\n\ndef _flatten_dependency_maps(all_dependency_maps):\n    \"\"\"Flatten a list of dependency maps into one dictionary.\n\n    Dependency maps have the following structure:\n\n    ```python\n    DEPENDENCIES_MAP = {\n        # The first key in the map is a Bazel package\n        # name of the workspace this file is defined in.\n        \"workspace_member_package\": {\n\n            # Not all dependencies are supported for all platforms.\n            # the condition key is the condition required to be true\n            # on the host platform.\n            \"condition\": {\n\n                # An alias to a crate target.     # The label of the crate target the\n                # Aliases are only crate names.   # package name refers to.\n                \"package_name\":                   \"@full//:label\",\n            }\n        }\n    }\n    ```\n\n    Args:\n        all_dependency_maps (list): A list of dicts as described above\n\n    Returns:\n        dict: A dictionary as described above\n    \"\"\"\n    dependencies = {}\n\n    for workspace_deps_map in all_dependency_maps:\n        for pkg_name, conditional_deps_map in workspace_deps_map.items():\n            if pkg_name not in dependencies:\n                non_frozen_map = dict()\n                for key, values in conditional_deps_map.items():\n                    non_frozen_map.update({key: dict(values.items())})\n                dependencies.setdefault(pkg_name, non_frozen_map)\n                continue\n\n            for condition, deps_map in conditional_deps_map.items():\n                # If the condition has not been recorded, do so and continue\n                if condition not in dependencies[pkg_name]:\n                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))\n                    continue\n\n                # Alert on any miss-matched dependencies\n                inconsistent_entries = []\n                for crate_name, crate_label in deps_map.items():\n                    existing = dependencies[pkg_name][condition].get(crate_name)\n                    if existing and existing != crate_label:\n                        inconsistent_entries.append((crate_name, existing, crate_label))\n                    dependencies[pkg_name][condition].update({crate_name: crate_label})\n\n    return dependencies\n\ndef crate_deps(deps, package_name = None):\n    \"\"\"Finds the fully qualified label of the requested crates for the package where this macro is called.\n\n    Args:\n        deps (list): The desired list of crate targets.\n        package_name (str, optional): The package name of the set of dependencies to look up.\n            Defaults to `native.package_name()`.\n\n    Returns:\n        list: A list of labels to generated rust targets (str)\n    \"\"\"\n\n    if not deps:\n        return []\n\n    if package_name == None:\n        package_name = native.package_name()\n\n    # Join both sets of dependencies\n    dependencies = _flatten_dependency_maps([\n        _NORMAL_DEPENDENCIES,\n        _NORMAL_DEV_DEPENDENCIES,\n        _PROC_MACRO_DEPENDENCIES,\n        _PROC_MACRO_DEV_DEPENDENCIES,\n        _BUILD_DEPENDENCIES,\n        _BUILD_PROC_MACRO_DEPENDENCIES,\n    ]).pop(package_name, {})\n\n    # Combine all conditional packages so we can easily index over a flat list\n    # TODO: Perhaps this should actually return select statements and maintain\n    # the conditionals of the dependencies\n    flat_deps = {}\n    for deps_set in dependencies.values():\n        for crate_name, crate_label in deps_set.items():\n            flat_deps.update({crate_name: crate_label})\n\n    missing_crates = []\n    crate_targets = []\n    for crate_target in deps:\n        if crate_target not in flat_deps:\n            missing_crates.append(crate_target)\n        else:\n            crate_targets.append(flat_deps[crate_target])\n\n    if missing_crates:\n        fail(\"Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`\".format(\n            missing_crates,\n            package_name,\n            dependencies,\n        ))\n\n    return crate_targets\n\ndef all_crate_deps(\n        normal = False, \n        normal_dev = False, \n        proc_macro = False, \n        proc_macro_dev = False,\n        build = False,\n        build_proc_macro = False,\n        package_name = None):\n    \"\"\"Finds the fully qualified label of all requested direct crate dependencies \\\n    for the package where this macro is called.\n\n    If no parameters are set, all normal dependencies are returned. Setting any one flag will\n    otherwise impact the contents of the returned list.\n\n    Args:\n        normal (bool, optional): If True, normal dependencies are included in the\n            output list.\n        normal_dev (bool, optional): If True, normal dev dependencies will be\n            included in the output list..\n        proc_macro (bool, optional): If True, proc_macro dependencies are included\n            in the output list.\n        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n            included in the output list.\n        build (bool, optional): If True, build dependencies are included\n            in the output list.\n        build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n            included in the output list.\n        package_name (str, optional): The package name of the set of dependencies to look up.\n            Defaults to `native.package_name()` when unset.\n\n    Returns:\n        list: A list of labels to generated rust targets (str)\n    \"\"\"\n\n    if package_name == None:\n        package_name = native.package_name()\n\n    # Determine the relevant maps to use\n    all_dependency_maps = []\n    if normal:\n        all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n    if normal_dev:\n        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)\n    if proc_macro:\n        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)\n    if proc_macro_dev:\n        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)\n    if build:\n        all_dependency_maps.append(_BUILD_DEPENDENCIES)\n    if build_proc_macro:\n        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)\n\n    # Default to always using normal dependencies\n    if not all_dependency_maps:\n        all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n\n    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)\n\n    if not dependencies:\n        if dependencies == None:\n            fail(\"Tried to get all_crate_deps for package \" + package_name + \" but that package had no Cargo.toml file\")\n        else:\n            return []\n\n    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())\n    for condition, deps in dependencies.items():\n        crate_deps += selects.with_or({\n            tuple(_CONDITIONS[condition]): deps.values(),\n            \"//conditions:default\": [],\n        })\n\n    return crate_deps\n\ndef aliases(\n        normal = False,\n        normal_dev = False,\n        proc_macro = False,\n        proc_macro_dev = False,\n        build = False,\n        build_proc_macro = False,\n        package_name = None):\n    \"\"\"Produces a map of Crate alias names to their original label\n\n    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.\n    Setting any one flag will otherwise determine the contents of the returned dict.\n\n    Args:\n        normal (bool, optional): If True, normal dependencies are included in the\n            output list.\n        normal_dev (bool, optional): If True, normal dev dependencies will be\n            included in the output list..\n        proc_macro (bool, optional): If True, proc_macro dependencies are included\n            in the output list.\n        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n            included in the output list.\n        build (bool, optional): If True, build dependencies are included\n            in the output list.\n        build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n            included in the output list.\n        package_name (str, optional): The package name of the set of dependencies to look up.\n            Defaults to `native.package_name()` when unset.\n\n    Returns:\n        dict: The aliases of all associated packages\n    \"\"\"\n    if package_name == None:\n        package_name = native.package_name()\n\n    # Determine the relevant maps to use\n    all_aliases_maps = []\n    if normal:\n        all_aliases_maps.append(_NORMAL_ALIASES)\n    if normal_dev:\n        all_aliases_maps.append(_NORMAL_DEV_ALIASES)\n    if proc_macro:\n        all_aliases_maps.append(_PROC_MACRO_ALIASES)\n    if proc_macro_dev:\n        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)\n    if build:\n        all_aliases_maps.append(_BUILD_ALIASES)\n    if build_proc_macro:\n        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)\n\n    # Default to always using normal aliases\n    if not all_aliases_maps:\n        all_aliases_maps.append(_NORMAL_ALIASES)\n        all_aliases_maps.append(_PROC_MACRO_ALIASES)\n\n    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)\n\n    if not aliases:\n        return dict()\n\n    common_items = aliases.pop(_COMMON_CONDITION, {}).items()\n\n    # If there are only common items in the dictionary, immediately return them\n    if not len(aliases.keys()) == 1:\n        return dict(common_items)\n\n    # Build a single select statement where each conditional has accounted for the\n    # common set of aliases.\n    crate_aliases = {\"//conditions:default\": dict(common_items)}\n    for condition, deps in aliases.items():\n        condition_triples = _CONDITIONS[condition]\n        for triple in condition_triples:\n            if triple in crate_aliases:\n                crate_aliases[triple].update(deps)\n            else:\n                crate_aliases.update({triple: dict(deps.items() + common_items)})\n\n    return select(crate_aliases)\n\n###############################################################################\n# WORKSPACE MEMBER DEPS AND ALIASES\n###############################################################################\n\n_NORMAL_DEPENDENCIES = {\n    \"third_party/crates_io/crates_no_std\": {\n        _COMMON_CONDITION: {\n            \"aes\": Label(\"@oot_crates_no_std//:aes-0.8.4\"),\n            \"aes-gcm\": Label(\"@oot_crates_no_std//:aes-gcm-0.10.3\"),\n            \"aspeed-ddk\": Label(\"@oot_crates_no_std//:aspeed-ddk-0.1.0\"),\n            \"ast1060-pac\": Label(\"@oot_crates_no_std//:ast1060-pac-0.1.0\"),\n            \"cipher\": Label(\"@oot_crates_no_std//:cipher-0.4.4\"),\n            \"cortex-m\": Label(\"@oot_crates_no_std//:cortex-m-0.7.7\"),\n            \"cortex-m-rt\": Label(\"@oot_crates_no_std//:cortex-m-rt-0.7.5\"),\n            \"cortex-m-semihosting\": Label(\"@oot_crates_no_std//:cortex-m-semihosting-0.5.0\"),\n            \"ctr\": Label(\"@oot_crates_no_std//:ctr-0.9.2\"),\n            \"ecdsa\": Label(\"@oot_crates_no_std//:ecdsa-0.16.9\"),\n            \"embedded-hal\": Label(\"@oot_crates_no_std//:embedded-hal-1.0.0\"),\n            \"embedded-io\": Label(\"@oot_crates_no_std//:embedded-io-0.6.1\"),\n            \"fugit\": Label(\"@oot_crates_no_std//:fugit-0.3.9\"),\n            \"heapless\": Label(\"@oot_crates_no_std//:heapless-0.8.0\"),\n            \"hex-literal\": Label(\"@oot_crates_no_std//:hex-literal-0.4.1\"),\n            \"hmac\": Label(\"@oot_crates_no_std//:hmac-0.12.1\"),\n            \"mctp\": Label(\"@oot_crates_no_std//:mctp-0.2.0\"),\n            \"mctp-lib\": Label(\"@oot_crates_no_std//:mctp-lib-0.1.0\"),\n            \"nb\": Label(\"@oot_crates_no_std//:nb-1.1.0\"),\n            \"openprot-hal-blocking\": Label(\"@oot_crates_no_std//:openprot-hal-blocking-0.1.0\"),\n            \"p256\": Label(\"@oot_crates_no_std//:p256-0.13.2\"),\n            \"p384\": Label(\"@oot_crates_no_std//:p384-0.13.1\"),\n            \"proposed-traits\": Label(\"@oot_crates_no_std//:proposed-traits-0.1.0\"),\n            \"sha2\": Label(\"@oot_crates_no_std//:sha2-0.10.9\"),\n            \"zerocopy\": Label(\"@oot_crates_no_std//:zerocopy-0.8.40\"),\n        },\n    },\n}\n\n\n_NORMAL_ALIASES = {\n    \"third_party/crates_io/crates_no_std\": {\n        _COMMON_CONDITION: {\n        },\n    },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_PROC_MACRO_ALIASES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_BUILD_DEPENDENCIES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_BUILD_ALIASES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n    \"third_party/crates_io/crates_no_std\": {\n    },\n}\n\n\n_CONDITIONS = {\n    \"aarch64-apple-darwin\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n    \"aarch64-linux-android\": [],\n    \"aarch64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n    \"cfg(all(target_arch = \\\"aarch64\\\", target_os = \\\"linux\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n    \"cfg(all(target_arch = \\\"aarch64\\\", target_vendor = \\\"apple\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n    \"cfg(all(target_arch = \\\"loongarch64\\\", target_os = \\\"linux\\\"))\": [],\n    \"cfg(any(target_arch = \\\"aarch64\\\", target_arch = \\\"x86_64\\\", target_arch = \\\"x86\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n    \"riscv32imc-unknown-none-elf\": [\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\"],\n    \"thumbv6m-none-eabi\": [\"@rules_rust//rust/platform:thumbv6m-none-eabi\"],\n    \"thumbv7em-none-eabi\": [\"@rules_rust//rust/platform:thumbv7em-none-eabi\"],\n    \"thumbv7m-none-eabi\": [\"@rules_rust//rust/platform:thumbv7m-none-eabi\"],\n    \"thumbv8m.main-none-eabi\": [\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\"],\n    \"x86_64-apple-darwin\": [\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n    \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n}\n\n###############################################################################\n\ndef crate_repositories():\n    \"\"\"A macro for defining repositories for all generated crates.\n\n    Returns:\n      A list of repos visible to the module through the module extension.\n    \"\"\"\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__aead-0.5.2\",\n        sha256 = \"d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/aead/0.5.2/download\"],\n        strip_prefix = \"aead-0.5.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.aead-0.5.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__aes-0.8.4\",\n        sha256 = \"b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/aes/0.8.4/download\"],\n        strip_prefix = \"aes-0.8.4\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.aes-0.8.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__aes-gcm-0.10.3\",\n        sha256 = \"831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/aes-gcm/0.10.3/download\"],\n        strip_prefix = \"aes-gcm-0.10.3\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.aes-gcm-0.10.3.bazel\"),\n    )\n\n    maybe(\n        new_git_repository,\n        name = \"oot_crates_no_std__aspeed-ddk-0.1.0\",\n        commit = \"e93e85b0fff8a448a86c6a81bbbf1818ea6094e6\",\n        init_submodules = True,\n        remote = \"https://github.com/OpenPRoT/aspeed-rust.git\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.aspeed-ddk-0.1.0.bazel\"),\n    )\n\n    maybe(\n        new_git_repository,\n        name = \"oot_crates_no_std__ast1060-pac-0.1.0\",\n        commit = \"564cd385f0b160b4a5ce435b930d28b87799bc96\",\n        init_submodules = True,\n        remote = \"https://github.com/OpenPRoT/ast1060-pac.git\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.ast1060-pac-0.1.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__async-trait-0.1.89\",\n        sha256 = \"9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/async-trait/0.1.89/download\"],\n        strip_prefix = \"async-trait-0.1.89\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.async-trait-0.1.89.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__bare-metal-0.2.5\",\n        sha256 = \"5deb64efa5bd81e31fcd1938615a6d98c82eafcbcd787162b6f63b91d6bac5b3\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/bare-metal/0.2.5/download\"],\n        strip_prefix = \"bare-metal-0.2.5\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.bare-metal-0.2.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__base16ct-0.2.0\",\n        sha256 = \"4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/base16ct/0.2.0/download\"],\n        strip_prefix = \"base16ct-0.2.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.base16ct-0.2.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__bitfield-0.13.2\",\n        sha256 = \"46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/bitfield/0.13.2/download\"],\n        strip_prefix = \"bitfield-0.13.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.bitfield-0.13.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__bitflags-2.11.0\",\n        sha256 = \"843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/bitflags/2.11.0/download\"],\n        strip_prefix = \"bitflags-2.11.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.bitflags-2.11.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__block-buffer-0.10.4\",\n        sha256 = \"3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/block-buffer/0.10.4/download\"],\n        strip_prefix = \"block-buffer-0.10.4\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.block-buffer-0.10.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__byteorder-1.5.0\",\n        sha256 = \"1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/byteorder/1.5.0/download\"],\n        strip_prefix = \"byteorder-1.5.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.byteorder-1.5.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__cfg-if-1.0.4\",\n        sha256 = \"9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cfg-if/1.0.4/download\"],\n        strip_prefix = \"cfg-if-1.0.4\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.cfg-if-1.0.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__cipher-0.4.4\",\n        sha256 = \"773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cipher/0.4.4/download\"],\n        strip_prefix = \"cipher-0.4.4\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.cipher-0.4.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__const-oid-0.9.6\",\n        sha256 = \"c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/const-oid/0.9.6/download\"],\n        strip_prefix = \"const-oid-0.9.6\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.const-oid-0.9.6.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__cortex-m-0.7.7\",\n        sha256 = \"8ec610d8f49840a5b376c69663b6369e71f4b34484b9b2eb29fb918d92516cb9\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cortex-m/0.7.7/download\"],\n        strip_prefix = \"cortex-m-0.7.7\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.cortex-m-0.7.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__cortex-m-rt-0.7.5\",\n        sha256 = \"801d4dec46b34c299ccf6b036717ae0fce602faa4f4fe816d9013b9a7c9f5ba6\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cortex-m-rt/0.7.5/download\"],\n        strip_prefix = \"cortex-m-rt-0.7.5\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.cortex-m-rt-0.7.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__cortex-m-rt-macros-0.7.5\",\n        sha256 = \"e37549a379a9e0e6e576fd208ee60394ccb8be963889eebba3ffe0980364f472\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cortex-m-rt-macros/0.7.5/download\"],\n        strip_prefix = \"cortex-m-rt-macros-0.7.5\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.cortex-m-rt-macros-0.7.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__cortex-m-semihosting-0.5.0\",\n        sha256 = \"c23234600452033cc77e4b761e740e02d2c4168e11dbf36ab14a0f58973592b0\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cortex-m-semihosting/0.5.0/download\"],\n        strip_prefix = \"cortex-m-semihosting-0.5.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.cortex-m-semihosting-0.5.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__cpufeatures-0.2.17\",\n        sha256 = \"59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/cpufeatures/0.2.17/download\"],\n        strip_prefix = \"cpufeatures-0.2.17\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.cpufeatures-0.2.17.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__crc-3.4.0\",\n        sha256 = \"5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/crc/3.4.0/download\"],\n        strip_prefix = \"crc-3.4.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.crc-3.4.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__crc-catalog-2.4.0\",\n        sha256 = \"19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/crc-catalog/2.4.0/download\"],\n        strip_prefix = \"crc-catalog-2.4.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.crc-catalog-2.4.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__crypto-bigint-0.5.5\",\n        sha256 = \"0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/crypto-bigint/0.5.5/download\"],\n        strip_prefix = \"crypto-bigint-0.5.5\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.crypto-bigint-0.5.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__crypto-common-0.1.7\",\n        sha256 = \"78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/crypto-common/0.1.7/download\"],\n        strip_prefix = \"crypto-common-0.1.7\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.crypto-common-0.1.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__ctr-0.9.2\",\n        sha256 = \"0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/ctr/0.9.2/download\"],\n        strip_prefix = \"ctr-0.9.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.ctr-0.9.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__der-0.7.10\",\n        sha256 = \"e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/der/0.7.10/download\"],\n        strip_prefix = \"der-0.7.10\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.der-0.7.10.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__digest-0.10.7\",\n        sha256 = \"9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/digest/0.10.7/download\"],\n        strip_prefix = \"digest-0.10.7\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.digest-0.10.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__ecdsa-0.16.9\",\n        sha256 = \"ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/ecdsa/0.16.9/download\"],\n        strip_prefix = \"ecdsa-0.16.9\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.ecdsa-0.16.9.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__elliptic-curve-0.13.8\",\n        sha256 = \"b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/elliptic-curve/0.13.8/download\"],\n        strip_prefix = \"elliptic-curve-0.13.8\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.elliptic-curve-0.13.8.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__embedded-crc-macros-1.0.0\",\n        sha256 = \"4f1c75747a43b086df1a87fb2a889590bc0725e0abf54bba6d0c4bf7bd9e762c\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/embedded-crc-macros/1.0.0/download\"],\n        strip_prefix = \"embedded-crc-macros-1.0.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.embedded-crc-macros-1.0.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__embedded-hal-0.2.7\",\n        sha256 = \"35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/embedded-hal/0.2.7/download\"],\n        strip_prefix = \"embedded-hal-0.2.7\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.embedded-hal-0.2.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__embedded-hal-1.0.0\",\n        sha256 = \"361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/embedded-hal/1.0.0/download\"],\n        strip_prefix = \"embedded-hal-1.0.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.embedded-hal-1.0.0.bazel\"),\n    )\n\n    maybe(\n        new_git_repository,\n        name = \"oot_crates_no_std__embedded-hal-1.0.0-alpha.1\",\n        commit = \"599d44fdc7e709cb9ae6580ec11c0b7f7f102981\",\n        init_submodules = True,\n        remote = \"https://github.com/rust-embedded/embedded-hal.git\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.embedded-hal-1.0.0-alpha.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__embedded-io-0.6.1\",\n        sha256 = \"edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/embedded-io/0.6.1/download\"],\n        strip_prefix = \"embedded-io-0.6.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.embedded-io-0.6.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__embedded-io-async-0.6.1\",\n        sha256 = \"3ff09972d4073aa8c299395be75161d582e7629cd663171d62af73c8d50dba3f\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/embedded-io-async/0.6.1/download\"],\n        strip_prefix = \"embedded-io-async-0.6.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.embedded-io-async-0.6.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__embedded-storage-0.3.1\",\n        sha256 = \"a21dea9854beb860f3062d10228ce9b976da520a73474aed3171ec276bc0c032\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/embedded-storage/0.3.1/download\"],\n        strip_prefix = \"embedded-storage-0.3.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.embedded-storage-0.3.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__ff-0.13.1\",\n        sha256 = \"c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/ff/0.13.1/download\"],\n        strip_prefix = \"ff-0.13.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.ff-0.13.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__fugit-0.3.9\",\n        sha256 = \"4e639847d312d9a82d2e75b0edcc1e934efcc64e6cb7aa94f0b1fbec0bc231d6\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/fugit/0.3.9/download\"],\n        strip_prefix = \"fugit-0.3.9\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.fugit-0.3.9.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__gcd-2.3.0\",\n        sha256 = \"1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/gcd/2.3.0/download\"],\n        strip_prefix = \"gcd-2.3.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.gcd-2.3.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__generic-array-0.14.7\",\n        sha256 = \"85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/generic-array/0.14.7/download\"],\n        strip_prefix = \"generic-array-0.14.7\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.generic-array-0.14.7.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__ghash-0.5.1\",\n        sha256 = \"f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/ghash/0.5.1/download\"],\n        strip_prefix = \"ghash-0.5.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.ghash-0.5.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__group-0.13.0\",\n        sha256 = \"f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/group/0.13.0/download\"],\n        strip_prefix = \"group-0.13.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.group-0.13.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__hash32-0.3.1\",\n        sha256 = \"47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/hash32/0.3.1/download\"],\n        strip_prefix = \"hash32-0.3.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.hash32-0.3.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__heapless-0.8.0\",\n        sha256 = \"0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/heapless/0.8.0/download\"],\n        strip_prefix = \"heapless-0.8.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.heapless-0.8.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__hex-literal-0.4.1\",\n        sha256 = \"6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/hex-literal/0.4.1/download\"],\n        strip_prefix = \"hex-literal-0.4.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.hex-literal-0.4.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__hmac-0.12.1\",\n        sha256 = \"6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/hmac/0.12.1/download\"],\n        strip_prefix = \"hmac-0.12.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.hmac-0.12.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__inout-0.1.4\",\n        sha256 = \"879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/inout/0.1.4/download\"],\n        strip_prefix = \"inout-0.1.4\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.inout-0.1.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__libc-0.2.182\",\n        sha256 = \"6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/libc/0.2.182/download\"],\n        strip_prefix = \"libc-0.2.182\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.libc-0.2.182.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__log-0.4.29\",\n        sha256 = \"5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/log/0.4.29/download\"],\n        strip_prefix = \"log-0.4.29\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.log-0.4.29.bazel\"),\n    )\n\n    maybe(\n        new_git_repository,\n        name = \"oot_crates_no_std__mctp-0.2.0\",\n        commit = \"fafe92f6fcadf6e57683b91757fad9933ddd223d\",\n        init_submodules = True,\n        remote = \"https://github.com/OpenPRoT/mctp-rs.git\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.mctp-0.2.0.bazel\"),\n        strip_prefix = \"mctp\",\n    )\n\n    maybe(\n        new_git_repository,\n        name = \"oot_crates_no_std__mctp-estack-0.1.0\",\n        commit = \"fafe92f6fcadf6e57683b91757fad9933ddd223d\",\n        init_submodules = True,\n        remote = \"https://github.com/OpenPRoT/mctp-rs.git\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.mctp-estack-0.1.0.bazel\"),\n        strip_prefix = \"mctp-estack\",\n    )\n\n    maybe(\n        new_git_repository,\n        name = \"oot_crates_no_std__mctp-lib-0.1.0\",\n        commit = \"9c53adaeb7ae544cbeab4654530a50d158e33fe5\",\n        init_submodules = True,\n        remote = \"https://github.com/9elements/mctp-lib.git\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.mctp-lib-0.1.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__nb-0.1.3\",\n        sha256 = \"801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/nb/0.1.3/download\"],\n        strip_prefix = \"nb-0.1.3\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.nb-0.1.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__nb-1.1.0\",\n        sha256 = \"8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/nb/1.1.0/download\"],\n        strip_prefix = \"nb-1.1.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.nb-1.1.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__opaque-debug-0.3.1\",\n        sha256 = \"c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/opaque-debug/0.3.1/download\"],\n        strip_prefix = \"opaque-debug-0.3.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.opaque-debug-0.3.1.bazel\"),\n    )\n\n    maybe(\n        new_git_repository,\n        name = \"oot_crates_no_std__openprot-hal-blocking-0.1.0\",\n        commit = \"c6cd23a56f3cc7945b062ea1bcdabf3af0dba82d\",\n        init_submodules = True,\n        remote = \"https://github.com/rusty1968/openprot.git\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.openprot-hal-blocking-0.1.0.bazel\"),\n        strip_prefix = \"hal/blocking\",\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__p256-0.13.2\",\n        sha256 = \"c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/p256/0.13.2/download\"],\n        strip_prefix = \"p256-0.13.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.p256-0.13.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__p384-0.13.1\",\n        sha256 = \"fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/p384/0.13.1/download\"],\n        strip_prefix = \"p384-0.13.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.p384-0.13.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__panic-halt-1.0.0\",\n        sha256 = \"a513e167849a384b7f9b746e517604398518590a9142f4846a32e3c2a4de7b11\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/panic-halt/1.0.0/download\"],\n        strip_prefix = \"panic-halt-1.0.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.panic-halt-1.0.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__paste-1.0.15\",\n        sha256 = \"57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/paste/1.0.15/download\"],\n        strip_prefix = \"paste-1.0.15\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.paste-1.0.15.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__polyval-0.6.2\",\n        sha256 = \"9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/polyval/0.6.2/download\"],\n        strip_prefix = \"polyval-0.6.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.polyval-0.6.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__primeorder-0.13.6\",\n        sha256 = \"353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/primeorder/0.13.6/download\"],\n        strip_prefix = \"primeorder-0.13.6\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.primeorder-0.13.6.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__proc-macro2-1.0.106\",\n        sha256 = \"8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/proc-macro2/1.0.106/download\"],\n        strip_prefix = \"proc-macro2-1.0.106\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.proc-macro2-1.0.106.bazel\"),\n    )\n\n    maybe(\n        new_git_repository,\n        name = \"oot_crates_no_std__proposed-traits-0.1.0\",\n        commit = \"85641310df5a5276c67f81621b104322cff0286c\",\n        init_submodules = True,\n        remote = \"https://github.com/rusty1968/proposed_traits.git\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.proposed-traits-0.1.0.bazel\"),\n        strip_prefix = \"proposed-traits\",\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__quote-1.0.45\",\n        sha256 = \"41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/quote/1.0.45/download\"],\n        strip_prefix = \"quote-1.0.45\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.quote-1.0.45.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__rand_core-0.6.4\",\n        sha256 = \"ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/rand_core/0.6.4/download\"],\n        strip_prefix = \"rand_core-0.6.4\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.rand_core-0.6.4.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__rand_core-0.9.5\",\n        sha256 = \"76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/rand_core/0.9.5/download\"],\n        strip_prefix = \"rand_core-0.9.5\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.rand_core-0.9.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__rfc6979-0.4.0\",\n        sha256 = \"f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/rfc6979/0.4.0/download\"],\n        strip_prefix = \"rfc6979-0.4.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.rfc6979-0.4.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__rustc_version-0.2.3\",\n        sha256 = \"138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/rustc_version/0.2.3/download\"],\n        strip_prefix = \"rustc_version-0.2.3\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.rustc_version-0.2.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__sec1-0.7.3\",\n        sha256 = \"d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/sec1/0.7.3/download\"],\n        strip_prefix = \"sec1-0.7.3\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.sec1-0.7.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__semver-0.9.0\",\n        sha256 = \"1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/semver/0.9.0/download\"],\n        strip_prefix = \"semver-0.9.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.semver-0.9.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__semver-parser-0.7.0\",\n        sha256 = \"388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/semver-parser/0.7.0/download\"],\n        strip_prefix = \"semver-parser-0.7.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.semver-parser-0.7.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__sha2-0.10.9\",\n        sha256 = \"a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/sha2/0.10.9/download\"],\n        strip_prefix = \"sha2-0.10.9\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.sha2-0.10.9.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__signature-2.2.0\",\n        sha256 = \"77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/signature/2.2.0/download\"],\n        strip_prefix = \"signature-2.2.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.signature-2.2.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__smbus-pec-1.0.1\",\n        sha256 = \"ca0763a680cd5d72b28f7bfc8a054c117d8841380a6ad4f72f05bd2a34217d3e\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/smbus-pec/1.0.1/download\"],\n        strip_prefix = \"smbus-pec-1.0.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.smbus-pec-1.0.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__stable_deref_trait-1.2.1\",\n        sha256 = \"6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/stable_deref_trait/1.2.1/download\"],\n        strip_prefix = \"stable_deref_trait-1.2.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.stable_deref_trait-1.2.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__subtle-2.6.1\",\n        sha256 = \"13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/subtle/2.6.1/download\"],\n        strip_prefix = \"subtle-2.6.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.subtle-2.6.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__syn-2.0.117\",\n        sha256 = \"e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/syn/2.0.117/download\"],\n        strip_prefix = \"syn-2.0.117\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.syn-2.0.117.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__typenum-1.19.0\",\n        sha256 = \"562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/typenum/1.19.0/download\"],\n        strip_prefix = \"typenum-1.19.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.typenum-1.19.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__unicode-ident-1.0.24\",\n        sha256 = \"e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/unicode-ident/1.0.24/download\"],\n        strip_prefix = \"unicode-ident-1.0.24\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.unicode-ident-1.0.24.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__universal-hash-0.5.1\",\n        sha256 = \"fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/universal-hash/0.5.1/download\"],\n        strip_prefix = \"universal-hash-0.5.1\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.universal-hash-0.5.1.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__uuid-1.22.0\",\n        sha256 = \"a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/uuid/1.22.0/download\"],\n        strip_prefix = \"uuid-1.22.0\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.uuid-1.22.0.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__vcell-0.1.3\",\n        sha256 = \"77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/vcell/0.1.3/download\"],\n        strip_prefix = \"vcell-0.1.3\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.vcell-0.1.3.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__version_check-0.9.5\",\n        sha256 = \"0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/version_check/0.9.5/download\"],\n        strip_prefix = \"version_check-0.9.5\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.version_check-0.9.5.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__void-1.0.2\",\n        sha256 = \"6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/void/1.0.2/download\"],\n        strip_prefix = \"void-1.0.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.void-1.0.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__volatile-register-0.2.2\",\n        sha256 = \"de437e2a6208b014ab52972a27e59b33fa2920d3e00fe05026167a1c509d19cc\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/volatile-register/0.2.2/download\"],\n        strip_prefix = \"volatile-register-0.2.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.volatile-register-0.2.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__zerocopy-0.8.40\",\n        sha256 = \"a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/zerocopy/0.8.40/download\"],\n        strip_prefix = \"zerocopy-0.8.40\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.zerocopy-0.8.40.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__zerocopy-derive-0.8.40\",\n        sha256 = \"f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/zerocopy-derive/0.8.40/download\"],\n        strip_prefix = \"zerocopy-derive-0.8.40\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.zerocopy-derive-0.8.40.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__zeroize-1.8.2\",\n        sha256 = \"b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/zeroize/1.8.2/download\"],\n        strip_prefix = \"zeroize-1.8.2\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.zeroize-1.8.2.bazel\"),\n    )\n\n    maybe(\n        http_archive,\n        name = \"oot_crates_no_std__zeroize_derive-1.4.3\",\n        sha256 = \"85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e\",\n        type = \"tar.gz\",\n        urls = [\"https://static.crates.io/crates/zeroize_derive/1.4.3/download\"],\n        strip_prefix = \"zeroize_derive-1.4.3\",\n        build_file = Label(\"@oot_crates_no_std//oot_crates_no_std:BUILD.zeroize_derive-1.4.3.bazel\"),\n    )\n\n    return [\n       struct(repo=\"oot_crates_no_std__aes-0.8.4\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__aes-gcm-0.10.3\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__aspeed-ddk-0.1.0\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__ast1060-pac-0.1.0\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__cipher-0.4.4\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__cortex-m-0.7.7\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__cortex-m-rt-0.7.5\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__cortex-m-semihosting-0.5.0\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__ctr-0.9.2\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__ecdsa-0.16.9\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__embedded-hal-1.0.0\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__embedded-io-0.6.1\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__fugit-0.3.9\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__heapless-0.8.0\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__hex-literal-0.4.1\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__hmac-0.12.1\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__mctp-0.2.0\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__mctp-lib-0.1.0\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__nb-1.1.0\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__openprot-hal-blocking-0.1.0\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__p256-0.13.2\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__p384-0.13.1\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__proposed-traits-0.1.0\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__sha2-0.10.9\", is_dev_dep = False),\n       struct(repo=\"oot_crates_no_std__zerocopy-0.8.40\", is_dev_dep = False),\n    ]\n"
               }
             }
           },
@@ -3028,9 +3300,9 @@
               "patches": [],
               "shallow_since": "",
               "remote": "https://github.com/OpenPRoT/aspeed-rust.git",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"aspeed_ddk\",\n    deps = [\n        \"@oot_crates_no_std__aspeed-ddk-0.1.0//:build_script_build\",\n        \"@oot_crates_no_std__ast1060-pac-0.1.0//:ast1060_pac\",\n        \"@oot_crates_no_std__cortex-m-0.7.7//:cortex_m\",\n        \"@oot_crates_no_std__cortex-m-rt-0.7.5//:cortex_m_rt\",\n        \"@oot_crates_no_std__critical-section-1.2.0//:critical_section\",\n        \"@oot_crates_no_std__embedded-hal-1.0.0//:embedded_hal\",\n        \"@oot_crates_no_std__embedded-hal-1.0.0-alpha.1//:embedded_hal\",\n        \"@oot_crates_no_std__embedded-io-0.6.1//:embedded_io\",\n        \"@oot_crates_no_std__fugit-0.3.9//:fugit\",\n        \"@oot_crates_no_std__heapless-0.8.0//:heapless\",\n        \"@oot_crates_no_std__hex-literal-0.4.1//:hex_literal\",\n        \"@oot_crates_no_std__nb-1.1.0//:nb\",\n        \"@oot_crates_no_std__openprot-hal-blocking-0.1.0//:openprot_hal_blocking\",\n        \"@oot_crates_no_std__panic-halt-1.0.0//:panic_halt\",\n        \"@oot_crates_no_std__proposed-traits-0.1.0//:proposed_traits\",\n        \"@oot_crates_no_std__zerocopy-0.8.39//:zerocopy\",\n    ],\n    proc_macro_deps = [\n        \"@oot_crates_no_std__paste-1.0.15//:paste\",\n    ],\n    aliases = {\n        \"@oot_crates_no_std__embedded-hal-1.0.0-alpha.1//:embedded_hal\": \"embedded_hal_old\",\n    },\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=aspeed-ddk\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.0\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    link_deps = [\n        \"@oot_crates_no_std__cortex-m-0.7.7//:cortex_m\",\n        \"@oot_crates_no_std__cortex-m-rt-0.7.5//:cortex_m_rt\",\n    ],\n    edition = \"2021\",\n    pkg_name = \"aspeed-ddk\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=aspeed-ddk\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.1.0\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"aspeed_ddk\",\n    deps = [\n        \"@oot_crates_no_std__aspeed-ddk-0.1.0//:build_script_build\",\n        \"@oot_crates_no_std__ast1060-pac-0.1.0//:ast1060_pac\",\n        \"@oot_crates_no_std__bitflags-2.11.0//:bitflags\",\n        \"@oot_crates_no_std__cortex-m-0.7.7//:cortex_m\",\n        \"@oot_crates_no_std__cortex-m-rt-0.7.5//:cortex_m_rt\",\n        \"@oot_crates_no_std__embedded-hal-1.0.0//:embedded_hal\",\n        \"@oot_crates_no_std__embedded-hal-1.0.0-alpha.1//:embedded_hal\",\n        \"@oot_crates_no_std__embedded-io-0.6.1//:embedded_io\",\n        \"@oot_crates_no_std__fugit-0.3.9//:fugit\",\n        \"@oot_crates_no_std__heapless-0.8.0//:heapless\",\n        \"@oot_crates_no_std__hex-literal-0.4.1//:hex_literal\",\n        \"@oot_crates_no_std__nb-1.1.0//:nb\",\n        \"@oot_crates_no_std__openprot-hal-blocking-0.1.0//:openprot_hal_blocking\",\n        \"@oot_crates_no_std__panic-halt-1.0.0//:panic_halt\",\n        \"@oot_crates_no_std__proposed-traits-0.1.0//:proposed_traits\",\n        \"@oot_crates_no_std__zerocopy-0.8.40//:zerocopy\",\n    ],\n    proc_macro_deps = [\n        \"@oot_crates_no_std__paste-1.0.15//:paste\",\n    ],\n    aliases = {\n        \"@oot_crates_no_std__embedded-hal-1.0.0-alpha.1//:embedded_hal\": \"embedded_hal_old\",\n    },\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=aspeed-ddk\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.0\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    link_deps = [\n        \"@oot_crates_no_std__cortex-m-0.7.7//:cortex_m\",\n        \"@oot_crates_no_std__cortex-m-rt-0.7.5//:cortex_m_rt\",\n    ],\n    edition = \"2021\",\n    pkg_name = \"aspeed-ddk\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=aspeed-ddk\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.1.0\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n",
               "strip_prefix": "",
-              "commit": "048e272b0d6ffc2a5a8e870c7316b08df33bda7c"
+              "commit": "e93e85b0fff8a448a86c6a81bbbf1818ea6094e6"
             }
           },
           "oot_crates_no_std__ast1060-pac-0.1.0": {
@@ -3041,10 +3313,10 @@
               "patch_tool": "",
               "patches": [],
               "shallow_since": "",
-              "remote": "https://github.com/stevenlee7189/ast1060-pac",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"ast1060_pac\",\n    deps = [\n        \"@oot_crates_no_std__ast1060-pac-0.1.0//:build_script_build\",\n        \"@oot_crates_no_std__cortex-m-0.7.7//:cortex_m\",\n        \"@oot_crates_no_std__cortex-m-rt-0.7.5//:cortex_m_rt\",\n        \"@oot_crates_no_std__vcell-0.1.3//:vcell\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"cortex-m-rt\",\n        \"rt\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=ast1060-pac\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.0\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"cortex-m-rt\",\n        \"rt\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    link_deps = [\n        \"@oot_crates_no_std__cortex-m-0.7.7//:cortex_m\",\n        \"@oot_crates_no_std__cortex-m-rt-0.7.5//:cortex_m_rt\",\n    ],\n    edition = \"2021\",\n    pkg_name = \"ast1060-pac\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=ast1060-pac\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.1.0\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n",
+              "remote": "https://github.com/OpenPRoT/ast1060-pac.git",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"ast1060_pac\",\n    deps = [\n        \"@oot_crates_no_std__ast1060-pac-0.1.0//:build_script_build\",\n        \"@oot_crates_no_std__cortex-m-0.7.7//:cortex_m\",\n        \"@oot_crates_no_std__vcell-0.1.3//:vcell\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"cortex-m-rt\",\n        \"rt\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=ast1060-pac\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.0\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"cortex-m-rt\",\n        \"rt\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    link_deps = [\n        \"@oot_crates_no_std__cortex-m-0.7.7//:cortex_m\",\n    ],\n    edition = \"2021\",\n    pkg_name = \"ast1060-pac\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=ast1060-pac\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.1.0\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n",
               "strip_prefix": "",
-              "commit": "310f66a458f1edbb4e0c515969188dac7e62df10"
+              "commit": "564cd385f0b160b4a5ce435b930d28b87799bc96"
             }
           },
           "oot_crates_no_std__async-trait-0.1.89": {
@@ -3060,7 +3332,7 @@
                 "https://static.crates.io/crates/async-trait/0.1.89/download"
               ],
               "strip_prefix": "async-trait-0.1.89",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"async_trait\",\n    deps = [\n        \"@oot_crates_no_std__proc-macro2-1.0.106//:proc_macro2\",\n        \"@oot_crates_no_std__quote-1.0.44//:quote\",\n        \"@oot_crates_no_std__syn-2.0.115//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=async-trait\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.89\",\n)\n"
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"async_trait\",\n    deps = [\n        \"@oot_crates_no_std__proc-macro2-1.0.106//:proc_macro2\",\n        \"@oot_crates_no_std__quote-1.0.45//:quote\",\n        \"@oot_crates_no_std__syn-2.0.117//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=async-trait\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.89\",\n)\n"
             }
           },
           "oot_crates_no_std__bare-metal-0.2.5": {
@@ -3111,6 +3383,22 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"bitfield\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=bitfield\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.13.2\",\n)\n"
             }
           },
+          "oot_crates_no_std__bitflags-2.11.0": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/bitflags/2.11.0/download"
+              ],
+              "strip_prefix": "bitflags-2.11.0",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"bitflags\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=bitflags\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"2.11.0\",\n)\n"
+            }
+          },
           "oot_crates_no_std__block-buffer-0.10.4": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -3204,7 +3492,7 @@
                 "https://static.crates.io/crates/cortex-m/0.7.7/download"
               ],
               "strip_prefix": "cortex-m-0.7.7",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"cortex_m\",\n    deps = [\n        \"@oot_crates_no_std__bare-metal-0.2.5//:bare_metal\",\n        \"@oot_crates_no_std__bitfield-0.13.2//:bitfield\",\n        \"@oot_crates_no_std__cortex-m-0.7.7//:build_script_build\",\n        \"@oot_crates_no_std__critical-section-1.2.0//:critical_section\",\n        \"@oot_crates_no_std__embedded-hal-0.2.7//:embedded_hal\",\n        \"@oot_crates_no_std__volatile-register-0.2.2//:volatile_register\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"critical-section\",\n        \"critical-section-single-core\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=cortex-m\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.7.7\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"critical-section\",\n        \"critical-section-single-core\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2018\",\n    links = \"cortex-m\",\n    pkg_name = \"cortex-m\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=cortex-m\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.7.7\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"cortex_m\",\n    deps = [\n        \"@oot_crates_no_std__bare-metal-0.2.5//:bare_metal\",\n        \"@oot_crates_no_std__bitfield-0.13.2//:bitfield\",\n        \"@oot_crates_no_std__cortex-m-0.7.7//:build_script_build\",\n        \"@oot_crates_no_std__embedded-hal-0.2.7//:embedded_hal\",\n        \"@oot_crates_no_std__volatile-register-0.2.2//:volatile_register\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=cortex-m\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.7.7\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2018\",\n    links = \"cortex-m\",\n    pkg_name = \"cortex-m\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=cortex-m\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.7.7\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
             }
           },
           "oot_crates_no_std__cortex-m-rt-0.7.5": {
@@ -3236,7 +3524,7 @@
                 "https://static.crates.io/crates/cortex-m-rt-macros/0.7.5/download"
               ],
               "strip_prefix": "cortex-m-rt-macros-0.7.5",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"cortex_m_rt_macros\",\n    deps = [\n        \"@oot_crates_no_std__proc-macro2-1.0.106//:proc_macro2\",\n        \"@oot_crates_no_std__quote-1.0.44//:quote\",\n        \"@oot_crates_no_std__syn-2.0.115//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=cortex-m-rt-macros\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.7.5\",\n)\n"
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"cortex_m_rt_macros\",\n    deps = [\n        \"@oot_crates_no_std__proc-macro2-1.0.106//:proc_macro2\",\n        \"@oot_crates_no_std__quote-1.0.45//:quote\",\n        \"@oot_crates_no_std__syn-2.0.117//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=cortex-m-rt-macros\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.7.5\",\n)\n"
             }
           },
           "oot_crates_no_std__cortex-m-semihosting-0.5.0": {
@@ -3271,20 +3559,36 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"cpufeatures\",\n    deps = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [\n            \"@oot_crates_no_std__libc-0.2.182//:libc\",  # cfg(all(target_arch = \"aarch64\", target_vendor = \"apple\"))\n        ],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [\n            \"@oot_crates_no_std__libc-0.2.182//:libc\",  # cfg(all(target_arch = \"aarch64\", target_os = \"linux\"))\n        ],\n        \"//conditions:default\": [],\n    }),\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=cpufeatures\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.2.17\",\n)\n"
             }
           },
-          "oot_crates_no_std__critical-section-1.2.0": {
+          "oot_crates_no_std__crc-3.4.0": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
               "patch_args": [],
               "patch_tool": "",
               "patches": [],
               "remote_patch_strip": 1,
-              "sha256": "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b",
+              "sha256": "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d",
               "type": "tar.gz",
               "urls": [
-                "https://static.crates.io/crates/critical-section/1.2.0/download"
+                "https://static.crates.io/crates/crc/3.4.0/download"
               ],
-              "strip_prefix": "critical-section-1.2.0",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"critical_section\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"restore-state-bool\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=critical-section\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.2.0\",\n)\n"
+              "strip_prefix": "crc-3.4.0",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"crc\",\n    deps = [\n        \"@oot_crates_no_std__crc-catalog-2.4.0//:crc_catalog\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=crc\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"3.4.0\",\n)\n"
+            }
+          },
+          "oot_crates_no_std__crc-catalog-2.4.0": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/crc-catalog/2.4.0/download"
+              ],
+              "strip_prefix": "crc-catalog-2.4.0",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"crc_catalog\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=crc-catalog\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"2.4.0\",\n)\n"
             }
           },
           "oot_crates_no_std__crypto-bigint-0.5.5": {
@@ -3399,6 +3703,22 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"elliptic_curve\",\n    deps = [\n        \"@oot_crates_no_std__base16ct-0.2.0//:base16ct\",\n        \"@oot_crates_no_std__crypto-bigint-0.5.5//:crypto_bigint\",\n        \"@oot_crates_no_std__digest-0.10.7//:digest\",\n        \"@oot_crates_no_std__ff-0.13.1//:ff\",\n        \"@oot_crates_no_std__generic-array-0.14.7//:generic_array\",\n        \"@oot_crates_no_std__group-0.13.0//:group\",\n        \"@oot_crates_no_std__rand_core-0.6.4//:rand_core\",\n        \"@oot_crates_no_std__sec1-0.7.3//:sec1\",\n        \"@oot_crates_no_std__subtle-2.6.1//:subtle\",\n        \"@oot_crates_no_std__zeroize-1.8.2//:zeroize\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"arithmetic\",\n        \"digest\",\n        \"ff\",\n        \"group\",\n        \"hazmat\",\n        \"sec1\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=elliptic-curve\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.13.8\",\n)\n"
             }
           },
+          "oot_crates_no_std__embedded-crc-macros-1.0.0": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "4f1c75747a43b086df1a87fb2a889590bc0725e0abf54bba6d0c4bf7bd9e762c",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/embedded-crc-macros/1.0.0/download"
+              ],
+              "strip_prefix": "embedded-crc-macros-1.0.0",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"embedded_crc_macros\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=embedded-crc-macros\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.0.0\",\n)\n"
+            }
+          },
           "oot_crates_no_std__embedded-hal-0.2.7": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -3461,6 +3781,22 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"embedded_io\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=embedded-io\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.6.1\",\n)\n"
             }
           },
+          "oot_crates_no_std__embedded-io-async-0.6.1": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "3ff09972d4073aa8c299395be75161d582e7629cd663171d62af73c8d50dba3f",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/embedded-io-async/0.6.1/download"
+              ],
+              "strip_prefix": "embedded-io-async-0.6.1",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"embedded_io_async\",\n    deps = [\n        \"@oot_crates_no_std__embedded-io-0.6.1//:embedded_io\",\n        \"@oot_crates_no_std__embedded-io-async-0.6.1//:build_script_build\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=embedded-io-async\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.6.1\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2021\",\n    pkg_name = \"embedded-io-async\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=embedded-io-async\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.6.1\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
+            }
+          },
           "oot_crates_no_std__embedded-storage-0.3.1": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -3669,6 +4005,64 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"libc\",\n    deps = [\n        \"@oot_crates_no_std__libc-0.2.182//:build_script_build\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=libc\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.2.182\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2021\",\n    pkg_name = \"libc\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=libc\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.2.182\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
             }
           },
+          "oot_crates_no_std__log-0.4.29": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/log/0.4.29/download"
+              ],
+              "strip_prefix": "log-0.4.29",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"log\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=log\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.4.29\",\n)\n"
+            }
+          },
+          "oot_crates_no_std__mctp-0.2.0": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:git.bzl%git_repository",
+            "attributes": {
+              "init_submodules": true,
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "shallow_since": "",
+              "remote": "https://github.com/OpenPRoT/mctp-rs.git",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"mctp\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=mctp\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.2.0\",\n)\n",
+              "strip_prefix": "mctp",
+              "commit": "fafe92f6fcadf6e57683b91757fad9933ddd223d"
+            }
+          },
+          "oot_crates_no_std__mctp-estack-0.1.0": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:git.bzl%git_repository",
+            "attributes": {
+              "init_submodules": true,
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "shallow_since": "",
+              "remote": "https://github.com/OpenPRoT/mctp-rs.git",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"mctp_estack\",\n    deps = [\n        \"@oot_crates_no_std__crc-3.4.0//:crc\",\n        \"@oot_crates_no_std__embedded-io-0.6.1//:embedded_io\",\n        \"@oot_crates_no_std__embedded-io-async-0.6.1//:embedded_io_async\",\n        \"@oot_crates_no_std__heapless-0.8.0//:heapless\",\n        \"@oot_crates_no_std__log-0.4.29//:log\",\n        \"@oot_crates_no_std__mctp-0.2.0//:mctp\",\n        \"@oot_crates_no_std__smbus-pec-1.0.1//:smbus_pec\",\n        \"@oot_crates_no_std__uuid-1.22.0//:uuid\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"log\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=mctp-estack\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.0\",\n)\n",
+              "strip_prefix": "mctp-estack",
+              "commit": "fafe92f6fcadf6e57683b91757fad9933ddd223d"
+            }
+          },
+          "oot_crates_no_std__mctp-lib-0.1.0": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:git.bzl%git_repository",
+            "attributes": {
+              "init_submodules": true,
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "shallow_since": "",
+              "remote": "https://github.com/9elements/mctp-lib.git",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"mctp_lib\",\n    deps = [\n        \"@oot_crates_no_std__mctp-0.2.0//:mctp\",\n        \"@oot_crates_no_std__mctp-estack-0.1.0//:mctp_estack\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2024\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=mctp-lib\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.0\",\n)\n",
+              "strip_prefix": "",
+              "commit": "9c53adaeb7ae544cbeab4654530a50d158e33fe5"
+            }
+          },
           "oot_crates_no_std__nb-0.1.3": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -3725,10 +4119,10 @@
               "patch_tool": "",
               "patches": [],
               "shallow_since": "",
-              "remote": "https://github.com/OpenPRoT/openprot",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"openprot_hal_blocking\",\n    deps = [\n        \"@oot_crates_no_std__embedded-hal-1.0.0//:embedded_hal\",\n        \"@oot_crates_no_std__rand_core-0.9.5//:rand_core\",\n        \"@oot_crates_no_std__subtle-2.6.1//:subtle\",\n        \"@oot_crates_no_std__zerocopy-0.8.39//:zerocopy\",\n        \"@oot_crates_no_std__zeroize-1.8.2//:zeroize\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=openprot-hal-blocking\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.0\",\n)\n",
+              "remote": "https://github.com/rusty1968/openprot.git",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"openprot_hal_blocking\",\n    deps = [\n        \"@oot_crates_no_std__embedded-hal-1.0.0//:embedded_hal\",\n        \"@oot_crates_no_std__rand_core-0.9.5//:rand_core\",\n        \"@oot_crates_no_std__subtle-2.6.1//:subtle\",\n        \"@oot_crates_no_std__zerocopy-0.8.40//:zerocopy\",\n        \"@oot_crates_no_std__zeroize-1.8.2//:zeroize\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=openprot-hal-blocking\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.1.0\",\n)\n",
               "strip_prefix": "hal/blocking",
-              "commit": "b2081ffd8d0fbcb1f8f6a4a458e044ce949d2e1e"
+              "commit": "c6cd23a56f3cc7945b062ea1bcdabf3af0dba82d"
             }
           },
           "oot_crates_no_std__p256-0.13.2": {
@@ -3840,7 +4234,7 @@
                 "https://static.crates.io/crates/proc-macro2/1.0.106/download"
               ],
               "strip_prefix": "proc-macro2-1.0.106",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"proc_macro2\",\n    deps = [\n        \"@oot_crates_no_std__proc-macro2-1.0.106//:build_script_build\",\n        \"@oot_crates_no_std__unicode-ident-1.0.23//:unicode_ident\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n        \"proc-macro\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=proc-macro2\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.0.106\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n        \"proc-macro\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2021\",\n    pkg_name = \"proc-macro2\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=proc-macro2\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"1.0.106\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"proc_macro2\",\n    deps = [\n        \"@oot_crates_no_std__proc-macro2-1.0.106//:build_script_build\",\n        \"@oot_crates_no_std__unicode-ident-1.0.24//:unicode_ident\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n        \"proc-macro\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=proc-macro2\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.0.106\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n        \"proc-macro\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2021\",\n    pkg_name = \"proc-macro2\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=proc-macro2\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"1.0.106\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
             }
           },
           "oot_crates_no_std__proposed-traits-0.1.0": {
@@ -3857,20 +4251,20 @@
               "commit": "85641310df5a5276c67f81621b104322cff0286c"
             }
           },
-          "oot_crates_no_std__quote-1.0.44": {
+          "oot_crates_no_std__quote-1.0.45": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
               "patch_args": [],
               "patch_tool": "",
               "patches": [],
               "remote_patch_strip": 1,
-              "sha256": "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4",
+              "sha256": "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924",
               "type": "tar.gz",
               "urls": [
-                "https://static.crates.io/crates/quote/1.0.44/download"
+                "https://static.crates.io/crates/quote/1.0.45/download"
               ],
-              "strip_prefix": "quote-1.0.44",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"quote\",\n    deps = [\n        \"@oot_crates_no_std__proc-macro2-1.0.106//:proc_macro2\",\n        \"@oot_crates_no_std__quote-1.0.44//:build_script_build\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n        \"proc-macro\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=quote\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.0.44\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n        \"proc-macro\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2021\",\n    pkg_name = \"quote\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=quote\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"1.0.44\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
+              "strip_prefix": "quote-1.0.45",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"quote\",\n    deps = [\n        \"@oot_crates_no_std__proc-macro2-1.0.106//:proc_macro2\",\n        \"@oot_crates_no_std__quote-1.0.45//:build_script_build\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n        \"proc-macro\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=quote\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.0.45\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"default\",\n        \"proc-macro\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2021\",\n    pkg_name = \"quote\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=quote\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"1.0.45\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
             }
           },
           "oot_crates_no_std__rand_core-0.6.4": {
@@ -4017,6 +4411,22 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"signature\",\n    deps = [\n        \"@oot_crates_no_std__digest-0.10.7//:digest\",\n        \"@oot_crates_no_std__rand_core-0.6.4//:rand_core\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"digest\",\n        \"rand_core\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=signature\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"2.2.0\",\n)\n"
             }
           },
+          "oot_crates_no_std__smbus-pec-1.0.1": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "ca0763a680cd5d72b28f7bfc8a054c117d8841380a6ad4f72f05bd2a34217d3e",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/smbus-pec/1.0.1/download"
+              ],
+              "strip_prefix": "smbus-pec-1.0.1",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"smbus_pec\",\n    deps = [\n        \"@oot_crates_no_std__embedded-crc-macros-1.0.0//:embedded_crc_macros\",\n        \"@oot_crates_no_std__smbus-pec-1.0.1//:build_script_build\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"lookup-table\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=smbus-pec\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.0.1\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"lookup-table\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    deps = [\n        \"@oot_crates_no_std__embedded-crc-macros-1.0.0//:embedded_crc_macros\",\n    ],\n    edition = \"2018\",\n    pkg_name = \"smbus-pec\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=smbus-pec\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"1.0.1\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
+            }
+          },
           "oot_crates_no_std__stable_deref_trait-1.2.1": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -4049,20 +4459,20 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"subtle\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"i128\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=subtle\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"2.6.1\",\n)\n"
             }
           },
-          "oot_crates_no_std__syn-2.0.115": {
+          "oot_crates_no_std__syn-2.0.117": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
               "patch_args": [],
               "patch_tool": "",
               "patches": [],
               "remote_patch_strip": 1,
-              "sha256": "6e614ed320ac28113fa64972c4262d5dbc89deacdfd00c34a3e4cea073243c12",
+              "sha256": "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99",
               "type": "tar.gz",
               "urls": [
-                "https://static.crates.io/crates/syn/2.0.115/download"
+                "https://static.crates.io/crates/syn/2.0.117/download"
               ],
-              "strip_prefix": "syn-2.0.115",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"syn\",\n    deps = [\n        \"@oot_crates_no_std__proc-macro2-1.0.106//:proc_macro2\",\n        \"@oot_crates_no_std__quote-1.0.44//:quote\",\n        \"@oot_crates_no_std__unicode-ident-1.0.23//:unicode_ident\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"clone-impls\",\n        \"default\",\n        \"derive\",\n        \"extra-traits\",\n        \"full\",\n        \"parsing\",\n        \"printing\",\n        \"proc-macro\",\n        \"visit\",\n        \"visit-mut\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=syn\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"2.0.115\",\n)\n"
+              "strip_prefix": "syn-2.0.117",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"syn\",\n    deps = [\n        \"@oot_crates_no_std__proc-macro2-1.0.106//:proc_macro2\",\n        \"@oot_crates_no_std__quote-1.0.45//:quote\",\n        \"@oot_crates_no_std__unicode-ident-1.0.24//:unicode_ident\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"clone-impls\",\n        \"default\",\n        \"derive\",\n        \"extra-traits\",\n        \"full\",\n        \"parsing\",\n        \"printing\",\n        \"proc-macro\",\n        \"visit\",\n        \"visit-mut\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=syn\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"2.0.117\",\n)\n"
             }
           },
           "oot_crates_no_std__typenum-1.19.0": {
@@ -4081,20 +4491,20 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"typenum\",\n    deps = [\n        \"@oot_crates_no_std__typenum-1.19.0//:build_script_build\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2018\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=typenum\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.19.0\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2018\",\n    pkg_name = \"typenum\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=typenum\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"1.19.0\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
             }
           },
-          "oot_crates_no_std__unicode-ident-1.0.23": {
+          "oot_crates_no_std__unicode-ident-1.0.24": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
               "patch_args": [],
               "patch_tool": "",
               "patches": [],
               "remote_patch_strip": 1,
-              "sha256": "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e",
+              "sha256": "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75",
               "type": "tar.gz",
               "urls": [
-                "https://static.crates.io/crates/unicode-ident/1.0.23/download"
+                "https://static.crates.io/crates/unicode-ident/1.0.24/download"
               ],
-              "strip_prefix": "unicode-ident-1.0.23",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"unicode_ident\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=unicode-ident\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.0.23\",\n)\n"
+              "strip_prefix": "unicode-ident-1.0.24",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"unicode_ident\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=unicode-ident\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.0.24\",\n)\n"
             }
           },
           "oot_crates_no_std__universal-hash-0.5.1": {
@@ -4113,6 +4523,22 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"universal_hash\",\n    deps = [\n        \"@oot_crates_no_std__crypto-common-0.1.7//:crypto_common\",\n        \"@oot_crates_no_std__subtle-2.6.1//:subtle\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=universal-hash\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.5.1\",\n)\n"
             }
           },
+          "oot_crates_no_std__uuid-1.22.0": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+            "attributes": {
+              "patch_args": [],
+              "patch_tool": "",
+              "patches": [],
+              "remote_patch_strip": 1,
+              "sha256": "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37",
+              "type": "tar.gz",
+              "urls": [
+                "https://static.crates.io/crates/uuid/1.22.0/download"
+              ],
+              "strip_prefix": "uuid-1.22.0",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"uuid\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=uuid\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.22.0\",\n)\n"
+            }
+          },
           "oot_crates_no_std__vcell-0.1.3": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
@@ -4177,36 +4603,36 @@
               "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"volatile_register\",\n    deps = [\n        \"@oot_crates_no_std__vcell-0.1.3//:vcell\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2015\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=volatile-register\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.2.2\",\n)\n"
             }
           },
-          "oot_crates_no_std__zerocopy-0.8.39": {
+          "oot_crates_no_std__zerocopy-0.8.40": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
               "patch_args": [],
               "patch_tool": "",
               "patches": [],
               "remote_patch_strip": 1,
-              "sha256": "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a",
+              "sha256": "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5",
               "type": "tar.gz",
               "urls": [
-                "https://static.crates.io/crates/zerocopy/0.8.39/download"
+                "https://static.crates.io/crates/zerocopy/0.8.40/download"
               ],
-              "strip_prefix": "zerocopy-0.8.39",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"zerocopy\",\n    deps = [\n        \"@oot_crates_no_std__zerocopy-0.8.39//:build_script_build\",\n    ],\n    proc_macro_deps = [\n        \"@oot_crates_no_std__zerocopy-derive-0.8.39//:zerocopy_derive\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"derive\",\n        \"zerocopy-derive\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=zerocopy\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.8.39\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"derive\",\n        \"zerocopy-derive\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2021\",\n    pkg_name = \"zerocopy\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=zerocopy\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.8.39\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
+              "strip_prefix": "zerocopy-0.8.40",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\n    \"@rules_rust//cargo:defs.bzl\",\n    \"cargo_build_script\",\n    \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_library(\n    name = \"zerocopy\",\n    deps = [\n        \"@oot_crates_no_std__zerocopy-0.8.40//:build_script_build\",\n    ],\n    proc_macro_deps = [\n        \"@oot_crates_no_std__zerocopy-derive-0.8.40//:zerocopy_derive\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"derive\",\n        \"zerocopy-derive\",\n    ],\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=zerocopy\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.8.40\",\n)\n\ncargo_build_script(\n    name = \"_bs\",\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \"**/*.rs\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_features = [\n        \"derive\",\n        \"zerocopy-derive\",\n    ],\n    crate_name = \"build_script_build\",\n    crate_root = \"build.rs\",\n    data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    edition = \"2021\",\n    pkg_name = \"zerocopy\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=zerocopy\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    version = \"0.8.40\",\n    visibility = [\"//visibility:private\"],\n)\n\nalias(\n    name = \"build_script_build\",\n    actual = \":_bs\",\n    tags = [\"manual\"],\n)\n"
             }
           },
-          "oot_crates_no_std__zerocopy-derive-0.8.39": {
+          "oot_crates_no_std__zerocopy-derive-0.8.40": {
             "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
               "patch_args": [],
               "patch_tool": "",
               "patches": [],
               "remote_patch_strip": 1,
-              "sha256": "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517",
+              "sha256": "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953",
               "type": "tar.gz",
               "urls": [
-                "https://static.crates.io/crates/zerocopy-derive/0.8.39/download"
+                "https://static.crates.io/crates/zerocopy-derive/0.8.40/download"
               ],
-              "strip_prefix": "zerocopy-derive-0.8.39",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"zerocopy_derive\",\n    deps = [\n        \"@oot_crates_no_std__proc-macro2-1.0.106//:proc_macro2\",\n        \"@oot_crates_no_std__quote-1.0.44//:quote\",\n        \"@oot_crates_no_std__syn-2.0.115//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=zerocopy-derive\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.8.39\",\n)\n"
+              "strip_prefix": "zerocopy-derive-0.8.40",
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"zerocopy_derive\",\n    deps = [\n        \"@oot_crates_no_std__proc-macro2-1.0.106//:proc_macro2\",\n        \"@oot_crates_no_std__quote-1.0.45//:quote\",\n        \"@oot_crates_no_std__syn-2.0.117//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=zerocopy-derive\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"0.8.40\",\n)\n"
             }
           },
           "oot_crates_no_std__zeroize-1.8.2": {
@@ -4238,7 +4664,7 @@
                 "https://static.crates.io/crates/zeroize_derive/1.4.3/download"
               ],
               "strip_prefix": "zeroize_derive-1.4.3",
-              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"zeroize_derive\",\n    deps = [\n        \"@oot_crates_no_std__proc-macro2-1.0.106//:proc_macro2\",\n        \"@oot_crates_no_std__quote-1.0.44//:quote\",\n        \"@oot_crates_no_std__syn-2.0.115//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=zeroize_derive\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.4.3\",\n)\n"
+              "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n#     bazel mod show_repo 'opentitan_pigweed'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n    name = \"cargo_toml_env_vars\",\n    src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n    name = \"zeroize_derive\",\n    deps = [\n        \"@oot_crates_no_std__proc-macro2-1.0.106//:proc_macro2\",\n        \"@oot_crates_no_std__quote-1.0.45//:quote\",\n        \"@oot_crates_no_std__syn-2.0.117//:syn\",\n    ],\n    compile_data = glob(\n        allow_empty = True,\n        include = [\"**\"],\n        exclude = [\n            \"**/* *\",\n            \".tmp_git_root/**/*\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n        ],\n    ),\n    crate_root = \"src/lib.rs\",\n    edition = \"2021\",\n    rustc_env_files = [\n        \":cargo_toml_env_vars\",\n    ],\n    rustc_flags = [\n        \"--cap-lints=allow\",\n    ],\n    srcs = glob(\n        allow_empty = True,\n        include = [\"**/*.rs\"],\n    ),\n    tags = [\n        \"cargo-bazel\",\n        \"crate-name=zeroize_derive\",\n        \"manual\",\n        \"noclippy\",\n        \"norustfmt\",\n    ],\n    target_compatible_with = select({\n        \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n        \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n        \"@rules_rust//rust/platform:thumbv6m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv7m-none-eabi\": [],\n        \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n        \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n        \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n        \"//conditions:default\": [\"@platforms//:incompatible\"],\n    }),\n    version = \"1.4.3\",\n)\n"
             }
           },
           "crates_no_std": {
diff --git a/services/mctp/server/src/lib.rs b/services/mctp/server/src/lib.rs
index 118bfd8..5f558cc 100644
--- a/services/mctp/server/src/lib.rs
+++ b/services/mctp/server/src/lib.rs
@@ -5,14 +5,14 @@
 //! Platform-independent MCTP server implementation for OpenPRoT.
 //!
 //! This crate provides the core MCTP server logic that manages:
-//! - Listener and request handle allocation (via `mctp-lib` [`Router`](mctp_stack::Router))
+//! - Listener and request handle allocation (via `mctp-lib` [`Router`](mctp_lib::Router))
 //! - Inbound message routing to registered listeners
 //! - Outbound message fragmentation and sending
 //! - Timeout management for pending receive calls
 //!
 //! ## Transport Bindings
 //!
-//! The server is generic over the `mctp-lib` [`Sender`](mctp_stack::Sender) trait
+//! The server is generic over the `mctp-lib` [`Sender`](mctp_lib::Sender) trait
 //! for outbound transport. Transport-specific bindings (I2C, serial) implement
 //! this trait and feed inbound packets via [`Server::inbound`].
 //!
@@ -30,5 +30,5 @@
 pub mod dispatch;
 mod server;
 
-pub use mctp_stack::Sender;
+pub use mctp_lib::Sender;
 pub use server::{RecvResult, Server, ServerConfig};
diff --git a/services/mctp/server/src/main.rs b/services/mctp/server/src/main.rs
index 80242dc..63152cc 100644
--- a/services/mctp/server/src/main.rs
+++ b/services/mctp/server/src/main.rs
@@ -120,10 +120,10 @@
 /// the I2C transport is wired up.
 struct NoopSender;
 
-impl mctp_stack::Sender for NoopSender {
+impl mctp_lib::Sender for NoopSender {
     fn send_vectored(
         &mut self,
-        _fragmenter: mctp_stack::fragment::Fragmenter,
+        _fragmenter: mctp_lib::fragment::Fragmenter,
         _payload: &[&[u8]],
     ) -> mctp::Result<mctp::Tag> {
         Err(mctp::Error::TxFailure)
diff --git a/services/mctp/server/src/server.rs b/services/mctp/server/src/server.rs
index 5f63256..9e839f4 100644
--- a/services/mctp/server/src/server.rs
+++ b/services/mctp/server/src/server.rs
@@ -10,7 +10,7 @@
 
 use heapless::LinearMap;
 use mctp::{Eid, MsgIC, MsgType, Tag, TagValue};
-use mctp_stack::{AppCookie, Router, Sender};
+use mctp_lib::{AppCookie, Router, Sender};
 use openprot_mctp_api::{Handle, MctpError, RecvMetadata, ResponseCode};
 
 /// Maximum payload size in bytes.
diff --git a/services/mctp/server/tests/dispatch.rs b/services/mctp/server/tests/dispatch.rs
index 1e09dfb..d94dad8 100644
--- a/services/mctp/server/tests/dispatch.rs
+++ b/services/mctp/server/tests/dispatch.rs
@@ -10,8 +10,8 @@
 use std::cell::RefCell;
 
 use mctp::{Eid, Tag};
-use mctp_stack::fragment::{Fragmenter, SendOutput};
-use mctp_stack::Sender;
+use mctp_lib::fragment::{Fragmenter, SendOutput};
+use mctp_lib::Sender;
 use openprot_mctp_api::wire;
 use openprot_mctp_server::{dispatch::dispatch_mctp_op, Server};
 
diff --git a/services/mctp/server/tests/echo.rs b/services/mctp/server/tests/echo.rs
index 183b8ea..28e1173 100644
--- a/services/mctp/server/tests/echo.rs
+++ b/services/mctp/server/tests/echo.rs
@@ -16,8 +16,8 @@
 use std::cell::RefCell;
 
 use mctp::{Eid, Tag};
-use mctp_stack::fragment::{Fragmenter, SendOutput};
-use mctp_stack::Sender;
+use mctp_lib::fragment::{Fragmenter, SendOutput};
+use mctp_lib::Sender;
 use openprot_mctp_api::{Handle, MctpClient, MctpError, RecvMetadata, ResponseCode};
 use openprot_mctp_server::Server;
 
diff --git a/services/mctp/transport-i2c/src/lib.rs b/services/mctp/transport-i2c/src/lib.rs
index d8a1448..aa0ff52 100644
--- a/services/mctp/transport-i2c/src/lib.rs
+++ b/services/mctp/transport-i2c/src/lib.rs
@@ -5,7 +5,7 @@
 //! This crate provides the I2C transport binding for the MCTP server,
 //! ported from the Hubris `mctp-server/src/i2c.rs`.
 //!
-//! It implements [`mctp_stack::Sender`] for outbound MCTP-over-I2C packets
+//! It implements [`mctp_lib::Sender`] for outbound MCTP-over-I2C packets
 //! and provides [`MctpI2cReceiver`] for decoding inbound I2C target messages
 //! into MCTP packets.
 //!
@@ -14,7 +14,7 @@
 //! - Hubris `drv_i2c_api::I2cDevice` → OpenPRoT `I2cClientBlocking` trait
 //! - Hubris `TaskId` → generic `I2cClientBlocking` implementor
 //! - All MCTP protocol logic (encoding, fragmentation, PEC) preserved as-is
-//!   via `mctp_stack::i2c::MctpI2cEncap`
+//!   via `mctp_lib::i2c::MctpI2cEncap`
 
 #![no_std]
 #![warn(missing_docs)]
diff --git a/services/mctp/transport-i2c/src/receiver.rs b/services/mctp/transport-i2c/src/receiver.rs
index d7107e8..9c4b3b8 100644
--- a/services/mctp/transport-i2c/src/receiver.rs
+++ b/services/mctp/transport-i2c/src/receiver.rs
@@ -6,15 +6,15 @@
 //! that can be fed to `Server::inbound()`.
 //!
 //! This corresponds to the `handle_i2c_transport` function in Hubris
-//! `mctp-server/src/main.rs`, using `mctp_stack::i2c::MctpI2cEncap`
+//! `mctp-server/src/main.rs`, using `mctp_lib::i2c::MctpI2cEncap`
 //! for decoding (same as Hubris).
 
-use mctp_stack::i2c::MctpI2cEncap;
+use mctp_lib::i2c::MctpI2cEncap;
 use openprot_i2c_api::TargetMessage;
 
 /// Decodes I2C target messages into raw MCTP packets.
 ///
-/// Wraps the `mctp_stack::i2c::MctpI2cEncap` decoder. One instance
+/// Wraps the `mctp_lib::i2c::MctpI2cEncap` decoder. One instance
 /// should exist per I2C bus carrying MCTP traffic.
 pub struct MctpI2cReceiver {
     encap: MctpI2cEncap,
diff --git a/services/mctp/transport-i2c/src/sender.rs b/services/mctp/transport-i2c/src/sender.rs
index 90d01fc..73ba2a8 100644
--- a/services/mctp/transport-i2c/src/sender.rs
+++ b/services/mctp/transport-i2c/src/sender.rs
@@ -7,12 +7,12 @@
 //! `openprot_i2c_api::I2cClientBlocking`.
 
 use mctp::Result;
-use mctp_stack::i2c::{MctpI2cEncap, MCTP_I2C_MAXMTU};
+use mctp_lib::i2c::{MctpI2cEncap, MCTP_I2C_MAXMTU};
 use openprot_i2c_api::{BusIndex, I2cAddress, I2cClientBlocking};
 
 /// I2C MCTP sender.
 ///
-/// Implements `mctp_stack::Sender` to fragment and send MCTP packets
+/// Implements `mctp_lib::Sender` to fragment and send MCTP packets
 /// over I2C using the OpenPRoT I2C client API.
 ///
 /// This is a direct port of the Hubris `I2cSender`. The fragmentation
@@ -43,10 +43,10 @@
     }
 }
 
-impl<C: I2cClientBlocking> mctp_stack::Sender for I2cSender<C> {
+impl<C: I2cClientBlocking> mctp_lib::Sender for I2cSender<C> {
     fn send_vectored(
         &mut self,
-        mut fragmenter: mctp_stack::fragment::Fragmenter,
+        mut fragmenter: mctp_lib::fragment::Fragmenter,
         payload: &[&[u8]],
     ) -> Result<mctp::Tag> {
         // TODO The stack needs to provide the destination EID to the sender
@@ -59,21 +59,21 @@
         let encoder = MctpI2cEncap::new(self.own_addr);
 
         loop {
-            let mut pkt = [0u8; mctp_stack::serial::MTU_MAX];
+            let mut pkt = [0u8; mctp_lib::serial::MTU_MAX];
             let r = fragmenter.fragment_vectored(payload, &mut pkt);
 
             match r {
-                mctp_stack::fragment::SendOutput::Packet(p) => {
+                mctp_lib::fragment::SendOutput::Packet(p) => {
                     let mut out = [0; MCTP_I2C_MAXMTU + 8]; // max MTU + I2C header size
                     let _packet = encoder.encode(addr, p, &mut out, true)?;
                     self.i2c
                         .write(self.bus, dest_address, &out)
                         .map_err(|_| mctp::Error::TxFailure)?;
                 }
-                mctp_stack::fragment::SendOutput::Complete { tag, .. } => {
+                mctp_lib::fragment::SendOutput::Complete { tag, .. } => {
                     break Ok(tag);
                 }
-                mctp_stack::fragment::SendOutput::Error { err, .. } => {
+                mctp_lib::fragment::SendOutput::Error { err, .. } => {
                     break Err(err);
                 }
             }
diff --git a/target/ast1060-evb/mctp/system.json5 b/target/ast1060-evb/mctp/system.json5
index b0a3b86..c0eb169 100644
--- a/target/ast1060-evb/mctp/system.json5
+++ b/target/ast1060-evb/mctp/system.json5
@@ -5,8 +5,8 @@
 // 768KB SRAM (640KB usable), executes from RAM
 //
 // Memory Layout (PMSAv7-friendly, power-of-2 aligned regions):
-//   0x00000000 - 0x000004A0: Vector table + kernel annotations (1184 bytes)
-//   0x000004A0 - 0x00020000: Kernel code (~126KB)
+//   0x00000000 - 0x00000500: Vector table + kernel annotations (1280 bytes)
+//   0x00000500 - 0x00020000: Kernel code (~126KB)
 //   0x00020000 - 0x00080000: App flash (384KB: 3 apps × 128KB)
 //   0x00080000 - 0x000B0000: App RAM (192KB: 3 apps × 64KB)
 //   0x000B0000 - 0x000C0000: Kernel RAM (64KB)
@@ -16,11 +16,11 @@
     arch: {
         type: "armv7m",
         vector_table_start_address: 0x00000000,
-        vector_table_size_bytes: 1184,  // 0x4A0 (272 vectors + thread/stack annotations)
+        vector_table_size_bytes: 1280,  // 0x500 (272 vectors + thread/stack annotations)
     },
     kernel: {
-        flash_start_address: 0x000004A0,  // After vector table + annotations
-        flash_size_bytes: 129888,         // ~126KB (ends at 0x00020000, power-of-2 boundary)
+        flash_start_address: 0x00000500,  // After vector table + annotations
+        flash_size_bytes: 130816,         // ~127KB (ends at 0x00020000, power-of-2 boundary)
         ram_start_address: 0x000B0000,    // After all app RAM
         ram_size_bytes: 65536,            // 64KB
     },
diff --git a/third_party/crates_io/crates_no_std/Cargo.lock b/third_party/crates_io/crates_no_std/Cargo.lock
index 3a6b5dc..6dd6afa 100644
--- a/third_party/crates_io/crates_no_std/Cargo.lock
+++ b/third_party/crates_io/crates_no_std/Cargo.lock
@@ -40,7 +40,7 @@
 [[package]]
 name = "aspeed-ddk"
 version = "0.1.0"
-source = "git+https://github.com/OpenPRoT/aspeed-rust.git?branch=i2c-core#a1cd0aa834446d20c4ab841fd02f0045c42f4480"
+source = "git+https://github.com/OpenPRoT/aspeed-rust.git?branch=i2c-core#e93e85b0fff8a448a86c6a81bbbf1818ea6094e6"
 dependencies = [
  "ast1060-pac 0.1.0 (git+https://github.com/OpenPRoT/ast1060-pac.git?branch=main)",
  "bitflags",
@@ -220,14 +220,37 @@
  "ecdsa",
  "embedded-hal 1.0.0",
  "embedded-io",
+ "fugit",
+ "heapless",
+ "hex-literal",
  "hmac",
+ "mctp",
+ "mctp-lib",
+ "nb 1.1.0",
+ "openprot-hal-blocking",
  "p256",
  "p384",
+ "proposed-traits",
  "sha2",
  "zerocopy",
 ]
 
 [[package]]
+name = "crc"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d"
+dependencies = [
+ "crc-catalog",
+]
+
+[[package]]
+name = "crc-catalog"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
+
+[[package]]
 name = "crypto-bigint"
 version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -312,6 +335,12 @@
 ]
 
 [[package]]
+name = "embedded-crc-macros"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f1c75747a43b086df1a87fb2a889590bc0725e0abf54bba6d0c4bf7bd9e762c"
+
+[[package]]
 name = "embedded-hal"
 version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -342,6 +371,15 @@
 checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d"
 
 [[package]]
+name = "embedded-io-async"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ff09972d4073aa8c299395be75161d582e7629cd663171d62af73c8d50dba3f"
+dependencies = [
+ "embedded-io",
+]
+
+[[package]]
 name = "embedded-storage"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -454,6 +492,41 @@
 checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
 
 [[package]]
+name = "log"
+version = "0.4.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
+
+[[package]]
+name = "mctp"
+version = "0.2.0"
+source = "git+https://github.com/OpenPRoT/mctp-rs.git?branch=sync-features#fafe92f6fcadf6e57683b91757fad9933ddd223d"
+
+[[package]]
+name = "mctp-estack"
+version = "0.1.0"
+source = "git+https://github.com/OpenPRoT/mctp-rs.git?branch=sync-features#fafe92f6fcadf6e57683b91757fad9933ddd223d"
+dependencies = [
+ "crc",
+ "embedded-io",
+ "embedded-io-async",
+ "heapless",
+ "log",
+ "mctp",
+ "smbus-pec",
+ "uuid",
+]
+
+[[package]]
+name = "mctp-lib"
+version = "0.1.0"
+source = "git+https://github.com/9elements/mctp-lib.git?branch=buildup#9c53adaeb7ae544cbeab4654530a50d158e33fe5"
+dependencies = [
+ "mctp",
+ "mctp-estack",
+]
+
+[[package]]
 name = "nb"
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -477,7 +550,7 @@
 [[package]]
 name = "openprot-hal-blocking"
 version = "0.1.0"
-source = "git+https://github.com/OpenPRoT/openprot#b2081ffd8d0fbcb1f8f6a4a458e044ce949d2e1e"
+source = "git+https://github.com/rusty1968/openprot.git?rev=c6cd23a#c6cd23a56f3cc7945b062ea1bcdabf3af0dba82d"
 dependencies = [
  "embedded-hal 1.0.0",
  "rand_core 0.9.5",
@@ -566,9 +639,9 @@
 
 [[package]]
 name = "quote"
-version = "1.0.44"
+version = "1.0.45"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
+checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
 dependencies = [
  "proc-macro2",
 ]
@@ -654,6 +727,15 @@
 ]
 
 [[package]]
+name = "smbus-pec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca0763a680cd5d72b28f7bfc8a054c117d8841380a6ad4f72f05bd2a34217d3e"
+dependencies = [
+ "embedded-crc-macros",
+]
+
+[[package]]
 name = "stable_deref_trait"
 version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -667,9 +749,9 @@
 
 [[package]]
 name = "syn"
-version = "2.0.115"
+version = "2.0.117"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e614ed320ac28113fa64972c4262d5dbc89deacdfd00c34a3e4cea073243c12"
+checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -684,9 +766,9 @@
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.23"
+version = "1.0.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e"
+checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
 
 [[package]]
 name = "universal-hash"
@@ -699,6 +781,12 @@
 ]
 
 [[package]]
+name = "uuid"
+version = "1.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37"
+
+[[package]]
 name = "vcell"
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -727,18 +815,18 @@
 
 [[package]]
 name = "zerocopy"
-version = "0.8.39"
+version = "0.8.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a"
+checksum = "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.8.39"
+version = "0.8.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517"
+checksum = "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953"
 dependencies = [
  "proc-macro2",
  "quote",
diff --git a/third_party/crates_io/crates_no_std/Cargo.toml b/third_party/crates_io/crates_no_std/Cargo.toml
index 502aead..f2b34fa 100644
--- a/third_party/crates_io/crates_no_std/Cargo.toml
+++ b/third_party/crates_io/crates_no_std/Cargo.toml
@@ -31,6 +31,18 @@
 cipher = { version = "0.4", default-features = false }
 zerocopy = { version = "0.8", default-features = false, features = ["derive"] }
 
+# aspeed-ddk transitive deps needed as explicit Bazel targets
+heapless = "0.8.0"
+hex-literal = "0.4"
+nb = "1.1.0"
+fugit = "0.3.7"
+openprot-hal-blocking = { git = "https://github.com/rusty1968/openprot.git", rev = "c6cd23a" }
+proposed-traits = { git = "https://github.com/rusty1968/proposed_traits.git", package = "proposed-traits", rev = "85641310df5a5276c67f81621b104322cff0286c" }
+
+# MCTP crates
+mctp = { git = "https://github.com/OpenPRoT/mctp-rs.git", branch = "sync-features", default-features = false }
+mctp-lib = { git = "https://github.com/9elements/mctp-lib.git", branch = "buildup" }
+
 # ECDSA crates
 ecdsa = { version = "0.16", default-features = false, features = ["signing", "verifying"] }
 p256 = { version = "0.13", default-features = false, features = ["ecdsa"] }
@@ -40,3 +52,6 @@
 
 [patch."https://github.com/AspeedTech-BMC/ast1060-pac.git"]
 ast1060-pac = { git = "https://github.com/stevenlee7189/ast1060-pac", branch = "main" }
+
+[patch."https://github.com/OpenPRoT/openprot"]
+openprot-hal-blocking = { git = "https://github.com/rusty1968/openprot.git", rev = "c6cd23a" }
diff --git a/third_party/crates_io/rust_crates/alias_hub.BUILD b/third_party/crates_io/rust_crates/alias_hub.BUILD
index 42fd920..5c8c603 100644
--- a/third_party/crates_io/rust_crates/alias_hub.BUILD
+++ b/third_party/crates_io/rust_crates/alias_hub.BUILD
@@ -46,6 +46,18 @@
 )
 
 alias(
+    name = "mctp",
+    actual = "@oot_crates_no_std//:mctp",
+    visibility = ["//visibility:public"],
+)
+
+alias(
+    name = "mctp-lib",
+    actual = "@oot_crates_no_std//:mctp-lib",
+    visibility = ["//visibility:public"],
+)
+
+alias(
     name = "heapless",
     actual = "@oot_crates_no_std//:heapless",
     visibility = ["//visibility:public"],