www.digitalmars.com         C & C++   DMDScript  

c++ - Re: FFTW

Hi everyone,

Does anybody need to compile Fastest Fourier Transform in the West (FFTW
2.1.3) for DMC?

I have done this recently and here submit MAK-files needed for this.
As could be expected, they are much smaller than original makefiles and are
surely clearer.

Several C-files included are patches over original sources. They could be
omitted,
but than you'll get a number of warnings, so you should remove -x switch in
that case.

It is assumed that you installed fftw-2.1.3 folder under DMC (\dm), but you
can easily change the path of output lib (which are placed into DMC Lib
folder).

With these MAK-files you can compile Win32 and DOSX(which is of special
interest to me) versions. Use var Platform in the beginning of the
mak-files.

Hope this will help you. FFTW is really awesome, I think the best FFT
package ever been developed.

Nic Tiger.




begin 666 FFTW_DMC.ZIP

M>&8N+ ````````````````8```!21D945R]02P,$% `"`` `8I*:+8_L6671
M`P``F P```T```!&1E17+T9&5%<N34%+M59=;^(Z$'WWK_"J?2A:A:X)!.A5

M9SP6*:>'Q"_C+-_3,$N+TD_+ MR0]_G"'-B,S):;?^P!(<I_<^"AB'_1(COF
MH5SGEY_43R-:^OD'+Y7+"D+9MW=J88]<$57$'MFLG=E\;?<]0KZ(F-[>:9<>

MO&CO!2(]>T5(G.?7Q[\WU*;&/J5&]K4X<!Y1(Z3&HR$'E\.7XR1'0(T7:GR7
M="R_<EC4\(?46$CGLUQR.%#C)(T3&Y/5>NFX[LS>KM]<J8(G31WV17U#A*+^
M3</Y/VDX_U\:OO T$G%U(!&/*<S59\[+XX'FQX075*JCP5$DD4 _Z"'/?O)0


ML,(!H DX!!P!6H!CP G %)!]TX:.R'1(IF,R'93IJ$R'-;6S=?$9R"W(]GT^

M`,> $\ I8+VG,G1$ID,R'9/IH$Q'93JLJ9VMB\^E/,V</P.H3P#U": ^`=0G


MAIOEV]IQZY2O4]%;]^HU_4_:_4"(Y=.+ZX#J

MDC.[&4H66SU". OAQ  W0; IPD%AV^DP;!\3D]/5G0JDMP327 +I+H&VET#Z

M0XP<8:2%D6.,G.!)33'?;JTK%MW,1&5U&J\4>YYW4H![N>FJK^A6 ).(HH2W
M6'5W'\NL[:SO[U9F]?W>3F+O)TG6]CV)(LKV*"FR=L+'4B1%B\S]J*-!/T D
M2XC<]4'.P<MJC_PQ%7W]<. 12B_OJUXB`GH?TOO5`QM,K *T%_VE7C73,#E&
MG%9/H8 ?X"64TM]02P,$% `"`` `+I*:+=+TDDR_` ``B! ```T```!&1E17


M\?)B<+7Z_&7*Z^OO\W9'-X?-I^IM-;F\J*K!U61R70U?!A]O7G[\+H,3=%O0

M:"2W.X+7.[).I0+'PN:")! $DT$V&B39(! .LND B0?!?) -"$E""$:$;$9(






M:,0T.C0IFC!-#FT4;3!M')H5S9AFAZH^XS.%QEZCL:XT/M-I[)4:ZU;C,[7&
M7J^Q+C8^TVPVSQM>SM:=[9:>+!-QDU4[Y_L.]FM/RDCHU\5=VQY_]+CQL)JI
M!][R=+J8]8_<;]R'EIGHV;?9Y'&SZG^\[#ROA_(/[F>')^))YX\;CZN9NJOY
M9MM.^ZOJUNY-E9'0Y=UBL>I_MU][5$9"M_PP72T[VJ\]*J/WE%<:'W:8=T-U
MV8\;7CST=]VMW:LN(Z'KN^DQ)=W2 V5R>LCSE.247S?HF/O9?U!+`P04``(`

MXK6[S4$"!.C>[;5L.Y--2<M<FG0(N4YO;H9Q;!%\&,F5Y;"YV_[OIR?)MOP-
M3#NWO<X4L/3TOEOZZ$EIG1ZWX!C.6?C(_?N5 +;; >&+%S_WY,<+>.]$D>.N

M,3RR&%R'`B>>'PGNWR$?7X!#O5/&8<,\?XFLL"VF'N$ 5 0$X9L(Q>'#VZM;
M>$LHX4X`'^*[P'?ATG<)C0 X4C2V1"OBP9WB R,N4(<;HP-<,,G8$3ZC8R"^

M+5I)EM+&K1\$<$< CL R#KK(0A+#Q^G\W?7M',ZN/L''L]GL[&K^:2R)Q8K)
M7O) -"M_$P:^Y"SMX X5CU)]Y/!^,CM_)X><_3J]G,X_22/ 8CJ_FMS<P,7U

MI':!!ROG 0`G+O$?I&X.N"Q\W!\\9.($C-XK,R5QYL Q^$N 3'1ARWTAM63E
ML.+P++)=F%*WWX4_OX YV80! 0^!XY(NW,3(X/GS01=^99% RO=G`(/1<#CL

MCPDC^''JO4Q9=1] V!_^%5^R%Z>#GT]'/\%H\'(P?#EZ#I' `/\+)K^%\"..





M;N/G$:BO' P['7 E+>^H:"MC>>P*QB/H]7HPA:T?K>37RO' _25JECD-'0K'

M:TZ6:<BRT4F$3TY,*R<BYA3"<>M+JX6::;HX,LJ6]$LU/SE)I:C!NZV6'V+;

MBO11"4F'7Y7]1J<T&-B8* K'G52 :=K%0]N5Z%3E]CV>X\0)1BLW<YYFD?W[
M?KXTJNUR9T)2]*AI/\"I!4[?[->5.T*6_X]^-:KM\FM"4O2K:3_ KP5.W^Q7

