ft035@unocss.UUCP (ft035) (08/23/89)
I am trying to rotate some bit images and was wondering if anyone has any routines already written to do this. This would be preferable to writing 4 different images (all rotations) of the same object. Since some of these images are large I'd rather not. Also .. Does onyone know of an application that will take a selection of bits and convert them into a hex representation (for BitMaps and Icons and such). If not .. any one out there ambitious? T'anks Rob Koch ft035@unocss.unl.edu
jnh@ecemwl.ncsu.edu (Joseph N. Hall) (08/23/89)
In article <1495@unocss.UUCP> ft035@unocss.UUCP (ft035) writes: >I am trying to rotate some bit images and was wondering if anyone >has any routines already written to do this. This would be preferable to >writing 4 different images (all rotations) of the same object. Since some >of these images are large I'd rather not. There is an elegant algorithm for 90-degree rotations that is fast and efficient. The simplest version requires that your source pattern be both square and a power of two bits along each side. You can read about it in "Smalltalk-80: The Language," by Adele Goldberg et al. It's fairly well known, too, so there may be someone on the net who has an adequate implementation of it on the Mac. (It's used for all of the 90-degree rotations in the early Mac programs.) v v sssss|| joseph hall || 4116 Brewster Drive v v s s || jnh@ecemwl.ncsu.edu (Internet) || Raleigh, NC 27606 v sss || SP Software/CAD Tool Developer, Mac Hacker and Keyboardist -----------|| Disclaimer: NCSU may not share my views, but is welcome to.
kazim@Apple.COM (Alex Kazim) (08/25/89)
In article <3736@ncsuvx.ncsu.edu> jnh@ecemwl.UUCP (Joseph N. Hall) writes: > >There is an elegant algorithm for 90-degree rotations that is fast and >efficient. The simplest version requires that your source pattern be both This was in a VERY early issue of MacTutor. Try the Best of Mac Tutor volume 1. ========================================================================== Alex Kazim, Apple Computer ==========================================================================
pepke@loligo (Eric Pepke) (08/25/89)
In article <34285@apple.Apple.COM> kazim@Apple.COM (Alex Kazim) writes: >In article <3736@ncsuvx.ncsu.edu> jnh@ecemwl.UUCP (Joseph N. Hall) writes: >> >>There is an elegant algorithm for 90-degree rotations that is fast and >>efficient. The simplest version requires that your source pattern be both > >This was in a VERY early issue of MacTutor. Try the Best of Mac Tutor >volume 1. There is an algorithm for rotating bitmaps in November 1985 Mac Tutor, but although it is clever, it is not particularly efficient. The claim is made that the algorithm can rotate an image n pixels on a side in log n steps. This is true, but the problem is that each step requires enough CopyBits operations to move every pixel on the image. Assuming, as seems quite reasonable, that CopyBits on an image m pixels on a side takes O(n^2) time, the MacTutor algorithm takes O(n^2 log n) time. The obvious, brute-force approach to rotating bitmaps only takes O(n^2) time. Of course, CopyBits might have some good optimizations on small bitmaps, but then again, you can do your own optimizations on small squares, say 8 by 8 or 16 by 16. There is no reason that you should not be able to do a rotation just as fast as a single CopyBits of that image. The MacTutor algorithm perhaps has value as a curiosity, and it's fun to watch, but it is a waste of time, and it imposes needless restrictions on the shape and size of the data. Eric Pepke INTERNET: pepke@gw.scri.fsu.edu Supercomputer Computations Research Institute MFENET: pepke@fsu Florida State University SPAN: scri::pepke Tallahassee, FL 32306-4052 BITNET: pepke@fsu Disclaimer: My employers seldom even LISTEN to my opinions. Meta-disclaimer: Any society that needs disclaimers has too many lawyers.
oster@dewey.soe.berkeley.edu (David Phillip Oster) (08/25/89)
As Eric Pepke said, there is a bitmap rotation article in an '85 issue of
MacTutor. To tie things back around to the root of this discussion, this
article demonstates the same "simple, efficient, elegant" algorithm that
is given in the SmallTalk book. The algorithm simply isn't any of the
things it claims to be.
The right way to rotate bitmaps by 90 degrees is given a recent MacTutor
in an article entitled "Editing Rotated Text" whcih covers running
TextEdit in an off-screen buffer, rotating the result, and CopyBitsing to
the window, on each keystroke. Nifty article.
--- David Phillip Oster --"Unix Version 7 was an improvement not
Arpa: oster@dewey.soe.berkeley.edu --only over its predeccessors, but also its
Uucp: {uwvax,decvax}!ucbvax!oster%dewey.soe.berkeley.edu --successors."yahnke@vms.macc.wisc.edu (Ross Yahnke, MACC) (08/25/89)
Here are two inline assembly routines for LSC that do very fast 90
degree single depth arbitrary sized cw or ccw bitmap rotation.
They're provided as is. Enjoy.
(This file must be converted with BinHex 4.0)
:#R*[G'&dC5jcDA3!8dP8)90*9#%!!!!!*eS!!!!!Fpp6593K!!%!!#GDFNaKG3%
!!!!!!!!!!J)'FQpdBA4PDf9d!%%,p%#"d3j!JG%B3)(4+!!!!!-!%`!!!(lrr`"
"$!S!2M-N!%&eYJ1f!4J!'J!"!!!!33`N9%9B9%Y"5%`!!+%D``bK'X,r!!!"A!!
!A&)!!!%)!!!Pc&lI$q8!!!!!!!#!b`!!"!JSd!*"J`'0l!$5L"BB*98H)A(c$jD
3!$01@JR3!Z2$`SB4*eDmD%$1'cTKk*54)i!JP5*BU#`*JS3*`CX%#4J,q$,Qc*S
iJ`S0'NV$-!B"Z8J*')!,)RP#@L#b*k39)Ra#fL4#8"84ZUL*MQ40*!5XNDU*N!#
-aB)@"a`!%&T)`m%!L%!c,S,N#bM!c!SNL0c"dEF3%6fpI0Rm6H3$6Vk&LBJ-ALK
0Kf2+3X#`3!a!J*brJH(J+haiEfFmLa[I@jJ6J)(1""8!5'#Jb4XhBFDmFFH8B!#
%!)!E!B#$&BJ#*JKb!$!m3"%U3B33P&$%L"-U"$d-B2I[(diFUq!-@0HG)!,LUpJ
!DGc3!5(P$Cd`G-S)D4)'cT!!)9G3c*%cCQ&$&L$)c+&M%8k+"JQ%T+($%!i)&4-
VPX5S3L2(NMXD[&!"iNJD1fAFJ!J$BXkE1K6,l(4$*Q1CM3%4TRQM8mc)P5$N'%3
SG#5)KeG!j)!4bN@$Nb"%dQR6%-5B-%f&[M%c0%r20(V+B,b6KJfER@amiNec4LG
6%(IHb#NUjLI4-(,5(28+pNTL1JQEZPAb"Sh1*hPcBR`$KdkD0R$,%(EE*-dDS8d
%df'+-3bCKJQ,VVi+3ScE0Q8BUrK+N`UD0(1Lr[6X4LLD--&jXKP*Kie31&,&1'r
M!S4[SA6*d%%$BLf)l8,*((eC&RKYj+*jGpFj-VM81d,b**b$dBe"%1eV'pBBYF`
B1KLC)9K2F*3K@Rr)-69(-VA9-G"f`+N(A4Q3!0e@aaMFR9%(BQJPG"3)Cb!Q4KK
R9+86H#$Be`*CET`3("YS%8EK(3DHL%BCkK9@"e&cZ*!!f"PS$"6MGcF+"jpmLeR
h@h"Re6((Kca"piCdCE3"f)dkM@%BF@G)Q!BHCH5&Rie#R@9A'A))jf"!F[Ad"T&
PKR&QQQdiq@!BTi%!4aJ""EHDHR,ijaaL4*U(@"PKk+DH&"3#j8C`4J6"a"4&i-F
@EQd)jTDFE,aaPQGr58PP'r5"%1D6rG(KD("85&&&%BU#0B@")$!d"K81#SD4&5l
3d))6,X333`Y`Z)#$$5!)5+GJi9()Cekk[3"#!hXN%"!G#55J*4YY$,&P6!PdkXB
CfJ)9U%"A#%B'Z1+5fbQ0FM"4KKPdJ(YYYS%0jZf1pB)%%R*YJ&4YTMK4adB#C-c
3!KNh["#'$#f%83-,,8MN8EB*l0"6'$MeG`C`#FNaKlrCDTb%'b1P)@GS4L(PKP*
r18A54DE5-BCA*5H`%``Jp0$I((@`-C!!Gemi8FBG80#4TTN(*m"(4Mcl2!I,hXP
F%PkGISTMb5$X&%22HLVphCXTGB3aaNq6mEA2f@d(JV3bJ#$46d&pa291FI[F@CU
cZG44ei!($RMDHB0`)ep"[Je#h(-$08BCGQIFG4JcJ#hH4VAP*cJ)CcZG8H8q1dF
[#%q["JG)NZp%!pKD`Z'@GjF2*2-FRDHpZXrrbC'd#fLJV[&10B"Yhd"1LYEjf@N
(Ml[5ZpZ"HYHS%jcE`@@AK%)B0U6!3KJaR+da('pF1cDFEMSZP&KA6jZYp#iFl,I
ef'[rX2GkKLr3q#M'RK5S1U&IP[S*m0e9hY!'1$M)1'9!h0$BiK2cKH8TCC(+MX4
6P$UBC$E&146QmN@'kJ#3!(eh5)!Bq,-#r9`["YTM'2d+!aN#MUP[0i"HYS!Q"KH
%8)3N(0X*8hL$&4TN09CU`GK-iV2$!3P!HR,3Q$)5``qq!5Ff40J0@%!''"`2BaU
E!mI+a*RAXF@)L9-@#'!8-KN'N!"VFL!+f&!!aS'8-!Be5)(LBQ#$!,h",Qqi`aa
dB%EAN!!K$9%F!4bTf--VDXb2)""Nm'E64S`BF#!"BD)Cmb)(M)f!"S5m)YIqD)F
dL+FfEU(M*1I3Y!3)-T1De&J6JZBC1,$",ECC(0MH%jrjG)FYlrXIkJ6)X"6Pd5a
-18LIM&6,$m&Z)afTMK0qUD8#(T!!I#jKe(q5*4J"CJ5C*F&CaUcT,@FQK(b2%`L
DkLFqlk4%QNJFRP"3&-ibJZpDb3Q80BHA)[mF4BZ*H5AjY)LE*D))*h,`M*NbNSC
!r@FT1JN8'@qbcMGBXhTP%B0rkU#(@kU*+!%j!j%33NdmkK%M+!"NEM$54SY#p(4
h-mmI$GSFYdJ*I!&&U*c'4dXN"HHBj2')0LPTb4K3dBUT*'JR2eR5@-E0L9!-B4@
T+!005SiXHH**klaSZ!3Hm39a%b-Cd45p*qBQK#--6JPAXd-UeS"q*4V)#8ah!T0
5"*ep*%-(ElK8-T`eU(B&TN$ip#J3!(3JcB6$rEb6Zl#C8B$GI13kLp3flTMcVIi
CL!Q5#%QGN!"KG8Mp+Jl&'T8dP$9KD+93CimiP+)mFSN*-b-0SlKC%*631CqG!Ie
qP$JKLQiJE22NGKbTa%LQ&S!mcGBT3B[AQhJ51lVPMP(0#%+%cB#+h3XU9)8Le5j
DY,&BT@DDYTUQc%BaV+lYl'GT%0U"d(D"2B(X0!'i@VSqpl*1eGKPp5V-[U*"-(!
"CJ([9pM1(*CVbl`$L%6EcR'qmhj$#Z`cGF3Ml9icTpVm(4+XQVJK0ABRJHS23*p
8&2X)@)`SLT[ri0!MhrNZ@lI0PJk@TcXkm!i%3L`Th-#9X@bC$Q-V0J[cA'`('!-
QZBU6!BerPi$cUTM&Zq01#@@mZ#&RLi9!6%#1FpHmm&jiaLDq'a58q*U$S,DJN4d
Iam*A&+r+i8DZXHLXk)$1kR#6J)S&`9SjF`*Y0YHZ9*4Y801k%f#kcU*8jR&T+B[
DbV'h$M@NUdq*DdJGYpJ&24ELP@ATXcR$SDfq066UjR#(KQ5,dBf@RTcC1VlIF2#
rNN[X-dp`fcScekY4['bHicYJ)IQCUS&qm@42'mPhUHYcUN8dDmNJJeN(0GIFL6'
&"`)hX,&kAR6!Y%jm24KJ!e#!9a#+K`fha9(6HBQQr[9NRdd[DBmaMlp1@)5lTZT
[RJ$+"+ac9j1+X)Q4`3DdjR0erdcB(81kd('GkkFAMHpMql[(*CadiGlp`hJ$R,f
GKX1R#bjGVmSChQeS+b26F1TVFkhG3MR"H9hYAD9LmYlj&ZfqFHe[lJb*ep0'GlA
[(I"K&a[P"RqdNUZU`#!lHq4,T(C4D1jab@AEP`)q6XFBhX+-Jj[MiTBcd(XYmk(
E)-)#$-)FTYDAM##%*hh$CPNf)SF,U5V$+ihX+qd-Dk9183j#Z*i-8Y"SQ"26TKE
0*8S6`$lh24HmBq8-%jjJ"M2)RHlI8b)lhr$V24Adbbap046G9dI!kiI0K$Im`a"
2k-8hRNpTmLfBecY[c6,XTl3qE8eYk9ZHI6"SGFJ@h$m,e-jTV%j#5i-VhE,k$k@
N*CMc@49(@FS4[,IfalXp+h@[cq((%JF1RPTFmLjfN`#`D%G,@TU'`)3L"%%+Y1D
8TkMbPZRMp'pb$jZIhM3513*`$!9XRh"KX$hNfliR&hVF(-`3Y"qJ6Jc&J6&!S#8
#3@YjF"3B3B$%83GESbeX)!IbKc$fGhrfJ4'"FRBk%5Q68LQ6P3bSFi'1XJ01K88
JN!!-CB!()p%!#UJ$T5GrB8"rBK!%KaGU&[H#ic-L6a)%FT8QCU!BE&"QZ&4pU,B
$,9#%4RL%5*L%5VL%60L%6[L%,5"!0ZJcp&3mC1"8R1-j`qFc[AG6$%34(5'&Dd0
1!V&qQ8-(ATKH+P%@fC)fBkK`FY0!G51&KE-hik0haj1&K!-f6-BiF[JiNA0)S0-
b!b%@Y(0&HJKXZ'-Z16%3TcB(B`"h*5'&Yj1&)kJcECJ4P6K9e`9NMl@'HhG)bZ0
,a-0K@*L*HE@)FR!Z!k&h8SJX9(JI9RL+@JL,Bc)eiX%%M'F5@X)[FM-'M(Jr-K1
)1a&$X9L+"k**LGK,A*K(aC5'VPJb8$L0e&L0eRL%!U3#fVL0h0L0h[L0i"L1iML
1fTL0fBJa8h!3!@94BI!I'h)A8R%3r'049Y-3)m-eZi'2j,L2r0L2qjKe@eF("F3
rHb4!*38lil%r#(@'9p1-4f*,RaL'*G-!!K33+E-bdcGmXk'!I%8q"eC'Xi%L*p@
#)64lh*0#%bJjI0D&EJ@+Zm3e+eN'Ca!F(jP40pJH,AJ`CF8p3F8pkMFq3T!!"&3
`"5dTNA`(DcUjHGZMCmQh%jA6'@BBP%0*I6ReNUN'Cmq%)Zmb6VF&6'Nd6Yk42d)
S4"!5('4"BQ-M3#KL33@bAG$QPF@4*Q&C*#FeD(4K&l8K&&Di%m'"J`fS-@BJ&9C
b"lq")H1c&QE`**89NN@LGeH5%i#KE3BL'f5MFQHS6@2`J"'S0L1S-CQ*+'QL0L3
TJG"&Djf5CL`CNC0iL8f*!URjKD$)KqLPGj'6&fc!@XCAQY+eI,X(5L!!IE2"CiP
cIQIjQ!PP%#G!"Y%$Hl%f4CbjQlRAQl(8K5K!Qf!c!K`8(!'aDF*'9miCABhQQ-k
aGHXK&1q"1Ri8JC5MQif'5)[R63H#Q)U*2dALPcT)"R)CK&@j2NL*-$kePI%#EIG
RN3-"S'-%E43TMGHiS!cDS#FfKD3)!V-iJR`JJE184lB"NE#jQMAQNhTM2fKiNb(
kL3cTD4@U0Q!c"8-J"8&!"81!"!pD1-#iLSfB,S2K9#FUShI8,9[#96P$1CBc(QG
iL*TdSS-iSkbSKPGcDJpDL5V+SLk+"*GiSTZiSf+KLj`"62cLSadkLP9SLK4DEk`
6M)kBEZ2"S5+)2F)MLf#+S`KMLhebA&M+Le[bLf4kKS'B!'&JM"%kS@l+M(HRSB4
BSU(BS)CkU&#BC@G6N5K6T[T5Tl-4&e)"3$6@A#0!Iabd,`9)2r1CUC!!qLC-)43
5T5cB)43EJ4KdS+JD3k$!a#ecUUAL*!H+HQI1f94l*PV8'6Ze14%pa95daNR(jCY
a)d6%KR6da9Gq8L6$-8kp'+ZM5@`XX#dmbLrhGeSS3KCii&Gb`S!ld@PZ)8D"BJC
SNK128hTa)(qAkUY"0Cr&'UPS3MB"m6L4+D'SBK8J9L60'M+l*+ecbS)6b69PL4r
*UKB1JSY#d5QF-DYYCdU$"&q0aUV5HU@l#+XJq5C`P*2KNNGS)LrdXMff5S)2)l"
Q3DBf5JBB`DSTQ#dUD+8MdDqU@LMD1E$RPUAE`9&Nm!BIJL)b3l%f'8RjFkCP)84
@B4k"`LQE)N#J!65S-TFK4`CL)!GK)'eNChB,169Z)+p$'acdK"CM)Ki&3K501,-
Q)3DpPDTFBbJJ%!Ge-"*PJQBQJ4[Em3C!Q"(fSe&d`l2MSULS!hr&FN-Mi*cNeC-
C4L0dDj1r!55Jp%d$mLlqpf4RJ#hC!J3h@dcJbDPVS(Z@BML)NlJ0k%Ga)&`q06p
"G5V2!D,MmbkFZdZ6Lb3a`),[iE)[Ll!QdBj53Ck)BTM[i8pd54&A-b5R83CdkSZ
hbafHd8q%Hl0pGTi!Zb45PdHD'QdrKTGlZC&Bq8dS)TqL&CJZa'SD'k$PTV$dYN-
VB'chTfq!m@Zc%BrNGbe[NM$S+9IR'N)M8'bH5UhdJdKI)dE$Hll9CS4UF,0'D*A
Tk9lNfj6c-4$&J3Hb-l4N-V)dHMprL"hUmRpMF$1(#!6f)4C8m!C$F"cM8JEdN`C
X)629S,AhSCJB-3HAHd&[NX"Q+d++q@QB0)100Tm[08il'dQ(keMEp8XCDL)1c)S
PZdXC2")Eh-&S85,qQJ#Ve65R*lSeM'K+dilQjB`f9Ce!ka(*)TK"(,BFC*8D3`4
[)T*Kd%r)X41&J4-")X)HSK1CNQ(&ZaM[+h$1P@F8E-'4'`2r&m-)-m1Ee`"!d$e
0r'P6p$!NSkGb0@c[030hl!)A,!0l6#%bc!+("mK00FK5j,'(2-#IYXL0I-'-r'4
m,'Z9$!5bKFP2$-PRK-KdR$"fr'39l-L45`14$,QNr-G!3&kSA-LU2-H+r-SL&-X
AA!1e2-QPI&DlV-QVc-Pel,k`M-F*!!3f8-ap6-QiM'r*E-M,R-J%l-c"$-e!F!2
8I-Yc"mJpP-fpR#h-l-VH,!E#(,Ni--jqA-j!J!0-,'a1c-ZEc-fG$-cZ$-ij)-r
@6-mjF-meP-r+l-[G(-VI,-[4(!-`)0#P$0%'[CRk[-fYl-R2l0#"V-HL,-R920'
#M-q%R0$Uc-r0c0$rc0%aS-S`$0,Nr"'"I-NNRFRDV0$ph-l[r0!U2FVc,0-aF-S
eRFVlR0(q[01"6-XIEFXr$FJaS-Y$IG%iRG+IR-I%[06'M-Y`90%)VFfV2'3lm5$
-qj'4H3)GS`CfSPqZ4#%(`K1RTVe@)T+mfa#+bVFB8lm#JAVd`lIm5`E25e0@2"m
4-lMK%DSrjMBmNEZ0+d)"',Q[ZiZ0CKmqKVaSB4!hNLCIV,,C`VHi#ELrkNRcLV`
lc,RGdF0hX0KLm,J#H,-rr,'@LlNLV,Q)qm2F+3DIbl!H5fZN+k&%-FC&`RpN8#*
L"XQXM53bX-3[5lKSM6Q"j4baNEbrT"H)&$H-b8Am!VkDPDji$ENNk,m!A)3r)eV
E26k5kP#DA@0UqGYhp#if@6ajpl3mmEYS1F9MX!B@GEHaFc8l+dC1JYhb"k!F#b"
3M%CPd!)35l,UXXUX5B,cb8i)AQh9I@l`%Z!SJ+50'$N,cM8!rTEQ)6eP"P"bFej
b&%YZr@[$LcSC,MPa(0T[NYLrj,1l1`BFkV431mN$b,*d-+GSjGYP4ckc)cG`e!)
q!!0b"1-0Q1,bPF8q"KikFB*@-56)Ql)T,MNNdT(J'YK(N9eaI)pI,8$`8YM&JEF
DY4dpVV2ji4dmNGpPF@T#a&%"5pD%Uh4rZ42ZD,6*BT&cF#0&89eX)*!!l0(!DPi
X5X*&IGi'l*%F))"lVH3FYb4!S[6Mf5%8ek0'%Q@6($8SQ2-edLT(3h,'"i'ARYk
B5KiKA)-#K*N'KQNSHI%QCD#f-j@q@*k'FLhM$4')FhbZ"c1r,,$Kp(*r!5Xp`H%
N,q6ENUR!+*lK'R-#fq,RE98eq@(NK-LKRKY)LqEDpiHrp%RSEI#UqFUPGVhC1rU
mkJUbK%fhBAk!!i(DM4h0r!VC65RCa-Tq3K)LfcRPNV2E0#*bB(lN'$YF+8RJ''J
GVP)%VB'AEl!'T@F`FHJ4ijX`#p-`$a-aGb8jJE)4c1)a))-QT@)EC4!#)0%($G!
(Ed-6"5'2#P%5@(%5,d#4$5!q*8m9(3%4%J''8%'E)$&L*h&5,+&h-6%60F&31X%
6%6aSq[-bmeL2F'#"8r&09J%4@X%9Z[&!Be%@Cj%@l1J'EL&pEA+AGb%RdVdFAIF
ATmCJVj%BFY`BMa%C[NNCPJ%#Q2%N*r)QCr!Q@,%CRI%CS6%DY@)DU+%DV$%YB0(
TVp%C"c)E3q#EZ"%V*&m'RF4KLi090[!#1*!!!iMI8(4l&9QK[[bMq%T#Y-2"*Yb
'k-X"'B`Z+Y04(GIaBpVK@'caXd*S(RkTR'$a&rR4KI9a(rP"pZi4@AD8*R03)!G
5Y$la+!a#YQ)G)@!a)4@5k"H5)4X#YH,d)5%L"b-Lh0#Z)LcL)Q-d*"*&"c3#QH#
4)r[4)qFeD#M5KDM2[%hb*)KZqP9LR',Z*@!L*Y$101-N3F64*RV"6T`b6R@#13F
K6cLH[[)R`)*"'44mJhNGLN6"'aC&SdJMN!"#8P#+c)8T0!A@'$rcb2f4#Sb`fd!
3""4iVi,cc3V8d)j`a@U3!!1lSPImLQ!a,)V&XA!`EkaC#"0S`4ZN"E@`&TY+@Md
[GX%8b)@&3aIUJJH1Li`eiD#0[GK8fqd)3Uk8-'%8L!MbHA$J5i3*RN0Dc!RGN!"
A5%rPN3b!)6#18X'3!$m1Mf%i$)JK-5L'aD!lA%1,G)a!m6%fJXBlC#DM8DQ-jC!
!N4+5d9Y)5)m$fS`)Sc-J9-9M*4B&qb!0XF%d8&(8+$pUBB4"N!$CK8HdKMAa8''
$Ej!!$CVRD@T(4RK$3+EC0)ijG$G#PYi3'f%RTfb1cE'(LXLbm6QE%"!p`N%81iE
8+,5%U59d[+A5NE!kBCAL0lK%5-d1@,L*@XiMp&*XbRJ8UB``LR+0mmJ@NQGk-$&
+#!HZ4rEB(TAVHjLZ#$IdF*jhF4r9aaR+$pFQ$F9(K#Yk-+0r,-)K0%$J%a8F6Jc
N#Tk2F5K"`&B&B@(e4)-iUJk5$,p,$LN-Rk@3!(!0M$2X*-QK5642*SH3!*@6K%V
fBF-*)N1%$bdEhP*Cr1'cFNlr6R+S35k##mrK30!U9+'lJ,'SS%Cm"KXjK@mNMXb
41Y*4hX8H#6L!4(ie,(eilH4+)S%MT@BK%KVIdN434h!a*5H(*GiIB29*BSNS!5k
NT&HTN!#JXNULNcjC,JlT'9'P[e&dj%X-f6BFDCLmTJH66%"!J&&V@DNaE35iSLb
XLGl"1RF$j)#64Q4J60FR3LHhchVK+l+B*Mj52*Pc%DSik"pm8KIF!KRV*p$ZVk#
kQC*f$XTI8#K+S@2mLEY4Pb3+-+SShU%GrT&aX9%ZiRV,)k8LT,L!N@)4La+DkKS
UCI5d&$dK&@!+rhKeEf)UdUDG`UY!Pei,6mD&U*c#j9*b5"1aS6A6TFp`)Zr34V)
,4Y4Ar)RH@*k"L%,-5RRa0THQ*F%9!,,1k)pGq9A")bVfPEqLeJB,@qJ[!k%TPX-
iJb)1%Qb#+lZQYqJ%*RJ+K3K&F!Xb!2**[S#@'c@,jF'(""(8D!`q``pIMRDd0V@
0YHc'0a"EI%M6@A*CbK3U%)CBD*l9Fq'12FF55F36L%!#4AfB60X[C(JJa&+p&JY
b@Ah#-FaNaiBiAeUMj8N-pC%%VD5HiaiTT+DC)GdT)()@f*)HQ4,&kcQfj5hPPYA
((c20++NNTK(8l-68q#$G"Q[dMqbT+FA'PG1*9TpYA&`CX4k#P4b#)G0Mi)**Z+V
RR-8`m`prQF-+6kY$13D(qj)B+NTJi5pL`lp)ak[)C`T-@c4G#DC"kSF*%Kc%b&H
d*Nf3!,4B'#"c+$5-aMX3fqCH#384X`K,c,qU-H%NC*10LNNePa$)j)`(FQ#2
MD+U-T-Q%6FDD&"N&3LL46AMT3dj'K"c%29NS"8h#3C4#jQ@"J#h6LVi1j!NcXf(
-J$BcJfEQeTTT-j5+hBK*5b0[bQ1XX6FQXRaCTYRi(!r1S,%l[b8q+TS#GRq-SBq
"3j@'e,K)L&-*CH6p%6@XXY4!R@SM(F8LZBNf(Z4CRCaBq4YjC,r415"J3JDGUJ-
I354!4"JhKeU5)%HTE(T1XkNdV@CERTTFHGidaY(C0R)11*UEF&0YaNfkT$VVFJD
XQqQiDM"1Ur5#TXIH8*bQC,jSCDAm0m0bUUN0+M)`Hk@Y[*33mPaHR)0SEYJP%iX
i%kFc*6U,`h5!L-Cj%r5b+$6,96PbSU@V0$N--qAB'S2T+$ZNZN`hb))iSM4SKA-
DMD0F-UG3BSSF"@*ZK%j'L*NEm9hqNRMC-4f1$PZ@4@(F6*fBXbk[cX[51Pc(XRM
+82JhTTBl3MZDFHdm4"CJNZC1hAQ2SV(kB#aA0KrK`1!T2$-SmBJe,[*j(SrSL6c
Am%faJ20S%+4!jNQER3GI-CjUihK#MfA4M%)bNe@4e+0%@&,VB5k`4rE%RI5BNT5
28H3pX8i0!4rF!M@)Mb8j2V#40c8IR[&mSJr9d%p'bB`)3Zec&EV2p`NrMC!!r'L
pTAJedJp8'KrYaia`YUD4VPi3V3%D&H`Sm"mfS1j!@1453!B)!G'AJ-#!pTCQFQ)
48A*8S&6K+%#!"TU!(HJ$28!h)))ZNFB`35JS9DdJM2@#jUB-fMcd3p6BS0PJRhE
3R3X6FmXa089%a6lE*cEL'K$U5`P$4'3),p4$-LD`b5JGNM(N&N98'UT,U!J64Na
CNJSK"ad#'hD)DTD%2)5+#NFILN2UN!!B!5RK)k3-N6*#48IU6MfL5+3r93IB@($
,k"C5P3ZMQZJDr!5'b1J+A9!Y9!c[9$5LFVC)IUT3qPQ,`%DFbN86+erCU3Hf`1L
!"196-P4!RSePa+I#jRl+'1icL5+UE152QUJ6p8IQ#"qK)h@%AUMB1a)1mQJK1EZ
C%BT1!K0pSQ!dM(SMJ!3d"K*#+8KF`cS5)S88-mCK8X3l*638*5M*3D$Q)-[35'p
#1ASN%$91U#%c(%dQU6F16Jf*Ub*R(0f)-@NQN5%Zi6maeNkUA2IVDlc1f5#9L0)
KECH$VV6aKD4`&e+HjM09924!d!@hXCEJ3&Xk823L8fb3!&r$Y!4)AE)`B8X"mB8
km"0)L9Zi@AI!4[5i#LJ(mJ$UNhYd,b[dLB53!'D5!,I"#@UTI4'llQ"+hm$85!J
TM)U'0I+4%rDF'TPl%NV3[Dc8"k6Bi#)e3bMLe!3RdH,#"Jf--`pR!98Bdrmh%1D
698LQe*3ST,!h3CKX&Xk5@5HJQVB9h-#e,PXCq!%J)!N-"(lD9p`ELV#L-d@!4-(
j9aQCPKVU#+dK1)L(N!!"'SU$hY0Ci`mM+$VQSaMdARSc9Fc34m5keL"A#Ymb298
"C5i8*Zl!p4)GRU!Z6fND@Ua8H@Vf"!!X%Y@d1Nb"H18J38!-`"cLbQC`KjX&*6K
MJ4-2NDK+0#+-m1C!9(!3)-,1c48*')%jLYCGi#!NKD,SJ6#!"PS!'Y#UA08$h8Q
0)8QMJ`@U%XL+U5SV1I!aANBRGAVi$r3KKc+D(VL'Ga`$i&%m6MlM#B'FQ%F$Q,(
'1%*5qR'DLX*8(%RVJcQ&%!"j4(+NL[X-(d+0eL@IX4Sq(@!B$*cPVkBR[`S0`mr
Af$D[mfZ-[6+3!!HB3P'STTD4VMP5T83jHY*6#P'89#KC8Y$*S4LN1G4+h3Z9!KE
"%*FXLPJ5K@5*HCfPpI04*GcpkcPDiL[PThh#$1e5AEJ,%S9HYE@qK"i%#&bl%UL
1H)'U`Z01"F)bG8b%#6)4VZ*J8RZ#CC)CQ1Pi$Kb0qCN)K@JkQDjaX*+J`KUSm1G
$j9"),X3Cd[cCN!!-afbU2V[U0[QYpb*IZFC'P8jZ!6M*2G'#$UPLF3U[abRD++I
%fZHDNf-0RjS6PN$1qcN(UK1![8lCD8cSbT,fR-+6%"T20bA-+5p@TTi)E2KaLHp
*X3#Ka#4D)Pcja%qXdi3#9[IaRlTAJ"Y3MFUiZL9k-8H*N!!52E),kN%G3KNkT5b
83rTKrh1ZK5)pa6qGU[pX5B6+DILR&,@L@Y5,LP&MLSH@V$qPSlM&mq*5DBS9kX,
f%+CLB4H$B&+fVe%U2H@NZQb8DV,c"AIJ1'lASf69Md+KdR@'&LNaTBU5e,V-BJm
UKJC$3AY&6K5FHK4b+SI@U3ThTiE4J`+LLaE2&Y(p1UL3!*l[3,+JYKST+Sc"U+c
#H(0ANmUrb5p-T5kHerhT9+hf8j@R[%5UjK9+I@&J$@,Y+$klTIcX0S'[TqFehUS
UaQ'af%EB96!5Y`PEe$K84"9iR'aa!bS'%f4&2TE9dZLcckVBk-!Y8Dd86j(!9YU
Uce%AEq9J`Y@iZPS05(VJ1P0L(+dGTa)YlHT0P,HhJ'lRPAZc9`0LmI6DIE9VGp%
5!fX"bcaFVi)9V'5AUQ9BpZC)!PQV%,&DPU6YYH2MBVR+Jm(V"*be1b4a!jdq1*-
e*SE@#eYCh%*LFBCrQpl-Jm#GUK1VCV@LHqVM'1k@k&Q!6XN*,8LbqqaF'%"D`-'
p1G6N"0qNPY+J@Rr"DQ%YQKZKZ&C!m&V90'c*VJB"5A#Yb1)*DSYYQ3@hPHJSa(e
*Rh@V1`#&q(FRpeEmm9ZH6A#9UX,&'%IE$bYY%JkeUEE)YES5JRc0)LXXFjPG*((
V611!ZcqlMDc0"Y4&fe4@fbd$VDX"2,D4@f3&b0+PAFid11b[h!AY8N,[8L2bM@+
CLRC%[#!VLi0ZGk$N"JH4ilbf4&YTUG-VMiV*km9GXaFAiej&m([GbHC5-8TNSc&
IiM3d,Md6d6FUaeh0Uc)JmZh9NdB'iTFTS9qaeRk",*HB[`E%rQ*c4HKr[B%!GYi
S#@jD01)5B!QTFTV$'YJ2E+IU8-lHhXHAHmGM9BYQ4B`1($%29L*#Q#+N!b8X3U'
`RK"h-FJ*HQ&L`+F00$6BP'aBCm4K$%bfm6!*4pSLbI8GBLSVr)lI*&B'PKJkZje
5$'T0Neb9aH6)GEfqIDh)JJ!aYNr+'(9*$QQX6I3JHP%M0LBFJkaf-Pa-K1Gle-$
CAifr-+fT"6+Z9Y*Z'SSC`Ai,qRjI)1$58$"6Qlq@M!AEY(3QJL&3$#l"(+fRT@!
FE-Td-&&ECFlh"qXdF+E8AYS0,Q93lD#eB"kFK'1N5N0U9md*Cc9kKXbLQNRV`54
i#A1dDBE93YSe-m*5l3AlB#XmJm9C'BjTjJ`0Iq%UV'b[-$L,CfpB"GXcG(E)k2"
`XF-FM6aUB60-d15`#`E$5KJ3Ac#)*Y'dQKAK`dJB"V2KMED)6l$m&@Q'Q!T,iMS
mJeYD)kCR,5d6pq&0r)FlX4"q`PT0U%RK(6b+ec!RTX4jV!REi#d-e++`4C[$T&J
'`q+(PS9R-5%'DPei&41ePb99c31F+`0Q65JXYpeD3*aE@j1cehA@S5Q[+h(`4I$
0Di0dA"D3!,lfef!GKaeXBrGQKEP4kR+-"!MSR3*Sm&CM#[3QiYe3X'cM*,1Y-Xi
'GUQ)`Tf44H&iJFc0GABA9aj4Zpa0FNd*ieE$iQjXQlX*SEEGYP0bGqR(ETXJba5
i#EG35G`'FN)iEQ$-bbRMY0EFf0UH-mI5c595Yf@DV`kZGV['h-fZ*Yr[jKf2JRK
$bH6YAB'aVdBq")4(D@p,#jI!0a!Jhrb%!VC[hJ'r+ERp0L$kfqVY6a8hYmf@!RI
Ja'b#1hB,,S[8@(beFE1GN!#PF0FA`b'lUmcKc**AqA$Ma$8TN!!4YbRNl)QcGaT
MaHPMc+Zl3#UYfcXd,JcBZ)DEip`G61*aGD$PKLJ8%15'A*%M%e#C05@jMA!eJLY
NFR*#3Se%Z4H@AkYF*,Pb(&E,JH#-c$@qR,QcEJ,"*T'j['cQ4K4E5(0+MXe0dkB
U2Z,F&T&#GFiZI#XmTqGNiahaFfdjfM@%p%ISB$2D1V#-ELdi1Q3"kB,9T*-4PUj
!)BT-ekVD!+G6)jk18r!PD$,UZ*c'-(8VpHQZ1P2KkZk#0eD+$YAaeMT&0HebAE'
TZ,j1Z(U9B+HG[#[jF''"fAV+Q@9Rk*VGq5h2c*N`kpKTTa,(A92#GK'Zh@@TEZG
V[jff#(GE`Mj6ZA)RMS8#ZM[(rfIGh6KACCIT"lblI%q1hVQ"p+`am4db4MZKDSl
f(@8E%6@'"p3*VH*9&,blF2!5A[YBH#QJi5N--4Ma*!B*URJ%%Z1j3C'"%6LHadX
!)%rNqEbAPa"LAPC3!5Z2)J&,'!!!:
////// Internet: yahnke@macc.wisc.edu \\\\\\
\\\\\\ Phonenet: 608.262.8626 //////
////// Mailnet: 1210 W. Dayton St., Madison WI, 53706 \\\\\\keith@Apple.COM (Keith Rollin) (08/26/89)
In article <30893@ucbvax.BERKELEY.EDU> oster@dewey.soe.berkeley.edu.UUCP (David Phillip Oster) writes: >As Eric Pepke said, there is a bitmap rotation article in an '85 issue of >MacTutor. To tie things back around to the root of this discussion, this >article demonstates the same "simple, efficient, elegant" algorithm that >is given in the SmallTalk book. The algorithm simply isn't any of the >things it claims to be. > >The right way to rotate bitmaps by 90 degrees is given a recent MacTutor >in an article entitled "Editing Rotated Text" whcih covers running >TextEdit in an off-screen buffer, rotating the result, and CopyBitsing to >the window, on each keystroke. Nifty article. > OK, OK, I give in! I was hoping we could wait until the next Mac DTS Sample Code disks were released, but I guess not. Here is the source to a program I wrote called Transformers. It shows how to rotate bitmaps to any degree, in addition to scaling and translating them. It's writting in MacApp, so that Tim Maroney has something to complain about, but the core routine is written in C. There is also a MacWrite document that explains it all. Have fun! - Keith Rollin - Apple Developer Technical Support (This file must be converted with BinHex 4.0) :#P*[G'&dC5jcDA3!8dP8)90*9#%!!!!!NR)!!!!!,Y46593K!!J!!**bFNaKG3% !!!!!!!!!!!)C9'KP)%*TG%eKF#"8FQ&ZFfe[Ch*TCQPPFJ!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9dp54%e"3d%"!+$LX!+JiV"d!!!!!!! !F4!!!!!!!!!dS3!![M-!!!!!!!$,`!!-",J#)%""!!Mrr31Jm##!1!J!4)b)X+, &L`)U)J'`XD)!H!+!r12fcjd!HJ+NA&c*XUA,Pc"MbTb*d'$0PPC83N"S"3S!!Ir N!I!3&!#lS!&dV96Bd+E$P9E)!0J*`)UBRd@*#MdU,qP5TNqGAYb#U3)FRR3+N!$ )@T5VeiY-&aBd0d"X!'SdA3DJDaG[ATCl!bLi5))M!$B!)!'J"3!E!(i"3!3J%J$ 043C8d*3"%D40'$eTh*aT%"!K"S38!"`3NSD1CcLN5`-i$5$e!bTb`VLCdqE0'6P Tc+3T)bHf!G1S#aT(b#!j"$&j3#`TdaS0##P[f,!*6ISi!!I*j`iBE,(`4X5+'6Z ',*QbCBX"'ZL3!0fmYR,%hZZRET!!a!dG1@q3!&(('(5NmBBE$H#(N!!$"U8@(`M d*DG%%'`!G`BDG,!!3Kj[e!(#(@L%4Y`F,T5ih4adP1%'#(A!S5%eBi44aabE*9& 0'b!Fb%CdCl`4fKNJd2%'#(1%%4dG)Fk4SaYMP"&#Gm`P&am4%GBf8'CT+%R''f2 8dBD+G)"!4TCGcN'MNNKZPZ)BD,L44KaeP+&ND(CNCdFCC(aB(3KLK$&('Q2`fGT V3HDfQaP[b1&CJ3H5#!+@Fc,*4KeNb&QSER1`%3DM+k,3QadrJK#'GN&U"J)FDH" 4"KY+KX'LQiJU+QD@G1M@*!KQ!)MMJC["SHQY3SVUaKYTbJ&##b"XYmCQ3l`"4aj LY$C(#KS#@#ZRSJ*BKaYjZMS(('@-%Ga`HF,KShmDkTER($&Z*jUST++U+UZLhQ% NVVU+5L5iiJU(jkRRdZ%##-eU&fk"GqkSBCSdjJKZETbf+XGQD`alaiTqARTSSSX DZ*X,$CK6TB-KMkcF15B[N!$CCN,i#HJF$IJM'i2fa6H(b@(d*bUE`i(kVKPqKUN Z#'@BBFE"DGbTm4baGYbSKKakf-D-BG*TjfBdhTNE'd''fqDEFEE+ED'!VN&L!hH B("mr)`I!amTmZKcSQPr$Z9Q@41-44KXLkM[''fhi@ND+JVS@"Ka,kL[[ULe!em, LA2IjjacTMRfiVp%e+8HYSH(+F4fDSMPNQL$mRHLBEQaUk4YQ%"d'Q`#(*M!)8i3 'V+P`!0LNQCiE@mEVeN%1!YkN&rQPKTehD#b0F)3"m@CMXM[MRihQf2TrQ'V+UBE XMKVUd0CZkM'IUljaKiChE(C(SQ[SLH551qVlTfKXp*VUUJ2VV2c1G03akUN!qXh Hd,HC'@h'9@k3!&1+mX5'0cJV5%0k@00+*DI01)XiiU[HJH$&0G*"lQaU@`i!p(1 AfM&*6DE#hXB8PF%9e@TC5[,9kbb)X92GM`f0bm2MEKLhb8'Y3ar56CLLCUafGDQ &SL1IU*3N"Z!8EBN!-e-Da&#rJ6dKJ8%mdT!!YP3U[1&Y8bN+A*L#pEFf4!Z,4&b DpMa@,@+eX(,VDPHSM!Jk*!l22d2L&C(5%,Mkp@jUQKSBT24%USN*k(DEFB1Aa%! Fki%!N!!&mY9`P"3e%+!K$%S,PJ3j"XFlMQ&LIYT-'PA)0)lCm6pPq"+h1T5T2!b X@Aal9i[FCaf'EDD-CraAdqSi*bhT%8RDZK!&,ENUa,(ZNCX#MUSSpk%3`5jpK14 D'I3@blZjd&3*a%1BD%3JMi%XK![*$fS%))!VpJT!9%aPU6C91X"CDTE"q4$@q)L j))9K@4`FjJI[Q+-k,%pjYiU@i4!h0%+PD9GDJk#q+S@Ld,5`F)3LhLA$"%dZ$LY -CaLFr,+6KMca-3`C(CJ4%R9(&0QU$-KV(6660c'&GXq2Xh593!N&(Ad"M8!N2DB -0"5$ISETQ'A3@R4SB-0j+HN1D5!9)j[CQM)-M(6r+4Xa@dUm#"*RJP!e9#PCL#d K"'%)5lK#%+4!K#RNEdA%dS`FeLF(-M#c4k8+TR@#5TcS#+pcT'0SJ9+h2@(P56K M)pdB'RLQ-0heQPJ$+!VCqCSNYND3!%R+SZYJGpKKkY@Kf-SS(G"NUVrYTU-Ba"D 5f0QD%fJT6Ym8CmdD%-iSVEDe)d`1CV5kaJ0"k6X08JjXp3-!0H!QHq*lPk[-*E[ KFABc[rZ6!Kdj+MB-M%*FUq3P-lR&)Af4$(PLR4PSY&Q&TT'irM&Y1dq(@6RTi,D mMFpZNp1!"1$K"#$S!3M`!))9J)!)H'"YP5`!J2EQ!ElbMBjpLC!!"rfUPVrU$@% %6)D!+FK40,HP'FR@Djmr10Klld,Uqll)KYkJ#)V*M8l'5,P'd6bA90,&T*UUDpa (JLk5mIYZ`-4VZVD@PiR4QB-lLI4J)0e85()i,i8RE$)(Z"I!)%!"(P+!JLNX'Ed )iDq4ra[I*1H"b91i-T3"J'!$ZcBeJS"#r8)*JSX#DV&MM1a,,D9KkdcX@`G6+1N 5PBBcK1DX15V@Kdl(6&X5$8jf4#UT"-fe'"P`Q)M5M[P#9E5M%@J1j`@!",i-J!m `J!$fb8&k[4aEqm`&!15TL(N1NjM&01BaNCP-C9`bL3#X)3$`L!X!*"%!083J!+! !J#"#!3#T++!*4)!#%`#3!)#$$#$AM$#)!Q40DcA%B5J(+3)!(J#!B4XN#G1ZGVD a6@eTAr[C(Y!e!+3G#@fA'pZ#',Hid@eZ!#4""0X'`"abh3KH5`8"`"BfU"&LEe$ RHpM&0XLa!F!)F+[E)-1Q0VB0)Qf&Cc[KlLk)`D@GlQ'I'`$P(RDkf8haL%F#hYb q'EhlMHpJ$jXm-!!!%&31J#Qdh#FU88NC!&#'I[rDj-3f0V)0(S!!G'$D!5K-cd- !p-)m)!"%2rV2Kfj`3IJFid'(1Y'GrR1R6chUN8!k[)p1p(N$S0kpPXLrp`d!Qim pi!!BH-'K,HeXD"YPf(DlY1%1!*30QqlCQ(J!Y&$Y!+6"hAl[1pq6X2Ga&jl`D3" jh8AqGC+2(H8!Z%%!U-f&!0$!*eX)`!`!!)J!B-%R0iLi%J$!"Cq8!1N!8%)!M*! !kd()*6#K4XLSd@2UpD6D24FT`BAG"D5DbS#IT--##%`!JLc-DQ,GE*3)'@!3UZa P2)3a$1h9JqVfV"Sq$A#"bGDK[lBf-PKV"X(%eNKGBD@eNH$0d*)f-l82#dF1(bD akSB*TM5dG!kA""H44MI4G4SfB#h'6R0Q)D("2Hf#3PL6IbMP9a6N3V3eIdL#0hd b"Q[`A%HP2NR&065b'GT$(!X6@AL6A%NPBQ,34%'9"UVM8ALdIN55)R!!-Zm33[& J-P)J"8962phd,RLM"P3M2rb#JS9'CXHdHcq#2QUe'8l'J&Q@,FK9(Bh88b69!M' 3!&U8&Km'S9SNFi@8PJ$BF5dHd`"DL&ZVP4&B'!!QN!!%V90*-E)L%r-PCY4)D43 L`X3ZD1"!A$-U'G9%BG"'AUL$VF)U%63aG%!(d4&Lch8'B9#!mK40bH*!l51!R5@ %VE-PS4+"4l8RirG3`6+!G4BD1b"qEV4A3")'BY!K3Z-'GJ@!H,0*L[)[059rSLK RTN*RGZB'I"KFCp"*DH+!`"@,%lJ'RE5'qE48@i*&RF1$(kC(+&)',lKP*)-3@&K Y1Q1*T40+""4%rU&3i8-ik3F#8+"N,("P)'!(BP)'[e%'PU**!!J&*k"N*a#1*j! !!J0$'Z(@DDPK![A"Abl!@d#3!)rZYQR35'QI&RX!-(ZP4RhXS@V[`4+"!!#+)!# a)'Z!!!#*F'Zj*JM)TQ`55C%(B"(`"Klm"3#j"JUm4JSri3$mB(!)3@dJ@4%6m"e F"T-[#4l8KK!6S'`Y!@mf13!1-!))-3,p!!!q+C4X-j3M3!$b-*5%3(BVN@ZMS*& J-C'*X*3%@4'j&JSGD4!"m*%!m**`3'r)eT%9!@p[!!"jJ"!M@C)RQC,3CKPR@CD )3'Ta@CCRL4KRkCCbLC-X!@q)J3Ma-!"'#3$p%*MmB*323!"+bC3AiC43f4"55C8 YFC9C@4"m@4"i)**I&`-!m!-!X!8!3#9JJ!1DL3)!X(NY!!!iJ!1913&+B!fV+3+ q`'Z@-%*1N4%V`@ZD)"(r`$B)83!h-4JE`3)!8!8!N!!$!m"PT-%!+p!#8K!!GR# F&j!!!JF3!,#3!'ZA)*Zdk4%XJCZkbCYTpjX!`!1p&A&bF*`83*T'!!#["JA@LCh -Tjfh#3#jL3#l@4'BGK#$S3%!S!)!F!)!3!1N@4JV)!$Xf*i!-*[[L4#fH4(F5Cr HkC[ifCQS#3#@836(D3%Vi!""%!"e!*h55Ch@fCJ,)C9J!!!UX@#(!!!b8"&D8+) e-"8!B**4`+,Z@C[E+CrG@4(eJC2#+36"GF+'ND3-!-!3$8!FVm*`!%*d9!+) !F!QYea"c)4M4Gai(H@S*LA[B0f3e)6)%DC!!kB'PYhGp&B%#F&0MU+-k5R*-hPL 0+l*8dj3lFN)MC""TNfD2YH'2&E"TA'TNp#9I4I3'Fi!#GC!!!PXQC3N3(B#k4fj !U)DkAlTP-V6$4dRP2!VMMI!PM(#+"h*U*RJ5DG'BB0&B!dG@CB%kU"jLAhD3!!+ QQQ4rJkSTm+SSX+V(`UL11MqcQJ+'5Q(m4DT8YULiQUVMb+U,LJ+b@ULi5U[f&Db a+ULjZUZ3!#UUP&B$4%!V`#%'G4#,FY"*Fe!(BY"3r41,R80I3j-(ekKC3VDIP0B !rZJ![%8#rPJ#[+8#rVJ#I'Sb*P#ULhUXc6USY)SXba-DYbU`UhUS!+!"#3!##LY Ip#@VrlSKYPU`N!#DVlmUIZd%UlJD"kaUA`(EU)AUX)pkB!HEX!XlAa'lX4!,XJB VVAM+XVb&!9#3!+hL+M5N)L5DT9B4PPXZQacHF!@*C$k@T'*%)e34Q''*K)jjSNP Aa6%JN!"4#E3e5p-dGR4--M8SKi0R6SY"E(#0X+Jq%d9AaY)D,3C0cU-Q@Y8E[a% FH9#*r'G""'L,2$BUGk0qfcLhZUJC+r)TFaXh&!KCAU3Nq'FqEeSqG`#U9GJ!9"+ 0!eQPT"DQYQGp#lN5J4!!Md!!"5#4!H!)&UPV'3PUQ1X)m,B"!&!#"6N#KH'6h"# kSbX"lM!#%L!"B%P`BHQ4-"Q5D4QMDkQ5fGD50PQl-JQ60GQ9HVN51YQ92'Q83@Q 84IQ65*QB9BQ@!2#8RKZ9Q3ZC,#'C"l'9T2D5SK#lM##@#!&[A3!!AJ#p*)Ql!S# 5"QF&j!ZN!0!'!-"hm$ZqjFYhjFZqpIZq`hX4m#DrIaQBJrQ6Mf'BL)N3eYZ8d5Z LR&HpLQN4f+Z9r9X3iaZlMB"Xm$DMj8B#TLZ8!*!!ZJ#!`DcVZV$lGFJfZf-*NkC J[QUC[QaCM`$`#5KF%D-3`q!a`q!"``JK[Fm,!-8l#XIlNmRlNmXVP-eV`!eXP3N m[Bl*`$[m`*4*DM2F[54-F1$,`qlV$LU-[ZS,EHb,aH-EP(`AP11,aAb(a9dF[i+ j[l3Ea[mV`!(-`BAjNiIT[*'Ca-Y'[Bj``)YCGT1T[A`A#4-ma48XZe4-Z`a#T*K j[LE*`LSC!#q!@iLXHC!!M&ZEab#2A"!cS-BRM-Nr,*4"6*3F6-4*DF40E-HIUmF 1c-ICbjH5,-@$r,fdf`8"i!GC[-KE('j@--Y!'J#0%,qm[-ZdV!@kR-["c-ZD(,k qh!KYc-&[l*0a,*4c6-TeV-1RI-63Lj@Vl-XK%-L$r-V`jJ3"F"S`-!*%kT23m-h K[!(S-!)EJ!'akhS9!AZ-1heL#VNAB3%*-!8Z#!)aN!$2qb`$rXb-)$!$k*9Ei[' PdRHPMkZ3!"F4(`&TM`'3!!Ak,0!p&EKhX+ECQL0[qcrQmLHF-M!q'l4+8bQ!p5r HSS$-C8QX9%$cif0*dbX"ibJk-p')Xe2$9)H(GNP-C,Dpq#qE1)Y[bbFLKPf9D#V 'Bd&'`ed+p6Z`Fda))ULE)4a+Nhk13Y-$654eH0%h[G*a@cpjdL,fdPBi*MqH35T ldb(qiEG(P6(&Z"Ne"8PTJ$P&I8X1C'0mY6UY`p6@iG5i%p0#l6H08L[CD!HMJPS J`'QE*VU+ZaF0$+De9hd-h4*i%!!4)!#i)'Yh%!!3X,NB5A!+R0N3!'pe!!!CN!" b2UN-)`!09McD'B!1j6!#'&!1hJY[R0N-TJd!U+hDY!d!cH$DX#hE8m`)*Sc-i*% #YCbld)B34&IF&8'kc!dHcJd!4)F3TfI09NcG"0#63Kc+)c$%4cR+!)$+5%c0B!( DiRh0I9bCT1[+`fh&irYXLEc#Ye`9$q'qIi$'prhHD2aXl2YXI2F(afc&rbd2J1R 'K'Q8$P$!i@hGM+R%#f(H$+l+%)c'%e#q&&c#KAc#i)%,amh)b3d!X3#6()i3Y5$ L-&RLi"(L*"lJa9X,R3b8h1hG4EcJT8cH$3(KTBc0%iiB*FlH'Bl-XSc%LScFZ'` 6XNaY`NaY3Hl,2'%65FlL[[`!bqb6c6c!FUcJjifC0[lJQThP6Zc(dF[0lrakjN# PjC(3MJ[C@PS4$a$3L%-$EJi#0B$B"[em#'fPDCkPC&S6L*dFfU!cY,22-l#)&Vh 9KeDhh9++'Ff*YIMAPl-MFre(G951l(+Yri*ATK)kfi3d'a3VS0L(Cb"5$U8GjQV S$8-m$lK!I0Xq`5)Y'Yf*UF-e(GdDE05d54-U-c*-ErCLr'6908#&,G[RpR%16$! iiQ8aRU0SGc"-fh%dMU4(I%hAj(AAR#9AA44$ZM1RH%D0-8)M"(3#T0*!Er#)DFD "jY0)p@-'BA**Br-hF[#dMN3k11hY$1JRhISPrMFmG#"H$43Mf))h+'$6-d!Y$$K DjIlUM4lY+ReSAa3Q+%!$'Q)$mLMX4"D0d!!hlrGKbiJi9I9)Ej!!5Cd&*SfNm21 qBX0%LhIf+#$S5eK88f&!e1mbCdNp1%V5!N3e0#eJ!l+i'F)h0-D(TMFQIR,#,`L c+UkNmRLMYaKY,1$bIm89,!&IUa"reFJLm4T#8LM3!MEG!J-2l*[@$LDM#A#66GZ dceE$"RF#Z$eQkNi&!Y-B@GfqJ%Q3!$I0`bdqE5SPrpFfm!*%9BI!S3F(8LZNhNN im!)kVc8&dLilmPa`)0Fa(eR"XMrTGkk$BlKiZVKRMZH2VHH4Uaar&id6S+r()J- SX2Fd3+c(3Y!Z*l+KAl&FM`+&,r&9C[2,&fA+i3BQFp$cV0"U[ZF!B!C`%i&YeB) #hI&ebrBJN!!$-jfJTcS2@53[8X$i`9G$5r@3XZa3kSP++Gd,jG'$jQcB0ZFr BGpkiQcqQRBq`le9P$HZX$jYM""ZbVX9I)%#b9CEe!bqVbXqUb*,eTiqVqmpJB3$ l*er`(j1"!I`[bGJm*K-$j&qRi5m)J!##!"TJX""@aD)[b3TPC3lhj`$p8Ie6@2H 2kk8!!)J!kiX#2(hk$`%+3!PS!&&!!c5"rZm!GN$EP`!N)0GV!$0)C-@((#L3!1c FlXYck!mqK)%Ri%pL4cE#'mL1RIJr$5%#49fXZe63T'X0%a#4(6C$h[Y&#J9%%)H p&52`ADi!()i1jJ'*1G2i"&96%4@pB9Yd&fKL3*,@N!$3@rTZjb'mcS(TSTVpq6! bT%N-$#*`,XCJN["q5BDSf*HTar9-S0A6D%N'"fL)VXFCaNDhDLNUSN0F#!dKlYE !p`J6E5!kS,aB*bCb!e)4$C%#"$5"ed%%2''5dB)YT9L8!I(L+YJG'H!4`)%-%$b $*ekQbHZJ!r%$&D)C)M%JPNABQJ02iU%"T"!L$*0$"MJ#'S82AJ`0J3c$"#bCG5N L'-i-R9All)-8H!*,i0XT$BYf6GK*qMJ",59hq)EFd!CL#C!!3"'8BJjm)Q4A2rD GNJ!PT'ji")ihFecfM#VaHP+L'UD'+'!&kJUIF#*Qi&*jN!"088[k6r!C,hCYrKb 6r@%m")F4&"VFEm@-Zb!#DI5KFLL'RZEj,#MC%`#@`9q`#("Zr49!2,!!5arIkeF SB2r9+K5J3b3Hl$0m)e"JUF4"Q!#f3!cS!JC,pf8qmiH3!))JpX')U@%A&!&U%KU +@JJ#0+*P9G#,A1FUrND,m#0ml8FiLT&L,(M&,I*&d8(j-Eq*B5Qq#*&)(4`[$3' 40T4+')Qa-(JA+b@@3!jM,r+!NS!"h%SQVX8re"D9a"4#HNV#-m#3!1[hCr`(TiJ d!!#4m4Bki)rf!'ma"2lS%2#@4Z#2+!&[q36q#"3-`m9'&cCL3HU)(l%LC!$49rT D`*9jLE+2*Qi"'B!6-@*)mS%lNCiYY$A(jk4#'B)(9F!0a)VqFGFZ94P!LZ0M0(D "&J0RqJ@Jd%C[B&2JSZ5hr#T&mf-Q3q-fKJeXB40h)plSMH0LESb19-GlAX",q4% [B"YK4eK8K)"2rcNGa1(%k*J2Y!A")3f4L-J%&ENB0J"M*JN$qL81*$e'Kc%"+KL +Gpb#H-C9&!KmpdPSAEYS4!p%@5!J&[30@dU2B&Y+T(0S`48K$RH(pG-04--rf"q hCV9Fa$$CMeJ$A'3M5[6i+NMH`"i1)l4iM(Ii1q,Kbh-V,1)&J3!K`#-'4b`#'Nb Le%%6B@4)"J3+kALr"kj*%ZGR16!'GLNcEa#-0*+XeNlF3*fB&+TZIj!!%UQ9@@J H2P`Y32'&BE`lQ'C#48@a,M%NSqd213!k,)@RdikL`3"KQ&`Np!)LdJL6"5r9K3V C%55M#ReT'L+&T0M#2V+![Q3SkSic%N,'+ATilCE)H5&$Ki[A4+-6N!!!f&'9N3* 3`!KY`HX3AfTL@Pa9#D!&C%!38"SPcI`$0EcP!ILM!9J$Dq!@1&N*#f44bT9P%6X !&&KDLL,5,3Sdi2d!BkKU!1)T'Sf!3SPN%'@Mr*3J+e*1bLl`+HP,T44C'k"6IXS -'#Sj)+AmP0(K9el+q!!2)"81N!#!Re,*2-S%#2mDeDTL93T,@Nj+ql)"rC@Z'TA 45Km'J$G`"Cb*G3!TA2%5[3m3i3d6d,RV&JH2NG3L0r%ZSU)[k4+UC(E%aYQi,95 (3%`KDR+$,%P6JLh@d%94)RYb6TQd9J%#IJppbC(**&8-$#4`lV4'ZLJGa)&c1## TdPc-Kj,)GDh12`#)3h*!VKTp'A5,3TRJLQf4I&B%L!!8`309YS&k1$#jLMGCNB@ )8p($8#(jeK%Y'5C!MpSP'6`!0AJ+`FZ6+q,3N!#1400!2L'3!%LCUD*hU*%@FPi qhq'k'G'S!Ib@h9"LcX"jd6kJVe0k5SA98d$!mU-#p'983JL405X0TAbK!SQbQ@c ""%!&USbM0*YNme&%Ke&j"LcP!m58b8&6fVl3*cBr*GimR'86*ji&(GJ!FS$*B!' eJfpS#MP`U6cGR0%cCS"P4Sa@kBb8`mb*4JUJ#q%Lm*FF1)$BG*5LmPK-5VaC'N8 @#k#993CZ+XU*36IYjV#-Ib!`G5krdRLRr*%#b*6qb(3@6K#ir%#Jm5bH),#RY-j PD4(c@BpaPC5'F!T,fT%fLfIa9*CrXfdLQ5N30h9K2V1G#Q[j,D($L40*3qqdIEm cF2SMk6Nf$fIa6*`0i$Ja6[RjC3)!!h!#3'YTEJZKeebLJl`-$F!3"&b"2H&RS1E ZZ%E#L'q3!+ZaX5KJ4qI3$CV3qjc&rV05K!JrF49#T@QT#+f&+ra%L$J3F6*Xl3E "eL3da)b)G(25)6SeVG)d)Pdh#RL,N!"9ND+2Yi#3!#EGij0CT4I9ZZZ)*X%NQ33 ICD!&F%IK8K&$b"!`'323E5BC+L!$Q)`8`$*-KJSd3"3!"@CJ6)S2Lh0D$F@kKcU !K#PDSNd8"6c4*K0&Af#VkblLm'%JNkLb1kUQhq3YlXVfFB"03`9-"Jp`P'9cqH' ABcNY&CDNa*fXme-Q)IHTX(JP2`ZIaf))q-VN9)Amd4hpP1rc[L6,ffNYX@8I$D5 )G(aH6dLD0e[!%%L@"ZZ4%Y*$DNJ4UI%NRUG8H4T1kjNhq5JVcC[,mfmqL,Ba"Yi H%Vb6'`3&+&)0m8PCP85j*5+[+VD1K9J%mFrKf!c)BXjJ%E4)D*5)hR+$*bqS-C* BS6k`aJ&L3(AV%b@KSE'%bYB`iD%qjKBQLP")1KCSRTL2%l*PUX0ae'*)aeP6Jij %1ak)6i3#m)Z')$#qY"jH&Vib2SMTmP"!0+B1dBJ9d56m3b0*TTUKB@LU!AR8S)J Z*CS%imS-M#E`BZ)DT1Z3!,L#5JD*pE&'JF-"A86SUJ'%J4$L'LP02m19a[+29P+ &Y8F0k5"pTBBdMbE54FT)@jBr1UNR5f'P6J,$4r'Q*LfNR253!(T58'SD!3"10D@ R&(NQcjlk5K0R8%@HbP2BG4NXB$*1!"q-G'4[2EC(IeIVS%P)MC)1c@5d!%ICC*C -kQ`"6HE+V-k@qLPPULGGT'()(ih9D1PNBZ*+cCCC"LA5+NRU5M[T*af9[!S!c09 6HMJ*kr%dV+TdP*,5"N#F'+FD-"PGB*!!2-GDX6N3C#A8&pYK%2Q4,f%Q5Tf154B d$jRJ%eH4@A(Kcr*#"q*rG+Y[95$#eFdXGYq[!D5F9jP&m96SN`-aS+I)Pb469e9 @Xf4p#3#hrKljJPEcDJDXK[cPYXS!hBTAPmaaMDZ$-lM+J1'+9kq-bUUMM$-L4#2 -%&RX60SMRDZ&I88M$q!SF@[C&+iXe9Hf986k9X'Pb#+[Re)1,&H&*9pr$emeT*& dU,VA5`PIN@TK*D92GDR'8Rm8(ij$0()"3m"jV+ekZHK-"@$j(cTb1h$9!m%j3`K 9M8D[-llQ9Z1*AN&JeP1N6-DmTS!9m'%rSh!GX5h9B'9Bm60I3@"p0CiIGXQJ!2R D!%RX8!fadaA&%PAAH6H9URmeV+N8b*l5!@[l`QSdSJ+3!))m`UeIQP%j)G5N,cA PCF+1B"&KMd4RU@YT+N@XU@&D"+RDNb3C%bNDi96cbQ&MJ(h0PQmea1E@%9YLe@` 6A3&Xe@6K41JDNmCXLk@[daA'TYNCZecCl)hPXfq@TaT58+TG,q94pE(r9FJZ988 ,9"GVBf@HU`"5`EPS+@+9$-UDX@D@bBJMqa*Me@b0EE1B0Y!Z8NKe!aB@@D@a6'E *`-$kUQN[lCj&Y6DfP`*D(6XUfBE)QV5-0YH@c9bVD)RX&@d!BCE5X)"b#60"!$, #K,pM0q5lrC&!PKdlFNI`+*rD+8VM!Ic4#GJdUX"NN!!UNCKN+UfUjE3RPL@k@K# ,D6rYRcfaF$DrN!!QNH@VN!!-RjfLhlEEjPKa#`0IECq0Y5Bfam,C!J1r''HrT66 K!'i%M@aP3Ei9F8JScI5L,+#X"VBq%$X"@hQJD!'*EkJdMUfBd#0i`i$8$c-a-&S '"4)9mG)FK3Ck55DK5C(S+2Q1NAbBAFFH,e",H30L3'1kSZM!*Gd!bEf3!#b8DIf LX1C@3S$E3bYkKUfiP@Z832$%[p!aAd,L*SXdX#bJCl#6!bDM!a6+NQ@QBN!mDM* A9`TFA5CkGGQ4S3)'iC)c4D-FX%A9"Fr-D&AhkNk"V,YeC8!m8LLZ,Sdf%J0UAS$ Y'dd1F63QJB$*5'Pq!"ieTBU8MmD!&r"5%DNKP98Yi&rKUX5,,AIRHX@E,5$&'S6 kN!"Hr*(I$DTPmkq@d[G*H+1$il99M&HR1U[3LdRcUk"&VT[*8Ej5!1YI)fNTrE' Se(JQeY8E9Ap"Z0`%fKD2%YlUUE!#,ap&[)TAB*(HcqY@8qa#S,a5`KrK!&1l5XP QjifSMAEalPAJfhMlUP!p[C!!LP3ehpKl5(XUl2faXaHT4YA!'KqblDJLUi1hYil H[ASXA1$ZYDYCEkrkhTM+AP1XBd#q082j-YmNNhl9U["P[fLerk*%d[YAV@p2LE` lpP*UAm1+D"9Y!fkPq&AmMXS&%#i[8c5UIaVf[*VChTXfkHrKM,bM&[mk#(md![B [MF@cpV8!4q$ZLi"(j4L!9"LipFVH4VYk&fZiP$E4#!@8e`dVIMD`!X3[RYE2iY0 31f)$VkrP,rEP9V,BmjTRIl#-KE9CE`LcfK@JHIN$T0,"frIl!YPG+f52X()`X*4 '!ZaJ$@aIkF#S&9N9`!5hf"FE*%!T*i"8BMJ,rpHS'LlM8M3k!19b#rj*BQJbm"Q ChDhZ9rd1+XCVX2c`"LDZJGLjrPmVbPrmm(`&a!*BqM*L,L0GU5[rlE`$@'+*V"# 3!!$-F-Pb`N(BaNVK6%Z&mdY4jF5%k"0(i5GmEk0`[RfcRl3"!%TC+SY$b#cQ,@e JN!#N#1h`-6R,TY!3hP9&+)jee)lH#p4iZh@3!0,YP6Ib649,89N9qFlG[4Pc`5d F5p@SL,Fi(fCMqe$rrP5hAE2Zk0+'frq#XXb``DTrLNVH`YZh#flR,6NfJB5)9'j MNM'259Xc&&FVL(4JKf`P)QUaGj!!--TK([-br,RXQ1NU9"U!*8YSKZa5"1[3Pf! V`'J4#520FR%["YbPNrN5KH,'kT%aQXIQ5'RDBUqd2BbA(CTQU"J#S)JIBj%YNBk 542i3'Q1J5F#"lN)(1'Vk'4%+CDBF$Z6i%2-GG23ApE#JTJMX4e,N+FC`K$hQBRB MY2L6h@0H85#BTCpHMj!!Ce#he6"jTpN)"A31ijJZ@G8a-FThki#N`@ad6-"T6Zi 9-[25)4B3d22'K[%C%mJRBZcK9eQ25m!))'NLSP!QJ4U)!QD!#iJ"0#!'e)!F)!0 X3!fB!68!"q5!'j!!!fD!$*J"1)!'5$arM"$)3jHCaCDj5d%ILc"T#J14fJKm"c( 3XM4R%C!!320i+H2)4q3*2VJeYdSE3!'XJ3k-3X5K!R5-2fN53U!*D)MB2*Y"J!V 3+lPC3d!"!#582G"YbFa!S&-1jq+b6jPai2V)B2P$USK+X5iJkM4*%AC[A@JCfC! !Q3A!(MM1YQm"*)$R6!GUB"VB!3e!+AL(c#bHbA-09!2SqD&PCJS`R[eHH8i!c4B ,D)KQQ`ALmhUfI4%J!3J"1j4XcI-FQ!+$)cjcC`#G!"U)D+L"+X""R`%Sm"r3Xf2 iclp@29GQfjH[h(-#3#TNi(h)&q$F"&U!$e"deGJ&@!J-iCmhG%c5`4jD-p3C$&& P5,5*4Y&Za3@8SN%%1&SdfHNbX#8c`lRV2*ha4($GX*!!f$UU@K@3!"D0XQp1-P! J#Eb!')!$%'!+m0J%3kHamT+PV!&E5V)T*ibSRcD5TU*5QdPBD5pZq)De0LM3 CN!#Zc285c`&a*+B&&TQ'dQHk5ZXU04f6f$4fTXk9Z-V)D6VGT((TLLM68AT+kqN V$CjMNJ")!)fD[`J",GfQZE3C6J$%Y6Pr0$5J!XJXXY$8hX31G1S0E&q+Xaa`!@L !6dYU5[fRM63K`Y6(!P5$8%jpJMme91DR)&48[pK5(8aGJ"e3eFU"fQ"Sr[+S)c8 P(J*M4Jl`jX1"!NJdSel3MKT53f[q)J)5J+G$!FDfbX#!6k3'3!!2)#BcQJj`ka9 JAeM9Gjl@2+`'AZ[KSDdr84V`eRSL4+IUi8'Z3B#j0YB$S!D+N!$-2#YVB(kZ-QP J92F8qk)'1[9mY5qHf,kiJ"UJS)He81U8r"PJMqVI3l!00X9Z`bC`B6GX&meI#%# R00CMe8!Mk$!KAc*K-i3#0`3&f'BjJ*YeFjNT!hG!2lrX1j!!"CieZYE"jVPeD18 $26KB95BFf5KlAM4V"4+FKiH'8!22fQ&ll!63"r!edplAYNm!0'edV40&$CSlIrB -qk`F,#3!V%$`ikMZEM1%C"&4maj*(MMC2+5Jj!'Jc813!)8h6AGK`Y09NPD(NF' %)"N55b8'`!!B8!,D5H!3(qRNCfE1rY&5Y!Ee8,E(*!V8JE*4#X2!qD!J$@0X*a$ !KG2B3*j3I##J'HV5&"#dSI(3J!+*b$rB)!)a-5ZQ"lUiSH+cKL"Y3KEM4kB!@XK #B!+e5L&-38#TM58%0iR86"cK+M*R[!!8K,[YX8Mqf88C%(H*4D4$*m-"m5*3Y%3 kaB@P6Je"5)VX+XaX#dJd+ZL6*"GVFLTNjNRj4-9MEr#d&H)dA'B'XLHM9G'&#F4 -*-,&JFM41,0lbi%@qLk3!+i&QFQ85Jp-VE8XZ3p)42`K(S*'iJNEf5H$a3c0D$+ J"V4[c`+rTm#!f'[iQfrSliM"K,#Di,U21k1-e,d&H`lhKN-8K`+N$AcCLiJcR-! 6S!*&3!G!EMA"4jcIbkdKSc"3*)'jYb"CK28M(8eJ#0L!e#5DMXr"L"p$3i-RP9" K18e&$YrK-%!'`!#3!1%*3SJM##(2S!rRi93i*1$+&m344bKRVCC,B$*%`FTS+Gl 8-kK(L8Y*J)J`iL)eA)C`m*rTCrUhNT!!fr[MJX-"Ip,4j-6!Q!)l*YUGZNU4-6b $L'Pm[d1%VXcJ2Bj'a)L-GdE0JrX4%%i14rM1XJrb!&RdKm&#+@k*PkJM45pU%F` 416#N3,J'NSmlI00*!$)1p`DmU)[bZfR3c*aV-cA)@Yk%rd0j$i`XB-BKC'mB%fB J1SLYciS@aCB`FKDFSRqQFUCe)QPGDSdIZhYr#`Yi!8THS5C[4AP#PRG1,'SbV!' bD"Cb)#l($cV5JEjT'Y!$5-fbh1U()XZ[`bHh'1545#MbFe,+F85Xf"hL[+(JkMG 9)Fqb0`IR+5f'JqlLJLS)K$pC3"-$%E@9MEYP9GUbQaS19%N8AHUX81U3!19'0+0 1(S)8Tc,0,D)[3"E9Ec-BJGa!)"L3!"'i(hQ#$!M(0J`Za%Ed'prXSNMlKrq41CN %"@FSrC'4U+#IqbFUK5Km(@l2#T58&2(b(-Q@TXk1BT!!q(&ETc4HKdbZ&B'E&BR a@l&"2!22Q0cjVKLGJ'eL,MkbUpMKU@N+9I3Sq3-NZD5Sj!"%GXb4!0(fU1*0(`0 "S2'4mK$HCeBHf3!9Sq+Em'%-Lbb#`)rd&UM#jXi4Ik*MM-A,p#1lqdH-F*G`R!) !IbTHK,dJ$"[%AK"q6Q1[#Blpk45%Pa62+,YQU`Q@hE)lRmeH%cMlC-IXR6fd&`6 2IYP(ZfJ[lDJpXjpfdXlD3IYR0qf`(E@hGYLq%NVlDVrYXGhjU2EFMYYV1eA!lE) GZ-rfi-lELcYa6qfZREMlG[J`fjGl2"[Zd&fd#hITAYbRZh'2lXmGZ1rfiqlCU6Y hCqlJrETEpqmZhXXlH6r[f"fpMrIdcYlAZhXhlqdG[Vphp5lIkcYp[qra(Er2prc 1hrHlIlI[r4h!*hI0$YaM!jmlm#3mV#Vif,$J%Ab$6r!-2X)lH!N2i5HmKDr`'2l "DhJ+rpq4qf[Al`+HYYIfJS$lLTGMK`m&36'%*!"`iZ0C38KKGiV&MrJ!`1(d%d* Sm6FK!%L$6Y19CV`h1&J[SE$MJq[@ibr#F4)!qUNq`#JMra0-!)qRl"EKb+mSfP$ NSra2'$e+rVGAK#22[ZSS3Y$b#1()CpXX[a+1[#d)!&IKbjGj!%!!6J1CCr)%S$! SH5LrjGPmbPRaG$l-XrRdp1DY2!&3#BK"cF0jAm$M`Iah)J$+)!!BJSTJk1@R6qM cGGi!9*iI,qLY2!+B$j!!AXmM!#-J!$,pG`UGKAl0+i$b0HG&r@2&mk*q)RRkik3 !'!%!S!1-IXe6i&$2j"G!Fk$bM4i!,)$#J1YP[AKDpETq)j6k@Pp(BhbHrdi,`!c 3HLZr!+#Z)SMeYCjY!(X'%"&k2C0R!"$#fPYj"S!$PRfGC`"8!K0!qfh2$ALm5f! !k1#k5DQ9d!!83!!BmRTKfQ5%iQAS$F)$+!`T*l(I"L+Ikaq!(I$fH[i"T"Yl-1l V2!5i6-!H!L`P,P$`p6`%!!F!rcY"!(E`j0Fm""MbUD&h-IN)d"b!I36!!!%Jhbp j+bm"K(h$rdi5S)lL[NTIjb@!-$$h,8%#1!0e,aG@JJ3!#ERJ*4L%#T!!EHRp5PJ j&B!C`(b@8!%FJmmRq[S!!2L!NapPZVfRMc*83Y[I-iB[p5f#"B$e6jr,6#6qa2+ YrTKRqPc'&V#FVPm4,!$"AcPN(b&F!#+9p5q!Mj)+DAp*TE#f,`X!J-Jhp'TI("3 NX)m"MX2GE`NBJ%J9KVL2!IK1eXF!bRlBV`3-!(@,el%h$C3JiTZ'A*2Zihi'L%Y +hL9NJ-L[NpEp4FJ!YS!!'(M!`1+*!Errq5aHC%#)a1i"MX24Yr)HJ$3"H`p!!`) !h"rjGIi$L2[-ha)qJ%RUr$Ar)R`!Bb!!`'km&`',r[9AK*8M!P!"N!"2l#,Jj5Y r25m#b%(%2diLS&PDIl*rR%B!AJ$f)`$L#`AZAj!!GMb`*`%rAKZFr108!MJFX#m "TYmN`336B"QQId8`!FmqkjZ!fH6#m$i!-!'-3IrA%TJ!jPq3!2IrrAMfhh(LR`! !C`(jG`+F"E`I5h!#m!'RR`6Ba!eqZ*p&F!+mI&aI"PJ4R!!8Rrf(%+!!i%'-jrp KDhYIh&G2U5XUB)N(pU%!LN('j`'1J#C*"'MPS3#`3!9i!dS$!8#Jj`%H*bV!dJI XU3"BRNZbjUN!l!X'H1`"JAV!pEHI,(S-(rQR!ZKp3b!@%`AqJ!$!#P!%*RBV!2Z 5!'D"PmR5a`@+I9rJ#R"rVApCS29(m*&r,)$kC`2@H5b!b2!&YJ!4!3E)%K`R,B" `-JFk!8jJ#b$-*(hNh`Y34`&l,d#*NQf4Ic$!B!$X`3$mK4L)"F)!GG3A#!2mHiY JZN'D))*I(b)SpQNIL+$ejq54Ic'!)SJ'aJ#5fLK)93&l-3!C%!!dJH5I$2$M!AX bJ$S`'k#"-d"')!!bHB-1!$!IN!"r-`$IF3YDH6-!`NF,,L@)$"Bi!bJ&`0i-B!a i'XDJq[F*BS%d!%,JSj!!Ic5!Mr)-jRSdJ'8!l0%!X*i-L!h'*EpJR8F$T$#l)$3 )mB@$HKi0)$-!Hc@!ZlILjASkMa0S!qL"D+!0`!F#HcB!hc&XN!"r0X$F9`r@IIX J&QJ$b!cT#IPh!e!*"5%@H!2NIfMJ$@!*"!!V(aDB!f!D`&i1X"0-Ja+K5L#HN!" r1F!6Ya&+K-U!%jJ$@!-U#KUS!d3%`*i1N!!DG([NR`i`E,#%@+!1X*6!K,QH$X! ,1)%k!$*!SD#"1d$+!HcY!1)*1[LGl!#q)%piQ3L&amN1`2raK)c"6`Kf[B0VhJj !%[k%HYmPL!Ab!)1"9CMVm3!VLPDij[%!KKmDb!-SHc6K9pM%!AXm3,C9$'k&%0p DZ1Ee!2b&@mMNp3$$"V$A!e"9j3[je`1)IAEKbrF4jRSpJ-c`&kjj2X"m-"JbH6i !*BJ'qJ$TKL1BkrN!B"G'Q1[p!"Q"BlMQr3!V"l$h!``ENZ&Pq-4TKVN*fSF&rJ$ URfLBk`%"54iD#!3iH43Iq4F%6"V!AK!3ERL&6&i3`1HKJ@-&!1!6Z)DLJ"-B",J #ZL&Z+$1-(Z5I%,!4%)GBS"!J#6L"3N!6Pa$QHN+!pGFC-RP$J*0R'Ujj3d$LK`B 1!9$AFiJGFMM6SC8h"#4peb'64`4JHQJJ%C!!R[apjZ'ra`PLJ85!5G)"jRT%`-` (l"%"kYq+3[i9!Ff"A'MP&3%qLRk)"4B"@"mD@!4-*"b!JIL'VAi$iNfB)1k(Cq" qD2fCJ'YH%8$`!AZF(J$!)1Ck4J#mX5'ZH8D!Mr)K-RP'`&8`)PTj4N#k)Cb3!(p '!(#i)Q+"4S!EL!BD!5)$KLJ8A#ENha(`@!&l4m#r0aqZH8G!V[%M-RP(3%M))dk &4L#4U2FTJ@XH%R!F!(Y)J!33!)Klj&m5N!!*BS&*J0JRmSeqHPi58#-DJ%Q!8&# mF)RIL4+3!"US"!J"QALF+!(+(R+S*UBH1D#5pbBU!6IKLMFRlRKfiTUR"+4l,Xb EZ!3F"`pLIl(Q,3(`4U$S*`U"&B'I1(TXLB0L%bJJqSQX!)rR*h)iMU#I52"9LQX H%a!0BST-(K-!GA'+9Ki6%#FQLTRL64J3[SP03%4`+Ujj6F!J5#SbH8e!L5)RXSU )!B1)+VTkXb+X+1kpL+LLkFFVXSV0%RL3!#DbLM,$HrJQ1J(#LE'ijMN"I)H`+#J bH8k!C3!6(SZjaU1i,1jicZ+a#2&PLmXL&[-'kRP130,h"6i"#5+`p`5J!!*!L8, q43'B(aSB"84q2Q#ZKbB#He*!ajFN@RP5`'R!)#k"*SV6K`D5&3"!T%Mq53(0%Vh )0RJRZGi8-13"He3!TJ(aNAp8J2A(-$C,1L(j9`@iIfKJ&@$k)BHjRK8!(J"l9S" q8J`q"&SH!J)09(*KER0QEh*YCA)ZBf&ZFfe[Ch*TCQPPFJ!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9%e38b!"!+#FRh1JiYV(!!!"IJ! !&[`!!!%X!!!0$lNH&-m!!!!!!!!q%`!!"!JSN!!*3B-"CGM3!B++R$"ZjTKj)kF 0#K0Y`U4a)k3*#a!Qk$b-f2&M!iF3*9*X8dD1Lc%##&)TJS9+%bK63!`%!)3JJ*N eEqEFfG1RdD-q3A(k0#HJ"Ai"!rL48bE-QKd0%S!!dDG"eaFU3*4a3`B%%SKNf*4 T-VB1#"8['XKYF*DXfLC[kX`T3q60(6FSk+!T8m61@$STj#BSI&K+Q6%8b543)CL `B6GdX$EBNrA+4M*qSBK-80Nc@EpB%fbNNk$eRFpqKl`K8iBJ%J!*m,S*!aR!QLB DfIK8!'$+Q)G`a,ajXmER3!-!#!$`!H""J'N#QP+hMRd1+((DMJ@NB'PmH3!6AZd 85$!!3J$[C3#`BJA&!5d%13#3!!p!U"5##Jc3cMrr'(@&)L3!,e5d'%L`S-'$#"- UA-L`BB-4$a-%J31(64N36F+-5H1'cTXjD%!3+@1R$*XhF-V)!8'Pc"JdEY+-#F- 'a*3k&0r)SI-`ST!!0(3b`Q%T*ibE1@CdYP(CFd3#+N@2*T@c9)k,-3PD*"KLmdd G1@2+00f+-SqF0'I3d!'4#N5-($KbJ*KBmH+3!$GYi05KSj)&L#4ZaVL)')40cE0 TkF`")DI-(*8Pb3b'k05+bMPThKc9%6'"jaJZB(JHl4N'MKGaapl0UlP-acQFRBj Z!Y8S8U8UAF!K(D61Q6TceXE`qcDeE-p9DN[&EAAhk0krJlXP$MG(Cq6+Ee20cA% -D1F5I3-A6YdikHa6UelP,9lkF,I9Vcq0UPfp(2E4bF-h2aSpFaG0"*(4'Q8mejj qa9PhA!*3b2'''S!"49Tiq8fhRi,RSA(46d'&-94fEEaaaPPQT+%5KH0CQ1"B8T3 44aeT0,E8Dl'4PY%BG+%#JJbKRC)$D8V8`8BHEX&3RS)2J5##Ip[*-BF))+5a@"J Jc"&'AKD"!)H$)ei*!KeSK,%@'@@%H"3G4I'e'"T[h2(P'er5aiDBCE#3!+5$G0$ TPe&N9$P6PQ)!eBD(FlM`eeV!13B#P6I59D@'KVd*!NUZJ9#L4Aj4kND5Gh"%4TY cl1P'Rf'1QZ@-`2NPaPjIDJM#'$TGj1"H(&dN*3KhR%8(Afj%fDXG4U9K'*9$60C !3mJQUqbb#DR`3J-2GFG'(@5#`!-9HD48+"Sq4"[BY0Ab%!@-Bka"4&&hZ-#YYf1 !Ha%24JMVQ,VGML!YYHmf8DC1HG$,VV[@8[(''fa83BH`fpClElK$I$@(6N23`BD r$j&CSKXA1C%%%k8a8A%C&aF)44+HS6#$#c(3%%-01FKJ3`dce"$A$6R-)---10" J3`V30[$#XcpV'FBFIi*JaaYTp(P%'A43S5%8-Y(a94NS2+V6@Q'dD)B6GE6K&a4 SJN#'Q&5QX)223,mJ00%d'BedRd5m`@3E+(!S&!JU22a9@%)diCIG(Z*0CR"pIie d4kqkaTFFKR-dTQ-(Zb&QCQlB'64T)&h0f"Yj(UbCAfAJ`5ZCIFk""qLLZdCkPAQ BM6DdS5rH+aa$&heddL!B%BD`6da4K"ab9*hj6L#i(VY+XpIHpZepkLkXaNa8$IC +aUFZ4r*Xem3m#%0B&)BFJ-04GIKiKd&qpE+[EI[E)!J"A"j"M(%`X(b02l$h[EV H!1hCZihldNel@Y5Q*M`f%5pV)11Ded!`2E'4M@GlD%!#6Z+'-hKQ$Q#C3KVd8)D c-3K0Sm(J'+ERPm(4JB3JQ&0`L"!F&&UT*&-!br3m1$`kA(!QEQ"#VFiQ3HHaSAH r#pi8Q'B%+(`%"3MF@YImBSBj'-&"ECK#RRELPaV%3!C-5)(V%Z"$)!)2"3!X`K1 -J%5Y+G![*K#K"MQS44TQF)-Ak8'9hXK"%,3!"&D8`3j!d-2GX3&k+""K!qASK$, FBAU"T'-CfYK(h[RZLdDB3S[#3)Bb*R#*)%LM)[dL5$3a8S)[,%--4aJf1AC5$Ki di5!GQ+FG*!!%X*5J#ZR!`K1@8Qb3!*XKY")`&4!)$iFka"J)j"L$2E)YKl@b&JK Z)!-B'"1BY9V"#SS(JMh`d6-JU))ED&FZ$Xd""CSN*H-bU8SdqB@CCVYQ(c`S35* )#3iI3@3S4cNper8"@N&cfN@5BTJfFH3-Qk-9aKB$*M%YUM'[`JXFj08RVf!0S@D S3f!m*cNfU)T9B#S$NEjh%6G`$Qf6JX2"fJ$(2[9b$LNTJf4BSU'0)R4K+J@"KK# UKK3pV&8'cB0AAQ@8+TAK)P5b%TE%%V5#VZ9@9!V8@YT9"SkZT+#pbQK)4eV5J%E Z)NCG&%@DkU38dXNUd,+A'5a&NmFd3!MhDfU[fT!!"`"#$3mQ3B%B&RJk%,6ZV%# jQ`VQHVBDJU#ZH6KE""1!9S+TP6'1%4)G2'K%ab@!,hN"Q`FTD%%98&DART%JC1% !0KIBBCKfpH"Q1aX51H,"JfNB+`V!"TJ@b3m&Sk8$'ZADKKEi3!aH'G8FY*L#DNT `JTSj`bT43&QmpCDfYKA$d-S3"$+3!'%Pdd3"FB1E!L+T!!4cYDf$lL#%2+LTYp( &!`M8CV2HATF'@da!BqDJ@0$')*1q4)&PJeY2%2M!"lkF`A[[L!,aPJ!%j@9N![S !!T-maVHH@@plj@L'XRB3PJ&"V05ZKbXd!18LcT,J2GA,Y+rd#J8+CJ-Gl0QclE& eL#G-!ecC3&Zr!*CRj0YV'rTU`,8!9V!5E'a((PXQcLj@PX&0`(`VL0N%D,E(RIf X(!0lj-M539fJ2Dd%8qY,eVV"YA5!,C*PQdRNhMDhC0LY&K%-A#,IFVS90+i[Xh[ Ej6EhZ5#),TV28&fmBEHf2YKZGlmECeq+Pl`b-#m)d1Y")9mfE(b3!#-+B)!((-$ JdC!!KS&pmGYI%2`h`"kmjcfKaErei5jZFkYEAJ1A0kq!T3b&DpqSKk)#%kCDadY 9A&mBH,M("BFMNr[FEbpBimeeMR+S'ee-64GXe3hlVS1YS@I53--DHdB0cEkDCc" f"bciKGTCm'"KmEIX1D"iXN%f0(h4a--%+$X"R5)$Q%$VkLBN&mb&3SaDSVd6cfJ ),@TK0q6kpQk*KYN&Z0d9AXTp[&'T9,daH+mFI4Q$&jK1d,$k*TjbhD[VVMB*,iL "S`9FF0)KA!DJE3%+'[j`1f2'$5$Q(-AYI2'-Ehb,(6qi('5JF&L1h1'Y-cP(8[j VcE"mC#k(!FG6Ch!bU&F')&ricHH3!22V4TcR+lFid$8Zp#e+-1C'T`-H%L$(&TJ 3ea49P`VNN!"`1q,beT),Zah'IX8qKk8MZ8'$"l(qf$a`hBjI6c[Pa$lcrCipFK6 hl0L4lRCC@m81jCDJqjJH[rR4#380CX0MYMJ&0YhK#`ecNNj3J)3N%)%)4A!#jUX JK5Nm33TEl"jA`iH#GPZGPcVa*3M8!&TRcPkCpdl-(Y8J6@S10J&6@+JE-[q`i"( kYlfX@KTU[mIPm`"A5306mh[Ifpr[QYTB!'dDf2lHDDTKm0hrNRLRkB)D&$S"f0B qfd(ZrF'crdY%)VrjGleV+D%BY'aeUiVMUVG6TaVlefC)@C!!AJP!C5KJIdc6@bI '0'm99qhQ&fRJ&fU3!&iEYQ',"crbN`Ed3c9S8JH,G$Eh0!+UNeSpNdm@YKJPi55 8-bPM"@VdN4iSd&ZhJK*8a8%Q&AXSp9-VP34dF!+,i9&BXaJ0&K`J0644XP4H`3C p!NpcJ"PL-#6B95IBa5T!iB0N&51'8NK!-904XKK!B63U355038PKm)4Pi!*Sb'R +SchXii+f!B-aeRpmicHUeL'XpS#djML*!hIM"'Yr"hE!YQ[QeQX64e(&9R498PG BacS3*%'0F3C5XMK@8fr-jSKP!)R"S4+6D%23"NV1KRk'K!AdCN1JH!IC"Q39j"P $*PcNYN[RPQjJiKPbe'lpTPXZ)'mr0SM5PJ#jTaDbq(ImpQAq9LJ"ja%c*N&BTSU fG"phC`+"C'Tc@)YKYNA6%d,3L'V,GAGbL'VZeQD2m@DSP'-Jj"QZPSfcZ'rGU&c Ik&cKq%(-Q!$Pq"Kkj)QlZ)e5)!6DH)h"U'IHj4LM5)k3!(12[dL,HGBQHqD2Zd4 hH0*DP$3(GeH)+bKe'%GeVkH3!!Nh'NT(FRJ!F8HdN!"AeT!!-%Gd(NGf-S#4GV4 d'kPc+1H48J#5FbH5-NGc*XP`1#GS*mGc$$Q0,bPX4MGc*IQ,0-Pd(#PaR*16Zm9 1#8"h@QH5AJFjJ+JCI&GfGj4hJEGf*&PiI!KPmVH6aTCeG[H,6BPfJBF'i'Gf9+P flSH9Lq0CI9Cq5%PhMU-5SZJC%4DAfd%'D8!RL-9H)SBhcj+8-'PdGTPYG(PGGVN 8H+QA)EB@'@CNK28qMDH"MaGjNqG"PGFQQ1F`QpGjRaGkSeGkTjGkhJ-qUpCkk*K H%T4mYbG(YNGlcpH,Lc9le%GQ`FF4a,GjK%DADS05(!%#E!8#Cm"9Lk%CB9&J+8J N0[-#02!PDE!8")8'Xj)@VA)V*i%5[a@2CC!!G-#iA(dfCle&HpGP3[GBD(DCIA, dI9Fj69T(RRbB"D#&RS5RRNcQ'DUjI+cCI-S%Lh)A*E-C3GFALZT(GZ&ARZHAIR+ dIAhACi0jI[@R@Vk%IFUdM,CP%@B`BL$!"hc`S!$U!h)NSAQ'EaD+SB+SSDBBSG0 M@ai""leeS4Q+!ZR(S9pbSPmQF'h3@p8RL,$5%4cKJHG(B!Cf%ErR'BHf%ST@A#T `A0XS"0`TCj59!ZPhAIBS"1"&SYN(D)*fI+4KJ#%`F[!PADYBArH9AhlRSJ"kDB( '@c`c)6ND16bkDaZ@@D-aT+!eCfTQQS5cA1phJ1-&B)&QCeLULR+DD,+(!K+&'@H !-Ah5T#$!D)i@DBmfDEkdI'BUB!1QBBS(Q4QiJE!P"aj)BJd!!J)53@*[GA3J9(* KER0QEh*YCA*cCh*TCQPPFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!9%9B9%e"3d%"!*r+Tq@JiYml!!!"Q!!!$HF!!!&-!!!(HKfIZH-!!!! !!!$(!!!!"!JS8!T"J`'02(NbK@#%!e#QK'N$KdfC*JXE"R`i4#*&LddN""(cTJi G%&6NK(%cam`E1@h+b*Rc4J""+N@`8'N5C%L3!)!iGI,d14!!))*)NbS0q%RCUA) "'j`,'!$6!$-$!"$)XmZ)P#*'!'303-)G!!&3j)NYm%ZV(6N%$G`C%5'6%9*8m`B 8F&3VN!#!#%!%K!!KS!J%!BN3#TM)jX#I!NK!!N3!#3JJ#!3!!4'""#!))T)!3%! %d!m#J8J!%53%#D!J)#,"%"%K"$)+#*cmH84!!S`$!N)J&6#!!8%N!")dHH-Qc*J h!-,Xl5)Jc*pr!9S"i##Jbr8!Y,CA[`l!J&B!+X3'k#DJ$i!6",F&Z!4+h,FG5j- @&8J`!%)!ri9PK48S(+!&34`!%&B!4844""%%5G"%42pj--!krrb6h`$YC"JA!&I !JJjI!JSF5,#J`B-)%bTFU,""Nc"MdVLKmfB1'K"6`V5"`kB-L#&[b*4Td'!%$$a iG)#J)LH-QcPQhXKT8dE1(**LmS"B8LB0RBY5hV"K)j'NPCTcdVaaSk-"L+G3SdS &%F-&$"K6XfTpLZ-&MK`N3@jF@QELR+CEXcCKk4+Q6*TbA-"*#c9)R60ejY#KbS* UMUp1k8DY`[CPc*Nej3S'B4H[AVjq!5q'5VLPiEH**BkT1MGVilalBr50m4IXj+H &h5+11fEbjmHL)jXqRIS`A"GbA0m&$CQdC0U@9GpZ%Z6K'SpDAiFHA6V`C#KbhUK *iXERkDM+HcHr6J@04b%q(mj0hHE0'6PTc+5Tq64lE0pJ'dJT%kG1'MPPD*T&HrV KQ#"``)%+#$*BG8S1NbP4"aXka3!$Fi!a*1'%&&BS)8NLe)DC65+!N!$'(##%!F) F'R(N%4c4RDF4#$q&XCG)jEe%4dYdP(%@53Qd!))B2V84aP`cYQ@ELdUpe%#1),5 4"Ki5R3'#I`$1GBG2&`daBKeL4&F((4,CH+515M,TKT-fi'"Q$#'k33B)ELc93TP RJM"'5"j4G%BC2pAdTCaK$08N#'qBm54%8B+J*CGZf!L#'G'emG'HHIdj4"dfb63 %(@`BqXD@AGk%*"f89MFQS'kNZ@DJJZBjk(m"JL"%ARP-@QPZ0)f"KNXIYR&N!dR XPCHL)N,CUN9P$-AL'i$#8GDLDA68ea[+PMUPQQrF-8GI,UejUjSG*9P@ARf*X58 )[i)SiTci0A"SPb$FJ4iG0CBU%3Kfi$U8L&C5")+bFYM'SRFKMJ&URb`'0b5A5lQ `%X""AMB6N8Xe-1G,(p)"BU!&Ym8'N@2f0FFBI6D*VCUDdX(a'3Thjp'FEHKRXBH PUMV(TR+-X6+G)DBl"aaKf&4'AqQ"8!D6HVQdPiXK$Z8aXQGdK1ZSD&6lEjd'[`9 aUHXQfUj-Di$i)EdejG%!'HQT0mD#G+5-l0!FK6([(EIZpI8CErbj&,BM9X`H'@q FlA*I'3)-(KhLV44FHHHPYjiF)V$33"JJLP('XTUa8BG)C#MFUp"iY#f4ZFCLV'U L0Xp"SK`kqIM6b'YD9#f)8GmapD*[,3Kj!hI8j*&)k0P44ZB,kjkc4hh1$!)EElb --4aT#%bTM5k3!"3%'@52DQA@LZSE,+'YSQKH5ilqZUDqNSHiVpYZK$YZQmF[G@G F)%"AKKe+jF@JilRIYqBCHG"B*1aK'"qbbXF[fr`1CS#5!qq1"B)llH8R63+4[SM LKMA)55Ei%4L$6)8l+QeU,mK6RU$Zd$04RH&LZDP*G'bL-#G)E8Sr@9@K#J5$!jR UH#kULFIU%##Cl19@NCZF'aV!0U*%"&-km4lp-)G!iVbU@@Xk6*+@p+Gj$5&k$6# #6(CNSld8d'TZX&PI9(@p$l,VDbaMANI@"-1,U+S&E4J$R(#!*QJKV&3SJ+$AEM) (2#&39F3aMNI8dj%8+#`)qiU1'$VLU*jp5&&Yr0H(X'@Z8JdYANbXPq8mmM@HQHj h$@$8'a`e1MFC!3T9L"rN3*DT1BQ%JDSkC5UYj-Sb+'`+QUN6`*+L"ipJl**Pb@5 IkZ!P@lRN6L!55E5Ujk5Pc+k2m,*EUJ!facV#iBlAQYhj`)FRT)$J9VjMS13NYK6 IbD&'Di,F[YM$XcZ"B!BdZ!'JTZQ4*N$K#ZqdLLSr4M!IZD%1IF)LG3"&UBpSLP1 *kN[ZNK5'ij!!Uirc(0%SI8P2'ED+8d6K%[3@pV@[m8eV1@Q!MpE`*a(0`8I'JQC %J5N(0a"-*'2BQ2q@)X'i-C31YTSG&&C*-)R8U&m38G4K'U!Ul)&SS6hMj%4dTjF $5L4PD1KS-XP#Zp`B`@eXF%)5Q0#AUcEV#9-SJKcN`,S'['S1H3L#`0*3VaTKmDa TA@YE1@QZJb*+PdLEf)b%8Y2[`%T@-k09'BaCRC0'9&K`J1U(4$VBEH@UJ@bY*rI QiMd9YD'ZiQS@(9V`0KIPp'bcqKI55$U'VL%3EQ@CRjj8p51101pU([+D'q`J&0q YD9iLkXLBIT,%k*4Z$JSM!UAX9Y#'#HGUkM+MeKC+`SP)8S+K1L#U+0NZMmb"Kac 4#Fd!GBG5L3ZY-#-Eb#L5QdMQU3'!Y45QMTH',29-*dE&SXSq3UR!ALT64(%[kZc DUD3K6hC8e9FD0X,)XMa`PmacJ`Qj#"%dY%!-I@+$a1SV%i9G`ETqe#1jT13GD5R 9*fN)@5m*QT[@'K'fN6aAK)r&UqV3)EebZ+pL3B5I!-U@a#!i!83SGB)ERQ!)9C! !`K4kM*qC8DTd0j3)L%@F2HrSkQea8fej`k!6kiJN2b!LRBe1P`F,GlLkE*UF!%F 8ZfFQH-'J$Da#4k)'hK6YR(cbdkLQN!"J'+-J"HfLNN4T8M,BDT+B-qlc(HNe6,S qMRS(e*kmPYT5JXfT$ScfmV)dr'K''kS-$9E8$'3`4S!P#Jpl5E0-'V#c`5V1U6% $Q)j"5f3EdFaQX59cYGbJX#E)4+N(+a+TRK[VbPd1P205P8pVBSDJ-UXM)*)LM'9 -%J)#%P4bB@jcCQpbE@9b,Ne"6@&VC@GbD@CTCA)!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!&4&@&408&-J!35I"h@@S1,#I!!!!Ai!!!35!!! "-J!!!UeNiQ+j!!!!!!!!NqX!!!3)+*!!#8'$!@@NF8-(K+d'#9V-F31#5K%TCHE d%#)%iab(%#95Y#L"LT``EZDBH51R64Nj,TS%D4*Q6CNQ!JKDa%+P#C3T)!,Zl2N 64!!#!)!-*-LdUG02"qTB#NK!3X!!IS+3!#%MC`G%+(6N*%K!*L-G)@(QP*(K0F% F0#cTZ(e64mkB-P+%*1J"BJjGZf@%0'RK3mkE1d,bd-RBpQeFXQEcMZ9EGXlC`B8 2*eimabY%-R6&X#Q6`$#G*'kNK#%cCbm)df(ST(P$838)&&!))J'3!+!*l6"MhJ! B%iE0%cLbDArNfk,0'"XiB-L!!D,j'!!'!#"9!@"!J'i#qJ"J")$#G`%p3)N6aXH Tdk8##3C!#)#qM+6#3"M`4*!!!i$l!2JdK43%+6"!1rrmdj339X!!)aU-5"!%$K` fC8!d#6-QM4XkEqDJ!8'NM*dbE0l!+5-("*8bBp#i56-Q$"X38qSBI#1(MN#"#B5 NSE-3MNFjBGc--F1b$FHA!kRJe-P6MNmj,TS%@ELQ6))@#C3+UC1'$4Q&BCUDU9S 'D))K'[2)5A-'$4d3U8$%b)%M"iL#"a1#E31R$Kf1,%!NF62'"F`JE%k1,8YR$JJ jCHC`[%M'Em#"9MM15I0'T`kB#6,(F!%MXqI--(#mD1Ye,Tc+C4l1Z6c3Fa1K1AI fj1J#cZFJGFl8QA-f4YkeT&YRVJ+Ek'bNYMhMeXeEl@qf16!2,blE+'f(BcBR*jK lGqrR`6p6,hV8aCMEhC[l9JYGHS,aaeh)3Frm1r[`RZ&E4kU8UG2-bhRRh(h4#CF !&(+mSFCH-hh'AAd$!PHJH'JN*"00BGK%A4Y[R$(@9K`p+1"k%RSP44Pa8)@B6kU apYP#Bm#&#JJbF(C+$TmT83FEHDJ&!hJ&#J5##2SG0BF))+4K@"JJc"%'A3L"!%H #(Mi*!KeSK(%@'@9`U"-G10eP'"T[h((P'eF103FE@TE"JT!!#G,4CPijA69(59' +-9-E'FlKJPjRlCBB#%c##&H6&3Cf*JJDT3E#9JMPeDJE3YlK%"PPcN'R'eGPb@Q 8,1k@PaKfA9NK#'1`P&##GMQ8N!#5)0`a&KehZC'NVAEN9"@E)!cK@!2!`ZA%N`R eF&0Xj2h8`&49NH(3'8*N0-BDHp&K"JJp!2X%PK`aiG!D4R"PQ,'f0*!!Q3Kl2#' ''R$e3D5Db5,9&jSMP*[C#1J1iDdB1)f9Q,[kTL%'$MKXKUDp#H#l4m$mKZ([(!" 2%B364Ha,X-%J)+```rfQmDm)#f&jX3Y[D-ZY(%-m!3FGP1Q%EFEQ2YA''$B3A$! ),@$8j4`A!`)#$94bB@jcCQpbE@9b,R*"6@&VC@GbD@CTCA)!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&4&@&408&-J!3#Hq"QbS1,LFJ!!!Ai !!$Ai!!!"+!!!'5f`EZ19!!!!!!!!P!m!!!3)+*!!#8'$!@@i!3%PM*Xb))#!'"* 'cX-cD5!f+F1'cCZ&9GbNX90'cT`'913iR'2QMC`f*9h)%8#3!%S4,&5D3*N#BQ" !R`"XiY6*%bK3JNL6)[@%,i1XJ$A`rI3MC`d)*QAFd"QMjk%F"NA5X#Q6&856-(R +c&R3j%dE%!l*J#!5KSb$*AANd!%aC3bD0RA'V#QC!%P&1AP!C#(Vi%M*0)VIe(& cjSbFV$@b5'B"JJiDL',%XNRcF3jF0h*$Gb6Ya[3E-fE$M!N#"`iU%($N[,%FTJe -1354!%M3eShX0dU6+eGU!!!"!&)!C!J`6F!Fk0+T@`FP6Ka`!"HQ"F63,#!&HNB *"N!)J,d-!&JZB9+!LL!(!1m"%)dH8-'!G[rmNa3@PQ!$,e5d'%L`S-'$#"-UA-L `BB-4$a-%J31(64N36F+-5H1'cTXjD%!3+@1R$*XhF-V)!8'Pc"JdEY+-#F-'a*3 k&0r)SI-`ST!!0(3b`Q%T*ibE1@CdYP(CFd3#+N@2*T@c9)i,13PD**!!8ND2c6G ej)`Tdc6"%*4jj+3jJiB1L&3JBZ6!N32%a)SAclD"8iH15KBJNVJCib*L%$BeeE+ P-`H%R$*c9*BN8aLL8bXUjk4jFe4(a!5JBlL!!ESdD"JiAY!YUaF1jc)GjhKf@VS *9+0)PDTd!FGdN!!kCqV-F4X$X0c9Y%&AZ5e9YpAHTAm((alAq0`FRj8ccdee0mF aSU&,"#kFZ(ANTVG2VHTLM'rbe)[([ClpD96Zl,&'Kfpq2[V5kMRR3K0"C,4''IY 0eppaf#@A!"4b[+''B%#C0Tk#eIRAB(TSA2468'%-Y9dEEjbKPKPTU(4KH4Nb@"C AFG54aQ0,a6DED4Q0F4FU)-J`fLNjQ+C%(@cN%4F-jcAi%!JL"0LG((1)!%)DMB8 "`KaKl'84#("%D'+@)0#"4KKZN9%'L8I48C4IMD(aaKeK[K(QI@b3!&N'#dY'5)H GJ"P&aT8cE5N'8'f%1)F,JENP('3J@*RMA9GfL&LF)+!%'`JS@J5BT@iXH3G(C,` j4jpZr$PQU9[@+"aJB[39CSFJM+(644(faG&&9)*`KeTdq1A'P,rDB93DL&Nj4'8 00+6XXX`fQj!!#Lmd)1d,,i"3LPep[G'#B'1`8BHCVp*D4S`cRJNEBjMUp'UZFi! P&PNMT'&'U@@B!F)AAe#4"44&61'#&2Jqp*fhi$DC4dU(bL(#3l#4)DqdmFjVTVh i6T(&&2Vbkbr!A`Jm'-%AL6"&(R03F6"N9bdm3X2bh[Z&a4M[fqqr!3XXFEdZ2dU 4b3J((1r(hiDX-a`mSk```k8qE$-)FE5NTCe@T(M(($E65r%A8CGa4p&cq$a`d%a Q[IA*#D[-XKP)1icfY08H8BCEBPi8BN8bNEQC'bFd0X364"5"+!K1[1(AUf5ZfeL ZSETaNCLjhK''NHd5$MHXFl040aehafT8!p5#)-C&PVYai*pq[U$ZBhVS8FDINF% 4aTSQjI(hBHd#aT9ABi6e@%G&JS"#%e"F!F)-Sk8!3UL-ZL(iP6LjYK2ReEC!deU rRZ6''AISa(SDE4#jTq*JcG(lTf+'#i,d&$9F+4bBFqClUfi"9DNE[IZ&@'0jJ$@ P[IRAFF*Md!2"'Gk'ZHZGEbKG+Y&MjR#iT-fNI@j)3@'q"Li5N!"J#T*L!`T%m!3 aU1%Z)NL""6&S%Jf+!!YhF8+@bK"#%*aJEhdl`3lB"J)KK%%cBh!-C0`ePXC-"36 #8N[iZ"3@ed6Q8!'FJNRX4C)dQ+NMQ)T3'm)e)a#iBB9c#%%$+#JdMGcP+R-3L`K Qb%8Q%5%00#N4'-8i`mk98333iNJ"cl$'-B`4BLf,`dKDGBBY!UeJH`41(HqiXU5 Y,B#"Je-CimDNLBA"He*D)!mKJdM"P8%()1LIjRi&"jQXS9'PLT@E2V)i18A')Q2 !A%PkpjL+D13LM[4H!c2TVNVGi9HhZp)N#p1jL$(0DDldLpLSjXBrKQ`NCRJN'aJ c5"#id!j51i([eS"-CG*"E%NJ3JVD@+dh9P1@cAaQ0+Ijc@9H!94[bZBf!eK)Y8R ,Qr@bCX,#D%GRRL!)6*!!!K@NL3)iS#%)BJ!,(Hkb6RJQ%ja3%U-pap!'0rM2Gc' 3!!%1YTQ!cJQK$UR,RKc)3$@$bM1F*f#S3rRCKVYBT+$'0'-m%8T2+EP3T!p&34Z +i$!kV,1Bh3+E#-V*c)6@mk80M@NEM%#X-U!dTi"Fk6,RU9!A%L%*9'!#2rd*8)% 5P*[!3ZSaPGV6PYUc#8))JK6iZ3D`[Zk-Fh"P(PChdfkQG+GFCHT26c#&*'LK#2a X33b1#M+9(R5T)-@B&%C!9Ti1i6%eR30IGFT6ZEVd"&G)JK1)8&LZRV08kG6Q$!2 SYXR"NUXBm5*&H&5jbf91*ZlcNa9G!KNXbF&)V8)94mlJ'(Tfp+f0"5Q"+-*2'#` fUArYDP02B!3T&-%)r)cS4-Q)flL#9!L6P5T%*IVEV3EAXIC-`K#F30MT,TH'R69 I,*F*!Xa!+A15$%X2!qK4PJkh*&"+,N8V@Lf6QYCpkXV84G,U%RR*a)pDpHY(IIT Bq-k"Rc+BEqHH!&qDe-4eBeK$'!Bi,B%ikm)BcV""'X!5@$d'QTV"VldBeaMAl83 Q4(SGTSUD,!flq-A+JPB$M$Z&*e4"#N-S`M-cNec!m%81!`b$'%i+JMdd)!%``!- -LR2N*--!58G'd4ACJ#FN+jR*#B"[&8CeC"')"JBLU(+6lV-HPF4P0)$*N4`r%T+ 4V0*5+fR*5f)5+*Xd6bGd!!aF6*UA0qbP,hm*c'!3aD#&p@'c!95"SKI0k%BlqY' 3!)kdT#FpDHJ&X!P'HY1[FMFF2eq*$R8`Jle3m#R-6Jd`UKS9,HX!JM8Sl`ir5)' P(c+a@lAk#Hblfac1Q-BcK#B'6iCBV48(JMBiU3fPS3'YkfAV-351+M3a$E#$2B* KAf3-8K"F$NK6QQR(B0P5[RDfk8#$'NMlb6)!Gl1R%+Jbb1$F-*L"ZSNp"RE6T!a )S)NCZ[eNC9HEfI3HGlRYEC&mXf(I#CKf$HCpl5'8amr`YS'dd[XZS)l8Gd-Y+Tj m'3F9,S9U)XLi4F+FYSFTc`dr$[+3!)eDj#1,r%j(pJXHJJ+E1N$S$@1SFT*[B)5 Hqj`)9BD0N!!Y3JBa%hAN96Cb!MLB%MFN)mbP89i5C18'`(!3kXV,L"c@i1-kF33 `Bm!eE'Dip#'F*$*3"ih8U@le+f$p$9VR1THmA[9BQCf8C"G"#p+ZpMG-R61!8Gi 5bT!!"aBN)1Z[NlXV[fj&R2Zj8+A+Ha4N4!Hq(pl[E'G5&0iHpkk(JI&MQ$a3MYb ("KaD@JfJq&JX,Y4MEcb2(UGNb)p0mRDDR$-T,m23@DjdBj0C+9@@1FdGH[1F0aN 222Gjci&qC+'[[1KGTRh5Zia@Y3*1+3l1`p[rARI"%pl`L0qkjd(rl%+a)Hpl0hc 8-3riaJqqm*I[r0`rhhh(Y`(bC-MlZ1d%JQfRIHhYjhh`&hk+4hGJ0flETRq#`hr PpRrX9hr["hj`PhMM9hIB*MMPPRF%Ga&%!"BVji$F&hK[%)(a4i(c"hSE+!-Df'i JB("Q!)+C*i!5+(q,Ci%Ek))+Z#H$8fif`B)Z#)-"1),I9i,LGi)@+(!eF)2kKRk @"i!31)3%@)%L+#[hjbGjjh#GeJC2ThkA&i*-3J@FCi)e#(CBk"&Y3(DPGhS6Yd2 UG4%R!&CL49CQ*3I99bGV"AdF&hXJ9eBf4)G8SPDV8hYRd`!RPhZlCca'GQ4l8&) 8B4%l8'a(9`D21&-e0BR(PSDETATZ@&GhP9GleA)*J#8P`@k2!4Y9TK&M`6ih`9q P`K9c8!G,833P%4Y"Gd8VKfX30!ANma*90K0ZB%-4CL*J85T9eJ6HN`C%45pb%!5 1maK9*JBDX3E#@!HP%J5PBJ5c-Sh%H'5*3`HGC334dK&QjdPFPJ$8-bY$J!E%3JC RY$UbH#lP5#8c)!-IdKTfXh*9YN#5X6Vj#"Rl#(d*S)pb-"Rp'"N$bBp(*T!!"*Q 3!2jiN!!!UC!!#-PaJG4(#8!$`!B#+R!N-N!$9@D4-)#4'ZP[*K%C4cB$-r#4'3P X'ePP-L!$+"Q5*BFfDUL*,K3CCa!##&B$0["kpY*a@03!BiBEC5B(5R56JQK)4fD )+iH)LRKN5hF%BZF'G`3D)R!%N6L96kP%E+!Aq$H9Q)Kk5p-dCa*-C6"-UFH'&AF #d+3eP49FPa8UGj!!66c*0(S)P04N@HJ8Pd4`P1k8!%T*C%URG!(j"S)$'*!!*9Q 8"4Kl!!)eJ#3pmT&pS*JpBJ1153-R#3+4H59TS$T@m$TSK)qDbCQHZAZ!!4+D"KM 14h49PJ"[q5DJXCJL%'BJS!H%f3BG1!E&"aKRm!E-q$K#m!Ci!"J,Y*QN@@a[B#B @`8#V@4VRq"K%"59d-)i4YTbJB3DPq!4ZF(HDF6f!i6"T48VB#BjPF#HaFRD3!(' EX(JZQp*djb3Qk&NMHABmR$&3C"!LG%!&Ed#+iePe6PND`c&K!b3(J$%9Bi'GqQQ +mLQ1ja*S*d!%4X!%qf4e8U+'S('BNh8#KMN&3j!!6aLD!)[TQ*!!+CNb3*NYX!C 6d)G6X*PPd!3F)4cbBCN`8+)RqMSTUMSXkP"c%!1BZCUDS6TF`3BhN4*b)$DPUD) r'U3U3D54FTSJN!#D#!NDT2J'L+%LX#QEm%8(8BSBI3JBEL)(HT!!T@b`T5!!SXD aNh'aNrd*'PGk&QP5&)cATAV!TX2KTRAhSB""TQ1+QCLj@4@US4c+!Y`#-X2NSDh '8pK%"*K*HUDAL@LjHQSj6LK`Pm&eU(2TNapRPiBU0GR%P`rMPf'KFS$CP+!4)BA T9!mDS88fTRHkSkPk!bi*'$9`!cE!UMeD"N5&"r`BQVDD"VKDG%Yk5kKTLkVTP*Q U0DmCQheJ'Td6"#"JGMFd"l'h5Cjc%A`42lp#BTqQ&YH6TKB#'TfM,U(5+#$!&@G !*Aj"P(4!"N9$+DiK4h(#VGhD1Hfb&)aM3"i4+ir"IcpN*A!9A18P03Z6!&qjKZh 5KZ,%PY1%LlV'DbGa"T9DPdbb"JV,'EZ'4Jh,U@MMU8#QHdX*LS**U[&j!U9'"KM UP)[CQ)""!b'DUM+JNi"KNV1DQEADQ@T4R$-lQU"TQX$DT-,kT+bCPkRD*+ej"l* *"Vq*"lRCH%I!Qik6"dFVJR6JLX3*QL45Re3f*@HJ2-ij)m-KR9cARpBjRYLTRE2 9RAm)RQiJRZ5*2(-JMZEjRZUj2V$4RQJ!Yah4RI-C"2A*2[KjS2aC'Ydi"AYb"J' +Yaf"MHpLS'03LKDiS!,U3[4b"KM+*$a3Z6j`Z41+*diTXU!bZ3h+"%p`"#AlQUU DTjQjQ#eVTM",UbU+T%-U08@U1UkVT$TEGdi+N!!*`,!P)MC"5`@kH`CL)jXRm!4 ,3,bH1`4"i!4$)%f4+5d95J5J+lSLk%5VZCM!9UDXDVfU#`-d`,UUFkZj@U[JkkZ eDlCBmRbV+EKf-`BY-A1pUlkB`ljP-(1b'3CNi!C-F#Zrf5YqTTMb%3-bUk,&U6a dF%EhPkX%M!6%!K3qQ`"Xfa&Se3C8SQTlJ+FJQTPM'"FFQDT1GUG+jX%V+`*1S$8 JN!!&1V%'XUN'j6%%MVZF6!G"8E+McTX!RaZkNkXme'Zb)%!$1)#pThZQaN%$h4[ !hmZViDZLieZDEV+chVPlZ!Zr-Y'qEJ'E9!$&mNZrIA+rJD-irQXF4-baQY*i"F` p5q'V#Ec!IS'l$[`'N!!"`93L`FTCC"CmTaKXJ+AlS4mmTRRXC+`DQi#K`X-K"@[ 4&LiF"#4#M@la"[DbIa#N!jNl`c8X[BfA`k5,!iiC!c%VQCJFa%-FZl[DUjkFa,p DGdf-[NjTa9,m[MSBaI0EH9RX"PY-RR[`[emm`)*M`'8-Y3TX1@QmR!mmaR-!aa3 maf0Dar4hTj,C`AS-SNV@abPF(S+m')9mb&#Nb$di2GIMb$+mZG"V`p1,ZpBE86k Xb@BD!d,X[Cpma%8-bU0X[NkF[UYma92mKDMFb[@VaDr4aA&4bk"*`,L-`)+cb`b XaVmF`41XQ-3-!mE-H)k*amcmd-lmap!mb(R@Rb,!`KeKCYE-b(HMcFh,cG&l`fp !bB4UcKZ-bGN,a"VFbESUbZ*Va15la+4-*Hpmb['FbP4FceMF+2M-a89'bjjXbf0 m`'BFd'MF`!ApaJFYamKFZJSYKAHmc#!-`K%0!S!FY46Y`YY4*a"8+ID#dHIUdCV l[#(pcG@l`chF)cUCdTX-!ME!dLr0cR%G[M,YcUB-T6IGbUUm[P*mcl#FccrYa8( GclG-aJ"0"`,GbrfCe-'me"AFe"F-e3dYeC60ajRTaeCG(Na3,a9G'L*J*LBbRM( md@6YcC--cL"JbFBKUfaGcTRFdM!GbV(GcXG$dhHG!$Spcdf5fhiGbrS-`)-Ga[j Xf%@0f%G0d'cFYX!Xc!J0fA3XfFQmap)G`Xmm(*YY"Te0P9JJeT!!h-f5M-1S(32 L("HXrF0YMG*Il0*)20[P@p[R1kaicGGkRG0j[G2fqpFq2FZ#VDY#rFr&RGK)RGa Zh0Kar0K1rGa'f0312GA,A09AIGhC[A6ErFJJEGVJIGBQ[GU[VEhM$0Yb[GjbAGI ZAG2a(Emi6FrelFSmMGqb$06m6GK$RFYL$1$)hFE,lGJ*[G"e0pR+h120I0R963F 3lX)6[XfPrGdMMGUUVGBEVY,S,GXI[XjdcD5P$0qiRH*lEH,fr-Uq(GMl(0cN1Ga %VF[(lFX#IZ-&RZ23cF(66G9!,Y(@cGNZR!AFAH&)6Y,K,!1!NEUYhH&c6EiJ2Z9 -E0Y@RYYCcXVfhG-Y[YqefYr%6HDm(1!fEY"TlYc&[1B,AYNr,U&`,Z4bEY&d6Z& (,Y*i[Y*l[YEQlGVSV0j5(Y086ZJqDqMd,Gq*cZ+rcFr#AGKM2Z0P[YKR6ZR$E1P 2RH"4lH-3rHDC(HIB2HGe2ZU''EQM5kJd8-ij)!-TrDTS[HVX(HLZ[V1hZjT1!)Z I)`FRhL6KhJEMhYH[$)iVG1YJ$VAq$HN$EHD6VY3&VZFpXZGlVZ-+VZR(cZR*lZR ,EY'b5Bf@)m'p2+CL)0lLr@31rr!3$r(6&['@2J-e8"HN6F2HlEP(-3Ci%1f,H30 T,4I@rX2BcX2D(ZATh1fffl1iHqlT2YpI@!3c"r-USHiVcZj,iHi[RZXaIYJd6Zr +$Hb+LHp'[qqBlZpZ$[!2rZQHAI$d`chcV[!-2r%4Ir81Er82Eaa02@e'V[&P$EP c-!Cj!2)J)2*llUVAATNiN!$bkVcb5XbNhqk80NrZ-YmN0%m(GBrcpkhcLrlP24r QZLlMCacT06ldpNl"4jr[2F,[aGlQ$BlX66r`6`mB"Lre#3m$#mr`@0rj6kEe$Xr eTH[e'4r*(,qi(irKecXI*5qLE1rfJ0lUFHrY,JrZiRlcGdm&HlrP19m81qrP`"h im2lS['li3MrJc&eNLfrdMXrMN!"[f8b[f8j2P9"rm&1[q9A[qCd2qNqfjcL3!0D 1'DXem2@Qrqb,@rDUljJbS2BQrrVT[Hfb6pYc$aUlllj8A2mUh[HqrrI"hqJ`(Zr &EpljZRT(i"5I[Q0m-U$j4EH(Y[5B4*!!'h)%cr*&2B5AUl!Ijp0q9irl1DBC3*Q DfJf3!![NEq-p1c@4qR5B1F0h*'rYTDbfprj8RNX6FI-[!H#rhSArr*VIihRqcqF "`-)R!!(AVdYm4Hm!-VqNCq`D)'DEI"%1Xedq#ZLV,'$$`i!46`0k2r!(Ufl!q#Y p)K"bU3RdC`*TJ0&MIkj["F)q+#IS@Kk*Ni'hcqlC[bp8!pIGrX1"!Zcr%6mHU0K m)!&-IRYJq5%pBZIm''$NLhl+,JP@2maA!6II%i5#$dm+$Sm1@,Sq)-BEDf$2Y!f [iV8%c&i-q(lH,kA0)q2![FDJKbZ$`HS-AK6qp5ZSf#Md#&,TP8N"VT!!5K66$(K CZ%l`rEcr9ZEFQc#$$-YT$fb`ACLb&##Emi23c`&D(H)PkL+K*(XKb@YjBEKUYqG 3`lAEB$RJYIdj-XMb3Z&Y1iAZ`a6f"96Bf`#EIJ0m19!@lN#MC[aXi36$KIh*`&N `AjMTM&e9ZfK'B5b`J8FQX"B9a"K%0'3+G")h%"--51k!%ZVL&H@%jp%!kY1HF#% D)5cd&Krc'%k#r@*+#B!%L)!R-kDk&d@mL"r*NSfTMi348jZ1kSJ8%3GB1icS8Ta *3!!",L!PTN4!S")$J8S8"#N4)d@,L$J4-q)-f)JEX53kNjh)%hZL6rb*30%NCL3 A-!KLSSbC5Bh+$3f"'c-&NSY%BBJQi3dm4&!N%@(!$@K@(bN'')(KmC&Q`&CdKMb R)TkpVpLpHXkBXRCQ%3DJaDeS")T!`*+)1%"(Y8@2#!,QSN@ULd0JKmR&[#J$j', E!i&'J#0Ha5%!CUT-94b-@C%YGN@ff2E#SK()Liia,jV&Z6JCG8aPI)XLS$,@4ED SBb,M@-5,`i-aaJA&1+B3)mRa8$F!-0b!J8@6AJK6G)Sj!#Sk4$)!%3mM9Kb0GA% aeX@f9`2BB[HL!9Za#(3[($!BV4d1Z)NLN5kU4Fai(&1EF5b11b`iGUrH@"HlPeI FMEJa-*C'V(JDE50Kc)kkd3Jd4VB)'FRMCUb,PT%cRXHfL"NeSfEdM*la1ST(m,J G#H0Th!1TmHbaaU6S3TDL&'L+%18Nb8DT5"ZTiN4%M2-K0rB)[kJA3H0GI)adF5l '4I5i(YhLNC')DA%YRXA2f!R$BLHmMXj3+h,&qPJB,q5"[)dL8M[+ar%)'MfMHe5 2Pp&%[NJ+#4r0iiUNMeD41bDGr,JDlH&C+PKTb6m#5"33!fD!I1J58A%U+Kh[Q"A EhQ9b5@1U-@C&b1JN*50NY)aBXN+fab`*)@p!Ckb5Cfp+2UBS'4HFT'$8N5Bb4hl (&"NH@@5A0)mcNM*ba[B))p9MM3500j*0NXMlb#-(&J)#%e98FQ&ZFfC[FQePFLj TEQ-a,R"bD@CTCA)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!&4&@&408&-J!3#HSkBPS1,39J!!!Ai!!$CN!!!"(3!!&AGI+N`R!!!!!!!!)') !!!3)+*!!#8'$!@98F6+%5T)R6N!BH50R6*NLEZbNNI2'c4`8EG+i5G1Q6TXTHHC -U%*&6KL2CLLf+52(KFJa-9c!%8#3!%S4,&5D3*N#)U"2S%+*$J3!"!!JJP#M5[8 dbP5*J$E)"!cJ*i&AVb"!Z#P6KXbF)@rB8)a#4!F))8qH-#N5a-Q1"PrcKJdjXQ5 E)&5)b,%Ma`V018j-ZNhLa1H4)P*5Z)8VPklG"RLY"*'#0`&0MR,F2TP54)kFZel TS#PcK5)E-Qj4cX&S4dUC-AIa#LPbK#!5!!QDG!`cjSh8imLP'J"!!)!+!!8#r", `a6PdkG4"LB0Q*6R"T3+r)`3`AJB!,*F`(G"#N!!$!2-!NNSKU'"!ZhrrSQTK`3G lYUMT)32'LaShAX3JdD92Ji"Q@M4mf++LaBXB-fVFb,'Maim04S4-%!31($CP3$3 *-bD0'cT[jU!"3D5-R6*XhX!T)`F%P6*Md,K*-bB-'a"6kTKm)iG1b*&#dY"C#FH RR$"ZjTKKfSERda%*UP#jQR@VR+jbA,JF%m0&e4B*S)5C8r6SP$Gej)`TmcA"%*e jj+3jJiB1L&3JBZ6!N30%bC-TrlD"8iF16aBJNVJCif*N%$C("41Q-`H%R$*cH0i NdeNN@#Xmjk4jNeA(b!5ifm)!JEYh!KJiAM$Z+aN1l6)[jpJ'fl[*@+aDZI*dkcY )R60ejKL1J9RaF1DiaC+0IRBkR1VAXfr[[MM(lI$2bdT2ZlCY9Gc@X@Y2c2kllrM NSHA#'1MTYejLlEfA!)"Q#5K(JHVaKk"r[6%iR`Y0",(5'QAdPPq%h%hS(RKabI' ''TT*j4Y*kHdASRFMrSG'5P&0&8C9!,EaaKQ#QC%'6b`D+#'-I8P44KaeT(&D9mN YjpY+Bcb'#JJbZ!$$+6RiTN3GE154'!cpM4J5##*B@*iFFiJ!3KUPK3(#('&-KK) )F*M)Bj`Jd)&'')D48BD1@G&aP@@PSI('(AQqNHGiE2"C"JYMQNL(SjKK4FDEGD8 NKP4Yh$L(#jNCPKeU),J*j@0[cJKDSL$SK"`)2U+%QDYZM(Q(5f3F1NHPEPbkCkp c-TNGCQ*8PZH-))c"9%SQ9ZC55Qb#F)GJG&MQaTVAfS&9'U#j184V$A`NlVMNPVZ 43a#Y-"&&jVEVlV[`9S3Z#%H!`!3)6i!JK'2f*Q!&[e*NaZqqpaD"&!MSaU[``Ja Ij&!$9J3K43-*R#(&'j25-CXEZ)(JX3kC18&&%8F8)F81&*ma"(+@pG6aab"!mBC ,G+"FF8hDZF6RaJPi$!,)-Y0XmaP6C)S&Ech$A!3He[T*aY"&'e9'&NMl$2,56CI aG!2X0Zceeq3kP-!H)"Km0"9PJa#`%r`bN8$!q9EKNm"X'c`&`Pf$VIIH'$dm0JK 'Q0L'9G!e10dBH$F!K442$&%%%99)BI!4CG""aBa3%%9(AQ@J%)D4CMK44aXJ*b% bb5E[!!)CI)B"Y+!Tf&`%&L0,i8336+#X11113bij6@qBf3B+Fq#P9aP#0)'CRpS P$h+09+QqedZAVBkDaQlX6"[3-lqNZU6DZe(kk5@IM"3HN!#Zk2%8H9c00(*1jf" $l"62A[[YZA1p"prmmcp[[II+elk#B+q$*Dar#2cD`aEAZ-G&cQ"$3%NBj!#p'hQ ZJR"iRP5S3Mq+4@aLZ(N$'mJJXkC8$@C(Z)SCS#!SQb9!K'5S8@PHpM0pEI"',V6 -C%T)"aU#,)9K@#&6DXDe"!L"C+DM@!)S4`FHSJ#'2+3IETk`%cFi%3JkK%-8A3K $'IkX"hRkNaD(k*BKbY#&8kJF$f9i`4[#3BS*Z%)5U)#%-1j`L$34)"+GS-3%'+F T4KU$BA3!aMr53BBZ%!0HHM8(&rU&$@Q!3b$TJ!*$6K+1IJ'-&-lJ"K5-!C+5j#4 Ql-#Q6ES"Nd@i5QSQ@FNKAY+&4A!#%G#S4M0+C3j2(+%-i4M"Q*6KLPRFSK,6f-3 KjT+%3j4L,'HT[`3kNf(c3K[DHZ+QDjA'$+db$3J'abaq9D8U4dP$XNU9Tc9PmeS (I+BkhE9!hMR`Ge33(NmH!mQLD)`f,TMMH!`R"hS5*A`SZ19+A')%ET@"#RRB#FL H-!@%lU5$4YbM%T2J6hYZ,+#N'DJE#SS5KjB"SQmV`aRBe,)Td)%-(NA"#DL!35[ mk!iR`-`*b'!'0Y$K",&$'YRZXNd[NE)-L,V9UX53!*)je%%-1GZFC5jeKaR9DN9 3lBe+@#+PC*h'8DA48dT%i#FcK)&,K[RT(G6NYiTG,'-Eqb))B1"#SKP0V6&SDp4 33M9#*UDY+k0H6qak"Lh`j!dXE#[1X"FqYIEeVi%YBJ*54)FKj+9iFKJ#(GL!!LF NJ3NjM5VCUT!!QQ1PC!b2CFVU@SFYcjS'0FEE#kbBXSE%i5B*4J$"'@S5"M+B9$" `5)T*6M-(fG$'*dL)TEiNfK[BUZ424*8$#UM`"$'S!5L8Y#aQ-F050lS8U#N!EL` GDG`Q)*FRbfhZF`9CfFZQJ,TB%edEN[X6TQ@AMYY9iM*P*d[Gl@qGq#hA`ia3"5F -J3T*H!,EiVR2q93dI#lic&A*N!!(+L)("E%UJa2L9!D3!0e@"M@SJFhX)%,3Z@& diaYCq9)!-LS3i3fJC9,0m'8&NdNK#83SJZiLHS3NiSF0#fj`&G8UAISb-frj$6* (pY[Ir`Ci`2,XTdRULH!6EkJ-*diabc!kKb'dJ3cU65l)V)cPd5@Aa$k*mZKB0Z- 2+M%-BPDa$hf#`656ZBK(V$%IF81fcq6%RLQa&,DNNJDMT%%2+G(UkP!mjTH),3& 1+-)921IQPm$4#'(JPR3C6@J9Ja60P@CC2YZFDHmTdFPKi&#M"`P'6%[Cd`QBEc1 &c1TcFBf"[AZJ6j*mi(Zk`39)X"4+#YSVRKJ*5GG6h40D,)8AahM'FEEaBQ0l"Sk @i5peH!N)I,"@lFljY8i)lSY(4J33j"TBCH#eRq6`kcS%ZhleAA@Veff4D1V,R)C T!MQVdQe&)Di1f`4"5UjPQ(5bHphYE+$[$&CG'm&Ke*YfikM,,$%PqXJh9J0FT0Q JQDfiN!"eNj)Uc&JS"aH'!B-RV#%'Z6K#+2"NF'X@`KY%@!DXZ&!-ECM#RcZdCLB )@-j8Q$'XhfQ`Ej0Kea2R(!TiBL)j,(3+UHci0P%$Tc08f&ih0ad93*VXDbFJF'8 S!bc66E'U1r`*SX&J)ZG5KL#3!)%-H`9MMbFkDK5F3D21pLKQeL"c6[+*Fh2R,'U )d$SMX"Bc6RJ#fYDJpcP)B3jkmEXFeJ"i`B0J$AbIP)2GN!!qM3Gqm)IAbq4"+NF k`JVXJ`%j%I3SjckDk!j#b!1Ke,U'Lk&HpDKaC1IVU-KSNk%dSapZkAd$NkVBPDe p6!"+c%$UY6Sb!BUXeKX'CpFe)+%-JbR-m896'0CI)3eNd02aB5jc3+[9jNl!13T 1RhT#C9F&)%Jq60VJ5&AM4Y9+(!+IJJ*TER%1Pcl#M-q"E[r6J"5+*kG@*RF@GSC L!%8&8P!&43"('1FQGZ8%3-9a%G4bbX9p-`G(!(J@!RKb"@K4Y(&-!pJ'McCaNpD !F'3'S(F'BLF'C'GfD+G@$6KM#C!!&'1`&ld&B@QJ6&ahArm'F+rQ6J2(CJVADA6 J!PLRG5cQBM!QBh"'A!P!"'aL((13!!3V*#J3PS)Vf)*R*`G`C$VD0NH2!cLRSAA SpQ-mf)1X&R#a"NqFGQT&q"G`d'"KGdYYC(!DC(!3C@Di86ajX4FBP$3LjdE)jS4 mH$`JCeFS1)F'jd*`Q!GX9)Kqk%D9JN'B!BR)idD*Y%Lh9iQTGBN'PiQfYbY[SKH 0#(MQj@2fKBBqZ$X#*fX&4a8)Gf*'8PZH!cVU&@+SBcjSSKG,3e+LD"C3)"J[i4* Rm$`V*d'R*'c%CQa-f(91b%5AmdZD)h5I8`DK-cUBNBLKKiNXQ"SZb)@SU'kU''4 Ub(0#D(!)9e!iFAXSX(0"H'*8m!EU1%)iZ)i6eK8@*LJBTQ'`mL-Mp)f[dh("&e8 Gib2Vk&'i1')j0@a+H'a0Z(Y2'$cbk)pNS&+[H#1M&P-J)&h%%N&c-3G`")m6ZBi UTBdUk%BDbC(T4`95J4)K+C(c@*%Ri$(G@(CEU*&!B**Ck)eE5#a"SeF['BmaU9) H3hk`0`FiUC1BD*5%3LbDB4P1"ikI"T-85C6TTiP)L4NjLBAFL*A%mNU+jB8Q!iE G&T1i**)aUB0Q1)jTq)1Yb)C$k)BZ`%4FDA!Sm%'PJN&hb%'$#*%IjdCUTC5,@)D Tb*ENq""cXbrL&'rc"J,r)NiTJ5MqCTMU9)j"H*&`F&ehN!"24S*,Yc4U*EC`Dd) DZU8D,e9LQQNcH(P,FR%9ED!F-3-lbYL3!-hS,`f('`qRF698Ia6R"KDR4!fSQ`( TF5#AFS+S4"Q)FS"SM#cRFNTNJB!QR&!AIP+RFd!SDrXAEN&h'N-R"d9hG%QR1Ph 4@f(JG#!$IMK(G8jiG@1iG6p'BmTQ"J#bNcEjJJpi@5iNPYX@KNR3Q93fDTKa5k8 T"f)9S+64QR%#NM)iHl!bRi#CHelA'da*+XhRHZ8AHhh%S,A(5(QNHmU''lfR9X$ R'm0AI#2D'qUhI+chI0&(4,j"IF@h"YHAI@L`I6%hFpmAG5)cISGbS5!*!ZLASZc A4qkADPb('r*("r5hRDL"JrURDpVCIamPJmQjJ33)'JCSDmZ9J!YiFD6eJ"%S+"- i35J!R91+R#8AJ(B9JKd)8-NjJT*f@5KJJLiNRq0"Rpm)JkdMJc4SJrLAJc,iP`B AQ!ikQ,L"Q@eR"U1@!Ll3L(@*5i,+Pi3TMT6j6*ETLLhe8NEBRNPBE%[BPmS'KA- JK96)F4"@U&3aGMb*GPfBE@2*E@+BGH%)C*@D3*F+P`DRQBeU&'`J2$b+9YX6-L+ @1ZH$'HcM2PP$"RPiQ`PJLAmBF5-(R0IcKmYT3iDD!026-Y,jNbkD!-a$@,E''a( (VD"kEBK+K"#fU(0C1A9*&F66L4M%J0-+Q)L)UMLN@!cUV&dCLKdDSEL4VG-a%hB &Sc54"2mL!ii%X'PK"fSPT!9lX1kjS(084pqkJPMCVq[jV6TMDbiJX'"%X%4JX&6 L5"UE24c,X(EPX#%,XI*eT"(TUrTUF-XcVc+E,#a6258E2TJ"2VD''9L!!c!!%eJ J2bJ`"AK`AJ2jXd(l"N0V!d@E"bR`D%ba&dD#GQ&`"l0kKV9UUec$Ari&B!*fMP5 KUdk'((8J'Ch5+jl$C9R'%eYfC@h,K5@'YTBbQjlUN!!Ha+b4HL-KYjIhLKYKF(f pFLKpka1#QbYB#jaXdJCXNKS28Ud`jP%Z&,088Dh4LKX9kdE'1CM1#*&Pqf&dfbZ 'j34[-!5riR50&(p"J(5P`VCHaK2iBJ4p0!DNHaC'm6cVQ3"lkhYJC+I3FEN9dSD &4NQ+5S5-kUL+#+RaHRb+4l9DFa@*faY&LUeRP3-`J,X3LD5mkU[@fae@iVd`J%V TeKYMF&Bd8!2Bqk&qXEd&GKBSF,lJ#llLbdcN1eGP)!2TDhAV#aUq#LC8mVhr'll Y0llrDVqjaJCQN!#r`5Grr0Zq`q1r-1!#0B!C%9`$mjZ`jPX$"Q`8#HbKqX[![HV !lc["DbA"&#c"&cblMU8GbkI![K'iZ%+iB(S(2b%RMR+iKi)#Dd"&YMB(8'J81f+ +Q(9mC,#iM3ZlGQ9LICB6Ck#CRS2$QbPZ55%'6R`#4'"c4i"6M#ScUG%%Em!kS*% (afGFFfV%[3@lB(3#6l!%Dia6eZE"!mQJ-$biL!+KZBXE&S-aKCA%FGYHP#6&4eA &[AB'@VbZG'!&4Q&ZaiFE$+Sb0pX6GTbp[Z'a2Y((CF!d+!$)92a5+V8CFS!(KFa %L-`'LMb3!,L"XQ"%"CD-bCSXb'-J"hN3bT8cbU8-9G2E'idm@"ZE9T'X[Ve"bDV mZR,JajQ-+e-Xb))#bP&Vb,4-KP'&bT8Xc-6FbTam!Lm"bl*mb)RXc#YbbhKX[dH 6a1NPcCImamBFb0@F&@1Jc)c+4&M6c)YF-ICE9kNmcZ[&%p0mcTX-9*e-&l'mc1l -02"XbVf8'SX-IbYLA(i(@U8"Adk`b%)J8Lj4"A#!FCfM99[N'hZJGjl&3qN(&&r 9@AH3!"*Vi!D%1p)RF"UVaG"DFfM5UdTP`%SB284H8%D!"&fBK"Y%!,er36h*FG# p3Y%@M3)ch43J&Eaa1EcTDVb'h+i@4,NhNY2H5V083DKhHT`$Z3FN!&Y$!!*a8"2 &FJBZcFKb`!4L`!BXT&+1V&FDZGBYNe0A3#dii3D,(0GQMGD8G!+cG6fl6"YYVFX QZc&`,GGX30Ga60LGT0GR99KTM"Pj$+cLNaK5(GG5-GGU$FiJd0Lb"FiJ%`16MGL AR5P8SpPZ*69Cd0P5VGA,0!4Pe4[`+-*3$3Fcfcb5+&Yje6+1$GJk+eZ,hE1QM"Y ++l4%@pSSJ3AR"3,"cE6$2Fp4ZmM0'p22HlA(Ydc"9`4-`,VqfKYcM,L0QK-'AGd %E+6d1dA`*39ba,UIHlE,PlDABPIk5CE!iefJZpk@XVC`+ma`j(l`Tl9Efcqh5R# C#P3ZF',%T"6bR4efbicP1P'ZZTrG4Z#9Bq"QQlVbP6eRh6Qdba9'39eFQYm@MK+ H9,hqLi!+k1&KF1%KMM(`ka-G$NXIMZ(f+`-FAZ)ZIZ)J2JBEM-!chU89EZ-BRX% jEJBlEZ)S2JBV[(j$RVApEDPZZBB!EPfDZY0AkcPA"6+[e+N+AN4kU,[&DEPB$Cr AYVY@rE[(LD5!`8DlLaP-"-@'$%4#e"3eE8Jb9#PA4HFY9iQN#"K#V*D&ZH3)p0p LHb1kDTEYH*frJjC9DC!!)h526hGK'DBkLNi'!"QE!NQ3!"!Ak3JTV,RBh&MqU3m CUP4*NLIJZeQ"35Pj@F6#NT0eTMSGk[3iNqQRK@LAP2B+"kTDRh,JNphceLk%k+* HP$ekP,4qeCmiSD)S"NmT8M`4P#2jkM5*PF01jTqiSCZBIQ$*i&m)Ui6Zkb2%jj6 Ujh[MEJD$"qA%0[Jf1'+JEpU%0LP"l[e'Uq!10N6fY8IQ%rE-AZ9Xb1qmcFJ+2eV $F##NZlG&M)AVk"VfkGF'MHAX132["QF!4`'YcD5F%RCeBHV&m)*#M0i1lr(Z0B! q-NbcbN9)62Xqm82(02hHDdpc@PCl"mb*M-XDm'(3m'G3Z$@"ibhNF&`KR6H[H%2 DZFV'S!f#XGQV(AN`*hCP"$R"*cHI"Th#"L3l',FNSK'V41SP!lF&B9b"'H9F+63 24m4%c$1Im3krXp&p"a[2hah[m9eEC'!lB2H1crNqbYMR+1HTScRAkAKVQ`'[965 rCJCrF8!45$`2&%j[&#j8cXfmCPMMleZ$'lKbbG)TGERS3YS#554d'Mj#lTClM#e Rf%"rEA4[dD`hqJ1Y4!U2bAj2pJqIRl'eqX*BmfNmN`lG4l"2m(Ce!M"`!M)BqH4 Z9h%e62Timd3p)c3IS,f'2YC6[N!a5Rk@qGDB"NIVqL"`qGJAM0&2lLB!!J'9r00 Q,mKa"RT5r'A`pHm9A'b6hBUrc@Temc*`mAl#r'1!5FDerK-2!M`!+dhJ%Nir1YB @I+228C5qE4D2hX!8H(TXJ%KG0i04r`3Dqk-fCQ!Pi)(q0cKURfm)J*CK!%km!XJ %*SM6F8rbC3(#XGk!!5NH'&N$T-X0U"HH3"4-e`4K#5dMGEfImD9U!!)#$P98FQ& ZFfC[FQePFLj`EQ-a,R"bD@CTCA)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!&4&@&408&-J!3#HSkBPS4X[a`!!!Ai!!",'!!!"&J!!#'@S)V+ b!!!!!!!!PT`!!!3)+*!!#8'$!@98F6+%5T)R6N!BH50R6*NLEZbNNI2'c4`8EG+ i5G1Q6TXTHHBiU%*&6KL2CLLf+52("C`@!JK5+B+&5K-S8d!-*!KJCmqI3BF'"%5 dU91#RNDC+K&3JV'!!I`Nf,S9"!JhCFU3!*Ncj!dELP')k!!Kj-N6*N@#10R4J+Y GVb&(PQ`6K!S41AEN@+%jaiR*Y8QFl$a54%U+Y@hIaThES+k9)&,U*U$*8FlD*e1 +b*&$GbXG0'@Z8'4$CLh+14MY5#NcKQjG)8@1%%3#)%'6MQ('[(P+[$K"!`!)!2! "i%'!C!,5,'rq2$SSFG$L'-G+8'N!K!$!b`!!4"1Q"MS)FJ!`(J"5+339$'Mhlap aHlDSk5%$aSXD0el%)0'P6i1!CPSdI0LLSX@,'$0Uh-LaSmH2$8D%6"!%$K`fC8! d#6-QM4XkEqDJ!8'NM*dbE0l!+5-("*8bBp#i56-Q$"X38qUBI#1(6XL43Y,3@3R (Tj``EZDBBGU'jp-4#DT3ZCTeUjbZFPc!5G!L!C3`FiSHRI+QMT`aCEiQ'+)cMj` dCp$3!C%+4)`F1(+!+(Nb*GmfF1V3iFN#4")hBeb-$-,Qk0r!G1D!N!"6CJl2Qf3 dL`4VKHHF0'qbkKLCS(B-&c"!e0kG!!D1&iRe2SB6Zmc,1E2"lQib&UY@VMc9mJj 5jdbG1B0M9$iFA(PYX@5IRifqGMGekpJ0EdHFJrEhjQ@KTh8jjRE9fZH[CerIR6G mm@Lj--CdeHQRRQ(XZCI!IfB&+!H"k1f(B(ql-5LI#dd%XG)DCCKAB(VD6GLHGfl *mBBDPdR&'dNI5XMGL2kKN9*88i94eApY[(('AfDN`41,%4liSPj5P"&((@Q3!0E 9FFRaYY)BM+%#JJbiRC)$EdV8`8BHKX(!hiJKJ5##KH2*-BF))+3K@KJJc"%'C#L "!)H*1li*!KeSK$%B'@ANQ"8G9ddQ'KT[h((R'hH'aiDHCE!3TSPd-&SC9Q5d+9G +BNM9KSecZ'$CB0H9"J+E6c,@TSbG(3U#6XD"d#0+PE(U4TKhZ%4'SA0-kNDPHHi Djj,A95D'C(I+#-)B6+9NSQ3ZTD3Q#(Im4FGNEU4CV4eBTG%CQd1SeX"(i)BVlVJ E1364#K-p4%)63pL!!``&YG#(ELZZZ)G2aXkTie9YJ0#'J@+N9-G30jPTe,&[m!Q #ZHZfLm2$-FME3!091*%%&5#!jeb$21d`F3**1%&&%9)B%F334A`FeK4&60(!E[H @SK*,TMUd@a@PQZ6SblA&$))35,*"KNYRr*c6''Z)C[0h4+4KP)il``b#c%R!fDG aNG)"@l99Q,B`ch[C03G63p$"4Q96"1&%%4lc2-366Na"KFS*V$%&B'lSD9H(YI8 !`JP,""'%&#IX`0ZpM,&"P*jEYiQhhU3YAIH6ElP%Ka(DPN&&(MXPi2F*8)Km41& dVb&&S8,N)HKZIYmJJmHlVB&%'B!*4UrR),J1!qbeVA&&'Q6JbC[ITU1ZZUJUJ)" $fl%r!BI@XFh4p00Rp'eB$$$X6[FB6R"e-1YGCXpl!Q1F6NF1-!`IIJcMPrm'(66 8S$lfm,BraD8bh1ihr62BIbN54M%$q1K(JrDC,hlh-dSC!-J'-qKQIpQV3IZ'S*m hp'Z!fE-"maD8"5LNM#,N#U%)4dM#LNMZAKM$@%rB9#h41""42HQAXKBMTaSH*3h ('Y@GdV3U%&6,A#8-SK#(H"'(J)d+C%*,iKB([@Vjl3P#8%)4KS!a&&"KL89TBJV SjKBT2!&P4+L#&)VJNb6b")Z-Lid,,KBHMXN"M8e%J96QX"+AB!iPQpZ*$N$`",P aVJ`Tf'"YM&!a+LB"EQ9XShcJZ$8AF)BdB5"$(TaR("5mUJa1H&-CpMJ&3-QJ"K) %@lhU"3)l[)%046+$'qV3KMf'E'4()&N+pNJ&)VaK$+c%f[KUm`3VN!"-#NNJ!YZ i5%JR'"+45&4NQ4LT4PYZU!bfa1@5k#$(d!bK$@4`!LX$*SFpAM1Efq6*,(d5c9b qC*F*k18[JcP-88,"Lf!8)aQ6ZE&&QN4a@@`N!(e9"XcYLLG&1P*Tk,!$2[T5#X! 8TL!68!3R%+&YHb#L4#G+VK2kj'Fm(%`6G&J9)[4`$##SJlp!N!#5DJd'L"40U8S eBX3+dBJUjCcQ!rNBa5P@XCDh0#FGYLK+-ccK-bqeN@j!303p"K81#hhR&iX3aM( kj+JaaGSDSCV6D5B9RNb9je1P!Y1U5Y8)T#P$3G@*8(CHGDP0R5G9T5P9[X"KNN# G)`V#F&5MFY9'JH5L8Z2T9#UX9DFZX'@4)MRA9'UcPCB4@4&L+B@#QZNZ4F#$QN, MU&'Zb&9-JF*IAN)dSllKP'A!5L!0ZNk&kK@VDGeUMH!3eCHi!(-i)F-F8,$AV)j 4P*DPb4ZSm!EB#Xf52K*D*V[#58q#XU!pLQd3b%#'ES)!#S"#Tf863&4A"CF-HGa NBQ%Tbp'50D(Yj%eY8q[AZl,@Ukip3KRSm&2!("8&9KMFU1Vk-r2Q9C30IHM%)VV 5rUl8SKJ63NC9`P%3@)'(+6%85[h,B)QfY$EPADd9I'3Skd&4LP3%J48RA)Blm*3 hC[M28DPEe2UZpUam9DYj1Ab(04CTYR0X,4eS+H1#cM%T1j'$(5K-5aC,PcI9MDm 8dK5DYr!,1Fm&P(F2#Pi8feE&%UE`Dm-k9LDEpE4Se@U%UF*L&`c"+'a))JSJP8B hZ&+aM#hS&2#!YMcX-E,8iK-ClXZEBKl6#DVPXT5GDC`k2'C6ZjVV0`r,6@pLNp$ LT1@I+9APdSCh0q29mP'lE-XTV&FT6HMc("TG9Y1k%l@5A['HVh+(Z8*bMd8D`di jh@3XTcM20ZUbEf9,@e$IGVUed5e[C`hFf!jAZjf8`bFPD&hP-YHjd*A$MdP*e13 +,EYRjUi88V"N4qmb[a"YX,D(#'!3N!!4$c[%XdMl*3D5MZDL+3(h58'ilAD,m-% ,JM1LjI!620$"`MA0X"ARAHqG%V13!&3i**j(CQpqPm(H,P![(H"X"D283EY`0Sk FR8aHHBH6hJHRJ`XX[A"l0j`0$dG"aYpXEiQAJ3b126QT23YDd5l8cJ&(TXAE`-e qZq$M`'28(TN!Yb1mNY9AaUp$XqhZSSr,SNF!!42iL0%J+"dTAq1[dDIZN3G(fUP $3%NBj2"HZTVAVUZPFa+D!!8Q&+%*$EeLc*fJXMf3!#!*'62MI$"M(iIN9c-#!Jj 09(*KER0QEh*YCA)ZF'jM-5j`FQPQD@9b!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!"849K869"6)!%!RU1Q*D$LZpi!!!&q!!!'N!!!!!%D!!! $hII&-TN!!!!!!!#Be!!!"!JSN!!*3B-"C94a-S4+NLG13"Kj)fG-Q5*Zl+54mmE 0("4YdVK*dkC1QbPjjMKS3N91')pQ+,BT)mF&R"B##&)TJS9+%bK63!`8'("Rcjp "K`l-5E#T8kHH4TNU%G!!T)!"r#6BZK8%#$GPbT!!Q62N$4Z+8BMS!#(Nb4-Q4B) ifG'!Uef[)8H@E"1%#K%jGZ4BS6R(LFQe5CcX2&*%5SUeEGr'RGZJVT8J8ZSQS-P 4cYSR8iV)N80h+addCDj3C%0Q,FSj'1e)+61'EPdK4Bi34!)J3C11BFDmH8Umq&- $!!J!8!'J3)"N!Y)XErim1LKaZl`C*cL8+&D%!-$,!!"%'!J%dJKb!$!H!&)T""8 -D2I[Re-K9TJ"HlDSk5%$aSXD0el%)0'P6i1!CPSdI0LLSX@,'$0Uh-LaSmH2$8D %6"!%$K`fC8!d#6-QM4XkEqDJ!8'NM*dbE0l!+5-("*8bBp#i56-Q$"X38qUBI#1 (6XL43Y,3@3R(Tj``EZDBBGU'jp-4#CT3ZCTeUjbZFPc!5G!L!C3`FiSHRI+QMT` aCEiQ'+)cMj`dCp$3!C%+4)`F1(+!+(Nb*GmfF1V3iFN#4")hBeb-$-,Qk0r!G1D !N!"6CJl2Qf3dL`4VKHHF0'qbkKLCS(B-&c"Ukki0!mH,a(SI`iPGjZ@Ff@"eLb@ VP5Y2YEZ$e$P6CmlJ'*82!dpHZmTBV-h22PqV@cTekiDc)mj"Zr[hXXl6ZKacQcc *kG@[UpqqqheiY#k-%4eqk'&Rf(VY*H#I@3$+-H"jqKh)Rfi,aZG#%d'XY%BCj4% BSAEXFHH@('qSFCP8Zpd(BAS5KYJI'LP&098B9IRAaKYRr'9''MbTQ"q,)1SP44P ae*%'D9dCKpaZ+ih"'#SJb)$E+6RXTN3GE14K'!clK4J5##*8+*iFFiJ!3KULK3( #('&!KK))F*!!Q'1E)0#"4KL$N9('M9R4FG9NSU(aaKee[P%RFfcJ@3B,Aj*)Kk+ 9B8A'QR+P*)C8EG!iK`Z@$9CGD5#Sf54MDm,B@D%Jk&3F#$ZL9*QUERajKdYN$$T (T'j-HQHZEbCCA@9L5&BRM##-`94+*%VQ8NTSJR$(Ah4-jXDCdpU"94UGU6Q%DJe mj1fhi)DlN8-3V6"4!e")mF348Q4S&AJ-mV4$!`f!!-)H*$3aK!di`&"3#hfN+2! H2K'EU8Y`bRP9'b#dmD-B+G8ae%eN'PAX'hU#i*!![IMUbbm11-3!-,d*9$&&%9- d8"["TDM%%UN1G6HU5BbUR!$,)!KK*"YNZ(4'cMQ0XBCS-CG-4"T'i9McbL#dR)5 EHaEh+"f`69Z&D4VEl"ecmFSaVmT@"#%&b3QF)5CDM,&"&*j9kq$6f6bP[6E9XHe `Em%TdAM5h&@R+SBD3!hQN!$+3K4a4"*1N!"p)Ke8[2%''d+mJFHmY59K"!K@'*8 ''BVbjFD1e2eC03TRH!kkA@c(PS*25"6Ka-dZElLQA5RGN9*4dmSKFGDk&AjiiVS YAXA-F+#!3`U89ci8(98FRI3CAq[Q4"&AN!!1Yaab&d@h'mMER)!4B@$V4"*-@-p eI0QRcRhbC9qIr[BZ*1'q5@TV2rSD6ElP%Ke'B&X'&ARB5IGdBlEcMHPp9A1" @[35iMJJf+`)66ZDp+G#"$*cK#4e3!!Fd9#%V5KP18mT!"Y-""RAE'q!$031aR3!!: ------------------------------------------------------------------------------ Keith Rollin --- Apple Computer, Inc. --- Developer Technical Support INTERNET: keith@apple.com UUCP: {decwrl, hoptoad, nsc, sun, amdahl}!apple!keith "Argue for your Apple, and sure enough, it's yours" - Keith Rollin, Contusions
jimc@iscuva.ISCS.COM (Jim Cathey) (08/29/89)
In article <113@vsserv.scri.fsu.edu> pepke@loligo.UUCP (Eric Pepke) writes: >There is an algorithm for rotating bitmaps in November 1985 Mac Tutor, but >although it is clever, it is not particularly efficient. The claim is made >that the algorithm can rotate an image n pixels on a side in log n steps. >This is true, but the problem is that each step requires enough CopyBits >operations to move every pixel on the image. Do not forget that the original description of this algorithm was for the Smalltalk-80 environment. Xerox's Alto, Dorado, and Star computers had the Copybits operator as a CPU instruction (BITBLT -- I think all three machines had it), and it was very fast. For that environment it was an excellent choice (there it was both clever and efficient). On the Mac I guess it's merely clever. That's not quite enough. +----------------+ ! II CCCCCC ! Jim Cathey ! II SSSSCC ! ISC-Bunker Ramo ! II CC ! TAF-C8; Spokane, WA 99220 ! IISSSS CC ! UUCP: uunet!iscuva!jimc (jimc@iscuva.iscs.com) ! II CCCCCC ! (509) 927-5757 +----------------+ "With excitement like this, who is needing enemas?"