Files
LithosAnanake/capsules/BLOCK_MAP.md
T
Robert Allan JamesandClaude Sonnet 5 e10fb76fb2
Build / build-amd64-iso (push) Waiting to run
Build / build-aarch64-iso (push) Waiting to run
Build / build-riscv64-img (push) Waiting to run
xhci: fix Configure Endpoint completion drop under concurrent multi-device enumeration
Root cause of the FABRIC-3.md §IX.5 follow-on: with 9 devices attached
concurrently at boot (Zuse + 8 identities), only 1 of 9 ever completed
enumeration and reached blkio_usb: MSC device ready -- the other 8 produced
no error and no success, just silence.

xhci_poll_events()'s deferred per-slot dispatch loop submitted a Configure
Endpoint command (a Command Ring op) unconditionally for every slot with
that action pending in a single pass -- unlike every other Command Ring op
in this driver (Enable Slot, Address Device, Disable Slot), which is
correctly gated behind dev->connect_state == XHCI_CONN_IDLE before ever
submitting. With 2+ devices enumerating concurrently, this let multiple
Configure Endpoint commands sit outstanding on the Command Ring at once.
Their completion is correlated purely via the single shared
dev->connect_state field (== XHCI_CONN_AWAIT_CONFIGURE_ENDPOINT), not the
completion event's own Slot ID -- so whichever slot's completion happened
to land while connect_state still read AWAIT_CONFIGURE_ENDPOINT got
correctly chained into SET_CONFIG, and every other slot's completion
arrived after connect_state had already moved on, silently swallowed by
the handler's generic "unrelated command completion" catch-all. No error
path exists for this, which is why it produced total silence rather than
a diagnosable failure.

Root-caused live via temporary WARN-level diagnostic probes (written,
captured, and fully reverted per the project's own probe convention --
this commit contains only the functional fix and its explanatory comment,
no probe code) added at four points: the initial port scan, the connect
handler, the Command Completion Event handler, and the deferred dispatch
loop itself. The probes showed all 9 devices correctly completing Enable
Slot + Address Device (ruling out the connect-state queue as the cause,
the original hypothesis), then all 9 correctly submitting Configure
Endpoint and all 9 commands completing successfully in hardware (code=
SUCCESS, no errors logged) -- but only 1 of 9 ever got its next_action
chained to SET_CONFIG.

Fix: apply the same single-in-flight discipline this driver already uses
for every other Command Ring op. If the Ring isn't free when a slot's
Configure Endpoint action is due, put the action back on that slot instead
of submitting a second command onto a busy Ring -- the next tick's
dispatch pass retries it once the Ring frees up.

Verified live: booting Zuse + all 8 identity drives concurrently (9
devices, one per real xHCI port via the XHCI_PORTS fix from the previous
commit) now produces 9 "MSC device ready" lines and zero xHCI errors,
where it previously produced exactly 1. Three-arch clean qemu acceptance
(single Zuse device, the standard regression case) passed on amd64,
aarch64, and riscv64 -- no change in that baseline behavior.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ec88YKxxhZGG1RNnune78
2026-09-07 09:02:45 -04:00

365 lines
20 KiB
Markdown

