From 34f9ee341d26e5bb40fc9fed52d0f8bf8a24fd05 Mon Sep 17 00:00:00 2001 From: prosolis <5590409+prosolis@users.noreply.github.com> Date: Sun, 23 Aug 2026 13:27:17 -0700 Subject: [PATCH] A real 256x256 CRTC mode, derived not recalled; palette ceiling was 2 dB low Session 3 left the harness on the IPL's 768x512 text timing because no CRTC values had been derived and guessing them was the failure mode to avoid. This derives them from MAME 0.277's divisor ladder instead, and the derivation is self-checking: the 256-wide mode runs at div 6 against the 768 mode's div 2, so htotal is exactly 1104/3 = 368 dots and every horizontal register divides by three with no remainder. Only the blanking split rounds. Verified by snapshot: native 256x512, active area pixel-exact, x=512 wrap gone. Two things fell out that change numbers elsewhere: - The palette's shared LSB I must be chosen per entry, not hardcoded to 1. Doing so lifts the display ceiling from 38.85 to 40.81 dB and is the only way to reach true black at all, since pal6bit(1) = 4. 102 of 256 entries want I = 0, so this is not a corner case. Supersedes FINDINGS 22.4; scsi has ~2 dB more headroom than that section claimed. The encoder does not do this yet. - Letterboxing costs a palette entry: GVRAM cleared to zero shows entry 0, and a free mediancut palette puts a real image colour there. 255 colours plus a reserved black, via prep_frame.py --reserve-black. MAME's graphics double-scan is phase-shifted one raster line (it halves the absolute scanline and vbegin is odd), which produced a false failure before it was understood; the regression test now asserts the shifted pairing explicitly. Still Lua-side. No 68000 instruction has drawn a pixel; the 38% blit estimate remains unvalidated. What this buys is a defined geometry for the decoder to write into: 256 words per row, 1024-byte stride, rows 32..223. Claude-Session: https://claude.ai/code/session_01194oWYW8DQXK1SZ2DnChW6 --- docs/FINDINGS.md | 109 ++++++++++++++++++++++++++++++ docs/STATUS.md | 73 ++++++++++++++------ docs/images/x68k_256x256_mode.png | Bin 0 -> 162842 bytes tools/bench/crtc_mode.lua | 60 ++++++++++++++++ tools/bench/prep_frame.py | 21 ++++-- tools/bench/show_frame256.lua | 72 ++++++++++++++++++++ tools/bench/verify_frame256.py | 59 ++++++++++++++++ 7 files changed, 370 insertions(+), 24 deletions(-) create mode 100644 docs/images/x68k_256x256_mode.png create mode 100644 tools/bench/crtc_mode.lua create mode 100644 tools/bench/show_frame256.lua create mode 100644 tools/bench/verify_frame256.py diff --git a/docs/FINDINGS.md b/docs/FINDINGS.md index 071fd75..06b341e 100644 --- a/docs/FINDINGS.md +++ b/docs/FINDINGS.md @@ -659,6 +659,11 @@ frame is pixel-identical, not merely close. GVRAM line stride is confirmed as 512 words = 1024 bytes, matching `HARDWARE.md`. ### 22.4 A new quality ceiling: the 15-bit palette costs 38.88 dB +> **Superseded by 23.3.** The 38.88 dB figure assumed the shared LSB `I` is +> always 1. Choosing `I` per palette entry by minimum error lifts the ceiling to +> **40.81 dB** on the same frame. The conclusion below ("`scsi` is close to +> display-transparent") is therefore weaker than stated — there is ~2 dB more +> headroom than this section claims. Section 3 called the 256-colour palettised frame "the real quality ceiling". That was measured in 24-bit RGB. The hardware palette only stores 5 bits per channel plus a shared LSB, so there is a **second** quantisation below it: @@ -683,3 +688,107 @@ text timing, so the layer repeats at exactly x=512. This is correct hardware behaviour, not a bug. The player sets its own CRTC mode and the wrap disappears. No CRTC timing table has been written yet — the harness deliberately keeps the IPL's timing so that no invented CRTC values are in play. + + +## 23. A real CRTC mode: 256x192 inside 256x256 (session 4) + +Session 3's harness borrowed the IPL's 768x512 text timing and invented no CRTC +values, which is why the frame repeated at x=512 (22.5). This session derived a +real 256x256 mode table from MAME 0.277 source and verified it by snapshot. +Table: `tools/bench/crtc_mode.lua`. Regression test: `tools/bench/verify_frame256.py`. + +![256x256 mode](images/x68k_256x256_mode.png) + +*Left: palettised source. Right: the emulated X68000's native 256x512 raster — +256 dots wide, 512 scanlines carrying 256 double-scanned graphics rows, with the +192-row picture letterboxed in true black.* + +### 23.1 The table, and why it needed no guessing +`refresh_mode()` in `x68k_crtc.cpp` selects the dot clock as +`(reg20 bit4 ? 69.55199MHz : 38.86363MHz) / div`, with `div` from a ladder keyed +on `reg20 & 0x1f`. Three entries matter: + +| `reg20 & 0x1f` | div | dot clock | mode | +|---|---|---|---| +| `0x16` | 2 | 34.776 MHz | IPL's 768 wide, 31.5kHz | +| `0x11` | 3 | 23.184 MHz | 512 wide, 31.5kHz | +| `0x10` | 6 | 11.592 MHz | **256 wide, 31.5kHz, graphics double-scanned** | + +The IPL's `R00 = 137` gives `m_htotal = (137+1)*8 = 1104` dots, and +`34.776e6 / 1104 = 31500.0 Hz` **exactly**. Holding the same line rate at div 6 +needs `11.592e6 / 31500 = 368` dots `= 46` chars, so `R00 = 45`. + +`368 = 1104/3` exactly, so every horizontal register is the 768-mode value +divided by three, and the active window divides without remainder: +`(124-28)/3 = 32` chars `= 256` dots. **No horizontal value was recalled or +estimated.** Only the blanking split rounds: the 768 mode is sync/back/front = +14/14/14 chars, `/3 = 4.67` each, and the closest integer triple summing to +`46-32 = 14` is 5/5/4. + +| reg | value | meaning | +|---|---|---| +| R00 | 45 | H total, 46 chars = 368 dots -> 31500.0 Hz | +| R01 | 5 | H sync end (3.45 us) | +| R02 | 10 | H display begin -> `hbegin = 81` | +| R03 | 42 | H display end -> `hend = 336`; inclusive width `336-81+1 = 256` | +| R04 | 567 | V total, 568 scanlines -> 55.46 Hz | +| R05 | 5 | V sync end | +| R06 | 40 | V display begin -> `vbegin = 41` | +| R07 | 552 | V display end -> 512 scanlines = 256 double-scanned rows | +| R08 | 27 | H sync adjust (MAME stores it and never reads it) | +| R20 | `0x0110` | display (not buffer), 256-colour, 31.5kHz, 256x256 | + +**The vertical registers are NOT halved**, which is the one thing that looks +wrong and is not. The CRTC still generates a 568-line raster; "256 lines" is a +graphics-layer double-scan applied in `draw_gfx()` (`x68k_v.cpp:401`), not a +change to the raster. Halving R04 would ask the monitor for 110 Hz. MAME emits +a `visarea larger then reg[20]` logerror for this; it is cosmetic. + +Total blanking time is identical to the 768 mode (112 dots at 11.592 MHz = +336 dots at 34.776 MHz = 9.66 us), which is the property a real monitor cares +about — so this table should be safe on hardware, though that is untested. + +### 23.2 MAME's double-scan is phase-shifted by one raster line +`get_gfx_pixel()` indexes `m_gfxbitmap.pix(scanline / divisor, pixel)` using the +**absolute** scanline, and `vbegin = 41` is odd. So in the native 256x512 +snapshot the identical row pairs are `(1,2), (3,4), ...` and row 0 is a lone +half-line. Even rows are graphics rows 0..255. This cost a false failure before +it was understood; the regression test now asserts the shifted pairing +explicitly so a change in MAME's behaviour is visible rather than confusing. + +### 23.3 The shared LSB `I` must be chosen per palette entry — worth 1.96 dB +Session 3's `pack()` hardcoded `I = 1`. That is not free: `I` is shared by all +three channels and each renders as `pal6bit((field << 1) | I)`, so with `I = 1` +the darkest reachable value is `pal6bit(1) = 4`, and **true black does not +exist**. Choosing `I` per entry to minimise summed squared error over R,G,B: + +| rule | ceiling vs 24-bit palettised (00020 f0001) | entries with I=0 | +|---|---|---| +| `I = 1` fixed (session 3) | 38.85 dB | 0 | +| `I` per entry, min squared error | **40.81 dB** | 102 / 256 | + +Nearly **2 dB for free**, and 102 of 256 entries want `I = 0` — this is not a +corner case. It supersedes the ceiling in 22.4 and means `scsi` has about 2 dB +more headroom before it hits the display than that section claimed. + +The encoder does not yet do this. `tools/encoder/` still emits 24-bit palettes +and the packing happens Lua-side; whatever eventually writes X68000 palette +words must use the per-entry rule. + +### 23.4 Letterboxing requires a reserved black palette entry +GVRAM cleared to zero displays **palette entry 0**, and a free mediancut palette +puts a real image colour there — on 00020 f0001 it was `(206,192,176)`, used by +210 image pixels, so it cannot simply be repurposed. A 256x192 picture in a +256x256 mode has 64 blank rows, so the palette must be built with **255 colours +plus a reserved black at index 0** (`prep_frame.py --reserve-black`). Combined +with 23.3, entry 0 also needs `I = 0` or the bars sit at RGB (4,4,4). + +Cost: one of 256 entries. Measured quality effect: none visible — the ceiling +figure in 23.3 is already measured on the 255-colour palette. + +### 23.5 What is still not proven +GVRAM was again filled from Lua. **No 68000 instruction has drawn a pixel yet**, +and the 38% full-frame blit estimate underpinning the CPU budget remains +unvalidated. What this section adds is that the *target mode* is now real, so +68000 code has a defined geometry to write into: 256 words per visible row, a +1024-byte line stride, and rows 32..223 of a 256-row page. diff --git a/docs/STATUS.md b/docs/STATUS.md index c79837f..7dc6716 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -1,4 +1,4 @@ -# Status & next-session handoff — end of session 3 (2026-08-23) +# Status & next-session handoff — session 4 in progress (2026-08-23) ## Decisions locked @@ -72,6 +72,27 @@ rate-distortion curve, not two codecs. the working-setup section below. They cost ~1.5 h of wall clock and a wedged CPU core, and one of them was hit again this session. +## What session 4 settled (in progress) + +1. **A real 256x256 CRTC mode exists and is verified.** `crtc_mode.lua`, derived + from `x68k_crtc.cpp`'s divisor ladder rather than recalled — the derivation is + self-checking (368 = 1104/3 exactly, so the horizontal registers divide by + three with no remainder). Snapshot is native 256x512, active area pixel-exact, + letterbox true black. FINDINGS 23. The x=512 wrap of FINDINGS 22.5 is gone. +2. **The palette ceiling was wrong by 2 dB, in our favour.** The shared LSB `I` + must be chosen **per palette entry**, not hardcoded to 1. Doing so lifts the + display ceiling from 38.85 to **40.81 dB** and is the only way to get true + black at all (`pal6bit(1) = 4`). 102 of 256 entries want `I = 0`. This + supersedes FINDINGS 22.4 and gives `scsi` ~2 dB more headroom than believed. + **The encoder does not do this yet** — see the encoder-gaps list. +3. **Letterboxing costs one palette entry.** 255 colours + a reserved black at + index 0, with `I = 0` on it. `prep_frame.py --reserve-black`. FINDINGS 23.4. +4. **MAME's graphics double-scan is phase-shifted one raster line** — pairs are + (1,2),(3,4),..., not (0,1), because `get_gfx_pixel` halves the *absolute* + scanline and `vbegin = 41` is odd. Cost a false failure. FINDINGS 23.2. + +--- + ## What session 2 settled 1. **The critical-path question is answered.** "Does VQ soften Bluth's linework @@ -113,6 +134,10 @@ multi-byte fields are **big-endian** so the 68000 reads them with a plain `move` builds a lam-ladder per frame; it needs hooking up and validating. - **Payload is deliberately NOT entropy-coded** — deflate decode does not fit in the 68000's frame budget (FINDINGS 17.2). Do not "optimise" this later. +- **Palette packing is not implemented in the encoder.** It still emits 24-bit + palettes; the X68000 word packing happens Lua-side. Whatever writes real + palette words must pick `I` per entry by minimum squared error (FINDINGS 23.3, + worth 1.96 dB) and reserve index 0 as black with `I = 0` (FINDINGS 23.4). - Codebooks are per-scene and rebuilt from scratch; no inter-scene reuse. - `_paint` is a Python per-block loop — fine for prototyping, slow for a full disc encode. Vectorise before the 224-stream run. @@ -177,7 +202,7 @@ functional models, not timing-accurate; a KB/s figure from MAME measures the emulator's scheduler. `docs/BENCHMARK.md` covers the three-tier approach (MAME validates the path, derivation bounds it, real hardware settles it). -## Display path — VERIFIED (session 3). CPU path — still unproven. +## Display path — VERIFIED (session 3), in a real mode (session 4). CPU path — still unproven. The first real frame is on screen: `docs/images/x68k_first_frame_compare.png`. @@ -228,19 +253,19 @@ SDL_VIDEODRIVER=dummy mame x68000 -bios ipl10 -video soft -window \ **Vectorise `_paint` before this run** — it is a Python per-block loop. 2. **68000 decoder skeleton.** Parse `DLX1`, expand codebooks to word-per-pixel, blit SKIP/V1/V4/RAW. Measure real cycles with the existing MAME Lua harness. - **Now unblocked** — the display path is verified (FINDINGS 22) and - `tools/bench/show_frame.lua` gives a known-good reference image to diff the - 68000's output against. Validates the 38% full-frame blit estimate that the - whole CPU budget rests on. Still needs a real CRTC mode table for 256x256; - the harness deliberately borrows the IPL's timing and invents nothing. -2a. **CRTC mode table for 256x192-in-256x256.** Prerequisite for (2) and the - smallest well-defined unit of work available right now. Needs real R00-R08 - timing values. **Do not write these from memory** — session 3 lost time to - exactly that failure mode on the video registers. Derive them from the CRTC - dividers in `x68k_crtc.cpp` (`m_reg[20] & 0x1f` selects the dot-clock - divisor; the IPL's `0x16` gives /2 off the 69MHz clock), or lift a known-good - set from a real X68000 title and verify by snapshot. The harness makes this - cheap to iterate: change values, snapshot, look. + **Fully unblocked** — the display path is verified (FINDINGS 22) AND the + target CRTC mode is now real (FINDINGS 23), so 68000 code has a defined + geometry to write into: 256 words per row, 1024-byte line stride, picture in + rows 32..223 of a 256-row page. `tools/bench/show_frame256.lua` gives a + known-good reference image to diff the 68000's output against. This is what + validates the 38% full-frame blit estimate the whole CPU budget rests on. + **This is now the top priority** — it is the only remaining unknown that can + still invalidate the design. +2a. ~~CRTC mode table for 256x192-in-256x256.~~ **DONE, session 4.** Derived from + the CRTC divisor ladder (not recalled), verified by snapshot, pixel-exact. + `tools/bench/crtc_mode.lua`; write-up in FINDINGS 23; regression test + `tools/bench/verify_frame256.py`. Untested on real hardware, but the blanking + timing is identical to the IPL's 768 mode, which is what a monitor cares about. 3. **Wire rate control into `encode.py`.** No longer a blocker (FINDINGS 21), but it is what gives a deterministic ceiling over content not yet measured, which @@ -268,14 +293,24 @@ SDL_VIDEODRIVER=dummy mame x68000 -bios ipl10 -video soft -window \ ## Not yet started - **Any 68000 player code.** `src/player/` is still empty. The display path is proven, but proven *from Lua* — no 68000 instruction has yet drawn a pixel. -- **A real CRTC mode table.** The harness deliberately borrows the IPL's 768x512 - text timing and invents no CRTC values, which is why the frame repeats at - x=512 (FINDINGS 22.5). A 256x256 mode needs real R00-R08 values, and those - must be derived or measured, NOT recalled from memory — see the note below. - ADPCM audio extraction/encoding - Disk image packaging - Game logic (scene branching, input windows, death clips) +## Reproducing the 256x256 mode result (session 4) + +``` +python3 tools/encoder/extract.py 00020 tmp/fr_00020 12 crop +python3 tools/bench/prep_frame.py tmp/fr_00020 tmp/frame256.bin 0 --reserve-black +mkdir -p tmp/snap256 && cd tmp && SDL_VIDEODRIVER=dummy timeout -k 5 90 mame x68000 \ + -bios ipl10 -video soft -window -sound none -nothrottle -plugins \ + -autoboot_script ../tools/bench/show_frame256.lua \ + -snapshot_directory ./snap256 -snapview native -seconds_to_run 6 +cd .. && python3 tools/bench/verify_frame256.py +``` +Exits non-zero on any drift. Expected: `256x512 native, double-scan exact, +active 256x192 pixel-exact, letterbox true black`, ceiling 40.81 dB. + ## Reproducing the display result ``` diff --git a/docs/images/x68k_256x256_mode.png b/docs/images/x68k_256x256_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..5e9bafa59a2585ccab0cc2d3050106c5139a670b GIT binary patch literal 162842 zcmeFYRaYHN*EQT5cMBdoxI=Jvci6bQYj8H~;O_1aoZ#*jTtaXSB)Ag@9^m7;pOf!L zyfsFj^ys7NS~b^{6{V&ki;hB!0ssKIyquH<0KgEwJpdBS+Z$Dj;06E$0P<4eT0Xg_ z&ybW2x#WFh5nurb>l%Qi5YEKTvc%U*TQ%a>^b~Aq^I&43`*26qNd8;oAZo*gFKM;s zIIr#Wyvn{Y=4-56_(u|Kc5ix9l3?4Z;Qzmm{@)h-|4zYd&+6sQ70kAmiap@-64%0(4+~Qt$^H?*My|tD z&GV3=)_A9Wke!mhI)AWV=G$9^(0eX=|`S! z1q2xwXRzfPs1l0|tNls?D(vI&fmN6}ci(9-LaC(pp2Xq8r=%XNbDSnjl?$FsSgY0c zd~iUfcomRJPZF(~5E(fZmsolh<8+@yv$GIEX%&9l?Qga_G?e3qnbi1IilWh5C90yg zqeZGN@NPm7W_x3u-5iK?Y+%VYYVvrzc-eG0=?UHJt30V^a|wJEhGXkv8rLs|5o7U( zQnm=tC{B^ckhh!?%ZAmMEWcjm?k0DbYk;Yoav8&}U4O<6x{sH{r(*HQNkjbK@p#@C z5zQ3Li$|OrZlW+uf1o879dnKvA+U2q>L2o7zQF5`G10l5bhyW$JrO9dLJ(VixXiz7 zb~4Pho;#g)#JdUf*72@+JwBOa;0CS+o%;efFFp&l&cV|2Fe%IrMT}B^P>7n-dg}ER z+Rw$vyPYQ_`&!_J#MuG0;LxD4-h%LIz8V0sW$w^T|vqPY3;F2|B1E<{CMMRL;V-lVS!u;v4ee1MrlNa*9N<_?l;lRV^%xpq2^G0(6?yhIZm)D)Xr|F?y_{7njO^63B z{N=&xWx0BpNr1uLuz&(l|ML!rcF0ZCOEQ<{f$<>JQtkAq>sE|NwA=qagP`9&B@4a$ z&ul`J7pG@p?*UgFCr}vc+oV9*Alp2_M@jkf)s=wfX1I;ufl<_@>gLB`_LD`yP10Xs zsCwD8%W_86zoSbwZ&Nd~UqJ*hRC>DiM1}K@saf!YXz#UK%DFFm_hM2=u(7Gkt-&$% zfpC)!Njd)0D-HKSr|kn3QbbHIa|iwp zgs{@7GZyG^m7{d3R9?15Px6@EK?^=2Ye$U(v^3liep~;xyrrsr(`ZKf zSQ~uTiCC43OjXY_hD}9f4}ywU+3+WSj3^C?$A^Pzwd`KW%r4z{>PdX741sepV_q#x zk?OAibZJ0Z;~n+NW(fTNtRNMt#{Ok>0lhTPTEB#^B3$WFU!qb(1=Jpy{OhsY?)*x) zvV4s%msUeVRlde&j$kQD9zMUd-s+rH&2oFAOp2fd)v2rf*#kKsOOfbG7zj&qGlYVe ztU)Q~k&gG~3MDFd#Jvjliqv`S{#41zo-fZp&nBXvkeGcK?C{@o-2i ztwPEG1qd1wgC@JkIuXNcl*bD7vbjDJsB9=glGjc(qLaL!wCE<5jY~LF+eO=6S(+Q# z-RQ0R+`M)22X*Uxx<$wiw%BQl9T}g&UBb`N&BHQeew)=#e5N53vQwE^j?sxFxg~#G z(?6VmYsrAdF&k`lYmsxF*7h!!&PU214Yb~qCud?oK*28C`U?TjL&g07cgarjxoCdB z0T%enP=3jf2*QjSZ`Ars!4O!i25V|^y@k){&bG_ zCkVv35n*z4JY0Dy`@=;07abZoQ-IXxa#+RH^Z6p`Ae}!@^iRWsJ zDgYOU&}iOfd#Wz*m`4%S9*Z;ziRJUhjK|A}~e=uKUfz5__tK^ktmvAarrxvhm}uL{o9 zqpPpCiWm%rafN`x+f1C>sOBmJZeoQ(nE>=3*eH{>rfd>s8F2M%K;&r}3fN60OV49- z`RbTvSwnIy+IP}0#2~5rs{-rA&u0*Y!)i6~4b8RXX=mNr#lh4VM$rg%7TPQE*554N3YZYC=7P{7d;t*NrW&{q1#0)DmWCe1~axN&(mjQhI>ji z_@;*I8i41uA5waj`m!ez!0y0;jWmX%&e9T`CRel9X2a10aG!yE~hhRI@p!gy12MByUkQC;BbLHdW`GfRiiW3gvudRB+^hV3QsE} ziH9ZYhZ?yn7zmE4%x*I)02tA1xdT*d?ejVW2p{(=h%%V{ANZ2qPAHx-XV2?o!uQ@s z7+T4LQIW4P*yThj8WyKr-Suy{<&_t~L9lMq)pnE6mS81N!}}iSB0vAL_wMYeNE7&8 zn-9b1^V;0W=TisSQYesdOIG(0kBnadAIA$rZz+(WsaM7gz9@xGd04V3a_a}x0jJ>* z$i4KbcKbhDV{Yr|1px60 zq)_r8$3VA4z9S{`luTk@U_0Uibo7e}9gV@UA*|_Oq8e9oGzo13(dDTgCCiff`3?r4 zkM+oK#6H8chlMn*@u{|>%PA3G55$K1Dol?AP&)PnrX2u@Q=tMbpjc*tQ(9W3> z4aDIvd}}Q0tkmBqi0Jz&zX>&*%3*$*M?Rgf$jHcwsupSqPl!P}O(tb|q};eh%sRh+ z2RiTf_Xj8r?*(0`k&>>DSCTavJT@9VFB)xA3~Qx(a(F8vt-(&E>5MFy1!SN0GO)|^IB z6a$$>3YJmgKqWdGs(Gok%>6B;73U)F zS^JrYAz4o1_MZ5{0trjZ3JdPijRXiD!!Xd)?D-B#+>zi4Qy3kMzFN5*VyWA3gr(PK@ z9g56;%he}{Cc77(kklb?Xg`lvH zC4OFv_?Tn9#cNSdH@#8h7GX%y$vC23A~B3<3Yu7YgP_;^uaz;gW1}WPB~FN2i?0bU zj|%z4qmSHUk4ldSr1d-?BfHV=PTaSjTH7K|By!U5;*3_29)`VyBOz<#2YXgPn)lFi zugKRcsrgD-R0{NS5)1PoK%#6Zlv2VypdyJ*EMHoLlS4qs;+ zlpcQcB(#{?O&+e0Tq0j5#hrMrO=5yXhXD#EMh_H--skX>v@4gFspcxSg(=ir;1Wpy zQAA5Hqln{_+G*qRS<{5L>A*&6{Qikbk;jHQggnXsD~DY=(!S#+g6c$Rl1b#*Q&(F{ z$-;-Y?d1);r}`X;q=xK#Y~bdtk``%N*Af6m>7V+m?JbB1Rg4sKb~$`#n`-aq8J|?x z%+slwP)veE>f%aCQDR-C09KLmX4KuI-)Y&sWR!2{&3gKTq+onw-T%njB#s~tAZ z;>J!cvO0QeK&d)3I#YNb+bxk?narKA(w4Nbc@Wx0#cF?S7vd2Nz8V%ywROLYudum{kQ#=Vq7%9 z9K8y!uV@_5cpqc^s`_k9zV*-bVYyFk>0!3A3?et{*Dvm0nmUsma;EU~l6zTz#~k?! zGIleu{2mCo0E8G$g-NpYQg=CuQ~5?CHixdchx`d)x9fwT^2xb=bv-V$yR}Tyb*I=^e|4@lbyGdmP{|xi)D8>YoaItlbSO8ReIWqOD`)-C2Mu?6;jFJPBal^y1V)O zE_(iG1p_KapxgsgtP4Y1kE-arJh7!k{tW9+ZJ+O+kACT{;a3johQM78FOE2_IIch^ zh45qN?tGJAG6j5&i4dT1R|q29Zb8I9`4s1zbxUc5lplYsJb~@w-vFL9 zite%DhCthFpN)IQWte`R--PL2Yo;M3EG+E1<^Qk=Rx2^zS>R*SfmY}wz{R`*Ol zRizQ5Y3yUIbJ$!S1>+9K^WGc6G0=J4W;ZiZrMFV4514tmkI!m#7eh}0TBanDHD}+6`*#<;~ zg@5Te&il2*AC!cGR0ZYZHgMeInmN{L4n7Sr7krY;Vy3EMMMlLtI9M{JDide13(V z?H3<^#t009YtT8u02*VHhP+9k;^kbbiG+i2@6Zc3Xj4?*-Vy?rWM|z?UkHNBzPH*f z`$dxp7G%Bvtu?_2XY+JfXFp~*l50<_!e%@(fzW$IfI|75l>FbzOAFVyW@o-9MFeuE z==&kjPU{=O=PN(vI0Unjc3q z`aj&fYvg#_bo#vt&kVN2x+_z`gcLYvoVDlL)1QE5&3B5tU)|>uoQN^U`0~pr6aW%~ zKA7Lk{9}|HdU$k!De5EWO7WG#tq+U|!tp&9opv_?ipozeov5osF@1|xuGbAGwX2(+DRNrz`1`2;Lah$`gdF$)>2YZ zk|9N@SuvdJQ=&jw%Cw>k<=1s*Ro+XBOik@)Z^e@H`CvC6onL@330X1qwL(>_>TJmv z$Zvca!kAiIyy<>Qgme&8))}X@@p`g6W$d-2cOVfu={~(z#8UU{Ez8vdqaQsaU}9qz zS>lT``3_@I5b8bSl`U7fKUlIIv{rQnkt;dXKx+v!c6$(h5ruW>0)t(lCc=O&8U z#V~^W!5AapPR_#iC_g2y9xZ^+>VXlq*i3;S3C`0%2A7wnjL^K7hG<3*z6fmG;hiaV!wBGY6MyM2;DP` z)4v_dRNTcw_!lH7xI}aL$?^~+x0OQ=Kl}9OsC6o4YSd^L&j6pUtI+Zk;2Y zl@T58P+;5qHEOz2{#hm>-*ZdF?1>4*=DPIMMC^apy*uhlWitDUQ4>6D>k0`2K zgIFj`)tt(KCfrF|k|oSw`%0PRw-@`o{hNYN10kD&0LA#Ja!V@5ys5Lh(|NT0&LYTh z^w)su2dI2mCY3>HhRJ&Q>*LAJ&p-0}t#MzkN;N)Bx74lH*8)+$!rl{3n$XG^=JpDEa`bxpgfe zx0IAUw%sIWT`9cUREIIiS8DzeJiZ&KXkD+ji+6wg!#ZQC(QgVlYgo@=wC(-d{myO# z*S0PXZxwsry9guSX(|dD8iIg1w$==*@jdQkUU!2&gxeWppxiPHdW_2sK=bBZ3NirW zzDkq8I~3m11>Pz8$>V*mf{$%gX2W?Aseeqv($hP#m5~iMm+ESGe(Ct?ftsR1vnr8T z?GXwUNWT8_5HkJ#kMRJ4g`$F|{|-A+>*fmy2<|H}^N~Q`RZ4M(CyUki?HmFoKeATd z!?)@4g&!oPk3Oz(;5xWf*tFzxX*7o5@(3oU7YdzahadJ}p?jdd44hD&V^j`|(`bJkYnhL#rrnGVz?`v`}d#xrDHjn&6N%GC_%ZbCrY1jLghf zaN0~XO#)!|6795mEvS-|{bl-?K0Wq3yV{u!)1rgu@wqeQXZ3RmODE6hL}!yyBSBe$ z$MZ2eSBp$F6Q+OcD%Dfon}jycNHWWEKFZb|x^Z`B>bH>fqj}WYbuwTbPo=c&?`%0? z{4*|!6MBSR<=M}m{wGW(S_5N1PN{Xm^_ye;*m5o`d0;z4-w4F_uic|%toQYr{34o7 zSHHw2l}L{4Hv8eMsHL5h-NMbhUOaF(qAPH<82}>j z-+GxR5kD$#c$gLO?QEn$#C(Y4J6~@i0nOeS&8pjpKOeD?)=Y2H{hbaq9RGx201bI?=bT+XvAhu&P%@59A% zZ^)%GHh1b`BLbd(ly`{m7?T3$g|tvpEfE7$XRBNB`oQVWUW=FXBvk!Id;qrwNeePI zoMe6HMbJ88sw0Tx%y!4`A@|$&+1o|Bgt;ybjCl7r?ciN*sC`Vl*|EvWMT>3dVY{I2 zu4j~H zXn!uMzBQ7&98)8voqjm6{X&}lR8Z<543n(x#>ZTbf^hK6-sF`BpOpSo+toppc0n(* zR^*(FbOi9l7vIB%(T?Fq(Cz;zr6fu=bka$Us7N`SlHbj^8mME0Th$M(pwm zjJ)l|)-vboaQ}(w7uEY7iNw8qE#+#Iy+GK5#PJnxmc*tb0ha+_O(moc(lUN7N&-54 zxsuF>PI)6~fQ=a9J1 zaoAT`M1lnaPcJJ7uL{YEbC~`_SKGhnFadi2i;gEM`z2+O4O{C2^}BH99S&WhZrS?Z zorChEvOD_-IJlRG%CJ#8Sg;1AC9?5dAzx6W9x09$)KvCsGCrrSTc@o_6TFxO~n7j;O-emH_f7H_D0QEg6@pKjiw2! zwf!)rY_-}Cx|hf{%7s-hP!GBF8H;KuwP$+SvC39`hv)fdBaez;=2eF`U0p-5vgllI zdOL;W4^&nSjn1gJDsd@=__>*uJ-5me9Wck}P0_#YsBeLX1&=@ZnWUv@!XG{!<0T0k z1jp?}Pf&nD+$$A;3J1!Ve*p+#FmPAuwV zRXnjak!`ubWCs??aN7wk-W3BhueZEg=L;RLfAN6>N0u<2`0Fku89)di>Rh_p=F z$MsH0-jVgX-c-yd*)6#(RZh@h(2DYRl&=q?ZC!0a9ppVQKEacf8I|Nb(p&;}W;$EX ztDu#@7S`6BLBi|5?go2+pVC~*Mc!JKZaKq0+GtYS!6UV&eNz<6B#sean=ZpLmXCv9 z_5A+)VheIJ-4w^tS$i$AuI2DY|1!)cf#i!g3hddou)A0sxuIz630Q@w?`a-Wm1oPD z@w^;g%rW!hN3{8!22V`ZuM^*8X&0`p+?GE?a9sADSPrtIYu3l+?jg0LTr^+LP0Gr? zQ5Q`f>81aS=DT}WHUbFe&2a)|!!Nz~Of1=7KTuV|k@Je}93Rb;QtmAZi2BjK-=`+{onOV(;Y4e{hD%#3KB9 zYXF3wx2BIL=e+l44~asWG8Dfp9gEBFo;A%^{&CHe2DR(kt9YrLBM=L+pIy1b?oJ6_FCtBe? zU$AYms#OtY8=&NYLkSwnV%k5+=?vePib(K{H%|1xkkVe9_H~ByN5%*y9HfcVT};!V z*(c0LvGhjl>T$1X>+8cC^KuA!TGvqld+X=NDuk6@F3M%kxQmpQUBmEzRm^1jHo5b8;8ew+)d|M%?aC=x=|uvjr+F3imopuBXgNU!5dLX*q&H~G*1K(D zdT-fl^RX`I21ZOGqH1ilah;cgotVmEggUB`i)LQ5@a|5nfC#qV($1&wdd?@%R1?

