From: (Stuart Craig) craigs@crl.aecl.ca Subject: FFT - standalone Recent requests in comp.sys.mac.scitech ask for a simple stand-alone FFT program. Attached is just such a program that reads/writes tab delimited data. It is written for 68k w/ FPU only! (This file must be converted with BinHex 4.0) :#P*PCdC'9#jcDA3!8dP84&0*9#%!N!3dT`#3"$ZE8dP8)3!"!!!dTh*-BA8#r`# 3!aErr`d!"P*PCdC'9'9KEUS!N"AAVJ#3'[q3"%&38%aQ4R4i*3#QPB$PTT@"N!! !!'I,!*!'0#%!N!4$&!#3#,rp$J$eQFa@CLZ68qj#1H9d-r(-6%ij[66CB,-S0pT TGXPAYV*V[6Mp,XV6KBZRRHFaLjlG3V1,FKHf[C@GaidZV-k&FVGA(1jc-EVp2(S FmZM#FV20)&mSBG[SCTXY(,,FE''3!()ARQGZYLMGaM*+f%+l66H&G'(RTUdT8(8 0qVl,bqAXdL-("FN!NJ-*22+3!%!bJC,M"+i(F!iFG-@B`"LVUQDX%UGQ2B,rmY1 A9(Q+LXVfDa$,,bjHj5jUE)TLE)&mLE+M[[2VV-RImdrkhPFLRKrpVY[252MGc#R !Il)XAaELTq@[Vp[5+#T)[djj3PD``Y*3,9j-9e4G8aAPUUrb[XjF`,qJTQjc&6- c&VfUBSYh`mEAf5V'G(GZU@jNGbT9lF*%YlVPPG@0ZYAHbMVfK@#IfS)YMD`FG3[ UkKpJ"@LVZ'*cBa9E`aZXUQJ)0R#l3$3-p[+,+@80&Gl0lVU'@Lf!Bd@-69hKh9V 9X,P+T2J+S(*A06Uprh9f&eS"bJf0`IV*,*h&X%VK0UB,TKK&+LXU*5R19V0iGN, B`AbV9b1q41A0DL'"25#8kA3ZmdSJMpmY,)S9#aYD%`SU[0kk4V%1r-MHA,'e5R5 $,Z+p&Y6)Z*P%3L@CZ!BS9GGjaIPQbhb4IPRLr&YcEKA[U'MBX"(9NUJB%A&&JA- 1lp&A9,)F#$-0fdND&ZeM4S19,6#*E,CSBK8iV9EPp2N-G!TdXKdM@VCM@-1%LdB Qr(+3!!NMU2idf""VBVTS#p0T"jP18%q+4H-dJ)["dkLFqRJ$Za&Ra5@jTdIKhfF mr!$"9&*HS+05aFK%0PqB*r`0fe&B#*km`U)jFFi+@B*Hq+*1ieV*iaTf!lYHZ+I 96$c-Vj!$UGj3d8KFK*!!L&ZJ(3L"T@89kcPljiPVL+4,H1d%TQHh#SqhEPMKVGr 5Q1hDdSJV,l0CA&rPUID+peFhEN3(9@*005jeER&$AFf@@UrB@0e)46CAe9Fd9$4 @9BVV(a!E+pC[&LZmP@*M980YY6HB9L(QEQKBTLJ,1`eFr@aH1kFpIMP!i'iJ82U GXSd0999LC89MKGVMCL"B8e0h[i*"-1GrG1cP(IiK1R`'(Ej,r+LTmRV3c2h9068 !@+bSh,3&bSckG5KDAhGr930K[-!XLL[FBQeGJ`T)imB+VeTlRPMG'+VIf!#63&d V"F')c4m9I+"Z5kLLThTV&GLc%9bUjba&Zr89PCA9AJr2UJ+B('q,+)+r'alB!1* jP+EF$A@e[!LR*U@K1-@*X#Ur[J@dp`(Y@iU@jjHY,PQq40`!*0CAE,M2de#h"Ff ""B!`ZdlTXM!I5Rh(PTV'kL,BK+S'F`A[iUr3a8q%eYD#6V(8,*DCaB+'LQU2)ZP CBVjS4cp9$AG9J"pA&DH)@&aB[EQaSAVp&XVbN!$BIrD$[11Ab#Va2b,F&lD,E'F 8ec&%DP6IP-1q#H[fbj!!ZZD`UBMISp2$#QfSUZ%jFE"kUHcT0Yembi*&2'-'UUH `dYDTBBeC!M[1Dch$8J4pUc&prZ+&1BYJL*V-0h0eG`'03r"VcD6ZE#h6mRUTc-X +fDXkA5RX&XmS38B$-XB4+''ab,PA&jfr(ZTAjlf$CaRB2+$mI1YdUJeY8XeNhUd Fr8*@cGi9DL2SYi63li,KSpppl-rCSqam#2hld01MV(bLp`@XRYRBL(jkFB8U9GZ U'ZSfmbiCZUaR'pN[p8Q8$5PZU!T+@$9C$#jNHEa50"#rJIhRe[L3!1X0-NFaQ$# 0l#CBm9GETaH5qS@5jj1K$*[CKlQCcIfpQEd"'0l8+(UU'J(+(ffTES$XeeC"iam J%ahZCaI[Cpl[qjP#)PV9d!$0irc+C"9X9#L0m1Z4%,q'9Hrf2(Vm)C-LhAb,IB8 GBZp1-'`4H(%lqiiqVU4U3f1&el1PTU*"62I#KC&b-1C!rKmLrrUbKZT3ZUfL!Ed f0YjFbfZX3id'GNcr"b89eCZ"G%(GCM*`kABiHV$aCQ8'X4P9GV&DIE5pSKEqbB0 C"H''V#GCJpjJUi(1eeBS2LS'r`cfXpDE5UYUJ)YB@,@CFiL68aNb%-f,i)K)pTG XS*UBJT!!VLPMMJ5FkC!!U@9FUaJ6jkARJEHGJicG!FeQJR20jG2f$aJEZUQ2L@C QD0!iZeHHbV*HpYF,+HE,rTqh)cB5bZb(YG#AG&hffleqPSemCcFl@qc+fNkpA"l 1mM,MjIlLVX[p%T!!3*eKLSRQbm0lZbk2J'TG&([IPhr"cd5,JD($%A49K"i(N6R iJDqhLaN42@0[BJEdG`CR[l0lQGAe#q3TA3kJdJK9ZYb25RhSe)41eD`hZLlh6ID )cJIU',-JDb#FaHZI3Ih6DUHRFIBjZjHq4Ce+A4+6E82*[@c9Zi`jlh9ZFDk4"d) m!FUf0VV0jSJ`RB+-2+,HKi%*@#)2LfBCb$-$N!#A%"[Tp@9Cj4&EPq`RTXM!A"j jAm9F(N$9@&6ePhI*JcL"U1cIfb86Ed64LfV&Eaa*`6fP9BQ@Y#)kN!$5+Kf9pPc "+MH)&AV0jEhDF62)IM(,rkV%STl!q4ckXjIkL0FVqNX)Q8)PBiKCf9"ZQFqULZS 3Bqe$jNDIA-RaCA+jHLp$GeB9DbYU@i&@)G$b!KrrN!#TN!!0QF[Qb'9+Y"+m!ED YNhN8Vf6&3"djk!Lh&,N5h5)'CPVYAMRAf5dq9ZabI0Yr#1TMUKI'XCCDKXa@*KI bMLU[S0E"85ZlJT!!(3Ljrbp#k4mLP$`33XK3,d!peNTINTL1HKjRe!fc,jF9CXd )-iVh4,M086dciIBjhPdEFK14'i`ra@Xp4E9#'&0HadFX*)aIj2A!!5"*YG1T)p4 Vcr,+6mY2i2D8h)EEFr,6Z,AccPJHR)(5'HUe8kpjIC&H9DEmrl`*Xf6@Dj-X#5` '8a`5dbCmTJ02Z[iA6kLH`SfrUhrflCLPId5BjIhXpUliE6qcKhARhlRbZDp0FQ8 X"P`TNTK![Z#rFb@XT'Xr'i!p2'rYacddm4l@KZ)qAXYhVBG9[f(Jm2pQi#THMhT 0*`43VaAC,I*fh(ab%fjINPY`DeAaQ&3cBZ`T6YRh&-DL3LZ[X(mETIdaXTljE!! HhhKLNXHAEH!a!`Y5FBUMDdHPbiIp!i'%Zha'(qf$92Eh@LfhXAlRCFDiFc[*Ehh JcQRbZZ"0hh[Ne[V!SY11,VN2RHQNrP*%NAY5bA9d-42beQCY*ff3!!pQEEG1QAe CIN9eJHL"Hfd$DJf6*bAdAViJ$eF#&h,%L)m!aj&XL[J*d@b$Xh[a+p`GR`!1FH( 1HY61j*0b,b%3lXcfEIpVk%C`GXHH+AF"`5-UqiqJcK'`rh30dq5JFUpm$"Qp(,Y HlZK`+r2*Vi48E@r@pMc`3ckMHXpqcYLp%cT'YfZkTGCl'[AKEH5Re(L,HLGY514 pa#TD"T31UbJG"LD(J9*[$42++4C#PKM85e%iHE!(p@BLiaM0(hLZ%KPReG-8Jem IiBSaSc"pb&c*i2'jDP"HqCp-C!jHUCFbU6X6&AQZSMhCQ#K!GmlJ(("fhr!PiQY BLfiSQY5LN323)[ZRkK[*qcH9r9Hr4+LH8A@@BTJ4"CiQ(5J*HTNjeVZ$c,Akj00 $6#H#PpSKU'@Q0DJNaUq9Zq#'$QCM*J@d6cZlrb%AU#TkYjeVadQZlN%R'e53!,$ f445+Q%lU&Q(USJQpIq8hHXrc&-j*Q+L`i(cPrbMV`RX9CDd(eTG%jjV!XZ!%Cl@ ,N!$Zf'4*AQS0M+V4qhKda')1M'+5mlc4bi6!L"ZU[0U&qGi1f`ZG$jH"*5`Y1dY q-mmFJ#B%r*e&pPSjUD0aYBY($j5jN!#Ge,%C(6b)6U"L!V2A"Ni3cqbeBr[Xfk+ fi[kL[GErPV-l-4F)*@4C!aFFAB%,k&9bC!91J(2Pk+,2jZQm&IH6k&i6LJLG5c, j4-ar!Rf"UGDGjDjXKQ`4X@A&,MA,@Hl+(ifk-G-qGP6KH-b"FM!kF!(G,9&Vf-Y G`1-'R2%iTbYC@4h!a-3ap`(c4mV8M[,mT"'Xd0NGp4MZ8,kSAB3N8$c)-c13!0' )XaLa@8`6'**lj#2b+D-9rJZ6DHl!cT%$``aRr@UAa4XB+@h0-h3H-L8$HGrGVXj 8F9h@4[Cdi$f&1@#"1I"Hje[)p)Y83`p1NlU8mE`I6q54M`-Q#rFjV-L!LU(#6j! !NmiMEa-Qd0#p316dA9CJSVZ+LIDidVAfUq#,&[`FY,e!Id4h!QF'R#["M#4L+mA "$bdiIa(R@CbR1Vq-V12SpUbcHjk6H$M'1TZ0A63h*YCTLbRIfAhG%[$3"iaLd%& -ja'T6FQlE4Ra'2RlbPhSdDC@YQ%3(NXa+`[B-(-eUP@Cr)8XEm!@'",0JD%2i2' 8b$GRL9$*J!2p+4aq@1&`jc$T"a4PLDSX5cT[b4r9cJVVJq'Vj5j9@Bi#cb+F6U$ T`'Q$HZ`L95$Xml*)ZHD9P,RbXJ)RE5mJ&V[@"9Gk!ZG44FH%8bU$CpUk!X[SVNa aH5bQe1VTacQ3!$qUH6A5rdcJVP3jThM&`$R1!9hJ(1BCXB3E9(HJFiPdKXGbQBk V)YI*cPY8l)L"b`Jc`XlC2@6R8flJ"R51reYrYdEkLl"&44CUrUY&(AI#mCdKadF U+!f4`QGRMAAKK-*V%R$U`LSrmea30e59hkkUI'2qU$!FCN"dI*L"K1+3!,Q3!!@ +KQjUC*0FM*A)05"R51&Lj[UeF$#KD-0D-*-L'9eKMQCXiKcPr!`lJ0`LFJ$#(Ta IaYQUC0hmr#F1i,E4FTIS$6MDNe&VRH)iEMY@l(*f#p["U2UX@[qVJA036+kGZ(9 cep2%(P(dm`p5ar8cV)fNejRH`$QDSV--P3'(&"IKAqYI+craLBYJ59!40PUZJch &I3p&,hI3cEmBR-dCRfQVUi29fI9mcHae9PU'aE,5*H,p&G@0Y2$4a&Gh+V%,`[F qb18'5c489I$&YQ"a[KNULU(mbMV+TTfTL4m,E36aYE,AQG[GD-C'ElMe"U9eE1h 949UMeL-EVdlXf`Cp+ac2jA*SqH4Q3MJrT%fN,KRfE@bV`Y)PDF@U*U4r,D`*k@X 8h3jUA-KV"L1#iMT*Ar0(fHG*U9$[%#PTH!UPZaH)h$+15!5mUbbMeES)M9"[M6` BGZA8-kBUJp!Jq!Z(9ak#-XHJ9pT)-5FM1bqh3d+f5&l*NY[a&pmX%JdTbI[)6aR )jc0G[B#j4YpYfeR4f)Zi9Bkp4"K$D@-blB(MQG[,PTHAMHh,h(lRmX,jBeh!99( JfPqeGhMccrY2&Tcre6ca(I%Gk"Ga))V1MNjp,B[hRq`)j1A+XXdM*VF[k)c$RXl *cQ03b$mQ,pMj2Ql4RHrI$46**FMTpLCCl[bHZ#l6,SYLV5c1hilpZN)e-S8jL*X GQqR@H6fr*5[mj3USm3qU5YL[aJH!6RqQh6qXaNIiAH[hmhZ8[eZ0[kTbp%b3!+H Nqq2m$#[ATl3%+re"9RCD#&&S`IFjNQmUq+V4Nc`Dc$h0SaSe5Y09[cVembY15rD $cc69mf0Vk,cmCMDfKU!ZRjG1ddc&rN"KbCU5cMX31chT9$r91fIh@!pBU*0'aa' $rY(m0S(d4*E"a-2NicXN2Vf*kp`IcZZX,b2h8Qr*S[QNN!#,R&5FF11,hi1$le' RNS5LT15PE94FqMr!T52VAZS#1+9fIJG41(cr5DT$'HL"6`U4Pk2-0Piq,kH5Cq6 eNT%R-ShF*Mm[(j2hUh2US-2KNfT81'V!+Vj-DTj`Yd[-NPqcqr*Bjc)aQ@0JjKJ m6iU#hPj$P4KRYkBE15CHpfq4JGQ)KLBb2Q91&G'F&+VlKKppQl)0(Ap-MS$Y!EU 81bFia@*fhXRVk#5@0!AGD*!!&DYU%m@aDm*5b(8&$Uh'6AEbQadCAq+4pHZXRZj 2'4aLKNJ+VZMIC+f`2m!mdN!iM#-jJH'c&,@NXcL9Z8V8a+2BYj2pHQ*CEKkfmZ3 4(S[2BaeIJ8mDGAEIP!KhqqXDXp8DraAX[aLTJGUK'QDU!IGr&$91B,i$jD8*$qj (JGK1mM5KZMq-e*h,Bca2Z#Q5Y`$p[%"91lij8IY`T%DD8VXA#RqYVrR"qQ"8DmH h91D3!2+!eH2m+YYB[4RVVf6@a&SXNG0bpfDq'9P9bE!iApH!G@TbU,5#Vlb5-1& )3hV#&9YeRR'%1q%IR-kSI"M2iklbRj4GlHKD"APrX)+k&qL(bk$Y[akqdA'3!%q -$p2%QKRiC(dr15!a&`,"P0QB22cKE'amLi)lP9hb%6J9c&ZJ(TJS+pjj0QeUa'! la)m1NRJ(Zj31*[IRX-9S-TVB0'*F#@ES8NH`*mcbP'PbU+ld'RGAZXkr%YGPQcV Za(4r@"iNE%d-mf`c')cCYYTr$[92F6kKp-V(&+qX05,2K+k0)[BUk&lHLXLEL-6 MIU`BZj!!(eE9d&EQEkV5j%NqKVPm1Srbr4YQA!d9)5A"&**f(klf`bH%h-GS`Bp C(hC'2C5L[Y40I10)dhlQq1i+l@A1T%e-j!c5*LEZ!h&Y%QhKM'!cK+ErJm6!1LE %++aZ3e95Hj8V+PG&iN3-jaddSTBfBIbd2D,`5dA4q5'+3Xm%L[2q#8A8&9%6rM1 kX0JP[I6[Q2)GM[fdS`(GBVVdbFf0-K'jelBf4V(rJhf2)8+69&99XAkJmKlBF"L cb3Y`XGJK3UH(fe#&A'28+H4XBfrM2%'j9!fEFIX)pmMXMRK"XlX@CABhGD-bZj1 2M-rZj#2S1eC9BZUpKM#B9$3qm8A[a"Z9GdA'Ek1LcNmk5RXf"e2!VK4XrmS(D3X (62Z6P$CXF4a%l361`)2%!j@$2#DpK'V$Q%4badK-NjJI1-!KR)RXk@)("9XMaI) !Q$NJRe'MrH3C9*CLP`3U#5EZE302ip&92l,k9Ih@JD9+6GSG'M5Cl$jl$l&SeLk DiT2M4LqdNa!6h&0@0SbC#Gdm5$@aTp)2Apm!e4T'2GZ92M$ejhfNJE&`d`P2di` 91)-YT,Xd1`&fJr)CY8rL5k6qj`,"EB*Jrk3bf!lB&X3"Z5*LrG"*E%B"iH,(Hm# aH0TiaZB-X+C+9ec@QL#(5*I)$`$"H#"`,lQTL,YD-q'X"Mjd9T0D!2iRNB0Apm5 )JaQd)I[pi!BKCYhN2G"aFKNfQ,"PK*%CGBqGVI&0@Pj(3D&`cSI99!FcJPZ+JTk -I8MHem3Z'eAL[R%pe'Bp)LE&Hj&R##Tff-PK$R4ZdK(Hq+,L#%R9K&R+$MTdKV4 L[EVA"+3S'SaaA)D9,&+cF!hLHk6'#%@JdAhNDjcGdaV3DFie9#QQB"[#@8r+E'* 'j5k[jhFRjJI+IC!!A"cY6!(&Hq(D@[QH&kNbhc+C[JpZLFP@G$d3aMRa%1(-2FU DhhU804pkP)Y@lP&q#Ji-"09kA'[QcPpJAP3eCH)klH-NVZh$39h#h(CAPPh4G`G TR+QHAI(JKV"+*[DS+QNM&39(rI))Gc"DH4JkR869D2Z2r)$*Y(H'b[GKkC6UFiE "$chQbdr$cf2(M2Im00clPm6-,-*PC')U-9hfUjlX#LTm1M&L-1-GM4KNaf'r&20 &CU!h$1#,cr*Z8ChdR*69ak3HHM0#jQp'8#ejK+)[l`"#4Mlp3@9e4[R9FAj`,9) G!@%"P10)Bi#IdA53!'89)NG"Jh50-'M!l2$Q4B3$ZKP1BHqhpZliH5[05cL@j#' (H3eX!A'A3dJ-)mk8QQ!3MkFIHjaF&H*m%Q8*GHe6hIL`HcrPf%bIcRk)AbAd&S4 ",(lj!M0LDQ+NU+d0qc`*Rdi(U3)TU+UNFbJHG*1)ql$6q5aA,I)Yj2U3!(fP([3 BpDL,B,88ANeaje664*k-4k(ac+6X+[i@%DlTecUF4%6TNES,9P13!2N%%38rkPj e$a2eS'+mLdK[d18Vb)9c2XD[rbUMS1VN`UP,FLGUKZUjAKPkNQ&21e`*VL!Rj01 Hj+S6bUA*mB52qr91+EP#hT(UMMlX#5jp22[rkbU%!ffD`MH"4If42X*C#YYT&hS 1[rPiaV1i%Cm`%`MaKc[dhqN4+TUZDNkN6h4&fpE8IDLMB"kfTi0j(c-eY2&!DJp RQQ4l!EIi2$0,j"%66L2fVZVKhK,44C+$pRPA8B62c'0S5cE0KTNre*UbmY+CIM) lhXGRMXSmI5*clS!b#rpA6%3&N`JD-p%4-9MND046*0,9ISj'!U&*Q5SLN3VAPD" qV)VBVr126b!fhKXf,cp#l2Q)Te`,6cQ5I`&lcAEjH5$i)Ma`&b')'5afB$!CfmD @8ZrBkNXN9MR-FKGYCq5C-@R'"N@mD5e0h*l(,N9#Z@Zm8riXRN#l0@'R8q`5eh8 1AF($(Xa'(fpf0'+#BPE`j[Y%frPmb%"lXM+BM,1BAUeCDTF[,Yd1Ga@`B@X+#*B "`@0maZ@9!aDc(0MVP5pLV@daG3+d!ZKZ'#G0#dpfIKREcRSq'BqhS"kmm$'mPR- XT4A9Kk5$b"P#2mAKl5Gd'B"r6*!!l9GlK02-qFFHShL2-m%RD+pXKrHdNd[(6XX '6)@9RZ,PA[l5%D+Bb[35(R#"0%r$,LrIpHiPeNrf4Kha,D80dQX1,dZK,33&"CC Lmq6P2L4h2NKal#VJKRdVbP@fc@LhRfBGICeI4SD@cSk[8aaSqqRXk&5Lc%4Rapk 1BZJ!CJLGMkXiiq@Qm5iicV3jrPLBN4ma%9[-rm+5"@SY2L9&E!Lm6c$K66'm3-F @U2%C2K2Y#4Nj6lq"(5DD)`l34VXmd#PCNZdp9)hia4N19!5GJXSeMH!mNiZ"c%c %k*d%VJ%[[d(6%)RfUimUl#3',Yf)UFJ3m42S$K)k3#S!MUDK0QDHR+q*T"[SSrH 00k"2["Sk(C4k8@r3hX0hqZ2TG3UehpijGUDMAZ`pp+U8A0EEU[IK98Pk$q*BZ'Y #V"5GdAiJjM)CULSFZaYS34Nd(bS$0NNf5-H)%iT'N!#lS*l*&E!86-!`J3h-3rk E(CXT6c4FdH63I)Hm'+E"j#b-d'#G-NHQ1BkbPF"5JF3)H--R)([Eq!aSmR8PHSr J!RP6l$jY+AHKZk0hZe*c#eb&bl-e(*rfe(AciM5lk$A2mPhJ`G(j692J-3SZb2i &f,fV`"Db*fRfR5`epBiRi@i-bfBlQ0LZNHJe-[j$&3&2)*lbf&2[5*q'b-&d2@i (8S[5Tch9,Cp#l-9d25*[)Y+qI&3qN[ShUEYZ2mpdEie-@G5Z5CPaAfbl*RA'Ql[ 5GKBrHZIVQ2GJ'L8F[fqQH-IMk&Ml$9[jR8GN[mi(+*Kh#,YmC`T'jANTVI"3UE1 2X&lF&q0q"1FaR'm1jEEajqh!J&&M)0Z3!$mD#)M&4NUDjY(cQAkXZ-kjQ@HHJDH KM'Q8dDj*Qh'IX9f6-H1GIHAXcKr*&jeE8TYLLP0,hMc(%LaaYjpMQ[eIpqJGA`F L)jBE&jHqIA4IUFIiPTmCNA(4jX-d-*2T0$lLNe+jGmrX&8cN,ihT@#Uf-38fElD 9QGXeYSeXRZ0ajjC[ra+m2'Ir`'4*KG[+Kjk*KK+I!41Y01[5lB8'q@+@3ck(F`M R"CUY2L6,&l+RNXH&lTb$VXa-BlB&18c8dKEJURH0"N9,a[VX(b4EdY$92(KLFXR Sd*J3jqEc203CS6SPZidk0YG6P)BFXI6P[mGl"8DaY13VTTCkCY**XA6$U`p6i6J ea5iMU54fS+-fP65M%jfSP3iS(EJ2C4A)rQh+A"*6Li4%ARqMiDqa3c'%Qb!0i+D 4cZ+QPIV+GiP&DHP3XqBD2G8SE%j)P0E`kKCjC#Z6%N6Y"li'&UIVhG(Eh0ZFaR6 0P+[dPArqFJ8j&$XH`f3DpjY5%RDc4FmhlV*kfV%&q)bk%lJ6mCHNI8"Q1!fkmXA AJ*6CI@p#)ZiClTRM'#Mj`-$b2hXh)[H,VhN-3H60@R5hd8fS4NXc%D[K-Ed8JpJ U(M-N*'BjQ*%cK'NfiTf+4%-8LrE%%L,L4YP[kC)$NSJFI6J('a4qb6JH"9*-meA dSmZr-$DFDMFq3NLi03pLJNbXGADE"PAXUUiKamTG(ThKKhJ'0)TTH53+%B0(e1r LMb%A[H%(eBIK23aMJq4!aJDbLXIkTIKL)-"cmET0'@C)'pPBIlBf1cSl*YXm0SK c!#IHrG0kMA%XLei3F1Y,GJ1P+$-iTQ'5J6"-"BECQ2)Q$UFa"6IJS6r`5*dQ,4V ZXSGU*+6,XS+XU@8VAV`4AYaUN!"-E$Qc0c9Y08R%*0e@BP@j'fUZ15dD*$hZlp1 1b&JIC`rR5aCk(6XM*5&$0j%4%ilah&K(epLC'N-KES3A(0%iU`6+GZXFMhK5422 BQ43Yd1X5[@0pef1l1*64JGl2Z(p+Y4mrQQEJl2)#ScTh[+2C%`01@$b'!ir8kXc DNNHN-Q3fHI3F3c[b#hRqXJ12e*L!r-@AMeBDVXpPPT*QU#IH((8RmGNf&0)G*fV ,I0Mk'UiaQ$%2Arf)G24k(G8UDeDV$ipAPfUJN!"ci6lhFU9NBdGTChEX-+,B3JM X`hdUlV[jILerff"-ZC'@XV'RU9UJl4k+VH%eY[*E)a5@"5`mHbZ23Fh',*a0kEK &HI4!)%XLI40i,&1+48c$Bk+N+@dZDAiE@XE4C@a2#&mElb(A%U@aXM62)Y@Ea(* [mM@S@BBXFhH5U,L6kC9KGm+1`5F2PcC,Lp@U*Pke5lk-HQEjXS4Y#EUVP6-LPIF S@`USMJlf0RYI0@Y&E@NcI,[jG`M%BT0ElF-K(58m2FZJCC0e$c+a(U0)LGje%RR 9Pd*9ikrdrTU%GH&k'EFbbr`&#aGpI[%Y1EIQf`S+m4"i1+&LrBE++VHk5Cp-,M) q!h00#mhaHZ"&i4GTbr!KfCe114SXeAKdp9Q5TMicMBP4T3m$@ehm$k9K@ec3%fk &UYYTjqNV,!k44%5JmX`3lfGCDZD6c+P'XZ`jPikM8N)S2ZI5)D8H'(JU8ZA3d"1 4+Q+`#Y6T&"aU%ZB3-2a'ZQRF#Bk(hCTYJV'CTM+eZJ-2efUfbqP4m&18,lKMa+M HjR4@dL,TdU0+@K`YYHA'&Q6'eqRUib@0U%YK2mGHbIZYSVAJr+9$Elc1Tl-*3bB lBCX54$5%5e*@lD@hm1j-lD86Q,I8AMT1Z$Kfe@R3fkkk"A#)k8$IJY-XDJYpCPE kL+2&Uc&(LG')q$akbTD'rZa(NLkYS1445Cr'Gf)F,AA5JpcIX2LDA"9lGAFTZ%q ME+r%pr$AVr"1TCe[2H&9ZbclXj`ML%XkkUqda4-R6[A%P$iU6R96KKN1iKPN',( T%m@5`@2#CkSlA@'4af$F4FVL6P$bh5CM#V1i0G))A)ECSbRClGL&+GbAN!#YSqV ebk%+9I%p30Y3f%aXjheRLYS81$FY20hefq&p`P&[%,Y)cNkSLVDK%T(LF$D2Eq5 Cm(cA,ijN8Y`CM0[Li"kfB3kH6C0[[1lP#Zik*&[-Q(KXCqR3-!QX&!YTRM[KD(A ZIV%3qe+ci0$diZdLYSPS@b2i#kUE8YRH)f9X&k!IPSmkd@"'`V2`'ScC[9Fb`Ke PHNl!j4b6HY@G3QAV#GX@UBA!BlFTlPS2jp)F9fZ9lTESe68rh`dE`AE0e,EGT6j bkKS$G@$[`D3,6-#EDYKjdFhKld!Ufb+id@i3EMPiBGB&a6AcYa'Qb@FFHSq*N!# @e9d8E'A5rL&l+"cAPHlqlZ(+&Y0e+UDVP[mp*M*Q-DEY8HTHi2K0GNrl,'A2m1k ae9,ZqKMM9p-FNLCe*@@LVbU28BdXar`hhT5"Z6G&Xj!!&iaPZX%@c0)%`Q+b'rL [[UhXScaR"PaBF&-XlMVl$[X2HRF%Tc)((Ul*8,[1FLGGCGa@&Q5*C-"qi(&SmcG #e@cMA-b'HfFlq4l15(LE4pQ4!Gpfd0iMCq"M,#E8NhQbJ`TVC,rR+Q1I#"4$QA4 3TNI"@#0rZh#L%V4[V6)$0LPc0)iMIrP`"2124,8IfSC-MEb51&,5I)!f+rZ8I-a rq343G0%%9@6Y@ALI,3l[T23AR2H[ce`K$d"ITq1P%Sr0iqcq5H*2rGLBJ3ESAS( UkR!D1pX8rBeV+rp6jaE+3Xa0QEMILhXmlQY`6m,GfIQS@Q'p@Z%,DS85YB,MAIj Z"PIb[FT15ea#qCpL3V)AXp#iqCK+i[fZM5bahB!heH)45@Sh&[3c-H8#Ld[TBV( YdaEKE85U1`0Eb"D0[8HGP[G3PJHpccL#9qJZb$fc-Hd-GY4qA5U[b[-aABV82Bj Dae(&`",DKA#@fL-fAbKr["G#apB"A"MfhQ)AG,#%%#)eiFk+Hb60R6f6rD&H$%h 3d8dXGT3`p88ICJGckpUeNJB6F15RG,$dMl(KeC&YrR8f1SS")RL$j#SE60dIXH( k-"Y-Vi3aXldJeQ&Ihp5j9%b'CS$*L[BDS,h+r!$FrL32M,BJcj(0p'lGXd@5jJ@ mNH6FiQM52(CILL@AY6eEP',(r5pH+2V1%BmTCCficT+F2D@p,3q[iU'R1ZaJB!X Ka5lTYGG0e3KiCiQChV1@@T@Cri+$f'*UdR3Yh#i(Q-DBMSGAThKXMR4Qm)V)NCQ 'GfTC5&0ea+DQE%T&6)-CFj+YQPI8S*E*Bd#@$PPkh,9-JebG-BGTK'a[M#P(b#k aAQGPdEbA@%-1dde0mHL[Sji-aUBm@I2BHL8kaC5MQC8r+Yqc!([QHm@lATIp*IN ,ml'9RD0jr,k%Z"cK-L#FEK6iG+**FrUkMGLqRED`5@0LXBiQlFAD3R3HLqUj0Jm f(IbLDhi6(Ra2U$Fm)lP6m8Vr)MEcQ@KhiZb0q&i#bqcYbdY@V'4*p3+bp3XhXTN X&NUp69b4XQkYDpR"Fbh10iK"f5C&G@0I)pA0Jq,L,Z*-afQTef!MjjbLjV'(5-f aAf**V@1QY$VXbX&lacl'Te#YH2A(P9+(rFYh--HGLSVcF#lL@b,RH*d@AZG"HVd "6TTpe%NKVl$X0jeNXecFVI`&+k@M"EcH[("(LSqBjZpS85+a*N*Xe5r`*,i1#Q5 8p(%QdaYa2k$p#f8MC0-&+0mSf2pYHG!6MhGi"N9-UTeY&-R%@`V5@@31BaT3Lie KFMASDSSHZc$3bm"aq`F*I$m#-`AiICX*-lNPK)R`9+V9i5['I2bl2h,2JT+b,(Z JchB6AX,$bdc#'V`SH5E0N!#kFUe,bV$&C8qY@*!!aZ)2XL93L-HiBih',*ZQ+mh ZQ(UD1b53!0+#$HKqkN94LeFmcU(rRQ$rU5YT8NkqQ#B*MMK2r%G1qk`McXdC0ZA "T9EjVI`,J4jX9Cf`Q3-pf)`k6HM3'b(XU,dRRG&QSLFfXe!q%qiIqdC[B8)qZ&9 B@L#IRUJIV2fB`lV@j8l*RJUN%6Hfd4Y8&E1)#fk$@Rm[jR@[CN*rjEqMlU4f[VZ LkS!b45!hbEC5EI,bDYaGlNT*6K1qk[-B4#hI8YRL526S($HkMk+,#k4PF")'q#, -ljk,9rb"QK'0M'L&kC49Mj8l0Y@8X&HikiJmLVN9Y+286Yk$I!Tr8m@k)CEI[l" HcfG,SR2,hDlXR*MpfERd,KYHM4J6NmQ(c1q*fEY*CfZ+fB[U66(lffqqffA*LGP ,U#Qei)d#H-YZ(65)mM1ielTSrb"*T)fGV8b-`8l3*QB%eq99lqTbL'X'6$XSJh4 1ipMP+hGKrK%Ej))fGTF2&6""J%l%C'H3!$SE-["b`#B@lbR"jUFAI,`%TKpGNX( LQl#p@FmX863TLdP9*Q80dAYDS%ZAC[J5Q(fjEEPpq@ir0KPEq!`dUVEACXDlBl` (64IHEYjMHj(TF"TX`!PE"RUD+XYPp)kGl#blSjMf4-Ammlpk,Y91L-PipHl(j0P R3S2@I[G)e6RJbK9rPJLQ*f6!C3"e*QaDR-'-Z+mhD0N86(bqJ$YHXa&+mXmaSkE i&f-1p)bGKBIj&",[jU'2*P*#U1JHUPhZ3X9Bpb+aj19cc,"K&VhP)-De!5eS4i3 a`KRDE8T&0q)QCRVMa&cXlkPGkCUBT%Q)iP80mjK&Lhf"GNq4NZe*&%Y+pTKD#!p $,p-[0X("a@-@-Pbb5keJa1i&'(c`4@DUdQf6*H2F%P)BfXb45`JG6lTMPbFT@dm mRF#NI#qp4'4d1hPhE8b[)K*(1-hG"1mGl#-'ZfEIS+k$1%`LU@#Ne!VmP0ISKhF 9P"kS&[%eF*KB#[iCa"KhSF*@dKe2QJ9-dPJeB"TYlK+l!QZ8R3,5EDj+B1m%Sem $prY$eG,K5%j"akNlipEmFC5Cf`(emZLfcTCLd(2[Giqi09YRcm9d#Km!!XH%cVU MYXh&b`cP,RFmj8(j6-"`1T!!05c'bjk%*r6,Y%"Vri&[Km8A4K@i3,1GSpVG82C BR)A18B(Kh%36X$4S2lfC4(-jABVL33K,U18@8IZq$jjZ`')aD2E@BPX%Vc&LGXf N2TU43*YC'QBGm(8Q+1$KB"IDdlb,11Ap3VJAkSEV0IB($&`l0A9'RUfRE+N[f+H MhU#T!CZPim'-TFL3!-m5Qd`@1c`D20NSIq(&cpd8qF5![5H$VA9j$*R,H6GlJTP iF`0cIlK(Am6M*-$M*("[i56d83N[XI)Tq"VdGJDiFAqKc2BSfpQY2d'[a82Vqd1 G*GKldK6hCmJXi&dI!fT()Re13Cp6`+"DZGrCUl"P&VP3)fd*TUjX)QAE!mCSP1i e(C`c[(GM%jmVeXUMKR4-8J6Xa#$'GfA2BYGA)ir5PQ%)#q#ITZ#[)2&UZ"SFkfK @%6D,U4F6pV3D-[5RGSY4EEZcXGb&,AUS%RZ2A$JTV'G9eNVj!XfUJIG3bHid4kM (Pj3HhFk6AGK'(f@Ym,3Ae2G)KN*9GUP9dM([raUkj(e36pLP(DTE&DTcViVB%Vj h%R$$Vl0MK"lUA(6(1PVFbZ6AL-Q[LA*ULFNAHeZJcZpaM6iYkR&lDaU,-!ll!Fm 96[KC62kHdbSC00I`c#3r@qVEP`!rkrFBeGR'B0MA%NmGA1H)J8X4iBc64TJI4qq )bqH!-U%f8hSVdQm8qSf#D[#AFTJbrk#T5CBFm'"@&E0pIKfqB#DKFcLS"e`a&IA T8'BKi`TJ+fPLm"bB)+BaMpF#0&lqSFI01A-*1NVhdESeQ$+FG66AL@N&EipSRA! hf)e&dBH*Qq*pf2p2Ck[X2I0B#-'G0,N!INQSL[dI$ld$eEHd##p5"5[Ja@%i@)f Ma42$Ca[NBQZiLh@6Hi&MJ,ZY6DH061cEL+69UGBIRiG2`*5djbrabVa4M-Q%8L[ 1)q3$m)k3!$`URBX`"QlL1@'#XpFKicVb`!RNNNcU$S(SL9%M8p`kc'rkQeKSZd$ I*#!MZ"("pak`XCNBf@4)R0aNq'MUF`*BkfRM#$Y0Q*VSi"#8+4E$'a1%4K"ee9f 69R3,DdAY0e0%3kS9,YdS1YSVFGiXaNNr"9IJmjJ&XaSMpSB5a*AI6-GEpJCaADS efm"9GbrHI9JAR2"K2S@T$MT-3$@m,iRC`8E8Le40@BHk8hMPPc$K`BbAiZJh)a6 6)TSDbDbN'1DY)NeZJ'YF1P-cEkC-8FFR9PYiAjKhbF9+AkKePZI!bFP`Qj3M[4P %Nc,V$I3q''%#C,lYhjITm1qEZa+c"1TZTB*)H(D*$I$crRfTGR3a-hX+*TDQljc $`b[Vh,Ud2C)KcC&D!Tr01kk)QDbF@Z[I"fD*[+p060FqKr,65P38NhRr+kA6H-0 XRe*9R@%D61qirDVZ'a`*ERqTrI%HdRIl"aDf5$MFNbEB#elVX4IB#YjXYPYlIQ# hfUbp1q(kM1#$N!#RHkV3iGZN+r59&$TfE0)AlSJTC%,&-NHK4e2SbdP15ACJ"re D(8hKMST%8C!!6QB,&A'L%+a5S9FLpRa(2LB(qAP#(V0Cl9EI$e+BhESJHHHl&X' @EmqR#RQDE'fDN!$#+%kB,-TPdhYpIl[M`)leZMh0*GBlMmT$DFQ,X%&!kJ4mMA` Z(Gmj&fi"heh%p$`HfcR2SYC3TYE-e*QSlRUPdUbAQ*&L0f'A$*2H(T2J(J&$AKF 0F6k42#[2&Jffr,JE*)hT(CULfl#&!'Ue@r(001hUTPFH2Jq+aQ6dXm**KI)#iEb m8Db*+VqrbF0RHp'RJ0$hJ130-pBFjrfc,l[H[BdfEpli6hp3rYi09I2bcM2f`Pq rG2Z0YlI-b6Z(4cC[q9l8ApC8(mJlbpKEhhrLaqp[Xhd[lqH-rFGMpmpSU6MZTfr 9q*2kGIQ,phrVcr*1-rD6Xi(Mhc[riqrR[F2BArkp229(U5m'mYl#mYh"Be2ULPZ 2jCeJl'IQkf`VpmGHPrGI'0ZIH[Vc8pDHR*jhM,'fcffrY'6[5qrN(F(R6$hja+Z (lrMC2ARBQArPrKFA,(jZriUm3iapCFq&arCmlJqMmejPE'#@iiX(RUci9QMel60 )IZThJ)@r(BMrG%V#Y5aHl8V@CbRp"#hi&hUXhN+rbIIVkGGQRI`C3cmeB3Vr#4r pP2`BrY0mp+0XrYEpCcrmiMrjN!!a#"0T%ke8BFd8deem(j8*Vd($rqGMaVS$Jf" m3aYfLh`kJ9N0XdfLDEE**-if'Dbc6ET(C(N)9I(H%m1L%IqS+i-Z+GUNDCc@,K3 CHPLcaFIbI`B'JS8Qp'0!"4dUD9"43'9b405r&[GSI"h-G"LAC"LI2(a+eN-B'@2 j5J"-@PRf4FYbch4ClNZ@jF%m[2q!PdMS(BJ!lM,L!H6jN6q#1S1SeiHk2AJ,aBI PFm9m*D1IkHJ,Ak(&Y1K63,rFNB8q`Lhi3m&rrXRrV3!PrlD!N[U2"5J4EZc6!Mb 0mMmTS#6ar&mA8&18r!m,""28r+X&3Z&JrQ5"F$#82eiJ!JeGVQ)`$NdN2jJh!Fe i[T)j#Fe%2Z8UV2RN&bl`cj6pj`+6#(a+ZNm,A'(!bC-ReEJ5Q@33jDMj&$PjPB' 8UcE!3amcQ!SS4AkM!1MbNr6*P0mUd'm"$kEpL`,qAN(r9B&rVq"AIk&[qjYq*A& 3A@-2T8m@32CiJHQBC)mA'%3m8J#TL)F,)"2a8!&+T(L`!194A#h!dhKF+B!X#I& J"j38M&1-FS*a"(R08(`k3H-1rpMJ&H#T`#63%`@#$8D3!+3Fl8,FF9%"dLkN$`T EU,@S!'*"#p0P#ejU#e9GL2mi!E3,,C-%Q@L8Cdi5l#S"Va(d#S'[%6`FXJSq68q 80-8b)f(ZUZ9&hjGl-)PIPR[MaQQp')-M@r"THk,lTJmQMq6j(`U3!)0q+*!!jdm HQ6iBhDIY%93cUdM-T-C!NLDPmm4i!L,N3mDPNA[!N!!8RZ"r*8(*jR&+3#Z4RrT jJVpYR)SUqSkEfL#-`i5Ei!RMjL,8H#6K5Tq4-*RUk5U["T@mkASPB9$2kh+G*1h 8kbN"BGbR$`iUBK6XCEVDa##6S3S,S4V6"e8aNE8,&5d)mPY@HDf@[2+KPBhCcm9 d)#8*-G-GbjfVX8'dqki96[UDZqlm959P'!+m9VLLE"@,&M6+0ad+kfh13RcLSH$ PRm%S#0Z8Mf!8pU`SF$PardEK+YIY')fm@,VL#mX42dj[fc'YF+Tk3dd1ZSl"(9q FTjPC[@%c2U04Ni)ljCPaTcamdQ1B0)*#)2j*NS+5alr140$`@(HiKU"mr4dfl"$ $&lVKYi0LQVGj$2X[-!RIj6&X"',Fm3mmKVGB-(i"6U(D`#*8'qrqiEH6eeCU+(e JcSYI#qp$qGiihK1p,a6ULEl!$YmKaf22KX9!f"VTpEP)l$#&[[pA&,[RmA$I'Xb AJl%ST3m&MjXL'-b0p%Ul22a6)"QEm[9Jhb+EdUN35TBYE!V(MhJMXM8r$R*,C2F m%-CJlC2KQ23I`V(eIak*BB39M'eiRaN2[[6r!(-,!!!: