[comp.binaries.mac] Macintosh Technical Notes - 41 Drawing Into an Off-Screen Bitmap

bytebug@dhw68k.cts.com (Roger L. Long) (07/30/90)

[6/90 Macintosh Technical Notes - 41 Drawing Into an Off-Screen Bitmap]

Revised by: Jon Zap & Forrest Tanaka			       June 1990
Written by: Jim Friedlander & Ginger Jernigan		       July 1985

This Technical Note  provides  an  example  of  creating  an  off-screen
bitmap, drawing to it, and then copying from it to the screen.

Changes since April 1990:  Clarified the section on window updates  with
off-screen  bitmaps  to  explicitly  limit  these  updates  to  your own
windows.

---
(This file must be converted with BinHex 4.0)

:#941-$3a,R0TG!"6593K8dP8)3#3"$LR!*!%cG96593K!!%!!$LRFNaKG3%!N!J
#'941,M!d-5j2CQBY8f0bC@9Z)%*TG'eKF(28r!""%-S!34$+!*!("4@+!!5PNJ"
"%")!"06mrrm"!2rr9dp54%e"3d%"!+)kEhDLSh-D!*!'D!B!N!Bi)3!!ZkX!N!C
&D!!-")!")!!!!J!5rP[iMer"K'Fm!%!h-D%CA3$JCE3S"3!b!!-5!N!b8L3!!GS
%S2JAlTmi!IN%'"P`T!#+!3i&L#4*8L4+P3m6NK&T-)"4SLFH2$4SXUP)"3!b")$
8&)K6SPHc*M6Bj@(AV3QE),3+B)NL!"3!B!K`kjmm!1cF"Y$eEjp)KJZ$kJ@3!"G
!$M3!)'aeGp)Y!!q'imUE@rFZhT-qQc+PiQ'#b#C%$'JcM2LYiVNQr`&JN!!`C%&
c!`a1S2HQMT!!@%$UKBJ@K-F((I#J*653!*!!JF'd!d#!D'!NB-)%#5d8E##D0`#
SD!'`N!$hJmDmf`$S%APcCiip123QP6!!JekrEbhUm3JbiB%31IDX[8[3jB'0h3Q
KThhbTErrr`!'+1#!""CSi)%0i$GD3QNT5&Td,ZMc43,K(4,*!df`-8F*LmJ$6$e
P[&+(2G%!3JmNmS""cbG@H&M2"hA`BFm[4"Kacam*5Y!EJbFaS&0D%MbBeJ&YK*'
''bLN`*aa!#!(J()"*-LNN!$,'H3FP5I)Nd-(Fd!`Sa&&b&$2(6PmFFF$+-Mcb"9
c9()M&#6)Jq)h-G$c6!Uj-HQNFKKSbD@A[b6aL"9ir#&'+!)m8FF(8MUhjh)1mKL
P6PIb+%!I#6UD(!!bh&0'(Jm3J3%*Aq4K(ME%42$$Hr6)K`)pG,44M`"!D2(*%pd
``TimRc4kh+C44KTGP&EZ'&dMS!#!,!#$r$2'5CMUZ@N4p*5JK3APd@""#+HQZUS
FVElcDUbc!L(2+"rFdDfU,$`J"3FJb(2+UPr8NF-MH1SQlC13!%iTD32&,KKG!88
i3B3,[MDj+3&@"#&&TVrb'kbrdF8!J$hIj&'2$%ImF%C#$r6``!Re,!%"29pNJI)
*mm$b`"k#G(b'!&"FiSJTphc54jkD5J``a@RK8!mGFS3!Jcd[j$(2+a5HBJmdp*!
!%BFQBd4LVSThH%c"!dT3F)-pG[a!SBL[J"V$2*rJ--mA%!ZF&V&!Dl99!c6%239
V9G$ccK$e2*%%2ImimF!33BMa!DkkVRE##dfiSDB9p(`Ja3$TV[Z$$V$+QZJ1"p"
Vlb-kb#D-R21!3Xm,6`$1"-T"k,e$R[XUjm@"Y0GZqqfi"pLfIJ!%!8!ID-Vc!H'
')miH2BXhVUB*AD$+lJ-QB+`aQ@E+mid2j3JK1UmT[-aca-VaCFeS!rJ#3!00"(&
%%N0!`Ai%!IccpXq9SNAP#l,GFdBJN!!JV666p#J&$1TK#R#NL"jP%"8)kQ%%'pM
$&[$iK",Z-38)A#F(D)2"ppbfR$E%V3,CmFF%kP%!)FKM%1NLS3Nrm6Tpp8`jD@%
&&G"3"K#Bi3eXB!0hMR3'%+4K$L!)JaY!8!BmK+%0F'"$$GpJ"K#-33jP#!-GH"K
%0j!!!34NN!"$'1j!46UmSBSJB+)C@M#(*jDK$%-83aTL&3BiX!!%G+$K%-I`"MM
NJBTQN!$$'pVJ3cV!mBY#$+-Eb'K'0)+!LeENMJZ%Fi8DcU%1F%KL(Z#)KKm5dBK
)9+)2drL'1)+J#9#i!JLJ%)BbKS%09EcL%"!@YiR9,bd,!+8S5@P+0M6!JeIk63I
M"JmMT%%1Fk$$'j9)KfS!8BG[@%-3r4J'%*`"M@A3)LVK8!Fj`1%0FkLK'HVJKM&
-m3e$p+)6S5M&'JC5M)5%SL(9b%Bi,")%-l6N0V[jc6Q5N`jP!')FDhJ%,CS"#Qq
3!)-I`8R*'Y+`MHr-3QZFf"SfA2'8FrLL'F[C4d%@&!6"$--BP#R%+m+KP2UN)3L
iHD3eTZ'8DG"$'DiB6$R8`C[9V+%iQcP2EkD"S(0)3a[5`)B`b1'2P,3N1-[!5Ke
aF!d28XiFU"5)NZ(K!96J`#ciS)B(1%%+%#$(&qb3!!F-N!$R!hMBScSJd!8'&-i
lF"K$!ESK$qFGEA&YF"``+-%GY*EJ!#pJJ3&b))"B`+!BlmJ$@URaK6BF!!3Pk#X
#[1@#$@+*1YDj634VG)qXRH%"5C!!!46'm!"F@@m+U5S2A0d!1qG)3*G4NN(X$Y+
`Kkhf!X+C3aMX8!D!#P3i1J""2m2`6k,YS!'@H5%!B!X#0j6K$VEe)fjekdmSq$C
KMiT5Fm!A%#%8BAe1D0ZMUL#F)j5"$XP&J@aTQp`8l%!ik%A[(SbldU$UmiY3$'C
!C8V$j!E4$2Mmk42JJ%ElMJ%03R`Q%0H)U8'XeTA8AB*`M)[FJ2T4"ceJ,QqG+`F
811'i&"C[5X[!4"6XpTm16S')ck[H8qT`$"6GTi4",&"-J@#e)K"1%Sc`b6+dS3K
bd102HH#$iVi"acqP!K)+"J,VBPHlQe)`HSG`cc)m`3aQ++-kh5#%06DKM5#!X!d
K@JB5TrI,Apk$'BbNa#[10)G[3$%qqiJT1+`f"1NY!KD53!88-$Q+q(abP!Y*C5Z
hdEc3hG4K39!`)[c@!DXPJ($fJ'4q[92&qqf[JjeSBLbq)CmA[5'D%GR$4ATk1+Z
e3RT0R1Cb!R%1(af$0J-+!M[m8!TR'+*i[`Y8+Cqach5BJ`[%d"SVcL%&UA3L'p)
!"eM,1TYqj#)CPXKI0bKTY9p'0K#[+G!UjlV@I,Ef("UYR"1N9pSJS$BGT&!'Ef*
lbYVHGDr*X'd&23THk2hZ'"BjkaSQS3NJ5%),BQ#$'E#!hc4iYR"Am1dd,*Z)8#i
h(A*,KNX$XCP6q'jia6J&2LY*#BN@6V5%@`(K40S0i@9`HAr,KY85BG&&@N-0f9N
N1&a5Sh4J`b49R&19KV'*+ZBe0pP055P51SI4a#JNNjL'P@kFZNKJ**f6,R)(H`%
%4(K#NDqE"#H!B!rL*VFhhcL'B4FleQrXD+YI(HXJ3R'6aF@`JiqZ-(jT),eC9hL
@)h`N)Dal$VpG,El4Ur9aaaS&A5HfXGpBplZE&mb,RZdE$(j)JjHK"A8dC1#rlSB
hLP--MZ4Y'D+Ppr6fhGJSF28F"Vp*Zqrmeei'mak141PXP[lZ2J4LMffpcVYcAVJ
lN!!3KCj!KAU8aaV(N!!"&Q"4$`Gk)a5$b`)%U(1f,l3,9qTK$r3H-),Vf-"$j[R
'&-3U'+#YVhh[LjmPPS1"eBS5"&GBHYSE,&![Z%$FfSDke)eFGF6[33bP,%-3b*!
!a6IUm3j#N!!(q24`9J3#1ZGVCPG$V0Gd,4CSr))"kA@!2+GPKAGkH5GFHlGSraH
!!aKl',9K0`F#rbGMIY3'G4"-"PK$HV4cl39*3&8'Y$9%EP!(EB"j2m9%"LL!qB3
Tdp9fbR&bk,@"1JK%@SB#+&#"[ZB#FT!!"QH!"Rl8!UphHLkJ42J&!J3A!c8!E%5
3!!5LaQr!TJ)J)!-A5&e4-K6#&@(U0B-e'(3i+!C$L(E@GQ8ZCdP#f)&JU)Bf'),
r0`HB3J+V03ATY3IC9%0Zd%RQj%GSG%8i5!APKJCZN!!'+)C+6Q#)3D4cIR5#923
&&hB(50"4QU4&qr46F44)QSKK4)-TL#CF6"#"qEGr@64h),#*'9D(Q!D'62!%6S"
GGBD%l+CZG1"&I!5&[+KVAJ3()mCY!$"SKICEj5GF9TG[00B%0JCNV-CM2JCNm$4
N9NGrclKSJqK$6A3("K8'9i4'VG'%)[J'Hf4$V*CcDm5(b%KF`K&ai19JiM9EY49
L[f8,Ue8%k68%1T40)DGf!R9iL+Gk@%5$,UGLSQGX`6Cj$SNTZ%4GZB9H42"$ec3
('CCK$%J()hD3!&HAN!")G&%IPPaXpbJNm)p0TQHdKfYb#)YMTL&GKS`')"b&KS`
0B*0--!Aqb)d03",#P35"q)(G4&mVpii*#!*UF))PD'-"P3I$p&dR!%64P(m&a8H
BGd0R*iiB43Fqj8HBFJ5V4@2SK@2jehG(5'@'PhS(Z3FICepN`(J3*h(ff*%TF*+
EdJ(Ta@!Xb@H`f*&jpeVT4BrK09lj@*!![l8!Uc8#+SPR6JCP,4Q(@+CP4&-(-qP
ZJQD6"[0E2IJS2a!!h@!Dab%!"d#D!J!"TjQDU,QDUUQDrI*+VfNX&%!P@i!%dD5
!)99$F+"(UNB'-398cq4(5kL)6A418*C1YfD!Dp4biq5B9q5'&l@E-(K6*fK$h'4
6i+3$#8-PF!1E1J!&8[!%3e!%4&!&8Z#24*!!6d6c"RR3PqMQCh#!!MK%"ZkCR,P
9NN3$D+YP!$kj@P%J(!#*6BG*"r,T82@*4JB*NJUkD#+jN!!LeC!!C5Gf%&PfQ))
#Uc8%`R'4U)C0'6DI"qS'lJGrllKVVFKrFT!!S#(TQb2TMYH'+8*`S4Q+N4a+0#M
3S3B+Q4D(SJZUAJdDRC1'+3(c+!5cQ3f3!)TN5$qb#3#p-)Phd(0qP!F,Y3D&f+4
S`"e!09&V*RE,eP,X#8ESe*,+f8j4@8a!G!CI&%FVL)iUeJDGG&0Z!%3iL)PZd%0
$p8kq"%c#"!,%C%aB9!CQF#6QC%2(&94cqPiJN!"b4JN#TAJ(9h!N$GHNNBK+c64
X[kK*A4G&8#3(#&0b4N8PQj!!9!"3#P55!+$*&+0CQUA*QUVDQUUk(*55T!B`",J
i"933Mm+a"NN`"eE`3fNJ"TSN("&@QCHj@K!)!QX`L8I`"N&`"f%`5HJ9B6'C6@2
SJe&aUeHQFNDJ4fj!"ifD5%dDBI[f@ib`@U6D$8f4!+DCUUFT0eRa$q-$!q9c2ZR
cIHic"2!M2l(*3H8UQNh#UZ[+VLC"*5*JQe$%TcRh"Q3`56LSBJ2S4h5dE0SC0q9
kVZRUQJ"V%N0UD!h`UMlS@X)P!m)K4Q"kRmhP@i(B'MGiR'$+FQf%Pra5!b&V"kI
8Gm[9GfbjD#IBAPVjFTP83eQd46adHp3&!m,4"RP`"DD(J,PPXrDhXeK+4BMdU#k
V('6j"&0!XqLeY!ThXeFAGqBQGK))4$[lTAl*XR!`YG9kU%IVU&DDCHM(YXMeA*M
T-h1V(2a*GGN&SrRfL(4!"HV)"Vb'"eblSi&B40%d"Mp83e6S4q+NBZ5dE()JY05
+B05+KND,Y,#RCC%jSQ'EHR[`J6D(JdA#HQ!UZBr#!c,fTYq&PTHEY1cf4M8!!b`
3ZcV+S)KD8ArU4jMhLd'(YKLUYYhkU,#iLF(,(4D@"%c`4UelGfpd!Sb)JX9l"bI
`4VLUUlcUUfA!!JkS()")Z!TDL2h%(GXa"P$!Qfm8[4Qf"YGD"YN+6Y`+YbP![FL
UV-`+P5!!!rTjB0X,!%Q3!"fIB!4@"6K8-$L&FcLjFMc*icL&F-!6)!r2d!Bj`bC
ZmJGH)!rZ3!8[m#i[d$e83!q23#hJF$V8mJGr!`iEp#M#"3'$+9K#F%Ea'32k+9`
4%'GiX%Cq1`8dP%1FZ9V+5+4eQkq2mJ)-@J5BP%3qUd@F"P3SHh0MY,,,L@@QZbN
@-)pd+9$bLD06&X28pCmJB,8dUf8LbfFKkQ"-bk0K2'9KfR*6UDHPKNTd&&"ak3B
8"8AQ&XAm-X9K*,0Xm-84jX9ELiak#3+qP%02S-IbUFGppdDqUP&VN!#r`Z8"UBY
XD2N'L+a`Ea3$Eb3$q$ZYMa,)Jm`'KAa+KcbcPRa)PB42MNaGN!#mYj+XF+1mak9
-!l),!M$-bANT(*mFbQc`bSPXJ$fe8DP-V41JG%+@ak4XEP'h[aRi5C4F"RjVK)Z
l!N[BK(63!P0!0$c8U'334bKJY0HmK(-UBP$(K@(i4LK3M#[!Dlqi4rXQ!eT)cZi
FQ-*&!F,"L(K!"df!X'8JAR)`"PJ38&T-VF9+"%Mmc6c8cAPJd1&Xbh5l@P$!S(4
N4cDN4hbNBQ5,aQB,9"Bp5'!DYBSN(*1iCU2S4k`A4cq%M(Z(BUj(FbLVDX'fT9-
Nar8NJJVhF'G(FdIN5#!)YTf%"Ja&@k*)3dZLLX+"4P0dGMi94Hmd3rQNJM@GP+3
QMQEf4CJAEJlQTR#+Fb)98GANdKhe!J'&M&)J($"p*&,NTLrp4BAS4`"'@d"9e6M
G"MUY8Zq8"&Vp+8QjeKFP@h)0ZQ@!M)mQ4iSk"(@8"r&A5jLQBMS9"Xm84'0!4h)
3afFJFmLSD##!YKd(!S4TMjF,[r*-A63!S)@YE9HmCe-faYAfMXUlYYk+fR5JEGU
VYb"jaVIQfVhFfDhpIQ4FbR23ci4Y4frN"-JEc0'e[cd'GHUT4qf*aEFQQI&*f`M
UZ9$%TQkYBY1jE%@*YT6l+!q0INL![2lS",aAC(@`cN-8GB1VS(Y`"QRJeMRl8mh
dAd,NdZ,dMBkE6hA!"VQ'YMfXX6pX%JB`!"5"2ZV$2[9kVq2ARE+jR6aL!,)%!N2
30Via,!`H(Ehd5m%dTRb+6"c&6-i%6G)8EY@8NGTdR6-Y6PKU6N0ddFPTYNYG5@*
ViQLGiVQjB[C&8#Tf81iN(!T9"`b9h`qP)4,9C"@&ie[YP4X9E"me"c918Ral8X1
Q8La9Q6"edi"NRI5%eMQe8cdPLQF+ii*%9$Q5T%Le+8[&)rYU%ZL+UKClXFF"Q[b
kjUDjQQiZ%K1VjK9,jh81,FK)Z93L!)bf@[4Xid5$8ILBA!bY(-0-k$m&Q2Zlh8R
@A99-S#CJQ#1AALp`KfGNCQ!Z6[(P46GGAj2'@rR9aFeQAbV`!Sqq[e+hI[B9B4j
@XLFDLkCBB6A(B@B3ka-@BLLDk8'%CQU@U'I3A*1@k[Zl!F+4"Nf%!Y*iBcN@8%N
#!L%3BB8)C-qf@UdZ(&"%"p8d40(DCGk,AViqCMc9AQGfBLNQ8LaZ51)'!XEq``8
J(*Qq[c%J(#S@U8$ePT2@F)NY8TUQ3dRmDBZd[k+'AU3@l+H@DU[f8a"kE,4@hpR
'ZBEhN!"Hjj!!XjCXMKG'c5C`e"9Yhc9Y$KCr%2qHZBD-hSCHi1DeM2Y&QjYVkRC
kq`Y[48d(m`B#pCC[q+C[r1C[!-Iae2T'+*raIQS'#XG`$KG%QMhT+'!#&'Gab"M
[lUlUrqfZj'-q"%k[iIF2HE#r3#$[B(Ll'8ec),L`)K@f6[Tc5[46Ma4*`pCHlbj
FF1EU$YB#2U$b)""K+M#-RdfY+,"J"&R0G4rb%RpkGqrZHSq-h!8#RrGh(8Rh%eT
j8HKV[3k'LXGib[CiN6G(&3pfEjej4#mFlljDLEri50,i2Y$`K+H@TkHM[Xjk+Nf
)aq@k!bCl'&@fX"Ik`JATr$,@)1$VY$MlIUf(h%&i*FL8+CL1,(K&,MK63`5$KS5
(E0K%EQL(8LpF91$hl!Ii)ZVb[eri4ML-G$r06JJ#`UMk[NEhLfZ&Y*b&)1!$24C
`)-!$U"X$L3l%Qr)$APpF0*L(EIL'V1IF(UMlhD(p&rh58AH)HJ3[rhfMYBCTI%i
L#N'-k,mmSNJ8LbK4',"%)b@Rc#P&YBNkN4Aj4&+%KJ3e8L5,#YhESbiI!2XP&lU
hrA30rXNQVZLRp)#K4Pff`))UJ4A'p,9!*F3G1&!YXRNk**cC22$R!p3C-#*rNBr
Gd,eLG)aq@2G5GMD[f9'M#T-#TPfebc(!jR2P[rp5ET4*I6XMi1L3!)bMFP5)kJ!
kdL2VD'Ha+###qkL,2%TkpFL+@6TpY,r`hj)*5!-+"GLPQqAV9*5$UL%0Mq)*RV,
6"UN9c,*)-NSMdDJDPCrfB1m$3hk3!#34ZpY5#"p&$NJ[fklEE4QCP0l%(4M#*cN
%l38GVN6ZbJ`#r'%e#EfJ,D(d#)N5I5Yl5#QT+5AM*pIBP"b`Am4NM9dURh+98T!
!9USKA#QM8%+TYeUHN9R+*QKT',%q-+6[ENYFHLK`F#"P2f!68F4J8NSQTe#i)$Y
hajHBQb'KGRp[Kh%F+KB(#G3F4%`dX(*TZqqL#B99*r`b[Ji8ZM%6-`SGb8Y405Y
PTF!CBpHC0N@DXh0jlPr91HG`$ll"rS*0@S"JiDC-)q0`h"F*6L+)mH!Jip6%bYB
6FcNTlMR0(*%LR9a0DiKa@5il56Jd"jSS&T[6FhAZ(jkU15F3hGbG!iJRX58#V%F
"k*!!8IF+8!,*(RNSEqKXhZ'1kS-+kD)%3JQeqBB)2qa(-@T$+F)+Xa00fkeKJB,
2jEe!r@1L*Pq2@S1R%#P#R85BB4MKL@U+,DPfr84)'"496,ZVK2i3cZ'jQ0KpkTb
IqaI#)LdX+5XedN!!P2*a8XT+9DNQKH+)R*C+EPf+)L+RGA)409bCqR*TbUHYU6B
&6V*D"U3LG3UABEJmYDH!b,,j8mB&k4%p[PK*#K93Z9dUCP&&,l5(p#K9c+NKZc"
6)3c4d+Pia+ID&+++*)DQYFJ5fk*,9)X`X6EZZAa&*6$!#,L-J-TBcDpPeD`fB6C
"4KcJ0rUTi(LXhN$dZQB"KE(9%"M!"*!!d8YFLHV+0PiXPGL[f1*ZI)X8,Li+,)9
SX-SH`P*BG`f1U#H'!V&'BR4S!EJa)@b!J+JG!4CiR"paNEV8a09b#Cd)J*%$Abq
KBE-0''&%!"H!!db0d'5")L!#5)b[DbPGj)[%*9668bB*@QaSCkLlb$Vd!YhF`$[
dG8YXhD@4LjJ9K8[A8habjmY3XQ0'"hbLVmYC9f4R&C%MBX5`#"+M)LH3!&U4'+b
9ATDA"9T3iil92+d0k0'De&%8,Yf04k)A2qC0I',qXhXmMI#0,C9P%GY*MR`8H!a
p&6VFpUMURqj6$RB`#I!Y[i9$!PH5F*+B$J`CVRk@Z0K48(0Uj#MS(%RUBJGp*!+
+-('!$,L!PZF#lik$"%1h,J50VL%#TZBNYDT)BV+9HC1PCbGI&`L)AE0VNq@rfl9
'E%LPh&fPlNTZ#Yl(*De8K#&HF!X&0-IR#1UNiaXa!Beb$V`4!iNJef2d%J(8+eI
YUTb#[@+EF2PGi3l-J+rr-ll+9jUKAZeV@d8[qI8'NK9aY&qEE(p&!6KRUNJ9)k#
2rQT9#BB%30MDJ&cE9Zf'56J!e,+ppTF+3bp6J)@j-"43bj!!dD+c56@XEld"(&B
'FXLCh&qR)6@BK!"!$ADM8pKAc6)!#)-f9qF3(!!J@Uf3!)M45%hbXj+B1!Q49"+
MA840HFI)iF6KL3'0ZhQFUb9h)Nb(K)S#TBb"5*kBaYV)'N0hEN`G46DcYQESQ"p
KQ-SKXke)@'CZqKM&E*,Tm&(%[9aQb*KH*GXk)#"2lTTIeXMfhU0)JDaXGENbQmN
L,eNQ5jBrE'Eb&&"@-eGQ,p1CGq#8P3(LYLQ!CU)8QSZ5D,,-2#A,,KR9j"G+Nj!
!0FfEQDGdjL)$CMjc8b3GCNCERKN[8cK6b%rj%B,M01'Qq(Y#QQe!RJ&YaXfmQGi
8Cqk2PYP+kQ)$30,Ep#BZS"LT[lU*1)hJ1S*#-F#GYEmH8bi&A6dV)[K-Rr%cI`E
3kYp!+fKk%k%TY$-3-B'&XYb#K@fLV51,PM"E()PXA1U1SrQP)[P13KTpm6NP$FB
T-q(`q[CD5e0a9k5Xb65dCM*Y@U,LDh-0H"UJR[E6JXiqf9qVL)KXUepL6XM*LfY
U0-fE'-pI"r$-(9A669HY-BBJPYE9J#GBN`0LMDbT*j+*eV58@ZXN)+#YbC6[ZGG
bQPqVDhGYNXK#[4EANLFb%Q)&CBKmJGpQf*!!%Q+VFBZYX@N8b#ECC!iV@5e3ld+
Q6)I*f9MESrUDbJ%(L$Bl3YUB(Nr%Q+p0YB%!%i!#9%#R[!-T3,HPYP`c1+N9@3*
*(Y3TSK%3fXY)U!QeS0`KKDUm0p,EaJ!"I528XA6k$0j32d)#+da2A'Ujb9#Ae%C
+@eK-28"a4DQleNNBfdQ*T#kX-'U@1jXA!S4!HI-L51)MT8PRdYjUb(Y$H[+Y+08
D-,M%lN"!85B6F4MZVa1JHqT"%&J'0m!BQ)jb%!+Sc`@C"dqJA9`"H[!0cX!6J!*
8)(UFJ&13!$3Fblm3$GHa1qT'HjN3bN!c3!)M!!$i'`!J!N3#"4J!fd"-AT3CfE2
BBrDk+1c%-DSB!0K5AJUhJb*[4)[qPk4d6Bi%2TPU13L9PUKAp+ID*4N)1dJ0f*8
6MBMd&K@&3A[idbiLc)US-+fS*HNk!NUMEE@aPajENZ84E#VQL25DJG*%DZ&65M[
j-%Df)eKiE9"-'UNKFD!1V"(&j9-DQh`+*qSZXK9!6DCJe+")Z6+)DeYK%jr'Nm,
)6iQF1+#HXTT*e8iGLF9jFCE%NU66G9SDiDISFNUh%+LF''AbU)B)klQ,2dA("CY
+D8k*5#RK+C0%LC!!)k#54aMEYI4+-`d+hX90JNm+N!!i86PPi!mbXF%i)UfS6eN
hEV++K&3dFJBmbF,5+86&if6'8j*IKQGe!c"q4)N`16358Lc*ERS$f)Z2@"*a!K'
aSUYT*S[+!j)"69)098bcqkCA4SipNjr58DQE8H)M8I2jPCYm)PYZi9,l)MV&L*e
8pa*%)SNHd5KSi)fX92D#5f'U6!8`(p#4a&5I3P(bb1S8+59TdU!!'9R%P%MU3hU
YY-VG6SHe4p5)FANi0Ql8&D"QSP@95!TP*)*YT6+VE398FYC&%C%Gdq@)eSE#k3c
*4,dSJ(@V+NpU`VK%#Z6b8lHT+&f4f+T*E1QA@cQlp+Id8SIb6Uj!D&dSqa0qbUN
H`MUCUHZdSLZeSqk6)F*0AZXDHD"Q)%Q9!&#e!UM%&!"9@i"+f!&3e3H%K!$)!8P
&!!`"mcS-dZXb-+rj)+QN"L%a!"#!I(8!p,83b0G'`*dU(!8)!&FJRP#PaZUcMTj
H@cCXkNd4$BSb9-DR5,'&-L82`!&)G%Sb)+E"3DM9E+P+8`D*I0T8r5,5+C[)JD1
+'YfA8A1-4I,8I$QI3qU#6M2"*dJN1NE8)ZP2X3L8H`-p*(#&%6&34Q,+Y2P+)3L
M0Kj[4B#Zb&39E"0bTbc9AkT-I9a(ADJE4HE%6dq8U1*,ISYT2355N!!"LZ,mX'A
ML51Y36L9QhY#45S0f90!fbUDb,@i4&%+*K@K)pDbSqJDrmSE'B3!D!6V5qLFRC8
+6U6XTjX[d5N0i)&f#85iL%Q$Tb8fcC*@+-,Ha#F1%V,FBBLN@,661aQ@MD%f2Q@
5d0L2)P#N,&6YXI&Pb$iU))*jJL"lfi!(-a699D+MCV"DMB@G2LZIV)&Lp%k#`&S
6JDYff,4DJN*(J*ar$$#*LSiSfQZ$Jj!!dU69STTNRqM2Xi0j1Z-9%E)`&Y21@,M
&3lp)G"8LHQh,54+D*Pq#+5SaLi+@d*ipFF4Xbi#c[5M49XCU@VL9JP#-DDf,EY6
ArYP3Yd3F#N-CYUT8hDRD0X*UcaSii9-TYUiTf#M#C+-VDc9@,JcKaP3[489V+R1
5NAJeb,C4Z&9N!bLh"A9R0CG'Y$Zb!D2),'8RK`V,q0D,!YRLbc@a)P!,E[%TF90
SX5N0Q549PBEmNT%#"lEXQZQb,Sr1hNF"B!TXlDmVUK4&VS&C)fZSEPFcdB#6EBN
dh04kpLa*+G&6"6@)e,KdUd@QVEF+0Xf%dD+eZRKNcHJM)LKRpYkf9$(ED0q8a+d
QSVDZ[*-@pJZEV)fPN!$&dG,'f+UlEVd9edQG0-F[MGcQ5P2$9-Ke1F[eSQKGJ[*
dQdQ4Q!0VS0EL&qFT8UKZTNfl6FU5*0NINNfBl,a09*pf$-58Kd*10'jK`b-8lE3
ZAC!!bja'ERa,R@&h0)C9kIK6a%hB+8$[9U3-hL&5H%-ZiNfQpkhX6YNDpe6jLpS
$-2`Pf+#lHN,m`Jd8L8(ACS#10U4N@2Q)Qpf!B6DR(*b`+fc(,NdVZij4b!CF+PC
$)U!MSV#5L"+0J"L3!!0S`2PU!X-ZZ9a!RV*'*XR1@MCHLDFm(!ciI(Z)4Y%M6!l
bcPN!d"V4JJ"B!1Pe0X&&S#%!")!SM5KplI80')F95+VD8N*"6hI-31!#*'aM80%
KVI8YVNTCi$K8``dNHU8eT%Da$bS!E-61G,@4@k5LM&cYbfl6UJaDUd`Zdej2T(C
f&2!EfB[16`l`d*ILdjiZ2VPRk3LPZUPB+J)9%%Pl1'4!CQdVkIJ4J8V$Z5MePiR
Y06kM[)3)XFP[kHiSNE3Lm8aHEfZG)hKApZ)hr5C0!H(edL3dpTbKJHT8q53E&!D
f`'56&'(5bRVZ`",#XME@C%TC@&[lXTM!$5,mak5!NfXk94[4)dUR6XdhU4UaT@Y
9MJjZYf(!Y*VCp"L&'djQ&#06')ha@d`&Ta"Y(dj12JHFU"T@!TYflJ9)!NIieeA
$Z1TJK-M+SfNSaHD-0-,64&CU%MNRe"AT4LFSdJ))Q`lj+9&!R@i8JTD#b`!6FN)
YJ)lmiN1PcpM!kjfT6Xb+iN%#0%Q8-DXj%PUT5-`dXE05Rh#f"B0#eKV(BF+,833
,M'fk3!6&I"6X&B)Qj#hQZ-b9KV5"2fc5dV&9@UPcS%Vj@Q1XDLAa+"R"Y3BI3H%
EZ3'aF8$4aQK050+3!#4R6h96I%%M,Jd(q@*@%i`Kd4SJaNfUSa"K3e)TRHT$hPC
[a"p$!8(lNSj%-#'i)DLC!%!6,&,%m4mTNfm!$k!p)))#%QA'`kHq04qr%5Z!3fK
3$E%#`-BNij14'RBcLKAa+9HN)JpM*$D6ECj02MJi@CrUC"$!NpQ!6mih+94+h!H
h%3$+Dh))!)0!5!5!5*!!9!,!*4$,YF"(S)8!8!c%XMj3ba4!!#L!rKSA$8+2#lR
k8mJG%PF-9+!)dI0b&dA29"`d0Qc%!0feH85!#J#L+6!`D`KK1cMMPrh*8Trf9&h
0PPUHRU550#%S*(B!AJY3)V3&P@4B%VRffPe$TQ8b)+!+hh,b8m*6%p!ep8bN#1E
'R'XTl%a$!BPj-G2Qaea$aUm0!$B)YM%Zf!kNBN`VfE-NKCRZNZ)NG4m"!!qSShF
dMql42PTp2S!-Q!F2S&e3&XZ#@63,Cr%XfLHde)-$F!m#JHQ3!!rZN3*!ND)8XBa
$K*J3&H*#C)J0d5%q4)JB%G(J!E3)B%!2DN!TL!d`3NE3#"Z")rK[NK)!F*Rr#SQ
Ul*-"J#5J"cYJ$0L$1!!)$J%21"NHi!L!JMrk#@"!k4JFTZ!)A)--S&Ji`!QB!J8
!"P5@-R%QkN!k%!-Bi!(BB9M3"G"$iRJ!KMNqS!1D!9E8!4q3!!0P3`(mJ6BJ"rT
+)(J!,KT'diali#DS3!'i"h0!4VH*Hi!(j-%l5"!2BX+PK3a!*IK$l[M5B"T-0`!
q%$Hf!J-J$3(J6"F%0Hd8'S6#U!+P+JFNScR0"3)!1i!Ib8)3*!Y'X+G$!3!B2`D
J!2L%*q#R03%!3!"-!J"%JB53!#``J8'!#JH!6YYT&R#Sd8)"S!*!G3k%"!U3!#!
``!T`!"e!!84P,j+2'd#bb!5&qP$r!m+3!"!@03"Se#SJ4R[I#9KKEHFF10A*iK,
iD8!YU"0#SNM9#+!KL)55mkS"!#E)%5XJ(Rb!$C!!RN*cj!NbKKMmDVDKif"`03#
i"*&D*`L!&r-$&-CRbJE*BPN`JPdG%(Ve55$8!-"3"qYh)")f!+-feJN#"PLS'a!
!C%%!J!I@@PIrkA)pU)(e2r!()X%j01S%N3"5J!J)!+JJAiIVKFdX4%16+)Qd-6Y
5dNUD$5K!*Td"6S#6LS3(!3$+3$BJ!TQ8!+J#!)!'9)&")!fNS3`i!h#3!%N$!"B
B$5Cl3C5I-R!0U-%++!K$!3E%l(N*!34$!*J!PZ&R"fdeRDE400%qfU3"33Z#(V'
dPIDD0YT*Q`%XlD,pY+[f!'!!$3"T&i3&S*J#!0IHfPhlDh[YX%ff`EEC(YYR@fb
VlE+0YY[ffNlEE2YYZqfi6EH*JYbqfh9lEX2Y[DfhqcEHjYY[fda$ED*!Y2qfheC
-JVY(5)QUIEMjYYDQfP4l+aMZbCfh+6IJVYbBqh*VlXE0Z5ehjmlFRpYX*fl)VDD
[GYBHh*)EG([ZeDfk@rIQCYf[fh@(lY!pZV9fkSlGSVYU)qJ%%EPaGqe'hEKlGX0
Zi5flKlIa,Yl)fhFcEU,p!*3#e8i!$8!3-)""N!#e'd"B(Y`)QK$SEJC`#+Tf!@!
!K5"V5qrYE3Lmpr51hPSE34XBdMfiHcIlAYl!Hf,,lrP0[qZhrElIq$YrkqrpcEr
lYrrqh`!mJ![`!Gi82$Ba#!%!S!)-K8l+&eD"5,#N,!!-P!93%!"H9%)3$&@JBfF
$H["LF)!%C`"6`&59JBk0$C!!!3+A!(L!NlB#R@!C4VM(*J&Vi&"h8KH``KG%#Lm
$c)!CC&)*B!T'`bS`9GTEC@-$"#i$8!%RrH%,)SKM!cK`X`Y!#VF"5*`d8!@263"
ZpJ"i#c`JLJ-!6Y#aY3%0#0P%`)HE+L2ZXA&!*V8!'CZ"U`8!3-Dc!4Qif3H!'!!
!,i$%b`m`k0MAJ"6FE#A!#`!!(A$J#`)EG'aQN!"dbJ*"d!*DR"b3!(!%N!"*#`"
JB!"eI#18!@b!#KUj0J!!YL#+"`"%2FNj35Be!&3"NTrX!*!!&QJf*IMNA0`#V!+
Gi"YHc#5("CpF&SKa!&!#!J#P,J2Di*3("&m3!!,F+&r8Z*`40(*A--X,3PI!jB3
JNc)"FF"*Ji""@!!"i*KV!cjJS3J!&!!!@X#C!`"S$KK`Z4mje0IFV$cc!$!(ZMJ
U1G4F!!!i!'d1cIe!&rGTKeS0020aRJLk1"Ki-3KJA)N!GKi!+%%Aa`,iR*L,mfd
H!$j"&hpSKaSM3!"q2V*aH5&(!-S!!)!"IPi,Z[JUDK)UB$6`mcZ1blR!LdN!pk&
KM20Pd-9G6T-B9bb!Rim2A!i)2MSZ!!!LRD#(Jbi1#9k-!N!d+AfFX`-5MJPXZJl
J[rcm(T!!F&*JdjQ!1QIR"4L2%`1EVJ8!!!j!kJQL$&J$@Q$6*B&%4qSc'a[8p1I
`&P3!8XqNZ&`QEh-1`#Q3!,S,k1,AEjYRE"1!e1@da`jYfj`1!!!EJ06$Z-GQ!#p
Q!BcXGIl-%i8'lhVEr+@$!+6He#Fj-mMVJY`*)(8AMJfSqQJ`!3"!#L"e0c2*HF'
,B3!TR!3Jp6h3XCd"0,MXA"`,)2AbMF-41J1J"`"!Y2Ie5+$"i38!q!#AA!)imhp
J$J3!&eIC5rfelr6`XFfhJXSQ"bqQ!BbIJDkBS$NZ"q`03"3!!$(!cTp%!2$Br1$
&1!#%X-qI13!)!FmG'`"hG3lC9AY[C`(C(4K)GhHZf+dl[DECq%#k-`10EYf&3(D
R"0*GN!!MJHEH"*kl0@!%,qB"["J[d0ba`(22"SFG!$`!Gal6&G-Bq1m35-$A5pP
ZhGe!GZIJ!YiFT2EQRJHHZc-)m"$!"mcchNi)XMY#K`!5(!SdpdGJhiPkB)!&!)!
)0(G0m0bC38m2$+MG"66h8[$I6AS%k+3,hEV$JZcHp`"!"&!Y'+#jli,RIJdFH`6
!1&5JZ4Z$l*lJ)i!R!!!LhVT(!r[1$9j-"#!-++#jFi2rVX,iVh+SlVhp(2chLbi
"F!!!N!$aeRda62,2cRqc+i2[lIhJ[b0d#b!-!S-f,`J)S-@cJN`D!Rkk#0$NHCj
Q`i13!(h@4IPS)1ACIG$cAhjN"T!!H%%!!FpG'rK'[e!Fr[`SKr3HQ`9NdJ%Ji3d
p0!I[Na`GC0)*B+&8r$JrlpN!"BckNT2M#ETlaq8J'`"-!$,0"IKjIIIB@'$8*hC
qlYmp0JM)T"3!XTGhJRlJ*cNa!2Cb[G8A"!H2`hP"*R8"L0V5(hTQR`e%I3)[hiC
H+ZL"l)i0J$e9S!EbXL"-JZa1$CjpXT!!pVjKh+YXDdm"Y,HR,qK%(KbmQ!TJe9X
p0$IC0"XGc([P$ZDKH5h)lR#p!XMaIKm!J!'4a`EcAX*VpT&1j*Q"K4S!XT`'h2N
!B!f)[,1rlZNFh90m)VrRC6eC0r5q34`3H8rq*13k#p$NlS$)#h13!0$$$Ae"d!I
r2CN$J"83d3Nqc2IBI1$&$!"-F06lHJ(ilprF!R!$jic8)F"rKqFAS2`!!D5q!Ik
l4amZ,eX()(86m0p4eh#akP&qQ`Z!'2$I#rN&B1B,Aq[cJ2qHeVd+HpIk4q#rhh1
eS#2X[3#3!!,rrCaMJ%ikl"H!!1J#refXB`!h3p`&!"VilbeG,C!!kIRHeqI!IdF
%,`B$b(%MJ06p!*&(r&%"+Y4p!C!!#)Mm9Xm!,jZrph9+314II!EJ4hhr%a"j82"
L!J$'iH[rJ"i)!(ar$9$"Lb%"ICbh)fi"3,0KJBA+!(@H#64hZdqcFF',d3$+33-
dG`Y!qkq"H!F!'S!JF)$Q(J++2c,ir8Epc5XQ&P$mfE`'m!*RAc(GJ1*IjC'r2*I
klChfB`1LKIa*!3!Bl0Dp#BMrP)6mjALYYqjB32aEI@4hrT[l'"$r!"d!E!#VN!$
P'lci[b,k(f$3rr9fHB$i4`Lm'"X!96!!+LD%!1eR$84hqYp,Y`!#!)p!m5FFk(r
J!!!`!@S#Y*mfJ!#m'"`!SZB"c(LdAcE!#S#!h9ec"`XiJ,NG"q$1MB$@h5j3r#&
d(!!Aeqm"!-D!q(F"FJ$Q!h%(!%3$iPqAa`&%G0QFGFF0L(rR(`$3!IJKhTeLFJi
8IpYG"d#Q&AJ!J$a3r,%$,dB()!d!!1mIR&Im3AJH`&Rhe)ec#%$a"`&k!0N9AdI
363$LRk*a'-Kek"p"j`')IhMGBH$2q3$mA!SJrY%cKm%@@2F&!$5!q1IDT8$CA`$
`!a4rhp`(3+N4IJ5G%Z!!BS'[R9a(h!8!9B!$Z0ep!)!!0XI2J3%1)$@Jmb%#GKj
6%!#X!3kJ$JF!U!!8JFC(#NTe&pm!3+D"I!(!(9$mDAVRArN"!DabKpiJi!"fI$E
2,&I,9B!d'`13!%Q"!$4!,bF[q3Dd!1h($0!"QalIjqJ9I,3I$($aV3$P'm%($$L
!Q-$$4a!XI51G!`MIAAF[h54S$6L!"q"e*mI"J$+Gq*IcAAI-($S)cE%$iYmham"
0J[H!q!I2L3#N3B&AJ%@$jj`))!CNI`,!aM,*AA3LJ"ZJ#ICe')$i9mL*!"m"@pI
AM3$L(f!R!K!'4D$@j`+)Ifm%!$!#N!!%EKpI-FPT8"VKblBHp(9%J2KhFQL%rYa
%epFp!FAI1MJ#S(CHA9qR"BKrD4d*)"()!)ZGq,IfN3$AR%1SpF%"iYr64`,B!A2
GCZF!TRF!!!R!#S5#r`!d)!!B!Z,I1@F"8'S@3(-(%NabH)#&8J"J"1lJ0MF!6(+
"(`N`p#N"`ppAD!d%IL8!C*I6pABKJ&N)qC8!(3&1D0fa!'EK9PF#D'mUB@ph!hb
&em!(5-XTFRQKBL)%I)A03)pR!S4a2Q!6B"Cb!Lq'#A$0GB'+#4E`&F)!kk!*X"4
UIVhG'-!AZS%R!&6J!lS"Ab%cN!!4RJ$+!9PShH8"I''#G`*)F)%K!%!)m)9GhJP
`am@%[GdMB"DkIJ$!#D!1!!"Q`)Vh&@S$29k0-XI0H&qK-r$mDB$%h!d)#jL&X-#
,J3,S"UCKElF,m)9`A3UJ!3!!h'"[C`c`KHaI#Y$8QAUpA64J&[Tq!%!+m16CH`!
!0f!@(RmT!$'Aj&Phji"CH"bU!$T"%eJ&QS9XRJV3e2Q%LNNrB"BLI+GJ*KJ(3R-
)J&NSljf#b3)M#-e0!'DK[JF5q#%$A8(J!I#&Q06-Cm4TI"1L9+IS$3#)"LbS!TL
&p%!QY3*d8Q5!*QF$m)9N`+E(bMf$Jb(0aJA`HHiF`GFLAJ1lc%Q`"F)!YPjSQ0D
Y!"V"*#JCPJ%``$Hh!MJ%Q#%dTaN#L3!J#p$8CAh3('L)`q'',-$)aL3'!+LK*H8
A#J$'`0PA%,b'0*Y'+"hS!dIF+-FP`J!NR`#!%@4l8d&Sb!CN8Le!h3$ZMA+T3'L
)#'45!S"!p`c@!T0KafF"R(X8A@M)!9JS!J"9i!i@I(`K(qJ#['`%hc,!&lTf,S!
H!!$`Ka6IC*J9RJ6r)*Uh&B3$Nq(+j`*NG"SITNLcUASRJ48`brN'l3"I#!0N8Lp
!3R$bMA,j!&pSaTd%')I,*`!8!(`K%($'33AphUc)&jk%!S#C*rfG*RcK4IF#P"a
ph`E!&kCe,d!+"alDI5B!AjMr[3"pA0mA!r#&Dpm,m"%SL!)!$m!A`R-`J'!3(GT
p4`"ID0,"!%dGipIA63idQeJ(!b3,&D(Ge`9-KQXI$!!Q$SKqhf3)cm8!ef(ITkN
"L5CG$!$CIBX#J"m3'RU#!%!-i'B!M)P!D!J*aJ!B`E)S!&!#S5'%&`-!E*!!S3$
`#4#')+%-d059GkRIkKFDjRm&3%G3&9Th"`%1"`TSK6T#GPMF%3!ih&BR!k"f`Tp
eC`'`M-a!i$F$)"TGB3K!-c)"&XS+!"@JKb`!c3MAc3"b(ILR&p+-l0m-3-`0L!#
!%%!cmS%cJ$0`%2CfBJ'3!1MBd3!@#Y1)"E#--)#*4`13!!4VSB((0Ak$0)"F4aX
U*Qi!e`Mjd3"2AYJ)!13"A'2J4`0%G'HMDmJePS-d!'VR0Mi#,+-c!!R#,*(GLXF
eER8eJ"b!(FjiA11,9`2)FPdK,-!eNRi!3!fJ'pb!Z`$AL"[@!'q"$fJ-F)h0BH4
)-6Chd3$A5"lD!%fGIFJ0F)fjR3dJbe'"j`$0Q1$G!)JDC&J&dS`Ai!d`&"L0r5(
0f12G!1FK2iF!d)cNh`f`02*c%`$0#",H!&+M%-$2H3!d)cb(!`J'8f)+3$0DI6+
!0e!)dJ!dSeL(!j3Flb&"p`23M1XJ$R$(GBr3R"*!-jD$)8#b%#&5JM5MTPMRDAa
9!-fSbi%!+q)S&`E3M#4I#,!8'RS23!$3"Y#-T%!Q*30%G"3!+m$+"3"m!-d)bcd
*,iUKT`J%!)J!bpJ-*%GqJ4j!!-`%*jX!)!&)N!!3`!jRU"Pk-)!!`$cLF2a!*Y8
$-!-"J"J3a3N!6J$0U1Lp!%fGS8F&#!"D!-eSl9d1!J!QX%+k!M3M1B!UCQb'AKJ
`'K3!1"`hN!"*"3(HJ!$!#ab$!%!E3%3b!brLQGFM)R%N34l`4-)"Q434B!SJD&T
F-2"%3J22RL*Rk'%FcF!6Q5)#!%D!,r$fQ3Dq`3A`4))"cjj4CqL4!!(!#2"%GR[
m#`F3!#J!QPa0J-1aE!"!#f#K`))S'Jk($l#*(jmQp`8mN8$!c6B3)(qiS'q`"K#
4c8!5f-pKFmrJ(8"*%J#S)U@Qm@Q5PK3$i%ML!pJK)1FE$!+8*!q`ak9`2S!T'3!
m!T3N$,$(U4CCh#Lh#9#59SKIN!!@Z!#Dh#P!5C)!0eX$B03"!FpJ4UFJh'XL!D)
'%Pb(%3-"m02P"`P"!5$A*33)!3"3!!Kb[PT#d!#-+p!NrbA,8C2*JCX"6Mi*@f!
hU3%J'JQ"-JN#S*2238*!!T56lH6-ada@DM2I6MG1ZJ!1`6Mj!Q4A#S)-X"YfNc1
!1(N3*!3j3!UA63)!2F!GCbcm!'HGX4!%`*-2!K&JU"N,4X!h+6!N!@h4Jk!%3(E
'`K,`j"f8D)"!-!fF!1`!S)J!!!:
---