M3\+)&"XYF5][1%;&,3^Y&T;)JN$OI9+H0CC*K;=Z^2G)$=O$H7HA3P-/NT9H

M)S^KNRNFBH,F8,UE;Q[FA/W/LE!+^98<M#A\30;>XW;'3W.P=A51PPQQYFSS

M"QT8U"=.3LS7I YOD#N
M)VW6L3)FD?93GSXX >\I*K5A3,Q)4NB?]&E=PLYJ,I8W2-F4IG:VY(VSFO\A
M:<W_H+SF^Q/[]!APYW[%A*EUB;0,,',\PGN<8/W,PSH/E79M8JG'/6[Y.>D"
M=U193 ZDJA9(98N'Q11\!8!Q71>47-/*3#M?=.G 5A4%/!(2ZB&/.&0IES[H
MHHQ^.;!MX3G",:^?;A ,<_GJ]O)RW&I%PL&B0[;M]4 D.'O4M.T2'\CV[1 Z
MKP/ZR=,;8193T>MIMZG^K!E^P3? D%MOL,7<C7D2W535+AR'G#QD&J?#MRL_

M  U*\9#Y5!!NOZT)%U2ADU-(R\77KJ1!FH\%[^B(I?0%#R814Y.54H0Z`7H>
M&SKC`C56K;&3;<B]4]OKXKM2TVN:C;N^X#MA9U&BCD#B^MJ)<DX2K%[/*J2D
MO5D%IY YT=87[DJ1X)QH];E.9&IN6!1[66Z>3<XN1^_.*WK>G8^P,^FYX\19

M9CIDMY(YB+Q?1;.,52J93<8'J&D-VJUH8>':K^KL[,UD5JFHGGT/4C,=,JYG

MJ56;5P<C^NA&:P]+1U6_N^I A*D5_8X$0:2>MRL_$ &)<G5P"SOB8X-M>PFU
M,CPF2H%J2D=HO+'L41AQZT<>VZC?*1V.-.V1?T\=$7.2%V;\NEC[B#BL!RWV


MJ 7D&9D-P-\GY_/KV6(V.;^=W4P0`MFL7L.P;K>AR7H)7E?1<X0 FU 03V.8
M-!H:J=AQ'>P[7TF.RJK/5_3)&1[?!420RK<*VG?$=6*I&D8S,H= >/1J3KTW
ML%T16CA9\R.(B. H^)NAV410.N^4`(G.;9KA$OF49%LUS*B &-7PHA9:Y&;8
M6F ! +E?67G-9C*%5'?!C\IZ8VEZ+I>.=M94K:FTVLUUD*4+N"OFUOA*3^1P
M2\$/64&PS LE;%-1[SK$`^5J7G/[<VBHH?6%1;9 O[V_K_- Q4I<6;IIX(5&





M:;21V),<JNN,P>(6FE>9_":2%S-1I.962IIJNT-K6=:%S_7&C94*GY-$_ISI
M8V5J]5N33UV/Q1 S12_)_0W.&GNNSV!8TA>\,=92_];V')A>9\GFCGLF\%;6

MRA>[.GA]3R=B=?]>3+G>CRGKM*FZ2590J)+$$)Q49<>.VM9.2+C>!PF_BQ'%

MI]15D+ZT"BDS&0V2LY[0=]?J(N<=$7 K&F_[;IE:?G6YQ\R.BD:7 A E_8KB
M#W)::"XVY!C:2VDXRA7(GX1F%Y^L!B,;C#Q!:KMWF(,J0U/E>"V'Z9_)-+]K


