diff --git a/records/track_10min_16mb/2026-04-12_GDN_Hybrid_DeltaRule_Warmdown1000_CompressedCode_1.0167/README.md b/records/track_10min_16mb/2026-04-12_GDN_Hybrid_DeltaRule_Warmdown1000_CompressedCode_1.0167/README.md new file mode 100644 index 0000000000..155dcd6547 --- /dev/null +++ b/records/track_10min_16mb/2026-04-12_GDN_Hybrid_DeltaRule_Warmdown1000_CompressedCode_1.0167/README.md @@ -0,0 +1,50 @@ +# GDN-Hybrid + Sliding Window Attention + compressed-code warmdown1000 (cold-cache 3-seed mean 1.01671233 BPB) + +Joshua-owned SAFE_SUBMISSION confirmation run for the repaired GDN-Hybrid family, reconciled from pulled TensorPool artifacts for `run051-safe031` / `j-bunuyb7fxu`. + +## Headline result + +- **SAFE_SUBMISSION authority:** `quantized_bpb` +- **3-seed mean:** **1.01671233 BPB** +- **3-seed std:** **0.00134386 BPB** +- **Best seed:** **1.015700 BPB** (`seed 1337`) +- **Worst seed:** `1.018237 BPB` (`seed 2024`) +- **Artifact size range:** `15,713,422` to `15,903,365` bytes +- **Legality lane:** **SAFE_SUBMISSION** — fixed-predictor / no-TTT Track-A; all pulled artifacts stayed below the `16,000,000` byte cap + +## Per-seed authoritative results + +| Seed | Steps | EMA BPB | Quantized BPB | XSA BPB | Artifact bytes | +|------|------:|--------:|--------------:|--------:|---------------:| +| 42 | 2227 | 1.007164 | 1.016200 | 1.021202 | 15,733,879 | +| 1337 | 2242 | 1.007164 | 1.015700 | 1.020105 | 15,903,365 | +| 2024 | 2227 | 1.009032 | 1.018237 | 1.024111 | 15,713,422 | +| **Mean** | — | **1.007787** | **1.01671233** | **1.021806** | **15,783,555.33** | +| **Std (sample)** | — | — | **0.00134386** | — | — | + +## Why this matters + +- Improves Joshua's prior staged 3-seed SAFE_SUBMISSION artifact `run039-safe019` (**1.01710033 BPB**) by **0.00038800 BPB** while also reducing the worst-case artifact size from **15,981,262** to **15,903,365** bytes. +- Confirms that the compressed-code warmdown1000 repair generalizes cleanly across a fresh 3-seed cold-cache confirmation run rather than only a single hard-seed probe. +- Preserves the strongest Joshua-owned clean-lane architecture family with materially better mean BPB than the current upstream Joshua PR #1564. + +## Technique stack + +1. **SP1024 tokenizer** with a GDN-hybrid backbone (`[GDN×5] → SWA → [GDN×5] → SWA_shared`). +2. **Fixed-predictor / no-TTT Track-A lane** — no eval-time or pre-quant adaptation in the scored artifact. +3. **MuonEq-R + AdamW** training mix, EMA `0.997`, late QAT threshold `0.15`, and **warmdown=1000**. +4. **GPTQ int6 + zstd-22** packaging. +5. **Compressed-code record packaging** for `train_gpt.py`, `architectures.py`, and `configs.py`, which recovered artifact-size headroom without changing the trained model family. +6. **Sliding-window attention side path** present in-model, but submission authority remains the pulled `quantized_bpb` values above. + +## Legality notes + +This record is **SAFE_SUBMISSION** because the scored artifact is a fixed int6 model with **no TTT, no SLOT, no RLS, and no eval-time adaptation**. The pulled logs show all three serialized artifacts below the 16 MB cap. XSA telemetry is reported for completeness, but the submission authority for this lane remains `quantized_bpb` from the pulled artifacts. + +## Provenance + +- **TensorPool job:** `j-bunuyb7fxu` +- **Canonical bundle:** `~/parameter-golf-project/jobs/run051-safe031/` +- **Pulled artifacts:** `~/parameter-golf-project/state/tp-pulls/run051-safe031/artifacts/` +- **Parent repair probe:** `run050-safe030` / `j-br75brdy6j` +- **Upstream source PR:** `openai/parameter-golf#1545` diff --git a/records/track_10min_16mb/2026-04-12_GDN_Hybrid_DeltaRule_Warmdown1000_CompressedCode_1.0167/architectures.py b/records/track_10min_16mb/2026-04-12_GDN_Hybrid_DeltaRule_Warmdown1000_CompressedCode_1.0167/architectures.py new file mode 100644 index 0000000000..0191a703e5 --- /dev/null +++ b/records/track_10min_16mb/2026-04-12_GDN_Hybrid_DeltaRule_Warmdown1000_CompressedCode_1.0167/architectures.py @@ -0,0 +1,5 @@ +import base64, lzma, linecache +globals()['__file__'] = 'architectures.py' +_src = lzma.decompress(base64.b85decode(b'{Wp48S^xk9=GL@E0stWa8~^|S5YJf5;A7bs%Uu8wXbs4O{*J2g^P4X}8A*?nKeo}D((oAtmlzXSM1Ig2`L`+cv@?w-@3r2bpI{8yz9`;@SXxb8{$fRtA3$`M_7l-P&$A)VpsI<{M1(k?)Sp%fgGHf{OA(e1{%%h>U(XyoMXIPp+maZ<`Y6aE!)~96}-?&KS_k=U~h?SsP>3(#hSXx;Gb}nY(jTA3=m<)>eOpgmMpv(N6Jw4N1{;sYZhPMhU0&O&Da!-;hJL0RkdivHzjmv^(5uZsfYeq27zGmIe`KoOHIQuYUjFMPp8l;u48XK7Wszs%jwMD3Ag^3BFZA|PV)yGfF&9VH-(s2Q|eiU=*2gP#b(g1_keckp+RTd1ebYAlkI_Q(1KdgIzo^2Ajexh6Vo<-BmT64)g?{FY-8_?)s$@TwD&jnwEE94uXTfL)k!^9qGM3)Q`34S(SfW9B%*GWL@QNjM=A7Q9M@9S#*t9C)TqR=33=ksZTjaD+X4M-pW80`pt#r_W8U_;|k+Ua{=p6)56RyNUVjjaM=XPL{;3+Y<$iDw6ztH0YE_r!|+t|eW=X<2P0w{@zd5iBFY$CTrD*n+ol+(E42zm}zhsa#B?qtO=*Lc{nP&hfDdkRtQ=Ep3rLq>hVos*{y!iUw=w2kYqLrMkW!EgT-IHvop$I@64dqxYqCV@_2s5AjSTf;6;^g}%+SZf;6p2bFm~5gVdaZ;l6u*JAf0kul^?N2uz0!sG3i*0K+|_D7}U1uB^#T(Yj%9S7V277Q}3e^KEP|TnWsSNT!n98yW)qh?F`Dne{&h-HQW_;jl)yQ(JD0+=SXB6lPhIl5y&+;)mb@J7se?c1nHe2f;xjtWiwr%87?ToT05m1D7Ht^7wfyHwC&oUu|2#kt3@McM!NN*Xc(8l3poPj324}xWH7HqS;NT18Ws9RV~4Jb>@o!@qB$3Rod_D-2^PR;B@BW*;pxUq=9KFG^`q&c=d>!=yylYsps!cDqUp&i52VmLj6d^p4h8b^NT6U4z9CbVh$=ki+|kz+>sEkqyPVAkwo(WKMju~!K33A^GmP{d5wpd}cC>rGEH^_v|sZC>pk-|TC&?x5C&1Rrf_c^uk4hePX(VYWmHYq2yxenyjs>Yfo1y@K2Xm;pgPofy-WD7x^L`xCmBLInjBy|B5rtRG7`-X_RQx_vA!=wCi5)p_NE$)u#5le=Kip=y)gOL{>W!g584gaFlfPn2Mm`OuckQXPoC`4ykJQ?t?T~;IPnr@c6(Y0>Xi(9;rSI3(mK55h2yOusT&))QSD}Xr$z@0jT(LP!Z8jfo5%LAlprOO7;9m>d9})Qqc99#5Y$8$n!Ocag9SJ|J(&AkT9tR3=Ep8tYdo=BP$nEgDSOrG2*Uq%bHKitAx#+Ox%d78EPqpwjakDR+Dr!tnkELJ>vP9y;{XLy;%eyP9P@bC*dDiovwN|2OvUL5|ICP)ik0h;e=q<7iKiW2(+=ipjVsA%Pm5lk8}(T+hMK!GrqWo6mWTqJjgnh;h8&w3Z6jO=ORx!i`I#8ku6W*#@azgGJjEFo@ZeoRuq$0W!%8xJ?=Kr=H~3nLT`CZF(}?vt+0&L@w3j`2UpupFq;As;(s%VL1G}Y!UFNn#ueXiv06o}s21CoicTpwuuVeOz75vlEsW%_(K#f5hlGL#P1P0#0h|z(EZidY3Z8dMji`PH&efpmyR-o?}(jL`3gmDksLIN$l}HL_7S*h~v{e6xsM3a_zc&5~tYyPn|q0(A{fJx}h4x{?J+=Kzj`#?i5q!K6NZy1OIDyReIZr^o8JPPlV6hY@fJB8vbE&JuS72MPoTMbu{uoW)YXTJy_`|NXcDT1mgP%}3oj$nc?vPe-m|cPH5DvMkj=T`32U1H?b&!Cai5c@^>mFTtU(q;h_Srv2GN+>N-!`S-qe`6yhU`4v&-`Zf1vmg6DOleRZ~=7PiYtq0xqkDAs1^CmavP3W=1rYCO^60AD17JNN*DO@eqx3EQ`meU=>bQ+}A^PKmF3)1d@zn1FqVE*3t2MZ>lDV(JO&LEMhl)?7qmOO%lI&Byxq`w__IVlA+oaI4yAP~CY1%&f`4TTAxcT6#bGA?~utOF<)!z7&Uc5J8o&=;`I0_c%&O7lxa`;KyQBtc=v;6(+C~@~I-0h)Pklxj2{t+K*0b^vtA%r|VB(kekV4P=(+)bGWe5QIezx}!&X}#)nCr|F>@$j+Gn&w86a8m4=i_-z``GsN9()Fg#o2F|P*D)ivEjUV>Ii^x)CY)P!er`IvAsr1PSZrqUwq*?>JMP-aa(VP?Y`}EA0{pD_VYM>t&J4lqU#?>MC-ZE94FVL#)WRp}ym5u$zku}HFYK^f|e8*?;gE$fQ$g-=xai0%n#7!{L^7gyoh_RQ-uSD6Zr`O8?{`Bs>&WZEo2&+eRHw2LpjTu+#ef^s_DBpj&NUua7j=EgZH(bR945C$%@ZZLQ^c-gF0bMI_BtQxdZC>LFk-5F^;S3~Lq6MdhzPLYzlUvzGWJJKMFeq1Ne7!$^F+-(Fpeyhelf_G6bHf8;ZGVidY_ko-k8M@de+KHwM3|h})k)Y>0rzcDk%{k?+2Om?kA`nFUp5ydxZ3HUfwvftwoBG}Dk0$%IJEGyMm@zZm~kF|5PF;9`zDGw7gLuzP82|o0yyo`ZdH>sL3u2P&o7}?C2C^PZ3myM-DPK)MS^7ikg0XYSiiNc1DMuW8$WCb*7Iy^>jLH$!uP3v5*g*eN=L2B^7pl9@53$H&cEV5i`ev*&$3ZCZi2zhED2vUfz7f`VwL+_`2+UD0LAy^9r;IcJp|FFH2_YRp42GchCW1&r>Llk7as4FQh#y~L;lp20-;&-ZSzR*4Nt@MU~O5hK(+@9rQ?Ofq`;i)w<&D;(t-%agZq-U3vMviP}gIcwv0ry_`#uSdQa()%F&Jy%ptAx}+@iu)78qNMfI(?JEO*f5)O-n>(VW&5IjzA*lWs(S>6uZ6TNOYKN11|YqS)(ljRR94GHeG+uJ#ipZp3!F3nI9S@&0Gxu3d(YkjaPn#O4sJUC4@~eG{3e%kMierjR2g_`htusm|mB5)Y?)NRB|>XYVr$4od!rGOhzb6HXk$Fe4-jnr=?AU#HNpv8lqu0KpeomI8)I!PU*_}Eqo1&q3Em@EqlI>MPuI$R7Q+D2pCybW{OtorvR;iBdUlx1MkRW{}FHsjWaS*(-GE973A#%V9?Yc7$fNmwpIzh7;7cbO3eVQNitYRK{}WiK3SPBZ>PRZP?i>OvK#oCGXWcm_&w?4xFI9>P-&+H*XbbRJ9k3r)&YxqN9*_OI=3JS9JgRy*CZ5C&7>Ews3w-?#Ea@1iy}1bEZ`+4vmPSXPoc|lejLHIoU%sL-w$ygnC_j6<DjfUvISBKCOYpjiYgd&995_C?GN6Tj=MXumdE5pq;`PK^FiVa9Q2b?>*e-MtQdhH-xZA`VjHtAZ?Pt@h!(YS3dvQu5{RF_8?i(*qKG;qz0H;1LWnQMd=^6x|yTDQ~|X0DkYu9DJfZO@AR&Gb^Y$o-t{50rkVm!Y@uz>f8EqSmB2np~O?XMG_+ZMfKa2SY@gBv(FynMU>}>%1uFDlhkXvHMlNP$*x+iS_;Xve#O;2d3aS3wPO29oe08K^Ykwt&1H=ERDD0`tc2sQf&m+B=_=DO|4m7TX+9lC96R2FE-L*0fnx?-Yf)>xbdtyp@o?8WsT!Jq@#D#s8Qr2U;pU>~21-#ZvNj+h7D1Sbqp!S`=%xcJ=Os-b;Pew)*Cp>J2-16oU!O;DR43+)p~a=k>+o>%p-CFfl}-RVA75zTo`{rqu@y{M_E*GbenUK0kRh@Kp%<-9-y60jZ5HOD25_4GD4VJ`%Rr~TIb1M@8^lLdE`8p1LCW-LH}ZV(B==Tsh`MNvfIM`{$NU?47L$t*QjoP2>LCt+d#1qTPVCCClPGMc9Xf?xWeG?64q(0tV^SEQXyRdKp@(>@x3=2n)HVdb*;ie%yr1H!y%vxF9jaP^8RUz9eCG@_b9{?rKWpQ{BL3?J0l`29|+<>~K*M1f6(vNaQN8rt?%u$T7BSZX)^TNcDPvRves2A%%MpG0(Sr=Gv4j5_t50%ibaVnFY{*L5~!ZHYS#-}c9N7Jyv2+%rQU|QbiWnQodW6%sie}?-af1QRSSL2lC8mVgVj3|}%9j2SWE-UJA>GNU0AN2Fw3ifb(bL8d{T!^))d^Y)H5AkbE(EMiY$)x&GQ6Fpisw<+OKXb9`jj;>`P#l3#%Rb}gLk21)TkQrqFCfO7)__6_EQiI+LeqisY={74y)gr+Z0OWyXJ|O`3v*~^^#A3&HNYKi2_#&l)GuH(e$VkJqE~bRpE6D8pj)1)Pa3IA)${Bb9W;KBJ)pDVVL7{cdGE*T>C_PE}ZNHWrUbarV+~pL=7j!>NZxVqBVT(ICrMygQ-N8G;v*LAj0e>5Mhjq#(Z`Z;&fxC_9TQz=x<$7AOogW^`A7jJW;_r5IqZ$Bb|>@v~B&7&NGAQJ4O<;?uCxMSV=qU-Ism)5zjl`o^=yLf>(64MGO^z9M~$?N|q;%{j1wxL+6ctZ)TK40ELOxc^V|EGyEa=CqXK9IFaHo0cR&X)eQI+?Osg~f9j(P7w=>`hhB2oLhAwba|b^l$6Zw{BB3D%pICv~{&e^*@?yX%`kvM*}lFXjXF`QXN`V%%Lbi5gECrFIu$^j*rjGdh6c33!Lnx0H156gF$<(UCSY8hnwRqTu+?Q(Yq2{RF_@!|Cfhz`6nO321;32A40s#PAQid&SP&s=*eQ2cuA}g8ZFv;cP)S)yKG-wFkwU#LP614f$)#|>(^5-@fr-vlPHx&J@S}O8Q&gSdvrEOD?~m-oDbtouDTi?zxg||zS{xX#D@l3fs{L+IaFLTS7OEswe)16cOv!C0S-=R0c-51+&1Q;i7mT}4?&S3bFa(M8X-rgpf63<&Qa%5?XSs@RXSBPYB&La_icC`VZDlfF>rP?=TAq|bXq!vl_}3^Sdt_RTm|e4Jqe*@p^8H*fh-p$FYdl5_a%6$faS5bcqrL3XLP{O#VFkV&)A6g~_cTjOAOGor+Rs^v0Wpui4Aav$W_SPq!EW3W;+CKj00HMQ+Q$I^sD?+7vBYQl0ssI200dcD')).decode() +linecache.cache['architectures.py'] = (len(_src), None, _src.splitlines(True), 'architectures.py') +exec(compile(_src, 'architectures.py', 'exec')) diff --git a/records/track_10min_16mb/2026-04-12_GDN_Hybrid_DeltaRule_Warmdown1000_CompressedCode_1.0167/configs.py b/records/track_10min_16mb/2026-04-12_GDN_Hybrid_DeltaRule_Warmdown1000_CompressedCode_1.0167/configs.py new file mode 100644 index 0000000000..91d93596ea --- /dev/null +++ b/records/track_10min_16mb/2026-04-12_GDN_Hybrid_DeltaRule_Warmdown1000_CompressedCode_1.0167/configs.py @@ -0,0 +1,5 @@ +import base64, lzma, linecache +globals()['__file__'] = 'configs.py' +_src = lzma.decompress(base64.b85decode(b'{Wp48S^xk9=GL@E0stWa8~^|S5YJf5;1K==%Uu8wXb(;1LpQ-~@JH;7bqsfvNj2i-6-~M*R0t23rwIc7?+`^!VD6uagcoK6DbS{9T~420xAWik!$biWb)rrE+C-SGfkiwhV0~r&>A7MzvaxD&2QbJ{2wIdK)(s%&mtZ-@C^j&Il;>(HV9Kdzl26iSpQ@}+W8F+gFd4uyfywfyMFM`tZ6yPk2@}Bf`F{`G|QqY_~SLO)^$j(lVw5|@~26gr#@Cy$?g#DNu)(MZ3zM3D848h-pG^4;H!1seE8;!)*!vr<*hh_M)n_J*FkAv3&y+~EaG*xEwZ(y0{Dluk1)M?vK|r-z=2q;$f?Np>RAmtd0SnvDX9u|NdpKRv1XCu)-hRaPhu(+3vIVgK=%?W`h*Ir!o`XM-gyZHpY(;A=WQ%uIy-LEpk?32}<@uwZHb{=xO>@YgZg&n)w-2CzKB!f!PX4{sbfc`i@s;=Z)Js>=-iM6SYI+Q(`U`MgV{}Z-mMs{`4u_n2wsGC14_Pi&1O3GbJ82-<=%ePMG6(KXaL$5W57RMv}0_vMs`@UkDBTH-R%ko})Yg?AOCht_=5RD#cvY2)jQ&tE*`7?1>pJTzY%sLiRkLAqYJr0qyGdhd~uy@0D5xG=3C?waVq~$|Q#!JCX&-oh{sufJ>q}>z-_UbAeQ3l;2VRB$MCD-_NXhRZ#7v%p&MFs!t`_Y$`GiU4-YOmqjOJm$ZOflTGRdW}mWmDGGLnOW%_=;rSv3Gm$hgn<~9@hs)#-g{3+d;Vo~}ax{{l%l=VDe2Bo^B8Lcu<75bM-hIE)J8?E}g2~HGoyh5%fYjL46`UGK$i-9Ta^wXSK-7bJn%)z#XM+i(MFA#)^J?TaE?@kIZ=V4zfp$|^j3BuWKRuaz*OmfluO>S6^XY2?e9Z3q2+1CVv*C!s#1PtU@V=DVxEFsS>8lv-tc~n;l5Q+cxVMb98Ou7vHP5Xf53+_dNGNVPzcF-5SE$m+hy=@aif6he-v&MpW=|DABH+ur<2v|dE{-umk+De@IBO_%R){)H38d%^cLt3+fKpUUu>@n&H*74d?B``ayAS3A+#)LK`<;#TH9chg3g$Vev#d9;6rkcw2z{8Av5$KuXw~HQp#qHmbZr0tCM0Rv?5(Z!T{1VE0a!W`HO!^WR%`g5t=J2qTdZMUaKTx;aydCH#sZ@<=&YBf>_JrF2h4Ui1DF2j!4AS-_r!0TXguJy_Cd2qb!UnH_w6VF@x+Cx0<&bhA%;63e0<*03>d^cN+aIA^A7t-(rcNfI6;Xu$2a{l7~qD*SgrOhYLRfWcDOMD5Lv#lTqr9A*Sm1$8q{^TlJtkb^$SY;&`s8wb$LhgsM8{Q<7+^oN0f3whU(6?O#{<$}x(6EOaJ6g#>7G(hrva1+Zw9DbJ9~=z2MxkEWgc(?Oh>q72Y%rmXZTXq^1PT3V+P_fOmj`5E)7W<+4YyPa?o`+LrqH(x$S+lc;?G=7TPayCZ_ObR+uX*RWr!B%cgKP&d9r$5$N#GFU4BYpJh4vL4`iOT-Liko>=)Ge0m;hkVL>7N%;Jwg(0iFhj9)k>9aO3p|fXIHYl@|JtB-j>b=_+B>2rO|k^*?`Q;02H#PgMXrmwTLVdIviw&YKfXNQ_cUJ(AI8dSv^blDyR`|Dt8L8+|>6O-~QzD0uwl*?Kb662HO2G)deDN*-_i2Buq0Jj)^HB1So(hc&xx-C(;4^&S)^zdgo7Q+pqtgue8C|_~NXEFB1OlKW`KK7B9i}d$;^j?XjT$%Klgj2Avn{RKNWLXq3&n9w$2-ERv5$anN$N9&bmW4#gf?MSr{Pc5s#=#|N8$g3Mr8db3%e+hu7x$9%1iB7JqbZ#B$Gs0wc7o)julo*-*XWOGEFu_v53ao$z5T1hP7WY$Jx|5}ZSds!FUZV2V6~eXkzs*4E#{{+1i1l01Y@N~#TB~gInNVk|xG1F$rgVBObj!*ldM<*|;Ng&40bCo6AGx%#DXhP`_q6skPSu&3*eVN1feFJ%!El`iBz#>&8_SQ~IYrbWQ6{>;_&Fm5P|)v6^Ya?98&GM-4H-jIaz0C$2+7ayF4$#X4`GpNAF3n$2^*|(mdbX);jQo0ct1+!OKL(aClgAV~;MS4z3%E4T4gM6XbX>2~TW{tT{4pV?K^vQf@uIM!BQc=Nc_X|nyv~6XxDB=@ZMz{lVB{^(oQwytlsZxx7AGnpm8Y=xn^jYB`nH<{<}iH^YB}3nZTcajRqheKbTTLXijTQQz=fVf@=3R!VfRLBxeRz$_nnEZa+cj^zV?lTlaVj)Z*jO|}{8dA+0dfL?kT!^~J*sH)Gv8D(2fbAKt8J26|;?5eZg)D;YU0|H?^4>PJTatbmw;i7=vDrdydv+jEDJZ>MyJKsN{<<)A*?G=C)O%s^n-RkbSg8~#GMS^Pm!ScO#Tvm||LI!2PY?|G!Q1662hJDOgnE@xklT3D@Q>#pf-Inv)mj^podkVVsW018~WysAL~8T98Olo&qHR1zjnqs*RgaO+*q4v%*5#Ypkr9+pqujEBz;Hb&?XH44Gj$0)OqTHFhVe`Kl=-yu`G81_q^I7>aZw%aJ@{$TtegYfCi7uUV5|W_SrZC;GL))Py^zuf#{-t3e${`$~1mmW8?D%k7KUD?fA2}=-Q-@bB*H2$DoT9znJk6$F7?d_4YPA!^S`VO3iH!VT;xCbvDqF9bZ|uFftU4*kWSdiDxl*`9;C*!R#svA_^It`wXBb0@{w+Bl@cE>$*^|bU{$Wu-37z@Uby&*Ci>heneX7FYuc~1$lYH^uQVO8PjS@zqDE!dycJC{6I!9^oMg6n1D3k~%ULHd-Ro&mt{tJCH)A*9ko)HsfVH}uAJ-40`TxRQ*%V#IYW$`>%1hv(F7l(8<(rnTGY)eBgNS~-F~+W`GnFL39C*TW9?%yesmSB*MD$MgAOMy45Pxs7%NKD2C%aLSRJhtE~&xVM8ZY^&4ONUvZuQ1|AG3JZ?#BY6e3EVJwdia!^k0Gn@Y;7Q{(R(7+DfeHOD9(&{p8WrMmBEl02hdB>2?|sFLw-a?8yXMXS90(#=R67x!b@jsv9ajQSHx>ao{2SQuoFiaQ;jw$D)b&Jh>lu1BWeoxTNu198z*-HLFh8)UBaP&q-0$)h2y%g^i1i5^i*7>oXk&*O%r*mahsT5Cyd<=Qywf;>MnM)^amY;`lbr4FufDXb(g|0e55wznIgrk`&ahNV4!G&7EfH3-!*Nq&G5l8Qx#?@)#eM?yMes)*xodFmKk>(cy2a2)@#zoZt6t@9943pSrXUj5)`7U63hsAmU%YgXu2h}wTkPZP+ng5MGMk8tAjX_8KWvmjLvK=`Lct8)1p9Z{`P+|f3|%VG(@RA7dDk^vyy)G6`T3t~A@R3#jDRg-&HeM%{lCIS?aP#5&xn_K2Jsa-<71Q=h3sIjQy}K;67hjtJ2akcflfh#%Wf_c@D~P^OZ>^&merOlbC*&@lHAA~3XbmZ;l7CodYswrU4Y82cIAS7#l8`wt6d8OTPf;P1`8gEOaH7k_hr~Hfr%dUmMexf0TX8kgX%&=U74k*5{n1h4Uvj~x;!HM(p)+8AEvC2H>UI1dw?rU;GC5=?V7stiq6OD>R#V>_yn0~;-2kRo%JTp)&|ajKWXWEeb;;akNf%xieP*q8}P)=)MXwu#jplNa&`TKAs$^D$=p(2!9u!dM}j`*3xeKPS?e<1hNMEJIT@uhvsw6HEP>^qG<*1rNRhc4;a{*@;d>!z0O+&JriRk3rBY`=XX0UN!s{>2rY}Ai?A&t!U0BYmlJQF%t?9^Nnx^src`{%%sUl;jWuSAsz<;Y7!Znkk#`qu)QP#L~WO9i?&-O=WI12gtfgO*Mhc{t(04dCI@JGewwWWCTHt_tp8P)MBQtxtJ3KQt3uPv^_BmAwy2qsae6fAFV7EhBcfVQp!aJ=Rjo%{D~9=-MqXf5<0m*I7ihgsU;6yGH?~UYX0&|6Bhj5!`?`k7M-w=)Cg+#&^)?_hi!rInT>)qpWPMj2VUFOk4KD`3rtr$lG|o`$87D^=)!a3~+jY$$s{Y!!T&6A=N&JoCHiOx#H5QP*Q_I$&hky@Qmc)L2Uln2ehCCrjY7#lR%%_>gNsO346pUVMdFcINKwthhbwP5s7Ke9P|_hcM6?xf1De>S=Es%qbTX}#hA@n4G75-ccN0)9v;1O(iBjyfJa-JdgS(0aU15Y5d;__Y=8bPk!q@d?bNzhiu7F>w+l_D8%THoiry08K0fK%)Y>Ktovre2wkDE$m7h&Ak2dqGaX$j(XC$?7zJA_{~cJ8s~&|MEhmy=UreKgJpIa`{c%Tw~`?FMi%hF1bfcnXvIGPA5fa)PEp+!lM+@u!v{1NHbCLiY`$XEA--eL#*E{LBu9_g`Zfg;;bo{_f6;a18*#Pp4+#IfAjdYOWg`=Z!Mzm9)(uk;j(hj}{j)li7|{mFfIueu)3hNq4^AWH6XNXKYg7%v<&AC=v@dSLPeWBZ*G3Z#IP7=T@*^4!e{{jUNGHTBYO&jk|uSEX@QB}4xx9mZB+{~=@-Gn~T}L+Wtqxp@V$wba^?d86Pl_$x5Z-(rp;f|A7s`z|3hIJ3)HMw-fy3qBOd5&FP09_vDj2xpT+nGQCSYGB(~O%N(vD*)i|iFo-)@!7~gT8PRti6$3T=7vJNt-m+!dsNx+GPeIT6^>HRlb=M=?@z{j#IYuaQ;n@1hpG+vx?7t`L~`Pabg1e;4OiX=Wc=kiE~A-SZ8DXs^rUNH2BI)Q;u*>mlW^ntH26bPcc|3g@>cm9`vY}I2^ePey&tk8T0vcE@ay_aAgg9E>o85oo(6;RY)m$&ry(aRkRC#!VNUGG)b1YZn-4E!;1-@^Dv)JGD#WUm&Mfq;bV5c<@`5j_2Vef#mi-LF>MUUrHCrIW?V|(Bx9Z9dW#`d>yi=U@BoAwlEo*`;(_nq#x$gI7bwwq7vEAJ4+GY8t)%-v7GTj?qLvQ)Lutt|!H)um6SYOu4*9v*h)neT%1txS3D5oEivS0L6XnT~ATN7Tm$JFr5tTK*8K5&KzWVbsn*c+mB6F7vs+xt}MiGZ||Zhe$#p6ZNCy_7(c%BhJo7Mqndc&tF?KQ>_98Bu6LkU>?$_x$eG%_K+%`cDkDBFc9hHK(wbHO>pqvQdv5xyemr#6QD@KUrA7t9{07ff8>GaX_uIwz(hrd-yIcws3Zed(~K8Re?xe;sz;F#UR_hw#=Aj42H7PU*cgduY<7>Zfuj7*{Pt#+Um<*C|DQM5r(Q2j1a_ec;NutN!Hb0T{x#^6JzHEt$SKl^^Ldkw;$T;S#w!uk%224sZ_h^dk-+`u3Sr?^5x)0pqmtDzH_T)L+jz{l-zNGEZ*BAYfa|7GDgz=Ql~9{X)fUFQo^Q*`2Om12L?RsQnYgY?0%*x6D0NjC2=|0eW8(ZSt3HBh%h?=?c7qw5CxDf%02$gH(`K{dksbKHu|!3PKh5@JIvKfa{BF0p&gli*#{V+m7<&hfG$%9vJ$fdl#2zdGjMhA@ZZD-H%zmid@~Cd85e|jK=U|x+@Oa=)Y+|@IUnlV`kjQ|N{uHQ#2Qi7riMwubnQ)pll5Q(c%WMhkOq4}d8`gN#F(@6~e@?jbYhv;J-XsXnTgKNP+R8(egWvt!Odt_=3&3W%VuBIl;}y9&DPY7`R6t9cwl1?$GRh=J*Ie8nxn{6RyJPKFSylHS)8H7p@fmx)eUA<(4R)~%)1vkIpSGd^tX7&s4nl-WUMxO%$%zPOF)UZZ$^bALQr#@qCKlQE_ctPDwy&hRmbeKiECOrnA*I~=79HvBnr8afyE6!`4>vAS(SCaRRDW|!)I%es-8BX77ey+E2z1cz?*)(>>vSHRf1wacuBy(`qaA<}i0`;ajD?#S|Gf$_q})_Jm`}*LZ<_9h>0^vN(8qPpxO^e`_Hz=i&xWm9VDQj`FuN!c5M)i5_hShTLDzw@;u|nd7bxW%P#3n~V2(*tEtL7cCKzhScv%^+Y}qJ^O%U}De_Iy^vwcl2a5#W9&PUBY1{9EmMx!`rzyA7X+{#Mn-viD(F!&%vPNG_~GUdrhKYF3JZVD?gsOC#U_eLPJchljw44ag=zh5Iwn`eGitQ`zizx7Qw6J>AD@HNNX*&KBrMHnA=;9tW%O^S|6&)bW*Vz5a7&rE6CD!$;u`Wm;z%Rd*>5G7P;Dfg%Pf5?}6H*?Ia+TIyj8OJ?(wkD4H9pQ$3GOjD>qL!R$>?III1>NE+msOC5oQnL*6mp54{DWkXZ?gv1P1h)Ej6e27n5^#C-&)q@<76;LT$QII|;{BH6XOQ$PeY|$ez;l)9@V5&A}RYMoiSLxk~=OB~rg?A;wLkUbgPni@1!{cR$qzJisDgu+pJq*@hIeXu={iy!tyzFuzkb`pe3uR;Z&9pSVwXl6VeqbGzV1@|V9~78@ua()PMU@#4vy&63_e(?czDcTI3#n2E+=ta_1v&B2*zW0^v0oO({$;o#b{qh@k8ZQ7yt#rR&`4rAVfhS%-Mxwr(K>g9z_khL99t0LeQ1_v&X{0X3%|Dyi0<@{SRbqzA5Q*@r%@|_(_6uzMOZq)3LH~ABH*X+7H-q!yYs{4oI{&qLM)`*+&e)EQU-_wGm&xcYNr%_`|W97VaSmAaB*1r`2Fv{NLOfky1;~S?t3d{2bgACToz`^LhfY7f7suUovD^qG|-7zt`*0Xv;_8Z}a!FIfKN~>r$#LJ9_h{(Ms*q|`*hbS+-xZ$0!iAjw6jhf%cva0-r-l%5^f;0%b%_@Mf0O}D5f#AZKTs?bD%5-C-jfTzI)&%D*Fzd#zOlBnf1Zn*)9TNyr{NY%gmTqcC?~>+`@Xwx(h~*}zqD?53}-m`Afo+Q%2B4cKlMmY$}IKupA?Q2k_U7p?GOt^mL)TjMF*~5@EmZPviRTIDzg+7tEMC+7kNh#uj<6h`zs^8@=Zw~WZEGZlY>T-Ab>H~ZFsj{C(!^iS2*AWDVk_Cao*XkcVhbHeDcF1y$5&sWUR)*h<$9b#+~jTP!t4nnlFaSxmf8w{)sq*n%%))VrxI(AAe)1~IjWkLo+yb2FFX7NiWK3;4R+xd`~E-m^rO`T1N^8U~erXTB^062t`GLTsc=ni?Di0VME^vY}A)7GyIS*I<>kryy)$$rB&>;$;M*F2W2wxEw!8LXz!q(Q@doS|f%oHJ|T2QhSZZ9C4{u!_rOF@UEuGjMz_bC$S?U^ZU5o!n4J;M$EXKn%Ni(4G)7NRiQeTVQ^02vn58DZX3AXPhJN3~8v81MJf_vF*cv)?$+ix1hm+N}mvQ>6|ZZOb~_`*>)x2w_`ZGw0$oTwpIIt2wb=mqh+KE@q|*hu~Z2%vK_^wje89cn0{l$B6gU{EA`bUo7s%i-I1=yPodO9uA05Fz!LcU#f*xOG7W9rGr^Hts3YWK&J7LJ?5)#RuifGU}dq}n$KY=robJ#GI9c|yKz(PgZG_fX_(B8g*GR?4$$r)9~h-NM!>4xe&J**h<^vFWrXg(OyHP-dAA2<7oW8e;jU|s>U$vzgKcuKBL10>KvJ(Oe=%g$gJZa=9Ggx0`@=hg*mCkJ$JjKR2iov`{f^-LH6g#21(5C$jeMjxzv>dTQOXcO6O>PckEP4_Q6$mqHt3j==(ND4b991DHi7q#kvQcnv8it{iuBW|u29mMY4oJGq3I%Nn#=y?t%r_?WUgeY2=C3CUbeS5X|a7@Ofh0WHBl!mRG39*a6M%xyt<6p0j3?{SYDnT&U)pWRogh%cAbohLD^FFHU(Oiw0NeF=BX39&UJ{dM}&+-!4cRjA)Os!_o!J|?ghvI^J#q+%nXhg$+0HOJ3+TO4(D`#!={;U?sUu6<{LPcSFWi$k&@F^KVd}$FO+aT==mPec0i^8oix}K2I#7nv-=Q-=one8?5kWz?tiqH)Ln|EF`x97OUSAA*a^_4ZnJlLzDopbtxIYg?~$){hXP&HI%U-)$e7AT8VEFIz%9x*;FMOK81M^fbD_@gVQ68g6V+J2(^Q3UQs$KU2XeDPV0Q7qwHZq9&H<)dZW73>g%4u){qkb)GfA)Px%odDoWK0Mpg^a2N$y$O0p8Gk~^YLxg916?0yoP3K{->)!;GFhbf^dq>uu-bVzsj5|tDL!i!Jzd~eaEj4(CI1n6r%*fNI(vlyta-Rli{UkWju_U%-9HFlRk4lps43NJ$BGIg!J-5Z&yTw|nxBs~5%*y9%2I9(5R=SQzvYe!rX8bcoVswm6_C2b#)9Khd+a2!e7cj9vlF6-(DiBE|lcSwjC1Bk<;A`hmDE21P`OZsxjB)PW0VSTEA_Rk;lA9Oq0MGKuJlVih$v^+$n{Bq3K&cwyj_$s^`98vBxOGh^c++IL!Jyv>LdPeol7dSr>VRfi8=BHaOH(ORFnIS$CET9ykBJ7BTZU-%`);aLgp7bj5vQa3KtgJpy;QAY1CUMI&)H|~g9T)5_$^#FpYr@;BzmQd6<#I=JO#;~bZ9m`0x)37-0{Xieh6!5|CXPlOD8X#^cN!9t)`DUDn*2Y~vM)H0^<1_WpyDEIs;APzv|1(U%5P;f}AW7Sd7nJ>*L2Iv=d+4zi!5xfaM5NlHtt2EoXacHPwnjo}Xe?<8>K0!5a{i%$cb6-B@Lp32KvAO6MdCK_NnDxVaX1VbCQMhUlmicQ(L2$EYmt5`sI_Ya~i;`%KEBS;^&vXrvm3@h@GQvZReMU252kW9wt(gFg1^|EsJ5$DhK&u`YFwod~QHRcJHORdLdu4u+aaR#HnvIpt~zLRB9=;o%cmK5g8OsB$kPBNj@32K||d*6)O_oT4Z>9XWgqt1F_#kOE;c`(cor&zMNOxUzMf%QX|ac3u+P#SV7sW23Zm~1b^Lpw*L`;B46|x*dNf_hFI$_C0C@uxhslbVbyny9rR?wgZb@hphzuZ%jD&>)6bCowRc(2BOo6uK3H(tzMXaF@)_Xs4+Wt0V|NXEyQt^j?&h(d!6M^=*c?@<*{AASr}E6hed5USGmX(uKH$%ES*(2hQFbP)L*W`kIzZa*qe~v*$Ez_*Qb|m~J4|td(nfuJd%Z+S6yCJk23J4_H@4rpg=WAFQ&stFZF-^+Bjx^*is)7qJQZu?%7q_K^7`A68fd?5-`=anj8b^tHA@STq4Xwabz_2>`#(@qgI@iK~g^ikJ3V(6|{{ZuY4p_OeSyAs4Cubl_HzK!HwO?{KET!Ro)8uXq3OHNzBe;+WkP;fhM@rGLlY-46cNrO-pqRNP!+*&+M2MRV+C7;vCR|rc$%4&_@IpJ3*z^H=C_Ey2AAIHv##4r*RG+$K7mT2DxNbPkSwzG_3cW?gT^l>8`!Ivl<1NbiM@@gFYpVg8=l6kqimyF4m`pV7v;=VmBPO35dzq4;sK-hej4SX1&mx9e+lePhjoUZ2ZWjaqf{6uWxg2;%07L$ku)Il7<+$^0puw5NIyzIJTYHTR~0v)3Y9Zmntw5<}q+8a%siTx&E<_Akiv_4tfjj;=-V;?j7{Te{fMpt+S`VrbMjk&zbUE~3sDDZ%zrfO8hn#k<~7n*%8h6Uy)@|JlPcP3QcEFm|FTrjZ-SoUiVz;b=aY@EdCx-0;nFoJl!(AdP8p5)5B#`5(Ua17k300UQh$Fj9nzN*Xvyu^_P8RIRQv@@YIfPp~Ta3UV8W2KIZeAhuc#iXAr~l-k6)S>VgNRcgna*Y4wK;f|ISb;%{%`T90C`+juNkqxZ;Un9lT%uEp|C==H(GR+j#FS!qfS^>u$JOSH@UQ*gmOtF8BN>*n5$Ip&2ijts&`5S$F;hi`rTYA!55cHdPXDQycB#1%+rq~Tim|FVUhCPPUYbqcZD(T2g6h-LdpFbOrhp+GoU?q>p#Wr`!2f%anvOQ+gk*YeS6gjOj@_nO0N&rXdRy}5ov8kPk{Wu%Aue8S@-yraHJ-o+}L-CJ{AwdfHax+KoT1S1;2oad3#uvs2fe>)R{&s%?5cHV5GCFpHvJqwu>@2CW8uD=Uwyb82qwc;xmt!d|!u}M#XfBt?(Z3s?U5By--(Ovtb=tR|m9HqM1zyKJR<8p~E|DPJw$v(GJ?PI1iqOSJyeH+0rLJ!dcs)V{gZBT#0M$a@%nL12rg3N9pWte(i9y7U)JucsjB!d;MpF9-8ccp65cR4cCeJ=`lJ!_&d9G