[comp.binaries.mac] Macintosh Technical Notes - 120 Drawing Into an Off-Screen PixMap

bytebug@dhw68k.cts.com (Roger L. Long) (01/06/89)

[120 Drawing Into an Off-Screen PixMap (10/88)]

This Technical Note provides  a  simple  example  of  drawing  to,  then
copying from, an off-screen PixMap.

Changes since March 1, 1988:  Added sample MPW C 3.0 code.

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

:#P41)$%b-#jcDA3!8dP8)90*9#%!N!3aq3#3"*2L8dP8)3!"!!!aqA*-BA8"!*!
)!K8a-M!J6fCQ,90MFQ9PEL"3DAK0BA"XEfGc!*!$!`!*MFi!!2fB!!NGVJ!$A0`
!#BGD!eS"#J!A!!%!N!-*(FKA6e*%68&$33%!Re6MQTprZXJ!N!CJ*!#3"M&c!!!
h%`#3"Z(m!!`%'!-J!)!"!",qq`IJ(lq##Em3!`#'BX5*@!"N"-"&%J!%"a-#3$*
5*!!"fJ5Jq"IZRcJ"q33B'A#N!)S"$`@)*%P5*%U9%"15%@N`J&'L*aj!0'LbU8m
!'3*!DJV%UG@V6R9k1!PJDp-J3J$!51K$'3!(!(J!L2G2(J"kE3-)qlI2j-+&3I0
qP3-!3X)!*!@d"@"L-&ajFZRD[4[!5X$'!CdQS@4K,)!JJK")'&cBl@'jGJ%N5'J
KS3!1!h3'D*!!d%"#Y!!U&'3G@A4#f5CAYdkSi$D!)[@#,,YK$"5pFL%HM*Mh3FD
m"`R-fBXMXJ#dHAm5d#2bjXiFHh$S65TK!!DpIYpDe1-4C-)$+(r`d,-'EMH!hV'
K*YM2RrmE-fDd--FBFT44KKXJY"%'((ddF%*YS`&3'JEp98K&''+`83B)DEK"aaX
Jd)&''DbjCTZ%!)!!cbF*V0JLLbl#``N933Mc5KkDbI00(H$38d-T6j5B8)5Pk9B
E!ll*aJ%'IXQf@KLe`5BE#L2%)!--1L4!K"aKh0(K'5!Ni5')B5$i")!Y6%'JJ3K
#N3BH65`Sj&Qq'@QLP!#F-)@"))6"aKa[C#RQ('Q3!,&KR'0dq1%FD1J!!JK4e*(
'''YXf@8$XNR`QQm+1+#6E"VJQF0q9*3a"KTZ61SR#%km3FH')p!3Jk-J@1UP'f#
+q@'ICU+TCS%(JL"%'R3S#!GYGrV@!UQQSUSU'kbk#QX--H4!+a&P[#T('aeq'DB
C)!ca"KY[b)(XT[P4`&qNNeE+j4dJ&)&('R23-FHFH*,!l+QTMV&UUkq#8+8-eMi
k44jc&1''(@R)mBBEpdCCjlPdjPI$&A)3qbU#BZ54T4*TY!'#%4QA33BEC4SU"`J
QJ#"&Zm+Lh(!#FHB"!JdXJ&!Y$MG3M+F*6Ea"4KTQT'%b#"eRq6+P-BFaF`*+e-'
'c6(N[(22%ZHR349`N!!4aUYNC-PIR(+FUV291H#!!lkqV4$dd%8IRA3#5k-4lVK
6Pb((INq-mD%BHTqYFpTVfiHR"r-G)`-@X!3hA(((KI$)L`Rmm`"YQTjPN!"X'H#
jC*1c'HkE'95J35m)TI,lE,3"`q%``iE1d5F)K,B"KiBJP)&(',EMrKm)C,cVlBF
jLaMX''r!NBHhCMMF4XjPJ["IJ!-#fqDEFF,K!QZCiqN&E+@4JHF13k"4jKPPb%k
S'f-F'NECGPFpZ0Ud"N''S@63c[[YKd*a4EJJQ)%,B!!#j"PUH`P"NZEb``%m*33
NDaJ!2!$3J#B%i3K*'!)8-KL"!2c$%[P44ZP1Tl[piBj4hC%G'VS6)K!&VdZdHd-
EXQ8kA(%)3G'ERS$@&#`h`@P"[-UIm4"8KcPXk![L8Yk`l0A#!LE2CX4#@KLBYL[
MdBk(ER$"Sj*!"a#Bc`dR5eq)4P6!-"J4"(FB8B%5*$8kT)&r9l5Hl(i(0c2Sl8"
GK-1EbJ!Y3m&"4,*lhiCFPcim)Y!V#T50$K4B'L!N%J"1B#3!V[$)e6$%4)m%KK$
+B)CbEHJ1'r)AJK5dKJf9b@EL)YI+f%8T@j@4$Ar+'5MC@#qNE@J1G9LML,jf0e9
#5P+YI"H(C%G))hS)"#J`iSC5jbar33YJdb)B#$Uj-N24`@Pr5S%@86FL0q6X$'Q
`3l#Xf%PBGQGiHB"$qR+'2)KGdd1""#-)l2#q0'")3h23`C`U5E&(5L!!jKL!L3#
J+4d!3"!!-%8!("#!1!4J'3+!3%5aFS!%$1%*6TJ#&5K'*!"%J'm!BJ)RZjL!(J3
3"M[J+'Rk!P,5*@mr*Td"5ZI8d3Qd9!LZqP!E5JS#'G4JT[ETU!4DqV)cS)%12+8
"$)"USSlDD8JVMF*qpP#k3MV4R@9L)MA(Z#%a[+%1B*`MZ+bS`qUa#33qc&kIeRL
U0aM6P[iUiLG*&0595Q%rDh!$#p2)5b[UEQ0Gr*d9AhJV-(N*PVB-)KSrQG8Q&UK
H'I-E9fQA"MeXk$mdA5N)pQ0&Br9*GQfSJpR-#!)iZ*93'5U$#aS%SC8qp85P-8!
#U*!!"5J8)E-S!X*qPTJp+0"KEbEe!QmAY)-%l''VG%KR+0qJYd3pl)D66@)HPLJ
lCl+"Y8eeV8T4p-q!iSHJ!)J"!,4`d)3#i"N!Z%F!3!#BKJBJ%a'Gk!-"N!!&#9,
3JKM8)!Fp#%,C@L%)Gm9YD6+`RqP*S6Y#b-1VjT!!!%Fa!D-BG!)98PTA&&eJ2i5
bl*R1C)B'Jq$"6SM`K,GEQSmQS!h6*4D$2HaE19#iY5LbD3*L4`FTQ!UTMV+ahek
Fh4M[j`cN%S11FHbb'r-BULJbXC!!ElbI("ZCa",Ll)L`p8FdH$J*%Ll#%BSJ"3V
hZ$33f%mDQKbQ,'qjb`)Qk(ldYVFVQjR,ANCbD6D`(a32i3KF-J-8bNAN1qGjch+
J`j&KUjm6jm(2BG$cEcf-D%@l'-SF+(!ZKp!%*+4-3ibqN!!B,!e'$F@Cd(41J2(
LK!GX-Dap(Mi#%6JGaN&hP%)*'"FC6$fT-U4keCFZ`kH&#Y$lL%460KK[H8eah[5
ZYld1KDp%rI,D4i,J#KXUQKaUZDD[QG+*[V`9'EU$3%a1c$k2a%'G$hf&$QdEAMS
`k4'bjB3bh'%)j3CMGe!`"4Q@)3P%B)%6NX!%&X6lh#e'33YLN!##&1aDZq$f$4Q
J$3)h'%L))#UD2$XEKRQ&9Q4q&"(`bR$U$HdUMC1bfb`2#bhN+@qbCF8LKa5%2M3
5bfj)I#*e%CLj4fC"NQ,JCm,cdpd"I"IB`NBSXG'VA[BL`Eh+RLJ6pV-R1J#D$LL
`mlqlBh!3l-')ADbLkBM*jfQ@Dl,NFLB9hR#%)2Y*GV[XBMR*G3IXbMPd-#i0$CL
HV5'MB-PqB`'(4@S'1ZJG3'1(`pr0805M$KkRG0#T`G0Fh!3N`3LXHJ)93,!R[pP
GkZEZMKGFB0T!$jN&H2FlN!$I%2S8S!i*4A!#P'h!(i$9m!aMPqi1(V8([BTSH#j
m!cXe&,dk`%'a4F"#%UMJGN+rYU-XQ'UpdS"B0CBKCi!#JBES8)hU2NbFJ@lLk-9
`pZ*h9&m*B-)Ea%jfXl-""GXIXJXq"!Hqdk(UD5l"IX42rV+6hNrS$l,k[9VM0"M
erE-(CFHh8Q*cA2kA5jG9"efd3[!5@QBc"h!`4A29F!rRG5[c95ZM4hM!4bXA"ZM
6E@rh!rXaFXaAFRi#,HY'"k4'DqfM@1L6G@5NJ4cS@FdM3f2%5bh3!P!Q"#1i)GX
f4UHc+mL$IC2P,fH84RFd@6)),5(MJ4jR2Pe%JSb5CNM!@5!LAG694""B*U$94Qq
%1iE5FE+$!VpM@R1!@P-$2%4M4`9b6"Q("R13!!,HKh"aPaC59JBVb('ePQiJN!#
#HGKaq8Gk3fC`Hr##Nk8JTDD(l61(h09V2`F!`8CH3PGX4BGXla9Ic0C2[R%+V3)
[Xq4`4l-V@-G9UUD)(JFLJf@+,UGa&'GaG5!b5lKa93CpU!L&5VK(d1*C[i1"&!J
[MICd,SGBJ10%HR3d05Jb$h0CBa@$$U01e93'XjJlG$!'#039#H3E%b"*(I")Db"
*G+"c4q)E4e"JE$"VUXL(+9L+(EF$9aF'iN5+,(K,)$*,SJ3#Mr8KDa4&++-Y$A*
*EcF$G%F(kPKV+$"U&4H2"QGF6GG%V4L'YGD2G@K*iCJI5-"`3b3pkS4$[4JZH*C
S`!KbCN0bL59AqE09+@Fp`#-mZ%*cejJIfEK5(-"2rJJ!Mc4hK[D,[`8#I!J%GYD
4HXCRaE8(hH*'IP*C6hJkCe!(HF#)T9'&#I!%'DP"I"CeKqD6,CD3!(Z3!$c"%JB
EL6bqe(PG&!e!@&dR+$YL3La5'@K-'9jh5'8L`SFpq@HrYAPJQ9B,iJ9dLBY6B*5
Z4SIHaR11q'Z3!"KdjN9dahCdbBD*)J%56Q"I&A4"'E4"3p""(`3!6G#*Ll9@'e)
JB8!'0L1%IM)'8Q0YNj9KbRL,'mL%,2H%[%5#L!@+C&#0IqNNQTJIifKFYF0mlf1
"SB8b$0NXYVFKXT)cZY-qIj5CS99,(6)'E&!(KP*DZ#L,)X*DGDJ%"3BJ"hB(#EC
J1QP5+2#G"6PPd+Ka+S"-(&CiAG3#),"h)e9`),!#1P-$lNN%5@!&1Q-$TPHH-R"
`+&)$8d9+Yi5!(`CK@$Cj#U*aTl0Y$LFp#'*&$SF(AF3'(9)')8#GA`B!BQ1D'`B
Jh6QJ)9DJ+-"KL+G6)+#H("Ciq5Npf)PJ#TBqr&ND5G"56@GhSCFc*KT5)f@Mk`P
ib90eHp#CDP"%D[GeBEFUb&-Z3q-'eMB(&[Tf!iJL-M"9#qPl8Q4%pK-m1H-`fYQ
LF`"kAa9@LV@%HfPCDCB#ecPCG[Pl(5)pZ640Mi8'1H0`[[Kd68TS4$"Z@FL(lAB
(!DHKCX"K2RU#idHD@pL#b"@$dGQ%k,1@CQTFR!NYV[-'Cm!PE5!l2mKQAhFUTV)
'hZ*mGHT8Y5NE2i#CXe3dH)#Qf!0%4HT'$k1H+80CPL8JkT3S46-'0d40"jS'$e1
00HFE$b"*&3#1X`N!MAS&`iF%#9+9FLN(G-PRDBUAYI)%`U*P@!CP&lBIh'HPpl-
bF*PLpY+A+1)$r+'P(F1GI'KJ,-UGm%N#1,"8+'9e"6*$E3!i+l-V`mL9DEU@kS+
YAdS'XX1(SIHL8CB!U8F%MGFIMf*eAM+GDGCXYf%3UI4eV13Z-$3dbiFVNX)SBJ3
iG!"+@bNXa+*@VjUQ5'-cQNST`d0'TQ085"0&[k1PflP1D'3kCR-kD@3cXp5CqF1
ZlYT%jjQZBV5Q9S3KEr#1"U4DMd+U'`+E6F5Fb9L%ir*eej4D+RU)"kQ+d8H2d3-
(#XJKAD3S)-+,*hP@DBT!6Y#58b**,[")-b"*1I")9L"*A[")I5"*L2")b5"*d["
)q#"*rL#XD!X!84TVNeCTZGDK"TQ)(BHA,R!'C!!&fF1iF0!'QZCTDHDI#F"Q(FT
UBmGU+-"U'N+'K3ZkC9"`3HQd#dSXRlT5MES(MeTD$M1T['1T))+T+h1bR'T$RLU
!8%B%,Q)2hj!!"r6`!dGJ"0m!"543$qrJ!Z8J"29`!2I`#%hJ"XVV"I,J$X!lGQ)
3#JqJ!r-!$9p3"dm`"26`$8J`"TV`!6Z`)R[`$RA`RK#J$&13!!(bm!b-p`AiQlr
kZlrmflrqqlm!R,m0`$Ej-9p4i*Mi&CRl9CQ%CJ3"qA3SB*@r4C8i+3HQUj!!fD+
%ADGebNJp+JH@DqQ`qH%'5[Y+N!$U-1e$"J*U+eb%6#"T0pD&GQ4N"Q$P0lU+)%C
3JQ)5XG0QHVY#@,c5J5dRY'3dYX%#PSF8Z"BJ56(T'cFJ58-!Z$6T'i0V"&AJ"%0
!"8Q!851M`fl!`bJJ"ba`"U$R+,T5"ZKM`6Pf"%,!``),!mUR))LPJ-a(,$EM-(5
mS,Y5)(53!%XiK#"5`-Bm[*B9Y4rr*3934Q$mB6`ml''"h-C4qfJ99L53!-BI3N#
Y6P!KaTA$X,6$NEb@SEBIaNS&b-V)N4bYdaTK8!BGr9%JqF1(NPb(*XBINhT@I(J
'i!TQ&C)KGE!K!#Z`&9+`Z3`!(G!IR-`'RZa,I'M+UM6-S5c-QV`(ajc-jE+k+2+
NTG&cMbKHNPLBaQCd5+HBmd8"#!bCqM@Cr!8!q`S&8M#q48!%95!&49!Vlm*&!S[
0!&$)#A$)8'B"rI%%p-3'3dCQ3bD`'Y!I+'CMC-!#+#B%cIPm+(B&T[-U,*!!CL'
!d(Q!Cfb5-`f0-T6Lb))FbF1-ciUF!*FFBG&-ceh5`YCF'T('(i@B`EcSPH@L2KR
XHfXT!KLYd"dkc9mFb3*A06$!!M#`H(8i!KMYd,hFdei-aN-pe!0Re(8)IZ1QdF(
#KclYe#``F%4Ye"GU!KJYdF6LbbD9e8$0e@K0F!+,e2c4d91d"NcGb6qY5LM`e&d
pc2l-(e"`)'p6"LJ!"9mMA9lpGMc)(imX"'m0aKhGbcikLPE%IC4#daHiM+'85ff
B4hbfPR$-(dA!*8CNGmEcG-hUH6IQSlbm)5kVJ*VG(iHGf%!Gd40GZV0RGD-)fA$
pFE%G`P#Q@iE0aNEJ5BUG"`T0L)ip`jiNf99V4D)T"jGG@TNGIrdaScF@SJ(pH6,
&!YGG,8-G!cmPe4GDdJN!f)S#d2K(hJ*GfL-0C4l3(i05Gp0YhTpA09Fbf)6f![h
4f@C8"ZC0hAibL,1h"hU6hp)6d%d%FUr5dR"hSD25fd,`f`85h&EY"S3)a168)DY
5Y+ZbTV9m)!Lqh[c4hMAfhY9pBbbJ9#bJeQN'hZ,Y)IX0hqKGb3cZi'83h!lpe["
AKl!'c5R0`PfNfcXR'ce3`S)%2%p,@&p#Ll56`D(GGDpU2!2CJVCGMBMN'b!J55I
`5#`J56BJaBq8edd(`8e!ETPh"r6G8BVFG%rZel+'N!$TrH-!-!NPA)m86ND+HPN
05NCQ&5`G!`*&j#daTd3UeV420&PL%1M(U-'"jN2*AF4SNZIAmd1ram(1RHK[8V9
K$QpMASeK-FAj%315Y%Lq83@5a!@2p!D59!Gd+dQ%m%KhZe+4`1@qSFf#bFh$4SQ
('FiQ)!!Q!!!63'0$eU%"#f8q`'(5l6FSi1XNcTjp0hJSqYp!+U3@k%4)DZ%,YTC
GJ)8UKJ,$"3F"GqN5c+bFjkbT#JGHN!!#AT!!-jFqGAF`fR4!A6P6SaYA,jm(!N2
0+[cQh@mRk`QK+E3qLBB*cSQCklXZ`V*"#cQXT,#8"l)85Va(4,qhjdkl2Q"L4Er
BGI6)Q@#6-meM)#Pl5a(BJV2d@(SM6L8TYBLDQN*mQQ69k#T(XUpUX@ES,B*&4XJ
pYEL6XqEN,f#6a*`Z'b3J55h`5(kJkV#H(mYL8H4L4'N*GA(TNEp9G9-e"%QIJ"R
ih*--!$UY*I4LKYhZVA&iX([!R'A3H`a#KIY""&[[9U6lZENQZR*!DD4l`6(G44Q
62lp6mrFdJDKV-MiqNE6TjYhPDrXHAS3jG0pXLI!Pm!Q1Y[NPQC3*3K$3"2i63!-
%3%HV6dHb1B[Im`!!$G"%+d&65c1rA'd`3r$8*eleMJYb1jpCLkFc"%jd3&X%,RR
`986HF+l#jf#N0rAbUR`&Jm[eR!Rk"NFH)R*J-q6b"VN,*Re&4Q83"j)5d(L%9QE
N6,&[5UP[5K0(mc*NqNcd`TVj@B#5+0D@2`YV0fPhr3LN3!bJq393p,)4!r[a!Z@
*,4+hA&KeqSHk)4b@*LVhkbVJ"I5cr6!#$-ApHdSiUZpX&TQ5CLS!!65!%`S"ZK3
iX"mBi%ak03q3!*0%3"'98f4)![!T-#$0A+X#U!%GMJ4%6`P!UB6!UiI2H-$m+dr
*4CdB3*!!TB)@4)Z*GR)&H135Ei(YQ)K@iK+X#N%%`$46c%50FM'!*LeN,BJ%S!+
fABYTFh9SXb3!FS%VVK2K!9TG#PETYcm&)!3@+fXaH%V&$$1f0Y"Q62S)FAN("+3
I%SFd#PSL%c-HSLf0*cM&)BJ6FdXT&h#P+,++&fKZNP8#5YCU2e3`2lLXKYP"XbL
DKR34VVGRZ$U0VNNci%I9+-,%&BpbaTSc43)Vc)3hiKF(48dCX"e3i*k&+J#`#U$
5ad*ZfSD&2"G(Ydh%"!L3!(crB`K`Y$bJlS)4Y"K'KS)j#C,m39UiNVUlJECRGQ!
kHF1RISXXS9Pfih5dNprb2PVIC,N$BF"Q$)T#i6i5aCKJ&$R$#Sb,9l3Kl01f%8h
H6hB3LfS8E$LI#T!!*$,JN53"55)&E)iN'3124"!`J%m"!#5"62*l!1!'M*YDU'l
BMEXCKZH'hYJEI--#8J8EB!%Si"Fq[4+&iPJJP('"#B$q*EQXirUi6[ECIp*R8,'
"X@0rZ-qIZ%&$bTc!Lb&BKbjD![Kb8bNKMVQVP+c8(Eic2P!'Fa8lU'-#DT5bmcX
R+RN-([4dH$TJ'hL*(@A"%3eN%J)U$aUNL5K!"85d-DG0`0,RUBP2F3hkMB)$CF6
0IT!!&m4Ll%b"%3&,8%$9!3(dcrDmRLDbEAE2f(0i`%Ii8!'5H+%)(J"`",#3!-L
*N@"S2Yi4qh%rdQ0Pm"rdP$Xd4$L-GVm1XSL@2[CBN!"FlAYI6%X8+6NbmLT!)5I
d1bB-"(`"qZ-R11,pJ4BA5H4e%DP)"ma@i*)!NL3$2**YY&*+!0Z5*%r-0f`"58)
'Z*%N`312C0@Y&%B!r`$!)@b-h-i&f!%3B&)iirT*(J)Ve1"'+1!#l%C[e$mhaJ9
SL,k$"qZ3!#+MM"Zar&a'&'!#KL03A#Q(d$Hb(piB)MjKEV3$`I(()%HrS4a(#RF
FMX8a[H9"&&%%dH0Z2)k#+$Rb(jh5(#r85d12aP%0MXI1Q$(qMd'E2aU4)jSIkQJ
G!e!G+S+qF6lD)*2L(SIC5r10rI'SR%I[5"c4J#LmHL*)e)b)2e4VZ+-IZPU!b!4
`4S0$r`a4+iT(3h!p8V+VCjeL66Q+4aib@k3jVlJ$k0mFF%G2U!bNZ4L5QHV42I)
NAN[k@"Xj`"EIMNb8NI%S21%K%&PV%K,p@dL5$K%jT2C"%L25+04hi+AIHE0+K*J
ZdE)"!!4J2c#PFrEia!*QLL*"+'5FSSR)jb)GSr0J++PXFBr!K3,89Qh%A%h2dA"
(%j!!*jp1FD&r3mQH5#M,-TE8S&+UNKHU4CV#,`E"qZ66qj-U3#YT*$Q&EEi1@!)
"BZRfN!!P@'+@8J8G@(T&NY"J,Z2KP[*M8P3"5G&4@V"`4qNJA9285hb*Gefp`58
4UB[T8)#[kYR9NUe5T%V1'jKf5SSlKFU1iX"LcBVD8Yc*1hdR8MN(38"j#P(BbIp
)b"YP"Yb2Hi*2h-hdq!!IF$0-$`rJ!6T$B#di2m9KZ#-+S)*R`24!5c-`SQ`3Y84
4cP*&A8&NkD+Jc!TS+9M(lN"&0NJYhBq1bSP`i$TH-r8@"TQ)5GP6IFSSE5Jc81D
dLiT-%5q`b-JVHY9%lK9D'AI18J$@SF&e+P1PXR*kUl)ZM6YYNUh+`*9D'5DPSBR
"0-2E1UC5r*L1TLQ+1eIT!Q!@Pq+1k)THbJli"!2`3,YD+J,,[L8!PkNUC@DVc"i
NXer*$T-5l"cLeF0F'!MZ(5l[T!*3CG@NK+C)QcJZb,8JQL,PbR[$l1KT,T2#ZGk
!jc)"hbRZX5P''2F%CQNiHK,4aUb+5#@l+YAYXed&C%5J,0f9K"#PNeSpqi&S`Xb
Va#UGcXMN2&q6DTQ8U0N)@ie&Hf!TmGZCRU+T(ZX3jU*r960cDXl0b6NlTqImR*P
6!$l-beQH%TET2*fS-h@UcY@CX2bQU)bBTT1'XBmJ'1f`MKZa)9B%'RU)Si(F@UI
'Y*b`Nh8+cq%T2&eR4b'GS$0j+XrPQ5,VN!#(Hf3mV)[*06!QaXLB'%J"DDB"`%'
N8Me"$a5m8(PY$r!(qQI@9-Q`p%Y[*kr4MC!!TNSdj)`6D3d,bMM!1m6$DZE4-#Q
al%*G+rGC2cFFJZL0H'f4MBMkHGUiSaJ3@1U6MrNaC-,-bNA$4"&K-J(d[3[9H$!
RmlbJ',4crNi+'Mb*T`IpS+R6H+k8#PSkEB@h`'1hmj-J``34"NU*$1XUEfe5p5Z
NmG"m*j3KS9`&34#@3'+2MJD'1iJcDk`01$m"2H5*rabLd#*MhY#)'36k6Z!`FVL
c&R@`(B+5SNJ24$Y59)PH24`+3NqRSqZL)A5$[KdZ#NE,+2%8S5L#K'E30ET'a5L
KdB4fJ2MP$alR&H2ReBZJHb$0b"Lk`@5HdSME-9"QF+e250Bq%jV*B'M6jD%K8V&
'd9"-K%1N0Bj5A-JSf0D%frf8RXKXVT@,S%E8lYVMa&-eY+`e0D"Qek,D--YkKLE
#FFIbZ8QKQP"lS+@"UX%f)5T+TqGCUaTT$CB#!*0SD#)TA+ZPQ95V26@h'4[d'Pm
6'RiY!Rh+*d*-$q%J4@b8!Scab86+f!6@#H"XRUd-k-ZN'!GLdj),0%Ec+",680E
DSLP3QkD-9,EGd!$'6YZT1r9I!baVC!U!iR0QAH'cG3$25di8q413!25PLmXlebf
ljB$YeYf'@8PEFA4J[jQ!I`U!C+Acr(!3`ldCZiAk4rf1I#YU!UZNi6FMSP!C+M(
&Cq68Y`'hFqT)V3FapA#1*k)H4HV)8%[FGY1P"p9TX,L!aP)V+M&pDB08aNP6YdB
TEPaEK$+S&#8'QZqN%#eB5f5+rc%JcFK,f(&d+6kERfC3hYdB!qS'VekMNS$jFVU
C!'5AGfiLXqY4```J#8+CNqfdR4,NGJ[4DKE0`TQQ+YV9``&5N!!rS-fAk4),Tl[
EPfP`Ujl"H9I[$+)ZAC&eD!'-UfcKaiECAf!!5#)!)0DQi"BPc)Ji)d11*$84V[K
la"lCQeR"iM#'2`Ae59i1bQ&jFA,FX561C`3N#41SMBG3kVQ9'GFS"qHME)"R,qh
0JB#M-Zd&-39V@Jm#UEffarBFSHPKR(&[N[BBf8!()XFmH!ADS3`!!5p`!Zb"03!
&iD!*8!(RbJ-q!!Yi!(NJI$f!1k!(3-%pX!-b3!"!!HGU$f)"!VJ(9!!#V!!a)!$
-DrKL!K$JH8@[k@8!4J8'1!%f3%qmKrJ`(m!"'B!!DZ!2R)%Bm!PF3%)J!3R%r6d
5*5"*S-!M#315j!`NN[3"!(E!1lf`'"D!aG0N!CLmLchYCSD25q)kA9GSFZT)T@[
6G,J0-ae!6lIC2IehL%marC1Fm'[H5kr"#MK@00"6R3"9X%%!)!,L,-GH"45!!,M
"#,J-)!$VL33&!J"3`'JiXJ'!#G!N*@!3N!!%NL#bp'!&&)5-)!5SE&0!!3H!#b4
C)1!2P'aZH!"+)3"dJ!j3%0"XQdfcEMB!a0Nj#fIVl*ZpXh,@cZCC2%YR6m)$3#K
l0Y#k@3(J!!C"3A!!D)(3'YU&!KX+`J*B!)i@dJD!4aYT+qfNPE58pY*DfNc,D6%
YT-d0RAE6HPT45fSeVDN0YDIfdajDY-"S9kfP4E3R`3%!@PMl&e#YV4feUEE8hPT
GUfTE,D'GYD`@eF,D9NYXGffVc3h$GYJDff@,Di8YUdff`EEC5PYA5fJ*JD[0YGL
@fElD4#YVVkffcEE6&Yb5@P!EEVqYZ5fhk*EAUPYabfic,E6eYVJ@e[jD9eYVTqe
IN!#hK4EHPYThLfbI,EGGY-SfhECEJAYZpqfreEF$GphL@f#lEJYZ`RfiY*BS[0Z
(kh!V,X'pZ!dAie*FM@Ya-kl(hEJIYq1#h*%VFYfY[d@iZpBdG&XKbh*EVXYpZ6!
hjXVFQ8YcDkl0[ENi0qIUh*h,FhZZcrfj3$IS#YfK5h5,ESi&XeMJb"i!&@"Q!B"
55!KJ&JU-@5J!!)`!%c!)E&BTJ&NQS'8*3&K`!6e"+E#!*RX!L-#423ddkHSkh3T
,GRR!f88"JN[Y+J8P3(CT`0NP,`a!lY)AXNX#cUiC!!!q3-UZA64!GMR!f58&!)!
)k0dl3(BT`0P&"`!!"qKG3d"f'F#4(3"*eJ2Sh8T!GJR!jI8"!-!&k&h%L`)-!$q
i['`Jl4S%T6!,QU`"S!HA&`m!!##JGi@"kf8(PaFAL!@p'`eF,cQi[*!!P`6ShIT
3HSdXQ%350N$[[J2A5`f5l!k3!!999qdQK$*EHTR"N8d!"PB%L!5P3(d0!$%iXJ3
!$UMHVU!E5Lm`!,pm!!$`!3+`HJ1!PLfpZ!$miJ-!`!3%l`-)!!DPp-+#**X"1%(
dEEp*`2@L!LJl&[+Z39!"!5!MP&j3F'3,!"F!!1aJ!"J%KS*35LmV1,)'J#3`J#9
`J+@#kq8&'*J+!!"P`)%eKbj`[G"!k@k&$F`8!J!bF,hJ)-P+!,1JI42#!R$"VKF
H*0N$)'8P3!``#$Gi'VKHI,#$[3!!i!!r'!$FB'p!GK(!$YB$YM%*hq"d3(Ba`!k
Q"&e"#JF!HN"f8F!1KVj)'!Kl%,),"(D`-k"*8PJ!p)E55`PfX$EJ#'Pi5KL!8r8
4JJdA5-0*Y[6qRSrJ%94!'Rkr"X"ZI!4HJ)D"X!!)0U8A$#4C"2##)8!D$J+Z&`X
XBQ`!!*4!'TDbT9IULJEYb`#5m%Qi!UiA@6PGb&Z$rd%P%!#JQ-J#JL4E!)J!LV$
"Ik(dPQ(4m(FG-4"@`J'Jp-*9d@!(!!!*N!$#%L)A'`!DN!"N%i!Q`(V!1!3)B`)
L'JKa'&E#!)!&#11F)4SSX3F!aMFJ!*`!04#$4B-pb-+h@!KSBc@!$C+X!U!!4aJ
B0i&ah(c[`eM3'EFB#iaMD'#1UDi'!-CMB"`c!h1X"Y,a,AB$iaJCQ'2+D`+!F4i
Bam6!(,-#A`b-#F%i"JEQ'"S3"Q$m#-Ba,c$(hlJJhf*0-)ja3C*G!"`!'6-&!&!
+aM%Y1,)-S"IAB$T4NVFa,$Lb#k!LX'!k-3Z%-6+!bDPA"C4JY"!-K$%RJ-NJC#C
$fQF`MJH`%KB&!%!)*''dS!h'-5Q!bH5!*TAJN!#-$XEa6eE#%d325'$0`Akh-59
!bIei*KH%Il+0'F&("VdVq3D6C69!#*)X!m!%!-!+D1%1-)jA-8eb"i8B&k1!A"`
"fM*0dJH!9`[2!,l-"j*X!m!"99F,q`#qh%8SL"qB[9Si#3KM)Q#BI8&H[X&8J#m
,iJCJ&Qb!&[i#I&N49``AS)A9!&q@a'I"`-)!,9`(K((q1!Y'Z"1,B8!JM#I2@HM
(4%!,,`*Kc!55V!0`"C9B#eX#[Lb+(F$mC3*D1"6NiJ-JLKq!+jB#@TJ9#12'r!#
#XKDq"F)B@MKGT'`%2,&Fi-Xii-Kb!0flNKQ+-"M(I1$)3S$H-*-j3!#!"RcClID
&dU!-YM*$B3GmfHcfKISJP!1!2Z$,6%!pX`-!!*d0F3(Jbe6Jb%B!d1X$PR*%iFY
N3%'RhjRX+6`!AiB$#KS4!!![B*m&J$4'!4%!%#KSFb#9$6',hFD3!%""Zi8'EBL
,`$KQ`!4P,"4S*5aHKI&6*LJ)K3Fik#dJM,("NC8!PPNX#i!dX*`"`*%G!@,!c2k
$8c#NFh%#3!$APqU@"R5K%Jk!`1"e1J%,l15c8+A$-kr$Zb8BdR)!P@!!j2-%q,X
c'Y+H!*83!ISZVp1p9!!BKeF`#`'1,!9!%N!!'2F!-Rf5eCQ8cFfh'!N)J'f-#Hc
d9)M6YhJ+X'NmB+HMXQb'aPk!6A-"1ce"G23Y6J0X'JSFf3S`GQA&,DB$E"S'E1U
+i!5!m4pJdd"J8`0R6ddR&!'E0Vba34b8D$U"#GKdRBi0H0N+f1H%`UDKY)4`a8)
C!0!#0QfN*369CG@3!2BAU!3)J!q1V!@`YL)!'#Z$C3d2R$@a33,!Z"SXDh6JV2(
b0El&i'"CJi-MH`'3!!3mTK2VB&RlD!"`!FEZ6%E--3%&3)!8c+ja3!#3!!,f13$
%J'9pN`%!"P!%XrS'ri"PIAlp03Lae,KB#5cVq1Z[T3&N&X09B&QrC+LJ+C!!G3!
!!m[D+'F!)h#C!m!D@0DJ3-YQ!#N3R-@`(9M@Q%$,"J$LUi8$`E*1d3A"-NGV-F`
)PM8LJ,,(q"H,i8ZJ%L6!cBB+C4B+,18!)!TkYSLfM@HV23F!@0#c'E9Y*#q3!#"
I-i1Hc3D1V!C3"`%l!+5%dXZYEH-h4YJhZ"b`D5S"!$D!$-"3@KJHX'N@F'3h31V
e`@*i(j!!k8PGYKqccUE4"Q"3Ui'I[3'3!2+MAJ!#)!,dl!4GYS'c4UE4BaS&5!"
0AEDT`83fa'XD4$[HXJfBll%KRY-4`1iHBA6mM!(hRPEF5%!mM`A,6D-&YH*1e8H
BlP+!0+bSjIAT2F*''!@Ni8J0SLh[%5E)D4K6+fl0c3%@mU-q#D"DFE0YAdbb5l%
X%!$"1`&iAS)bS+Fd0$i)mYVk(Z%*mUfKm3)B!2,k4RF!Y2#h*36fKJ"pZJ0S!)+
5M,'h"'!%4lB$M0ec$@PC`2IqbX4-bYjY5(X$[[G9lJ$Lpm5&iqrpHiQCrqhH6F"
mdi(dM3SBFM`fhqQCQ$'$a`f0ai$j*J6TfbhSEfMX"Vihl1d+@i%dhq)mB,l"`*(
9[+'h)CY[02$"SI"U[X@2`(c$DJqJ#N,i4MEINpX$8',f6C,0Gp,Y#XFC'--#l"d
"UMB!q!#Z@!F!ieeJ[ZRf"hM-3[`@'`2c[E`rJ1lYhY(!I1[R$c!4,2%YjJBm(!-
F@4#!&Nii0$i(jMY!T`M31lm"J$cJi4FFD9aQ!0!2c,HS6K&ZS-PUB36!`jFh#!!
K54`A6`$c,Cp"J%6qf`(!!r$`rJd#Z%(LeF)TJ)H[ka#3!)He-!hJiFBh"*!!K2N
G!(i!$kIA)5$e(ZiEV!4iH,m1!4jKCQZ1+X$$#hB)S!@cQU%iF"$0X%-!-+!)q6S
1m2#*,3,FFTJ1!(q!KppS%E#qYE!Li1'&'Z[*lk&G#E!h"EM+)N$m+Ze4B-c40pC
,[pSJArm#B`l"ME4M%-X"S"PmlhCX!XC#@XlQhrXL'fPV@le[-$EihZ`JbBi!T)b
YaI!i-0plH!4JE66JRGh"pcDq-+!dP1F!B-p4!!8Bi,kB$XaU"-`2c,IY*J'!!!"
BJ`jY!JE!0Vl!!+!%A2-`,3!H1BLZeK%p5H1!0'c*3A5cMZM(H))$lNjHHS0j#6!
'"0T"Nh)3MAX*!`C)j3*JP8X!,fd#%+b3!*EPLPZ,9pMj@iTIJ3$!k3LJDfF!@Hf
mB3-"!0%3h333AJf`"(3#@R!!4ed#Z'N6J&"Q-Y2P!%Fp!R4Y%q!)!!!i@!+E`JK
%p@*p!Z*iX+B#86e#j`NS$,B"`"FikK!!STm!@j!!)S#a'SMU9rS%@)1kIS[V`&'
R!%HlZBTND!`)rMV-4J%[AC4$fNA`eq%h#M!ShGX5C(A(cV'lmbd1"9NG4U-!4L$
(Ec%Vb1Tp'J@JmZjp#l)k#'kbVp`2hf*KN!$9[fq6aGUN'p)fJkK1YP-!!A$Kd"J
Er(8-6Dc1GKNI"hrGKkF!ae$'hF&I9qXT!!SVGJ#3!!rq1Ye1!IkANK1![dki8m!
Veq#iq!(mG6'H![!bk@BS'Z#[kfF9!"+XHLlqkr*C"D$MJ2)Dl[9Iep`U!$$hCc$
`eiIh#R!05PN-Vi'rlUCAJ!E@`REJVm2U&5##,6XZ$J4rIA+[J*!!VS8C`9pribX
!T32b5r$A8IF+F0Kj@Jb,JVr1Z&Q!TJ$8Z,J9r(82(SdG3hlA(,MJVcYY&J#APEB
ab1V5Q`8JAR#3!+r&39BhbLh!f[CRH*!!e@&f#jJ+P(`Ir2@Ih3*3q5BA!!B!VM[
c&[#'jhIJMZUqZJ@8@5H2e4AhVAB"f[I)Ri#rlU["lQ8@!$,JVbp[&b##CEFKlJ&
(I3+mEKH3!(k22"*)maIF"5"P*cm&dRa,G`%ShFc6D#q3!1ElY`[!bdFq$D4jirX
#d2(I4YjTRKSFf4H3!'5Y1)hq!fPHHVq!X*b'&8'DGqd[S"FMDKTG#G,mDAm"CL(
$FfP3N!$Qqc3-B-mPq#5iJM32dB%!##R&l%!!V(SLLp%j`"XZkJR"*Nb!'`d$cYC
-Q-"R3GI$D"L!KB-e"p$e4KN'J)+($Be2J+jRf$#J2Qak5#X$G(frMJ%dJ0P$fKk
JkpGe$"$Sh4X*k2UZ(3-5HPZI!VVqSmF!3LbdEl%AX!PhqXLQ`d0qU@e#"(MG-S$
UHZC2$Hm6Z!bJ[0hl$pMlUb`$2)+HKl5+`0k2Dm&eJVYh*B$h0e`'S(69$Se"!Ec
hdM+J8J2M93$[GIS-',Z1(Y,D!RK2YQG!,mlMN!!f'1KkQ$d$B-%DC`Dk[TV2!%)
XkL(Y0G$e#A`'2)50IS[&JDi(k$3Jfr0mD0`1G,d2T`'TYh[M!ef[eQQ!l+hj!@!
!k(Uk630dVdKI+,UHF0-!4kf&-i#Z&q-dB)*!I4+JkrAc6p(f!H!&k(VjA!2%,p6
A!ETHFpF!P`reLi#Z(pie31aVB5LJkpfd$4J,"cm!E!&G$kYY3%E!!&VB$1Mkb@d
$P,N@MJ1khREEJ26,[J-!(p$eaGS'r'mYI!KXJJ5ii$DJJ&Gq5H$jZlB0H-'!["0
iIZ0V!aahj8F&RTpHf`!ZV0J$`#c`r+rl"T5'bZm,G,f[[J("T[)R!eerUfq!Bh!
!@TJDk2SVI31'!L$r"VVqMGm!m@[JEl!kd2@Sq`E3pHSI!1U"VQIF0q!K9(qGS1Y
*2!i)#q0r!HKkhSi$026iY`#krQMMJ$-mrN1!VRIQ13!GMhm@!1p[G3iJ,q2I$3$
[NA!!3!k`l-9f!S!3!1m&FcP!`jH'03(fhT@@!k"db*mKKJASHKKG$Z#iPA-aRDj
(Vq8!EJ(B*J#i!EVHa+B$'&L(AKlJq49X1S""3I%"ES5!jhIDk3"$J8JR!$`#RPq
ITJ0-"6DJ*Z$j3A3k!#''h3&ZTB$RGk2T!&LE$3J,H(jAf3k`qk9KZi"0F!(dD6Y
!X&(',3!'!!T`!8"d1`"j)3-!BaC!&RJ"h'Jl!'HhbHe5BZ"9"J6SAQ8F#b!'`Qm
m`2MQaG&[BU!ca`23A@@F%#!'9R-mJ&QRMSQ"#4`2!)8GI"U"'!M3m3"c(MiQ"K+
!2)#%"ibj!@,JdFB$1'aRB"iJ"X*X2-$m43J5!Q)JM'C5'($3f#-J"NjX2B!VGJC
U!PQJ"1!*8RUh@#Q3!!U5JVfB5!F!`!+TS'[A!b5#YpJZN!!&6J!&@`rJ##Ta@5!
kGQ6e!!iE$4F0C)%4J+)(!23!EJ'b"J"`!m(JPHB$l$SXfKHh#cTY2X"3F1*"@[,
!,RM$q3!&A2I@$qb#ATS2J-TC!(2F,UM6`3#)@3@S18`!UH"(C`+3!'`8@J!3!U5
#rCS2%*@4!IRD#j!!#LU$!N"jGm[e!+RJ`[F$L'#8("+3!!UfG$q!l&Aj63&L)0h
f!m"PFf!!i!@)JBaE!+!@-!#5f9q3!!D)JD(El'A)V@6Zf8HS"3)"@YB2i,KTC83
"df8I"!"dPfPJ'U"Mm`8!8!#3!"Fb)93`IpN(*S!4aKXN"$!!aeB6qJ$%4NlS!e"
L,FN2d"0`1Mr!#pD5J!%)&L1`!1!$-&8!!!:
---