M8:>6343=S\? X5C^_P6+5/+[Y!68$*!("L\0G*<"[:2RE:6 +H"CT8D(0Z6!

ML$;4-=)DYU/KX+6\)&=XOE"EK5^/JR0;FF;"[26\ ?SB^ETEW] TDV\O^0WD
M%Y?H*OF&IIE\>U7/Y%N9M.Q"?8'&I%$CO^V)FJ)H[+-2Q&HT+I14&NM;7&JJ

MB/&(XB7*L(ZXE3 X 9^4P"HYZN\']GFG7%K1VT-UZ)&[V)%*_(MEP&ZNAWN\
M2:K,#LH5

MEH;5JIS/+)=5U81*?HV$QV+)*-2,4.3"H!9]Y+5([_GG_^1%+_>YOV!!HH[B


MDIA8_WVG&X\!YD%2LB])W;FR6G(&W6CT&XT&MSMKT(%W\6R>\.M)"JU1&WJO

M23"%_.,X80QD/$[O X3U81YG, H$)"SD,DWX$/'P% (1;L<)3..0CQ$5/LM$


MARA("]"MAN47JPR!"\(]B6?YBB8YRGR-]SR*8,  DVR<15U$D0^&7T\O?_[E

MSSG(X=O3]Z>7O^6+ )/3R[/CBPLX^>4<#N'CX?GEZ;NK]X?G\/'J_.,O%\=;
M`!<,R6*(8 &+QR2EA$'(TH!'TBS\MS #F5,7A3 )[A D;,3X74Y;`*-X-E\N
M/$021+&XIF7F PM&]H&/0<1I%^X3GN94QE6Q(G AV2Z<BM%6%_[K-5RRZ2QB


MWW$QBK*0P1N$W^0BW9H<$%(D7V33(4N0,<-L/&:)Q'5EFL7J$0LA30(A\R=3


MT='IV4](MTR#E(_ +N9A3KQ,DW ^F$6!&*!2SUM<I) $XK9+0J WT,&_LMWW

M=OIP`V] ]&%CXZ8-:NQHD+!6CNZ3P 0=N/G<QL%;.WT] $\7#H
M13 EQT743ED LX0-DDRD?)H3R1Y&;)8204H'`9>^1=H9QMDP8OIY&;2E'Q._


MI]50`?O0ZSMRY4JN'-Y  0(%S!4*`9U]_49\XI_ME.CM"96#J]\W2H&+P==;
M.\<]+65<9?YHTWU6UE'BO-%(T=;(B6LY*/'TFJ7$UU9;H=CN:&:0?6JQHSV2

M!X]23!)?%WJH3 X+=KI &A;;!R[^Q^(C$V$=*<4`RS]\-4CC 62C5O$ Y.-Q

M:?$\C6C2D!JB#QQAOC_
M`IU]V+5>;*W S/8^M)2%MUT[)F94WZF7VEJ5(R"/6/L/3 5/>1#QW[FX5J&?
M  D&=0'U,#IZ6TB&65,R3R>(PO&JB*UW1/8N,0NE!_=Q< MDH!0M75>J/X\2
M%J1,QZGLP8E2& M3<ED=W^>2&$.>L!%F*)!_4HYT' 77THM#O+_F6(IVX:[K
M(Z?WINSS/,_D6&')OR$"=&SPQGI-J$,SRS&X4:2M0U001?&H)?GO+!Z;]V&0
M!E8;9YL' F8OO Z&;(Q)8^EI,%9.U7FH!.$](FEX3T*.4/E?2ZL)!&JQ]B&7
M`RZ0^A'.39R&ETK73\\&']\?OCMV4(CJ3,(D3_L%8ZP$JF''18;L(S6H95S^
MI T=(K==RZAGP!IV/GO:3SN?G6A9X/Q$R]V$WN=*!*S5,^WM9RJ"YB.<0(K<

MSM(Y"':O_ (FQ(2J%VK?H?V$3E"U7>3CZW)9/VER4MJ^YP2T&+1%M)S!OFR)
MD XX)JD,UD 86?Y"I<PE;5W%7Q" $HR!,&Q2)"M682Y;L,LR25&?2>.YXR3D
M(DCFR#B561
ME%]G<28!W=(6K-7+QIE8#JYQ3\I'K;) _%38Y**+'?T3G+WUY8V>Q&2ZTIB,

M7^Z4":JH8,$EB.Z#N<Q)W52.V($O4A^[".NGOY3]M)=EXNZ,' +NT [RM<++
ME^1FX 6ZFYO/?=C<O''"FYM&`HLD<Q95F;S?M-Y[!M,L7Z'1=)!L%B3X464'
M.J- +KA !4-J%W]#VP0OT?4%I9:X0 ZGXYP6(B&(<M+".; '+E.I*>*2O(,+
M0?;4A81AR8&G>_64.<:O/MY\7L3(G"JR),4;])8(M=> L6S_E)9TE;%8D3 Y
M;N''\G$.,VJJ!LI$39F DN'4;" >_7A0[^=TN0&M#G<=T^ AY-.FY&])=H>?

MX^D,2[M%^< 6C1+V[XPGRE\[F3:T) '6J!#ID,&07P,3<78]P;K5)(Y"$*-X
MQIFM`T=!<LT\9\,%` M57*7*JF!8 12%[['EM"W421*0B 9(R !M9+DT=>E(

M/N8C&BE8TE6!5559H_ > 9&S'CZ4" M&$X>GQ$OTXH20=E(A(C&>3NW3I>8Y
MHZ'7,9%%Y<;5PJ^A=F'\71YZW><J^W/?+HS)E8&K%,=6+(U]19 W91 GQE<G
M]K<MI)SX2.,VNYJ*HOM*V86>]I3D7W"8XU<T#J^FVFF[2:B:QL]"]<!V^TF9



MNIPP?:Y&C\AJ^+6($Q9V81+?8T6LBU2F$S:GMV=7[]_C<:%ZI TDC!$'UB[-


M2HZ2(%4A4,Z"$=M:6Z&X9U5V>?3YR^)+8YVP-2O\?KEB:;T_T:GRDC:5M* Y
M1+WP=XA:!=JX=\3B> Z,8W$G^:)4?7OY$DU5E<S0"E6ME\X[S8GES%1SM]=,
M^<C4/I9MV:NE%BJSE)Q%W9*+D/?"S.<%(U/ =)Q%:^;Z%]\)/%IT+J/.C 8G
MOYR_.]9YW?%1VR]B%47&TKFN0NKYUWJ \ ENW[)PY?#OXMWPD &+Y>5+*&G 
MY<_GQX='%X<G?I7 *=N64 :O<&415UQ_<R)1<NQJGNKY4K/$%GAM?U-;:*AQ
M2IXW2F.8\=%M16W+*>Q F(V[YK.(\V]J9G,<JMZGYM63Y59N!?A_++N*H32L

MDRLJ2N/L?K=;WQO YU^>,[7L^O(%7CCK\51M<0ZF`?HKCR^-?I;O1H6 ! 3[
MSES-L&7^4FRJ&';EV.C;>.+4ZD-#Q\>L=)9>(YH*V0U$UX:A;[&$KUF $0]Y
M713/D*5XX!4+9JV4CK0UH]ZH^=KP!X&A(\]$M;'*VY,MDBO4"M?;!#KE+"[S
MV03#Y
M\;TR>[Y2!>#Y >FKX](*D:DA,"WQ)*L4EG56H?F/RKA$%9_ &Q>=8I;W-[L+
M]C?B0=<VYW^/NAF2\FG75D6$.I\6#WWSG0ZDQ;Q4BEZTC=LM!5R_P-CL?&HX
M^6HU3JK___UOQ-%7JW!4?]^E[[\_ <.OGL_A[:+8`3J?<ML>R1<MV;"W5CJ 
M7>UX=H7%UJ1PU,364W_;*YC `LM[#J5-

M&Q^XE&[X<<V,<6.+DY6XU5'J8R9FU47(< MRA4=FR36<+EISN[H9U_9\NQ V
M#T1M
M5'97<.,9(E!R.SE]?PR=<1=6%F!)Q^O:LSWMILG&K7R*==LW04-WH"6R*&H[

MGB*XK#HF%3[PFBX]%+"YJ8]T:ZY_0.O[T%SE:.=3>&[7GZ-=5S9LF*EN1^0L

M_\?=,KJFPZZ*ZF&CC;[0X3& ;FV U."FG+.7/*A+1Y/YU=BL3$/*I[3+:/05

M8PI&L[NE 4;AO?X:U%;*R<30O02"&T.3U XQJ86-^G8+`Q3&6KO550_4_WVS
M4MBT-.&+C7W[M7)Z4%"+1YUTAX#CW!QO.2(3W&"-MY"Z4!2"S7Y]S=W#GO!$
MIEUUK\[Z%<7;T)RQJ3MR'IC3&*DO:>FQ+>P80V? W./R(-5A&AVX!5)F4Q5G
M`BU$5/I>>\^%V*ZQZ=J[5$U,VLT!-+LV<K".T9W^`JBB+%.4'6X</A(EJ "5

MX\+4E2VTSJLZ6J'J&QM^"7<9=[Z."*\/LFP%9_%]U_:9Z:Q'FDNV9D[KWSQ0

MPCB)I[KJ9LS3`W=N;Q;]5M;,6W C=B73_;]MH(H =Y:2Z7 V8BW'-Z _&>3/


MD\D%$3H96&4_A2T67O[6M;WZ(9]VUY9G235#RG6];D,SH%_OL_>"G$LQFH[/
M79L:V4=NOX=^1 FVWLQMPJY1K^T.W& SO)))N4=/U8"BN7<VXW>%M,ONUJ3<
MQ60])+'8Z_CW9?7*.M6*J.>;:S9#WW8V_\IJ,= _?//.`.BT2*MXD$+$D'EX

M!4-IS0TG8M2-SJ?9E&)&Q--YR<C*>T%1V4$7JC_K&E7'LQ^7HSKSK7*SEJV5
MT9;+]H/?2+=FF*N5,J<B\1CB;'F*LRUS(&7=B%.Q\'7%,9Q*AS&IP0)2_79:

MB<>."F") 7K\S-M9)B=,ZI] (2>\1OE)/(,0+WCI!"=BP5W1Y*_R._V;'JB 
MUU0J3JR.4M-_!T:!S('N)PQ_F03W)&]TID0]?B7'/-#S+W704+>Y?>K>=HD+
M5U^:`;Z!/[> MW^1;T?'H0ZMX=8XCM*1=Y,W+E<6R('<+G8 I=K"LECPUU*G
MG-SM$B<7NWN[OT4<,8!..&F,(\\-(]902^&DPO>58TN)^2L'F; ,]K\6==9J
M=5*15M+,QM!484^A9,U92F61U2#UC!"U^D(61K(Z 3]K4:O$-R=<U(6(/RL>


M04_F1(\FECTZTF'F`#M
M1]7J2A'K65C]'4KL5PJ=->M>_#UEXTJ+]F'7+1C9TD(=/_XHYJ,ZMYDCMI>=

M#I6(IRDJQ[WR!FK'[YQQCPQJVW&+2*:HK=EWE&A^+)=T'E<RV<HEIO(95BQ8
MV7%6O63%#Y
M``#Y-
M=D=QE%13/S*R?)E,V]%0)&0AI `6!.VHK?_[8?$ 08J2[:1I[^9.'VP)V%WL
M>Q>/W78#VG
M8$S".>,QOUPJ`DAC/*<I)()?BF !ZNM,$ (IG\F;0) >+'D&8<! D(BF4M I




MN53L(X63P>CH>X72?S$\'H[?*2' U7!\.C _AU=G(^C#F_YH/#RZ..Z/X,W%
MZ,W9^6 'X)P 6P0);%#Q3



M>U_O?_/U_I.GD$HTXWL8?$C *T3_DLXB,H-7K\9O)Q?GP]/7DZ/A\0]JF(5Q
M%A%X'M+X:F=^6!G9#ODB":2>("RBLX8',)O)FVW*9!DME5%,IRMCE.-0 WR0


M0 ?Y`&TUUE$ $C!D(V*^LU;CMP; !W^]5P3U#PR#YGNU]%X/WL-S8#UX_/A]



M5H4IN41ZA$4=4$P*:?5D.57X<A%\P+^4]0J#T8

M8U7GU.ISKLB [9AKV66T%A01&W92ZZG9,L1VVU8X[0+6A NB1"QL/AJ\&?3'
MVK52M'W.NL74SFV_/U_!0X<WDTY._=%V6L=5H1UJJ%-%6-M'$:,^'41O:O]R

M\I>A,VBBNM#HK7S8NH


MDV02\E2NRV3WRV+WS&"H)Y,N9G%PF<*6T=;)H']^,1H899EY9,F9L)IS3224

MY:M8\5R4XM17<DDIE2*^M:7F+>^>:A5_MG=H)H:_#J OS$I<)M),6CY3Z!*+
M(!1Z>Z([K(C,*"/8!$_ZQ\>3H[.7 ^/!^%SAP4^-8F&_'6E/)K]TH)WT8-W'
M8&)24Z!P`%M^![/W<P^:";8H2*C5 D<Z[SU^C+^0PWM_L*CKSXB$F4CI-7%]
MY I'"'OO3QX?Y6A0=#W3M64PC5U
MPW7J!C$GFQ9(]S%6VI"SE*;2[ =O."2!D.D^<&9W55)0DH+DN O"36$89HL,

M^24C+"1YV^]XTUL7L\ ^Q.C76:*9=^UPFEU>DE3J[:F>,,"PP0P3`[+6&J6:
M6;5*88T<;)U5[MN]/:1UT^Q.B4X8A0`M<%UN$;^8A:"-?_UV++ F5GR7X5BV
M,% (.I'+Q*E0?_=P[6A*+UD ,T'\%84.(3*YPKV<!?3'7(W9;4-*"*:K&]S1
M+HCNM;%!M&;3Q1AWJF&0DKP:>VR[A&X709?(DB:&D D1;21=$=X.SU^>G92:
M9)2DTM%4Y[<\X3OYKUSH=>"^L!W8RYL?3,R///9-?;*E%NWH`WI+PX'M`D[/
MQF]=&J]+L[^5FXYD^S"B`K'Q']: [4-'SR/OXWDV,1H.$CP$2?U>R.,N5P62

M8/ZQ\G9*K-7 6>6.3OK'D]' Z&)T/JB!\L*Z8$_SE:66+62VF*O4ZLJD;_::
M-OJVX0W<;O:+\=OARY?' \_C&G^";QQ"MQAL,OB;FVDA[I['?9'WA&VZL)3:
MC,U UR%VRF6S^) ^\7=G\LF_!D?CL]$&J]?$M&)JC0^5J<%WM2ZI1=ZOKQ*%

M<;?MF&_#BXO7T.1B'\9G+\]:`$<!P[JFCVOMP9P5_SMSCFU.8*?!-%[F1!1.
M$ 8162C 7S+<1'#F)G?+6S/#Z&WE%-7T2(SG;9(42\".*^2+*67F!$LW: D-

M>7R-';(Y&YS&9)'GQS\D.Z\T`A[2)Q5:JX6/2 'WBO][5-E[!+YELY N'3K8

MI/0SN$RE1W!XJ]7VKO+\2.OE]]^!X7;;H?ZE-?H_K91^]E""^O;CCP^N^]7.

M6T?P?SED-ROI_R%;ZK$%2;F0^$+!==08Q4&DSRUMY<1#HXQ



MEA&/'5]'-5P<XX$P6C]WA9 +0=*$LTC?YW-SF&A8VRDQ4RAI8\Y^2,;VO<! 
M.6E-SOZMY";.]+W2J'<Q6(J44LSX2FB8..$L7IHNTP7*;BE*4!!\FD7 !O\P
M[JW:7FU&\W-8H[J&'TQY55QG/L^=ZLM*45,:#R\E]9W?IC16\IFQ6,+(U\Q^
M2;#Z

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

MP?<BX"2 B>#T
MPKT0SM+KD/IP0GT2)00\N30^2:8D &M%!V<<(88+ P&.F"3L"<JB(1 JWW.X

M2<GCG(8A7!-($S))PPZ2D(/AU^/+7UY>7<+H]!7\.CH_'YU>OAK*P6+*Y%MR


MNC" J7=' !.?T#N)S0.?Q8MZY2$1+V31C6)3#LX%.00Z 8B)#LPY%1(E6U8K

MK_<#P-7%2/.TVVCLMN';XV ?^$2N$ 4[?N<.^CM[>^ <3W;[_=W>``9[^]\/

MHB3/R3WQ!\!9*F DGU7/DBN3>T%X!'>,!AK\F!,O'/AC+[UOJN]QZ$6 OSH 
M<<&4S6=>M. T(/_)YD&;FF'*G -BOJ!U+\_P&4K\'MH2I1[(W%FL>I9>9\[X
M;6M8`=\?X(#MX6= MN% 8_F0\(WTV1WAH1=_9"V\JQZVTL36K+R+.MY!&U5,
MK'2OXX *ZH7T+8UN5$PY/SJZ_/7T.8:+:(5WZ;B \J5<1!"0(W5XT")(8N(K

MR0G&<?T,)J%WDR"! &% !!M1$/WXQ>'HXNK\<*<%(!>"F4<C\(([+Q+>C4K:
MUT2RB[-CSNYH $%:XPCI+=&15_Y3*6I.5+J6R_ T$G0F7].9F3TC7I)R,B.1

M5Z F`(]])7+U;&P%VT1#X%YTVP%?KBV48;2C92<**"<^X /Y2=N/$N2F[K9A
MG& U_MO(QE &XJ%^IN YG[E"``<:"3R"_RD='I^.STY&SP[-R-TVJIED.O'"
M.>H+U8*+ )#L)Q.FJJ14=-FD&V.^PY)#IXP=7R4DO>P$FG:UPF(MT,!140?*

M[AP_)!Z'^92H*DT[0QR'"ZP`E.S=P8R#C2Z!)SSWG<MY,T9A+UL3QC%M1%%'
MVX>24:L%!P?0:RD"G(B41] ;&GKHWDTJZ?6&0.%'98301>8?/Z9Z2MQ]*FE/
M!.&OZ1LYLAF]MJ/>[ [ ,?1;6& 6A^V",ZHUS,&KAT\M')R4CY/$W6^[H*A;
MJ'(LLIGDS$=D;CA'YU>DJY:"1X_ *SO;6HAUQX D K.%HM.,S?1<2 4K<>$;
M,I9L 0F397+5N"(SJM%>8]9#RE\MD[*+0"U 6$;]L I[WY)5JQ;]R 3>%OSQ
M!WH>VDU&7SY2(&DRIM%8>^>C1]K5T+X*:!7M91M-QC=8.E._:;GM9":'9EM,
M [D-PQ\E/W<7JY5,29VY6!Z A E18.5:R(9:Y=G+%V<GA_\97[X<GQ^.3A3G

MCRZ  H,B6]?I9$)XHJ)Q_E0EFBSFX;=Q0M\2$^IQ1#W/+G4,V$Z4S); *%DT
M\\M?S ]'SR]&1[FAR]$&SY((U?>9*H\RHD7AM0&!LTEA:JL4`U7!^^$"GWD7
M#QL/C>5Z;+"F'HON=4U4M9GYU'68PO%Z\,;FPNAU3V7+^Z']KK/GP XP;*\M


M=33#K5#NK46Y9-
M8C%$XX :>&><1N*]\$UB)*%7/#H
MG:L%`,_8+$XSID^[S^F,1' "[X68=O=AE-[3D'I\`>=5IZ1E"92.13.8VNC\


MRT+$;EHVV_89;H,'^6 M.CM\:70^T!SQX4<LF=\'8 %AY>CNTZ * YM_7+!L

ML Z<`Y-]I-W.E;0K/W)S6M'**5-C>]E)CSI1Q",]96!)>IV0WU,2"9<-3OR4
MXYE?J((_3!<QX4GH7=O\WE:<$ $S[Y[.TAG B6%(Q6+?KJ)%4#Y\B9Q3ET)T
M<4V 8UT:>7$+"HGDL233=L35= ZG*^HDW+H7IC *SS\4--[(3O.,#THPO" ?
MR5&DS^Y:F2.J<)%;KQ,+W)V<LL$U2!J5.S>$I]-A*S]J/(:I)\Q!L(^6*(&4
MPWOI/F:#N+GRZ+]16W=^S+CY492!+"['K"+'ZW7Q^8*ZH]DM _J:*%T,Y[71
MOR:H?P2(Q1"^)OC_M6+ZOA/5OZ28[EK QC%]?41?BN?C32+Z [T,]$*\*,6X




M?LG^#O?KQ2D?('UE4V\_3[90OGJK??76^NIMJU%9?[O=`BM"=D7O W) N4:%
M!Y<2AIV0*:"B+T [>(F</35:(I4[? 4IF[VUQ;3*^:IP;H_*58*N"^S;2W4[

MMFVJL) /LI,J>Y>&X/C8JO)^602Y'ZS9^2\Q4BCR5V^J/E!&VZK=:MMFJT^0
MT3ZG?K-8N6;SL&3?GWT/MUG^J.CAVRJ/K$_-VZ7EFL1<F>?_U,FY?G=:EYQ7

M'9*J6YNJC=]8,)M[JG+D)VYG+UR1%7.BMES\Y'9]HK5GN<!Y 7\N,S;3>FX&
MD4.QR>HKTV2%G578866:K?+<- XH:7Z]0E+Z3RO,EZY 724-E-O7F*Z^H9. 
M3/0"SP]_NOJYL+S;$) 'MMZ;[M-5;2\X70YV>V1LBTH)[W5J_NRC1$)=V2*V
M;T 4T$E1'FX"M)VKU9VJ2D?8=4/UAP/H(QAJ3D:R+>6_Y/-].VH7!JVABA#I
MS=1ZKFZ-K6 0R]MPC.EAKZ!:Q$!Z:I:3C\IMD'DJ(O-QI$W%V6O8A[9 RILE

M-0+5>/JU0\*U_GY-R]=2]Y7+Y"9=5BM8R^2EUZ^"9! D<XHMZ[IS5B^,QV[0
MV\^07W/B:?=6;_K[!6DMMX.NMYU,L/5'*[W5I5OA/+RR("N>A5>66"L+!%ME

MNHJZLT&A7*>8$KN% M<M?):+$!M*2J7(JGO4WHJ*0R.OKESS"D-CKRY-UZGO

M4CI7XR<L(BS,OT\=H=3['J5%NZZTL,;_H>N*?TJ(?TH(-R^O.P?ZDY405:<J
M7W )4;W[_RN7$,5K^R^ A& 1J3F.:%25`*BHI<.%I;;8,N%8G2SCW+[ZIW39
MS_J8EX"MKV\::PJ:8K6R!*Q,>#VP_P-02P

MVC>*(R>:^I&1Y<MD>AT-14(2SA3  J!=M_%_/RP>)"A2MI)>'S-W^F!+P.YB

M#A,2+AF/^>)>$4 :DR5-(1%\(8(5J*]S00BD?"[O`D'Z<,\S" ,& D0TE8+.
MD Z5$+"HRP6L>$3G2 K',A81`7))0!*Q2G$Y_/'FXAK>$$9$$,.[;!;3$,YH

M%TBD&4CD7 !/$*^EV+V'.) %ZMX&\0LI(Z!,TU[R1$FT5"25C'<TCF%&($O)
M/(L[2$(!P_O1Y.WE]00&%Q_ _6 \'EQ,/O05L%QR-4MNB2%%5TE,%64EEPB8

MO[N\&NX!7!%DBR"!1U0\UU82!"(B`QJG3O //(-4<1='L QN"0 2$GJK> L 








M4UBD(*SQ. WP/D8<$L30IJP#E
MH XH#H7L&PC+IL*72AH[J-=4%"41WH _*TA"`ND-+/G="O/?D99H]_B6A)*+
M:4I_(?V&`6/Y)'-#N
M1-MN[3X\?TY;A8XH^\$J#BO'CXBSU[,K:16H$:V !9%:2<V66:/;MO+IB+:V
M6Q$EI8["R>A\.!T/WPT'$_0!DJ+5<]XLIF;0?O^N H>LFDDGJOYH(VWB"NK$

M$9W/F]KWM( MGS:=0Q-UA,8NI+"FE_XBW39$'%,^B(QI54C.05<':X%/XT4[
M00TOQYZ]SD;GHTG!UDR0X,8 /!C.- HR>WSDH9V/+CQ/M%B-W.7;1W! E[5D




MNFU8!:'0/;?N&B(RIXQ 9S<=G)U-QR>7KX=GP\F5PH-_-8J5_:+=GDY_ZD [
MZ<.FC\'$'*1 X0AV2G6^]V,?F D63J34:L$SG:>>/\=?R./6'^RO]&=,PDRD
M]):X=JO"$L)N_<D#I+"5:\L\\[5E,(N)<?/U2(FH(#K<0'TS(-K?S5?/D6JC
M1T-U*B.MOFLJL> X24/.4II*L\6YXY $0J:'P)G=*$A!20J2(UZ&^YPPS%89
M;D BN*-IQ%<=W$$5"!%7\(Q+[,YA`.DJB&.(!+U5BU%VRV_4](S+I5D)=R8I
M^2DC+"1Y)^MXT]VX6>008O3J+-',N_8KS18+DDJ]X](3!A >,\'4P#QMB2=,
MX;<`&VRR79>U=8NEF9T1G2X*]EM FY8"2.< :.-?OWD*;HD5WN4WEJT,%H).
MY7WB-*B_>[AV-*4+%LA,$']%H:.'3&]P=V(!_3%77+MM2 G!9'6'>[056<V(
MT-M9:S5=:W'O%08IR8NMQ[8KN781]( L:;*."PYMH;&N".]'5Z\OS\N]+'C9
MOJ[7!=CQI._DOW*I-X'[TG: E_<LF)>?>?R;^F3K+!K2!_26AB-;Y<?#P=G!
MVQ/X^!'JIM^>'""$2_.U:?C7<M^1[!Y'5" %_(=%8O?8T?26\/$\NQDK! EN
M_5._'?($R+6%)!7UXO?.CH77H[]H`.:M](066B7M:Q>W_K *;DS=U6%TL S1


M\_NXX1_ A\>P7PPV&?S-S;00M^=Q[Y43;"Y=5;<%A$'781KW*&^E=<?ZT1E[
M^L_AR>1R7&_OFL2B6&E4?*9,`_[16/,^+=[AANJD<_M:"UR:K>S1=$(3Y4 ,
M.9.4920'VAA<)BYUV"0U[BU</ZH5]<<&8%TB_[T#T+07:DCP>P-%&1XU!7%3
M_+8P[;;!`K3AU?4;:')Q")/+UY<M ). 8?W5!Z7VI,I*_P]S FS./F?!++[/
MB2B<( PBLE+ /V6XU>',378;C2JC#VOGEZ:58SSOYJ2X!VP,0[Z:41:8K27V

M795KDG57GO+X%OMX[/P%G\5DE:?-S\_:;K;I9>_UOF5]RO4L/G%+>U-/L('Z
MG]0/6+-\5D;:*AUMUPP\^=DB65E1-N:KZGSIL,=.;W&04D[B&.+3&9&2B()&

M/GX$AJ<8#O5

MDG(A\8V$VUGD-1C/]C)VP_ = WF :DL[^KD)9_$]T'E. ^$&A$?1[BYF`E$A


M>#G
M&JR(-;)YKR.7BEG.0E*Z044CN98_E[[(-)4L`R4=U7!QAC<$Z&B%LW A2)IP


M<ZX-%:^VG=V^UFUH91]+C078AEVDU1[6'Z\86[U4*\>FNO:)E<WN=M\,+X;C
MT4D'>OY*=?UI?4%ZLB0]792V+4N_I3!]6FDJ'WBMGSU]^OWKH^=$GWC_^IM>
M.#QU2%04.(\-G>BKT7*T(5RJYT9ZP6600A K_J)[M3AA8&T9Y='M6\C>OKG 


M:/8NMGR#GB
M N#S')V[TH2$=$[#YN
MD:YUO-]AM^M'TGKR^(+.6?[0=W Q>'4V7,L-Q?':\/S=Y7 P_G"(+\GUR5K-
M#E[2&-^2T]1V>OHU1M%:/9F(W+/A7 C= S\K]^ M;*!*$Z\&)]_KF4>E+92I

M%V(K)CK%XPZ^E5^7G= XJEPE4\KZM>-*T*I_^O+4/LG+']DBX;R<&:HM9YPX
MYF'S0._^VKK#XO,"SKV=U"G8T&GY6Q2M$]LX6S[Q3:=9\#FX9\!)_AJP-A-L
M2L:.=;2_(Z^^.T.:K90 I&DY<TFIN&3XS(7+BNKI]:MCN4,YW]"N81X.5GJV
MM>>990>H;^YL'UBF.4^$`C D3T=G0VC/.U#W,+$"/3=7*65R_GP-D>J:J8RT

M````````1D945R]02P$"% `4``````!X9BXN````````````````! ``````

M``T``````````0` ````1P```$9&5%<O1D945RY-04M02P$"% `4``(`" `N




M\\FAVW,-``#Y-

M4D9&5%<O4D9&5%<N34%+4$L!`A0`% `"`` ` GF:+9E 83AR` ``00\```\`
M`````````0` ````GCD``%)&1E17+U)&1E17+D1%4%!+`0(4`!0`` `(`/AS
MFBUU!*GT)PT``%Y$```/``````````$`( ```#T\``!21D945R]21D945TY$
M+D-02P$"% `4``(`" #A
I20``4D9&5%<O4E!,04Y.15(N0U!+!08`````"P`+`(0"```(5P``````
`
end
Jan 14 2003