Stage 3 follow-on: message-arrival eligibility hook + trampoline-blind switch-storm fix (FABRIC-3.md §XXVIII.2)
Build / build-amd64-iso (push) Waiting to run
Build / build-aarch64-iso (push) Waiting to run
Build / build-riscv64-img (push) Waiting to run

Implements the message-arrival eligibility signal FABRIC-3.md §XXVIII.1 left
open (has_work per-slot flag, set via new SWITCH-MARK-WORK primitive from
MSG-SEND) so an idle VM never becomes a switch target purely by waiting out
the readiness threshold.

Also root-causes and fixes a second, independent switch-storm: the tick's
"who is current" check used vm_log_attributed_vm(), which can't see a VM
parked in switch.c's own raw trampoline. Replaced with a dedicated
g_switch_current_vm tracked by the switch mechanism itself, and moved
target-slot eligibility reset to the switch decision point instead of
relying on ISR polling to observe a window that can be only a few
instructions wide.

Verified live on all 3 architectures: clean boot to zuse@Hera] ok>, live
cross-VM message dispatch, and (since a quiet log looks identical to a
livelocked storm once the DoE probe is gone) confirmed genuine REPL
liveness via QMP send-key + screendump on aarch64/riscv64, not log
inspection alone.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BWpNjdwPtFLuVLaAq44L9K
This commit is contained in:
Robert Allan James
2026-09-14 17:39:20 -04:00
co-authored by Claude Sonnet 5
parent 862d7d9c48
commit 66beae7fd4
29 changed files with 121129 additions and 338 deletions
+90
View File
@@ -3804,3 +3804,93 @@ counter/flag, written at the FORTH-side message-enqueue site, read the same ISR-
readiness already is) but not yet implemented -- superseded in priority by this stack-ownership readiness already is) but not yet implemented -- superseded in priority by this stack-ownership
finding, which had to be fixed first. Revisit once this correction lands. finding, which had to be fixed first. Revisit once this correction lands.
## XXVIII.2 -- Message-arrival eligibility hook implemented; a second, independent switch-storm
root cause found and fixed in the same pass (2026-09-14)
**Picks up the "still open" item from §XXVIII.1's close: the message-arrival-hook eligibility
signal.** Added `has_work`, a per-slot flag beside the existing `readiness` counter in
`sk_switch_slot_entry_t` (`capsule_vm_switch_signal.c`). `sk_vm_switch_signal_mark_work(vm_id)`
sets it; `sk_vm_switch_signal_tick()`'s pending-switch decision now requires both
`readiness >= SK_SWITCH_READINESS_THRESHOLD` *and* `has_work`, and clears it (alongside
`readiness`) the instant a slot becomes current, same as before. Wired end to end: `MSG-SEND`
(`capsules/common/messaging.4th`, block 5021) now calls a new `SWITCH-MARK-WORK ( caddr u -- )`
primitive (`mama_word_switch_mark_work`, `mama_forth_words.c`) with the message's `to` name,
captured into a new `MSG-SEND-TO-IDX` variable before the existing `Q.SLOT`/`MSG-ALLOC` sequence
consumes the stack. `SWITCH-MARK-WORK` resolves the name via
`capsule_vm_find_by_name_nocase()` and silently no-ops on an unknown or malformed name --
deliberate, since this fires on every message send, not a user-facing command. Registered in
all four of `mama_forth_words.c`'s word-table blocks (`register_mama_forth_words()` x2,
`register_child_vm_words()`), matching how every other VM-scoped primitive in that file is
exposed. A VM that has never been sent anything therefore never becomes a switch target purely
by sitting idle past the readiness threshold -- closes the "wasteful but no longer corrupting"
bounce §XXVIII.1 flagged as its own still-open item.
**While instrumenting this for verification, a second, wholly independent switch-storm root
cause turned up -- not a regression of §XXVIII.1's fix, a different bug in the same
neighborhood.** `sk_vm_switch_signal_tick()`'s "who is current" check used
`vm_log_attributed_vm()` (`vm_core.c`) -- the wrong source. That function tracks nested
`vm_interpret()` calls for log-source attribution and has no way to know a VM is running while
parked inside `switch.c`'s own raw-C trampoline (`sk_vm_switch_entry()`), which never itself
calls `vm_interpret()`. A VM whose only production behavior is that trampoline was therefore
never seen as "current," so its own `readiness`/`has_work` state below never reset by the
current-slot branch of `tick()` -- readiness re-armed on the very next timer tick, forever, once
nothing else happened to independently move attribution around it. Found live: a switch storm,
QEMU pinned near 100% CPU, serial log frozen solid.
**Fix: track "who is physically running" inside the switch mechanism itself, independent of
`vm_interpret()`'s own bookkeeping.** New `g_switch_current_vm` (`switch.c`), exposed via
`sk_vm_switch_current_vm()`/`sk_vm_switch_set_current()` (`switch.h`) -- written unconditionally
by `sk_vm_context_switch()` on both the switch-out and the eventual resume, the same
single-writer-mainline discipline every other piece of Stage 2/3 state already follows. Seeded
once at boot (`kernel_main.c`, right where Hera's slot registers) since she is genuinely running
before any switch has ever happened and there is no other event to hang the initial value on.
`sk_vm_switch_signal_tick()` now reads this instead of `vm_log_attributed_vm()`. An earlier
attempt at fixing this by calling `vm_interpret(self, "MSG-TICK")` from inside the trampoline
itself was tried and reverted -- it traded the switch-storm for a different, unrelated hang (a
stall in `sk_repl_headless_wait()`'s WIREBIND-attachment wait, not root-caused, not worth
chasing once the real fix was found) -- worth recording so it isn't retried.
**A third bug, same root cause (eligibility state read too late), fixed alongside the other
two:** `sk_vm_switch_signal_note_switch_performed()` reset a target slot's `readiness`/`has_work`
by polling `tick()`'s current-slot branch, which depends on a real timer tick landing while that
VM is genuinely "current" -- a window that can be as small as a few instructions for a VM whose
only behavior is the placeholder trampoline's immediate yield-back, too narrow to reliably catch.
Fixed by taking a `target_id` parameter (call site: `vm_core.c`'s Stage 3 checkpoint in
`execute_colon_word()`) and resetting that slot's `readiness`/`has_work` directly, at the switch
decision point, deterministically -- correctness no longer depends on ISR timing at all.
`current_slot`/`sk_vm_switch_current_vm()` remain useful for the DoE-observable columns and for
excluding the running slot from readiness accrual, but are no longer load-bearing for storm
prevention.
**Verification, run live by Claude Sonnet 5 at Bob's request, per this project's
write-probe-capture-revert discipline minus the probe (the temporary `HB-ON` DoE trigger from
§XXVIII.1 stays reverted; this pass verified without it):** all three architectures rebuilt
clean (`make -f Makefile.starkernel ARCH=<arch> clean qemu`, foreground, one at a time, prior
instance fully torn down including leaked `tail -f` helper processes before the next launch) and
boot to `[zuse@Hera] ok>` -- Zuse auto-authenticates from the attached thumbdrive on every arch,
matching the identity-lockdown work from §XI. Live cross-VM message dispatch observed
unprompted (`Stadium: dispatch cell=42634 behaviour=DELIVER msg_idx=0`, attributed to
`[zuse@Artemis]`), confirming the eligibility mechanism is genuinely exercised, not just present
in the binary. **Explicitly called out because it matters for how this was checked:** with the
DoE probe gone, a healthy idle REPL and a livelocked storm produce the identical symptom -- a
quiet serial log -- so log growth alone was not trusted as proof of health on aarch64/riscv64
after a quiet stretch. Verified instead via QMP (`send-key` typing `1 1 + . ` followed by `ret`,
then `screendump`) against the running instance's own QMP socket, confirming a real computed
`2` appended to the log on both architectures -- the same headless-input technique this
project's memory already recommends for exactly this class of ambiguity. All three
architectures: clean build, clean boot, live messaging, correct computation, zero PANIC/assertion
output, no leaked QEMU or helper processes after teardown.
**Found live, flagged, deliberately not fixed (not requested, not this pass's scope):**
`VM-EXEC: ERROR in Artemis` prints deterministically on every boot, on all three architectures,
immediately after Artemis's own birth completes and just before Zuse's thumbdrive
identity-confirmation line -- consistent enough across arches to be a real, reproducible
condition rather than timing noise, but boot continues cleanly past it every time. Worth
someone's attention in a future pass; `mama_word_vm_exec()`'s error-report path
(`mama_forth_words.c` ~line 781) is where the message originates, but the actual failing
`VM-EXEC` call site and cause were not traced this pass.
**Still open:** the MSG-TICK/Stage-3-switch dual-ownership rough edge §XXVIII itself flagged
(both mechanisms can independently move control between the same VMs) is unchanged by this
pass. Stage 4 (WIREBIND-scope extension) remains a ratified-decision-only step, untouched.
+42 -42
View File
@@ -1,5 +1,5 @@
# Capsule Block Manifest — Auto-generated # Capsule Block Manifest — Auto-generated
<!-- Generated by mkcapsule --manifest 2026-09-14T03:55:53Z --> <!-- Generated by mkcapsule --manifest 2026-09-14T20:33:48Z -->
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. --> <!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
<!-- Hand-written justifications and immutability notes live --> <!-- Hand-written justifications and immutability notes live -->
<!-- in MANIFEST.md alongside this auto-generated index. --> <!-- in MANIFEST.md alongside this auto-generated index. -->
@@ -12,7 +12,7 @@
| `acl-std79.4th` | 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048 | `0x773bf9209df191d1` | yes | | `acl-std79.4th` | 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048 | `0x773bf9209df191d1` | 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, 4856, 4857, 4858, 4860 | `0xf55edc4e76a8c294` | 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, 4856, 4857, 4858, 4860 | `0xf55edc4e76a8c294` | yes |
| `block-acl.4th` | 4019, 4020 | `0xf6cc2a59e3a6734e` | 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, 5041, 5042 | `0xedde53f6faed7355` | 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, 5041, 5042 | `0x201cfd6d39fcb22d` | yes |
| `common:msg.4th` | 4055 | `0x850a0382344ea6c4` | yes | | `common:msg.4th` | 4055 | `0x850a0382344ea6c4` | yes |
| `doe-campaign.4th` | 4060, 4061, 4062, 4063, 4064, 4065 | `0x3d4549142d91ec20` | yes | | `doe-campaign.4th` | 4060, 4061, 4062, 4063, 4064, 4065 | `0x3d4549142d91ec20` | yes |
| `doe.4th` | 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107 | `0xf154616d248e861f` | yes | | `doe.4th` | 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107 | `0xf154616d248e861f` | yes |
@@ -331,46 +331,46 @@
| 5000 | `fabric.4th` | `0x9d9489cbeca4099b` | ok | | 5000 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 5001 | `fabric.4th` | `0x9d9489cbeca4099b` | ok | | 5001 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 5002 | `fabric.4th` | `0x9d9489cbeca4099b` | ok | | 5002 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 5003 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5003 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5004 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5004 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5005 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5005 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5006 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5006 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5007 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5007 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5008 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5008 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5009 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5009 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5010 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5010 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5011 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5011 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5012 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5012 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5013 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5013 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5014 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5014 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5015 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5015 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5016 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5016 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5017 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5017 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5018 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5018 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5019 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5019 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5020 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5020 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5021 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5021 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5022 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5022 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5023 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5023 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5024 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5024 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5025 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5025 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5026 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5026 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5027 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5027 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5028 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5028 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5029 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5029 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5030 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5030 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5031 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5031 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5032 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5032 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5033 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5033 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5034 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5034 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5035 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5035 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5036 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5036 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5037 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5037 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5038 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5038 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5039 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5039 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5040 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5040 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5041 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5041 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5042 | `common:messaging.4th` | `0xedde53f6faed7355` | ok | | 5042 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
| 5100 | `turtle.4th` | `0x4d470418ca543365` | ok | | 5100 | `turtle.4th` | `0x4d470418ca543365` | ok |
| 5101 | `turtle.4th` | `0x4d470418ca543365` | ok | | 5101 | `turtle.4th` | `0x4d470418ca543365` | ok |
| 5102 | `turtle.4th` | `0x4d470418ca543365` | ok | | 5102 | `turtle.4th` | `0x4d470418ca543365` | ok |
+4 -1
View File
@@ -226,6 +226,7 @@ Block 5019
Block 5020 Block 5020
( deliver ) ( deliver )
VARIABLE MSG-LAST-MSG VARIABLE MSG-LAST-MSG
VARIABLE MSG-SEND-TO-IDX
: IDX>NAME ( idx -- addr u ) : IDX>NAME ( idx -- addr u )
DUP VM-MAX >= IF DROP 0 0 EXIT THEN DUP VM-MAX >= IF DROP 0 0 EXIT THEN
DUP CELLS VM-NAME-ADDRS + @ DUP CELLS VM-NAME-ADDRS + @
@@ -239,13 +240,15 @@ Block 5021
( (zero-heat would lose eviction-fallback density ) ( (zero-heat would lose eviction-fallback density )
( comparisons), not set afterward as before. ) ( comparisons), not set afterward as before. )
: MSG-SEND ( type from to paddr plen ch -- ) : MSG-SEND ( type from to paddr plen ch -- )
3 PICK MSG-SEND-TO-IDX !
Q.SLOT MSG-ALLOC DUP 0= IF 2DROP 2DROP 2DROP DROP EXIT THEN Q.SLOT MSG-ALLOC DUP 0= IF 2DROP 2DROP 2DROP DROP EXIT THEN
>R >R
MSG-SEQ @ 1+ DUP MSG-SEQ ! R@ MSG-SEQ! MSG-SEQ @ 1+ DUP MSG-SEQ ! R@ MSG-SEQ!
R@ MSG-CH! R@ MSG-CH!
R@ MSG-PLEN! R@ MSG-PADDR! R@ MSG-PLEN! R@ MSG-PADDR!
R@ MSG-TO! R@ MSG-FROM! DUP R@ MSG-TYPE! R@ MSG-ORIG-TYPE! R@ MSG-TO! R@ MSG-FROM! DUP R@ MSG-TYPE! R@ MSG-ORIG-TYPE!
R> DROP ; R> DROP
MSG-SEND-TO-IDX @ IDX>NAME SWITCH-MARK-WORK ;
Block 5022 Block 5022
( MSG-COOL-ONE/ALL: linear decay per tick ) ( MSG-COOL-ONE/ALL: linear decay per tick )
VARIABLE MSG-SCAN VARIABLE MSG-SCAN
BIN
View File
Binary file not shown.
+1 -286
View File
@@ -1,287 +1,2 @@
tick_number,elapsed_ns,tick_interval_ns,cache_hits_delta,bucket_hits_delta,word_executions_delta,hot_word_count,avg_word_heat_q48,window_width,actual_window_size,predicted_label_hits,jitter_bits,apic_ticks,time_trust_q48,variance_q48,vm_call_depth_max,hera_heat_q48,hermes_heat_q48,artemis_heat_q48,fleet_k_q48,fleet_conserved,switch_count_cumulative,switch_current_slot,switch_hera_readiness,switch_hermes_readiness,switch_artemis_readiness,switch_ticks_since tick_number,elapsed_ns,tick_interval_ns,cache_hits_delta,bucket_hits_delta,word_executions_delta,hot_word_count,avg_word_heat_q48,window_width,actual_window_size,predicted_label_hits,jitter_bits,apic_ticks,time_trust_q48,variance_q48,vm_call_depth_max,hera_heat_q48,hermes_heat_q48,artemis_heat_q48,fleet_k_q48,fleet_conserved,switch_count_cumulative,switch_current_slot,switch_hera_readiness,switch_hermes_readiness,switch_artemis_readiness,switch_ticks_since
104,1040000,890000,0,0,15667,80,43,256,256,0,4695806354533646336,437,65536,0,1,65536,0,0,65536,1,0,0,0,2,2,2 104,1040000,890000,0,0,15665,80,42,256,256,0,4695806354533646336,405,65536,0,1,65536,0,0,65536,1,0,0,0,5,5,5
16,160000,18446744073708671616,0,0,2988,56,19,4096,2379,0,4895412794951728717,438,65536,0,0,65536,0,0,65536,1,0,0,0,3,3,3
17,170000,10000,0,0,256,57,21,4096,2635,0,0,439,65536,0,0,65536,0,0,65536,1,0,1,1,0,4,4
18,180000,10000,0,0,256,57,22,4096,2891,0,0,439,65536,0,0,65536,0,0,65536,1,0,1,1,0,4,4
19,190000,10000,0,0,256,57,23,4096,3147,0,0,440,65536,0,0,65536,0,0,65536,1,0,1,2,0,5,5
20,200000,10000,0,0,256,57,25,4096,3403,0,0,441,65536,0,0,65536,0,0,65536,1,0,1,3,0,6,6
21,210000,10000,0,0,256,57,26,4096,3659,0,0,441,65536,0,0,65536,0,0,65536,1,0,1,3,0,6,6
22,220000,10000,0,0,256,61,27,4096,3915,0,0,442,65536,0,0,65536,0,0,65536,1,0,1,4,0,7,7
23,230000,10000,0,0,256,61,28,4096,4096,0,0,443,65536,0,0,65536,0,0,65536,1,0,1,5,0,8,8
24,240000,10000,0,0,256,61,30,4096,4096,0,0,443,65536,0,0,65536,0,0,65536,1,0,1,5,0,8,8
25,250000,10000,0,0,256,61,31,2048,2048,0,0,444,65536,0,0,65536,0,0,65536,1,0,1,6,0,9,9
26,260000,10000,0,0,256,61,32,2048,2048,0,0,445,65536,0,0,65536,0,0,65536,1,0,1,7,0,10,10
27,270000,10000,0,0,256,61,34,1024,1024,0,0,446,65536,0,0,65536,0,0,65536,1,0,1,8,0,11,11
28,280000,10000,0,0,256,61,35,1024,1024,0,0,447,65536,0,0,65536,0,0,65536,1,0,1,9,0,12,12
3974,39740000,39460000,0,0,1009307,64,3669,256,256,1975,4720563699226509312,449,65536,0,1,65536,0,0,65536,1,0,2,11,2,0,14
3975,39750000,10000,0,0,256,66,3670,256,256,1,0,449,65536,0,1,65536,0,0,65536,1,0,2,11,2,0,14
3976,39760000,10000,0,0,256,66,3671,256,256,1,0,450,65536,0,1,65536,0,0,65536,1,0,2,12,3,0,15
3977,39770000,10000,0,0,256,66,3671,256,256,1,0,451,65536,0,1,65536,0,0,65536,1,0,2,13,4,0,16
3978,39780000,10000,0,0,256,66,3672,256,256,1,0,452,65536,0,1,65536,0,0,65536,1,0,2,14,5,0,17
3979,39790000,10000,0,0,256,66,3673,256,256,1,0,453,65536,0,1,65536,0,0,65536,1,0,2,15,6,0,18
3980,39800000,10000,0,0,256,68,3674,256,256,1,0,453,65536,0,1,65536,0,0,65536,1,0,2,15,6,0,18
3981,39810000,10000,0,0,256,71,3675,256,256,1,0,454,65536,0,1,65536,0,0,65536,1,0,2,16,7,0,19
3982,39820000,10000,0,0,256,71,3676,256,256,1,0,455,65536,0,1,65536,0,0,65536,1,0,2,17,8,0,20
3983,39830000,10000,0,0,256,71,3677,256,256,1,0,455,65536,0,1,65536,0,0,65536,1,0,2,17,8,0,20
3984,39840000,10000,0,0,256,71,3678,256,256,1,0,456,65536,0,1,65536,0,0,65536,1,0,2,18,9,0,21
3985,39850000,10000,0,0,256,71,3679,256,256,1,0,456,65536,0,1,65536,0,0,65536,1,0,2,18,9,0,21
3986,39860000,10000,0,0,256,71,3680,256,256,1,0,457,65536,0,1,65536,0,0,65536,1,0,2,19,10,0,22
105,1050000,18446744073670741616,0,0,18655,80,43,256,256,0,4895412794951710197,459,65536,0,1,65536,0,0,65536,1,0,0,0,12,2,24
106,1060000,10000,0,0,256,81,46,256,256,0,0,460,65536,0,1,65536,0,0,65536,1,0,0,0,13,3,25
107,1070000,10000,0,0,256,81,47,256,256,0,0,461,65536,0,1,65536,0,0,65536,1,0,0,0,14,4,26
108,1080000,10000,0,0,256,79,48,256,256,0,0,461,65536,0,1,65536,0,0,65536,1,0,0,0,14,4,26
109,1090000,10000,0,0,256,79,49,256,256,0,0,462,65536,0,1,65536,0,0,65536,1,0,0,0,15,5,27
110,1100000,10000,0,0,256,77,51,256,256,0,0,463,65536,0,1,65536,0,0,65536,1,0,0,0,16,6,28
111,1110000,10000,0,0,256,76,55,256,256,0,0,464,65536,0,1,65536,0,0,65536,1,0,0,0,17,7,29
112,1120000,10000,0,0,256,76,56,256,256,0,0,464,65536,0,1,65536,0,0,65536,1,0,0,0,17,7,29
113,1130000,10000,0,0,256,80,67,256,256,0,0,464,65536,0,1,65536,0,0,65536,1,0,0,0,17,7,29
114,1140000,10000,0,0,256,79,78,256,256,0,0,465,65536,0,1,65536,0,0,65536,1,0,0,0,18,8,30
115,1150000,10000,0,0,256,79,92,256,256,0,0,466,65536,0,1,65536,0,0,65536,1,0,0,0,19,9,31
116,1160000,10000,0,0,256,79,93,256,256,0,0,466,65536,0,1,65536,0,0,65536,1,0,0,0,19,9,31
117,1170000,10000,0,0,256,77,102,256,256,0,0,467,65536,0,1,65536,0,0,65536,1,0,0,0,20,10,32
118,1180000,10000,0,0,256,77,104,256,256,0,0,467,65536,0,1,65536,0,0,65536,1,0,0,0,20,10,32
119,1190000,10000,0,0,256,77,103,256,256,0,0,468,65536,0,1,65536,0,0,65536,1,0,0,0,21,11,33
120,1200000,10000,0,0,256,77,102,256,256,0,0,468,65536,0,1,65536,0,0,65536,1,0,0,0,21,11,33
29,290000,18446744073708641616,0,0,6316,62,36,512,512,0,4895412794951728703,531,39891,42131,0,65523,13,0,65536,1,0,1,1,0,13,35
30,300000,10000,0,0,256,62,37,512,512,0,0,532,39891,42131,0,65523,13,0,65536,1,0,1,2,0,14,36
31,310000,10000,0,0,256,62,39,256,256,0,0,532,39891,42131,0,65523,13,0,65536,1,0,1,2,0,14,36
32,320000,10000,0,0,256,62,40,256,256,0,0,533,39891,42131,0,65523,13,0,65536,1,0,1,3,0,15,37
33,330000,10000,0,0,256,63,41,256,256,0,0,533,39891,42131,0,65523,13,0,65536,1,0,1,3,0,15,37
34,340000,10000,0,0,256,63,42,256,256,0,0,534,39891,42131,0,65523,13,0,65536,1,0,1,4,0,16,38
35,350000,10000,0,0,256,63,44,256,256,0,0,535,39891,42131,0,65523,13,0,65536,1,0,1,5,0,17,39
36,360000,10000,0,0,256,63,45,256,256,0,0,536,39891,42131,0,65523,13,0,65536,1,0,1,6,0,18,40
37,370000,10000,0,0,256,63,46,256,256,0,0,536,39891,42131,0,65523,13,0,65536,1,0,1,6,0,18,40
38,380000,10000,0,0,256,63,48,256,256,0,0,537,39891,42131,0,65523,13,0,65536,1,0,1,7,0,19,41
39,390000,10000,0,0,256,63,49,256,256,0,0,537,39891,42131,0,65523,13,0,65536,1,0,1,7,0,19,41
40,400000,10000,0,0,256,63,50,256,256,0,0,538,39891,42131,0,65523,13,0,65536,1,0,1,8,0,20,42
41,410000,10000,0,0,256,63,51,256,256,0,0,538,39891,42131,0,65523,13,0,65536,1,0,1,8,0,20,42
3987,39870000,39460000,0,0,1009307,72,3681,256,256,1988,4720563699226509312,541,39891,42131,1,65511,13,12,65536,1,0,2,11,2,0,45
3988,39880000,10000,0,0,256,72,3682,256,256,1,0,541,39891,42131,1,65511,13,12,65536,1,0,2,11,2,0,45
3989,39890000,10000,0,0,256,72,3683,256,256,1,0,542,39891,42131,1,65511,13,12,65536,1,0,2,12,3,0,46
3990,39900000,10000,0,0,256,72,3684,256,256,1,0,543,39891,42131,1,65511,13,12,65536,1,0,2,13,4,0,47
3991,39910000,10000,0,0,256,72,3684,256,256,1,0,544,39891,42131,1,65511,13,12,65536,1,0,2,14,5,0,48
3992,39920000,10000,0,0,256,72,3685,256,256,1,0,544,39891,42131,1,65511,13,12,65536,1,0,2,14,5,0,48
3993,39930000,10000,0,0,256,72,3686,256,256,1,0,545,39891,42131,1,65511,13,12,65536,1,0,2,15,6,0,49
3994,39940000,10000,0,0,256,72,3687,256,256,1,0,546,39891,42131,1,65511,13,12,65536,1,0,2,16,7,0,50
3995,39950000,10000,0,0,256,72,3688,256,256,1,0,546,39891,42131,1,65511,13,12,65536,1,0,2,16,7,0,50
3996,39960000,10000,0,0,256,72,3689,256,256,1,0,547,39891,42131,1,65511,13,12,65536,1,0,2,17,8,0,51
3997,39970000,10000,0,0,256,72,3690,256,256,1,0,548,39891,42131,1,65511,13,12,65536,1,0,2,18,9,0,52
3998,39980000,10000,0,0,256,72,3691,256,256,1,0,549,39891,42131,1,65511,13,12,65536,1,0,2,19,10,0,53
3999,39990000,10000,0,0,256,72,3692,256,256,1,0,549,39891,42131,1,65511,13,12,65536,1,0,2,19,10,0,53
121,1210000,18446744073670771616,0,0,22751,77,103,256,256,0,4895412794951710212,552,39891,42131,1,65511,13,12,65536,1,0,0,0,13,2,56
122,1220000,10000,0,0,256,77,104,256,256,0,0,552,39891,42131,1,65511,13,12,65536,1,0,0,0,13,2,56
123,1230000,10000,0,0,256,77,106,256,256,0,0,553,39891,42131,1,65511,13,12,65536,1,0,0,0,14,3,57
124,1240000,10000,0,0,256,77,108,256,256,0,0,554,39891,42131,1,65511,13,12,65536,1,0,0,0,15,4,58
125,1250000,10000,0,0,256,77,109,256,256,0,0,555,39891,42131,1,65511,13,12,65536,1,0,0,0,16,5,59
126,1260000,10000,0,0,256,75,112,256,256,0,0,556,39891,42131,1,65511,13,12,65536,1,0,0,0,17,6,60
127,1270000,10000,0,0,256,76,113,256,256,0,0,556,39891,42131,1,65511,13,12,65536,1,0,0,0,17,6,60
128,1280000,10000,0,0,256,76,127,256,256,0,0,556,39891,42131,1,65511,13,12,65536,1,0,0,0,17,6,60
129,1290000,10000,0,0,256,72,135,256,256,0,0,557,39891,42131,1,65511,13,12,65536,1,0,0,0,18,7,61
130,1300000,10000,0,0,256,72,136,256,256,0,0,558,39891,42131,1,65511,13,12,65536,1,0,0,0,19,8,62
131,1310000,10000,0,0,256,72,138,256,256,0,0,559,39891,42131,1,65511,13,12,65536,1,0,0,0,20,9,63
132,1320000,10000,0,0,256,72,142,256,256,0,0,559,39891,42131,1,65511,13,12,65536,1,0,0,0,20,9,63
133,1330000,10000,0,0,256,72,153,256,256,0,0,560,39891,42131,1,65511,13,12,65536,1,0,0,0,21,10,64
134,1340000,10000,0,0,256,72,157,256,256,0,0,560,39891,42131,1,65511,13,12,65536,1,0,0,0,21,10,64
42,420000,18446744073708631616,0,0,9644,64,53,256,256,0,4895412794951728698,631,65535,1,0,65499,25,12,65536,1,0,1,1,0,12,66
43,430000,10000,0,0,256,64,54,256,256,0,0,631,65535,1,0,65499,25,12,65536,1,0,1,1,0,12,66
44,440000,10000,0,0,256,64,55,256,256,0,0,632,65535,1,0,65499,25,12,65536,1,0,1,2,0,13,67
45,450000,10000,0,0,256,64,57,256,256,0,0,633,65535,1,0,65499,25,12,65536,1,0,1,3,0,14,68
46,460000,10000,0,0,256,64,58,256,256,0,0,633,65535,1,0,65499,25,12,65536,1,0,1,3,0,14,68
47,470000,10000,0,0,256,64,59,256,256,0,0,634,65535,1,0,65499,25,12,65536,1,0,1,4,0,15,69
48,480000,10000,0,0,256,64,60,256,256,0,0,635,65535,1,0,65499,25,12,65536,1,0,1,5,0,16,70
49,490000,10000,0,0,256,64,62,256,256,0,0,635,65535,1,0,65499,25,12,65536,1,0,1,5,0,16,70
50,500000,10000,0,0,256,64,63,256,256,0,0,636,65535,1,0,65499,25,12,65536,1,0,1,6,0,17,71
51,510000,10000,0,0,256,64,65,256,256,0,0,637,65535,1,0,65499,25,12,65536,1,0,1,7,0,18,72
52,520000,10000,0,0,256,64,67,256,256,0,0,638,65535,1,0,65499,25,12,65536,1,0,1,8,0,19,73
53,530000,10000,0,0,256,62,68,256,256,0,0,638,65535,1,0,65499,25,12,65536,1,0,1,8,0,19,73
54,540000,10000,0,0,256,62,70,256,256,0,0,639,65535,1,0,65499,25,12,65536,1,0,1,9,0,20,74
4000,40000000,39460000,0,0,1009307,74,3693,256,256,2001,4720563699226509312,641,65535,1,1,65487,25,24,65536,1,0,2,11,2,0,76
4001,40010000,10000,0,0,256,74,3694,256,256,1,0,642,65535,1,1,65487,25,24,65536,1,0,2,12,3,0,77
4002,40020000,10000,0,0,256,74,3695,256,256,1,0,643,65535,1,1,65487,25,24,65536,1,0,2,13,4,0,78
4003,40030000,10000,0,0,256,74,3696,256,256,1,0,643,65535,1,1,65487,25,24,65536,1,0,2,13,4,0,78
4004,40040000,10000,0,0,256,74,3696,256,256,1,0,644,65535,1,1,65487,25,24,65536,1,0,2,14,5,0,79
4005,40050000,10000,0,0,256,74,3697,256,256,1,0,644,65535,1,1,65487,25,24,65536,1,0,2,14,5,0,79
4006,40060000,10000,0,0,256,74,3698,256,256,1,0,645,65535,1,1,65487,25,24,65536,1,0,2,15,6,0,80
4007,40070000,10000,0,0,256,74,3699,256,256,1,0,645,65535,1,1,65487,25,24,65536,1,0,2,15,6,0,80
4008,40080000,10000,0,0,256,74,3700,256,256,1,0,646,65535,1,1,65487,25,24,65536,1,0,2,16,7,0,81
4009,40090000,10000,0,0,256,74,3701,256,256,1,0,646,65535,1,1,65487,25,24,65536,1,0,2,16,7,0,81
4010,40100000,10000,0,0,256,74,3702,256,256,1,0,647,65535,1,1,65487,25,24,65536,1,0,2,17,8,0,82
4011,40110000,10000,0,0,256,74,3703,256,256,1,0,647,65535,1,1,65487,25,24,65536,1,0,2,17,8,0,82
4012,40120000,10000,0,0,256,74,3704,256,256,1,0,648,65535,1,1,65487,25,24,65536,1,0,2,18,9,0,83
135,1350000,18446744073670781616,0,0,26335,72,156,256,256,0,4895412794951710216,651,65535,1,1,65487,25,24,65536,1,0,0,0,12,2,86
136,1360000,10000,0,0,256,72,159,256,256,0,0,651,65535,1,1,65487,25,24,65536,1,0,0,0,12,2,86
137,1370000,10000,0,0,256,72,161,256,256,0,0,652,65535,1,1,65487,25,24,65536,1,0,0,0,13,3,87
138,1380000,10000,0,0,256,72,163,256,256,0,0,652,65535,1,1,65487,25,24,65536,1,0,0,0,13,3,87
139,1390000,10000,0,0,256,72,163,256,256,0,0,653,65535,1,1,65487,25,24,65536,1,0,0,0,14,4,88
140,1400000,10000,0,0,256,72,165,256,256,0,0,653,65535,1,1,65487,25,24,65536,1,0,0,0,14,4,88
141,1410000,10000,0,0,256,72,167,256,256,0,0,654,65535,1,1,65487,25,24,65536,1,0,0,0,15,5,89
142,1420000,10000,0,0,256,72,169,256,256,0,0,655,65535,1,1,65487,25,24,65536,1,0,0,0,16,6,90
143,1430000,10000,0,0,256,72,171,256,256,0,0,655,65535,1,1,65487,25,24,65536,1,0,0,0,16,6,90
144,1440000,10000,0,0,256,72,174,256,256,0,0,656,65535,1,1,65487,25,24,65536,1,0,0,0,17,7,91
145,1450000,10000,0,0,256,72,176,256,256,0,0,657,65535,1,1,65487,25,24,65536,1,0,0,0,18,8,92
146,1460000,10000,0,0,256,72,178,256,256,0,0,657,65535,1,1,65487,25,24,65536,1,0,0,0,18,8,92
147,1470000,10000,0,0,256,72,180,256,256,0,0,658,65535,1,1,65487,25,24,65536,1,0,0,0,19,9,93
55,550000,18446744073708631616,0,0,12972,61,73,256,256,0,4895412794951728698,731,65536,0,0,65476,36,24,65536,1,0,1,1,0,10,94
56,560000,10000,0,0,256,61,75,256,256,0,0,732,65536,0,0,65476,36,24,65536,1,0,1,2,0,11,95
57,570000,10000,0,0,256,61,76,256,256,0,0,732,65536,0,0,65476,36,24,65536,1,0,1,2,0,11,95
58,580000,10000,0,0,256,61,77,256,256,0,0,733,65536,0,0,65476,36,24,65536,1,0,1,3,0,12,96
59,590000,10000,0,0,256,61,79,256,256,0,0,734,65536,0,0,65476,36,24,65536,1,0,1,4,0,13,97
60,600000,10000,0,0,256,61,85,256,256,0,0,735,65536,0,0,65476,36,24,65536,1,0,1,5,0,14,98
61,610000,10000,0,0,256,61,87,256,256,0,0,735,65536,0,0,65476,36,24,65536,1,0,1,5,0,14,98
62,620000,10000,0,0,256,61,89,256,256,0,0,736,65536,0,0,65476,36,24,65536,1,0,1,6,0,15,99
63,630000,10000,0,0,256,61,92,256,256,0,0,737,65536,0,0,65476,36,24,65536,1,0,1,7,0,16,100
64,640000,10000,0,0,256,61,95,256,256,0,0,737,65536,0,0,65476,36,24,65536,1,0,1,7,0,16,100
65,650000,10000,0,0,256,60,96,256,256,0,0,738,65536,0,0,65476,36,24,65536,1,0,1,8,0,17,101
66,660000,10000,0,0,256,59,102,256,256,0,0,738,65536,0,0,65476,36,24,65536,1,0,1,8,0,17,101
67,670000,10000,0,0,256,59,104,256,256,0,0,739,65536,0,0,65476,36,24,65536,1,0,1,9,0,18,102
4013,40130000,39460000,0,0,1009307,75,3705,256,256,2014,4720563699226509312,741,65536,0,1,65465,36,35,65536,1,0,2,11,2,0,104
4014,40140000,10000,0,0,256,75,3706,256,256,1,0,742,65536,0,1,65465,36,35,65536,1,0,2,12,3,0,105
4015,40150000,10000,0,0,256,75,3707,256,256,1,0,743,65536,0,1,65465,36,35,65536,1,0,2,13,4,0,106
4016,40160000,10000,0,0,256,75,3708,256,256,1,0,744,65536,0,1,65465,36,35,65536,1,0,2,14,5,0,107
4017,40170000,10000,0,0,256,75,3708,256,256,1,0,745,65536,0,1,65465,36,35,65536,1,0,2,15,6,0,108
4018,40180000,10000,0,0,256,75,3709,256,256,1,0,746,65536,0,1,65465,36,35,65536,1,0,2,16,7,0,109
4019,40190000,10000,0,0,256,75,3710,256,256,1,0,746,65536,0,1,65465,36,35,65536,1,0,2,16,7,0,109
4020,40200000,10000,0,0,256,75,3711,256,256,1,0,747,65536,0,1,65465,36,35,65536,1,0,2,17,8,0,110
4021,40210000,10000,0,0,256,75,3712,256,256,1,0,747,65536,0,1,65465,36,35,65536,1,0,2,17,8,0,110
4022,40220000,10000,0,0,256,75,3713,256,256,1,0,748,65536,0,1,65465,36,35,65536,1,0,2,18,9,0,111
4023,40230000,10000,0,0,256,75,3714,256,256,1,0,748,65536,0,1,65465,36,35,65536,1,0,2,18,9,0,111
4024,40240000,10000,0,0,256,75,3715,256,256,1,0,749,65536,0,1,65465,36,35,65536,1,0,2,19,10,0,112
4025,40250000,10000,0,0,256,75,3716,256,256,1,0,749,65536,0,1,65465,36,35,65536,1,0,2,19,10,0,112
148,1480000,18446744073670781616,0,0,29663,72,182,256,256,0,4895412794951710216,752,65536,0,1,65465,36,35,65536,1,0,0,0,13,2,115
149,1490000,10000,0,0,256,72,184,256,256,0,0,752,65536,0,1,65465,36,35,65536,1,0,0,0,13,2,115
150,1500000,10000,0,0,256,72,186,256,256,0,0,753,65536,0,1,65465,36,35,65536,1,0,0,0,14,3,116
151,1510000,10000,0,0,256,72,188,256,256,0,0,754,65536,0,1,65465,36,35,65536,1,0,0,0,15,4,117
152,1520000,10000,0,0,256,72,190,256,256,0,0,755,65536,0,1,65465,36,35,65536,1,0,0,0,16,5,118
153,1530000,10000,0,0,256,72,201,256,256,0,0,755,65536,0,1,65465,36,35,65536,1,0,0,0,16,5,118
154,1540000,10000,0,0,256,72,203,256,256,0,0,756,65536,0,1,65465,36,35,65536,1,0,0,0,17,6,119
155,1550000,10000,0,0,256,72,205,256,256,0,0,756,65536,0,1,65465,36,35,65536,1,0,0,0,17,6,119
156,1560000,10000,0,0,256,72,207,256,256,0,0,757,65536,0,1,65465,36,35,65536,1,0,0,0,18,7,120
157,1570000,10000,0,0,256,72,209,256,256,0,0,757,65536,0,1,65465,36,35,65536,1,0,0,0,18,7,120
158,1580000,10000,0,0,256,72,212,256,256,0,0,758,65536,0,1,65465,36,35,65536,1,0,0,0,19,8,121
159,1590000,10000,0,0,256,72,214,256,256,0,0,758,65536,0,1,65465,36,35,65536,1,0,0,0,19,8,121
160,1600000,10000,0,0,256,72,216,256,256,0,0,759,65536,0,1,65465,36,35,65536,1,0,0,0,20,9,122
161,1610000,10000,0,0,256,72,218,256,256,0,0,759,65536,0,1,65465,36,35,65536,1,0,0,0,20,9,122
68,680000,18446744073708621616,0,0,16300,59,127,256,256,0,4895412794951728693,831,65536,0,0,65453,48,35,65536,1,0,1,1,0,11,124
69,690000,10000,0,0,256,59,129,256,256,0,0,831,65536,0,0,65453,48,35,65536,1,0,1,1,0,11,124
70,700000,10000,0,0,256,59,131,256,256,0,0,832,65536,0,0,65453,48,35,65536,1,0,1,2,0,12,125
71,710000,10000,0,0,256,59,133,256,256,0,0,832,65536,0,0,65453,48,35,65536,1,0,1,2,0,12,125
72,720000,10000,0,0,256,59,135,256,256,0,0,833,65536,0,0,65453,48,35,65536,1,0,1,3,0,13,126
73,730000,10000,0,0,256,58,138,256,256,0,0,834,65536,0,0,65453,48,35,65536,1,0,1,4,0,14,127
74,740000,10000,0,0,256,58,141,256,256,0,0,835,65536,0,0,65453,48,35,65536,1,0,1,5,0,15,128
75,750000,10000,0,0,256,58,144,256,256,0,0,836,65536,0,0,65453,48,35,65536,1,0,1,6,0,16,129
76,760000,10000,0,0,256,56,148,256,256,0,0,837,65536,0,0,65453,48,35,65536,1,0,1,7,0,17,130
77,770000,10000,0,0,256,56,150,256,256,0,0,837,65536,0,0,65453,48,35,65536,1,0,1,7,0,17,130
78,780000,10000,0,0,256,56,152,256,256,0,0,838,65536,0,0,65453,48,35,65536,1,0,1,8,0,18,131
79,790000,10000,0,0,256,56,154,256,256,0,0,839,65536,0,0,65453,48,35,65536,1,0,1,9,0,19,132
80,800000,10000,0,0,256,56,156,256,256,0,0,840,65536,0,0,65453,48,35,65536,1,0,1,10,0,20,133
4026,40260000,39460000,0,0,1009307,80,3717,256,256,2027,4720563699226509312,841,65536,0,1,65441,48,47,65536,1,0,2,11,1,0,134
4027,40270000,10000,0,0,256,80,3718,256,256,1,0,842,65536,0,1,65441,48,47,65536,1,0,2,12,2,0,135
4028,40280000,10000,0,0,256,80,3719,256,256,1,0,842,65536,0,1,65441,48,47,65536,1,0,2,12,2,0,135
4029,40290000,10000,0,0,256,80,3720,256,256,1,0,843,65536,0,1,65441,48,47,65536,1,0,2,13,3,0,136
4030,40300000,10000,0,0,256,80,3720,256,256,1,0,844,65536,0,1,65441,48,47,65536,1,0,2,14,4,0,137
4031,40310000,10000,0,0,256,80,3721,256,256,1,0,845,65536,0,1,65441,48,47,65536,1,0,2,15,5,0,138
4032,40320000,10000,0,0,256,80,3722,256,256,1,0,845,65536,0,1,65441,48,47,65536,1,0,2,15,5,0,138
4033,40330000,10000,0,0,256,80,3723,256,256,1,0,846,65536,0,1,65441,48,47,65536,1,0,2,16,6,0,139
4034,40340000,10000,0,0,256,80,3724,256,256,1,0,847,65536,0,1,65441,48,47,65536,1,0,2,17,7,0,140
4035,40350000,10000,0,0,256,80,3725,256,256,1,0,848,65536,0,1,65441,48,47,65536,1,0,2,18,8,0,141
4036,40360000,10000,0,0,256,80,3726,256,256,1,0,848,65536,0,1,65441,48,47,65536,1,0,2,18,8,0,141
4037,40370000,10000,0,0,256,80,3727,256,256,1,0,848,65536,0,1,65441,48,47,65536,1,0,2,18,8,0,141
4038,40380000,10000,0,0,256,80,3728,256,256,1,0,849,65536,0,1,65441,48,47,65536,1,0,2,19,9,0,142
4039,40390000,10000,0,0,256,80,3729,256,256,1,0,849,65536,0,1,65441,48,47,65536,1,0,2,19,9,0,142
162,1620000,18446744073670781616,0,0,33247,73,220,256,256,0,4895412794951710216,852,65536,0,1,65441,48,47,65536,1,0,0,0,12,2,145
163,1630000,10000,0,0,256,73,222,256,256,0,0,853,65536,0,1,65441,48,47,65536,1,0,0,0,13,3,146
164,1640000,10000,0,0,256,73,226,256,256,0,0,854,65536,0,1,65441,48,47,65536,1,0,0,0,14,4,147
165,1650000,10000,0,0,256,73,228,256,256,0,0,855,65536,0,1,65441,48,47,65536,1,0,0,0,15,5,148
166,1660000,10000,0,0,256,73,242,256,256,0,0,856,65536,0,1,65441,48,47,65536,1,0,0,0,16,6,149
167,1670000,10000,0,0,256,73,245,256,256,0,0,856,65536,0,1,65441,48,47,65536,1,0,0,0,16,6,149
168,1680000,10000,0,0,256,73,247,256,256,0,0,857,65536,0,1,65441,48,47,65536,1,0,0,0,17,7,150
169,1690000,10000,0,0,256,73,249,256,256,0,0,858,65536,0,1,65441,48,47,65536,1,0,0,0,18,8,151
170,1700000,10000,0,0,256,73,251,256,256,0,0,859,65536,0,1,65441,48,47,65536,1,0,0,0,19,9,152
171,1710000,10000,0,0,256,73,258,256,256,0,0,859,65536,0,1,65441,48,47,65536,1,0,0,0,19,9,152
172,1720000,10000,0,0,256,71,260,256,256,0,0,860,65536,0,1,65441,48,47,65536,1,0,0,0,20,10,153
173,1730000,10000,0,0,256,71,280,256,256,0,0,861,65536,0,1,65441,48,47,65536,1,0,0,0,21,11,154
174,1740000,10000,0,0,256,71,287,256,256,0,0,861,65536,0,1,65441,48,47,65536,1,0,0,0,21,11,154
175,1750000,10000,0,0,256,71,290,256,256,0,0,862,65536,0,1,65441,48,47,65536,1,0,0,0,22,12,155
81,810000,18446744073708611616,0,0,19628,58,158,256,256,0,4895412794951728688,933,65533,3,0,65421,60,55,65536,1,0,1,2,0,14,157
82,820000,10000,0,0,256,58,160,256,256,0,0,933,65533,3,0,65421,60,55,65536,1,0,1,2,0,14,157
83,830000,10000,0,0,256,58,164,256,256,0,0,934,65533,3,0,65421,60,55,65536,1,0,1,3,0,15,158
84,840000,10000,0,0,256,58,166,256,256,0,0,934,65533,3,0,65421,60,55,65536,1,0,1,3,0,15,158
85,850000,10000,0,0,256,58,170,256,256,0,0,935,65533,3,0,65421,60,55,65536,1,0,1,4,0,16,159
86,860000,10000,0,0,256,58,172,256,256,0,0,935,65533,3,0,65421,60,55,65536,1,0,1,4,0,16,159
87,870000,10000,0,0,256,58,174,256,256,0,0,936,65533,3,0,65421,60,55,65536,1,0,1,5,0,17,160
88,880000,10000,0,0,256,58,176,256,256,0,0,936,65533,3,0,65421,60,55,65536,1,0,1,5,0,17,160
89,890000,10000,0,0,256,58,178,256,256,0,0,937,65533,3,0,65421,60,55,65536,1,0,1,6,0,18,161
90,900000,10000,0,0,256,58,180,256,256,0,0,937,65533,3,0,65421,60,55,65536,1,0,1,6,0,18,161
91,910000,10000,0,0,256,58,182,256,256,0,0,938,65533,3,0,65421,60,55,65536,1,0,1,7,0,19,162
92,920000,10000,0,0,256,58,184,256,256,0,0,939,65533,3,0,65421,60,55,65536,1,0,1,8,0,20,163
93,930000,10000,0,0,256,58,186,256,256,0,0,940,65533,3,0,65421,60,55,65536,1,0,1,9,0,21,164
4040,40400000,39470000,0,0,1009562,82,3716,256,256,2041,4720565041403789312,942,65533,3,1,65418,60,58,65536,1,0,2,11,2,0,166
176,1760000,18446744073670911616,0,0,36829,71,276,256,256,0,4895412794951710280,946,65533,3,1,65418,60,58,65536,1,0,0,0,6,3,170
4041,40410000,38650000,0,0,995689,82,3717,256,256,2042,4720454982866829312,948,65533,3,1,65418,60,58,65536,1,0,2,2,8,0,172
4042,40420000,10000,0,0,256,82,3718,256,256,1,0,948,65533,3,1,65418,60,58,65536,1,0,2,2,8,0,172
4043,40430000,10000,0,0,256,82,3719,256,256,1,0,949,65533,3,1,65418,60,58,65536,1,0,2,3,9,0,173
4044,40440000,10000,0,0,256,82,3788,256,256,1,0,950,65533,3,1,65418,60,58,65536,1,0,2,4,10,0,174
4045,40450000,10000,0,0,256,82,3817,256,256,1,0,951,65533,3,1,65418,60,58,65536,1,0,2,5,11,0,175
4046,40460000,10000,0,0,256,82,3818,256,256,1,0,952,65533,3,1,65418,60,58,65536,1,0,2,6,12,0,176
4047,40470000,10000,0,0,256,82,3819,256,256,1,0,952,65533,3,1,65418,60,58,65536,1,0,2,6,12,0,176
4048,40480000,10000,0,0,256,82,3820,256,256,1,0,952,65533,3,1,65418,60,58,65536,1,0,2,6,12,0,176
4049,40490000,10000,0,0,256,82,3821,256,256,1,0,953,65533,3,1,65418,60,58,65536,1,0,2,7,13,0,177
4050,40500000,10000,0,0,256,82,3822,256,256,1,0,953,65533,3,1,65418,60,58,65536,1,0,2,7,13,0,177
4051,40510000,10000,0,0,256,82,3823,256,256,1,0,954,65533,3,1,65418,60,58,65536,1,0,2,8,14,0,178
4052,40520000,10000,0,0,256,80,4317,256,256,1,0,954,65533,3,1,65418,60,58,65536,1,0,2,8,14,0,178
4053,40530000,10000,0,0,256,80,4318,256,256,1,0,955,65533,3,1,65418,60,58,65536,1,0,2,9,15,0,179
177,1770000,18446744073670791616,0,0,37085,71,273,256,256,0,4895412794951710221,956,65533,3,1,65418,60,58,65536,1,0,2,10,16,0,180
178,1780000,10000,0,0,256,70,283,256,256,0,0,956,65533,3,1,65418,60,58,65536,1,0,2,10,16,0,180
179,1790000,10000,0,0,256,70,285,256,256,0,0,957,65533,3,1,65418,60,58,65536,1,0,0,0,17,1,181
180,1800000,10000,0,0,256,70,290,256,256,0,0,958,65533,3,1,65418,60,58,65536,1,0,0,0,18,2,182
181,1810000,10000,0,0,256,70,295,256,256,0,0,958,65533,3,1,65418,60,58,65536,1,0,0,0,18,2,182
182,1820000,10000,0,0,256,70,304,256,256,0,0,959,65533,3,1,65418,60,58,65536,1,0,0,0,19,3,183
183,1830000,10000,0,0,256,70,315,256,256,0,0,959,65533,3,1,65418,60,58,65536,1,0,0,0,19,3,183
184,1840000,10000,0,0,256,70,324,256,256,0,0,960,65533,3,1,65418,60,58,65536,1,0,0,0,20,4,184
185,1850000,10000,0,0,256,70,326,256,256,0,0,961,65533,3,1,65418,60,58,65536,1,0,0,0,21,5,185
186,1860000,10000,0,0,256,69,335,256,256,0,0,961,65533,3,1,65418,60,58,65536,1,0,0,0,21,5,185
187,1870000,10000,0,0,256,69,338,256,256,0,0,962,65533,3,1,65418,60,58,65536,1,0,0,0,22,6,186
188,1880000,10000,0,0,256,69,363,256,256,0,0,962,65533,3,1,65418,60,58,65536,1,0,0,0,22,6,186
189,1890000,10000,0,0,256,67,382,256,256,0,0,963,65533,3,1,65418,60,58,65536,1,0,0,0,23,7,187
94,940000,18446744073708601616,0,0,22956,60,188,256,256,0,4895412794951728683,1031,39891,42131,0,65406,72,58,65536,1,0,1,1,0,8,188
95,950000,10000,0,0,256,60,192,256,256,0,0,1032,39891,42131,0,65406,72,58,65536,1,0,1,2,0,9,189
96,960000,10000,0,0,256,58,194,256,256,0,0,1034,39891,42131,0,65406,72,58,65536,1,0,1,4,0,11,191
97,970000,10000,0,0,256,58,197,256,256,0,0,1035,39891,42131,0,65406,72,58,65536,1,0,1,5,0,12,192
98,980000,10000,0,0,256,58,209,256,256,0,0,1037,39891,42131,0,65406,72,58,65536,1,0,1,7,0,14,194
99,990000,10000,0,0,256,56,275,256,256,0,0,1038,39891,42131,0,65406,72,58,65536,1,0,1,8,0,15,195
100,1000000,10000,0,0,256,55,281,256,256,0,0,1040,39891,42131,0,65406,72,58,65536,1,0,1,10,0,17,197
101,1010000,10000,0,0,256,55,283,256,256,0,0,1041,39891,42131,0,65406,72,58,65536,1,0,1,11,0,18,198
102,1020000,10000,0,0,256,55,286,256,256,0,0,1042,39891,42131,0,65406,72,58,65536,1,0,1,12,0,19,199
103,1030000,10000,0,0,256,55,289,256,256,0,0,1044,39891,42131,0,65406,72,58,65536,1,0,1,14,0,21,201
104,1040000,10000,0,0,256,55,292,256,256,0,0,1045,39891,42131,0,65406,72,58,65536,1,0,1,15,0,22,202
105,1050000,10000,0,0,256,55,295,256,256,0,0,1046,39891,42131,0,65406,72,58,65536,1,0,1,16,0,23,203
106,1060000,10000,0,0,256,53,297,256,256,0,0,1048,39891,42131,0,65406,72,58,65536,1,0,1,18,0,25,205
107,1070000,10000,0,0,256,53,300,256,256,0,0,1050,39891,42131,0,65406,72,58,65536,1,0,1,20,0,27,207
4054,40540000,39470000,0,0,1009562,81,4319,256,256,2055,4720565041403789312,1053,39891,42131,1,65394,72,70,65536,1,0,2,23,2,0,210
4055,40550000,10000,0,0,256,81,4320,256,256,1,0,1054,39891,42131,1,65394,72,70,65536,1,0,2,24,3,0,211
4056,40560000,10000,0,0,256,81,4321,256,256,1,0,1057,39891,42131,1,65394,72,70,65536,1,0,2,27,6,0,214
4057,40570000,10000,0,0,256,81,4322,256,256,1,0,1059,39891,42131,1,65394,72,70,65536,1,0,2,29,8,0,216
4058,40580000,10000,0,0,256,81,4323,256,256,1,0,1060,39891,42131,1,65394,72,70,65536,1,0,2,30,9,0,217
4059,40590000,10000,0,0,256,81,4324,256,256,1,0,1063,39891,42131,1,65394,72,70,65536,1,0,2,33,12,0,220
4060,40600000,10000,0,0,256,82,4326,256,256,1,0,1065,39891,42131,1,65394,72,70,65536,1,0,2,35,14,0,222
4061,40610000,10000,0,0,256,82,4327,256,256,1,0,1067,39891,42131,1,65394,72,70,65536,1,0,2,37,16,0,224
4062,40620000,10000,0,0,256,82,4328,256,256,1,0,1070,39891,42131,1,65394,72,70,65536,1,0,2,40,19,0,227
4063,40630000,10000,0,0,256,82,4329,256,256,1,0,1071,39891,42131,1,65394,72,70,65536,1,0,2,41,20,0,228
4064,40640000,10000,0,0,256,82,4330,256,256,1,0,1073,39891,42131,1,65394,72,70,65536,1,0,2,43,22,0,230
4065,40650000,10000,0,0,256,82,4682,256,256,1,0,1076,39891,42131,1,65394,72,70,65536,1,0,2,46,25,0,233
4066,40660000,10000,0,0,256,82,4683,256,256,1,0,1078,39891,42131,1,65394,72,70,65536,1,0,2,48,27,0,235
190,1900000,18446744073670791616,0,0,40413,66,356,256,256,0,4895412794951710221,1081,39891,42131,1,65394,72,70,65536,1,0,0,0,30,2,238
191,1910000,10000,0,0,256,66,359,256,256,0,0,1083,39891,42131,1,65394,72,70,65536,1,0,0,0,32,4,240
192,1920000,10000,0,0,256,66,361,256,256,0,0,1084,39891,42131,1,65394,72,70,65536,1,0,0,0,33,5,241
193,1930000,10000,0,0,256,66,368,256,256,0,0,1086,39891,42131,1,65394,72,70,65536,1,0,0,0,35,7,243
194,1940000,10000,0,0,256,66,367,256,256,0,0,1088,39891,42131,1,65394,72,70,65536,1,0,0,0,37,9,245
195,1950000,10000,0,0,256,66,369,256,256,0,0,1090,39891,42131,1,65394,72,70,65536,1,0,0,0,39,11,247
196,1960000,10000,0,0,256,66,376,256,256,0,0,1091,39891,42131,1,65394,72,70,65536,1,0,0,0,40,12,248
197,1970000,10000,0,0,256,66,379,256,256,0,0,1094,39891,42131,1,65394,72,70,65536,1,0,0,0,43,15,251
198,1980000,10000,0,0,256,66,381,256,256,0,0,1096,39891,42131,1,65394,72,70,65536,1,0,0,0,45,17,253
199,1990000,10000,0,0,256,66,384,256,256,0,0,1098,39891,42131,1,65394,72,70,65536,1,0,0,0,47,19,255
200,2000000,10000,0,0,256,66,391,256,256,0,0,1100,39891,42131,1,65394,72,70,65536,1,0,0,0,49,21,257
201,2010000,10000,0,0,256,66,393,256,256,0,0,1102,39891,42131,1,65394,72,70,65536,1,1,0,0,51,23,0
202,2020000,10000,0,0,256,66,400,256,256,0,0,1104,39891,42131,1,65394,72,70,65536,1,2,0,0,53,25,0
203,2030000,10000,0,0,256,66,427,256,256,0,0,1106,39891,42131,1,65394,72,70,65536,1,3,0,0,55,27,0
4067,40670000,38640000,0,0,995433,82,4684,256,256,2068,4720453640689549312,1130,39891,42131,1,65387,72,77,65536,1,4,0,0,57,29,0
1 tick_number elapsed_ns tick_interval_ns cache_hits_delta bucket_hits_delta word_executions_delta hot_word_count avg_word_heat_q48 window_width actual_window_size predicted_label_hits jitter_bits apic_ticks time_trust_q48 variance_q48 vm_call_depth_max hera_heat_q48 hermes_heat_q48 artemis_heat_q48 fleet_k_q48 fleet_conserved switch_count_cumulative switch_current_slot switch_hera_readiness switch_hermes_readiness switch_artemis_readiness switch_ticks_since
2 104 1040000 890000 0 0 15667 15665 80 43 42 256 256 0 4695806354533646336 437 405 65536 0 1 65536 0 0 65536 1 0 0 0 2 5 2 5 2 5
16 160000 18446744073708671616 0 0 2988 56 19 4096 2379 0 4895412794951728717 438 65536 0 0 65536 0 0 65536 1 0 0 0 3 3 3
17 170000 10000 0 0 256 57 21 4096 2635 0 0 439 65536 0 0 65536 0 0 65536 1 0 1 1 0 4 4
18 180000 10000 0 0 256 57 22 4096 2891 0 0 439 65536 0 0 65536 0 0 65536 1 0 1 1 0 4 4
19 190000 10000 0 0 256 57 23 4096 3147 0 0 440 65536 0 0 65536 0 0 65536 1 0 1 2 0 5 5
20 200000 10000 0 0 256 57 25 4096 3403 0 0 441 65536 0 0 65536 0 0 65536 1 0 1 3 0 6 6
21 210000 10000 0 0 256 57 26 4096 3659 0 0 441 65536 0 0 65536 0 0 65536 1 0 1 3 0 6 6
22 220000 10000 0 0 256 61 27 4096 3915 0 0 442 65536 0 0 65536 0 0 65536 1 0 1 4 0 7 7
23 230000 10000 0 0 256 61 28 4096 4096 0 0 443 65536 0 0 65536 0 0 65536 1 0 1 5 0 8 8
24 240000 10000 0 0 256 61 30 4096 4096 0 0 443 65536 0 0 65536 0 0 65536 1 0 1 5 0 8 8
25 250000 10000 0 0 256 61 31 2048 2048 0 0 444 65536 0 0 65536 0 0 65536 1 0 1 6 0 9 9
26 260000 10000 0 0 256 61 32 2048 2048 0 0 445 65536 0 0 65536 0 0 65536 1 0 1 7 0 10 10
27 270000 10000 0 0 256 61 34 1024 1024 0 0 446 65536 0 0 65536 0 0 65536 1 0 1 8 0 11 11
28 280000 10000 0 0 256 61 35 1024 1024 0 0 447 65536 0 0 65536 0 0 65536 1 0 1 9 0 12 12
3974 39740000 39460000 0 0 1009307 64 3669 256 256 1975 4720563699226509312 449 65536 0 1 65536 0 0 65536 1 0 2 11 2 0 14
3975 39750000 10000 0 0 256 66 3670 256 256 1 0 449 65536 0 1 65536 0 0 65536 1 0 2 11 2 0 14
3976 39760000 10000 0 0 256 66 3671 256 256 1 0 450 65536 0 1 65536 0 0 65536 1 0 2 12 3 0 15
3977 39770000 10000 0 0 256 66 3671 256 256 1 0 451 65536 0 1 65536 0 0 65536 1 0 2 13 4 0 16
3978 39780000 10000 0 0 256 66 3672 256 256 1 0 452 65536 0 1 65536 0 0 65536 1 0 2 14 5 0 17
3979 39790000 10000 0 0 256 66 3673 256 256 1 0 453 65536 0 1 65536 0 0 65536 1 0 2 15 6 0 18
3980 39800000 10000 0 0 256 68 3674 256 256 1 0 453 65536 0 1 65536 0 0 65536 1 0 2 15 6 0 18
3981 39810000 10000 0 0 256 71 3675 256 256 1 0 454 65536 0 1 65536 0 0 65536 1 0 2 16 7 0 19
3982 39820000 10000 0 0 256 71 3676 256 256 1 0 455 65536 0 1 65536 0 0 65536 1 0 2 17 8 0 20
3983 39830000 10000 0 0 256 71 3677 256 256 1 0 455 65536 0 1 65536 0 0 65536 1 0 2 17 8 0 20
3984 39840000 10000 0 0 256 71 3678 256 256 1 0 456 65536 0 1 65536 0 0 65536 1 0 2 18 9 0 21
3985 39850000 10000 0 0 256 71 3679 256 256 1 0 456 65536 0 1 65536 0 0 65536 1 0 2 18 9 0 21
3986 39860000 10000 0 0 256 71 3680 256 256 1 0 457 65536 0 1 65536 0 0 65536 1 0 2 19 10 0 22
105 1050000 18446744073670741616 0 0 18655 80 43 256 256 0 4895412794951710197 459 65536 0 1 65536 0 0 65536 1 0 0 0 12 2 24
106 1060000 10000 0 0 256 81 46 256 256 0 0 460 65536 0 1 65536 0 0 65536 1 0 0 0 13 3 25
107 1070000 10000 0 0 256 81 47 256 256 0 0 461 65536 0 1 65536 0 0 65536 1 0 0 0 14 4 26
108 1080000 10000 0 0 256 79 48 256 256 0 0 461 65536 0 1 65536 0 0 65536 1 0 0 0 14 4 26
109 1090000 10000 0 0 256 79 49 256 256 0 0 462 65536 0 1 65536 0 0 65536 1 0 0 0 15 5 27
110 1100000 10000 0 0 256 77 51 256 256 0 0 463 65536 0 1 65536 0 0 65536 1 0 0 0 16 6 28
111 1110000 10000 0 0 256 76 55 256 256 0 0 464 65536 0 1 65536 0 0 65536 1 0 0 0 17 7 29
112 1120000 10000 0 0 256 76 56 256 256 0 0 464 65536 0 1 65536 0 0 65536 1 0 0 0 17 7 29
113 1130000 10000 0 0 256 80 67 256 256 0 0 464 65536 0 1 65536 0 0 65536 1 0 0 0 17 7 29
114 1140000 10000 0 0 256 79 78 256 256 0 0 465 65536 0 1 65536 0 0 65536 1 0 0 0 18 8 30
115 1150000 10000 0 0 256 79 92 256 256 0 0 466 65536 0 1 65536 0 0 65536 1 0 0 0 19 9 31
116 1160000 10000 0 0 256 79 93 256 256 0 0 466 65536 0 1 65536 0 0 65536 1 0 0 0 19 9 31
117 1170000 10000 0 0 256 77 102 256 256 0 0 467 65536 0 1 65536 0 0 65536 1 0 0 0 20 10 32
118 1180000 10000 0 0 256 77 104 256 256 0 0 467 65536 0 1 65536 0 0 65536 1 0 0 0 20 10 32
119 1190000 10000 0 0 256 77 103 256 256 0 0 468 65536 0 1 65536 0 0 65536 1 0 0 0 21 11 33
120 1200000 10000 0 0 256 77 102 256 256 0 0 468 65536 0 1 65536 0 0 65536 1 0 0 0 21 11 33
29 290000 18446744073708641616 0 0 6316 62 36 512 512 0 4895412794951728703 531 39891 42131 0 65523 13 0 65536 1 0 1 1 0 13 35
30 300000 10000 0 0 256 62 37 512 512 0 0 532 39891 42131 0 65523 13 0 65536 1 0 1 2 0 14 36
31 310000 10000 0 0 256 62 39 256 256 0 0 532 39891 42131 0 65523 13 0 65536 1 0 1 2 0 14 36
32 320000 10000 0 0 256 62 40 256 256 0 0 533 39891 42131 0 65523 13 0 65536 1 0 1 3 0 15 37
33 330000 10000 0 0 256 63 41 256 256 0 0 533 39891 42131 0 65523 13 0 65536 1 0 1 3 0 15 37
34 340000 10000 0 0 256 63 42 256 256 0 0 534 39891 42131 0 65523 13 0 65536 1 0 1 4 0 16 38
35 350000 10000 0 0 256 63 44 256 256 0 0 535 39891 42131 0 65523 13 0 65536 1 0 1 5 0 17 39
36 360000 10000 0 0 256 63 45 256 256 0 0 536 39891 42131 0 65523 13 0 65536 1 0 1 6 0 18 40
37 370000 10000 0 0 256 63 46 256 256 0 0 536 39891 42131 0 65523 13 0 65536 1 0 1 6 0 18 40
38 380000 10000 0 0 256 63 48 256 256 0 0 537 39891 42131 0 65523 13 0 65536 1 0 1 7 0 19 41
39 390000 10000 0 0 256 63 49 256 256 0 0 537 39891 42131 0 65523 13 0 65536 1 0 1 7 0 19 41
40 400000 10000 0 0 256 63 50 256 256 0 0 538 39891 42131 0 65523 13 0 65536 1 0 1 8 0 20 42
41 410000 10000 0 0 256 63 51 256 256 0 0 538 39891 42131 0 65523 13 0 65536 1 0 1 8 0 20 42
3987 39870000 39460000 0 0 1009307 72 3681 256 256 1988 4720563699226509312 541 39891 42131 1 65511 13 12 65536 1 0 2 11 2 0 45
3988 39880000 10000 0 0 256 72 3682 256 256 1 0 541 39891 42131 1 65511 13 12 65536 1 0 2 11 2 0 45
3989 39890000 10000 0 0 256 72 3683 256 256 1 0 542 39891 42131 1 65511 13 12 65536 1 0 2 12 3 0 46
3990 39900000 10000 0 0 256 72 3684 256 256 1 0 543 39891 42131 1 65511 13 12 65536 1 0 2 13 4 0 47
3991 39910000 10000 0 0 256 72 3684 256 256 1 0 544 39891 42131 1 65511 13 12 65536 1 0 2 14 5 0 48
3992 39920000 10000 0 0 256 72 3685 256 256 1 0 544 39891 42131 1 65511 13 12 65536 1 0 2 14 5 0 48
3993 39930000 10000 0 0 256 72 3686 256 256 1 0 545 39891 42131 1 65511 13 12 65536 1 0 2 15 6 0 49
3994 39940000 10000 0 0 256 72 3687 256 256 1 0 546 39891 42131 1 65511 13 12 65536 1 0 2 16 7 0 50
3995 39950000 10000 0 0 256 72 3688 256 256 1 0 546 39891 42131 1 65511 13 12 65536 1 0 2 16 7 0 50
3996 39960000 10000 0 0 256 72 3689 256 256 1 0 547 39891 42131 1 65511 13 12 65536 1 0 2 17 8 0 51
3997 39970000 10000 0 0 256 72 3690 256 256 1 0 548 39891 42131 1 65511 13 12 65536 1 0 2 18 9 0 52
3998 39980000 10000 0 0 256 72 3691 256 256 1 0 549 39891 42131 1 65511 13 12 65536 1 0 2 19 10 0 53
3999 39990000 10000 0 0 256 72 3692 256 256 1 0 549 39891 42131 1 65511 13 12 65536 1 0 2 19 10 0 53
121 1210000 18446744073670771616 0 0 22751 77 103 256 256 0 4895412794951710212 552 39891 42131 1 65511 13 12 65536 1 0 0 0 13 2 56
122 1220000 10000 0 0 256 77 104 256 256 0 0 552 39891 42131 1 65511 13 12 65536 1 0 0 0 13 2 56
123 1230000 10000 0 0 256 77 106 256 256 0 0 553 39891 42131 1 65511 13 12 65536 1 0 0 0 14 3 57
124 1240000 10000 0 0 256 77 108 256 256 0 0 554 39891 42131 1 65511 13 12 65536 1 0 0 0 15 4 58
125 1250000 10000 0 0 256 77 109 256 256 0 0 555 39891 42131 1 65511 13 12 65536 1 0 0 0 16 5 59
126 1260000 10000 0 0 256 75 112 256 256 0 0 556 39891 42131 1 65511 13 12 65536 1 0 0 0 17 6 60
127 1270000 10000 0 0 256 76 113 256 256 0 0 556 39891 42131 1 65511 13 12 65536 1 0 0 0 17 6 60
128 1280000 10000 0 0 256 76 127 256 256 0 0 556 39891 42131 1 65511 13 12 65536 1 0 0 0 17 6 60
129 1290000 10000 0 0 256 72 135 256 256 0 0 557 39891 42131 1 65511 13 12 65536 1 0 0 0 18 7 61
130 1300000 10000 0 0 256 72 136 256 256 0 0 558 39891 42131 1 65511 13 12 65536 1 0 0 0 19 8 62
131 1310000 10000 0 0 256 72 138 256 256 0 0 559 39891 42131 1 65511 13 12 65536 1 0 0 0 20 9 63
132 1320000 10000 0 0 256 72 142 256 256 0 0 559 39891 42131 1 65511 13 12 65536 1 0 0 0 20 9 63
133 1330000 10000 0 0 256 72 153 256 256 0 0 560 39891 42131 1 65511 13 12 65536 1 0 0 0 21 10 64
134 1340000 10000 0 0 256 72 157 256 256 0 0 560 39891 42131 1 65511 13 12 65536 1 0 0 0 21 10 64
42 420000 18446744073708631616 0 0 9644 64 53 256 256 0 4895412794951728698 631 65535 1 0 65499 25 12 65536 1 0 1 1 0 12 66
43 430000 10000 0 0 256 64 54 256 256 0 0 631 65535 1 0 65499 25 12 65536 1 0 1 1 0 12 66
44 440000 10000 0 0 256 64 55 256 256 0 0 632 65535 1 0 65499 25 12 65536 1 0 1 2 0 13 67
45 450000 10000 0 0 256 64 57 256 256 0 0 633 65535 1 0 65499 25 12 65536 1 0 1 3 0 14 68
46 460000 10000 0 0 256 64 58 256 256 0 0 633 65535 1 0 65499 25 12 65536 1 0 1 3 0 14 68
47 470000 10000 0 0 256 64 59 256 256 0 0 634 65535 1 0 65499 25 12 65536 1 0 1 4 0 15 69
48 480000 10000 0 0 256 64 60 256 256 0 0 635 65535 1 0 65499 25 12 65536 1 0 1 5 0 16 70
49 490000 10000 0 0 256 64 62 256 256 0 0 635 65535 1 0 65499 25 12 65536 1 0 1 5 0 16 70
50 500000 10000 0 0 256 64 63 256 256 0 0 636 65535 1 0 65499 25 12 65536 1 0 1 6 0 17 71
51 510000 10000 0 0 256 64 65 256 256 0 0 637 65535 1 0 65499 25 12 65536 1 0 1 7 0 18 72
52 520000 10000 0 0 256 64 67 256 256 0 0 638 65535 1 0 65499 25 12 65536 1 0 1 8 0 19 73
53 530000 10000 0 0 256 62 68 256 256 0 0 638 65535 1 0 65499 25 12 65536 1 0 1 8 0 19 73
54 540000 10000 0 0 256 62 70 256 256 0 0 639 65535 1 0 65499 25 12 65536 1 0 1 9 0 20 74
4000 40000000 39460000 0 0 1009307 74 3693 256 256 2001 4720563699226509312 641 65535 1 1 65487 25 24 65536 1 0 2 11 2 0 76
4001 40010000 10000 0 0 256 74 3694 256 256 1 0 642 65535 1 1 65487 25 24 65536 1 0 2 12 3 0 77
4002 40020000 10000 0 0 256 74 3695 256 256 1 0 643 65535 1 1 65487 25 24 65536 1 0 2 13 4 0 78
4003 40030000 10000 0 0 256 74 3696 256 256 1 0 643 65535 1 1 65487 25 24 65536 1 0 2 13 4 0 78
4004 40040000 10000 0 0 256 74 3696 256 256 1 0 644 65535 1 1 65487 25 24 65536 1 0 2 14 5 0 79
4005 40050000 10000 0 0 256 74 3697 256 256 1 0 644 65535 1 1 65487 25 24 65536 1 0 2 14 5 0 79
4006 40060000 10000 0 0 256 74 3698 256 256 1 0 645 65535 1 1 65487 25 24 65536 1 0 2 15 6 0 80
4007 40070000 10000 0 0 256 74 3699 256 256 1 0 645 65535 1 1 65487 25 24 65536 1 0 2 15 6 0 80
4008 40080000 10000 0 0 256 74 3700 256 256 1 0 646 65535 1 1 65487 25 24 65536 1 0 2 16 7 0 81
4009 40090000 10000 0 0 256 74 3701 256 256 1 0 646 65535 1 1 65487 25 24 65536 1 0 2 16 7 0 81
4010 40100000 10000 0 0 256 74 3702 256 256 1 0 647 65535 1 1 65487 25 24 65536 1 0 2 17 8 0 82
4011 40110000 10000 0 0 256 74 3703 256 256 1 0 647 65535 1 1 65487 25 24 65536 1 0 2 17 8 0 82
4012 40120000 10000 0 0 256 74 3704 256 256 1 0 648 65535 1 1 65487 25 24 65536 1 0 2 18 9 0 83
135 1350000 18446744073670781616 0 0 26335 72 156 256 256 0 4895412794951710216 651 65535 1 1 65487 25 24 65536 1 0 0 0 12 2 86
136 1360000 10000 0 0 256 72 159 256 256 0 0 651 65535 1 1 65487 25 24 65536 1 0 0 0 12 2 86
137 1370000 10000 0 0 256 72 161 256 256 0 0 652 65535 1 1 65487 25 24 65536 1 0 0 0 13 3 87
138 1380000 10000 0 0 256 72 163 256 256 0 0 652 65535 1 1 65487 25 24 65536 1 0 0 0 13 3 87
139 1390000 10000 0 0 256 72 163 256 256 0 0 653 65535 1 1 65487 25 24 65536 1 0 0 0 14 4 88
140 1400000 10000 0 0 256 72 165 256 256 0 0 653 65535 1 1 65487 25 24 65536 1 0 0 0 14 4 88
141 1410000 10000 0 0 256 72 167 256 256 0 0 654 65535 1 1 65487 25 24 65536 1 0 0 0 15 5 89
142 1420000 10000 0 0 256 72 169 256 256 0 0 655 65535 1 1 65487 25 24 65536 1 0 0 0 16 6 90
143 1430000 10000 0 0 256 72 171 256 256 0 0 655 65535 1 1 65487 25 24 65536 1 0 0 0 16 6 90
144 1440000 10000 0 0 256 72 174 256 256 0 0 656 65535 1 1 65487 25 24 65536 1 0 0 0 17 7 91
145 1450000 10000 0 0 256 72 176 256 256 0 0 657 65535 1 1 65487 25 24 65536 1 0 0 0 18 8 92
146 1460000 10000 0 0 256 72 178 256 256 0 0 657 65535 1 1 65487 25 24 65536 1 0 0 0 18 8 92
147 1470000 10000 0 0 256 72 180 256 256 0 0 658 65535 1 1 65487 25 24 65536 1 0 0 0 19 9 93
55 550000 18446744073708631616 0 0 12972 61 73 256 256 0 4895412794951728698 731 65536 0 0 65476 36 24 65536 1 0 1 1 0 10 94
56 560000 10000 0 0 256 61 75 256 256 0 0 732 65536 0 0 65476 36 24 65536 1 0 1 2 0 11 95
57 570000 10000 0 0 256 61 76 256 256 0 0 732 65536 0 0 65476 36 24 65536 1 0 1 2 0 11 95
58 580000 10000 0 0 256 61 77 256 256 0 0 733 65536 0 0 65476 36 24 65536 1 0 1 3 0 12 96
59 590000 10000 0 0 256 61 79 256 256 0 0 734 65536 0 0 65476 36 24 65536 1 0 1 4 0 13 97
60 600000 10000 0 0 256 61 85 256 256 0 0 735 65536 0 0 65476 36 24 65536 1 0 1 5 0 14 98
61 610000 10000 0 0 256 61 87 256 256 0 0 735 65536 0 0 65476 36 24 65536 1 0 1 5 0 14 98
62 620000 10000 0 0 256 61 89 256 256 0 0 736 65536 0 0 65476 36 24 65536 1 0 1 6 0 15 99
63 630000 10000 0 0 256 61 92 256 256 0 0 737 65536 0 0 65476 36 24 65536 1 0 1 7 0 16 100
64 640000 10000 0 0 256 61 95 256 256 0 0 737 65536 0 0 65476 36 24 65536 1 0 1 7 0 16 100
65 650000 10000 0 0 256 60 96 256 256 0 0 738 65536 0 0 65476 36 24 65536 1 0 1 8 0 17 101
66 660000 10000 0 0 256 59 102 256 256 0 0 738 65536 0 0 65476 36 24 65536 1 0 1 8 0 17 101
67 670000 10000 0 0 256 59 104 256 256 0 0 739 65536 0 0 65476 36 24 65536 1 0 1 9 0 18 102
4013 40130000 39460000 0 0 1009307 75 3705 256 256 2014 4720563699226509312 741 65536 0 1 65465 36 35 65536 1 0 2 11 2 0 104
4014 40140000 10000 0 0 256 75 3706 256 256 1 0 742 65536 0 1 65465 36 35 65536 1 0 2 12 3 0 105
4015 40150000 10000 0 0 256 75 3707 256 256 1 0 743 65536 0 1 65465 36 35 65536 1 0 2 13 4 0 106
4016 40160000 10000 0 0 256 75 3708 256 256 1 0 744 65536 0 1 65465 36 35 65536 1 0 2 14 5 0 107
4017 40170000 10000 0 0 256 75 3708 256 256 1 0 745 65536 0 1 65465 36 35 65536 1 0 2 15 6 0 108
4018 40180000 10000 0 0 256 75 3709 256 256 1 0 746 65536 0 1 65465 36 35 65536 1 0 2 16 7 0 109
4019 40190000 10000 0 0 256 75 3710 256 256 1 0 746 65536 0 1 65465 36 35 65536 1 0 2 16 7 0 109
4020 40200000 10000 0 0 256 75 3711 256 256 1 0 747 65536 0 1 65465 36 35 65536 1 0 2 17 8 0 110
4021 40210000 10000 0 0 256 75 3712 256 256 1 0 747 65536 0 1 65465 36 35 65536 1 0 2 17 8 0 110
4022 40220000 10000 0 0 256 75 3713 256 256 1 0 748 65536 0 1 65465 36 35 65536 1 0 2 18 9 0 111
4023 40230000 10000 0 0 256 75 3714 256 256 1 0 748 65536 0 1 65465 36 35 65536 1 0 2 18 9 0 111
4024 40240000 10000 0 0 256 75 3715 256 256 1 0 749 65536 0 1 65465 36 35 65536 1 0 2 19 10 0 112
4025 40250000 10000 0 0 256 75 3716 256 256 1 0 749 65536 0 1 65465 36 35 65536 1 0 2 19 10 0 112
148 1480000 18446744073670781616 0 0 29663 72 182 256 256 0 4895412794951710216 752 65536 0 1 65465 36 35 65536 1 0 0 0 13 2 115
149 1490000 10000 0 0 256 72 184 256 256 0 0 752 65536 0 1 65465 36 35 65536 1 0 0 0 13 2 115
150 1500000 10000 0 0 256 72 186 256 256 0 0 753 65536 0 1 65465 36 35 65536 1 0 0 0 14 3 116
151 1510000 10000 0 0 256 72 188 256 256 0 0 754 65536 0 1 65465 36 35 65536 1 0 0 0 15 4 117
152 1520000 10000 0 0 256 72 190 256 256 0 0 755 65536 0 1 65465 36 35 65536 1 0 0 0 16 5 118
153 1530000 10000 0 0 256 72 201 256 256 0 0 755 65536 0 1 65465 36 35 65536 1 0 0 0 16 5 118
154 1540000 10000 0 0 256 72 203 256 256 0 0 756 65536 0 1 65465 36 35 65536 1 0 0 0 17 6 119
155 1550000 10000 0 0 256 72 205 256 256 0 0 756 65536 0 1 65465 36 35 65536 1 0 0 0 17 6 119
156 1560000 10000 0 0 256 72 207 256 256 0 0 757 65536 0 1 65465 36 35 65536 1 0 0 0 18 7 120
157 1570000 10000 0 0 256 72 209 256 256 0 0 757 65536 0 1 65465 36 35 65536 1 0 0 0 18 7 120
158 1580000 10000 0 0 256 72 212 256 256 0 0 758 65536 0 1 65465 36 35 65536 1 0 0 0 19 8 121
159 1590000 10000 0 0 256 72 214 256 256 0 0 758 65536 0 1 65465 36 35 65536 1 0 0 0 19 8 121
160 1600000 10000 0 0 256 72 216 256 256 0 0 759 65536 0 1 65465 36 35 65536 1 0 0 0 20 9 122
161 1610000 10000 0 0 256 72 218 256 256 0 0 759 65536 0 1 65465 36 35 65536 1 0 0 0 20 9 122
68 680000 18446744073708621616 0 0 16300 59 127 256 256 0 4895412794951728693 831 65536 0 0 65453 48 35 65536 1 0 1 1 0 11 124
69 690000 10000 0 0 256 59 129 256 256 0 0 831 65536 0 0 65453 48 35 65536 1 0 1 1 0 11 124
70 700000 10000 0 0 256 59 131 256 256 0 0 832 65536 0 0 65453 48 35 65536 1 0 1 2 0 12 125
71 710000 10000 0 0 256 59 133 256 256 0 0 832 65536 0 0 65453 48 35 65536 1 0 1 2 0 12 125
72 720000 10000 0 0 256 59 135 256 256 0 0 833 65536 0 0 65453 48 35 65536 1 0 1 3 0 13 126
73 730000 10000 0 0 256 58 138 256 256 0 0 834 65536 0 0 65453 48 35 65536 1 0 1 4 0 14 127
74 740000 10000 0 0 256 58 141 256 256 0 0 835 65536 0 0 65453 48 35 65536 1 0 1 5 0 15 128
75 750000 10000 0 0 256 58 144 256 256 0 0 836 65536 0 0 65453 48 35 65536 1 0 1 6 0 16 129
76 760000 10000 0 0 256 56 148 256 256 0 0 837 65536 0 0 65453 48 35 65536 1 0 1 7 0 17 130
77 770000 10000 0 0 256 56 150 256 256 0 0 837 65536 0 0 65453 48 35 65536 1 0 1 7 0 17 130
78 780000 10000 0 0 256 56 152 256 256 0 0 838 65536 0 0 65453 48 35 65536 1 0 1 8 0 18 131
79 790000 10000 0 0 256 56 154 256 256 0 0 839 65536 0 0 65453 48 35 65536 1 0 1 9 0 19 132
80 800000 10000 0 0 256 56 156 256 256 0 0 840 65536 0 0 65453 48 35 65536 1 0 1 10 0 20 133
4026 40260000 39460000 0 0 1009307 80 3717 256 256 2027 4720563699226509312 841 65536 0 1 65441 48 47 65536 1 0 2 11 1 0 134
4027 40270000 10000 0 0 256 80 3718 256 256 1 0 842 65536 0 1 65441 48 47 65536 1 0 2 12 2 0 135
4028 40280000 10000 0 0 256 80 3719 256 256 1 0 842 65536 0 1 65441 48 47 65536 1 0 2 12 2 0 135
4029 40290000 10000 0 0 256 80 3720 256 256 1 0 843 65536 0 1 65441 48 47 65536 1 0 2 13 3 0 136
4030 40300000 10000 0 0 256 80 3720 256 256 1 0 844 65536 0 1 65441 48 47 65536 1 0 2 14 4 0 137
4031 40310000 10000 0 0 256 80 3721 256 256 1 0 845 65536 0 1 65441 48 47 65536 1 0 2 15 5 0 138
4032 40320000 10000 0 0 256 80 3722 256 256 1 0 845 65536 0 1 65441 48 47 65536 1 0 2 15 5 0 138
4033 40330000 10000 0 0 256 80 3723 256 256 1 0 846 65536 0 1 65441 48 47 65536 1 0 2 16 6 0 139
4034 40340000 10000 0 0 256 80 3724 256 256 1 0 847 65536 0 1 65441 48 47 65536 1 0 2 17 7 0 140
4035 40350000 10000 0 0 256 80 3725 256 256 1 0 848 65536 0 1 65441 48 47 65536 1 0 2 18 8 0 141
4036 40360000 10000 0 0 256 80 3726 256 256 1 0 848 65536 0 1 65441 48 47 65536 1 0 2 18 8 0 141
4037 40370000 10000 0 0 256 80 3727 256 256 1 0 848 65536 0 1 65441 48 47 65536 1 0 2 18 8 0 141
4038 40380000 10000 0 0 256 80 3728 256 256 1 0 849 65536 0 1 65441 48 47 65536 1 0 2 19 9 0 142
4039 40390000 10000 0 0 256 80 3729 256 256 1 0 849 65536 0 1 65441 48 47 65536 1 0 2 19 9 0 142
162 1620000 18446744073670781616 0 0 33247 73 220 256 256 0 4895412794951710216 852 65536 0 1 65441 48 47 65536 1 0 0 0 12 2 145
163 1630000 10000 0 0 256 73 222 256 256 0 0 853 65536 0 1 65441 48 47 65536 1 0 0 0 13 3 146
164 1640000 10000 0 0 256 73 226 256 256 0 0 854 65536 0 1 65441 48 47 65536 1 0 0 0 14 4 147
165 1650000 10000 0 0 256 73 228 256 256 0 0 855 65536 0 1 65441 48 47 65536 1 0 0 0 15 5 148
166 1660000 10000 0 0 256 73 242 256 256 0 0 856 65536 0 1 65441 48 47 65536 1 0 0 0 16 6 149
167 1670000 10000 0 0 256 73 245 256 256 0 0 856 65536 0 1 65441 48 47 65536 1 0 0 0 16 6 149
168 1680000 10000 0 0 256 73 247 256 256 0 0 857 65536 0 1 65441 48 47 65536 1 0 0 0 17 7 150
169 1690000 10000 0 0 256 73 249 256 256 0 0 858 65536 0 1 65441 48 47 65536 1 0 0 0 18 8 151
170 1700000 10000 0 0 256 73 251 256 256 0 0 859 65536 0 1 65441 48 47 65536 1 0 0 0 19 9 152
171 1710000 10000 0 0 256 73 258 256 256 0 0 859 65536 0 1 65441 48 47 65536 1 0 0 0 19 9 152
172 1720000 10000 0 0 256 71 260 256 256 0 0 860 65536 0 1 65441 48 47 65536 1 0 0 0 20 10 153
173 1730000 10000 0 0 256 71 280 256 256 0 0 861 65536 0 1 65441 48 47 65536 1 0 0 0 21 11 154
174 1740000 10000 0 0 256 71 287 256 256 0 0 861 65536 0 1 65441 48 47 65536 1 0 0 0 21 11 154
175 1750000 10000 0 0 256 71 290 256 256 0 0 862 65536 0 1 65441 48 47 65536 1 0 0 0 22 12 155
81 810000 18446744073708611616 0 0 19628 58 158 256 256 0 4895412794951728688 933 65533 3 0 65421 60 55 65536 1 0 1 2 0 14 157
82 820000 10000 0 0 256 58 160 256 256 0 0 933 65533 3 0 65421 60 55 65536 1 0 1 2 0 14 157
83 830000 10000 0 0 256 58 164 256 256 0 0 934 65533 3 0 65421 60 55 65536 1 0 1 3 0 15 158
84 840000 10000 0 0 256 58 166 256 256 0 0 934 65533 3 0 65421 60 55 65536 1 0 1 3 0 15 158
85 850000 10000 0 0 256 58 170 256 256 0 0 935 65533 3 0 65421 60 55 65536 1 0 1 4 0 16 159
86 860000 10000 0 0 256 58 172 256 256 0 0 935 65533 3 0 65421 60 55 65536 1 0 1 4 0 16 159
87 870000 10000 0 0 256 58 174 256 256 0 0 936 65533 3 0 65421 60 55 65536 1 0 1 5 0 17 160
88 880000 10000 0 0 256 58 176 256 256 0 0 936 65533 3 0 65421 60 55 65536 1 0 1 5 0 17 160
89 890000 10000 0 0 256 58 178 256 256 0 0 937 65533 3 0 65421 60 55 65536 1 0 1 6 0 18 161
90 900000 10000 0 0 256 58 180 256 256 0 0 937 65533 3 0 65421 60 55 65536 1 0 1 6 0 18 161
91 910000 10000 0 0 256 58 182 256 256 0 0 938 65533 3 0 65421 60 55 65536 1 0 1 7 0 19 162
92 920000 10000 0 0 256 58 184 256 256 0 0 939 65533 3 0 65421 60 55 65536 1 0 1 8 0 20 163
93 930000 10000 0 0 256 58 186 256 256 0 0 940 65533 3 0 65421 60 55 65536 1 0 1 9 0 21 164
4040 40400000 39470000 0 0 1009562 82 3716 256 256 2041 4720565041403789312 942 65533 3 1 65418 60 58 65536 1 0 2 11 2 0 166
176 1760000 18446744073670911616 0 0 36829 71 276 256 256 0 4895412794951710280 946 65533 3 1 65418 60 58 65536 1 0 0 0 6 3 170
4041 40410000 38650000 0 0 995689 82 3717 256 256 2042 4720454982866829312 948 65533 3 1 65418 60 58 65536 1 0 2 2 8 0 172
4042 40420000 10000 0 0 256 82 3718 256 256 1 0 948 65533 3 1 65418 60 58 65536 1 0 2 2 8 0 172
4043 40430000 10000 0 0 256 82 3719 256 256 1 0 949 65533 3 1 65418 60 58 65536 1 0 2 3 9 0 173
4044 40440000 10000 0 0 256 82 3788 256 256 1 0 950 65533 3 1 65418 60 58 65536 1 0 2 4 10 0 174
4045 40450000 10000 0 0 256 82 3817 256 256 1 0 951 65533 3 1 65418 60 58 65536 1 0 2 5 11 0 175
4046 40460000 10000 0 0 256 82 3818 256 256 1 0 952 65533 3 1 65418 60 58 65536 1 0 2 6 12 0 176
4047 40470000 10000 0 0 256 82 3819 256 256 1 0 952 65533 3 1 65418 60 58 65536 1 0 2 6 12 0 176
4048 40480000 10000 0 0 256 82 3820 256 256 1 0 952 65533 3 1 65418 60 58 65536 1 0 2 6 12 0 176
4049 40490000 10000 0 0 256 82 3821 256 256 1 0 953 65533 3 1 65418 60 58 65536 1 0 2 7 13 0 177
4050 40500000 10000 0 0 256 82 3822 256 256 1 0 953 65533 3 1 65418 60 58 65536 1 0 2 7 13 0 177
4051 40510000 10000 0 0 256 82 3823 256 256 1 0 954 65533 3 1 65418 60 58 65536 1 0 2 8 14 0 178
4052 40520000 10000 0 0 256 80 4317 256 256 1 0 954 65533 3 1 65418 60 58 65536 1 0 2 8 14 0 178
4053 40530000 10000 0 0 256 80 4318 256 256 1 0 955 65533 3 1 65418 60 58 65536 1 0 2 9 15 0 179
177 1770000 18446744073670791616 0 0 37085 71 273 256 256 0 4895412794951710221 956 65533 3 1 65418 60 58 65536 1 0 2 10 16 0 180
178 1780000 10000 0 0 256 70 283 256 256 0 0 956 65533 3 1 65418 60 58 65536 1 0 2 10 16 0 180
179 1790000 10000 0 0 256 70 285 256 256 0 0 957 65533 3 1 65418 60 58 65536 1 0 0 0 17 1 181
180 1800000 10000 0 0 256 70 290 256 256 0 0 958 65533 3 1 65418 60 58 65536 1 0 0 0 18 2 182
181 1810000 10000 0 0 256 70 295 256 256 0 0 958 65533 3 1 65418 60 58 65536 1 0 0 0 18 2 182
182 1820000 10000 0 0 256 70 304 256 256 0 0 959 65533 3 1 65418 60 58 65536 1 0 0 0 19 3 183
183 1830000 10000 0 0 256 70 315 256 256 0 0 959 65533 3 1 65418 60 58 65536 1 0 0 0 19 3 183
184 1840000 10000 0 0 256 70 324 256 256 0 0 960 65533 3 1 65418 60 58 65536 1 0 0 0 20 4 184
185 1850000 10000 0 0 256 70 326 256 256 0 0 961 65533 3 1 65418 60 58 65536 1 0 0 0 21 5 185
186 1860000 10000 0 0 256 69 335 256 256 0 0 961 65533 3 1 65418 60 58 65536 1 0 0 0 21 5 185
187 1870000 10000 0 0 256 69 338 256 256 0 0 962 65533 3 1 65418 60 58 65536 1 0 0 0 22 6 186
188 1880000 10000 0 0 256 69 363 256 256 0 0 962 65533 3 1 65418 60 58 65536 1 0 0 0 22 6 186
189 1890000 10000 0 0 256 67 382 256 256 0 0 963 65533 3 1 65418 60 58 65536 1 0 0 0 23 7 187
94 940000 18446744073708601616 0 0 22956 60 188 256 256 0 4895412794951728683 1031 39891 42131 0 65406 72 58 65536 1 0 1 1 0 8 188
95 950000 10000 0 0 256 60 192 256 256 0 0 1032 39891 42131 0 65406 72 58 65536 1 0 1 2 0 9 189
96 960000 10000 0 0 256 58 194 256 256 0 0 1034 39891 42131 0 65406 72 58 65536 1 0 1 4 0 11 191
97 970000 10000 0 0 256 58 197 256 256 0 0 1035 39891 42131 0 65406 72 58 65536 1 0 1 5 0 12 192
98 980000 10000 0 0 256 58 209 256 256 0 0 1037 39891 42131 0 65406 72 58 65536 1 0 1 7 0 14 194
99 990000 10000 0 0 256 56 275 256 256 0 0 1038 39891 42131 0 65406 72 58 65536 1 0 1 8 0 15 195
100 1000000 10000 0 0 256 55 281 256 256 0 0 1040 39891 42131 0 65406 72 58 65536 1 0 1 10 0 17 197
101 1010000 10000 0 0 256 55 283 256 256 0 0 1041 39891 42131 0 65406 72 58 65536 1 0 1 11 0 18 198
102 1020000 10000 0 0 256 55 286 256 256 0 0 1042 39891 42131 0 65406 72 58 65536 1 0 1 12 0 19 199
103 1030000 10000 0 0 256 55 289 256 256 0 0 1044 39891 42131 0 65406 72 58 65536 1 0 1 14 0 21 201
104 1040000 10000 0 0 256 55 292 256 256 0 0 1045 39891 42131 0 65406 72 58 65536 1 0 1 15 0 22 202
105 1050000 10000 0 0 256 55 295 256 256 0 0 1046 39891 42131 0 65406 72 58 65536 1 0 1 16 0 23 203
106 1060000 10000 0 0 256 53 297 256 256 0 0 1048 39891 42131 0 65406 72 58 65536 1 0 1 18 0 25 205
107 1070000 10000 0 0 256 53 300 256 256 0 0 1050 39891 42131 0 65406 72 58 65536 1 0 1 20 0 27 207
4054 40540000 39470000 0 0 1009562 81 4319 256 256 2055 4720565041403789312 1053 39891 42131 1 65394 72 70 65536 1 0 2 23 2 0 210
4055 40550000 10000 0 0 256 81 4320 256 256 1 0 1054 39891 42131 1 65394 72 70 65536 1 0 2 24 3 0 211
4056 40560000 10000 0 0 256 81 4321 256 256 1 0 1057 39891 42131 1 65394 72 70 65536 1 0 2 27 6 0 214
4057 40570000 10000 0 0 256 81 4322 256 256 1 0 1059 39891 42131 1 65394 72 70 65536 1 0 2 29 8 0 216
4058 40580000 10000 0 0 256 81 4323 256 256 1 0 1060 39891 42131 1 65394 72 70 65536 1 0 2 30 9 0 217
4059 40590000 10000 0 0 256 81 4324 256 256 1 0 1063 39891 42131 1 65394 72 70 65536 1 0 2 33 12 0 220
4060 40600000 10000 0 0 256 82 4326 256 256 1 0 1065 39891 42131 1 65394 72 70 65536 1 0 2 35 14 0 222
4061 40610000 10000 0 0 256 82 4327 256 256 1 0 1067 39891 42131 1 65394 72 70 65536 1 0 2 37 16 0 224
4062 40620000 10000 0 0 256 82 4328 256 256 1 0 1070 39891 42131 1 65394 72 70 65536 1 0 2 40 19 0 227
4063 40630000 10000 0 0 256 82 4329 256 256 1 0 1071 39891 42131 1 65394 72 70 65536 1 0 2 41 20 0 228
4064 40640000 10000 0 0 256 82 4330 256 256 1 0 1073 39891 42131 1 65394 72 70 65536 1 0 2 43 22 0 230
4065 40650000 10000 0 0 256 82 4682 256 256 1 0 1076 39891 42131 1 65394 72 70 65536 1 0 2 46 25 0 233
4066 40660000 10000 0 0 256 82 4683 256 256 1 0 1078 39891 42131 1 65394 72 70 65536 1 0 2 48 27 0 235
190 1900000 18446744073670791616 0 0 40413 66 356 256 256 0 4895412794951710221 1081 39891 42131 1 65394 72 70 65536 1 0 0 0 30 2 238
191 1910000 10000 0 0 256 66 359 256 256 0 0 1083 39891 42131 1 65394 72 70 65536 1 0 0 0 32 4 240
192 1920000 10000 0 0 256 66 361 256 256 0 0 1084 39891 42131 1 65394 72 70 65536 1 0 0 0 33 5 241
193 1930000 10000 0 0 256 66 368 256 256 0 0 1086 39891 42131 1 65394 72 70 65536 1 0 0 0 35 7 243
194 1940000 10000 0 0 256 66 367 256 256 0 0 1088 39891 42131 1 65394 72 70 65536 1 0 0 0 37 9 245
195 1950000 10000 0 0 256 66 369 256 256 0 0 1090 39891 42131 1 65394 72 70 65536 1 0 0 0 39 11 247
196 1960000 10000 0 0 256 66 376 256 256 0 0 1091 39891 42131 1 65394 72 70 65536 1 0 0 0 40 12 248
197 1970000 10000 0 0 256 66 379 256 256 0 0 1094 39891 42131 1 65394 72 70 65536 1 0 0 0 43 15 251
198 1980000 10000 0 0 256 66 381 256 256 0 0 1096 39891 42131 1 65394 72 70 65536 1 0 0 0 45 17 253
199 1990000 10000 0 0 256 66 384 256 256 0 0 1098 39891 42131 1 65394 72 70 65536 1 0 0 0 47 19 255
200 2000000 10000 0 0 256 66 391 256 256 0 0 1100 39891 42131 1 65394 72 70 65536 1 0 0 0 49 21 257
201 2010000 10000 0 0 256 66 393 256 256 0 0 1102 39891 42131 1 65394 72 70 65536 1 1 0 0 51 23 0
202 2020000 10000 0 0 256 66 400 256 256 0 0 1104 39891 42131 1 65394 72 70 65536 1 2 0 0 53 25 0
203 2030000 10000 0 0 256 66 427 256 256 0 0 1106 39891 42131 1 65394 72 70 65536 1 3 0 0 55 27 0
4067 40670000 38640000 0 0 995433 82 4684 256 256 2068 4720453640689549312 1130 39891 42131 1 65387 72 77 65536 1 4 0 0 57 29 0
@@ -0,0 +1,2 @@
tick_number,elapsed_ns,tick_interval_ns,cache_hits_delta,bucket_hits_delta,word_executions_delta,hot_word_count,avg_word_heat_q48,window_width,actual_window_size,predicted_label_hits,jitter_bits,apic_ticks,time_trust_q48,variance_q48,vm_call_depth_max,hera_heat_q48,hermes_heat_q48,artemis_heat_q48,fleet_k_q48,fleet_conserved,switch_count_cumulative,switch_current_slot,switch_hera_readiness,switch_hermes_readiness,switch_artemis_readiness,switch_ticks_since
104,1040000,890000,0,0,15667,80,42,256,256,0,4695806354533646336,453,65536,0,1,65536,0,0,65536,1,0,0,0,2,2,2
1 tick_number elapsed_ns tick_interval_ns cache_hits_delta bucket_hits_delta word_executions_delta hot_word_count avg_word_heat_q48 window_width actual_window_size predicted_label_hits jitter_bits apic_ticks time_trust_q48 variance_q48 vm_call_depth_max hera_heat_q48 hermes_heat_q48 artemis_heat_q48 fleet_k_q48 fleet_conserved switch_count_cumulative switch_current_slot switch_hera_readiness switch_hermes_readiness switch_artemis_readiness switch_ticks_since
2 104 1040000 890000 0 0 15667 80 42 256 256 0 4695806354533646336 453 65536 0 1 65536 0 0 65536 1 0 0 0 2 2 2
@@ -0,0 +1,2 @@
tick_number,elapsed_ns,tick_interval_ns,cache_hits_delta,bucket_hits_delta,word_executions_delta,hot_word_count,avg_word_heat_q48,window_width,actual_window_size,predicted_label_hits,jitter_bits,apic_ticks,time_trust_q48,variance_q48,vm_call_depth_max,hera_heat_q48,hermes_heat_q48,artemis_heat_q48,fleet_k_q48,fleet_conserved,switch_count_cumulative,switch_current_slot,switch_hera_readiness,switch_hermes_readiness,switch_artemis_readiness,switch_ticks_since
104,1040000,890000,0,0,15665,80,42,256,256,0,4695806354533646336,436,65536,0,1,65536,0,0,65536,1,0,0,0,4,4,4
1 tick_number elapsed_ns tick_interval_ns cache_hits_delta bucket_hits_delta word_executions_delta hot_word_count avg_word_heat_q48 window_width actual_window_size predicted_label_hits jitter_bits apic_ticks time_trust_q48 variance_q48 vm_call_depth_max hera_heat_q48 hermes_heat_q48 artemis_heat_q48 fleet_k_q48 fleet_conserved switch_count_cumulative switch_current_slot switch_hera_readiness switch_hermes_readiness switch_artemis_readiness switch_ticks_since
2 104 1040000 890000 0 0 15665 80 42 256 256 0 4695806354533646336 436 65536 0 1 65536 0 0 65536 1 0 0 0 4 4 4
@@ -0,0 +1,2 @@
tick_number,elapsed_ns,tick_interval_ns,cache_hits_delta,bucket_hits_delta,word_executions_delta,hot_word_count,avg_word_heat_q48,window_width,actual_window_size,predicted_label_hits,jitter_bits,apic_ticks,time_trust_q48,variance_q48,vm_call_depth_max,hera_heat_q48,hermes_heat_q48,artemis_heat_q48,fleet_k_q48,fleet_conserved,switch_count_cumulative,switch_current_slot,switch_hera_readiness,switch_hermes_readiness,switch_artemis_readiness,switch_ticks_since
104,1040000,890000,0,0,15665,80,42,256,256,0,4695806354533646336,479,65536,0,1,65536,0,0,65536,1,0,0,0,5,5,5
1 tick_number elapsed_ns tick_interval_ns cache_hits_delta bucket_hits_delta word_executions_delta hot_word_count avg_word_heat_q48 window_width actual_window_size predicted_label_hits jitter_bits apic_ticks time_trust_q48 variance_q48 vm_call_depth_max hera_heat_q48 hermes_heat_q48 artemis_heat_q48 fleet_k_q48 fleet_conserved switch_count_cumulative switch_current_slot switch_hera_readiness switch_hermes_readiness switch_artemis_readiness switch_ticks_since
2 104 1040000 890000 0 0 15665 80 42 256 256 0 4695806354533646336 479 65536 0 1 65536 0 0 65536 1 0 0 0 5 5 5
@@ -0,0 +1,2 @@
tick_number,elapsed_ns,tick_interval_ns,cache_hits_delta,bucket_hits_delta,word_executions_delta,hot_word_count,avg_word_heat_q48,window_width,actual_window_size,predicted_label_hits,jitter_bits,apic_ticks,time_trust_q48,variance_q48,vm_call_depth_max,hera_heat_q48,hermes_heat_q48,artemis_heat_q48,fleet_k_q48,fleet_conserved,switch_count_cumulative,switch_current_slot,switch_hera_readiness,switch_hermes_readiness,switch_artemis_readiness,switch_ticks_since
104,1040000,890000,0,0,15665,80,42,256,256,0,4695806354533646336,405,65536,0,1,65536,0,0,65536,1,0,0,0,5,5,5
1 tick_number elapsed_ns tick_interval_ns cache_hits_delta bucket_hits_delta word_executions_delta hot_word_count avg_word_heat_q48 window_width actual_window_size predicted_label_hits jitter_bits apic_ticks time_trust_q48 variance_q48 vm_call_depth_max hera_heat_q48 hermes_heat_q48 artemis_heat_q48 fleet_k_q48 fleet_conserved switch_count_cumulative switch_current_slot switch_hera_readiness switch_hermes_readiness switch_artemis_readiness switch_ticks_since
2 104 1040000 890000 0 0 15665 80 42 256 256 0 4695806354533646336 405 65536 0 1 65536 0 0 65536 1 0 0 0 5 5 5
+15 -2
View File
@@ -78,8 +78,21 @@ VMUuid sk_vm_switch_signal_take_pending(void);
/* Call once, from the same checkpoint, immediately after a switch /* Call once, from the same checkpoint, immediately after a switch
* sk_vm_switch_signal_take_pending() requested actually executes (not if * sk_vm_switch_signal_take_pending() requested actually executes (not if
* the target turned out invalid/self) -- feeds the DoE CSV counters * the target turned out invalid/self) -- feeds the DoE CSV counters
* below. */ * below. Also resets `target_id`'s own readiness/has_work directly
void sk_vm_switch_signal_note_switch_performed(void); * (Stage 3 follow-on correction, 2026-09-14) -- see the .c file's own doc
* comment on why this can't be left to tick()'s current-slot polling. */
void sk_vm_switch_signal_note_switch_performed(VMUuid target_id);
/* Message-arrival eligibility hook (FABRIC-3.md §XXVIII Stage 3 follow-on,
* 2026-09-14): mark that VM `vm_id` was just sent a message (the FORTH-side
* MSG-SEND hook in capsules/common/messaging.4th calls this via the new
* SWITCH-MARK-WORK primitive, mainline, single-writer). Consulted by
* sk_vm_switch_signal_tick()'s own readiness->pending decision so a VM
* with nothing recently sent to it never becomes a switch target purely by
* sitting idle long enough -- closes the wasteful (but, since the Stage 3
* stack-ownership fix, no longer corrupting) trampoline-bounce cycle for
* an idle participant. No-op for an unregistered vm_id. */
void sk_vm_switch_signal_mark_work(VMUuid vm_id);
/* DoE CSV read-only exposure (FABRIC-3.md §XXVIII Stage 3 follow-on, /* DoE CSV read-only exposure (FABRIC-3.md §XXVIII Stage 3 follow-on,
* 2026-09-13) -- all of this state already existed for the switch * 2026-09-13) -- all of this state already existed for the switch
+9
View File
@@ -46,6 +46,15 @@ struct VM;
int sk_vm_context_switch(struct VM *from, struct VM *to); int sk_vm_context_switch(struct VM *from, struct VM *to);
/* FABRIC-3.md §XXVIII Stage 3 follow-on (2026-09-14): which VM is
* currently physically running, tracked by the switch mechanism itself --
* see switch.c's own doc comment on g_switch_current_vm for why this
* exists instead of reusing vm_log_attributed_vm(). sk_vm_switch_set_
* current() seeds the initial value (whoever is running before any
* switch has ever happened) -- call once, at Stage 3 registration time. */
struct VM *sk_vm_switch_current_vm(void);
void sk_vm_switch_set_current(struct VM *vm);
#endif /* __STARKERNEL__ */ #endif /* __STARKERNEL__ */
#endif /* STARKERNEL_VM_SWITCH_H */ #endif /* STARKERNEL_VM_SWITCH_H */
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -29,7 +29,7 @@
#include "starkernel/capsule_vm_switch_signal.h" #include "starkernel/capsule_vm_switch_signal.h"
#include "vm.h" #include "vm.h"
#include "starkernel/log_attrib.h" /* vm_log_attributed_vm() */ #include "starkernel/vm/switch.h" /* sk_vm_switch_current_vm() -- see below */
#include <stddef.h> #include <stddef.h>
/* Headroom beyond today's 3 participants (Hera/Hermes/Artemis) -- see /* Headroom beyond today's 3 participants (Hera/Hermes/Artemis) -- see
@@ -49,6 +49,11 @@
typedef struct { typedef struct {
VMUuid vm_id; VMUuid vm_id;
uint32_t readiness; uint32_t readiness;
int has_work; /* Stage 3 follow-on (2026-09-14): set by
* sk_vm_switch_signal_mark_work() (mainline,
* MSG-SEND hook), cleared here in tick() the
* instant this slot becomes current -- see that
* function's own doc comment in the header. */
} sk_switch_slot_entry_t; } sk_switch_slot_entry_t;
static sk_switch_slot_entry_t g_slots[SK_SWITCH_MAX_SLOTS]; static sk_switch_slot_entry_t g_slots[SK_SWITCH_MAX_SLOTS];
@@ -73,6 +78,7 @@ int sk_vm_switch_signal_register(VMUuid vm_id) {
if (g_slot_count >= SK_SWITCH_MAX_SLOTS) return -1; if (g_slot_count >= SK_SWITCH_MAX_SLOTS) return -1;
g_slots[g_slot_count].vm_id = vm_id; g_slots[g_slot_count].vm_id = vm_id;
g_slots[g_slot_count].readiness = 0; g_slots[g_slot_count].readiness = 0;
g_slots[g_slot_count].has_work = 0;
return g_slot_count++; return g_slot_count++;
} }
@@ -80,8 +86,21 @@ void sk_vm_switch_signal_tick(void) {
VM *current; VM *current;
int current_slot, i; int current_slot, i;
current = vm_log_attributed_vm(); /* FABRIC-3.md §XXVIII Stage 3 follow-on correction (2026-09-14): was
if (!current) return; /* nothing interpreting right now (boot/driver/HAL context) */ * vm_log_attributed_vm() -- wrong source. That tracks nested
* vm_interpret() calls for log attribution and has no way to know a
* VM is running while parked inside switch.c's own raw-C trampoline
* (sk_vm_switch_entry()), which never itself calls vm_interpret(). A
* VM that only ever ran the trampoline was therefore never seen as
* "current," so its own readiness/has_work below never reset --
* tick() re-armed the very next timer tick, forever, once nothing
* else happened to be independently flipping attribution around it
* (found live: a switch storm, 101% CPU, log frozen). sk_vm_switch_
* current_vm() is authoritative instead: the switch mechanism itself
* updates it on every switch, so it reflects who is physically
* running regardless of whether that VM ever calls vm_interpret(). */
current = sk_vm_switch_current_vm();
if (!current) return; /* boot: no switch has happened yet, not seeded */
current_slot = slot_for_vm_id(current->stadium_vm_id); current_slot = slot_for_vm_id(current->stadium_vm_id);
if (current_slot < 0) return; /* current VM isn't a registered participant */ if (current_slot < 0) return; /* current VM isn't a registered participant */
@@ -92,6 +111,7 @@ void sk_vm_switch_signal_tick(void) {
for (i = 0; i < g_slot_count; i++) { for (i = 0; i < g_slot_count; i++) {
if (i == current_slot) { if (i == current_slot) {
g_slots[i].readiness = 0; g_slots[i].readiness = 0;
g_slots[i].has_work = 0;
} else { } else {
g_slots[i].readiness++; g_slots[i].readiness++;
} }
@@ -99,7 +119,9 @@ void sk_vm_switch_signal_tick(void) {
if (!g_pending) { if (!g_pending) {
for (i = 0; i < g_slot_count; i++) { for (i = 0; i < g_slot_count; i++) {
if (i != current_slot && g_slots[i].readiness >= SK_SWITCH_READINESS_THRESHOLD) { if (i != current_slot &&
g_slots[i].readiness >= SK_SWITCH_READINESS_THRESHOLD &&
g_slots[i].has_work) {
g_pending = 1; g_pending = 1;
g_pending_target = g_slots[i].vm_id; g_pending_target = g_slots[i].vm_id;
break; break;
@@ -114,11 +136,38 @@ VMUuid sk_vm_switch_signal_take_pending(void) {
return g_pending_target; return g_pending_target;
} }
void sk_vm_switch_signal_note_switch_performed(void) { void sk_vm_switch_signal_note_switch_performed(VMUuid target_id) {
/* FABRIC-3.md §XXVIII Stage 3 follow-on correction (2026-09-14):
* reset the target's own readiness/has_work HERE, deterministically,
* at the switch decision point -- not by waiting for tick()'s
* current-slot polling to observe it running. That polling depends on
* sk_vm_switch_current_vm() catching a real ISR tick during whatever
* window the target is genuinely "current" for, and for a VM whose
* only production behavior is switch.c's placeholder trampoline (an
* immediate yield-back), that window can be as small as a few
* instructions -- too narrow for a timer tick to reliably land in.
* Without this, the target's eligibility never clears, tick() re-arms
* on the very next timer tick, and the result is a continuous switch
* storm (found live: 101% CPU, zero forward progress). This makes
* correctness independent of ISR timing; current_slot (via
* sk_vm_switch_current_vm()/tick()) remains useful as a DoE-observable
* value and for excluding the running slot from readiness accrual,
* but is no longer load-bearing for storm prevention. */
int slot = slot_for_vm_id(target_id);
if (slot >= 0) {
g_slots[slot].readiness = 0;
g_slots[slot].has_work = 0;
}
g_switch_count++; g_switch_count++;
g_ticks_since_switch = 0; g_ticks_since_switch = 0;
} }
void sk_vm_switch_signal_mark_work(VMUuid vm_id) {
int slot = slot_for_vm_id(vm_id);
if (slot < 0) return;
g_slots[slot].has_work = 1;
}
uint64_t sk_vm_switch_signal_switch_count(void) { uint64_t sk_vm_switch_signal_switch_count(void) {
return g_switch_count; return g_switch_count;
} }
+41
View File
@@ -55,6 +55,7 @@
#include "starkernel/capsule_vm_physics.h" #include "starkernel/capsule_vm_physics.h"
#include "starkernel/vm/vm_internal.h" #include "starkernel/vm/vm_internal.h"
#include "starkernel/vm/stadium.h" /* item 4.2 -- STADIUM-* words */ #include "starkernel/vm/stadium.h" /* item 4.2 -- STADIUM-* words */
#include "starkernel/capsule_vm_switch_signal.h" /* FABRIC-3.md §XXVIII Stage 3 follow-on -- SWITCH-MARK-WORK */
#include "starkernel/vm/stadium_words.h" /* item 4.2 -- stadium_words_resident_heat() */ #include "starkernel/vm/stadium_words.h" /* item 4.2 -- stadium_words_resident_heat() */
#include "starkernel/repl.h" #include "starkernel/repl.h"
#include "starkernel/capsule_generated.h" #include "starkernel/capsule_generated.h"
@@ -785,6 +786,43 @@ static void mama_word_vm_exec(VM *vm)
/* Stack clean on exit */ /* Stack clean on exit */
} }
/**
* @brief SWITCH-MARK-WORK ( name-caddr name-u -- )
* FABRIC-3.md §XXVIII Stage 3 follow-on (2026-09-14): message-arrival
* eligibility hook. Called from MSG-SEND (capsules/common/messaging.4th)
* every time a message is sent to a VM, so the Stage 3 switch signal can
* tell "has recently been sent something" apart from "has just been idle
* long enough" before ever selecting it as a switch target. Silently
* ignores a malformed or unknown name -- this fires on the hot path of
* every message send, not a user-facing command, so it must never error
* or spam the console.
*/
static void mama_word_switch_mark_work(VM *vm)
{
char name[VM_NAME_MAX];
cell_t u, caddr;
uint32_t i;
VMRegistryEntry entry;
if (vm->dsp < 2) { vm->error = 1; return; }
u = vm_pop(vm);
caddr = vm_pop(vm);
if (u <= 0 || (uint32_t)u >= VM_NAME_MAX) return;
{
const uint8_t *p = vm_ptr(vm, (vaddr_t)caddr);
if (!p) return;
for (i = 0; i < (uint32_t)u; i++) name[i] = (char)p[i];
name[u] = '\0';
}
if (capsule_vm_find_by_name_nocase(name, &entry) == 0) {
sk_vm_switch_signal_mark_work(entry.vm_id);
}
}
/** /**
* @brief VM-CALL ( cmd-caddr cmd-u vm-name-caddr vm-name-u -- n ) * @brief VM-CALL ( cmd-caddr cmd-u vm-name-caddr vm-name-u -- n )
* Like VM-EXEC but pops one cell from the target VM's TOS and pushes * Like VM-EXEC but pops one cell from the target VM's TOS and pushes
@@ -1653,6 +1691,7 @@ void register_mama_forth_words(VM *vm)
register_word(vm, "VM-PHYSICS-STATUS", mama_word_vm_physics_status); register_word(vm, "VM-PHYSICS-STATUS", mama_word_vm_physics_status);
register_word(vm, "VM-STEP", mama_word_vm_step); register_word(vm, "VM-STEP", mama_word_vm_step);
register_word(vm, "VM-EXEC", mama_word_vm_exec); register_word(vm, "VM-EXEC", mama_word_vm_exec);
register_word(vm, "SWITCH-MARK-WORK", mama_word_switch_mark_work);
register_word(vm, "VM-CALL", mama_word_vm_call); register_word(vm, "VM-CALL", mama_word_vm_call);
register_word(vm, "VM-HEAT", mama_word_vm_heat); register_word(vm, "VM-HEAT", mama_word_vm_heat);
/* FABRIC-3.md SXX: the 8 STADIUM-* primitives register_child_vm_words() /* FABRIC-3.md SXX: the 8 STADIUM-* primitives register_child_vm_words()
@@ -1711,6 +1750,7 @@ void register_mama_forth_words(VM *vm)
register_word(vm, "VM-PHYSICS-STATUS", mama_word_vm_physics_status); register_word(vm, "VM-PHYSICS-STATUS", mama_word_vm_physics_status);
register_word(vm, "VM-STEP", mama_word_vm_step); register_word(vm, "VM-STEP", mama_word_vm_step);
register_word(vm, "VM-EXEC", mama_word_vm_exec); register_word(vm, "VM-EXEC", mama_word_vm_exec);
register_word(vm, "SWITCH-MARK-WORK", mama_word_switch_mark_work);
register_word(vm, "VM-CALL", mama_word_vm_call); register_word(vm, "VM-CALL", mama_word_vm_call);
register_word(vm, "VM-HEAT", mama_word_vm_heat); register_word(vm, "VM-HEAT", mama_word_vm_heat);
/* FABRIC-3.md SXX: the 8 STADIUM-* primitives register_child_vm_words() /* FABRIC-3.md SXX: the 8 STADIUM-* primitives register_child_vm_words()
@@ -1946,6 +1986,7 @@ void register_child_vm_words(VM *vm)
register_word(vm, "STOP", mama_word_stop); register_word(vm, "STOP", mama_word_stop);
register_word(vm, "EXEC", mama_word_exec); register_word(vm, "EXEC", mama_word_exec);
register_word(vm, "VM-EXEC", mama_word_vm_exec); register_word(vm, "VM-EXEC", mama_word_vm_exec);
register_word(vm, "SWITCH-MARK-WORK", mama_word_switch_mark_work);
register_word(vm, "VM-CALL", mama_word_vm_call); register_word(vm, "VM-CALL", mama_word_vm_call);
register_word(vm, "VM-HEAT", mama_word_vm_heat); register_word(vm, "VM-HEAT", mama_word_vm_heat);
/* USE (FABRIC-2.md §F.24): not console-specific -- any VM can /* USE (FABRIC-2.md §F.24): not console-specific -- any VM can
+6
View File
@@ -64,6 +64,7 @@ EFI_RUNTIME_SERVICES *g_sk_runtime_services = NULL;
#include "starkernel/capsule_birth.h" /* capsule_birth_mama, capsule_find_mama_init */ #include "starkernel/capsule_birth.h" /* capsule_birth_mama, capsule_find_mama_init */
#include "starkernel/capsule_zuse_boot.h" /* capsule_zuse_boot_load_root_pubkey */ #include "starkernel/capsule_zuse_boot.h" /* capsule_zuse_boot_load_root_pubkey */
#include "starkernel/capsule_vm_switch_signal.h" /* FABRIC-3.md §XXVIII Stage 3 */ #include "starkernel/capsule_vm_switch_signal.h" /* FABRIC-3.md §XXVIII Stage 3 */
#include "starkernel/vm/switch.h" /* sk_vm_switch_set_current() -- Stage 3 follow-on */
#include "starkernel/artemis_sig.h" /* artemis_sig_check/genesis_stamp */ #include "starkernel/artemis_sig.h" /* artemis_sig_check/genesis_stamp */
#include "starkernel/kmalloc.h" #include "starkernel/kmalloc.h"
#include "starkernel/repl.h" #include "starkernel/repl.h"
@@ -997,6 +998,11 @@ static void kernel_main_deep(BootInfo *boot_info) {
VMRegistryEntry hera_entry, hermes_entry, artemis_entry; VMRegistryEntry hera_entry, hermes_entry, artemis_entry;
if (capsule_vm_registry_get(vm_uuid_hera(), &hera_entry) == 0) { if (capsule_vm_registry_get(vm_uuid_hera(), &hera_entry) == 0) {
sk_vm_switch_signal_register(hera_entry.vm_id); sk_vm_switch_signal_register(hera_entry.vm_id);
/* Seed the switch mechanism's own "who is running" tracker
* (FABRIC-3.md §XXVIII Stage 3 follow-on, 2026-09-14) -- Hera
* is genuinely the one running here, before any switch has
* ever happened. */
sk_vm_switch_set_current(mama);
} }
if (capsule_vm_find_by_name_nocase("Hermes", &hermes_entry) == 0 && if (capsule_vm_find_by_name_nocase("Hermes", &hermes_entry) == 0 &&
hermes_entry.state == VM_STATE_LIVE) { hermes_entry.state == VM_STATE_LIVE) {
+34
View File
@@ -51,6 +51,26 @@ extern uint64_t sk_vm_switch_prime(uint64_t stack_top, void *entry);
* who most recently switched into it does. */ * who most recently switched into it does. */
static VM *g_switch_entry_vm; static VM *g_switch_entry_vm;
/* FABRIC-3.md §XXVIII Stage 3 follow-on (2026-09-14): which VM is
* currently running, from the switch mechanism's own point of view --
* independent of vm_log_attributed_vm() (vm_core.c), which is scoped to
* nested vm_interpret() calls for log-source attribution and has no way
* to know a VM is "running" while parked inside this file's own raw C
* trampoline (sk_vm_switch_entry()), never itself calling vm_interpret().
* sk_vm_switch_signal_tick() (capsule_vm_switch_signal.c) consults this
* instead of vm_log_attributed_vm() for exactly that reason -- see its
* own updated comment. Single-writer-mainline, same discipline as
* g_switch_entry_vm above: set unconditionally on every switch, by the
* only code path that can ever change who is physically running.
* Seeded once at boot via sk_vm_switch_set_current() for whichever VM is
* running before any switch has ever happened (Hera, at Stage 3
* registration time -- kernel_main.c). */
static VM *g_switch_current_vm;
VM *sk_vm_switch_current_vm(void) { return g_switch_current_vm; }
void sk_vm_switch_set_current(VM *vm) { g_switch_current_vm = vm; }
/** /**
* sk_vm_switch_entry - trampoline for a VM's first-ever entry. * sk_vm_switch_entry - trampoline for a VM's first-ever entry.
* *
@@ -64,6 +84,18 @@ static VM *g_switch_entry_vm;
* first. Must never fall off the end -- there is no legitimate return * first. Must never fall off the end -- there is no legitimate return
* address below a synthetic first-entry frame, unlike an ordinary * address below a synthetic first-entry frame, unlike an ordinary
* function. * function.
*
* FABRIC-3.md §XXVIII Stage 3 follow-on (2026-09-14): an attempt to make
* this attributable by calling vm_interpret(self, "MSG-TICK") here was
* tried and reverted -- it introduced a second, distinct hang (a stall in
* sk_repl_headless_wait()'s WIREBIND-attachment wait, not root-caused) in
* place of the switch-storm it was meant to fix. The switch-storm's real
* cause (sk_vm_switch_signal_tick()'s "who is current" check via
* vm_log_attributed_vm() never seeing a VM that only ever runs this raw
* C trampoline) is instead fixed at the source in switch.c/
* capsule_vm_switch_signal.c: sk_vm_context_switch() now tracks "current"
* itself, independent of vm_interpret()'s own attribution bookkeeping.
* This placeholder's behavior is therefore unchanged from Stage 2.
*/ */
void sk_vm_switch_entry(void) { void sk_vm_switch_entry(void) {
VM *self = g_switch_entry_vm; VM *self = g_switch_entry_vm;
@@ -95,12 +127,14 @@ int sk_vm_context_switch(VM *from, VM *to) {
capsule_vm_set_state(to->stadium_vm_id, VM_STATE_LIVE); capsule_vm_set_state(to->stadium_vm_id, VM_STATE_LIVE);
capsule_vm_set_state(from->stadium_vm_id, VM_STATE_SWITCHED_OUT); capsule_vm_set_state(from->stadium_vm_id, VM_STATE_SWITCHED_OUT);
g_switch_current_vm = to;
sk_vm_switch_to(&from->native_stack_saved_sp, new_sp); sk_vm_switch_to(&from->native_stack_saved_sp, new_sp);
/* Resumes here only once something later switches back to `from` -- /* Resumes here only once something later switches back to `from` --
* from `from`'s own point of view, this call simply took a while. */ * from `from`'s own point of view, this call simply took a while. */
capsule_vm_set_state(from->stadium_vm_id, VM_STATE_LIVE); capsule_vm_set_state(from->stadium_vm_id, VM_STATE_LIVE);
g_switch_current_vm = from;
return 0; return 0;
} }
+4 -2
View File
@@ -920,14 +920,16 @@ void execute_colon_word(VM* vm)
* `vm`, which could be an arbitrary number of ticks later -- * `vm`, which could be an arbitrary number of ticks later --
* calling it after would attribute switch_count_cumulative/ * calling it after would attribute switch_count_cumulative/
* switch_ticks_since to the wrong (resume) event instead of the * switch_ticks_since to the wrong (resume) event instead of the
* actual switch-out this counts. */ * actual switch-out this counts. It also resets target_id's own
* eligibility state directly (2026-09-14 correction) -- see its
* own doc comment for why that can't be left to ISR polling. */
if (sk_vm_at_outermost_interpret()) { if (sk_vm_at_outermost_interpret()) {
VMUuid target_id = sk_vm_switch_signal_take_pending(); VMUuid target_id = sk_vm_switch_signal_take_pending();
if (!vm_uuid_equal(target_id, vm_uuid_none())) { if (!vm_uuid_equal(target_id, vm_uuid_none())) {
VMRegistryEntry target_entry; VMRegistryEntry target_entry;
if (capsule_vm_registry_get(target_id, &target_entry) == 0 && if (capsule_vm_registry_get(target_id, &target_entry) == 0 &&
target_entry.vm_ptr && target_entry.vm_ptr != (void *)vm) { target_entry.vm_ptr && target_entry.vm_ptr != (void *)vm) {
sk_vm_switch_signal_note_switch_performed(); sk_vm_switch_signal_note_switch_performed(target_id);
sk_vm_context_switch(vm, (VM *)target_entry.vm_ptr); sk_vm_context_switch(vm, (VM *)target_entry.vm_ptr);
/* Resumes here once something later switches back. */ /* Resumes here once something later switches back. */
} }