openpay/
compliance/ PCI-DSS readiness package (scope-map,
pci-zero-architecture, hsm-kms-guidance,
qsa-checklist), citing PCI-DSS v4.0.1
requirements. (#1)
examples/pci-zero/ Runnable example demonstrating a deployment
where merchant code never touches a PAN. (#1)
crates/op-core/ Tokenized<Card> typestate + NetworkToken
+ CardNetwork + Cryptogram. (#2)
crates/op-rails-card/network_token/
NetworkTokenProvider trait + VTS adapter
+ MDES adapter, with deterministic stubs
behind a 'live' feature flag. (#2)
crates/op-driver-sdk/conformance/network_token.rs
Conformance harness for third-party
NetworkTokenProvider implementations. (#2)
crates/op-cli/src/ledger/ 'openpay ledger as-of' subcommand for
bi-temporal queries. (#3)
crates/op-orchestrator/src/telemetry.rs
OpenTelemetry span emission per
Payment<S> transition with semantic-
conventions tags. (#3)
docs/observability/ Grafana dashboard JSON + wiring guide
for the bi-temporal ledger lens. (#3)
smart-byte/
smart-byte-rs/ Rust reference implementation: envelope
encode/decode (canonical CBOR + BLAKE3
content addressing), Ed25519 sign +
verify, lockstep BFT commit MVP, Iroh
transport scaffold, CLI. (#4)
spec/identity_and_key_rotation.md
Adopts KERI SAIDs + key-event log
format; explicitly does not adopt ACDC
chaining wholesale. (#5)
conformance/v1/ 21 test vectors covering canonicalisation,
SAID computation, signature verification,
lockstep commit, gossip propagation.
CI gate enforces spec/vector coupling. (#6)
eoc/
eoc-rs/ Rust + WASM reference implementation:
4-stage cascade (cache -> kv -> graph ->
neural), joule counters via RAPL / NVML /
powermetrics, CLI, wasm-bindgen surface.
18 tests pass. (#7)
eoc-bench/ Benchmark harness, MT-Bench and Router
case sets, 'joules per MT-Bench point'
metric, 'eoc-bench run | compare' CLI. (#8)
standards/sci-for-ai-submission.md
Submission proposal mapping EOC's
receipt schema to GSF SCI-for-AI. (#9)
cookbook/ HuggingFace-style cookbook (markdown +
runnable Python) demonstrating EOC's
cascade with HF AI Energy Score. (#9)
docs/bench-v0.md Reproducibility doc for eoc-bench.
Workspace state:
- openpay clippy -- -D warnings: clean across all touched crates
- smart-byte-rs cargo test --workspace + clippy: clean
- eoc-rs cargo test --workspace + clippy: clean (18 tests)
- eoc-bench cargo check --workspace + clippy + 15 tests: clean
Rust 1.95.0 edition 2024 pinned at the open-standards root via
rust-toolchain.toml; every workspace inherits.
Closes #1 #2 #3 #4 #5 #6 #7 #8 #9.
556 lines
13 KiB
TOML
556 lines
13 KiB
TOML
# This file is automatically @generated by Cargo.
|
|
# It is not intended for manual editing.
|
|
version = 4
|
|
|
|
[[package]]
|
|
name = "allocator-api2"
|
|
version = "0.2.21"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
|
|
|
|
[[package]]
|
|
name = "anstream"
|
|
version = "1.0.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d"
|
|
dependencies = [
|
|
"anstyle",
|
|
"anstyle-parse",
|
|
"anstyle-query",
|
|
"anstyle-wincon",
|
|
"colorchoice",
|
|
"is_terminal_polyfill",
|
|
"utf8parse",
|
|
]
|
|
|
|
[[package]]
|
|
name = "anstyle"
|
|
version = "1.0.14"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000"
|
|
|
|
[[package]]
|
|
name = "anstyle-parse"
|
|
version = "1.0.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e"
|
|
dependencies = [
|
|
"utf8parse",
|
|
]
|
|
|
|
[[package]]
|
|
name = "anstyle-query"
|
|
version = "1.1.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
|
|
dependencies = [
|
|
"windows-sys",
|
|
]
|
|
|
|
[[package]]
|
|
name = "anstyle-wincon"
|
|
version = "3.0.11"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
|
|
dependencies = [
|
|
"anstyle",
|
|
"once_cell_polyfill",
|
|
"windows-sys",
|
|
]
|
|
|
|
[[package]]
|
|
name = "anyhow"
|
|
version = "1.0.102"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
|
|
|
|
[[package]]
|
|
name = "arrayref"
|
|
version = "0.3.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb"
|
|
|
|
[[package]]
|
|
name = "arrayvec"
|
|
version = "0.7.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
|
|
|
|
[[package]]
|
|
name = "async-trait"
|
|
version = "0.1.89"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "blake3"
|
|
version = "1.8.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce"
|
|
dependencies = [
|
|
"arrayref",
|
|
"arrayvec",
|
|
"cc",
|
|
"cfg-if",
|
|
"constant_time_eq",
|
|
"cpufeatures",
|
|
]
|
|
|
|
[[package]]
|
|
name = "cc"
|
|
version = "1.2.62"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98"
|
|
dependencies = [
|
|
"find-msvc-tools",
|
|
"shlex",
|
|
]
|
|
|
|
[[package]]
|
|
name = "cfg-if"
|
|
version = "1.0.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
|
|
|
[[package]]
|
|
name = "clap"
|
|
version = "4.6.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51"
|
|
dependencies = [
|
|
"clap_builder",
|
|
"clap_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "clap_builder"
|
|
version = "4.6.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f"
|
|
dependencies = [
|
|
"anstream",
|
|
"anstyle",
|
|
"clap_lex",
|
|
"strsim",
|
|
]
|
|
|
|
[[package]]
|
|
name = "clap_derive"
|
|
version = "4.6.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9"
|
|
dependencies = [
|
|
"heck",
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "clap_lex"
|
|
version = "1.1.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
|
|
|
|
[[package]]
|
|
name = "colorchoice"
|
|
version = "1.0.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570"
|
|
|
|
[[package]]
|
|
name = "constant_time_eq"
|
|
version = "0.4.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
|
|
|
|
[[package]]
|
|
name = "cpufeatures"
|
|
version = "0.3.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
|
|
dependencies = [
|
|
"libc",
|
|
]
|
|
|
|
[[package]]
|
|
name = "eoc-bench"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"anyhow",
|
|
"clap",
|
|
"eoc-bench-mt",
|
|
"eoc-bench-router",
|
|
"eoc-bench-runner",
|
|
"eoc-cache",
|
|
"eoc-cascade",
|
|
"eoc-core",
|
|
"eoc-graph",
|
|
"eoc-kv",
|
|
"eoc-neural",
|
|
"serde",
|
|
"serde_json",
|
|
"tokio",
|
|
]
|
|
|
|
[[package]]
|
|
name = "eoc-bench-mt"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"eoc-bench-runner",
|
|
"serde",
|
|
"serde_json",
|
|
]
|
|
|
|
[[package]]
|
|
name = "eoc-bench-router"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"eoc-bench-runner",
|
|
"serde",
|
|
"serde_json",
|
|
]
|
|
|
|
[[package]]
|
|
name = "eoc-bench-runner"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"anyhow",
|
|
"eoc-cascade",
|
|
"eoc-core",
|
|
"serde",
|
|
"serde_json",
|
|
"thiserror",
|
|
"tokio",
|
|
]
|
|
|
|
[[package]]
|
|
name = "eoc-cache"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"async-trait",
|
|
"eoc-core",
|
|
"lru",
|
|
"tokio",
|
|
]
|
|
|
|
[[package]]
|
|
name = "eoc-cascade"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"async-trait",
|
|
"eoc-cache",
|
|
"eoc-core",
|
|
"eoc-graph",
|
|
"eoc-kv",
|
|
"eoc-meter",
|
|
"eoc-neural",
|
|
"tokio",
|
|
]
|
|
|
|
[[package]]
|
|
name = "eoc-core"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"async-trait",
|
|
"blake3",
|
|
"serde",
|
|
"serde_cbor",
|
|
"thiserror",
|
|
]
|
|
|
|
[[package]]
|
|
name = "eoc-graph"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"async-trait",
|
|
"eoc-cache",
|
|
"eoc-core",
|
|
"tokio",
|
|
]
|
|
|
|
[[package]]
|
|
name = "eoc-kv"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"async-trait",
|
|
"eoc-cache",
|
|
"eoc-core",
|
|
"tokio",
|
|
]
|
|
|
|
[[package]]
|
|
name = "eoc-meter"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"eoc-core",
|
|
]
|
|
|
|
[[package]]
|
|
name = "eoc-neural"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"async-trait",
|
|
"eoc-cache",
|
|
"eoc-core",
|
|
"tokio",
|
|
]
|
|
|
|
[[package]]
|
|
name = "equivalent"
|
|
version = "1.0.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
|
|
|
[[package]]
|
|
name = "find-msvc-tools"
|
|
version = "0.1.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
|
|
|
|
[[package]]
|
|
name = "foldhash"
|
|
version = "0.1.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
|
|
|
|
[[package]]
|
|
name = "half"
|
|
version = "1.8.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403"
|
|
|
|
[[package]]
|
|
name = "hashbrown"
|
|
version = "0.15.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
|
|
dependencies = [
|
|
"allocator-api2",
|
|
"equivalent",
|
|
"foldhash",
|
|
]
|
|
|
|
[[package]]
|
|
name = "heck"
|
|
version = "0.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
|
|
[[package]]
|
|
name = "is_terminal_polyfill"
|
|
version = "1.70.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
|
|
|
|
[[package]]
|
|
name = "itoa"
|
|
version = "1.0.18"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
|
|
[[package]]
|
|
name = "libc"
|
|
version = "0.2.186"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
|
|
|
|
[[package]]
|
|
name = "lru"
|
|
version = "0.12.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38"
|
|
dependencies = [
|
|
"hashbrown",
|
|
]
|
|
|
|
[[package]]
|
|
name = "memchr"
|
|
version = "2.8.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
|
|
|
|
[[package]]
|
|
name = "once_cell_polyfill"
|
|
version = "1.70.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
|
|
|
|
[[package]]
|
|
name = "pin-project-lite"
|
|
version = "0.2.17"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
|
|
|
|
[[package]]
|
|
name = "proc-macro2"
|
|
version = "1.0.106"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
|
dependencies = [
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "quote"
|
|
version = "1.0.45"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde"
|
|
version = "1.0.228"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
|
|
dependencies = [
|
|
"serde_core",
|
|
"serde_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_cbor"
|
|
version = "0.11.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5"
|
|
dependencies = [
|
|
"half",
|
|
"serde",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_core"
|
|
version = "1.0.228"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
|
|
dependencies = [
|
|
"serde_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_derive"
|
|
version = "1.0.228"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_json"
|
|
version = "1.0.150"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9"
|
|
dependencies = [
|
|
"itoa",
|
|
"memchr",
|
|
"serde",
|
|
"serde_core",
|
|
"zmij",
|
|
]
|
|
|
|
[[package]]
|
|
name = "shlex"
|
|
version = "1.3.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
|
|
|
[[package]]
|
|
name = "strsim"
|
|
version = "0.11.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
|
|
|
|
[[package]]
|
|
name = "syn"
|
|
version = "2.0.117"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "thiserror"
|
|
version = "2.0.18"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
|
|
dependencies = [
|
|
"thiserror-impl",
|
|
]
|
|
|
|
[[package]]
|
|
name = "thiserror-impl"
|
|
version = "2.0.18"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tokio"
|
|
version = "1.52.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe"
|
|
dependencies = [
|
|
"pin-project-lite",
|
|
"tokio-macros",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tokio-macros"
|
|
version = "2.7.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "unicode-ident"
|
|
version = "1.0.24"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
|
|
[[package]]
|
|
name = "utf8parse"
|
|
version = "0.2.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
|
|
|
[[package]]
|
|
name = "windows-link"
|
|
version = "0.2.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
|
|
|
[[package]]
|
|
name = "windows-sys"
|
|
version = "0.61.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
|
|
dependencies = [
|
|
"windows-link",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zmij"
|
|
version = "1.0.21"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
|