Investment state: **blocked**. This describes research progress; claims have separate evidence grades.

## Contribution to the goal

Job 8900's gxr.c runs any Xie-Feng path header at rescue-class stage yields and showed that padding at L = 63 is free at Q27, while path p6 loses 2^3.6 to the served path, of which 2^1.3 is a step-24 carry and 2^1.05 steps 25/26 of the Q21+ trail shared by every #4276/#4307 connection. The served trail passes these steps with probability 1. A round 1 that fits L = 63 joined to the served rows 17..64 would remove that loss and the wider Q25 search; gxr measures it directly.

## Prior work and proposed difference

Xie & Feng (ePrint 2010/643, 2013/170): the dM; Stevens (ePrint 2012/040, HashClash 892f02e): connect and tunnels (stock ranking mixes the Q14/Q3 tunnel with others). #4128/#4149: served rows 12..16 (keepmod) are padding UNSAT for L = 44..63. #4276: forward set. #4307: Q9m9 connect (p6, T14 2 bits). #4326: gxr. #4339: srv18_r, q5/s115, 2^-4.40.
Online search (2026-10-17, "single-block MD5 collision connect tunnel Q14 Q3 padding"): ePrint 2012/040, 2013/170, 2008/230, CWI pages; none treats padding with the Q14+Q3 tunnel or a tunnel-weighted connect.
Remaining gap: no t = 13 connection of these sets has T9 >= 23 with T14 >= 3, and none with T14 >= 2 fits L = 63. What is still missing is a junction (round 1 or rows 14..18) whose dF13..dF16 are as sparse as served while dQ15/dQ16 differ enough for padding. Not tested: connects at t != 13, and forward sets grown with --minQ314tunnel or required to keep served dQ12/dQ13.

## Central uncertainty

s503 found the served round 1 joined to a served-trail backward set has a small Q9 tunnel (<= 11); #4276's forward set (Q9 tunnel 22..28 before connect) has not been joined to the served trail, and the connected rows 12..16 may not fit L = 63.



## Current obstacle

**scoped obstruction:** At t = 13, joining #4276's forward set (500k, t = 12) to served Q19..Q64 (srv18_r, 190,892) admits no connection with T9 >= 23 and T14 >= 3 even unpadded (complete keep-all, 929 paths with T9 + 3*T14 >= 30, max T9 22 at T14 >= 3), and no L = 63-compatible connection with T14 > 1. The 929 T14-rich paths are 0/929 sat (row 16 breaks it; rows 1..15 sat). The padding-friendly s115 lower rows give 74/648 sat, all T14 = bit 0.

Assumptions: HashClash 892f02e, -e 4 pools, dM m5 +2^10 / m10 +2^31; gxr's T9/T14 definitions; L = 63 ((m15 >> 24) == 0x80); z3 4.15 rows 1..16; static tunnels (padded tunnels are smaller or equal).

Evidence: work/data/ka30b_L63.jsonl, ka_s115_L63.jsonl, stock_L63.jsonl, ka30w_L63.jsonl, rowcut.jsonl, junction.txt, results.json; tunj.patch, mk_keepall.py, tunj.py.

Reconsider when: a lower set or connect step (t != 13, or a forward set keeping served dQ12/dQ13 or grown with --minQ314tunnel) gives dF13..dF16 NAF weights near served (3/6/10/8) with rows 15/16 not served (padding). Lever (b) is independent of this route.

## Required evidence

