From e654c5739e4f873892b2c112a5aefc69c88b425c Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Thu, 23 Apr 2020 22:08:19 -0700 Subject: [PATCH] Disk Catalog & Loader Console Command - Disk Catalog document has been added to the Doc directory courtesy of Mykl Orders. - Loader enhanced to allow switching the console device before booting OS or ROM app. --- Doc/ChangeLog.txt | 1 + Doc/RomWBW Applications.pdf | Bin 140215 -> 140215 bytes Doc/RomWBW Architecture.pdf | Bin 396943 -> 396943 bytes Doc/RomWBW Disk Catalog.pdf | Bin 0 -> 130986 bytes Doc/RomWBW Getting Started.pdf | Bin 166220 -> 166329 bytes ReadMe.md | 4 +- ReadMe.txt | 4 +- Source/Doc/Catalog.md | 828 +++++++++++++++++++++++++++++++++ Source/Doc/GettingStarted.md | 5 +- Source/HBIOS/romldr.asm | 167 ++++--- Source/ver.inc | 2 +- Source/ver.lib | 2 +- 12 files changed, 955 insertions(+), 58 deletions(-) create mode 100644 Doc/RomWBW Disk Catalog.pdf create mode 100644 Source/Doc/Catalog.md diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 50f5f407..c59dbbb3 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -11,6 +11,7 @@ Version 3.1 - WBW: Support TIMER mode in CTC driver - D?N: Added sound driver support - D?N: Added SN76489 sound chip driver +- M?O: RomWBW Disk Catalog document Version 3.0.1 ------------- diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 8bc1135e2ed68689ef93bf92ab3df4f12e39df52..4e1c4b27dd16fe4b5cedfe4a8364293e37aea1a4 100644 GIT binary patch delta 111 zcmdmfoMZcOj)pCa8o$_$jf@P8jLoO(|6-JZakdBjVr12Hc5!lYGd6T}Gjnltax^wF fw=^*|cQUguaB_1sHE=a>wo|Ynq-6RmWhPkw30)nF delta 111 zcmdmfoMZcOj)pCa8o$_$3=IuUObn*$|6-JZakdBjVr12HHZ(GIH8KH0M`I@=Cs#95 eLo-KL7gI-LH)A7HM;9kM1sg(2rq5Dlk_7{#IXT%W*br0_t6*oxRa}x-R8motn#N^pVPt7$$fc_4>hHz{08@`S(*OVf delta 194 zcmeC5E73n!V#AFT0V6|ma|;tAQ{%)mQ)7c9qvjVW+h3$GCU#=Tv`4;U1Y#y2X5Jq8 zj)ngvyOE)xp^1sf^!)3rGBD2eN!MBDnkBe78JIg+IypHT8hHz{08d{yB>(^b diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf new file mode 100644 index 0000000000000000000000000000000000000000..72d259f0d3432f33d687760bc376fc0a80276d23 GIT binary patch literal 130986 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

eT!oK%se9QY=0{1_X#Xq6d@9-@zbe0T` z{KY{1PxzMi4~X;Ud;c}Q{rPtPGj#mFQAP6p7Ips%IzIjTlkuKkS>JQ4VWM5R;zvct zgpu*GNj^+G157nXi?8CH5Lj*FFV4?O0Od$H5|L)wUth};k~VCQAlz5; z-M>04uL-bl?3?K9>}}`j`sK?AAvsnMrZYc6)HaXCp(SYnzwP}ogB*X*uD+^I@~pMsW)FA+T7aof}bxiain7yrkvIo z858A4cEIwsRx?u`4yrc!?8Y_>FX2v9sF}X-$z5lInQa4iP`{HyNcNr|aPWrSSx>k;vr z7mw~4e%7It2+|kB?_dilH9B!)e7<4>s|eG;<-pU-=HR5`#XN1;fVyqiAkW!2>B$%|+WRPhBq{gjM_c@p`?CH5 zLOS{xO7)sqCj^>i#XUVM8{~L5mpxAHH&+MuuT$MludCSaJiIvgn^TktA~fNRK4)<& zOFQmC*4jP|WrIxr3Wol$>NDr_djeIQS+9|pra80n9gcnSw&p?x!LMoV?DH-0%w_B@ zqt)o@u6wD(cT+j6TT8Es%zwjw_eYz+M*mT_L2nt3c5bKX5A^g5ii*%1Ws*;sA^3HW zz2~i8lJM9a+Xw>U>}Q*zIjMmsLB=?Phvl=h29&dvi&) z2COIdM}bQZvf1c14px27D-Z9p%_EQ%w|_9vI(GX=#xEnQT(|EkTCV0ogHUkpc4x(d zuQ`v6dH4Cw?FKqz_JaNUso=a1n=j$uoUQw(Dt8{g^Q5|C7&F5ZW&+O z$fIdz-Ne;og07gnR;|37pfKj($NQ~pg%n-~&h9R6j|8LIvUoQ490gTByts%Xjy*Ki zYZm{JJ)3PfY{_3XQwMfSCHLIj#&V}G!fw~&FMdq)U^nb>buCVJPRef0F?=vsj!sLp8nsi1r7BAu6%Tx_V}yDE@L%S%V>6~e8J-6RoA$#FdO#ui|! z{72{pCIS=oypsK5BZDlw_)RqUx|DBG7&+KokIGW?CAr^3}=t;eFkKc-z#q)Z6 z#rrtkm;l={{#`@~NoiRPpSG|kpmY>4uUspDc-_JI42qvV`W}Mjr+&N^mTK&GQh7Gv zKsTx`>$I8}Ne!sFp0~mHNOGY7$GoSc*QI2@PzFi2BCl&j7O@zieFiO9#i-8jKp-x; zN4;J*Sjc<7!AJT=r9>02l`;V%ip~%MS_f27f%LE={c$PE0Ki8<&xuoQq}U7xaGwDo zCl^%6DfS8oIcXFgp$q1`213q6AmmJm49%hfJf&DbkAk>6(Cks=om96vG2mMTC~bW);B(Vv(Jm1IhV>xuGsrAnik&K%dexy$+f>IHpt;M*+#m}I zogxc6G$esoVN%8OD5LHbH$;=H>ng1j4@8l1z~Sm7injuMK}>tl}Gmcv=pk41hG%MS;L0jWis(41uPNy;1-cs|4`nLmGg0nc>3$7L5?M4h-hfo+U;&xd)V(Sr4pi=_cWUc(YN=^Zr-#)Iw>G zPyj!_kO9ioLlW#xtk8j;GpfH94!#U|c!H*w8cMkmgCeL8phH;2>V^~a%YJD4rj!|C zNCLW?@MqNlRz^h@OV6pJd{@%dAqcr^ z5M=`oD=C_<=%V|~M?AUJ@5kN7mony*GQGqZ#fUl+bzS>T(vzw3p}d3MyL${U#s5L6 z!28>Q`+o+XKkfb~EdMTl<^8F`{67Gne_%;}zW3h%pTFgQ|KCdv*nqm=Pr6KY?!S*d z>kJ0nNdA%Hg<3bt`RY+iQnd`PTxs9yFSM$0@HAsw$_%PBYE?&PL4Kojczmkasm)dW z7I{s@stqU|%pC=1ZI)h+r-m_ShGfzUgCNFh{@j42$q>YN&7Rkvy}bKzxpD1s*U|IE zzg4?5O*v@h@N6r7sL20gqd%u_4;?^mXy3FLR0RL6OQ~t_j!_?8{3iEV!zl}rc&8fm0RMvkyUeKqZKPD zh1;6ax{p)T-g}R{r@I2X3cnEg)@2BBxux8|%1)h0M-=w?T3&Kb+`#H(jZ!EibH~(# zP1?P<)1sMX_Z4v-IXRNdZl4^{t&taHR-EKSF^oZ2r_ncRE6Xxqs@6j%wYxCq;;(Gm zNnH#&?S%y?T>A32)*R$n-&Zcr@19&aaqxM*3>~qrmrTx*-?^$0RcT=(3~3stcYpt4 z+mfHSe4**(eX6U>A>uQpOx;W8)4sN&o6V9jA5B-wlR?PJQjW`ol6>jqxaEtvgyrso z!JU0ZkzW+acD_!QPMvxPr`|5LG2ikylwX@hrYk4=Khc_KUi)Qb&7w)a?Njd5dJLi# z850V!>H8W<{xnYfAp%UyE7MDVAxv7Wk{K}ft&yM3Fv@bM-$DxW$sGyz_cn6SJj_;UBnhJnR>3|QP( z+O)@wH#c(>kxMq6Cp+hqMi9F(5VS)kckj)D^QSH^_`Ro_bjh|#KCq^86Ob2Us82Ye zH(#)NerqVWXH(bq@?#o=iQnbx>iNcMy$uGdZ1ZeW$qcbv&m>nR=f`#fz4oi$9Ys9Zx?&gFD!(z( z&I_-a zXwrzQRnz&?y@8UW9Rl`?zWs^LwfKpp=ZJYx(w{T?G@AbxZEqb`Rl2v2kF>N%NFyL2 z4Vx|rK?DSpmJ$KkG)kv{U?3u)Al)EHC?zdYBGM%wCDNT+`uo|=nK{m!Ip@speShyi zTlhW7Lm-Ynxp*GuG)%;qS?*Leo{ zt4+@hsFtm5yNBKOt}T9SGapzUxbzCs%3o^P%=81^%gwj8dc}q#jCoQ%l`lOfl7)@iO&0VK;GGU8slczm_$CDtfu(jM{p&^^*t z->SF%T+Ob;%0C+Fv*`ES=~Aru$Y>$p=h&o^R*@_g%ky(Ro&)Tm*3)eDWb zL(}=79ps3ylb@HfhxpQ~31?}e{G;8iWpf$RrI@!{&O~3T?zc`2OUmeuz4i!bSnYA( zKV#~yyDafy#yPy#Yr;pg##EZ|re1_Kzh4D&OHfodYWn__%IKHJ?x7?od*18S-tM9m z<4Yey56P<7?eUWP+c3Ac1v&NeOTS#*Wn{Z^Y}f8}w6o*1WiNXD)sBB``$)BrP1T65 z$8r9nA&tELjd(Y@+x|rf`AKnn4U|UwZ zhf&WIkJHeXO>Azt3wzM+oWXT)gYqC4Nl zUAbPXM-tWFexJ%!V^MoBXhrMWp4lC4?|mP;E{w_P5R#BvrpZfw#-a62(gwx_Y@41p zw>vB=&xcX3R=#41%b)H|)2bM?s4|h=KKF9SZAH{rn%6|up>kg9VP+HO>bR)sxD;;^ zgUvKejoK<|Y_AtJf-k9u;8Ee8FqEuFha$kEA z!p8RiBE||opmW9^>C?oaJ6+>^Ff`nhJ|MV*1;;u;NRquiE;L-_C~mzFig`9j^iOePV~^i+5UE+>tOEEqzl%?#CcrEPAp2x%_q%Aq$C=oH z7L(jW>a78y^6G(R5Ht43!lQDZIS40_@BXJf(@CdZhw+rV5qCSm=6DM{fo$URWgQ z=}G$(6^#do%kpYUBCjqmm8CUXgPY$d3mXE*XwIPn$DrUfTycuEQR&Q>t%eg^X&0ho z$mE0*prjK0O9(lrF;vtwf^dKm?=P(MlGKgcgk@B8Lg;8!r=LyUN9_zblgtlrV5G_E|huKdzrjZ z89hhlEF7|)(TBr&dFyldWOUYBNmz0jIvkfYEgE{I-$A%9tD+d3J}ZY5#$ODRXPxh6 zg79BfiP%e+*It#8z=sUAuBk82U&^lVCcKoyF5O?c%RNv1YvS0=-xJ3Keoq|ZfW$E_ zsh1*YI1DTiWRaPc{dQ&^j}^hpS}s|Hf4V;V=~VS}Sprk_ zkVVHDd@f;f8Pj&cWfH5QY{q8rOg7~3G2{vnqr-{SFJuUi*)XHSh1E}~rnC0ZbX{id zH}s%kNgX%~fy&^R$|t{^e?POIBZr8TX7ZKDd)lN<>hK{^RH_A=3K!|Q_(0wTrHIl(1wCk znz+-A20c8?a6yp54Cr@)GuKbiNZkWdzQWyER~y9)`xkvrpCWzkDP3#qc}LE3uUXmJ z1szHp7IKQr7Bv+5!}7Pb88;3{IQMtQ>9hIvZS<^4xyzifinq7tKQ8JvtdIGhIQbNr@E26{ zf7LDjikAP#MgKkF^1pD=0{lM{-=JfFmM$Q*|EqFY00MUZ3E2NUPmoDKNRU@V@L%m+ z;y=qK{x8-MKQECeX|!~kZiGTcQ(`!^+eD6_<(}Ha17^N}xW=(%@Q|Ernv4nvM z9bK8pev7E6V|n3~W|XYsU5zUY+qwvV3<7T(+I`P*b}LOAFSn6?smm zm^Sa0st@N}sa7Y~Hzrq_-925L{k%%@to5L&V;|*Cv0UFhtufoyX6)-q!eE-@Q=a!a z|2c`SvR>7rovGbc8_#VIy-9||7 z5v?N$?ohHddygFW#ditKY#R5#cSS#nwA&c|w8OeZn$!K69N!ipa!~=gR?Q1?qnopw z2*G!C8){X_>Dk}})T%y(T2=DCl<5Gwr)kcdMETa9O!Q+&qmLDt^CePGA6}-3x$STc zdd+U%EoWI2bk9QMcKAB}YQJ)~r2C2xY^V1TGGv}RDN6IgOIZYtf^A^4{6h3|yvyBi zN1KU!&9QKgN&c?3|9Sg-_ zyq)syB`N0uDZ$BpgC_z`=cjv2V49amnFU%Q1Yf*IDw|so4Ov?VDgeJ(d>3fm=honz zdeso@R(CzXy@hZKgrtQ6)0Br`i{)xh7w2D^NGF~I?FJ+IeNNd$Am=2!k z`hd6*-}^xu1IW$HOTZ%2Jj%WltpMT)3TvoVB|}U-)KP}=)br6jR{dv5!DvOUZawH* zqFygXFiI+g?I0!rhV_7Y$yqx3>Zvj<{xOH!gjnhkPN!Uk6PD8!aS>?q)h5SVF?cI) zu>xnboK&EEcCtqRs@7uA#i~Zw2-S={W)Pm*Dr9?-8xaLrp}kj7x)#SDH?cH)>V4HM zd=;*E7kUnOSMg9^=4p#IQpMLJEu+ThRH9g`v7xGLK3@Tt%5wSiXX;+G@O@3PT{0ZX zh!33k;4JiDvx^>DSKneM=n9KRM8M?ybZea`2TV{Nf58qbL*CYd-w7wjOJjZCLeh|A z9aAr7vnU8^8mx)2QSv}Aq5`1G%mZ4?7$&<@5cdP`*Tc5>eHJ(!-p=B!KT+X_Acg1z zgqCYTgc+Ql-Ej`*cDa}>PA&z%ly{lvFN0|dQz`GomKxTo>N2q2DxL44Lv_sZeb0wJ z3Z-6_YEfu6>!~^mY^S?&w+&kjJM=DitXh}EsjOmWpCpsHffOb*34}D%en=Qp;Zp#O z=(LjwM!|)Rtp}IM+fyfWNI?sV88)N2c6P!zHuX}RT)naa7_KHsq22Bu)~h&$8y$mS z))K%^gzE&@fYm%(Owpc7+GAF7dYBY5zmm7H8!0*Y^j(TLxx7Sl*%%(@8TD{HYP_-X z%3XgdgkU}+y1bL72yAQ?;60!ulN5uDCXy_`2Pzy@-vqEZBt!D z=x;|2l^Ty+WkDB~ac$wfu6Ne4v@+fayHSKY@|pVsgYxGmMAV3sA_p#{l;r;Qb)M2+ zkoSlfI!>$Sxt`BEuQ4!fQED`sH6>xXT(hv^yKedBirmAqZk4MNoGy{>IjG9P#AH-> zXPua&7$N6s+d^kvtHtX|FX`ChF{2l64?|n$mh;NvQJY83j@`6Z9Ekmv{c7BMM)y0D z3WF=3m{NX4TdDH8$2#jOJ6vmyU0dWXulVT82rpQF+FmWXQ-La!F1IYw*dEEsZxXN~ z-_#JQFuZowr)7VSo`C4yBHiV?mrc(4h$pCJp{wSU+c_7jS>Eg~T_cxa^B)&CqtQD)%WHh&&lAXuc^wY-`;gl5^TeyQqqeD`o5Ah_XWKEe_tIT~tFNMZ<@)I9{u622fQt_3{0n z^5|(gfB&*PS?DU$b69?JE3D8khu+zFICA!2i7_v)&2O(5}m8?}?PqkusJ7 z@6erGQ3qqBz?p45O1l?6pNESk$qF_6q@?{$<%Q2|*0+1O8V9|b$Q8A-UlM(Otd)4H zwsQSO(OY{iu@%Pw7sLymuvNvETVK-Jw%mrWHb=W8^OpK;2D9=dl1-`=gSkGjZyW55 z9Z9st_J&D&9-`EZ zY2I=dZZ98gn`wC;77{p09)J5fw;^<}bpz7~b^p-yv4>%Moy2az^8>Ogn>zkR4YBU~ z?v05W`+7m83ZmzH%vWptw<$x%`t9p1_nM|Pl5c00dTbxEzh*96{OtP>-;KnFsP(Yh z=QmfYqz1CVPLe z!@NhM zY+w31l|I!yq!r|R@Hk?2tEzW}AWSBEsy;0wtp1qh*f9K6GQZ`rbIqhv!>M@j_cJ9o z#G^d8f%LEGcHyt}RMM#vuMm^;l}Z!)<|OKQbnc#qQ;ztahzzenbARQ>>%IGq#3eYf z146i=U=>)OIegneyi!vtnn*k->Q*)T@oAW!wCn;you?AxvY}Z@bl(*z+iB8J*FaW_ ze8%v&0RR5<>Gip*U&b+_m(SfyiuqE_gc-||uk`mq# z6~`C-ztGx;OwK;(rW#MK@!h5zO|A@I<18m$v`xSFc|G-ls==;p75(eHqWtOPLdKVS z{e!&Wem)Tkj2c;0l((wbr_+ye=67&AH5ia@tJI%9vo9qwTF+~$ag3YLe1%h3w!0TP z^i9WDO2_@6sLV$DFz4ZL-iukg4Zq5J#=;L555^2keTyr!iNVQr;wATpoi~r^%HT$+ z)}sGNyhs(k#{-5_f!V3-IU3+Tn!_ZjVbTNK?IFgF*t#71QJM0eI#*0C0_g!r-~TsG zt_xuA%C+9<`4=bGw3680baKU1+GRR(N}vS=Kb%}~+ge#o0XbcYQ&$mo?0Dnj=4yG=8AnO8` z;*BV1ynb;EiNo&h{t!(uv~E{Eoh3;i4b4gzzn7j7{IT?`@PA)=h7s^x=~?>jV-mbz zO1x^c%)sN~ClEalL7mkD4X0|WPCSq%_yn*SGT{+}8L015gfzgFc3BX0zavNhno$fZH9`d_s&i~)q+nKK{s7zKjT4aAMRp2slp|Qo|Jp;|b zZ>?u=_@njA=FJE=(l`-4pQ8y8H40Z1MHsy9kb|HVpEg=4YbgaRT;7V%Schu?s#XeK z`0j`T*j2va8Ge2E?cRrLthbeRO0-JF#FCi1>GGXR-1u(nHlL=feCL60q{W)VtVI}H z-f2MQF=BsC!6UErsu_GLi3(|9Lkm8eNoW6mQM&G`DP_>dYn!6QyEJin$nJNT7$8z$ z(j0!RLi7k!tB5m#%bznsu$1A@0t-g%$4-J*Pn(Vzh9BXgdkrR{?-!uI^rn=OYf%)` zXb0HlN2=kMD$g)r7PJ}IcV{f5!Ue)i8zF2IAc#(tO0qHX`_0Z(?Gr#mP~*9KiU(i6 z2|%>X33QtQ8`^)B#Sc=@xB%!ipp19N?(PB^vv&R+NRLvGOAqQUD-iZ#g$tVRz8_(F zfUg01R+@WmR#$J{TbB?%+x~yXkNNH=dLgg#N2B>nG8H06$ti@IR2e zqJ^n{pbG`~e-M`coo5vI6F>RKiT}aY_45kk$CBXZ8~*!}GXa4=5u1O$;lFcs{rcJb zXMOJf#@Zzy@E6pkpa|msL($oY?sar51J?nbEu~~+?&TO|ht@7>Rzf#jjd2FLDbhlm zPiD8grdO3)WN_3ZsgqrHwxYsbm*qYwQH?Q*Rg>X3Ce zvRz|Q0yvK{_jO%Jo+5u3E@t@jjkH;Q!VcKG5GIB1(%#=TsXTHMsWsi3+}SzjJ+iDJ zJGP2lE=jYxyl>dBvhE>Lnf#@ly>~=bqT+qY1G=PNTcTt-u#?-4*zGha8r>-# z^6-$|>-yXmia~K*)O+iOSjFg4re0oq^zdqVV%jlERMv-pol9k<;J)`WiDcL_*B7d; zIS7>8ob(Zl*HAK!n^~S5n%8rA7TRl>xEiv#hehSMx{{r~ZYNSRUb|BtKFc1>zSFgo zKELeaBk3sFvURv1z-vmfr<|S7Qu=xoRXsxgWQNP8+}F?6(QhG{!T&JofU`+1e^KY+PSTyGG>6weddFF|7JKc3o= z9W2>5Px#WD=MjBU?fjtf9lzI>&otWH=9V==?X3qaaSgE3tHNp7uvX(gNZO~*EN{6T zkFM>Mv&n>w_zijV1h8+bxNjNXmS13aIq=9AbG&X~wd^J%gMa-zulAA+s==w^_4p4OEXE#o+kx7$S=wL8+|iQI78wOy)P4mHPp z8V6Lkfmamj5GOor*%eeY7o~OzDfS;nk>idydn}${%eYF___Ej^J)`j0!q`=~mY#36 zG5mDru8Y^`6}d%>Bmd4Q*^yX!LqV@gs1Tp43&#Tno983xpsC;;3io<*ME*_f&E=Tv z>6H`@GeRH+>^dIKRO!K zv^~W(HnRK8OYpca6FFv-;A%rpz;VuP$5P?-^O2aS$;}g=ZK&d94R+$Isu-R$GiD9C z`j$T+7?JeY^WqnqcVE{ezj*l;i75H?SbwkU(nxp0mEn_3K2q`SbN06!pJ+&kO|aZv zxspQEMA@9A&d0tgo9{L^oWpOYoLH4r-?!W$x-yIy_xb#b_h%{-!>dH@O?-(W#<4}F zR3YshJIq$$v#8#NeP^LF2S-IE1w!Tb^BeV0z2WWz6Pa8EsOyf~EBo8aqojld%!Bo1 z2L00G{=DJ)ovuTA$6mEjH7^6RfA!2Ip4dg3=3IGz%Ky=#EPO#CHFZ#~0&H`Ap2@%Z z<|xVVU_J2wl4XBQhG5@(sFbCo@u=j2=1s>(2tg$MaTq0@_Ts?{r7Q{7(4Nm3r?LF@GqAY($vA%01KVP;~~w!qkzx|c|wr>3W89X zQ&LQW0BeW^?sxl-%Zf+9=3gl#=OO(@2qNWaj5c^rbXU_NUV21>DDu?W4t}USq+c|d zML_6R#AB2N*&_&!IREO+2i6YQf}dkx3l3p;s)(EmeDBSV!}vIa0j*v(3f#S<(0K`c zB~q+GOa#G+ zKQAjD{{qX3r%yd6u&-DkTl}~l4g~o&xch- zVGDVN{8XgK8HkCv+gZY%jsa%4GQSaF21@0|dlw)V!iocIY36bnoMe%7f^c~Ct}1k1vvDSZGW!qyInh~M$WQw(Wyv&IgzNqROVK&KAozV#3denH0^-=2Dj<_m@V^zKdo};h< zKH3U*=TeEl^+ZQr({w0Ph6h2HDJ$Nweb{~bw>D*-Ck}7AxIn?Ixe5wq?Nzjb+4n-) zG)E2{jF zeJHsZMMFjhhfhyg!zejgj_mvZM$a>pJf@=vxW-V)44z4fpq?x0x)$J>OpSbs%x2TU zhdCfuD7kp;&dXHzP3gb;fi_MX9VN2ik?XAW=pQK&)oZ(~JWXjaNwa!(7)VKVl+`OulveZlWvy-9)$i32mYi1`{3q zUzzCO^lv6QSby|xkhxNN$)~{bAvzTyC(p&bOc-Q!9}*w_-kJjSA3SvbSW-~QX1|l? zqX@dlb_f14|IL!3?5&d|teM~)$8zzTWt&&19L~eGA zxtDu*R92tgoA+6W?P$xN4a&d8m$qv0Z9@Lm+UwKC?1n)bfYmpZ-BI6%=@~>^HtZQg&2qshXK}Gv-+==$U7~ z+AN0Gsm;FeIr46~aC^bW_-G+F{p_hj)@kIS|F8(t%kuU3;f92~tmT=N=^?^P0DM>PDL8>byJLm38#|9d91)_l~Ad ziOkRjSN07b5H&5}FcR@4`||Kczm_n0Oq0y;9X0u+dMa-+TT61>WQQbqB~IhSRlmNT z(o%D8_I-6aaR+lv`-_Ku0(qu|j#S}(!tn*Qv;%y-mU@2q$8YV1v*)MS5pt(Va3mc~ z%B}A{WzsbieHUU*H14286_!m^Jntid+;cx3>h=mE)I-?O(O-!RiF-!U=R(C(>09LA zC5xOa5p|L&ar07m-7aS(P-}=i-Sj*VeQ## zD=KaK(MaG}zhXSM!EHQYY5CZRpY58}kPWf%(N3qi8TAt9=au@k>!+o7LwdU%r5!6b z*~q@|X!FK=i|enin~w@@%{e&2#StmZA8~has=m|XXg?8}d(Ns~cHE?$Ey|$q>CU2! zwy80Rqpmut)TVOiv{D1x;?54vY`(grMpnU!m9~e6KqZZOJZZ^NZNC%GXAS-g>SugA zI~t}je1=0;2Mp^vWi;Y1$nJk%w-NLG{H&#h>~n~^4=vx|&9+YEn5m|ZABCe#w<70P zw(K4<1(j0f-)dtQT?`eK%q|?>H80(FlR^e=AbUs4m>ce&PZ{N<+#HWn@v4+&B27 zJidIKyYSIw8n3@H)IhJYu&sy7dm{Fr=OgjX_~FOBEj`zfy!3MRTXi;4DGY!bsR=`ukKpUwpOMOrwFrT2 zFW*IWHN8IrnB3b682&ea$dhhWnt};&?u2;v2iB7!Js1HNmmt5)3x@&Z#P%nr5rQwd z?%?o{S{p=r(Y)wWfS@*>#oL*$Ranvhnju56~#vQ3}?Y%h<7QVIa6~d zAb=8A9>-CclBlmYhlVFGJAzY!70vU5%A~vDBoArhF968R6`e{hke-f&T>$DcssvcA z?+s|;BQYI=X;ARgQ16Fm0zl;2$e1*Fh4QsX}`V0hTVBwSUFTYRFW?@Gwi|K^T9v73hgoe%BMT{iY{wy?X6d>Th~t75Us( zhQI2GC#aPGk`pEXB&WRW{XfHH70W5>0lQ8KXRwj`CAJ8j= zG&z8`mt6Q^U87IG1j~(_t_wG>ZKcf9lVL{Ars}C2AOtD&vk`*lFd@^Tl^G8iB#kbUu<+OX|7Nnh(J#)j@A=jW9{?sfYn3XT}YMdQ$(lA#bKax+i1|a zZHAE8ftC{kW`_a>3bdRUFgXz#lY^XiELH^%z_pDK85-YXtK(grodAW6L_p6I_1tUd ztcnhnZa56(hp*K*Fdeo9V$iI86H^zA>URm=*2YruoWn95k*7Rr~_twJ4^B^Y1{;LLKKhIHO z0x9jmJ&4@qR@dgS{lWAr`0gSIMwxpcX+q3m3^OpL2q7&Wbib=Z%?59+`byY?63C(< zgO=YeYkY3_TapK`uY{Wk=$iu%u1sg{hARpA;qa!B32v*rhGra7D)w`?5V<_b%MjcK z1;#?Z7Z_tWZJ-%{Z1lcD7FI(q%hix{a2AS82&sxGOMS~p?U0}>!GKL2{f3=q4@RffS7!Uljz}U-mm(dTF%f{D% z=%3Gj*TdkVdtBFg%x@{{m%o~1T6J$oFIzCL#k}ACds%JZ&`ha!{C-gWF-CF^mDOLN z@}EU0e~rq2;MG5&@*jNpe>E8X1u7T(Gi5LEH#NnAf2Q95Fj0_6NI-~J5QN8n?u-x+ z_<1wq|3Jng_!rc>fGDu}e;3Xh{Zmy;cWJOHFZ|L66GA1EGoQ#z80k{Z;bEF%-#f1L zR>HfQjf*YoJ0nQvs3 zt$^H@T#oN0m+JMfngWBVPJaz5D!I=2_xc;(FNr;Y4 zH?XD{#@htn^CL#o$Y8t>Q)&-4)2q>K`cz_EE}N#qRK+KGJhwd5)Y8$ihnj5IL{W*V z5ho{&zJ1Aj+hc!exi^%`ajZtn|IkuYHqa_{d6Uv=*54sD*QfO1>yIJEBI{%G^P}n4 zTin;D2Hc7C4|_BSTzS7>R~>K2wl6fRJBAr6o5)rzjg<45BpFj4zIq=Y6YOZCaNDRK zH8;1_y>sN+?|wW$;_fhBSuo6yK$kpLrChk&FtxolaOnROLc8kxV*@)(Ydnuvnigkc{QcaWkB-`FU1Nx% z+8yKb+}&kuUr*O&-jvU*vtBzWuE$T@zIdljw?2E$cJKPKRVqnioRPs?*wyq@jjh0Q zsr!aJ4|==opT!|uOc&ErQVXAv6wY%wz1k)wsNs)SVso5>u!H0^s3&m9*9Txw$t)bE zcEffo6+2M>^wpjZ1+hIU@)EoczkzQ?oB5HfL$S?fzWyTnUK~nKnch zGEm1}zS%o0o7eR@8j}|xVi|N_S}UqKlWYruWDRKpvYcPi4U~v!1^^G%KiorTNS7l| z6{cER7I`rgQ@DO4f=G@vELTBG1q8ec-#sW znz+c)t7g&t0YSjx$s)ubrIb}+2K)w9!2RAXiutGzhcgTamzHltYVthDIc(@B;>CP< zQNfWAq@jWW!4!B#dYo`*Q=|fEym)X#lLI~|b%c796Fuozktoo1Z?81Mr+J!OJyQP! zp>fFtvszL5qAtwmaP$zI^bW!J0B-_j0yG}tfk-$hOr@B^<79N!B@fO7E3Gxb zu5Z$OEg;>j#<=ET&xZ#ZT44|Yyw5v@2oD@o1jNJ`nB__CbH)N>zjR8Q9N+O2;aeBV z=w(1@&3#K<-T1}Y!mx-El9QN#4CMLZycBqB0vs|gQF1<`><7VHUSglz(Y%c&j!m~W0l8YYfmSAV+K*aId`od66&C*2ouIBpY0Ps>gIIa zg9}qZ2HTN}$yt3XORJ=$wd*0gllSC^vmBowgqQi#DHtod(9Qa=NU^tvtpVpAo60@m z$InHmMNYwKBTYE%gxwx-dgbXvDlUAv_t*oU3s*eVf|EWeNQ0=!(;x@M=zVz+pywS0F>v>3r8^vr81Elal^0w(0CgmxLhEUHLaE<5$)FXg62CTXn{@ZZtve-c_ZlFVxDYNZ}+Co zcsIANb!UR)E%pZ1U!V`c|IP{i`1krp^da~^<^%=*%nAN@fWN^B{7SN!ny@Uh+`V4NxSk)8zE66q>d- z;XH1;kWZo^l(gqkDXWt0D$Zk&r5B}!5_P*p>t8YGvoNQ1Gwx8NRHBsmOkKOll{z~a zNr}Gv<>A|R+-3Z$_R9SCW>D)qs*dp*v$tedj=p!VPK}Ihg6pNz)c#On-*3vSY<)FM z@Kvk!^EtAdOm)5v5x-rXte7d(Dto|A!jX}TtBAq3?>^G>jtBM%1)he(9Lr^H!pz+@ zKFx!Z%^cUWt~NKAP+3|I58(G2QPiNk{QPP&-|QwY7H&)|?dC<*6`Va#cpzw^_#U^9 z>}z?<@%Po;7hkuQ`qgpD`54D}Pp(52Q<7=*!R=6Kvw|3$<8A7o#caKu;oMJS2TRGD zg`Q2sNKfSY_wD)6C>`qk68kp(oNjiF`;>KK?~JE%18nDWQuV@o`rk6f)+*BSBxvao zAFR!MGq*G?E6b1mER|GO^*Q%V#a7G58{UPBt__ z&p~R~|4|M5efN+rGV(GW2ROl5=FxqjI4#Jhc@Mb4~S#-?5El(;&e)M3&KUc z8a%Eke%o1}!Pll|-X2(=VWTP(Zl?HR9i}@dRFXJkcWd?R6RW+UvhUvcuS@d{?A96l zU)^FrT`^7e@eHRg^Ak(EUbWO9xqqKzhq$)CZJCiyrhXFoX+P?w(zcf+7ttvOA z7xU%JRQGRp&!sNLeh=;GTIA?Q&PnLDDk+GHb#B-13VeRug(;1+=ut$1i<};i${T@J zJotYvXwDa=c9VGkw%nQ{eP4$)%DaQ3%Ho75w1B2k!4Mz`O!DiqE z*buca_)vn_!XG0PrZ@{jXM<;}NC<)M3A+lLwbE)YPF{-jM)jYTBg z4NLjU%2c`#SbiCzLU|}kA+1X54D8dHKL8Ho>!moh)J!>#{-hir2UPD18#3jfi>6ra z@)Tnm%vJXF8O((&z!ovRQWR?m&U@>C6cJXEYK3S@Ty4!~N^Cs*!_Q-FE^5=f(2f9( zg^F4)Sc#2D8<>k>Gx^2UxQXr9Cj&^MH`tJ8s;d>LE0m=P=d9M0XtmqBfuAuq-2}N^3pIn&H=yL|y(hkrC<4al6U#e?XhGm9om$;*vFZd~FJ|i!fsqXEm4TF0 zE(k5HZ%hHe*Ek6|S5X(zImy_F5}&7=2?DaZM{$DZT+ihI=rQG@2!p|k-N=`kx^%&C zcrFE6t}X`=6n3%(y4m$yR))9piq|1BH9$`rtZzCufC$nhl8a(}B@qedZGwQw$*ZXD z4h$Ycd+oGI;d~Z0?806PK0`992{(J$V4cl|D+ov`R)lrAF9UfWrU=Pp^2B|@2lN%I zgXL%~c(Dg@a%#QL+~860SPE=+7vJmM!Yh8F)TYVLh;F8;PJ=|IPp+N@6a=FaaDH>z zUXpuF|I31cf(Ch9j>OC*P54%V-yyFLQeuZeG^kd$CoR?u4wwq{WkOMuCuW6h6w>Km zlr&wefWbIIU=9rfdbaRvDU?7bseTGQcoun!Egu_pJ@svKVA24Y(rH$^cRd~a`uLG( z?goe>!}I4g!Y>7_V>n3!!VnXvI-j4MoIeHWRMhwb*wv5bvE@`Xi%g)^DvcJRt;|NX zJiQvf?syu8ygyTT3P#y!VAs`)5kmSa9$$sG5`&+)+*Qc|T#pf9SQ(j{vkSZvRfW`c zQ6n-iiy28I4Cc1^>&Ub8ejPA}4OqTM@*{Iw=HF#QmKKxqXnSQVgNCTG1*t~NZw_k@ zQe_QpbeFc{7Ka_5zzx!;{VS;TGY#@@h@OAdbPE1GP3K<_JwiY4a-ubsfGn)KgsX>K)hPnShlLF!*Vt*e^8eh{^L6>xGu}C?I5 zJ#T-XgQ@oIy!>&hItMy#k)tXtC0ju*RhN@}Jyv{U4hK6`pG=-~`X`<&nO!QJE+6aQ zzJ1^$RQ37$Y{(bGJ=w?SL#~=r8ZhauV7P|yUC<%t*`q4z9Oc0tt+{e|7)XiJX|%n! z(a_(X%bva|a#Zc)Id3{1A#(wDW+VQ%K)9?-I8?pH19iLqb;F=zfo}O2 z(%##3(@o_;IYndoZttdQ0*?!Q7(EYhhdX8VqRonjjDK}iF)DV<#Lr>%w!2?N?NQ=N z0^RcJtGv?9pqkzF^~&ZA=r}V~-Yg}WZYu7rQC_sM6R6W)N+`@LWmonN-Q6vAm42J8 z>>WqOz zTq@0*@o>R*ym}zKqpY*@3L|N`Z@sVI&RUW3eG*wLcHHb3636+dn;3JO4a&+?1UM_* z>-D=0B+Hu(QHeF1;`I~B-sLOVwhtwqPaWPedgOCDnDD{6E460%jR!0?6~?+ozSR|D zH5GByA56;ynzu(#$uhNmD4Xp?KGDJCF~0ok)NIAFw~`AP#$UgcuuzmtzjJXzGH729 zCp@XieP(R%-QXNcEwx*57pnNls6fDxTffcD#H1SH`^zSvZIclc9Zapov z^m=Ut!5hpZ*-oMsZ~=&*M{$s2k7Els4-W|i@rq2~x<7N`X4k<5mo?@$Z2Z|;r4+!H z^_}nWV7bX+l^uapT+@L%b!;^tW{9-l=-eCVZ^Gb&aC_`hVCpEUDQwQmLu-%%ey1D! z3l*F$d8m8`>qS=v==G%FdICd$C{$YzOsWSuyec`^8C+Qdstq@8Qz1Ecd!e$GYsdHRhZir*>O!2}-P-dE291912 zx(b;gVFW^1lTM|VwFH6Z`1v%{##_%9K~=mCDfsHe_$|8V)uvt}8R}Xt@etXrjph^jBJcZ>QEa5Y_Bba%Cz~ z9k@q>iz>q(V&&ngxO!UqtHR2Fd29k05VB?u(Ys#~(a(j`dBF~zYSQH~L6MksDTfx{ z9#el5ST^$)IO?ienvT}+!qVMHPJEg`n1aBMex8=1B^QN4kOQPhxiR;?SegmoR9FZ& z^$}!BZCYJ(&=i`g{uBo7DWIp+=Fw#sv?@w@jl6s*yJm&wX@^4cn?opzE$WBw0=kwS za^q!2aB@XvU&@d>AEq{+1Nrrs5FpzAvg4jomYPLsd#>^GXP(?!f#*w{S6vNSI_34m zGy)bwnjuv*eRD_L8x!Pr?9o)}JH!B6*#ec~i`756*x?WvYe8rz8%`z+5`&^H77Jbf zikw5kzZ0<0_X-cv>vi!HAV%P&H4Jh+x}qBV<|_yK@I>ax4qX}}k5x5hYs)BIiAVr~ zrFYq|4Dtb~zt4S-9{dO9(-lFM$^p*rSIm5-Znz9z+l}*hV6R7>;9+UeKHIDyiiU{` z{D%GCE+_%e>kY}!QIB)OgH(mn+J;>gxHf39t{u~h`XY#9x zsfY6~TBFfj03?Tg0uT%Gv{V3QUw(yrTISqqvBW3RQrYpG(whnn>Y)06vM0Cp#ZAm|%ZT7Z05HR{_8&(mbBM+Y9K88B?WAvq%jOY&=iU zX`j3kL~49^P|LLa2tw^g(Ir!hPd@gtc)bH-j!5Du^kEu2+$&T-J#$psTS%>+xSCo* zZ%BomU)j;rWgSrzn%*l&?js=`Q#R(L!U65B^G;*ejE|_uXkKI~Jb|Y&ArCI=o^M+7 zR~vHoAG@>nMnmUCZ`o%(W&XiRDdXKuW8BcNx)ZAPii3Xv_Jn@MLVpeReqe+@@@hh8 zHV%gVOJ@CFfju-#{0-2cvDc3W_#3>M(9fv!Unat?o|rH%0ubT9Kq#S~3A4YLD1Z=$ zj3JS~nD{g0_Gge>L$jA-x0d5+o|`avdVqmXO*!< zS{IW=Sa0^&z}0x0EjBsvxN;A9+&b?oDb{DQU(UxnW*5Fv?Qu9Fl`FD$G}P3_=x~f~ zke{225v@D$TR)hX-E>3^%z7V>+HQ_m^ozKtSTE*f^P&9q40P){I_r#2+Vw4Twj1#2 zB?%uN)q0hnI;B1JdPoSLJrNl`pC?ysj7!wU)x~}Gjqlx>y3qlCW|xX_E<=el8}Gqz zQ`xF7V=9|L3a2{{m8l&0NVIp7WhBMynBVx%4lQOwiFu8u^LooH%JX8F;`}zVQd3Om z=eRHWO38zj4s9M=Yg?vb617!6yVWmu*0FunW)vN+9F*HQXjFzse@Sxtj8Eq4y|K46 zkiNb0di+(Lq_oXz@3p9O+!ptKcRW87zLdf7C5~mOhZm&n5A$+F>+%Hhv{-7DG#Hue zS-D$2w%k?qJ(*^Ip|_UxBbVX)#?Y;_$DAK8?J7p+vea>ZzsVY`EBGJcy)z9ODV#*ifY<*=&Mh272c#P}=!45^~1sZp+-Z}qL>=RSP7o;)hM zTS+yU8(u4Y{rNzV{db9Dq{K`>TFvU)Bx&zEp3eIlLp@H%yAIV(>l^(eqI^dlwTGyc z>824q+KsaL=lza(C}mWEs|kYX&Nsn*@#PSQmhU;Mf|BC9Lq%V+_`b)=w45Kd-XczB zIZIh%WvY(c3W(Du8=dL8@>nU^aq0}Bvc3LQ@7$f(k6e4vs3q*;xrbT^0fSUmVA4)3 zA_RD*_A;gp!(0+J6Iim#g?gf9kh zs;j5sWxnJjtm*C}f6{Gj^C&?-E-tO%URD;z+Gk90Ys1TOM22*ig2~lYkzHv`0WKcd zNKVWl2x^4Nc%EsxwR1eg-vr%12D%5}s^`|64PwhG;F#@ytdPK##h{sv9hl^l{_v%H zMh}J@Uvy8SHU{v2nnc6aHs`Sm?;D1Y$Hjisde7yphNG@l`rQ-GVROaB+Au*@dq|3V zT&z;V972Ey)3Lxwj2mfA6L1NJ(r^o{B$T=u5o`kn=7OhUX~V`yMXX&eie`5c1?dR{ zWXYwoKekedbx~BMsp&#Kzt{SXRF|npq%h5ZY=B$>7%}PuD;51a7U0w-Aa9Q<8aP{R z!^hDcStK$6G^F-ZgsM3XL>6HL3^#M!>W)E(8!~m>?d3k%t0)1IHRW}5WRaK|hHzZ$ zt9s-$bE`+%ak0=CuMCaxVQg%w9PNK>j4$~Hn_K7fO49lt(>|WL6f2q5OQS>L6322Q z>5NJ!rinGo^m%7(fNqR8AfqHo#ML8&latmZC((`Zbm+$TtLVn~_J|@&ISihQ^;f&B zpWL$y>V{DYgm))Y#sh)!*Yog$H zKsUx`Wih1e(hr=bklKsP*ErqVnA;2A%&a(B|5K&Y*Ek=|LS#`iTNXY?XJif*&w8Vc z!R^bZuTkW78}>tH5sLtgw)M7*OEFvWMNzEI0NN)VcUYCo)@H<&aUCn|$sdcx(P7Hn zVKu@^9I&b?u_Pd*8SMgC#Y>znPR1LMGR^Up72b=}{26$}n1`7LWMfz*(U%;FU`{os z1UzE=jjpSy)z~y}c>TR~NOAcS(lN-XjgAnHviF+ zs#ru|wB+d^JY?BVE(Z2%^Lk!JTuIMN*V_&3{|HMMf1r6q%)X=Gwprf^>K0$60Ph}h z{vqBZA&9}gG7$$Z(U1?qt%ImViy&%|CJ5mUq85?jzgqXd=3}LzDK3>qAPZ_*X=YJt zVJ{&~qcilzmdFE$)QH})LvJe$#)BkcV-zXY)oYsDxhz@Kyc8g={5Bq_&x@}P)~p(w zz$!ZEQH7nQB*b67y)h~|7dMY*4AcHzP|bPVB6?WdA}f}6&*LS_UgKToNu$Q&!)+|C zKUBa=OHIa#vbn>QPfBK=$DcL_0&+itPMjsTFsJjhJ!f-$M3g>JG>Ys{WBO6!0HpQY zIz@7S!X9`5v=aE4p1K%XokM_Mp_KrP4f|g~D}le0Oy>>w4QM6sGthw{q+br?qY>l< z1RUVL{smf{xAi-i`)?qmpTXjHgd`#)`uhmUz*QR{q^VQ(T?kcUkBZ zoUMRwhpWSxTf$Qm9KtA2iRGQ~vAnHiP8tbf?nw&Y13!Zk5h&+PNs)~}s zqaAa$GgU$`gw?;K1KG!fpbSDh=<~+Ec zIhGe3XVULMBGyWAMm!2AUwMi`Y3Z?hje#cY^l0OFMEA9?S7z-EoFrdkd2Z;G!g|xG z6{&sJ9T)9Z6z0-}DlBzsBfHoB#yZd))`j-ezKL8YQDl0EBm(sW#oZx{?j8Drlh8|k z-#CMgmcQ9GHP$L^w;cyK`_@ATj5B~+7TV{CHsVe}s;sho1C*4u^uc43n`49a55A2J z7-yN_=fnyhN0cWM$7XRHK%L5x$FC@|a4$SID$CBye74_fM4c^V=(umvur`OX)OJVF zD;sxn)VnTMx;NS5puNms6BGRa&D{suuPrMmE?Flswf>q+sJJb~vpoIuWAma(O6byB zhsz6ZdCjdvl-L9AiQA>md~KmRTG`o>jXtq~M&&Uh*N_iJr-CQ%#yQ4holXfIVRP-o za#=WAQjWhmocNDJ-PWt*bgWyZN3~g zI7)5IM~RFvEJ-`=DMKjr@K>fN^5D)bmlmYzDdJi9^-|0E_JS8^}}X9KS4u zDu!wd%RYD+U6SsEK8JhYYMU%+%()W%p2NntX^gpkZxV=53uqz9?=VeEfIU`!W^QjD z`8%5+X$r+Eh8yr^)zUPPv&|@J1G9lb_Xge-P%5V5YZHd{y(@^y6UBc5w1egYfqfKc z!=Zv>JLO1|m-*uWycy?%=<~^N>vse4C?CHQ54s3~ zYwQM&q(Qe-#UP4tkQO#%cUmx8@Yki*1kV+ zi^E$MpapBB;zK-Z7%#(m>`hX#i|(+9;(J+j}>xL?#szNd;w6AJ#72r9v=xeTnfFX zzdRB^D5f_d0Q?}sbb|Roy1YPJjD{|R_Or3Zmv&Dtk=`VcQa4)lWD zf=|!XaqefY=p;F|iLbXpsFGshSifQ6EmtIxt~g9lDf9T9pON*hdeaw2US zq+rQrJQRx6+`NTPsMYqDo(W5FeeIy?dS&#mF7pq3vsq(GbZj}kxUe`a+>MQ2e-Xa< zS$Fhr@Xen}!5;}{cm-gD({JD#fj?A?Ke=fN{G9;;@tDD>{&Vn`^Gp60VT#~IM2?8? z?}umniO33Ip8vPy>@9en80nP3WFKyfM)B2$&M`G*^ zJ>6|}k0ywo5!*Yz+_QYK7aOws{tap*ELe1s!hZPS?N(e`0*uOM-T}5%joeAe)4;w${Xi0)%mQz?|7idk8CkaU01CtI z<@LFZ{g@f9wc}HH7)+Vmdw<-yHhyL0Y`N0AdShWYVohnF#>A*6p#9!PQ|H06@~OrK zFW0@bk%Pm?)u06K`^yW^hI>u5uQ~F&@2G9QdK8jBcj~&HmHAZ4e-fY+Mi@%zehg5` zc;YKKsaFyk&fEgMS2hPv=avvTLh5|I_h&Cv?&0}VE3vHCA};s5U$t|;>&d;X_~D=| zWMXcoSgCUuA$Uur@v}+OP(<4%M~YHJ@xkn5*wf<#oVz+WQB9@OAx#)6HoZL>R4?Cn z%;ygd+Xh^f$b z{f(_)Zgtk!@ml5w13k)(9`cYS=D0qFt&K8cN#Fav6&}^TIvX?heViJre2=z24c?!- zA5mP#K%}dDdQ^S zfl`A@G_qpRSrwx4X8jobVT#lxk&ONBF?DGJ%Y4ts1nPUViu#vbPukg!ZX8euJYNn1 zbc{_dGbiqHAd{Nv+9i)Z_~r*qqyoH;x>|#XP`mmvnV4Kl`iFplQ(78FJU}4B*5UW% z4@TKF0X-uZR>Va7vTtZUYF$9E&de<>O`IvYh)DwipbdujzBFc9a$YX5U<%D4RJ)cN z2k00cy@6_i7-bN`P8vz=8gGOT$N^hfL#DTF$5VV&@Jfq~xrz)aFmLLHn5#qp({Rf- z;JaQm6yO6Q6^QwhaFFskN339Q=mxwo&I^Kmh&h{_pz)|5AJ~_n3-}SjYOr>RTc3sm z>k)t@G4X(nK>}ycqF*KRF{E;(YU!-7iYPDbqYxLxd7{pEHN&j+Gb18`u zadAI_3IHXHjVRH^$^d}an+gEqCP^3@Gls+m*cf&|)i}TBMo4NZ423k*9iPpBx$?MU_u$G0Oz9|;xcPhz>~;!PhY)rqZ?@1WI1^N z%6r-eFw0orz;o*%azGN5crf5_k${~OeIQZuDt4hL{^})Q&Q!vju&7)@j0|j?@?qE} z8oLl?;{@5y3a10JDOq^GrxlI>a1T?I1=m+>2J8nJj1mzbj{*@HSRq$0YqJ5WCdZ~C z=P@g#z-u{v&7S;cu6s7-X?nbAsZW|cW8~dK0bLe6D~fLgk-e-f8hZQcjlg8jyoab+ z^jcx7)jIA10)UDUE9hVKYqzcxzhCZ@g&>UC;mQzh0i$Aqg(rm2Kai`%T!MiPvV@P; z25W0gtbiv2dM!PEKvGpK!gBV#kRG5wyAvq`kcdzvfCt_Pz^utT0(5FE7-YrM)5Qeg zCES%@2jQ@EJJn=uxB6J4%K#|imjk-RL@7YuE>8mvlsBukN@NNL6c$rV9%s71Re>}{ zv+L=UiF&)2!2K%1f*mskvg7gI6qxJBk_F&}Qqe$Av;!5?OJf;(a&<5WAet_+P$3B4 z8V@LBLNy+=i~?Lt>)_+}fQyj;S&WgYf(K7ftAYxwSW-2RyJLBXVU|914mI4C{aAq6 z;F(%4eH+~74W)u{e?_b7^fKUv5Y=8WdcI5vQ#;{eP9n;DvYulin#ipdgxNIt{r?Q9 zJo`PQa;zgPwI_3V&^y2!#t%iQr!Vh1e3MFB=QeQ+@S3lZNcC%CbCuu}YEY}f`fS(C zaW-1h4W_NBOYoueTo*tU!T(IfoKNDvQZa(RNyYptR1y3;6?5Kz-+(ITm;7%+m7g)& zcSc1>@b?)NL$z2+1^mX|XP#|enkx@8Z?y^T(*^12iKE&CA@EftBUv}jRen1j^5GXc z!^f9(_Lh*C=)XBkc*}?|o-v{rMHEcS)3fW;&{c7cr_aR(uGX=xF}^DrokK ze;UPZC>PS8q_~&={sfN8H=AteI?c9V#FVu+3CXew{@x8F1iC!JZ^-IA9EFH zbGHyUp9xDBVd$J8ue-b7tmNC!n-Yc)wm%xz57_zo^{9p^?O@X~T(z4uGls5vdxecoaall}T$i{gV zD;ZGx&KhkrbQS60Va}ViSa|lk8={X#`GLQTFh^^ly^!X`K zIFr?HG!S7;cs#%&JBrC_%-h1Plw-nZst8wPqJ|8@2XT82w!2X{0DXn5$29OMw~OTg zeqxt^Q83*Ma0nYZyO&eRN=7Ll^gct;2j3fg$i_}3j67P+MmfKdl@eGqTbTmyu;a^y zVXZ}WFJazcRQs}=WGN~z=cNxca&y;3?I6yk8Upz?hEF64ZGdB#L?+m8t3d`Ttcvhk z2G!CeC=Tn~0Gj!5G~-T028iVtzo)A{&9baWwCV&4(7{kW0DfKYfT$n|0~fQH_REdQ z2Zj=854JyKkpr8R6+dE5+^#nfibc2D0g1u5ToiA^sx#PLP0{$Gg>XAB-iGlx@MH>8 zH|`YB8ECH-va4vHr`vWStEcnp@59=Vk@Mg%e#R8Np_S2tX4Z)@O5aM zCOm*0vu+5dK8>alFlHE$#sXRtb4VIUP~h1u35*|R>T%UD5Sdug7%CA+ia=5<3gA2R z8U9ztu-5H2#P4jJ-ykglcQ880HS^7IKC(xjd4YMZ1g#2vA~7r>g0L*)bONQ3s;cjP zYoUmF-%A2yO8w5zx4@o7i6&jBL@^JxW=05%z@@=jTkxPEe^zk8Rs5`|#UOH`bH6bA zOF#LA-G(`yEt!Js5XSJpD8v}O_!dDUrhr#(XFteGplgcuY#k}ri=dHAQJbL=S!RdD zlam0Pg$NV)irL2jS364J7UqeP2eA_)8?c#Z!blX~&7T9waIx+H4?fi3V&w;U8Hz=` zn83{|kR)0)ktd6R7b)$_yJ9VI1#{&5YAtuP&|+ndFtoCXl+5ez^_FAiS)JJXz)nUY z$4pm2&rbV0(~YC^`pRi^cyy4lRLZ=zF4cea3M*p8r;S$FVF|UW<3 zV&Fz5kNQB!CQ1`gE#V#yfg=RHtxq6w`isD-8!<-H3~=gtM+3Z~-pLLEr!aEh6edrW z1bn`B2Nwl7b^%mDk1y`_(wlbwjCe0xQZucj{&oB`IA~}?QUhd&00(J>zc-*M2^`qH zR}wnt!jzBR;qy4Us8CfAi%2c@UNY7-dTsU$a9Z+U;0U(C0{p}%N%VUx-DDu%@@{Wo z?q4A}X!w<8Hlmok!N4Zj0vGIk@Yd7&9bzzXAhVXZggLq#@cP0GEmrCZ2L4@@h>hX5 zqVh-y%t^zGm7W4>480N{7Wx=+KhRvCMn&L6CI|t3Z6C*gxpLup18@%`2pQCYXj4?L z*C$C2TDP!9D!8%~2qf({#q)uPx$)2A8f(4BmeUlA=9t=mW80000U|MNgaC_nf9L^y z1NRay`_4;_{f|Ul9zIg9U#<1OAKi-Z!@73Sr2d~xR|L-)f}a!K@(TW@>B} z`~XsSP~7%j35(O^L9$e=3e`h~<+fx;MX3k92Xd{YR!ndip91d_?9$Sq2t2#JL z8a2K8=Jevo-Di4v^_2V6K&W%>{p!(4|6$YI>G;h1i2EL;wZ~FiugBB54$fYscvJAH zq`NT2X_Gd+nmnFSB5hh}drgj3J=|a1eQSjN{+QHMbkF|Tb7q`P+K2ux#y6Sh*wTuj z-?+R3DFvgiukvJ#l<n+IKI9)**r0d@>teacYW~wxG>Z^h|{#(W8riowsSnQk+a;6Th!19T7Bf< zP$8qz#J>G>WPM?u3|ilvsN?ydQB2_Q?OjK*>~W)E&1=V>_p`@O?k9MdHci}_xBtRD zX|g${zmLOF$R}yw_gQ03O+ybQS>Dpu?eJ`GW4OBr;bf46UM5ZQL1n~Q8*dTA6#Br? zW7ZlO^(>7n4kmtzte#iHY)vjI1r6vDQU(WO9Aa5Oq(%UHt&^=KlAZ$tj0N2 z{`zHDW3A!rn~zk0@7|`1!E6W%&Rwg?EmRHWodvgeCpT}Ac9FFvksZ^yMw4u@U6I%r z=KH#DalSfv-L2QdPL}tuX#KL2pL_XqWo3Q$uym9(nL8yUW@mVJVaDwhghCzaB@CKM+^oFUURUpPh15 z`E=whX`LhCHlsJq!M9t>NXh6}O?20ba)pPmugQ)e;uYpD`QHSFuhpbj6Vr`-KIJ9q zayZps&ekcAy@oiJ13Zu}d-mZ66-vVQwOiKV2!b?R;V(2>esTrNA&FMg5za#fu3%Sz zE7%aV7{qQhRv^p9&PCxW%s7~lEL~iTBU;TkN7f=yce{c-um2@M@EAz6#a93`4K}p# zqQTUG7@{i?=u_R3#v)6}do7O4i6f7&75x;o%jO0r+6>63^}x0sqY)fK{-lI4BC5ZA@c@sMBk&RkYG2MoFvLETff2hi7RG zL6)Oh0b%k%T`o4dphcE@n?PVU3Lv2yWN9GdR*^rUT0&n^JUJ&GLl^*5YT+f-@^KUo zi>^Z0aE)K+S^}fo$Ia-Rc$P9?F3x%*1kB;<9jcv)>S?cl!U%9kH=s=D+L0cjOwy=y zBCxfCJHSL@uc9hQ&lj!w1ZEICOdAQj!9bwSTz!}~n11sbFIHjyOUpaJ#h!!y=DBtU zW*UrPuPLaM3o{KS0?E4wL7>hOL6+`6O@p&EJ*P>dK@mB=J^Z<8u&l&1@Ui!n0Y|J7 zMq2}&4hYnl8=nIT6_H`yU<7G$GH?4riG8F&8ms7FRbUy+_Fz$~4+66cR?xJeLgFL^ z@??ur-C=?7>h*oPK>-5(U&|50@!L2lj(_~t8rWf@KPXln3e^NRKoP_P8m0lEURT>e z(k*02>*X?}W^D#r1vL=wABLx@LpiFw9lfeDu`qyw2dSJCT_YY6)0)0yht#-Iqm$cM z+wpN4AWL~oh(*m+{VjF{Ib8;jF6&QkFyQ`wH3zuBB?bd@m+A%(mDyG4DtUbsmD6{1 zWP%xRf9ho7BnD=_6^8M!Rbk-v$3ut+Y*=jIyMcxWcP8@ zWf8q_1#b}hf~ZLXeT}kUlI{5(okC>LbM?0JNY=pexIBg202UI!e}+MehzJh*y!~5AttKC*)R> z0_$LV_ssjbeUqU^6d;e66RUFd5*Bb2TfyVP>bW!AJ>}NlUOl;yT4OzsNY~FKCP8|3 zpZ0iWX}`B<)4pYW?dGF3o656KNge@w$(>Dp>BXH*0dVL9as(H_te@>?FIMxM1CYOQ zC+9v~|Jg$LUtt!&EkDd+&tcZNCg?xIEZ`#cKOFc!xP$%7iTuk2{|9$4p?_g{er_qS zn-LY}5(ak5|6(^I__HSKV!N6DlUJ9}&prCi@`wOyo!_)99yaQ9py-SyEbCj2-I$M27)f{@1hy5E3Kiv7m5M#5!W&I` z-w?);wJt6`de}Kfbw4Pclb9K5xLdQ#mfEI1$>o15YqN-h`{dKUXxufUx zUAIuPPLw429 zgal#yLjF$d?Ga+#HS5Do$t_cQtquQsT3@#0Zak!Zzr1t9F`YyM+cWhAGGVTO^(tNK@;Kaa1JmmQrPpJh#W^2b6rxX&u<=QK>b&%V4r z-svXX3VZ3{(=EZNygN>!Q5o>fJe^*AV(JJryGdNqYy0HzW2;x^qrtcNO0lun{*y=h z;%8F#wzs#G3?@d}jy0$oeO)R}Ilai2YHF5roh2na&uow9KCiM!NoDpLONx0$j~w^b zHt?EINQq9KaRs>Vt}k@#M|hp=ZZ8LrEaKb__=s|}4DG?bD%;S+zg{1uHu4(LYtGGAr+edp1{m#zq+NkG zR~rJ`QUVFZp!L+7v0U4NM;TvwU*1}#lpMLtu`6qvpNlgT%9uNDNE_MTH!gmsug{(f zEi+s)#iz0FcKxGk;zZu&1ktMet~SMt@Z=RBzo)HVMz#F37z!TQqsH!jfJr{*%FrjG zbOF>PFA}Xb*`L|U^lT5JA&V147Oj?Bp=hBkAP=}GOd}gR^fpbhbUJ1Lqx#KcEwsD5 zxUqa_P@=D~mdJD>jM6B~T_@A;|0*rkIQTNj_39viRKN(BYr!yxi4$iY&Qakb5|zM{ zyC6}uYEy2;2p_gH*`r1DSEQVHyP@Quj2>W@U0L8IuR^184Y3fSVxcX#ZCzre45AcK zFgAX&Fb6man6O+!yjcO_nkT0|Agwt$^uxGH(MQG#D-f ziIm1tPXsE6Th;P8L3uX#MU*Xf_GJOfQG_rF03TWc)737-a20^$YJ_f9^igs`B6E;{ zv%B84f#ggFkaIe|DuIv`FF zyAMwEwO1`U&K=~{5Y9Pd;8nF4vs^7Ri~wAyQkfM8z6KJ5utTXhB;A4*v@k4?yDYvP zE~CxBL7_4ZSAz{mF2sp?gU$Y8<9_ri(_|tDE zF11oFmiQxa=|h}2M$9;(%26995eP3CfNqo4pF54)$Ufn9J6 zAn_*Q71+~vKZ5Y~Ee5&$ADEi3U};D%GnCm4sL8m_za)L&9G9+o}>0^bY~%RB%Lox z;EU>s#ZPdRpXD2b1;i?%02t{TssLES2iaGVsfKn@>X$Go>!&SSco7fSEuzo*z);-(aSHrKW`b*VL5I z->Iqd2KHL!aO={`~(xKtjrr}m{yx~a0ElJJ1KW^?Eo@*5SJ=W0ws85Y%pA7n{@0H4 zdgrHffR%kehvHxL?O9jWNO6R9OZ}oXkEMR5ljdK0zazD(s|IOtDe!bjxbok5V&U>c`JHHxi@m(N% zunjKQ;(YCU@wxQR8+X1q7s&U0f4dKNeroBDVft@cD)?(lzkhoC(o%g`YtE%}ekF~+ zHorH3_pdgeuYE86-?drf`-l`5|2J(G`lZbx-@ihBX|p=4N#_kem-Bg>f06V5vT@%> z&cAJ(@UM;g{$Bc}aX)T7H>{bzw2L2B@_&@z_wn{`8!7T@Bfq~here>n@P3TX{}=80 zKDz#GyF`C!m+1G$`j>W{zl_cwg7YWT5+<+n!TIAQalYfb39584+vNPs zbpD|Kc-Q=!x7ELY(nPt(prP{s4`-HK)lz&f$ zDJqhHN&glJ`-|#62$s?u3srMM%e{ad8QG^CMWc^0{YEtpLTHbl(r-q4iA?v0#-?!* zgj%n<65RYaqgoX@lpGQ_G|+XGk^Pm?7W4J0y$r#}sUB&k5{$eET!A*o1&UV4#fV~# zIR+$aXr4G0OAqbyT3zJ1FSFY{J+9U|Fq<=WV7xP6SX&G!eR6ET=-)8#v`(;_9C-$h zYv!{0457n}hkn?eIVIOR^*r_0lr1FUYGsHVwV?lnVQxf!JUc%`1Tv2QBN0jCDzxdP zs=md`z*vS4HdP2tRW{3e7*=`x8b&nJT_=IqSv(F-%(b&=71`Tg(kFxirqq|QPNfYa zt#CV8;=ai5Q)Pd`>CR=>x-qpLld<^p<7~v!#l_T{ui`ony-go-70*_Fu$+r*SP)Mn z$Ggcy#u^!QMe8e#OO|{SvDSgwP^Gk4AR@2k)Vs=@u#G^qJ$oo&wFL$gb8*b5-V0+( zALZK{4FBy=?#7wefKOsZv6oQLF@4@hx{X#_n22|Jy{G1)&{e$vz=-~sQ~nYTFGzRt zyTaiY9OCEG;?d;cgTrrCM7LH%XAL(DGYk($r@^Bk=19!wT$t}Dq%Jpwv=?q&B3K+a z*uBZZ%BHq3;DPR>0~b}#B9E~5&c&;qrJeti@DTMkXrPE*Kp;=Gqv;#C<(j}79sEvp z-Y!Tkm*5f-jpZ)t!S`3)Pfvj8pLQ-ZH0a!lHg;}SE;QVVc4lr?@>Uj(mR9Hhh`74B zSeeE%*HLGvo@ID6BYla>4~J)ErBoB7ANWwXMKJvoZoc7P z8V`rOhVx0d{jW9$EK&Ph)aD;=${$h(>Foch)GIW3s&DY{>hSR0ROX#$o99DDBV$RG zVMuVT%Mh>IeM|U2?d7fnK^Iu~5voL~XxHs#!eLcfda=7P)Y?xyMX!mC?D0m6*NX8bZ>S|d*xrr(Sitd2cf5Q81nvr)XDeS}7OC8_oEFzvEA4Nd~RM@ss_psZPV z*pzM14h6U9XPJH@MJ4nMM@`!}lpE;tty9562ELNUx^W8*VP}Rjylv}<^(|v{#;8lW zZ)=`fU75+3r0}34ZEue^uXbp+DxqZ#AbCZ$ObzqwzEbv9RMB}B(vMR@m1oUGf{xN)j zQ{wLmsI0G2{T&Y`vT3&1jjstx_e|ghlARtrjFHPjz*ogwW-@J@!R_iM-&XNYl7yeb zx*45`>b%Y|HT^E~)TCy~s34p!^98{($VC6O`zQ}GiOBU$k`k9B9FQ?%K>+4j{Z^jO z{m0{N?BU&~f-gvFc89K4y*0ZA=l|q#V3(jA<19%=J97vzUby5HswOr=jAsltTZZA; z-I3X;0w_lPte69{{NlTf_dXY!w9&!6w6rzRdEWV&jd=^oJGxb@{ZQ1;nXi+pMmO88 zZ8r7mW{zk{az}z(U!JwqhLrM zwqxXpIE34?JGoESnT31ecINFwZ|jkNdQ0AspVN1dV7|k)pB_J6z`*~mVE&p2;LR^z zL*kbUBakbX<+{vI1740uR~eREM7>;ABG^+?omYI|6zYC`r3U&Ehe70!LiD&ah>?z= z(%U&y^8VjqYR&fggep{xV`P16LDIA}K^;3<|x(um%kg z0TWM1A}-!Nj+9bnT^eGzI|gwg7xnZa00&%`f48TZeZ1;#rE!t^s0%9u)MDc5;GR-) z;~}+NN5$ug%TWm`QC306b;DcBKV*@V{Xp;$yQ;xiRc$9KGyd+`Yc?+8WY-#Bt%|0_ zh2UBwzc|i4-X*I?OpaUCPde;AC0kPMK2kkxH_4v5!dF^+g{%GPVd3=2!&O0q^14e* zE-#VzRssU+JYV2{5qqGr)L1TX6PG{MhPun!aurWIc9eF^Y?fD}rkQONE`%$x*^hvk zaTQvcDD;_q!h~^k*6rlL&b8jDnsRG|gLOnSf3X``8^_FkS*d}{=NhGLwxpZSZsn3+ z`xDAOKegUn3~#t3rHdqZ5y}IBu76j8|IZ$cup=nSHz*YR2c1BrQW@lv4^a^0B;LZs zL4yKuMKvAX(nO+N{S$;33*_!y)R_waA1vGTKkZBfocZO;e+_&K?Y}+eB%!}J~(hUJxY^ow8rKw#Ep1V2k^XZ!`cgZKv% zMPx!TEutCZo;ZK>owM0&LACiTT+B`!K1?;3F+BGEX%}+r@lMN=Ph7dT9*RKZm4p~s zaBXa82E5i&%DL~c9T6{Pr6~F1#kwOVKk@#gH5|&xd9s(QEJq(-3sv4wEHfYwl5gZ| zoWr5A&|$o&;};=FU=07eH&3CjN#&h1F5I-}bqdu)rFQY4t1%=M`XU-UKRO=iSTlW} z;u}2P{Q^C{9-LG<>Mqs09@gq>iAHjS8}oO1O3GF$TZ!%TBiXTDY;Qj}#_lw*)#u=5 zyl>^9;P`AyLvQn0@6}m^iQyX)79KfoDi$ny<$CB{yS(m7%njQi>PdfQ5KJE~yYl2v zi!+a`%b!Qa=!Php_2$zLT3RttVdTR+B~2ZxIBfv|x1bqJ51E^SUUzdhB}xrGX=+IA z5W9*iosRR-fcL4yl5=JYvy0#Lk=rOEHJ7NZ9g*XVF2z2tjo#pyoA+)l_3WR)I=d9# zlDBw~C@+AUu#l?1E6Tqf>i_Emum=qQ?8XTcilTZZM<+vvdrJ}5^<7*Sjx@tD%Jq&T zFdNQDVdHZg2X+o8vd3Y->5%*HT-2e9;Nd^`76tI|4`g#0hHMagG)&8?2Rfv0R)pjv zhKM}Q56PRRDNBF0uz2SN1;vJScwefXO<@(o;dJlBu8(@v#`XIYdyPcy6#8N>Wkz%l zFYlRFw$jM^sFcUiJvyZtUhIZ9!nnt1WkPaM3y;<-OyUo3`ueTy?d>N&jSxjA*VwH;(z*Uo za79Fy3ll{}iRX~L`JPLIg-MytdsD)<*k}F0uP;bj#m9RQ{1X=b?Z=@TCKn!p)-Sh7 zR3}^TJc;{i^z_ncnC|lQcQnIBkK%1{GNmu54=}M_h$9nWo2H$F-(5NA9pW2iV9gJs z%hb*qxH*IHqTp=4bY{V&ttC$+A(^FShAeENf9>#9F3bL%>nti_tO>WP8D(Y-;I<^> zgT$}}RPiCv2ym`a|h~fr4@QN zH2ZP zCxez#2;+fsq))`?CD}+(t=p;!@-HHD6u;pY^7CGEw78Op>niPDprxZ>%|#*DRnVI( zdJ=S0Wl}m(U8No$DVCX8!tM-tUq-m3Q&aIAPxmy%%k52y9sTHF$`c4t@}-*XOQ_2a zr7wD3E<%qW=h*MQCcFD8RS;xw182~5DO6o!op#{sYt3Af5qN`jQT1=#yIEbWSv~1f z?Uy9pGKxgO*P})!BpJxz`yQL43d)wnec8P_uPT*gZ-{$^b(Xy-X3@1jTXCG&5Qk)w z)t#h#gX*o5+?FGCFUiN+6arqmW!mcp_uhu*3`+z)k+n){P0jfDsR|B5qYst1gdw&< zgyK@5l$IQh;+ZgyWth0Fklj@-sp^Ky7CT;{*G{dVWjFQM2pzZ6-(h&Mmln;Pc=LW5 zB`xD8jkd7Lz5A{t!|U;TOjKhm&xoo1u@cvdq;&yOd~=~-Gcp`Lc6QNv9dy> z+Oygz$d@3B6`OyBqKAjG*^ZYw=vFvis!Ley+9{%SeO4|Ke_Q5zH=G3u%6>Uky03Pf z3EwnxuRRP5Iz*Z6 zVh5S%dRNXCQr)Nav^F}l3jMC#@KCl3R&kSbn@ed?Vbe>h2qLCgtNL(}oGt*NeBa&c zegnX{$5p~`OgM7^s%lkioYy5am&F0D4CYkXz7Mib)vsYF%tVFE_kU$MKxM5Z;XAub zj%PU&l6iRhEWl&j&_VyP6+3Zsb*3A+m(91#as3lFU8&5sJhx$@pw{h*R#2pl@0Mf0bGM60$;YfN}+uwQo=+Wg>jOq5%uiZfvNy@8AwX00PHk z`rJh_y$BTZ|Ni^yFF^DE9*(KsU>|mPqK`xJj&^oW-hZbJ zhdVEa)}=&=MGHMiS`eN(k>Av!qwIR0I>pIkn}qBPWnhZ|T-Y4n{tFjWLtN67>6^`0 z{1HGtwJ#Tm;{xQ$_YX8Oem#Fe7+L~`K_|pT_<9Z*e0KbI^5~b#I37II*N0RS!UWQi zY+$EHtSm6wx=0wnw{yF-SWA^wL12cUmvzQ%*7LmxubJ{y0o54dE_BN)QI{>*FVnMs zbbBq))Be0WSmb%eentxdk?2D*L(UiF;${AnMOkpl>>BV%5696=*x;~YDqldbGW`n; zC^A>s>*=(a6+gb>Ejev1nnHY`rUA@+bPG(A7L=7FrJn3_vh4L|%EPJ(m%~r%bv-Q`%(~F(4w2c{ZhA z5UN-sd}EFl{bH-&htr<3K0#_LiDIObjJ|}wTCao~yJ~4cnbhNu9&!1W?V-_-CM2@5p&u{$P%WM1zStt!=vglgp=ZeXb zk5_Bl_@Lw5?Ed9`&u7z3hM3N%(^DU+t$R+hJ`dzZdNqs0&78)2!B9HSMEZAWfdF~G zJG&djRRU>YhFgh~RDZ*J%3QKBuV0TeK(Lw{r%EYXRBaKFY$+*~M*Ti^+Ach`WMGBH zW_ojuf%0_$w9-FS^a+G(L}E}|EnDy`XV9=PmuP?LrCr4d%~FMLB1dxf6-xhD6FsgG zZiX*WHG(&<*y&VHf8_Vv)T2JAwsi?=)FqODQ{obXn^LTysT789$H8ty-AQ!Dx4u2c zqB<&qny8FNWMfgh8^i|9J}V-FPOTzZt(jAnHK>_uzejsp?fkVu;d6;*tD2PuE()@h zPzlZ`Y6s#9>I#86>id!mAKtQQT0M_K%coJ#upG8=?x$riT_nQ`kn=y8^P2!d0&^Mi zw3HoQsx>w34r0puy`WNfk3VO#p|4R_s++p=7qq^jvTBDu;E%+|xMOx;0X-xp+Gm=w z!|3rWZTRH;XvaYPHk(TKBL#M2jp}EtezSQ6yXwVB9}iBP4}FW>piZXUO8z~fKDkHj zGSim0Hs+)X`mb#h3*G5)P0{JxWd)usEejtmfLh%?f(qelWuARD>EWFCxT|b(^VHAcA~{`v zuVHlj?~XOUKfX@`XV|e@I3;Db(Cp~7gb`i@QzB+kyt_(CNsu|Nv;&y;7|Mb#Tw_G6 zf^j%pw9vRpvKWCdfyJ_70WG&1o-$>g*j7pR-;(AdhH%=1H798BD(kp4OlpwGuZe!4 z7>vnY=Z);B{g`a3hhdWfXUw{99DUkyNPwa)1rK@nt(?f=<~f0Ak#eBH!hzmEz6c^VFAQT@#2!GOe}YU9xS&fWSH4)SoQBh&DZC>o<|LFs ze7n7l>}kJ}`jsPuma-u4i{y0y$cFi={_a5f3+M>I;WIJ)rF3s?{kziLuImD&JJ0-p zht@rz8$9gp)y3`QPoTUkrFZ^WcW}LU=yU zD)mXoSfMa$Kc-cqp+esn%5_uWyQ>Tt`4GFP^o8DY*VJv8+g643hAee)1N3!+yL;7> z!X$U!Jw+jQ(VMw12Ndj9mt*}B%RF(qn3-I$Hlq;3L@ zl##9!A%5f$-!QKB6CaK-^F0L zt{2DHg~wzT)gEO2&c#{S7T^0@gJXcp0uMpom~*^WyTAv&c2&Ll)8dzM^s!!4JHGh= zu_&6TjgE(rui-N8`VC(sx(nbi-*;!<-}uBZijz=(Cyg0KSxC~+O+ot#Za$(yKsi2H zfes1(1_3);P63=uXIH;V5(TYQ6eN1%RuZAMFWG4R!DM6SQKQY{yyPBR+h>r$zB|#> zpM?0HLR{m8xVK(zRQl%CG=EiZ)!RSV-8(!DU)Y}sx8?Ate)ibA)n6&@3mjb5ZL>BG z%S9H8WCbpYW@pUH-;ho){o!k+d1W2Cu-Ru~{Wa@LhAg`9Qy$j!Kdxl!WM#4vUcGLy zkS4z__;3#4>A{?iiEOG)Siz&lz-U_Dv|Y6OGf5+@)bvn`6p~T5V4EjYawJ37;FrE0 zjIt$^TVu5kRyK7Vg_?Fq+>u_RaP;wgXHqs3_T(a|UI4}U{(SJcCPv4rI=x5EE{RUlmXkd67>n zqOnc!7E8bi&;GH95iPs)hSnX;JL$n}Lf>9WapyeWz_-v8r80jIqdCtK%5yjLHe2Zy z<}1uhmtD0Y?wX|eH{KF!9+rL2&E!6$sj=4(zzSAk@BUmeEl^E%`}od^{*3yWoXv98 zbqm{L29KTPR85Rh_`BPe?A*d{T_l@}aQQ!AlmP*&g2)Siz^xj+RBMBVE)3663ZHSR z43BA|U>zcJcYS@9v3jp+w*!(CrB8ec?INxy=wm9=^s0P2Z=ZfPAJtZ3uXh{55fJfq z`4;7;zDqa3@#nosGte7Z45y0N$)MKQ)HA+k#4{Q3IZE?0Jjos>~T zxNo{5fuc_EuJf2_&MoZC6-$r;@pRHLOFDt8W2>LNOI#2%2_IdOs^B}Fl|4LBgjQTv zC&;9$W$WA$(=g^MqOn=??8(ey6+|(L99fWlZ|EiuujiV?w9-0p&*K}C0d2&qi-dL& zYYkk~e)kP$AIA%f8i08jdP1SiK57<*bOK}g$ARa{1=7J$@b*Ya1T-a?`3o$f!JP!j z5nCMWWCRO@7AsKUsyokWG6kL|cIwm{AC)!MoHQHJFRVS&;O5?Hq<-n2P(E{nZBZWK zb9i*(Kj#f~qURhz@p32>{py5EmwvB(O}Ri!tB}k_d-?|P*A6a%MYeeLn|vxapSZ}t zZ(9pDtR8G|i?h@G zT`hvtR~)49hxaZJ>o3XTzPq;l1DZRtw-V5~U@YPzCm8r5ZX#7z>rjAi<}0bo^QJH& zDnC6^oGf;ho<|I~dL&Icm}7Dq%YN(in*4);7F0rPq$jMc_&D%AIR&B*c&HlEPtmSp z`G%;#o1|Jydq<9RZlH=Ab!)=)IY=x5FTX03UYZsZ@mOAMp zGpT-JuJKUna!1~D@0PVn@IX?&D9nK*BSU|n%@PA zU9yOv6T1?dtkgkoxr@6X(#C~d~23F!wovA{IxSWQ(;>B%xHllsnj!O+ec2BMY6tONs6Q6hqOL{;kOKJ zviwt%)_KkzB$rS6*Xau#wfD5Oc6nNlLL;2D2A3wS)L&WE32&kEQb@cneiv&{1zDfSl$^deOM52jgrU|j&7U!=as>v}GU^p;$3SCiLkzE89F zY;(ahYwub`!Kmc)i0h%+AYK(&6>W(?Nrz;+#l(=}6VNnlVF?!jmvAk9Jnz zUT4>ZE1m0rzneu5{Yp`sU~L`MSZ8%$2?f>rvzz9PQ>u+N6cpf|s%j z;Ni!&!$>v*N^xY~O+MIfK7%W^O=|jAss0k8{tv$xnENX_x3;^vo0pRn4L7WiADvs> z%pPng^78Tk%@wGjX6EK%<4I${!^OkP11KSwvg@aHqd#iN$~uBNU>7H^0Ek*o10uzP zJwJla!VJANT^ud6t=vF0ZcTYb8t$w1X1A?mX^dcAD8MMx#nnv?V&+1_4;rCr_UDEu zXoaqgr5nVRhVML;Bk*-rZ~!KwHV(Hz39LDw1a=(k?668OczYdYPx_s{`6~mYfgmr} zc`otuF2K40S_&)qx%}6XpSS+$`j4yp{YwAzO#kirMn7cr^LNl6qvX4^(YfVqtgWqF ztQ;(?TxksW`MJ%2WcdZSxf~qbEUm0*1bDd3&VRf#0(?J81wkq7CqyG4{G(I^l)!$X z+-8E{I6+?U;{!i%RzU&q14jr7fuAsqpvYfG34zk{AJ`)#41VAYLf{O-;0(gx48q_H z!r%WP4QBA}iKs3!vIiGX?{pq>b*Cj#n;@)-Rx zfPVgBf_0kr+(sLWJJ4US0efAYZ}5T**oXJ|h9KC0eJ`AE2!V}11}3cEG<@f&>d*Ix zf{i~%F^~k<_+AY>M0_AO)*mMTArkq%r+EcJ0vj-32s;7zNaf>$0iN>>LGS>;M%(#@ z5ZHjtP3IfJVB>p3fr}b1&_e#P2Y9UWihe&E@MeQ)uK(Nv8hUQq2s;6Ip#MMe-Z8qe zu4x;M(Xo?`JGO1x>exxgw%tiO?v8ESw(WFm+deye-~BxAJI;^q8|UxYW6UvKbyd|| z+N)|VM*6?h0I_0>^na-VVy-@J*Z-Nr1_1i!B=Io^un+TxFY>=V0HE}Le7 z4FDA2l>6^608skB2-pA!{=8lPLk)o7&nxAR3LrL!@z2}UKNSE1fLFpl1OQP$jDT~{ zzZC!iz`L@4D*yxxe-W?)5HS2jzz#sb@D~9)0KuQXeE*RCFxFpb7iegCw5&H@f7$@$4~!pefb>63L?71p_!n98 zFPy(5{!jS_i$84s>JN~Ah{XX|bAQwUVD~rwk1GCE&0km_{U3AwzpC)B?f--0Lxul} z{6Y6ahQIm8n2+*D`k%6Xl-U6*?r-1UoC(nOG5_zpkMhS7_>W%xmm2>*3TghUVFCt# zmH)u{fCLcpqx_NR|7is%3$TJdAObA%(f$GBe_zS|Tl?r|0K{hfh0O%mmhCT$KhOcZ z{wI$=&;cAi#{Z@LQT{vU|CImb^PfZG!^8kN{{M1#{A(0|0s-5;Fad6UJ{0kfIsP1Y z|E>zaZQ6g2&_6c%X!uy`|Ec`fhW}Xkqk{=>`2lG2zsKPJ`o_>d4}5?t94kHhUoR&{ z0uI2X<8KYHhW-`-7NG}R$Uc7mXZNQv7h`3usaO{HE`N{Asts9N7ncS88GfM|ndD#s zI70F04frk^M6Ccw=yCxRC;+NzUIh8c+7V`y;V;xmd9w9t8 z$V47-a0rnLsEaEpAjeMYyL7x@XL%YtaLiud3q8-^k>O$}$R)x~`odUT5Mp3@a1NlK z{QSO|1pNG3S~v-4nNSY*egSEzNI=eppi1zxv}Zo*Z-GE3UT=qPi-*9@{vheRt*(9q z^e$|OsFy&Od~4sJK!6d)34Dn#K|silj*?1_3qclDoPGco6Ocn$LjoVT{TAxv_eIBq z@^|-T2a2R;2fB&^2Z9RV^nL%i*Y)g6at>Sx>e?9KyAfhVU_&tY8WoPc0q@`9$HR@c z2CRqRi?RYA=6V1O0s$oChbR}q2ZnbNS=kY|vRN4d)d0B;nus?Fx(OT@u!`gxQtB>A z`MwcqTQBr7bPDWk3#u215Cc!2xt|gH_JpU0*9yf&KMU#$(}{P6$dwVY zf}nS1d!hR|9Z#=trUTO!bc2A5s}U4zXY&&1+V{19>%AD|LbtfV!6oG3Wfkrj`!)lo z6AA&bHwHtE|ALSV@iKZD8n$ounTh;JUJR4p_Z{CEQtsa8sg?ht1J2-`i3taR_yk8! z{yRb^@Xq&<0#G6DT(HXb3FW=l4wT1t{;hWuzjwKv*Y(in^UtpdLN6UW6Yub4ThM+7 zi%mSRoqV*Iojq{dz>^>^O@?nBU%A-md-pp+-|qR9CiyVmTnLV!T0&R{h0^eHH}-em zLy%6gK<*$o4*Zb#O?`84ce2EMPW$B{5ph6*{qbsFmPLW0I%`bd_n7POY)#Eq5V=u|6HfMG+V}XtE zP<4wEP#fLst5=$WzPBF9$xKP@h4E$eKATEb>#ZTO%NQ@y@>zq$=hS1+G*rZTIf~3S zZcZPQ$a2rEzJjuBtz!XC)^q4-7wMdryMnrSdTQYZnRzwQ8#v1_o67Vbb)UNI?j|@u zlG?67hrW)lK!f@g)m80S3Ez?v&w(#<$)T`KOf2#u+}+=LbM~HSZfGz##|}bqVI@lmm}fc7&bR&g_vx=$**G9SvDGPRkvph zYnR_kkP~|I`6$({+)=-(Px!}H*3t^^Sm5Cm+(udMNmi|-h)v*$Kpo#qLPEbs$%&45 z@WLF|{hACd{Cp=zrEixX0n9G7{RC^WV~&nb(UIbfd%Vjb!PbN1(U@^GsvE z>kEBA4c*H8d0|D=)iegq8>f5KU=mBHrzHJzK^XSkWB%5XRS>mvcBCBXoZULvH`(Fn zkWB+}JjFN$Jm^o^6iXVZg>8!|GR|?)I(bNMp{z1o4KB*xNjD#YZTJkJ9`cRGDh46Y ztMnrI_#M@b_eXJ{=`U93(Oe*;RvCnOZ2;#oFs}hing&akZJvc`k{-SBqL?HE2AbkJ zHSB82)MoJ_+FxJ^24A#!tTu zsA`3Qj+-$Hk>XCBFx0-(%1hT_|3!NLULMmG#85G2pDk`hOn~Kc!~L*AoV>~#?Tw4t z=TWJst)7i!*R0vi$b8g;_6b=e#@`_2lG~@+U&^0Y0$;F$&Sj8Uw_G9CqFg|%CtmnG z)l`1|dJ)(KdP<}=-a=EsPnX*D+>~%?UR^t#NZalqIe5wQYs?zffE#10O`Ju9roPj%&woE#)nsgAM@@V7pn3=8<%Cp>&8ae%4?E7U7QC-oo z#1(Rafs2~MOEsflbz(MeXj1cY8L;UH_%6kK`_-e8=$#Y=sFBqyI%7?-mYc=bFC(g4 z#>^NP_pJ*8!DUJ6e4nTn#Cws2oxEw@fsxNrzw)~ zFrQyoYr%GD(pm==!o2mPm~C{EO(f!L={n+_Gt*q#c;v0o5y+v9Uc@JVzBV< zF>e~|zr{jDnbz15>ydZjSFg5i7VqzjGXmBK(X8>lKAY!c4BT!3<|aQw$Nzk~RBe-^~{PaxA0l zPc%W&#=v}_QylD*E6H!C!2_31kWS6W@owo-x8%?}&|jCt==VJ8@BN#IJgGPQX^crS z=+3xc%kese3)siBsk%!$j8g=s9M=+@ZF^mz$L4EZYf<#8jYy^<6wD#C0bvSugcu)(GKepRQ?BHO)T2eA5 z;S!j`NY~dY1!qoJ%WAwkQokOLRKM$Vr5pQo>=?3No-Xsq=*-gK3O^*CGk|tV8bF6M z-M_?vSoW`FyVJ&sYCVj6F5oigA&EE1c$K~j=shzk>&9p^LQChXE;b26U0>5c{8gA& zsW5L*t%IxQ{AR`$QJ&KcIoxbB8>?h^x_MwqC`7f0VD+LWFiTA-Dewu{nohY5`NpMg zsHP8=CPsycMtGa%?J$lOQN&TA-)@^4pND(Bv({ematx-m?<&#;k+3&6fzqtAj8)OO zS46est!0VgtEhSS#TxWa-{0{w2W+O1Dw%kJ#Cq_Q|I|Hj?3g~$-Wdjf)4ld z_iFh4jnecboi8E$XHY7tkxe!9&1@nmAYOc5$3KrwLN7I^NF9)qkQpgG@?I@K1O6gL zKj)nXIUHgdy|WkcjXAo0gVLKv?HqO`KuyjIP2+L3QkKfT4|8(kpL2+qMKsRCf0ay< z?n%9kZ3XqA>&Ro0|IV|`K|NtsIMI!|@vI-J+@p$}<);18n8GGv0e=58H|5o+)s*4j zQox*BER&0y2Yx}|04-ir*5V49w4(t0S=IN@i`lGkedP4I-Fad0poxL`<*iSOENTd* zp?Kh`+#7mHVl7iU^KjM!`~>ARo^r=OHg=YW@6hHuuEe(?u4L>>aNco+MzlxVN9^0p z@g=Cehtj#M;{#AI;1Z(A0Xi$!Qkk8jM%5#2xrwi=ScG`jV6~~E?NHa|{7T?{=TU;o zn$t7kQl``HRMOx0B(zF^R`x++a+FRG^{gC}5%VEU$R)D$Y?W9s_mUcuiggmr3w*vo z_2r<{&FZ~pA-=$!$P7Ffe2y;;d4+Z-YI>=|eCzqF+bAr+d?@5*nzKGwQ&d*7A;+6? zdr&*y=fJw2Fy3~7y-cT5(5CujX=U4^Ie+qYuSw1yXk5A&lJ5}tw=tA#XIQR6&zqqW zh@}ywL-qv*U)8`>KpEgukZ`0B;LwZP_=^fZW1RwpDff0BzE>sVUEXTBE^NpbeMhVz z^)8~V4CRHG3XAoL5~m_#4pyKhXwGFwI6dFamj9ApktcXoaZ~zG=aw~WIy%GswzkH1 zl8L2!MfjTQw5+k^khdwl!}6;a{L?HoS5xg`w0!mI1Jtt`Eq)V)_q$YcH`f@A9UKmM0B(EjMtBw$Jp{*iS$+uqE+VCJ`K?i+%er>74l-M z*!HOeutl2xuI-?C1bT9QcY9;n>5|9Bhe(ckCUHk<7InhVGH)l$8uYnz6Tv{hpgo+} zQGjjY_Vo3R?g0*NAAPn?j>@gu?dBCaUxbYwm!aseC|7m!@y;cx_-ZbY_H`*4U$K3* zDKx|GERKYIZvUQYfWm6~>3{~s*)q4s^LwI zStnxtO|tQGg7Pne(^TxS(tMC&8MK24&Z?147u2W5% zgPL*p^5J1)W*Rl!C=}GXoesJ*E?8is{a~WlRlnTBq9sjq{~8}r&R~y|=tyMJ+jB<0 zcQ}1bVOv-CaB?ZLUU|yF`E6^k#5rH~$7nbuth)XNTa*fA{ibk&qybe8kE#N(>)Y)Y ztZ}O9!LgZ(pGKSwo7~5s5=Eiy%_X{quR_v5@eCkl8^S*; zZ6$)+j+UgpCNPUFA-jc`hNXpoV9m|CiJ|gO?m73oOe1& z4&RhL+$4Ku=#vU#XSBr6kQ}6N7;aS(Tqv1=99Oq!=jHG~M*Z1KU2wZLY`wG#cw-)W zavIhUaw%?5Y!-U>v(&`Rw`$lyl_q)FZjIsAw7g-uVmW0>bMJnMFJAKdhP$uh7V9Ah z9Hm^dP9}~5RG{rJF{{_Remz7~9vNE>Mp06;HQ1*Tl*V4E@IlLRKIi){%5^i2RAEjR zn{OA|TE^C7ET1~0^T@}myzumkQVvV_LFF3)ib|(UrWs7IsOq)x?a6{;>=3-od)4yO@M{{%ixny-p zn2ElvRTokwwIIJ$I95|&?0`mv;kV-o)~K8MjPooT30gir}G0)pPH4np;~1E;fmk(<4XAzZa!hUx&-h1T-d@KY{5I9=9efgLwn zx~Ykpsu*F_=5fl}JKSOklP(qFWT}qjN11@)TQ zn{cS*C&MRxL)RNm3%UD=p7F^M?yxMfSb%{v!*w;Vsh=f0huLibv6WWk3ypy?g}WVG z(ed6?aw)R6Ii6|)OMIW7>r1s=X-IY4ES9?$UuCP1diP5Nym4H3KRPu|0iXJ>E24vu z)?>Hb)g`C5E4fj`3N;IoLnBd}5Qf?-ui#QqNC^yK%J1D*H_X)7F?DTL-9?I#L#%Ax zn7GZJ!71t(Nx4pqS;hmkcYIvp3E*n5{FXP9I6T(e(z!v@7a%_kO%`>%i1MBD16L=4 zZ4;b-$m-sVvc%DTr(Bsvw9oF{!g~at9jq!~BExLWZLE~&MBLIIO1$ec*x=VBXzNm} zG!eDqMj_Fh`&!q41v!0RvVkvw$hOB5s*^v6)sBnpv}3#S_(ZgzCT!)Ks~zJ8c^ZmL zutD~QH$RBb{Z!rWn=nzZ?TV$SHC`{3X$jsrXLZ!*qzZ$kC#_L)tkZW#oo8kqD5<+I zU~#@{d%1vg8$s*ve(%i-qnqQSkP#l6my`IMv(E5@6RiNVH<9$?>pph+OSM@?@#B}K zT8O0eclM-a_J`Vrn?r1}Y+fM!RMa52K9uC2qvTCXn))1sBN6BGbR0cn&>~0llRQPo z)@yuhKO-t>&=^xcR1pn@@|@W5w>J^|P2iA#%4AN#x7 zi+Zgu(!J==6^#fVwm?^{XT$clute|HQzk6A4k^q+R1IKj=4rgfNWYVw>N`?wAqAiWQl zVYk9qj!q0ams3I|ns_C#grjj4{UNW)b`IcAU zzoowMm3FlT^_8_aGB94s$30M`4FqgL`t!-H{c&1yr-Jc7EA`QGRGzvk@-MTzZgAQS zYdEV@Td`FFGMGaO_q|A_saD$sG#)F7dWi+lZ-P}abvdOoML1%F*QPuyYsyO)k0d2K za&5OXQ4|WhYsW3%Ha$8GKgOOx&Y1SX#w2?!Eosz7IEA32w8ctw`Qjoo-H{n08>Jh5 zYM$3wdA#Cwg{clwTQTrlKVQdFVuTXLEby zBbyD)T0kCxmB4I=Pkf@AWQ1=mO`>0wS)zAxa1kMUGB!0E{snuNZfS84#dNXi93!vJ z(I$-&3#6$zYn(&9Day%!w`U{Ro_jpZ$F?1Kkau?E#N|^VT82c2*6}2W#QI$wv8p74 z4ytB}W3>;yfX@P@TzWCv=3a(`Yzb}(CnY@xM)qap3;vO@My9cd!kC1!V$r@GLYZkf zuba~R%k1cEeQY9` zlu06b_RosUr`dK8=M!gNw(ZKPgn8OW%CXN#9oHY&sM@?g+kdZWa9GDnp1AN*seg5f zkS)1`%Sj02PeMVbh;DduLM13^ZyTpz?Q3H9A}7tX`Y!lFaw$fkas9(D()~^9_<0F~ z`A$t{mR2;k&mYL)5wUGshcnUmWP=hq~F?ALTcEMA-&E&%@2#5{e zo-zUn_Izg;>-n5$FGAsl1a^096uP~U5tl8qD}e;sbmFCRzVx%=F$wKWia^$Ly3)pE z`-GP14>ISqG#B(2HfobJ;Cx2NRAc?&-mD_O7o!I(Z2_}c_jcuj75pZBjz%HU2_1yC zSGct48{De5xiN>QU>R=6Mvsc;k+b>fN|8_RQdFGxT?U6GO?aTif#fViUgr$0vk^Ew zp2(Zq=dE$ZYSpODi^XePw;J=W$_weWl&?iv*L+;R;x)<621?YHl4>x?zwNKPLd;2N zrNhJSUheQOP*JX%Wwr0OB{*9Y*(EcQk}rEc?{M(J-+fEkfANl}vyPN3cbjO8sWVG5 z$?x_+XdKhfC!BEKTxk~QV)VHBWcuo1Q(KY3WH@793nmr#1MGojPey;1L%jT#d-6rs z5|Xi+pSN1~??s6fA-T^{8E+8e1tf%|W>aZ-R6WaCb3*77o2$ut!eX*<{iL}$ z7OvO4g*)x_BMz^V4Q>!f9pD2s#JuK8k7|#FBpz*fL^35ezFzCzeFAKaje{orxms+uE z#B(xv3dY}qoP43gu^~EyY=&IdZi6<}*1E)e4#}S3U~S^iT6c4K=u2`DHX}93chj=k z_HEOIea(7Tvuric_gidnnHKW?ZIRURk z^=>a+*rEodY6sW#AdecO!l>)7?94ph)1k{6sDo&nY4K+{ME!~U$1{|X|y7pw${ntj1Ua$mU0UZow$X_v7@haIW8#f>)3Qa zHr_%s+Uc@AHT|mN4EP%SwRt*}hffNdwlN(R#_uo92cJ%SOIbAxL3790Zxv&0VViev zeuQ%7sO6Z+=2$_y8Bu>4?1-S`y`^)bwJb605e3{wmeKWO+$XVg> zt%&r?>vh^HRNvK@XrGJXZ&3?j4ES==j)Nx~>X=!#?BklQI0px^w+Er&Dnk}j>1;7r zF>;a}&NPl?wb<*--eWjpbcuQ$12U zo6%9t$n>L(tSZ&Pk5YnEW5KTXo2DLnp8nqB?1yG6W^$E_8Ah`h z&V`eT1+sMPd3@z-f^CE<($7J=CraHE4*ev8Xju2ZRW88kA;3ZGP)U!c>Y$gmyNDE4 zuCvM-c4f2wZ}21T>iH)ksS?(-`` zMnQB>`F6RhIwUC8MHO4`B__SbzR=j0NfT@-^tv(dQ#o;Y=5E){p(okV2ikwVOs4wC zgVA-gY?Vi0@duR_eu+2t{oqr7vcNdVipcKut%M02=Vu6g;o0^N0$) zc(Edx;~hu)ZwP~!X&zA(Nzu|vKxHiAx`p2fJdMaZzk_8NiXPXmi=DUCAI}?T#uk$q z#0jE_LtruS4a%VY?2Gu+PL-5wkO^hgEe%XU`<%v*bLl?*P!p}92|D*(XX3?G;@*P0 zmvXW2^v>b6SyOCs)N41Evwbg5Jp^m>+xGK4gI&LNi0>kd724sr4ZzpNd^vETgCl`blF~eJid<`uGIS1 zl7GLMa~Ud$dBm%@duU9uj@bL|#2uqdtui35W!BW5GlQ;EOK#Q%KZ`9m88&x!ZI@Cy z5Re|Qd(6H9 z0&C0*FGV(B`r;hE1jt@G3KhBlHb+z&KSM!KJV8!uooUlYwml2_ITpV$Rzkq0t2$#+ zH}?^)LK~b*7qUe%`k}UtTKJXV9GqV1TaqGbKTH&v0Q8kK?_gx=T+f$wL$PVe3>Di2 zLbxrXbFD>#88VIfj0?A7Da6PQsU+Jnh{nBDGT-OGwd45>_`Pm}s77|Q7_kE)C-IQ=cvZH61U@qs{gQYL=B9LbDMx0!gC@Hl_QuX}kYF)%isM+f#eC)^S8Tc*L^1T?Y_RA2 z>O1RYG8X9NsBSsR!0UCOV_9IS-qT^ycqSBsJyjQSCeLrbPp6)1@zC@F$q@OYSKTKi zQG*)RxP!r}GGa75O{Tf>VPY@&`JmH|IvVZNc*js4Wv9?1Cne@u zmpFISlKtboD~C7kE62f5`|d*4^yttjvzNd`jHMb*ttms64a>F0YJ(e^K5Z#R*U#dU ze&u%dBbQSCw9J~YJDJy*wUwZ~%@oRItLCgr@zu_G?tL9+2x{3G2%>X$sCd5-bMqPB zU%;1l;}~`@)`n@P2E+1e1k^mcTKsEG_=T3Qxj7(y15Xs(gFLGgGs1y+9HPZH?}I!z zeTLssHqYmvdbrqrm2bB%s8|dYeBe)UG@X%8P;AfdLMtPiyXAUz(`<8?I9oFQ?gr{% zhTkN`kF6Vl4qnK#VP?-ul#l=L8rbSMO;coLaSN0$OHkO}_;u_UO*4epcaL`Q^4p2) zW#)0mryEb2%_jj2H|E$z$7sT&$;r`!_G>P2x9%aGJVe}_W*w$>IW<12SoGttiD9vg zL7xn=B7h4xsO}{6gS}^Nrmpcbn4xRuIYyZAI%lbzh^@%}*rFm;y2WPH!*97!;$-1+ zmw*Gus+$3eVBujl4~>vs+0{4xnAvNY>5w&WBaYbZ60o4KXq5 zCbnOb+PVKJGxY5rjDSEQH&wYv4DYz zuf4m<+?BV$7Fj4z>k{uMwp^DS-?v*`gRQ(Jdi=yZhs|`G5YqjuzwPkN^pxwBg|o^5 zs7=s`2M@c_v(9iumB0*{iAK(s6~hPT(6y#4gz$W7S60@V_`0?S#F+IJJYCYs1Y?&I z+`{(Z>{nKNrnA1LwFUT5cX%ALtctVG?3SL2jMZQYXxoJ|QZ;un57R=CTzNd9LS2V) z?L2HxHkm*5k5h(_N-_VWj`va~T^+rSL#Ojf9g)2!(7 zbjzv^ro3;3xY$u@^3vZB6p1@b_pTu7IMO{^Mk%$?wB+p^R|>Yz+PXU2LNz8WI^(fO4Ws_Lb_R|< z*pqAxa>`^Wqhq_@!9#Y6#wmSkhYFeF*s?s(D;%g|I)dji9XMFCr5<1eEqI%NVFL9P z%_!MdpDcbkiTwK76fB{(<6XH@vj|)s_zdvriv7NU9waCgMbh*{laECjvT`j{05l`@ zh4G!!y+6Y5M{gvWlYmE=Flus=8UebHiOAdhgt$47#O2{$i&dJ94Z)(s7vq<5>8k8! zlf(SosA9!(`nBc^y&DPrvoAt&edV8q_gDIYOk#(=Kg$vf@ToO0BQS8}9_*0&HZ8S( z*8KuIE)Lb>-0(scGQWT1vi9>Q!!>%DpVJl$cRcLwYUDY@$wXyTy17-!CUS2YO^ zE#78>O6u}%2>AzkmnC|940S zBVfnP|86|?-t zpcAAMq7$YQrIVqPrIVwRr&FX;qEn$$qtl?%r!$~4q%)#3rZb^4F>?lFHcs|*rgY!v z%;+rWEa|N1tm$m%Y^;sxZ0T%`?ageA=v{hvNkfdcQCZEH>Pu;bEk7Rwzr}9M|Qxr%(_N!& zM36#%92%aLTI$rF>MVZsc)o1W3m{4Hs@Oa55N{Z-qT)>;G%Es#WM(k;Y&y&1pqU1n zpEkCDZ0(`!pr9`8+fO+f-_4-x&_D`X{6Auqoie#5(O~V}b8-n)@gn)jTxbwXP3fV& zl|efOxHf74uLc6K+9bWYDEp%JE)Ad=S?t5>O-{`k8kv|pvUO9ClS5VBJd%M%Lp1wY zrU5zHV9OC;ZoR1GvSHZslVu)jPS5)+6)%4s{2H+GPKnW}w|{m<-8+6}X$b7uv$$fp znCg3W^1~){m|a~;0O#F)BltyaB3GcCzoa4CbMd{#23{7Cj;!O|--=&$-Y3E6baS+P z8_fO^h*JDrcbg6BaXpb{61Q`ttB-K73mm8!$ahWE`NSt^_RbFCO~(EWT$5e>`I$o~ z6_^!Wk1dmL5aOYp;JHcN6$JRK9FO0p<2~UagUm=))|X{)7*`Lv)(g9*qphQhKgB0i zg?dF>U=4@}o)sQm7HB|sy~CN*2DC1i-OuaIs@!}N3ak$glVIkugeyVgL) zow{`aG+OT?E8R$7caOTXF9lh67xbdG?!k5 zFyA|!QcK^x?f9L(V;@wo!RYPo?7kq#F2ft`Zh$#Dcqpx}qfQPz@d*N~Ay6tHTMtBY z&-SX`sPPW-5MF;}>*QrIu@36q@;p%kcR(XRFp2#wsI?WS3K_o62I{o6B97qF;Pp1m z!&h$qZZ5zdk^>&Lt>>;>_t#`rYGA>JC;^R{hS!R0Z9kMKI0Pqmj4)~B`iOvhbvPU_ zHW}=5nkVWdwC1*l3gN7Sa4TZFhBesqPjZfcDnFc0yp;ioAWqM0*DypQ9U&B@ek186f|VdY>Qhe z$M!KGNTyst_qunZSFy)wBw&XhgPO@a8u3n>fA+Ryd8oGw@6Vj;R>@_yT1GOAWp$(E z6UUV0WTPOz_yGs=t3H`4+R0hD;N{`OfBp zd4%z6MDmhpDjcU&OeBPCMA*^N1sGfPX-NuKViDpXs8 zf1*J?=T^Ih7W^5`#fJGwXLlD}B@I2f_@{sZRadu`T_jv`o zKKhc!EBlb^Wrlk>1r6+&G2q{M*T?m~oiB^xn6rZJDur9WQ3caq6FyJ90rA@A=}=k; z?hr_d6NC;@C@GJA|LTRFJ{>{kjN8z(RcDj5ONKNDt%9lj^t8jr*TVDp97lvGRefFo zvd%xXS1QTU1_}EKaqxulq0_*zA#ixxL{>#Bs_`qV$3CqF3 zB@}OPzCdCf5_0d|qk@bv-<#(_nUDyr-&(?hA7&jciF?}w3&rLXl^FrC*@$jSW@yi} ztdplirSHg6GRK>WG!R-B{Ze>YT66##MnzSbH)#Jr!_bJ@g-dl?KUQOziVe zA>Yl0h*Mc)!we+rw|Sj46)3BQh^xBopG(e^zzyy-EBknQaJpYwh~9VuPH-JF~> zgE`wqzB&yk3&mZ`JzBbZKyqcN$*GY`Cgw}!@*zbpc&%|<_7v7G6A;g4;`P;Og46!>GHOPYy=@lAPBN%j(oLp2{3bNo_|=z6p#q z0Z;U_a@^-_6g6IvP8y71*1=^>>2#&*GZYPia(MGCF{{#RKN}Sb;qyfqAvcCO+C!Ra zg_s3Rmx8P2nzudAeHM>;vA=`esTWILu$$}Qo&J@UDkBx@t8LzK%t(mcLo5EiQwbV( zZSGXjFQyAz7AURM0uo(MmxV%2%E70hcpBvT*F#%$I0?yAb_S6j&rZMEyO#_sX?A0y zSqOQS(0L-{!+rNx)*BM`v3e`#ANc(_A0@>#IJA1Cz6vQ>X|VBKb#86V_9iYMk>g~s zoL;O_Nt52)7g%dO)_K8gs?Pji^&IU@z*@kc?jT;tw_i!i2}jp#>nPl^V-hEAoN}#Q ztp}=B;20qphvW`&Q%?x#2FJoSYl(%Df>>^f^g0N}QXbmHdc6I952*o}g$_=%E-E^I zKH4ywpz7uu-E!@Ec70nXGD0J-uGbP9d(NrfEl*!n;7@sz>XvK(x>^XN&n~)&mzVJH z-LF`ZNvl$(C+2(0G7W}1|NbTk`Yo>D6>5RPqgP9}%$Uu}z-6Mg*w%{nbKq4RO}kjo z)YbQief%K1Uj+c@z&Q z_N>YAXE-4;Rb8|gJsOqYleiRJIqs~?YR=%&X=|+CgIF;o#hh*zBH)<$<$5@g4ynM9 zM2`}3-0hWn?QWjU$phJ`fn|#!Ql$^G%v2RXpa~;^@RuIWwb)G8U+K*;qIG!=GfO7< zDINRB2H4=1)%~J0OXZrf3T}5cbM&gn3T5-A;Uk6J;+7y|vU5hJ`L7`g;lMtt`?yDZ zru05TG!HVIiFaY^rNQ=!TcO}_lL&NB${6ESYXoVhwcOx~`T6>zjsEmi5K?>q>x~d$ z%Tg12dfYO`E$w--mBYYiFVc`|8ifR;#{sP|8&^1K4tAhL(tRycC{^)H8#xdbRYBkC zhvlLCSJuTzw~$Q^j+FvI$?Xnu?WNAxE$UxPfgM}#U)Hz3aq9)?&XTi8lYcizSgN8r z(5H!>)&II9fWSh%();qQYV3$~fbKF5{krrM-+|d7x>&6KfU^#`k?YFT!MxQXr7Y8POrGNjE#LaKzA%D=efTs02=s%gU{TeN6! za&K`sj6V@CLQ}z`!^UI__Dzl0;7B`w-(k9I%wey`AX&o5$!1vRGijN}T9=_ZG;%M>5BQzGrSpH&ZV!sn3OgCmmXXdZJQCPzs1Dfyx7GA&w z@XI3O9?m8Mz@iSL)-FJKJauIX?=JlE-cItNo}<9+@$VwJv}8f%&=hnw=gEJC!x9P}Ul$Vqeeq!Ky zA-JO3Npp+eFV-JPDE?0eqfZ8e@KyJg%tH7n@E9vl>o=IB4}lC@Pa+ zUTrKwI_wHXiO`gHx$Vf!#jB9fH@yf%HZV8Cq|OK~zQ{3FE9UlqTZ@~Nm=C~pa{%1u zI`(Xd@{GZ9@03k5QGaG53;#1e`nXm z?0F?PBQdRpcO=*d&F!=ae5L8YRCifb`pECK;A*qJl*PZuujK4dG2v2QM_qxImmnuB zPNVC^4HD(W>{*d!ye~-i3GoqA_eQP4 zDa>(KDGBE^-~-er6P%Pb=cAIIqi9?&Cal=iO-)0FQ^(Gz6~z-oUd{g3Q)TmeOJ(ru z!G10x0< znHeneM{Xx3Ya3{`B93d8J@k)2SrfU5XQrM;gXln($3&01)*$>u#@t}nD|;GxLG289 z{eqC{zN>j9V9eFAT%(xE(4UtDbRBo3NP`{#+1?;sVry|Nq=Xdf9=l*19_zDT#A0}i z|0bj_f$!dHf{UqbS~jk~Kt4nZ#K)(b;7OeL0SAfqBzQAk9LaTTqBv%mK#ab#c>ck+rMj7lLQYq0Q=TVckp zD(l*6dvvjCbDSARXrZG-&+7dd=z&FcVM3pLN$^+1^J@am3u?@3Aav#O&`=V_;O~62b$nrg2S3K)O>9$31EOB$ zr32d^RW@(Fyg>Iy9WTPzlRm?v_4E$N-Z)fwAEbv@eyiDSyN4?mi(5h-`EeuN#Bu53 z*dmnI=ZrnO7Ct<9*Q4Qa!b2U;3RnEdXSRvLG&JPR6uB=~z{j>Qq7Kw(tyBU|my8;C z>+-qQeh!2n8-p|fNxSBr*%iyUw!u7li|>Vd`b{mC=B5vWu&n`%R0nKD0$SkPvizfAWi|u&K8Z$5Po+k#bOcSS%jxtrlT+cq43ChN za`~}!yQVgGO-gECb!6zkMsj-b!E+Q)%sPJ5hWD#*C8zb&MPr9eak9Ll80#gw$ne01 zR#vv8hWQw}QP`~2FYQ~&o8@C0)6VBp&%gkl_tgUM7@1YtL6uK5OPkCY9`?sMM(tT;KA{2@i7Ho%6>p6T>2}axzI)CEaD@+8uJTK zJ5zfZDT;#)lq#p5yt+mz%XTYnetuxO$!Q5l8w2K@&r<7WDiJmp?SVz$V5Ucz!X6vr z+=pQ)%+F19_Z;Teq*Rm17Y>hW&DxSlEe!`>T-YZu`rwUj4SJov$zub_yCWWe z;~|&y>1=aA4eo$N>f-aGUiw0str9HkYqsKPS5r562~P23B~q~+G@lXhqY!4N+j3X{ z!b03hX#27iA#61%?TTuP6G5}>{>9g_q6*a1JXl^KAhqS! z=Qjj3lc+Hn0&csNZri8!$+rW9!~>rf$BU!vE18HW);N9>*|i`pD<}IRH~Uv)XFUxd z+4~2$#O=Pc(RjS17rsGU_dfpS(>%%B%RDuKh!H{0557o$!WVw zcm!%=-m&agLt2}yCBm;LtWF|}v8{aUVlC;tMSx2j zSrpA`#4rXLf?szf@X`?w#^_$xke{$d&(~sliP<~8R)5(oLytI~Sx(6U8BAx4q^{=a zsu&2e3^zO&HW{0*HT0PophB*=OL~4FxL{(Aew@fbYub>Tf8{F~V9^>Ai*==gNk8Xr zP}qRUc2M!qj`?IIt>AyNDX&VMLfjKNc?L$KiDnC-8-O1<@)hoq$nA+l%`Q~_E}hEjBgVS%3X%Q{uleFtXlWWiKegVJqID;ZAe zc`zYWE(NrnF9rpFSB(n=b7}0>X_A%y`>GzTIRqscy4z`;v>mDlC9F`E_9?Xy1JBAy zD;6pCCUAVTYA9(Jw%<%5Z_*fFU&K5LYZ>8Nu7=n6DP=6UhRk-pp87*(I?89XLMz<<@yLWVdK=6sNx( zxb*08J7lDuqL)(3i zR{WCs6Z$h#9brM4dsV|}g%bOK>jgd$ni?m9WLu0Qm6`jGG1F`#y0D>41mt*w+mmCy zdIB&GByxl9JFhbgR@Gi;?G0jggR866sSw)K6g?*nrQfew4|Y(m{h>W)4sdKqmP}qz z(g`t>=LyAF+~ozupYkqX)|c+d(7DrL-c-jC8QOVB(f#a=bG8>aA3Y^>yUx!;{E>$!lpVtFf?$>R zVc71Fd!Gh9Tj;MfhX0?^z5|}>_I;RyGFlpl>}<|HhlK3CcgkMbdxU7oh$yl* z3E87;8AV0ek*p#`vXW8W`yBLe&hz{K{_p$tsnhvh-+Ns5HScw<>$XHyHPru`o9Wqu z8V5@2-^%}@dNE{3>AZPTAyD(3(IC;)ALg1yo1zjg-*pbzKXc4wlCCt^uok@h`E=Pv z^oyTv9M4JRKPUKw)1~IjSV^>4Y-%nX4t}XUtgi7YQ>gVx>&fFIOrIXB<>gj-JS~&v zv%uVNYaV;w=o8}MEET`vM&W$duIusm>Z2z?E(UL0tE0QtPUyW2=v-}|Gl#Bu>Ga+@ z75t#*Gp#jcyoP}GLxBkHDurkbvvGsS9=4}ZzU8!M&UGeDRXw|yp}dqaAZhVU{(Ags z2E^_}xYKQG$fMreXFcBw1U_@cX%<(DPj4VQdIBR6cRTL-{@zbh^5Tx?g3?^u{^;NF zCT6#o4{bnd-O1cMFISjt}gUkT4$ui!$eAb zS!R*0HRs6{al}J)g?t_Hjy!)(0c*41mmciap(#r5tz_S4wbhfoFFVC&Z)p-kDSr}q z#7}Qf_H|M}YK5nq{#VrC%;ku;J~yQpNEXx>pFSzFDQA>fF<=+T;OsU0oO?lU;fS1Z=qR!;v8%c)3#1$=vglv7wPh94k;GFMHSs2IMVzR;pyZHlNQZ(91tc9{3McEmu zO|q$?2el7H4BAt%YiQN|S&GEa^XAMwpLxhVT3DM7|7=~Phe;)lI)1uc^D8`?%b__@ z&e191)xmEZcQ$^VAv!Z_W8~g%+Cybf^#^74tt!lW;rA=zV?{4sc({J0e3CXdteCi; zjkImxsFRf3a}!S)+n8z%sk7{b+@$po?L79`Z?|1Tm5J4I+1-0{?PTMYn8V!U1pjF2 z@D;y2-|2e}>HAB{A?hWgC5eh*NmJqBmi{IZ;gTD~WMAC96s#o3oOM$M(J`N*K_a7gk- zzx2kV{k=+u{r{ZWydB`#CRkY)c1L(^Ty%^+;IfthYb@92^EdOW_?#a%ddk9CR#_zU zn5H~a6>P-@`}@C-bGKA5v;BGYgKGUF+2)VKs#(JugE_Np3)30_L?dGB>&_%^Pz&`WDf~-n*7^QIaKCyQ1!s%PHEX=Jn?v!AH^N9~t>4|&e2B>)lHt4fb0PE7eM!gTq2WZP z97Xc=O|?(tS`czfljyi6q+p|eW9Q;Q??Q1ML!@lsf*;q4irnXungwEL3kKn~~pZkpj zp6Yqk+g@H(`MFB3m}Y!%th+M`0u9_S8{}i9T56O z%E)((_oV4MW#?t&?bqrZaq|;I!A%zmQ)f?zFn+UF+u&5TJ1UE6*Ltvz!i(0U`Xu`& zzedP$Qj;@f0R^(EtP0~xPflCMSpAk56Vs?-yz?pO*;(!@=-$A?$KJ86YrZ4pP3Gg* zF!KG=-1>Qdg=+Yv@nD=2KX-ha)TZ7~-=)#f+ua&t25lU|*D4#WU!LM0=8{Xt=pb}$ z-H1vrMpO>5r7yWJNd#L6eM20&U;ZFk1oQX{T+y`&?X4kyfI7rU-^b6x>Q+aIvO)Wl z0@1|?3-9x`lqQ~{;%kz=MMKnzY%^M6Pj4?5k^gylw@f6V*i6dZypAa1dQ{8r!=W;^ zHK}#k{z6|6lSgMC9x-@FMrP6yq^#2uIm?V+Q=NJF(z&^b0Y8pjRzi zee5mg=xJC(*Cm_k9oCeRE256d_{=VAEgQ*FFKR@P!?O27#v z1>=;Hwd`(*sW*^t{W#0(Y_IREfBFdTBkA3|?)5|?qglaB)V!*<#d_87m&WF-zmYE0 zrF5oNMb3Ffo*5A^8Xp$(k6)H-?~Xa48$DWLTi;XNrB(5W&Gt+fL7WY z!N8-kMqyhoy}^$QnH~46O5PvRre$a6&qAfiD9^lHC;k)Ve@x1NRrIdt{Y#8?|0cl@QQzHA&Sl+St@7Lo=;7)?q zXA5-^xm;)&N>^Y?44=wa;(ey-I`~EGyk&Sl>NUzcR&aeO^xDrg8CbL+UH2I!3u#%& zRkp?U&?ytk{xynj%!b*V@u}Z8PF;(4$h)YXk1!x2pHi7ncN`3ePlTzbD>QVM)oqG?Q@fbTtj5PA`_vd?E^1-E<2|YR@dqeoq{_bOO60}t2 zZHqTavOAn?3lfJCRv?aSiCr&{$EWI^1)=<1LYm&)I(W#kGwhAKylV8%A(n(c+3!uv zBpSpUIAuqiU#7qRJa8*lGWCPk!3Xb-sFI428PAMa^j1i(bc`lNI_lA1MP$A9nJ`TX zftxfCC3IS!CR%;?XnDFa>uB;D@5~B;HlfzIfwvbu!kjM zWO4E@()e5|(~3t?%wOZo?Y-0ara#I~IqFK!zovqFzPUGia?a4&PbAgm$CW!KsZG+p z>upbSMCg~}NnL1)?OGqx9G2Q&)={fPo!4d`yk^axcy07pcH>mAgY~^a6f&Iuw@F6l z$sb=dFV06RF>9RUI}xwzo?v{jQ%v~mFu7vlYNE2ZBf2emCV68&BRoh`}1lLWo*k&pY~%1A{susHpIif z7UxM+-yJlfe?9$jMA@=>*1{}PT!EGS&&BWR(QhmGU4L2;huA8kYTLW0*SaT6(n~Xs zBrp_qM7kHU1g==$D9q7rBr+NLU=<#vXoR|1_nB%!zm4^w%Ia_8>oMyFF7>vTo|_{l zCEl^cky!ZmY5k&KC=e?OhZvk&YtN?R9eC#6V^4j)9Tr5%^tzSPsL7(EZLz+Lda~3` zy9g6I=yj%~5pSg-%1ABi z&CB!q`&TW$cKIiqfTm5A_zhn#?YcGpr1o2t(fs59J;x{2j+LKD3P}gwEvF3*iRMs- zzWsca)y%N>m}27V1jAD(b62W*eH-=Hf@Pvf&X=hqSZ`UVjGH_ud>`L7fz-R9ESRT# zY?e*n2xh$wd9{=yfHp~@^rHl_ue^NjRh?|)?08i;@>{NwGr2 ze763LI1&~xcc&(&qCq!eU^gu)9pGH!_OQt^6ztw z`1xi{zrPDzn<$x#WE3b%O%;{!-msE7v_bmn=MO2C3pHfrgA?SurPm(}jUE;~aFuah zuF>wz;hIRrhe3Ba*R8*h73Y)7=knNI?oYVDpkT|t8oJVm8fR4EJjQ*~c4XRs?TXXs zv+wimXq#V4_kLpvuLxVHi@5&oD9N>kY7KKSu9gRFx@X@xUQ0l7URLQAu5M-UDbo)U zj`T@<&1^DS@+}K(e6d(0stEJrs$R3VOHn5@c?rVJWtO=)=A4(O!Z~neU&9}2WUa;F zhYzid7v@j-w_2SeeM;n&Z@j>xdA>e?HP(>&sM1i?1xrfmd)I_YKL#W;#$4PWpHWSv z4R*aMi0mg8nO>E1|H>&!ZKuq;5-VwYd+e}%%*8XZ9ZD4Hhzwp0b=?@7*+wSR%X5xg zVgr&~)7@snzY{6z!kxo7-*P>Wok=opua1Hg8N!`y^ z86Is5@n=pyyealjcCoI{`f8T92{o>ss#S`9OoKId=h!1h0 zrJ6eaO;n}!6eBCkywFQ^cug>JBPI#8{A=L;=a>&5w#)A2NH zHCfNmPF0H&&qMWMNEf;-Y}>|^4TzlJy)3&#>uZ_k?Y ztN2DrGM7|OiZJWVym}Ivy2_NhHp+LFUO!-LAU^m||56$cwDYph5T~}0)maJS^7@)| z*prBKvPgEVrxLBts8TM;ILSQWOp4JC(XRa#Nu?Am>~F?jkt>rc7FI{KxFJ_=@#7j1 z@hW8P-!7D5_N@WG*1my)41Qi99_S`Pj0{2UGzztJ9 zL4DjUQxI<)+#Yqc1=meY-RccZ-Tplio5YD2*QeEZ|K)8~dslbE2Nze)53^j_Cy9O?ASeH*;mAIoH$)^uW4Q-W zqfaGqEtc`76(1dxh)DgJ6C`&BJ{of*=!mm3-Sc}LZ?925PS2dHo0JmkW_sIQF&Y;JQVmm`GKt%J zd+Er^{q`@5r+%nuxM)q9i#n&ndsJ6h2_2a##-% zx%eRO&QXTR+t)?4R#l(#OD&--4@>WB4ony4PGu+hN*3TVgt@aJItYGxu||GyjaqWF zg4n;{fNlU|^Lr9{qS6~5|J>OSVNO;f>S83N{;_^7cyst@pg7URSn6ZO)aCWHQT2Hv z&(*5MR*VmHF-}rLNGV7HnTdX^tc*mj&VC+b9qkak7W7TrFqP=2AEOzg1!Lf~?#&T7 z4vuDfeU^JS*~R6w7S0guuj=LI5ct`d>vLq_TGhTkNgGETf{5gPzu%bc`EzXap!>>G zcaDIS!!(P;e=4I6?K@Z+xX)`76-KAV;Powfi0O;b-6gS&`oZZGtDLmNq|I33xs-9@ z%CF~%1_MUck{nZB&e1j4{i)}>L;3psl+nT;x?lU(9xZQbeot9S={+&_vqLT5h}@Fu zk;yc&#oL2l8}FeGU90+}`r&}X`U}mQUs*(q>zNkqLoi>M64OXtw;nvS{Nri)IMeat z4(kz;+GD5#7imA7F%GCfvNaF?tZ#4}B>Vi`|J)-nhp(uW!dk|e3TdvM(^n)B@LNTZ z7tZOViX}yJ!@LjLQw96gIl8&rFs+q6{w?g;*|6RM$vLf;ZgX#nKfO{qQR`3s?3kt< z1T|Ueb+%XUpdcrA)>#u@g-!@_xdXieZ-yoNW26j+q%B)-2XOl>*vocvISK}UD!a$} z;Yxp1Pw4q8?M?eiyGcOr%FnzHuYi=JjY-FnLT{4_Eqr{GOnD>;=;e{~~IRhPNseW{Ks z1D%-H8u68wsVv0Drx|fs3zgj;o@KlfL_tZ%Ze|qwHZM6VAv14^$seZl7qFo^bt3fR zmj^PN2L{U5$|&Y(K4gFED@1)_2olH&XsB1vek+r>1XY_wlkqVqqNSsSz#F8@?P;X_DkAuNJ#RFJjoN>R<`=@Gl2;U8Kf zG`Z1K$G%q`xjYs%uNQx=q>2xb;K}{!n{)2uh{DmxE)6FzwkZaB%rHh*U_ zRGjI*F54b8fByS8$E$YTJE_^HXV%(TD+1zQodzi22A6Y%w z65g01p4{2(j9jEJcfIFCpVe+&6En0LS2?p*9n*AA5YwThI(t{*@db@4lY2ok2NHBx zZ_I6=9bC}jJ+`MMkX%i>L_frUUJ za;}~s_iH*WhgHwVW+y?DKwQ$Va>wc}{!|e9M0)mYtKSQG%oveT9=jziR9owlFBk8t ztI9@ZA1?{=)MN>34^QO_KUp{C=p9eV$zh%Q1g#4p*AKUwqI-!JdOzZMwOizD%9n^c zm(Axw;;nK94$e?GTmsLswFAW<(&&h~d7&iza3&np9tx1x|f8UiFxdHdlH*e^@L2=sogk zIR3C~`{$qe<|Lf5Je?g0v)T(z%`k5gnszeb_=A-;L~Agw@X+;J`}c)?Hdy_3Lv+09 z`5>Fo{P7G$_nO9<_{@VZ&sN*e3G2U@Gkh7**W*^qeX^)8g-P|&vnXbDVq{45cZrmV zwuUCLsE2gc6b>R!Y>RqyT8BI<+Pq4x%?id17nbQxin2vty(;qtsv=x5fOPaKqjjje zpP}iS@m}-hivUvY%{G=~xg^65PnnpERlcN$D#H#Hfido!#p}pX7iH%YePkqK@7%3d znf{ob$=KXSub(e`kGWJmVkph}`=ys(*Ao>gY%P9|vREm+%r`6Sef1>kJ=w|MvRskS z7o&;!9Q`nlLVA^}wbYx|)9AuSe#10kN(ub}HMRcF4rL$dNO;la>ri`(x`~VTIZwQJ zbt>g8o4V=Nb7;jxK{1OV>hPOE(Da)80x1~L+ChxpLDgiM5B0HLHtD))7CdDtqXRmw zo#wZuUwmk~l*S6@uscoSx+Jlwi|${ha9vc_B0gEAGdt-Fe%|kav`w1n{gv~*fb~`@ zl^E)KpYHR5-wNw#bc(;eXoTDsOksbYysGHhH=my_En$>Wt`G4q{v>_-Lg6Qq=f9+R zPHNhQ%gtZd{2?)Ylx-^P*Q3F*2G!+4q!nGVD%pU}rqdavVMqNB9NM$b9w*LTKU*{; z*_TZJL-gJK#1fdW()--2o~b28OS~bUSvARJ`W}2_oDbAYERFv>ICeBwg5+w&Wy6i7 z=~}wcCia^JdP<)~g}P31z>a^Ht01d^3-nU48?+n_3_LF# zJ#bnnIOKtz;G(P4O`_De$`Bp|(d~C{7C+~$##~vnI@YDE*t+5g=bKxlKcJS>#4)1G z^nHr>Bi##Mt2R$XE%|~zD{rQ&5$oS*qYtvue2?*$Tzr7g8|vaOu^)JD-AO!^d3RF2 zKGX0lTY+4U6=Tv{rnX)v#iP8n2i#F<#-w8z8&;W)O}rP*$$3yr9Hud964l!r*Jzz7 z^UQzE+LSx)Lof54rR#$G2#sgY!IPaB>9ox7p^d`iDQ0W7w{+MSgQK%`vfhE~CUz zabn|AnaH)L2dTa%L#r5%3qKpasjfo2DgUMiJz*$5ml2zDOm!^nl?sdA8cRoSJr9Ll zluTezP3dq=n8L-5+Ti4hTQWJkj4z<z@>57m^;wois1I zIGZds+kblc$suE;xkl5a?B>ewJ{@h9X0c_f`{GZhTvW6NLbOv6CRRhOrpe;YC3e4# zlHFRGX|Fm#f<79oQmY}(bWL>}s!kd)ux=s|QhI9Dt|^%vVd744TZLgcSE18jiDZI$ zo%}g>n@nlbX?^Npg}e2ubZf!z$%x{7_aL(&o=~r;)pJ++lOARED;Xow^*$UqDgtkO zQdTSQ@OYTri`fr|Wt4wQXa=`fju@{HN1*vc0!)hAej;Al zv%nyyKAhHN7Z)>FYW%@zHO9!_+PVHcreA|kf+92D-2eASN*Ay2>RwDnn<^?Jzb2ae z&ePz$MZEwI_DL?=k0y*#d~7X#A@&s?Ol^F6&0BL&CR65-hFA9~-FzQM)$xFvk`4W> z@c?SSxZ;~rhZ%$PWMntM4z{y>bG=MHg{Cob=mF2c35B#PExo22x|u&i$vd%8?f4lZ*U87> zAK9-O9b>eDM@DH~ZJ-Sh`2DWvlm!2H9b2=$m1<=|pz6cY-%YWryIk^zHRan?5zH7e9pF zI(0H5?i}Bx(n`0o1_6@wKep$o-zxhHg`e0L-1d8Uw1dvct|%nV?~r%7&C?ejootNg zT#lR#c$CPkX86vJnW;nc%GbUzO0m9LkrBkSy5-@f(Q9=lnOQs?KN%MtYjE~6@|NnH zcixn8UJ^N7pDTw{%3oB1&4r9IhPhYgSlaW?YMkh*oHzO07B<~wqQGypxi)E|J3Fbv z4KX&Aya-E)VV-Kv>=8VaVkqA7q4cMXWUN;=uVaLVFUf=rGb!t_8P|O1>GiWxnyTi{ zO5IaF&mPl8ykjl7rPXMq?6@!$>zmd&Vetk1%4o#NDAxPp%MDtQQ#pxG;)j-6L#Hds z$kZt))Q&GV)rZ;|28S#ZRmb12PSn0E+nYT}HrC=jZ|Y&);^yt45GsA+_W5{8tH)avp$$O*DUON zXE?BY%-H37^-s=1&BCe`jq1EF1Fw6frY1!Fl!o6Ug3~|gWW=u1=bG*A?( z{1It)52f6DMJraz!yIbh{YUPEw_jX0!=@#f7p(Zjllfl~lC_1}?J8Pff#|@XHI9R| zx-FR;_a8m-v(q`AkXqJE7Z?5Kv7un$o6F}Yn*QkXcPP%;t@M3}sGy7UF?u`KZy&W{ zmV_i7U0?_rPd}-{8)zrenxN??j9X0LB zthC?X_-d_~y3YGtXELowFsNLQ>!*pd(S?|-D~)NI)@7K*yM_)$4mS+yU2zOL{qgAO z*ie~*%<*DrABD?{7o9Il%NK66(w;7=e0$DNMw7;5Xo_?oi1&Nen`BG!e$N4+d2jEV z{E_>O!ZUTKg}j=sq|^-%k99|VL-}Z4QmJEAjLCi&+ba{vtyg`>lXB3*D)?7=eo&=k z$?q_#@!Rcg0q&SL``C>JVWa!v9Yd;hzF(LV;%v`7`uVbCM_wk?V%dTFeOj?v-zTP# zitz%q5GIG@e2$Em6ViVku(U@x|EfS8ZI&Bv$U)r;5Qxi$=)Ob8W>lwcet+B)_wn7R zwH-2Pz~);Ato)|*<=(P0Uttr?BFWOUzUs5|O7H>|Z7XR**G0>EL1FzIEqER6Y`;KG zczE{+{7tS274fA$V#VlYnjbHFIo7%#S4lJZt$lJ+m)|#&<eLE?L4LNWe%-+pMu+dPn;TVzpV(ltoz4wmTvT|*E?C#v&L6uGaE6C z<1N<0E6ew5lv;BgtfC9vmb~$eiCwZND*gI2@SKfVs~yOvqUf_)R;{rzn=5q{w=F2&&~Ecz}q?Wi}^hR-MrN%lCmFs4U>;Wf6ma0}Skliye<9tamfc5l?lze+M09^@DxRarx~Mx9=BW}> zLG?vJ?`gy}A2Elenr>)bG6~ihO@OUhn82NDpiOMw)locQ$KgzvrRY zV=i9pRrj9VLz`cn(4^eI#`y^D9sZ=iVKo${d$H3iRV)6`1J`9n1@h9%>`yF<6_CN6 zUpNhUpu zu`eI!D5XPk%=)iQDgJeW($|dUyK>^IP{UEC!RK8U^6Z$b0w)ph<7ZgYmEnCg-xl)< z=1Y!0T}fJHPrVsh5Z&P-G05>L_DqF3Cq{h5Oq5i{8nJ%w2k*&?{W^KHr_MSC-Ut~; z9MIKXNWV(^Hqp2%D10{lT$*ZZv{yHu%O!gyu4!LmLT$~SCLe~KZ3)a zm;I+>I1Kg}4gtcKfP|a>AIEU~*i*W#$SxR=0Pb&Km%RsZ*q|=5dyd_-affYN;aorv zmz~qHoj5LgVz}(YZE+X$-W#E1E4k5%y6OIM{Ky$IQ(F6gYa^$^Hz*1{?aD{&_n=>kex{LffrmuK!2^$dZaL2>%V!|9Faxk16(O zTmz`p-#pa-wSN#r?#@%aoxb*eKopmX_y3Nh|D&$sBfFjQ_8(*s;JExBY+-;|f62O? z1owZy7MB`#FScqRb+;=xba!+I>;^1T!yah60fuhp*HyGJ2T7uFr_an=xr#xmXeBQ*=uN{s#uageU~J z#A7SvGRR_zYa7Q3(8X3(W~@oV9|sJvlU-RvgaVhZo>@@U-OUc%u>i7&6Lx?RuG*Hg zgY2|8{_hAXdRJQStyh2Xv~dH`zp%+{!7xFvGiK-(I=cw7ttVE<@Oip-Hl`4<2Syo*)*o8UnJznEmYKS8XdWQ@<_G9N6M`e(*8OM(8#<#|? zyK(G${KmHl4al;k_5X>5JA$&+`1UwFIHGt~? zAG>X00_;%R!huiMZG5(ezAe=tuR5+btPKYP+kVc$Vhsc7<^Q1xHuN8`!(391 zX8f9NCN6H=K(DYZF>{$Y+4I8$VEm?zj&A(s;OY}M^Ooh zEurx+-K}tYCU59F`L$si63fGD_(_Rljw6XzUuumngVaZ0k?7eH|jh5$hn?mZ!X zpsy|b@X^DL`CkbMYHTUCmu)Yzc4^f*tQ7#g#nUoPf7mi9AEmH1E z`rTM-6B@0;M@G%24S@dcQ^ANgt2Oc+Jg!}ZbuilssYq?RB;OcT1Mdv z{BBhL>2(`d1Rknb&H8s#0a{xwdWVbvDa;;<0k&^Vb9PDqoBN=;f)eWF7VZEIuK%g#UJ?H{59s4$zt^Shh>MS_xuYvTQ~XJ-vo)+bq}?Q+M~j%Y*-;A9x~% zTl(zqal1$4mb-^-PuyY1Ez<(qwuZ2+$@lJ__Nd~29VO1nkK(^K zjTM=lropZOm_5L@oXYO`4vtkjrMB*@OK#a#?8FbOQvX?$?yMC61m{b@tQ9vuf^CW2 zR(WMda|=OjSBss(xJHyrOfBqOMMMNu-0fX2LckYIK`BvD=+2i*VA?0B>SWUx)+t8?Jjt>^C!RK}8F1oX&EA z0pa=t?oG=y>Xy29P%pfE5DJQxJ9 z7wZ-9%Ap8hpf*9jNCY8%NF>%a?rskPRwdX;(H!Jzd8T3JbGuT=nkTtN|hn>sd;U|P$tL=p$(AXKrUKj>~!ncVqv=GQR zfL9J7M2H`ddwe~DLr~a-%AP*pz(eBG1%|<`P4UVh3C0G8fL}u4w+9m|ln|0Yu25(sfqtNbfTH8!2U;VL7c@8pBjBYFhJYVv zFyX+L7c>G!pwmDr|D|6H!MXyCfDrh7Fh3=rALxT%{)`5yMSu$mj@^^q!y_~Tjy=oV z3j=c`e7>Q<+=qZ4VB3PQE|6$~_AvOe0cN5I0y~68VF=_IjS|B5gP<;0A`|o>L^xhx zBJj$Ay4dS5c;m$~m;eUD9(C-d3#f}bFWe1-purN8ur30BegNu12y_8xFM;1eqfz+t zY;0Wun+VDg_$@R567UGPMgpFLDJubw&_JN~ju!$f=Si|oFi6+o}3~-JF<$zNm;2R1>;LkBAfFXV#z{uj;Y#@Hv z{pY>oMHBAHV1U>Yv#oAjJEY9Hsb0n}b zAn=1gW$kj|}%*4Y5h&{gT1j2{F9&zoaDZm+m?-zhi zM&s`V0T>2!m$BYfj>tFJ8l?!JqMR- zAow-{z;M~&_R;{Db^@FcNW!@?0?aP(aVA_(gFXn>zgQT)eSu=xwyR$^7ZY%(=t3bP z!Yrt1;{)>8fsIT-4REv%z5)7S@3hD}SUQ3y;O%fvQp^`cP*T!J2`LO*8Uwu`b3qE2 v9U&PBNl7RYA_ex*&=^tX|6b%0GuZpap6IyY_D}(4V1+`#!6B_GL-BtAw1yg~ literal 0 HcmV?d00001 diff --git a/Doc/RomWBW Getting Started.pdf b/Doc/RomWBW Getting Started.pdf index 99f132330355482b09020140ded9efafc6749e35..e25d7453e537ce1ba29491d3b5a354fba1746ed3 100644 GIT binary patch delta 14751 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 delta 14616 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 diff --git a/ReadMe.md b/ReadMe.md index 0ef34b7f..bbd5b46e 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -3,7 +3,7 @@ ## Z80/Z180 System Software Version 3.1 Pre-release -Wednesday 22 April 2020 +Thursday 23 April 2020 Wayne Warthen @@ -1144,8 +1144,10 @@ applications are no longer provided. - UNA BIOS and FDISK80 are the products of John Coffman. - FLASH4 is a product of Will Sowerbutts. - CLRDIR is a product of Max Scane. + - Tasty Basic is a product of Dimitri Theulings. - Dean Netherton contributed the sound driver interface and the SN76489 sound driver. + - The RomWBW Disk Catalog document was produced by Mykl Orders. Contributions of all kinds to RomWBW are very welcome. diff --git a/ReadMe.txt b/ReadMe.txt index 4337d2cb..27ad0aa6 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -3,7 +3,7 @@ RomWBW Z80/Z180 System Software Version 3.1 Pre-release -Wednesday 22 April 2020 +Thursday 23 April 2020 Wayne Warthen wwarthen@gmail.com @@ -1176,8 +1176,10 @@ applications are no longer provided. - UNA BIOS and FDISK80 are the products of John Coffman. - FLASH4 is a product of Will Sowerbutts. - CLRDIR is a product of Max Scane. +- Tasty Basic is a product of Dimitri Theulings. - Dean Netherton contributed the sound driver interface and the SN76489 sound driver. +- The RomWBW Disk Catalog document was produced by Mykl Orders. Contributions of all kinds to RomWBW are very welcome. diff --git a/Source/Doc/Catalog.md b/Source/Doc/Catalog.md new file mode 100644 index 00000000..eabf792f --- /dev/null +++ b/Source/Doc/Catalog.md @@ -0,0 +1,828 @@ +!include(Common.inc) +!def(document)(Disk Catalog) +!def(author)(Mykl Orders) +--- +title: | + | !product + | Version !ver + | + | !document +author: !author (mailto:!authmail) +date: !date +institution: !orgname +documentclass: article +classoption: + - oneside +toc: true +papersize: letter +geometry: + - top=1.5in + - bottom=1.5in + - left=1.0in + - right=1.0in +# - showframe +linestretch: 1.25 +colorlinks: true +fontfamily: helvet +fontsize: 12pt +header-includes: + - | + ```{=latex} + \usepackage{fancyhdr} + \usepackage{xhfill} + \renewcommand*{\familydefault}{\sfdefault} + \setstretch{1.25} % for TOC + ``` +--- + +```{=latex} +\clearpage +\pagestyle{fancyplain} +\fancyhf{} +\pagenumbering{arabic} +\lhead{\fancyplain{}{\nouppercase{\footnotesize \bfseries \leftmark \hfill !product !document}}} +\lfoot{\small RetroBrew Computing Group ~~ {\xrfill[3pt]{1pt}[cyan]} ~~ \thepage} +``` + +`\clearpage`{=latex} + +# RomWBW Distribution File Catalog + +This document is a reference to the files found on the disk media +distributed with RomWBW. Specifically, RomWBW provides a set +of floppy and hard disk images in the Binary directory of the +distribution. The contents of these images is listed here. + +The files on the disk images were sourced from a variety of locations. +The primary sources of these files are listed below. Note that the +primary documentation for each of these sources is listed. You are +strongly encouraged to refer to this documentation for more information +on using the applications and files listed. + +## Sources + +- **RomWBW**: RomWBW Custom Applications + + Documentation: RomWBW Applications.pdf* + + These files are custom applications built exclusively to enhance the + functionality of RomWBW. In some cases they are built from scratch + while others are customized versions of well known CP/M tools. + +- **CPM22**: Digital Research CP/M-80 2.2 Distribution Files + + Documentation: CPM Manual.pdf + + These files are from the official Digital Research distribution + of CP/M 2.2. Applications have been patched according to the + DRI patch list. + +- **ZSDOS**: ZSDOS 1.1 Disk Operating System Distribution Files + + Documentation: *ZSDOS Manual.pdf* + + These files are from the official ZSDOS 1.1 distribution. Some of + the files are redistributions of applications from other sources. + +- **ZCPR**: ZCPR 1.0 Command Processor Distribution Files + + Documentation: *ZCPR Manual.pdf* + + These files are from the ZCPR 1.0 distribution. + +- **NZCOM**: NZCOM Automatic Z-System Distribution Files + + Documentation: *NZCOM Users Manual.pdf* + + These files are from the last official release of NZCOM. + +- **CPM3**: Digital Research CP/M 3 Distribution Files + + Documentation: *CPM3 Users Guide.pdf*, *CPM3 System Guide.pdf*, + *CPM3 Programmers Guide.pdf*, *CPM3 Command Summary.pdf* + + These files are from the official Digital Research distribution of + CP/M 3. Applications have been patched according to the DRI + patch list. + +- **ZPM3**: Digital Research CP/M-80 2.2 Distribution Files + + Documentation: *CPM Manual.pdf* + + These files are from Simeon Cran's ZPM3 operating system distribution. + +`\clearpage`{=latex} + +# CPM 2.2 Boot Disk + +| Floppy Disk Image: **fd_cpm22.img** +| Hard Disk Image: **hd_cpm22.img** +| Combo Disk Image: **Slice 0** + +| **User 0** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `ASM.COM` | CPM22 | DRI 8080 Assembler | +| `CR.COM` | -- | Crunch archiver | +| `DDT.COM` | CPM22 | DRI Dynamic Debugger | +| `DDTZ.DOC` | -- | Z80 replacement for DDT | +| `DIRX.COM` | -- | Directory lister with file sizes | +| `DUMP.COM` | CPM22 | DRI type contents of disk file in hex | +| `ED.COM` | CPM22 | DRI context editor | +| `KERMIT.COM` | -- | Generic CP/M 2.2 Kermit communication application | +| `LBREXT.COM` | -- | Extract library files | +| `LIB.COM` | -- | DRI Library manager | +| `LINK.COM` | -- | DRI CPM relocatable linker | +| `LOAD.COM` | -- | DRI hex file loader into memory | +| `MAC.COM` | -- | DRI CPM macro assembler | +| `MBASIC.COM` | -- | Microsoft Basic | +| `PIP.COM` | CPM22 | DRI Periperal Interchange Program | +| `PMARC.COM` | -- | LHA file compressor | +| `PMEXT.COM` | -- | Extractor for PMARC archives | +| `RMAC.COM` | -- | DRI Relocatable Macro Assembler | +| `STAT.COM` | CPM22 | DRI statistices about file storage and device assignment | +| `SUBMIT.COM` | CPM22 | DRI batch processor | +| `UNCR.COM` | -- | NZCOM Uncrunch decompression | +| `UNZIP.COM` | -- | Extractor for ZIP archives | +| `XSUB.COM` | CPM22 | DRI eXtended submit | +| `ZSID.COM` | -- | DRI Z80 symbolic instruction debugger | +| `ASSIGN.COM` | RomWBW | RomWBW Drive/Slice mapper | +| `FAT.COM` | RomWBW | RomWBW FAT filesystem access | +| `FDU.COM` | RomWBW | RomWBW Floppy Disk Utility | +| `FORMAT.COM` | RomWBW | RomWBW media formatter (placeholder) | +| `INTTEST.COM` | RomWBW | RomWBW Interrupt test | +| `MODE.COM` | RomWBW | RomWBW Modify serial port characteristics | +| `RTC.COM` | RomWBW | RomWBW Display and set RTC | +| `SURVEY.COM` | RomWBW | System survey | +| `SYSCOPY.COM` | RomWBW | RomWBW Read/write system boot image | +| `SYSGEN.COM` | RomWBW | DRI CPM SYSGEN to put CPM onto a new drive | +| `TALK.COM` | RomWBW | RomWBW Direct console I/O to a serial port | +| `TIMER.COM` | RomWBW | RomWBW Display timer tick counter | +| `TUNE.COM` | RomWBW | RomWBW Play PT or MYM sound files | +| `XM.COM` | RomWBW | RomWBW XMODEM file transfer | +| `CPM.SYS` | RomWBW | CPM2.2 system image | +| `CLRDIR.COM` | -- | Max Scane's disk directory cleaner | +| `COMPARE.COM` | -- | FoxHollow compare two files | +| `DDTZ.COM` | -- | Z80 replacement for DDT | +| `FDISK80.COM` | -- | John Coffman's Partition editor for FAT filesystem | +| `FLASH.COM` | -- | Will Sowerbutts' in-situ EEPROM programmer | +| `NULU.COM` | -- | NZCOM new library utility | +| `UNARC.COM` | -- | Extractor for ARC archives | +| `ZAP.COM` | -- | Disk editor/patcher | +| `ZDE.COM` | -- | Z-system display editor | +| `ZDENST.COM` | -- | ZDE Installer | + +| **User 1** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `SAMPKEY.DOC` | -- | ZDE Distribution File | +| `SAMPKEY.ZDK` | -- | ZDE Distribution File | +| `SAMPKEY.ZDT` | -- | ZDE Distribution File | +| `ZDE10.DOC` | -- | ZDE Distribution File | +| `ZDE10.FOR` | -- | ZDE Distribution File | +| `ZDE10.NEW` | -- | ZDE Distribution File | +| `ZDE10.QRF` | -- | ZDE Distribution File | +| `ZDE10.TOC` | -- | ZDE Distribution File | +| `ZDE13.FOR` | -- | ZDE Distribution File | +| `ZDE13.NEW` | -- | ZDE Distribution File | +| `ZDE16.COM` | -- | ZDE Distribution File | +| `ZDE16.DIR` | -- | ZDE Distribution File | +| `ZDE16.FIX` | -- | ZDE Distribution File | +| `ZDE16.FOR` | -- | ZDE Distribution File | +| `ZDE16.NEW` | -- | ZDE Distribution File | +| `ZDE16A.COM` | -- | ZDE Distribution File | +| `ZDE16A.PAT` | -- | ZDE Distribution File | +| `ZDENST16.COM` | -- | ZDE Distribution File | +| `ZDEPROP.DOC` | -- | ZDE Distribution File | +| `ZDEPROP.Z80` | -- | ZDE Distribution File | +| `ZDKCOM13.COM` | -- | ZDE Distribution File | +| `ZDKCOM13.DOC` | -- | ZDE Distribution File | + +| **User 3** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `ATTACK.PT3` | -- | Sound File | +| `BACKUP.PT3` | -- | Sound File | +| `BADMICE.PT3` | -- | Sound File | +| `DEMO.MYM` | -- | Sound File | +| `DEMO1.MYM` | -- | Sound File | +| `DEMO3.MYM` | -- | Sound File | +| `DEMO3MIX.MYM` | -- | Sound File | +| `DEMO4.MYM` | -- | Sound File | +| `HOWRU.PT3` | -- | Sound File | +| `ITERATN.PT3` | -- | Sound File | +| `LOOKBACK.PT3` | -- | Sound File | +| `LOUBOUTN.PT3` | -- | Sound File | +| `NAMIDA.PT3` | -- | Sound File | +| `RECOLL.PT3` | -- | Sound File | +| `SANXION.PT3` | -- | Sound File | +| `SYNCH.PT3` | -- | Sound File | +| `TOSTAR.PT3` | -- | Sound File | +| `VICTORY.PT3` | -- | Sound File | +| `WICKED.PT3` | -- | Sound File | +| `YEOLDE.PT3` | -- | Sound File | +| `YEOVIL.PT3` | -- | Sound File | + +`\clearpage`{=latex} + +# ZSDOS 1.1 Boot Disk + +| Floppy Disk Image: **fd_zsdos.img** +| Hard Disk Image: **hd_zsdos.img** +| Combo Disk Image: **Slice 1** + +| **User 0** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `ASM.COM` | CPM22 | DRI 8080 Assembler | +| `CLOCKS.DAT` | ZSDOS | ZSDOS Library of clock drivers | +| `COPY.CFG` | ZSDOS | ZSDOS Configuration file for COPY.COM | +| `COPY.COM` | ZSDOS | ZSDOS File copier with file dates and archiving | +| `COPY.UPD` | ZSDOS | ZSDOS ??? | +| `CR.COM` | -- | Crunch archiver | +| `DATSWEEP.COM` | ZSDOS | ZSDOS Comprehensive file management utility | +| `DDT.COM` | CPM22 | DRI Dynamic Debugger | +| `DDTZ.DOC` | -- | Z80 replacement for DDT | +| `DIRX.COM` | -- | Directory lister with file sizes | +| `DSCONFIG.COM` | ZSDOS | ZSDOS DATSWEEP configuration tool | +| `DUMP.COM` | CPM22 | DRI type contents of disk file in hex | +| `ED.COM` | CPM22 | DRI context editor | +| `FA16.CFG` | ZSDOS | ZSDOS FILEATTR.COM v1.6 configuration file | +| `FA16.DOC` | ZSDOS | ZSDOS FILEATTR.COM v1.6 documentation | +| `FA16A.FOR` | ZSDOS | ZSDOS FILEATTR.COM v1.6a information | +| `FA16CFG.TXT` | ZSDOS | ZSDOS FILEATTR.COM v1.6 configuration instructions | +| `FILEATTR.COM` | ZSDOS | ZSDOS Modify file attributes | +| `FILEDATE.CFG` | ZSDOS | ZSDOS Configuration file for FILEDATE.COM | +| `FILEDATE.COM` | ZSDOS | ZSDOS Disk directory that allows sorting and selecting by date and name | +| `FILEDATE.COM` | ZSDOS | ZSDOS Disk directory that allows sorting and selecting by date and name | +| `INITDIR.CFG` | ZSDOS | ZSDOS Configuration file for INITDIR.COM | +| `INITDIR.COM` | ZSDOS | ZSDOS Prepare disks for P2DOS Stamps | +| `KERMIT.COM` | -- | Generic CP/M 2.2 Kermit communication application | +| `LBREXT.COM` | -- | Extract library files | +| `LDDS.COM` | ZSDOS | Clock driver | +| `LDNZT.COM` | ZSDOS | Clock driver | +| `LDP2D.COM` | ZSDOS | Clock driver | +| `LIB.COM` | -- | DRI Library manager | +| `LINK.COM` | -- | DRI CPM relocatable linker | +| `LOAD.COM` | -- | DRI hex file loader into memory | +| `MAC.COM` | -- | DRI CPM macro assembler | +| `MBASIC.COM` | -- | Microsoft Basic | +| `PIP.COM` | CPM22 | DRI Periperal Interchange Program | +| `PMARC.COM` | -- | LHA file compressor | +| `PMEXT.COM` | -- | Extractor for PMARC archives | +| `PUTBG.COM` | ZSDOS | ZSDOS Prepare disk for backgrounder | +| `PUTDS.COM` | ZSDOS | ZSDOS Prepare disk for datestamper | +| `RELOG.COM` | ZSDOS | ZSDOS relog disks after program that bypasses BDOS | +| `RMAC.COM` | -- | DRI Relocatable Macro Assembler | +| `SETTERM.COM` | ZSDOS | ZSDOS Installs terminal control codes into DateSamper utilities | +| `SETUPZST.COM` | ZSDOS | ZSDOS Select clock driver | +| `STAMPS.DAT` | ZSDOS | ZSDOS Library of stamping routines | +| `STAT.COM` | CPM22 | DRI statistices about file storage and device assignment | +| `SUBMIT.COM` | CPM22 | DRI batch processor | +| `SUPERSUB.COM` | ZSDOS | | +| `TD.CFG` | ZSDOS | ZSDOS Configuration file for TD.COM | +| `TD.COM` | ZSDOS | ZSDOS Time/Date utility | +| `TERMBASE.DAT` | ZSDOS | ZSDOS Terminal information library for SETTERM | +| `TESTCLOK.COM` | ZSDOS | ZSDOS Test various clock drivers | +| `UNCR.COM` | -- | NZCOM Uncrunch decompression | +| `UNZIP.COM` | -- | Extractor for ZIP archives | +| `XSUB.COM` | CPM22 | DRI eXtended submit | +| `ZCAL.COM` | ZSDOS | ZSDOS Show month calendar | +| `ZCNFG.COM` | ZSDOS | ZSDOS Configure various utilities | +| `ZCNFG24.CFG` | ZSDOS | ZSDOS Configuration file for ZCNFG.COM | +| `ZPATH.COM` | ZSDOS | ZSDOS Set BDOS and/or ZCPR command path | +| `ZSCONFIG.COM` | ZSDOS | ZSDOS Dynamically regulate many of ZSDOS features | +| `ZSID.COM` | -- | DRI Z80 symbolic instruction debugger | +| `ZSVSTAMP.COM` | ZSDOS | ZSDOS Save/restore file timestamp | +| `ZSVSTAMP.DOC` | ZSDOS | ZSDOS ZSVSTAMP.COM documentation | +| `ZXD.CFG` | ZSDOS | ZSDOS Configuration file for ZXD.COM | +| `ZXD.COM` | ZSDOS | ZSDOS Extended directory utility | +| `ASSIGN.COM` | RomWBW | RomWBW Drive/Slice mapper | +| `FAT.COM` | RomWBW | RomWBW FAT filesystem access | +| `FDU.COM` | RomWBW | RomWBW Floppy Disk Utility | +| `FORMAT.COM` | RomWBW | RomWBW media formatter (placeholder) | +| `INTTEST.COM` | RomWBW | RomWBW Interrupt test | +| `MODE.COM` | RomWBW | RomWBW Modify serial port characteristics | +| `RTC.COM` | RomWBW | RomWBW Display and set RTC | +| `SURVEY.COM` | RomWBW | System survey | +| `SYSCOPY.COM` | RomWBW | RomWBW Read/write system boot image | +| `SYSGEN.COM` | RomWBW | DRI CPM SYSGEN to put CPM onto a new drive | +| `TALK.COM` | RomWBW | RomWBW Direct console I/O to a serial port | +| `TIMER.COM` | RomWBW | RomWBW Display timer tick counter | +| `TUNE.COM` | RomWBW | RomWBW Play PT or MYM sound files | +| `XM.COM` | RomWBW | RomWBW XMODEM file transfer | +| `ZSYS.SYS` | RomWBW | ZSDOS system image | +| `CLRDIR.COM` | -- | Max Scane's disk directory cleaner | +| `COMPARE.COM` | -- | FoxHollow compare two files | +| `DDTZ.COM` | -- | Z80 replacement for DDT | +| `FDISK80.COM` | -- | John Coffman's Partition editor for FAT filesystem | +| `FLASH.COM` | -- | Will Sowerbutts' in-situ EEPROM programmer | +| `NULU.COM` | -- | NZCOM new library utility | +| `UNARC.COM` | -- | Extractor for ARC archives | +| `ZAP.COM` | -- | Disk editor/patcher | +| `ZDE.COM` | -- | Z-system display editor | +| `ZDENST.COM` | -- | ZDE Installer | + +| **User 1** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `SAMPKEY.DOC` | -- | ZDE Distribution File | +| `SAMPKEY.ZDK` | -- | ZDE Distribution File | +| `SAMPKEY.ZDT` | -- | ZDE Distribution File | +| `ZDE10.DOC` | -- | ZDE Distribution File | +| `ZDE10.FOR` | -- | ZDE Distribution File | +| `ZDE10.NEW` | -- | ZDE Distribution File | +| `ZDE10.QRF` | -- | ZDE Distribution File | +| `ZDE10.TOC` | -- | ZDE Distribution File | +| `ZDE13.FOR` | -- | ZDE Distribution File | +| `ZDE13.NEW` | -- | ZDE Distribution File | +| `ZDE16.COM` | -- | ZDE Distribution File | +| `ZDE16.DIR` | -- | ZDE Distribution File | +| `ZDE16.FIX` | -- | ZDE Distribution File | +| `ZDE16.FOR` | -- | ZDE Distribution File | +| `ZDE16.NEW` | -- | ZDE Distribution File | +| `ZDE16A.COM` | -- | ZDE Distribution File | +| `ZDE16A.PAT` | -- | ZDE Distribution File | +| `ZDENST16.COM` | -- | ZDE Distribution File | +| `ZDEPROP.DOC` | -- | ZDE Distribution File | +| `ZDEPROP.Z80` | -- | ZDE Distribution File | +| `ZDKCOM13.COM` | -- | ZDE Distribution File | +| `ZDKCOM13.DOC` | -- | ZDE Distribution File | + +| **User 3** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `ATTACK.PT3` | -- | Sound File | +| `BACKUP.PT3` | -- | Sound File | +| `BADMICE.PT3` | -- | Sound File | +| `DEMO.MYM` | -- | Sound File | +| `DEMO1.MYM` | -- | Sound File | +| `DEMO3.MYM` | -- | Sound File | +| `DEMO3MIX.MYM` | -- | Sound File | +| `DEMO4.MYM` | -- | Sound File | +| `HOWRU.PT3` | -- | Sound File | +| `ITERATN.PT3` | -- | Sound File | +| `LOOKBACK.PT3` | -- | Sound File | +| `LOUBOUTN.PT3` | -- | Sound File | +| `NAMIDA.PT3` | -- | Sound File | +| `RECOLL.PT3` | -- | Sound File | +| `SANXION.PT3` | -- | Sound File | +| `SYNCH.PT3` | -- | Sound File | +| `TOSTAR.PT3` | -- | Sound File | +| `VICTORY.PT3` | -- | Sound File | +| `WICKED.PT3` | -- | Sound File | +| `YEOLDE.PT3` | -- | Sound File | +| `YEOVIL.PT3` | -- | Sound File | + +`\clearpage`{=latex} + +# NZCOM Boot Disk + +| Floppy Disk Image: **fd_nzcom.img** +| Hard Disk Image: **hd_nzcom.img** +| Combo Disk Image: **Slice 2** + +| **User 0** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `!(C)1988` | NZCOM | | +| `!NZ-COM` | NZCOM | | +| `!VERS--1.2H` | NZCOM | | +| `ALIAS.CMD` | NZCOM | NZCOM Aliases file for ARUNZ.COM | +| `ARUNZ.COM` | NZCOM | NZCOM Invoke an alias in ALIAS.CMD | +| `BGZRDS19.LBR` | NZCOM | | +| `CLEDINST.COM` | NZCOM | Command line editing and history shell installer | +| `CLEDSAVE.COM` | NZCOM | Write command line history to disk | +| `CONFIG.LBR` | NZCOM | | +| `COPY.COM` | NZCOM | ZSDOS File copier with file dates and archiving | +| `CPSET.COM` | NZCOM | NZCOM Create multiple definitions for CRT and PRT | +| `CRUNCH.COM` | NZCOM | NZCOM Text compression | +| `DOCFILES.LBR` | NZCOM | | +| `EDITNDR.COM` | NZCOM | NZCOM Associate names with directories | +| `FCP.LBR` | NZCOM | NZCOM ??? Flow control | +| `FF.COM` | NZCOM | NZCOM File finder | +| `HELP.COM` | NZCOM | DRI CPM+ | +| `HLPFILES.LBR` | NZCOM | | +| `IF.COM` | NZCOM | NZCOM Flow condition tester for FCP | +| `JETLDR.COM` | NZCOM | NZCOM General-purpose module loader | +| `KERMIT.COM` | -- | Generic CP/M 2.2 Kermit communication application | +| `LBREXT.COM` | NZCOM | Extract library files | +| `LBRHELP.COM` | NZCOM | | +| `LDIR.COM` | NZCOM | NZCOM Display the directory of a library | +| `LPUT.COM` | NZCOM | NZCOM Put files into a library | +| `LSH-HELP.COM` | NZCOM | | +| `LSH.COM` | NZCOM | | +| `LSH.WZ` | NZCOM | | +| `LSHINST.COM` | NZCOM | | +| `LX.COM` | NZCOM | NZCOM Extract and execute a memeber of a library | +| `MKZCM.COM` | NZCOM | NZCOM NZCOM system defining utility | +| `NAME.COM` | NZCOM | NZCOM Name a drive/user | +| `NZ-DBASE.INF` | NZCOM | NZCOM Dbase information | +| `NZBLITZ.COM` | NZCOM | | +| `NZBLTZ14.CFG` | NZCOM | | +| `NZBLTZ14.HZP` | NZCOM | | +| `NZCOM.COM` | NZCOM | NZCOM system loader from CP/M | +| `NZCOM.LBR` | NZCOM | NZCOM Library of NZCOM system modules | +| `NZCPR.LBR` | NZCOM | NZCOM Default command processor | +| `PATH.COM` | NZCOM | NZCOM Set/display command search path | +| `PUBLIC.COM` | NZCOM | | +| `PWD.COM` | NZCOM | | +| `RCP.LBR` | NZCOM | NZCOM Resident command package | +| `RELEASE.NOT` | NZCOM | | +| `SAINST.COM` | NZCOM | | +| `SALIAS.COM` | NZCOM | NZCOM Screen alias | +| `SAVENDR.COM` | NZCOM | NZCOM Save named directory assignments to a file | +| `SDZ.COM` | NZCOM | NZCOM Super directory | +| `SHOW.COM` | NZCOM | NZCOM Show resident commands | +| `SUB.COM` | NZCOM | | +| `SUBMIT.COM` | -- | DRI batch processor | +| `TCAP.LBR` | NZCOM | NZCOM Terminal capability descriptor library | +| `TCJ.INF` | NZCOM | | +| `TCJ25.WZ` | NZCOM | | +| `TCJ26.WZ` | NZCOM | | +| `TCJ27.WZ` | NZCOM | | +| `TCJ28.WZ` | NZCOM | | +| `TCJ29.WZ` | NZCOM | | +| `TCJ30.WZ` | NZCOM | | +| `TCJ31UPD.WZ` | NZCOM | | +| `TCJ32.WZ` | NZCOM | | +| `TCJ33UPD.WZ` | NZCOM | | +| `TCSELECT.COM` | NZCOM | NZCOM Create terminal capability file | +| `TY3ERA.COM` | NZCOM | NZCOM Type-3 transient program to erase a file | +| `TY3REN.COM` | NZCOM | NZCOM Type-3 transient program to rename a file | +| `TY4ERA.COM` | NZCOM | NZCOM Type-4 transient program to erase a file | +| `TY4REN.COM` | NZCOM | NZCOM Type-4 transient program to rename a file | +| `TY4SAVE.COM` | NZCOM | NZCOM Type-4 transient program to save memory to a file | +| `TY4SP.COM` | NZCOM | NZCOM Type-4 transient program ti display disk space | +| `UNCRUNCH.COM` | NZCOM | NZCOM Text decompressor | +| `VIEW.COM` | NZCOM | | +| `XTCAP.COM` | NZCOM | | +| `Z3LOC.COM` | NZCOM | NZCOM Display the addresses of the ZCPR3 CCP, BDOS, and BIOS | +| `Z3TCAP.TCP` | NZCOM | NZCOM Database of terminal descriptors | +| `ZCNFG.COM` | NZCOM | ZSDOS Configure various utilities | +| `ZERR.COM` | NZCOM | | +| `ZEX.COM` | NZCOM | NZCOM Memory-based batch processor | +| `ZF-DIM.COM` | NZCOM | NZCOM ZFILER shell for dim-video terminals | +| `ZF-REV.COM` | NZCOM | NZCOM ZFILER shell for reverse-video terminals | +| `ZFILEB38.LZT` | NZCOM | | +| `ZFILER.CMD` | NZCOM | NZCOM Macro script file for ZFILER | +| `ZHELPERS.LZT` | NZCOM | | +| `ZLT.COM` | NZCOM | | +| `ZNODES66.LZT` | NZCOM | | +| `ZSDOS.ZRL` | NZCOM | | +| `ZSYSTEM.IZF` | NZCOM | | +| `ASSIGN.COM` | RomWBW | RomWBW Drive/Slice mapper | +| `FAT.COM` | RomWBW | RomWBW FAT filesystem access | +| `FDU.COM` | RomWBW | RomWBW Floppy Disk Utility | +| `FORMAT.COM` | RomWBW | RomWBW media formatter (placeholder) | +| `INTTEST.COM` | RomWBW | RomWBW Interrupt test | +| `MODE.COM` | RomWBW | RomWBW Modify serial port characteristics | +| `RTC.COM` | RomWBW | RomWBW Display and set RTC | +| `SURVEY.COM` | RomWBW | System survey | +| `SYSCOPY.COM` | RomWBW | RomWBW Read/write system boot image | +| `SYSGEN.COM` | RomWBW | DRI CPM SYSGEN to put CPM onto a new drive | +| `TALK.COM` | RomWBW | RomWBW Direct console I/O to a serial port | +| `TIMER.COM` | RomWBW | RomWBW Display timer tick counter | +| `TUNE.COM` | RomWBW | RomWBW Play PT or MYM sound files | +| `XM.COM` | RomWBW | RomWBW XMODEM file transfer | +| `CPM.SYS` | RomWBW | | +| `ZSYS.SYS` | RomWBW | | +| `CLRDIR.COM` | -- | Max Scane's disk directory cleaner | +| `COMPARE.COM` | -- | FoxHollow compare two files | +| `DDTZ.COM` | -- | Z80 replacement for DDT | +| `FDISK80.COM` | -- | John Coffman's Partition editor for FAT filesystem | +| `FLASH.COM` | -- | Will Sowerbutts' in-situ EEPROM programmer | +| `NULU.COM` | -- | NZCOM new library utility | +| `UNARC.COM` | -- | Extractor for ARC archives | +| `ZAP.COM` | -- | Disk editor/patcher | +| `ZDE.COM` | -- | Z-system display editor | +| `ZDENST.COM` | -- | ZDE Installer | + +| **User 3** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `ATTACK.PT3` | -- | Sound File | +| `BACKUP.PT3` | -- | Sound File | +| `BADMICE.PT3` | -- | Sound File | +| `DEMO.MYM` | -- | Sound File | +| `DEMO1.MYM` | -- | Sound File | +| `DEMO3.MYM` | -- | Sound File | +| `DEMO3MIX.MYM` | -- | Sound File | +| `DEMO4.MYM` | -- | Sound File | +| `HOWRU.PT3` | -- | Sound File | +| `ITERATN.PT3` | -- | Sound File | +| `LOOKBACK.PT3` | -- | Sound File | +| `LOUBOUTN.PT3` | -- | Sound File | +| `NAMIDA.PT3` | -- | Sound File | +| `RECOLL.PT3` | -- | Sound File | +| `SANXION.PT3` | -- | Sound File | +| `SYNCH.PT3` | -- | Sound File | +| `TOSTAR.PT3` | -- | Sound File | +| `VICTORY.PT3` | -- | Sound File | +| `WICKED.PT3` | -- | Sound File | +| `YEOLDE.PT3` | -- | Sound File | +| `YEOVIL.PT3` | -- | Sound File | + +`\clearpage`{=latex} + +# CP/M 3 Boot Disk + +| Floppy Disk Image: **fd_cpm3.img** +| Hard Disk Image: **hd_cpm3.img** +| Combo Disk Image: **Slice 3** + +| **User 0** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `DATE.COM` | CPM3 | DRI CPM+ Set or display the date and time | +| `DEVICE.COM` | CPM3 | DRI CPM+ Assign logical devices with one or more physical devices | +| `DIR.COM` | CPM3 | DRI CPM+ DIR with options | +| `DUMP.COM` | CPM3 | DRI type contents of disk file in hex | +| `ED.COM` | CPM3 | DRI context editor | +| `ERASE.COM` | CPM3 | DRI file deletion | +| `GENCOM.COM` | CPM3 | DRI CPM+ Generate special COM file with attached RSX files | +| `GET.COM` | CPM3 | DRI CPM+ Temporarily get console input form a disk file | +| `HELP.COM` | CPM3 | DRI CPM+ Display information on how to use commands | +| `HELP.HLP` | CPM3 | DRI CPM+ Databse of help information for HELP.COM | +| `HEXCOM.CPM` | CPM3 | DRI CPM+ Create a COM file from a nex file output by MAC | +| `INITDIR.COM` | CPM3 | DRI CPM+ Initializes a disk to allow time and date stamping | +| `KERMIT.COM` | -- | Generic CP/M 3 Kermit communication application | +| `PATCH.COM` | CPM3 | DRI CPM+ Display or install patch to the CPM+ system or command files | +| `PIP.COM` | CPM3 | DRI Periperal Interchange Program | +| `PUT.COM` | CPM3 | DIR CPM+ Temporarily redirect printer or console output to a disk file | +| `RENAME.COM` | CPM3 | DRI CPM+ Rename a file | +| `ROMWBW.TXT` | RomWBW | | +| `SAVE.COM` | CPM3 | DRI CPM+ Copy the contents of memory to a file | +| `SET.COM` | CPM3 | DIR CPM+ Set file options | +| `SETDEF.COM` | CPM3 | DIR CPM+ Set system options including the drive search chain | +| `SHOW.COM` | CPM3 | DIR CPM+ Display disk and drive statistics | +| `SUBMIT.COM` | CPM3 | DRI batch processor | +| `TYPE.COM` | CPM3 | DIR CPM+ Display the contents of an ASCII character file | +| `ZSID.COM` | CPM3 | DRI Z80 symbolic instruction debugger | +| `CPMLDR.COM` | RomWBW | DRI CPM 3.0 loader | +| `CPMLDR.SYS` | RomWBW | DRI CPM 3.0 loader | +| `CCP.COM` | CPM3 | DRI CPM+ Console Command Processor | +| `GENCPM.COM` | CPM3 | DRI CPM+ Create a memory image of CPM3.SYS | +| `GENRES.DAT` | RomWBW | | +| `GENBNK.DAT` | RomWBW | | +| `BIOS3.SPR` | RomWBW | DRI CPM+ GENCPM input file for non-banked BIOS | +| `BNKBIOS3.SPR` | RomWBW | DRI CPM+ GENCPM input file for banked BIOS | +| `BDOS3.SPR` | CPM3 | DRI CPM+ GENCPM input file for the non-banked BDOS | +| `BNKBDOS3.SPR` | CPM3 | DRI CPM+ GENCPM input file for banked BDOS | +| `RESBDOS3.SPR` | CPM3 | DRI CPM+ GENCPM input file for resident BDOS | +| `CPM3RES.SYS` | RomWBW | DRI CPM+ (non-banked) memory image | +| `CPM3BNK.SYS` | RomWBW | DRI CPM+ (banked) memory image | +| `GENCPM.DAT` | RomWBW | DRI CPM+ System generation tool data file | +| `CPM3.SYS` | RomWBW | DRI CPM+ (non-banked) memory image | +| `README.1ST` | CPM3 | | +| `CPM3FIX.PAT` | CPM3 | | +| `ASSIGN.COM` | RomWBW | RomWBW Drive/Slice mapper | +| `FAT.COM` | RomWBW | RomWBW FAT filesystem access | +| `FDU.COM` | RomWBW | RomWBW Floppy Disk Utility | +| `FORMAT.COM` | RomWBW | RomWBW media formatter (placeholder) | +| `INTTEST.COM` | RomWBW | RomWBW Interrupt test | +| `MODE.COM` | RomWBW | RomWBW Modify serial port characteristics | +| `RTC.COM` | RomWBW | RomWBW Display and set RTC | +| `SURVEY.COM` | RomWBW | System survey | +| `SYSCOPY.COM` | RomWBW | RomWBW Read/write system boot image | +| `SYSGEN.COM` | RomWBW | DRI CPM SYSGEN to put CPM onto a new drive | +| `TALK.COM` | RomWBW | RomWBW Direct console I/O to a serial port | +| `TIMER.COM` | RomWBW | RomWBW Display timer tick counter | +| `TUNE.COM` | RomWBW | RomWBW Play PT or MYM sound files | +| `XM.COM` | RomWBW | RomWBW XMODEM file transfer | +| `CLRDIR.COM` | -- | Max Scane's disk directory cleaner | +| `COMPARE.COM` | -- | FoxHollow compare two files | +| `DDTZ.COM` | -- | Z80 replacement for DDT | +| `FDISK80.COM` | -- | John Coffman's Partition editor for FAT filesystem | +| `FLASH.COM` | -- | Will Sowerbutts' in-situ EEPROM programmer | +| `NULU.COM` | -- | NZCOM new library utility | +| `UNARC.COM` | -- | Extractor for ARC archives | +| `ZAP.COM` | -- | Disk editor/patcher | +| `ZDE.COM` | -- | Z-system display editor | +| `ZDENST.COM` | -- | ZDE Installer | + +| **User 3** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `ATTACK.PT3` | -- | Sound File | +| `BACKUP.PT3` | -- | Sound File | +| `BADMICE.PT3` | -- | Sound File | +| `DEMO.MYM` | -- | Sound File | +| `DEMO1.MYM` | -- | Sound File | +| `DEMO3.MYM` | -- | Sound File | +| `DEMO3MIX.MYM` | -- | Sound File | +| `DEMO4.MYM` | -- | Sound File | +| `HOWRU.PT3` | -- | Sound File | +| `ITERATN.PT3` | -- | Sound File | +| `LOOKBACK.PT3` | -- | Sound File | +| `LOUBOUTN.PT3` | -- | Sound File | +| `NAMIDA.PT3` | -- | Sound File | +| `RECOLL.PT3` | -- | Sound File | +| `SANXION.PT3` | -- | Sound File | +| `SYNCH.PT3` | -- | Sound File | +| `TOSTAR.PT3` | -- | Sound File | +| `VICTORY.PT3` | -- | Sound File | +| `WICKED.PT3` | -- | Sound File | +| `YEOLDE.PT3` | -- | Sound File | +| `YEOVIL.PT3` | -- | Sound File | + +`\clearpage`{=latex} + +# ZPM3 Boot Disk + +| Floppy Disk Image: **fd_zpm3.img** +| Hard Disk Image: **hd_zpm3.img** +| Combo Disk Image: **Slice 4** + +| **User 0** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `HELP.HLP` | ZPM3 | | +| `ROMWBW.TXT` | RomWBW | | +| `ZPMLDR.COM` | RomWBW | | +| `ZPMLDR.SYS` | RomWBW | | +| `CPMLDR.COM` | RomWBW | | +| `CPMLDR.SYS` | RomWBW | | +| `CPM3.SYS` | RomWBW | | +| `ZCCP.COM` | ZPM3 | | +| `ZINSTAL.ZPM` | ZPM3 | | +| `STARTZPM.COM` | ZPM3 | | +| `MAKEDOS.COM` | ZPM3 | | +| `GENCPM.DAT` | RomWBW | | +| `BNKBIOS3.SPR` | RomWBW | | +| `BNKBDOS3.SPR` | ZPM3 | | +| `RESBDOS3.SPR` | ZPM3 | | + +| **User 3** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `ATTACK.PT3` | -- | Sound File | +| `BACKUP.PT3` | -- | Sound File | +| `BADMICE.PT3` | -- | Sound File | +| `DEMO.MYM` | -- | Sound File | +| `DEMO1.MYM` | -- | Sound File | +| `DEMO3.MYM` | -- | Sound File | +| `DEMO3MIX.MYM` | -- | Sound File | +| `DEMO4.MYM` | -- | Sound File | +| `HOWRU.PT3` | -- | Sound File | +| `ITERATN.PT3` | -- | Sound File | +| `LOOKBACK.PT3` | -- | Sound File | +| `LOUBOUTN.PT3` | -- | Sound File | +| `NAMIDA.PT3` | -- | Sound File | +| `RECOLL.PT3` | -- | Sound File | +| `SANXION.PT3` | -- | Sound File | +| `SYNCH.PT3` | -- | Sound File | +| `TOSTAR.PT3` | -- | Sound File | +| `VICTORY.PT3` | -- | Sound File | +| `WICKED.PT3` | -- | Sound File | +| `YEOLDE.PT3` | -- | Sound File | +| `YEOVIL.PT3` | -- | Sound File | + +| **User 10** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `ALIAS.HLP` | -- | | +| `HP-RPN.HLP` | -- | | +| `HP-ZP.HLP` | -- | | +| `IF.HLP` | -- | | +| `MENU.HLP` | -- | | +| `VLU.HLP` | -- | | +| `ZFHIST.HLP` | -- | | +| `ZFILER.HLP` | -- | | +| `ZFMACRO.HLP` | -- | | +| `ZP.HLP` | -- | | + +| **User 14** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `COPY.CFG` | -- | | +| `ERASE.CFG` | -- | | +| `HELPC15.CFG` | -- | | +| `ZCNFG24.CFG` | -- | | +| `ZEX.CFG` | -- | | +| `ZF11.CFG` | -- | | +| `ZP17.CFG` | -- | | + +| **User 15** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `ALIAS.COM` | -- | | +| `ARUNZ.COM` | -- | | +| `COPY.COM` | -- | | +| `DATE.COM` | CPM3 | | +| `DEV.COM` | -- | | +| `DEVICE.COM` | CPM3 | | +| `DIR.COM` | CPM3 | | +| `DISKINFO.COM` | -- | | +| `DU.COM` | -- | | +| `DUMP.COM` | CPM3 | | +| `ED.COM` | CPM3 | | +| `ERASE.COM` | CPM3 | | +| `GENCOM.COM` | CPM3 | | +| `GENCPM.COM` | CPM3 | | +| `GET.COM` | CPM3 | | +| `GOTO.COM` | -- | | +| `HELP.COM` | CPM3 | | +| `HEXCOM.COM` | CPM3 | | +| `IF.COM` | -- | | +| `INITDIR.COM` | CPM3 | | +| `KERMIT.COM` | CPM3 | | +| `LBREXT.COM` | -- | | +| `LIB.COM` | -- | | +| `LINK.COM` | -- | | +| `LOADSEG.COM` | -- | | +| `MAC.COM` | -- | | +| `MBASIC.COM` | -- | | +| `NAMES.NDR` | -- | | +| `PATCH.COM` | CPM3 | | +| `PIP.COM` | CPM3 | | +| `PUT.COM` | CPM3 | | +| `REMOVE.COM` | -- | | +| `RENAME.COM` | CPM3 | | +| `RMAC.COM` | -- | | +| `RSXDIR.COM` | -- | | +| `SAINST.COM` | -- | | +| `SALIAS.COM` | -- | | +| `SAVE.COM` | CPM3 | | +| `SET.COM` | CPM3 | | +| `SETDEF.COM` | CPM3 | | +| `SETPATH.COM` | -- | | +| `SHOW.COM` | CPM3 | | +| `SUBMIT.COM` | CPM3 | | +| `TCAP.Z3T` | -- | | +| `TYPE.COM` | CPM3 | | +| `VERROR.COM` | -- | | +| `VLU.COM` | -- | | +| `XREF.COM` | -- | | +| `ZCNFG.COM` | -- | | +| `ZERASE.COM` | -- | | +| `ZEX.COM` | -- | | +| `ZFILER.COM` | -- | | +| `ZHELP.COM` | -- | | +| `ZP.COM` | -- | | +| `ZSHOW.COM` | -- | | +| `ZSID.COM` | -- | | +| `ZXD.COM` | -- | | +| `AUTOTOG.COM` | ZPM3 | | +| `CLRHIST.COM` | ZPM3 | | +| `SETZ3.COM` | ZPM3 | | +| `ASSIGN.COM` | RomWBW | | +| `FAT.COM` | RomWBW | | +| `FDU.COM` | RomWBW | | +| `FORMAT.COM` | RomWBW | | +| `INTTEST.COM` | RomWBW | | +| `MODE.COM` | RomWBW | | +| `RTC.COM` | RomWBW | | +| `SURVEY.COM` | RomWBW | | +| `SYSCOPY.COM` | RomWBW | | +| `SYSGEN.COM` | RomWBW | | +| `TALK.COM` | RomWBW | | +| `TIMER.COM` | RomWBW | | +| `TUNE.COM` | RomWBW | | +| `XM.COM` | RomWBW | | +| `CLRDIR.COM` | -- | | +| `COMP.COM` | -- | | +| `DDTZ.COM` | -- | | +| `FDISK80.COM` | -- | | +| `FLASH.COM` | -- | | +| `NULU.COM` | -- | | +| `UNARC.COM` | -- | | +| `ZAP.COM` | -- | | +| `ZDE.COM` | -- | | +| `ZDENST.COM` | -- | | + +`\clearpage`{=latex} + +# WordStar 4 Application Disk + +| Floppy Disk Image: **fd_ws4.img** +| Hard Disk Image: **hd_ws4.img** +| Combo Disk Image: **Slice 5** + +| **User 0** | **Source** | **Description** | +| -------------- | ---------- | ------------------------------------------------------------ | +| `ANAGRAM.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `CHAPTER1.DOC` | WS4 | MicroPro WordStar 4 Distribution File | +| `CHAPTER2.DOC` | WS4 | MicroPro WordStar 4 Distribution File | +| `CHAPTER3.DOC` | WS4 | MicroPro WordStar 4 Distribution File | +| `DIARY.DOC` | WS4 | MicroPro WordStar 4 Distribution File | +| `DICTSORT.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `FIND.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `HOMONYMS.TXT` | WS4 | MicroPro WordStar 4 Distribution File | +| `HYEXCEPT.TXT` | WS4 | MicroPro WordStar 4 Distribution File | +| `HYPHEN.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `LOOKUP.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `MAINDICT.CMP` | WS4 | MicroPro WordStar 4 Distribution File | +| `MARKFIX.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `MOVEPRN.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `PATCH.LST` | WS4 | MicroPro WordStar 4 Distribution File | +| `PRINT.TST` | WS4 | MicroPro WordStar 4 Distribution File | +| `READ.ME` | WS4 | MicroPro WordStar 4 Distribution File | +| `README.` | WS4 | MicroPro WordStar 4 Distribution File | +| `REVIEW.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `RULER.DOC` | WS4 | MicroPro WordStar 4 Distribution File | +| `SAMPLE1.DOC` | WS4 | MicroPro WordStar 4 Distribution File | +| `SAMPLE2.DOC` | WS4 | MicroPro WordStar 4 Distribution File | +| `SAMPLE3.DOC` | WS4 | MicroPro WordStar 4 Distribution File | +| `SPELL.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `TABLE.DOC` | WS4 | MicroPro WordStar 4 Distribution File | +| `TEXT.DOC` | WS4 | MicroPro WordStar 4 Distribution File | +| `TW.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `WC.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `WINSTALL.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `WORDFREQ.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `WS.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `WS.OVR` | WS4 | MicroPro WordStar 4 Distribution File | +| `WSCHANGE.COM` | WS4 | MicroPro WordStar 4 Distribution File | +| `WSCHANGE.OVR` | WS4 | MicroPro WordStar 4 Distribution File | +| `WSCHHELP.OVR` | WS4 | MicroPro WordStar 4 Distribution File | +| `WSHELP.OVR` | WS4 | MicroPro WordStar 4 Distribution File | +| `WSINDEX.XCL` | WS4 | MicroPro WordStar 4 Distribution File | +| `WSMSGS.OVR` | WS4 | MicroPro WordStar 4 Distribution File | +| `WSPRINT.OVR` | WS4 | MicroPro WordStar 4 Distribution File | +| `WSSHORT.OVR` | WS4 | MicroPro WordStar 4 Distribution File | \ No newline at end of file diff --git a/Source/Doc/GettingStarted.md b/Source/Doc/GettingStarted.md index 4148a245..dada3943 100644 --- a/Source/Doc/GettingStarted.md +++ b/Source/Doc/GettingStarted.md @@ -1197,8 +1197,10 @@ list of general code enhancements. * UNA BIOS and FDISK80 are the products of John Coffman. * FLASH4 is a product of Will Sowerbutts. * CLRDIR is a product of Max Scane. +* Tasty Basic is a product of Dimitri Theulings. * Dean Netherton contributed the sound driver interface and the SN76489 sound driver. +* The RomWBW Disk Catalog document was produced by Mykl Orders. Contributions of all kinds to RomWBW are very welcome. @@ -1211,6 +1213,7 @@ RetroBrew Computers projects is via the community forums: * [RC2014 Google Group](https://groups.google.com/forum/#!forum/rc2014-z80) * [retro-comp Google Group](https://groups.google.com/forum/#!forum/retro-comp) -Submission of issues and bugs are welcome at the [RomWBW GitHub Repository](https://github.com/wwarthen/RomWBW). +Submission of issues and bugs are welcome at the +[RomWBW GitHub Repository](https://github.com/wwarthen/RomWBW). Also feel free to email !author at [!authmail](mailto:!authmail). \ No newline at end of file diff --git a/Source/HBIOS/romldr.asm b/Source/HBIOS/romldr.asm index 9cf31c0c..833dac77 100644 --- a/Source/HBIOS/romldr.asm +++ b/Source/HBIOS/romldr.asm @@ -146,7 +146,7 @@ start1: ; ld hl,$8000 ; page zero was copied here ld de,0 ; put it in user page zero - ld bc,$100 ; full page + ld bc,$100 ; full page ldir ; do it ; ; Page zero in user bank is ready for interrupts now. @@ -281,6 +281,10 @@ runcmd: jp z,devlst ; if so, do it cp 'R' ; R = reboot system jp z,reboot ; if so, do it +#if (BIOS == BIOS_WBW) + cp 'C' ; C = set console unit + jp z,setcon ; if so, do it +#endif ; ; Attempt ROM application launch ld ix,(ra_tbl_loc) ; point to start of ROM app tbl @@ -334,7 +338,7 @@ runcmd2: dskycmd: call clrled ; clear LEDs ; - call DSKY_GETKEY ; get DSKY key + call DSKY_GETKEY ; get DSKY key cp $FF ; check for error ret z ; abort if so ; @@ -422,6 +426,46 @@ devlst: call pstr ; display it jp prtall ; do it ; +; Set console unit +; +#if (BIOS == BIOS_WBW) +; +setcon: + ; On entry DE is expected to be pointing to start + ; of command + call findws ; skip command + call skipws ; and skip it + call isnum ; do we have a number? + jp nz,err_invcmd ; if not, invalid + call getnum ; parse number into A + jp c,err_nocon ; handle overflow error +; + ; Check against max char unit + push af ; save requested unit + ld b,BF_SYSGET ; HBIOS func: SYS GET + ld c,BF_SYSGET_CIOCNT ; HBIOS subfunc: CIO unit count + rst 08 ; E := unit count + pop af ; restore requested unit + cp e ; compare + jp nc,err_nocon ; handle invalid unit +; + ; Notify user, we're outta here.... + push af ; save new console unit + ld hl,str_newcon ; new console msg + call pstr ; print string on cur console + pop af ; restore new console unit + call PRTDECB ; print unit num +; + ; Set console unit + ld b,BF_SYSPOKE ; HBIOS func: POKE + ld d,BID_BIOS ; BIOS bank + ld e,a ; Char unit value + ld hl,HCB_LOC + HCB_CONDEV ; Con unit num in HCB + rst 08 ; do it + ret ; done +; +#endif +; ; Restart system ; reboot: @@ -433,7 +477,7 @@ reboot: ; #if (DSKYENABLE) ld hl,msg_boot ; point to boot message - call DSKY_SHOWSEG ; display message + call DSKY_SHOWSEG ; display message #endif ; ; switch to rom bank 0 and jump to address 0 @@ -465,7 +509,7 @@ romload: ; #if (DSKYENABLE) ld hl,msg_load ; point to load message - call DSKY_SHOWSEG ; display message + call DSKY_SHOWSEG ; display message #endif ; #if (BIOS == BIOS_WBW) @@ -509,9 +553,9 @@ romload1: #if (BIOS == BIOS_UNA) ; ; Note: UNA has no interbank memory copy, so we can only load -; images from the current bank. We switch to the original bank +; images from the current bank. We switch to the original bank ; use a simple ldir to relocate the image, then switch back to the -; user bank to launch. This will only work if the images are in +; user bank to launch. This will only work if the images are in ; the lower 32K and the relocation adr is in the upper 32K. ; ; Switch to original bank @@ -549,7 +593,7 @@ romload1: ; #if (DSKYENABLE) ld hl,msg_go ; point to go message - call DSKY_SHOWSEG ; display message + call DSKY_SHOWSEG ; display message #endif ; ld l,(ix+ra_ent) ; HL := app entry address @@ -574,7 +618,7 @@ diskboot: ; #if (DSKYENABLE) ld hl,msg_load ; point to load message - call DSKY_SHOWSEG ; display message + call DSKY_SHOWSEG ; display message #endif ; #if (BIOS == BIOS_WBW) @@ -616,7 +660,7 @@ diskboot1: ld h,65 ; 65 tracks per slice call MULT8 ; hl := h * e ld de,$0002 ; head 0, sector 2 - ld b,BF_DIOSEEK ; HBIOS func: seek + ld b,BF_DIOSEEK ; HBIOS func: seek ld a,(bootunit) ; get boot disk unit ld c,a ; put in C rst 08 ; do it @@ -627,7 +671,7 @@ diskboot1: ld b,BF_DIOREAD ; HBIOS func: disk read ld a,(bootunit) ; get boot disk unit ld c,a ; put in C for func call - ld hl,bl_infosec ; read into info sec buffer + ld hl,bl_infosec ; read into info sec buffer ld d,BID_USR ; user bank ld e,1 ; transfer one sector rst 08 ; do it @@ -752,7 +796,7 @@ diskboot5: ld b,BF_DIOREAD ; HBIOS func: read sectors ld a,(bootunit) ; get boot disk unit ld c,a ; put in C - ld hl,(bb_cpmloc) ; load address + ld hl,(bb_cpmloc) ; load address ld d,BID_USR ; user bank ld a,(loadcnt) ; get sectors to read ld e,a ; number of sectors to load @@ -827,7 +871,7 @@ diskboot6: ; #if (DSKYENABLE) ld hl,msg_go ; point to go message - call DSKY_SHOWSEG ; display message + call DSKY_SHOWSEG ; display message #endif ; ; Jump to entry vector @@ -947,6 +991,16 @@ rdln_cr: ld (de),a ; store terminator ret ; and return ; +; Find next whitespace character at buffer adr in DE, returns with first +; whitespace character in A. +; +findws: + ld a,(de) ; get next char + cp ' ' ; blank? + ret z ; nope, done + inc de ; bump buffer pointer + jr findws ; and loop +; ; Skip whitespace at buffer adr in DE, returns with first ; non-whitespace character in A. ; @@ -956,7 +1010,6 @@ skipws: ret nz ; nope, done inc de ; bump buffer pointer jr skipws ; and loop - ; ; Uppercase character in A ; @@ -1186,7 +1239,7 @@ prtall1: push bc ; save loop control ld b,BF_DIODEVICE ; HBIOS func: report device info rst 08 ; call HBIOS - call prtdrv ; print it + call prtdrv ; print it pop bc ; restore loop control inc c ; bump index djnz prtall1 ; loop as needed @@ -1349,6 +1402,10 @@ err_noslice: ld hl,str_err_noslice jr err ; +err_nocon: + ld hl,str_err_nocon + jr err +; err_diskio: ld hl,str_err_diskio jr err @@ -1377,6 +1434,7 @@ str_err_prefix .db bel,"\r\n\r\n*** ",0 str_err_invcmd .db "Invalid command",0 str_err_nodisk .db "Disk unit not available",0 str_err_noslice .db "Disk unit does not support slices",0 +str_err_nocon .db "Invalid character unit",0 str_err_diskio .db "Disk I/O failure",0 str_err_sig .db "No system image on disk",0 str_err_api .db "Unexpected hardware BIOS API failure",0 @@ -1408,12 +1466,12 @@ acmd_to .dw BOOT_TIMEOUT ; auto cmd timeout ;======================================================================= ; str_banner .db PLATFORM_NAME," Boot Loader",0 -;str_prompt .db "Boot [(H)elp]: ",0 str_prompt .db "Boot [H=Help]: ",0 str_bs .db bs,' ',bs,0 str_reboot .db "\r\n\r\nRestarting System...",0 +str_newcon .db "\r\n\r\n Console on Unit #",0 str_applst .db "\r\n\r\nROM Applications:",0 -str_devlst .db "\r\n\r\nDevices:",0 +str_devlst .db "\r\n\r\nDisk Devices:",0 str_invcmd .db "\r\n\r\n*** Invalid Command ***",bel,0 str_load .db "\r\n\r\nLoading ",0 str_disk .db "\r\n Disk Unit ",0 @@ -1427,10 +1485,13 @@ str_binfo4 .db ", entry @ 0x",0 str_binfo5 .db "]",0 ; str_help .db "\r\n" - .db "\r\n L: List ROM Applications" - .db "\r\n D: Device Inventory" - .db "\r\n R: Reboot System" - .db "\r\n [.]: Boot Disk Unit/Slice" + .db "\r\n L - List ROM Applications" + .db "\r\n D - Disk Device Inventory" + .db "\r\n R - Reboot System" +#if (BIOS == BIOS_WBW) + .db "\r\n C - Set Console Unit" +#endif + .db "\r\n [.] - Boot Disk Unit/Slice" .db 0 ; #if (DSKYENABLE) @@ -1448,34 +1509,34 @@ msg_go .db $db,$9d,$00,$00,$00,$80,$80,$80 ; "go... " ; ; WBW UNA ; p1: Application name string adr word (+0) word (+0) -; p2: Console keyboard selection key byte (+2) byte (+2) -; p3: DSKY selection key byte (+3) byte (+3) -; p4: Application image bank byte (+4) word (+4) -; p5: Application image source address word (+5) word (+6) -; p6: Application image dest load address word (+7) word (+8) -; p7: Application image size word (+9) word (+10) -; p8: Application entry address word (+11) word (+12) +; p2: Console keyboard selection key byte (+2) byte (+2) +; p3: DSKY selection key byte (+3) byte (+3) +; p4: Application image bank byte (+4) word (+4) +; p5: Application image source address word (+5) word (+6) +; p6: Application image dest load address word (+7) word (+8) +; p7: Application image size word (+9) word (+10) +; p8: Application entry address word (+11) word (+12) ; #if (BIOS == BIOS_WBW) ra_name .equ 0 ra_conkey .equ 2 -ra_dskykey .equ 3 -ra_bnk .equ 4 -ra_src .equ 5 -ra_dest .equ 7 -ra_siz .equ 9 -ra_ent .equ 11 +ra_dskykey .equ 3 +ra_bnk .equ 4 +ra_src .equ 5 +ra_dest .equ 7 +ra_siz .equ 9 +ra_ent .equ 11 #endif ; #if (BIOS == BIOS_UNA) ra_name .equ 0 ra_conkey .equ 2 -ra_dskykey .equ 3 -ra_bnk .equ 4 -ra_src .equ 6 -ra_dest .equ 8 -ra_siz .equ 10 -ra_ent .equ 12 +ra_dskykey .equ 3 +ra_bnk .equ 4 +ra_src .equ 6 +ra_dest .equ 8 +ra_siz .equ 10 +ra_ent .equ 12 #endif ; #define ra_ent(p1,p2,p3,p4,p5,p6,p7,p8) \ @@ -1516,35 +1577,35 @@ ra_ent .equ 12 ; ra_tbl: ; -; Name Key Dsky Bank Src Dest Size Entry +; Name Key Dsky Bank Src Dest Size Entry ; --------- ------- ----- -------- ----- ------- ------- ---------- -ra_ent(str_mon, 'M', KY_CL, BID_IMG0, $1000, MON_LOC, MON_SIZ, MON_SERIAL) +ra_ent(str_mon, 'M', KY_CL, BID_IMG0, $1000, MON_LOC, MON_SIZ, MON_SERIAL) ra_entsiz .equ $ - ra_tbl -ra_ent(str_cpm22, 'C', KY_BK, BID_IMG0, $2000, CPM_LOC, CPM_SIZ, CPM_ENT) -ra_ent(str_zsys, 'Z', KY_FW, BID_IMG0, $5000, CPM_LOC, CPM_SIZ, CPM_ENT) +ra_ent(str_cpm22, 'C', KY_BK, BID_IMG0, $2000, CPM_LOC, CPM_SIZ, CPM_ENT) +ra_ent(str_zsys, 'Z', KY_FW, BID_IMG0, $5000, CPM_LOC, CPM_SIZ, CPM_ENT) #if (BIOS == BIOS_WBW) -ra_ent(str_fth, 'F', KY_EX, BID_IMG1, $0000, FTH_LOC, FTH_SIZ, FTH_LOC) -ra_ent(str_bas, 'B', KY_DE, BID_IMG1, $1700, BAS_LOC, BAS_SIZ, BAS_LOC) -ra_ent(str_tbas, 'T', KY_EN, BID_IMG1, $3700, TBC_LOC, TBC_SIZ, TBC_LOC) -ra_ent(str_play, 'P', $FF, BID_IMG1, $4000, GAM_LOC, GAM_SIZ, GAM_LOC) -ra_ent(str_user, 'U', $FF, BID_IMG1, $7000, USR_LOC, USR_SIZ, USR_LOC) +ra_ent(str_fth, 'F', KY_EX, BID_IMG1, $0000, FTH_LOC, FTH_SIZ, FTH_LOC) +ra_ent(str_bas, 'B', KY_DE, BID_IMG1, $1700, BAS_LOC, BAS_SIZ, BAS_LOC) +ra_ent(str_tbas, 'T', KY_EN, BID_IMG1, $3700, TBC_LOC, TBC_SIZ, TBC_LOC) +ra_ent(str_play, 'P', $FF, BID_IMG1, $4000, GAM_LOC, GAM_SIZ, GAM_LOC) +ra_ent(str_user, 'U', $FF, BID_IMG1, $7000, USR_LOC, USR_SIZ, USR_LOC) #endif #if (DSKYENABLE) ra_ent(str_dsky, 'Y'+$80, KY_GO, bid_cur, $1000, MON_LOC, MON_SIZ, MON_DSKY) #endif -ra_ent(str_egg, 'E'+$80, $FF , bid_cur, $0E00, EGG_LOC, EGG_SIZ, EGG_LOC) +ra_ent(str_egg, 'E'+$80, $FF , bid_cur, $0E00, EGG_LOC, EGG_SIZ, EGG_LOC) .dw 0 ; table terminator ; ra_tbl_app: ; -; Name Key Dsky Bank Src Dest Size Entry +; Name Key Dsky Bank Src Dest Size Entry ; --------- ------- ----- -------- ----- ------- ------- ---------- -ra_ent(str_mon, 'M', KY_CL, bid_cur, $1000, MON_LOC, MON_SIZ, MON_SERIAL) -ra_ent(str_zsys, 'Z', KY_FW, bid_cur, $2000, CPM_LOC, CPM_SIZ, CPM_ENT) +ra_ent(str_mon, 'M', KY_CL, bid_cur, $1000, MON_LOC, MON_SIZ, MON_SERIAL) +ra_ent(str_zsys, 'Z', KY_FW, bid_cur, $2000, CPM_LOC, CPM_SIZ, CPM_ENT) #if (DSKYENABLE) ra_ent(str_dsky, 'Y'+$80, KY_GO, bid_cur, $1000, MON_LOC, MON_SIZ, MON_DSKY) #endif -ra_ent(str_egg, 'E'+$80, $FF , bid_cur, $0E00, EGG_LOC, EGG_SIZ, EGG_LOC) +ra_ent(str_egg, 'E'+$80, $FF , bid_cur, $0E00, EGG_LOC, EGG_SIZ, EGG_LOC) .dw 0 ; table terminator ; str_mon .db "Monitor",0 diff --git a/Source/ver.inc b/Source/ver.inc index 3b64400a..311c55f8 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,4 +2,4 @@ #DEFINE RMN 1 #DEFINE RUP 0 #DEFINE RTP 0 -#DEFINE BIOSVER "3.1-pre.11" +#DEFINE BIOSVER "3.1-pre.12" diff --git a/Source/ver.lib b/Source/ver.lib index 9a135bda..f5cc5c1c 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 1 rup equ 0 rtp equ 0 biosver macro - db "3.1-pre.11" + db "3.1-pre.12" endm