Path: utzoo!utgpu!watmath!iuvax!bsu-cs!ibmbin From: w8sdz@WSMR-SIMTEL20.ARMY.MIL (Keith Petersen) Newsgroups: comp.binaries.ibm.pc Subject: v02i046: swap, invoke big subprocess w/o running out of memory Summary: swap.arc, invoke big subprocess w/o running out of memory Message-ID: <6598@bsu-cs.bsu.edu> Date: 7 Apr 89 03:00:36 GMT Sender: ibmbin@bsu-cs.bsu.edu Followup-To: comp.binaries.ibm.pc.d Lines: 434 Approved: dhesi@bsu-cs.bsu.edu X-Submissions-to: ibmpc-binaries@bsu-cs.bsu.edu X-Questions-to: ibmpc-binaries-request@bsu-cs.bsu.edu Checksum: 3561009828 (Verify with "brik -cv") Posting-number: Volume 02, Issue 046 Originally-from: DDJ via Michael Bass Submitted-by: w8sdz@WSMR-SIMTEL20.ARMY.MIL (Keith Petersen) Archive-name: swap/swap.uue Here is a program called SWAP.COM. This was described in Dr. Dobb's Journal (April 89). It will swap main memory to EMS (expanded) memory or to disk. The function it fills is this: When you shell to DOS from a large program or editor, you end up not having enough memory to run another application, like a compiler. SWAP will swap main memory to EMS or disk then execute the desired program -- now with nearly all of main memory available to the new program! Hope you find this useful! Michael Bass mbass@uoneuro.uoregon.edu [ Includes assembly source. A neat idea. Minor bug: Doesn't work properly if the MS-DOS switchar is not a slash. Major bug: If invoked more than once recursively and if asked to swap to disk rather than EMS, it uses the same filename to swap memory data to. Each swap therefore destroys data from the previous one. Checksums obtained with the 4.3BSD "sum" or System V "sum -r" command. checksum size (bytes) file (between BEGIN--cut and END--cut lines) 17054 24123 swap.uue checksum size (bytes) file 1304 17489 swap.arc -- R.D. ] swap part01/01 BEGIN--cut here--cut here begin 644 swap.arc M&@A214%$+DU%`"4E)24E20,``'@2J;-ZM=\$```,4ZX$@>)BR),F#10DI((F MS1P0<.2\.2,G3!L08=BP>7/G89XW=4#0>0-B#IHR&D&`I*/2#(B/=>2`,!/& MSALY:>B4`5&&3,Z;&-V0`9%PS)LV<-*PV1D&HD2*%D').BI4Q1AV]H;@3"C,6 M=%"&<&4!DGB-@>":8&OLM&-"/?X89'AYB32B&?UM-!5@Q`DFU!PZ1*=``DW4 MV$1<`D&Q0T(),)&$$TNP.=";9Q:!11$R"#&GG5``:B1""BDP(PC+/;3C3%UR M%%N8.8+`QE8[O0$''6F\X0:99AZZA:68:CI'%^(=)>906T`J5`N,70?:<:." ML(4/9AB7GUI=F)F`$!6-$25P[`GU'7.57III?FQ`Y)M%K\HQ!W2%)G`HJ,<^ MY%L999[9PA`)#&&I7J[YY-H8.@VU$AQ`(E;JIOV5`6T"+1"1`!$.K3&3<2`, MH0,711(1!!7L/52'B4-MQ5L989CKDF*,.3:46I&Y!6<+1B1@Q$TM/G3H:4:Y M@:D;=?#H'&UIN-3D5J*%=2D(SI%[$YP)P/$&RHJ2M.@#&&RRE!@<;8>31$[1PBJ`J&>ME MUYA>8VO)').T?1;P'"$/M?:B1#QQ675(T0'VF6*;FB.KRZHEVASK7:NLJX-W M1O31#RVMY4YC[YV`"+4N=6L995L+0MV755ZI3!_:\9V4)"GW'1HJ`8DN2V9( M=-&49R:0MMOB^E@NM!H`&@A35T%0+D%330`E)24E,C8``'@2)Y]7C7)Y```, M.T!,N1($"H@6(%",20%BS!LX>>2D.8.&#H@8.7#@`.$DC4,03<*L`1'F0 M)>>825.&SHDB#'#)QLSIU.OAN'3)U.=I@67?I.@C=(Y831DW M"8Q//TG'JIHZ;>`HKX[[B^4T%NE41UYN;*=``FKD-YZ`)OG$WAD)D"%&`B;X M-@=PPK%0&@NO%1<0&66L5"!_;\B!W87:.=C>>[&I1D(+#_I$7ATF^75@&V_8 M$2$>Y\5DQE(6/>@A",)9%`899-AT(0@QD6BBA1@:V%N."8S!(WIGN`=??`$5 MV=A[9YS%78)PG&9=B?[A`>"0]^6WWVTE5J9F@#L1*.5[9(BFP%0M0"+#5&>E MM99W;L$E%U(.P<'223DR919:GL$!1QD&!M3GGPHX!&("2YWAFQMT)'""IF6< MP-U@<^`WW!A]DP(>>.Q+(UYZ406[+X(-\!P%]M&'E\,6V:$=R3P@[V=?FI1DU=#<0)2)4[T5G@@*'XN8BTG M[ASCCD,NK>1,BLPRI9=W3NR>B]E14QIAB.$>4F0]!<(=:%''\EMQ+6T9L";I M[AN.Z0_SBO4A35ODGN?2Y:X=G-$;Z\;^$5K8I/`"H<4Q96) M;?WS!L(]L1QA^.;]].QUKMV^\/OF6K!^R^W&LM>27D"@0Y?T%<8,:\L7R"Y4 M!]V)03J5*U9`9">1VMUN+$LY">_>$RE%&6II0W.:L1`SL320@6HB&(,.N'`L M%Y`A#'00`0OJ%9#!C"$-:=!#PG(6/*L\A(,=6PGV1JB]]4&/#(T3X,Z<(;\O>DR8TA(:-Q(!M"PT5P*0.,8OC"Z^04$ M.$XAB4W"L*\XV20N8_".&,3G0.DH,HQLV\L:V^B\+SBF0%3[`0M$\((QB.!@ M;"1D8]XB*!,-TGF&U-,M3?(%.E@F5-=BC;:XI1\4P"`%O-KE24YY$X>`ZBT- MA(H";%>2-4QL#!.ZU@QLL"V>).28O.)6&Z5C!FQ6TD2?1*`8VV8;0&Y/#FWX M@NV^4S39D,!>GP16_LK@2Q/-4UWM3*-_W*`C)):.8Z=[CY&0A,?458:@:=") M&R1'FC8\CY9Q9"CI?`2DAL2RE,SDU1U_XU!EFI*6%;UH@1@IK>AQ9Z-F^!$_ M04!--UBSG!.J(4-)VB2<^@N;,6`IA`SZ@Y<:E*,SK>E-L2G2G2ZII]C\J1AD M(%27PBX@*VD)K##82;GH[(M+O!Y3SA4&IR3.A([LG`E)8I&\^,:K%@&K$1UE M$XNEP2DG<69=UN*3E'WQ"R2KCVF0=-"`9&Y:;N!<%\$:V#BUI4!R6..6KI7" MO>'U''F'-9BH+F6+8GVFJL3IUA9-XB`BJ`E3?/D(,\Z MP":`]L)*3!V%OL6"49VAI(X,Y@,";LY5#G,@JUG#@(?3%C8ITZ*+HR!YDYJ4 M83#GA*L7P7AE=HY4WB>6'EW*)>]2!^FHI=W!"PCYKD M((\2%%L*A4E9W:0Y'E64[AIEHD!UD%)\BJ\"YEM?4M:(.^`12I4>@CATR2%4 M'*-#32PB,,_296$#VH^!14M:"(='/(K\0NYH.P:+XA.0`[J)@5?<.F6:6,(" M8V1]%O?('4NGPX;Z,,.6-N*]C':(53HQITCXEET]LC.;.3%-0[P2Y%HD!C80 M80)L0H>]'2C!F'ID'<0@(#MMT40,5F8E]POF*[;@S6^>2HXM;!&$A.P@@7S( M&)V3QI`MJD>3HHYJT4?B)CIO9V]XPTA\RR6S\_-X;&@WG*E*'DJH]"PP[ MAS)0(65IK07;C:A$ABLAE<-[L==(GRHR&^)0AT*\26+U-VP=,?<\,R`##&*` M-,,&.JSLR^X=)$*@,W`G9=CB-G=PI*.YGH>Y]K+)\<0';B2KX7\)`.T7[E"B M-3S%7LQAU+=3-0:+/475SL-TO,XC@QK4H`6;IC"OW/"&\P2*.G>X";_=<`)D M0V34=7*!R)]5ICF@H40>K["&+PSK4`5$Y"X@[L8[CFA%:_>+/M$WO^7@;S+8 MR%*.KOFBOPK&QD:VVN.YT@QJ\,5N$VFF*;L-3RQB]'.#*MUH6#>5=GX2?)G( MKT$U.@O$T-Q'EO4FQ]:ZCKC>N;K`]:]&WX(,NL`"I7#L[(9)**C4OJ,>Q;2C M8&<>$YG2U"3Q5&0,8S32K^U%IG/;R7FW2-2M,_61I5&P5@]5TVG]YH>FRB:/ MVC6Z3%*3D\#IZTBQ"7/JZLN3'#I1B^)[>,[#*AUL`2-HZ(*]O"1D*D]1M36! MGR=!E3R^U_[V89FBL*19SF5*<]G-CIY* MBE<<,(OBMZ/>/'1S4B5C2/D6E&,LXQD!B4B@PSF@BR1_BWUN_+ZDV#DLT$AF M%TF7U!S])'M7!YEA"M.YQU'0ER*%&,DT3DZT4?QDWE8QW>P0GM]L3K?I3B\ MHB2"=1-;%8&UHQ4`@GU5XAB[PBMT0('4X2-P)77XXH13HB,7E6$/[M8J4UXK<\7WOY6B/MAASMF/XE4EO4!;`=U^:6")HYRN) M]8-$9WDEJ MI@:LEHP/T7*RQGD(P8S..'C956A2PFX)D(7U-AR\,FAQXC`<)WMH@&UE@#3A MU(P@,"K>T8]B=0(B*$H'@FZ;MQC&F!1T(8V]HCG5>'-%=WDE0H51&"$\&$Y( M422(HDF<1`:R:!74)1=TP!UO6&SG$7A&QRM>$H$.M18G476+=R4-UW2F(WF@ MPHI4AY)'EP`&7Z+<2Q?L!D(T3%1]FE8T5:0 M4F4%5#YHISJ@@V!?>7]$!`=CZ0:4)I`$R2J0=X<'5BI(X3D'(D<#J70QY71L M*2SWLS1FF8I.$94"J13G07;<$8X*%QSG(3$A-"9NP&IB^19"TS3Z&"E>A3]L M)"?$`R(G<3PE(HH":27G$0.01V>[`R!HD'?.M$Q\Y!&@Z98Z MT(N-D6CZP9B=@65+@(4)&%Z\XAW3$F'V(QPW)AZ"89>^^80KR5Z0@W>P(HES MOR"EI!2$;9\GC)Y%_[P09+408C89ZG.084:!,Z86#25@72HA\)YD<6J3I&:*_ MU#DEJJ2D61]6MRPL6B4*`J-BZ9:NJ`8URF3T%4(R*B41)A[\^%UBB:4'0HQM MMA@I\P5_=5S$!2!(D2ID5B>TY(26HF#CP4#R`RLZ0'%G`3Q]!2H3.WAR\',' M$70@-A2*"BHM@">/`F#O!UP*!&$*DGST*0,9BB##`5PP M@"GZ6B9$"P(P8`-'JP9)NS91*[1.VY!0FP-36[7_`P,Y@+7CH;4:T[68MC8: M,YH':Z6'M3G6&%0Y1,+`VOAT4M/!!>41B95TA<^"97@1Y'9"PX,MV%!-8KF&LFM*H0.FNWALJ!F.00?2`6#S1+=.RK_?51_UM24!0<%3MEL% M9FKP&!WB28DZ,(N8&!#1"'J=Z%3`P<"A2'*?NQ>ARZL&HH]38;C7"+2)&[4) ML;UXX5%\05IR\0)O@+G&Z"]6:P.=JR#/0Y^'N7M0YP90R&&SE2[]-`?S.!QW M.TELH+?`8R]YP*X7EU^@!V`4-X%T$,7[(3"#RXV%ZX^'NT[ZLK0[?&KQV!!3 MC!>.LAG/`UT&R!1$#)9**P.=JV0Y&[IT9GRS55MFL(+,%Q!HS(`U0<5YC''D M=A.Z909C99_&1J927!.*K*<+Y8(2>,F9')_`"GE>HB5A2\&]]`87W&F5 MO,&8W,'OB&JBZ+>%?*H%LL;'V,9B99(921T:DQ`:O#2T.E=_K+EH"P.#+&&[ M?,@[BA"/&3+2H6L6D+(I06+II<+H!/*&& M`;MDY\0<=F),T3I^ZKKO;%:*,KV.[!S9M4<6LR3KEQ6&HGC=87?W61E],0,T MX'1"V20'6\_G\WO;;!T@O'A:F[M;P!PK$`.ZUX,4'#/K MF,9&5F+3W!!2IL7"3+%N4:RJ!5JZ@SX*"3$%_+IFA7.#HF#*$BF<*B+-8M'#'-/-1]JR"[+,.^ M/!71/*QE.:R[C">>I7C;>(R'/6FG`K)8W!G;8OP?"64Z=QF!:/Y6MRP>Z;MV]3R)MR.$M%R MT#K[S)#G40."RBOD?9MEZ"7AK:*:1Y7Q.5[[/)D>F!3SYBCK_=B1IU8G,5H3 M:"+:+-(6_<"XDT'NS)<.N%9E>#ARS<>F+=X@4`,;8]ZY`J(=M=Z4VMY'Z[#3 M/!6N;,'.M(Q2UK8E^7X4.[^SW-;[\=;Q2,,*T.&P[$R4ABJJPI(C^P8E"Q<% MWA=Y"LSA9M4G@=7.I-4"^;1E"WEE"Z+';!7WG`#IC`9>EF02AD0UV':V!+@H M&W90F4Q2IJE<.;HLCE6@.]3X%1XX4D`R;)J@,E#,4=!$Q^*#C:HQ3MDT3BJC M><+-1,_?'9@FY,[PC5:@K-\.!=`DA$4/E,6/I49 MBM]VSN!5#`(F0"3V@1^>RHAE8`=Z0191K;)_:MRM&Y]W^MSN.U[536Q7.J"<=BRE?;D#XM=UM0&_4,\RE"1YET22G5[$,]%\Z8P,W MP.+4XZLZ0D"A6YYK\VY'BV[LSNA._6G#XSS&`S6M&1@EH1U162)C:^]=[I6/ M+7YB<^X($=/UZD MPH@I8T'C:FU:*^_]`UR2N+K'9O+^,P8>;QDAKUDX-/(B<1/R;O+BWKB@PO+N M.SC]HR62N,E;:/*$PQXN?'IILB9`Z<&X["0^ZC537V>W7,?G M#B5:?U]NH` M7/B%R7#M#_KL'8D^K2!WAK6@9KM32Q=938IFUJ6J6TNAG9V@)[P0;2@2.SPMZ1 MZ-/XIF_#?R"G5S5#L!-;0;*V=J50)&SZ9OVH34+N1A+S?9/B6I"V[_5W?23; M:I>TVGG9.J>PJJB%(:[[(92;D;OU.8`?.H4+=EW:NK!0=/TKR?]W2D([_G06 M(:X%Z;[_J:;9.J=UROU:FENV5>HE`./@.7 M#WDS(#+Q+Y'9FA#*;/_N/<`"#/N-JM0)&S9NOO> M5Z:D49$**Z50A/%W2D([_G06(:X%Z>`S\)"0-P,W$?\2F;!K*B62;OO;SF6H MV.W\A(K[001/,`4LSF6HB/&,1P-C`*`1^6M,,;F)U;\XK)$7'HFW7_?'H3UN MB5_9F35;12IUN";4LGIT%B_&C#WEP@`9Y$*G4 MB:.R+O[J,WCX5#]+GNB"V-"0EYWSCZ.>2SUCPFK96;"['_4-[S4.HCUNN?O> MIZ.NT19X$CA%>E\03:BPISM+0RB.PIK%5XP*1NSZ12B-C10J0+(J$&"+$JO* MH1]-8F"6^+"`WQ+>43838C5=`0)6P!21JB\QX`+:HA`,,0045A05<1$9L1$= M\1$AL0;"5C83\EJ'%A)\D55;`1,R@;TWD1,[`0QC/>84HL,C,O MPC/>P3<`0VHE`.U0;FI/YT[3JU M.(MXDE9!J#--T@;F%`8R,5UT[2"(TP;8Q$@YA,7JI0`B&KIMP%1$I6PJ[%`B M&B11I0`B&KJDDDKVT@0OH`4>%;.;(:)!$E4*(**A^UB$1U3X1`H0T&T,]PA&C\&$AI\MDB`,S,O M$AI\AO.PTP;8=)=JL8MVL2SV(KDG.2I8R:08H$4=3-&3IH?K9\:=&EF"\2*28P2F:. MQ:IA\'RQ.F=KG#H)8L"`4?5EV016L4Y\DX"'C[97FSY%8Q8MB19D+2(5DP!% MF[!CW;:(D4)%7+U009"IXQ/%CQ1?%8QL`4F&Q9&');*16&;@&S*EY=1Q`\(, MPC8@YN290Z<,;#BOX=#Y#(*S9P5BRIR1J$-P&)1UVI3I.$<'0=0L3CH_749P MFS=V$O1D\=/,G#)T8M,)\U!G;/`@*(.@>4<\>8APWDBL/51!@C%AV+!)@-OA MR3E?C-$&&:/1M-08:)3QD$JZI5'0'-Q]%YYZ)Y2!AX(G##1@@=79AY]^VH61 MQQ<)ZD>7>;C-9QH<>%]^>V'H()K?$'&&P#:4=,<#AXU MDE%SU"%':7>4AD880H)`Q!-3@#"#"S"H)`=38=`GV(?[F2$1&0&^T49/"BXE MIAMD@'`"06?"H6`/&4H$@E%VI(&0&\H9]&6.VJ'AHAL]OJ'D=VR8H>:2I:U& M4QFHM:G<=0']":*-="1V558GCH0I"$NR`:51X7%*DAB&RNB6I3HF^)"F;QWI M1I)+3B5&2F'4:J>%`BKF&<]^`4>-)RV%&GUMD`;"MNT=YH9`MJ6T MKHTI-;E>&9"RFH!$:62:;[-G1N1&P6GDEX8>71;)78X.15P0=^"-(7"TTWZ1 MZE(<^Y1J;-)2"S!W<-I+A@MP3LQF>N06NU\;=;QZ1\%HC&5;L'F81Q"+)$^K MDI!;AEPM"":<-Z%/@=EW778H15ARM>KV!/+-="`(@KCN+6AG0_7N7&FY(*KF MQA=U?"='F6VH;-X9;PR4(ZBKL:TRJ'2P]K5,+8F=AW78:0=A2R/R!,?5!6LM MQGM;QQWLBQ+EU_4:&Y?\A9ART':UT'9B3AL(,=BPA,!C%!7&V90MM21MP9;V M^'!N2(ZGG@7UN9L"%A9=12ID_Y#L5YJ$V^CL("+;`P2Z@;",C MP8\<7,0N4(%'>#\0C!H,](81GFU'#Y'!4KPGF)H@9",B<$+0F\S#D=&L((N^64\0NEO`A+!QC M&6.(QAIRYP0O.(%YZEBDV+PH=FR08P+4L!RX98J0! M)`?RT$I^6;I0,,9TI16UJ/?IE]'`;]:E'GM(2EF3TI*`N"F9)AWO:'`AC3Z#=EIB(C6#^),04V48FLNQY[LNB MZ\K42J8YK04A;,T#F:@TU[:C'3&&Y9F1^X05!$I,;D9P?,`MB>`%8SBL=.\3 MXU.2A@6['?"H_M6>%C\8/.W3L/-$1*(RF*@W^AN4MJSM.=;6T"!7[NDZ)5?*$@*Y#:.:A/E] M/VWIM+]`-"+Q5=&PYLX,:+V4>>/ZVR#X5+L?F%N#%/O8'B+IC6=0ZVZ%,@S+ M6?>^2>AL^_@5BE.JTL)90[//83O<6IK7B\9[6(57F^'@:3:4%7!N"8YD362" M$YH6F#^4MR8-14E#FS9[Q06:H8$.SC"T%8!RMJW\M-D9])V:(P,$-2LEN9[= MGFQWGC/8+KWQI.Z":QT?%7&--KG:[YT$J["AZR"N7V)#@&M-X--U'<&Y:E-< ME^3`2.IEP_A"4V8`A2*,(1<[TJPM.,3J41@'J()9#6C\18;_O;V M]ZTSOZ49@Y*6Q$P\Z9WT^SS![7._^]Z?(-VA'[U3@*Z=-%37#-<-C\I[I4RK MQTW[N-<][^ET?:AW\UPG?F=P:8RV?@JR:<,S$I\66?#' M??/W??8!8:/D.Q-6:W`"?4*T'!2Q&BEG)BNG)H;R,@43`HHF=1Q4:ZLC+K7" M?W&#=?\76=8G@%"W$?.4'V178*NF>9$E@]N4'9C&'8OQ9'!@(&4W85@=!>IT6-XNS()M%$]Q5?P/8?"T7@FVR??+7>Q:Q@6SB<[U"?G<0+/@E0Z8$ M)U^@7%L``VL45^;16+81'%L2:E+A`G:H:&.H8)5TAF:2AADA!UL@`VMT$B`P M$G;H`B1!8&GP,"`@`J;D66T@9`U7:%BO<1,_%Q..VB8R8Q:3OH?UIW/,E#BF,S9/AG M71S&%=BS`C%0`][UA^#%$CK($KP(!::!&I=V8S0@&*BX$?B79#YS3S41'N5U M3F?02W"`!J+V:K%F:[!6:S00!B"0:].F-+;D$'1%;,860A$X"A*7)! M$5CV*:$R*LQD*JYA)K:R2V$@$::(*?S(*>176U4#!R@3*SXT*7)($LJ(BT"A M)/K3$_!VCC4@`^XU$ASH$,E!*M]R374`CDV$HB6$MV&7CD9C.C'84TS9&3`:#!@@2&H=4TS*:7%+7!`?K+D M`LJ%,>7H@XR6AV4X>SE-QQ&&*1E&I0%'!A&U-9 M1#'01#OT5T]`-*"S%B#0!'X#`K%G$`BA$$+0$`\AE)TT&[41B54AF7$'!S'P M59$7E](!`RQP`EI02Z+R.9/",_'X$$PEE5*H4ZX'>[+7)MY3>V,"`L]X`BD! M!;IW6,)I(71`?C\X=$X)--]Q!ABI$;2%EP.SDO>!3$M$G?H#CN)HC_?10M<) MD8:S%-T6E)+5D7`02AJ(A:NX-N\9:"=!@O91$N/)'7K):Y@!NY)0I*8P%VG0.: M@-W984X1&5S3F[_H2L.I*6RY%`_:/>;II!-JFAVU&1%4D7&83IPB!X?11:DOY9+>3C[L4>F2!9TT0!$Y`!"ZP?8?%I8KUA!"A'ESC81G]R6$B"*K)PG?`;! M5#YKL*9$M$MRM`I*LLYGLNDA,IHY-U;1JVK9)F0D8BL#)R"``H28:Z=JD(:# M&:=8L'9#0$*+G;:X7%(1M[?AD8B9`$HK%$P[$D[;;5%+EF@+8^S$)I!HGT36 MN*=$E4LA:#%3G-O7L1\;LKC7$FE3*FT#*0U3&Q=;M/2#&LR)/-!H)UAZ6-GU MFB_*:%>I7*IC&U\ZAP'[G6+0=?]T(\0U-0"#L&2@HTL!`A%1*BEQIK]5IE&R MLEIKM)JR%&"K'H%G*TE;0RZ@EH`Z$#OJ;0GZ$BJAN'^GMH^;@9&K,I-Y./PY M.%=[O"67B$FB'+QF+5%2O3L(O"P+M8>Y`RK$.-0[MOIQO"W[$KTZ/0'L+TM" M'E%A.&X9HUV0O7]Z(#&;:RO;JPS,E4@A9CZ+4TP!$+` M:]RF:G%7:(>W6=`)C?<[+=4RLHGE?$UR`E%RPS)<+1;<$UC&0?JS3'20O'$# MHCE[/@CDO"K*@:(GQ89#?D(WN#5Q=.UXQP"3QW"@:#F\'7K+H[;KH^E4P?H" MN.MY.'!92=)1=.?8E".QLI[[.4\2)68WM4_'.PG54F3Q!0VW%1#[>E.`O[I& MB,DY+TOVRL"'=P;ANK3L%K8<$SO(VZ M(!QZIEL2+N/2QRJR/88\$E)4&SI@O`5QL?/A1)3QQZ#3`C>0`U&!`BC$!FF3 M!D*2`B11*PJ5HEXK0>"\-@KE>&HF45-E455U(T.49P/-4%48I0-]0N+IPN81H0,M2=?I6K4V-S]"$P>W'`_]4) M'FD;.E9=1.,9UHLV32?\?%DTU:0B29EGV!@QA&]SA+67@$V=,>BS,:!K,%?;D.X9M1[BWB`:!EZ=3L_(N4U@ MC75`&"V\UTL9R7&%?HFWDI7*&OE5(^FYE0&ZF6B]$2W,UMLH6-UXGKT4CM-" MCOMTW=D]HO81=8R6J+*<9^-=!K^!RULL`DP`S:@&.J)SV"5S6#$.1GVY:)9L M.`).HW(A%7WZ6,/D3J:7!W572;2@;-_DU,2:"'Y3$+H/33F06)+P;=76MF4W$U5T($XTEH&VUPA&5^)GZ&!T09T)(!'C41+W[7S>,% M`E+N;1*!=?J1HCT'Y^1'KCQM`S=0K-BS3Y^B(HP.S*F63L_:;TX-<$II?B`` M`^FX%,*('EP3._++@T-67(V&'OGB(T-,/U]`ZLN10\%2L7>2,+#>P#A0:T"Z M'F&@'&$W=B"#@YT3+`FF=@S&DD(X@3Q!8>;Q(QC]?)3:Y@F09IF"=<%#D8'^ MRPV!$3F-N<(#>W=:>-A9![4K8)6F3 MZ.=X:TZ)NEQ#[>YQ[0(#Y]+^4:L^<4>XZ@_WOE"^;=OC+ZU<&OE"TYE32%I9\2YJ[1ZZ5QZ3O/+CVO]1]O:\>U[]D3-U??0UDOOU5=\B\?YPM* MYVF/>B?X9N,%\0F#I>ZA7P*;9Q0S!N6MXBZ/\!#[OGW?)7:O+UQN$7W_]\WQ MD;(V`^HY:IQ-Y(G/]B<_9*L>KXC:IHN49U]>!G\_%M.BQ7]USEMG*'7G&JS* M*^0N*7Y3]8KU^;6.^#8BYL@F)*%_&%7I^+;6Z&2W?SVD^U"=^014%`'?-M(^ MYP#R9P1]KJ^=@O/?,_5Y6KXG@>,MR_ M3ZQ/]!+:P')J8U!UBOV?*R:]I&OXE M,+K_]_>7IW#O\S=R'/&;<,V1G-QF?_9QU3I9UXGY%LV.=&3JOU[7VMAX:'G`@*O3#XT)3D&[/ M'VF#U;)HUUUA',BA',PQ'=)8PG<=N-=Y_D7N+M5K-*072OMQ_JGR]Z8G-4*C MO!'JW-3_OB'#_?N4_V/6_YF2_SH@8$>"=.\]P/I=8A2=7/GJ(F*015`=ZMUO M.6("53FYTS-@=/6V0.ZX:\+EB3`D)L:/Z?^FGD.TW@E<&SX2>*0/1;%7![/W MR\+EB3`4,B]7%*Z;P+7A(X%'?N>O^1/#^25&T4NTU&69XBFQJE!UBOV?*?G_ M]SJ@ZU3)XT)SW5:=-EB]U_:=3EC,R5L2644NR5!5E)/?,9J_%)J_3[U6,&7? MP#`P:VM1K+U6,*5QW3.8UX-=<''MC7'3:P4#7*]AU6G#%UUAU6G#%X`_B\Q! M=L+!=%S3:P4#7*_!^_J^%+?FX+O6:P53]I0N;$W];^HYB\RAK2G4:P4#^GG( MVWM*XW]5!!#+:[Z&?5>W_6)2%(?5:P4#^GG(V[%Y?\-::QQ*7BVX_07I]D2J MUK:V%L7J6]>M_GI=:V_KH>$!!Z)"/SPN-`7I]OQAU^SMI9R\)5C,R5L2644N MR5!5PN-9:]XZOW0,+<`++'Y'*3="K]=Y_D7N+M5K-*072OMQ_JGR_SWBW"/] M!E(C-,H;H8W`'-&S1C,SBC,S:9/Z0DXKNHND/3R?A+ MR0"T-+;BG*ZJ,4I.,S:#,SIC/HR\_K<-^A?\OJ04C:ZCF9YLQ!XB=@(FZT`S M[')0[!3;8/PV9-<9ZN$!-IY-ETMJE]%8]HMER9RN%O26RA9-2M@GX+]TP9O. M'6I!;R/!H>0U1:$EA-)5@14&8ZB+'9V,OY3,S,Y'2O,I)JJF^?W<2P+Q(S/! MX[=-PQ<\9-`SC@TQQ*7E:N2V*B:IJ_-6$PV4(H71588><#<]92Z5L3!I/-X[=M1H#[ MOARFO&*B:IK?S[TD$(=JK,`2UZ722?A+R7A(AK39'#,@DJ6&RDHZ6Y$E)JJF M^5L3!I.-AV1(F\TQ`S1PCC&``WRQ27&M=6*B:IJ_-6$PV7A(AK39'#-PJUHY M8,+!=)$E)JJF^5L3!I/-S,[GK2\7LRB;(.\]P+N+`K0QL\#M_ MVZ#OWR"\C.\]P/KM2C`:ZN$!-EQAC,BX27'MC7'3C*G;B]C3P-5H']>8UP/A MX;(.XO_WC2-^X7A(AK39'#-`O#NA2ZM3!VQ0*IV$OP-,PN_KMB5?]98S!JJ`^S'`4JXA9>XM6#0&D* MGJXTRC(D'3-`O"B^C>2Y`'-&V:#-FISMR^3/V"" ML7?[,M%SQ1/.3V%C/J9H-FBC-G?+)KN#Y^;5_;R\G52=N_-AY7Z<3EQC-G?+ M)OL*AUP,F'$S7QC-LQ-6/YQP&!S*W3_A-VKQ\P3H- MDO1F'C4`0@Z^:QP&!S+7U/]FC^\+)AA[MR+(&N2#I24X."OTG\BA',RA`\G) M;?;']AY!AG$Y!LUA-GZH$3XS-V9SMVQ2@H,S!LWAGJ!\'/&;<,V!/T,YC.9X3'MK/.0>F)Y\3YJ'*:]>RJN-_.P$]9I;C.>F_H.M_VZ#? M_H_W_C62T/*?_YM#+=C7.1J;_Y]W_IZ3*?E?N2K^OB%S=AK+^D0OH?='T<3S M!L/Q(2D>R7(J,W#1,\;,F>G ML?D_9I;C.9F2_V$$**=W-N8W`$= M;::#.C[!B8_7.K.?<:A1%#`4,B]G_$I>.IZ(.KMO'^Z?YG!%__MO8YZ(.@:; M_\SL?"G8.K.?XK:?DSM-`SC@TRG8.BEN^VZ:IW2N^_98C)@%V-ZA1%##$CF)B_)C^;_98.IZ(.@;+;-3/J$7KP[O; MKOXK,GXWR%TW'I,M%6$L!.02T!91M#XL!AGT/&IM*PBX%Y)DE.EG*P++V$7K MPU=QR\5I]+X9F@>1$"!0FO+8/=]CJ5\,+,)"]191M#Y\%<=-_19!C-31%PE` M`L8Q&I^4%C:0WH01.I*A'B@``RD`,G$3JA=M.I]3O2"*/N03,F-6,ENQK*"% M&EO!)I?+)MI1,A:A`1H(4U=!4"Y#3TT`)24E)7T*``!X$D&?O_V0#@``#.E< M')A")`'LU" MC#(C8,X!0";<_EG7`5>(&GD3>?`B@)$!,`)T:1I@N$1>%Z`R`'`A2@.`82X2 MF1@5P$4H%@!&.6GL00IK*ZRU"'!P8-?J8A8^!<`%8,EE1QX0!=#GR(+P1:,# M[`/-UBW<"8L\\*7E(Z\'W(PKY_TPC-&R0,/^#7`TK'D`"'58Y*+*;U$V="P$ M>`#N*("OJK^J1LD%`,@\4EE\P,@PX`%``'E![.``(P'PD@`G M.GAL!IQPZ_PA(B#Z_$/',F-MAH@%:$16Z7IE:0'`.F:("!^:!K@0W1H"M&D` M%P*80(P/-`!@@B)E!&""#B'\64<#@0X*@Z'!!;#.#2*ZP(B@I1X:P"AI"*`8 MJ8DXT(:R%KPA`"U1).8!JM[1`D5>H$4W'1"862[*@"+.)L MN]$*`!R5(B& MKQN(J`@UN6`512P$2".,(L*0\,`)!,!#`1"(%'!$%N*P,TP44NBR2@&Y,/`3 M`+M@10L0>6F11&#`![3\L%T63:^C@8A%L.02 M"'*4$089:;AQQHI&@6T&C3=Z0+-FZ=CQ3[D>9$@=M[PQD1%U)@"Z M&@#0=4OX+B$)@X,,.C*H10`Z2P/0X>.W"Q"`(8!^-*@S8AT&2`"&T0NC*:Y\B!S;]!?,5",`O5`%DM.,WC]1KFX"""4#DH%2`8?8,%`11IX$N M,`5R+0&P2P``6D":A1A&"X9V'@/FO%A'`BB1)U-`V"DC9PYI-R#:U)E#!X28 M,B!FN(`!XHT<$&BD<08:[)UV0P*YC-#5%/L,8X(C!K``P`S_\&."/07\4P<- MZZ0`U!!OU,'&4FZ\49\9:2CEUA--3`%%$4/T`$**()2Q61IRE-:&C72<5@>" M*'0%P3Z^1%/`(M_D@@``\YA"QP*+[",#,+G\\X\\KJSS2B(^?!(`(P:$%H`"N:C0E2#ZF`"(#WYJ4<<)ZW#P88@C@E#BB2DN-<45 M04!QPJM0N'C:#[ANL*`^C`03Q`YR!O#D`(XZ$LP@P\3TQC^+7$%`(A;\4@"Y M[SH0#$G!F*"(!7XB8L$P!0AJ0:'P$A/P(A8P"J\Q!0SCPJ#\FFM"*/SN$$P= M"+@0RFH6T\&AAP`\&ZVR)H)`!HY1T<'&J'+4`9\9.;:Q8A--!.$$$2X,P>)I MO>`:9#K(Y,-(,NCX0$`.B-;!$0'=(BT`'4&L8\.'+-9\<\XLQC=??6D<5<;) M85"U,@APR!'5U_B)#`6L\8$JZFD%+)`+0NG,D<\B%\#;2TCE#.`T'?(L@BC> M0NP0#1U%H#.-WXC2$<\Z,@!5A1M/P9'RUR`T,800(-P1(!OXK?K&&BF>`8(9 M_H%0[=IOF`'"''>$`8?E55UEAMPQ=&5!/HX<(0"8)YDPB`\2`E"'#.N<`-04 ML<]>!GYDO%'&J\L"&,9Z("15XXTYNK&C&SU>)8O<)G15#3[(*1<`$'5TD8N? M0022CTUS3$%+#8H$HQTCPD21)KH``:,=(\)$D2:ZP0^FKR&F@0%<%!KE0`$@'!]^P10X2)DGD8%>!11:"%5@1+9<"`-/4+9!6 M9\0Z#!69E)D3DLY'E3%L+`&1$\0P;.!(!` M9T`Z?0!PG:G1+,2OJ[Z0%:;HT)A8<[2`H.-TKW`Z4,"-H)-4W+"E>[!DS!FR M#D?%U*O=M#X)6[8]C`R3)AC3ID%FFH&P`PT`@(,) M#:#-E%!)M<(T`UA@3`'T6F"O(A8,0S`B%B`I;@!(`G"4!PD9F$L!M$#1F"/; MN/"/![<4X((C'A@2`"/+9-R8CT`6(.1@=62P"Y+HF&'/@0<&4"6V2&IY&2D? M#(/.-/6@,X`]Z/#0X\M$