Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 0d39cd97e1 feat(phase-31): S54 wave-V harvest — cookbook §195 (14 laws) + close the internal-j blind spot in masked_diff
32 agents over wave V's 67 index_gap reports: 14 CONFIRMED, 9 REJECTED, 76 already-covered (the
third harvest this session; readers seeded with §193 AND §194 so neither could be re-derived).

THE HEADLINE IS A DEFECT IN OUR OWN VERIFIER (§195-D). masked_diff.mask_for short-circuited on the
OPCODE -- `if (word >> 26) in (2, 3): return 0` -- ahead of the reloc dispatch, so every `j` to a
LOCAL label was dropped from the comparison. The assembler resolves those itself and emits no
relocation, so there was nothing link-time about them. For a loop or switch arm, which label a `j`
targets is the difference between `break` (fall into the shared tail and execute its calls) and
`return` (skip them): byte-proven on ov_SC03_118:func_801825EC, where the banked `break;` and a
call-skipping `return;` variant differ in exactly one word (0800003e vs 08000041) and BOTH reported
MATCH. The blindness reached match_one, the permuter's MaskedScorer, family_cousins.tok and the
atlas similarity tiers at once -- nothing between a draft and the whole-binary gate could see it.
Now the 26-bit field is masked only when reloc_kind == "26" (the linker really does fill it).
R39 control: 35/35 already-banked wave-V drafts still MATCH against their snapshot .s.

Other confirmations of note: §195-A bounds §167-08 with a byte-proven false-negative class (an
argument that DIES at the call is allocated straight into $aN, so its only def is a plain load and
every use reads $aN -- there is no positive tell in either direction, only the two-arity A/B);
§195-B a CALL_INSN does not start a basic block in gcc-2.7.2, so a call-crossing temp can be a
LOCAL-alloc quantity; §195-M frame `vars` is a sequential bump-allocation, unifying §193-I's
CEIL(aggregate,8) term with §165-03/§167-06's 8x-orphan term as one frame_offset walk.
2026-08-17 21:37:23 -06:00

