diff --git a/MODULE.bazel b/MODULE.bazel index abadae29e4..58dd8aa831 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -336,6 +336,7 @@ crate.from_cargo( "stargate-bench", "stargate-forwarding", "stargate-k8s-router", + "stargate-routing-sim", "stargate-runtime", "stargate-telemetry", "stargate-tls", diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 683261774a..bcf031d988 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -1299,7 +1299,7 @@ "@@rules_rust+//crate_universe:extension.bzl%crate": { "general": { "bzlTransitiveDigest": "lmblAb6tEe7/BKI9P9WNmy+UkznZlVny73HmfQS3pOA=", - "usagesDigest": "hNXvvw8OKOhiniDM6l6pNouUZUMyDQ/7m1ukl7WJXME=", + "usagesDigest": "5m/FVvoUw/gh1xQa5cAJr8KmvrtPpLtpzB/cTIBQLTQ=", "recordedInputs": [ "ENV:CARGO_BAZEL_DEBUG \\0", "ENV:CARGO_BAZEL_GENERATOR_SHA256 \\0", @@ -1329,8 +1329,8 @@ "FILE:@@//src/invocation-plane-services/http-invocation/.cargo/config.toml ae53cb1d2d7a3b0ce4fb0c2172ef6f4fc8476673fef154d2efffbdf435e383c6", "FILE:@@//src/invocation-plane-services/http-invocation/Cargo.toml a092a718b3d93b3664e2434c5c89025e8db88a1971a995650977f6d03edaaaf9", "FILE:@@//src/invocation-plane-services/http-invocation/crates/server/Cargo.toml fd58955d67ba6d2f03a63f582f937a783a9ffa9590c52e5969ac7b993d95b97a", - "FILE:@@//src/libraries/rust/stargate/Cargo.lock ba52ab06cebf4a72e3efe67ad23c8f369fbcfa2055114ebda68dfd21e6509ed9", - "FILE:@@//src/libraries/rust/stargate/Cargo.toml 3ba6c16ad36c57c2dafe7da07e58dffee16d059bdf47c9035c464f75adbde072", + "FILE:@@//src/libraries/rust/stargate/Cargo.lock 188ea317c9ffa8bb66841fd0379182a315b63996b373d10835d0c61609a01408", + "FILE:@@//src/libraries/rust/stargate/Cargo.toml 2fb0ddf39cc6006b2074b627c03b8ebf5fe6dad405cfb7c5f433bc7bfc570eb5", "FILE:@@//src/libraries/rust/stargate/crates/mock-dynamo/Cargo.toml 234038ec0266ae116131399e5c601529af215a9fc524c41101ef949c3c18376b", "FILE:@@//src/libraries/rust/stargate/crates/mock-engine/Cargo.toml 5e4719af928811005f889cee9255763ed1eb5fb3001883dc790d329630621a7e", "FILE:@@//src/libraries/rust/stargate/crates/proto/Cargo.toml 14c9ed935d6daf6223c449bb026778c4395c2e8d6dc84a67fb372a90b24ffae0", @@ -1342,6 +1342,7 @@ "FILE:@@//src/libraries/rust/stargate/crates/stargate-bench/Cargo.toml 93eb4c79a40d25cd89c6e234b6282684897e2493ac429af1034ae2c4b91c7129", "FILE:@@//src/libraries/rust/stargate/crates/stargate-forwarding/Cargo.toml dc4ac520de615087a33277b7d3b13954d900fdde0ab9f9c76f27e463512839b6", "FILE:@@//src/libraries/rust/stargate/crates/stargate-k8s-router/Cargo.toml 43939aae9aae3fc4ed8466e6f5b64dd9319f8262a942021bb78aeb239b7eab62", + "FILE:@@//src/libraries/rust/stargate/crates/stargate-routing-sim/Cargo.toml 365c57e24d3c345b45c13b516a9db86606365f7a5812afcc20894634eac86eba", "FILE:@@//src/libraries/rust/stargate/crates/stargate-runtime/Cargo.toml 0e2c02e4b7776ebf618d06344ba24a4b95c3f16a93d0797ea8e287e4996e24b4", "FILE:@@//src/libraries/rust/stargate/crates/stargate-telemetry/Cargo.toml 7a4e61021ddebe91257379c87cdc7724ed4622baae4e76f749ad383a25145c60", "FILE:@@//src/libraries/rust/stargate/crates/stargate-tls/Cargo.toml ff0b78114554c285513992280d6841f19caa4784e134284aec3972eee5dcbde4" @@ -14594,7 +14595,7 @@ "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 'nvcf'\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.103\",\n actual = \"@stargate_crates__anyhow-1.0.103//:anyhow\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"anyhow\",\n actual = \"@stargate_crates__anyhow-1.0.103//:anyhow\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"async-stream-0.3.6\",\n actual = \"@stargate_crates__async-stream-0.3.6//:async_stream\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"async-stream\",\n actual = \"@stargate_crates__async-stream-0.3.6//:async_stream\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"async-trait-0.1.89\",\n actual = \"@stargate_crates__async-trait-0.1.89//:async_trait\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"async-trait\",\n actual = \"@stargate_crates__async-trait-0.1.89//:async_trait\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"axum-0.8.9\",\n actual = \"@stargate_crates__axum-0.8.9//:axum\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"axum\",\n actual = \"@stargate_crates__axum-0.8.9//:axum\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"built-0.8.1\",\n actual = \"@stargate_crates__built-0.8.1//:built\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"built\",\n actual = \"@stargate_crates__built-0.8.1//:built\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"bytes-1.12.1\",\n actual = \"@stargate_crates__bytes-1.12.1//:bytes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"bytes\",\n actual = \"@stargate_crates__bytes-1.12.1//:bytes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"capnp-0.23.2\",\n actual = \"@stargate_crates__capnp-0.23.2//:capnp\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"capnp\",\n actual = \"@stargate_crates__capnp-0.23.2//:capnp\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"capnp-futures-0.23.1\",\n actual = \"@stargate_crates__capnp-futures-0.23.1//:capnp_futures\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"capnp-futures\",\n actual = \"@stargate_crates__capnp-futures-0.23.1//:capnp_futures\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"capnpc-0.23.3\",\n actual = \"@stargate_crates__capnpc-0.23.3//:capnpc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"capnpc\",\n actual = \"@stargate_crates__capnpc-0.23.3//:capnpc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"clap-4.6.1\",\n actual = \"@stargate_crates__clap-4.6.1//:clap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"clap\",\n actual = \"@stargate_crates__clap-4.6.1//:clap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"criterion-0.5.1\",\n actual = \"@stargate_crates__criterion-0.5.1//:criterion\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"criterion\",\n actual = \"@stargate_crates__criterion-0.5.1//:criterion\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"flume-0.12.0\",\n actual = \"@stargate_crates__flume-0.12.0//:flume\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"flume\",\n actual = \"@stargate_crates__flume-0.12.0//:flume\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"futures-0.3.32\",\n actual = \"@stargate_crates__futures-0.3.32//:futures\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"futures\",\n actual = \"@stargate_crates__futures-0.3.32//:futures\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"git2-0.20.4\",\n actual = \"@stargate_crates__git2-0.20.4//:git2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"git2\",\n actual = \"@stargate_crates__git2-0.20.4//:git2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"h3-0.0.8\",\n actual = \"@stargate_crates__h3-0.0.8//:h3\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"h3\",\n actual = \"@stargate_crates__h3-0.0.8//:h3\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"h3-quinn-0.0.10\",\n actual = \"@stargate_crates__h3-quinn-0.0.10//:h3_quinn\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"h3-quinn\",\n actual = \"@stargate_crates__h3-quinn-0.0.10//:h3_quinn\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"hickory-resolver-0.24.4\",\n actual = \"@stargate_crates__hickory-resolver-0.24.4//:hickory_resolver\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"hickory-resolver\",\n actual = \"@stargate_crates__hickory-resolver-0.24.4//:hickory_resolver\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"http-1.4.2\",\n actual = \"@stargate_crates__http-1.4.2//:http\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"http\",\n actual = \"@stargate_crates__http-1.4.2//:http\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"httpdate-1.0.3\",\n actual = \"@stargate_crates__httpdate-1.0.3//:httpdate\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"httpdate\",\n actual = \"@stargate_crates__httpdate-1.0.3//:httpdate\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"hyper-util-0.1.20\",\n actual = \"@stargate_crates__hyper-util-0.1.20//:hyper_util\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"hyper-util\",\n actual = \"@stargate_crates__hyper-util-0.1.20//:hyper_util\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indexmap-2.14.0\",\n actual = \"@stargate_crates__indexmap-2.14.0//:indexmap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indexmap\",\n actual = \"@stargate_crates__indexmap-2.14.0//:indexmap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"k8s-openapi-0.27.1\",\n actual = \"@stargate_crates__k8s-openapi-0.27.1//:k8s_openapi\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"k8s-openapi\",\n actual = \"@stargate_crates__k8s-openapi-0.27.1//:k8s_openapi\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"kube-3.1.0\",\n actual = \"@stargate_crates__kube-3.1.0//:kube\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"kube\",\n actual = \"@stargate_crates__kube-3.1.0//:kube\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"memchr-2.8.3\",\n actual = \"@stargate_crates__memchr-2.8.3//:memchr\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"memchr\",\n actual = \"@stargate_crates__memchr-2.8.3//:memchr\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"moka-0.12.15\",\n actual = \"@stargate_crates__moka-0.12.15//:moka\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"moka\",\n actual = \"@stargate_crates__moka-0.12.15//:moka\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"opentelemetry-0.32.0\",\n actual = \"@stargate_crates__opentelemetry-0.32.0//:opentelemetry\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"opentelemetry\",\n actual = \"@stargate_crates__opentelemetry-0.32.0//:opentelemetry\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"opentelemetry-http-0.32.0\",\n actual = \"@stargate_crates__opentelemetry-http-0.32.0//:opentelemetry_http\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"opentelemetry-http\",\n actual = \"@stargate_crates__opentelemetry-http-0.32.0//:opentelemetry_http\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"opentelemetry-otlp-0.32.0\",\n actual = \"@stargate_crates__opentelemetry-otlp-0.32.0//:opentelemetry_otlp\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"opentelemetry-otlp\",\n actual = \"@stargate_crates__opentelemetry-otlp-0.32.0//:opentelemetry_otlp\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"opentelemetry_sdk-0.32.1\",\n actual = \"@stargate_crates__opentelemetry_sdk-0.32.1//:opentelemetry_sdk\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"opentelemetry_sdk\",\n actual = \"@stargate_crates__opentelemetry_sdk-0.32.1//:opentelemetry_sdk\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"parking_lot-0.12.5\",\n actual = \"@stargate_crates__parking_lot-0.12.5//:parking_lot\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"parking_lot\",\n actual = \"@stargate_crates__parking_lot-0.12.5//:parking_lot\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"prometheus-0.14.0\",\n actual = \"@stargate_crates__prometheus-0.14.0//:prometheus\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"prometheus\",\n actual = \"@stargate_crates__prometheus-0.14.0//:prometheus\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"proptest-1.11.0\",\n actual = \"@stargate_crates__proptest-1.11.0//:proptest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"proptest\",\n actual = \"@stargate_crates__proptest-1.11.0//:proptest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"prost-0.14.4\",\n actual = \"@stargate_crates__prost-0.14.4//:prost\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"prost\",\n actual = \"@stargate_crates__prost-0.14.4//:prost\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"quinn-0.11.11\",\n actual = \"@stargate_crates__quinn-0.11.11//:quinn\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"quinn\",\n actual = \"@stargate_crates__quinn-0.11.11//:quinn\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand-0.9.3\",\n actual = \"@stargate_crates__rand-0.9.3//:rand\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand\",\n actual = \"@stargate_crates__rand-0.9.3//:rand\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rcgen-0.13.2\",\n actual = \"@stargate_crates__rcgen-0.13.2//:rcgen\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rcgen\",\n actual = \"@stargate_crates__rcgen-0.13.2//:rcgen\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"reqwest-0.13.4\",\n actual = \"@stargate_crates__reqwest-0.13.4//:reqwest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"reqwest\",\n actual = \"@stargate_crates__reqwest-0.13.4//:reqwest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rustls-0.23.41\",\n actual = \"@stargate_crates__rustls-0.23.41//:rustls\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rustls\",\n actual = \"@stargate_crates__rustls-0.23.41//:rustls\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rustls-pemfile-2.2.0\",\n actual = \"@stargate_crates__rustls-pemfile-2.2.0//:rustls_pemfile\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rustls-pemfile\",\n actual = \"@stargate_crates__rustls-pemfile-2.2.0//:rustls_pemfile\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rustls-webpki-0.103.9\",\n actual = \"@stargate_crates__rustls-webpki-0.103.9//:webpki\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rustls-webpki\",\n actual = \"@stargate_crates__rustls-webpki-0.103.9//:webpki\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"scc-3.7.1\",\n actual = \"@stargate_crates__scc-3.7.1//:scc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"scc\",\n actual = \"@stargate_crates__scc-3.7.1//:scc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde-1.0.228\",\n actual = \"@stargate_crates__serde-1.0.228//:serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde\",\n actual = \"@stargate_crates__serde-1.0.228//:serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_json-1.0.150\",\n actual = \"@stargate_crates__serde_json-1.0.150//:serde_json\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_json\",\n actual = \"@stargate_crates__serde_json-1.0.150//:serde_json\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_yaml_ng-0.10.0\",\n actual = \"@stargate_crates__serde_yaml_ng-0.10.0//:serde_yaml_ng\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_yaml_ng\",\n actual = \"@stargate_crates__serde_yaml_ng-0.10.0//:serde_yaml_ng\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sfv-0.15.0\",\n actual = \"@stargate_crates__sfv-0.15.0//:sfv\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sfv\",\n actual = \"@stargate_crates__sfv-0.15.0//:sfv\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sonic-rs-0.5.8\",\n actual = \"@stargate_crates__sonic-rs-0.5.8//:sonic_rs\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sonic-rs\",\n actual = \"@stargate_crates__sonic-rs-0.5.8//:sonic_rs\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sse-core-0.2.3\",\n actual = \"@stargate_crates__sse-core-0.2.3//:sse_core\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sse-core\",\n actual = \"@stargate_crates__sse-core-0.2.3//:sse_core\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"stargate-0.15.2\",\n actual = \"@stargate_crates__stargate-0.15.2//:stargate\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"stargate\",\n actual = \"@stargate_crates__stargate-0.15.2//:stargate\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"stargate-proto-0.15.2\",\n actual = \"@stargate_crates__stargate-proto-0.15.2//:stargate_proto\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"stargate-proto\",\n actual = \"@stargate_crates__stargate-proto-0.15.2//:stargate_proto\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"stargate-protocol-0.15.2\",\n actual = \"@stargate_crates__stargate-protocol-0.15.2//:stargate_protocol\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"stargate-protocol\",\n actual = \"@stargate_crates__stargate-protocol-0.15.2//:stargate_protocol\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tempfile-3.27.0\",\n actual = \"@stargate_crates__tempfile-3.27.0//:tempfile\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tempfile\",\n actual = \"@stargate_crates__tempfile-3.27.0//:tempfile\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"thiserror-2.0.18\",\n actual = \"@stargate_crates__thiserror-2.0.18//:thiserror\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"thiserror\",\n actual = \"@stargate_crates__thiserror-2.0.18//:thiserror\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-1.52.3\",\n actual = \"@stargate_crates__tokio-1.52.3//:tokio\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio\",\n actual = \"@stargate_crates__tokio-1.52.3//:tokio\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-stream-0.1.18\",\n actual = \"@stargate_crates__tokio-stream-0.1.18//:tokio_stream\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-stream\",\n actual = \"@stargate_crates__tokio-stream-0.1.18//:tokio_stream\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-util-0.7.18\",\n actual = \"@stargate_crates__tokio-util-0.7.18//:tokio_util\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-util\",\n actual = \"@stargate_crates__tokio-util-0.7.18//:tokio_util\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tonic-0.14.6\",\n actual = \"@stargate_crates__tonic-0.14.6//:tonic\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tonic\",\n actual = \"@stargate_crates__tonic-0.14.6//:tonic\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tonic-prost-0.14.6\",\n actual = \"@stargate_crates__tonic-prost-0.14.6//:tonic_prost\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tonic-prost\",\n actual = \"@stargate_crates__tonic-prost-0.14.6//:tonic_prost\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tonic-prost-build-0.14.6\",\n actual = \"@stargate_crates__tonic-prost-build-0.14.6//:tonic_prost_build\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tonic-prost-build\",\n actual = \"@stargate_crates__tonic-prost-build-0.14.6//:tonic_prost_build\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tower-0.5.3\",\n actual = \"@stargate_crates__tower-0.5.3//:tower\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tower\",\n actual = \"@stargate_crates__tower-0.5.3//:tower\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tracing-0.1.44\",\n actual = \"@stargate_crates__tracing-0.1.44//:tracing\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tracing\",\n actual = \"@stargate_crates__tracing-0.1.44//:tracing\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tracing-opentelemetry-0.33.0\",\n actual = \"@stargate_crates__tracing-opentelemetry-0.33.0//:tracing_opentelemetry\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tracing-opentelemetry\",\n actual = \"@stargate_crates__tracing-opentelemetry-0.33.0//:tracing_opentelemetry\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tracing-subscriber-0.3.23\",\n actual = \"@stargate_crates__tracing-subscriber-0.3.23//:tracing_subscriber\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tracing-subscriber\",\n actual = \"@stargate_crates__tracing-subscriber-0.3.23//:tracing_subscriber\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"url-2.5.8\",\n actual = \"@stargate_crates__url-2.5.8//:url\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"url\",\n actual = \"@stargate_crates__url-2.5.8//:url\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"uuid-1.22.0\",\n actual = \"@stargate_crates__uuid-1.22.0//:uuid\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"uuid\",\n actual = \"@stargate_crates__uuid-1.22.0//:uuid\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"x509-parser-0.18.1\",\n actual = \"@stargate_crates__x509-parser-0.18.1//:x509_parser\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"x509-parser\",\n actual = \"@stargate_crates__x509-parser-0.18.1//:x509_parser\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"xxhash-rust-0.8.16\",\n actual = \"@stargate_crates__xxhash-rust-0.8.16//:xxhash_rust\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"xxhash-rust\",\n actual = \"@stargate_crates__xxhash-rust-0.8.16//:xxhash_rust\",\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 'nvcf'\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 \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"async-stream\": Label(\"@stargate_crates//:async-stream-0.3.6\"),\n \"axum\": Label(\"@stargate_crates//:axum-0.8.9\"),\n \"clap\": Label(\"@stargate_crates//:clap-4.6.1\"),\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n \"tracing-subscriber\": Label(\"@stargate_crates//:tracing-subscriber-0.3.23\"),\n },\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n _COMMON_CONDITION: {\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n },\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"clap\": Label(\"@stargate_crates//:clap-4.6.1\"),\n \"flume\": Label(\"@stargate_crates//:flume-0.12.0\"),\n \"reqwest\": Label(\"@stargate_crates//:reqwest-0.13.4\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"rustls-pemfile\": Label(\"@stargate_crates//:rustls-pemfile-2.2.0\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n },\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"async-stream\": Label(\"@stargate_crates//:async-stream-0.3.6\"),\n \"axum\": Label(\"@stargate_crates//:axum-0.8.9\"),\n \"bytes\": Label(\"@stargate_crates//:bytes-1.12.1\"),\n \"flume\": Label(\"@stargate_crates//:flume-0.12.0\"),\n \"futures\": Label(\"@stargate_crates//:futures-0.3.32\"),\n \"h3\": Label(\"@stargate_crates//:h3-0.0.8\"),\n \"h3-quinn\": Label(\"@stargate_crates//:h3-quinn-0.0.10\"),\n \"http\": Label(\"@stargate_crates//:http-1.4.2\"),\n \"httpdate\": Label(\"@stargate_crates//:httpdate-1.0.3\"),\n \"indexmap\": Label(\"@stargate_crates//:indexmap-2.14.0\"),\n \"memchr\": Label(\"@stargate_crates//:memchr-2.8.3\"),\n \"opentelemetry\": Label(\"@stargate_crates//:opentelemetry-0.32.0\"),\n \"parking_lot\": Label(\"@stargate_crates//:parking_lot-0.12.5\"),\n \"prometheus\": Label(\"@stargate_crates//:prometheus-0.14.0\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"reqwest\": Label(\"@stargate_crates//:reqwest-0.13.4\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n \"sonic-rs\": Label(\"@stargate_crates//:sonic-rs-0.5.8\"),\n \"thiserror\": Label(\"@stargate_crates//:thiserror-2.0.18\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tokio-stream\": Label(\"@stargate_crates//:tokio-stream-0.1.18\"),\n \"tokio-util\": Label(\"@stargate_crates//:tokio-util-0.7.18\"),\n \"tonic\": Label(\"@stargate_crates//:tonic-0.14.6\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n \"tracing-opentelemetry\": Label(\"@stargate_crates//:tracing-opentelemetry-0.33.0\"),\n \"url\": Label(\"@stargate_crates//:url-2.5.8\"),\n \"uuid\": Label(\"@stargate_crates//:uuid-1.22.0\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"async-stream\": Label(\"@stargate_crates//:async-stream-0.3.6\"),\n \"axum\": Label(\"@stargate_crates//:axum-0.8.9\"),\n \"bytes\": Label(\"@stargate_crates//:bytes-1.12.1\"),\n \"clap\": Label(\"@stargate_crates//:clap-4.6.1\"),\n \"flume\": Label(\"@stargate_crates//:flume-0.12.0\"),\n \"futures\": Label(\"@stargate_crates//:futures-0.3.32\"),\n \"h3\": Label(\"@stargate_crates//:h3-0.0.8\"),\n \"h3-quinn\": Label(\"@stargate_crates//:h3-quinn-0.0.10\"),\n \"hickory-resolver\": Label(\"@stargate_crates//:hickory-resolver-0.24.4\"),\n \"http\": Label(\"@stargate_crates//:http-1.4.2\"),\n \"moka\": Label(\"@stargate_crates//:moka-0.12.15\"),\n \"opentelemetry\": Label(\"@stargate_crates//:opentelemetry-0.32.0\"),\n \"parking_lot\": Label(\"@stargate_crates//:parking_lot-0.12.5\"),\n \"prometheus\": Label(\"@stargate_crates//:prometheus-0.14.0\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"rand\": Label(\"@stargate_crates//:rand-0.9.3\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"scc\": Label(\"@stargate_crates//:scc-3.7.1\"),\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n \"sfv\": Label(\"@stargate_crates//:sfv-0.15.0\"),\n \"thiserror\": Label(\"@stargate_crates//:thiserror-2.0.18\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tokio-stream\": Label(\"@stargate_crates//:tokio-stream-0.1.18\"),\n \"tokio-util\": Label(\"@stargate_crates//:tokio-util-0.7.18\"),\n \"tonic\": Label(\"@stargate_crates//:tonic-0.14.6\"),\n \"tower\": Label(\"@stargate_crates//:tower-0.5.3\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n \"tracing-opentelemetry\": Label(\"@stargate_crates//:tracing-opentelemetry-0.33.0\"),\n \"tracing-subscriber\": Label(\"@stargate_crates//:tracing-subscriber-0.3.23\"),\n \"url\": Label(\"@stargate_crates//:url-2.5.8\"),\n \"xxhash-rust\": Label(\"@stargate_crates//:xxhash-rust-0.8.16\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"reqwest\": Label(\"@stargate_crates//:reqwest-0.13.4\"),\n \"sonic-rs\": Label(\"@stargate_crates//:sonic-rs-0.5.8\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"bytes\": Label(\"@stargate_crates//:bytes-1.12.1\"),\n \"clap\": Label(\"@stargate_crates//:clap-4.6.1\"),\n \"futures\": Label(\"@stargate_crates//:futures-0.3.32\"),\n \"h3\": Label(\"@stargate_crates//:h3-0.0.8\"),\n \"h3-quinn\": Label(\"@stargate_crates//:h3-quinn-0.0.10\"),\n \"http\": Label(\"@stargate_crates//:http-1.4.2\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"rand\": Label(\"@stargate_crates//:rand-0.9.3\"),\n \"reqwest\": Label(\"@stargate_crates//:reqwest-0.13.4\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n \"serde_yaml_ng\": Label(\"@stargate_crates//:serde_yaml_ng-0.10.0\"),\n \"sse-core\": Label(\"@stargate_crates//:sse-core-0.2.3\"),\n \"tempfile\": Label(\"@stargate_crates//:tempfile-3.27.0\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"futures\": Label(\"@stargate_crates//:futures-0.3.32\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"async-stream\": Label(\"@stargate_crates//:async-stream-0.3.6\"),\n \"axum\": Label(\"@stargate_crates//:axum-0.8.9\"),\n \"bytes\": Label(\"@stargate_crates//:bytes-1.12.1\"),\n \"clap\": Label(\"@stargate_crates//:clap-4.6.1\"),\n \"futures\": Label(\"@stargate_crates//:futures-0.3.32\"),\n \"h3\": Label(\"@stargate_crates//:h3-0.0.8\"),\n \"h3-quinn\": Label(\"@stargate_crates//:h3-quinn-0.0.10\"),\n \"http\": Label(\"@stargate_crates//:http-1.4.2\"),\n \"k8s-openapi\": Label(\"@stargate_crates//:k8s-openapi-0.27.1\"),\n \"kube\": Label(\"@stargate_crates//:kube-3.1.0\"),\n \"prometheus\": Label(\"@stargate_crates//:prometheus-0.14.0\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tokio-stream\": Label(\"@stargate_crates//:tokio-stream-0.1.18\"),\n \"tokio-util\": Label(\"@stargate_crates//:tokio-util-0.7.18\"),\n \"tonic\": Label(\"@stargate_crates//:tonic-0.14.6\"),\n \"tower\": Label(\"@stargate_crates//:tower-0.5.3\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n \"tracing-subscriber\": Label(\"@stargate_crates//:tracing-subscriber-0.3.23\"),\n },\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n _COMMON_CONDITION: {\n \"prost\": Label(\"@stargate_crates//:prost-0.14.4\"),\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n \"tonic\": Label(\"@stargate_crates//:tonic-0.14.6\"),\n \"tonic-prost\": Label(\"@stargate_crates//:tonic-prost-0.14.6\"),\n },\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n _COMMON_CONDITION: {\n \"bytes\": Label(\"@stargate_crates//:bytes-1.12.1\"),\n \"capnp\": Label(\"@stargate_crates//:capnp-0.23.2\"),\n \"capnp-futures\": Label(\"@stargate_crates//:capnp-futures-0.23.1\"),\n \"http\": Label(\"@stargate_crates//:http-1.4.2\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n \"thiserror\": Label(\"@stargate_crates//:thiserror-2.0.18\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"flume\": Label(\"@stargate_crates//:flume-0.12.0\"),\n \"futures\": Label(\"@stargate_crates//:futures-0.3.32\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tokio-util\": Label(\"@stargate_crates//:tokio-util-0.7.18\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"http\": Label(\"@stargate_crates//:http-1.4.2\"),\n \"opentelemetry\": Label(\"@stargate_crates//:opentelemetry-0.32.0\"),\n \"opentelemetry-http\": Label(\"@stargate_crates//:opentelemetry-http-0.32.0\"),\n \"opentelemetry-otlp\": Label(\"@stargate_crates//:opentelemetry-otlp-0.32.0\"),\n \"opentelemetry_sdk\": Label(\"@stargate_crates//:opentelemetry_sdk-0.32.1\"),\n \"tonic\": Label(\"@stargate_crates//:tonic-0.14.6\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n \"tracing-opentelemetry\": Label(\"@stargate_crates//:tracing-opentelemetry-0.33.0\"),\n \"tracing-subscriber\": Label(\"@stargate_crates//:tracing-subscriber-0.3.23\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"rcgen\": Label(\"@stargate_crates//:rcgen-0.13.2\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"rustls-pemfile\": Label(\"@stargate_crates//:rustls-pemfile-2.2.0\"),\n \"rustls-webpki\": Label(\"@stargate_crates//:rustls-webpki-0.103.9\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tokio-util\": Label(\"@stargate_crates//:tokio-util-0.7.18\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n \"x509-parser\": Label(\"@stargate_crates//:x509-parser-0.18.1\"),\n },\n },\n}\n\n\n_NORMAL_ALIASES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n _COMMON_CONDITION: {\n \"axum\": Label(\"@stargate_crates//:axum-0.8.9\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"rcgen\": Label(\"@stargate_crates//:rcgen-0.13.2\"),\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n \"tempfile\": Label(\"@stargate_crates//:tempfile-3.27.0\"),\n \"tokio-stream\": Label(\"@stargate_crates//:tokio-stream-0.1.18\"),\n \"tonic\": Label(\"@stargate_crates//:tonic-0.14.6\"),\n },\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n _COMMON_CONDITION: {\n \"criterion\": Label(\"@stargate_crates//:criterion-0.5.1\"),\n \"opentelemetry_sdk\": Label(\"@stargate_crates//:opentelemetry_sdk-0.32.1\"),\n \"rcgen\": Label(\"@stargate_crates//:rcgen-0.13.2\"),\n \"tempfile\": Label(\"@stargate_crates//:tempfile-3.27.0\"),\n \"tower\": Label(\"@stargate_crates//:tower-0.5.3\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n \"hyper-util\": Label(\"@stargate_crates//:hyper-util-0.1.20\"),\n \"opentelemetry_sdk\": Label(\"@stargate_crates//:opentelemetry_sdk-0.32.1\"),\n \"prost\": Label(\"@stargate_crates//:prost-0.14.4\"),\n \"reqwest\": Label(\"@stargate_crates//:reqwest-0.13.4\"),\n \"serde_yaml_ng\": Label(\"@stargate_crates//:serde_yaml_ng-0.10.0\"),\n \"tempfile\": Label(\"@stargate_crates//:tempfile-3.27.0\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n _COMMON_CONDITION: {\n \"axum\": Label(\"@stargate_crates//:axum-0.8.9\"),\n \"tempfile\": Label(\"@stargate_crates//:tempfile-3.27.0\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n _COMMON_CONDITION: {\n \"http\": Label(\"@stargate_crates//:http-1.4.2\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"rustls-pemfile\": Label(\"@stargate_crates//:rustls-pemfile-2.2.0\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n _COMMON_CONDITION: {\n \"hyper-util\": Label(\"@stargate_crates//:hyper-util-0.1.20\"),\n \"rustls-pemfile\": Label(\"@stargate_crates//:rustls-pemfile-2.2.0\"),\n \"tempfile\": Label(\"@stargate_crates//:tempfile-3.27.0\"),\n },\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n _COMMON_CONDITION: {\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n },\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n _COMMON_CONDITION: {\n \"proptest\": Label(\"@stargate_crates//:proptest-1.11.0\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"rustls-pemfile\": Label(\"@stargate_crates//:rustls-pemfile-2.2.0\"),\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n _COMMON_CONDITION: {\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n _COMMON_CONDITION: {\n \"tempfile\": Label(\"@stargate_crates//:tempfile-3.27.0\"),\n },\n },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n \"async-trait\": Label(\"@stargate_crates//:async-trait-0.1.89\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n },\n}\n\n\n_PROC_MACRO_ALIASES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_BUILD_DEPENDENCIES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n \"built\": Label(\"@stargate_crates//:built-0.8.1\"),\n \"git2\": Label(\"@stargate_crates//:git2-0.20.4\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n _COMMON_CONDITION: {\n \"tonic-prost-build\": Label(\"@stargate_crates//:tonic-prost-build-0.14.6\"),\n },\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n _COMMON_CONDITION: {\n \"capnpc\": Label(\"@stargate_crates//:capnpc-0.23.3\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n },\n}\n\n\n_BUILD_ALIASES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n },\n}\n\n\n_CONDITIONS = {\n \"aarch64-apple-darwin\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n \"aarch64-linux-android\": [],\n \"aarch64-pc-windows-gnullvm\": [],\n \"aarch64-pc-windows-msvc\": [],\n \"aarch64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n \"aarch64-uwp-windows-msvc\": [],\n \"cfg(all(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), target_os = \\\"windows\\\"))\": [],\n \"cfg(all(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), target_vendor = \\\"apple\\\", any(target_os = \\\"ios\\\", target_os = \\\"macos\\\", target_os = \\\"tvos\\\", target_os = \\\"visionos\\\", target_os = \\\"watchos\\\")))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n \"cfg(all(any(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), all(target_arch = \\\"arm\\\", target_endian = \\\"little\\\")), any(target_os = \\\"android\\\", target_os = \\\"linux\\\")))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n \"cfg(all(any(target_arch = \\\"x86_64\\\", target_arch = \\\"arm64ec\\\"), target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(any(target_os = \\\"linux\\\", target_os = \\\"android\\\"), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips32r6\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64r6\\\"), target_arch = \\\"x86\\\", all(target_arch = \\\"x86_64\\\", target_pointer_width = \\\"64\\\")))))))\": [],\n \"cfg(all(any(target_os = \\\"linux\\\", target_os = \\\"android\\\"), not(any(all(target_os = \\\"linux\\\", target_env = \\\"\\\"), getrandom_backend = \\\"custom\\\", getrandom_backend = \\\"linux_raw\\\", getrandom_backend = \\\"rdrand\\\", getrandom_backend = \\\"rndr\\\"))))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(not(rustix_use_libc), not(miri), target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips32r6\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64r6\\\"), target_arch = \\\"x86\\\", all(target_arch = \\\"x86_64\\\", target_pointer_width = \\\"64\\\"))))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips32r6\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64r6\\\"), target_arch = \\\"x86\\\", all(target_arch = \\\"x86_64\\\", target_pointer_width = \\\"64\\\")))))))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\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(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\")))\": [],\n \"cfg(all(target_arch = \\\"wasm32\\\", not(target_os = \\\"wasi\\\")))\": [],\n \"cfg(all(target_arch = \\\"wasm32\\\", target_os = \\\"wasi\\\", target_env = \\\"p2\\\"))\": [],\n \"cfg(all(target_arch = \\\"wasm32\\\", target_os = \\\"wasi\\\", target_env = \\\"p3\\\"))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86_64\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(target_arch = \\\"x86_64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_family = \\\"wasm\\\", target_os = \\\"unknown\\\"))\": [],\n \"cfg(all(target_os = \\\"uefi\\\", getrandom_backend = \\\"efi_rng\\\"))\": [],\n \"cfg(all(unix, not(target_os = \\\"android\\\"), not(target_vendor = \\\"apple\\\"), not(target_arch = \\\"wasm32\\\")))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(unix, not(target_os = \\\"macos\\\")))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\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(any(target_os = \\\"dragonfly\\\", target_os = \\\"freebsd\\\", target_os = \\\"hurd\\\", target_os = \\\"illumos\\\", target_os = \\\"cygwin\\\", all(target_os = \\\"horizon\\\", target_arch = \\\"arm\\\")))\": [],\n \"cfg(any(target_os = \\\"haiku\\\", target_os = \\\"redox\\\", target_os = \\\"nto\\\", target_os = \\\"aix\\\"))\": [],\n \"cfg(any(target_os = \\\"ios\\\", target_os = \\\"visionos\\\", target_os = \\\"watchos\\\", target_os = \\\"tvos\\\"))\": [],\n \"cfg(any(target_os = \\\"macos\\\", target_os = \\\"openbsd\\\", target_os = \\\"vita\\\", target_os = \\\"emscripten\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n \"cfg(any(target_vendor = \\\"apple\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n \"cfg(any(unix, target_os = \\\"hermit\\\", target_os = \\\"wasi\\\"))\": [\"@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(any(unix, target_os = \\\"redox\\\"))\": [\"@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(any(unix, target_os = \\\"wasi\\\"))\": [\"@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(not(all(target_arch = \\\"arm\\\", target_os = \\\"none\\\")))\": [\"@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(not(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\"))))\": [\"@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(not(all(target_family = \\\"wasm\\\", target_os = \\\"unknown\\\")))\": [\"@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(not(target_has_atomic = \\\"64\\\"))\": [],\n \"cfg(not(target_has_atomic = \\\"ptr\\\"))\": [],\n \"cfg(not(windows_raw_dylib))\": [\"@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(target_arch = \\\"spirv\\\")\": [],\n \"cfg(target_arch = \\\"wasm32\\\")\": [],\n \"cfg(target_feature = \\\"atomics\\\")\": [],\n \"cfg(target_os = \\\"android\\\")\": [],\n \"cfg(target_os = \\\"hermit\\\")\": [],\n \"cfg(target_os = \\\"macos\\\")\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n \"cfg(target_os = \\\"netbsd\\\")\": [],\n \"cfg(target_os = \\\"redox\\\")\": [],\n \"cfg(target_os = \\\"solaris\\\")\": [],\n \"cfg(target_os = \\\"vxworks\\\")\": [],\n \"cfg(target_os = \\\"wasi\\\")\": [],\n \"cfg(target_os = \\\"windows\\\")\": [],\n \"cfg(unix)\": [\"@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 \"cfg(windows_raw_dylib)\": [],\n \"i686-pc-windows-gnu\": [],\n \"i686-pc-windows-gnullvm\": [],\n \"i686-pc-windows-msvc\": [],\n \"i686-uwp-windows-gnu\": [],\n \"i686-uwp-windows-msvc\": [],\n \"x86_64-apple-darwin\": [\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n \"x86_64-pc-windows-gnu\": [],\n \"x86_64-pc-windows-gnullvm\": [],\n \"x86_64-pc-windows-msvc\": [],\n \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"x86_64-uwp-windows-gnu\": [],\n \"x86_64-uwp-windows-msvc\": [],\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 = \"stargate_crates__ahash-0.8.12\",\n sha256 = \"5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ahash/0.8.12/download\"],\n strip_prefix = \"ahash-0.8.12\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ahash-0.8.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__aho-corasick-1.1.4\",\n sha256 = \"ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aho-corasick/1.1.4/download\"],\n strip_prefix = \"aho-corasick-1.1.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.aho-corasick-1.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__allocator-api2-0.2.21\",\n sha256 = \"683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/allocator-api2/0.2.21/download\"],\n strip_prefix = \"allocator-api2-0.2.21\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.allocator-api2-0.2.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__anes-0.1.6\",\n sha256 = \"4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anes/0.1.6/download\"],\n strip_prefix = \"anes-0.1.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.anes-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__anstream-1.0.0\",\n sha256 = \"824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstream/1.0.0/download\"],\n strip_prefix = \"anstream-1.0.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.anstream-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.anstyle-1.0.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__anstyle-parse-1.0.0\",\n sha256 = \"52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-parse/1.0.0/download\"],\n strip_prefix = \"anstyle-parse-1.0.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.anstyle-parse-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.anstyle-query-1.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.anstyle-wincon-3.0.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__anyhow-1.0.103\",\n sha256 = \"2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anyhow/1.0.103/download\"],\n strip_prefix = \"anyhow-1.0.103\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.anyhow-1.0.103.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__asn1-rs-0.7.2\",\n sha256 = \"b7f43a50ac4fdca5df8e885c21b835997f0a1cdee65494a6847694a98652d9d8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/asn1-rs/0.7.2/download\"],\n strip_prefix = \"asn1-rs-0.7.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.asn1-rs-0.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__asn1-rs-derive-0.6.0\",\n sha256 = \"3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/asn1-rs-derive/0.6.0/download\"],\n strip_prefix = \"asn1-rs-derive-0.6.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.asn1-rs-derive-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__asn1-rs-impl-0.2.0\",\n sha256 = \"7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/asn1-rs-impl/0.2.0/download\"],\n strip_prefix = \"asn1-rs-impl-0.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.asn1-rs-impl-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__async-broadcast-0.7.2\",\n sha256 = \"435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-broadcast/0.7.2/download\"],\n strip_prefix = \"async-broadcast-0.7.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.async-broadcast-0.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__async-stream-0.3.6\",\n sha256 = \"0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-stream/0.3.6/download\"],\n strip_prefix = \"async-stream-0.3.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.async-stream-0.3.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__async-stream-impl-0.3.6\",\n sha256 = \"c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-stream-impl/0.3.6/download\"],\n strip_prefix = \"async-stream-impl-0.3.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.async-stream-impl-0.3.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.async-trait-0.1.89.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__atomic-waker-1.1.2\",\n sha256 = \"1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/atomic-waker/1.1.2/download\"],\n strip_prefix = \"atomic-waker-1.1.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.atomic-waker-1.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__autocfg-1.5.0\",\n sha256 = \"c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/autocfg/1.5.0/download\"],\n strip_prefix = \"autocfg-1.5.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.autocfg-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__aws-lc-rs-1.16.0\",\n sha256 = \"d9a7b350e3bb1767102698302bc37256cbd48422809984b98d292c40e2579aa9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-lc-rs/1.16.0/download\"],\n strip_prefix = \"aws-lc-rs-1.16.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.aws-lc-rs-1.16.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__aws-lc-sys-0.37.1\",\n sha256 = \"b092fe214090261288111db7a2b2c2118e5a7f30dc2569f1732c4069a6840549\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-lc-sys/0.37.1/download\"],\n strip_prefix = \"aws-lc-sys-0.37.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.aws-lc-sys-0.37.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__axum-0.8.9\",\n sha256 = \"31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/axum/0.8.9/download\"],\n strip_prefix = \"axum-0.8.9\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.axum-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__axum-core-0.5.6\",\n sha256 = \"08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/axum-core/0.5.6/download\"],\n strip_prefix = \"axum-core-0.5.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.axum-core-0.5.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__axum-macros-0.5.1\",\n sha256 = \"7aa268c23bfbbd2c4363b9cd302a4f504fb2a9dfe7e3451d66f35dd392e20aca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/axum-macros/0.5.1/download\"],\n strip_prefix = \"axum-macros-0.5.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.axum-macros-0.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__backon-1.6.0\",\n sha256 = \"cffb0e931875b666fc4fcb20fee52e9bbd1ef836fd9e9e04ec21555f9f85f7ef\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/backon/1.6.0/download\"],\n strip_prefix = \"backon-1.6.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.backon-1.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__base64-0.22.1\",\n sha256 = \"72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64/0.22.1/download\"],\n strip_prefix = \"base64-0.22.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.base64-0.22.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__bit-set-0.8.0\",\n sha256 = \"08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bit-set/0.8.0/download\"],\n strip_prefix = \"bit-set-0.8.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.bit-set-0.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__bit-vec-0.8.0\",\n sha256 = \"5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bit-vec/0.8.0/download\"],\n strip_prefix = \"bit-vec-0.8.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.bit-vec-0.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.bitflags-2.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.block-buffer-0.10.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__built-0.8.1\",\n sha256 = \"5c0e531d93d39c34eef561e929e8a7f86d77a5af08aac4f6d6e39976c51858e9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/built/0.8.1/download\"],\n strip_prefix = \"built-0.8.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.built-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__bumpalo-3.20.2\",\n sha256 = \"5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bumpalo/3.20.2/download\"],\n strip_prefix = \"bumpalo-3.20.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.bumpalo-3.20.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__bytes-1.12.1\",\n sha256 = \"fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bytes/1.12.1/download\"],\n strip_prefix = \"bytes-1.12.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.bytes-1.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__capnp-0.23.2\",\n sha256 = \"fa8c2ce958193219f203a6887788231a1aaa0b22ed012d67436ea3b87a9645c4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/capnp/0.23.2/download\"],\n strip_prefix = \"capnp-0.23.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.capnp-0.23.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__capnp-futures-0.23.1\",\n sha256 = \"2f0ac8177a7bee149f8cfeb2b6ae7c58da0b57913ff31ed6bec2fd725894ee67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/capnp-futures/0.23.1/download\"],\n strip_prefix = \"capnp-futures-0.23.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.capnp-futures-0.23.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__capnpc-0.23.3\",\n sha256 = \"ad416fa35bb240c41f2794ecf1a95a41885f16a03e51bba4cb6845ce7db4bab3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/capnpc/0.23.3/download\"],\n strip_prefix = \"capnpc-0.23.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.capnpc-0.23.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__cast-0.3.0\",\n sha256 = \"37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cast/0.3.0/download\"],\n strip_prefix = \"cast-0.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.cast-0.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__cc-1.2.56\",\n sha256 = \"aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cc/1.2.56/download\"],\n strip_prefix = \"cc-1.2.56\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.cc-1.2.56.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__cesu8-1.1.0\",\n sha256 = \"6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cesu8/1.1.0/download\"],\n strip_prefix = \"cesu8-1.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.cesu8-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.cfg-if-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__cfg_aliases-0.2.1\",\n sha256 = \"613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cfg_aliases/0.2.1/download\"],\n strip_prefix = \"cfg_aliases-0.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.cfg_aliases-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ciborium-0.2.2\",\n sha256 = \"42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ciborium/0.2.2/download\"],\n strip_prefix = \"ciborium-0.2.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ciborium-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ciborium-io-0.2.2\",\n sha256 = \"05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ciborium-io/0.2.2/download\"],\n strip_prefix = \"ciborium-io-0.2.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ciborium-io-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ciborium-ll-0.2.2\",\n sha256 = \"57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ciborium-ll/0.2.2/download\"],\n strip_prefix = \"ciborium-ll-0.2.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ciborium-ll-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__clap-4.6.1\",\n sha256 = \"1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap/4.6.1/download\"],\n strip_prefix = \"clap-4.6.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.clap-4.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__clap_builder-4.6.0\",\n sha256 = \"714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_builder/4.6.0/download\"],\n strip_prefix = \"clap_builder-4.6.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.clap_builder-4.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__clap_derive-4.6.1\",\n sha256 = \"f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_derive/4.6.1/download\"],\n strip_prefix = \"clap_derive-4.6.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.clap_derive-4.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.clap_lex-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__cmake-0.1.57\",\n sha256 = \"75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cmake/0.1.57/download\"],\n strip_prefix = \"cmake-0.1.57\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.cmake-0.1.57.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.colorchoice-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__combine-4.6.7\",\n sha256 = \"ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/combine/4.6.7/download\"],\n strip_prefix = \"combine-4.6.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.combine-4.6.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__concurrent-queue-2.5.0\",\n sha256 = \"4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/concurrent-queue/2.5.0/download\"],\n strip_prefix = \"concurrent-queue-2.5.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.concurrent-queue-2.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__core-foundation-0.10.1\",\n sha256 = \"b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/core-foundation/0.10.1/download\"],\n strip_prefix = \"core-foundation-0.10.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.core-foundation-0.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__core-foundation-sys-0.8.7\",\n sha256 = \"773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/core-foundation-sys/0.8.7/download\"],\n strip_prefix = \"core-foundation-sys-0.8.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.core-foundation-sys-0.8.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.cpufeatures-0.2.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__criterion-0.5.1\",\n sha256 = \"f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/criterion/0.5.1/download\"],\n strip_prefix = \"criterion-0.5.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.criterion-0.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__criterion-plot-0.5.0\",\n sha256 = \"6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/criterion-plot/0.5.0/download\"],\n strip_prefix = \"criterion-plot-0.5.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.criterion-plot-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__crossbeam-channel-0.5.17\",\n sha256 = \"98b0cc327b5bc766e7fda9c9260cc0fa81b43a8e240440422dff70788e3f9ef1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-channel/0.5.17/download\"],\n strip_prefix = \"crossbeam-channel-0.5.17\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.crossbeam-channel-0.5.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__crossbeam-deque-0.8.6\",\n sha256 = \"9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-deque/0.8.6/download\"],\n strip_prefix = \"crossbeam-deque-0.8.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.crossbeam-deque-0.8.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__crossbeam-epoch-0.9.18\",\n sha256 = \"5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-epoch/0.9.18/download\"],\n strip_prefix = \"crossbeam-epoch-0.9.18\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.crossbeam-epoch-0.9.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__crossbeam-utils-0.8.21\",\n sha256 = \"d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-utils/0.8.21/download\"],\n strip_prefix = \"crossbeam-utils-0.8.21\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.crossbeam-utils-0.8.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__crunchy-0.2.4\",\n sha256 = \"460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crunchy/0.2.4/download\"],\n strip_prefix = \"crunchy-0.2.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.crunchy-0.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.crypto-common-0.1.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__data-encoding-2.10.0\",\n sha256 = \"d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/data-encoding/2.10.0/download\"],\n strip_prefix = \"data-encoding-2.10.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.data-encoding-2.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__der-parser-10.0.0\",\n sha256 = \"07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/der-parser/10.0.0/download\"],\n strip_prefix = \"der-parser-10.0.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.der-parser-10.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__deranged-0.5.8\",\n sha256 = \"7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/deranged/0.5.8/download\"],\n strip_prefix = \"deranged-0.5.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.deranged-0.5.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__derive_more-2.1.1\",\n sha256 = \"d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_more/2.1.1/download\"],\n strip_prefix = \"derive_more-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.derive_more-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__derive_more-impl-2.1.1\",\n sha256 = \"799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_more-impl/2.1.1/download\"],\n strip_prefix = \"derive_more-impl-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.derive_more-impl-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.digest-0.10.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__displaydoc-0.2.5\",\n sha256 = \"97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/displaydoc/0.2.5/download\"],\n strip_prefix = \"displaydoc-0.2.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.displaydoc-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__dunce-1.0.5\",\n sha256 = \"92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dunce/1.0.5/download\"],\n strip_prefix = \"dunce-1.0.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.dunce-1.0.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__educe-0.6.0\",\n sha256 = \"1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/educe/0.6.0/download\"],\n strip_prefix = \"educe-0.6.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.educe-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__either-1.15.0\",\n sha256 = \"48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/either/1.15.0/download\"],\n strip_prefix = \"either-1.15.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.either-1.15.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__embedded-io-0.7.1\",\n sha256 = \"9eb1aa714776b75c7e67e1da744b81a129b3ff919c8712b5e1b32252c1f07cc7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/embedded-io/0.7.1/download\"],\n strip_prefix = \"embedded-io-0.7.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.embedded-io-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__enum-as-inner-0.6.1\",\n sha256 = \"a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/enum-as-inner/0.6.1/download\"],\n strip_prefix = \"enum-as-inner-0.6.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.enum-as-inner-0.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__enum-ordinalize-4.3.2\",\n sha256 = \"4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/enum-ordinalize/4.3.2/download\"],\n strip_prefix = \"enum-ordinalize-4.3.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.enum-ordinalize-4.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__enum-ordinalize-derive-4.3.2\",\n sha256 = \"8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/enum-ordinalize-derive/4.3.2/download\"],\n strip_prefix = \"enum-ordinalize-derive-4.3.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.enum-ordinalize-derive-4.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.equivalent-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__errno-0.3.14\",\n sha256 = \"39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/errno/0.3.14/download\"],\n strip_prefix = \"errno-0.3.14\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.errno-0.3.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__event-listener-5.4.1\",\n sha256 = \"e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/event-listener/5.4.1/download\"],\n strip_prefix = \"event-listener-5.4.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.event-listener-5.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__event-listener-strategy-0.5.4\",\n sha256 = \"8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/event-listener-strategy/0.5.4/download\"],\n strip_prefix = \"event-listener-strategy-0.5.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.event-listener-strategy-0.5.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__fastbloom-0.14.1\",\n sha256 = \"4e7f34442dbe69c60fe8eaf58a8cafff81a1f278816d8ab4db255b3bef4ac3c4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fastbloom/0.14.1/download\"],\n strip_prefix = \"fastbloom-0.14.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.fastbloom-0.14.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__fastrand-2.3.0\",\n sha256 = \"37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fastrand/2.3.0/download\"],\n strip_prefix = \"fastrand-2.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.fastrand-2.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__faststr-0.2.34\",\n sha256 = \"1ca7d44d22004409a61c393afb3369c8f7bb74abcae49fe249ee01dcc3002113\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/faststr/0.2.34/download\"],\n strip_prefix = \"faststr-0.2.34\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.faststr-0.2.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__find-msvc-tools-0.1.9\",\n sha256 = \"5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/find-msvc-tools/0.1.9/download\"],\n strip_prefix = \"find-msvc-tools-0.1.9\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.find-msvc-tools-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__fixedbitset-0.5.7\",\n sha256 = \"1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fixedbitset/0.5.7/download\"],\n strip_prefix = \"fixedbitset-0.5.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.fixedbitset-0.5.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__flume-0.12.0\",\n sha256 = \"5e139bc46ca777eb5efaf62df0ab8cc5fd400866427e56c68b22e414e53bd3be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/flume/0.12.0/download\"],\n strip_prefix = \"flume-0.12.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.flume-0.12.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__fnv-1.0.7\",\n sha256 = \"3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fnv/1.0.7/download\"],\n strip_prefix = \"fnv-1.0.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.fnv-1.0.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.foldhash-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__foldhash-0.2.0\",\n sha256 = \"77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/foldhash/0.2.0/download\"],\n strip_prefix = \"foldhash-0.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.foldhash-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__form_urlencoded-1.2.2\",\n sha256 = \"cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/form_urlencoded/1.2.2/download\"],\n strip_prefix = \"form_urlencoded-1.2.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.form_urlencoded-1.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__fs_extra-1.3.0\",\n sha256 = \"42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fs_extra/1.3.0/download\"],\n strip_prefix = \"fs_extra-1.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.fs_extra-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-0.3.32\",\n sha256 = \"8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures/0.3.32/download\"],\n strip_prefix = \"futures-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-channel-0.3.32\",\n sha256 = \"07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-channel/0.3.32/download\"],\n strip_prefix = \"futures-channel-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-channel-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-core-0.3.32\",\n sha256 = \"7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-core/0.3.32/download\"],\n strip_prefix = \"futures-core-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-core-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-executor-0.3.32\",\n sha256 = \"baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-executor/0.3.32/download\"],\n strip_prefix = \"futures-executor-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-executor-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-io-0.3.32\",\n sha256 = \"cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-io/0.3.32/download\"],\n strip_prefix = \"futures-io-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-io-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-macro-0.3.32\",\n sha256 = \"e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-macro/0.3.32/download\"],\n strip_prefix = \"futures-macro-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-macro-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-sink-0.3.32\",\n sha256 = \"c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-sink/0.3.32/download\"],\n strip_prefix = \"futures-sink-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-sink-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-task-0.3.32\",\n sha256 = \"037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-task/0.3.32/download\"],\n strip_prefix = \"futures-task-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-task-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-util-0.3.32\",\n sha256 = \"389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-util/0.3.32/download\"],\n strip_prefix = \"futures-util-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-util-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.generic-array-0.14.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__getrandom-0.2.17\",\n sha256 = \"ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.2.17/download\"],\n strip_prefix = \"getrandom-0.2.17\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.getrandom-0.2.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__getrandom-0.3.4\",\n sha256 = \"899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.3.4/download\"],\n strip_prefix = \"getrandom-0.3.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.getrandom-0.3.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__getrandom-0.4.1\",\n sha256 = \"139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.4.1/download\"],\n strip_prefix = \"getrandom-0.4.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.getrandom-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__git2-0.20.4\",\n sha256 = \"7b88256088d75a56f8ecfa070513a775dd9107f6530ef14919dac831af9cfe2b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/git2/0.20.4/download\"],\n strip_prefix = \"git2-0.20.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.git2-0.20.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__git2-0.21.0\",\n sha256 = \"ddddbf932745a6be37109b6112d3ee09696106f848449069d3a57bba937ab82e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/git2/0.21.0/download\"],\n strip_prefix = \"git2-0.21.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.git2-0.21.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__gloo-timers-0.3.0\",\n sha256 = \"bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/gloo-timers/0.3.0/download\"],\n strip_prefix = \"gloo-timers-0.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.gloo-timers-0.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__h2-0.4.13\",\n sha256 = \"2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/h2/0.4.13/download\"],\n strip_prefix = \"h2-0.4.13\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.h2-0.4.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__h3-0.0.8\",\n sha256 = \"10872b55cfb02a821b69dc7cf8dc6a71d6af25eb9a79662bec4a9d016056b3be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/h3/0.0.8/download\"],\n strip_prefix = \"h3-0.0.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.h3-0.0.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__h3-quinn-0.0.10\",\n sha256 = \"8b2e732c8d91a74731663ac8479ab505042fbf547b9a207213ab7fbcbfc4f8b4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/h3-quinn/0.0.10/download\"],\n strip_prefix = \"h3-quinn-0.0.10\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.h3-quinn-0.0.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__half-2.7.1\",\n sha256 = \"6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/half/2.7.1/download\"],\n strip_prefix = \"half-2.7.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.half-2.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.hashbrown-0.15.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.hashbrown-0.16.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hashbrown-0.17.1\",\n sha256 = \"ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hashbrown/0.17.1/download\"],\n strip_prefix = \"hashbrown-0.17.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hashbrown-0.17.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.heck-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hermit-abi-0.5.2\",\n sha256 = \"fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hermit-abi/0.5.2/download\"],\n strip_prefix = \"hermit-abi-0.5.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hermit-abi-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hickory-proto-0.24.4\",\n sha256 = \"92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hickory-proto/0.24.4/download\"],\n strip_prefix = \"hickory-proto-0.24.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hickory-proto-0.24.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hickory-resolver-0.24.4\",\n sha256 = \"cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hickory-resolver/0.24.4/download\"],\n strip_prefix = \"hickory-resolver-0.24.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hickory-resolver-0.24.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hostname-0.4.2\",\n sha256 = \"617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hostname/0.4.2/download\"],\n strip_prefix = \"hostname-0.4.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hostname-0.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__http-1.4.2\",\n sha256 = \"6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http/1.4.2/download\"],\n strip_prefix = \"http-1.4.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.http-1.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__http-body-1.0.1\",\n sha256 = \"1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-body/1.0.1/download\"],\n strip_prefix = \"http-body-1.0.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.http-body-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__http-body-util-0.1.3\",\n sha256 = \"b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-body-util/0.1.3/download\"],\n strip_prefix = \"http-body-util-0.1.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.http-body-util-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__httparse-1.10.1\",\n sha256 = \"6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/httparse/1.10.1/download\"],\n strip_prefix = \"httparse-1.10.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.httparse-1.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__httpdate-1.0.3\",\n sha256 = \"df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/httpdate/1.0.3/download\"],\n strip_prefix = \"httpdate-1.0.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.httpdate-1.0.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hyper-1.9.0\",\n sha256 = \"6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper/1.9.0/download\"],\n strip_prefix = \"hyper-1.9.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hyper-1.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hyper-rustls-0.27.7\",\n sha256 = \"e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-rustls/0.27.7/download\"],\n strip_prefix = \"hyper-rustls-0.27.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hyper-rustls-0.27.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hyper-timeout-0.5.2\",\n sha256 = \"2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-timeout/0.5.2/download\"],\n strip_prefix = \"hyper-timeout-0.5.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hyper-timeout-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hyper-util-0.1.20\",\n sha256 = \"96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-util/0.1.20/download\"],\n strip_prefix = \"hyper-util-0.1.20\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hyper-util-0.1.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__icu_collections-2.1.1\",\n sha256 = \"4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_collections/2.1.1/download\"],\n strip_prefix = \"icu_collections-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.icu_collections-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__icu_locale_core-2.1.1\",\n sha256 = \"edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_locale_core/2.1.1/download\"],\n strip_prefix = \"icu_locale_core-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.icu_locale_core-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__icu_normalizer-2.1.1\",\n sha256 = \"5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_normalizer/2.1.1/download\"],\n strip_prefix = \"icu_normalizer-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.icu_normalizer-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__icu_normalizer_data-2.1.1\",\n sha256 = \"7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_normalizer_data/2.1.1/download\"],\n strip_prefix = \"icu_normalizer_data-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.icu_normalizer_data-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__icu_properties-2.1.2\",\n sha256 = \"020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_properties/2.1.2/download\"],\n strip_prefix = \"icu_properties-2.1.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.icu_properties-2.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__icu_properties_data-2.1.2\",\n sha256 = \"616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_properties_data/2.1.2/download\"],\n strip_prefix = \"icu_properties_data-2.1.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.icu_properties_data-2.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__icu_provider-2.1.1\",\n sha256 = \"85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_provider/2.1.1/download\"],\n strip_prefix = \"icu_provider-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.icu_provider-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__id-arena-2.3.0\",\n sha256 = \"3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/id-arena/2.3.0/download\"],\n strip_prefix = \"id-arena-2.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.id-arena-2.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__idna-1.1.0\",\n sha256 = \"3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/idna/1.1.0/download\"],\n strip_prefix = \"idna-1.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.idna-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__idna_adapter-1.2.1\",\n sha256 = \"3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/idna_adapter/1.2.1/download\"],\n strip_prefix = \"idna_adapter-1.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.idna_adapter-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__indexmap-2.14.0\",\n sha256 = \"d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indexmap/2.14.0/download\"],\n strip_prefix = \"indexmap-2.14.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.indexmap-2.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ipconfig-0.3.2\",\n sha256 = \"b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ipconfig/0.3.2/download\"],\n strip_prefix = \"ipconfig-0.3.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ipconfig-0.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ipnet-2.11.0\",\n sha256 = \"469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ipnet/2.11.0/download\"],\n strip_prefix = \"ipnet-2.11.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ipnet-2.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__iri-string-0.7.10\",\n sha256 = \"c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iri-string/0.7.10/download\"],\n strip_prefix = \"iri-string-0.7.10\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.iri-string-0.7.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__is-terminal-0.4.17\",\n sha256 = \"3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/is-terminal/0.4.17/download\"],\n strip_prefix = \"is-terminal-0.4.17\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.is-terminal-0.4.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.is_terminal_polyfill-1.70.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__itertools-0.10.5\",\n sha256 = \"b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itertools/0.10.5/download\"],\n strip_prefix = \"itertools-0.10.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.itertools-0.10.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__itertools-0.14.0\",\n sha256 = \"2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itertools/0.14.0/download\"],\n strip_prefix = \"itertools-0.14.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.itertools-0.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__itoa-1.0.17\",\n sha256 = \"92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itoa/1.0.17/download\"],\n strip_prefix = \"itoa-1.0.17\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.itoa-1.0.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__jiff-0.2.24\",\n sha256 = \"f00b5dbd620d61dfdcb6007c9c1f6054ebd75319f163d886a9055cec1155073d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jiff/0.2.24/download\"],\n strip_prefix = \"jiff-0.2.24\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.jiff-0.2.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__jiff-static-0.2.24\",\n sha256 = \"e000de030ff8022ea1da3f466fbb0f3a809f5e51ed31f6dd931c35181ad8e6d7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jiff-static/0.2.24/download\"],\n strip_prefix = \"jiff-static-0.2.24\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.jiff-static-0.2.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__jni-0.21.1\",\n sha256 = \"1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jni/0.21.1/download\"],\n strip_prefix = \"jni-0.21.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.jni-0.21.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__jni-sys-0.3.0\",\n sha256 = \"8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jni-sys/0.3.0/download\"],\n strip_prefix = \"jni-sys-0.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.jni-sys-0.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__jobserver-0.1.34\",\n sha256 = \"9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jobserver/0.1.34/download\"],\n strip_prefix = \"jobserver-0.1.34\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.jobserver-0.1.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__js-sys-0.3.90\",\n sha256 = \"14dc6f6450b3f6d4ed5b16327f38fed626d375a886159ca555bd7822c0c3a5a6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/js-sys/0.3.90/download\"],\n strip_prefix = \"js-sys-0.3.90\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.js-sys-0.3.90.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__json-patch-4.2.0\",\n sha256 = \"7421438de105a0827e44fadd05377727847d717c80ce29a229f85fd04c427b72\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/json-patch/4.2.0/download\"],\n strip_prefix = \"json-patch-4.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.json-patch-4.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__jsonpath-rust-1.0.4\",\n sha256 = \"633a7320c4bb672863a3782e89b9094ad70285e097ff6832cddd0ec615beadfa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jsonpath-rust/1.0.4/download\"],\n strip_prefix = \"jsonpath-rust-1.0.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.jsonpath-rust-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__jsonptr-0.7.1\",\n sha256 = \"a5a3cc660ba5d72bce0b3bb295bf20847ccbb40fd423f3f05b61273672e561fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jsonptr/0.7.1/download\"],\n strip_prefix = \"jsonptr-0.7.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.jsonptr-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__k8s-openapi-0.27.1\",\n sha256 = \"51b326f5219dd55872a72c1b6ddd1b830b8334996c667449c29391d657d78d5e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/k8s-openapi/0.27.1/download\"],\n strip_prefix = \"k8s-openapi-0.27.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.k8s-openapi-0.27.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__kube-3.1.0\",\n sha256 = \"acc5a6a69da2975ed9925d56b5dcfc9cc739b66f37add06785b7c9f6d1e88741\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/kube/3.1.0/download\"],\n strip_prefix = \"kube-3.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.kube-3.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__kube-client-3.1.0\",\n sha256 = \"0fcaf2d1f1a91e1805d4cd82e8333c022767ae8ffd65909bbef6802733a7dd40\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/kube-client/3.1.0/download\"],\n strip_prefix = \"kube-client-3.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.kube-client-3.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__kube-core-3.1.0\",\n sha256 = \"f126d2db7a8b532ec1d839ece2a71e2485dc3bbca6cc3c3f929becaa810e719e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/kube-core/3.1.0/download\"],\n strip_prefix = \"kube-core-3.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.kube-core-3.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__kube-runtime-3.1.0\",\n sha256 = \"c072737075826ee74d3e615e80334e41e617ca3d14fb46ef7cdfda822d6f15f2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/kube-runtime/3.1.0/download\"],\n strip_prefix = \"kube-runtime-3.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.kube-runtime-3.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__lazy_static-1.5.0\",\n sha256 = \"bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lazy_static/1.5.0/download\"],\n strip_prefix = \"lazy_static-1.5.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.lazy_static-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__leb128fmt-0.1.0\",\n sha256 = \"09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/leb128fmt/0.1.0/download\"],\n strip_prefix = \"leb128fmt-0.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.leb128fmt-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__libc-0.2.186\",\n sha256 = \"68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libc/0.2.186/download\"],\n strip_prefix = \"libc-0.2.186\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.libc-0.2.186.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__libgit2-sys-0.18.5-1.9.4\",\n sha256 = \"005d6ae6eac1912906073e069f7db60b1fa98e052a68227824afe3e3a1c59ca2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libgit2-sys/0.18.5+1.9.4/download\"],\n strip_prefix = \"libgit2-sys-0.18.5+1.9.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.libgit2-sys-0.18.5+1.9.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__libm-0.2.16\",\n sha256 = \"b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libm/0.2.16/download\"],\n strip_prefix = \"libm-0.2.16\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.libm-0.2.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__libz-sys-1.1.29\",\n sha256 = \"85bc9657773828b90eeb625adff10eeac83cc21bbfd8e23a03eaa8a33c9e28d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libz-sys/1.1.29/download\"],\n strip_prefix = \"libz-sys-1.1.29\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.libz-sys-1.1.29.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__linked-hash-map-0.5.6\",\n sha256 = \"0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/linked-hash-map/0.5.6/download\"],\n strip_prefix = \"linked-hash-map-0.5.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.linked-hash-map-0.5.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__linux-raw-sys-0.12.1\",\n sha256 = \"32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/linux-raw-sys/0.12.1/download\"],\n strip_prefix = \"linux-raw-sys-0.12.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.linux-raw-sys-0.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__litemap-0.8.1\",\n sha256 = \"6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/litemap/0.8.1/download\"],\n strip_prefix = \"litemap-0.8.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.litemap-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__lock_api-0.4.14\",\n sha256 = \"224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lock_api/0.4.14/download\"],\n strip_prefix = \"lock_api-0.4.14\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.lock_api-0.4.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.log-0.4.29.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__lru-cache-0.1.2\",\n sha256 = \"31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lru-cache/0.1.2/download\"],\n strip_prefix = \"lru-cache-0.1.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.lru-cache-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__lru-slab-0.1.2\",\n sha256 = \"112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lru-slab/0.1.2/download\"],\n strip_prefix = \"lru-slab-0.1.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.lru-slab-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__matchers-0.2.0\",\n sha256 = \"d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/matchers/0.2.0/download\"],\n strip_prefix = \"matchers-0.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.matchers-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__matchit-0.8.4\",\n sha256 = \"47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/matchit/0.8.4/download\"],\n strip_prefix = \"matchit-0.8.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.matchit-0.8.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__memchr-2.8.3\",\n sha256 = \"cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/memchr/2.8.3/download\"],\n strip_prefix = \"memchr-2.8.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.memchr-2.8.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__mime-0.3.17\",\n sha256 = \"6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mime/0.3.17/download\"],\n strip_prefix = \"mime-0.3.17\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.mime-0.3.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.minimal-lexical-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__mio-1.2.1\",\n sha256 = \"02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mio/1.2.1/download\"],\n strip_prefix = \"mio-1.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.mio-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__moka-0.12.15\",\n sha256 = \"957228ad12042ee839f93c8f257b62b4c0ab5eaae1d4fa60de53b27c9d7c5046\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/moka/0.12.15/download\"],\n strip_prefix = \"moka-0.12.15\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.moka-0.12.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__multimap-0.10.1\",\n sha256 = \"1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/multimap/0.10.1/download\"],\n strip_prefix = \"multimap-0.10.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.multimap-0.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__munge-0.4.7\",\n sha256 = \"5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/munge/0.4.7/download\"],\n strip_prefix = \"munge-0.4.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.munge-0.4.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__munge_macro-0.4.7\",\n sha256 = \"4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/munge_macro/0.4.7/download\"],\n strip_prefix = \"munge_macro-0.4.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.munge_macro-0.4.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.nom-7.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__nu-ansi-term-0.50.3\",\n sha256 = \"7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nu-ansi-term/0.50.3/download\"],\n strip_prefix = \"nu-ansi-term-0.50.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.nu-ansi-term-0.50.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__num-bigint-0.4.8\",\n sha256 = \"c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-bigint/0.4.8/download\"],\n strip_prefix = \"num-bigint-0.4.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.num-bigint-0.4.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__num-conv-0.2.1\",\n sha256 = \"c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-conv/0.2.1/download\"],\n strip_prefix = \"num-conv-0.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.num-conv-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__num-integer-0.1.47\",\n sha256 = \"7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-integer/0.1.47/download\"],\n strip_prefix = \"num-integer-0.1.47\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.num-integer-0.1.47.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__num-traits-0.2.19\",\n sha256 = \"071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-traits/0.2.19/download\"],\n strip_prefix = \"num-traits-0.2.19\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.num-traits-0.2.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__oid-registry-0.8.1\",\n sha256 = \"12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/oid-registry/0.8.1/download\"],\n strip_prefix = \"oid-registry-0.8.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.oid-registry-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__once_cell-1.21.3\",\n sha256 = \"42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/once_cell/1.21.3/download\"],\n strip_prefix = \"once_cell-1.21.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.once_cell-1.21.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.once_cell_polyfill-1.70.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__oorandom-11.1.5\",\n sha256 = \"d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/oorandom/11.1.5/download\"],\n strip_prefix = \"oorandom-11.1.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.oorandom-11.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__openssl-probe-0.2.1\",\n sha256 = \"7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl-probe/0.2.1/download\"],\n strip_prefix = \"openssl-probe-0.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.openssl-probe-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__opentelemetry-0.32.0\",\n sha256 = \"b0142c63252a9e054e68a4c61a5778f7b14f576274d593f8ce883d191a099682\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/opentelemetry/0.32.0/download\"],\n strip_prefix = \"opentelemetry-0.32.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.opentelemetry-0.32.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__opentelemetry-http-0.32.0\",\n sha256 = \"5683015d09e2df236ef005b17f6f196f0d5f6313c4fa43a7b6a53b52776e4331\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/opentelemetry-http/0.32.0/download\"],\n strip_prefix = \"opentelemetry-http-0.32.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.opentelemetry-http-0.32.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__opentelemetry-otlp-0.32.0\",\n sha256 = \"9966929966d17620d7c316c643ba62631826e10021409357772d5eea84f62c35\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/opentelemetry-otlp/0.32.0/download\"],\n strip_prefix = \"opentelemetry-otlp-0.32.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.opentelemetry-otlp-0.32.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__opentelemetry-proto-0.32.0\",\n sha256 = \"56d658ba1faf63f7b9c492cfbe6e0ec365440a16132d3270c1065f7b33f1b638\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/opentelemetry-proto/0.32.0/download\"],\n strip_prefix = \"opentelemetry-proto-0.32.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.opentelemetry-proto-0.32.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__opentelemetry_sdk-0.32.1\",\n sha256 = \"9b59f80e1ac4d5ff7a2db8fb6c80badb7f0f3f858211fba08dd9aaec750894f9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/opentelemetry_sdk/0.32.1/download\"],\n strip_prefix = \"opentelemetry_sdk-0.32.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.opentelemetry_sdk-0.32.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ordered-float-2.10.1\",\n sha256 = \"68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ordered-float/2.10.1/download\"],\n strip_prefix = \"ordered-float-2.10.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ordered-float-2.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__parking-2.2.1\",\n sha256 = \"f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking/2.2.1/download\"],\n strip_prefix = \"parking-2.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.parking-2.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__parking_lot-0.12.5\",\n sha256 = \"93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking_lot/0.12.5/download\"],\n strip_prefix = \"parking_lot-0.12.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.parking_lot-0.12.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__parking_lot_core-0.9.12\",\n sha256 = \"2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking_lot_core/0.9.12/download\"],\n strip_prefix = \"parking_lot_core-0.9.12\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.parking_lot_core-0.9.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__pem-3.0.6\",\n sha256 = \"1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pem/3.0.6/download\"],\n strip_prefix = \"pem-3.0.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.pem-3.0.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__percent-encoding-2.3.2\",\n sha256 = \"9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/percent-encoding/2.3.2/download\"],\n strip_prefix = \"percent-encoding-2.3.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.percent-encoding-2.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.pest-2.8.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.pest_derive-2.8.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.pest_generator-2.8.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.pest_meta-2.8.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__petgraph-0.8.3\",\n sha256 = \"8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/petgraph/0.8.3/download\"],\n strip_prefix = \"petgraph-0.8.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.petgraph-0.8.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__pin-project-1.1.10\",\n sha256 = \"677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project/1.1.10/download\"],\n strip_prefix = \"pin-project-1.1.10\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.pin-project-1.1.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__pin-project-internal-1.1.10\",\n sha256 = \"6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project-internal/1.1.10/download\"],\n strip_prefix = \"pin-project-internal-1.1.10\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.pin-project-internal-1.1.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__pin-project-lite-0.2.16\",\n sha256 = \"3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project-lite/0.2.16/download\"],\n strip_prefix = \"pin-project-lite-0.2.16\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.pin-project-lite-0.2.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__pkg-config-0.3.33\",\n sha256 = \"19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pkg-config/0.3.33/download\"],\n strip_prefix = \"pkg-config-0.3.33\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.pkg-config-0.3.33.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__plotters-0.3.7\",\n sha256 = \"5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/plotters/0.3.7/download\"],\n strip_prefix = \"plotters-0.3.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.plotters-0.3.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__plotters-backend-0.3.7\",\n sha256 = \"df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/plotters-backend/0.3.7/download\"],\n strip_prefix = \"plotters-backend-0.3.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.plotters-backend-0.3.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__plotters-svg-0.3.7\",\n sha256 = \"51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/plotters-svg/0.3.7/download\"],\n strip_prefix = \"plotters-svg-0.3.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.plotters-svg-0.3.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__portable-atomic-1.13.1\",\n sha256 = \"c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic/1.13.1/download\"],\n strip_prefix = \"portable-atomic-1.13.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.portable-atomic-1.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__portable-atomic-util-0.2.7\",\n sha256 = \"c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic-util/0.2.7/download\"],\n strip_prefix = \"portable-atomic-util-0.2.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.portable-atomic-util-0.2.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__potential_utf-0.1.4\",\n sha256 = \"b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/potential_utf/0.1.4/download\"],\n strip_prefix = \"potential_utf-0.1.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.potential_utf-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__powerfmt-0.2.0\",\n sha256 = \"439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/powerfmt/0.2.0/download\"],\n strip_prefix = \"powerfmt-0.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.powerfmt-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ppv-lite86-0.2.21\",\n sha256 = \"85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ppv-lite86/0.2.21/download\"],\n strip_prefix = \"ppv-lite86-0.2.21\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ppv-lite86-0.2.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__prettyplease-0.2.37\",\n sha256 = \"479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prettyplease/0.2.37/download\"],\n strip_prefix = \"prettyplease-0.2.37\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.prettyplease-0.2.37.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.proc-macro2-1.0.106.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__prometheus-0.14.0\",\n sha256 = \"3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prometheus/0.14.0/download\"],\n strip_prefix = \"prometheus-0.14.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.prometheus-0.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__proptest-1.11.0\",\n sha256 = \"4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/proptest/1.11.0/download\"],\n strip_prefix = \"proptest-1.11.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.proptest-1.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__prost-0.14.4\",\n sha256 = \"528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost/0.14.4/download\"],\n strip_prefix = \"prost-0.14.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.prost-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__prost-build-0.14.3\",\n sha256 = \"343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-build/0.14.3/download\"],\n strip_prefix = \"prost-build-0.14.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.prost-build-0.14.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__prost-derive-0.14.4\",\n sha256 = \"b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-derive/0.14.4/download\"],\n strip_prefix = \"prost-derive-0.14.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.prost-derive-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__prost-types-0.14.3\",\n sha256 = \"8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-types/0.14.3/download\"],\n strip_prefix = \"prost-types-0.14.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.prost-types-0.14.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__protobuf-3.7.2\",\n sha256 = \"d65a1d4ddae7d8b5de68153b48f6aa3bba8cb002b243dbdbc55a5afbc98f99f4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/protobuf/3.7.2/download\"],\n strip_prefix = \"protobuf-3.7.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.protobuf-3.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__protobuf-support-3.7.2\",\n sha256 = \"3e36c2f31e0a47f9280fb347ef5e461ffcd2c52dd520d8e216b52f93b0b0d7d6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/protobuf-support/3.7.2/download\"],\n strip_prefix = \"protobuf-support-3.7.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.protobuf-support-3.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ptr_meta-0.3.1\",\n sha256 = \"0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ptr_meta/0.3.1/download\"],\n strip_prefix = \"ptr_meta-0.3.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ptr_meta-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ptr_meta_derive-0.3.1\",\n sha256 = \"7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ptr_meta_derive/0.3.1/download\"],\n strip_prefix = \"ptr_meta_derive-0.3.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ptr_meta_derive-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__pulldown-cmark-0.13.4\",\n sha256 = \"e9f068eba8e7071c5f9511831b44f32c740d5adf574e990f946ddb53db2f314e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pulldown-cmark/0.13.4/download\"],\n strip_prefix = \"pulldown-cmark-0.13.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.pulldown-cmark-0.13.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__pulldown-cmark-to-cmark-22.0.0\",\n sha256 = \"50793def1b900256624a709439404384204a5dc3a6ec580281bfaac35e882e90\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pulldown-cmark-to-cmark/22.0.0/download\"],\n strip_prefix = \"pulldown-cmark-to-cmark-22.0.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.pulldown-cmark-to-cmark-22.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__quick-error-1.2.3\",\n sha256 = \"a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quick-error/1.2.3/download\"],\n strip_prefix = \"quick-error-1.2.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.quick-error-1.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__quinn-0.11.11\",\n sha256 = \"0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quinn/0.11.11/download\"],\n strip_prefix = \"quinn-0.11.11\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.quinn-0.11.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__quinn-proto-0.11.15\",\n sha256 = \"4fcb935c5bec503c2f0e306bdd3e58bb9029dcb14fa8d9ac76e3a5256ac0763e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quinn-proto/0.11.15/download\"],\n strip_prefix = \"quinn-proto-0.11.15\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.quinn-proto-0.11.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__quinn-udp-0.5.14\",\n sha256 = \"addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quinn-udp/0.5.14/download\"],\n strip_prefix = \"quinn-udp-0.5.14\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.quinn-udp-0.5.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.quote-1.0.45.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__r-efi-5.3.0\",\n sha256 = \"69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/r-efi/5.3.0/download\"],\n strip_prefix = \"r-efi-5.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.r-efi-5.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rancor-0.1.1\",\n sha256 = \"a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rancor/0.1.1/download\"],\n strip_prefix = \"rancor-0.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rancor-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rand-0.8.5\",\n sha256 = \"34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand/0.8.5/download\"],\n strip_prefix = \"rand-0.8.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rand-0.8.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rand-0.9.3\",\n sha256 = \"7ec095654a25171c2124e9e3393a930bddbffdc939556c914957a4c3e0a87166\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand/0.9.3/download\"],\n strip_prefix = \"rand-0.9.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rand-0.9.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rand_chacha-0.3.1\",\n sha256 = \"e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_chacha/0.3.1/download\"],\n strip_prefix = \"rand_chacha-0.3.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rand_chacha-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rand_chacha-0.9.0\",\n sha256 = \"d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_chacha/0.9.0/download\"],\n strip_prefix = \"rand_chacha-0.9.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rand_chacha-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.rand_core-0.6.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.rand_core-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rand_xorshift-0.4.0\",\n sha256 = \"513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_xorshift/0.4.0/download\"],\n strip_prefix = \"rand_xorshift-0.4.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rand_xorshift-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rayon-1.12.0\",\n sha256 = \"fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rayon/1.12.0/download\"],\n strip_prefix = \"rayon-1.12.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rayon-1.12.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rayon-core-1.13.0\",\n sha256 = \"22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rayon-core/1.13.0/download\"],\n strip_prefix = \"rayon-core-1.13.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rayon-core-1.13.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rcgen-0.13.2\",\n sha256 = \"75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rcgen/0.13.2/download\"],\n strip_prefix = \"rcgen-0.13.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rcgen-0.13.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__redox_syscall-0.5.18\",\n sha256 = \"ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/redox_syscall/0.5.18/download\"],\n strip_prefix = \"redox_syscall-0.5.18\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.redox_syscall-0.5.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ref-cast-1.0.25\",\n sha256 = \"f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ref-cast/1.0.25/download\"],\n strip_prefix = \"ref-cast-1.0.25\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ref-cast-1.0.25.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ref-cast-impl-1.0.25\",\n sha256 = \"b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ref-cast-impl/1.0.25/download\"],\n strip_prefix = \"ref-cast-impl-1.0.25\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ref-cast-impl-1.0.25.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__regex-1.12.3\",\n sha256 = \"e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex/1.12.3/download\"],\n strip_prefix = \"regex-1.12.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.regex-1.12.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__regex-automata-0.4.14\",\n sha256 = \"6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-automata/0.4.14/download\"],\n strip_prefix = \"regex-automata-0.4.14\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.regex-automata-0.4.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__regex-syntax-0.8.10\",\n sha256 = \"dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-syntax/0.8.10/download\"],\n strip_prefix = \"regex-syntax-0.8.10\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.regex-syntax-0.8.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rend-0.5.3\",\n sha256 = \"cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rend/0.5.3/download\"],\n strip_prefix = \"rend-0.5.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rend-0.5.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__reqwest-0.13.4\",\n sha256 = \"219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/reqwest/0.13.4/download\"],\n strip_prefix = \"reqwest-0.13.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.reqwest-0.13.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__resolv-conf-0.7.6\",\n sha256 = \"1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/resolv-conf/0.7.6/download\"],\n strip_prefix = \"resolv-conf-0.7.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.resolv-conf-0.7.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ring-0.17.14\",\n sha256 = \"a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ring/0.17.14/download\"],\n strip_prefix = \"ring-0.17.14\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ring-0.17.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rkyv-0.8.15\",\n sha256 = \"1a30e631b7f4a03dee9056b8ef6982e8ba371dd5bedb74d3ec86df4499132c70\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rkyv/0.8.15/download\"],\n strip_prefix = \"rkyv-0.8.15\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rkyv-0.8.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rkyv_derive-0.8.15\",\n sha256 = \"8100bb34c0a1d0f907143db3149e6b4eea3c33b9ee8b189720168e818303986f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rkyv_derive/0.8.15/download\"],\n strip_prefix = \"rkyv_derive-0.8.15\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rkyv_derive-0.8.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustc-hash-2.1.1\",\n sha256 = \"357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustc-hash/2.1.1/download\"],\n strip_prefix = \"rustc-hash-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustc-hash-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustc_version-0.4.1\",\n sha256 = \"cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustc_version/0.4.1/download\"],\n strip_prefix = \"rustc_version-0.4.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustc_version-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rusticata-macros-4.1.0\",\n sha256 = \"faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rusticata-macros/4.1.0/download\"],\n strip_prefix = \"rusticata-macros-4.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rusticata-macros-4.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustix-1.1.4\",\n sha256 = \"b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustix/1.1.4/download\"],\n strip_prefix = \"rustix-1.1.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustix-1.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustls-0.23.41\",\n sha256 = \"6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls/0.23.41/download\"],\n strip_prefix = \"rustls-0.23.41\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustls-0.23.41.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustls-native-certs-0.8.3\",\n sha256 = \"612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-native-certs/0.8.3/download\"],\n strip_prefix = \"rustls-native-certs-0.8.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustls-native-certs-0.8.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustls-pemfile-2.2.0\",\n sha256 = \"dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-pemfile/2.2.0/download\"],\n strip_prefix = \"rustls-pemfile-2.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustls-pemfile-2.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustls-pki-types-1.14.0\",\n sha256 = \"be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-pki-types/1.14.0/download\"],\n strip_prefix = \"rustls-pki-types-1.14.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustls-pki-types-1.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustls-platform-verifier-0.6.2\",\n sha256 = \"1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-platform-verifier/0.6.2/download\"],\n strip_prefix = \"rustls-platform-verifier-0.6.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustls-platform-verifier-0.6.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustls-platform-verifier-android-0.1.1\",\n sha256 = \"f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-platform-verifier-android/0.1.1/download\"],\n strip_prefix = \"rustls-platform-verifier-android-0.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustls-platform-verifier-android-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustls-webpki-0.103.9\",\n sha256 = \"d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-webpki/0.103.9/download\"],\n strip_prefix = \"rustls-webpki-0.103.9\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustls-webpki-0.103.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustversion-1.0.22\",\n sha256 = \"b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustversion/1.0.22/download\"],\n strip_prefix = \"rustversion-1.0.22\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustversion-1.0.22.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rusty-fork-0.3.1\",\n sha256 = \"cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rusty-fork/0.3.1/download\"],\n strip_prefix = \"rusty-fork-0.3.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rusty-fork-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ryu-1.0.23\",\n sha256 = \"9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ryu/1.0.23/download\"],\n strip_prefix = \"ryu-1.0.23\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ryu-1.0.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__saa-5.6.0\",\n sha256 = \"68f5acb362a0e75c2a963532fa7fabf13dff81626dc494df16488d30befcbea0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/saa/5.6.0/download\"],\n strip_prefix = \"saa-5.6.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.saa-5.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__same-file-1.0.6\",\n sha256 = \"93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/same-file/1.0.6/download\"],\n strip_prefix = \"same-file-1.0.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.same-file-1.0.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__scc-3.7.1\",\n sha256 = \"5bcd12b6caff5213cc3c03123cde8c3db5e413008a63b0c0ba35e6275825ea92\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/scc/3.7.1/download\"],\n strip_prefix = \"scc-3.7.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.scc-3.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__schannel-0.1.28\",\n sha256 = \"891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/schannel/0.1.28/download\"],\n strip_prefix = \"schannel-0.1.28\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.schannel-0.1.28.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__scopeguard-1.2.0\",\n sha256 = \"94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/scopeguard/1.2.0/download\"],\n strip_prefix = \"scopeguard-1.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.scopeguard-1.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sdd-4.8.6\",\n sha256 = \"e5f0e40a01b94e35d1dacbcfbe5bfd3d31e37d9590b2e6d86a82b0e87bd4f551\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sdd/4.8.6/download\"],\n strip_prefix = \"sdd-4.8.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sdd-4.8.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__secrecy-0.10.3\",\n sha256 = \"e891af845473308773346dc847b2c23ee78fe442e0472ac50e22a18a93d3ae5a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/secrecy/0.10.3/download\"],\n strip_prefix = \"secrecy-0.10.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.secrecy-0.10.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__security-framework-3.7.0\",\n sha256 = \"b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/security-framework/3.7.0/download\"],\n strip_prefix = \"security-framework-3.7.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.security-framework-3.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__security-framework-sys-2.17.0\",\n sha256 = \"6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/security-framework-sys/2.17.0/download\"],\n strip_prefix = \"security-framework-sys-2.17.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.security-framework-sys-2.17.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__semver-1.0.27\",\n sha256 = \"d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/semver/1.0.27/download\"],\n strip_prefix = \"semver-1.0.27\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.semver-1.0.27.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.serde-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__serde-value-0.7.0\",\n sha256 = \"f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde-value/0.7.0/download\"],\n strip_prefix = \"serde-value-0.7.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.serde-value-0.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.serde_core-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.serde_derive-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__serde_json-1.0.150\",\n sha256 = \"e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_json/1.0.150/download\"],\n strip_prefix = \"serde_json-1.0.150\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.serde_json-1.0.150.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__serde_path_to_error-0.1.20\",\n sha256 = \"10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_path_to_error/0.1.20/download\"],\n strip_prefix = \"serde_path_to_error-0.1.20\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.serde_path_to_error-0.1.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__serde_urlencoded-0.7.1\",\n sha256 = \"d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_urlencoded/0.7.1/download\"],\n strip_prefix = \"serde_urlencoded-0.7.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.serde_urlencoded-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__serde_yaml-0.9.34-deprecated\",\n sha256 = \"6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_yaml/0.9.34+deprecated/download\"],\n strip_prefix = \"serde_yaml-0.9.34+deprecated\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.serde_yaml-0.9.34+deprecated.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__serde_yaml_ng-0.10.0\",\n sha256 = \"7b4db627b98b36d4203a7b458cf3573730f2bb591b28871d916dfa9efabfd41f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_yaml_ng/0.10.0/download\"],\n strip_prefix = \"serde_yaml_ng-0.10.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.serde_yaml_ng-0.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sfv-0.15.0\",\n sha256 = \"890ef0e5532daf21fdaa3dbaf991417187f3a87ab69231fe69be942495746480\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sfv/0.15.0/download\"],\n strip_prefix = \"sfv-0.15.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sfv-0.15.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.sha2-0.10.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sharded-slab-0.1.7\",\n sha256 = \"f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sharded-slab/0.1.7/download\"],\n strip_prefix = \"sharded-slab-0.1.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sharded-slab-0.1.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__shlex-1.3.0\",\n sha256 = \"0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/shlex/1.3.0/download\"],\n strip_prefix = \"shlex-1.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.shlex-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__signal-hook-registry-1.4.8\",\n sha256 = \"c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/signal-hook-registry/1.4.8/download\"],\n strip_prefix = \"signal-hook-registry-1.4.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.signal-hook-registry-1.4.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__simdutf8-0.1.5\",\n sha256 = \"e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/simdutf8/0.1.5/download\"],\n strip_prefix = \"simdutf8-0.1.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.simdutf8-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__siphasher-1.0.2\",\n sha256 = \"b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/siphasher/1.0.2/download\"],\n strip_prefix = \"siphasher-1.0.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.siphasher-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__slab-0.4.12\",\n sha256 = \"0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/slab/0.4.12/download\"],\n strip_prefix = \"slab-0.4.12\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.slab-0.4.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__smallvec-1.15.1\",\n sha256 = \"67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/smallvec/1.15.1/download\"],\n strip_prefix = \"smallvec-1.15.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.smallvec-1.15.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__socket2-0.5.10\",\n sha256 = \"e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/socket2/0.5.10/download\"],\n strip_prefix = \"socket2-0.5.10\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.socket2-0.5.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__socket2-0.6.4\",\n sha256 = \"52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/socket2/0.6.4/download\"],\n strip_prefix = \"socket2-0.6.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.socket2-0.6.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sonic-number-0.1.1\",\n sha256 = \"5661364b38abad49cf1ade6631fcc35d2ccf882a7d68616b4228b7717feb5fba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sonic-number/0.1.1/download\"],\n strip_prefix = \"sonic-number-0.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sonic-number-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sonic-rs-0.5.8\",\n sha256 = \"d971cc77a245ccf1756dbd1a87c3e7f709c0191464096510d43eec056d0f2c4f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sonic-rs/0.5.8/download\"],\n strip_prefix = \"sonic-rs-0.5.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sonic-rs-0.5.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sonic-simd-0.1.3\",\n sha256 = \"e9f944718c33623919878cf74b4c9361eb3024f635733922b26722b14cd3f8cc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sonic-simd/0.1.3/download\"],\n strip_prefix = \"sonic-simd-0.1.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sonic-simd-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__spin-0.9.8\",\n sha256 = \"6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/spin/0.9.8/download\"],\n strip_prefix = \"spin-0.9.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.spin-0.9.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sse-core-0.2.3\",\n sha256 = \"28f4c044039e70ba5724b7e9dacf9fb610394773d15df2bb629170ca30391c88\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sse-core/0.2.3/download\"],\n strip_prefix = \"sse-core-0.2.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sse-core-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.stable_deref_trait-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.strsim-0.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.subtle-2.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.syn-2.0.117.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sync_wrapper-1.0.2\",\n sha256 = \"0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sync_wrapper/1.0.2/download\"],\n strip_prefix = \"sync_wrapper-1.0.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sync_wrapper-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__synstructure-0.13.2\",\n sha256 = \"728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/synstructure/0.13.2/download\"],\n strip_prefix = \"synstructure-0.13.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.synstructure-0.13.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tagptr-0.2.0\",\n sha256 = \"7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tagptr/0.2.0/download\"],\n strip_prefix = \"tagptr-0.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tagptr-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tempfile-3.27.0\",\n sha256 = \"32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tempfile/3.27.0/download\"],\n strip_prefix = \"tempfile-3.27.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tempfile-3.27.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__thiserror-1.0.69\",\n sha256 = \"b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror/1.0.69/download\"],\n strip_prefix = \"thiserror-1.0.69\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.thiserror-1.0.69.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__thiserror-2.0.18\",\n sha256 = \"4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror/2.0.18/download\"],\n strip_prefix = \"thiserror-2.0.18\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.thiserror-2.0.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__thiserror-impl-1.0.69\",\n sha256 = \"4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror-impl/1.0.69/download\"],\n strip_prefix = \"thiserror-impl-1.0.69\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.thiserror-impl-1.0.69.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__thiserror-impl-2.0.18\",\n sha256 = \"ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror-impl/2.0.18/download\"],\n strip_prefix = \"thiserror-impl-2.0.18\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.thiserror-impl-2.0.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__thread_local-1.1.9\",\n sha256 = \"f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thread_local/1.1.9/download\"],\n strip_prefix = \"thread_local-1.1.9\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.thread_local-1.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__time-0.3.47\",\n sha256 = \"743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time/0.3.47/download\"],\n strip_prefix = \"time-0.3.47\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.time-0.3.47.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__time-core-0.1.8\",\n sha256 = \"7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-core/0.1.8/download\"],\n strip_prefix = \"time-core-0.1.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.time-core-0.1.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__time-macros-0.2.27\",\n sha256 = \"2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-macros/0.2.27/download\"],\n strip_prefix = \"time-macros-0.2.27\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.time-macros-0.2.27.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tinystr-0.8.2\",\n sha256 = \"42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinystr/0.8.2/download\"],\n strip_prefix = \"tinystr-0.8.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tinystr-0.8.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tinytemplate-1.2.1\",\n sha256 = \"be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinytemplate/1.2.1/download\"],\n strip_prefix = \"tinytemplate-1.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tinytemplate-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tinyvec-1.10.0\",\n sha256 = \"bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinyvec/1.10.0/download\"],\n strip_prefix = \"tinyvec-1.10.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tinyvec-1.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tinyvec_macros-0.1.1\",\n sha256 = \"1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinyvec_macros/0.1.1/download\"],\n strip_prefix = \"tinyvec_macros-0.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tinyvec_macros-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tokio-1.52.3\",\n sha256 = \"8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio/1.52.3/download\"],\n strip_prefix = \"tokio-1.52.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tokio-1.52.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tokio-macros-2.7.0\",\n sha256 = \"385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-macros/2.7.0/download\"],\n strip_prefix = \"tokio-macros-2.7.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tokio-macros-2.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tokio-rustls-0.26.4\",\n sha256 = \"1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-rustls/0.26.4/download\"],\n strip_prefix = \"tokio-rustls-0.26.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tokio-rustls-0.26.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tokio-stream-0.1.18\",\n sha256 = \"32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-stream/0.1.18/download\"],\n strip_prefix = \"tokio-stream-0.1.18\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tokio-stream-0.1.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tokio-util-0.7.18\",\n sha256 = \"9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-util/0.7.18/download\"],\n strip_prefix = \"tokio-util-0.7.18\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tokio-util-0.7.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tonic-0.14.6\",\n sha256 = \"ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tonic/0.14.6/download\"],\n strip_prefix = \"tonic-0.14.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tonic-0.14.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tonic-build-0.14.6\",\n sha256 = \"c68f61875ac5293cf72e6c8cf0158086428c82c37229e98c840878f1706b0322\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tonic-build/0.14.6/download\"],\n strip_prefix = \"tonic-build-0.14.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tonic-build-0.14.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tonic-prost-0.14.6\",\n sha256 = \"50849f68853be452acf590cde0b146665b8d507b3b8af17261df47e02c209ea0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tonic-prost/0.14.6/download\"],\n strip_prefix = \"tonic-prost-0.14.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tonic-prost-0.14.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tonic-prost-build-0.14.6\",\n sha256 = \"654e5643eff75d7f8c99197ce1440ed19a3474eada74c12bbac488b2cafdae27\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tonic-prost-build/0.14.6/download\"],\n strip_prefix = \"tonic-prost-build-0.14.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tonic-prost-build-0.14.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tonic-types-0.14.6\",\n sha256 = \"73ab1b02061f83d519bba3caa167f88f261ef05720ab8ebc954ade70de3348e8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tonic-types/0.14.6/download\"],\n strip_prefix = \"tonic-types-0.14.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tonic-types-0.14.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tower-0.5.3\",\n sha256 = \"ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower/0.5.3/download\"],\n strip_prefix = \"tower-0.5.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tower-0.5.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tower-http-0.6.8\",\n sha256 = \"d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-http/0.6.8/download\"],\n strip_prefix = \"tower-http-0.6.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tower-http-0.6.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tower-layer-0.3.3\",\n sha256 = \"121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-layer/0.3.3/download\"],\n strip_prefix = \"tower-layer-0.3.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tower-layer-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tower-service-0.3.3\",\n sha256 = \"8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-service/0.3.3/download\"],\n strip_prefix = \"tower-service-0.3.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tower-service-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tracing-0.1.44\",\n sha256 = \"63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing/0.1.44/download\"],\n strip_prefix = \"tracing-0.1.44\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tracing-0.1.44.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tracing-attributes-0.1.31\",\n sha256 = \"7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-attributes/0.1.31/download\"],\n strip_prefix = \"tracing-attributes-0.1.31\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tracing-attributes-0.1.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tracing-core-0.1.36\",\n sha256 = \"db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-core/0.1.36/download\"],\n strip_prefix = \"tracing-core-0.1.36\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tracing-core-0.1.36.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tracing-log-0.2.0\",\n sha256 = \"ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-log/0.2.0/download\"],\n strip_prefix = \"tracing-log-0.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tracing-log-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tracing-opentelemetry-0.33.0\",\n sha256 = \"adbc64cba7137545b8044cb1fe9814f7aacf3c6b5f9b45be8bb5db538befdb26\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-opentelemetry/0.33.0/download\"],\n strip_prefix = \"tracing-opentelemetry-0.33.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tracing-opentelemetry-0.33.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tracing-subscriber-0.3.23\",\n sha256 = \"cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-subscriber/0.3.23/download\"],\n strip_prefix = \"tracing-subscriber-0.3.23\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tracing-subscriber-0.3.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__try-lock-0.2.5\",\n sha256 = \"e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/try-lock/0.2.5/download\"],\n strip_prefix = \"try-lock-0.2.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.try-lock-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__typenum-1.20.0\",\n sha256 = \"40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/typenum/1.20.0/download\"],\n strip_prefix = \"typenum-1.20.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.typenum-1.20.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.ucd-trie-0.1.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__unarray-0.1.4\",\n sha256 = \"eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unarray/0.1.4/download\"],\n strip_prefix = \"unarray-0.1.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.unarray-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__unicase-2.9.0\",\n sha256 = \"dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicase/2.9.0/download\"],\n strip_prefix = \"unicase-2.9.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.unicase-2.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.unicode-ident-1.0.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__unicode-xid-0.2.6\",\n sha256 = \"ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-xid/0.2.6/download\"],\n strip_prefix = \"unicode-xid-0.2.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.unicode-xid-0.2.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__unsafe-libyaml-0.2.11\",\n sha256 = \"673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unsafe-libyaml/0.2.11/download\"],\n strip_prefix = \"unsafe-libyaml-0.2.11\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.unsafe-libyaml-0.2.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__untrusted-0.9.0\",\n sha256 = \"8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/untrusted/0.9.0/download\"],\n strip_prefix = \"untrusted-0.9.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.untrusted-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__url-2.5.8\",\n sha256 = \"ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/url/2.5.8/download\"],\n strip_prefix = \"url-2.5.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.url-2.5.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__utf8_iter-1.0.4\",\n sha256 = \"b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/utf8_iter/1.0.4/download\"],\n strip_prefix = \"utf8_iter-1.0.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.utf8_iter-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.utf8parse-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.uuid-1.22.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__valuable-0.1.1\",\n sha256 = \"ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/valuable/0.1.1/download\"],\n strip_prefix = \"valuable-0.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.valuable-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__vcpkg-0.2.15\",\n sha256 = \"accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/vcpkg/0.2.15/download\"],\n strip_prefix = \"vcpkg-0.2.15\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.vcpkg-0.2.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.version_check-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wait-timeout-0.2.1\",\n sha256 = \"09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wait-timeout/0.2.1/download\"],\n strip_prefix = \"wait-timeout-0.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wait-timeout-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__walkdir-2.5.0\",\n sha256 = \"29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/walkdir/2.5.0/download\"],\n strip_prefix = \"walkdir-2.5.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.walkdir-2.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__want-0.3.1\",\n sha256 = \"bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/want/0.3.1/download\"],\n strip_prefix = \"want-0.3.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.want-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasi-0.11.1-wasi-snapshot-preview1\",\n sha256 = \"ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasi/0.11.1+wasi-snapshot-preview1/download\"],\n strip_prefix = \"wasi-0.11.1+wasi-snapshot-preview1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasip2-1.0.2-wasi-0.2.9\",\n sha256 = \"9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasip2/1.0.2+wasi-0.2.9/download\"],\n strip_prefix = \"wasip2-1.0.2+wasi-0.2.9\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasip2-1.0.2+wasi-0.2.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasip3-0.4.0-wasi-0.3.0-rc-2026-01-06\",\n sha256 = \"5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasip3/0.4.0+wasi-0.3.0-rc-2026-01-06/download\"],\n strip_prefix = \"wasip3-0.4.0+wasi-0.3.0-rc-2026-01-06\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasip3-0.4.0+wasi-0.3.0-rc-2026-01-06.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-bindgen-0.2.113\",\n sha256 = \"60722a937f594b7fde9adb894d7c092fc1bb6612897c46368d18e7a20208eff2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen/0.2.113/download\"],\n strip_prefix = \"wasm-bindgen-0.2.113\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-bindgen-0.2.113.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-bindgen-futures-0.4.63\",\n sha256 = \"8a89f4650b770e4521aa6573724e2aed4704372151bd0de9d16a3bbabb87441a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-futures/0.4.63/download\"],\n strip_prefix = \"wasm-bindgen-futures-0.4.63\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-bindgen-futures-0.4.63.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-bindgen-macro-0.2.113\",\n sha256 = \"0fac8c6395094b6b91c4af293f4c79371c163f9a6f56184d2c9a85f5a95f3950\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro/0.2.113/download\"],\n strip_prefix = \"wasm-bindgen-macro-0.2.113\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-bindgen-macro-0.2.113.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-bindgen-macro-support-0.2.113\",\n sha256 = \"ab3fabce6159dc20728033842636887e4877688ae94382766e00b180abac9d60\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.113/download\"],\n strip_prefix = \"wasm-bindgen-macro-support-0.2.113\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-bindgen-macro-support-0.2.113.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-bindgen-shared-0.2.113\",\n sha256 = \"de0e091bdb824da87dc01d967388880d017a0a9bc4f3bdc0d86ee9f9336e3bb5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-shared/0.2.113/download\"],\n strip_prefix = \"wasm-bindgen-shared-0.2.113\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-bindgen-shared-0.2.113.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-encoder-0.244.0\",\n sha256 = \"990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-encoder/0.244.0/download\"],\n strip_prefix = \"wasm-encoder-0.244.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-encoder-0.244.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-metadata-0.244.0\",\n sha256 = \"bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-metadata/0.244.0/download\"],\n strip_prefix = \"wasm-metadata-0.244.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-metadata-0.244.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-streams-0.5.0\",\n sha256 = \"9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-streams/0.5.0/download\"],\n strip_prefix = \"wasm-streams-0.5.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-streams-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasmparser-0.244.0\",\n sha256 = \"47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasmparser/0.244.0/download\"],\n strip_prefix = \"wasmparser-0.244.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasmparser-0.244.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__web-sys-0.3.90\",\n sha256 = \"705eceb4ce901230f8625bd1d665128056ccbe4b7408faa625eec1ba80f59a97\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/web-sys/0.3.90/download\"],\n strip_prefix = \"web-sys-0.3.90\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.web-sys-0.3.90.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__web-time-1.1.0\",\n sha256 = \"5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/web-time/1.1.0/download\"],\n strip_prefix = \"web-time-1.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.web-time-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__webpki-root-certs-1.0.6\",\n sha256 = \"804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/webpki-root-certs/1.0.6/download\"],\n strip_prefix = \"webpki-root-certs-1.0.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.webpki-root-certs-1.0.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__webpki-roots-1.0.7\",\n sha256 = \"52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/webpki-roots/1.0.7/download\"],\n strip_prefix = \"webpki-roots-1.0.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.webpki-roots-1.0.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__widestring-1.2.1\",\n sha256 = \"72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/widestring/1.2.1/download\"],\n strip_prefix = \"widestring-1.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.widestring-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__winapi-util-0.1.11\",\n sha256 = \"c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi-util/0.1.11/download\"],\n strip_prefix = \"winapi-util-0.1.11\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.winapi-util-0.1.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.windows-link-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-sys-0.45.0\",\n sha256 = \"75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.45.0/download\"],\n strip_prefix = \"windows-sys-0.45.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-sys-0.45.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-sys-0.48.0\",\n sha256 = \"677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.48.0/download\"],\n strip_prefix = \"windows-sys-0.48.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-sys-0.48.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-sys-0.52.0\",\n sha256 = \"282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.52.0/download\"],\n strip_prefix = \"windows-sys-0.52.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-sys-0.52.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-sys-0.60.2\",\n sha256 = \"f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.60.2/download\"],\n strip_prefix = \"windows-sys-0.60.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-sys-0.60.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.windows-sys-0.61.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-targets-0.42.2\",\n sha256 = \"8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.42.2/download\"],\n strip_prefix = \"windows-targets-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-targets-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-targets-0.48.5\",\n sha256 = \"9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.48.5/download\"],\n strip_prefix = \"windows-targets-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-targets-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-targets-0.52.6\",\n sha256 = \"9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.52.6/download\"],\n strip_prefix = \"windows-targets-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-targets-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-targets-0.53.5\",\n sha256 = \"4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.53.5/download\"],\n strip_prefix = \"windows-targets-0.53.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-targets-0.53.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_gnullvm-0.42.2\",\n sha256 = \"597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.42.2/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_gnullvm-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_gnullvm-0.48.5\",\n sha256 = \"2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.48.5/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_gnullvm-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_gnullvm-0.52.6\",\n sha256 = \"32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_gnullvm-0.53.1\",\n sha256 = \"a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.53.1/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_gnullvm-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_msvc-0.42.2\",\n sha256 = \"e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.42.2/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_msvc-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_msvc-0.48.5\",\n sha256 = \"dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.48.5/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_msvc-0.52.6\",\n sha256 = \"09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_msvc-0.53.1\",\n sha256 = \"b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.53.1/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_msvc-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_gnu-0.42.2\",\n sha256 = \"c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.42.2/download\"],\n strip_prefix = \"windows_i686_gnu-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_gnu-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_gnu-0.48.5\",\n sha256 = \"a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.48.5/download\"],\n strip_prefix = \"windows_i686_gnu-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_gnu-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_gnu-0.52.6\",\n sha256 = \"8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnu-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_gnu-0.53.1\",\n sha256 = \"960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.53.1/download\"],\n strip_prefix = \"windows_i686_gnu-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_gnu-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_gnullvm-0.52.6\",\n sha256 = \"0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnullvm-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_gnullvm-0.53.1\",\n sha256 = \"fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnullvm/0.53.1/download\"],\n strip_prefix = \"windows_i686_gnullvm-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_gnullvm-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_msvc-0.42.2\",\n sha256 = \"44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.42.2/download\"],\n strip_prefix = \"windows_i686_msvc-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_msvc-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_msvc-0.48.5\",\n sha256 = \"8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.48.5/download\"],\n strip_prefix = \"windows_i686_msvc-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_msvc-0.52.6\",\n sha256 = \"240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.52.6/download\"],\n strip_prefix = \"windows_i686_msvc-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_msvc-0.53.1\",\n sha256 = \"1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.53.1/download\"],\n strip_prefix = \"windows_i686_msvc-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_msvc-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnu-0.42.2\",\n sha256 = \"8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.42.2/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnu-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnu-0.48.5\",\n sha256 = \"53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.48.5/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnu-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnu-0.52.6\",\n sha256 = \"147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnu-0.53.1\",\n sha256 = \"9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.53.1/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnu-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnullvm-0.42.2\",\n sha256 = \"26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.42.2/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnullvm-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnullvm-0.48.5\",\n sha256 = \"0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.48.5/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnullvm-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnullvm-0.52.6\",\n sha256 = \"24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnullvm-0.53.1\",\n sha256 = \"0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.53.1/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnullvm-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_msvc-0.42.2\",\n sha256 = \"9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.42.2/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_msvc-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_msvc-0.48.5\",\n sha256 = \"ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.48.5/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_msvc-0.52.6\",\n sha256 = \"589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_msvc-0.53.1\",\n sha256 = \"d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.53.1/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_msvc-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__winreg-0.50.0\",\n sha256 = \"524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winreg/0.50.0/download\"],\n strip_prefix = \"winreg-0.50.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.winreg-0.50.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wit-bindgen-0.51.0\",\n sha256 = \"d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-bindgen/0.51.0/download\"],\n strip_prefix = \"wit-bindgen-0.51.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wit-bindgen-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wit-bindgen-core-0.51.0\",\n sha256 = \"ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-bindgen-core/0.51.0/download\"],\n strip_prefix = \"wit-bindgen-core-0.51.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wit-bindgen-core-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wit-bindgen-rust-0.51.0\",\n sha256 = \"b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-bindgen-rust/0.51.0/download\"],\n strip_prefix = \"wit-bindgen-rust-0.51.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wit-bindgen-rust-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wit-bindgen-rust-macro-0.51.0\",\n sha256 = \"0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-bindgen-rust-macro/0.51.0/download\"],\n strip_prefix = \"wit-bindgen-rust-macro-0.51.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wit-bindgen-rust-macro-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wit-component-0.244.0\",\n sha256 = \"9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-component/0.244.0/download\"],\n strip_prefix = \"wit-component-0.244.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wit-component-0.244.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wit-parser-0.244.0\",\n sha256 = \"ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-parser/0.244.0/download\"],\n strip_prefix = \"wit-parser-0.244.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wit-parser-0.244.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__writeable-0.6.2\",\n sha256 = \"9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/writeable/0.6.2/download\"],\n strip_prefix = \"writeable-0.6.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.writeable-0.6.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__x509-parser-0.18.1\",\n sha256 = \"d43b0f71ce057da06bc0851b23ee24f3f86190b07203dd8f567d0b706a185202\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/x509-parser/0.18.1/download\"],\n strip_prefix = \"x509-parser-0.18.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.x509-parser-0.18.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__xxhash-rust-0.8.16\",\n sha256 = \"4d93c89cdc2d3a63c3ec48ffe926931bdc069eafa8e4402fe6d8f790c9d1e576\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/xxhash-rust/0.8.16/download\"],\n strip_prefix = \"xxhash-rust-0.8.16\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.xxhash-rust-0.8.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__yasna-0.5.2\",\n sha256 = \"e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/yasna/0.5.2/download\"],\n strip_prefix = \"yasna-0.5.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.yasna-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__yoke-0.8.1\",\n sha256 = \"72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/yoke/0.8.1/download\"],\n strip_prefix = \"yoke-0.8.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.yoke-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__yoke-derive-0.8.1\",\n sha256 = \"b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/yoke-derive/0.8.1/download\"],\n strip_prefix = \"yoke-derive-0.8.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.yoke-derive-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.zerocopy-0.8.39.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.zerocopy-derive-0.8.39.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__zerofrom-0.1.6\",\n sha256 = \"50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerofrom/0.1.6/download\"],\n strip_prefix = \"zerofrom-0.1.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.zerofrom-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__zerofrom-derive-0.1.6\",\n sha256 = \"d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerofrom-derive/0.1.6/download\"],\n strip_prefix = \"zerofrom-derive-0.1.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.zerofrom-derive-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.zeroize-1.8.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__zerotrie-0.2.3\",\n sha256 = \"2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerotrie/0.2.3/download\"],\n strip_prefix = \"zerotrie-0.2.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.zerotrie-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__zerovec-0.11.5\",\n sha256 = \"6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerovec/0.11.5/download\"],\n strip_prefix = \"zerovec-0.11.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.zerovec-0.11.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__zerovec-derive-0.11.2\",\n sha256 = \"eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerovec-derive/0.11.2/download\"],\n strip_prefix = \"zerovec-derive-0.11.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.zerovec-derive-0.11.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__zmij-1.0.21\",\n sha256 = \"b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zmij/1.0.21/download\"],\n strip_prefix = \"zmij-1.0.21\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.zmij-1.0.21.bazel\"),\n )\n\n return [\n struct(repo=\"stargate_crates__anyhow-1.0.103\", is_dev_dep = False),\n struct(repo=\"stargate_crates__async-stream-0.3.6\", is_dev_dep = False),\n struct(repo=\"stargate_crates__async-trait-0.1.89\", is_dev_dep = False),\n struct(repo=\"stargate_crates__axum-0.8.9\", is_dev_dep = False),\n struct(repo=\"stargate_crates__built-0.8.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__bytes-1.12.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__capnp-0.23.2\", is_dev_dep = False),\n struct(repo=\"stargate_crates__capnp-futures-0.23.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__capnpc-0.23.3\", is_dev_dep = False),\n struct(repo=\"stargate_crates__clap-4.6.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__flume-0.12.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__futures-0.3.32\", is_dev_dep = False),\n struct(repo=\"stargate_crates__git2-0.20.4\", is_dev_dep = False),\n struct(repo=\"stargate_crates__h3-0.0.8\", is_dev_dep = False),\n struct(repo=\"stargate_crates__h3-quinn-0.0.10\", is_dev_dep = False),\n struct(repo=\"stargate_crates__hickory-resolver-0.24.4\", is_dev_dep = False),\n struct(repo=\"stargate_crates__http-1.4.2\", is_dev_dep = False),\n struct(repo=\"stargate_crates__httpdate-1.0.3\", is_dev_dep = False),\n struct(repo=\"stargate_crates__indexmap-2.14.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__k8s-openapi-0.27.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__kube-3.1.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__memchr-2.8.3\", is_dev_dep = False),\n struct(repo=\"stargate_crates__moka-0.12.15\", is_dev_dep = False),\n struct(repo=\"stargate_crates__opentelemetry-0.32.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__opentelemetry-http-0.32.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__opentelemetry-otlp-0.32.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__opentelemetry_sdk-0.32.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__parking_lot-0.12.5\", is_dev_dep = False),\n struct(repo=\"stargate_crates__prometheus-0.14.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__prost-0.14.4\", is_dev_dep = False),\n struct(repo=\"stargate_crates__quinn-0.11.11\", is_dev_dep = False),\n struct(repo=\"stargate_crates__rand-0.9.3\", is_dev_dep = False),\n struct(repo=\"stargate_crates__rcgen-0.13.2\", is_dev_dep = False),\n struct(repo=\"stargate_crates__reqwest-0.13.4\", is_dev_dep = False),\n struct(repo=\"stargate_crates__rustls-0.23.41\", is_dev_dep = False),\n struct(repo=\"stargate_crates__rustls-pemfile-2.2.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__rustls-webpki-0.103.9\", is_dev_dep = False),\n struct(repo=\"stargate_crates__scc-3.7.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__serde-1.0.228\", is_dev_dep = False),\n struct(repo=\"stargate_crates__serde_json-1.0.150\", is_dev_dep = False),\n struct(repo=\"stargate_crates__serde_yaml_ng-0.10.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__sfv-0.15.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__sonic-rs-0.5.8\", is_dev_dep = False),\n struct(repo=\"stargate_crates__sse-core-0.2.3\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tempfile-3.27.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__thiserror-2.0.18\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tokio-1.52.3\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tokio-stream-0.1.18\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tokio-util-0.7.18\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tonic-0.14.6\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tonic-prost-0.14.6\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tonic-prost-build-0.14.6\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tower-0.5.3\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tracing-0.1.44\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tracing-opentelemetry-0.33.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tracing-subscriber-0.3.23\", is_dev_dep = False),\n struct(repo=\"stargate_crates__url-2.5.8\", is_dev_dep = False),\n struct(repo=\"stargate_crates__uuid-1.22.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__x509-parser-0.18.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__xxhash-rust-0.8.16\", is_dev_dep = False),\n struct(repo = \"stargate_crates__criterion-0.5.1\", is_dev_dep = True),\n struct(repo = \"stargate_crates__hyper-util-0.1.20\", is_dev_dep = True),\n struct(repo = \"stargate_crates__proptest-1.11.0\", is_dev_dep = True),\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 'nvcf'\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 \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"async-stream\": Label(\"@stargate_crates//:async-stream-0.3.6\"),\n \"axum\": Label(\"@stargate_crates//:axum-0.8.9\"),\n \"clap\": Label(\"@stargate_crates//:clap-4.6.1\"),\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n \"tracing-subscriber\": Label(\"@stargate_crates//:tracing-subscriber-0.3.23\"),\n },\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n _COMMON_CONDITION: {\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n },\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"clap\": Label(\"@stargate_crates//:clap-4.6.1\"),\n \"flume\": Label(\"@stargate_crates//:flume-0.12.0\"),\n \"reqwest\": Label(\"@stargate_crates//:reqwest-0.13.4\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"rustls-pemfile\": Label(\"@stargate_crates//:rustls-pemfile-2.2.0\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n },\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"async-stream\": Label(\"@stargate_crates//:async-stream-0.3.6\"),\n \"axum\": Label(\"@stargate_crates//:axum-0.8.9\"),\n \"bytes\": Label(\"@stargate_crates//:bytes-1.12.1\"),\n \"flume\": Label(\"@stargate_crates//:flume-0.12.0\"),\n \"futures\": Label(\"@stargate_crates//:futures-0.3.32\"),\n \"h3\": Label(\"@stargate_crates//:h3-0.0.8\"),\n \"h3-quinn\": Label(\"@stargate_crates//:h3-quinn-0.0.10\"),\n \"http\": Label(\"@stargate_crates//:http-1.4.2\"),\n \"httpdate\": Label(\"@stargate_crates//:httpdate-1.0.3\"),\n \"indexmap\": Label(\"@stargate_crates//:indexmap-2.14.0\"),\n \"memchr\": Label(\"@stargate_crates//:memchr-2.8.3\"),\n \"opentelemetry\": Label(\"@stargate_crates//:opentelemetry-0.32.0\"),\n \"parking_lot\": Label(\"@stargate_crates//:parking_lot-0.12.5\"),\n \"prometheus\": Label(\"@stargate_crates//:prometheus-0.14.0\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"reqwest\": Label(\"@stargate_crates//:reqwest-0.13.4\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n \"sonic-rs\": Label(\"@stargate_crates//:sonic-rs-0.5.8\"),\n \"thiserror\": Label(\"@stargate_crates//:thiserror-2.0.18\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tokio-stream\": Label(\"@stargate_crates//:tokio-stream-0.1.18\"),\n \"tokio-util\": Label(\"@stargate_crates//:tokio-util-0.7.18\"),\n \"tonic\": Label(\"@stargate_crates//:tonic-0.14.6\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n \"tracing-opentelemetry\": Label(\"@stargate_crates//:tracing-opentelemetry-0.33.0\"),\n \"url\": Label(\"@stargate_crates//:url-2.5.8\"),\n \"uuid\": Label(\"@stargate_crates//:uuid-1.22.0\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"async-stream\": Label(\"@stargate_crates//:async-stream-0.3.6\"),\n \"axum\": Label(\"@stargate_crates//:axum-0.8.9\"),\n \"bytes\": Label(\"@stargate_crates//:bytes-1.12.1\"),\n \"clap\": Label(\"@stargate_crates//:clap-4.6.1\"),\n \"flume\": Label(\"@stargate_crates//:flume-0.12.0\"),\n \"futures\": Label(\"@stargate_crates//:futures-0.3.32\"),\n \"h3\": Label(\"@stargate_crates//:h3-0.0.8\"),\n \"h3-quinn\": Label(\"@stargate_crates//:h3-quinn-0.0.10\"),\n \"hickory-resolver\": Label(\"@stargate_crates//:hickory-resolver-0.24.4\"),\n \"http\": Label(\"@stargate_crates//:http-1.4.2\"),\n \"moka\": Label(\"@stargate_crates//:moka-0.12.15\"),\n \"opentelemetry\": Label(\"@stargate_crates//:opentelemetry-0.32.0\"),\n \"parking_lot\": Label(\"@stargate_crates//:parking_lot-0.12.5\"),\n \"prometheus\": Label(\"@stargate_crates//:prometheus-0.14.0\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"rand\": Label(\"@stargate_crates//:rand-0.9.3\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"scc\": Label(\"@stargate_crates//:scc-3.7.1\"),\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n \"sfv\": Label(\"@stargate_crates//:sfv-0.15.0\"),\n \"thiserror\": Label(\"@stargate_crates//:thiserror-2.0.18\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tokio-stream\": Label(\"@stargate_crates//:tokio-stream-0.1.18\"),\n \"tokio-util\": Label(\"@stargate_crates//:tokio-util-0.7.18\"),\n \"tonic\": Label(\"@stargate_crates//:tonic-0.14.6\"),\n \"tower\": Label(\"@stargate_crates//:tower-0.5.3\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n \"tracing-opentelemetry\": Label(\"@stargate_crates//:tracing-opentelemetry-0.33.0\"),\n \"tracing-subscriber\": Label(\"@stargate_crates//:tracing-subscriber-0.3.23\"),\n \"url\": Label(\"@stargate_crates//:url-2.5.8\"),\n \"xxhash-rust\": Label(\"@stargate_crates//:xxhash-rust-0.8.16\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"reqwest\": Label(\"@stargate_crates//:reqwest-0.13.4\"),\n \"sonic-rs\": Label(\"@stargate_crates//:sonic-rs-0.5.8\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"bytes\": Label(\"@stargate_crates//:bytes-1.12.1\"),\n \"clap\": Label(\"@stargate_crates//:clap-4.6.1\"),\n \"futures\": Label(\"@stargate_crates//:futures-0.3.32\"),\n \"h3\": Label(\"@stargate_crates//:h3-0.0.8\"),\n \"h3-quinn\": Label(\"@stargate_crates//:h3-quinn-0.0.10\"),\n \"http\": Label(\"@stargate_crates//:http-1.4.2\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"rand\": Label(\"@stargate_crates//:rand-0.9.3\"),\n \"reqwest\": Label(\"@stargate_crates//:reqwest-0.13.4\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n \"serde_yaml_ng\": Label(\"@stargate_crates//:serde_yaml_ng-0.10.0\"),\n \"sse-core\": Label(\"@stargate_crates//:sse-core-0.2.3\"),\n \"tempfile\": Label(\"@stargate_crates//:tempfile-3.27.0\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"futures\": Label(\"@stargate_crates//:futures-0.3.32\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"async-stream\": Label(\"@stargate_crates//:async-stream-0.3.6\"),\n \"axum\": Label(\"@stargate_crates//:axum-0.8.9\"),\n \"bytes\": Label(\"@stargate_crates//:bytes-1.12.1\"),\n \"clap\": Label(\"@stargate_crates//:clap-4.6.1\"),\n \"futures\": Label(\"@stargate_crates//:futures-0.3.32\"),\n \"h3\": Label(\"@stargate_crates//:h3-0.0.8\"),\n \"h3-quinn\": Label(\"@stargate_crates//:h3-quinn-0.0.10\"),\n \"http\": Label(\"@stargate_crates//:http-1.4.2\"),\n \"k8s-openapi\": Label(\"@stargate_crates//:k8s-openapi-0.27.1\"),\n \"kube\": Label(\"@stargate_crates//:kube-3.1.0\"),\n \"prometheus\": Label(\"@stargate_crates//:prometheus-0.14.0\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tokio-stream\": Label(\"@stargate_crates//:tokio-stream-0.1.18\"),\n \"tokio-util\": Label(\"@stargate_crates//:tokio-util-0.7.18\"),\n \"tonic\": Label(\"@stargate_crates//:tonic-0.14.6\"),\n \"tower\": Label(\"@stargate_crates//:tower-0.5.3\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n \"tracing-subscriber\": Label(\"@stargate_crates//:tracing-subscriber-0.3.23\"),\n },\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n _COMMON_CONDITION: {\n \"prost\": Label(\"@stargate_crates//:prost-0.14.4\"),\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n \"tonic\": Label(\"@stargate_crates//:tonic-0.14.6\"),\n \"tonic-prost\": Label(\"@stargate_crates//:tonic-prost-0.14.6\"),\n },\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n _COMMON_CONDITION: {\n \"bytes\": Label(\"@stargate_crates//:bytes-1.12.1\"),\n \"capnp\": Label(\"@stargate_crates//:capnp-0.23.2\"),\n \"capnp-futures\": Label(\"@stargate_crates//:capnp-futures-0.23.1\"),\n \"http\": Label(\"@stargate_crates//:http-1.4.2\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n \"thiserror\": Label(\"@stargate_crates//:thiserror-2.0.18\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-routing-sim\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"clap\": Label(\"@stargate_crates//:clap-4.6.1\"),\n \"rand\": Label(\"@stargate_crates//:rand-0.9.3\"),\n \"serde\": Label(\"@stargate_crates//:serde-1.0.228\"),\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"flume\": Label(\"@stargate_crates//:flume-0.12.0\"),\n \"futures\": Label(\"@stargate_crates//:futures-0.3.32\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tokio-util\": Label(\"@stargate_crates//:tokio-util-0.7.18\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"http\": Label(\"@stargate_crates//:http-1.4.2\"),\n \"opentelemetry\": Label(\"@stargate_crates//:opentelemetry-0.32.0\"),\n \"opentelemetry-http\": Label(\"@stargate_crates//:opentelemetry-http-0.32.0\"),\n \"opentelemetry-otlp\": Label(\"@stargate_crates//:opentelemetry-otlp-0.32.0\"),\n \"opentelemetry_sdk\": Label(\"@stargate_crates//:opentelemetry_sdk-0.32.1\"),\n \"tonic\": Label(\"@stargate_crates//:tonic-0.14.6\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n \"tracing-opentelemetry\": Label(\"@stargate_crates//:tracing-opentelemetry-0.33.0\"),\n \"tracing-subscriber\": Label(\"@stargate_crates//:tracing-subscriber-0.3.23\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@stargate_crates//:anyhow-1.0.103\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"rcgen\": Label(\"@stargate_crates//:rcgen-0.13.2\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"rustls-pemfile\": Label(\"@stargate_crates//:rustls-pemfile-2.2.0\"),\n \"rustls-webpki\": Label(\"@stargate_crates//:rustls-webpki-0.103.9\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n \"tokio-util\": Label(\"@stargate_crates//:tokio-util-0.7.18\"),\n \"tracing\": Label(\"@stargate_crates//:tracing-0.1.44\"),\n \"x509-parser\": Label(\"@stargate_crates//:x509-parser-0.18.1\"),\n },\n },\n}\n\n\n_NORMAL_ALIASES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-routing-sim\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n _COMMON_CONDITION: {\n \"axum\": Label(\"@stargate_crates//:axum-0.8.9\"),\n \"quinn\": Label(\"@stargate_crates//:quinn-0.11.11\"),\n \"rcgen\": Label(\"@stargate_crates//:rcgen-0.13.2\"),\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n \"tempfile\": Label(\"@stargate_crates//:tempfile-3.27.0\"),\n \"tokio-stream\": Label(\"@stargate_crates//:tokio-stream-0.1.18\"),\n \"tonic\": Label(\"@stargate_crates//:tonic-0.14.6\"),\n },\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n _COMMON_CONDITION: {\n \"criterion\": Label(\"@stargate_crates//:criterion-0.5.1\"),\n \"opentelemetry_sdk\": Label(\"@stargate_crates//:opentelemetry_sdk-0.32.1\"),\n \"rcgen\": Label(\"@stargate_crates//:rcgen-0.13.2\"),\n \"tempfile\": Label(\"@stargate_crates//:tempfile-3.27.0\"),\n \"tower\": Label(\"@stargate_crates//:tower-0.5.3\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n \"hyper-util\": Label(\"@stargate_crates//:hyper-util-0.1.20\"),\n \"opentelemetry_sdk\": Label(\"@stargate_crates//:opentelemetry_sdk-0.32.1\"),\n \"prost\": Label(\"@stargate_crates//:prost-0.14.4\"),\n \"reqwest\": Label(\"@stargate_crates//:reqwest-0.13.4\"),\n \"serde_yaml_ng\": Label(\"@stargate_crates//:serde_yaml_ng-0.10.0\"),\n \"tempfile\": Label(\"@stargate_crates//:tempfile-3.27.0\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n _COMMON_CONDITION: {\n \"axum\": Label(\"@stargate_crates//:axum-0.8.9\"),\n \"tempfile\": Label(\"@stargate_crates//:tempfile-3.27.0\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n _COMMON_CONDITION: {\n \"http\": Label(\"@stargate_crates//:http-1.4.2\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"rustls-pemfile\": Label(\"@stargate_crates//:rustls-pemfile-2.2.0\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n _COMMON_CONDITION: {\n \"hyper-util\": Label(\"@stargate_crates//:hyper-util-0.1.20\"),\n \"rustls-pemfile\": Label(\"@stargate_crates//:rustls-pemfile-2.2.0\"),\n \"tempfile\": Label(\"@stargate_crates//:tempfile-3.27.0\"),\n },\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n _COMMON_CONDITION: {\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n },\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n _COMMON_CONDITION: {\n \"proptest\": Label(\"@stargate_crates//:proptest-1.11.0\"),\n \"rustls\": Label(\"@stargate_crates//:rustls-0.23.41\"),\n \"rustls-pemfile\": Label(\"@stargate_crates//:rustls-pemfile-2.2.0\"),\n \"serde_json\": Label(\"@stargate_crates//:serde_json-1.0.150\"),\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-routing-sim\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n _COMMON_CONDITION: {\n \"tokio\": Label(\"@stargate_crates//:tokio-1.52.3\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n _COMMON_CONDITION: {\n \"tempfile\": Label(\"@stargate_crates//:tempfile-3.27.0\"),\n },\n },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-routing-sim\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n \"async-trait\": Label(\"@stargate_crates//:async-trait-0.1.89\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-routing-sim\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n },\n}\n\n\n_PROC_MACRO_ALIASES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-routing-sim\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-routing-sim\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-routing-sim\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_BUILD_DEPENDENCIES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n \"built\": Label(\"@stargate_crates//:built-0.8.1\"),\n \"git2\": Label(\"@stargate_crates//:git2-0.20.4\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n _COMMON_CONDITION: {\n \"tonic-prost-build\": Label(\"@stargate_crates//:tonic-prost-build-0.14.6\"),\n },\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n _COMMON_CONDITION: {\n \"capnpc\": Label(\"@stargate_crates//:capnpc-0.23.3\"),\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-routing-sim\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n },\n}\n\n\n_BUILD_ALIASES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n _COMMON_CONDITION: {\n },\n },\n \"src/libraries/rust/stargate/crates/stargate-routing-sim\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-routing-sim\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n \"src/libraries/rust/stargate/crates/mock-dynamo\": {\n },\n \"src/libraries/rust/stargate/crates/mock-engine\": {\n },\n \"src/libraries/rust/stargate/crates/pylon\": {\n },\n \"src/libraries/rust/stargate/crates/pylon-lib\": {\n },\n \"src/libraries/rust/stargate/crates/stargate\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-auth\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-bench\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-forwarding\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-k8s-router\": {\n },\n \"src/libraries/rust/stargate/crates/proto\": {\n },\n \"src/libraries/rust/stargate/crates/protocol\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-routing-sim\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-runtime\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-telemetry\": {\n },\n \"src/libraries/rust/stargate/crates/stargate-tls\": {\n },\n}\n\n\n_CONDITIONS = {\n \"aarch64-apple-darwin\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n \"aarch64-linux-android\": [],\n \"aarch64-pc-windows-gnullvm\": [],\n \"aarch64-pc-windows-msvc\": [],\n \"aarch64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n \"aarch64-uwp-windows-msvc\": [],\n \"cfg(all(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), target_os = \\\"windows\\\"))\": [],\n \"cfg(all(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), target_vendor = \\\"apple\\\", any(target_os = \\\"ios\\\", target_os = \\\"macos\\\", target_os = \\\"tvos\\\", target_os = \\\"visionos\\\", target_os = \\\"watchos\\\")))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n \"cfg(all(any(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), all(target_arch = \\\"arm\\\", target_endian = \\\"little\\\")), any(target_os = \\\"android\\\", target_os = \\\"linux\\\")))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n \"cfg(all(any(target_arch = \\\"x86_64\\\", target_arch = \\\"arm64ec\\\"), target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(any(target_os = \\\"linux\\\", target_os = \\\"android\\\"), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips32r6\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64r6\\\"), target_arch = \\\"x86\\\", all(target_arch = \\\"x86_64\\\", target_pointer_width = \\\"64\\\")))))))\": [],\n \"cfg(all(any(target_os = \\\"linux\\\", target_os = \\\"android\\\"), not(any(all(target_os = \\\"linux\\\", target_env = \\\"\\\"), getrandom_backend = \\\"custom\\\", getrandom_backend = \\\"linux_raw\\\", getrandom_backend = \\\"rdrand\\\", getrandom_backend = \\\"rndr\\\"))))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(not(rustix_use_libc), not(miri), target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips32r6\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64r6\\\"), target_arch = \\\"x86\\\", all(target_arch = \\\"x86_64\\\", target_pointer_width = \\\"64\\\"))))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips32r6\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64r6\\\"), target_arch = \\\"x86\\\", all(target_arch = \\\"x86_64\\\", target_pointer_width = \\\"64\\\")))))))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\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(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\")))\": [],\n \"cfg(all(target_arch = \\\"wasm32\\\", not(target_os = \\\"wasi\\\")))\": [],\n \"cfg(all(target_arch = \\\"wasm32\\\", target_os = \\\"wasi\\\", target_env = \\\"p2\\\"))\": [],\n \"cfg(all(target_arch = \\\"wasm32\\\", target_os = \\\"wasi\\\", target_env = \\\"p3\\\"))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86_64\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(target_arch = \\\"x86_64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_family = \\\"wasm\\\", target_os = \\\"unknown\\\"))\": [],\n \"cfg(all(target_os = \\\"uefi\\\", getrandom_backend = \\\"efi_rng\\\"))\": [],\n \"cfg(all(unix, not(target_os = \\\"android\\\"), not(target_vendor = \\\"apple\\\"), not(target_arch = \\\"wasm32\\\")))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(unix, not(target_os = \\\"macos\\\")))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\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(any(target_os = \\\"dragonfly\\\", target_os = \\\"freebsd\\\", target_os = \\\"hurd\\\", target_os = \\\"illumos\\\", target_os = \\\"cygwin\\\", all(target_os = \\\"horizon\\\", target_arch = \\\"arm\\\")))\": [],\n \"cfg(any(target_os = \\\"haiku\\\", target_os = \\\"redox\\\", target_os = \\\"nto\\\", target_os = \\\"aix\\\"))\": [],\n \"cfg(any(target_os = \\\"ios\\\", target_os = \\\"visionos\\\", target_os = \\\"watchos\\\", target_os = \\\"tvos\\\"))\": [],\n \"cfg(any(target_os = \\\"macos\\\", target_os = \\\"openbsd\\\", target_os = \\\"vita\\\", target_os = \\\"emscripten\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n \"cfg(any(target_vendor = \\\"apple\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n \"cfg(any(unix, target_os = \\\"hermit\\\", target_os = \\\"wasi\\\"))\": [\"@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(any(unix, target_os = \\\"redox\\\"))\": [\"@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(any(unix, target_os = \\\"wasi\\\"))\": [\"@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(not(all(target_arch = \\\"arm\\\", target_os = \\\"none\\\")))\": [\"@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(not(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\"))))\": [\"@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(not(all(target_family = \\\"wasm\\\", target_os = \\\"unknown\\\")))\": [\"@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(not(target_has_atomic = \\\"64\\\"))\": [],\n \"cfg(not(target_has_atomic = \\\"ptr\\\"))\": [],\n \"cfg(not(windows_raw_dylib))\": [\"@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(target_arch = \\\"spirv\\\")\": [],\n \"cfg(target_arch = \\\"wasm32\\\")\": [],\n \"cfg(target_feature = \\\"atomics\\\")\": [],\n \"cfg(target_os = \\\"android\\\")\": [],\n \"cfg(target_os = \\\"hermit\\\")\": [],\n \"cfg(target_os = \\\"macos\\\")\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n \"cfg(target_os = \\\"netbsd\\\")\": [],\n \"cfg(target_os = \\\"redox\\\")\": [],\n \"cfg(target_os = \\\"solaris\\\")\": [],\n \"cfg(target_os = \\\"vxworks\\\")\": [],\n \"cfg(target_os = \\\"wasi\\\")\": [],\n \"cfg(target_os = \\\"windows\\\")\": [],\n \"cfg(unix)\": [\"@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 \"cfg(windows_raw_dylib)\": [],\n \"i686-pc-windows-gnu\": [],\n \"i686-pc-windows-gnullvm\": [],\n \"i686-pc-windows-msvc\": [],\n \"i686-uwp-windows-gnu\": [],\n \"i686-uwp-windows-msvc\": [],\n \"x86_64-apple-darwin\": [\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n \"x86_64-pc-windows-gnu\": [],\n \"x86_64-pc-windows-gnullvm\": [],\n \"x86_64-pc-windows-msvc\": [],\n \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"x86_64-uwp-windows-gnu\": [],\n \"x86_64-uwp-windows-msvc\": [],\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 = \"stargate_crates__ahash-0.8.12\",\n sha256 = \"5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ahash/0.8.12/download\"],\n strip_prefix = \"ahash-0.8.12\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ahash-0.8.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__aho-corasick-1.1.4\",\n sha256 = \"ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aho-corasick/1.1.4/download\"],\n strip_prefix = \"aho-corasick-1.1.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.aho-corasick-1.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__allocator-api2-0.2.21\",\n sha256 = \"683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/allocator-api2/0.2.21/download\"],\n strip_prefix = \"allocator-api2-0.2.21\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.allocator-api2-0.2.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__anes-0.1.6\",\n sha256 = \"4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anes/0.1.6/download\"],\n strip_prefix = \"anes-0.1.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.anes-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__anstream-1.0.0\",\n sha256 = \"824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstream/1.0.0/download\"],\n strip_prefix = \"anstream-1.0.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.anstream-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.anstyle-1.0.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__anstyle-parse-1.0.0\",\n sha256 = \"52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-parse/1.0.0/download\"],\n strip_prefix = \"anstyle-parse-1.0.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.anstyle-parse-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.anstyle-query-1.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.anstyle-wincon-3.0.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__anyhow-1.0.103\",\n sha256 = \"2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anyhow/1.0.103/download\"],\n strip_prefix = \"anyhow-1.0.103\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.anyhow-1.0.103.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__asn1-rs-0.7.2\",\n sha256 = \"b7f43a50ac4fdca5df8e885c21b835997f0a1cdee65494a6847694a98652d9d8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/asn1-rs/0.7.2/download\"],\n strip_prefix = \"asn1-rs-0.7.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.asn1-rs-0.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__asn1-rs-derive-0.6.0\",\n sha256 = \"3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/asn1-rs-derive/0.6.0/download\"],\n strip_prefix = \"asn1-rs-derive-0.6.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.asn1-rs-derive-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__asn1-rs-impl-0.2.0\",\n sha256 = \"7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/asn1-rs-impl/0.2.0/download\"],\n strip_prefix = \"asn1-rs-impl-0.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.asn1-rs-impl-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__async-broadcast-0.7.2\",\n sha256 = \"435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-broadcast/0.7.2/download\"],\n strip_prefix = \"async-broadcast-0.7.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.async-broadcast-0.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__async-stream-0.3.6\",\n sha256 = \"0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-stream/0.3.6/download\"],\n strip_prefix = \"async-stream-0.3.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.async-stream-0.3.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__async-stream-impl-0.3.6\",\n sha256 = \"c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-stream-impl/0.3.6/download\"],\n strip_prefix = \"async-stream-impl-0.3.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.async-stream-impl-0.3.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.async-trait-0.1.89.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__atomic-waker-1.1.2\",\n sha256 = \"1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/atomic-waker/1.1.2/download\"],\n strip_prefix = \"atomic-waker-1.1.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.atomic-waker-1.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__autocfg-1.5.0\",\n sha256 = \"c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/autocfg/1.5.0/download\"],\n strip_prefix = \"autocfg-1.5.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.autocfg-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__aws-lc-rs-1.16.0\",\n sha256 = \"d9a7b350e3bb1767102698302bc37256cbd48422809984b98d292c40e2579aa9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-lc-rs/1.16.0/download\"],\n strip_prefix = \"aws-lc-rs-1.16.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.aws-lc-rs-1.16.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__aws-lc-sys-0.37.1\",\n sha256 = \"b092fe214090261288111db7a2b2c2118e5a7f30dc2569f1732c4069a6840549\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-lc-sys/0.37.1/download\"],\n strip_prefix = \"aws-lc-sys-0.37.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.aws-lc-sys-0.37.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__axum-0.8.9\",\n sha256 = \"31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/axum/0.8.9/download\"],\n strip_prefix = \"axum-0.8.9\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.axum-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__axum-core-0.5.6\",\n sha256 = \"08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/axum-core/0.5.6/download\"],\n strip_prefix = \"axum-core-0.5.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.axum-core-0.5.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__axum-macros-0.5.1\",\n sha256 = \"7aa268c23bfbbd2c4363b9cd302a4f504fb2a9dfe7e3451d66f35dd392e20aca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/axum-macros/0.5.1/download\"],\n strip_prefix = \"axum-macros-0.5.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.axum-macros-0.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__backon-1.6.0\",\n sha256 = \"cffb0e931875b666fc4fcb20fee52e9bbd1ef836fd9e9e04ec21555f9f85f7ef\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/backon/1.6.0/download\"],\n strip_prefix = \"backon-1.6.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.backon-1.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__base64-0.22.1\",\n sha256 = \"72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64/0.22.1/download\"],\n strip_prefix = \"base64-0.22.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.base64-0.22.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__bit-set-0.8.0\",\n sha256 = \"08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bit-set/0.8.0/download\"],\n strip_prefix = \"bit-set-0.8.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.bit-set-0.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__bit-vec-0.8.0\",\n sha256 = \"5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bit-vec/0.8.0/download\"],\n strip_prefix = \"bit-vec-0.8.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.bit-vec-0.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.bitflags-2.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.block-buffer-0.10.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__built-0.8.1\",\n sha256 = \"5c0e531d93d39c34eef561e929e8a7f86d77a5af08aac4f6d6e39976c51858e9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/built/0.8.1/download\"],\n strip_prefix = \"built-0.8.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.built-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__bumpalo-3.20.2\",\n sha256 = \"5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bumpalo/3.20.2/download\"],\n strip_prefix = \"bumpalo-3.20.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.bumpalo-3.20.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__bytes-1.12.1\",\n sha256 = \"fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bytes/1.12.1/download\"],\n strip_prefix = \"bytes-1.12.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.bytes-1.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__capnp-0.23.2\",\n sha256 = \"fa8c2ce958193219f203a6887788231a1aaa0b22ed012d67436ea3b87a9645c4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/capnp/0.23.2/download\"],\n strip_prefix = \"capnp-0.23.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.capnp-0.23.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__capnp-futures-0.23.1\",\n sha256 = \"2f0ac8177a7bee149f8cfeb2b6ae7c58da0b57913ff31ed6bec2fd725894ee67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/capnp-futures/0.23.1/download\"],\n strip_prefix = \"capnp-futures-0.23.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.capnp-futures-0.23.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__capnpc-0.23.3\",\n sha256 = \"ad416fa35bb240c41f2794ecf1a95a41885f16a03e51bba4cb6845ce7db4bab3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/capnpc/0.23.3/download\"],\n strip_prefix = \"capnpc-0.23.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.capnpc-0.23.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__cast-0.3.0\",\n sha256 = \"37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cast/0.3.0/download\"],\n strip_prefix = \"cast-0.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.cast-0.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__cc-1.2.56\",\n sha256 = \"aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cc/1.2.56/download\"],\n strip_prefix = \"cc-1.2.56\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.cc-1.2.56.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__cesu8-1.1.0\",\n sha256 = \"6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cesu8/1.1.0/download\"],\n strip_prefix = \"cesu8-1.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.cesu8-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.cfg-if-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__cfg_aliases-0.2.1\",\n sha256 = \"613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cfg_aliases/0.2.1/download\"],\n strip_prefix = \"cfg_aliases-0.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.cfg_aliases-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ciborium-0.2.2\",\n sha256 = \"42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ciborium/0.2.2/download\"],\n strip_prefix = \"ciborium-0.2.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ciborium-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ciborium-io-0.2.2\",\n sha256 = \"05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ciborium-io/0.2.2/download\"],\n strip_prefix = \"ciborium-io-0.2.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ciborium-io-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ciborium-ll-0.2.2\",\n sha256 = \"57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ciborium-ll/0.2.2/download\"],\n strip_prefix = \"ciborium-ll-0.2.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ciborium-ll-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__clap-4.6.1\",\n sha256 = \"1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap/4.6.1/download\"],\n strip_prefix = \"clap-4.6.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.clap-4.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__clap_builder-4.6.0\",\n sha256 = \"714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_builder/4.6.0/download\"],\n strip_prefix = \"clap_builder-4.6.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.clap_builder-4.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__clap_derive-4.6.1\",\n sha256 = \"f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_derive/4.6.1/download\"],\n strip_prefix = \"clap_derive-4.6.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.clap_derive-4.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.clap_lex-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__cmake-0.1.57\",\n sha256 = \"75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cmake/0.1.57/download\"],\n strip_prefix = \"cmake-0.1.57\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.cmake-0.1.57.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.colorchoice-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__combine-4.6.7\",\n sha256 = \"ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/combine/4.6.7/download\"],\n strip_prefix = \"combine-4.6.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.combine-4.6.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__concurrent-queue-2.5.0\",\n sha256 = \"4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/concurrent-queue/2.5.0/download\"],\n strip_prefix = \"concurrent-queue-2.5.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.concurrent-queue-2.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__core-foundation-0.10.1\",\n sha256 = \"b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/core-foundation/0.10.1/download\"],\n strip_prefix = \"core-foundation-0.10.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.core-foundation-0.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__core-foundation-sys-0.8.7\",\n sha256 = \"773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/core-foundation-sys/0.8.7/download\"],\n strip_prefix = \"core-foundation-sys-0.8.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.core-foundation-sys-0.8.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.cpufeatures-0.2.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__criterion-0.5.1\",\n sha256 = \"f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/criterion/0.5.1/download\"],\n strip_prefix = \"criterion-0.5.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.criterion-0.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__criterion-plot-0.5.0\",\n sha256 = \"6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/criterion-plot/0.5.0/download\"],\n strip_prefix = \"criterion-plot-0.5.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.criterion-plot-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__crossbeam-channel-0.5.17\",\n sha256 = \"98b0cc327b5bc766e7fda9c9260cc0fa81b43a8e240440422dff70788e3f9ef1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-channel/0.5.17/download\"],\n strip_prefix = \"crossbeam-channel-0.5.17\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.crossbeam-channel-0.5.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__crossbeam-deque-0.8.6\",\n sha256 = \"9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-deque/0.8.6/download\"],\n strip_prefix = \"crossbeam-deque-0.8.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.crossbeam-deque-0.8.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__crossbeam-epoch-0.9.18\",\n sha256 = \"5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-epoch/0.9.18/download\"],\n strip_prefix = \"crossbeam-epoch-0.9.18\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.crossbeam-epoch-0.9.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__crossbeam-utils-0.8.21\",\n sha256 = \"d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-utils/0.8.21/download\"],\n strip_prefix = \"crossbeam-utils-0.8.21\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.crossbeam-utils-0.8.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__crunchy-0.2.4\",\n sha256 = \"460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crunchy/0.2.4/download\"],\n strip_prefix = \"crunchy-0.2.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.crunchy-0.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.crypto-common-0.1.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__data-encoding-2.10.0\",\n sha256 = \"d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/data-encoding/2.10.0/download\"],\n strip_prefix = \"data-encoding-2.10.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.data-encoding-2.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__der-parser-10.0.0\",\n sha256 = \"07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/der-parser/10.0.0/download\"],\n strip_prefix = \"der-parser-10.0.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.der-parser-10.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__deranged-0.5.8\",\n sha256 = \"7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/deranged/0.5.8/download\"],\n strip_prefix = \"deranged-0.5.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.deranged-0.5.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__derive_more-2.1.1\",\n sha256 = \"d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_more/2.1.1/download\"],\n strip_prefix = \"derive_more-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.derive_more-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__derive_more-impl-2.1.1\",\n sha256 = \"799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_more-impl/2.1.1/download\"],\n strip_prefix = \"derive_more-impl-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.derive_more-impl-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.digest-0.10.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__displaydoc-0.2.5\",\n sha256 = \"97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/displaydoc/0.2.5/download\"],\n strip_prefix = \"displaydoc-0.2.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.displaydoc-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__dunce-1.0.5\",\n sha256 = \"92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dunce/1.0.5/download\"],\n strip_prefix = \"dunce-1.0.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.dunce-1.0.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__educe-0.6.0\",\n sha256 = \"1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/educe/0.6.0/download\"],\n strip_prefix = \"educe-0.6.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.educe-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__either-1.15.0\",\n sha256 = \"48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/either/1.15.0/download\"],\n strip_prefix = \"either-1.15.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.either-1.15.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__embedded-io-0.7.1\",\n sha256 = \"9eb1aa714776b75c7e67e1da744b81a129b3ff919c8712b5e1b32252c1f07cc7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/embedded-io/0.7.1/download\"],\n strip_prefix = \"embedded-io-0.7.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.embedded-io-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__enum-as-inner-0.6.1\",\n sha256 = \"a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/enum-as-inner/0.6.1/download\"],\n strip_prefix = \"enum-as-inner-0.6.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.enum-as-inner-0.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__enum-ordinalize-4.3.2\",\n sha256 = \"4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/enum-ordinalize/4.3.2/download\"],\n strip_prefix = \"enum-ordinalize-4.3.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.enum-ordinalize-4.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__enum-ordinalize-derive-4.3.2\",\n sha256 = \"8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/enum-ordinalize-derive/4.3.2/download\"],\n strip_prefix = \"enum-ordinalize-derive-4.3.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.enum-ordinalize-derive-4.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.equivalent-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__errno-0.3.14\",\n sha256 = \"39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/errno/0.3.14/download\"],\n strip_prefix = \"errno-0.3.14\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.errno-0.3.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__event-listener-5.4.1\",\n sha256 = \"e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/event-listener/5.4.1/download\"],\n strip_prefix = \"event-listener-5.4.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.event-listener-5.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__event-listener-strategy-0.5.4\",\n sha256 = \"8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/event-listener-strategy/0.5.4/download\"],\n strip_prefix = \"event-listener-strategy-0.5.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.event-listener-strategy-0.5.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__fastbloom-0.14.1\",\n sha256 = \"4e7f34442dbe69c60fe8eaf58a8cafff81a1f278816d8ab4db255b3bef4ac3c4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fastbloom/0.14.1/download\"],\n strip_prefix = \"fastbloom-0.14.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.fastbloom-0.14.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__fastrand-2.3.0\",\n sha256 = \"37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fastrand/2.3.0/download\"],\n strip_prefix = \"fastrand-2.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.fastrand-2.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__faststr-0.2.34\",\n sha256 = \"1ca7d44d22004409a61c393afb3369c8f7bb74abcae49fe249ee01dcc3002113\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/faststr/0.2.34/download\"],\n strip_prefix = \"faststr-0.2.34\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.faststr-0.2.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__find-msvc-tools-0.1.9\",\n sha256 = \"5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/find-msvc-tools/0.1.9/download\"],\n strip_prefix = \"find-msvc-tools-0.1.9\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.find-msvc-tools-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__fixedbitset-0.5.7\",\n sha256 = \"1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fixedbitset/0.5.7/download\"],\n strip_prefix = \"fixedbitset-0.5.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.fixedbitset-0.5.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__flume-0.12.0\",\n sha256 = \"5e139bc46ca777eb5efaf62df0ab8cc5fd400866427e56c68b22e414e53bd3be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/flume/0.12.0/download\"],\n strip_prefix = \"flume-0.12.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.flume-0.12.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__fnv-1.0.7\",\n sha256 = \"3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fnv/1.0.7/download\"],\n strip_prefix = \"fnv-1.0.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.fnv-1.0.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.foldhash-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__foldhash-0.2.0\",\n sha256 = \"77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/foldhash/0.2.0/download\"],\n strip_prefix = \"foldhash-0.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.foldhash-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__form_urlencoded-1.2.2\",\n sha256 = \"cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/form_urlencoded/1.2.2/download\"],\n strip_prefix = \"form_urlencoded-1.2.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.form_urlencoded-1.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__fs_extra-1.3.0\",\n sha256 = \"42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fs_extra/1.3.0/download\"],\n strip_prefix = \"fs_extra-1.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.fs_extra-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-0.3.32\",\n sha256 = \"8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures/0.3.32/download\"],\n strip_prefix = \"futures-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-channel-0.3.32\",\n sha256 = \"07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-channel/0.3.32/download\"],\n strip_prefix = \"futures-channel-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-channel-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-core-0.3.32\",\n sha256 = \"7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-core/0.3.32/download\"],\n strip_prefix = \"futures-core-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-core-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-executor-0.3.32\",\n sha256 = \"baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-executor/0.3.32/download\"],\n strip_prefix = \"futures-executor-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-executor-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-io-0.3.32\",\n sha256 = \"cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-io/0.3.32/download\"],\n strip_prefix = \"futures-io-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-io-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-macro-0.3.32\",\n sha256 = \"e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-macro/0.3.32/download\"],\n strip_prefix = \"futures-macro-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-macro-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-sink-0.3.32\",\n sha256 = \"c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-sink/0.3.32/download\"],\n strip_prefix = \"futures-sink-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-sink-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-task-0.3.32\",\n sha256 = \"037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-task/0.3.32/download\"],\n strip_prefix = \"futures-task-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-task-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__futures-util-0.3.32\",\n sha256 = \"389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-util/0.3.32/download\"],\n strip_prefix = \"futures-util-0.3.32\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.futures-util-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.generic-array-0.14.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__getrandom-0.2.17\",\n sha256 = \"ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.2.17/download\"],\n strip_prefix = \"getrandom-0.2.17\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.getrandom-0.2.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__getrandom-0.3.4\",\n sha256 = \"899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.3.4/download\"],\n strip_prefix = \"getrandom-0.3.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.getrandom-0.3.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__getrandom-0.4.1\",\n sha256 = \"139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.4.1/download\"],\n strip_prefix = \"getrandom-0.4.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.getrandom-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__git2-0.20.4\",\n sha256 = \"7b88256088d75a56f8ecfa070513a775dd9107f6530ef14919dac831af9cfe2b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/git2/0.20.4/download\"],\n strip_prefix = \"git2-0.20.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.git2-0.20.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__git2-0.21.0\",\n sha256 = \"ddddbf932745a6be37109b6112d3ee09696106f848449069d3a57bba937ab82e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/git2/0.21.0/download\"],\n strip_prefix = \"git2-0.21.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.git2-0.21.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__gloo-timers-0.3.0\",\n sha256 = \"bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/gloo-timers/0.3.0/download\"],\n strip_prefix = \"gloo-timers-0.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.gloo-timers-0.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__h2-0.4.13\",\n sha256 = \"2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/h2/0.4.13/download\"],\n strip_prefix = \"h2-0.4.13\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.h2-0.4.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__h3-0.0.8\",\n sha256 = \"10872b55cfb02a821b69dc7cf8dc6a71d6af25eb9a79662bec4a9d016056b3be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/h3/0.0.8/download\"],\n strip_prefix = \"h3-0.0.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.h3-0.0.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__h3-quinn-0.0.10\",\n sha256 = \"8b2e732c8d91a74731663ac8479ab505042fbf547b9a207213ab7fbcbfc4f8b4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/h3-quinn/0.0.10/download\"],\n strip_prefix = \"h3-quinn-0.0.10\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.h3-quinn-0.0.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__half-2.7.1\",\n sha256 = \"6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/half/2.7.1/download\"],\n strip_prefix = \"half-2.7.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.half-2.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.hashbrown-0.15.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.hashbrown-0.16.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hashbrown-0.17.1\",\n sha256 = \"ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hashbrown/0.17.1/download\"],\n strip_prefix = \"hashbrown-0.17.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hashbrown-0.17.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.heck-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hermit-abi-0.5.2\",\n sha256 = \"fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hermit-abi/0.5.2/download\"],\n strip_prefix = \"hermit-abi-0.5.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hermit-abi-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hickory-proto-0.24.4\",\n sha256 = \"92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hickory-proto/0.24.4/download\"],\n strip_prefix = \"hickory-proto-0.24.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hickory-proto-0.24.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hickory-resolver-0.24.4\",\n sha256 = \"cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hickory-resolver/0.24.4/download\"],\n strip_prefix = \"hickory-resolver-0.24.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hickory-resolver-0.24.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hostname-0.4.2\",\n sha256 = \"617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hostname/0.4.2/download\"],\n strip_prefix = \"hostname-0.4.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hostname-0.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__http-1.4.2\",\n sha256 = \"6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http/1.4.2/download\"],\n strip_prefix = \"http-1.4.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.http-1.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__http-body-1.0.1\",\n sha256 = \"1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-body/1.0.1/download\"],\n strip_prefix = \"http-body-1.0.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.http-body-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__http-body-util-0.1.3\",\n sha256 = \"b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-body-util/0.1.3/download\"],\n strip_prefix = \"http-body-util-0.1.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.http-body-util-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__httparse-1.10.1\",\n sha256 = \"6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/httparse/1.10.1/download\"],\n strip_prefix = \"httparse-1.10.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.httparse-1.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__httpdate-1.0.3\",\n sha256 = \"df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/httpdate/1.0.3/download\"],\n strip_prefix = \"httpdate-1.0.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.httpdate-1.0.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hyper-1.9.0\",\n sha256 = \"6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper/1.9.0/download\"],\n strip_prefix = \"hyper-1.9.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hyper-1.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hyper-rustls-0.27.7\",\n sha256 = \"e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-rustls/0.27.7/download\"],\n strip_prefix = \"hyper-rustls-0.27.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hyper-rustls-0.27.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hyper-timeout-0.5.2\",\n sha256 = \"2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-timeout/0.5.2/download\"],\n strip_prefix = \"hyper-timeout-0.5.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hyper-timeout-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__hyper-util-0.1.20\",\n sha256 = \"96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-util/0.1.20/download\"],\n strip_prefix = \"hyper-util-0.1.20\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.hyper-util-0.1.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__icu_collections-2.1.1\",\n sha256 = \"4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_collections/2.1.1/download\"],\n strip_prefix = \"icu_collections-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.icu_collections-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__icu_locale_core-2.1.1\",\n sha256 = \"edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_locale_core/2.1.1/download\"],\n strip_prefix = \"icu_locale_core-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.icu_locale_core-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__icu_normalizer-2.1.1\",\n sha256 = \"5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_normalizer/2.1.1/download\"],\n strip_prefix = \"icu_normalizer-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.icu_normalizer-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__icu_normalizer_data-2.1.1\",\n sha256 = \"7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_normalizer_data/2.1.1/download\"],\n strip_prefix = \"icu_normalizer_data-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.icu_normalizer_data-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__icu_properties-2.1.2\",\n sha256 = \"020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_properties/2.1.2/download\"],\n strip_prefix = \"icu_properties-2.1.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.icu_properties-2.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__icu_properties_data-2.1.2\",\n sha256 = \"616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_properties_data/2.1.2/download\"],\n strip_prefix = \"icu_properties_data-2.1.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.icu_properties_data-2.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__icu_provider-2.1.1\",\n sha256 = \"85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_provider/2.1.1/download\"],\n strip_prefix = \"icu_provider-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.icu_provider-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__id-arena-2.3.0\",\n sha256 = \"3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/id-arena/2.3.0/download\"],\n strip_prefix = \"id-arena-2.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.id-arena-2.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__idna-1.1.0\",\n sha256 = \"3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/idna/1.1.0/download\"],\n strip_prefix = \"idna-1.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.idna-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__idna_adapter-1.2.1\",\n sha256 = \"3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/idna_adapter/1.2.1/download\"],\n strip_prefix = \"idna_adapter-1.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.idna_adapter-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__indexmap-2.14.0\",\n sha256 = \"d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indexmap/2.14.0/download\"],\n strip_prefix = \"indexmap-2.14.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.indexmap-2.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ipconfig-0.3.2\",\n sha256 = \"b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ipconfig/0.3.2/download\"],\n strip_prefix = \"ipconfig-0.3.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ipconfig-0.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ipnet-2.11.0\",\n sha256 = \"469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ipnet/2.11.0/download\"],\n strip_prefix = \"ipnet-2.11.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ipnet-2.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__iri-string-0.7.10\",\n sha256 = \"c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iri-string/0.7.10/download\"],\n strip_prefix = \"iri-string-0.7.10\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.iri-string-0.7.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__is-terminal-0.4.17\",\n sha256 = \"3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/is-terminal/0.4.17/download\"],\n strip_prefix = \"is-terminal-0.4.17\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.is-terminal-0.4.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.is_terminal_polyfill-1.70.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__itertools-0.10.5\",\n sha256 = \"b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itertools/0.10.5/download\"],\n strip_prefix = \"itertools-0.10.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.itertools-0.10.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__itertools-0.14.0\",\n sha256 = \"2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itertools/0.14.0/download\"],\n strip_prefix = \"itertools-0.14.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.itertools-0.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__itoa-1.0.17\",\n sha256 = \"92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itoa/1.0.17/download\"],\n strip_prefix = \"itoa-1.0.17\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.itoa-1.0.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__jiff-0.2.24\",\n sha256 = \"f00b5dbd620d61dfdcb6007c9c1f6054ebd75319f163d886a9055cec1155073d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jiff/0.2.24/download\"],\n strip_prefix = \"jiff-0.2.24\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.jiff-0.2.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__jiff-static-0.2.24\",\n sha256 = \"e000de030ff8022ea1da3f466fbb0f3a809f5e51ed31f6dd931c35181ad8e6d7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jiff-static/0.2.24/download\"],\n strip_prefix = \"jiff-static-0.2.24\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.jiff-static-0.2.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__jni-0.21.1\",\n sha256 = \"1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jni/0.21.1/download\"],\n strip_prefix = \"jni-0.21.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.jni-0.21.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__jni-sys-0.3.0\",\n sha256 = \"8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jni-sys/0.3.0/download\"],\n strip_prefix = \"jni-sys-0.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.jni-sys-0.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__jobserver-0.1.34\",\n sha256 = \"9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jobserver/0.1.34/download\"],\n strip_prefix = \"jobserver-0.1.34\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.jobserver-0.1.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__js-sys-0.3.90\",\n sha256 = \"14dc6f6450b3f6d4ed5b16327f38fed626d375a886159ca555bd7822c0c3a5a6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/js-sys/0.3.90/download\"],\n strip_prefix = \"js-sys-0.3.90\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.js-sys-0.3.90.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__json-patch-4.2.0\",\n sha256 = \"7421438de105a0827e44fadd05377727847d717c80ce29a229f85fd04c427b72\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/json-patch/4.2.0/download\"],\n strip_prefix = \"json-patch-4.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.json-patch-4.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__jsonpath-rust-1.0.4\",\n sha256 = \"633a7320c4bb672863a3782e89b9094ad70285e097ff6832cddd0ec615beadfa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jsonpath-rust/1.0.4/download\"],\n strip_prefix = \"jsonpath-rust-1.0.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.jsonpath-rust-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__jsonptr-0.7.1\",\n sha256 = \"a5a3cc660ba5d72bce0b3bb295bf20847ccbb40fd423f3f05b61273672e561fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jsonptr/0.7.1/download\"],\n strip_prefix = \"jsonptr-0.7.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.jsonptr-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__k8s-openapi-0.27.1\",\n sha256 = \"51b326f5219dd55872a72c1b6ddd1b830b8334996c667449c29391d657d78d5e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/k8s-openapi/0.27.1/download\"],\n strip_prefix = \"k8s-openapi-0.27.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.k8s-openapi-0.27.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__kube-3.1.0\",\n sha256 = \"acc5a6a69da2975ed9925d56b5dcfc9cc739b66f37add06785b7c9f6d1e88741\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/kube/3.1.0/download\"],\n strip_prefix = \"kube-3.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.kube-3.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__kube-client-3.1.0\",\n sha256 = \"0fcaf2d1f1a91e1805d4cd82e8333c022767ae8ffd65909bbef6802733a7dd40\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/kube-client/3.1.0/download\"],\n strip_prefix = \"kube-client-3.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.kube-client-3.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__kube-core-3.1.0\",\n sha256 = \"f126d2db7a8b532ec1d839ece2a71e2485dc3bbca6cc3c3f929becaa810e719e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/kube-core/3.1.0/download\"],\n strip_prefix = \"kube-core-3.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.kube-core-3.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__kube-runtime-3.1.0\",\n sha256 = \"c072737075826ee74d3e615e80334e41e617ca3d14fb46ef7cdfda822d6f15f2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/kube-runtime/3.1.0/download\"],\n strip_prefix = \"kube-runtime-3.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.kube-runtime-3.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__lazy_static-1.5.0\",\n sha256 = \"bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lazy_static/1.5.0/download\"],\n strip_prefix = \"lazy_static-1.5.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.lazy_static-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__leb128fmt-0.1.0\",\n sha256 = \"09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/leb128fmt/0.1.0/download\"],\n strip_prefix = \"leb128fmt-0.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.leb128fmt-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__libc-0.2.186\",\n sha256 = \"68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libc/0.2.186/download\"],\n strip_prefix = \"libc-0.2.186\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.libc-0.2.186.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__libgit2-sys-0.18.5-1.9.4\",\n sha256 = \"005d6ae6eac1912906073e069f7db60b1fa98e052a68227824afe3e3a1c59ca2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libgit2-sys/0.18.5+1.9.4/download\"],\n strip_prefix = \"libgit2-sys-0.18.5+1.9.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.libgit2-sys-0.18.5+1.9.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__libm-0.2.16\",\n sha256 = \"b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libm/0.2.16/download\"],\n strip_prefix = \"libm-0.2.16\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.libm-0.2.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__libz-sys-1.1.29\",\n sha256 = \"85bc9657773828b90eeb625adff10eeac83cc21bbfd8e23a03eaa8a33c9e28d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libz-sys/1.1.29/download\"],\n strip_prefix = \"libz-sys-1.1.29\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.libz-sys-1.1.29.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__linked-hash-map-0.5.6\",\n sha256 = \"0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/linked-hash-map/0.5.6/download\"],\n strip_prefix = \"linked-hash-map-0.5.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.linked-hash-map-0.5.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__linux-raw-sys-0.12.1\",\n sha256 = \"32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/linux-raw-sys/0.12.1/download\"],\n strip_prefix = \"linux-raw-sys-0.12.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.linux-raw-sys-0.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__litemap-0.8.1\",\n sha256 = \"6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/litemap/0.8.1/download\"],\n strip_prefix = \"litemap-0.8.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.litemap-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__lock_api-0.4.14\",\n sha256 = \"224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lock_api/0.4.14/download\"],\n strip_prefix = \"lock_api-0.4.14\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.lock_api-0.4.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.log-0.4.29.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__lru-cache-0.1.2\",\n sha256 = \"31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lru-cache/0.1.2/download\"],\n strip_prefix = \"lru-cache-0.1.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.lru-cache-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__lru-slab-0.1.2\",\n sha256 = \"112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lru-slab/0.1.2/download\"],\n strip_prefix = \"lru-slab-0.1.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.lru-slab-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__matchers-0.2.0\",\n sha256 = \"d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/matchers/0.2.0/download\"],\n strip_prefix = \"matchers-0.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.matchers-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__matchit-0.8.4\",\n sha256 = \"47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/matchit/0.8.4/download\"],\n strip_prefix = \"matchit-0.8.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.matchit-0.8.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__memchr-2.8.3\",\n sha256 = \"cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/memchr/2.8.3/download\"],\n strip_prefix = \"memchr-2.8.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.memchr-2.8.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__mime-0.3.17\",\n sha256 = \"6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mime/0.3.17/download\"],\n strip_prefix = \"mime-0.3.17\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.mime-0.3.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.minimal-lexical-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__mio-1.2.1\",\n sha256 = \"02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mio/1.2.1/download\"],\n strip_prefix = \"mio-1.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.mio-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__moka-0.12.15\",\n sha256 = \"957228ad12042ee839f93c8f257b62b4c0ab5eaae1d4fa60de53b27c9d7c5046\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/moka/0.12.15/download\"],\n strip_prefix = \"moka-0.12.15\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.moka-0.12.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__multimap-0.10.1\",\n sha256 = \"1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/multimap/0.10.1/download\"],\n strip_prefix = \"multimap-0.10.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.multimap-0.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__munge-0.4.7\",\n sha256 = \"5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/munge/0.4.7/download\"],\n strip_prefix = \"munge-0.4.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.munge-0.4.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__munge_macro-0.4.7\",\n sha256 = \"4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/munge_macro/0.4.7/download\"],\n strip_prefix = \"munge_macro-0.4.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.munge_macro-0.4.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.nom-7.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__nu-ansi-term-0.50.3\",\n sha256 = \"7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nu-ansi-term/0.50.3/download\"],\n strip_prefix = \"nu-ansi-term-0.50.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.nu-ansi-term-0.50.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__num-bigint-0.4.8\",\n sha256 = \"c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-bigint/0.4.8/download\"],\n strip_prefix = \"num-bigint-0.4.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.num-bigint-0.4.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__num-conv-0.2.1\",\n sha256 = \"c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-conv/0.2.1/download\"],\n strip_prefix = \"num-conv-0.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.num-conv-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__num-integer-0.1.47\",\n sha256 = \"7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-integer/0.1.47/download\"],\n strip_prefix = \"num-integer-0.1.47\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.num-integer-0.1.47.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__num-traits-0.2.19\",\n sha256 = \"071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-traits/0.2.19/download\"],\n strip_prefix = \"num-traits-0.2.19\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.num-traits-0.2.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__oid-registry-0.8.1\",\n sha256 = \"12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/oid-registry/0.8.1/download\"],\n strip_prefix = \"oid-registry-0.8.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.oid-registry-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__once_cell-1.21.3\",\n sha256 = \"42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/once_cell/1.21.3/download\"],\n strip_prefix = \"once_cell-1.21.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.once_cell-1.21.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.once_cell_polyfill-1.70.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__oorandom-11.1.5\",\n sha256 = \"d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/oorandom/11.1.5/download\"],\n strip_prefix = \"oorandom-11.1.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.oorandom-11.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__openssl-probe-0.2.1\",\n sha256 = \"7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl-probe/0.2.1/download\"],\n strip_prefix = \"openssl-probe-0.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.openssl-probe-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__opentelemetry-0.32.0\",\n sha256 = \"b0142c63252a9e054e68a4c61a5778f7b14f576274d593f8ce883d191a099682\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/opentelemetry/0.32.0/download\"],\n strip_prefix = \"opentelemetry-0.32.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.opentelemetry-0.32.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__opentelemetry-http-0.32.0\",\n sha256 = \"5683015d09e2df236ef005b17f6f196f0d5f6313c4fa43a7b6a53b52776e4331\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/opentelemetry-http/0.32.0/download\"],\n strip_prefix = \"opentelemetry-http-0.32.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.opentelemetry-http-0.32.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__opentelemetry-otlp-0.32.0\",\n sha256 = \"9966929966d17620d7c316c643ba62631826e10021409357772d5eea84f62c35\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/opentelemetry-otlp/0.32.0/download\"],\n strip_prefix = \"opentelemetry-otlp-0.32.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.opentelemetry-otlp-0.32.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__opentelemetry-proto-0.32.0\",\n sha256 = \"56d658ba1faf63f7b9c492cfbe6e0ec365440a16132d3270c1065f7b33f1b638\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/opentelemetry-proto/0.32.0/download\"],\n strip_prefix = \"opentelemetry-proto-0.32.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.opentelemetry-proto-0.32.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__opentelemetry_sdk-0.32.1\",\n sha256 = \"9b59f80e1ac4d5ff7a2db8fb6c80badb7f0f3f858211fba08dd9aaec750894f9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/opentelemetry_sdk/0.32.1/download\"],\n strip_prefix = \"opentelemetry_sdk-0.32.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.opentelemetry_sdk-0.32.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ordered-float-2.10.1\",\n sha256 = \"68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ordered-float/2.10.1/download\"],\n strip_prefix = \"ordered-float-2.10.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ordered-float-2.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__parking-2.2.1\",\n sha256 = \"f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking/2.2.1/download\"],\n strip_prefix = \"parking-2.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.parking-2.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__parking_lot-0.12.5\",\n sha256 = \"93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking_lot/0.12.5/download\"],\n strip_prefix = \"parking_lot-0.12.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.parking_lot-0.12.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__parking_lot_core-0.9.12\",\n sha256 = \"2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking_lot_core/0.9.12/download\"],\n strip_prefix = \"parking_lot_core-0.9.12\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.parking_lot_core-0.9.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__pem-3.0.6\",\n sha256 = \"1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pem/3.0.6/download\"],\n strip_prefix = \"pem-3.0.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.pem-3.0.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__percent-encoding-2.3.2\",\n sha256 = \"9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/percent-encoding/2.3.2/download\"],\n strip_prefix = \"percent-encoding-2.3.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.percent-encoding-2.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.pest-2.8.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.pest_derive-2.8.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.pest_generator-2.8.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.pest_meta-2.8.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__petgraph-0.8.3\",\n sha256 = \"8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/petgraph/0.8.3/download\"],\n strip_prefix = \"petgraph-0.8.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.petgraph-0.8.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__pin-project-1.1.10\",\n sha256 = \"677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project/1.1.10/download\"],\n strip_prefix = \"pin-project-1.1.10\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.pin-project-1.1.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__pin-project-internal-1.1.10\",\n sha256 = \"6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project-internal/1.1.10/download\"],\n strip_prefix = \"pin-project-internal-1.1.10\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.pin-project-internal-1.1.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__pin-project-lite-0.2.16\",\n sha256 = \"3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project-lite/0.2.16/download\"],\n strip_prefix = \"pin-project-lite-0.2.16\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.pin-project-lite-0.2.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__pkg-config-0.3.33\",\n sha256 = \"19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pkg-config/0.3.33/download\"],\n strip_prefix = \"pkg-config-0.3.33\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.pkg-config-0.3.33.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__plotters-0.3.7\",\n sha256 = \"5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/plotters/0.3.7/download\"],\n strip_prefix = \"plotters-0.3.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.plotters-0.3.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__plotters-backend-0.3.7\",\n sha256 = \"df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/plotters-backend/0.3.7/download\"],\n strip_prefix = \"plotters-backend-0.3.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.plotters-backend-0.3.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__plotters-svg-0.3.7\",\n sha256 = \"51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/plotters-svg/0.3.7/download\"],\n strip_prefix = \"plotters-svg-0.3.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.plotters-svg-0.3.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__portable-atomic-1.13.1\",\n sha256 = \"c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic/1.13.1/download\"],\n strip_prefix = \"portable-atomic-1.13.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.portable-atomic-1.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__portable-atomic-util-0.2.7\",\n sha256 = \"c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic-util/0.2.7/download\"],\n strip_prefix = \"portable-atomic-util-0.2.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.portable-atomic-util-0.2.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__potential_utf-0.1.4\",\n sha256 = \"b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/potential_utf/0.1.4/download\"],\n strip_prefix = \"potential_utf-0.1.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.potential_utf-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__powerfmt-0.2.0\",\n sha256 = \"439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/powerfmt/0.2.0/download\"],\n strip_prefix = \"powerfmt-0.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.powerfmt-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ppv-lite86-0.2.21\",\n sha256 = \"85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ppv-lite86/0.2.21/download\"],\n strip_prefix = \"ppv-lite86-0.2.21\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ppv-lite86-0.2.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__prettyplease-0.2.37\",\n sha256 = \"479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prettyplease/0.2.37/download\"],\n strip_prefix = \"prettyplease-0.2.37\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.prettyplease-0.2.37.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.proc-macro2-1.0.106.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__prometheus-0.14.0\",\n sha256 = \"3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prometheus/0.14.0/download\"],\n strip_prefix = \"prometheus-0.14.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.prometheus-0.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__proptest-1.11.0\",\n sha256 = \"4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/proptest/1.11.0/download\"],\n strip_prefix = \"proptest-1.11.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.proptest-1.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__prost-0.14.4\",\n sha256 = \"528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost/0.14.4/download\"],\n strip_prefix = \"prost-0.14.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.prost-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__prost-build-0.14.3\",\n sha256 = \"343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-build/0.14.3/download\"],\n strip_prefix = \"prost-build-0.14.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.prost-build-0.14.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__prost-derive-0.14.4\",\n sha256 = \"b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-derive/0.14.4/download\"],\n strip_prefix = \"prost-derive-0.14.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.prost-derive-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__prost-types-0.14.3\",\n sha256 = \"8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-types/0.14.3/download\"],\n strip_prefix = \"prost-types-0.14.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.prost-types-0.14.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__protobuf-3.7.2\",\n sha256 = \"d65a1d4ddae7d8b5de68153b48f6aa3bba8cb002b243dbdbc55a5afbc98f99f4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/protobuf/3.7.2/download\"],\n strip_prefix = \"protobuf-3.7.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.protobuf-3.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__protobuf-support-3.7.2\",\n sha256 = \"3e36c2f31e0a47f9280fb347ef5e461ffcd2c52dd520d8e216b52f93b0b0d7d6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/protobuf-support/3.7.2/download\"],\n strip_prefix = \"protobuf-support-3.7.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.protobuf-support-3.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ptr_meta-0.3.1\",\n sha256 = \"0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ptr_meta/0.3.1/download\"],\n strip_prefix = \"ptr_meta-0.3.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ptr_meta-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ptr_meta_derive-0.3.1\",\n sha256 = \"7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ptr_meta_derive/0.3.1/download\"],\n strip_prefix = \"ptr_meta_derive-0.3.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ptr_meta_derive-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__pulldown-cmark-0.13.4\",\n sha256 = \"e9f068eba8e7071c5f9511831b44f32c740d5adf574e990f946ddb53db2f314e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pulldown-cmark/0.13.4/download\"],\n strip_prefix = \"pulldown-cmark-0.13.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.pulldown-cmark-0.13.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__pulldown-cmark-to-cmark-22.0.0\",\n sha256 = \"50793def1b900256624a709439404384204a5dc3a6ec580281bfaac35e882e90\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pulldown-cmark-to-cmark/22.0.0/download\"],\n strip_prefix = \"pulldown-cmark-to-cmark-22.0.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.pulldown-cmark-to-cmark-22.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__quick-error-1.2.3\",\n sha256 = \"a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quick-error/1.2.3/download\"],\n strip_prefix = \"quick-error-1.2.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.quick-error-1.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__quinn-0.11.11\",\n sha256 = \"0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quinn/0.11.11/download\"],\n strip_prefix = \"quinn-0.11.11\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.quinn-0.11.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__quinn-proto-0.11.15\",\n sha256 = \"4fcb935c5bec503c2f0e306bdd3e58bb9029dcb14fa8d9ac76e3a5256ac0763e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quinn-proto/0.11.15/download\"],\n strip_prefix = \"quinn-proto-0.11.15\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.quinn-proto-0.11.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__quinn-udp-0.5.14\",\n sha256 = \"addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quinn-udp/0.5.14/download\"],\n strip_prefix = \"quinn-udp-0.5.14\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.quinn-udp-0.5.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.quote-1.0.45.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__r-efi-5.3.0\",\n sha256 = \"69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/r-efi/5.3.0/download\"],\n strip_prefix = \"r-efi-5.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.r-efi-5.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rancor-0.1.1\",\n sha256 = \"a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rancor/0.1.1/download\"],\n strip_prefix = \"rancor-0.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rancor-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rand-0.8.5\",\n sha256 = \"34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand/0.8.5/download\"],\n strip_prefix = \"rand-0.8.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rand-0.8.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rand-0.9.3\",\n sha256 = \"7ec095654a25171c2124e9e3393a930bddbffdc939556c914957a4c3e0a87166\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand/0.9.3/download\"],\n strip_prefix = \"rand-0.9.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rand-0.9.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rand_chacha-0.3.1\",\n sha256 = \"e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_chacha/0.3.1/download\"],\n strip_prefix = \"rand_chacha-0.3.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rand_chacha-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rand_chacha-0.9.0\",\n sha256 = \"d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_chacha/0.9.0/download\"],\n strip_prefix = \"rand_chacha-0.9.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rand_chacha-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.rand_core-0.6.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.rand_core-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rand_xorshift-0.4.0\",\n sha256 = \"513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_xorshift/0.4.0/download\"],\n strip_prefix = \"rand_xorshift-0.4.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rand_xorshift-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rayon-1.12.0\",\n sha256 = \"fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rayon/1.12.0/download\"],\n strip_prefix = \"rayon-1.12.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rayon-1.12.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rayon-core-1.13.0\",\n sha256 = \"22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rayon-core/1.13.0/download\"],\n strip_prefix = \"rayon-core-1.13.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rayon-core-1.13.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rcgen-0.13.2\",\n sha256 = \"75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rcgen/0.13.2/download\"],\n strip_prefix = \"rcgen-0.13.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rcgen-0.13.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__redox_syscall-0.5.18\",\n sha256 = \"ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/redox_syscall/0.5.18/download\"],\n strip_prefix = \"redox_syscall-0.5.18\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.redox_syscall-0.5.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ref-cast-1.0.25\",\n sha256 = \"f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ref-cast/1.0.25/download\"],\n strip_prefix = \"ref-cast-1.0.25\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ref-cast-1.0.25.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ref-cast-impl-1.0.25\",\n sha256 = \"b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ref-cast-impl/1.0.25/download\"],\n strip_prefix = \"ref-cast-impl-1.0.25\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ref-cast-impl-1.0.25.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__regex-1.12.3\",\n sha256 = \"e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex/1.12.3/download\"],\n strip_prefix = \"regex-1.12.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.regex-1.12.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__regex-automata-0.4.14\",\n sha256 = \"6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-automata/0.4.14/download\"],\n strip_prefix = \"regex-automata-0.4.14\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.regex-automata-0.4.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__regex-syntax-0.8.10\",\n sha256 = \"dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-syntax/0.8.10/download\"],\n strip_prefix = \"regex-syntax-0.8.10\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.regex-syntax-0.8.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rend-0.5.3\",\n sha256 = \"cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rend/0.5.3/download\"],\n strip_prefix = \"rend-0.5.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rend-0.5.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__reqwest-0.13.4\",\n sha256 = \"219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/reqwest/0.13.4/download\"],\n strip_prefix = \"reqwest-0.13.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.reqwest-0.13.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__resolv-conf-0.7.6\",\n sha256 = \"1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/resolv-conf/0.7.6/download\"],\n strip_prefix = \"resolv-conf-0.7.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.resolv-conf-0.7.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ring-0.17.14\",\n sha256 = \"a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ring/0.17.14/download\"],\n strip_prefix = \"ring-0.17.14\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ring-0.17.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rkyv-0.8.15\",\n sha256 = \"1a30e631b7f4a03dee9056b8ef6982e8ba371dd5bedb74d3ec86df4499132c70\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rkyv/0.8.15/download\"],\n strip_prefix = \"rkyv-0.8.15\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rkyv-0.8.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rkyv_derive-0.8.15\",\n sha256 = \"8100bb34c0a1d0f907143db3149e6b4eea3c33b9ee8b189720168e818303986f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rkyv_derive/0.8.15/download\"],\n strip_prefix = \"rkyv_derive-0.8.15\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rkyv_derive-0.8.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustc-hash-2.1.1\",\n sha256 = \"357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustc-hash/2.1.1/download\"],\n strip_prefix = \"rustc-hash-2.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustc-hash-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustc_version-0.4.1\",\n sha256 = \"cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustc_version/0.4.1/download\"],\n strip_prefix = \"rustc_version-0.4.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustc_version-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rusticata-macros-4.1.0\",\n sha256 = \"faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rusticata-macros/4.1.0/download\"],\n strip_prefix = \"rusticata-macros-4.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rusticata-macros-4.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustix-1.1.4\",\n sha256 = \"b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustix/1.1.4/download\"],\n strip_prefix = \"rustix-1.1.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustix-1.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustls-0.23.41\",\n sha256 = \"6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls/0.23.41/download\"],\n strip_prefix = \"rustls-0.23.41\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustls-0.23.41.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustls-native-certs-0.8.3\",\n sha256 = \"612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-native-certs/0.8.3/download\"],\n strip_prefix = \"rustls-native-certs-0.8.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustls-native-certs-0.8.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustls-pemfile-2.2.0\",\n sha256 = \"dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-pemfile/2.2.0/download\"],\n strip_prefix = \"rustls-pemfile-2.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustls-pemfile-2.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustls-pki-types-1.14.0\",\n sha256 = \"be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-pki-types/1.14.0/download\"],\n strip_prefix = \"rustls-pki-types-1.14.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustls-pki-types-1.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustls-platform-verifier-0.6.2\",\n sha256 = \"1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-platform-verifier/0.6.2/download\"],\n strip_prefix = \"rustls-platform-verifier-0.6.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustls-platform-verifier-0.6.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustls-platform-verifier-android-0.1.1\",\n sha256 = \"f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-platform-verifier-android/0.1.1/download\"],\n strip_prefix = \"rustls-platform-verifier-android-0.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustls-platform-verifier-android-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustls-webpki-0.103.9\",\n sha256 = \"d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-webpki/0.103.9/download\"],\n strip_prefix = \"rustls-webpki-0.103.9\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustls-webpki-0.103.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rustversion-1.0.22\",\n sha256 = \"b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustversion/1.0.22/download\"],\n strip_prefix = \"rustversion-1.0.22\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rustversion-1.0.22.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__rusty-fork-0.3.1\",\n sha256 = \"cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rusty-fork/0.3.1/download\"],\n strip_prefix = \"rusty-fork-0.3.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.rusty-fork-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__ryu-1.0.23\",\n sha256 = \"9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ryu/1.0.23/download\"],\n strip_prefix = \"ryu-1.0.23\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.ryu-1.0.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__saa-5.6.0\",\n sha256 = \"68f5acb362a0e75c2a963532fa7fabf13dff81626dc494df16488d30befcbea0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/saa/5.6.0/download\"],\n strip_prefix = \"saa-5.6.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.saa-5.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__same-file-1.0.6\",\n sha256 = \"93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/same-file/1.0.6/download\"],\n strip_prefix = \"same-file-1.0.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.same-file-1.0.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__scc-3.7.1\",\n sha256 = \"5bcd12b6caff5213cc3c03123cde8c3db5e413008a63b0c0ba35e6275825ea92\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/scc/3.7.1/download\"],\n strip_prefix = \"scc-3.7.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.scc-3.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__schannel-0.1.28\",\n sha256 = \"891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/schannel/0.1.28/download\"],\n strip_prefix = \"schannel-0.1.28\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.schannel-0.1.28.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__scopeguard-1.2.0\",\n sha256 = \"94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/scopeguard/1.2.0/download\"],\n strip_prefix = \"scopeguard-1.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.scopeguard-1.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sdd-4.8.6\",\n sha256 = \"e5f0e40a01b94e35d1dacbcfbe5bfd3d31e37d9590b2e6d86a82b0e87bd4f551\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sdd/4.8.6/download\"],\n strip_prefix = \"sdd-4.8.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sdd-4.8.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__secrecy-0.10.3\",\n sha256 = \"e891af845473308773346dc847b2c23ee78fe442e0472ac50e22a18a93d3ae5a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/secrecy/0.10.3/download\"],\n strip_prefix = \"secrecy-0.10.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.secrecy-0.10.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__security-framework-3.7.0\",\n sha256 = \"b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/security-framework/3.7.0/download\"],\n strip_prefix = \"security-framework-3.7.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.security-framework-3.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__security-framework-sys-2.17.0\",\n sha256 = \"6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/security-framework-sys/2.17.0/download\"],\n strip_prefix = \"security-framework-sys-2.17.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.security-framework-sys-2.17.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__semver-1.0.27\",\n sha256 = \"d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/semver/1.0.27/download\"],\n strip_prefix = \"semver-1.0.27\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.semver-1.0.27.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.serde-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__serde-value-0.7.0\",\n sha256 = \"f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde-value/0.7.0/download\"],\n strip_prefix = \"serde-value-0.7.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.serde-value-0.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.serde_core-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.serde_derive-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__serde_json-1.0.150\",\n sha256 = \"e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_json/1.0.150/download\"],\n strip_prefix = \"serde_json-1.0.150\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.serde_json-1.0.150.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__serde_path_to_error-0.1.20\",\n sha256 = \"10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_path_to_error/0.1.20/download\"],\n strip_prefix = \"serde_path_to_error-0.1.20\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.serde_path_to_error-0.1.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__serde_urlencoded-0.7.1\",\n sha256 = \"d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_urlencoded/0.7.1/download\"],\n strip_prefix = \"serde_urlencoded-0.7.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.serde_urlencoded-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__serde_yaml-0.9.34-deprecated\",\n sha256 = \"6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_yaml/0.9.34+deprecated/download\"],\n strip_prefix = \"serde_yaml-0.9.34+deprecated\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.serde_yaml-0.9.34+deprecated.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__serde_yaml_ng-0.10.0\",\n sha256 = \"7b4db627b98b36d4203a7b458cf3573730f2bb591b28871d916dfa9efabfd41f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_yaml_ng/0.10.0/download\"],\n strip_prefix = \"serde_yaml_ng-0.10.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.serde_yaml_ng-0.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sfv-0.15.0\",\n sha256 = \"890ef0e5532daf21fdaa3dbaf991417187f3a87ab69231fe69be942495746480\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sfv/0.15.0/download\"],\n strip_prefix = \"sfv-0.15.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sfv-0.15.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.sha2-0.10.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sharded-slab-0.1.7\",\n sha256 = \"f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sharded-slab/0.1.7/download\"],\n strip_prefix = \"sharded-slab-0.1.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sharded-slab-0.1.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__shlex-1.3.0\",\n sha256 = \"0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/shlex/1.3.0/download\"],\n strip_prefix = \"shlex-1.3.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.shlex-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__signal-hook-registry-1.4.8\",\n sha256 = \"c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/signal-hook-registry/1.4.8/download\"],\n strip_prefix = \"signal-hook-registry-1.4.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.signal-hook-registry-1.4.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__simdutf8-0.1.5\",\n sha256 = \"e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/simdutf8/0.1.5/download\"],\n strip_prefix = \"simdutf8-0.1.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.simdutf8-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__siphasher-1.0.2\",\n sha256 = \"b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/siphasher/1.0.2/download\"],\n strip_prefix = \"siphasher-1.0.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.siphasher-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__slab-0.4.12\",\n sha256 = \"0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/slab/0.4.12/download\"],\n strip_prefix = \"slab-0.4.12\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.slab-0.4.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__smallvec-1.15.1\",\n sha256 = \"67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/smallvec/1.15.1/download\"],\n strip_prefix = \"smallvec-1.15.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.smallvec-1.15.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__socket2-0.5.10\",\n sha256 = \"e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/socket2/0.5.10/download\"],\n strip_prefix = \"socket2-0.5.10\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.socket2-0.5.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__socket2-0.6.4\",\n sha256 = \"52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/socket2/0.6.4/download\"],\n strip_prefix = \"socket2-0.6.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.socket2-0.6.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sonic-number-0.1.1\",\n sha256 = \"5661364b38abad49cf1ade6631fcc35d2ccf882a7d68616b4228b7717feb5fba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sonic-number/0.1.1/download\"],\n strip_prefix = \"sonic-number-0.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sonic-number-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sonic-rs-0.5.8\",\n sha256 = \"d971cc77a245ccf1756dbd1a87c3e7f709c0191464096510d43eec056d0f2c4f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sonic-rs/0.5.8/download\"],\n strip_prefix = \"sonic-rs-0.5.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sonic-rs-0.5.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sonic-simd-0.1.3\",\n sha256 = \"e9f944718c33623919878cf74b4c9361eb3024f635733922b26722b14cd3f8cc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sonic-simd/0.1.3/download\"],\n strip_prefix = \"sonic-simd-0.1.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sonic-simd-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__spin-0.9.8\",\n sha256 = \"6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/spin/0.9.8/download\"],\n strip_prefix = \"spin-0.9.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.spin-0.9.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sse-core-0.2.3\",\n sha256 = \"28f4c044039e70ba5724b7e9dacf9fb610394773d15df2bb629170ca30391c88\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sse-core/0.2.3/download\"],\n strip_prefix = \"sse-core-0.2.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sse-core-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.stable_deref_trait-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.strsim-0.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.subtle-2.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.syn-2.0.117.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__sync_wrapper-1.0.2\",\n sha256 = \"0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sync_wrapper/1.0.2/download\"],\n strip_prefix = \"sync_wrapper-1.0.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.sync_wrapper-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__synstructure-0.13.2\",\n sha256 = \"728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/synstructure/0.13.2/download\"],\n strip_prefix = \"synstructure-0.13.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.synstructure-0.13.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tagptr-0.2.0\",\n sha256 = \"7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tagptr/0.2.0/download\"],\n strip_prefix = \"tagptr-0.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tagptr-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tempfile-3.27.0\",\n sha256 = \"32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tempfile/3.27.0/download\"],\n strip_prefix = \"tempfile-3.27.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tempfile-3.27.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__thiserror-1.0.69\",\n sha256 = \"b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror/1.0.69/download\"],\n strip_prefix = \"thiserror-1.0.69\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.thiserror-1.0.69.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__thiserror-2.0.18\",\n sha256 = \"4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror/2.0.18/download\"],\n strip_prefix = \"thiserror-2.0.18\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.thiserror-2.0.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__thiserror-impl-1.0.69\",\n sha256 = \"4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror-impl/1.0.69/download\"],\n strip_prefix = \"thiserror-impl-1.0.69\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.thiserror-impl-1.0.69.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__thiserror-impl-2.0.18\",\n sha256 = \"ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror-impl/2.0.18/download\"],\n strip_prefix = \"thiserror-impl-2.0.18\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.thiserror-impl-2.0.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__thread_local-1.1.9\",\n sha256 = \"f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thread_local/1.1.9/download\"],\n strip_prefix = \"thread_local-1.1.9\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.thread_local-1.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__time-0.3.47\",\n sha256 = \"743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time/0.3.47/download\"],\n strip_prefix = \"time-0.3.47\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.time-0.3.47.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__time-core-0.1.8\",\n sha256 = \"7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-core/0.1.8/download\"],\n strip_prefix = \"time-core-0.1.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.time-core-0.1.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__time-macros-0.2.27\",\n sha256 = \"2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-macros/0.2.27/download\"],\n strip_prefix = \"time-macros-0.2.27\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.time-macros-0.2.27.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tinystr-0.8.2\",\n sha256 = \"42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinystr/0.8.2/download\"],\n strip_prefix = \"tinystr-0.8.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tinystr-0.8.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tinytemplate-1.2.1\",\n sha256 = \"be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinytemplate/1.2.1/download\"],\n strip_prefix = \"tinytemplate-1.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tinytemplate-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tinyvec-1.10.0\",\n sha256 = \"bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinyvec/1.10.0/download\"],\n strip_prefix = \"tinyvec-1.10.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tinyvec-1.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tinyvec_macros-0.1.1\",\n sha256 = \"1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinyvec_macros/0.1.1/download\"],\n strip_prefix = \"tinyvec_macros-0.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tinyvec_macros-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tokio-1.52.3\",\n sha256 = \"8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio/1.52.3/download\"],\n strip_prefix = \"tokio-1.52.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tokio-1.52.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tokio-macros-2.7.0\",\n sha256 = \"385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-macros/2.7.0/download\"],\n strip_prefix = \"tokio-macros-2.7.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tokio-macros-2.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tokio-rustls-0.26.4\",\n sha256 = \"1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-rustls/0.26.4/download\"],\n strip_prefix = \"tokio-rustls-0.26.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tokio-rustls-0.26.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tokio-stream-0.1.18\",\n sha256 = \"32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-stream/0.1.18/download\"],\n strip_prefix = \"tokio-stream-0.1.18\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tokio-stream-0.1.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tokio-util-0.7.18\",\n sha256 = \"9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-util/0.7.18/download\"],\n strip_prefix = \"tokio-util-0.7.18\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tokio-util-0.7.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tonic-0.14.6\",\n sha256 = \"ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tonic/0.14.6/download\"],\n strip_prefix = \"tonic-0.14.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tonic-0.14.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tonic-build-0.14.6\",\n sha256 = \"c68f61875ac5293cf72e6c8cf0158086428c82c37229e98c840878f1706b0322\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tonic-build/0.14.6/download\"],\n strip_prefix = \"tonic-build-0.14.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tonic-build-0.14.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tonic-prost-0.14.6\",\n sha256 = \"50849f68853be452acf590cde0b146665b8d507b3b8af17261df47e02c209ea0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tonic-prost/0.14.6/download\"],\n strip_prefix = \"tonic-prost-0.14.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tonic-prost-0.14.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tonic-prost-build-0.14.6\",\n sha256 = \"654e5643eff75d7f8c99197ce1440ed19a3474eada74c12bbac488b2cafdae27\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tonic-prost-build/0.14.6/download\"],\n strip_prefix = \"tonic-prost-build-0.14.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tonic-prost-build-0.14.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tonic-types-0.14.6\",\n sha256 = \"73ab1b02061f83d519bba3caa167f88f261ef05720ab8ebc954ade70de3348e8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tonic-types/0.14.6/download\"],\n strip_prefix = \"tonic-types-0.14.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tonic-types-0.14.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tower-0.5.3\",\n sha256 = \"ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower/0.5.3/download\"],\n strip_prefix = \"tower-0.5.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tower-0.5.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tower-http-0.6.8\",\n sha256 = \"d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-http/0.6.8/download\"],\n strip_prefix = \"tower-http-0.6.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tower-http-0.6.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tower-layer-0.3.3\",\n sha256 = \"121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-layer/0.3.3/download\"],\n strip_prefix = \"tower-layer-0.3.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tower-layer-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tower-service-0.3.3\",\n sha256 = \"8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-service/0.3.3/download\"],\n strip_prefix = \"tower-service-0.3.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tower-service-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tracing-0.1.44\",\n sha256 = \"63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing/0.1.44/download\"],\n strip_prefix = \"tracing-0.1.44\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tracing-0.1.44.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tracing-attributes-0.1.31\",\n sha256 = \"7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-attributes/0.1.31/download\"],\n strip_prefix = \"tracing-attributes-0.1.31\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tracing-attributes-0.1.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tracing-core-0.1.36\",\n sha256 = \"db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-core/0.1.36/download\"],\n strip_prefix = \"tracing-core-0.1.36\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tracing-core-0.1.36.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tracing-log-0.2.0\",\n sha256 = \"ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-log/0.2.0/download\"],\n strip_prefix = \"tracing-log-0.2.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tracing-log-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tracing-opentelemetry-0.33.0\",\n sha256 = \"adbc64cba7137545b8044cb1fe9814f7aacf3c6b5f9b45be8bb5db538befdb26\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-opentelemetry/0.33.0/download\"],\n strip_prefix = \"tracing-opentelemetry-0.33.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tracing-opentelemetry-0.33.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__tracing-subscriber-0.3.23\",\n sha256 = \"cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-subscriber/0.3.23/download\"],\n strip_prefix = \"tracing-subscriber-0.3.23\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.tracing-subscriber-0.3.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__try-lock-0.2.5\",\n sha256 = \"e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/try-lock/0.2.5/download\"],\n strip_prefix = \"try-lock-0.2.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.try-lock-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__typenum-1.20.0\",\n sha256 = \"40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/typenum/1.20.0/download\"],\n strip_prefix = \"typenum-1.20.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.typenum-1.20.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.ucd-trie-0.1.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__unarray-0.1.4\",\n sha256 = \"eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unarray/0.1.4/download\"],\n strip_prefix = \"unarray-0.1.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.unarray-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__unicase-2.9.0\",\n sha256 = \"dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicase/2.9.0/download\"],\n strip_prefix = \"unicase-2.9.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.unicase-2.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.unicode-ident-1.0.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__unicode-xid-0.2.6\",\n sha256 = \"ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-xid/0.2.6/download\"],\n strip_prefix = \"unicode-xid-0.2.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.unicode-xid-0.2.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__unsafe-libyaml-0.2.11\",\n sha256 = \"673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unsafe-libyaml/0.2.11/download\"],\n strip_prefix = \"unsafe-libyaml-0.2.11\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.unsafe-libyaml-0.2.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__untrusted-0.9.0\",\n sha256 = \"8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/untrusted/0.9.0/download\"],\n strip_prefix = \"untrusted-0.9.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.untrusted-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__url-2.5.8\",\n sha256 = \"ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/url/2.5.8/download\"],\n strip_prefix = \"url-2.5.8\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.url-2.5.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__utf8_iter-1.0.4\",\n sha256 = \"b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/utf8_iter/1.0.4/download\"],\n strip_prefix = \"utf8_iter-1.0.4\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.utf8_iter-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.utf8parse-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.uuid-1.22.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__valuable-0.1.1\",\n sha256 = \"ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/valuable/0.1.1/download\"],\n strip_prefix = \"valuable-0.1.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.valuable-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__vcpkg-0.2.15\",\n sha256 = \"accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/vcpkg/0.2.15/download\"],\n strip_prefix = \"vcpkg-0.2.15\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.vcpkg-0.2.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.version_check-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wait-timeout-0.2.1\",\n sha256 = \"09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wait-timeout/0.2.1/download\"],\n strip_prefix = \"wait-timeout-0.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wait-timeout-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__walkdir-2.5.0\",\n sha256 = \"29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/walkdir/2.5.0/download\"],\n strip_prefix = \"walkdir-2.5.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.walkdir-2.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__want-0.3.1\",\n sha256 = \"bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/want/0.3.1/download\"],\n strip_prefix = \"want-0.3.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.want-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasi-0.11.1-wasi-snapshot-preview1\",\n sha256 = \"ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasi/0.11.1+wasi-snapshot-preview1/download\"],\n strip_prefix = \"wasi-0.11.1+wasi-snapshot-preview1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasip2-1.0.2-wasi-0.2.9\",\n sha256 = \"9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasip2/1.0.2+wasi-0.2.9/download\"],\n strip_prefix = \"wasip2-1.0.2+wasi-0.2.9\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasip2-1.0.2+wasi-0.2.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasip3-0.4.0-wasi-0.3.0-rc-2026-01-06\",\n sha256 = \"5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasip3/0.4.0+wasi-0.3.0-rc-2026-01-06/download\"],\n strip_prefix = \"wasip3-0.4.0+wasi-0.3.0-rc-2026-01-06\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasip3-0.4.0+wasi-0.3.0-rc-2026-01-06.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-bindgen-0.2.113\",\n sha256 = \"60722a937f594b7fde9adb894d7c092fc1bb6612897c46368d18e7a20208eff2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen/0.2.113/download\"],\n strip_prefix = \"wasm-bindgen-0.2.113\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-bindgen-0.2.113.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-bindgen-futures-0.4.63\",\n sha256 = \"8a89f4650b770e4521aa6573724e2aed4704372151bd0de9d16a3bbabb87441a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-futures/0.4.63/download\"],\n strip_prefix = \"wasm-bindgen-futures-0.4.63\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-bindgen-futures-0.4.63.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-bindgen-macro-0.2.113\",\n sha256 = \"0fac8c6395094b6b91c4af293f4c79371c163f9a6f56184d2c9a85f5a95f3950\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro/0.2.113/download\"],\n strip_prefix = \"wasm-bindgen-macro-0.2.113\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-bindgen-macro-0.2.113.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-bindgen-macro-support-0.2.113\",\n sha256 = \"ab3fabce6159dc20728033842636887e4877688ae94382766e00b180abac9d60\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.113/download\"],\n strip_prefix = \"wasm-bindgen-macro-support-0.2.113\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-bindgen-macro-support-0.2.113.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-bindgen-shared-0.2.113\",\n sha256 = \"de0e091bdb824da87dc01d967388880d017a0a9bc4f3bdc0d86ee9f9336e3bb5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-shared/0.2.113/download\"],\n strip_prefix = \"wasm-bindgen-shared-0.2.113\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-bindgen-shared-0.2.113.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-encoder-0.244.0\",\n sha256 = \"990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-encoder/0.244.0/download\"],\n strip_prefix = \"wasm-encoder-0.244.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-encoder-0.244.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-metadata-0.244.0\",\n sha256 = \"bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-metadata/0.244.0/download\"],\n strip_prefix = \"wasm-metadata-0.244.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-metadata-0.244.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasm-streams-0.5.0\",\n sha256 = \"9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-streams/0.5.0/download\"],\n strip_prefix = \"wasm-streams-0.5.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasm-streams-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wasmparser-0.244.0\",\n sha256 = \"47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasmparser/0.244.0/download\"],\n strip_prefix = \"wasmparser-0.244.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wasmparser-0.244.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__web-sys-0.3.90\",\n sha256 = \"705eceb4ce901230f8625bd1d665128056ccbe4b7408faa625eec1ba80f59a97\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/web-sys/0.3.90/download\"],\n strip_prefix = \"web-sys-0.3.90\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.web-sys-0.3.90.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__web-time-1.1.0\",\n sha256 = \"5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/web-time/1.1.0/download\"],\n strip_prefix = \"web-time-1.1.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.web-time-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__webpki-root-certs-1.0.6\",\n sha256 = \"804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/webpki-root-certs/1.0.6/download\"],\n strip_prefix = \"webpki-root-certs-1.0.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.webpki-root-certs-1.0.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__webpki-roots-1.0.7\",\n sha256 = \"52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/webpki-roots/1.0.7/download\"],\n strip_prefix = \"webpki-roots-1.0.7\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.webpki-roots-1.0.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__widestring-1.2.1\",\n sha256 = \"72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/widestring/1.2.1/download\"],\n strip_prefix = \"widestring-1.2.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.widestring-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__winapi-util-0.1.11\",\n sha256 = \"c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi-util/0.1.11/download\"],\n strip_prefix = \"winapi-util-0.1.11\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.winapi-util-0.1.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.windows-link-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-sys-0.45.0\",\n sha256 = \"75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.45.0/download\"],\n strip_prefix = \"windows-sys-0.45.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-sys-0.45.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-sys-0.48.0\",\n sha256 = \"677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.48.0/download\"],\n strip_prefix = \"windows-sys-0.48.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-sys-0.48.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-sys-0.52.0\",\n sha256 = \"282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.52.0/download\"],\n strip_prefix = \"windows-sys-0.52.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-sys-0.52.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-sys-0.60.2\",\n sha256 = \"f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.60.2/download\"],\n strip_prefix = \"windows-sys-0.60.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-sys-0.60.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.windows-sys-0.61.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-targets-0.42.2\",\n sha256 = \"8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.42.2/download\"],\n strip_prefix = \"windows-targets-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-targets-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-targets-0.48.5\",\n sha256 = \"9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.48.5/download\"],\n strip_prefix = \"windows-targets-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-targets-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-targets-0.52.6\",\n sha256 = \"9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.52.6/download\"],\n strip_prefix = \"windows-targets-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-targets-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows-targets-0.53.5\",\n sha256 = \"4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.53.5/download\"],\n strip_prefix = \"windows-targets-0.53.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows-targets-0.53.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_gnullvm-0.42.2\",\n sha256 = \"597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.42.2/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_gnullvm-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_gnullvm-0.48.5\",\n sha256 = \"2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.48.5/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_gnullvm-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_gnullvm-0.52.6\",\n sha256 = \"32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_gnullvm-0.53.1\",\n sha256 = \"a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.53.1/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_gnullvm-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_msvc-0.42.2\",\n sha256 = \"e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.42.2/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_msvc-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_msvc-0.48.5\",\n sha256 = \"dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.48.5/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_msvc-0.52.6\",\n sha256 = \"09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_aarch64_msvc-0.53.1\",\n sha256 = \"b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.53.1/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_aarch64_msvc-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_gnu-0.42.2\",\n sha256 = \"c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.42.2/download\"],\n strip_prefix = \"windows_i686_gnu-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_gnu-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_gnu-0.48.5\",\n sha256 = \"a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.48.5/download\"],\n strip_prefix = \"windows_i686_gnu-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_gnu-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_gnu-0.52.6\",\n sha256 = \"8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnu-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_gnu-0.53.1\",\n sha256 = \"960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.53.1/download\"],\n strip_prefix = \"windows_i686_gnu-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_gnu-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_gnullvm-0.52.6\",\n sha256 = \"0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnullvm-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_gnullvm-0.53.1\",\n sha256 = \"fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnullvm/0.53.1/download\"],\n strip_prefix = \"windows_i686_gnullvm-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_gnullvm-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_msvc-0.42.2\",\n sha256 = \"44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.42.2/download\"],\n strip_prefix = \"windows_i686_msvc-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_msvc-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_msvc-0.48.5\",\n sha256 = \"8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.48.5/download\"],\n strip_prefix = \"windows_i686_msvc-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_msvc-0.52.6\",\n sha256 = \"240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.52.6/download\"],\n strip_prefix = \"windows_i686_msvc-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_i686_msvc-0.53.1\",\n sha256 = \"1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.53.1/download\"],\n strip_prefix = \"windows_i686_msvc-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_i686_msvc-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnu-0.42.2\",\n sha256 = \"8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.42.2/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnu-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnu-0.48.5\",\n sha256 = \"53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.48.5/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnu-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnu-0.52.6\",\n sha256 = \"147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnu-0.53.1\",\n sha256 = \"9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.53.1/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnu-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnullvm-0.42.2\",\n sha256 = \"26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.42.2/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnullvm-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnullvm-0.48.5\",\n sha256 = \"0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.48.5/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnullvm-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnullvm-0.52.6\",\n sha256 = \"24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_gnullvm-0.53.1\",\n sha256 = \"0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.53.1/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_gnullvm-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_msvc-0.42.2\",\n sha256 = \"9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.42.2/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.42.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_msvc-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_msvc-0.48.5\",\n sha256 = \"ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.48.5/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.48.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_msvc-0.52.6\",\n sha256 = \"589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.52.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__windows_x86_64_msvc-0.53.1\",\n sha256 = \"d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.53.1/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.53.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.windows_x86_64_msvc-0.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__winreg-0.50.0\",\n sha256 = \"524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winreg/0.50.0/download\"],\n strip_prefix = \"winreg-0.50.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.winreg-0.50.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wit-bindgen-0.51.0\",\n sha256 = \"d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-bindgen/0.51.0/download\"],\n strip_prefix = \"wit-bindgen-0.51.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wit-bindgen-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wit-bindgen-core-0.51.0\",\n sha256 = \"ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-bindgen-core/0.51.0/download\"],\n strip_prefix = \"wit-bindgen-core-0.51.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wit-bindgen-core-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wit-bindgen-rust-0.51.0\",\n sha256 = \"b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-bindgen-rust/0.51.0/download\"],\n strip_prefix = \"wit-bindgen-rust-0.51.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wit-bindgen-rust-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wit-bindgen-rust-macro-0.51.0\",\n sha256 = \"0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-bindgen-rust-macro/0.51.0/download\"],\n strip_prefix = \"wit-bindgen-rust-macro-0.51.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wit-bindgen-rust-macro-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wit-component-0.244.0\",\n sha256 = \"9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-component/0.244.0/download\"],\n strip_prefix = \"wit-component-0.244.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wit-component-0.244.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__wit-parser-0.244.0\",\n sha256 = \"ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-parser/0.244.0/download\"],\n strip_prefix = \"wit-parser-0.244.0\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.wit-parser-0.244.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__writeable-0.6.2\",\n sha256 = \"9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/writeable/0.6.2/download\"],\n strip_prefix = \"writeable-0.6.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.writeable-0.6.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__x509-parser-0.18.1\",\n sha256 = \"d43b0f71ce057da06bc0851b23ee24f3f86190b07203dd8f567d0b706a185202\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/x509-parser/0.18.1/download\"],\n strip_prefix = \"x509-parser-0.18.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.x509-parser-0.18.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__xxhash-rust-0.8.16\",\n sha256 = \"4d93c89cdc2d3a63c3ec48ffe926931bdc069eafa8e4402fe6d8f790c9d1e576\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/xxhash-rust/0.8.16/download\"],\n strip_prefix = \"xxhash-rust-0.8.16\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.xxhash-rust-0.8.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__yasna-0.5.2\",\n sha256 = \"e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/yasna/0.5.2/download\"],\n strip_prefix = \"yasna-0.5.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.yasna-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__yoke-0.8.1\",\n sha256 = \"72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/yoke/0.8.1/download\"],\n strip_prefix = \"yoke-0.8.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.yoke-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__yoke-derive-0.8.1\",\n sha256 = \"b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/yoke-derive/0.8.1/download\"],\n strip_prefix = \"yoke-derive-0.8.1\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.yoke-derive-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.zerocopy-0.8.39.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.zerocopy-derive-0.8.39.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__zerofrom-0.1.6\",\n sha256 = \"50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerofrom/0.1.6/download\"],\n strip_prefix = \"zerofrom-0.1.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.zerofrom-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__zerofrom-derive-0.1.6\",\n sha256 = \"d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerofrom-derive/0.1.6/download\"],\n strip_prefix = \"zerofrom-derive-0.1.6\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.zerofrom-derive-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__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(\"@stargate_crates//stargate_crates:BUILD.zeroize-1.8.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__zerotrie-0.2.3\",\n sha256 = \"2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerotrie/0.2.3/download\"],\n strip_prefix = \"zerotrie-0.2.3\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.zerotrie-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__zerovec-0.11.5\",\n sha256 = \"6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerovec/0.11.5/download\"],\n strip_prefix = \"zerovec-0.11.5\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.zerovec-0.11.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__zerovec-derive-0.11.2\",\n sha256 = \"eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerovec-derive/0.11.2/download\"],\n strip_prefix = \"zerovec-derive-0.11.2\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.zerovec-derive-0.11.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"stargate_crates__zmij-1.0.21\",\n sha256 = \"b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zmij/1.0.21/download\"],\n strip_prefix = \"zmij-1.0.21\",\n build_file = Label(\"@stargate_crates//stargate_crates:BUILD.zmij-1.0.21.bazel\"),\n )\n\n return [\n struct(repo=\"stargate_crates__anyhow-1.0.103\", is_dev_dep = False),\n struct(repo=\"stargate_crates__async-stream-0.3.6\", is_dev_dep = False),\n struct(repo=\"stargate_crates__async-trait-0.1.89\", is_dev_dep = False),\n struct(repo=\"stargate_crates__axum-0.8.9\", is_dev_dep = False),\n struct(repo=\"stargate_crates__built-0.8.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__bytes-1.12.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__capnp-0.23.2\", is_dev_dep = False),\n struct(repo=\"stargate_crates__capnp-futures-0.23.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__capnpc-0.23.3\", is_dev_dep = False),\n struct(repo=\"stargate_crates__clap-4.6.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__flume-0.12.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__futures-0.3.32\", is_dev_dep = False),\n struct(repo=\"stargate_crates__git2-0.20.4\", is_dev_dep = False),\n struct(repo=\"stargate_crates__h3-0.0.8\", is_dev_dep = False),\n struct(repo=\"stargate_crates__h3-quinn-0.0.10\", is_dev_dep = False),\n struct(repo=\"stargate_crates__hickory-resolver-0.24.4\", is_dev_dep = False),\n struct(repo=\"stargate_crates__http-1.4.2\", is_dev_dep = False),\n struct(repo=\"stargate_crates__httpdate-1.0.3\", is_dev_dep = False),\n struct(repo=\"stargate_crates__indexmap-2.14.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__k8s-openapi-0.27.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__kube-3.1.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__memchr-2.8.3\", is_dev_dep = False),\n struct(repo=\"stargate_crates__moka-0.12.15\", is_dev_dep = False),\n struct(repo=\"stargate_crates__opentelemetry-0.32.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__opentelemetry-http-0.32.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__opentelemetry-otlp-0.32.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__opentelemetry_sdk-0.32.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__parking_lot-0.12.5\", is_dev_dep = False),\n struct(repo=\"stargate_crates__prometheus-0.14.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__prost-0.14.4\", is_dev_dep = False),\n struct(repo=\"stargate_crates__quinn-0.11.11\", is_dev_dep = False),\n struct(repo=\"stargate_crates__rand-0.9.3\", is_dev_dep = False),\n struct(repo=\"stargate_crates__rcgen-0.13.2\", is_dev_dep = False),\n struct(repo=\"stargate_crates__reqwest-0.13.4\", is_dev_dep = False),\n struct(repo=\"stargate_crates__rustls-0.23.41\", is_dev_dep = False),\n struct(repo=\"stargate_crates__rustls-pemfile-2.2.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__rustls-webpki-0.103.9\", is_dev_dep = False),\n struct(repo=\"stargate_crates__scc-3.7.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__serde-1.0.228\", is_dev_dep = False),\n struct(repo=\"stargate_crates__serde_json-1.0.150\", is_dev_dep = False),\n struct(repo=\"stargate_crates__serde_yaml_ng-0.10.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__sfv-0.15.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__sonic-rs-0.5.8\", is_dev_dep = False),\n struct(repo=\"stargate_crates__sse-core-0.2.3\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tempfile-3.27.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__thiserror-2.0.18\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tokio-1.52.3\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tokio-stream-0.1.18\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tokio-util-0.7.18\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tonic-0.14.6\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tonic-prost-0.14.6\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tonic-prost-build-0.14.6\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tower-0.5.3\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tracing-0.1.44\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tracing-opentelemetry-0.33.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__tracing-subscriber-0.3.23\", is_dev_dep = False),\n struct(repo=\"stargate_crates__url-2.5.8\", is_dev_dep = False),\n struct(repo=\"stargate_crates__uuid-1.22.0\", is_dev_dep = False),\n struct(repo=\"stargate_crates__x509-parser-0.18.1\", is_dev_dep = False),\n struct(repo=\"stargate_crates__xxhash-rust-0.8.16\", is_dev_dep = False),\n struct(repo = \"stargate_crates__criterion-0.5.1\", is_dev_dep = True),\n struct(repo = \"stargate_crates__hyper-util-0.1.20\", is_dev_dep = True),\n struct(repo = \"stargate_crates__proptest-1.11.0\", is_dev_dep = True),\n ]\n" } } }, diff --git a/src/libraries/rust/stargate/Cargo.lock b/src/libraries/rust/stargate/Cargo.lock index e11b2460b5..52870ce725 100644 --- a/src/libraries/rust/stargate/Cargo.lock +++ b/src/libraries/rust/stargate/Cargo.lock @@ -3549,6 +3549,21 @@ dependencies = [ "tracing", ] +[[package]] +name = "stargate-routing-sim" +version = "0.15.2" +dependencies = [ + "anyhow", + "clap", + "mock-engine", + "rand 0.9.3", + "serde", + "serde_json", + "stargate", + "stargate-proto", + "stargate-protocol", +] + [[package]] name = "stargate-runtime" version = "0.15.2" diff --git a/src/libraries/rust/stargate/Cargo.toml b/src/libraries/rust/stargate/Cargo.toml index 558cc093db..da2d2c71ff 100644 --- a/src/libraries/rust/stargate/Cargo.toml +++ b/src/libraries/rust/stargate/Cargo.toml @@ -28,6 +28,7 @@ members = [ "crates/mock-dynamo", "crates/mock-engine", "crates/stargate-bench", + "crates/stargate-routing-sim", "crates/pylon", ] resolver = "3" diff --git a/src/libraries/rust/stargate/crates/stargate-routing-sim/BUILD.bazel b/src/libraries/rust/stargate/crates/stargate-routing-sim/BUILD.bazel new file mode 100644 index 0000000000..278b8354bc --- /dev/null +++ b/src/libraries/rust/stargate/crates/stargate-routing-sim/BUILD.bazel @@ -0,0 +1,31 @@ +# SPDX-FileCopyrightText: Copyright (c) NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +# Routing simulator. Not packaged into an OCI image. + +load("@stargate_crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_test") + +# Workspace-local Cargo deps (own-workspace `workspace = true`). +_WORKSPACE_DEPS = [ + "//src/libraries/rust/stargate/crates/mock-engine", + "//src/libraries/rust/stargate/crates/proto:stargate-proto", + "//src/libraries/rust/stargate/crates/protocol:stargate-protocol", + "//src/libraries/rust/stargate/crates/stargate:stargate_lib", +] + +rust_binary( + name = "stargate-routing-sim", + srcs = glob(["src/**/*.rs"]), + aliases = aliases(), + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + visibility = ["//visibility:public"], + deps = _WORKSPACE_DEPS + all_crate_deps(normal = True), +) + +rust_test( + name = "stargate-routing-sim_test", + crate = ":stargate-routing-sim", + deps = _WORKSPACE_DEPS + all_crate_deps(normal_dev = True), +) diff --git a/src/libraries/rust/stargate/crates/stargate-routing-sim/Cargo.toml b/src/libraries/rust/stargate/crates/stargate-routing-sim/Cargo.toml new file mode 100644 index 0000000000..b8e619c911 --- /dev/null +++ b/src/libraries/rust/stargate/crates/stargate-routing-sim/Cargo.toml @@ -0,0 +1,42 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +[package] +name = "stargate-routing-sim" +version.workspace = true +edition.workspace = true +authors.workspace = true +license.workspace = true +homepage.workspace = true +repository.workspace = true +description = "Discrete-event simulator that drives the real Stargate load balancers in virtual time" + +[lints] +workspace = true + +[[bin]] +name = "stargate-routing-sim" +path = "src/main.rs" + +[dependencies] +anyhow = { workspace = true } +clap = { workspace = true } +mock-engine = { workspace = true } +rand = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +stargate = { workspace = true } +stargate-proto = { workspace = true } +stargate-protocol = { workspace = true } diff --git a/src/libraries/rust/stargate/crates/stargate-routing-sim/README.md b/src/libraries/rust/stargate/crates/stargate-routing-sim/README.md new file mode 100644 index 0000000000..3c638555d8 --- /dev/null +++ b/src/libraries/rust/stargate/crates/stargate-routing-sim/README.md @@ -0,0 +1,60 @@ +# stargate-routing-sim + +Discrete-event simulator for comparing Stargate load-balancer policies and +configurations. It calls the production `LoadBalancer` implementations from the +`stargate` crate in virtual time. It models the surrounding system: + +- Stargate: one load-balancer instance per Stargate, stale per-backend stats, + optimistic reservations cleared by heartbeats, the routing wait and retry + loop, and queue-mismatch reroutes. +- Pylon: live request phases, queue estimates, queue-mismatch admission, and + the fallback input-throughput window that sets `last_mean_input_tps` and + `max_input_tps`. +- Engine: the `mock-engine` crate that MockDynamo also runs. Each backend is a + Dynamo deployment with `num_gpu_workers` workers that batch prefill and + decode in shared steps, keep their own KV caches, and receive requests by + perfect KV routing. +- Network: per-region round-trip times between Stargates and backends. +- Clients: fixed sessions with open-loop Poisson arrivals, or growing + conversations whose sessions start with Poisson arrivals and whose later + turns follow the previous response after a think time. Failed growing turns + retry with backoff. A client timeout cancels engine work, and a TTFT SLO + defines goodput. + +## Usage + +Run from `src/libraries/rust/stargate`: + +```sh +cargo run --release -p stargate-routing-sim -- \ + --config crates/stargate-routing-sim/configs/stargate-dev-parity.json \ + --output /tmp/routing-sim.json +``` + +Each config runs every combination of seed, rate, and policy. All policies see +the same arrival sequence for a seed. Policy `load_balancer` objects use the +same JSON shape as Stargate per-model load-balancer config. + +## Fidelity limits + +- Engine step costs are estimates until calibrated against a real engine. +- Load balancers use an unseeded thread RNG internally and read a small amount + of real-clock jitter through the request receive time, so runs with the same + seed are not bit-for-bit reproducible. Use several seeds. +- Offered requests and SLO attainment count every attempt, including + growing-session retries. A retry's TTFT starts at the retry. +- Arrivals stop at the end of the measurement window. Requests that arrived in + the window run to completion. +- A request succeeds when the engine completes it, even if the client timeout + fires during the final one-way trip back to the Stargate. +- One backend per routed cluster. Shared-engine cluster aggregation and + sibling-backend retries are not modeled. +- `max_input_work_seconds` admission, `consider_kv_free_tokens`, priorities, + and registration churn are not modeled. Simulated Pylons publish no KV-cache + stats. +- Without `pylon.stats_update_coalesce_ms`, Pylons publish only on the + heartbeat. Production Pylons also publish on request state changes. +- Retries for upstream errors other than queue-mismatch rejections are not + modeled. +- Results are relative comparisons until the engine model is calibrated + against real-engine measurements. diff --git a/src/libraries/rust/stargate/crates/stargate-routing-sim/configs/stargate-dev-parity.json b/src/libraries/rust/stargate/crates/stargate-routing-sim/configs/stargate-dev-parity.json new file mode 100644 index 0000000000..30107d09fc --- /dev/null +++ b/src/libraries/rust/stargate/crates/stargate-routing-sim/configs/stargate-dev-parity.json @@ -0,0 +1,174 @@ +{ + "name": "stargate-dev parity: five regions, one H100 batched worker per backend, fixed 6,661-token sessions", + "seeds": [ + 1, + 2, + 3 + ], + "topology": { + "regions": [ + { + "name": "usw2", + "stargates": 3, + "backends": 4, + "traffic_weight": 1.0 + }, + { + "name": "ue1", + "stargates": 3, + "backends": 4, + "traffic_weight": 0.0 + }, + { + "name": "ew1", + "stargates": 3, + "backends": 4, + "traffic_weight": 0.0 + }, + { + "name": "an1", + "stargates": 3, + "backends": 4, + "traffic_weight": 0.0 + }, + { + "name": "as2", + "stargates": 3, + "backends": 4, + "traffic_weight": 0.0 + } + ], + "rtt_ms": [ + [ + 0, + 65, + 125, + 100, + 140 + ], + [ + 65, + 0, + 70, + 150, + 200 + ], + [ + 125, + 70, + 0, + 210, + 255 + ], + [ + 100, + 150, + 210, + 0, + 105 + ], + [ + 140, + 200, + 255, + 105, + 0 + ] + ], + "intra_region_rtt_ms": 1.0, + "stats_relay_delay_ms": 0.0 + }, + "engine": { + "num_gpu_workers": 1, + "max_num_seqs": 25, + "max_batched_tokens": 2048, + "step_fixed_ms": 4.0, + "step_decode_ms_per_seq": 0.085, + "step_prefill_ms_per_token": 0.05, + "kv_cache_capacity_tokens": 400000 + }, + "pylon": { + "heartbeat_ms": 1000.0, + "input_tps": { + "model": "fallback-window", + "initial": 20000.0, + "window": 8, + "duration_floor_ms": 10.0 + }, + "queue_mismatch": { + "enabled": true, + "min_delta_ms": 10000, + "tolerance_factor": 4.0 + }, + "stats_update_coalesce_ms": 10.0 + }, + "stargate": { + "max_request_retries": 2, + "routing_key": "stargate-dev", + "model_id": "stargate-dev-model" + }, + "client": { + "request_slo_ms": 10000, + "max_wait_ms": 10000, + "timeout_ms": 30000, + "ttft_slo_ms": 10000 + }, + "workload": { + "rates_rps": [ + 80.0, + 160.0, + 240.0, + 320.0 + ], + "warmup_s": 60.0, + "measure_s": 180.0, + "fixed": { + "sessions": 768, + "input_tokens_min": 6661, + "input_tokens_max": 6661, + "output_tokens": 256, + "session_zipf_s": 0.0 + } + }, + "policies": [ + { + "name": "waw-deployed", + "load_balancer": { + "algorithm": "wait-and-widen", + "cache_affinity_backend_selection_count": 1, + "cache_affinity_input_tokens_scale": 0.1, + "cache_affinity_virtual_nodes": 150, + "cache_affinity_wait_ms": 300, + "comparator": "utilization", + "max_queued": 4, + "n": 2, + "next_bucket_unlock_factor": 0.25, + "require_cache_affinity_key": true, + "require_input_tokens": true, + "ttft_bucket_size_ms": 20 + } + }, + { + "name": "pulsar-waw-deployed", + "load_balancer": { + "algorithm": "pulsar-wait-and-widen", + "max_queue_time_floor_ms": 4000, + "max_queue_time_ceil_ms": 4000, + "max_queued": 4, + "n": 2, + "next_bucket_unlock_factor": 0.25, + "require_cache_affinity_key": true, + "require_input_tokens": true, + "ttft_bucket_size_ms": 20 + } + }, + { + "name": "power-of-2-baseline", + "load_balancer": { + "algorithm": "power-of-n", + "sample_count": 2, + "comparator": "ttft" + } + } + ] +} diff --git a/src/libraries/rust/stargate/crates/stargate-routing-sim/src/backend.rs b/src/libraries/rust/stargate/crates/stargate-routing-sim/src/backend.rs new file mode 100644 index 0000000000..3c9e186b1d --- /dev/null +++ b/src/libraries/rust/stargate/crates/stargate-routing-sim/src/backend.rs @@ -0,0 +1,362 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! One Pylon in front of one MockDynamo deployment. +//! +//! Engine: the shared `mock-engine` model that MockDynamo runs in real time. +//! It owns scheduling, batching, KV caching, and worker routing. +//! +//! Pylon: tracks live requests by phase and publishes the same `ModelStats` +//! fields that `pylon-lib/src/queue_admission.rs` derives for routing. + +use std::collections::{HashMap, VecDeque}; + +use mock_engine::{Engine, EngineConfig, EngineEvent, RequestSpec}; +use stargate_proto::pb::ModelStats; +use stargate_protocol::common::{has_available_engine_slot, queue_time_delta_ms}; + +use crate::config::{InputTpsModel, PylonConfig, QueueMismatchConfig}; +use crate::time::{Micros, micros_from_ms}; + +pub struct Backend { + pub id: String, + pub region: usize, + pub gpu_workers: usize, + engine: Engine, + /// Pylon's limit: the deployment's workers times sequences per worker. + pub max_engine_concurrency: u64, + /// Time of the scheduled engine wake event, if any. + pub wake_at: Option, + input_phase_requests: u64, + output_phase_requests: u64, + prompt_work_tokens: u64, + total_input_tokens: u64, + input_tps: InputTpsEstimate, +} + +/// Pylon's reported input throughput. +struct InputTpsEstimate { + last_mean: f64, + max: f64, + /// (submitted, first output, input tokens), ordered by first output. + window: VecDeque<(Micros, Micros, u64)>, +} + +impl Backend { + pub fn new( + id: String, + region: usize, + speed: f64, + engine: EngineConfig, + pylon: &PylonConfig, + ) -> anyhow::Result { + let capacity = speed * engine.num_gpu_workers as f64; + let (last_mean, max) = match pylon.input_tps { + InputTpsModel::Constant { mean, max } => (mean * capacity, max * capacity), + InputTpsModel::FallbackWindow { initial, .. } => { + (initial * capacity, initial * capacity) + } + }; + let max_engine_concurrency = engine.max_concurrency(); + Ok(Self { + id, + region, + gpu_workers: engine.num_gpu_workers, + engine: Engine::new(engine, false).map_err(anyhow::Error::msg)?, + max_engine_concurrency, + wake_at: None, + input_phase_requests: 0, + output_phase_requests: 0, + prompt_work_tokens: 0, + total_input_tokens: 0, + input_tps: InputTpsEstimate { + last_mean, + max, + window: VecDeque::new(), + }, + }) + } + + fn live_requests(&self) -> u64 { + self.input_phase_requests + self.output_phase_requests + } + + /// Whether Pylon tracks no live requests or prompt work and the engine + /// holds no sequences. + pub fn is_idle(&self) -> bool { + self.live_requests() == 0 + && self.prompt_work_tokens == 0 + && self.total_input_tokens == 0 + && self + .engine + .worker_stats() + .iter() + .all(|worker| worker.waiting == 0 && worker.running == 0) + } + + /// Pylon queue-estimate mismatch admission. Returns true when Pylon would + /// reject with a retryable 429 before the request reaches the engine. + pub fn rejects(&self, expected_queue_ms: Option, mismatch: &QueueMismatchConfig) -> bool { + if !mismatch.enabled { + return false; + } + let Some(expected_ms) = expected_queue_ms else { + return false; + }; + let actual_ms = + if has_available_engine_slot(self.live_requests(), self.max_engine_concurrency) { + 0 + } else { + queue_time_delta_ms(self.prompt_work_tokens, self.input_tps.last_mean) + .unwrap_or(u64::MAX) + }; + let additive = expected_ms.saturating_add(mismatch.min_delta_ms); + let factor = if mismatch.tolerance_factor.is_finite() && mismatch.tolerance_factor > 0.0 { + mismatch.tolerance_factor + } else { + 1.0 + }; + let multiplicative = ((expected_ms as f64) * factor).ceil() as u64; + actual_ms > additive.max(multiplicative) + } + + /// Pylon accepted the request and submitted it to the engine. + pub fn accept(&mut self, now: Micros, request: usize, spec: RequestSpec) { + self.input_phase_requests += 1; + self.prompt_work_tokens += spec.input_tokens; + self.total_input_tokens += spec.input_tokens; + self.engine.submit(now, request as u64, spec); + } + + pub fn advance_engine(&mut self, now: Micros) -> Vec { + self.engine.advance_to(now) + } + + pub fn next_engine_event(&self) -> Option { + self.engine.next_event_time() + } + + /// Pylon observed first output for a request it submitted at `submitted`. + pub fn first_token( + &mut self, + input_tokens: u64, + submitted: Micros, + first_output: Micros, + pylon: &PylonConfig, + ) { + self.input_phase_requests -= 1; + self.output_phase_requests += 1; + self.prompt_work_tokens -= input_tokens; + if let InputTpsModel::FallbackWindow { + window, + duration_floor_ms, + .. + } = pylon.input_tps + { + self.observe_input_interval( + submitted, + first_output, + input_tokens, + window, + duration_floor_ms, + ); + } + } + + fn observe_input_interval( + &mut self, + submitted: Micros, + first_output: Micros, + input_tokens: u64, + window: usize, + duration_floor_ms: f64, + ) { + if first_output <= submitted { + return; + } + let estimate = &mut self.input_tps; + // Events arrive in time order, so first-output order is append order. + estimate + .window + .push_back((submitted, first_output, input_tokens)); + while estimate.window.len() > window { + estimate.window.pop_front(); + } + let tokens: u64 = estimate.window.iter().map(|entry| entry.2).sum(); + let mut intervals: Vec<(Micros, Micros)> = estimate + .window + .iter() + .map(|entry| (entry.0, entry.1)) + .collect(); + intervals.sort_unstable(); + let mut union: Micros = 0; + let (mut start, mut end) = intervals[0]; + for &(next_start, next_end) in &intervals[1..] { + if next_start <= end { + end = end.max(next_end); + } else { + union += end - start; + (start, end) = (next_start, next_end); + } + } + union += end - start; + let seconds = union.max(micros_from_ms(duration_floor_ms)) as f64 / 1_000_000.0; + let rate = tokens as f64 / seconds; + if rate.is_finite() && rate > 0.0 { + estimate.last_mean = rate; + estimate.max = estimate.max.max(rate); + } + } + + /// Pylon saw the request finish. + pub fn complete(&mut self, input_tokens: u64) { + self.output_phase_requests -= 1; + self.total_input_tokens -= input_tokens; + } + + /// The client disconnected; the engine drops the request. + pub fn cancel(&mut self, now: Micros, request: usize, input_tokens: u64, decoding: bool) { + if decoding { + self.output_phase_requests -= 1; + } else { + self.input_phase_requests -= 1; + self.prompt_work_tokens -= input_tokens; + } + self.total_input_tokens -= input_tokens; + self.engine.cancel(now, request as u64); + } + + pub fn stats(&self) -> ModelStats { + let mean_input_tps = self.input_tps.last_mean; + let mut queue_time_estimate_ms_by_priority = HashMap::new(); + if self.prompt_work_tokens > 0 { + queue_time_estimate_ms_by_priority.insert( + 0, + queue_time_delta_ms(self.prompt_work_tokens, mean_input_tps).unwrap_or(u64::MAX), + ); + } + ModelStats { + last_mean_input_tps: mean_input_tps, + max_input_tps: Some(self.input_tps.max), + queue_size: self.input_phase_requests, + queued_input_size: self.prompt_work_tokens, + num_running_queries: self.live_requests(), + max_engine_concurrency: self.max_engine_concurrency, + total_query_input_size: self.total_input_tokens, + input_processing_queries: self.input_phase_requests, + output_generation_queries: self.output_phase_requests, + queue_time_estimate_ms_by_priority, + ..Default::default() + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + fn engine() -> EngineConfig { + EngineConfig { + num_gpu_workers: 1, + max_num_seqs: 2, + max_batched_tokens: 10_000, + step_fixed_ms: 1.0, + step_decode_ms_per_seq: 0.0, + step_prefill_ms_per_token: 1.0, + kv_cache_capacity_tokens: 100_000, + } + } + + fn pylon() -> PylonConfig { + PylonConfig { + heartbeat_ms: 1000.0, + stats_update_coalesce_ms: None, + input_tps: InputTpsModel::Constant { + mean: 1000.0, + max: 1000.0, + }, + queue_mismatch: QueueMismatchConfig { + enabled: true, + min_delta_ms: 25, + tolerance_factor: 1.25, + }, + } + } + + fn spec(input_tokens: u64) -> RequestSpec { + RequestSpec { + cache_key: None, + input_tokens, + output_tokens: 4, + } + } + + #[test] + fn pylon_stats_track_phases_and_engine_concurrency() { + let pylon = pylon(); + let mut backend = Backend::new("b".into(), 0, 1.0, engine(), &pylon).unwrap(); + backend.accept(0, 0, spec(100)); + backend.accept(0, 1, spec(100)); + backend.accept(0, 2, spec(100)); + let stats = backend.stats(); + assert_eq!(stats.max_engine_concurrency, 2); + assert_eq!(stats.num_running_queries, 3); + assert_eq!(stats.queued_input_size, 300); + assert_eq!(stats.queue_time_estimate_ms_by_priority.get(&0), Some(&300)); + + backend.first_token(100, 0, 10_000, &pylon); + backend.cancel(20_000, 2, 100, false); + let stats = backend.stats(); + assert_eq!(stats.num_running_queries, 2); + assert_eq!(stats.queued_input_size, 100); + } + + #[test] + fn mismatch_rejects_only_when_full_and_far_above_expected() { + let pylon = pylon(); + let mut backend = Backend::new("b".into(), 0, 1.0, engine(), &pylon).unwrap(); + backend.accept(0, 0, spec(1000)); + assert!(!backend.rejects(Some(0), &pylon.queue_mismatch)); + backend.accept(0, 1, spec(1000)); + // Full engine with 2,000 prompt tokens at 1,000 tokens/s is 2,000 ms. + assert!(backend.rejects(Some(0), &pylon.queue_mismatch)); + assert!(!backend.rejects(Some(1700), &pylon.queue_mismatch)); + assert!(!backend.rejects(None, &pylon.queue_mismatch)); + } + + #[test] + fn fallback_window_rate_uses_interval_union_and_keeps_peak() { + let mut pylon = pylon(); + pylon.input_tps = InputTpsModel::FallbackWindow { + initial: 500.0, + window: 2, + duration_floor_ms: 10.0, + }; + let mut backend = Backend::new("b".into(), 0, 1.0, engine(), &pylon).unwrap(); + for request in 0..3 { + backend.accept(0, request, spec(1000)); + } + // Two overlapping one-second intervals: 2,000 tokens over 1.5 s. + backend.first_token(1000, 0, 1_000_000, &pylon); + backend.first_token(1000, 500_000, 1_500_000, &pylon); + let stats = backend.stats(); + assert!((stats.last_mean_input_tps - 2000.0 / 1.5).abs() < 1e-6); + // A cache hit with a 20 ms interval replaces the oldest entry. + backend.first_token(1000, 1_980_000, 2_000_000, &pylon); + let stats = backend.stats(); + assert!((stats.last_mean_input_tps - 2000.0 / 1.02).abs() < 1e-6); + assert_eq!(stats.max_input_tps, Some(stats.last_mean_input_tps)); + } +} diff --git a/src/libraries/rust/stargate/crates/stargate-routing-sim/src/config.rs b/src/libraries/rust/stargate/crates/stargate-routing-sim/src/config.rs new file mode 100644 index 0000000000..43437cb0c3 --- /dev/null +++ b/src/libraries/rust/stargate/crates/stargate-routing-sim/src/config.rs @@ -0,0 +1,431 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use anyhow::{Context, bail}; +use mock_engine::EngineConfig; +use serde::Deserialize; +use stargate::load_balancer::LoadBalancerAlgorithmConfig; + +use crate::time::micros_from_ms; + +#[derive(Clone, Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct SimConfig { + pub name: String, + pub seeds: Vec, + pub topology: TopologyConfig, + /// The MockDynamo deployment behind each Pylon, shared with MockDynamo. + pub engine: EngineConfig, + pub pylon: PylonConfig, + pub stargate: StargateConfig, + pub client: ClientConfig, + pub workload: WorkloadConfig, + pub policies: Vec, +} + +#[derive(Clone, Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct TopologyConfig { + pub regions: Vec, + /// Symmetric inter-region round-trip times in milliseconds, indexed by + /// region. The diagonal is unused; see `intra_region_rtt_ms`. + pub rtt_ms: Vec>, + pub intra_region_rtt_ms: f64, + /// Extra one-way delay for Pylon stats to reach each Stargate through relays. + #[serde(default)] + pub stats_relay_delay_ms: f64, +} + +#[derive(Clone, Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct RegionConfig { + pub name: String, + pub stargates: usize, + pub backends: usize, + /// Divides every engine step cost for backends in the region. + #[serde(default = "one")] + pub backend_speed: f64, + /// Overrides `engine.num_gpu_workers` for backends in the region. + #[serde(default)] + pub gpu_workers: Option, + /// Per-backend `num_gpu_workers`, one entry per backend. Takes precedence + /// over `gpu_workers`. + #[serde(default)] + pub backend_gpu_workers: Option>, + /// Relative share of client traffic that enters through this region. + #[serde(default = "one")] + pub traffic_weight: f64, +} + +#[derive(Clone, Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct PylonConfig { + pub heartbeat_ms: f64, + /// When set, Pylon also publishes after request state changes, at most + /// once per this many milliseconds. When absent, only heartbeats publish. + #[serde(default)] + pub stats_update_coalesce_ms: Option, + pub input_tps: InputTpsModel, + pub queue_mismatch: QueueMismatchConfig, +} + +/// How Pylon derives `last_mean_input_tps` and `max_input_tps`. +#[derive(Clone, Debug, Deserialize)] +#[serde(tag = "model", rename_all = "kebab-case", deny_unknown_fields)] +pub enum InputTpsModel { + /// Fixed values per GPU worker and unit of backend speed, as if seeded and + /// never observed. + Constant { mean: f64, max: f64 }, + /// OpenAI fallback stats: the rate over the most recent requests' input + /// tokens divided by the union of their submit-to-first-output intervals + /// (`pylon-lib/src/stats/aggregator.rs`). The maximum is a high-water mark. + FallbackWindow { + /// Value left by startup calibration, per GPU worker and unit of + /// backend speed. + initial: f64, + window: usize, + duration_floor_ms: f64, + }, +} + +#[derive(Clone, Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct QueueMismatchConfig { + pub enabled: bool, + pub min_delta_ms: u64, + pub tolerance_factor: f64, +} + +#[derive(Clone, Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct StargateConfig { + pub max_request_retries: u32, + pub routing_key: String, + pub model_id: String, +} + +#[derive(Clone, Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct ClientConfig { + /// Value of the request SLO header; drives queue-SLO widening. + pub request_slo_ms: Option, + /// Value of the routing max-wait header. + pub max_wait_ms: Option, + pub timeout_ms: u64, + /// Success criterion for goodput: first token within this budget. + pub ttft_slo_ms: u64, +} + +#[derive(Clone, Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct WorkloadConfig { + /// Offered request rates. Each rate is an independent steady-state run. + pub rates_rps: Vec, + pub warmup_s: f64, + pub measure_s: f64, + /// Exactly one of `fixed` or `growing` describes the sessions. + #[serde(default)] + pub fixed: Option, + #[serde(default)] + pub growing: Option, +} + +/// A fixed population of sessions. Each request picks a session and replays +/// its prompt, with Poisson arrivals. +#[derive(Clone, Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct FixedSessionsConfig { + pub sessions: usize, + pub input_tokens_min: u64, + pub input_tokens_max: u64, + pub output_tokens: u64, + /// Zipf exponent for session popularity. Zero selects sessions uniformly. + #[serde(default)] + pub session_zipf_s: f64, +} + +/// Conversations that grow each turn. Sessions start with Poisson arrivals; +/// each later turn starts a think time after the previous response finishes, +/// and its prompt is the previous prompt, the previous output, and a new user +/// message. A session ends after its sampled turn count, at the context limit, +/// or when a turn fails every attempt. +#[derive(Clone, Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct GrowingSessionsConfig { + pub system_prompt_tokens: u64, + pub user_tokens_min: u64, + pub user_tokens_max: u64, + pub output_tokens_min: u64, + pub output_tokens_max: u64, + pub turns_min: u32, + pub turns_max: u32, + /// Mean of the exponential delay between a response and the next turn. + pub think_time_mean_s: f64, + /// Prompt plus output limit; a turn that would exceed it ends the session. + pub max_context_tokens: u64, + /// Attempts per turn, including the first. A turn that fails every + /// attempt ends the session. + #[serde(default = "default_turn_attempts")] + pub max_turn_attempts: u32, + /// A failed attempt is retried after this many seconds times its attempt + /// number. + #[serde(default = "default_retry_backoff_s")] + pub retry_backoff_s: f64, +} + +fn default_turn_attempts() -> u32 { + 3 +} + +fn default_retry_backoff_s() -> f64 { + 1.0 +} + +#[derive(Clone, Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct PolicyConfig { + pub name: String, + /// Same shape as a Stargate per-model load-balancer config. + pub load_balancer: serde_json::Value, +} + +impl PolicyConfig { + pub fn algorithm_config(&self) -> anyhow::Result { + serde_json::from_value(self.load_balancer.clone()) + .with_context(|| format!("invalid load_balancer config for policy {}", self.name)) + } +} + +impl SimConfig { + pub fn validate(&self) -> anyhow::Result<()> { + let regions = self.topology.regions.len(); + if regions == 0 { + bail!("topology needs at least one region"); + } + let rtt = &self.topology.rtt_ms; + if rtt.len() != regions || rtt.iter().any(|row| row.len() != regions) { + bail!("rtt_ms must be a {regions}x{regions} matrix"); + } + if (0..regions).any(|a| (0..a).any(|b| rtt[a][b] != rtt[b][a])) { + bail!("rtt_ms must be symmetric"); + } + if self + .topology + .regions + .iter() + .all(|region| region.stargates == 0) + { + bail!("topology needs at least one Stargate"); + } + if self + .topology + .regions + .iter() + .all(|region| region.backends == 0) + { + bail!("topology needs at least one backend"); + } + match (&self.workload.fixed, &self.workload.growing) { + (Some(fixed), None) => { + if fixed.sessions == 0 { + bail!("fixed workload needs at least one session"); + } + if !fixed.session_zipf_s.is_finite() { + bail!("fixed workload session_zipf_s must be finite"); + } + if fixed.input_tokens_min == 0 || fixed.input_tokens_min > fixed.input_tokens_max { + bail!("fixed workload input token range is invalid"); + } + } + (None, Some(growing)) => { + if growing.user_tokens_min == 0 + || growing.user_tokens_min > growing.user_tokens_max + || growing.output_tokens_min == 0 + || growing.output_tokens_min > growing.output_tokens_max + || growing.turns_min == 0 + || growing.turns_min > growing.turns_max + { + bail!("growing workload ranges are invalid"); + } + if growing + .system_prompt_tokens + .saturating_add(growing.user_tokens_max) + .saturating_add(growing.output_tokens_max) + > growing.max_context_tokens + { + bail!("growing workload first turn can exceed max_context_tokens"); + } + if !(growing.think_time_mean_s.is_finite() && growing.think_time_mean_s >= 0.0) { + bail!("growing workload think_time_mean_s must be non-negative"); + } + if growing.max_turn_attempts == 0 + || !(growing.retry_backoff_s.is_finite() && growing.retry_backoff_s >= 0.0) + { + bail!("growing workload retry settings are invalid"); + } + } + _ => bail!("workload needs exactly one of fixed or growing"), + } + if self.seeds.is_empty() || self.workload.rates_rps.is_empty() || self.policies.is_empty() { + bail!("seeds, rates_rps and policies must be non-empty"); + } + self.engine.validate().map_err(anyhow::Error::msg)?; + // A heartbeat that rounds to zero microseconds reschedules itself forever. + if !(self.pylon.heartbeat_ms.is_finite() && micros_from_ms(self.pylon.heartbeat_ms) > 0) { + bail!("pylon.heartbeat_ms must be at least one microsecond"); + } + // A non-positive rate turns every queue estimate into the unknown + // sentinel, which production Pylon would not reject on. + let input_tps_valid = match self.pylon.input_tps { + InputTpsModel::Constant { mean, max } => { + mean.is_finite() && mean > 0.0 && max.is_finite() && max >= mean + } + InputTpsModel::FallbackWindow { + initial, window, .. + } => initial.is_finite() && initial > 0.0 && window > 0, + }; + if !input_tps_valid { + bail!("pylon.input_tps needs positive rates, max >= mean, and a positive window"); + } + if self.client.timeout_ms == 0 { + bail!("client.timeout_ms must be positive"); + } + if !(self.workload.measure_s.is_finite() && self.workload.measure_s > 0.0) { + bail!("workload.measure_s must be positive"); + } + // Virtual-time conversion would clamp negative or NaN delays to zero. + let mut delays = vec![ + ("workload.warmup_s", self.workload.warmup_s), + ( + "topology.intra_region_rtt_ms", + self.topology.intra_region_rtt_ms, + ), + ( + "topology.stats_relay_delay_ms", + self.topology.stats_relay_delay_ms, + ), + ]; + delays.extend( + self.topology + .rtt_ms + .iter() + .flatten() + .map(|rtt| ("topology.rtt_ms", *rtt)), + ); + if let Some(coalesce_ms) = self.pylon.stats_update_coalesce_ms { + delays.push(("pylon.stats_update_coalesce_ms", coalesce_ms)); + } + if let InputTpsModel::FallbackWindow { + duration_floor_ms, .. + } = self.pylon.input_tps + { + delays.push(("pylon.input_tps.duration_floor_ms", duration_floor_ms)); + } + for (name, value) in delays { + if !(value.is_finite() && value >= 0.0) { + bail!("{name} must be finite and non-negative"); + } + } + if self + .workload + .rates_rps + .iter() + .any(|rate| !(rate.is_finite() && *rate > 0.0)) + { + bail!("rates_rps must be positive"); + } + if self + .topology + .regions + .iter() + .any(|region| !(region.traffic_weight.is_finite() && region.traffic_weight >= 0.0)) + { + bail!("traffic_weight must be non-negative"); + } + if self + .topology + .regions + .iter() + .filter(|region| region.stargates > 0) + .all(|region| region.traffic_weight == 0.0) + { + bail!("regions with Stargates need a positive total traffic_weight"); + } + for region in &self.topology.regions { + if region.gpu_workers == Some(0) { + bail!("region {}: gpu_workers must be positive", region.name); + } + if !(region.backend_speed.is_finite() && region.backend_speed > 0.0) { + bail!("region {}: backend_speed must be positive", region.name); + } + if let Some(workers) = ®ion.backend_gpu_workers { + if workers.len() != region.backends { + bail!( + "region {}: backend_gpu_workers needs {} entries", + region.name, + region.backends + ); + } + if workers.contains(&0) { + bail!( + "region {}: backend_gpu_workers must be positive", + region.name + ); + } + } + } + for policy in &self.policies { + let config = policy.algorithm_config()?; + if config.max_input_work_seconds.is_some() { + bail!( + "policy {}: max_input_work_seconds is not modeled yet", + policy.name + ); + } + // Simulated Pylons publish no KV-cache stats, so every candidate + // would be skipped. + if config.considers_kv_free_tokens() { + bail!( + "policy {}: consider_kv_free_tokens is not modeled yet", + policy.name + ); + } + stargate::load_balancer::create_load_balancer_with_config(&config) + .with_context(|| format!("policy {} is not a valid load balancer", policy.name))?; + } + Ok(()) + } + + /// Engine configuration for backend `backend` in `region`. + pub fn backend_engine(&self, region: &RegionConfig, backend: usize) -> EngineConfig { + let speed = region.backend_speed; + EngineConfig { + num_gpu_workers: region + .backend_gpu_workers + .as_ref() + .map(|workers| workers[backend]) + .or(region.gpu_workers) + .unwrap_or(self.engine.num_gpu_workers), + step_fixed_ms: self.engine.step_fixed_ms / speed, + step_decode_ms_per_seq: self.engine.step_decode_ms_per_seq / speed, + step_prefill_ms_per_token: self.engine.step_prefill_ms_per_token / speed, + ..self.engine.clone() + } + } +} + +fn one() -> f64 { + 1.0 +} diff --git a/src/libraries/rust/stargate/crates/stargate-routing-sim/src/main.rs b/src/libraries/rust/stargate/crates/stargate-routing-sim/src/main.rs new file mode 100644 index 0000000000..c54c706fb5 --- /dev/null +++ b/src/libraries/rust/stargate/crates/stargate-routing-sim/src/main.rs @@ -0,0 +1,158 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +mod backend; +mod config; +mod metrics; +mod sim; +mod time; +mod workload; + +use std::num::NonZeroUsize; +use std::path::PathBuf; +use std::sync::Mutex; +use std::sync::atomic::{AtomicUsize, Ordering}; + +use anyhow::Context; +use clap::Parser; + +use crate::config::SimConfig; +use crate::metrics::RunSummary; +use crate::sim::RunSpec; + +#[derive(Parser, Debug)] +#[command(name = "stargate-routing-sim")] +struct Cli { + /// Simulation config (JSON). + #[arg(long)] + config: PathBuf, + /// Write every run summary to this JSON file. + #[arg(long)] + output: Option, + /// Parallel worker threads. Defaults to available parallelism. + #[arg(long)] + jobs: Option, +} + +fn main() -> anyhow::Result<()> { + let cli = Cli::parse(); + let raw = std::fs::read_to_string(&cli.config) + .with_context(|| format!("reading {}", cli.config.display()))?; + let config: SimConfig = + serde_json::from_str(&raw).with_context(|| format!("parsing {}", cli.config.display()))?; + config.validate()?; + + let mut specs = Vec::new(); + for seed in &config.seeds { + for rate_rps in &config.workload.rates_rps { + for policy in &config.policies { + specs.push(RunSpec { + config: &config, + policy, + rate_rps: *rate_rps, + seed: *seed, + }); + } + } + } + let jobs = cli + .jobs + .or_else(|| std::thread::available_parallelism().ok()) + .map_or(1, NonZeroUsize::get) + .min(specs.len()); + let next = AtomicUsize::new(0); + let results: Mutex>>> = + Mutex::new(specs.iter().map(|_| None).collect()); + std::thread::scope(|scope| { + for _ in 0..jobs { + scope.spawn(|| { + loop { + let index = next.fetch_add(1, Ordering::Relaxed); + let Some(spec) = specs.get(index) else { + break; + }; + let summary = sim::run(spec).with_context(|| { + format!( + "policy {} at {} rps with seed {}", + spec.policy.name, spec.rate_rps, spec.seed + ) + }); + results.lock().expect("results lock")[index] = Some(summary); + } + }); + } + }); + let summaries = results + .into_inner() + .expect("results lock") + .into_iter() + .map(|result| result.expect("every run completes")) + .collect::>>()?; + + print_table(&config.name, &summaries); + if let Some(output) = cli.output { + std::fs::write(&output, serde_json::to_string_pretty(&summaries)?) + .with_context(|| format!("writing {}", output.display()))?; + } + Ok(()) +} + +fn print_table(name: &str, summaries: &[RunSummary]) { + println!("{name}"); + println!( + "{:<34} {:>6} {:>5} {:>8} {:>8} {:>6} {:>6} {:>6} {:>6} {:>9} {:>9} {:>9} {:>6} {:>6} {:>6} {:>6} {:>6} {:>7}", + "policy", + "rps", + "seed", + "goodput", + "thruput", + "slo%", + "noRte", + "rtyEx", + "tmout", + "ttft50", + "ttft99", + "route99", + "hit%", + "reuse%", + "xreg%", + "off1%", + "peak", + "wall_ms" + ); + for summary in summaries { + println!( + "{:<34} {:>6.1} {:>5} {:>8.2} {:>8.2} {:>6.2} {:>6} {:>6} {:>6} {:>9.1} {:>9.1} {:>9.1} {:>6.1} {:>6.1} {:>6.1} {:>6.1} {:>6.2} {:>7.0}", + summary.policy, + summary.rate_rps, + summary.seed, + summary.goodput_rps, + summary.throughput_rps, + summary.slo_attainment * 100.0, + summary.failed_no_route, + summary.failed_retries_exhausted, + summary.failed_timeout, + summary.ttft_ms.p50, + summary.ttft_ms.p99, + summary.routing_delay_ms.p99, + summary.cache_hit_rate * 100.0, + summary.reused_input_token_fraction * 100.0, + summary.cross_region_fraction * 100.0, + summary.off_primary_fraction * 100.0, + summary.backend_load_peak_to_mean, + summary.wall_clock_ms, + ); + } +} diff --git a/src/libraries/rust/stargate/crates/stargate-routing-sim/src/metrics.rs b/src/libraries/rust/stargate/crates/stargate-routing-sim/src/metrics.rs new file mode 100644 index 0000000000..ed6b241f60 --- /dev/null +++ b/src/libraries/rust/stargate/crates/stargate-routing-sim/src/metrics.rs @@ -0,0 +1,326 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use std::time::Duration; + +use serde::Serialize; + +use crate::backend::Backend; +use crate::sim::RunSpec; +use crate::time::{Micros, micros_from_ms, ms}; + +#[derive(Clone, Debug, Default)] +pub struct RequestRecord { + pub arrival: Micros, + pub input_tokens: u64, + pub stargate_region: usize, + /// Load-balancer calls, including timed-wait rechecks. + pub route_attempts: u32, + pub mismatch_rejections: u32, + pub dispatched_at: Option, + pub backend_received_at: Option, + pub backend: Option, + /// Ranking depth of the final selection; 1 is the primary candidate. + pub rank_depth: usize, + /// When the engine produced the first token, before the return trip. + pub backend_first_token_at: Option, + pub reused_input_tokens: u64, + pub first_token_at: Option, + pub completed_at: Option, + pub attempt: u32, + /// The last allowed attempt of a growing-session turn failed. + pub abandoned_session: bool, + pub no_route: bool, + pub retries_exhausted: bool, + pub timed_out: bool, +} + +impl RequestRecord { + fn succeeded(&self) -> bool { + self.completed_at.is_some() && !self.timed_out + } + + fn ttft(&self) -> Micros { + self.first_token_at + .expect("successful request has a first token") + - self.arrival + } + + /// Backend arrival to first token at the backend. + fn backend_ttft(&self) -> Micros { + self.backend_first_token_at + .expect("successful request has a backend first token") + - self + .backend_received_at + .expect("successful request reached its backend") + } +} + +#[derive(Clone, Debug, Serialize)] +pub struct RunSummary { + pub policy: String, + pub rate_rps: f64, + pub seed: u64, + pub offered: usize, + pub succeeded: usize, + /// Successful requests whose first token met the TTFT SLO. + pub good: usize, + pub failed_no_route: usize, + pub failed_retries_exhausted: usize, + pub failed_timeout: usize, + /// Measured requests that retry a failed turn. + pub retried_requests: usize, + pub abandoned_sessions: usize, + pub goodput_rps: f64, + pub throughput_rps: f64, + pub slo_attainment: f64, + pub ttft_ms: Percentiles, + pub e2e_ms: Percentiles, + /// Prompt sizes of measured requests. + pub input_tokens: Percentiles, + /// Arrival to final dispatch, including affinity and bucket waits. + pub routing_delay_ms: Percentiles, + /// Backend arrival to first token at the backend: engine queueing plus prefill. + pub backend_ttft_ms: Percentiles, + pub cache_hit_rate: f64, + pub reused_input_token_fraction: f64, + pub mismatch_rejections: u64, + pub mean_route_attempts: f64, + pub cross_region_fraction: f64, + /// Successful requests not served by their first-ranked candidate. + pub off_primary_fraction: f64, + /// Highest per-backend share of successful requests divided by the mean share. + pub backend_load_peak_to_mean: f64, + /// Successful requests by the backend that served them. + pub backends: Vec, + pub wall_clock_ms: f64, +} + +#[derive(Clone, Debug, Serialize)] +pub struct BackendSummary { + pub id: String, + pub gpu_workers: usize, + pub max_engine_concurrency: u64, + pub succeeded: usize, + pub ttft_ms: Percentiles, + /// Backend arrival to first token: engine queueing plus prefill. + pub backend_ttft_ms: Percentiles, + pub reused_input_token_fraction: f64, +} + +/// Nearest-rank percentiles; all zero when there are no samples. +#[derive(Clone, Debug, Default, Serialize)] +pub struct Percentiles { + pub p50: f64, + pub p90: f64, + pub p99: f64, +} + +impl Percentiles { + fn from_ms(mut values: Vec) -> Self { + if values.is_empty() { + return Self::default(); + } + values.sort_by(f64::total_cmp); + let pick = |quantile: f64| { + let rank = (quantile * values.len() as f64).ceil() as usize; + values[rank.clamp(1, values.len()) - 1] + }; + Self { + p50: pick(0.50), + p90: pick(0.90), + p99: pick(0.99), + } + } +} + +fn ratio(numerator: f64, denominator: f64) -> f64 { + if denominator == 0.0 { + 0.0 + } else { + numerator / denominator + } +} + +/// Fraction of input tokens served from the prefix cache. +fn reused_fraction(records: &[&RequestRecord]) -> f64 { + let reused: u64 = records + .iter() + .map(|record| record.reused_input_tokens) + .sum(); + let input: u64 = records.iter().map(|record| record.input_tokens).sum(); + ratio(reused as f64, input as f64) +} + +pub fn summarize( + spec: &RunSpec<'_>, + records: &[RequestRecord], + measure_start: Micros, + measure_end: Micros, + backends: &[Backend], + wall_clock: Duration, +) -> RunSummary { + let config = spec.config; + let measured: Vec<&RequestRecord> = records + .iter() + .filter(|record| (measure_start..measure_end).contains(&record.arrival)) + .collect(); + let succeeded: Vec<&RequestRecord> = measured + .iter() + .copied() + .filter(|record| record.succeeded()) + .collect(); + let mut served: Vec> = vec![Vec::new(); backends.len()]; + let mut cross_region = 0usize; + for record in &succeeded { + let backend = record.backend.expect("successful request has a backend"); + served[backend].push(record); + if backends[backend].region != record.stargate_region { + cross_region += 1; + } + } + let ttft_slo = micros_from_ms(config.client.ttft_slo_ms as f64); + let good = succeeded + .iter() + .filter(|record| record.ttft() <= ttft_slo) + .count(); + let measure_seconds = (measure_end - measure_start) as f64 / 1_000_000.0; + let count = |predicate: fn(&RequestRecord) -> bool| { + measured.iter().filter(|record| predicate(record)).count() + }; + let mean_backend = succeeded.len() as f64 / backends.len() as f64; + + RunSummary { + policy: spec.policy.name.clone(), + rate_rps: spec.rate_rps, + seed: spec.seed, + offered: measured.len(), + succeeded: succeeded.len(), + good, + failed_no_route: count(|record| record.no_route), + failed_retries_exhausted: count(|record| record.retries_exhausted), + failed_timeout: count(|record| record.timed_out), + retried_requests: count(|record| record.attempt > 0), + abandoned_sessions: count(|record| record.abandoned_session), + goodput_rps: good as f64 / measure_seconds, + throughput_rps: succeeded.len() as f64 / measure_seconds, + slo_attainment: ratio(good as f64, measured.len() as f64), + ttft_ms: Percentiles::from_ms(succeeded.iter().map(|record| ms(record.ttft())).collect()), + input_tokens: Percentiles::from_ms( + measured + .iter() + .map(|record| record.input_tokens as f64) + .collect(), + ), + e2e_ms: Percentiles::from_ms( + succeeded + .iter() + .map(|record| { + ms(record + .completed_at + .expect("successful request has a completion") + - record.arrival) + }) + .collect(), + ), + routing_delay_ms: Percentiles::from_ms( + succeeded + .iter() + .map(|record| { + ms(record + .dispatched_at + .expect("successful request was dispatched") + - record.arrival) + }) + .collect(), + ), + backend_ttft_ms: Percentiles::from_ms( + succeeded + .iter() + .map(|record| ms(record.backend_ttft())) + .collect(), + ), + cache_hit_rate: ratio( + succeeded + .iter() + .filter(|record| record.reused_input_tokens > 0) + .count() as f64, + succeeded.len() as f64, + ), + reused_input_token_fraction: reused_fraction(&succeeded), + mismatch_rejections: measured + .iter() + .map(|record| u64::from(record.mismatch_rejections)) + .sum(), + mean_route_attempts: ratio( + measured + .iter() + .map(|record| f64::from(record.route_attempts)) + .sum(), + measured.len() as f64, + ), + cross_region_fraction: ratio(cross_region as f64, succeeded.len() as f64), + off_primary_fraction: ratio( + succeeded + .iter() + .filter(|record| record.rank_depth > 1) + .count() as f64, + succeeded.len() as f64, + ), + backend_load_peak_to_mean: ratio( + served.iter().map(Vec::len).max().unwrap_or_default() as f64, + mean_backend, + ), + backends: backends + .iter() + .zip(&served) + .map(|(backend, served)| BackendSummary { + id: backend.id.clone(), + gpu_workers: backend.gpu_workers, + max_engine_concurrency: backend.max_engine_concurrency, + succeeded: served.len(), + ttft_ms: Percentiles::from_ms( + served.iter().map(|record| ms(record.ttft())).collect(), + ), + backend_ttft_ms: Percentiles::from_ms( + served + .iter() + .map(|record| ms(record.backend_ttft())) + .collect(), + ), + reused_input_token_fraction: reused_fraction(served), + }) + .collect(), + wall_clock_ms: wall_clock.as_secs_f64() * 1000.0, + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn percentiles_use_nearest_rank_and_zero_for_no_samples() { + let percentiles = Percentiles::from_ms((1..=100).rev().map(f64::from).collect()); + assert_eq!( + (percentiles.p50, percentiles.p90, percentiles.p99), + (50.0, 90.0, 99.0) + ); + let single = Percentiles::from_ms(vec![7.0]); + assert_eq!((single.p50, single.p99), (7.0, 7.0)); + let empty = Percentiles::from_ms(Vec::new()); + assert_eq!((empty.p50, empty.p99), (0.0, 0.0)); + } +} diff --git a/src/libraries/rust/stargate/crates/stargate-routing-sim/src/sim.rs b/src/libraries/rust/stargate/crates/stargate-routing-sim/src/sim.rs new file mode 100644 index 0000000000..921bc20c70 --- /dev/null +++ b/src/libraries/rust/stargate/crates/stargate-routing-sim/src/sim.rs @@ -0,0 +1,984 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Discrete-event loop around the production load balancers. +//! +//! Each Stargate owns one real `LoadBalancer` instance and a view of backend +//! stats that is only as fresh as the last Pylon heartbeat it received, plus +//! its own optimistic reservations. The proxy routing loop +//! (`stargate/src/http_proxy/run.rs` and `routing.rs`) is mirrored here: timed +//! waits recheck at most every 25 ms until the routing wait deadline, generic +//! no-choice retries sleep 1-9 ms while the max-wait budget remains, and +//! Pylon queue-mismatch rejections release the reservation and reroute with +//! the backend excluded. + +use std::cmp::Reverse; +use std::collections::{BinaryHeap, HashSet}; +use std::rc::Rc; +use std::sync::Arc; +use std::time::{Duration, Instant}; + +use mock_engine::{EngineEvent, RequestSpec}; +use rand::rngs::StdRng; +use rand::{Rng, SeedableRng}; +use stargate::load_balancer::{ + LoadBalancer, LoadBalancerDecision, LoadBalancerRequest, create_load_balancer_with_config, +}; +use stargate::routing::{ + RoutedClusterSnapshot, RoutingTargetKey, apply_reservation, queue_time_estimate_ms_for_priority, +}; +use stargate_proto::pb::{InferenceServerStatus, ModelStats}; + +use crate::backend::Backend; +use crate::config::{PolicyConfig, SimConfig}; +use crate::metrics::{RequestRecord, RunSummary, summarize}; +use crate::time::{Micros, micros_from_duration, micros_from_ms}; +use crate::workload::{PlannedRequest, WorkloadPlan, plan}; + +const ROUTING_WAIT_RECHECK: Micros = 25_000; +const ROUTING_RETRY_MAX_WAIT: Micros = 60_000_000; +const ROUTING_RETRY_SLEEP_MIN_MS: u64 = 1; +const ROUTING_RETRY_SLEEP_MAX_MS: u64 = 10; + +pub struct RunSpec<'a> { + pub config: &'a SimConfig, + pub policy: &'a PolicyConfig, + pub rate_rps: f64, + pub seed: u64, +} + +#[derive(Debug)] +enum Event { + RouteAttempt(usize), + BackendReceive { + request: usize, + backend: usize, + reservation: u64, + expected_queue_ms: Option, + }, + MismatchRejected { + request: usize, + backend: usize, + reservation: u64, + }, + /// The backend's engine has progress due now. + EngineWake(usize), + /// A growing session's turn starts, or a failed turn is retried. + NextTurn { + session: u32, + turn: u32, + attempt: u32, + }, + ClientTimeout(usize), + Heartbeat(usize), + /// Coalesced change-driven publish for a backend. + Publish(usize), + StatsArrive { + backend: usize, + stargate: usize, + stats: Rc, + }, +} + +struct Scheduled { + at: Micros, + sequence: u64, + event: Event, +} + +impl PartialEq for Scheduled { + fn eq(&self, other: &Self) -> bool { + (self.at, self.sequence) == (other.at, other.sequence) + } +} + +impl Eq for Scheduled {} + +impl PartialOrd for Scheduled { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.cmp(other)) + } +} + +impl Ord for Scheduled { + fn cmp(&self, other: &Self) -> std::cmp::Ordering { + (self.at, self.sequence).cmp(&(other.at, other.sequence)) + } +} + +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +enum EngineState { + NotAdmitted, + InEngine, + Finished, +} + +struct Reservation { + id: u64, + input_tokens: u64, +} + +struct StargateView { + region: usize, + load_balancer: Arc, + stats: Vec>, + reservations: Vec>, +} + +struct RequestState { + plan: PlannedRequest, + cache_affinity_key: String, + excluded: HashSet, + record: RequestRecord, + engine: EngineState, + resolved: bool, +} + +struct Simulation<'a> { + config: &'a SimConfig, + workload: WorkloadPlan, + now: Micros, + sequence: u64, + queue: BinaryHeap>, + backends: Vec, + stargates: Vec, + requests: Vec, + target: RoutingTargetKey, + rng: StdRng, + next_reservation: u64, + unresolved: usize, + last_publish: Vec, + publish_pending: Vec, +} + +pub fn run(spec: &RunSpec<'_>) -> anyhow::Result { + let config = spec.config; + let algorithm = spec.policy.algorithm_config()?; + let mut backends = Vec::new(); + let mut stargates = Vec::new(); + let mut stargate_weights = Vec::new(); + for (region_index, region) in config.topology.regions.iter().enumerate() { + for backend_index in 0..region.backends { + backends.push(Backend::new( + format!("{}-backend-{backend_index}", region.name), + region_index, + region.backend_speed, + config.backend_engine(region, backend_index), + &config.pylon, + )?); + } + for _ in 0..region.stargates { + stargates.push(StargateView { + region: region_index, + load_balancer: create_load_balancer_with_config(&algorithm)?, + stats: Vec::new(), + reservations: Vec::new(), + }); + stargate_weights.push(region.traffic_weight / region.stargates as f64); + } + } + let initial_stats: Vec> = backends + .iter() + .map(|backend| Rc::new(backend.stats())) + .collect(); + for stargate in &mut stargates { + stargate.stats = initial_stats.clone(); + stargate.reservations = backends.iter().map(|_| Vec::new()).collect(); + } + + let mut workload = plan( + &config.workload, + &stargate_weights, + spec.rate_rps, + spec.seed, + ); + let requests = std::mem::take(&mut workload.requests) + .into_iter() + .map(|plan| request_state(plan, &stargates)) + .collect::>(); + + let (measure_start, measure_end) = (workload.measure_start, workload.measure_end); + let backend_count = backends.len(); + let mut simulation = Simulation { + config, + workload, + now: 0, + sequence: 0, + queue: BinaryHeap::new(), + unresolved: requests.len(), + backends, + stargates, + requests, + target: RoutingTargetKey { + routing_key: Some(config.stargate.routing_key.clone()), + model_id: config.stargate.model_id.clone(), + }, + // Infrastructure randomness is separate from the workload stream so + // policies that retry differently still see identical demand. + rng: StdRng::seed_from_u64(spec.seed ^ 0x5eed_0f57_a6a7), + next_reservation: 0, + last_publish: vec![0; backend_count], + publish_pending: vec![false; backend_count], + }; + simulation.schedule_initial_events(); + let started = Instant::now(); + simulation.run_to_completion(); + debug_assert!( + simulation.backends.iter().all(Backend::is_idle), + "every resolved request left Pylon and the engine" + ); + let records = simulation + .requests + .into_iter() + .map(|request| request.record) + .collect::>(); + Ok(summarize( + spec, + &records, + measure_start, + measure_end, + &simulation.backends, + started.elapsed(), + )) +} + +fn request_state(plan: PlannedRequest, stargates: &[StargateView]) -> RequestState { + RequestState { + cache_affinity_key: format!("session-{}", plan.session), + record: RequestRecord { + arrival: plan.arrival, + input_tokens: plan.input_tokens, + stargate_region: stargates[plan.stargate].region, + attempt: plan.attempt, + ..RequestRecord::default() + }, + plan, + excluded: HashSet::new(), + engine: EngineState::NotAdmitted, + resolved: false, + } +} + +impl Simulation<'_> { + fn schedule(&mut self, delay: Micros, event: Event) { + self.sequence += 1; + self.queue.push(Reverse(Scheduled { + at: self.now + delay, + sequence: self.sequence, + event, + })); + } + + fn schedule_initial_events(&mut self) { + let heartbeat = micros_from_ms(self.config.pylon.heartbeat_ms); + for backend in 0..self.backends.len() { + let offset = self.rng.random_range(0..heartbeat.max(1)); + self.schedule(offset, Event::Heartbeat(backend)); + } + for request in 0..self.requests.len() { + self.schedule_arrival(request); + } + } + + fn run_to_completion(&mut self) { + while self.unresolved > 0 { + let Some(Reverse(next)) = self.queue.pop() else { + break; + }; + self.now = next.at; + self.handle(next.event); + } + debug_assert_eq!(self.unresolved, 0, "every request resolved"); + } + + fn handle(&mut self, event: Event) { + match event { + Event::RouteAttempt(request) => self.route_attempt(request), + Event::BackendReceive { + request, + backend, + reservation, + expected_queue_ms, + } => self.backend_receive(request, backend, reservation, expected_queue_ms), + Event::MismatchRejected { + request, + backend, + reservation, + } => self.mismatch_rejected(request, backend, reservation), + Event::EngineWake(backend) => self.engine_wake(backend), + Event::NextTurn { + session, + turn, + attempt, + } => self.next_turn(session, turn, attempt), + Event::ClientTimeout(request) => self.client_timeout(request), + Event::Heartbeat(backend) => { + self.publish(backend); + self.schedule( + micros_from_ms(self.config.pylon.heartbeat_ms), + Event::Heartbeat(backend), + ); + } + Event::Publish(backend) => { + self.publish_pending[backend] = false; + self.publish(backend); + } + Event::StatsArrive { + backend, + stargate, + stats, + } => { + let view = &mut self.stargates[stargate]; + view.stats[backend] = stats; + // A processed heartbeat replaces every pending reservation + // for that backend (`cluster_snapshots.rs`). + view.reservations[backend].clear(); + } + } + } + + fn one_way(&self, region_a: usize, region_b: usize) -> Micros { + micros_from_ms(self.rtt_ms(region_a, region_b) / 2.0) + } + + fn rtt_ms(&self, region_a: usize, region_b: usize) -> f64 { + if region_a == region_b { + self.config.topology.intra_region_rtt_ms + } else { + self.config.topology.rtt_ms[region_a][region_b] + } + } + + /// One candidate per backend, in backend order, as `stargate` sees it. + fn candidates(&self, stargate: usize) -> Vec { + let view = &self.stargates[stargate]; + let now = Instant::now(); + self.backends + .iter() + .enumerate() + .map(|(index, backend)| { + let mut stats = ModelStats::clone(&view.stats[index]); + for reservation in &view.reservations[index] { + apply_reservation(&mut stats, reservation.input_tokens, 0); + } + RoutedClusterSnapshot { + cluster_id: backend.id.clone(), + stats, + rtt: Duration::from_secs_f64(self.rtt_ms(view.region, backend.region) / 1000.0), + snapshot_updated_at: now, + status: InferenceServerStatus::Active, + active_backend_count: 1, + } + }) + .collect() + } + + fn route_attempt(&mut self, request: usize) { + if self.requests[request].resolved { + return; + } + if self.requests[request].excluded.len() == self.backends.len() { + // Queue-mismatch reroutes excluded every cluster; the proxy + // reports this as exhausted retries. + self.fail(request, |record| record.retries_exhausted = true); + return; + } + let stargate = self.requests[request].plan.stargate; + let arrival = self.requests[request].plan.arrival; + let candidates = self.candidates(stargate); + let state = &self.requests[request]; + let excluded = &state.excluded; + let elapsed = Duration::from_micros(self.now - arrival); + // Load balancers read elapsed time through `received_at.elapsed()`. + // Backdating the real clock by the virtual elapsed time makes that + // read return virtual time, give or take the call's own runtime. + let received_at = Instant::now() + .checked_sub(elapsed) + .expect("virtual elapsed time fits within the process clock"); + let lb_request = LoadBalancerRequest { + routing_target: &self.target, + cache_affinity_key: Some(&state.cache_affinity_key), + input_tokens: Some(state.plan.input_tokens), + priority: 0, + received_at, + request_slo: self.config.client.request_slo_ms.map(Duration::from_millis), + excluded_cluster_ids: (!excluded.is_empty()).then_some(excluded), + }; + let decision = self.stargates[stargate] + .load_balancer + .decide(&lb_request, &candidates); + self.requests[request].record.route_attempts += 1; + + match decision { + LoadBalancerDecision::Selected(choice) => { + let backend = choice.candidate_index; + self.requests[request].record.rank_depth = choice.rank_depth; + let expected_queue_ms = + queue_time_estimate_ms_for_priority(&candidates[backend].stats, 0); + self.dispatch(request, backend, expected_queue_ms); + } + LoadBalancerDecision::Wait(remaining) => { + let wait_deadline = arrival + self.max_wait().unwrap_or(ROUTING_RETRY_MAX_WAIT); + let delay = micros_from_duration(remaining) + .min(ROUTING_WAIT_RECHECK) + .min(wait_deadline.saturating_sub(self.now)); + if delay > 0 { + self.schedule(delay, Event::RouteAttempt(request)); + } else { + self.no_routing_choice(request); + } + } + LoadBalancerDecision::Unavailable => self.no_routing_choice(request), + } + } + + fn max_wait(&self) -> Option { + self.config + .client + .max_wait_ms + .map(|wait_ms| micros_from_ms(wait_ms as f64).min(ROUTING_RETRY_MAX_WAIT)) + } + + fn no_routing_choice(&mut self, request: usize) { + let arrival = self.requests[request].plan.arrival; + let remaining = self + .max_wait() + .map(|max_wait| (arrival + max_wait).saturating_sub(self.now)) + .unwrap_or_default(); + if remaining > 0 { + let sleep_ms = self + .rng + .random_range(ROUTING_RETRY_SLEEP_MIN_MS..ROUTING_RETRY_SLEEP_MAX_MS); + let delay = micros_from_ms(sleep_ms as f64).min(remaining); + self.schedule(delay, Event::RouteAttempt(request)); + } else { + self.fail(request, |record| record.no_route = true); + } + } + + fn dispatch(&mut self, request: usize, backend: usize, expected_queue_ms: Option) { + let stargate = self.requests[request].plan.stargate; + self.next_reservation += 1; + let reservation = Reservation { + id: self.next_reservation, + input_tokens: self.requests[request].plan.input_tokens, + }; + self.stargates[stargate].reservations[backend].push(reservation); + let record = &mut self.requests[request].record; + record.dispatched_at = Some(self.now); + record.backend = Some(backend); + let delay = self.one_way( + self.stargates[stargate].region, + self.backends[backend].region, + ); + self.schedule( + delay, + Event::BackendReceive { + request, + backend, + reservation: self.next_reservation, + expected_queue_ms, + }, + ); + } + + fn backend_receive( + &mut self, + request: usize, + backend: usize, + reservation: u64, + expected_queue_ms: Option, + ) { + if self.requests[request].resolved { + return; + } + let stargate = self.requests[request].plan.stargate; + let return_delay = self.one_way( + self.backends[backend].region, + self.stargates[stargate].region, + ); + if self.backends[backend].rejects(expected_queue_ms, &self.config.pylon.queue_mismatch) { + self.schedule( + return_delay, + Event::MismatchRejected { + request, + backend, + reservation, + }, + ); + return; + } + let plan = &self.requests[request].plan; + let spec = RequestSpec { + cache_key: Some(u64::from(plan.session)), + input_tokens: plan.input_tokens, + output_tokens: plan.output_tokens, + }; + self.requests[request].record.backend_received_at = Some(self.now); + self.requests[request].engine = EngineState::InEngine; + self.backends[backend].accept(self.now, request, spec); + self.reschedule_wake(backend); + self.stats_changed(backend); + } + + fn mismatch_rejected(&mut self, request: usize, backend: usize, reservation: u64) { + let stargate = self.requests[request].plan.stargate; + self.stargates[stargate].reservations[backend].retain(|pending| pending.id != reservation); + if self.requests[request].resolved { + return; + } + let record = &mut self.requests[request].record; + record.mismatch_rejections += 1; + record.backend = None; + if record.mismatch_rejections > self.config.stargate.max_request_retries { + self.fail(request, |record| record.retries_exhausted = true); + return; + } + // One backend per cluster: the sibling-backend retry finds none and + // the proxy excludes the cluster before rerouting. + let cluster_id = self.backends[backend].id.clone(); + self.requests[request].excluded.insert(cluster_id); + self.schedule(0, Event::RouteAttempt(request)); + } + + /// Advances a backend's engine to now and applies its events. + fn engine_wake(&mut self, backend: usize) { + if self.backends[backend].wake_at != Some(self.now) { + // Superseded by an earlier wake. + return; + } + self.backends[backend].wake_at = None; + for event in self.backends[backend].advance_engine(self.now) { + let request = match event { + EngineEvent::FirstToken { id, .. } + | EngineEvent::Token { id, .. } + | EngineEvent::Completed { id, .. } => id as usize, + }; + // Events produced before a client cancellation was applied. + if self.requests[request].engine != EngineState::InEngine { + continue; + } + match event { + EngineEvent::FirstToken { + id, + at, + reused_input_tokens, + .. + } => self.first_token(backend, id as usize, at, reused_input_tokens), + EngineEvent::Completed { id, at } => self.complete(backend, id as usize, at), + EngineEvent::Token { .. } => {} + } + } + self.reschedule_wake(backend); + } + + /// Schedules the next engine wake if it is earlier than the pending one. + fn reschedule_wake(&mut self, backend: usize) { + let Some(next) = self.backends[backend].next_engine_event() else { + return; + }; + if self.backends[backend] + .wake_at + .is_some_and(|scheduled| scheduled <= next) + { + return; + } + self.backends[backend].wake_at = Some(next); + self.schedule(next.saturating_sub(self.now), Event::EngineWake(backend)); + } + + fn first_token(&mut self, backend: usize, request: usize, at: Micros, reused: u64) { + let state = &mut self.requests[request]; + state.record.reused_input_tokens = reused; + state.record.backend_first_token_at = Some(at); + let submitted = state + .record + .backend_received_at + .expect("engine requests reached their backend"); + let (input_tokens, stargate) = (state.plan.input_tokens, state.plan.stargate); + self.backends[backend].first_token(input_tokens, submitted, at, &self.config.pylon); + let return_delay = self.one_way( + self.backends[backend].region, + self.stargates[stargate].region, + ); + self.requests[request].record.first_token_at = Some(at + return_delay); + self.stats_changed(backend); + } + + fn complete(&mut self, backend: usize, request: usize, at: Micros) { + let state = &mut self.requests[request]; + state.engine = EngineState::Finished; + let (input_tokens, stargate) = (state.plan.input_tokens, state.plan.stargate); + self.backends[backend].complete(input_tokens); + let return_delay = self.one_way( + self.backends[backend].region, + self.stargates[stargate].region, + ); + self.requests[request].record.completed_at = Some(at + return_delay); + // A client timeout cancels engine work, so a completing request is + // still unresolved. + self.resolve(request, |_| {}); + self.schedule_next_turn(request, at + return_delay); + self.stats_changed(backend); + } + + fn schedule_arrival(&mut self, request: usize) { + let arrival = self.requests[request].plan.arrival; + let timeout = micros_from_ms(self.config.client.timeout_ms as f64); + self.schedule(arrival - self.now, Event::RouteAttempt(request)); + self.schedule(arrival + timeout - self.now, Event::ClientTimeout(request)); + } + + /// Queues the session's next turn after a successful response. + fn schedule_next_turn(&mut self, request: usize, responded_at: Micros) { + let plan = &self.requests[request].plan; + let (session, turn) = (plan.session, plan.turn + 1); + let Some(next) = self + .workload + .sessions + .get(session as usize) + .and_then(|planned| planned.turns.get(turn as usize)) + else { + return; + }; + self.schedule_turn(session, turn, 0, responded_at + next.think_time); + } + + /// Resolves a failed request and retries its turn for growing sessions. + fn fail(&mut self, request: usize, mark: impl FnOnce(&mut RequestRecord)) { + self.resolve(request, mark); + let Some(growing) = &self.config.workload.growing else { + return; + }; + let plan = &self.requests[request].plan; + let attempt = plan.attempt + 1; + if attempt >= growing.max_turn_attempts { + self.requests[request].record.abandoned_session = true; + return; + } + let backoff = micros_from_ms(growing.retry_backoff_s * 1000.0 * f64::from(attempt)); + let (session, turn) = (plan.session, plan.turn); + self.schedule_turn(session, turn, attempt, self.now + backoff); + } + + fn schedule_turn(&mut self, session: u32, turn: u32, attempt: u32, start: Micros) { + if start >= self.workload.measure_end { + return; + } + // A pending turn keeps the run alive; its request inherits the count. + self.unresolved += 1; + self.schedule( + start.saturating_sub(self.now), + Event::NextTurn { + session, + turn, + attempt, + }, + ); + } + + fn next_turn(&mut self, session: u32, turn: u32, attempt: u32) { + let plan = self + .workload + .turn_request(session, turn, attempt, self.now) + .expect("scheduled turns exist in the plan"); + let request = self.requests.len(); + self.requests.push(request_state(plan, &self.stargates)); + self.schedule_arrival(request); + } + + fn client_timeout(&mut self, request: usize) { + if self.requests[request].resolved { + return; + } + self.fail(request, |record| record.timed_out = true); + // Disconnects propagate to the engine; free the slot the way a dropped + // MockDynamo stream does. Reservations stay until the next heartbeat. + let state = &mut self.requests[request]; + let Some(backend_index) = state.record.backend else { + return; + }; + if state.engine != EngineState::InEngine { + return; + } + state.engine = EngineState::Finished; + let input_tokens = state.plan.input_tokens; + let decoding = state.record.backend_first_token_at.is_some(); + self.backends[backend_index].cancel(self.now, request, input_tokens, decoding); + self.reschedule_wake(backend_index); + self.stats_changed(backend_index); + } + + /// Pylon request state changed on `backend`. + fn stats_changed(&mut self, backend: usize) { + let Some(coalesce_ms) = self.config.pylon.stats_update_coalesce_ms else { + return; + }; + if self.publish_pending[backend] { + return; + } + self.publish_pending[backend] = true; + let ready_at = self.last_publish[backend] + micros_from_ms(coalesce_ms); + // A zero delay still runs after the current event, so simultaneous + // changes share one publish. + self.schedule(ready_at.saturating_sub(self.now), Event::Publish(backend)); + } + + fn publish(&mut self, backend: usize) { + self.last_publish[backend] = self.now; + let stats = Rc::new(self.backends[backend].stats()); + let relay = micros_from_ms(self.config.topology.stats_relay_delay_ms); + for stargate in 0..self.stargates.len() { + let delay = self.one_way( + self.backends[backend].region, + self.stargates[stargate].region, + ) + relay; + self.schedule( + delay, + Event::StatsArrive { + backend, + stargate, + stats: Rc::clone(&stats), + }, + ); + } + } + + fn resolve(&mut self, request: usize, mark: impl FnOnce(&mut RequestRecord)) { + let state = &mut self.requests[request]; + // A double resolve would wrap `unresolved` and spin forever on heartbeats. + assert!(!state.resolved, "request {request} resolved twice"); + state.resolved = true; + mark(&mut state.record); + self.unresolved -= 1; + } +} + +#[cfg(test)] +mod tests { + use super::*; + + fn config(workload: serde_json::Value) -> SimConfig { + let config: SimConfig = serde_json::from_value(serde_json::json!({ + "name": "end-to-end test", + "seeds": [1], + "topology": { + "regions": [ + {"name": "a", "stargates": 2, "backends": 2}, + {"name": "b", "stargates": 1, "backends": 2, "traffic_weight": 0.5} + ], + "rtt_ms": [[0, 40], [40, 0]], + "intra_region_rtt_ms": 1.0 + }, + "engine": { + "num_gpu_workers": 1, "max_num_seqs": 4, "max_batched_tokens": 2048, + "step_fixed_ms": 4.0, "step_decode_ms_per_seq": 0.1, + "step_prefill_ms_per_token": 0.05, "kv_cache_capacity_tokens": 100000 + }, + "pylon": { + "heartbeat_ms": 1000.0, + "stats_update_coalesce_ms": 10.0, + "input_tps": {"model": "fallback-window", "initial": 20000.0, "window": 8, "duration_floor_ms": 10.0}, + "queue_mismatch": {"enabled": true, "min_delta_ms": 25, "tolerance_factor": 1.25} + }, + "stargate": {"max_request_retries": 2, "routing_key": "rk", "model_id": "m"}, + "client": {"request_slo_ms": 2000, "max_wait_ms": 2000, "timeout_ms": 3000, "ttft_slo_ms": 2000}, + "workload": workload, + "policies": [ + {"name": "power-of-n", "load_balancer": {"algorithm": "power-of-n"}}, + {"name": "wait-and-widen", "load_balancer": { + "algorithm": "wait-and-widen", + "max_queue_time_floor_ms": 500, "max_queue_time_ceil_ms": 500 + }}, + {"name": "pulsar-wait-and-widen", "load_balancer": { + "algorithm": "pulsar-wait-and-widen", "seed": "s", + "max_queue_time_floor_ms": 500, "max_queue_time_ceil_ms": 500, + "cache_affinity_wait_ms": 100 + }} + ] + })) + .expect("test config parses"); + config.validate().expect("test config is valid"); + config + } + + /// Runs every policy and checks that each measured request has exactly + /// one outcome. + fn run_policies(config: &SimConfig, rate_rps: f64) -> Vec { + config + .policies + .iter() + .map(|policy| { + let summary = run(&RunSpec { + config, + policy, + rate_rps, + seed: 1, + }) + .expect("run completes"); + assert!(summary.offered > 0, "{}", policy.name); + assert_eq!( + summary.succeeded + + summary.failed_no_route + + summary.failed_retries_exhausted + + summary.failed_timeout, + summary.offered, + "{}: every measured request has one outcome", + policy.name + ); + summary + }) + .collect() + } + + fn assert_runs_resolve_every_request(config: &SimConfig, rate_rps: f64) { + for summary in run_policies(config, rate_rps) { + assert!(summary.goodput_rps > 0.0, "{}", summary.policy); + } + } + + #[test] + fn fixed_sessions_resolve_every_request() { + let config = config(serde_json::json!({ + "rates_rps": [1.0], "warmup_s": 1.0, "measure_s": 4.0, + "fixed": { + "sessions": 20, "input_tokens_min": 500, "input_tokens_max": 4000, + "output_tokens": 64 + } + })); + assert_runs_resolve_every_request(&config, 20.0); + } + + #[test] + fn growing_sessions_resolve_with_retries() { + let config = config(serde_json::json!({ + "rates_rps": [1.0], "warmup_s": 1.0, "measure_s": 4.0, + "growing": { + "system_prompt_tokens": 500, "user_tokens_min": 50, "user_tokens_max": 200, + "output_tokens_min": 16, "output_tokens_max": 64, + "turns_min": 2, "turns_max": 4, "think_time_mean_s": 0.2, + "max_context_tokens": 8000, "max_turn_attempts": 2, "retry_backoff_s": 0.1 + } + })); + assert_runs_resolve_every_request(&config, 60.0); + } + + #[test] + fn short_client_timeouts_cancel_engine_work_and_retry_turns() { + let mut config = config(serde_json::json!({ + "rates_rps": [1.0], "warmup_s": 1.0, "measure_s": 4.0, + "growing": { + "system_prompt_tokens": 500, "user_tokens_min": 50, "user_tokens_max": 200, + "output_tokens_min": 16, "output_tokens_max": 64, + "turns_min": 2, "turns_max": 4, "think_time_mean_s": 0.2, + "max_context_tokens": 8000, "max_turn_attempts": 2, "retry_backoff_s": 0.1 + } + })); + config.client.timeout_ms = 250; + config.client.max_wait_ms = Some(100); + let summaries = run_policies(&config, 60.0); + // The debug assertions in `run` check that every cancelled request + // also left Pylon and the engine. + for summary in &summaries { + assert!(summary.failed_timeout > 0, "{}", summary.policy); + assert!(summary.retried_requests > 0, "{}", summary.policy); + } + assert!( + summaries + .iter() + .any(|summary| summary.abandoned_sessions > 0) + ); + } + + #[test] + fn affinity_waits_without_max_wait_widen_instead_of_failing() { + let mut config = config(serde_json::json!({ + "rates_rps": [1.0], "warmup_s": 1.0, "measure_s": 4.0, + "fixed": { + "sessions": 20, "input_tokens_min": 500, "input_tokens_max": 4000, + "output_tokens": 64 + } + })); + config.client.max_wait_ms = None; + config + .policies + .retain(|policy| policy.name == "pulsar-wait-and-widen"); + let summary = &run_policies(&config, 20.0)[0]; + assert_eq!(summary.failed_no_route, 0); + assert!(summary.off_primary_fraction > 0.0); + } + + #[test] + fn mismatch_rejections_exclude_the_only_backend_and_exhaust_retries() { + let mut config = config(serde_json::json!({ + "rates_rps": [1.0], "warmup_s": 1.0, "measure_s": 4.0, + "fixed": { + "sessions": 20, "input_tokens_min": 2000, "input_tokens_max": 4000, + "output_tokens": 64 + } + })); + config.topology.regions[0].backends = 1; + config.topology.regions[1].backends = 0; + config.policies.retain(|policy| policy.name == "power-of-n"); + config.validate().expect("single-backend config is valid"); + let summary = &run_policies(&config, 60.0)[0]; + assert!(summary.mismatch_rejections > 0); + assert!(summary.failed_retries_exhausted > 0); + assert_eq!(summary.failed_no_route, 0); + } + + #[test] + fn configs_that_would_hang_or_misroute_are_rejected() { + let valid = config(serde_json::json!({ + "rates_rps": [1.0], "warmup_s": 0.0, "measure_s": 1.0, + "fixed": {"sessions": 1, "input_tokens_min": 1, "input_tokens_max": 1, "output_tokens": 1} + })); + type Breakage = (&'static str, fn(&mut SimConfig)); + let breakages: [Breakage; 6] = [ + ("heartbeat_ms", |config| config.pylon.heartbeat_ms = 0.0004), + ("measure_s", |config| config.workload.measure_s = 0.0), + ("rtt_ms", |config| config.topology.rtt_ms[0][1] = f64::NAN), + ("rates_rps", |config| config.workload.rates_rps = vec![-1.0]), + ("traffic_weight", |config| { + for region in &mut config.topology.regions { + region.traffic_weight = 0.0; + } + }), + ("gpu_workers", |config| { + config.topology.regions[0].gpu_workers = Some(0); + }), + ]; + for (field, break_config) in breakages { + let mut config = valid.clone(); + break_config(&mut config); + let error = config.validate().expect_err(field); + assert!(error.to_string().contains(field), "{field}: {error}"); + } + } + + #[test] + fn kv_free_token_policies_are_rejected() { + let mut config = config(serde_json::json!({ + "rates_rps": [1.0], "warmup_s": 0.0, "measure_s": 1.0, + "fixed": {"sessions": 1, "input_tokens_min": 1, "input_tokens_max": 1, "output_tokens": 1} + })); + config.policies = vec![PolicyConfig { + name: "pulsar-kv".to_string(), + load_balancer: serde_json::json!({"algorithm": "pulsar", "consider_kv_free_tokens": true}), + }]; + let error = config.validate().expect_err("KV stats are not simulated"); + assert!(error.to_string().contains("consider_kv_free_tokens")); + } +} diff --git a/src/libraries/rust/stargate/crates/stargate-routing-sim/src/time.rs b/src/libraries/rust/stargate/crates/stargate-routing-sim/src/time.rs new file mode 100644 index 0000000000..32b20f93e9 --- /dev/null +++ b/src/libraries/rust/stargate/crates/stargate-routing-sim/src/time.rs @@ -0,0 +1,49 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use std::time::Duration; + +/// Virtual simulation time in microseconds. +pub type Micros = u64; + +pub fn micros_from_secs(seconds: f64) -> Micros { + (seconds * 1_000_000.0).round().max(0.0) as Micros +} + +pub fn micros_from_ms(milliseconds: f64) -> Micros { + micros_from_secs(milliseconds / 1000.0) +} + +/// Rounds up: a nonzero load-balancer wait must not read as an expired one. +pub fn micros_from_duration(duration: Duration) -> Micros { + Micros::try_from(duration.as_nanos().div_ceil(1000)).unwrap_or(Micros::MAX) +} + +pub fn ms(micros: Micros) -> f64 { + micros as f64 / 1000.0 +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn durations_round_up_to_whole_micros() { + assert_eq!(micros_from_duration(Duration::ZERO), 0); + assert_eq!(micros_from_duration(Duration::from_nanos(1)), 1); + assert_eq!(micros_from_duration(Duration::from_nanos(1_001)), 2); + assert_eq!(micros_from_duration(Duration::MAX), Micros::MAX); + } +} diff --git a/src/libraries/rust/stargate/crates/stargate-routing-sim/src/workload.rs b/src/libraries/rust/stargate/crates/stargate-routing-sim/src/workload.rs new file mode 100644 index 0000000000..fd9397104f --- /dev/null +++ b/src/libraries/rust/stargate/crates/stargate-routing-sim/src/workload.rs @@ -0,0 +1,362 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Request generation. Arrival times, sessions, and every per-request random +//! draw depend only on the seed, so each policy sees identical demand (common +//! random numbers) and paired differences have low variance. Growing sessions +//! fix every turn's size and think time up front; only when later turns start +//! depends on how fast the policy served earlier ones. + +use rand::rngs::StdRng; +use rand::{Rng, SeedableRng}; + +use crate::config::{FixedSessionsConfig, GrowingSessionsConfig, WorkloadConfig}; +use crate::time::{Micros, micros_from_secs}; + +#[derive(Clone, Debug)] +pub struct PlannedRequest { + pub arrival: Micros, + pub session: u32, + /// Zero-based turn within a growing session; zero for fixed sessions. + pub turn: u32, + /// Zero-based attempt of this turn; retries reuse the same prompt. + pub attempt: u32, + pub stargate: usize, + pub input_tokens: u64, + pub output_tokens: u64, +} + +#[derive(Clone, Debug)] +pub struct PlannedTurn { + pub input_tokens: u64, + pub output_tokens: u64, + /// Delay after the previous turn's response; zero for the first turn. + pub think_time: Micros, +} + +#[derive(Clone, Debug)] +pub struct PlannedSession { + pub stargate: usize, + pub turns: Vec, +} + +pub struct WorkloadPlan { + /// Requests whose arrival is known up front: every fixed-session request, + /// or the first turn of each growing session. + pub requests: Vec, + /// Growing sessions, indexed by session ID. Empty for fixed sessions. + pub sessions: Vec, + pub measure_start: Micros, + pub measure_end: Micros, +} + +impl WorkloadPlan { + /// The request for `turn` of a growing session arriving at `arrival`. + pub fn turn_request( + &self, + session: u32, + turn: u32, + attempt: u32, + arrival: Micros, + ) -> Option { + let planned = self.sessions.get(session as usize)?; + let spec = planned.turns.get(turn as usize)?; + Some(PlannedRequest { + arrival, + session, + turn, + attempt, + stargate: planned.stargate, + input_tokens: spec.input_tokens, + output_tokens: spec.output_tokens, + }) + } +} + +pub fn plan( + workload: &WorkloadConfig, + stargate_weights: &[f64], + rate_rps: f64, + seed: u64, +) -> WorkloadPlan { + let measure_start = micros_from_secs(workload.warmup_s); + let measure_end = measure_start + micros_from_secs(workload.measure_s); + let stargate_cdf = cumulative(stargate_weights); + let mut rng = StdRng::seed_from_u64(seed); + let (requests, sessions) = match (&workload.fixed, &workload.growing) { + (Some(fixed), _) => ( + plan_fixed(fixed, &stargate_cdf, rate_rps, measure_end, &mut rng), + Vec::new(), + ), + (None, Some(growing)) => plan_growing( + growing, + &stargate_cdf, + rate_rps, + measure_end, + seed, + &mut rng, + ), + (None, None) => unreachable!("validated workload has a session model"), + }; + WorkloadPlan { + requests, + sessions, + measure_start, + measure_end, + } +} + +fn plan_fixed( + fixed: &FixedSessionsConfig, + stargate_cdf: &[f64], + rate_rps: f64, + measure_end: Micros, + rng: &mut StdRng, +) -> Vec { + let session_input_tokens: Vec = (0..fixed.sessions) + .map(|_| rng.random_range(fixed.input_tokens_min..=fixed.input_tokens_max)) + .collect(); + let session_cdf = cumulative( + &(1..=fixed.sessions) + .map(|rank| 1.0 / (rank as f64).powf(fixed.session_zipf_s)) + .collect::>(), + ); + poisson_arrivals(rate_rps, measure_end, rng) + .into_iter() + .map(|arrival| { + let session = sample(&session_cdf, rng.random()); + PlannedRequest { + arrival, + session: u32::try_from(session).expect("session count fits in u32"), + turn: 0, + attempt: 0, + stargate: sample(stargate_cdf, rng.random()), + input_tokens: session_input_tokens[session], + output_tokens: fixed.output_tokens, + } + }) + .collect() +} + +fn plan_growing( + growing: &GrowingSessionsConfig, + stargate_cdf: &[f64], + rate_rps: f64, + measure_end: Micros, + seed: u64, + rng: &mut StdRng, +) -> (Vec, Vec) { + // Sessions per second that offer `rate_rps` requests per second, using + // the mean turn count after context-limit truncation. + let mut estimate_rng = StdRng::seed_from_u64(seed ^ 0x7e57_7a1e); + let samples = 10_000; + let mean_turns = (0..samples) + .map(|_| sample_session(growing, 0, &mut estimate_rng).turns.len() as f64) + .sum::() + / f64::from(samples); + let session_rate = rate_rps / mean_turns.max(1.0); + + let mut requests = Vec::new(); + let mut sessions = Vec::new(); + for arrival in poisson_arrivals(session_rate, measure_end, rng) { + let stargate = sample(stargate_cdf, rng.random()); + let session = sample_session(growing, stargate, rng); + let id = u32::try_from(sessions.len()).expect("session count fits in u32"); + let first = &session.turns[0]; + requests.push(PlannedRequest { + arrival, + session: id, + turn: 0, + attempt: 0, + stargate, + input_tokens: first.input_tokens, + output_tokens: first.output_tokens, + }); + sessions.push(session); + } + (requests, sessions) +} + +fn sample_session( + growing: &GrowingSessionsConfig, + stargate: usize, + rng: &mut StdRng, +) -> PlannedSession { + let turn_count = rng.random_range(growing.turns_min..=growing.turns_max); + let mut turns: Vec = Vec::with_capacity(turn_count as usize); + for turn in 0..turn_count { + let user = rng.random_range(growing.user_tokens_min..=growing.user_tokens_max); + let output_tokens = rng.random_range(growing.output_tokens_min..=growing.output_tokens_max); + let think: f64 = rng.random_range(f64::EPSILON..1.0); + let input_tokens = match turns.last() { + None => growing.system_prompt_tokens + user, + Some(previous) => previous.input_tokens + previous.output_tokens + user, + }; + if input_tokens + output_tokens > growing.max_context_tokens { + break; + } + turns.push(PlannedTurn { + input_tokens, + output_tokens, + think_time: if turn == 0 { + 0 + } else { + micros_from_secs(-think.ln() * growing.think_time_mean_s) + }, + }); + } + PlannedSession { stargate, turns } +} + +fn poisson_arrivals(rate: f64, end: Micros, rng: &mut StdRng) -> Vec { + let mut arrivals = Vec::new(); + let mut now = 0.0_f64; + loop { + let unit: f64 = rng.random_range(f64::EPSILON..1.0); + now += -unit.ln() / rate; + let arrival = micros_from_secs(now); + if arrival >= end { + return arrivals; + } + arrivals.push(arrival); + } +} + +fn cumulative(weights: &[f64]) -> Vec { + let total: f64 = weights.iter().sum(); + let mut running = 0.0; + weights + .iter() + .map(|weight| { + running += weight / total; + running + }) + .collect() +} + +fn sample(cdf: &[f64], unit: f64) -> usize { + cdf.partition_point(|bound| *bound < unit) + .min(cdf.len() - 1) +} + +#[cfg(test)] +mod tests { + use super::*; + + fn fixed_workload() -> WorkloadConfig { + WorkloadConfig { + rates_rps: vec![50.0], + warmup_s: 1.0, + measure_s: 9.0, + fixed: Some(FixedSessionsConfig { + sessions: 10, + input_tokens_min: 100, + input_tokens_max: 200, + output_tokens: 16, + session_zipf_s: 0.0, + }), + growing: None, + } + } + + fn growing_workload() -> WorkloadConfig { + WorkloadConfig { + fixed: None, + growing: Some(GrowingSessionsConfig { + system_prompt_tokens: 1000, + user_tokens_min: 100, + user_tokens_max: 200, + output_tokens_min: 50, + output_tokens_max: 100, + turns_min: 2, + turns_max: 30, + think_time_mean_s: 5.0, + max_context_tokens: 4000, + max_turn_attempts: 3, + retry_backoff_s: 1.0, + }), + ..fixed_workload() + } + } + + #[test] + fn plan_is_deterministic_for_a_seed() { + let workload = fixed_workload(); + let a = plan(&workload, &[1.0, 1.0], 50.0, 7); + let b = plan(&workload, &[1.0, 1.0], 50.0, 7); + assert_eq!(a.requests.len(), b.requests.len()); + assert!( + a.requests + .iter() + .zip(&b.requests) + .all(|(x, y)| x.arrival == y.arrival && x.session == y.session) + ); + } + + #[test] + fn plan_rate_matches_poisson_mean() { + let planned = plan(&fixed_workload(), &[1.0], 50.0, 11); + let count = planned.requests.len() as f64; + assert!((count - 500.0).abs() < 80.0, "count={count}"); + } + + #[test] + fn fixed_session_inputs_stay_fixed_and_in_range() { + let planned = plan(&fixed_workload(), &[1.0], 50.0, 3); + let mut by_session = std::collections::HashMap::new(); + for request in &planned.requests { + assert!((100..=200).contains(&request.input_tokens)); + let first = by_session + .entry(request.session) + .or_insert(request.input_tokens); + assert_eq!(*first, request.input_tokens); + } + } + + #[test] + fn growing_turns_extend_the_previous_prompt_and_output() { + let planned = plan(&growing_workload(), &[1.0], 50.0, 5); + assert!(!planned.sessions.is_empty()); + for session in &planned.sessions { + assert!(!session.turns.is_empty()); + assert_eq!(session.turns[0].think_time, 0); + for pair in session.turns.windows(2) { + let growth = pair[1].input_tokens - pair[0].input_tokens - pair[0].output_tokens; + assert!((100..=200).contains(&growth)); + } + let last = session.turns.last().unwrap(); + assert!(last.input_tokens + last.output_tokens <= 4000); + } + } + + #[test] + fn growing_session_rate_offers_the_target_request_rate() { + let workload = growing_workload(); + let planned = plan(&workload, &[1.0], 50.0, 9); + let offered: usize = planned + .sessions + .iter() + .map(|session| session.turns.len()) + .sum(); + // 10 s of session arrivals at 50 requests per second. + assert!((offered as f64 - 500.0).abs() < 150.0, "offered={offered}"); + let request = planned.turn_request(0, 1, 0, 123).unwrap(); + assert_eq!(request.arrival, 123); + assert_eq!( + request.input_tokens, + planned.sessions[0].turns[1].input_tokens + ); + } +} diff --git a/src/libraries/rust/stargate/crates/stargate/src/lib.rs b/src/libraries/rust/stargate/crates/stargate/src/lib.rs index 17c2a23f99..f0bf2b5f10 100644 --- a/src/libraries/rust/stargate/crates/stargate/src/lib.rs +++ b/src/libraries/rust/stargate/crates/stargate/src/lib.rs @@ -27,10 +27,7 @@ pub(crate) mod queue_estimate { use stargate_proto::pb::ModelStats; use stargate_protocol::common::{has_available_engine_slot, queue_time_delta_ms}; - pub(crate) fn queue_time_estimate_ms_for_priority( - stats: &ModelStats, - priority: u32, - ) -> Option { + pub fn queue_time_estimate_ms_for_priority(stats: &ModelStats, priority: u32) -> Option { // Keep raw work estimates intact so reservations can fill the last slot // without losing the backlog needed by subsequent routing decisions. if has_available_engine_slot(stats.num_running_queries, stats.max_engine_concurrency) { @@ -94,8 +91,9 @@ pub mod registration { } pub mod routing { + pub use crate::queue_estimate::queue_time_estimate_ms_for_priority; pub use crate::routing_state::{ - RoutedClusterSnapshot, RoutedInferenceServerSnapshot, RoutingTargetKey, + RoutedClusterSnapshot, RoutedInferenceServerSnapshot, RoutingTargetKey, apply_reservation, }; } diff --git a/src/libraries/rust/stargate/crates/stargate/src/routing_state/mod.rs b/src/libraries/rust/stargate/crates/stargate/src/routing_state/mod.rs index ad91c02764..af2b9b6495 100644 --- a/src/libraries/rust/stargate/crates/stargate/src/routing_state/mod.rs +++ b/src/libraries/rust/stargate/crates/stargate/src/routing_state/mod.rs @@ -40,6 +40,7 @@ pub(crate) use keys::RegistrationIdentity; pub(crate) use registration::test_registration_generation; pub(crate) use registration::{RegistrationGeneration, RunningRegistration}; pub(crate) use reservations::RoutingReservation; +pub use reservations::apply_reservation; #[cfg(test)] use snapshots::RoutingTargetState; diff --git a/src/libraries/rust/stargate/crates/stargate/src/routing_state/reservations.rs b/src/libraries/rust/stargate/crates/stargate/src/routing_state/reservations.rs index 796b04457c..a560d45758 100644 --- a/src/libraries/rust/stargate/crates/stargate/src/routing_state/reservations.rs +++ b/src/libraries/rust/stargate/crates/stargate/src/routing_state/reservations.rs @@ -88,17 +88,20 @@ pub(super) fn apply_pending_cluster_reservations( .iter() .filter(|pending| pending.is_active()) { - // Pending reservations are advisory routing stats; saturate rather than wrap. - stats.queue_size = stats.queue_size.saturating_add(1); - stats.queued_input_size = stats.queued_input_size.saturating_add(pending.input_tokens); - stats.num_running_queries = stats.num_running_queries.saturating_add(1); - stats.total_query_input_size = stats - .total_query_input_size - .saturating_add(pending.input_tokens); - update_reserved_priority_queue_time(stats, pending.input_tokens, pending.priority); + apply_reservation(stats, pending.input_tokens, pending.priority); } } +/// Counts one routed request that the backend's stats do not yet include. +pub fn apply_reservation(stats: &mut ModelStats, input_tokens: u64, priority: u32) { + // Pending reservations are advisory routing stats; saturate rather than wrap. + stats.queue_size = stats.queue_size.saturating_add(1); + stats.queued_input_size = stats.queued_input_size.saturating_add(input_tokens); + stats.num_running_queries = stats.num_running_queries.saturating_add(1); + stats.total_query_input_size = stats.total_query_input_size.saturating_add(input_tokens); + update_reserved_priority_queue_time(stats, input_tokens, priority); +} + #[cfg(test)] mod tests { use std::collections::HashMap;