+W;rWuU8I3~XeeaW* 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%0AffX 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

qGa^rt;gdgbJ_Frjag68 zU6vLW>Mo|@ zR9WO@of#T!!}A~wtb!XlTsl}B*TI~>LQRi+oL83n>DaXqL_z9Y9M0}{kFi1g=Qk9a zv$05(U1fC%WaOURIY_-wHhUMt^6j8^>a?cw{qIq3Tme}3aMt7Ny;^~JZm*gPOPExX_F=CPh^BB{U@}fhcXVuG$Oz8Ix4wbXO5CT$gOXL6r zB;~-r+h7C}Coiz9->ZJ@j5HxZv`CoUFKhDNd`w5=?!)ZDFNi?$;zsClbVA>>3%;Xt ztWwH3zpcWv+_T)Y&D2wZgPVRzf?$+BLn&HpjEvG#q^rRjAG;lYhyTU)A&8?-pV5_b zSK!~!8S!v7!D(mha)q{+$#Z3cxdmN|yOD+X3EIznwh~Vbe&t2oMcrd@SJH}0h$pg} z$%&Uss`?prS(}lpIQKwBD0Fy|1i*6>cKX7DNKKitIGLlm1p;6)q~U5j8HKyd`i|SF{aTZ0;7bxV5qM6BCN4BY!qwN^Cdu%qE_PNXriZ9 zmVIiT&dK_xP6gU!m|l(BoYzDsHbb*EY)0%{K_F11d>%jQk0lFhX_0JdnDI+7{keQe zkxhA43yvyD*Hii}{g(-iGJh;=)tw12ssX}@%Q#*2@3;?{W}sugCw{-&7mZe4wB&HU zgQGebxnjz(d;V4nwcXnfNs%!zM@|`beV)t5_qe)Tz36h4YIEWJvf*@;X;o$VA=%=^ z)^^|Lw5kwT#!O%TbCkI2A#UsC<8A+WFm1}F$Rbq^J;ABJeoPs|C4USP3-esi6WwHq z4A&>a_ipi0J(Y93V8+?l=e_j^dpVSho3G;y&E8`tapIbBLLcw#a&z*b>!V@0nmy=p z%FR~rkKbe8jn&&XOqsrcF$aV^8AL$Rci(^r<7)-&7=;?oD%gKl)lBFKZB;tMNw zIOw=M0h0AL8cxkMnIp8&@_lS@z15&glQ}f?EYb*+XZ?qM?Q^LfUG9-*d(Oz1XI;ZF zV`{(nHktVnhYKq%b}2)YBrTl2{iLyQigA9-sae*U=dbZ3$yq@`*LHyI2B<|XFFeN3 z_YbW@Er$k}G{|S$BwBdo;*wm$KAX^vzi#)kibI*D8-{k%m_{3i;tD`FauFY^HpI>@ zV!_Di2$#}brfK#hqbDo=u~imVEa)@&xH|xoYFpYB7mNf%=uW*0wJx~`m*&I~*eTs* zcIY$>6@+Df^2sqfz?dvk=o7nz6U4`^z=~3&iS!3?$F1=(}H^Vs5~L% zY>EfEA4@oEs;ZeTt}QIp$kOz+-|v=FTeddD`nuj1t&ptb53E2y`(69iYOB{n1^#lN zKdB@pfTF;26RE=g&c+S-vMW?#4LW}OC+NOcfuz^H1zS6&-nd5rmyX@hw#9o4k0#c# zIb7x!>1myc0Fa5NFV6Qp_2mN$MBmWn0`-80%u@#CWSegKi1;i*M68-6f~C?<)^OaQYyahQvd!b zucw^F)7LPIVI;xBGH)taAP5zYu`@9w#HFnLAc`Mh(=q40nPicdR;3G-F8%@|S!X}> z5s}-DU|{yLO%sXlbUvGuaHc7gLFK{BK)5zF{;C2=x4_0rJ6SNmiighLh{~e7uO~82 zA*P3=8DTU+?ZdGwVXVe0?9FJ-GZhpDYoyvr^T)VXK#GL|H}@z#9v%2JEx>~}wQ?4= zvi)wDDr#|tCF$K^&RjFJB9p!9^NEss8;Kj?_}w0bArdaS4x`#uZ_oZd`Z3`@>f zay&J~<@_7$-`Ux*G0N|J%1E0F>%`}@)APDxWqj+KUVq&Qn+)rDs+B?PXI>=1-~Qu< zeeGb|np$`WI!fd&-M zaR;3Pm$FLaVsktn4wz_%s0?DqVB<&{OSadP^gP(E$_ZPtq`JnIA zXL2)I>B_NulSiJHqbRFLtP_{m{m}^%O#LMYLyZkV65rGkBV4~%RBGKw`(uhhqBV0J zHLhRn{f^^U4ycjA2sQgmlEW~%QZ}y3m$`r{B!kX+ zXvNdm*?tQ0r6#E-Ekeh&Yq88I^3CFkWzMG+E^EK|Zl|;LDvD8Hd<^_Mxf@>$rO3H% zWEJYVsj?f~IA^r!KtN#uq4lasFzvXOFnB7dR-WIlt;PR-Zk;;MKELDS2qcM@gy@;a z1fdc=`{0VTTznCRd(4g(W;FPDHkqB>V%O>SU|HgHmJ(ww*!JeT@b_`GpzrhYjaGWP z9UJ5if$-$=S8ADh-vjqFq8asql#zF#+js-bdJ})GEaqU*0d1hoL6G9)i&&&__jn*O z)g5V)6DDLGDjM($5W1?xXC(D!yRGv zt1B*?sU!B5P&&Cfv@WVSxw7h2l9Co!TF7-H6RL)2bn}f! z6|NoF9^A6uPk5K`WykI5v}4ATdi^Kafst>yO%TR=2}wS+-D{!(#05{Fms!!{+gHCA$DA0{8=hG#v+7>FZnng>#dX!+ zl}iq3q@)^Vq$-vw-Jr;VNyspjEG>Xo~C|CbJqR=l@ zJTX5eKE94lD^v&^#IxA;h5b$GBMx8tqimGTEsrPf7izs#Pw)eOD(vm@6=I0nAM5b0 z0}B{$0)BHF!?#ej%CBQ0hdL`-c(O!x)T9o?#d&58D=9W0_`Da>JVb$eKPJFF}S3SDg134iGeuDXC^D zl?a%}m49h8A^i9E<34*OCBWE3THwqj7jLOt?LnCV16LYL`Y}H7$@k!QsuH}IfOno& zv87i(t3KCFIuuu(eTu%e?$iERl4s(oTHs0GaQuMX+x(WM(Z7?WBb+Zh!Y8zYVfkd= zR>`VoH`dzkheFkWt~Q65db)%;qv&v)8I0YkptXOs-AzOtORY#Gk+$CjoGaFrR;|Jx zn(b`7v`_IXzIIG+3345~&S>6K)6=2`g-iPFj@M=EC+_~mrYnZM^-53>rhhQePW!xS zK)+C^86Tl0Dxp~UrJz4>s%Xsq+FuJ9L}iOIN%jM+EIsUmhEe| zOP`ove^kuJNM@?!?Wz+AIDk7=N;&0=V|Z3%ta(uegaK#A54um|q@3)L!t-drO~6sx zJq}a4;s7OIQAqixGoX7-SS)>*WO?!I+?CpuN8SFu zo%>pYt#N~huTI#XtZ9o&Qb-{010vX`Nx)arE65Q#IbZjCyPLeS2ewbsYCf0G=mX58e%twa* z+=qAUOkrQkj9SowYb1b>SqE$NA4Cb#AngQrqlt6(V^<^|23om;*payLETvnATDkl6 zZmae+Siz;h$*#*&Xxo7$jXxsbhhe}{btBOhAt52H*Q{L%g#RHK@g{bF{>d;X9#YNm zwb6kPV5nLPf(jbYLUK%6u}FC4%MeKXFFA&L|5sOFX?r!I;CcYS=$Z3*9qtrpW~f`?qJ+rur+v_obHiRrMO^Z~k-@z68x@XPZ;^Rp1MzEoz*4CONQqTNnKo z3tbO6sH7owI$nF=yt#05Tf?u>S^M+*YD1fktgg4@MebKV6znrVf|nrwxo^!;S1V+RSxh+Zzb%+|Zj!KU>@H?7WC#=<5DtfC}?Koyfh zdNfpr@g-ozYKA_-ybz{whG1Gr*tkE-*3NPddr1hVLE6)$#pF=0P$s;P%FlVOOT&Q0 z28<_wLGRIsn^Y($Sj!)5`4gWB9Zts8ehpC$C4ngCO#q~E(0)XGX2PQ^FJJei!Gq#g zgZiJvAq9a-DT^E~lN@yY5UT&Z%IT7Wofw!vXLQV!WSpaHiam|d>l5_zY@Z58q=%cM zIw+P)!#d`=PUt^jyZ0N(zU{Tb`ny*@Lo(ZXQ2i_Mbse6M=w4mfy!=P~efN6&)U0jA zYJpYj4tm4)(a!HBZi+G6Z`6i*Pll`oDLIu{4U8jBi{_6p>V7~halY$+Tx`89>c5wT zJgMa)yg}O&yaWxqxpjT?j^}z<_?)UvH-QKUQKCa!&%ENo`oX26wfPpdy`|gh@&5YY z>$0BvmHyWA`|A~no|UE2wIoG^5ec+{X&FJxo_qZL*^T8sht19Uk4fQZMKw8w1;5VF zsuy8&Mwso|NaX(_qcOjSh-GycN0rO8%*Jyhv(XOjEgQtEn?8NzhVkFW>6uN43|Z!7 z!-8~}vkznfH&t%k5>eOdSv#@3*WX^IHr=!qj3+P6an_>VM}2t|4x+F>8vw@}_$7np z&k_U;XpiK;C^Mv^ogR;A|B;apXec`NzcwrUex@Qjzs5Cuya}rzq3!myvrM?qt7L5hZ~|@{wPaC_u#V zG7l%TC*%Djra<_blp=l7f*#h^!`*hOlGNr(*Y!}E;FWRij6EA4m0icpbaVI1A%(KE zom!G1y^rd&d07ehU^phGjcwQJ#rVf|%;e|k55V6I;u|UA%D`kV zDhq@Wp#*)!F%&)RXaAnzv2rDEVJ46qpSb(YkgkE9PfVTb(ftc7|F?KupaOs4%!s6P zFlA|rOEo}CI3hETN&ky^lw_0GJR1F`%qCM9P|8L*T$W7y3IsC zJF`=4xo*JhS?m`lM6EUNQ~$%eAn(@G(?Jz<3*K)C1-a0s@{O_ezOslSPt*$0*fhPz zAAU@)g5FmlY5E;%UfcXF1>|-*?OjY;5DGG6NxbJu`3R=k)r$m29%Lpn;0gU}&8COr z#ol=#`L>xr``vkaOI&1su{1t_r&n4Q;hKbGZ@o&xS`-)J!9_v>)p5A{Dy-cuLYHy6 z%UP+I=*G=te^NRQBwuf z0R_nse}B{&;!N0(h|B)Z9t-tDUl8+b11*BXZQER8E%Ba1>< z46^dc=UF0b9li&2Ox#7QS*U%z()k=~V>DM+dXUN&WTTx@T-0-wU>!mQNvxf5+J=Mp zyJJE+qsY7s+Zrr+_*mqQsQ!%2D~aG!104Yn+rYQk=Q zU0<{b-Q$BbNTZS|mI{(V6sr!3V;5ltZ7k^>!uZP^_%{5t^H!Ws=mm^Y_nEsFVp}V9w6l>enjj6Efxla$!{uSA{bJMi-~iF@`3mKb?1qAF zfuwNBJlPoeP??7zNyP~b<1&-5D%|`q|EQh`+JWxb#Ex$waL3$t7S^E2qx3{l1Z7cY ziI#B|yYcMxSOWZ~_9$T!kKuXopdHya-k8qRqs8cSIui_=8q|`YCPoMKI7dxR2B4Kg zG>`X}iQyotYjarMQFH290^DOM_x!KNf}9j9PoOU*ncZbmK=PkXkA9JIDH5fOhZB<- zdi!17Z{@Hlmir_lx?6@kFnYi`2Pe?WVM%MUDyrm?w5@_STl$F*$zOE+yID4Ee)({` z4-?oNFj>#diENkSMkD#pdPRJO-f_>gJ)%O&PI76p-dCcU((+|Oz`D2F~YDmpP#8_C~lX7 zH-|-4*GgVq2$GnFM)QoFVuWK2v1$YA{6kn6hcypZo8QOzN_JM>26mFl=(C%O9cK02 zst)+ZbIM{D1}R{&cF!(+k6v2*Y~Q3BZg&-Tnbo?z_W0cB$smD|#vyK<@h>W>B0mxh zlaYan5l|^v$yji#=-9@d7w^`G!3`_p-&nV759>r`Oi7Q08%~CNmA1ibnQ`&5ZXgrh z=U~vv&ST5#0~SS%L-6Ku8-$VuD*XoOoHchf+DU#P>e&M!s2_4iga`z|062woW(kxc zZ_79)qcqy^p)ofMGr?1{Nm{MK#|QdeevZ5vvdKX2;Xds`dR zWAP@TvyOR3XW=rxg8UsYNiQ4r)0;ZH<28WTmq7<%p^SR0@z*gw0ZaFH|QLwYum)vKpi7GU@@g9tMQe{E_-1WCwhZWUTBOCTLHsa4=N*0udw(4{A; zgD32zzHU-$Y%tb5CnQ6{MO2%K^KxtR?ADSu^p{=0D0gg@7YxqXp1b7Bp%9jViIWS~ z(K8-u#U>IE2%tUUiVD-5Zk7<5wYHMTVYD%a)WKf#I|ttb909+_J(`s6?Dl-;CSwCDQ_ zCxlA(w!LS=YL&22>D2gZ{7=c>@QI7J-Y`zVkBqN6%=^Xf5awFjd0$X!cC=EzIF9#h zJnDHYv^Tz6nk0sSp-g51$G8LwkLZ-J&X|-jx*xbqbcvcd(TV4ev)9+3fy}7*0Ee7* zs1!(`p{ibpWva{js-cj0Q@Zfck?F&XcxxleYex|k9ECz%4r|-?U5y39PT)0bd#(-% zRP_BOVwtr7Nodc*&FAmQd0|O6&=2Kr^*1flA@;b|ASU6E0MO`X+9>E+bVfYKa}ly* z9+EhGXkTo|{mH694w^AYJy#ztGJoq$@bp%aV`+M>(X$%p^L9?w_nvM4-4S|CP6CUh zHk)u#R)TW(I!M4YD|z7-YpeK=wqF0HT@4;!TEpK z3c=8uiQr7P&qHu&3OWkQte}=O*!+i!b`S>=>~BSj=GlduatAqu^Fu89+wKZX!h9ln zF`QsvtPDNVf`cqKi^U)N>P|AQp0(V*N|}<;}Ly5VS8ZX6NWT2O3K2xmQ^7LfkIN?a$^<+wNSIDd?~s2;=r}@MC=J zbg&_prSN$Z%B-?lQI!+Q#{={Y62rCp(g)D~-a0bvl1z(Z)d(gTrWPsUw#PdajS5VL z`$KFWOz{5sKRacGQx9hLw8t`6L8*o*_0dUzD}celqUU^Fys;_kc>I@T(u@(D2}#lZ zhNcuK)!Pelzq+P3YT}LOem|c(#SbFZIidXv&zBYXK!J^Y7Uu9}!5bsgS=M%GzhlaNTkxq;?? zUD^VE=crPJHu^-hJ=FvUaAc{HIWSJHh6ljo%6nY*&9LCxF4*kpDh!r-ixUOwr}?wE zv=bVTIsrNs(&w*qsXP_I0l1L#9Lex0!9l?x?BwNF3Xxp3g+M~*^>tFhZ{4Q|3_I(nB!NTiqmIyxA)Pr~!cWOc+(1}{-i*XEIq+n!@RrW{Uv}s@wgeb23IYj+r897j^pd;pOE^+v1s}8P`wePmST#H9p9I zGD44~mx4 z_)u7~fLI~Cbg#zE4TblV{!Htr4Yke}`wNFF++*UPyoV^&Ri_rpPU)`uU9%^fG*XcQ zAi8*zPl*K&ye{yt%qo&m!mvdCIiPQ?$F($i-Jg-aV;K75#R=`7GFjXI10Fs;d|{K6 z2h?||@;!s-DwB%R#l1Fprr8y@AsQ1gId1H@a5VlGdG_4_1F{%}cdnx2+)a8R0om}Z z^MDKntUUqtUw3XMv92T{?$OKwzsW-vpi$c-cDKGDZJV;AYGO2{9j}&2AZ3 zP(_MR-YAtlsmkmOnO+}lE+(oUQcu^<0`>7B`?SqHjx(t)P#R#uQnQ7Gq_F?_ z3E10#^WWoc^Do+2aS@U1Z|FbO{&?*d^xSD`qFUn;k!rLosNVrc;7~e^lWzz?wTyiA z^=kHU7KP}(k=1*%std^ZF4%I<-Qze$&~p=IjfE$dm0W)?On`K!Ozqb3S1v6x*+N z2S<7e)xf34-xpnvKRgX*mxtVaux0hxunlD|c(>31hDz9@jwA;LkO;xiL;GMWw~=9h zC83GufK_Jl!cMQFilw%fOq9{fef3L=Fpibpz zV`XC3{_*gB>UZDro>ar?e7RsG?f=&QanG5?JFXrS%Ta38KBE0{(S5fxxuKzkWL{)1PNTAZ}*4o!<0~2MfOw$rsocfzv!5RSWDZ6{;Gyy zj{0KvsR(JJe|-u-Q!y99oiG8XV&Y*_MNjOySCO_19#$qTnkHM(3s8`fl`vjBqx)U_ zDkdLb3)XhoP?K)#wZynQoEp=6OMOjN+56JrK;V;c7{UvmIc9E6gzcd6q`z?)?%{>S z3;ckYM5Mr(N6?8+jQ!vm$3RFX{+X_%{7e#J(=N%uze3X{enKLt|8e&H!V#BA!w|K7l+zFnQ)5`FaP z4A1Zre7d8`YSa`B7+^7uk$S=z?RXE91RRTqa+B#2W5$Rt*^Bm=#I> zy@LL_ioNv|`}@Q2dc1py;UGdF^tcwVuQLig!f&HiBu1f9HcV&27qAQ8Q*uhsa36jn zOTpa^mjStZKQNh^enA9U`-G!9@<0ZDEfwtOVHpj91K_fA^}j_It&r5{t0yipDa+l>%xZ&mk25K9f*?vg+uLLxPHv@ zejJ~irfqd}bd6PPwzfxt*H=T%V;4({RW5!p*4ibnQhAde2C#00<{#T&jyUJG$CvTO z@_a-rN#Z+|>e{XdkVGQ;P-4IDxh)9VCSKz{G^0_tgmRrzc@fb_W@m_S(5@~mCCDK9Di!ESCmKuK z_#^m75$L+N5&&qwGKVq;e_apycWS-^Pd$sI80LBQ4+BU49Mog0esLL%qQ~)+YzZsL zUdawEC3+5CfiJ^S7cLP1@q1-#Hnnqi)@aheK)AG6w47XlbQ+J890lGuQ0v~+@UcBY zgl~~w*;l?FQa@zjQWcxELpl7N1zSF|lGX{D#04+b zQ25Ryu`dj{D>cH|`a2aZaH!gqp_n*I@pfDo_i4@J_s8tVElSrN*pIxs$^@OizEA0K z0{{Vlr06#lG1r^_I4xTr=bgDa-EbrciC)$v(S8qATQB$EYb-zdZ>gOrIAj27Ng|)_ zmt5Nq6#d7Ds$8$9r@N;kw&_)Nb4{r@=IrZsFqws8Dc6Yr9I0}$ho6%nPcd;XZ*gv0 zUQgGjspE5O4Pza22>mLntadnR7Bnn*QbvwaJ0y(t*AP~*1zw1`t>}%6x5zKAufm)} zKzx7uXenB-PX--c56viZ)5&mf9{7U;&b_)K7?{gE zxV$jHnU)}=gHC;@1G0oT7(KzBgV<(IU&etjh*1pE?0Hno75p;^dcCe`0#T4FM=@6# z1|Q+)B;1SjWfD;_q&gsP?D{$v33S-4%6f4ZI4ExVr9)gsmuaA-U}yqtgrFW941X#z z*8h-~sQ)1^AknPe`A-pAVwa8KJ={eq(RC)jL~0u8b>I$Ihj2(Jjbz}2h6ehl+KA7u zG$g4i8kfz$I+b)&%zw9*pPnKROQc3`;nd$0(A~D;cuohr^#xN!`-&)pq<+wqhDMd= zu9c)#m&8$})!1#cHF@1U_#LfI`?&~9{Q<9(IWIPS-X@n@9-7tH!1GMI*Twr`%voo3 zG!=J!LV05V>i$dRM!rm$#_muIZ_8%u&EZe=kLQDBVFbG}2LG1A_BXEg>n2X;%G7i6 zvT2y{`emN9t*$4IS1|P@j``Yt)r+fmW@i6SgapXALLn3mFkrRba5q~s`x<@5ocolh zMN0cEBAU_?x1i1IfG-SPxJv(Cn?MR~w}bLPXjVCMe&MH*v>IKJyd(C)TH)9mQS+Ta z3MK?;)jD_dmMCvH9W2 z`>NqfDo~dz3EdhjxuZ*>bRYxyN1b1o+_wG9G8>UxT)0h#c*xg^T8Vq5D!ut?e<+NQ zgd~f#C4Y~%nk4Tfw@;CTDduQw_6;6vlU%}-G2_Ifj9kI57~y4F8f)rhis|KKE`s@? z*$9?h6sI*Q}Xq2{44Tu;dsLjQG&4ZL3wF{n@04%jU3e zeWEI%3|3+4**d!J%=|nr)r>0uKKW9Hm_hVFz&BgoW(;$0XT{f7U zIcc}`R7$-oDKj52*0j7%P3QQa)1#~zUisK5_`H+*_V=Fgy${>(U<{l0d=4d%$lvef zIOx&*)@ix=RD+%nsB~&kNl5CGcV+1Ixe2YaZ`ot;h+b({J}d`k7@KrT+Q_GIkdQe0 zZxh@R!vt{e*tqdb>VJ2GxaIo*S!2k#-Z>PgE!E(Xb1e{)nB<^$=O?u6)nWT7~#|$Owu4rN`8>bv@V(fr(;>X|K7z6OX?W9ia{v6QtDHU)bi} zN)NkQ&(7pFM%tTGm@xZzl$J_bZWd-{9~&6RT&4W~L4RPXRkSaedJtfNS;76}za&J< z^eZ^gXH=U2P(61I54grX|2Jf?J&;nOvQA0#EU+uGAX(?P`EM!LiY!BKZA@OL+9N^_ zkF^u)4vl!|c({Y`I-b>?M^;M8zBqY;t0l!hI5?R=nwg0y`x8>>UB!FLX6Mxy z{?DWp`ltKJpQqU-Qyw*OA|ow!TOAI2a!tR|N(PR{)gPPG^;Y0SfC_KQ47z>t&o*1D z@3~ji_s1P;ok?d8zJFsF`-5cAIU=BPd`CAac)lp1A-7%fYQJaJrw}cbpRy)b#iOlA znaF4F8yQTVcf5lvUkHsp%0`z1(C=FOr72~?Q$w5%j{u&ppzPJXJ&M@l&I?eB2_0mLumm+Wtk$R4bD?e6ijle9CBg(2_nYrv8VAyygc|gG%>jvuj+o@dt>t5 zrDiQsMVz*qI@)^H&6%A6JWPrBTb)mKAD1tRrXZ$<%32%Nap3hJ?NH!jMV$c}(Uke9z#9(fi}_t6hghVnQ@4VQR5r7-(7F|NK$W;}0v=Dj4I* z;247lEi+KbmFR~;_@lBS6&-P>o4gk?HRn{(lB2D+kN6^@A#?|wj`GEVEeYDc$XWdR zp6|X7BiNAvAB$;*w-TC$FU^Z7>4ahU&GP>+brybAMcvlkbW2FLNQbm^NOv4*kUn&G zbCB*vy1N^ZmIeXo?nY9&zvF%1dw<{GF!$PPt}(}W=D6)sI1kIl9Q`m!Hn*Hpp!&NW zVxKh!7OoFiKt>uJN;G-Qn@}V;b-zRN^v!!j2#8iWJ4rxb8}n>GP`beHaEB4mFurN0 z1)qR_%R_`X8GyEz!|d|l_$152k7D)AV*Q*pVU@MWfD=NI(|UuX#zA!903WkLm<(g2 z8veLxy7j+V=>N8epTwxJ#T-tVBqd-}DIy?#xbiX*SgQDCS_ek&)?gvyUPv6Yr=#C1 zD9l4eT+xx+*3PcQShoA*3Bg%mfAr!)P+fM;oq5_!rP48 zYcdYDuox1x1`>-vqa|!Mho1Nt+1J1AOjutCUa$5H9tU_f>iqv=zG6chxYg1k;BEw< z2kc@z%Zp!rdCcI;rvL8P{5mpEu|WYrZ6Pbnu`I*4z=|v-nayRMb;R>admnB0#JCbQ zDHW@P8FdU}_8KQ7`(~a;Tv#l*$spoV6a*t8Y)Z~4K}q{YPmcEo) z%m~EDYNza%BTw*r*8STC$O1#7fgy zHX&o||9&t9d@E(P@4bd7iU};dS2>OONqpd1+gJ+4hHu zfV(48M`7VBzv?SSFAY2|FAa3OERQ(9(%yzp!JLb}nXY~Qd+#>*#p`ho0}y!~$e<;X z(&uPH9sO#VOCMl`HR@a;?sd2_5Z?xGn7OaPp2r;Wu>xXf`K?WTuT}K|XWkypLZK6Q z<4!ps{v9|DXUshuq93LpMW@I~+TWX*c(&p6;{9p*Ps58ni=oxl+Urx-UtM)Uo4XR+ zZmb6vY zQ_vx&Hte(k8u;k_I&Vy0b~ZziloTlwK+$w|H^KOpb}*u*2*3o}b@0))T?RmER{WM* zUfM>{IX*4+U!(x<7vV5Erw=M6j)WJ@pW$hgcMDd(-zKo{)jVFL7&M|n&H<%tajZrEVJ{fx&^^6NkId9AL~Fyyz2tLyJRLU(T>?JX% zk-KJMIQ&6TSGKZrgJp^C!-=w7Qcc9HikYEJc+ensaw0P#76vA+r^_4(rf~+PO$N92 z=gvLOb{xC9+Lz!dV}RusSr`T#37NT2HON;9R5f% zbf+Q9wo7M8ia2RvM7~qp!5fJ&ovSy&UpepF5%=2%GQAxOgd`I7WWcBbWU<=uL@{Ww zizfFHwA;tfzpobuF$KjAE$0Aulg;|Dy=7%DJu)@1St1Kb@CF~q^e$?0J`1Ipf|?N? zP4{1{Yre=%*I82$fxB*{MH+|7L!0)7psZ`JP5;~boW3i9?q<^z|0~n80MeMmD-f2C z(R0Gu>$=a?j>y9ji5JqhTt0XOI8kj}L~ZyeJfP61P4Fn1U_O1NK{bVu=a;OJf~wUw z0Xc-gN)8@{w=_er5cyAW^`YKbN#b9oQ7G6weGIUMMgc%mttfEUj$Q2pc#05d zd)hksQ#lVYO8n^wa2An+6A|Izsl2R_;y9CD>j|`R=G0xZ@RH&uP}`@IjT_z?PW=1N zu@Dc8j}ZZG`hVt2SpS(Xv5?9Q6QcR-$)e<9 z!uu}5b!!1Bkp5@FZ!JEnEbqMFwwkFxa-SqPjJ!5NTX-*thEo}e-vq%fs996?CON@3mrKw)|Ccd9KG<4@OwUTLIv=B>!I@~&B( zMG_%y89&$TU!MINq04|SYitsrd@!hsI3lSU_ERZx_xi(ajXxBb2bIptERt(1%1oec zHlB#EOYQ-&PEaJxncG?W%Y(*h0DYbz6E$F^u?e-q0XAM4z=r#cH&Vq39yJ6>-Mx!W zr8ysdnl*qH2~jkjN=3RJT?nXiGkt6HQ?e0~_jstOfeeW%!a@ZpESb9yDKg+v=X#0{ zGo&t(95a~FxgS*s;(hlkD-0Pjn4xjVXG4hQ+Io2V7z>b+VWfR4VvBS^C&lXXewK;q~$mFip&+RM(sQ?~5Bk*Y>d7_6PkWtd{-$e+c{AX+(gVwq>C{v4j3PFTHY z_5E1PL|AbDlbrEk>cIA|rcAX6Do%jVG6kSDEJy9+-oPPE%(+{la|UMfZWmDmk7f;}IF?S8$V_kS2A5b<^qJcyyF znh-HhP%U*5c(~j4Tffdkt6WU$Qj4VVU+K6kV%4t}z~UsVRVl^c8=}XU=3@D0CxvNu zv4exu{eC$ZUW01(MI#vXa>>NSDAV-nb}C9z+OhV@l14D}v^X;Hd=BEngY`%og$9QC z>J}gJ5u#KRGVC0U`r#ucCq1Y~jRmKY5105)xluFAX$gk~krOH5b6WJ!L?_QHSC@yMxM^1+lTZ^3ErSG~qO(PcNZA<{aR2o4Drfx^)C!pMrz? zLzXi!Lk6E)x*mJae1A8P2{4h#6q&SHqjE4uF^~C3UE^1UIXsr#S4`Q?DD3i<9ly8a zF4Z`wkk$4GIaGv={g;uWc>5oH9yV!9?htGtHi9TK0wfmk$A1N|`!9@q4&-Tqhf>cj z4n0foVe$y+Ay>HHqi7s;OkR3Exy&{D?J+{k|Hd-#w5=Px)GNz{2Y}!Z45s6RbN{?4 z<5vRUzaHJ?4HBBvXH(9b#hZ8feA%p)n7g3ykq9SiUYD_= z3W=fiy`Sr`1vCY+W^Yj8)T9Dm4m&#i?zxk}>7?gTg{MSm`f`J-_I774Sq3_m*oSfn zg{<0GrOfXqikT}sWI<#&6)^@3lIP`br6Y1FwQF12nCxX&7wS5tBxbh$sV|S+goG7O zoAE0AO_~G&67i^-GG`m?GY_F5n6*GXCLmU-PknY=eavqh9xaT_oNyJ&0=iz zJ-ZGRPVkRjZ(jwKl6s_kAWwwBKw!J0P17DW5;^UFWeTu7+jmP^Xl zL5e;k=>aiw*|WsF6^a~%^*{E0yR)1wrt}FS3mq66yO$@>kSJ;IFSQTFe*Ui&tR3ma zX-aRJxO79%uqU6$Uy?5FFv?-vVBD?L&_3tw{aI zbmxi~n%;rnBQzC2xi8oJjS)Zaz<~h(ts^;MncS&~Oj zF}H`iLGLIS3zWW|&%`LEU~tYYa>Gg$^uct+_CMxPOUS1Iklf*;LQM{lZuMLm1SHg9 zc1Awnoh80*kmB@BRymgBzLR3GP9OcU8ME6QrnUqw>xtV9OI?|x!>lrGkaPdLl}z{T z;?fW3*Mk#RzpjmP)7)}v2PL9(RLTa~r1-TdQkx&QW@-Nrkj79T% zBh9XiwXhqX%%ZSyk7dY?Wr>>ka2msYHX8~<*ToXjC)A^Yvl9r}`WZh-kbe$P)?t|< z(bQn1;t1dILKQ3Rt>#a4se+@VnV(-c&5pV??&{UaoJ(Qq2>cm0ZRIMhp+06U8Odv~ z>thghB1D9vh=W${PNxyUPJso8>05qeFBIAAOsKn|H*> z`M>}PRzEYMzFN$TIjcgdyBZKvC&!MqDy|Ss*+<(awk9BGzeJM_kU*bsO}`a>x+_?| z&F*^mI(r4A#t3`>OqArwFnF|u=Pg-5sMBdrJb!m2Eco*yu}cte07-tg!~!tp5g}JB z5co@5|EX;D+qVh@#^pLG&{8Y{z&Q%L=d%gAWYVp{Po$DjlwRxf+}@pNzk1qAj|T06 zLo#XQp)T$hLO`34iC6tKVwd-3@&bUY+rZMRIa)r?wvzbYOePAQ#N84u3v~{DHcLz{ z*4F>oG*oMtkXB4YL?Z`|OWwoRPO(f|z34!4^01p^Rp0c)4U#pF2M#YN?VIs+%)5YKU2=>WvB)DW76rcLiO&CId;Xglg(2cZ9OsLV zFzGl{;aNZIn#EFNZn^y-9GQk`uwTcaD4mN`?t()w=j+-a7u4~*22+gFGOn;$Tf%Z` zo{Wpwwf*>qj7@n&7#N_20*Hs-UAft#z7bcKY9y zcHhgBs)|{a6!@^*q;x{1T3RT4;aGqDfizyelPS6UFnZY`I2+0U1;97M_DnHY4|_jPOZ&zIQ$hmrmyiuF zqUiMqjaVp;68lbT-T04g+%qGg7P4zdjKvqz7AE_y8pN-##bo!LVL|%GHFm#8%oZ+a z3MEz!If(v(x%<(dPzWZqc1cA^2Za+?%O)a@X7f6)<>N7ju8v$97S+1($W!ONyi^PwtUiO2hFUFsaTK$_4i=lp7-p=Ne=*)8@sN(yIQ>2GT;BX|CnR2*Y)>j#QqZ4 z@kg!i<6iXGM0;Uq{Q!S_OHdKx;K2Rlf%}=?)oye}imJ{KOjNY7hu{%GWh+Pwb5 zNaQ?M@3~${gXe|8%VC>8c-xbi)w6ol@te!Ecb?``5va&0`ZLuiTj|hLV=bWNiE50w zW4YY^hwqb*k!9XKktyd}m29Jcf;atB{?`b;-v(7RqQ?3qx3|#7B3UW%EEBpfE2(>k z`14)ky&o5mDE6Kg?06Jlajj{de2pnU}P(7J|e1qPu7`m_2%DDVI0+#$j%n1jl=Fp%DBa+Or9M?XtQj&Qp zT2&dZG4S?7LXu=crWNDAfmLkme+O0%=2vVh@EeZ+)?g@zXBsAsIs2(ysc-W#Fe?zQ z{dJ%zxrxO)9U%s<-;E4eSNn*r;_iTYjuR;WxX$Tj9VnAH6#qr9^hQ6<{bT z_`#LM?`$`(Rpb=>?xYU}OL{+hwso`IuyrZoE=L}BEng&JOBBp7D>!eX_IkS z_^Esfp+0ui_I~Zr>a|+Oz+_Z75p+XiO3E2B<|=8l5RZ<-p>Kz+8tVKG7fV#RKajVk z2>V&0ZS?~{LM_v(U0(h{ysT^es}YK{t;Ea5f`w~!T+BJi^dAC2F0yjwG%h%pw%BVaHYNlOtu#5o5XZA3 z>qLgBa|@mbdY@5{-gv!#`l;M;4)shwC-aE-?-!i@{hLfR!9losQ4rHsm_-F;928k< z$Wqc6YFS#s5J7f#nRK2!4p*e&lfkOr@qM}cX8znHO2E{P_~_}_W!w7g6`k6@GTC&S zR5C~8&K}29ELQn2kHX>`E-7i}GUKW+eZc!rTkIFVFUBK`3egub-}N+0Fw9QN)?Ad^ zOGD|tjHBi~HQ)Mf!$w`?yi&n@G5GxJ^7y_vF~Vh%2Ppz5r0RI>-K@g=`$$3iZEimW z|5(hd1A9Q4?gOX(irP&+#R!dzsdT`8eA}^Uf#Vy8UMw(5?gk4Pr{2LYv5gla0!WmU zNm>KqG;`s@IdAhG4ItM-jEf#M-TXu4lImQG>&+K&N<(k zqvjF9x2gwqIsKnO{4;>9DF=k=oShSybjI?|;ctE?ad&Tvs{3Q#xu$&!)Be8hc0B72 zPo>Y3e&f;HDQ*U$@$)=+>|B@U^vTnwFeLL%(r2$m^9{^cC?U0pdU#ku!rOqlT?fy! zfEEjX^Vd_QK0Y);xXWI*$S{{&R>utXSWo^~Ic#iuM|R!}XNI>7lT(EfpNTqzaH**Y zO=KKyPhXm>Yv|cMF2^dYqpp2fky90vOuW|lzd!F<+grTyy-xrZ9TDA7)9` zpET~GYxnSpE0~ym(-LM-*DmSb5AeK%3=-0bAp%hN40W0KSBCfCWp%>ZIi)aUS&^7| zelqH%tAf;HYxV*SUaPF_sEr=jpTa;RF9XfB?9@R1t-WShx9ul5NhJ6FwGX4n&BnUl zP`Ztnx2tVJeOkqt4;&C>kk?>EGaob0lpEuEW*V$M4?>Q%YZ43?n zGXaEI3ByoUGg%hGoBT3Iw@~aT#h(;aCnw9e(leONr*E<^_PU5;AF5sDAlWakK}hhN zyV_e4#Z22C8@t8K5&ZtzcYU05-=FjSJ1KCt-T3`+JT&l|qVvMW7Uii= z1Bras?M>ECzh+-c;(>+Ve(|l%oLw9fg1|X3Ieocgh!$61Mf8&ypIzgaMAtr_XB`^;!O!502)|61?I{pv3~!$az_DFqRk%t>sy zj5^J1>pC9KXwb!?T}MyXU1hD3z5u}-E5KGc#TA9_;pbR&IsaNbm};%APP3!}GA;Y0 zQRW1IVG@6d#T(^8$xy9EX_D9!(H}DHQ_9%_-sk;tG>9Z>`le`RrR;L&tv;%-rdP$v4dgOs@)nwoi+HaCf!tMBF^gXgmUKZec3>@TBkE69PjHn8l zCt6Cfy3mpxIB{9vEh(4 zov#nwqezWtpDhgXL?=%SpV2nre*JxfoT0;yx&#AY*0XBz+E!I{_&+{(--@HwxB(s# zX$lE(Kk0v9P$I*UWmdL+9f?EURD5>uPu`sSqxtUyg7r{f5dp{f+ePqQx&<4ABS91k zekm{CCb+QttBjjs~_$`EoX!*?`OOA-r^}^yC0l1o5N@w z!tZ~mft8Wq_DV86KgIzXpsUqM%@zGyXEUw&K0p#xVK;Usy0~PzIKz;Bjq5pCEs9@a z3PZPl<;p@Gy4S}kGFtX%x3IODyIHcS%< zj&qLRp!QohtyKGHXXt*5>43E2MK;;uE`XKY=lp@-#qjoKqRQZc4^D;rdhhvu6nP|{ zE%N8P2IkxdAEQonKDDTJwN|A+5z^bVx9Gj~!;EOS<-dbZOw+wQ6wLS_HjL3v4jzW9 z_9>u9TDLJV($hv6p>QUgvMTXxq=^O?k8Dd$&cxv69@ein6r~5XcN^l1Cpd;hgU^w= z1brTN2lUHAgs{-H#~<|cbQGktpJ$*3cr6Y;to{N=jx#U5h9$|ROw1cZao~iCjP8(} zjR*I==(^_PFWKl;bLVATZO6=F#Rhn7{7+~kum~-RiVR1&RZCpa0Z+d2L#MYFkQEt&uB6GV{r?><_;0 zG-CqMf(8IWlPCoAxO$4as5;1ff=zWRa$yom5~vo&(Ak;O@KK`NPO8i^+-+6)HdDM! zN=Fd?nVvZ4T`>tx$rz2dWAc<_X0vb$0*UP!NDRILDrH!0Sz>;rjBse0KD@2K^IIL= zVAt3;fPscT3=jdRKcgY<=h)5O7fIbX{cidSoJL&S_hKn1w#Lc;gvJnN`H(E=nGHGh z=2wCKwekn$8rKT1I}MH}Ld6wS#2C|ifjOAJt1755cctr-^=R#At^SDb-T zIlaU_$(6m&q}zFq%m)bIqD-~8ko+#04# zwB!iu8@52-cpA8$C1CAr?DRO>*jejn>o@=)hYu4SLurb1*;iv$81$%|r~N>m#knR_ z(lhY9Hh=ASec>5FKq|%Yfk}nu{s4pP)>*rdYG4Ux7#Xme>ZwC*k~~5OkVbm9AEwFR zVBaa0Y`V5*5(n&2?edcCw5ILTqyhRqhy8T7B2Fl-oN{CGdl@h6TgDv0MeK4M!V_Sp znaC|pjPU8b1SH4eb&!wl0$o9{rH(HQ{+@1VsK>pJuJ_CZbl{bV zN~EjbncqC~&!rnKE)gh$jOPxvwJ`AZwRJU7N4dTk zBLf-pJIKmiZTm^zu~Q;ixu4aJ=|RDdWL3-TNB5u9@`95`>3NF(HEz<@v$2?K2j)s^hmZzb&w7}5*rDy_SG$Pg;ybbablicH%0UkQYV zQg1PnRH+)fflm=OUm;!N`q~w^*nlI2vGM8Ra|=nE*9QO>DeH&FXsV0SNmCeCP~g_p zsxLa$9Tkpi7e7GmM4mlI{P2g28;c6M8BuVjT@FQf)kueS@+9=3I7*Gji~~O&^bVU= zuW(9cKsLm}qR7*S3JLS=azj0Ji;(s9EHp{H-$(ykkU@d1w735yt?-vKGFJj4{>9XV zF$H1q;fr*rU*sZ&{r0`HW8`b}gzwF^h~KS)px~{ZwF?J%)Bun~&)l2uJP;gd3-sh8 zeS?EmC^3MI-A$KeemDgmN~9}pn^GeJrsGrQ)j&kM;WCO^8j%FuTCzN;)~KNas08Vq z&5LlU_St?gUky8zs}85ferPrrD}S zSk8XJ=E?;!m;CySTjb}^TU*J2U`XU?#cTShC7CcJ5j_-|1(uRL;{5<=Ro~y;cdiNp zJa96u8+T5tiD~%Q=J<4!w~QxwNLZo}XC-zADT;2}5FmawoV`{&P^!=1bN;*#wi~B> zgAeuobL+Qx=DAD(h7rDLV1xTOJta3OV=w7G&tJb@5hXn-x}54IE}rG8eOqVW7wVE496+@}PLv+7rBp8)owuH4qj zEcJ$N76r|*Z5|z8CEI`u7M;ld=&-$@ATt>(?IGkfDRIPlp9b<$8)=eEg zfD*Zr6#m(d!l!@PFcphqB&j~}h*%cNGR21~RinoOD$&hZTs{&{gA8)mCL@4dts%Lti7j`c< zAaOOaFJ|R9Mt0W-PxE$+6Pa?{`t0GQCt!^poDU4N6B=^F|C)A>rRghVE)3awo33>g zwB#?6z!4L)REoj=E@#bP8oNVPB7Z#^v#+opo{E~EhU&qE1IUFsYgJiK*93+WNFnSW z@mVhj^nJrg>AXnchNew~&v5n>#CK_0V&|eod|Shg>1eTzogTyczjDlrN1uu@ zL}lS1{lq}jUwF}JS%tx-b_6^8!CqeFjfHU!YPNS&gS~eig#U_@1=3@pf=VR*n|i)m zTx4YhEv5;3vD0&CcCy8ZIz^VS4noqLIDjV#K+C2mp;S@@2!XhNA(i2?3%0Xp;7igJCjAH#LNe5%L3bi05e=AP=IGjlrFRtc)e~H9l%VuqOj@0%H zl{kQdBD767+9 za24qWx^w07+*qEdpz%gfz|W(t5+6uQ-zC! zy~0Dmw)ll%sY@gZ^d_^S$}b3Jd5BL#`_~{EApduIT;1h)eLCLrXn&&C#U0vsF+vOR zV-5!fc$eg0qEdWef6pUO`k9~2ttDG;@>JWxF2DeNb?7HpqAlyse@SZE{oSQ$anNh@ zzXVKl!-h+sv7sw`m8HhoXm46U@marxqkUBOOOO(B=$Azy|I4pJfSTCKyk^%g;HW6j z7~&|!T2?dnd+elXBQFW3;}hv%;Sz+BK{H4HB-=P2_W1S3P3^OP?j0I3a5v6RL+G|1?N+OVZJU2eRyxiv7N~(9_qH&Kp-F#EXPj?-s zwrf98A16lJk|(fidnDaboVBL&%6rN0!pOGuMvLd@BI9gSMnXM^;IbDBAd?dv;Z3Pa zlAzvRxLw?1V#<^e93yWO%?}H6UKCpSbF;l#t&wazOt|xq-qm~zH*41kV!s4dRu|7) z+Uh3w>nhcY-Kj(cBncfvDtzTi(OZXw=M2cb{ao+D{{U_ZglTjYDb|>BM2^_XzAeJhwnsQ zI-frIuu(J;FH!!ivWl0t`HR4Yw#nkqAo|&!p3PERTgzgtgJix@Jk~O6QvRrdyIAoI zh;Z?7;S%JJ@azl&5pw)t7Hs?7mfinwFbqx6>wa&)=-F-~b1!2?O)9Sjg?>t_>|`n* zA{#vYE>CVEnO#PTcF6)rrlhnoDo!&;aPUAP98!0lHpT_qF}*Ao{O*0ceP8(I#mbz7 zV!>K5W`d&J<;HTmqeD5IrhYzm(6d>9Bz@6S zuq^>Y$VkQQcM5WFw8Vz2jeQFv0nU3c&%St^mv${^d2#SR!@A%>=o^^p|2~)eV9@N{ z*y@*i;{EJciZXW5`}P~rZCgES#qU~koOr$6IwM$a3*D%nNO7YlvFgvaoBp{$lJk)yj_wx}EL z3nPO>Oe!y0ZdEzSj_jzSvq$B{B_y%%<64p$RPwJil|gc~aI|5(I0qnXSjX{}+c)4W z&)rQs+>W_cszi7Q0b9qKx?B$&M*<2J-aP}Lo}`dXzX71j9B*=lH>pxIl% z|7_qRSLTw|ODpN2|mHQHIXAiGrQ{c1v8Y;{a!P$@&6^L<1hw$xzZ=M)|18I3UzZf08fB(cOGU&2r}m_wk;XS-gf zxJE$!T7)PN@k9D@;t^07^rhuym~y;TH9(g_LleHt)M3RQ6r;7gHEQJ7(fj#ypG@$LvuU>1{l{5$D*0f&sso~+m(!@Qis^lFv~7mi)8iKChcj)=Mcs75wG5eKtaK%E%W zCJ!T8HdGrScuD9S2bZG02Q~sT(s3fG?1i`m5NgZ{+(S=m*ZqkA5c7JxUBI`r*#5n4 z$`2a(0;}R`moG1=$M1vtWo+sJ+|$nnfMZgu5Ad7T&6aer%OEOdKw26Vu-1TTdp1>e zT1c3Fl+p#B{vR6NJ@h_eez83y#Ft8ej?gpAT08km@WQ-66$8)G%FuyH1n+Qm*v0US z=nSbg9i!&$s^*7k;P-po!R?(;_ZuFmKxbC|*OH0a8|CEyAucjp2H@#(9TRxkKa0vo zr(?uSEugDRc^VKygPIaaw&Q1QEF;^Xt`>Y*?IFeYSO8}UJu5*%CC{l4F`RHkWh2T72jhwz&yG9VU@gAGLR zQk!T!nxC!x{-eUEEjEKL0}Vhv$c{~?%icFD4hMC5jDChi z0W8MzSVJpLEV>8=oxBt()=KmbIcHjH)P=&sWWqZs8dy4yYwkwTf8B0>c;ixM@*E^P zdzmT&6$d>JZfO8kLzxY6u}~QA@R6`w83w7K@A8{?xe4mU`_*b1MP`;3uo|nT%gZgz z+ghEcIWIn*+XF0skp~SjtQ^kjb3N-DG1Lx->P@&mdYfP2n;X&R?{crUWbICb>--CJ z@8~~kt?N{bqg)m$+`M6O{sG0IDNC$s%^k&0EIgzu^LN@%dOacm#*#}pc}b}XQZPDk zckm?0H1`Uy7TDK)hG%T2E^P)nx{uKYM@M_EfLwggROJbYfeGFFK0V~rU?)}fq zBy6n((Npey^koYrC!b3jo5gClOx>FRFlOR1Tl?c?q;5M8fcH|$ z7p9x@T_y9_rk0jKm*8N>&w6x@QNiHd8|9FY-8k!}Uof?~Ir7ukzO9|Pd3;C!m!lte zbF)Xai#4!&Fo--aJpJ228*lTp;VkQ80kwESmf-Nam<+lxrm@Sh%pAiJwNq1_1!6dMty1mZ%B zwAecI8K|w?{_V%}88qLBfy0zMFo3pyoqbvDE~s?6?w_B* z7ewf^#!ULCD%ea$BAR0M&Ye{+(>a3$3OmScd&Ls9(OSx3SDN?Zw9jnI8r zN`eX9C*ZW%Q^0Dg|I}u1m_GiStGsx+oona=%+rzPTdgb3`JBg_=p7M%b6hYV>^j_z#r~ zDC#?1+k~FE@2ymibxA0yXi=$MD^%t4Zpk{i79j4ydM(r*AJH~`EcKMHZ5?p_tFf{V zEBi=#10#D@SQvz8umh=3yVdBAZ6V<($(8MP78J(!RCk>Q7bGVrci1ix;z;IDZBXS3 zvApC8=VfMb+$RCg@g0>vU#U~67o5;}L;g}{S1YMfIV)jcbT$_AL0tY1*Dvu~5iaBG zfk@Qx5g%m^M=Lu%rHOr1i9kmExbcY^)sN0l;V@VOw#ZXjDhjZbqbs&SKmfm0E2ev)XM{NB8Mc&vs?!ld$LX^CUYc@P|1TJMcd8;_Zn zSr%~2H_Lh$K@*f|blcRzf-9?$!5|4zn}qkG$*@jXhqq!K{yd;^GzFHEfH2%b-s=d> z{dPZZEC#%h2nrXId*yX61BP8VgU6L6`zNw@YQIvG00t@$bVOi9sR)GphD>W5TUV#}44QH@7Ds10OrQs7F+*#@oL!tlxNrmrMVT^#hB7NGr+ zhi*y1R8~r;t6$;keK&C$x6PYajSXFeo1|^I_yHJoyUY_*I`)KCh^?>v1m?~N`hC4o zPDTIL+v@EMGM#BeQeD6F7#g`S~Qn0D+{+BFp6CoYaffLz{-ae8d}qzaspLJ&<5 z)0Cx5=4_UWv+(fD$0I6@`1N}cH+0nSC82j*hg!9yWc-IF1I9?lJY2a*^dzvI7Injl zmc;}oNeDvjFLgVuA46FRRGiYPKOHdM(yJTk(92cTP;XbZIlo@Fmb}2NFSdK!=DOc* z3=lwf(Q20m5oHOrxBCHZ5otI9+5uCm{oi~pYz~7 zCw5z`1#|s)Js9qYeeC_|KvtqZ)D~0FCVEpK3@q2ho(*U(_0CL@i`t}`rOfI(`mR5G zDi@;DCGX#U-CbW9pJHa4s`1^NT7Om!c|KlnYJl2k-t=;?aG-&A3E}9Ca)-qI&NTgr zG=*>bU-u~d@5aOBVv%CO?>~^`U_*?IhVERfP~xHoWgL)MduL=R##RB-&7iiO>gtW-1LNHuA&h@Kn=3>|3EiPef zJBpM9VAFZh^E!4)W%6Fi(1J*^lR@ocO@6sahU7IT@8u+BQK!wPlj)l7^6Kh;fDHC# zVrGPgt4bbJO?_wsnIiH}Z{9)hX7?m2$dvlDy8)GAYFwJazHV~}lIbiHLbu>RDnZ#0 zocLGu&IA?ucn2y38m2@pKqY_UT|AB>!AY`QH)VG<7a5eES)O$rTzUHW>ZX4@=hCdh z+1mXNG-JhHwQs_~d1SV5KzW7I@>A8pm1L^0)1ntJLw2VV9K zVhP(63uR6jB%_kbrRQnW1|G1IsETUq9@f?$F;-Unum2sg^&>gpqR_O6|Bnmp%iY`1 zzS^HZKWeG~SyE2mLQ%?C-54gA%1)1qg0uC>et(VPcG`lF0x29(=#D7#;7>3IeyZ+6#Q?UuhQ$|Ug59pD7as-Q~8d-G20)$T*(ibH2r*EU8R`sG>{Lf$sj?*oP*48j4&!?M{r-`;JT zcYOmOBA&0?ih&(2cJGPI(Jre_zps*sES*Cc9?O^XWI0@(gDR2iS7M!kd^Jd{RSE&&;ltGhwwBjm}0BxdKD!PQ_ z7m3%|CsF&e(W``b{U2PnT~80)F3pM~UoWIvzk<_fA~;x`a6{CSAV%HH7(gpX#lvV< z;C0nMgo51XrR#o>;$=LM9YSYpT<}hw!YxG@PsC?0j=5grxz(9pCk|S|VUAGm;&r!w zc}w@6sJ#g&IsjNVFthQ@P1FvTU$l3$ON2Ekl(~>&R4J6fW}tfRby3G*pB4Mg3bfA( zXe}bM6MaV|d@IL30EOXrWQ+#&Tqc8bF5{pfQdE=~(Z1&oz}CA9tSA_#rFeaVIZGY6 zvO`_Vv(vdpWJ$wL6$wFjNERcU*cG7BQlG#qvpV3L=qK9y+3R{9#WeOpJe+U22O^dJ{csZ z_&R&~7U+fo&pGW?-0kfjj-u`TD(1a&JhMmYp=SLpyX!T_4>U(8AD$V#jDNok^dn_@ zcjeSYLdUbd-s);?&y#{vIl?}@A6I-2UEH&d87?N7M^#%wH?cGQ3OD{s&N2}ZBEyig z2~AnscYNx)pC{T!jT2)?U$C%{1EzE8hA-$3%87@fXK!ED?89D{U2n{gW`nfG405V7 z`QA@qm5jyNSE;`tJn@^~>}jUbjpq~T+G!2IeGkMe%k;%vgn&s>PExdGF^aXrj7Y#5 zDcWUxa@o-=gYdbgu2wu{Sml`+m0(zn z(oJYii1Fx10NG{HTKl@mU;O?b=NOz-48;i^>YmgRQ4G_CdS46Yv&ow%;TG?*K#g}> zr_!-)?&RFc>8$Ca8S*{-yGjjs4rWAFnZ?@$+kPvNbH}&6HU`x-cUb?;8C~)RKui8^vu$#G?3&WciH~r!^P1r zNNVEY2zQJ9@&Kb|166;xiykYCVTl1hio+TRG!V+6hf&fz`ddFd8J-gN-Vdue2>%@=ji3Y7 zRHYPZQ4)?A_@}*l5LOa2`H!Qzt5oCX9BYEYMggQ!$kP`|6#K*~{-FT`2V8E$%@{Lr zksX=0{FvY1{=VJbsqbq4(G$+Am|xoHFNr)EYeM_@(cYv!lTH#fg7$Uhj_mckt;J1K zb52NOxu}9%TnMRzkc_7W~7B; zaG}Y6;2=dxF_sDs0eOzFZT7^CpDYWN@^LjlWSF0dYP`)m6iEQ7t*&oIZ%&(yo+dk= z7JVW$FufD+bD=5fl3sn!;SupGtA_d=;-5QjkQ7Kn1mZ<+7m<{i$H1kk*l4mtVi4W= z0M_$oYOiDIn$6;eaHg^qG6~yb8!;x!-zFWfJczjx_l29bZ#H>wU@0!ojU9&AdYJJM zzn>Tw%H40GRW@qgBi^=faiJd1GT`-H)W-jNUKj^R7>(ci@rt% z1_YIyxCVmSp!#9&@vZdpCoaF#0ztcMF4p_eEP0H{V}@d zx?cIb&M2M}WnB*Eys$zvmojs3fUbg910(?LozDR5My@d88dcHh%F^0uEhp169n@4zIsL7ypMi);s0;xzQFqYOyS?eqxj5qj4>2Oa&)%Z4 z;@x>uG&I;P`)Xm7=d~iOOwRIg4>%}f2GBO|%^WhxF_Zg4P2VdAt0E@XJFU1FekVog z6a94o`%xuZ5D!Z1qL1b)5G2B_GS1vNbS#S)zQ`VTyvJxDd$>sa#FBaS7#kB4vY98| zdtp3nyErPy=CQ$dN@|`GcdvSj4XCF4Kc?O)s;&2J8s5PQ1&X`77AR6&in|qecM25u z;O_2TT#6L;;#MqJ(c%;*Q2fj9`M(F>QP#>?*4~r*x@YE^`7H~0k@wqQ_X$!QP~64K zYc7aj1GWMlq)X7XH9=1{#{kf0|1e9nL*v!4W<}1JNoKTa*0-7b@)PthFbs}Q4sePM zf38>Aqbv!vO&xDA_~Cj$*8N-`@XYQW><+LSKg9Z9x4tZm6?>bPb;CkAoj#rbCgw%i z6LX+G@p12cmp|OdF*B|T`xH+Xx3D{lwPcbtwL;U8zrzURNON9%l#747nGdv89fKq$ z`q+5QwZy`foL~sA74_XTYu^H?W}iCDG+W@AkdYPFQn$DnZJrx#o}i{r*M2aw9k6VCrxY@N*hm%%L7vKy1u zsGkc9xFh>f?_j3htV}sfnVRe}8HE8$o`v!O^hspHUzOxJZeLFGJeG~xf55pATPR3Q zVwe#{G{Z4wU*G{h2eShivE`Ep88@n={j1uH_q886DEuoO!a&p?mUSFO7lRmEvM7IV ztgW=OZ2X&Jk!KW06cJMX`3wLq(?pSN>N{I?zch*77Xy?5cBYs9p-Uf2Jih=Rm|iP! z(o7s39S?4&0*sGSYkd~vZSi-4I2r3#iBM9@6TyXBLDp|o-8N(7Dx2iTvPQgoRP93Mmqc1`NqXJ%E7B4v0Ch$%C5!>L zMcJJ!QJ&AY4gYKm8NdTO`SCmqYhS7a%AC-36od!$TO$j+d}gm2S`_O_IAl=mu)cr0w9h$74tJU7og0_zJOTDCcw4~RAz;8reDSbUm*%<2f7X}eXM7XH{G;|Mc6jJ_1jYLLy72uNdrxwL>p=kifbGhc2~QAi*HGSX zmjhU)`16WC?QScV`vI;qbM7 zGVN2ksg7k<1~ZT1d_#pQq9QyP)TGh=iLvoFoQbYSR=;Ex3DO>r=55!v5TD;T3HncW z(!;u+gR;8?L%;MA_x~KWH%0&^AK8yhYsaHF!(8gJe|HK|2nn6Bx4NK5tBY2&^ zUTi#{zImS8?pmScd7AyS<3z**Z0uYy4-{r%DC#p4%{mz&n<;=f6*8*F|a~ zid=->g3KIrzJZ!1QH4FetV+L2U4$nHSKF6D>ElE%VV#=eM#lj&f1Of5+m%+smj(Qu zS)S_y5k((g7k#1-8b;S&MSWi%NmtVH-vrO_-*sm(1f_)Kgym?$@->hX0bLXA79I6@ zJ9(>Cg?vcI$d|Cc(8(GhE($A}j{_cm8O;Lu&AK|{?;Bs>OUWVzjX!#HlXU-}mR?O- z60Y9BfA8|U)bKA`Rdt6d?Jopba2PAKnzx!aScv!BcV-3Sz>2zB)>{T&bRQ@7tmfxb z4zH6H+(G;Kbx1{>d3(dnq-Df|AD1W@?L-D>w;Vq9WK+Ut`9D+d!N~v7e;I%!%hXgK zrma?O=n6nNh_9F(Ii`ncgUpkwh$ya7YzLroZAs40LCZKOk8E*Lm4m!l>Be6AdvvpV zSd}LoVrNSgFT^-Vz>yMd1V`MoU+CV3tHXBiNpZlXWpin;G~-$^8EzL0-2+unjVBr) zkNq)Ci(!FG5B1}Awm@*E^?=mC-c5e{lCGYv-l@Z;?irNN5QRurQSohb|BoPP>(j?K zcY(Fg7BQJ%r;vV|EmU={hy&iXPm7`wEN1Y)ga3rz#q_#i>@#)V;v#qV_m(>mFs)o< zy1snTZ06rcGfL+qD$Efo7t~WrKvv-Qi6wF}KYeY^Fkn+o93G@fZ1X~9j!iwq{MhAe zuYPq|PPKqlXaB%%r2p#M>p{_0pQ^cRN{^_n*^9Pj9l@G{h0Jw%5D$ zZyua;twy$88>F4@O={SCrQYL@PTa_Sp)t+)wBV8*hEo<6ZKK1d-RZ>{Sb0b_r=q-F z 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 literal 0 HcmV?d00001 diff --git a/tools/bench/crtc_mode.lua b/tools/bench/crtc_mode.lua new file mode 100644 index 0000000..bff65c1 --- /dev/null +++ b/tools/bench/crtc_mode.lua @@ -0,0 +1,60 @@ +-- CRTC mode table: 256x256, 256 colours, 31.5kHz, graphics double-scanned. +-- +-- DERIVED from MAME 0.277 src/mame/sharp/x68k_crtc.cpp, not recalled. The +-- derivation is self-checking, which is why it is trustworthy: +-- +-- refresh_mode() picks the dot clock as (reg20 bit4 ? 69.55199MHz : 38.86363MHz)/div +-- with div from the (reg20 & 0x1f) ladder: 0x16 -> 2 (IPL's 768x512) +-- 0x11 -> 3 (512 wide) +-- 0x10 -> 6 (256 wide, double-scan) +-- +-- IPL 768 mode: div 2 -> 34.776 MHz, m_htotal = (137+1)*8 = 1104 dots +-- 34.776e6 / 1104 = 31500.0 Hz exactly. +-- 256 mode: div 6 -> 11.592 MHz. Same 31.5kHz line rate requires +-- 11.592e6 / 31500 = 368 dots = 46 chars -> R00 = 45. +-- +-- 368 = 1104/3 exactly, so EVERY horizontal register is the 768-mode value +-- divided by 3 -- no rounding for the active window: +-- visible chars (124-28) / 3 = 32 -> 32*8 = 256 dots exact +-- Only the blanking split needs rounding. 768 mode is sync/back/front = +-- 14/14/14 chars; /3 = 4.67 each; the closest integer triple summing to +-- 46-32 = 14 is 5/5/4. -> R01=5, R02=10, R03=42. +-- +-- Total blanking time is identical to the 768 mode (112 dots @ 11.592MHz = +-- 336 dots @ 34.776MHz = 9.66us), which is what a real monitor needs. +-- +-- VERTICAL registers are NOT halved. The CRTC still generates a 568-line +-- 31.5kHz raster (31500/568 = 55.46 Hz); "256 lines" is a graphics-layer +-- double-scan (draw_gfx() halves gfxrect, x68k_v.cpp:401). Halving them would +-- ask the monitor for 110 Hz. So R04-R07 keep the 31kHz text-mode values. +-- MAME logerrors "visarea larger then reg[20]" for this; it is cosmetic. + +local M = {} + +M.regs = { + [0] = 45, -- H total (46 chars = 368 dots @ 11.592MHz = 31500.0 Hz) + [1] = 5, -- H sync end (5 chars = 3.45us) + [2] = 10, -- H disp begin (hbegin = 10*8+1 = 81) + [3] = 42, -- H disp end (hend = 336; inclusive width = 336-81+1 = 256) + [4] = 567, -- V total (568 scanlines -> 55.46 Hz) + [5] = 5, -- V sync end + [6] = 40, -- V disp begin (vbegin = 41) + [7] = 552, -- V disp end (512 scanlines -> 256 gfx rows, double-scanned) + [8] = 27, -- H sync adjust (MAME stores but does not use it; IPL value) +} + +-- R20: bit11=0 display (not buffer), bits9-8=01 256-colour, +-- bit4=1 31.5kHz, bits3-2=00 256 lines, bits1-0=00 256 dots +M.r20 = 0x0110 + +M.width, M.height = 256, 256 + +function M.apply(SP) + for r, v in pairs(M.regs) do SP:write_u16(0xE80000 + r*2, v) end + SP:write_u16(0xE80000 + 20*2, M.r20) + SP:write_u16(0xE82400, 0x0001) -- video ctrl reg 0: 256 colours + SP:write_u16(0xE82600, 0x001F) -- reg 2: graphics on, all 4 pages, text/PCG off + SP:write_u8 (0xE8E001, 15) -- monitor contrast (IPL leaves 14 = 7% dark) +end + +return M diff --git a/tools/bench/prep_frame.py b/tools/bench/prep_frame.py index 4117bb9..609609a 100644 --- a/tools/bench/prep_frame.py +++ b/tools/bench/prep_frame.py @@ -9,14 +9,24 @@ import sys, struct, glob import numpy as np from PIL import Image -src, out = sys.argv[1], sys.argv[2] -f = sorted(glob.glob(f"{src}/*.png"))[int(sys.argv[3]) if len(sys.argv) > 3 else 0] +argv = [a for a in sys.argv[1:] if not a.startswith("--")] +# --reserve-black: quantise to 255 colours and reserve index 0 as black. +# Needed for any mode that letterboxes (256x192 inside 256x256): GVRAM cleared +# to 0 displays palette entry 0, and a free mediancut palette puts a real image +# colour there. Costs one of 256 entries; measured quality cost is negligible. +RESERVE = "--reserve-black" in sys.argv +src, out = argv[0], argv[1] +f = sorted(glob.glob(f"{src}/*.png"))[int(argv[2]) if len(argv) > 2 else 0] im = Image.open(f).convert("RGB") W, H = im.size -q = im.quantize(colors=256, method=Image.MEDIANCUT, dither=Image.NONE) -pal = np.array(q.getpalette()[:256*3], dtype=np.uint8).reshape(256, 3) +n = 255 if RESERVE else 256 +q = im.quantize(colors=n, method=Image.MEDIANCUT, dither=Image.NONE) +pal = np.array(q.getpalette()[:n*3], dtype=np.uint8).reshape(n, 3) idx = np.asarray(q, dtype=np.uint8) +if RESERVE: + pal = np.vstack([np.zeros((1, 3), np.uint8), pal]) # index 0 = black + idx = idx + 1 with open(out, "wb") as fh: fh.write(b"DLXR") @@ -26,4 +36,5 @@ with open(out, "wb") as fh: # reference PNG of exactly what the X68000 should display Image.fromarray(pal[idx]).save(out.replace(".bin", "_ref.png")) -print(f"src={f} {W}x{H} colors={len(np.unique(idx))} -> {out}") +print(f"src={f} {W}x{H} colors={len(np.unique(idx))}" + f"{' (idx 0 reserved black)' if RESERVE else ''} -> {out}") diff --git a/tools/bench/show_frame256.lua b/tools/bench/show_frame256.lua new file mode 100644 index 0000000..c4bc8a4 --- /dev/null +++ b/tools/bench/show_frame256.lua @@ -0,0 +1,72 @@ +-- Same as show_frame.lua, but sets a REAL 256x256 CRTC mode instead of +-- borrowing the IPL's 768x512 text timing. Proves the mode table in +-- crtc_mode.lua and removes the x=512 wrap of FINDINGS 22.5. +M=manager.machine; SP=M.devices[":maincpu"].spaces["program"]; SUB=nil + +local function load_mode() + for _,p in ipairs{"../tools/bench/crtc_mode.lua","tools/bench/crtc_mode.lua","crtc_mode.lua"} do + local f=loadfile(p); if f then return f() end + end + error("crtc_mode.lua not found") +end +local MODE = load_mode() + +local GVRAM, GPAL = 0xC00000, 0xE82000 + +local f=io.open("frame256.bin","rb"); local d=f:read("a"); f:close() +local function B(i) return string.byte(d,i) end +local W,H = B(5)*256+B(6), B(7)*256+B(8) +local PAL0, PIX0 = 9, 9+256*3 +local YOFF = (MODE.height - H) // 2 -- letterbox 192 rows inside 256 + +-- GGGGGRRRRRBBBBBI, confirmed from x68k_v.cpp. The LSB "I" is SHARED by all +-- three channels: each renders as pal6bit((field<<1)|I). Hardcoding I=1 (as +-- show_frame.lua does) makes true black unreachable -- pal6bit(1) = 4 -- so I +-- is chosen per entry to minimise summed squared error over R,G,B. +local function pal6(v) return ((v<<2)|(v>>4)) & 0xff end +local function pack(r,g,b) + local f = {r>>3, g>>3, b>>3} + local best, bestI = nil, 1 + for I=0,1 do + local e=0 + for c=1,3 do + local want = ({r,g,b})[c] + local d = pal6((f[c]<<1)|I) - want + e = e + d*d + end + if best==nil or e=YOFF+H then + local base=GVRAM+y*1024 + for x=0,MODE.width-1 do SP:write_u16(base+x*2,0) end + end + end + for c=0,255 do + local o=PAL0+c*3 + SP:write_u16(GPAL+c*2, pack(B(o),B(o+1),B(o+2))) + end + for y=0,H-1 do + local row,base = PIX0+y*W, GVRAM+(y+YOFF)*1024 + for x=0,W-1 do SP:write_u16(base+x*2, B(row+x)) end + end + print(string.format("[256] R00-R08 %d %d %d %d %d %d %d %d %d R20=%04X yoff=%d t=%.3f", + SP:read_u16(0xE80000),SP:read_u16(0xE80002),SP:read_u16(0xE80004),SP:read_u16(0xE80006), + SP:read_u16(0xE80008),SP:read_u16(0xE8000A),SP:read_u16(0xE8000C),SP:read_u16(0xE8000E), + SP:read_u16(0xE80010),SP:read_u16(0xE80028), YOFF, t)) + st,tp="painted",t + elseif st=="painted" and t>tp+0.30 then + M.video:snapshot(); print("[256] snapshot"); st="done"; M:exit() + end +end) diff --git a/tools/bench/verify_frame256.py b/tools/bench/verify_frame256.py new file mode 100644 index 0000000..8eda32b --- /dev/null +++ b/tools/bench/verify_frame256.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 +"""Regression test for the 256x256 CRTC mode (docs/FINDINGS 23). + +Checks tmp/snap256/x68000/0000.png against tmp/frame256.bin: + 1. native snapshot is 256x512 -- 256 dots, and 512 active scanlines of a + 568-line 31.5kHz raster carrying 256 double-scanned graphics rows + 2. double-scan pairing is (1,2),(3,4),... -- MAME halves the ABSOLUTE + scanline (x68k_v.cpp get_gfx_pixel) and vbegin=41 is odd, so snapshot + row 0 is a lone half-line and even rows are gfx rows 0..255 + 3. the 192 active rows are PIXEL-EXACT against the palette pushed through + GGGGGRRRRRBBBBBI with I chosen per entry by minimum squared error + 4. the letterbox bars are TRUE black -- needs both a reserved index-0 black + entry AND I=0 on it, since pal6bit(1) = 4, not 0 +""" +import struct, sys +import numpy as np +from PIL import Image + +s = np.asarray(Image.open("tmp/snap256/x68000/0000.png").convert("RGB")).astype(int) +d = open("tmp/frame256.bin", "rb").read() +W, H = struct.unpack(">HH", d[4:8]) +pal = np.frombuffer(d[8:8+768], np.uint8).reshape(256, 3).astype(int) +idx = np.frombuffer(d[8+768:8+768+W*H], np.uint8).reshape(H, W) + +p6 = lambda v: ((v << 2) | (v >> 4)) & 0xFF +f = pal >> 3 +render = lambda I: p6((f << 1) | I[:, None]) +I = (((render(np.ones(256, int)) - pal) ** 2).sum(1) + < ((render(np.zeros(256, int)) - pal) ** 2).sum(1)).astype(int) +exp = render(I)[idx] + +fail = [] +if s.shape[:2] != (512, 256): + fail.append(f"1. geometry: expected 512x256, got {s.shape[1]}x{s.shape[0]}") +if not all(np.array_equal(s[i], s[i+1]) for i in range(1, s.shape[0]-1, 2)): + fail.append("2. double-scan pairing (1,2),(3,4),... broken") + +g = s[0::2] +yoff = (g.shape[0] - H) // 2 +act = g[yoff:yoff+H] +if not np.array_equal(act, exp): + diff = abs(act - exp) + fail.append(f"3. active area not pixel-exact: maxdiff {diff.max()}, " + f"{diff.any(2).sum()} px differ") + +bars = np.concatenate([g[:yoff], g[yoff+H:]]) +if bars.max() != 0: + fail.append(f"4. letterbox not true black: max channel {bars.max()}") + +for x in fail: + print("FAIL " + x) +if fail: + sys.exit(1) + +mse = ((act - pal[idx]) ** 2).mean() +print(f"OK 256x512 native, double-scan exact, active {W}x{H} pixel-exact, " + f"letterbox true black") +print(f" palette ceiling vs 24-bit palettised source: " + f"{10*np.log10(255**2/mse):.2f} dB ({(I==0).sum()}/256 entries use I=0)")