234 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BFM FLEET matching progress (generated by tools/progress.py --fleet — authoritative)
# 213 binaries: main + resident + 211 location overlays. DETERMINISTIC,
# source-derived (committed src/*.c + config/dedup.us.yaml). Live byte gate: `make check-all`;
# cross-binary collapsible-byte leverage: docs/duplicates.cross.md.
# THREE progress metrics (all matter — see the labels):
FLEET fn-count byte-ident: 352314 / 363149 = 97.02% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 12967743 / 13523865 = 95.9% (shipped .text across main + resident + 211 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 5346010 / 5851972 = 91.4% (82213/90929 unique fns; the DISTINCT-RE number)
MAIN game-code weighted : 16291 / 79510 = 20.5% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-08-05; caveat is R34: no independent second oracle for a PS-X EXE, NOT drift)
(fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 12951452 / 13444355 = 96.3%)
FLEET REAL substantive : 350144 (of which dedup-shared 254634 via 2155 groups / 254710 instances)
FLEET LINKED PsyQ objs : 959
FLEET NON_MATCHING : 4 (0 in any default build — G4)
FLEET INCLUDE_ASM stubs : 10831
FLEET matchable : 363149
| binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % |
|---|---:|---:|---:|---:|---:|---:|
| main | 329 | 2 | 959 | 1330 | 2082 | 63.9% |
| resident | 129 | 0 | 0 | 131 | 145 | 90.3% |
| md_MAIN_001 | 1 | 0 | 0 | 1 | 11 | 9.1% |
| md_MAIN_003 | 3 | 0 | 0 | 3 | 60 | 5.0% |
| md_MAIN_008 | 0 | 0 | 0 | 0 | 6 | 0.0% |
| md_MAIN_011 | 0 | 0 | 0 | 0 | 21 | 0.0% |
| md_MAIN_013 | 5 | 0 | 0 | 5 | 16 | 31.2% |
| md_MAIN_014 | 5 | 0 | 0 | 6 | 13 | 46.2% |
| md_MAIN_015 | 8 | 0 | 0 | 8 | 20 | 40.0% |
| md_MAIN_016 | 4 | 0 | 0 | 5 | 13 | 38.5% |
| md_MAIN_017 | 4 | 0 | 0 | 4 | 10 | 40.0% |
| md_MAIN_018 | 3 | 0 | 0 | 4 | 11 | 36.4% |
| md_MAIN_019 | 9 | 0 | 0 | 9 | 22 | 40.9% |
| md_MAIN_020 | 9 | 0 | 0 | 10 | 14 | 71.4% |
| md_MAIN_021 | 4 | 0 | 0 | 5 | 11 | 45.5% |
| md_MAIN_022 | 19 | 0 | 0 | 21 | 33 | 63.6% |
| md_MAIN_023 | 3 | 0 | 0 | 4 | 6 | 66.7% |
| md_MAIN_024 | 3 | 0 | 0 | 5 | 6 | 83.3% |
| md_MAIN_025 | 6 | 0 | 0 | 6 | 30 | 20.0% |
| md_MAIN_026 | 7 | 0 | 0 | 7 | 24 | 29.2% |
| md_MAIN_027 | 11 | 0 | 0 | 13 | 29 | 44.8% |
| md_MAIN_028 | 6 | 0 | 0 | 6 | 22 | 27.3% |
| md_MAIN_029 | 3 | 0 | 0 | 4 | 11 | 36.4% |
| md_MAIN_030 | 4 | 0 | 0 | 4 | 10 | 40.0% |
| md_MAIN_031 | 4 | 0 | 0 | 4 | 18 | 22.2% |
| md_MAIN_032 | 5 | 0 | 0 | 5 | 10 | 50.0% |
| md_MAIN_033 | 4 | 0 | 0 | 4 | 19 | 21.1% |
| md_MAIN_034 | 5 | 0 | 0 | 6 | 28 | 21.4% |
| md_MAIN_035 | 11 | 0 | 0 | 12 | 16 | 75.0% |
| md_MAIN_036 | 9 | 0 | 0 | 10 | 28 | 35.7% |
| md_MAIN_037 | 5 | 0 | 0 | 5 | 17 | 29.4% |
| md_MAIN_038 | 7 | 0 | 0 | 7 | 20 | 35.0% |
| md_MAIN_039 | 5 | 0 | 0 | 5 | 26 | 19.2% |
| md_MAIN_040 | 4 | 0 | 0 | 4 | 19 | 21.1% |
| md_MAIN_041 | 5 | 0 | 0 | 5 | 15 | 33.3% |
| md_MAIN_042 | 0 | 0 | 0 | 0 | 4 | 0.0% |
| md_MAIN_043 | 4 | 0 | 0 | 5 | 23 | 21.7% |
| md_MAIN_044 | 13 | 0 | 0 | 14 | 44 | 31.8% |
| md_MAIN_045 | 5 | 0 | 0 | 6 | 21 | 28.6% |
| md_MAIN_046 | 10 | 0 | 0 | 11 | 39 | 28.2% |
| md_MAIN_047 | 3 | 0 | 0 | 4 | 12 | 33.3% |
| md_SC02_009 | 5 | 0 | 0 | 5 | 40 | 12.5% |
| md_SC03_073 | 27 | 10 | 0 | 27 | 28 | 96.4% |
| md_SC03_074 | 26 | 10 | 0 | 26 | 29 | 89.7% |
| md_SC03_075 | 29 | 10 | 0 | 29 | 41 | 70.7% |
| md_SC03_076 | 35 | 0 | 0 | 37 | 66 | 56.1% |
| md_SC03_077 | 24 | 0 | 0 | 26 | 35 | 74.3% |
| md_SC03_078 | 25 | 9 | 0 | 25 | 27 | 92.6% |
| md_SC03_079 | 24 | 0 | 0 | 26 | 29 | 89.7% |
| md_SC03_132 | 25 | 0 | 0 | 27 | 28 | 96.4% |
| md_SC03_133 | 23 | 1 | 0 | 25 | 29 | 86.2% |
| md_SC03_134 | 27 | 1 | 0 | 29 | 41 | 70.7% |
| md_SC03_135 | 34 | 0 | 0 | 36 | 66 | 54.5% |
| md_SC03_136 | 24 | 0 | 0 | 26 | 35 | 74.3% |
| md_SC03_137 | 23 | 1 | 0 | 25 | 27 | 92.6% |
| md_SC03_138 | 26 | 1 | 0 | 30 | 37 | 81.1% |
| md_SC04_024 | 24 | 0 | 0 | 26 | 28 | 92.9% |
| md_SC04_025 | 22 | 0 | 0 | 24 | 29 | 82.8% |
| md_SC04_026 | 26 | 0 | 0 | 28 | 41 | 68.3% |
| md_SC04_027 | 33 | 0 | 0 | 35 | 66 | 53.0% |
| md_SC04_028 | 24 | 0 | 0 | 26 | 35 | 74.3% |
| md_SC04_029 | 22 | 0 | 0 | 24 | 27 | 88.9% |
| md_SC04_030 | 24 | 0 | 0 | 28 | 31 | 90.3% |
| md_SC05_023 | 24 | 0 | 0 | 26 | 28 | 92.9% |
| md_SC05_024 | 21 | 0 | 0 | 23 | 29 | 79.3% |
| md_SC05_025 | 25 | 0 | 0 | 27 | 41 | 65.9% |
| md_SC05_026 | 32 | 0 | 0 | 34 | 66 | 51.5% |
| md_SC05_027 | 23 | 0 | 0 | 25 | 35 | 71.4% |
| md_SC05_028 | 21 | 0 | 0 | 23 | 27 | 85.2% |
| md_SC05_029 | 23 | 0 | 0 | 27 | 31 | 87.1% |
| md_SC07_003 | 18 | 0 | 0 | 18 | 100 | 18.0% |
| md_SC07_004 | 51 | 0 | 0 | 51 | 315 | 16.2% |
| ov_MAIN_012 | 2236 | 1689 | 0 | 2315 | 2403 | 96.3% |
| ov_SC01_000 | 2391 | 1809 | 0 | 2391 | 2403 | 99.5% |
| ov_SC01_001 | 2401 | 1811 | 0 | 2403 | 2466 | 97.4% |
| ov_SC01_004 | 2399 | 1802 | 0 | 2400 | 2414 | 99.4% |
| ov_SC01_005 | 2441 | 1832 | 0 | 2441 | 2503 | 97.5% |
| ov_SC01_006 | 2440 | 1832 | 0 | 2440 | 2503 | 97.5% |
| ov_SC01_008 | 2400 | 1803 | 0 | 2402 | 2426 | 99.0% |
| ov_SC01_009 | 2428 | 1803 | 0 | 2429 | 2507 | 96.9% |
| ov_SC01_074 | 2400 | 1803 | 0 | 2402 | 2426 | 99.0% |
| ov_SC01_077 | 2570 | 1764 | 0 | 2572 | 2586 | 99.5% |
| ov_SC01_080 | 2432 | 1806 | 0 | 2432 | 2512 | 96.8% |
| ov_SC01_084 | 2457 | 1811 | 0 | 2462 | 2579 | 95.5% |
| ov_SC02_000 | 2579 | 1889 | 0 | 2579 | 2683 | 96.1% |
| ov_SC02_003 | 2566 | 1889 | 0 | 2566 | 2683 | 95.6% |
| ov_SC02_004 | 2391 | 1806 | 0 | 2391 | 2401 | 99.6% |
| ov_SC02_005 | 2606 | 1802 | 0 | 2616 | 2927 | 89.4% |
| ov_SC02_011 | 2704 | 1810 | 0 | 2714 | 2893 | 93.8% |
| ov_SC02_015 | 2402 | 1808 | 0 | 2402 | 2414 | 99.5% |
| ov_SC02_016 | 2485 | 1810 | 0 | 2488 | 2545 | 97.8% |
| ov_SC02_017 | 2564 | 1810 | 0 | 2572 | 2732 | 94.1% |
| ov_SC02_021 | 2407 | 1808 | 0 | 2407 | 2437 | 98.8% |
| ov_SC02_026 | 2515 | 1807 | 0 | 2521 | 2572 | 98.0% |
| ov_SC02_027 | 2584 | 1828 | 0 | 2593 | 2692 | 96.3% |
| ov_SC02_028 | 2595 | 1827 | 0 | 2605 | 2701 | 96.4% |
| ov_SC02_031 | 2504 | 1809 | 0 | 2509 | 2562 | 97.9% |
| ov_SC02_035 | 2497 | 1806 | 0 | 2500 | 2520 | 99.2% |
| ov_SC02_037 | 2339 | 1704 | 0 | 2421 | 2516 | 96.2% |
| ov_SC02_039 | 2405 | 1807 | 0 | 2405 | 2416 | 99.5% |
| ov_SC02_041 | 2504 | 1806 | 0 | 2507 | 2561 | 97.9% |
| ov_SC03_001 | 2700 | 1807 | 0 | 2717 | 2869 | 94.7% |
| ov_SC03_002 | 2551 | 1815 | 0 | 2566 | 2631 | 97.5% |
| ov_SC03_003 | 2402 | 1806 | 0 | 2403 | 2423 | 99.2% |
| ov_SC03_006 | 2609 | 1814 | 0 | 2618 | 2767 | 94.6% |
| ov_SC03_007 | 2479 | 1806 | 0 | 2483 | 2623 | 94.7% |
| ov_SC03_010 | 2423 | 1807 | 0 | 2423 | 2471 | 98.1% |
| ov_SC03_011 | 2426 | 1807 | 0 | 2432 | 2527 | 96.2% |
| ov_SC03_012 | 2391 | 1806 | 0 | 2392 | 2406 | 99.4% |
| ov_SC03_013 | 2427 | 1807 | 0 | 2427 | 2493 | 97.4% |
| ov_SC03_014 | 2612 | 1853 | 0 | 2612 | 2685 | 97.3% |
| ov_SC03_015 | 2387 | 1853 | 0 | 2387 | 2468 | 96.7% |
| ov_SC03_023 | 2404 | 1806 | 0 | 2405 | 2435 | 98.8% |
| ov_SC03_024 | 2544 | 1813 | 0 | 2551 | 2641 | 96.6% |
| ov_SC03_028 | 2500 | 1807 | 0 | 2504 | 2664 | 94.0% |
| ov_SC03_029 | 2521 | 1810 | 0 | 2531 | 2644 | 95.7% |
| ov_SC03_030 | 2428 | 1811 | 0 | 2430 | 2495 | 97.4% |
| ov_SC03_031 | 2449 | 1808 | 0 | 2452 | 2514 | 97.5% |
| ov_SC03_089 | 2530 | 1811 | 0 | 2537 | 2581 | 98.3% |
| ov_SC03_090 | 2554 | 1811 | 0 | 2562 | 2625 | 97.6% |
| ov_SC03_091 | 2564 | 1828 | 0 | 2572 | 2640 | 97.4% |
| ov_SC03_092 | 2516 | 1811 | 0 | 2528 | 2588 | 97.7% |
| ov_SC03_093 | 2530 | 1828 | 0 | 2534 | 2563 | 98.9% |
| ov_SC03_094 | 2519 | 1806 | 0 | 2525 | 2577 | 98.0% |
| ov_SC03_095 | 2440 | 1806 | 0 | 2443 | 2474 | 98.7% |
| ov_SC03_096 | 2437 | 1806 | 0 | 2440 | 2465 | 99.0% |
| ov_SC03_097 | 2542 | 1827 | 0 | 2549 | 2603 | 97.9% |
| ov_SC03_098 | 2518 | 1828 | 0 | 2521 | 2541 | 99.2% |
| ov_SC03_099 | 2490 | 1806 | 0 | 2493 | 2504 | 99.6% |
| ov_SC03_100 | 2525 | 1828 | 0 | 2529 | 2539 | 99.6% |
| ov_SC03_101 | 2495 | 1811 | 0 | 2499 | 2528 | 98.9% |
| ov_SC03_102 | 2473 | 1806 | 0 | 2476 | 2492 | 99.4% |
| ov_SC03_103 | 2497 | 1808 | 0 | 2500 | 2510 | 99.6% |
| ov_SC03_104 | 2557 | 1811 | 0 | 2564 | 2616 | 98.0% |
| ov_SC03_105 | 2452 | 1807 | 0 | 2459 | 2597 | 94.7% |
| ov_SC03_107 | 2310 | 1689 | 0 | 2393 | 2497 | 95.8% |
| ov_SC03_108 | 2411 | 1807 | 0 | 2411 | 2443 | 98.7% |
| ov_SC03_109 | 2409 | 1807 | 0 | 2411 | 2424 | 99.5% |
| ov_SC03_110 | 2446 | 1830 | 0 | 2446 | 2468 | 99.1% |
| ov_SC03_111 | 2482 | 1806 | 0 | 2485 | 2510 | 99.0% |
| ov_SC03_112 | 2463 | 1808 | 0 | 2465 | 2526 | 97.6% |
| ov_SC03_113 | 2445 | 1808 | 0 | 2448 | 2468 | 99.2% |
| ov_SC03_114 | 2391 | 1806 | 0 | 2393 | 2415 | 99.1% |
| ov_SC03_115 | 2437 | 1806 | 0 | 2439 | 2472 | 98.7% |
| ov_SC03_116 | 2404 | 1806 | 0 | 2407 | 2438 | 98.7% |
| ov_SC03_117 | 2484 | 1806 | 0 | 2490 | 2557 | 97.4% |
| ov_SC03_118 | 2582 | 1845 | 0 | 2583 | 2684 | 96.2% |
| ov_SC03_119 | 2574 | 1845 | 0 | 2575 | 2685 | 95.9% |
| ov_SC03_121 | 2408 | 1807 | 0 | 2410 | 2459 | 98.0% |
| ov_SC03_124 | 2597 | 1802 | 0 | 2617 | 2741 | 95.5% |
| ov_SC03_125 | 2535 | 1815 | 0 | 2547 | 2588 | 98.4% |
| ov_SC03_126 | 2406 | 1809 | 0 | 2406 | 2423 | 99.3% |
| ov_SC04_000 | 2479 | 1811 | 0 | 2488 | 2546 | 97.7% |
| ov_SC04_002 | 2542 | 1806 | 0 | 2546 | 2636 | 96.6% |
| ov_SC04_003 | 2445 | 1813 | 0 | 2448 | 2502 | 97.8% |
| ov_SC04_004 | 2479 | 1807 | 0 | 2481 | 2558 | 97.0% |
| ov_SC04_005 | 2530 | 1806 | 0 | 2536 | 2612 | 97.1% |
| ov_SC04_006 | 2432 | 1812 | 0 | 2434 | 2454 | 99.2% |
| ov_SC04_007 | 2509 | 1807 | 0 | 2513 | 2569 | 97.8% |
| ov_SC04_008 | 2404 | 1806 | 0 | 2404 | 2415 | 99.5% |
| ov_SC04_009 | 2428 | 1806 | 0 | 2431 | 2441 | 99.6% |
| ov_SC04_010 | 2405 | 1806 | 0 | 2406 | 2419 | 99.5% |
| ov_SC04_011 | 2612 | 1811 | 0 | 2618 | 2803 | 93.4% |
| ov_SC04_012 | 2404 | 1806 | 0 | 2405 | 2420 | 99.4% |
| ov_SC04_015 | 2545 | 1807 | 0 | 2556 | 2611 | 97.9% |
| ov_SC04_016 | 2403 | 1806 | 0 | 2405 | 2440 | 98.6% |
| ov_SC04_018 | 2734 | 1887 | 0 | 2734 | 2857 | 95.7% |
| ov_SC04_019 | 2725 | 1887 | 0 | 2725 | 2857 | 95.4% |
| ov_SC04_020 | 2520 | 1815 | 0 | 2532 | 2567 | 98.6% |
| ov_SC04_021 | 2404 | 1809 | 0 | 2404 | 2423 | 99.2% |
| ov_SC05_000 | 2407 | 1810 | 0 | 2410 | 2422 | 99.5% |
| ov_SC05_001 | 2488 | 1807 | 0 | 2493 | 2574 | 96.9% |
| ov_SC05_002 | 2431 | 1806 | 0 | 2434 | 2442 | 99.7% |
| ov_SC05_003 | 2429 | 1806 | 0 | 2430 | 2481 | 97.9% |
| ov_SC05_004 | 2433 | 1806 | 0 | 2435 | 2464 | 98.8% |
| ov_SC05_005 | 2446 | 1812 | 0 | 2447 | 2491 | 98.2% |
| ov_SC05_006 | 2426 | 1807 | 0 | 2426 | 2430 | 99.8% |
| ov_SC05_007 | 2436 | 1806 | 0 | 2441 | 2482 | 98.3% |
| ov_SC05_008 | 2444 | 1806 | 0 | 2446 | 2543 | 96.2% |
| ov_SC05_009 | 2412 | 1806 | 0 | 2416 | 2438 | 99.1% |
| ov_SC05_010 | 2461 | 1807 | 0 | 2465 | 2588 | 95.2% |
| ov_SC05_011 | 2397 | 1806 | 0 | 2398 | 2409 | 99.5% |
| ov_SC05_017 | 2681 | 1806 | 0 | 2692 | 2842 | 94.7% |
| ov_SC05_018 | 2553 | 1814 | 0 | 2566 | 2673 | 96.0% |
| ov_SC05_019 | 2404 | 1809 | 0 | 2404 | 2423 | 99.2% |
| ov_SC06_000 | 2543 | 1817 | 0 | 2546 | 2691 | 94.6% |
| ov_SC06_006 | 2433 | 1807 | 0 | 2434 | 2511 | 96.9% |
| ov_SC06_008 | 2502 | 1808 | 0 | 2508 | 2542 | 98.7% |
| ov_SC06_010 | 2473 | 1806 | 0 | 2478 | 2517 | 98.5% |
| ov_SC06_011 | 2418 | 1806 | 0 | 2422 | 2468 | 98.1% |
| ov_SC06_013 | 2407 | 1806 | 0 | 2408 | 2425 | 99.3% |
| ov_SC06_014 | 2418 | 1806 | 0 | 2420 | 2453 | 98.7% |
| ov_SC06_015 | 2412 | 1806 | 0 | 2412 | 2421 | 99.6% |
| ov_SC06_016 | 2456 | 1807 | 0 | 2458 | 2549 | 96.4% |
| ov_SC06_018 | 2555 | 1807 | 0 | 2562 | 2665 | 96.1% |
| ov_SC06_020 | 2472 | 1808 | 0 | 2473 | 2518 | 98.2% |
| ov_SC06_022 | 2528 | 1806 | 0 | 2536 | 2642 | 96.0% |
| ov_SC06_024 | 2552 | 1806 | 0 | 2558 | 2667 | 95.9% |
| ov_SC06_025 | 2455 | 1806 | 0 | 2460 | 2572 | 95.6% |
| ov_SC06_027 | 2392 | 1806 | 0 | 2393 | 2408 | 99.4% |
| ov_SC06_029 | 2520 | 1807 | 0 | 2532 | 2662 | 95.1% |
| ov_SC06_030 | 2415 | 1807 | 0 | 2415 | 2456 | 98.3% |
| ov_SC06_032 | 2543 | 1807 | 0 | 2550 | 2658 | 95.9% |
| ov_SC06_033 | 2531 | 1807 | 0 | 2538 | 2631 | 96.5% |
| ov_SC07_000 | 2439 | 1811 | 0 | 2441 | 2521 | 96.8% |
| ov_SC07_001 | 2407 | 1807 | 0 | 2409 | 2454 | 98.2% |
| ov_SC07_002 | 2467 | 1807 | 0 | 2471 | 2579 | 95.8% |
| ov_SC07_006 | 2330 | 1625 | 0 | 2410 | 2456 | 98.1% |
| ov_SC07_007 | 2395 | 1660 | 0 | 2479 | 2612 | 94.9% |
| ov_SC07_008 | 2386 | 1806 | 0 | 2386 | 2386 | 100.0% |
| ov_SC07_009 | 2400 | 1806 | 0 | 2402 | 2430 | 98.8% |
| ov_SC07_010 | 2324 | 1682 | 0 | 2406 | 2523 | 95.4% |
| ov_SC07_011 | 2341 | 1659 | 0 | 2421 | 2448 | 98.9% |