From a84933a4d2c45c7d7fa3c9ee042c05ff245799d5 Mon Sep 17 00:00:00 2001 From: davidly Date: Tue, 2 Jul 2024 13:25:30 -0700 Subject: [PATCH] Microsoft gw-basic v202 --- Microsoft GW-BASIC v202/E.BAS | 31 ++++++++ Microsoft GW-BASIC v202/GWBASIC.EXE | Bin 0 -> 70144 bytes Microsoft GW-BASIC v202/SIEVE.BAS | 22 +++++ Microsoft GW-BASIC v202/TTT.BAS | 119 ++++++++++++++++++++++++++++ Microsoft GW-BASIC v202/m.bat | 1 + 5 files changed, 173 insertions(+) create mode 100644 Microsoft GW-BASIC v202/E.BAS create mode 100644 Microsoft GW-BASIC v202/GWBASIC.EXE create mode 100644 Microsoft GW-BASIC v202/SIEVE.BAS create mode 100644 Microsoft GW-BASIC v202/TTT.BAS create mode 100644 Microsoft GW-BASIC v202/m.bat diff --git a/Microsoft GW-BASIC v202/E.BAS b/Microsoft GW-BASIC v202/E.BAS new file mode 100644 index 0000000..e62b9ec --- /dev/null +++ b/Microsoft GW-BASIC v202/E.BAS @@ -0,0 +1,31 @@ +100 DIGITS% = 200 +110 DIM A%( 200 ) +120 HIGH% = DIGITS% +130 X% = 0 +140 N% = HIGH% - 1 +150 IF N% <= 0 GOTO 200 +160 A%[ N% ] = 1 +170 N% = N% - 1 +180 GOTO 150 +200 A%[ 1 ] = 2 +210 A%[ 0 ] = 0 +220 IF HIGH% <= 9 GOTO 400 +230 HIGH% = HIGH% - 1 +235 N% = HIGH% +240 IF N% = 0 GOTO 300 +250 A%[ N% ] = X% MOD N% +255 rem PRINT "a[n-1]"; A%[ N% - 1 ] +260 X% = ( 10 * A%[ N% - 1 ] ) + ( X% \ N% ) +265 rem PRINT "x: "; X%, "n: "; N% +270 N% = N% - 1 +280 GOTO 240 +300 IF X% >= 10 GOTO 330 +310 PRINT USING "#"; X%; +320 GOTO 220 +330 PRINT USING "##"; X%; +340 GOTO 220 +400 PRINT "" +410 PRINT "done" +420 SYSTEM + + diff --git a/Microsoft GW-BASIC v202/GWBASIC.EXE b/Microsoft GW-BASIC v202/GWBASIC.EXE new file mode 100644 index 0000000000000000000000000000000000000000..492efa1b2a7a6342798e3c1092c5edc3133cd6e8 GIT binary patch literal 70144 zcmeGEc~}(3_6LmjY(2w(Ad0v}MB@UHU@jVy;J6^7L5$4e0y9x#l-zjZc84CbnMk4r z>2|>+CO5_f(R-7db;KnZxQW0Bq9_5>s2CHC+Zo$^#f6#Qr+U!je*gLX^*-eQ*T)u~hcoSowexTm;S&cFo%Tx1^CJMTrBr;6b?PQ}fhJWrL2>vdcUaV^0m z;aY|3V_fTSZNl|$T;Jl_j;jn;1+Lw=_TxH$>nN_@aGk*=jX*DzcexGcEFzBo_yGcM_sd8)YCXv@fPdqO#GT^PrGfvXDF<83%Dwk^kv!S#1s zgCaTZATCooj&tF9sy)X&hwB8cPEi~;10%!$|M%~I82BFs{)d78Vc>rl_#X!Thk^fL z;Qs*(6m2%FY78$ota7SqH~wx=@fC(zC69lY7tiuGRu~5G%Zz!aUvPyYJs9a+^&OU- zcR$vt&$|%23AHr*B?IowwY-Qncg0i~0@2fq`r1CCzGp>!d3{a&p4_|M2T$x7Imo-^ z^?GAA?le^4jU;`~T~Fw{*X9i!Y%mI108{H$*RG|F>UA5GJeRt`R}j#@zi$0-q(&;{;j&C*9kbuR!|`l(ZDYke#K{{tSwx{}WC2m~P$x`;Qw3brf$k{F17!LU8> zoaQYY`pZ}l>tVGcvW1GNes3+d-acjjyXKCpla6fRnzL%%s@kP70H$2CJYj88I`AE=^BFp=_?T| zEgRJTC!MDnY^*b$N1cYKyrKIHoS^bfoMf>s+xz3;P)``Q(_vhbi17-#YJQ(VWzU{E z#hV+N8@e!53jH{AQz&P)@-a5IVcV1Ydlba{&A5!8WpqChe42x&c}90g@X3iM!RT%m ze43A^*NpDS;L{s;T3~bxXk1abEc|8TUH2n>s-oNJw)NiMqkD{v|Nb&sUskS{4#ccD z@_h))<-fo3=R5<;b4bw#458773_|FNm_vr|+bOS0(T9a6 zrRe2`HFi9d_TVlQziljPG|1c~`OQK$uDiB1nbYQ}92;LY4#v1#+GXLhkea8Y<{>30 zDZv<{cN+ll-;4}m1^79^WC(Jd!DKrm=LeIKNWP&Y`R;DbpFt>k+j!|-cfCEUxt6n9 zYy*yoCrVV!9xYd2Uw;_af!}W#8wK9KSKK9&Tq>< zeVZr4p9~)uo^;E2Eko#8zc=?b6Ghb!MWdzK1|RzqcM0n2U%Ycl&$*6xAC!6@zJYgc zKFDo-N8EKvc|-GGZ+N{@%&(AACk(YTyG8OfT-j%GFrZP4mJL#Pg+a5oAbgq8&a&qRSVlqk3S*X3GoUe?a#}MAjZ9B04S(P0kZM`M z*w%s%S_@VirQLvN>Pn`ACQaNH5IZK_%Dbz2b@Gp&8wJge9~qZMNq0jV&4P|rbFzjO zaanmS0bwXz;HpQe)naB?>{xa6$Vh{dij*?>g0Xrj(^xQ8w|k_9NDDUD7QT!o_QOch%0Y9V-7`e>ML0x|){?ZN$+!f6Z&!ys_b0DN{vF zT<9KQA9YtrnTCR~8o9zY@yDU<%MKVkVVC7lJjAsxJ8bZT-lkz(XroKJJs=OfyQor| zRDMb37M<5zl75!1ixmndKeBA3Iz}Jfo$&$R9XutTxzKYLI4bGly(tdwq!_SxQ^PrF zHK$$kBDk&~y42Wxs&}HzoM+-(hVRcB%Z?aj{(B*`?4{6x(c0ak`8;mTP}J1raRsBn zuImk~W=Pq8j04IW&dd6;y+*0BflybeRxnAualL^(^I485UYoUSZCj}!H8oL+NKM5! zwSya6SMgwXcr!STpTl+3e#CK_1XZ3YOI^;nwJ&f6{c!GukSDnEcAdDq-f#eA@QURk z0oFy88h75MMd#IG6$Uj%tiZ20tIZZo;~8;exUmZ5$N^FY?2)+(zu#L_$>WayOGk!{ z86%EV4^)SR1Z%iMaUX#q(s1Hg@1&g^=LzN3jKElvPKzVMK5y%aShPUH2_ZW)gBNIo z4F9grV_BAtWoZX5&}Nzsq=9=$1G1g#Nyu{oO4`*sPNV>?tM9 zw)ggTm}+;7mOn|l#V`)yLro0`k)Go6?sKlkfm7gC&;X^278*F0F>gTxCq%ou$ZdFO z&|1Ta>NUxLP9J*OF{L)C96xyrjGWL_9BJIff39{tvQ7QD))l=?|GB}{c3S`gFm6-j zEePRU>ZH@vBSS#aM$S8FA_SWmyG|jjzZ_#-j zoA)8Xd6!-_41Sdtp2&MEf^$8Fj`H4W%LztP7Z+ch77>smjl1|s(ooRCZUxm-_0{}t zgUXAV)oCHB-~;9%@2ybI)lIsNISw}cQmBGwFo8ltfK%_SPE&DuFA$2im!^d+dJAN% z{X9>ITJ#oZT>E*fU|jST7{CBZ(k`74>Se78cdFAuxiNU9SFCUcoF*4?7OSoJPH5?! zP>+f$({kH}@9*K%CY_em+f)vFb}gr9xI}2U=*NuWAZWSp&4xZwH|mH%54hzOE9w2_ zO)a5fH7vtTflygiOfj$MO{(l!1*6cLRNb>G^h%o7BJSVV5<0;9XoV2AF`y)jyHJqr zRi0SdJJC960#8yvx-@v`0HaIeTh29B-KtW#jDhGJqhM>SlCRRbfY4{rWtB6dkJyb> z6Eaz6i>rjuja9kLti#YNn#AcwxoOd5wX-*XRcgg6y)UT{VjC)Qo2ek6)cK`xe{O$S zD<(ROqbW7udUUiL%Z4Z>J|FD!x8%h4jjtYUta9@5C3JAUasNc=cmeeOQeY+Yn4p_L zQ>IRyA|03N^pmIBLGKgziPCwh^3!#{E3S3aODbF`&k2JY_T=6iJz4?jNu%pba^h-Z z?r#Gw`fhQ-F}NOiPKX9bH%BXjL!EOmP>q%!31Z6;#8!CYey4#!>{K&s!5Ws12XT}e9&Zg<@rKrV6I#E7}5dTB7!pgnCL; zo)V*{q@AZE%2UF7N}@d_ZIa51Ur-fKQ%Nxf4nz@FWaO6W%dpLbXDQ}ueL>8(dIoku z%mTEuMUVPxbj3xw)?py;ZLOz=T8eo?>l^Y|wpc0dEpDrFx6tBOq?p%GoCj1$c)9fj zV?j&-atdN3trYXFHuPA2Q`usz5ZY7k()%Own|x(_Qu$K7*ihU{Mc0;>b?PBjn#ScC zOi8)C=}{-|?v)TB)+b^DjOBt_zLk**Bk+oi^)My>`a~3%hPikL-jff~$5llsdeqbS zJo%1Ne_(KvOG95Scj>^nU+1?%q@fq~y94y^1CCD z9qZ7k@y(a47W(;Px~DUiuPumv8z`Kw)igOHtfhA`ID0N%0B~fT(k~fR&d%%Bg1{mQ z6=2b6FM~yXyUg|g-m-<5xR3>F*X#_ zIbEv|$Ghlyxq|U*o93vE{#ENJKt_Jk(qY+lTWV@S$JEqPpDG>yq-&yfsXlc?x>#YX za$U7k7)ML``rLjgrk^UmN%V_NY&P}al+;vk7O>jZ6q|d~6zaT6?Q|5blP{!#VmitP zOF7OebTlOh?d>#zw+h{m>`eFio)^@n1fW3BP(NPKBUj@KZ7GPE2Y~F1EI=RqR8p@_%!A;UpsryYl-E>0b{|2=6*A^#gJ%d$%ok8M?EgP;9y^mFhHRA3rRU(y< zDydw$`^AXX%WLY1`5IVgiWNeN5LAvzw|gx_?0n9(wjGgf4s^Ltl@;v#b&cGoFxwuMX9h=Q0aX}x7GNvAA@vBp;V$18uVD_Wjcj21*pdP04_+kTX32JQi?8{gnyI zw!g0N+5JLaQzC|I@w>z6YtBl34f&O~L6ctkloNM5u!i;BZn0WKJ#E}YCpeIH(c@Z^ z+SNshA&5X@xm)cD7ro-Wtq~?;ZjCllt~J-!XuHz$Tp8(TZwIHQ?6fWmQ%z&ItWxRSk&z92YxDgB;4BztX!V$@O_T-Y~zZaVNU`#)>*r=o0LB=T4v+hur+8suraGy|k zRJQN=fIFEHpTbU<;*yTOSF903n zd#r^CmRzGL1hi=sAg#U*r4OpTSCnJ1D)0(yOUn_l)A%T5=}P$Gy&33!>*~ zF?=&EX`5xEx{hU%j;I<2DdZm{!%S_N8oH5AHoIapN39v+QyC(p09bFPc5su!?mA%`Mq7iU*G=i$dOZh zgPMI`HG3(Kle1|}51+21&!Iun=b2q#)C<3*N*z-RqT^M!_%C$-Ln9#D;?gl8R^iixcbuC{V{$)9I;}33 zt|SJwHS|Jx0TeUpsJxi1D^5)BO{QPG3iCs3I!!Syz9Zo3ib!ku1E(`U$~w%?Lbz1f82Aayy#ZINM9;!DVEUy<@8Q6cl{(uA%|j zVz7}xh-8HYU?nML5bo!7-m-yOU*D<{jfYt*T2G0A-t6V^s4TfEZ$b)$Fj2s7I`3*r z&3>BJE0{|p`^BoqD)8hlXVX@;TFZpn(vFPb?l^$Y1TYGWe|Za)`ym8h1Ka3)n%gKz zl%PgIZ=d@!XtUoG4o%WViU!CU-)cYPSCSS=CxZ(7z_x9Jx$GaE2RAvpGNq+y(i~$~ z*7}4e#QGharYXP4As@Lgdsf8ZyMvn}KXbgh5{LaGV8Y?&ZNIEOO63$}A6Z^P4gl@ud0|w^+y&V0dqn z-vk|iJ~Tf4t^6jm_k=>sw1i{K7_R~|Lc3pSc53Kcb8fqIcbj6T)3UN@`JPHo1yvWK&P!97NIigk@NSRkf=Y zugJ%G{zuJ)zq*mF$&SQP=J4a;I(iG-)*DzQr7X;^!tOG#(aIW?uHbvBd6^)wUG zHt-@-{)3xxVXLizB(mprDw~SCQ(uPooNOrN<1(yIHk zwtE5n-V)jx%fUh|yU7MgUQUhKX+ zsXW_~T!9xB+z3u1ecU2e8!OS+OAi}c;b)|g9ju_Pvd}m482&ok&$gpoi=Gs|@`^n&!zd=Ji`3!P)ev|#7dRHY8}^PAmj zX4G^k%2X+{Db}MT6GAjk5p2FsuX|}iJ2Z<@jc>_)pLo602t%$ry?sBwi6LBw2Kooa zBuLTowSs|!`yiZ*>yR|Njb6NBy4N6~%qkckW>wK8 zIN~u@J^=e546{>_;K-oo?mT!8o%}t3oWXaD3p+z1x(RX2v^W8UJ=wglD8*h(8+j6 z5V58xpDkfv8CPJrd8)0_uy5x*DrwF#n{=LSZL!|*{aEVTS(-uXn_I^_($DH;(DG(< z^-935G>x^r#<%JbtHbABO#Sbn)ee|;X#EnVGTc{!s{a)&O=>nRb{+R+1}K%IP9nd8 zU!tW~$HU;$7GlR;?`sLA7?_V8MOB<{5fedtJ+1d6;P zbjzZ;E(um@e+Pp&f0?Z{eK(tfJec2Pp(EGqureF3Nk{F2q0Jc4H)Au`W|cc=j^b$# z>e|ZgV5tcW;w!^8Q%C0QunS=d3Lvzgdk$Hs7c6B53R59mq8>DlHDP{}<|tE=r{NB< znAl7@v5xGg$_Szm6U5L*kK6`jU%;$6nY~^iWJ45pBL23iz;%`aw@l%#->j6~4DgL| zJf7;Tl+kRXF4s1suXnd`4x`ey$|~Af=^xu2wCsm$hs{E7{ot@?$p4%$XGYFTGw0;Y zh@FMsSkBbOb>2$h&9Ebxg~D7o?(nkzv{RI(En{i_jHMA7OZ5(~0t(>sjR}y{c?9Km zPN7AeZM3j+ny61;%ZpDhnbeT;A6|l1TBS>_5_%TB&p1@$6EC5;l`x!w`Ug3$U2=$3 z#jA7>#_#Ls@mpTFEfo5s_X<*e?SLYwixs$}>)$C2o~D!7PQA#{7iA8wb=sU65LR&Y%yC$}+e z5jL4hTpJ-~)_LJX`^dD&^&uWW)tzq&p9NuHxKoUBMxfL^JA+zoly-=Mn$UDg$S9o= z#h8?7Cx_L$!CZ7v2dR{`euEjrbrA`#O>x`wRyne1=Vc51<2`1cWYG6Fgb1qWm_W|A z+-e&62EG4wtAEE~54!TiDq{u4bN(VdBUyr37S@h)Ge~~@eEXRy}-AMvP?yTr}JDtSVgT)E2fgZrD-6m^Xf$Dj#jN z5}xe>zfDYGQTqo5WT3b`N4huNI^y1Bwg4X4&FhKN>squ|g zp$OtL*yh;!BlSme+3=6rEM-!(4T3CPx+-c-&pk|~Jxp02rjn7$%5o^1zS#JcAJ0Y` zz7DL_FtsvxFH36W>-F`{b7+1s(0Vce`qR*vfT;JwG2_yKHF_;fh3eO&`>WwbfDw^u z^0~JNstjzT(b)E7zxNht%W!{1s(4#Gpm3#dZA0pMctNh=33lq){3bX+)TRcp!k#VG zyTTMKKyR=w)pAT6|ch#iej-Ak;Lc{G(O*7sW2iZqQ+e$-frKF*mw zcQNPPYMsM3+)wXzWJ|m!U}c(;Z+bIGd(CPwQ}MMd&&G}xQz(d2_|611>wEP(X5jcz zyxDfF07^1Vp;+FBl|1W;cK3NWF=FMzBo<&MZ3*Y(OL_?El1G6q=4_nsJ(J?)Lc)L7 zbNV1w*%WO^S&x0TM8RMh3G*P$)lkC8`^8GU5%Ta2w%G73X`%5KEVTD-w%uZ(MHfKI zVTBB#3d6wUhW&Jnu_2L*Ia#lKn_V_iQT>c!mus2FkhM4hJae6q?s6ECD{-xY;nXJT z9K4mpN5y6A;H+CzRNsy&nWyO@q(nZ{Nxn9lt&nrHrn3xlKG5JhT!K%TD<)21tZRJV zKWYjCa?4i4vxS>jl_)-yT#XEiXHzGOSZyv+gEIwP7P z~H~B}g$~1#PW-Za~ zm{HdBh>ddD`s>wzvb^zxB+H*>ixuDj00shWV^RxoCT5H*ZSyY9EcA{8~-$_Vo zg_n?K@T(~|r|kQ9wo-;85CSey>~CjnTD>`GVY+O4eezrc!8D{Y(qwq zYczQ-nR=nRG?{*gjDy+Vo!mMbefHYgyrE;TBhRmMX?<^;T~~??o}V4C*y!ah^g(1i zfDS!|_sTERb=Fip(xcR-Be-QhYO2BQ?{?EKxILX<`W3fd^G!eF_IOXz65R4Snb^y{ z>?WotFR1D178)8E@7?hhJ=wwt*G7}Sb$ChL8T~LUQ2|?9cSKKM(P@mD-vlM}n(9@& zgwI`u*+-Wz(y4$cQ+UDjtjn>Ti8wkCpwaDNz8T^Bo1gH6(<$?&(Ydn{o`Shv zpx5`i8eq9I4dlCg##T0`2hG1t%LE6MC@hnUICcP`%M$cX}#W9n=+g7)JJ68|?vxNp; zge9QM?MYAEr$KEK=uipcf6^&p0^|`3n~A06A#^~o#YHc;wy&vcP)P=Pv<*{(ty=TT zYW84*cVktlqjW}BE0obiohPR^2t3f&UkADY4j;!4#D71Q_TdL+D;!7d%Cmb`X#-u# zDSE3MvBOTq_h?h;?E`EcvVEW3W2TtFU&H>qjNtQ2v+SlffVxk%n%=~1-WHFl-eMZ% z(u6j7O>k8|ikr!$8Gu_7cAT1SAMoBj@F=_WYw}&+A|6R97vV=Np&_NU^v{x7y8af~ zuppooHfE{gqPqb!JMkhvq0FKx{9!`3f^Rvl@P};NwcN7(1>dTITcU0q)<)}T%^*dH@RM*~(W z2|q{Db=G@9M@HOO2sQ|h(5INbkHgdGgYePIngl&bs5awzLG%(x||`aMVX;qL5KQzLxri z$0e1U!3J(+@p`30kP^^@*-E;*tP#kO9BeL(Qf<-FzOb_9faVwJ6kT_-I;;%_fB;u` zn*{JaWbDB<3G$Y#;?6qwIRy)Z6*ddtuJ*Xg47f|D>{~T{?--_gl>M0NW5$d@QxJ7j z)LAFisF@hn_^M^I=-tkhb=7H(!jJqr=c$abSbXnXRKR}me6X*V+r+!A48Ec*TCLU$ zY#%}8K4Dp6&8>RaB1gVcptY5LtECMbM)EBbS7#`&En2CzY^%1ktB&$HgcZX<+Zo=` zB|3Ozm#`fNZ}Gc$#&B*nXV7&Y5Z?25da=b7S^5H+ARV+TPd|2{xUR7Mv`p!?u4_{8 zuMFKi!EF0etVwtdA2#X8vh~uJt%(nA3sK#Dhxd<5P9_y?2t*uI4vg@U?BBzg)GFIV=GiA$Bia z30(4$9I%>8;9O1cfvTQFQGYH=yu#>@su$v|{3gV!R14P}Uf+)6M0ana6?EJGdt10ohiIL*CoV`%CvH}*XIb+UW?6f zI_Ek$Yufk;)^QKZM`zlw8JCHgb6<)bnKC|wOP@6>=daUd#lGa4GhLWDcTVi|X|rZ= zne%g;FU^|!>VvAYb7s$VzRvxhHEeJ_$Jtyj=1zCcoQFn(4LhgJ`D+e0(lu|^%<0pF zoY;|U;X9MH&W)Toe`YT0=Ec`z-^g*!ec1nuna-T)0yqBkc{#DOXXehHCQN_%LGQVO zbLO1C#^%nOHa&;41s{aDb7N=Co%7cR&o9k&&UVe3hV|s!*y(d;&zqI=8kah4PG12} zbA*|5TseP&-j$1G=z|e+<>)B9(}rYSV_UzKuR zo0%)*Dv*qvnfnT`3i3&xGY^z7Z(6Ppo736{W_PZ0#seT8_Bv>SpIGW*P%Ddfz~ znIpu`oTC8EjmLD(o;K%ofG70U2_fg2Pm+zaRwh}=ggQntrcY{Gv-g5GaXKfQ908Dmota6<}f&8r%iXx z&CQLSf!A|6^EBb*{t7Bmrccj7b`Uu%TWLFp-jV2G*4*i@aBM_e<|_gCYDWOQuW)6L zU)AsaF(qt##Pora+P)gLJ~S@0ApD)j?V%S!)53}$zp*Tk_(Rmzeiy^W#a`@|85y7G zQF&D9u@{zYi}I+xl+wb|5=SMDO=0Y9@RS|b?yJ!{(W(oH0Up<{t}xs)%A$b`9$w!&oBGeq7{qMMh_m%&lg`?ENmNc zb%=jRWPM@nS9`Pe?fBJIb^2IXc3Q988#qR+B{&0Bl)SJsY50Wc{1{YA(rHc z$>0BT_2D6hXB}Qrug+`Clk&7H{<31wic`IB^w#uws?Q63mh@TGr>M_A`&9I)>{H$6 zexLBZo%<&BozQn;U#ag;eb4s2-1ko3$hZ!1(Qy;T|MbPUU6)22;K$d6+q@k(Tgt?$ z%CVU#yS!;>^;KNv*v!VAV>4}4Wtrm+elj*KrSW~6b!>XwvGj2VAF++w-EHKEeKDB_ z!k)Emj!qf7Z|m3twDDE{P8naZIDP+nX`^i88^1~$h5BD3J#P0mX`}GYw`tWM zb7O5)8^`T>$C_fR`sc{>ga5KxGaEm%?mK90Jd{-*npyp*<>#whX5+hc4c4lN^dsH5 z%<(@JWX7@|+l0#HTw2!VF5Ectgo8_}rE%!y$hd>LarJGVtG_lbBQ1OLuN;?lbPt!A znlip>uh|L+){RZK9b9kDJkT}m;L`MQRc?&)KgjwZbGI?m+bgZEUD~Men^l?Bz0p-> zV?~;Ebkz@;yRN5?+^j)w2N$Is{xI|40nVIOS32R~+Pc+^ms7`Y?ra{Po>}+(sOsY! z>tt1CM%6zu4@9P=)poR{9ju0cOFOtb6D7Z-)x~n$ggTKah`JSNDZBF1Y~wSnRm;-$ zuViAd>htu`&yL@$9=FSoHg3ZHFH^>i%zQ50UghCZt!Zg>HRChu3n!)2Z^j(`XiojS zaeP|+PowL!mPUPgUC4Or=Jw+O!063Cn^RKLHh0RLFmBhb@#(3xJ&?V-C--bx-F|Ck zU9mNDRQ0Bm5uexnv@fNu4QERqxBIZIv7SrW7nNc)k8f<^(npT3DN0E{_z`4c)t0nz zyGpF-dxC*OM+MEzVC{ zk+C96e0$`#!*{;ndGnWy8E>~Wcbi~+=a;wNUeYfAOujGwV*VFPBNx9nDaoEV%Jb@T zuF(qH%vM$R1*)VC+^Z@KKEQ^os_x1 zFx{FuwrW+%*s%vTK07kK@nbG!eA?#a)|A8VbJme*Kd&A)F&&8dl!K7p^)A%Hfp@sH zg9RK&Y5YEf+ozA+m(O8Rm!xKzj}~zm>6^6~w#~YXk(>DpH1`iK<+-ZGnCOE`Q!wi* z$EF0tqG!{_?pwp9KbN+71%4VoL^o-N z*K+9~fy3*Vjr02J3l=Oik1{32z47L(!yLEz@SvZD9L{g#>N+0jd~jNQo4R&&33VOo z5`W698&o%|ZfuuN>v66lgSK2PTNa04;cfn0t<6_;Jlp=7CM@rc`Mnd5aK6#M+_$g* zp>3SzNTT$V!$$936>AbjEelq;RHl;5fSI=5kN7yeVFXQgnBe zy!*$Uai$iRVQThN>dMJ&5O|=ZJ8-hf>(o0^rJsDy%f72^nNLnui~9SMEJ5GfDCy_K zug1Yhzp-J|`qytD4Y$Vm{A=*IO%?0&hOX9OYkf5WEA;NzFZ^{v6kKZB#IKk`jXmm& zm9JmDbJOb!Ib50$XL?I`6o#o)xVnjg3i<;j9?4dDcEuyU|Jz0nbr%PO&%e>?L1#Y^*zc{eeru|2xn7*nE*zIp52DjQgt#@#fcZziHe&W9-O208@u8GCO_Y2k}piUU76!+4x`mXlD2Nlj6 z>BF>$)#I1yQAdMp#O=T}vRNOjp;4-74yTu11no?F(U<?} z_h|4-otGZrt+ujFI?CS2cE^-e-UV`^{`!To$I;{2^Mt1Vo%|=PFI%mH`CKufKG4=uGPW3VZ?go z)4rU}e9Wt~Y*#`F6k6K^M*-+Ual553x0?gvhP z=-^3ZGdJ#-mqF1ldNSDF+pkipXXMaZg;l%Pt@gOJ9=E|v?XP6fcB2$CO-s8r_?ESC zt2}Ov$E`P0c$=(bJqYSV6R7-gZK~AW_sIs*T*MA}X>0-_$9|SO($`by1#Ho8@a$ZT zfIDXx81;%+Z?@QI+f-~M@YtlOb6tmXHWJ%F3GSY*5LQlSr#fxe6Wbm@7+1BaC-!xp zFtxD>&pWUa)(3g0i#!Bcb5u4Jds9Z?Jho@UkRJ;Ho8WFEL_jBmCRYn#$(7jtlQ{Zd zYHo=QyZ%~qn?g&bI!&m1o5h95Nria%F(xN^Bjn!b6(T(Yxec154Zp5$KzQJ-`d)e2 z4k3)pQ?XBlql>hEssm_6OomvQ5R15`OFKB)6aw#=?n0|~amf)z6u}3$7+0=gj|id? z*EoWqcM7kA(X!?3JFp|+J2}~{k~M`%<*g0)0vR;?h|q!3?9a-_!na&Yv3C`{fU2F_f#=X{%k-ibgZ|#A1~B8v!M^#2iKf%e$-Zyy($9B% zpWeyFftw6ka~L62rvtv~pYY;~Di8zS?#-aM1NRk}dfrdUZRStRA4;pHkZqdp*LoZM z?W~RV7!l%;br_S-y^yBdO)#Y(X(%+A0g3A;o0&|9k$UAPoM!~Vn|G+G(VyjDE>qvY zmrW@svrVB+hl!i!8}mEmJdga#bqQMJ->rkk(gTmB)V&~PwN8md-wv->ep6{B+*ZDBT#P`5;}^~J>zx#8x?`hnR5X8WRyONVtg(VAw(FRN#bzvaxFs~EaO;*j2ZB?V zMj%$fA%7DFQw0&IxhfjG)=G=dC~qT}fI`InN<;8_S!`>u-wnc?#byJIJi}NPUbw%A z4LdMHs}P^hI+)J#rmqt#=x4n{X$Syr2*Ei&KxDC{t}W=e4mMH8Z2WW=E0U{n)gnDs zCDyD1g>^-!j(M+gf+O!xI{_760u=D^pn{tEvd__0}3uzYh}uyq7t7%gHI?dPep zUg^(bli#6=L$t5C7u7V!DRKcD2nEr-gQ2%27nE2VS4UcVh%VcK_1E{ar~}{P{dB?jao5Od)KAcg5wzeg>I{P+BU14jDrUkZI!7RMAURiy zolza=%Q*l$ZQBE-Z>YlZ{8bDItX8o6A`QKpOE6MTW9zFg+fv$>jb>2ZC$~qb>PhPk zwW&9H#&$rj;H?L4I}F$n!hW+@(Q6@#?6j4Q$1I9ZIWoj*NJUz3uxPdxp`{4qP$4uq zvJkdo9G<*f!T{X~0r9rreR}kqOJ8;l zr&>sdz%nT&LD9zI6~uJSVL`udsDfT`VMuk%beM5!t7>wP(6qfvA;TVNrg6@6z`!SF!Ob@%%@)G#( z^$117{MV8J8!?K{KLH!pR#|Tgk{H9CuWU_G0-W}!*u9pKm{f~d828CzI8o#Kh${`@ ze4T26Do`SuO;!U1H5}M{X@6=!*j^1uH<-}O(IO9RVQ-|u8G&e$Rl0$p%q5<+K3AI! zTVW|O@lqV$#w$B3F9U<{q z>z$)Sg38mU?rq43P4M>nqvuCr$KWJ0}N%q*l5-i zVuD$FY}3Jer%O4rR8lejZ2K)6Tg4m9t&=7aSOQxbBVdR!3o~oIJsXkGCuru!$&v#54uE0wz8} z&;I-?Rwc0LUXko}e|4&?VWBhC8UD&%2G=9_SVa{kBMMyqIN~h)E~DF^)hh7pcdQd~ z5J@uqH+#0lCY~3o)D@=AnAepJ04k3zZl)b7XvgIGJ3=JzY#Q7eYd9IZL-pA#U=xVf zKUS5xgA?ne?kqGxA?$zpWuD&PNHYmNfVlk-{=ZLTbVJiL4qvb5X)-W@!O_Wya_tsQ z)@@PAsx1G0O5^ZGgN5pUCD&>I#U@5)=VoM@Y&EHTG>-d_R*24uphMLwt(W2`Zp4sXV#T zUygN|zs|px+2bk6dPLL+M{oK%e?(h9gk1RkL)gQMi?IDeg=)|AAvkY?LrLFo4y8SU zM@l?G)6{ma8|x6R>;Z`!s5An^Saz>@*SA&Y^y%pwEmP@N3~l;CQ^ z^rN5;9&Wj*h*O*=gC^bQq`4 zpld3MTdkP4(6$%~2@_ytYH0L?6!|<()u~zF856)kjeiSUtlI;cqp4u+2(~6hw}?n% z0?3=SzBHVzj^3_LF5h7G^cW0F_2KzCOcI1R)@M@maKPgE`(VuZTCS`k*1wDXOJ7LQ zd9YmY$pW0)z_GLDds*23)zROff`Vrf11#y~8R0^HhDq@iii*1Mhc@;ad zpQrEx5|C?}lB zU#I6ja44c$I-21-?hjJ1Lix4FmD~FFMZH4SHnqMqf`cfIucAXOc1q`z^5JYbHVvRs zIEQmoWg9xNY@1KzS3r6|$l?*d*I&z^#>~QuNEsntp%L#h#=xsRU|%w;k^weGj0ld) zh0tt~m=!r)i?usQCOC==AVuY6B;@ss?Pj6x5TVB;A~r3R=ZkD-f5CoC0+Y>N>eE6` zVM}(Jc4^0K-``rO>pn!o#8K=iE5%$+pbp2VHo!8;fCcYQ(D2Eu4kMwjef^omv)$iO1Qr zO0`sUAG~(ck5iff---M5DrdJc7$2*W%b00RvlLSl;Qz4CLi-epjy3M77y?5e8KE7R zSf<$?t4OXCVLE%o^ImH4~t|AU~$&?DfTu_V#U?ch~>L^e1n3^ zb}a4h1tM?9IWgo`3z0H7)Jwc z(!G^7L}Rk~24h1Sv};`~7~x)xyoaChg$gZFe~c&oq%yqcYt6v-OhkkjkJ?CRfpW+O z>gWO})n?1fzT3P>6z= zT53E%&OMl?m$(fh*WiJkkiS!EUzvJheS_}Gr?<pks2vhpR=R?fOU z(-FtPvs%k}F+W6s5uyUPHDk?AR#G zRvi@cMp*Uo{6hLnPJk~8#`3l3n5;E4#%rPS1`sl{!`JIbz~{!8;ZYE?R_9P`zT7=brGEq!3@02T zj0fTH8sAxt32Np$BYh1N+*wmHj%NB@q0o4x5`)5+K^J$^zxHOx$LaKL;g~Jx2lHGP zW{6c`c_P6N+js-&Q5oqkS5Xzpq-(>P> zT{aF%pRnL_HcXi@<;BA49rAvrj2L4vq6SzG9D8B~VifDesxG_5D`Q%{d~lGlnnGWk zQvXv2Ki&u`yVg#Awa^y<*7P9;5rYh`w5K^LDA!?sDA%*CYEys%L}mUjb$Ny@C;m{E zQgjY$qTVw&m6$iW+C!SP=8EjviYE<;b*9(Wh)}g_CaUbxeD%)zOy+AH>em@^TPIkxudLgW?{& zU zZhIe!(;mc~64qSAdVnKoK8yt#;DZNhYP=M^5&ePY760YAT{ONN=JJBwXw!Fe7cj-l znjY6-)_8s8ySJ$6FJm(3-Y#K01rFF~<`Ka}V?LsrSYncnVU>Y~rAf$$rB7un?U><@ zpl5G^B=_tRdcxS&QQbM53M$*>PN45IMu+C%68HW?06ariF8;zq;J%nad{E2z#qjyn{ zb8&e?k3p)nC-pHawL6zUcbh2mTzs}XwUAbG>sSOb3qD>;x6UTeVnlDd`ui`b)yZHh@UJ!2Q3jlpV^z(dhJYIUK5lU?ph<3b}rk;(X ziFj76Dm%=RH_Ac7y)*`}j%+g1lU^EjHa^R?jWe;YTfDLhCuX%;=}N;{dB#M+s9~ffj3yWgPsOP zl^y44WE5rRm+ADdm6(z5rEXD5H#9k)yoKI=F;%=A!hq`+4nK)9DK~~4YMfbG1zltz38NvL(gU|a(_?V;=UBTnjUH2fRz%L~q$4s+xcno7{?Um6w z0MLFw5|THx4)mn%*F;H6F-1|)c6_`nFz9(cFvyO}hRcF0o(l}>pbre{h^sTMt~fkG zQ}J1XP&JOpVPYrTghAamAnm?9oO^tdR?}a zHgtf43FD8!S$u2>46G1B$#j~jS`8%~5i!j1Jz>dAt1OcU}c+kRqEWyv5I#1u+r^3K){v|#T zuxAT@qlQzgs|mE{)CgfAQgdkMsZlmab%%49jh;}^*8zG=MXLi?UH>D1HE147eaccH z9qifg*q)BEu&7kxIykbjsXmI1MrGU6U1xyGDIDp!U}x~a*zgPv+GOX!JpdM?@zUTw zRe`K|o`+S4FQYQ`_dJi(?qG_I*#cYqd-iDOk@_Zp^IH~*Je5FqelCc9iN|*`NvFah zgYNq24D$wD^P|stfBu28rIT|tWh*96u}QzeA01T?GlNGvQ~0t=lM7;)i&lD7&@ce0E9$5Qm1pZLf)*!4Hmpk;k_-@r&=!;+n$${+pL7AAuI% z3JU`Y`3D{!al=<)cH+}{f?BHGfUkG*_Ovqy6LrI%A|(Dm2auu z-}DniM+0xSVork@2as`yhiBXF-S`tfnE!!aaBJgEBpUby7dIY2qJm#=dZQPKL;Qkc z_zc5PF0@=QFW%)E3yrEHU(0*D7&P_G&Tb4E+&eH(a5vO9=Y}zGsETdD4P_iGSAtmD zaqpdwAj%|&F$jwHPGGi@%AX1Ufqz>y{F(5b{9EcU^)q0!x7A_VXQI9A+2A$X`W=<7 z2PsslldfS5{VG49Zk+YDPje;fwh!ODZN#E8wEQ*I@P=khwNwup#i{ub=FrM4VXzs8 zjt1-rJ@z`NJGAk2dkLEWP@YFq0 z8nl}4hXNth*#|x|!SqK%r!kj*)D@#Y;ps_Eu6xHH2)xzd_OIilI+EI^yY4Dop_2}r z4_{pPfH(3V;`)?l3rO}-d0RGG-)Cy+XFA=sAbK^9{C&)CD&PwSNqoW3<$UNdoY(n~ z_tHmgA$=y2CZ+4svq!Pap+ba+C!~A;{VBY7s4EJPK;U0y9NZ) zFdOh>Jm%uXm~}jJWXK(qO2Tif!0$~)_I!2Hv88yLNZ$rDG3$AZcW4n`4bZuyfPZ%~ z`gpayhyzB~A{@!xTv|U$Mva!wh%uiAYbD2Q2A)pyyN3kw~r>3vv2E?Eh4*kE052f#wML!^(^}=b@4iW zxG5#KZE*>I>*Nql^(yZVU&BL_cKZ*VYOsN1)sHx@L7lLVAOdN^(=-Sh%%#E;Xy> zb#Kzef8mr;7?DqpkLr4ROd{DLrpV~2J*STYx z%3yoJKIJy9(r(($Z~6}7FX0vqMV8QGQKE+r*|?pj5u9}8{@3QOr6XTUHD8+%FI6yT zJ3l4MYsLPfc@Y{2*;vLugM03m8^7Zr6Q$;?`(I`S|Gp>~`W^2z>q5A}{B&)WQ-i*| z)axd_^-BT?HQ@IAqVrgL;L}Q*N`uBv2(!ArHPVf@;C;wH;DFv_>Wn-K>DqgqC-X|L zYw5`UkFGZXh@$NOz-RWDS*`^yJOjM&08zmcRulovFkM)M1q`ZJ-)?)~WmeKO2Qh_R zGwsfx0JTgzuvSy4L`T6RP1HB9N>kEj9Pb0U-1&c=S?%rj{{MfGVUA~>dG6lHc!bW~pP-eKy0IzFFL%Qn{=9_F7^rHD5NmfjeU(YhTOFfz4UR z3W1VA{D>k!kJqc!<;SWDv46aV`2(w|)9}s|xD7>uF|Y`aGjoZw&Dp_5h6e!}eQ+Ho zau7Qxy~&O<(PVSIjm%m`HtC!uXuCy@3|ds97)9PhK3-ND_AIAqN*7`w$>H>8T)W{O z+bP4A+@MTsxD1$_+?<4C4mg`po@*hO3|JUoSHKe$q)XJP_kvQq z$=y3cljr2#J6&zC+A@$V6iJX2nkFP#01}-hd=1SYL>9o>gEoi|P%v6dECdCZpp2|R zi-~=BVOaHqrM%Ed=|^v{xDj5h!wsF%$;9VmLxDiz7^SE7nqbJuRYGuc7(>`*(5<%u z$eRHDxt{hl7&f}Zj@ZnS1m8^a2BHO(>aU++|w9|N%K zz4NYHKt(RldFx!qCDQdf&=%Jj((5!<3!FAWVi{1ExBT}^8~J8wb`2ci!JW%qlMDfV$Lls2--!79M6=tOz%Rk);8c{nS1_a;eZse2Ozl_VEV zUdDF5@g^Axn0vsO+`-bZ`;KpJ`fH2{xXjIWp!b~3k@x6R?E(~FFaKPkVy4&MT;)n3}ERw@$F0KHQDsOka_A6by*4#j*s z?dan^s3}UR;l?b^R|NzS0B_}lC`8derfFaYZ$-&S5)h8 zkQfu%yxD{;mV|;4q6}J~FB2pAjy?$sN;EP45?vqDT9 zV$cg8Lgb}y$bbl}v+n3tW|IDwZ0Y*7`nnrrO9zb7Pq*wCHWQ0kPe%TL`_Jr|d;U4| zrx#`(eQD<7%VzFfFtcvn%zAO=K4Ipr!AtSx!5r(|Z=43n^el@)r;$$&EMK&iF91eXx zht2uxaeszn(#KD+Ij-|LIX;fSWYLWpe zB?ub?lii*SBUMiTpr2^MIkX-vesbIU+X zU#ZZN2jM2W4(d3! z;#}zH$Ob!Sov_x&982_6bgYj<*$2f4N2*?zi#umfOm ze!#DU-<@1;Ii*GqbHM37#IedSdEhq>T4j(KBZ2stOHqeXRPSMis0pe;Yey^YV~^r| zq#PB-+0Y1-XGDAiEPME7AnZ$Z4+kDG7`0Wysjbhq=8>q^sD$Y%ONCOGAiv*_rHP7H zG%h#_JSaIdk8rQm{K=7hczp1`k0mY&EGhYF9=WuLin2auX`&@8&F?Lid?wUf<;Xj1 z&0UVX#FBD>l2Wg;G-aOlwYe-Q7HV#C2+dg20!ou5^93pidy1tm#%nJ=#**1W&3%qc zWogR(TFQ|unJ&~od^H*cO6Q383WP-vdQeFc3A{>0Mvt(Xkfu2hp00#r>|kiH6xM`* z*4$T(zN0b?iOMu+kJ0`jHP_^Cy`A{!_R&GvK*G~F%{76-9P(-) zN&Xt<9@+pM^Yso?^$CWIJ9>Ess&0do6>f+OZHHA1*(C^Z1suH|IkFmb9FtotnUo2uu$(juB)|M%BSj1Ia&4KQfpf{u zugLy}Xi|&2FW_z_b~OkPbIE64k&kGmTq^Ba`ta0!dneYl_3PbdC3oA8 zzSG|!0H6#!2C1*xdD)GnXU(R>?nf1KkFgPsp7W#JkHi*<*^FhDHVa~yJ0D=Q6?F?twvUx7sJJyke%{)F-f6%j90!CGduZyyK~ZpPui5wDua%j)?i z`R13oa>N4?|0-cQog?c$kL3Hoq8!)Qd5=Dd+x3K36MzrO&f1 z|J}NIHc34!f9Gr0%Xn1iufuK5UIS*0}#5R_F~(?vV3){aj@PcE&QryVP` zqf0w(*N#`TW4m_r_oFG7X~*#h1}m-kSvy|Tj!_5=E3J7!JI>XPa}XR>TJw^2T%jGE z+HsVb-v3BDj@ORswflDwAXZwlqYFJ!r==(Yoe1b0tJ;^JL zWHyT+Bf%CHuq$3+ltmS+Eebw;h-aN05P}MS{2?<(xGA1d;z6A#BTGYnMg|RhY3Nb> zJOE9^M(Z$KD|!+b|{JwU8!O_LH>$K5uuG)uhFjCW^dWrkT} zR)(cK)b#=c{NLQ8_I{hM2gU z#=1~LYkA_&*uxQgAx4dv@Dwnf_Rtm;q5Lzp!t(-dU6py5hz599T3-&gNj=+ciUY1REpKWC9;o%eTl^ znMf}mSs7wjd&I;e1X1f1ZCpF`{o1azRUI|8a@+j=9y{zhqOl;JnCb8LZqR#SakVQ? zK4`Ggu#UzRTxTO6?g=I@s#OW5syI_gS??B*}LxU0A2IJs26Wc6dvaFP<)m2sJc!?{c z?GafL7HlksWyVXZP=(scBc{j%F2oSIHpCFdSHzi|Ts)Ux5<*Z5GSuK<$Vc8fZn=rC z=iV`K;Cd2Fyb~g_cT9mn{~bG+R3@fXE6G;&o9^Tf$i3e%iLKoMhP@k@a0=6^HCT18 zze2b1|6h^Y{yVtZB=1k~hk)@-No0kosuHbJg=ku9O;XGX%r7a%O^=jjID^10JJy># z;}7+Q?m}O&-h}O*KB-|DJgQo6DljCiU2mdkCLHQbA3F6r7`EZO!&r)tQO#1Rxy&SG zpw)N_TbNk&fe8!PFtIJXFt#M@9aBlzdnW&@LMO2$ys&qP`E8WqUHrapQbJ0?a21BD zu=kO~sc+7aT9h_K+zJK-5P<3za`B@^nC4-op*+Qjhq1B*i-{Nyg2`I30_d!az3NR< zDcTA_xDGG7(LeJ}*}hB_FntT0hw24NYkFqv5^>f+Ru^^xkRg$xd_F_HD$ zLgo)Xaz)r{jO$#rD7Lfcz1nY=(?X#kJ$__Wd*quOQof0lE9)pFgteSTY$A3B;Ge9J zRM>q-cQ)gj0b=3^(?H;%P2bwpmAKr5h*#ZRF_j3eQ(_bD-0@}*rYRR)+S`Uwj9BeChK+=gef#5qghn9aV zIzZs9NHr0WrjX1Pw#?U_g25H$HpMnRs6P!RB?UCn|FlQdQE#C1B*^PBk1!2B?A-;i zyY}{SQ*{K|>&Z6Qvyp4}|7xdrNysaUj~QWdj@5?u&)$RHL+)d`ySfJVzGd>VTjhlv zyoX^Av6nWChbLieN|g5yEN|!~MBZ&muX3vAIFivqB31V>G6Bj4m{mgzbQSHU%!t3_ z7ywzX`$!AnRPSLDp?d4KMF2Gwf00PewtIhyzf|~JjxtC~rn~Ds+(OQHy>+lu^d6>3 zuj226qSomTzR=7>rNu_khBQEnY6WlmWOrifWa|veDGLvFj zW-isvvZ+wt1j*V6lU3+I&%rLzA%%r)jY(JYp^5fE8J2$!dngnefRI{FFBt6tz1zpX z5h3IBYCvO)GE{7z;TR&e|GRLY>v**{wkftTpi${=xnCG+5tr?$z7KC8EV#I5EEhJ# zHcGB@nLqA%rak71_;Z5aq)B~hop0)=Q7?vc4+r)?zvG*jg&t$Rhqhi0u#QtewIYR?sFi@u>? zfJaqAE#ZYd!CXE|W0+E(c0L!&rk~g@3MT)?7W7Fov{lX6oLL3|3>X7rWH^RbO^l!F zuLh`rYLIGXf|(Ge1JjY|#B^r5FriFWrW@0p>B015dZ~}7VQRQq(4CT~Lww%{(Uf2^ zIKnYM?dY}eLImE(cursI`#uWW44kmq7AZui>SUi~8`R z0RQ(oyT;Wjo$ztNJWdn^zi}aIwO7!^)nc^SG97_PVQ}wOVlY;Q&{X$ms$1@pzI5`B zx1MW{`7+@oMor&Z=UwE*#~_d_1|b3*ri&q2Vuw_*V}{sihS)h<>@rgfog#LfE_Snu z-IK&Hn;4!VMobcWPZs+;D)xO$?3X6?pDIS?h|zX&NU|7{DGr?|4x1(pe_V`>5EFWf zmOkP*G*3Tqe1CC5q?j~7oH$TS9wep&sFTCgM;}qsdZ~|_)#>4?wWFG`SheZY0!|f- zs+z z!zRHz1f%2zR&VzRs0G9A(tnsZmSrM*qsRK&^VQ)mF#ptPcj%b19><+c>>8XRjR7Oc zdJ}hiZ#}7JOt@2V^Z6(9>03GmcK|xbRQ!fJl+L^VH-fb!vc-fk?xztg&6v#4ga#D1 z^mp7XYEc&#Ubkgth4EE)Ob9Bf=#LfXsqSn8gRLuIKf+wj(B9i2MRx5Wjf{I2IZMw@Ba$&q$rmTy zL-?5_NY_@@?(lo5HL^4`f{9#V?!&b4+ZfZu39daCCy0r6Y3#-7trwFUp9<7pe2Qc+ z7boJ$#8UG;Y@(18toE_bvH%$p$o&I$k zxE+mk$WenOIFI-W)xCH;C=YT(Mc5;Ep?`6mL5l%NcB;^?LQu)WNeb2_u5)-8=`u`8 zD1?uryUoqr-#Kemit8Q^v}k6JEz%^kdtUb@WX!@pC_Lo^{;k zeoW1MRY~2s&u=@z6!Go1zPb=pEO)tgYP#6p>prDKiHRGL)Lh4HL{hKX6#AQ=5-KKc z^1Z(aH&s=kuDz5;{lX9YfGwlAMduvs4qhhHu!F{?y*fcJ9?}7T z;@5Cle_9MSG^6y0-T}V`lX-Zhq6AV zZxw@dIS&$;9}`>K3w7QD5r2Q)|303#frJXn;^OwNJXO=x;2J;%-&qL;MVqLIyu~yk zWcJHzFZoe9hOuc6E$B~rl7_MQ8~Q=lZ!yVd945q_fl5+`(TfT`V4yM6g>J~;Dc89` z5v=M{E*fj|DH;OvVnhp{9}c?Jp*wW_=cYXdxW|olhBk3u`Wb{^+US4F31vZzotB+n z`E3toYWDfjE(j@>%@Bcsea6YXQ;M?ld%x}QcK-!Wzot(i`}IBL=+kED9x!2>c!S{A z#Onlu7z_(W`rT=O{q5DX$K*_=AJ+*X59+1F(f(v%G(X8X821q4o2SWoDQEsCBfTDAOm34*1o5Tyj=AB2$PR%ZYW6)Oa|79s#J<>Fm38Pe+P;<|@8Q;zF| zzXQs0glT(sMy_Q_P*ndj0!&++$DwO)9|+CleSP6Ru|+>GP}wEk=L^3VTlm87kZ2fq zaH`;~<~&xhO(%@@3->N1`KqG>0elZ!Ao19xrLc7ntVA#1K_bo zU$>Lw+sn>@(df>Q0~msC6Rctr$hrhDL}k@_8V7vYFJ$e_av#$LhR6f>^6PZtqMS&k zRcz_*v;h}@19GTNnevcRN)qp~IQQ`HC*F~L;Njl#kvwi~FhXrzfM{(^&FeJQTG^w~{DV3JXK401z2tt6Zko zql)1hw$E<3d$zhxiqzOZJQ(5$AYHHJW>1;~Q>^_W><)Hm?WVO6GGbeNO+tD#JMUD2 z*@$`Fgxj)r|0Mbej2t$6o=!PMKeb
    3EmbZ1_u4=$8lv-P;yf!;J|H;uuC$6YTP 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 E4;)bTFaQ7m literal 0 HcmV?d00001 diff --git a/Microsoft GW-BASIC v202/SIEVE.BAS b/Microsoft GW-BASIC v202/SIEVE.BAS new file mode 100644 index 0000000..e5439bb --- /dev/null +++ b/Microsoft GW-BASIC v202/SIEVE.BAS @@ -0,0 +1,22 @@ +1 SIZE% = 8190 +2 DIM FLAGS%(8191) +3 PRINT "10 iterations" +4 FOR X% = 1 TO 10 +5 COUNT% = 0 +6 FOR I% = 0 TO SIZE% +7 FLAGS%(I%) = 1 +8 NEXT I% +9 FOR I% = 0 TO SIZE% +10 IF FLAGS%(I%) = 0 THEN 18 +11 PRIME% = I% + I% + 3 +12 K% = I% + PRIME% +13 IF K% > SIZE% THEN 17 +14 FLAGS%(K%) = 0 +15 K% = K% + PRIME% +16 GOTO 13 +17 COUNT% = COUNT% + 1 +18 NEXT I% +19 NEXT X% +20 PRINT COUNT%," PRIMES" +21 SYSTEM + diff --git a/Microsoft GW-BASIC v202/TTT.BAS b/Microsoft GW-BASIC v202/TTT.BAS new file mode 100644 index 0000000..7f7808d --- /dev/null +++ b/Microsoft GW-BASIC v202/TTT.BAS @@ -0,0 +1,119 @@ +1 rem Tic Tac Toe solving app that learns what WOPR learned: you can't win +2 rem Only three starting positions are examined. Others are just reflections of these +3 rem b% -- The board +4 rem al% -- Alpha, for pruning +5 rem be% -- Beta, for pruning +6 rem l% -- Top-level loop iteration +7 rem wi% -- The winning piece (0 none, 1 X, 2, O ) +8 rem re% -- Resulting score of 4000/minmax board position. 5 draw, 6 X win, 4 Y win +9 rem sx% -- Stack array for "recursion" X can be P, V, A, or B for those variables. +10 rem v% -- Value of a board position +11 rem st% -- Stack Pointer. Even for alpha/beta pruning Minimize plys, Odd for Maximize +12 rem p% -- Current position where a new piece is played +14 rem rw% -- Row in the Winner function (2000) +15 rem cw% -- Column in the Winner function (2000) +18 rem mc% -- Move count total for debugging. Should be a multiple of 6493 +19 rem Note: Can't use real recursion with GOSUB because stack is limited to roughly 5 deep +20 rem BASIC doesn't support goto/gosub using arrays for target line numbers +21 print "date: "; date$ +30 dim b%(9) +32 dim sp%(10) +34 dim sv%(10) +36 dim sa%(10) +37 dim sb%(10) +38 mc% = 0 +39 print "start time: "; time$ +40 for l% = 1 to 10 +41 mc% = 0 +42 al% = 2 +43 be% = 9 +44 b%(0) = 1 +45 gosub 4000 +58 al% = 2 +59 be% = 9 +60 b%(0) = 0 +61 b%(1) = 1 +62 gosub 4000 +68 al% = 2 +69 be% = 9 +70 b%(1) = 0 +71 b%(4) = 1 +72 gosub 4000 +73 b%(4) = 0 +74 rem print "mc: "; mc%; " l is "; l% +80 next l% +85 print elap$ ; " for "; l% - 1; " iterations" +86 print "end time: "; time$ +87 print "final move count "; mc% +90 system +100 end + +2000 wi% = b%( 0 ) +2010 if 0 = wi% goto 2100 +2020 if wi% = b%( 1 ) and wi% = b%( 2 ) then return +2030 if wi% = b%( 3 ) and wi% = b%( 6 ) then return +2100 wi% = b%( 3 ) +2110 if 0 = wi% goto 2200 +2120 if wi% = b%( 4 ) and wi% = b%( 5 ) then return +2200 wi% = b%( 6 ) +2210 if 0 = wi% goto 2300 +2220 if wi% = b%( 7 ) and wi% = b%( 8 ) then return +2300 wi% = b%( 1 ) +2310 if 0 = wi% goto 2400 +2320 if wi% = b%( 4 ) and wi% = b%( 7 ) then return +2400 wi% = b%( 2 ) +2410 if 0 = wi% goto 2500 +2420 if wi% = b%( 5 ) and wi% = b%( 8 ) then return +2500 wi% = b%( 4 ) +2510 if 0 = wi% then return +2520 if wi% = b%( 0 ) and wi% = b%( 8 ) then return +2530 if wi% = b%( 2 ) and wi% = b%( 6 ) then return +2540 wi% = 0 +2550 return + +4000 rem minmax function to find score of a board position +4010 rem recursion is simulated with gotos +4030 st% = 0 +4040 v% = 0 +4060 re% = 0 +4100 mc% = mc% + 1 +4102 rem gosub 3000 +4104 if st% < 4 then goto 4150 +4105 gosub 2000 +4106 if 0 = wi% then goto 4140 +4110 if wi% = 1 then re% = 6: goto 4280 +4115 re% = 4 +4116 goto 4280 +4140 if st% = 8 then re% = 5: goto 4280 +4150 if st% and 1 then v% = 2 else v% = 9 +4160 p% = 0 +4180 if 0 <> b%(p%) then goto 4500 +4200 if st% and 1 then b%(p%) = 1 else b%(p%) = 2 +4210 sp%(st%) = p% +4230 sv%(st%) = v% +4245 sa%(st%) = al% +4246 sb%(st%) = be% +4260 st% = st% + 1 +4270 goto 4100 +4280 st% = st% - 1 +4290 p% = sp%(st%) +4310 v% = sv%(st%) +4325 al% = sa%(st%) +4326 be% = sb%(st%) +4328 b%(p%) = 0 +4330 if st% and 1 then goto 4340 +4331 if re% = 4 then goto 4530 +4332 if re% < v% then v% = re% +4334 if v% < be% then be% = v% +4336 if be% <= al% then goto 4520 +4338 goto 4500 +4340 if re% = 6 then goto 4530 +4341 if re% > v% then v% = re% +4342 if v% > al% then al% = v% +4344 if al% >= be% then goto 4520 +4500 p% = p% + 1 +4505 if p% < 9 then goto 4180 +4520 re% = v% +4530 if st% = 0 then return +4540 goto 4280 + diff --git a/Microsoft GW-BASIC v202/m.bat b/Microsoft GW-BASIC v202/m.bat new file mode 100644 index 0000000..fee8d8a --- /dev/null +++ b/Microsoft GW-BASIC v202/m.bat @@ -0,0 +1 @@ +ntvdm -c -p gwbasic %1.bas