# Capsule Block Manifest — Auto-generated
<!-- Generated by mkcapsule --manifest 2026-09-07T12:52:21Z -->
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
<!-- Hand-written justifications and immutability notes live -->
<!-- in MANIFEST.md alongside this auto-generated index. -->
## Capsule Summary
| Capsule | Blocks claimed | xxHash64 | Signed |
|---------|----------------|----------|--------|
| `ACL.4th` | 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4015 | `0xd781d22148ff171d` | yes |
| `artemis:init.4th` | 4110, 4111, 4112, 4113, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4177, 4178, 4179, 4180, 4181, 4182, 4851, 4852, 4853, 4854 | `0x1bb1886fc961c152` | yes |
| `block-acl.4th` | 4019, 4020 | `0xf6cc2a59e3a6734e` | yes |
| `common:messaging.4th` | 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040 | `0x9cb26fa2d67465db` | yes |
| `common:msg.4th` | 4055 | `0x850a0382344ea6c4` | yes |
| `doe-campaign.4th` | 4060, 4061, 4062, 4063, 4064, 4065 | `0x3d4549142d91ec20` | yes |
| `doe.4th` | 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107 | `0xf154616d248e861f` | yes |
| `fabric.4th` | 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 5000, 5001, 5002 | `0x9d9489cbeca4099b` | yes |
| `font.4th` | 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985 | `0x3f305911500c78f6` | yes |
| `hermes:init.4th` | 4153, 4855, 5116 | `0x2df61924448a6812` | yes |
| `init-0.4th` | 2200, 2201 | `0xd0a9550baf786bb3` | yes |
| `init-1.4th` | 4406, 4415, 4425, 4435 | `0x63e251adb0a03613` | yes |
| `init-2.4th` | 4506, 4515, 4525, 4535, 4545 | `0xf113b3d0bcccae47` | yes |
| `init-3.4th` | 4606, 4615, 4625, 4635, 4645, 4655, 4665 | `0x62b7a71576ad1041` | yes |
| `init-4.4th` | 2130, 2131, 2132 | `0x89e3ef1db5ac0627` | yes |
| `init-5.4th` | *(none — raw code capsule)* | `0xda0c179af10a46a9` | yes |
| `init-6.4th` | 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095 | `0x06fc0ce1e369ef5a` | yes |
| `init-7.4th` | 2150 | `0xb88df2efeb753d64` | yes |
| `init-8.4th` | 2160 | `0x714746312b72f83d` | yes |
| `init-9.4th` | 4706, 4715, 4725, 4735, 4745 | `0x3f2bec73142aa424` | yes |
| `init-l8-diverse.4th` | 4820, 4821, 4822 | `0xaa293201a6c91838` | yes |
| `init-l8-omni.4th` | 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079 | `0x5979e314d6452045` | yes |
| `init-l8-stable.4th` | 4806 | `0xdc3830f189063a9a` | yes |
| `init-l8-temporal.4th` | 4830, 4831 | `0x51abd4c138246651` | yes |
| `init-l8-transition.4th` | 4840, 4841, 4842 | `0xbcc1a81976f0a4c9` | yes |
| `init-l8-volatile.4th` | 4810, 4811, 4812, 4813 | `0x98caabbbd92abac4` | yes |
| `init.4th` | 2049, 2050, 2057 | `0x5d35c5c6a6eafe04` | yes |
| `lib.4th` | 4050 | `0x4b216635c359ef73` | yes |
| `process.4th` | 4300, 4301 | `0x781afc1dbd0294f7` | yes |
| `sdk.4th` | 5109, 5110, 5111, 5112, 5113, 5114, 5115 | `0x008fdbbb62c94a3a` | yes |
| `turtle.4th` | 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108 | `0x4d470418ca543365` | yes |
| `user-font-demo.4th` | 4200, 4201, 4202 | `0xce1fd7d1b581a56d` | yes |
| `zuse-eligibility.4th` | 4021, 4022 | `0x8b49c1bc1e01dc58` | yes |
| `zuse.4th` | 4016, 4017, 4018 | `0x490ded9be257a90b` | yes |
## Block Map (sorted by LBN)
| LBN | Capsule | xxHash64 | Status |
|-----|---------|----------|--------|
| 2049 | `init.4th` | `0x5d35c5c6a6eafe04` | ok |
| 2050 | `init.4th` | `0x5d35c5c6a6eafe04` | ok |
| 2057 | `init.4th` | `0x5d35c5c6a6eafe04` | ok |
| 2064 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2065 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2066 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2067 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2068 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2069 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2070 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2071 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2072 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2073 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2074 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2075 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2076 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2077 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2078 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2079 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
| 2080 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2081 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2082 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2083 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2084 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2085 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2086 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2087 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2088 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2089 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2090 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2091 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2092 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2093 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2094 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2095 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
| 2100 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2101 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2102 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2103 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2104 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2105 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2106 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2107 | `doe.4th` | `0xf154616d248e861f` | ok |
| 2130 | `init-4.4th` | `0x89e3ef1db5ac0627` | ok |
| 2131 | `init-4.4th` | `0x89e3ef1db5ac0627` | ok |
| 2132 | `init-4.4th` | `0x89e3ef1db5ac0627` | ok |
| 2150 | `init-7.4th` | `0xb88df2efeb753d64` | ok |
| 2160 | `init-8.4th` | `0x714746312b72f83d` | ok |
| 2200 | `init-0.4th` | `0xd0a9550baf786bb3` | ok |
| 2201 | `init-0.4th` | `0xd0a9550baf786bb3` | ok |
| 4000 | `ACL.4th` | `0xd781d22148ff171d` | ok |
| 4001 | `ACL.4th` | `0xd781d22148ff171d` | ok |
| 4002 | `ACL.4th` | `0xd781d22148ff171d` | ok |
| 4003 | `ACL.4th` | `0xd781d22148ff171d` | ok |
| 4004 | `ACL.4th` | `0xd781d22148ff171d` | ok |
| 4005 | `ACL.4th` | `0xd781d22148ff171d` | ok |
| 4006 | `ACL.4th` | `0xd781d22148ff171d` | ok |
| 4007 | `ACL.4th` | `0xd781d22148ff171d` | ok |
| 4015 | `ACL.4th` | `0xd781d22148ff171d` | ok |
| 4016 | `zuse.4th` | `0x490ded9be257a90b` | ok |
| 4017 | `zuse.4th` | `0x490ded9be257a90b` | ok |
| 4018 | `zuse.4th` | `0x490ded9be257a90b` | ok |
| 4019 | `block-acl.4th` | `0xf6cc2a59e3a6734e` | ok |
| 4020 | `block-acl.4th` | `0xf6cc2a59e3a6734e` | ok |
| 4021 | `zuse-eligibility.4th` | `0x8b49c1bc1e01dc58` | ok |
| 4022 | `zuse-eligibility.4th` | `0x8b49c1bc1e01dc58` | ok |
| 4050 | `lib.4th` | `0x4b216635c359ef73` | ok |
| 4055 | `common:msg.4th` | `0x850a0382344ea6c4` | ok |
| 4060 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
| 4061 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
| 4062 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
| 4063 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
| 4064 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
| 4065 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
| 4110 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4111 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4112 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4113 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4122 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4123 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4124 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4125 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4126 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4127 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4128 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4129 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4130 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4131 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4132 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4133 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4134 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4135 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4136 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4137 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4138 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4139 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4140 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4141 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4153 | `hermes:init.4th` | `0x2df61924448a6812` | ok |
| 4160 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4161 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4162 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4163 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4164 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4165 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4166 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4167 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4168 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4169 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4170 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4171 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4172 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4173 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4174 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4177 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4178 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4179 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4180 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4181 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4182 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4200 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
| 4201 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
| 4202 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
| 4300 | `process.4th` | `0x781afc1dbd0294f7` | ok |
| 4301 | `process.4th` | `0x781afc1dbd0294f7` | ok |
| 4406 | `init-1.4th` | `0x63e251adb0a03613` | ok |
| 4415 | `init-1.4th` | `0x63e251adb0a03613` | ok |
| 4425 | `init-1.4th` | `0x63e251adb0a03613` | ok |
| 4435 | `init-1.4th` | `0x63e251adb0a03613` | ok |
| 4506 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
| 4515 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
| 4525 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
| 4535 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
| 4545 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
| 4606 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
| 4615 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
| 4625 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
| 4635 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
| 4645 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
| 4655 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
| 4665 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
| 4706 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
| 4715 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
| 4725 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
| 4735 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
| 4745 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
| 4806 | `init-l8-stable.4th` | `0xdc3830f189063a9a` | ok |
| 4810 | `init-l8-volatile.4th` | `0x98caabbbd92abac4` | ok |
| 4811 | `init-l8-volatile.4th` | `0x98caabbbd92abac4` | ok |
| 4812 | `init-l8-volatile.4th` | `0x98caabbbd92abac4` | ok |
| 4813 | `init-l8-volatile.4th` | `0x98caabbbd92abac4` | ok |
| 4820 | `init-l8-diverse.4th` | `0xaa293201a6c91838` | ok |
| 4821 | `init-l8-diverse.4th` | `0xaa293201a6c91838` | ok |
| 4822 | `init-l8-diverse.4th` | `0xaa293201a6c91838` | ok |
| 4830 | `init-l8-temporal.4th` | `0x51abd4c138246651` | ok |
| 4831 | `init-l8-temporal.4th` | `0x51abd4c138246651` | ok |
| 4840 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
| 4841 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
| 4842 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
| 4851 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4852 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4853 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4854 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4855 | `hermes:init.4th` | `0x2df61924448a6812` | ok |
| 4900 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4901 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4902 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4903 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4904 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4905 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4906 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4907 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4908 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4909 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4910 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4911 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4912 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4913 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4914 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4915 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4916 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4917 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4918 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4919 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4920 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4921 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4922 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4923 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4924 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4925 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4926 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4927 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4928 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4929 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4930 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4931 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4932 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4933 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4934 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4935 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4936 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4937 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4938 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4939 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4940 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4941 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4942 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4943 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4944 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4945 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4946 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4947 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4948 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4949 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4950 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4951 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4952 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4953 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4954 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4955 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4956 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4957 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4958 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4959 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4960 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4961 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4962 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4963 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4964 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4965 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4966 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4967 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4968 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4969 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4970 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4971 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4972 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4973 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4974 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4975 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4976 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4977 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4978 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4979 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4980 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4981 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4982 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4983 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4984 | `font.4th` | `0x3f305911500c78f6` | ok |
| 4985 | `font.4th` | `0x3f305911500c78f6` | ok |
| 5000 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 5001 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 5002 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 5003 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5004 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5005 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5006 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5007 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5008 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5009 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5010 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5011 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5012 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5013 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5014 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5015 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5016 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5017 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5018 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5019 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5020 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5021 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5022 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5023 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5024 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5025 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5026 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5027 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5028 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5029 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5030 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5031 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5032 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5033 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5034 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5035 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5036 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5037 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5038 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5039 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5040 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5100 | `turtle.4th` | `0x4d470418ca543365` | ok |
| 5101 | `turtle.4th` | `0x4d470418ca543365` | ok |
| 5102 | `turtle.4th` | `0x4d470418ca543365` | ok |
| 5103 | `turtle.4th` | `0x4d470418ca543365` | ok |
| 5104 | `turtle.4th` | `0x4d470418ca543365` | ok |
| 5105 | `turtle.4th` | `0x4d470418ca543365` | ok |
| 5106 | `turtle.4th` | `0x4d470418ca543365` | ok |
| 5107 | `turtle.4th` | `0x4d470418ca543365` | ok |
| 5108 | `turtle.4th` | `0x4d470418ca543365` | ok |
| 5109 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 5110 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 5111 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 5112 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 5113 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 5114 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 5115 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 5116 | `hermes:init.4th` | `0x2df61924448a6812` | ok |
## Conflicts
None.
---
*34 capsule(s) scanned. Re-run `mkcapsule --manifest <dir>` to refresh.*