[comp.sys.mac.programmer] Rotating Bit Images.

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&#3%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&#3"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!!$-&#1jfJTcS2@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!')!$%'!+m0&#1J%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"&#3
@[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?"