Date: Tue, 1 Dec 92 10:43:38 CST From: csaba AT vuse DOT vanderbilt DOT edu (Csaba A. Biegl) To: djgpp AT sun DOT soe DOT clarkson DOT edu Subject: faster symbol loading in DEBUG32 The following patch significantly speeds up the loading of the symbol table in DEBUG32. (A ~600KB program with ~4000 symbols loads under two seconds.) The patch is relative to the 1.09 GO32 sources. Changed files: makefile, syms.c, unassmbl.c. Both the changed files and the diffs ('diff -c3' format) are included. New files: sym32.c mksym32.c If there is a demand I could also post a copy of DEBUG32.EXE. Csaba Biegl csaba AT vuse DOT vanderbilt DOT edu --------------------------------------------------------------------- Searching ZIP: DBG32PAT.ZIP Length Method Size Ratio Date Time CRC-32 Attr Name ------ ------ ----- ----- ---- ---- ------ ---- ---- 2738 Implode 963 65% 11-30-92 09:52 071ba107 --w MAKEFILE 1114 Implode 428 62% 12-01-92 10:15 51e8a47b --w MAKEFILE.D3 719 Implode 461 36% 11-30-92 16:04 90ec19c0 --w MKSYM32.C 2938 Implode 1293 56% 11-30-92 10:05 99d19a81 --w SYM32.C 15092 Implode 4761 69% 11-30-92 17:10 76999a5f --w SYMS.C 9617 Implode 2752 72% 12-01-92 10:16 945e4f0c --w SYMS.CD3 27652 Implode 8524 70% 11-30-92 11:37 eb8c91e4 --w UNASSMBL.C 681 Implode 322 53% 12-01-92 10:16 5fa24f86 --w UNASSMBL.CD3 ------ ------ --- ------- 60551 19504 68% 8 ---------------------------------------------------------------------- begin 600 dbg32pat.zip M4$L#! H & (%.?AD'H1L'PP, +(* ( 34%+149)3$4- @$2(Q05 M-C=HB9K;/ 4&$A-$Q?:6]T>"1)IV+MVWLNV!.=6A4JU*=2J7ZM2C1)\TY:EVR: M\D4>SEFZ'.ORK5BU.I!W0KICQX(DB4*\3O'_1(L*K7KT:%&I/6,P/]6G4)DF M=5I$>!M]\MRG/JTJ=6C1+]-[*I7F=?\J@+VMG>-KEB#)'%?40 R#&CP,8TSJ MAYW;AFIJ^8 ]"##YHFKLBZKA^O>.HL$H!CJ,8O PBJG AT _52H$C2?"_^/?>N6 MKMRW;)2%\R0;EBW;MV.:TV7%UCW#G'Y;EVY:MG.<\[)VR^0OYF0:8VM.XX6+ MEBP;Y_19N6&>=]HQ^:GG#2=>Z:?; -UOEM-S[Z:94J-QSMW"Q:.+95NF.5W7#9.KR2WF*;K.YW88==3?R';20K9[-HQR)G2S);.< MXSE'VAT+-PV<5/#2?Y Z09Y].U/&MF*KRX(@UW7%(/C"/ M^E&>ZWBOQP"N8$Z24=YRT\*!;N_#L]J)F:M]OFW#K.FR^:O76';++1NW;AKB M=86>"1)MF>/-@KL6&U:N69!IA'>>=@6]Z\*%RS9/\[)7P2IL4@?H1X=,4;>[ M9+.LX,6T4%9+]8NB^P7F]LLYM7F00, #H_(VG AT 5O,>-;IMB\=,N<$\ZIKQAT MY!9DL>H,RRR\H_F/P1(F_ZXS-A'(\XOTG LB&.%%*R)6!Q7),>>1N+;M3&O, M=")X#0&C;,XIKAAT]A\SG=!JJ5-I/AHB#+G![[9KD AT M@LN4=Z M5THWLA.;%\_]S6I%?54:SF88%6DJ.H8K%3WV4YH;H]90BSHAWDZ')BTZ)7JH M.B7$K"-8P<2FFQ=.9NYXGR5+IWG.61Z#J8X/-3E:$(UAQDLT!/*RC2A>EV[& MR]1L=BJ+(M-PYT!/TP[2-G DP\3!0#).'! =FEA'."5JA7('-RXB&4,.4MO4 M,!P[Y4^324+)W7*4*4PFD %24,J9"HHFHQ2,ZMC?D'Z)R8/4ERBG>.EBC#/0 MMYEG+,TXSHYH<8N8+ #2X4)I6U&S5\BB07H29AGCO.&/34#DA^1F&H\[')?Q M>+9,@3?.LF= Y";+I MF_-Z)@SO17[J&Z:,\^+:@F DOT AT DOT TB;-5G>2%_/%;)XGCE!)'^+Y[6N$](=.Q9D M6;QE989]6Y<.=&])E^Q M\@YU^#/40_B?".^K8=FRT<^V6SD57;^);OO%26IR2C5(.GFA5MVSO&? M)4NG>R0S0$ ,\" ) 34M364TS,BY##0(!$B,4%38W:(F:VSP%!A(31,7V MEO='IG4[EFU=LF5!\IQ+EVS:MR[1^FRH8#HRV[1BJ%OPIIL7;AGJ;19D7;=S MTYYUH[Q!LGWK]BS(NV_EDITIP/OIHHRA//N0H]N&65_AL$:3,BT* M4L7T!MD3I-DW>-?V%F%.)&N1IYU&G5KT&?5J4*$BU9.<]W/LVB:!?)*GLS99J"+FJ8U8]Q*;=, M]49I0OZ.^9OXI?PI6<;0-G4*>J7W$.H[1C#X-.O=)9GOSI>/O70IACD&[SG' MTL6SKMDPYV3I,)_4X,Q]NBG AT 6U8,R2T7A5O;?I@[[HK"-PCMMCQ7KBA67 HH M-T AT 03@[R/UN6[E AT 4?POK9N3('MJ[Z%,C].# AQY:SKR5+SN-3,V5+DR\)6'* MQ,LB#(%?F[C7>,V:3?'>^SP=E5OXNHPXUESP7^))&(FG-0)02P,$"@ 8 MME!^&8&:T9D-!0 >@L < !364TS,BY##0(!$B,4%38W:(F:VSP%!A(3 M1,7VEO=?J AT 1)%6W:N2"$WVQ:MF5!3LW:=*9,ET-!JGS94,'V&MXJOO?0MW#S MRDU[%BU=D"B'I AT 09,V?.F"")*A'>9=F^J=YE68*421/DTK1RY](MZQ9D4#O/ M+_7M6+1EG%\N2*=(0<*A[4; MQEF'%1/M9N6^;<,U+GO3V>]AR9*5(W5%J_'])NQV$;QO[;E#J1K?;M]2\?=]%LQ3N?=Z&ZY8I3JM&WF!M]% MEH!^-2E5I$^K4J&KG699WD&E2CG>5+/N^$:7M5M&3 I#$B7RO6'BS0D31G!/F# ![^Y,X:_GAC$[ MS6";L"[J- B]FYU;E@[A&#"&W1/X[QC^17;2";YFFN YWFA0)D 7="Q5J56> M=XRFXZEB5]2GNI\#V:7$C6Z_(5*M5?>:#&WW#N]$=X.8#JM"='J'=8ANJ-AF=+_CA9B&/!Z[[[I1#[X=]=*.>FY'/86V M,TG0*[@?90H AT Z90K[9%4G^-5]$*ZX3P1ONV_3T*GGYFTS5Y<9 MN^>0;[HHHH?V,>D)@%'@SU)%X#3;-<6+,4LVU^8NBY<.W$_05'A_C.@]5R8+ M*Y?U9CEW;5HX71SW@*/!55U6SZ<_0?;8RE5TC?.Z%D=$7?5CW4&4'_MLZ<., MOF._<"ZX+W2C>E1Z<>91Q,\0U'4*PH>=S9A@%\J7S:P'WF%]TL<-]UY\@X(] MJHKX<95*/L>V[HS*T;:03E'M(>Z'TTJJCB&/#O,X)OTRI(]_3,?A5TTZ2),F M01SWGCVXM#J6L5K>*U=HJ640+_0FI? _\=XBO%FW1VH4V97VAI%//!W6'R*= MXIY\^:RYE#;F$H5VL@?98OE3_)<)NA-",2NY0FO=! MSAQ^.6J%$U=6DAE1)D!3D*.\L\]63V#2$,XHWE'8[9Q=F?.P,@PW00<%N)A[ MU./%/?@$ZV"V AT G)Y83^4X5-D#<#1R)%GH ?%9XP/*0^ &@[?0#53A_0A';Z (1V^@#2=N8T M2J /(.%2]@0!"ECUL'&AO31Z5W5;=\ZDGVX=GM)O"'+YQ((HHY@!XSHFDN,Q MD>MF-YSFW;)%060=J=?L*_EED*HGEK^F([]$7AGQ;=^2+>-,4X'P)W-2O&S< MNFG$. :WCI)*FT*ERA3DT:]#J3R4G547MT&>)4O7!;@>FP(B3J*^C+@D8W,G M$N/B?,T@'\U%[I\_4UPSD?H$7-=0=7":C4C^ M77?^S\GZ85[;NMS''T?P^)V]4;DY_O9[47YN=GJ,C&E.],PLRI?ST7ZH'X=? MO]9ENYKS^MZ8R_>Q&#YQ&B;[.JIY]1"* MD_^?",]U/DW17]OV,L[(?Q:[YZG7MWM=_]/<(]QY AT L_X$[Y_KUD>^VMEG\_Z M?QJ-O5QZCG!\7VL:C/Y5^\>^<'^Z1_'ANC9O@\'C*_=VXYW^^&?]>W-YKN.N MYWV#IHI/^0DG^S*^'HW'7POO7[Q_A'MK/LM5-AM$GFP#$WG0BM)-;/UQ+[0? M>=SIC'NMT(*1[_F._; M3QFT>F^[_5.Z'96P3([7&L=RFAQAN7)OE,/KY]5$.:*QA"O=)D?4 M]U7D"/3#XS3GZZSG5>*8')=\5Y,CUG!EDL.7%>FPY6F2'/%(]R1'S,MURMTJ M;ZU^UWX[,2FIVVE%3!P.3#Y(:.T/W]3$J%'?#LCG^("YR/GG%A5'V*_Z1UDC M7L>U%#8JS_9CU8ZG?!>$8- K*KZ.Q37$[:U'=/K-_4R;!*.BXOA]JV?GR-U: M;TZ$Y]2[XMU_NY=Y.[Y\O^QG(?ZR"W()I6$=! =R\S<@; M)Z.?E+H"^S)U,07Y-M< M:^=377F.,'F$SD]XGB.>\#;GILWA39O3ALWA#9O3NLWA=9O356OP56NT:7-X MT^9TO=P.O[Q/;0ZOVYQYEQS>031I#M<=;= T_S0XA>:PWU': [W':$YW'>2*^ $U3_H,<X?=II^I#BN;NJN MT6T:OUW+7:CQQ/+RSR<+PNTP\T''5YRT"]5\^2'A=H,&AM'>&.?]? MOLN-4KA"(D_S#5ZJBYAM#2_@[S1-Q<-A;JX/LI+-!87BEA:PO&%KG1TO08_A M%O^E>2E4EV;"\V)YR)S")?9U\7\KQ1=S34LA28&#=@=#!SV'-R'/=_>8_Y MVSOU9&_0TY@$(ZA!I0SZ;Z\[E!J(=_C%XSB\7BXM*,=K=KQ&%.(W_Y\/Q15D M8-0O(H/L#WHB _AC+G,;!U!' M+N72&BDG,T:HL#K"Y/_^;*&KQ"PKTSM)/@6!@D1&GGV>=RC&E6,*> MX-WWN=YL!WNP':S+<*BW?(>M,I(OU5%X\E12L&] 4>/DA AT _&N>EG^.]P"<:Q MUF"\AO 1Q^S6?B!>N*S[E5Q.SR/J9V 3IA--U "]:&;UKBV MW.=96"N@;ZVM]YU0J/A*V:&>_7Y)QYS)#\=3WR5,,?UAAVWS:Q*[P?B!A*JK MYQABKK]8"34U+(-^:U:" O)9C"H+5YV MZ_L2<4_+E3\3V&%PRNQ9Q69]NX?^16=1ACAO5(2+7O.NH[232N>%KM5JM MP,E.^$E6PR(&./4$B5;]J*S3^R*1N0]XP<,]'4&ZJLM;3!%F=.:P_*3#AL:>?*]8D-[>3O2BZ)H4ZL+T AT Q'GJ)2PX*QW**W]R\YV.K!9?A J3959(M/ M'IA=2;ARGKQ)L<=B)@'O@+:$[74$&D^0T#94>'!&Q;57L36&WHKFLFA M"-U[$6WNN(8FIO'R<+ML0,Y DOT Y AT 5_^ET>NF79&N62RO=US]OC% !*$I?]:_)6 MMRF#[3P;W7'=9W*'0QYRC NK@"%OR9=PD>&&Z##?X],_D;T) B[VN#=K//*= MN$(5A=\4JIT9C1OT0 =5SP.=0/E]. FI-AH1P>%+^77 AT U_"K>(+:V'#<&D,W MW.2%;F)S;)S:)CF4UL&FMK4.(_E:!YO2$SF\_;;",#FDX,':?,W!3%ZO AT S(Y MA-=!#4T.Z750J2:']#K806_8,3DD>\0M?"C[5!/&JS/_D"NHA27'QZ$\:DU3 M>%YN/G^SP)(A>.@PGP9A"1#M+G47M 7(5]&F+)(HS.*^ M11MLV!.C4\Z&HCR'S7BD['%DQCYF)1 AT B<\%X8*Z'Z-3B-J!1?@\#>MD]H$T; M#C,HM 9/(ZQ;XSABW!H'>9!O.)& --)7*$S'!9K0.JM325R2([A7V*O>R5R6 M3T7 AT J,O5I]4J$IRF=%.W0?LUT#B-!STBF>UT^<'XK,LI&HQ7>R.>C(#SE.%) M2YO\$'=D_*/10RPCJQU@?3C]NGKH%>%[/R%?.8%[-UB ?K9P5G=,;[RH8"@P MCBFPP!8"0_,4$DLMAFCLAQ13*20<#"@^4@" >XM4$]" ]ZFP@'9Q [3AU9[] M90K^JB+V^=DYTR;'+VW[@@6UVD>!2@/AK6U/%0R AT Y-K>D#\X7Z3%^\+T\)NC M AT C8[)Z\1A_4:=30":9B(QP AT 8%B3A]=T6K.N^+=DY,- 23*QCX$!PXZ\-6H3@ M7/!2^%(9J)@K1P1'C.Z5';$ I'ENC914)N""""A AT 1T40]E).&1SG%?:'_!%^ M AT Q%G80P0FH\K!($%W*7'9\LX67;]E AT 8$N-B AT D#!Y/O=M>>$&;T$PBNNIQO*O M#Q'_9[N/AW\6O)(]>8R0"L5J^%L33/L_;+S3>X'(E+Q4%T)-'!XDX%.2Z(RC M%LH47O!#(B1^EIFYU\MUZ&Y*"M>1PG<5H^TB3)58$C"1R5HU'"\"(-STXGDUZ#QNC:>HV8+ MH'&"L1)H,187//%X(^6&:HB!!CU5.C+V-#8Y%S=;O;\66;_O$W;8J PHPN-A M$QXC.USKO=;Z534DK7959&#B2M@?]U>>QVS3J8#SLI_HTUQ0&@;T^!P<#$,5 M>2'Z)2.(X5K"GL:QI5)+W AT Q3Z$ZC-!4%8DLVM;G=-25O4+&#<>P"I^BJAKT4 M AT Z&GX"P* I AT K5'0]ZBR*T;QLAS^_7+/5<=B,+Y?%;ARQ[!RQNFA!*P!'_;1, MHL%P-8+DCE7(B#4I1"4N AT D'"%C\# ES R14C+G->3V+),."6.VIXI<93D M+ 316CQ#B'U:=@7$>"<0&7U#SG2:TXG,FM-73E-2:3?XU6XTVJ$4Z^B3.#^$Q.O_G$DJ AT -3U3*I[_D--8.X8WCD5-!M$."9* SE248 M-EN+,8=H4](_&.?%DH$VK1T#3^+:V1#$'(5W2-R@!YZ8C(DGI/"- H&NAAT>4R.RN6)2H!#XS4JG5#M2 AT TTN8$\\#; M'V[7HG3[-?/< BXD)U*=KG$BWHNV/A,\A8;3'8 AT Y1C#=01YUN /1/.+JD6A5 MIU13%)*9"\*B%KVUT%DE/*7R*9/<8'*&)_!FKQK[N-$IMB^:/L)4JZ:/D4B- MI?(*?HW[#O\T%E=?B "!S?^-'@&#@*!8";XBB( M$$+JHAZK@ .+X!)+'!45*5<)]JFH('&=&EI6R#P=J\#D&"B%"-. 8JN.PR!T MWE"*%]47Q2 Q+PSN9.!&5QYA0D+W",2#*"E">QZ'A' H":/P-S34*4"-<24H M]K AT BE)6;H%V<6Y4;0$%M*,BQ)9IZZ2!U89LC\1;Z AT JI5# !#S$%9,*HW**3N M-?82FTVL(Z !<>0+G6D0XD>S!#K"$QPW.C2-#JTY\&D6ET0E)_Y M7( .^['QB1AJJP AT ST'7C8,A#-E^+/;P(G>FLZ+CV+ M-O5#A0!>C4"1"$S 8 A=,%\2,A>JW(YB0B $4$8]B1C?S:\"9S>$B*;Y'VQB M?D8^$- %P&"^V&\A\=7I!B?"P AT X;O976.P?3$':'Z4693J<_&1Q;B"^&9.U( M57:C4HAFB[-OJ8QU[4DQ\L7"M#4 AT CD)R-M.QZ13ID+%#AGDU:B9FPB5]..!H M"&\>M\ =PAOB..CQH)&YX8-Q;OH9_@?CQF?%1D=+/K9/5E;0J+Y?2.Q# \+BX(<%$VWYJU94'$@&4$L# M! H !@ & 12 AT 1D,3UZ4P H )$E ( 4UE-4RY#1#-A"GL'!AL&NPQ+ M PD'"PD+"0<6!P@&!08'!@4V!Q87"PH&" H+!085! 87!0H(!085!@HE!@@' M& H'"@@+!PL$)00E! H&! 44!0DT!P87"1HK_/S\^_O[# LL"RP+/ LL*ZP, M 2(C%!4V-VB)FML\!082(Q3E]I;WL6+%^GEY,:M[=D[,-5QYS6O$;<_'[^T1 M_I_\24ZTS*QHV>E_$CUZ3E'Q=#K]2-?D'>G.SOTY.=$FN=%RD"ZB7^ XR/,G MZ?DYV=_C5GP]WJPO\:=%Q?\'D^MHG'/]_B&Q+MMU5/,J8;$<7C^O)LMAC25< MZ59YPE8YJ>^KU&'73G)XG.9\G?6\2AR5(T7?5>5Q'$163GY6=,?I_T$/X07I M1CRO=8GW_(4%(8CR-"K/]F/1/!&>,^>\CKLP?M_JV3D_0OZ_CN7',GFW>]&X M[_!/8RD(P0_RY^WXN<'(]@WE#R;W4;]JH*_24K]K:/]W:VOA4? +"^5^0<@+ M"PM;[?:/59!;, WK*"C0NE#VSLK.CS$!;X8;6O)CQOKMQ*2D;J<5 M,7$X^+%BXLQ:U=H?OJF)4:.^'8_7Y.&=MD-+'@^'G;C__Y\;_LG-%7B$CF AT G MC4>OT%M8N%XAO?<:0K?@A_TGN3G9!3_D/^A"W-]@;>SG>5OT2^5:?_DYPMFO MS?U<";?U$ M+"V;S,$UYUKMQCF&V_U(E8CG75MH'H0$8,X(D1$C?Y*;Y1G9N\\G>(PRP0CQ MGF(58FIR8Q42JC"AV["! YIY+L]Y[@WI%-$JX1*"*C/+=?MICA>_'TJ=+M1' M^029L+,+0AYTLV$N3/WE?R>W!#5P"6O? MZKPO6"/*\JN^W_3T_$E.)K_/S AT 7A4:B#A3^$;Y."_B@%K%$'[,=OUW(7BC6U M*$CT AT QA?N;@A&8#%PNEQ"A/5W<-2Z8QEX8DB AT Q[G+HHQA!3F&-!S[XP6D]@ M?)8(03[']6E"X8Z!ZAU&2XJW7P>38^GS-6=XFHQZ8E:5BIW)>T%IW9;/K";!N/G.*7\(&]V M3C""LL2CLGK4(8=[8=R0ZNKQ%A3873'>//E7,#_(8I<-XA=:+.YZF8Z70;P: MNFIY/&S$8[+'3+;9IQI%>=!7E<_PLEQ1HC!?\S_:5&R05D>$;70\_RNL^:I# M%I AT T,3YWDZ+35/(@7/OZWO\0=%PT2&,KN"'Z0TP_S<]A2=X M#CQY"O3M.>!"@G,@DIKF' CLIG(.!4'7E7-0@ .]7=6*X(!%NA(.#9%^# =G MN();"3ML')>L$?0\ (W AT -8T -AI!;(2GPWN[CX6:F 1PI)8]?/^ISPKCXZ8I M0J]2 *GVF0(P2&>5 H%YP,,4<, MVE>L #SLY AT H@$;]7 ;I[#K41"T +-IG M"T KG4H.-<$+(,$BE,SC(Q/%("5[TEAL7G78;H9#D$/QGG>$^V3 AT X DOT R*+-R* M68G-RLB?9,: YBB/")&=FYF?/9E8$$C.)#L_1X- C$4^GW6)6-^7B+NVI/^G M#/IOKSM\B<0<*-?^H(=RRY![2-&",ZHABVKD6"8,G'**$[<$#AW%; M_&!D=.K)@[:A^K/,,&6R"9DY&=G(^'DL_!$)(IS8B).C$^82X(1 MW EN:U:N!G]ZIL ??'86_%?%"]I-R#_3BX'39&J%<3KW4P?"[D>2O+P\3$:# M<3".4T!_K=7.>:T4 AT F'?YZ7 M AT D#\>U>[RT"#??2T[A_;4?A7[DIKU\@]CM* M*>W6'[[G(/H["A$V::<0CE(CAD-N8>'Y6(<$FNE:*I+[WO(T7F!V8QKX AT EI' M?'NM3FAX$]5EO>^$PK56!Q/V/ MK]8*P 8]DXU\@P@&;'2-&?G9&CFP1 AT 8NJ M5[+DD(<*!<%GC M*3 M$;@$/8XC<5P!.L:72<_)STE/YTN."SU Q16>QJ4=X.)^B,0H!SJNX30N MWO"X08^MP$:?Y&?E0C*IP-UXW,U[$=MO*_6' ,1_0V]%TSELT!MV5 [>[,2D MJ#57\_3A'7&OU0K("FG#Q*%>$SL0KPK3MLQH%1*GX&R3+LL(/(N2MP_8\TMY$(D6X)D= R^C3?)(AN 9QA]>RBTIC MHL-4'J'K AT 638\/#:M1%$2-F J0: 9YJ0JU*DG%;!FIZP,U0J6.2;$5+\@ M)$/:ZBK+1P ]Q!XUIX)'.M(GJM# PU'!A-+#C8H[H ]"7#D?\'')?"#C6OD MI7LJ'"#CT AT 8P<4T#,'$Y;6"0CEMXH" ;C'!@RV;: H#!/P$R)H5F#UT&-[G MGQA(0N]C*/(TVQ(R%6QKKTPOC M*13"]Q/R5,S^N!OWNCY;.*U+3&!8B@-%;6'8 1KH0 AT 5 GDI"4Y5!-?9#$DZE M!7AMV\O\ E_E$AAEU3[AKG^]2G.^SN4_S3W"K7BN[_\2R5=\?A\K[M,FQR]M M^^(*N-OW TP#X:UM3[5\Z^75^[BW!^?[-#6_0#WT@,<1V=DY>8TXL->HHQ%/ M0U#9; !%;.'P^BX4N^Z;+OR10H7,E9Y AT 8BO[:)PS][>^5N)8^#27'9*!?$8$ MS'[6(RXK$J\*'PU 0_F)+F(IJ4J]!8>P=D XH4G6X$"QW*Q7X!_R1_J%.7.7 M(@%JOBD7!%2.2X_49C2S["XEOAW"%BX(G"[/)[\U+^";\L[ MCX>B;7A&>_+@UOLJR;,:_O8&T/X/F^_T7I AT R);EKW$*NB<,SB5&0DJ2@'+50 MK/""'Q(A\;/0M<5NL$-W4U+ CO1J5AE92ZC AT S0V?DZMSKNX1E^M4-3_N0K-3 MC5:&%I2V1H,'8[[LV_W'G;4OR&"XKP,J4$L# M! H !@ & +MP<&&P:[ M#$L#"0<+"0L)!Q8'" 8%!@<&!38'%A<+"@8("@L%!A4$!A<%"@@%!A4&"B4& M" <8"@<*" L'"P0E!"4$"@8$!10%"30'!A<)&BO\_/S[^_L,"RP++ L\"RPK MK P!(B,4%38W:(F:VSP%!A(C%.7VEO^-V.SFUGS?Z ML6(6%<>,550<*]8?[:5PVU6M++]P5/ GT:-/_C#$_O ^]^VZ\W].U AT _SVM;E M/OXX AT L?O[(W*S?&WWXOR<[/38V1,[_N>C MCO:7ROWQ?GG]I\UG^==A\M3WQER^C\7PB=,PV==1S:N'4)S\_T1XKO-IBO[: MMI=Q1OZSV#U/O;[=Z_J?YA[ASA-\QI_P_7O-\MA?*_M\UO_3:.SETG.$X_M: MTV#TK]H_]H7[TSV*#]>U>1L,'E^YMQOO],<_Z]^;RW,==SWO&S15?,I/.-F7 M\?5H//Y:>/_B_2/<6_-9KK+9(/)D&YC(@U:4;F+KCWNA_2(:GT1.>(2.6Q9U0Z? ME^LT.>QXUK7[&G&]0GJG9><$(Y-W77CKQH_?MWKZ;\ZU2#FYH08CEF/9.3\"8ZS*J>-+ M]4OY"N_M[L<@&0?DCE+_=5:_L%K/\2U!]JG/S9P^E>Y?->O9Z$./\N#\D,,[SEI^@CW'R0A_MIZ*WO'32885K[+ MAG&6WV7YQR[SYEM=_WZ<,F]'YI?W.L.0_!>D2]MJD!PYK5NKX2VG0RZNSDC' M0T?ZPW:TMSW ^*%A_!?C#S'>'(Q?VN[:%5[P7>+W:3.<^=Y+C;V.[AWW]GGM M_AOGA>MM5M?1RXK>I6=;#!:*?3SEN\#NR^1VY_C8O\;AC?CE7YC: M3>P-)=:FT(?L4OP&Q55]!7M)?MUIM;CBK (]SL\2];\6YUFM0C6'U[M+ZSW7 M]VD=?&]7RY&@3U[0F;XM1<\UZ/N96%_F2:;O2MVL=< M;MY;OFA3BK\T>&Q!Z,3:2^6G-(D4ZD_[(0CC)9?)SO]Q?/U_,'Z;^<$X:A/: MF.,:@>-'X#A'U?FOSFE4G?_J?+[S<^8'XX'/Z?V$]_A\3VE>*RZ;XME+$H_: MP[[-3S0>\K/&*WZJ\8 ?!_G>ISHO]^$-[B<8YWRP5WI/I$<;TD,VI(=L2 _9 MD!ZL(3VL07_H57J\2D_69A/].,>-?N9XT$\Y;O3C(B_ZJ<^#?G@=_2SQDB\Y MY.,#MY ';B$/W$(>N 4[< L[< L9C$LWPUM_'JS);#WD;#WD;#WD;#W8;#UL MMAXR&)<:VC?R)!MY$EXSD>$Y$QG>,Y'A01,67C2Q\*2)",8EWLZ#/&Z42]K' M.6[M,\>C?;5/?1[M8W7M&WF2A3R!4)=Z>%Z+NV%Q4KM?--<+4Z4;[[KA3K-1)WXQ7A? M,*X-C.-UC./D9X^K^8USP3BN?AM><"=$H=AGBZ=A<5*W.)$^Y7B AT KS2WQ0GS ME>_&G<3 '?X 71V>YCX+!TD&>9ZM=.+E\?G!N!,/?@W&I9I#NLKPK#O#C9]" M.ENEK_*L]Z-&2,/-8X%XN&VJSQ%-E>05-AQ:,]\L90W&=SS(CP!R]>(/].LD M\=";'A>A5^2)@#S-0)Z$T/Z#<8 AT Y/2%T4)PT*,X25ZP[I$*G%*N M>X4YI3 AT M<9V6=JWCI\NY2G1Z4IQ6L2Y^.]UO$HRK$TW?9FV..P*'+^4] I9/ M<$[-+UIR,#SB<;7W:*-2I7$QC]OG2O AT 0OT(G'#?@F>/A]"C'S>GA7K=@WA;, M?YSS?H!3O]>YK?/?>*G(KV%)=(.68R_AC&*X AT 0DJ-YT2MQX!/+?ZY%G\?J<2/@$\YSNM300PY'1[KY;&> MB)9T/9L2+%WNIMUF_G-JG&+V9E[X+GJAH8O4H0E>_()#=_JA$5AB="3(:W3, M+BEN4KHTA45$F4/YJC%[O%*^B(R<>WUE,\SEV^-E>BB?T"GOQF-TS.,U.A*I MTT1J^ "IN:%QK*YQK'F*!$+W5.B.:1RK:QQK5NB. &C/1'!D/F8/OTQ]G0V$?C ?Q%%>+DGO5#TH6<]8Y MCDG[[#]*[3'?<^OQJ_H2733](]S$UQKW28W2YN5G(]I>U&T^%C,K%\N4=-=) M!Y^ #L8W3IKC&J^#Y*?,HIK%;RZ>7TWF-B\%5?%6?/ZY#9Z$8\W"^=X)L;Q&!C',]@NP>0^UQMTKN5Z+37$N9;#<&=C&E++ KDS&>X8 M#'<&XJU'L4]_^[2<^UXZP"S6>#&.F9HT?$CA+<+"&2M0C&\8%<\0F"JAKQH7 M/I\0NPXQC9 AT 0PI!*<0+O6N7&/I).%^O;36"<357;W*Z/.O"\#3.2^/6M/FL@]P, M3S"N:I2KF7%TWJ 7C'18U)%A'19D,*ZBE:L9HK;Q!*)M>CTY3G)!Y\:YK!J/ MWYO+94X\)V67&.8QPOP1POH1UYVIQ4>8^?&,>K:!<2&=>44X.46>)A M"&U2"@GS73GY:*Q$9Y/C>F9LDF%O(8E684]7V<,VV4.9G,A>4+E,(! VA?A[ M>BI +:YK5XN6F$2[3TX2#G> (%@>:AEO(6+HC-&BG42.GX5N+R;U2LQS/!WG!(>K>>MQ5>:[8(AM',>.DY;5D$)"3^H4A M%* KR+$?]/(1IN#8'; VP:D27KD(ZDA45Y):\%3O! YF=CTV]Z8O>VMLLD$9 M AT FH3A'K= DZ9 TZ9 8VQ*7RL:Y3C%7G%..$[P3R]ZE_*20_%X M%YSK\ A5D.3E9+KQ7 M1;C:7"Q^_&=4J>M)%?!-=F7YLC@]74Y.E[/L=2VOFB=Q3HX3V3-3XXS>F)Y7 M-5=I/=7NO0*5"8?TWO;/#I3R_6B"AQO^2QNH AT YH*T)3@->3-";L#V!NR,S]P M?^Q8L?,QX;(NA5]3N\R6^&^UNY4!MNA5^ M=GOYKN4J2>;UP4NM3M>]%#$ZU;=Z?YQ8-6WZ -O).27.5SIR(GHEI@]!M>NA MR [/(3LW*F:=VM-<"41:6U;03BV\&S>"A\P6/)]U/%X<_IFS2)QOB6O)4IBX M(A"%>:HY1)=#XA+2.+Z'RO(]YX0O ]_ASAPH?FJEY3D@[D?B\3V'7[:G83"K M0\YVU0JO"P'%AF&*U_KP3.NSVFM]+OG=:\@VTGOE^_O*?;()<#YLKOCA6^GB M\%"]T$?D^$&I<7MN[.625T&J'9ZN=@KW-,[;H7T=HN3*'70V4#I9THO1MG#$/)CK3,:6#R_*/'*M6 MV^[[&P6H+(DFQ':%#J709)622G0HD\BQ\"I&A[!,-KHA#YY_Q*4NP0XL_PA, MS72PF:J)H280,D$:YZQQ#X:E\;G)=# T34"K3@?#T\3I,QUL#%*7KHN]/3E< M6%VP@7;H;UW/:714837.S.?]/TO3 AT I@#XX+'/M0"J]!M+PE*:4SH)*!P[ M#/>$YE9U['#-=KAF.5PSW9X:TVMPN(H7CS/3(0B\F!QC>GS]\-S9V5Q'9L=P MN&8X7-,=KM'ISEE<)UF,URRW:9;;-"M3_+ LR6M6=+[3S(G#E?&:R7C-9+QF M\@^<<\5U,-'":^?^++NN6- 2ZO#BDTUUYH1TL.&,W DOT AT 6P)F61+R A;(,ZE MD&$V/&2:S2%C;($X;UI/S%A91N53]F&_NET7T6,&AJRP:/7QPMB:E<[8'._8 MS-<4LD&,EVP:+]@L<6K9F AT E5>M9I1$'LVET6UR.:BFVO!W-N8K:UKB%CQ!-P MZ>5J_/A]JZ?_JC#M<,M=6%!4K(G_?QUDUV D\=1^87.NE7Y8:=_AWP46PIC? M*U(X)Y?I@;H+(TCTVP_YSPU?J]4*?MA$/RR,/\G-S2UPFJB])/>??K$C+*_E MNRRR;>ZPQYVW-\['?_/_*G2A6!W_RG%:8GTY'@%![.ZP09[2YKEKA7&"<2ZG M'*P?">P-%?-N[&?8:3D4#P#\\W8 G<,..U26'_2TFFC)UZ[PP\CGIXT1?TX)O/>NOKT.E4X"@!HMW9+!4;J?D_+R^/LR7" MBG.=D;(H<9T;L!-?N?@(%\:B>0K^S)BV;)E+\R+ZLMX-G\(;.-78(;S$!@YX M?9>X_$]ZAQVV61W[QW:/&O3 +Q;S5.'%@/NG%T@$2@\CA,<:/@_(#1[@@^Q,K/695_8P!XN#/K]8S=C1Q.?8$2=!".?X_$^A^7X'*O[');E M5.[Q=:SZ*G3N\IG[= MXMY+R[4?RI0U'IDPY8IQKU?UL+3Q(XW.>D5XK_P?0K"VCR4[1^V?R^/QS ?: M*ZW._1 XC1&JCV."D.,IN[G6*Q ?W:;-[7X2Z!NC+7*8YZXE5(=4+D+U$I=0 M'1*\"-4K5Y3JT"O5D3&H#JI!=5%+".M6MJ3R1YJER AT VX$NJ!-AI%/9$^71T; MG% , ::%5UIN,/I72!P(/^RP"[0,CG2%BF_#O!ZL%SDM=HA"B6'^C!F\T!%T/QR]QR0F55I?C3]U:@AYWX@=W MPB9^S8PQ/#M6(6+$8Q78?H""U'MR] Z:+!3O8/3N++V#/O>CRGN1<2U\I&%AV M8I]-_2(J#5=>([+@SO%X]>_\'W+:8Y2OS AT LQ13'98]224*''?$PYMHR%.H<= MC,\9;G"Z87A3^@(MTRTT=;$"\R- @YJ=!I/P9@>6(6&(21T& MI,IG&,"3'0HC AT E(8N)-A2*%8AP%S0 AT R)=DC7B#$8: 2$P9Z^E:4C(F?72-G\ MT$T3R<1YZ%C'@8!IG#K"VT1XGXK)B_#6$=YFQ1I"72F-TT!XZPAO$^%=2Q(O MPKM>,.]E=;VQGEOKN;F>V^NYP9Y;[+G)GMOLLW*5:%)HZ!5'OE')QYMM[8(( MD-:V8Z>0RYA_LR'Y8%PO$*@1'V,?1,O3"+&E_;"JR )+KT:G]=@%X$>:B!K[ MCJTF$:)A3:(AQ*YQGD:]:?#&B82T$-HL='J>YUFI5"I"1[J(F.HAUN9:5SWH M\.'#AR^5KDOU,(*(1M3WB);2MS?PW1$G>G AT LYF. M:#(=?!;3$1AAID-FDKA8F3%+0*?6.R[B<<$O\K'%\,3S?Q8U+5Q,P?CB'@UZ M7BZ<;)C%JN2 B2$W^"4WB RNAC,=(6-BEUU!8)LL5R"13MT*%-*I6H%".C4K MT$ %!7=,L<#'0#H&UJ"<1K@:TB![.6&;I4\7O]955(,;-HS\<,&&BI6#='"" MCCA46)H:1Q"AXLC?8+XO"'$Y,THJ M(Y AT KB+JM,(*S5 3GJ C8P$^V5\2M3-[R%;:P!=+/5ULK$COM9UK4>W'0/9 *O AT Z/G AT D*\(R >[,2+!T[3 MAX8DH!BPX+F.:L32+M?C\'-/X&W\7 AT 70F_Q8Z6JP:R(K;2-=X(URIK1A0*\& M$%O^4/TB'.BP2+D$+Z\@L6++R)!:AX?MV$1!1M@=>#>38 K8\,QPA3S%I5/+ MJPF(L"Y\9SY'7$#"I.2A*/DH!2*TW%OC1LA=,:*@(4$@"H,YPEY3 MYA\A7PA#(#"8O AT YH, RHL0&.*H8L 9PD#C($>*IC,>-+1B;TRL9<<*#'!(> MJDYX0+Z$I\ *JZH,=LBH_ECDHL&@<6442A>ID4)8X(G3!6D$ZAC[H0?D#6T, M;#2&K1OX$-,[]6.S,&P65TT@?#L['/=;9HRRK'UZ AT 3D&CRM\&M?48;!3JB-4 MGK!93D(B)-)E3H!O,G6-%_>061I#0D=[#*[SA #/H7Y(A,3G/FYTL),82 $B9+D; M:[U6C1/)P<>Q+!QCO&(,Q!:#"[4PN( ,7=*%7 D;8Q; N6$,08#VP".O4'%I M(&.'YGZHV_UH0-W]P.>()6R]&_M1CP0>V*$(WZ%O#Q 0/5TJ9--X(3NFA=?= MEK AT FMH:@SA&J,\EQWDQ<;9])R3"G8W #6X,;Q941RS1VKG*"6"5K6'7;9Q5U MN2=4Q A6$!Q$#$L6!0L:$\QQN4!)7/LF<3E'XOJ,Q#4#)7A]:;MK5W AT 4YP6S M%6[>2^6G-+$NA+P-BQU-\:I8E;P-RW(.WEA=P*MS53S$5[S:'PBZA? !I&O M03[L5[I ?U;ZGWJ<01J@=].K=Q316^/V/*"0!X90%'1).:^&DE=Y/BZ)ND$' M0J$P% 0.'A+786%\U!L= ?-[VM"5YC;7B >]-*^8QXK>AZ"<8F_-% MF$G5KJAC)R'G:][& ER>CV0]_;%)760(+Q(^\?7A#6P!,IA<-0. ?[N;V!F] M$?N#=@N WZ+B6+'^^)_7LN#NYC8OMQ1@&_>O/(T$=?__" BNW.'H8M=E#R76 M7_<9Z*W?S;E:O;=0&CXCE \E'^[OM1^FZ_Z1K_.\GO+ZXR&NP;!R;PGA\AIK MWGSM\4_>79_E7KTGS%XW?UW%[ M_=IZ+VO>_^WK:-R&S_.7^)WH[_-JOSH]Y-.:Z;L?"KLA$5]6G/ZGA_F?;7O" MY4MU9#_B AT ZO,6+W'^':EODYD::4PBO7^E?J?]:/V(MY7RK= MQU_V77.*H)Z'U-P]!*9F_[QK"V AT 8ZYNN&+ONN[K [.M]7,M]AG-[8[)7C\8Y MU^\?$NM2/Z]F7B4LE"/]XU64!R,UX;Y+0!WSJ5/CP)]PL'57J#2>@^]1R?SF M5?4K61UF4*7;X<^15:'>&X4:%SSP8L6#B=YRRXA1C!?&B^5W?FG9\H4>42?L MG^90=D=R>ML=+,VA))C&6RR[]R/ES-RYC\8^'VS[AI!FZ7#7UA7GK$MZ>;9% MIP6^S-'\U_M.8"]S=DD?BU^_UM))^$W>QKQM5J&6KU?I$JYT._F%J>?&XF1; MU8W?J\/4N&ZM[E=:2 AT F?B-=1VX,1BT-0SOJ/*_ YH08CG--G72*J+(SNP4BA MB"Y$]\;MS %?IIL AT 14*Y,)0T+]4=M^9C*U[\WK;\.-UY0?9I"!^TD(Y[A[^6 MPHF[*G'E;'_&EYTD.H.+A=T?B]%\J4$93;$N3(_4T!+TLM2&R.MSB=9DD20Z M4^D6J"^4FT-/27)?/C;")M)K(EWG,7=(^%_*[Y,.'2 MSLR,2C')!UBPHOAW:AY&72?3"C&%>B;\W76 M AT 7UH>)-Q^=>X6HM!X3CY7BND7!FY ;HCV4W##EL$][>='=>^UTQE MQE4SCWNCL%9 J^7MIM"FBMUV6N*RKQB:0_B([7-E&)6*HMC6&!ZK$&$RD9GC MV AT PTSQ/TB*("M1Q[O!W$$6Z13'QEY\FIVK F%$^+1,$X6]($+-&_QH)KF($E MA >;3SP#'KQL89"NC_O6T<-8^(]P$XOO!ZE;V[W=;N/MO AT W;!:2IC7-?[\(: MQY5C;%+V3\TE]!'Z#I78=LX\ 9R2&,97WYH1>-_8?_V0\+$IQ_>1MB]5]5OV MB\ZW:5_ D1;XBA(7)7#(D2YDKBKY['6>3L".]1+[?=01MU&R(&X>7 AT Y'ZH?- M:\/-&"==WE=1D&]=L5+*3Z-QKRNK4T.%2AGX(V#L4Z,R9^O%GNTV?>VEL-7Q M8A=NCX)Z+BK6OXHVC-#!:RQOI'0+^/XX<8*1SBGB+:!+FOO8-Q3E&DJ5FQRT M[*V:3SYU AT V.[(AY\P3=,=;D2V;CJB7P3P;.; U,HN%,XHFX[(IH;C1K#C+&& M(=J$2AS;B0K[BK AT NW*Z#":(8>SO:C[&PQPU8?3912;8 J/GKL[GL[$SI5#^>Q3]'Y4COS 8K\$D M&-<+HOD;YXM.119EML6X"G:"]:UNI7/08U;M8-MV; M7IKJ#.0M.V1XI-U1N^>W!#>OQO1-JMG5 AT 2*[C4HLBU#H- MB\;1L L+&=(VX/]87\;!U+&)&W*I&\C"4"RS_#M!],TGNK;?-\R([;=5(#6D MCOC10."4AZO_XJ\O67M-YQ6'NQLO4).:TEX+X7KP"\4OF.8HZRUP:Z$(K6Q( MCZQILL9TWF?1>>)8*NQ>\+CL!?M@*!8MY\._#K+I2\W.\E6NQ^D8'I,QT%\U MB;>HF#7&QNY\/+#N96'.%!\%WVO!M+958G3($)K+)9J#P^&^/8XA*[ 57X$* MG4IQ10QROU>,?3Q@#DW#GOQF_I$??TG/QUQ6A21T[LKTFYO_:P#A]!\K7N-4 M]D- 0)K]DYRO,"_Z0'215>G0["O.P<"/&)UYX,"KP"%)J)W7.^*C(RU-5[O8XI1 AT DOT 3X=Z7:+1!61>I HU(4@@@2(P&<"JBFC300C;FT$!- M'!H$Z0$E#TCM$ZA<^ 33ZW:2QWV;!S0Y-_T,'^U[[@BRD8:R]%2MC 4[5[TP M0MCCSML;%_P0"(%/[]W*HS/0U>$% MN5G0H 0A*SPI$V#Y"V 9]LM$L<*(]6L&>F:!_!D89">FSL:VLAZ7Q5+6 YV5 M;>$" <(%QA<4 AT QF53C2 \>)K]! 4J_OF_S AT AA&)O_;,81:8( _NQ@]&-ZJ>^+S,[)9'GG\@&(51ZU L8E, !1,2X(>>&RKA%U\$_#@GCO M)[Q>JM'"I"KK&G9Z_H^=[S"U-=8Y5*38J#X!_ 6*5Z";YE3O%Q!>24)DSB9O M2'RY$T-=-.$B54@I_IU! .?CAUG[2T7". 3H +M1X)QIOCL;/L@!!\FP3F-AKE:PC*MA=(SVA M1FJ&2C1Q@%(7'Z,Z/.PC5D[8.1A\TP>']7.B%U" LDC@(QAG9ON%QHG#*U!I MCT+2 AT AQH6AR100-?'D^)87(-1 AT N;(<\NB)7UPY;X88658P&""UV;L;*"$2-% M%+5I1H_I-!@9#0O&N3GA[7]\*5+\%?81*@.>.5UX7'\H" 13( ($0T"HB80_ M=OC:PA[U[8C'!))02P,$"@ 8 "5*!&89/HE]" 0 J0( P !53D%3 M4TU"3"Y#1#,- @$2(Q05-C=HB9K;/ 4&$A-$Q?:6]U6J5 G2IV%^<.64V5-BR94L0Z/%- MWZ#7,V%\;YLZ9]Y 3V1;< QT!XF3YDR6.&NLK^@:Q/&#)%M6;-VS(,6F&=YP MY;X]*S=LVSG8_47Q+(N7;EDYX/KN6[EDOFZ0<\.R9?MV+(KF/*W>LBEWE.\0 MY;G=MVG)5.\\_QMN73KD^5TTV;LL"^U:)5RZ=YTFM_LG'@]ITIJRVSY6VP913A"6)MY9U=F59E3,=X3'*O AT W;9L M&^V0^L-HV?J#HQU2F%&(4$L! @L "@ 8 @4Y^&0>A&P?# P L AT H @ M 0 @ $U!2T5&24Q%4$L! @L "@ 8 ]U&!&7NDZ%&L M 0 6 AT 0 L 0 @ Z0, $U!2T5&24Q%+D0S4$L! @L "@ M 8 G8!^&< 9[)#- 0 SP( D 0 @ O AT 4 $U+4UE-,S(N M0U!+ 0(+ H & +90?AF!FM&9#04 'H+ ' $ ( +(' M !364TS,BY#4$L! @L "@ & 8 3HE^&5^:F7:9$@ ]#H 8 M 0 @ Y P %-935,N0U!+ 0(+ H !@ & 12 AT 1D,3UZ4P H )$E ( M $ ( *$? !364U3+D-$,U!+ 0(+ H !@ & +M