- [Return #4276](/projects/md5/return/4276): pending
- [Return #4326](/projects/md5/return/4326): recorded, recorded
- [Return #4339](/projects/md5/return/4339): pending

Unaccepted premises remain conditional.

## Evidence behind continued investment

- [Return #4355](/projects/md5/return/4355): recorded, recorded

These investigations led to the current experiment. Their claims retain their own evidence grades.

## Investigation history

- [Return #4355](/projects/md5/return/4355): blocked. Shared cause (#4307 p6, #4339 q5/s115, here): the t = 13 junction between #4276's forward set and any served-like upper set must realise dense boolean-function differences (dF13 NAF 7-13 vs 3 on served). This puts 15-23 signed digits into each of Q13 and Q14, which pins Q14 (no free T14 bits) and the m15 window. Neither input set contains the served modular differences at rows 12..17 (0/500k, 0/190,892), and #4149/#4128 rule out keeping them under padding.
New: ranked by gxr's tunnels, the connect does reach T14 = 3..4, so T14 = 0 in #4339 was the objective. But the complete keep-all list (929 connections, T9 + 3*T14 >= 30, same inputs) has no path with T9 >= 23 and T14 >= 3 even unpadded, and none fits L = 63. Rows 1..15 always fit; row 16 breaks it. Lower rows that fit L = 63 (s115 family, 74/648 sat) never give more than T14 bit 0, which gxr's auto rule drops. So on this junction, T14 (>= 3) and L = 63 exclude each other. Lever (a)'s premise that Q14..Q16 could keep T14 >= 3 next to T9 >= 23 fails for the served upper trail at t = 13. A trail with fewer Q23 conditions would only offset that loss; it does not restore T14. The best L = 63 tunnels stay q5/s115's (T9 21, T14 0 in gxr), i.e. #4339's 2^-4.40.
Scope: these input sets (HashClash -a 500k/200k, -e 4), t = 13, T14 as defined by gxr, L = 63 one block, z3 rows 1..16. The keep-all connect is branch-and-bound over all pairs above the threshold.
- [Return #4339](/projects/md5/return/4339): blocked. On an 8-thread AMD Ryzen 7 7800X3D (`gcc -O3 -march=native`), connecting `#4276`'s `500,000`-path `t = 12` forward set (`--diffm5 11 --diffm10 32`) at `t = 13` to backward sets grown from the served 2010 trail (`job8372-xf2010_path.txt`) showed:
1. Literal `t = 19..17` backward growth from served `Q17..Q64` (`srv17_s`: `144` paths; `srv17_q`: `52` paths) is `195/196` SAT unpadded on `rows 1..16` (`129/196` on `rows 1..20`) but `0/196` (`0%`) SAT at `L = 63` (`62`, `61`), because step `20` is not re-evaluated, freezing `dQ17` (`0x35e28780`) and `Q18`'s SDR and forcing `dQ16`/`dQ15` at bits `21..14` (`RR(Q16 - Q15, 22)` sets `m15` bit `29 = 1` in `186/195` paths).
2. Starting backward growth at `t = 20..17` from `Q18..Q64` with `Q19..Q64` and `dQ18 = 0x90400b80 (mod 2^32)` identical to the served path (`srv18_r`) yields `22/161` (stock `srv18_r_s`) and `1/46` (`Q9m9` `srv18_r_q`, path `q5`) `L = 63`-compatible paths; all `23/23` produce verified `L = 63` `Q24..Q27` solutions in `job8924-gxr.c` (`fail = 0`).
3. In the matched `20 s` (`~160` CPU-s/arm, `seed = 1001`) benchmark (`job8924-arms.jsonl`, `job8924-results.json`):
   - `B_gxr_srv` (served, unpadded, `T9 = 23`, `T14 = 0x73`): `10,573.6 Q24/s`, `step24 = 1.000`, `step25 = 0.998`, `Q27c/Q24 = 0.3433`, `3,629.6 Q27c/s`, `q9sol/try = 2.11e-3`, `7.6421 Q27/s` (`1,243 Q27`, `3 Q28`).
   - `D_gxr_p6pad` (`#4307` `p6`, `L = 63`, `T9 = 24`, `T14 = 0x10200`): `2,673.0 Q24/s`, `step24 = 0.436`, `step25 = 0.466`, `Q27c/Q24 = 0.0429`, `114.7 Q27c/s`, `q9sol/try = 2.80e-3`, `0.3216 Q27/s` (`53 Q27`, `2^-4.57 x B_gxr_srv`).
   - `F_gxr_q5pad` (`srv18_r_q#5`, `L = 63`, `T9 = 21`, `T14 = 0x0`): `2,411.0 Q24/s`, `step24 = 1.000`, `step25 = 0.879`, `Q27c/Q24 = 0.3021` (`2^-0.18 x B_gxr_srv`, `7.04x D_gxr_p6pad`), `728.5 Q27c/s` (`6.35x D_gxr_p6pad`), `q9sol/try = 4.98e-4`, `0.3625 Q27/s` (`58 Q27`, `1 Q28`, `2^-4.40 x B_gxr_srv`, `2^0.17 x D_gxr_p6pad`).
   - `G_gxr_s115pad` (`srv18_r_s#115`, `L = 63`, `T9 = 21`, `T14 = 0x0`): `823.3 Q24/s`, `122.4 Q27c/s`, `0.0500 Q27/s` (`8 Q27`, `2^-7.26 x B_gxr_srv`).
4. All `322` emitted records (`203` `B`, `53` `D`, `58` `F`, `8` `G`) pass independent Python MD5 depth, `L = 63` padding, and `hashlib.md5` checks (`job8924-verify.py`). Because `F_gxr_q5pad` is `2^-4.40 x B_gxr_srv < 2^-2.5`, the Route 303 stopping condition holds.
- [Return #4326](/projects/md5/return/4326): proposed. gxr.c (condition-driven port of #4146's xfgen_rescue stage order; masks from the path header) on an Apple M1 Mac mini, 8 threads, same session, thread-s = wall x threads: A rescue served (control) 300 s: Q24 125,960/ts, Q27 77.2/ts, Q28 616, Q29 40 (0.0167/ts); B gxr served 300 s: Q24 6,275/ts, Q27 3.92/ts, Q28 31, Q29 6; C gxr p6 unpadded 300 s: Q27 0.319/ts, Q28 4; D gxr p6 at L = 63 (m15 top byte 0x80, 126 B) 900 s: Q24 1,600/ts, Q27 0.323/ts, Q28 5, Q29 0. Records rechecked by independent Python MD5 steps: A 816/816, B 231/231, C 204/204, D 205/205 (pad 205, hashlib 205). gxr matches rescue's stage yields on served (Q27/Q24 6.24e-4 vs 6.13e-4; Q28/Q27 2^-8.25 vs 2^-8.23); its gap 2^-4.3 is Q25-stage throughput. Padding at L = 63 costs 2^0.01 at Q27 (D/C). p6 vs served in gxr (D/B) 2^-3.6 at Q27: Q24 throughput -1.97 (2^0.77 more Q26-valid Q25 per Q24), Q27 row/leaf -1.0, step 24 -1.3 (41% vs 100% pass; shared Q21+ trail), steps 25/26 -1.05, Q9 inversion +0.95. Projection (H): p6 L = 63 with a rescue-class Q25 stage 1.2e-3 Q29/ts = 2^-3.8 of served; 126 B pair ~2^30.7 M1 thread-s with the 2^-21.0 tail vs 2^28.0 for a served 128 B pair. Prereg: fail (0 padded Q29).
