diff --git a/.run/giants/func_8014D820.perm27.c b/.run/giants/func_8014D820.perm27.c new file mode 100644 index 000000000..6143cbd2d --- /dev/null +++ b/.run/giants/func_8014D820.perm27.c @@ -0,0 +1,229 @@ + +typedef unsigned char u8; +typedef unsigned short u16; +typedef unsigned int u32; +typedef signed char s8; +typedef short s16; +typedef int s32; +typedef float f32; +typedef unsigned long long u64; +typedef long long s64; +typedef double f64; +typedef s32 M2C_UNK; +typedef s8 M2C_UNK8; +typedef s16 M2C_UNK16; +typedef s32 M2C_UNK32; +typedef s64 M2C_UNK64; +typedef struct +{ + u16 x; + u16 y; + u16 z; + u16 w; +} V4; +typedef struct +{ + u16 x; + u16 y; + u16 z; + u16 w; + s32 pad[4]; + s32 f18; + s32 f1C; + s32 f20; +} Desc; +typedef struct Ent +{ + u16 f0; + u16 f2; + u16 f4; + u16 x; + u16 f8; + u16 y; + u16 fC; + u16 z; + u8 p10[0x10]; + s32 f20; + u8 p24[0x34]; + s32 f58; + u16 f5C; + u16 f5E; + u8 p60[0x10C - 0x60]; +} Ent; +extern s16 currentLocationId; +extern Ent D_801202A0[]; +extern u8 D_8018876C[]; +extern u16 D_801152A8; +extern u16 D_801152AC; +extern s32 ratan2(s32 a0, s32 a1); +extern s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3); +extern s32 func_80012A60(s32 a0, s32 a1); +extern void func_800139C8(s32 a0, void *a1, void *a2); +extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); +extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); +extern s32 func_80133784(s32 a0, void *a1, s32 a2); +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +{ +register u16 *a2 __asm__("$7") = a2x; + V4 out[3]; + V4 pos; + Desc desc; + Ent *ent; + Ent *p; + s32 dx; + s32 dz; + s32 ex; + s32 ez; + s32 r1; + s32 r2; + s32 r3; + s32 ang; + s32 x0; + s32 y0; + s32 z0; + s32 tx; + s32 tz; + s32 r; + s32 t; +register s32 u __asm__("$2"); + t = a2[0]; + u = a1[0]; + dx = t - u; + t = a2[2]; + u = a1[2]; + dz = t - u; + if (((s16) (dx | dz)) == 0) + { + goto fail; + } + desc.x = dx; + desc.y = a2[1] - a1[1]; + desc.z = a2[2] - a1[2]; + ent = *((Ent **) (a0 + 0x170)); + if (ent->f0 == 0) + { + goto fail; + } + if ((ent->f5C & 0x1000) == 0) + { + goto fail; + } + if (ent->f58 == 0) + { + goto fail; + } + if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + { + goto fail; + } + ex = ent->x - (*((u16 *) (a0 + 6))); + ez = ent->z - (*((u16 *) (a0 + 0xE))); + r1 = (s16) ratan2((s16) dz, (s16) dx); + r2 = (s16) ratan2((s16) ez, (s16) ex); + r3 = (s16) func_80012A60(r1, r2); + if (r3 >= 0x400) + { + goto fail; + } + desc.f20 = 0; + desc.f1C = 0; + desc.f18 = 0; + pos.x = (x0 = ent->x); + z0 = ent->z; + tx = x0 + desc.x; + y0 = ent->y; + pos.y = y0; + desc.y = (y0 + desc.y) + 8; + tz = z0 + desc.z; + pos.z = z0; + desc.x = tx; + desc.z = tz; + if (currentLocationId != 0x3008) + { + for (p = D_801202A0; p < (D_801202A0 + 96); p++) + { + if (p == ent) + { + continue; + } + if (p->f0 == 0) + { + continue; + } + if (p->f5C == 0) + { + continue; + } + if (p->f58 == 0) + { + continue; + } + func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc)); + } + + } + else + { + ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF; + func_800139C8(ang, D_8018876C, &out[0]); + func_800139C8((s16) (ang - 0x155), D_8018876C, &out[1]); + func_800139C8((s16) (ang + 0x155), D_8018876C, &out[2]); + out[0].x += pos.x; + out[0].y = pos.y; + out[0].z += pos.z; + out[1].x += pos.x; + out[1].y = pos.y; + out[1].z += pos.z; + out[2].x += pos.x; + out[2].y = pos.y; + out[2].z += pos.z; + for (p = D_801202A0; p < (D_801202A0 + 96); p++) + { + if (p == ent) + { + continue; + } + if (p->f0 == 0) + { + continue; + } + if (p->f5C == 0) + { + continue; + } + if (p->f58 == 0) + { + continue; + } + if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0) + { + __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8); + } + } + + } + r = func_80133784(0, &pos, (s32) (&desc)); + if ((r == 0) || ((r == 0x2000) && ((D_801152A8 | D_801152AC) == 0))) + { + ent->x = desc.x - desc.f18; + ent->y = desc.y; + ent->z = desc.z - desc.f20; + desc.x -= pos.x; + desc.y -= pos.y; + desc.z -= pos.z; + *((u16 *) (a0 + 6)) = a1[0] + desc.x; + *((u16 *) (a0 + 0xA)) = a1[1] + (desc.y + 0x10); + *((u16 *) (a0 + 0xE)) = a1[2] + desc.z; + } + else + { + *((u16 *) (a0 + 6)) = a1[0]; + *((u16 *) (a0 + 0xA)) = a1[1] + 0x10; + *((u16 *) (a0 + 0xE)) = a1[2]; + } + return 1; + fail: + *((s32 *) (a0 + 0x170)) = 0; + + return 0; +} diff --git a/.run/giants/wave_func_8013B83C.c b/.run/giants/wave_func_8013B83C.c new file mode 100644 index 000000000..c3ed1e90e --- /dev/null +++ b/.run/giants/wave_func_8013B83C.c @@ -0,0 +1,112 @@ +#include "common.h" + +typedef struct { + s32 f0; /* 0x00 */ + s16 f4; /* 0x04 */ + s16 f6; /* 0x06 */ + s16 f8; /* 0x08 */ + s16 fa; /* 0x0A */ + s32 fc; /* 0x0C */ + s32 f10; /* 0x10 */ + s32 f14; /* 0x14 */ + s32 f18; /* 0x18 */ +} E_3B83C; /* 0x1C */ + +extern E_3B83C D_801DAA08[]; +extern s32 D_801DAAA4; +extern s32 D_801DAAA8; +extern s32 D_801DAAAC; +extern s32 D_801DAAC0; +extern s32 D_801DAAD0; +extern s32 D_801DAB20; +extern s32 D_801DAB24; +extern s32 D_801DAB28; +extern s16 D_800B9A0E; + +void func_80052D90(s32 a0, void *a1); +void func_8013BD74(void *a0, s32 a1); +void func_8013C08C(void *a0, s32 a1); + +void func_8013B83C(s32 a0, s32 a1, s32 a2) { + s32 i; + + D_801DAAC0 = 0; + D_801DAAAC = 0; + D_801DAAA8 = 0; + D_801DAAA4 = 0; + func_80052D90(0, &D_801DAAD0); + if (a0 == 0) { + return; + } + D_801DAB20 = a2 + 500; + D_801DAB24 = a2; + for (i = 0; i < 4; i++) { + D_801DAA08[i].f0 = 0; + D_801DAA08[i].f4 = D_801DAA08[i].f6 = D_801DAA08[i].f8 = 0x6000; + D_801DAA08[i].fc = 0x100; + D_801DAA08[i].f18 = 0; + } + switch (*(u8 *)a0) { + case 0x42: + if (D_800B9A0E == 0) { + func_8013BD74(&D_801DAAC0, a0); + } else { + func_8013BD74(&D_801DAAC0, a1); + } + D_801DAB28 = 0; + break; + case 0x43: + func_8013C08C(&D_801DAAC0, a0); + D_801DAB28 = 1; + break; + case 0x44: + func_8013C08C(&D_801DAAC0, a0); + D_801DAB28 = 2; + break; + case 0x45: + func_8013C08C(&D_801DAAC0, a0); + D_801DAB28 = 3; + break; + case 0x46: + func_8013C08C(&D_801DAAC0, a0); + D_801DAB28 = 4; + break; + case 0x47: + func_8013C08C(&D_801DAAC0, a0); + D_801DAB28 = 5; + break; + case 0x48: + func_8013C08C(&D_801DAAC0, a0); + D_801DAB28 = 6; + break; + case 0x49: + func_8013C08C(&D_801DAAC0, a0); + D_801DAB28 = 9; + break; + case 0x4A: + func_8013C08C(&D_801DAAC0, a0); + D_801DAB28 = 0xC; + break; + case 0x4B: + func_8013C08C(&D_801DAAC0, a0); + D_801DAB28 = 0xD; + break; + case 0x4C: + func_8013C08C(&D_801DAAC0, a0); + D_801DAB28 = 0xE; + break; + case 0x4D: + func_8013C08C(&D_801DAAC0, a0); + D_801DAB28 = 0xF; + break; + case 0x4E: + func_8013C08C(&D_801DAAC0, a0); + D_801DAB28 = 0x10; + break; + } +} + +/* BANK BLOCKER (Phase-29 crack-wave, 2026-07-18): match_one MATCH (272 ins, -O0) but DEFERRED — + * (1) sweep ×138 is blocked by the Arm-A -O0-cluster splat wall (same as func_8013C414's family); + * (2) ×1 needs -O0 jr-isolation (jr_isolate_all skips -O0 objects — the whale _o0b split precedent) + * + a D_801DAA08 decl reconcile. ×1-only value (~272 ins). Low ROI vs the sweepable cores. */ diff --git a/.run/giants/wave_func_8013CB84.c b/.run/giants/wave_func_8013CB84.c new file mode 100644 index 000000000..243b99e0d --- /dev/null +++ b/.run/giants/wave_func_8013CB84.c @@ -0,0 +1,105 @@ +#include "common.h" + +typedef struct { s32 a, b, c; } Rec12; +typedef struct { s32 a, b; s8 c; } __attribute__((packed, aligned(1))) Rec9; + +extern s16 currentLocationId; +extern u8 D_80078EAF; +extern s32 D_801D9590; +extern s32 D_801D9588; +extern s32 D_801D958C; +extern s32 D_801D9580; +extern s32 D_801D9584; +extern s32 D_801D9594; +extern s32 D_801D95A0; +extern s32 D_801D95A8; +extern s32 D_801DAAA0; +extern s32 D_801DAA20; +extern s32 D_801DAA14[]; +extern u8 D_801DA9C1; +extern u8 D_801DAB2E; +extern u8 D_801DAA9C; +extern Rec12 D_80187484[]; +extern Rec9 D_8018744C[]; +extern Rec9 D_801DAA78; + +extern void func_8013DBE4(); +extern void func_8013D9B0(); +extern void func_8013D330(void); +extern void func_8013D178(void); +extern void func_8013CF68(void); + +void func_8013CB84(void) { + s32 loc = currentLocationId; + s32 s0 = D_80078EAF; + s32 ta, tb, tc, t; + + D_801DAAA0 = 0; + if (D_801D9590 == 0 && s0 != D_801D9588) { + ta = D_80187484[s0].a; + tb = D_80187484[s0].b; + tc = D_80187484[s0].c; + D_801D9588 = s0; + D_801DA9C1 = tc; + D_801DAB2E = ta; + D_801DAA9C = tb; + D_801DAA78 = D_8018744C[s0]; + D_801D958C = 1; + D_801D9580 = 1; + if (D_801D95A0 & 2) { + if (s0 == 4) { D_801DAA14[0] = 0x100; D_801DAA20 = 0x80; } + if (s0 == 0) { D_801DAA14[0] = 0x100; D_801DAA20 = 0; } + } + } + if (D_801D958C != 0) { + t = D_801D9580 - 1; + D_801D9580 = t; + if (t == 0) { + if (D_801D9590 == 0) { + if ((D_801D95A0 & 2) && s0 == 4) { + if (D_801D95A8 != 0) func_8013DBE4(6); + else func_8013D9B0(6); + } else { + if (D_801D95A8 != 0) func_8013DBE4(s0); + else func_8013D9B0(s0); + } + func_8013D330(); + func_8013D178(); + func_8013CF68(); + D_801D9580 = 2; + if (D_801D958C != 0) { + if (D_801D95A0 & 2) { + if (s0 == 4) { + s32 *p = &D_801DAA20; + t = *p - 8; + *p = t; + if (t < 0) *p = 0; + } else if (s0 == 0) { + s32 *p = &D_801DAA20; + t = *p + 0x20; + *p = t; + if (t >= 0x81) *p = 0x80; + } + } + } else if (D_801D95A0 & 2) { + if (s0 == 4) D_801DAA20 = 0; + if (s0 == 0) D_801DAA20 = 0x80; + } + } else { + if (D_801D95A8 != 0) func_8013DBE4(5); + else func_8013D9B0(5); + D_801D9580 = 1; + } + } + } + D_801D9594 = 0; + if (loc == 0x1010) { + if (s0 == 3) { + if (D_801D958C != 0) D_801D9594 = D_801D9584; + else D_801D9594 = 0x1F; + } else if (s0 == 4) { + if (D_801D958C != 0) D_801D9594 = 0x1F - D_801D9584; + else D_801D9594 = 0; + } + } +} diff --git a/.run/giants/wave_func_8015B950.c b/.run/giants/wave_func_8015B950.c new file mode 100644 index 000000000..a7050468f --- /dev/null +++ b/.run/giants/wave_func_8015B950.c @@ -0,0 +1,170 @@ +#include "common.h" + +typedef struct { s16 vx, vy, vz, pad; } Vec3; + +extern void (*D_801891B8[])(s32); +extern u8 D_8018914C[]; +extern s32 D_8011F9C4; + +extern s32 func_80161B18(s32); +extern s32 func_801619A4(s32); +extern s32 func_80149AA8(s32); +extern void func_80149AD4(s32); +extern s32 func_80149B54(s32); +extern void func_80149BAC(s32); +extern void func_801498E0(s32); +extern void func_80149954(s32); +extern s32 func_80149A64(s32); +extern void func_800CCCC0(s32); +extern s32 func_80149CD4(s32); +extern void func_8015E880(s32); +extern s32 func_80149744(s32); +extern void func_80149788(s32); +extern s32 func_801496D4(s32); +extern void func_80149704(s32); +extern s32 func_80148AFC(s32); +extern void func_80146D90(s32); +extern void func_80154150(s32, s32); +extern void func_801541D8(s32, s32, s32); +extern s32 func_801488A8(s32); +extern void func_80147078(s32, s32); +extern void func_8015A264(s32); +extern s32 func_80013294(Vec3 *, Vec3 *); +extern void func_80159B70(s32); +extern s32 func_8016F1AC(void); +extern s32 func_80029178(s32); +extern void func_80146DB8(s32, void *); +extern void func_80161CD0(s32, s32); +extern s32 func_80161208(s32); +extern void func_801725A4(s32); + +s32 func_8015B950(arg0) +s32 arg0; +{ + Vec3 vzero; + Vec3 vpos; + s32 x; + s32 ang; + s32 t; + s32 r; + s32 lo; + + lo = -0xB0000; + if (func_80161B18(arg0)) { + return; + } + switch (func_801619A4(arg0)) { + case 0: + case 1: + case 2: + case 6: + if (func_80149AA8(arg0)) { + D_801891B8[*(u16 *)arg0](arg0); + func_80149AD4(arg0); + return; + } + if (func_80149B54(arg0)) { + D_801891B8[*(u16 *)arg0](arg0); + func_80149BAC(arg0); + return; + } + break; + case 3: + func_801498E0(arg0); + break; + case 4: + func_80149954(arg0); + break; + case 5: + if (func_80149A64(arg0)) { + D_801891B8[*(u16 *)arg0](arg0); + func_800CCCC0(arg0); + return; + } + break; + } + if (func_80149CD4(arg0)) { + D_801891B8[*(u16 *)arg0](arg0); + func_8015E880(arg0); + return; + } + if (func_80149744(arg0)) { + D_801891B8[*(u16 *)arg0](arg0); + func_80149788(arg0); + return; + } + if (func_801496D4(arg0)) { + D_801891B8[*(u16 *)arg0](arg0); + func_80149704(arg0); + if (!((u8)func_80148AFC(arg0))) { + func_80146D90(arg0); + } + if ((*(s32 *)(arg0 + 0x24) | *(s32 *)(arg0 + 0x2C)) != 0) { + func_80154150(arg0, 0xF); + } else { + func_801541D8(arg0, 0xD, 6); + } + *(s32 *)(arg0 + 0x238) = 1; + return; + } + if (func_801488A8(arg0)) { + vzero.vx = 0; + vzero.vy = 0; + vzero.vz = 0; + t = *(s16 *)(arg0 + 0x26); + vpos.vx = t; + vpos.vy = 0; + t = *(s16 *)(arg0 + 0x2E); + vpos.vz = t; + D_801891B8[*(u16 *)arg0](arg0); + func_80147078(arg0, 1); + func_8015A264(arg0); + ang = -(func_80013294(&vzero, &vpos) << 16); + if (ang < *(s32 *)(arg0 + 0x2C)) { + *(s32 *)(arg0 + 0x2C) = ang; + } + return; + } + if (*(u16 *)(arg0 + 0xB8) == 0x8000) { + D_801891B8[*(u16 *)arg0](arg0); + func_80147078(arg0, 0); + func_80159B70(arg0); + return; + } + x = *(s32 *)(arg0 + 0x2C); + if (func_8016F1AC() != 0) goto Lfalse; + if (x <= lo) goto Ltrue; + if (D_8011F9C4 == 0) goto Lfalse; + if ((u8)func_80029178(0x21) != 0) goto Lfalse; +Ltrue: + r = 1; + goto Ltest; +Lfalse: + r = 0; +Ltest: + if (r) { + D_801891B8[*(u16 *)arg0](arg0); + func_80147078(arg0, 0); + func_80159B70(arg0); + func_80154150(arg0, 9); + func_80146DB8(arg0, D_8018914C); + func_80161CD0(arg0, *(u16 *)(arg0 + 0x16E)); + } else { + if (func_80161208(arg0) == 0) { + func_801725A4(arg0); + } + } + return; +} + +/* ===== BANK BLOCKER (Phase-29 crack-wave, 2026-07-18) ===== + * match_one MATCH (271 ins) but NOT bankable as-is: def-side register-threading wall. + * - canonical decl (engine_core.h:1839, in DEFINE_func_8015BEE4) = `extern s32 func_8015B950(void)`. + * - caller func_8015BEE4 = thin wrapper `s32 func_8015BEE4(void){ return func_8015B950(); }` — forwards + * its OWN incoming $a0 to func_8015B950 IMPLICITLY (register pass-through), so func_8015B950 MUST stay + * declared (void) for the wrapper to compile byte-correct. + * - BUT func_8015B950's body reads $a0 (asm insn 3: addu $s0,$a0,$zero). A `register s32 __asm__("$4")` + * pin compiles but PERTURBS codegen (SHA fail, not byte-neutral). + * FOLLOW-UP: Fable5/careful analysis — either get the entry $a0-capture pin byte-exact, or thread the + * arg through func_8015BEE4 fleet-wide (widen both, byte-neutrally). A func_8013FAF8-class wall with a + * no-arg thin-wrapper caller. Draft above is the byte-correct body. */ diff --git a/docs/progress.fleet.md b/docs/progress.fleet.md index cc2d47cbc..f3f4f2708 100644 --- a/docs/progress.fleet.md +++ b/docs/progress.fleet.md @@ -4,156 +4,156 @@ # cross-binary collapsible-byte leverage: docs/duplicates.cross.md. # THREE progress metrics (all matter — see the labels): -FLEET fn-count byte-ident: 306638 / 353722 = 86.69% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) -FLEET instr-weighted : 9600243 / 13081451 = 73.4% (shipped .text across resident+138 overlays; the decomp.dev-DISPLAY number) -FLEET distinct-code(uniq): 3174089 / 5574674 = 56.9% (60422/87459 unique fns; the DISTINCT-RE number) +FLEET fn-count byte-ident: 306776 / 353722 = 86.73% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) +FLEET instr-weighted : 9634605 / 13081451 = 73.7% (shipped .text across resident+138 overlays; the decomp.dev-DISPLAY number) +FLEET distinct-code(uniq): 3206708 / 5574674 = 57.5% (60553/87459 unique fns; the DISTINCT-RE number) MAIN game-code weighted : 436 / 60201 = 0.7% (Phase-27 T10; SEPARATE — LINKED-excluding Ghidra sig dated 2026-06-14, PROVISIONAL until a fresh/complete main sig; NOT folded into the fleet number) -FLEET REAL substantive : 304783 (of which dedup-shared 234161 via 1846 groups / 234205 instances) +FLEET REAL substantive : 304921 (of which dedup-shared 234161 via 1846 groups / 234205 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 7 (0 in any default build — G4) -FLEET INCLUDE_ASM stubs : 47077 +FLEET INCLUDE_ASM stubs : 46939 FLEET matchable : 353722 | binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % | |---|---:|---:|---:|---:|---:|---:| | main | 54 | 2 | 959 | 1055 | 2096 | 50.3% | | resident | 129 | 0 | 0 | 131 | 145 | 90.3% | -| ov_SC01_000 | 2182 | 1704 | 0 | 2182 | 2403 | 90.8% | -| ov_SC01_001 | 2187 | 1704 | 0 | 2189 | 2466 | 88.8% | -| ov_SC01_004 | 2180 | 1695 | 0 | 2181 | 2414 | 90.3% | -| ov_SC01_005 | 2209 | 1717 | 0 | 2209 | 2503 | 88.3% | -| ov_SC01_006 | 2209 | 1717 | 0 | 2209 | 2503 | 88.3% | -| ov_SC01_008 | 2180 | 1695 | 0 | 2182 | 2426 | 89.9% | -| ov_SC01_009 | 2205 | 1696 | 0 | 2206 | 2507 | 88.0% | -| ov_SC01_074 | 2183 | 1696 | 0 | 2185 | 2425 | 90.1% | -| ov_SC01_077 | 2374 | 1664 | 0 | 2376 | 2585 | 91.9% | -| ov_SC01_080 | 2221 | 1699 | 0 | 2221 | 2512 | 88.4% | -| ov_SC01_084 | 2229 | 1699 | 0 | 2234 | 2579 | 86.6% | -| ov_SC02_000 | 2280 | 1734 | 0 | 2280 | 2683 | 85.0% | -| ov_SC02_003 | 2280 | 1734 | 0 | 2280 | 2683 | 85.0% | -| ov_SC02_004 | 2188 | 1699 | 0 | 2188 | 2401 | 91.1% | -| ov_SC02_005 | 2295 | 1695 | 0 | 2305 | 2927 | 78.7% | -| ov_SC02_011 | 2304 | 1702 | 0 | 2315 | 2893 | 80.0% | -| ov_SC02_015 | 2189 | 1701 | 0 | 2189 | 2414 | 90.7% | -| ov_SC02_016 | 2219 | 1701 | 0 | 2222 | 2545 | 87.3% | -| ov_SC02_017 | 2265 | 1701 | 0 | 2273 | 2732 | 83.2% | -| ov_SC02_021 | 2195 | 1701 | 0 | 2195 | 2437 | 90.1% | -| ov_SC02_026 | 2210 | 1699 | 0 | 2216 | 2572 | 86.2% | -| ov_SC02_027 | 2233 | 1699 | 0 | 2242 | 2692 | 83.3% | -| ov_SC02_028 | 2234 | 1699 | 0 | 2244 | 2701 | 83.1% | -| ov_SC02_031 | 2220 | 1700 | 0 | 2225 | 2562 | 86.8% | -| ov_SC02_035 | 2196 | 1699 | 0 | 2199 | 2520 | 87.3% | -| ov_SC02_039 | 2181 | 1699 | 0 | 2181 | 2416 | 90.3% | -| ov_SC02_041 | 2216 | 1699 | 0 | 2219 | 2561 | 86.6% | -| ov_SC03_001 | 2315 | 1700 | 0 | 2332 | 2869 | 81.3% | -| ov_SC03_002 | 2242 | 1704 | 0 | 2257 | 2631 | 85.8% | -| ov_SC03_003 | 2191 | 1699 | 0 | 2192 | 2423 | 90.5% | -| ov_SC03_006 | 2254 | 1705 | 0 | 2263 | 2767 | 81.8% | -| ov_SC03_007 | 2235 | 1699 | 0 | 2239 | 2623 | 85.4% | -| ov_SC03_010 | 2197 | 1699 | 0 | 2197 | 2470 | 88.9% | -| ov_SC03_011 | 2205 | 1699 | 0 | 2211 | 2527 | 87.5% | -| ov_SC03_012 | 2183 | 1699 | 0 | 2184 | 2406 | 90.8% | -| ov_SC03_013 | 2202 | 1699 | 0 | 2202 | 2492 | 88.4% | -| ov_SC03_014 | 2260 | 1724 | 0 | 2260 | 2685 | 84.2% | -| ov_SC03_015 | 2261 | 1724 | 0 | 2261 | 2685 | 84.2% | -| ov_SC03_023 | 2189 | 1699 | 0 | 2190 | 2435 | 89.9% | -| ov_SC03_024 | 2247 | 1704 | 0 | 2254 | 2641 | 85.3% | -| ov_SC03_028 | 2229 | 1699 | 0 | 2233 | 2664 | 83.8% | -| ov_SC03_029 | 2231 | 1701 | 0 | 2241 | 2644 | 84.8% | -| ov_SC03_030 | 2203 | 1704 | 0 | 2205 | 2495 | 88.4% | -| ov_SC03_031 | 2201 | 1699 | 0 | 2204 | 2514 | 87.7% | -| ov_SC03_089 | 2215 | 1699 | 0 | 2222 | 2581 | 86.1% | -| ov_SC03_090 | 2217 | 1699 | 0 | 2225 | 2625 | 84.8% | -| ov_SC03_091 | 2220 | 1699 | 0 | 2228 | 2640 | 84.4% | -| ov_SC03_092 | 2231 | 1699 | 0 | 2243 | 2587 | 86.7% | -| ov_SC03_093 | 2207 | 1699 | 0 | 2211 | 2563 | 86.3% | -| ov_SC03_094 | 2202 | 1699 | 0 | 2208 | 2577 | 85.7% | -| ov_SC03_095 | 2192 | 1699 | 0 | 2195 | 2474 | 88.7% | -| ov_SC03_096 | 2192 | 1699 | 0 | 2195 | 2465 | 89.0% | -| ov_SC03_097 | 2221 | 1699 | 0 | 2228 | 2603 | 85.6% | -| ov_SC03_098 | 2200 | 1699 | 0 | 2203 | 2541 | 86.7% | -| ov_SC03_099 | 2193 | 1699 | 0 | 2196 | 2504 | 87.7% | -| ov_SC03_100 | 2203 | 1699 | 0 | 2207 | 2539 | 86.9% | -| ov_SC03_101 | 2203 | 1699 | 0 | 2207 | 2528 | 87.3% | -| ov_SC03_102 | 2195 | 1699 | 0 | 2198 | 2492 | 88.2% | -| ov_SC03_103 | 2198 | 1701 | 0 | 2201 | 2510 | 87.7% | -| ov_SC03_104 | 2223 | 1699 | 0 | 2230 | 2616 | 85.2% | -| ov_SC03_105 | 2216 | 1699 | 0 | 2223 | 2597 | 85.6% | -| ov_SC03_108 | 2185 | 1699 | 0 | 2185 | 2443 | 89.4% | -| ov_SC03_109 | 2186 | 1699 | 0 | 2188 | 2424 | 90.3% | -| ov_SC03_110 | 2191 | 1699 | 0 | 2191 | 2468 | 88.8% | -| ov_SC03_111 | 2203 | 1699 | 0 | 2206 | 2510 | 87.9% | -| ov_SC03_112 | 2196 | 1701 | 0 | 2198 | 2526 | 87.0% | -| ov_SC03_113 | 2189 | 1701 | 0 | 2192 | 2468 | 88.8% | -| ov_SC03_114 | 2179 | 1699 | 0 | 2181 | 2415 | 90.3% | -| ov_SC03_115 | 2196 | 1699 | 0 | 2198 | 2472 | 88.9% | -| ov_SC03_116 | 2186 | 1699 | 0 | 2189 | 2438 | 89.8% | -| ov_SC03_117 | 2214 | 1699 | 0 | 2220 | 2557 | 86.8% | -| ov_SC03_118 | 2261 | 1723 | 0 | 2262 | 2685 | 84.2% | -| ov_SC03_119 | 2259 | 1723 | 0 | 2260 | 2685 | 84.2% | -| ov_SC03_121 | 2193 | 1699 | 0 | 2196 | 2459 | 89.3% | -| ov_SC03_124 | 2272 | 1695 | 0 | 2292 | 2741 | 83.6% | -| ov_SC03_125 | 2229 | 1699 | 0 | 2241 | 2588 | 86.6% | -| ov_SC03_126 | 2192 | 1701 | 0 | 2192 | 2423 | 90.5% | -| ov_SC04_000 | 2208 | 1703 | 0 | 2217 | 2546 | 87.1% | -| ov_SC04_002 | 2224 | 1699 | 0 | 2228 | 2636 | 84.5% | -| ov_SC04_003 | 2202 | 1699 | 0 | 2206 | 2502 | 88.2% | -| ov_SC04_004 | 2211 | 1699 | 0 | 2213 | 2558 | 86.5% | -| ov_SC04_005 | 2219 | 1699 | 0 | 2225 | 2612 | 85.2% | -| ov_SC04_006 | 2192 | 1699 | 0 | 2194 | 2454 | 89.4% | -| ov_SC04_007 | 2212 | 1699 | 0 | 2216 | 2569 | 86.3% | -| ov_SC04_008 | 2182 | 1699 | 0 | 2182 | 2415 | 90.4% | -| ov_SC04_009 | 2198 | 1699 | 0 | 2201 | 2441 | 90.2% | -| ov_SC04_010 | 2189 | 1699 | 0 | 2190 | 2419 | 90.5% | -| ov_SC04_011 | 2245 | 1699 | 0 | 2251 | 2803 | 80.3% | -| ov_SC04_012 | 2185 | 1699 | 0 | 2186 | 2420 | 90.3% | -| ov_SC04_015 | 2248 | 1700 | 0 | 2259 | 2611 | 86.5% | -| ov_SC04_016 | 2188 | 1699 | 0 | 2190 | 2440 | 89.8% | -| ov_SC04_018 | 2299 | 1734 | 0 | 2299 | 2857 | 80.5% | -| ov_SC04_019 | 2304 | 1734 | 0 | 2304 | 2857 | 80.6% | -| ov_SC04_020 | 2216 | 1699 | 0 | 2228 | 2567 | 86.8% | -| ov_SC04_021 | 2193 | 1701 | 0 | 2193 | 2423 | 90.5% | -| ov_SC05_000 | 2189 | 1703 | 0 | 2192 | 2422 | 90.5% | -| ov_SC05_001 | 2212 | 1699 | 0 | 2217 | 2574 | 86.1% | -| ov_SC05_002 | 2194 | 1699 | 0 | 2197 | 2442 | 90.0% | -| ov_SC05_003 | 2191 | 1699 | 0 | 2192 | 2481 | 88.4% | -| ov_SC05_004 | 2186 | 1699 | 0 | 2188 | 2464 | 88.8% | -| ov_SC05_005 | 2193 | 1699 | 0 | 2194 | 2491 | 88.1% | -| ov_SC05_006 | 2185 | 1699 | 0 | 2185 | 2430 | 89.9% | -| ov_SC05_007 | 2195 | 1699 | 0 | 2200 | 2482 | 88.6% | -| ov_SC05_008 | 2212 | 1699 | 0 | 2214 | 2543 | 87.1% | -| ov_SC05_009 | 2190 | 1699 | 0 | 2194 | 2438 | 90.0% | -| ov_SC05_010 | 2216 | 1699 | 0 | 2220 | 2588 | 85.8% | -| ov_SC05_011 | 2188 | 1699 | 0 | 2189 | 2409 | 90.9% | -| ov_SC05_017 | 2295 | 1696 | 0 | 2306 | 2842 | 81.1% | -| ov_SC05_018 | 2242 | 1699 | 0 | 2255 | 2673 | 84.4% | -| ov_SC05_019 | 2193 | 1701 | 0 | 2193 | 2423 | 90.5% | -| ov_SC06_000 | 2253 | 1708 | 0 | 2256 | 2691 | 83.8% | -| ov_SC06_006 | 2208 | 1699 | 0 | 2209 | 2511 | 88.0% | -| ov_SC06_008 | 2218 | 1701 | 0 | 2224 | 2542 | 87.5% | -| ov_SC06_010 | 2202 | 1699 | 0 | 2207 | 2517 | 87.7% | -| ov_SC06_011 | 2196 | 1699 | 0 | 2200 | 2468 | 89.1% | -| ov_SC06_013 | 2190 | 1699 | 0 | 2191 | 2425 | 90.4% | -| ov_SC06_014 | 2196 | 1699 | 0 | 2198 | 2453 | 89.6% | -| ov_SC06_015 | 2193 | 1699 | 0 | 2193 | 2421 | 90.6% | -| ov_SC06_016 | 2210 | 1699 | 0 | 2212 | 2549 | 86.8% | -| ov_SC06_018 | 2207 | 1702 | 0 | 2214 | 2665 | 83.1% | -| ov_SC06_020 | 2200 | 1701 | 0 | 2201 | 2518 | 87.4% | -| ov_SC06_022 | 2214 | 1699 | 0 | 2222 | 2642 | 84.1% | -| ov_SC06_024 | 2219 | 1699 | 0 | 2225 | 2667 | 83.4% | -| ov_SC06_025 | 2211 | 1699 | 0 | 2216 | 2572 | 86.2% | -| ov_SC06_027 | 2179 | 1699 | 0 | 2180 | 2408 | 90.5% | -| ov_SC06_029 | 2237 | 1699 | 0 | 2249 | 2662 | 84.5% | -| ov_SC06_030 | 2192 | 1699 | 0 | 2192 | 2456 | 89.3% | -| ov_SC06_032 | 2204 | 1700 | 0 | 2211 | 2658 | 83.2% | -| ov_SC06_033 | 2207 | 1700 | 0 | 2214 | 2631 | 84.2% | -| ov_SC07_000 | 2206 | 1703 | 0 | 2208 | 2521 | 87.6% | -| ov_SC07_001 | 2192 | 1699 | 0 | 2194 | 2454 | 89.4% | -| ov_SC07_002 | 2219 | 1699 | 0 | 2223 | 2579 | 86.2% | -| ov_SC07_006 | 1965 | 1547 | 0 | 2045 | 2456 | 83.3% | -| ov_SC07_007 | 1981 | 1548 | 0 | 2065 | 2614 | 79.0% | -| ov_SC07_008 | 2176 | 1699 | 0 | 2176 | 2386 | 91.2% | -| ov_SC07_009 | 2186 | 1699 | 0 | 2188 | 2430 | 90.0% | -| ov_SC07_010 | 1994 | 1548 | 0 | 2077 | 2526 | 82.2% | -| ov_SC07_011 | 1981 | 1547 | 0 | 2061 | 2450 | 84.1% | +| ov_SC01_000 | 2183 | 1704 | 0 | 2183 | 2403 | 90.8% | +| ov_SC01_001 | 2188 | 1704 | 0 | 2190 | 2466 | 88.8% | +| ov_SC01_004 | 2181 | 1695 | 0 | 2182 | 2414 | 90.4% | +| ov_SC01_005 | 2210 | 1717 | 0 | 2210 | 2503 | 88.3% | +| ov_SC01_006 | 2210 | 1717 | 0 | 2210 | 2503 | 88.3% | +| ov_SC01_008 | 2181 | 1695 | 0 | 2183 | 2426 | 90.0% | +| ov_SC01_009 | 2206 | 1696 | 0 | 2207 | 2507 | 88.0% | +| ov_SC01_074 | 2184 | 1696 | 0 | 2186 | 2425 | 90.1% | +| ov_SC01_077 | 2375 | 1664 | 0 | 2377 | 2585 | 92.0% | +| ov_SC01_080 | 2222 | 1699 | 0 | 2222 | 2512 | 88.5% | +| ov_SC01_084 | 2230 | 1699 | 0 | 2235 | 2579 | 86.7% | +| ov_SC02_000 | 2281 | 1734 | 0 | 2281 | 2683 | 85.0% | +| ov_SC02_003 | 2281 | 1734 | 0 | 2281 | 2683 | 85.0% | +| ov_SC02_004 | 2189 | 1699 | 0 | 2189 | 2401 | 91.2% | +| ov_SC02_005 | 2296 | 1695 | 0 | 2306 | 2927 | 78.8% | +| ov_SC02_011 | 2305 | 1702 | 0 | 2316 | 2893 | 80.1% | +| ov_SC02_015 | 2190 | 1701 | 0 | 2190 | 2414 | 90.7% | +| ov_SC02_016 | 2220 | 1701 | 0 | 2223 | 2545 | 87.3% | +| ov_SC02_017 | 2266 | 1701 | 0 | 2274 | 2732 | 83.2% | +| ov_SC02_021 | 2196 | 1701 | 0 | 2196 | 2437 | 90.1% | +| ov_SC02_026 | 2211 | 1699 | 0 | 2217 | 2572 | 86.2% | +| ov_SC02_027 | 2234 | 1699 | 0 | 2243 | 2692 | 83.3% | +| ov_SC02_028 | 2235 | 1699 | 0 | 2245 | 2701 | 83.1% | +| ov_SC02_031 | 2221 | 1700 | 0 | 2226 | 2562 | 86.9% | +| ov_SC02_035 | 2197 | 1699 | 0 | 2200 | 2520 | 87.3% | +| ov_SC02_039 | 2182 | 1699 | 0 | 2182 | 2416 | 90.3% | +| ov_SC02_041 | 2217 | 1699 | 0 | 2220 | 2561 | 86.7% | +| ov_SC03_001 | 2316 | 1700 | 0 | 2333 | 2869 | 81.3% | +| ov_SC03_002 | 2243 | 1704 | 0 | 2258 | 2631 | 85.8% | +| ov_SC03_003 | 2192 | 1699 | 0 | 2193 | 2423 | 90.5% | +| ov_SC03_006 | 2255 | 1705 | 0 | 2264 | 2767 | 81.8% | +| ov_SC03_007 | 2236 | 1699 | 0 | 2240 | 2623 | 85.4% | +| ov_SC03_010 | 2198 | 1699 | 0 | 2198 | 2470 | 89.0% | +| ov_SC03_011 | 2206 | 1699 | 0 | 2212 | 2527 | 87.5% | +| ov_SC03_012 | 2184 | 1699 | 0 | 2185 | 2406 | 90.8% | +| ov_SC03_013 | 2203 | 1699 | 0 | 2203 | 2492 | 88.4% | +| ov_SC03_014 | 2261 | 1724 | 0 | 2261 | 2685 | 84.2% | +| ov_SC03_015 | 2262 | 1724 | 0 | 2262 | 2685 | 84.2% | +| ov_SC03_023 | 2190 | 1699 | 0 | 2191 | 2435 | 90.0% | +| ov_SC03_024 | 2248 | 1704 | 0 | 2255 | 2641 | 85.4% | +| ov_SC03_028 | 2230 | 1699 | 0 | 2234 | 2664 | 83.9% | +| ov_SC03_029 | 2232 | 1701 | 0 | 2242 | 2644 | 84.8% | +| ov_SC03_030 | 2204 | 1704 | 0 | 2206 | 2495 | 88.4% | +| ov_SC03_031 | 2202 | 1699 | 0 | 2205 | 2514 | 87.7% | +| ov_SC03_089 | 2216 | 1699 | 0 | 2223 | 2581 | 86.1% | +| ov_SC03_090 | 2218 | 1699 | 0 | 2226 | 2625 | 84.8% | +| ov_SC03_091 | 2221 | 1699 | 0 | 2229 | 2640 | 84.4% | +| ov_SC03_092 | 2232 | 1699 | 0 | 2244 | 2587 | 86.7% | +| ov_SC03_093 | 2208 | 1699 | 0 | 2212 | 2563 | 86.3% | +| ov_SC03_094 | 2203 | 1699 | 0 | 2209 | 2577 | 85.7% | +| ov_SC03_095 | 2193 | 1699 | 0 | 2196 | 2474 | 88.8% | +| ov_SC03_096 | 2193 | 1699 | 0 | 2196 | 2465 | 89.1% | +| ov_SC03_097 | 2222 | 1699 | 0 | 2229 | 2603 | 85.6% | +| ov_SC03_098 | 2201 | 1699 | 0 | 2204 | 2541 | 86.7% | +| ov_SC03_099 | 2194 | 1699 | 0 | 2197 | 2504 | 87.7% | +| ov_SC03_100 | 2204 | 1699 | 0 | 2208 | 2539 | 87.0% | +| ov_SC03_101 | 2204 | 1699 | 0 | 2208 | 2528 | 87.3% | +| ov_SC03_102 | 2196 | 1699 | 0 | 2199 | 2492 | 88.2% | +| ov_SC03_103 | 2199 | 1701 | 0 | 2202 | 2510 | 87.7% | +| ov_SC03_104 | 2224 | 1699 | 0 | 2231 | 2616 | 85.3% | +| ov_SC03_105 | 2217 | 1699 | 0 | 2224 | 2597 | 85.6% | +| ov_SC03_108 | 2186 | 1699 | 0 | 2186 | 2443 | 89.5% | +| ov_SC03_109 | 2187 | 1699 | 0 | 2189 | 2424 | 90.3% | +| ov_SC03_110 | 2192 | 1699 | 0 | 2192 | 2468 | 88.8% | +| ov_SC03_111 | 2204 | 1699 | 0 | 2207 | 2510 | 87.9% | +| ov_SC03_112 | 2197 | 1701 | 0 | 2199 | 2526 | 87.1% | +| ov_SC03_113 | 2190 | 1701 | 0 | 2193 | 2468 | 88.9% | +| ov_SC03_114 | 2180 | 1699 | 0 | 2182 | 2415 | 90.4% | +| ov_SC03_115 | 2197 | 1699 | 0 | 2199 | 2472 | 89.0% | +| ov_SC03_116 | 2187 | 1699 | 0 | 2190 | 2438 | 89.8% | +| ov_SC03_117 | 2215 | 1699 | 0 | 2221 | 2557 | 86.9% | +| ov_SC03_118 | 2262 | 1723 | 0 | 2263 | 2685 | 84.3% | +| ov_SC03_119 | 2260 | 1723 | 0 | 2261 | 2685 | 84.2% | +| ov_SC03_121 | 2194 | 1699 | 0 | 2197 | 2459 | 89.3% | +| ov_SC03_124 | 2273 | 1695 | 0 | 2293 | 2741 | 83.7% | +| ov_SC03_125 | 2230 | 1699 | 0 | 2242 | 2588 | 86.6% | +| ov_SC03_126 | 2193 | 1701 | 0 | 2193 | 2423 | 90.5% | +| ov_SC04_000 | 2209 | 1703 | 0 | 2218 | 2546 | 87.1% | +| ov_SC04_002 | 2225 | 1699 | 0 | 2229 | 2636 | 84.6% | +| ov_SC04_003 | 2203 | 1699 | 0 | 2207 | 2502 | 88.2% | +| ov_SC04_004 | 2212 | 1699 | 0 | 2214 | 2558 | 86.6% | +| ov_SC04_005 | 2220 | 1699 | 0 | 2226 | 2612 | 85.2% | +| ov_SC04_006 | 2193 | 1699 | 0 | 2195 | 2454 | 89.4% | +| ov_SC04_007 | 2213 | 1699 | 0 | 2217 | 2569 | 86.3% | +| ov_SC04_008 | 2183 | 1699 | 0 | 2183 | 2415 | 90.4% | +| ov_SC04_009 | 2199 | 1699 | 0 | 2202 | 2441 | 90.2% | +| ov_SC04_010 | 2190 | 1699 | 0 | 2191 | 2419 | 90.6% | +| ov_SC04_011 | 2246 | 1699 | 0 | 2252 | 2803 | 80.3% | +| ov_SC04_012 | 2186 | 1699 | 0 | 2187 | 2420 | 90.4% | +| ov_SC04_015 | 2249 | 1700 | 0 | 2260 | 2611 | 86.6% | +| ov_SC04_016 | 2189 | 1699 | 0 | 2191 | 2440 | 89.8% | +| ov_SC04_018 | 2300 | 1734 | 0 | 2300 | 2857 | 80.5% | +| ov_SC04_019 | 2305 | 1734 | 0 | 2305 | 2857 | 80.7% | +| ov_SC04_020 | 2217 | 1699 | 0 | 2229 | 2567 | 86.8% | +| ov_SC04_021 | 2194 | 1701 | 0 | 2194 | 2423 | 90.5% | +| ov_SC05_000 | 2190 | 1703 | 0 | 2193 | 2422 | 90.5% | +| ov_SC05_001 | 2213 | 1699 | 0 | 2218 | 2574 | 86.2% | +| ov_SC05_002 | 2195 | 1699 | 0 | 2198 | 2442 | 90.0% | +| ov_SC05_003 | 2192 | 1699 | 0 | 2193 | 2481 | 88.4% | +| ov_SC05_004 | 2187 | 1699 | 0 | 2189 | 2464 | 88.8% | +| ov_SC05_005 | 2194 | 1699 | 0 | 2195 | 2491 | 88.1% | +| ov_SC05_006 | 2186 | 1699 | 0 | 2186 | 2430 | 90.0% | +| ov_SC05_007 | 2196 | 1699 | 0 | 2201 | 2482 | 88.7% | +| ov_SC05_008 | 2213 | 1699 | 0 | 2215 | 2543 | 87.1% | +| ov_SC05_009 | 2191 | 1699 | 0 | 2195 | 2438 | 90.0% | +| ov_SC05_010 | 2217 | 1699 | 0 | 2221 | 2588 | 85.8% | +| ov_SC05_011 | 2189 | 1699 | 0 | 2190 | 2409 | 90.9% | +| ov_SC05_017 | 2296 | 1696 | 0 | 2307 | 2842 | 81.2% | +| ov_SC05_018 | 2243 | 1699 | 0 | 2256 | 2673 | 84.4% | +| ov_SC05_019 | 2194 | 1701 | 0 | 2194 | 2423 | 90.5% | +| ov_SC06_000 | 2254 | 1708 | 0 | 2257 | 2691 | 83.9% | +| ov_SC06_006 | 2209 | 1699 | 0 | 2210 | 2511 | 88.0% | +| ov_SC06_008 | 2219 | 1701 | 0 | 2225 | 2542 | 87.5% | +| ov_SC06_010 | 2203 | 1699 | 0 | 2208 | 2517 | 87.7% | +| ov_SC06_011 | 2197 | 1699 | 0 | 2201 | 2468 | 89.2% | +| ov_SC06_013 | 2191 | 1699 | 0 | 2192 | 2425 | 90.4% | +| ov_SC06_014 | 2197 | 1699 | 0 | 2199 | 2453 | 89.6% | +| ov_SC06_015 | 2194 | 1699 | 0 | 2194 | 2421 | 90.6% | +| ov_SC06_016 | 2211 | 1699 | 0 | 2213 | 2549 | 86.8% | +| ov_SC06_018 | 2208 | 1702 | 0 | 2215 | 2665 | 83.1% | +| ov_SC06_020 | 2201 | 1701 | 0 | 2202 | 2518 | 87.5% | +| ov_SC06_022 | 2215 | 1699 | 0 | 2223 | 2642 | 84.1% | +| ov_SC06_024 | 2220 | 1699 | 0 | 2226 | 2667 | 83.5% | +| ov_SC06_025 | 2212 | 1699 | 0 | 2217 | 2572 | 86.2% | +| ov_SC06_027 | 2180 | 1699 | 0 | 2181 | 2408 | 90.6% | +| ov_SC06_029 | 2238 | 1699 | 0 | 2250 | 2662 | 84.5% | +| ov_SC06_030 | 2193 | 1699 | 0 | 2193 | 2456 | 89.3% | +| ov_SC06_032 | 2205 | 1700 | 0 | 2212 | 2658 | 83.2% | +| ov_SC06_033 | 2208 | 1700 | 0 | 2215 | 2631 | 84.2% | +| ov_SC07_000 | 2207 | 1703 | 0 | 2209 | 2521 | 87.6% | +| ov_SC07_001 | 2193 | 1699 | 0 | 2195 | 2454 | 89.4% | +| ov_SC07_002 | 2220 | 1699 | 0 | 2224 | 2579 | 86.2% | +| ov_SC07_006 | 1966 | 1547 | 0 | 2046 | 2456 | 83.3% | +| ov_SC07_007 | 1982 | 1548 | 0 | 2066 | 2614 | 79.0% | +| ov_SC07_008 | 2177 | 1699 | 0 | 2177 | 2386 | 91.2% | +| ov_SC07_009 | 2187 | 1699 | 0 | 2189 | 2430 | 90.1% | +| ov_SC07_010 | 1995 | 1548 | 0 | 2078 | 2526 | 82.3% | +| ov_SC07_011 | 1982 | 1547 | 0 | 2062 | 2450 | 84.2% | diff --git a/phase-ends/CURRENT_PHASE.md b/phase-ends/CURRENT_PHASE.md index cb3622b5f..45c215668 100644 --- a/phase-ends/CURRENT_PHASE.md +++ b/phase-ends/CURRENT_PHASE.md @@ -358,3 +358,19 @@ conditional) · main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) · behemoths B7 312/312. Stubs 138→137, defs 1, 0 NON_MATCHING (G4). Resolved draft `.run/drafts_faf8/func_8013FAF8.c`. **NEXT:** giant #2 `func_80131340` (424, _jr_8012ACE0.c — in-TU-verified twice, earlier "gate reject" was a §55b propagate-damage artifact; re-gate on the clean tree). Propagation of all banked giants = batched (§55b). + +- **✅ 2026-07-18 — CRACK-WAVE (Ultracode, 7 fresh-core agents, ~2M tokens): 3 MATCH / 4 near; 1 family banked ×138.** + Fan-out over the top unbanked substantial families (m2c + §31 map + gcc-2.7.2 source + match_one). + **MATCH:** `func_8013CB84` (249, non-jr) → **banked ×138** (5-lever crack: §32 struct-base-hoist + §18 + address-caching + packed-struct block-move + 1-arg-callee + Rec12 stride array; §8d reconcile D_801DAA78 + Rec9→u8 cast-at-use). `func_8015B950` (271, jr) + `func_8013B83C` (272, jr-O0) — MATCH but DEFERRED on + real walls (8015b950 = def-side register-threading: canonical (void) vs def-reads-$a0, thin-wrapper caller + func_8015BEE4 forwards $a0 implicitly, pin perturbs codegen; 8013b83c = Arm-A -O0 sweep-block + -O0 jr-isolation + gap). Both preserved+characterized (.run/giants/wave_func_*.c, R20). **Near (permuter/Fable5 fuel, rich probes):** + func_8012956C (15), func_8013D53C (27, CSE address-merge — literal-probe gives structural match, family-wide), + func_80175DA8 (30), func_80135EB0 (36, jr). **Permuter:** func_8014D820 33→27 (regalloc-order wall → Fable5 + seed, preserved). **CRACK-WAVE SWEEP LESSON (new memory + §-note):** a freshly-cracked exemplar is draft-ov077 + in the stale map → family_sweep finds 0; --reconcile-raw mishandles per-overlay externs (0/137). FIX: bank ×1 → + `make sig-overlays` + `family_hseq.py` regen (→matched-ov077) → standard `family_sweep --hseq --only` (137/137). + **BATCH R22: check-all 140/140 byte-identical; tools-health green; dedup 1846/0.** Fleet **73.4→73.7% instr · + 56.9→57.5% distinct · 86.73% fn-count**. Commit `commit:0699`.