[comp.binaries.mac] Macintosh Technical Notes - 126 Sub

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

[Macintosh Technical Notes - 126 Sub(Launching) - 4/89]

Note:   Developer Technical Support takes the view  that  launching  and
sublaunching  are features which are best avoided for compatibility (and
other) reasons, but we want to make sure  that  when  it  is  absolutely
necessary to implement it, it is done in the safest possible way.

This Technical Note discusses the `safest'  method  of  calling  _Launch
from  a  high-level language that supports inline assembly language with
the option of launching or sublaunching another application.

Changes since August 1988:  Incorporated Technical Note #52  on  calling
_Launch  from  a  high-level  language,  changed  the example to offer a
choice between launching or sublaunching,  added  a  discussion  of  the
_Launch  trap  under  MultiFinder, and updated the MPW C code to include
inline assembly language.

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

:#941-6)f,R0TG!"6593K8dP8)3#3"$L#!*!%3XG6593K!!%!!$L#FNaKG3%!N!J
#(P41,M%b0Lj6G@)S6'&eEQ0SD@jR+5"),8`J6'&ZC`Q0cJ!!rcB!#4fZ!!0Fk!!
*KeS$@J%+!#%!!3#3!`NGb&G28N40380"!3#J@X4#S&dA"!#3"P@!!*!'0r`!!25
U!*!'1"3!$!#J"b!!!!)!%[jEq)pI`B3qGJ"!0$%CJ#V@!#$3Q,"M`J%GN3!3f9'
!0J%SrSAl*dj!2J&'"K`TJ'+!3`%K4hSdLI*K3M)G$3BB'[6%JiF'25SY#5"$!%K
+J5bG5R8Tb"J!VJC0f'-G!+N!HP`$3!%!KJ#irXNEU$D!-(mQ&$*Fk,-Z!,S!I+`
!!#(K!BS#e!)`)CKHflGaj6)%!+eMBip*M3"j!"D)U3+D""0HDeLH@irrlLi'))$
$!)-e4X53!'&$"`J38qU)3F%N6"dhBp#NFA-Q"3JMFYkd!4%'"*)dCp#dB&,'6KN
f)'VcVK2Q6*N%Emb!X$%RB%)&#5N)H&(2cT!!1IEqk)$h+BLS@[HqR)'e!X)(2-,
93CLMl&k@$!I!X!)H$cJK"36&h"-'%JM%*iBTpdba$(TrX2!!%4rBSB%A&$a!"3H
cm+('!e2Fid8j3L"!`K6fk(%2*%%8BmmhE8b!L3#fJ"#*JU@%Jm3!8Ma34b!#h!*
)0',F3`8%A3J3b`0Id'0-K-[!p)i,!05c""i`JA22(DS`B-X2CqcR**!!mNK6K6c
Ci''#$!hF)i@5(l"J3!i2h"%,$()N%!8JbiaK6acb!11'1Rb)83F1HGkbM!-8920
%'`eqm5#9k-(aT5S2L"(%'f[)!ik(X45J`i[(-"&I'i+-%8b!pqc""bch9()2&!P
U!8Na114"3D@A5TJT(JG!8qZYC%$`4a[UI&$M#@3D!--F)GK$KaJC**!!iBEf4#0
$JjK8#mdBN!!N5ii(C'3J!"54M(L((24"8!iLIiLKKa`[GN&!KRKN+NF!#Mk4K`$
,3N#2"rS&%3SD'"J``!Gh2'!("BG-83!dpGAc3ak#1%YL&brF3FB(,X$6'!`*-@"
3@3J`%"i!LDK-&J#-Z$ac+6CE!!!V0P-3J!Sbqqa#c`&)3%mj)Fcc5J,d"-&M1%$
8%m3b0aJ$LXCeZ%-&##EB%`XJpGec"X3iJJ#KX2E!3HiMGGLM`KYem(",Y%%dB-%
,G33"5+bc*QY2#))BF%mCH@63!"8-I0''15IBFm)T,q6a!!VN5K(,%bN3B%%K1"4
U$piJh"0(RQ1!8-)$EB!+!GY"P"hV"!H!J)F"pU#JKC`D["K$-)L3!2&L#3IBidd
ShFT``!XXa)j(!P1B'3X#E@!!`VceKT,R'hR)mdi$CU@m-J!&p!a!'d%$3!I4,Y#
cJk"a!())$`Crd2BIG3Mb3!ccI),$2)rS-0!NaA!#&E$P)4#*U%!(NXF2DM!2f$"
!$DFJ%j5N4+8'&-%Hd!$$,Hba"hPSBeX+%"6phM!f&SL*61U+"F!-)Ea3V+X,d3!
#'*CaK@"d5J+LQi!#i#Bh-K8!#'ac'`rRGSC#T5%5N!!!`b8BF3mX91aL'IX(%hJ
)#a+i38Jjk&!6lU'&%p$M$&NX&,P-C)N33+)qp2J'&1S""hV!S"L4@"Grr,1I8m6
!!)K`PYYHC!SbhF-+Jp)Hp`"!!Zr06!2L1d,1!1!%m6PMNG83(a[km3)Ua))!AkM
$#@)!L,q9iKj`-0FAl&#i`aRJ%hC`&56))4mMc+J0&(M%$Tcd)Q2!i'm2$!8NT[#
+2&J3JfJ)a)c%d-X3TUF1*#4C2hl!2B%!J!%i+FX6[N$0DPVcQYM-TMDhbFeZH[0
`hRRQbibJMbmN3'T8XpV43[#!%FcM"6#BaaFXY-8ZIM',$j!!!VrNN!#"HB##9!q
`JICJ3+*lK!Z$p3M"`Mi`5'H+,b%1$FmF3!!!'G5$$R))`5dMTl4cRZ!CDhL!%%a
"K`HBi!&+@0B$M(#%$*JLLqaT![EZPlrprD'K+AYC!"TJ%'H#CfCHm+C3KdV8SKS
9QmhmcX[ZBSfL$F!A!'K!%i*`K#3-!3T@M8!!3U13!)aXi+P4R@T9VjV9VE+J)!d
!6d4ReS)!G!-N(GQ!!!i`elV5pDjfcHYG!6$0SrVeVhpY3&,&1E-1*1!e)%L#%8!
JKc,!J3ejF-%Ch[!'-S#!#NJSJK0!))3L908*1!9!!K+L-`)N)!&p'1aS!D#cK-`
JS@),"#3qPiH1eZ-%bhM!%,63b`kGY!PNX!FXk&'+@46L"dcc`"&!-Bm2j)"r16"
C1-@h8iMQG'E9RHl,%Z"@Z#BN!AS0,el(1eHdp[5kCFRZ@Y2,8qeLY`%J@5pDV8[
BXY"AI'+J!KV+!*XbR+%0CA!$(D,cKM#3!+%-FJ""EX)!"cSJ'!6C5D`EjT!!KJ1
$S!PK'-0Zk2#'1D!KX8PS33eQ!))jd#%-$TiS(IB,!M1mJ3eXH--GGR-'iSJ"EJ0
H-Aqr8*[Ej!B%''@`$VMR!I3#`!23R0R3ASBidJ*J#q*,KTB)p+%3MFK!%&KL%`-
"0JMd!`A4Hm%d8#H"@N#L#`q-i"NQ1#8*r6+$'qcJ"c9Nc"'@D39LD0#*K!#)1GJ
4MhT8!4rp#-M4[5YHAML"aD"aYJQPM3V!DR5QaQ!j)"`U8AAi3FNH)`%Mpf#44"$
I$lVV%I#5pp6L,Hp13b2IqJ,J'9I3$4[iZq)d606%+#i$J!8-!PX$Z3bjF8-DaK!
''1F"b(+S3aPBd1X"qlS-BCM$X6QXi'*$KmHf`Ff(c4#FiB6"$FI@6A*D-'[R3)F
0hci$GD`$JM[SjXGcU!-Fi2!'1G"KSVYK`fli'qdjk&S-N!"9F'@A64`h@,E@%hA
#'a`-!MJ%a`i9,X0%bi#(-,6KX4+(X(D)$@-DJ`$E2[l`ELi-K5Z!!!V4jRM",6X
%&`bbb+lqY*0$r6*C,$)Ae!eYc`C`"L'8`F@0VAE(HI2a(QZEfAQ!'`MF8)Bb(2`
0)$M`'0!GG"hhfJhkCRV$Jc-'TpHKXFafpl!rI1)eC,`iGJL$(0)3"S$c0m*db!-
Fq!X(SqGQ#KLY`aJ'('hL0&cY&Lq$JqAJJYG-B6GG"c+,ab!F1+4KeJQ'3admI2D
'[f($$kBf`[mZKm!2(X*Z8$arF6f'05"Gk8ah1T!!SBji0Y6"`Sbh-,8PRf2G6*6
HQ%r`KU%H""J8rV)X[N-BTJee-N"pmlkHmBVphS3R@+%),Q!##&!`"5LNB!8Xk2h
96CcX[DIK$@i)qlY&2P%5b!!'09MXb2GEFDQRS3h&C[BFMXpL-k4"$LCZGldY'`B
cI$i*6X!%!&J%[9CqjjGq[kGI[VBEh+GhG2"pSHG[p`B#mJB#fNGYM#GJB6"baB&
l!TCjp-GIpMGVEK"i+`F#0)!#[HFE'!Kq*cCb9TH"pUGZRIH!i-GjRSGJmKH#))"
Zq3F(DMGJF-GLqEC["5Kk4CGY2aCNF0"XrXB'CL"qBhH%*"!%1@!%-R"e)-"q"JC
XleGX#EKii$H$AiGL%)L$!$Ci8[KM[ZB'p3CraJB#HS"JEm"X"cCiEE"[%q9ZJVG
I#@Ce$2CB`fD'0cKjCmF'JeH#$$F(Bp"B!AD#mhFEPU8SCQ!'#$B([hGiZ-&IEXK
h-(CK'ECl(JB#UA0JE("VmNC[pLCkrNBFL)KJLXKIP'L*q(GkG9"LD!!hE-"rGR"
jPM9j(UGM`h%EXcB(%j9dYiJ'BH!FIMF(FkGKpPFk'LB(Be!(EB"VQpKZimGBC4!
(GA"r'5H-,TF3IQ"N$l")&L!qBE")EN!d'*!!-`&`!N6M!r!i"%6$"[!S"d4M"r#
i"d4c#I#B#83c$2#)$$dM!"H3!$-#J'6K)3!eS*!!1T!!FrF9(J(J#2V&AdD`'`H
@B-CAH6%QK0UK'f4`B+%hGG$Q"KAiECDeF(i)C0'f"RZB"LZ'Ba6SE`Qf"Qji"l0
'"YDa!k,A@%"(F$*jK')JFFkQ(FJBG9$ALFK'I0ci@"P'Dbb@N3EhB-VhBF8K$AN
SE0-!BAmS"dk*EL%(B6S@HF&a"TehM5HSM-`SM0a)"emAHY5'M!N@L2T'E$ES"Vq
A"(*CIh8!Pf#(K&5jND3iI&[h"K"RB89*"jq(H@K*L+%(G-3aEhF*QA2!E#S*!NN
jBjmiMGAB"Xl"DmL(P%U(88kCBFi@HM*jHqL@H'*`E2%'F%US'd6(NJrQF#58PTJ
i@",TAQ8""1ca![+!#K)J*1"!$mm`"!J!"@L`,L(!+9-80r3K"Ni5"!F!#$A`!be
J$kq3!'PVm$"im!)U)!rrS&UNK42dd!N2N!!(QE3!L!N"B(!)H+-S-"!V&!!"ad)
&"Z!1Tf!-LSBk6@3f9')!0E!#&(!RlQN(%#!(")"$92!$GS)RHK)%kjP*"K!%3*)
R90"5Y&-#FR)!2+!iM1-iN!!M1BIf$A@!0a4D)JF&$I93!p*`$hC!S406-Br!!Y9
jR@$3$bi3"0&!""R3$r9T"rQ5!&G!*N@b0l)##pH!!JFJ!e"3(mp3"d3`!5$`#"c
M-AHJ!Dq!*4U6T@h3!(U!R`Y5"r(d"#i`$a!J$i9J'5'!15$DRC%!#'$3,B'#"aK
8$8#J"Tpd"p(b3+"3!J4US2[CRiSf$l35"`*!!4Jd))#kSbMJ))fQ2G13!#@f!J@
f&!j03!8B"!C"p$E559X'N!!*Q3)'J3!#AB!!bk)Ipa%#1,!Ske)IjZ"+d4!#31!
fA#"Fa`)&jS!)X3S"p5"&9'4&JR4N4[B#j6-$4#-2m*J2i[-!I3!#iNN%Ef"hD+!
#,a"DUk8c&B"DdUS#DD!GMI9BN69CPB@YfZTN%F!H#3!2P1#Jk%F292!%1b"GcV5
Y!(!!Tr8FrTDZV-9D!H#X1U9c!cZ4-i-")+GY*pJ%GB#)D6#B#$CB$[!pkS9H!I!
"99#9#FD`$JZaFS#C*5BEBUQ`4FQ@'8F'i8U,!8B(!EGLhdD"'LZB'SPJBFK[P$Q
)HDQC5KHE)rYM4FPi!+CLp9G[rK8FNMLCJSLA%)LC"UH0MfKeKTKJhVLDLSGL5&Z
CHFPX9LGY*UCVEaQA%j@"'29LUiH%6)F(!mCY,TJkqBGZHD#$fML&R!NG6-PdA@H
-D[GiaeD81[Ye9iZc%$L1[MPI[KN!+j!!"+4jLa))!MHfI1,fB@*!Y4&QV8D!EQG
`QA(lBihPM8Bj8FA"Xl0TLh9jXdTlJh-VF!+f'mT@YK3(E(r*ErkAHBYRE@@EX,R
aHaP,Q"clJ"kVY5b'QY4aEV-jICNCEmiBB#ZCZ+1EY*!!k4ZRbj6+1'q2#)-XCVY
NehP``'b+-Q!ef*,pphR&`A(38@qN5,5eH`8E5!G13(&d8!5K53H#D`0'eJ',K!,
L)`L,&$-[S`k,&!p%X`(`Q!+pZ9i#)!+jqf#lql!cql&*1*E9+!H0*@!"eeL!1@%
&"`))&KbkTaePb9pYZ(!Bl)CeN!!FT+KVp4D@`fYe"dCKMF9rT!ZCc"DZc9CYEX#
8-BDA8XPI+`b1,Xbm@HZ9[FE",,E$,IbhTDZDRXX'M@9JarB'FkHAVm'A5)KZM2P
Ja1C[[QZeGJQiT[YiG![#I!Yr&SDDDH!FHjQia&(&&qGJ6pH$SAYK$FZl#paZALa
decB&H6!(2ZGBSQ[%N!"*ajq)KlZ4DdaV@@)E(0"aZQG3aNr,JfHEYX%KB'`lB'j
,Xe'-aLMQB'ZXHY3'ZL((E)G-YUG,`A&CYR6TacqFQ82TDa8iPk8*GH0DElA(AaP
-[TV(BP%lMLTJC"1`5)Md-[i30%0"0%8!Mdd``%B'$%2`G4(-XRR!E0ElYA*J`5p
EblSAHSfeb&fEB%3!!be'[TmVXQqFQ8RTBETSb2Y9HM-XQGBm85M3c6`!!lla[3r
fEFH@bEV@B*ilB*kXE64faL$3c6l3!pkXBk&hb[hmBm+(LQ0`Yh0J"JdlM[,VDJZ
`5")J2M#`5$)J2QL`52Mi-TD`5*Z!c+jQ$eQ`XlRBX*B&P##)K&"`PQN*B(*3$40
e"0mSHe#A`"ilI8%!"833"22FY"LQB3,@B4p'"F#'"X+QFJUABL#J'MJ!!mbQdh2
F",E@G6$fEG"fJL0`J&-Ga`SFXe,3(,BQNdlR'X$(AcEJ!Yk-aedl('-pDp&'F*)
*dIE@NLM,L*0(B6FiK$YQVFM'B$#VZf$YX5k3!!*%CQ6['%d!N!!$iK0*6XB0*$h
C,e-$9e"[Dq"a4!#1HeG[DA"f64XEXKPb(RF&-NPf8lR!S6@alf@`2K-'82#A$dK
dd4Ca5!Ld32L!NDY[F9H!m5D#YXaLUE0VG1#lEiGeaiDEEMFF#8fE0GD)d1E8NLL
lr2A!c9aLHDc*4`KqEkFGPbd(Q8edQpeBR3f@)$!%,SM)R(A$-$Pp9d!%3b!%Fj!
!!VL,G4)RY$EV`fHBP'V(AchVh%GSY9BA(##-XZ60BHC0[MIiXNeJ"&-!!VhSHJ"
QLk3iH3-'hERQGdah"b$`h[%0LB)h`hdAJmbmXP((f3KqE(aid%VhhdLia8FXZ*h
QDQC32Z46X)AV$e*XG44RF4LAZG[fBM&f"jKVG4ZZIq$YF3B1E#Qqh8qXHLKJE@q
!`f6J'km*'bGQF'TR@4NjDbG)YHmpeQEJ"0CiK+3mcDShFZ-+@5jJ"f*1jQd!d%P
TI%X(`SD)j5UjjEraH2c@Y-4@`b$FEpC)eq6,J&RHG9NmbkKmKJZYK9ERGXDSHLk
fL`p'[J3qB%YHhXmXHLaqLfeJi4$fa"TH"Kaq"jLYj#Kq`KL-"dNVN`%(FF84[V4
,E9r`"%rmhVphdSUEdVX)!S[FPLafj"iZ"(lhhLmpj8P!""S(!LG3"&+3!!4,F!)
l+,-aL`,Jh)NY5AN`jVcR$!)i+@0PHf"5MX01UjVm(!BF2T502Zkj0SRh$!,5d0a
0j`,6`$e#B'4RX%K[)$jrX%Je3j&@!)pS4T(p6PS"F!K%X`M`'!Q864B#m!9"J)J
T6F*E+mkN6A5ikG"QlVViamM6P`BZ8!BZ`'biqCKU+ABreYmK1pVDTRV`YqN`'*I
bCr%+DjYQQCX@0pr'(A5q9KckPSFJLB,HI)0'ESe&Q@!40ZalZ)ercVM9[F4Xr(Z
Q[AbEpr-b5H'-Tp+-G4X3pTI,[S`EL'jZeq(`,Gm3MQ$(0V@P&h!b$(rJGTJQ[iF
)4RGZ'i`XTZh3F3BQ5,j-G`DcjRe%4fhL$Q06RZ&@Tr5L&fi'TQ"3lh5rKf&Q&l*
"Pj5j!@aVm-eeqBRY6"baQf$Lkh&I!!9#B1X"KZZ[%34!eJ6[r34&!-(6"`fV%31
q!@$I*V4Dr)PJrhKYjq@)El*1riMXcXD&(-4pbieGjr'ECmd8EXjDAf`)TZK4@l@
+hY`Y&[DUPjPLUlVmjVRc&K`1ahB1*VLlA&m"3!M#M2!8f3R`D!T%X`V`1!X0AaB
`S"UXS32-)aZd-CXdjKYUkfh'J4c+J6QBQqL3!'l@64NB,",JHa`!dI*Nh%S!`!N
,F!&ZJ3#3!!kd#LJ!!),J!M+#8!!!,%&!+!!P!3C`3%fJ%Ii"38J)'L!KA%"-B"$
!3`4XJ1N!*&!!lJ%$8!!!X!%"3"B%!(K`!62""E`%'T!!!hT!!`!#%i)!%)%!J!4
Z"'F#!++!#J3!Q)"lB!!Eb!%!J!03!%00&+'""Y!$4f!*G!FG`3N#J"@S!M#!KdK
U5khBJ)#Q*R&ki!m8JKm`"(T""0!31J)EH)*4%!")J"83$cl!"L!#cH%j1,%(Jp5
#c5##$V&KhXJb0`J!,X%#a!N#J+,i!!ES!`*!0VL!M3!6AX""%"UL3(G*#U)P!$#
#9)0UaNXSl!DJ8,53!-*9Z&ID5Ll`,UU`&,,#mX*GhNUTQB@bF!'k3PMB9XC"!"J
(Z&#[R%*BD'U#iDNC#3(J&CDDArJ,MD&G'BDh-"Hb`P-)!(i+!f`"64!!e!%!N!!
*!%![!!$K)!!8J!#3!!)#3"-)!)TUVqb8mq*U(J#lFPI`LJ,3+h[eACc-"$JY#B"
b@6mbJ!*5`!l`9cVMAMQCLNA4QN$*16NTTpLX0ST&X-M#(L"FmX@d*)!pB*lq&8(
%9cUM&PE$MM"DX+%6h)EGm"Z'`h&B$XpK1U5&T)BM1X0M'!6B&AP5!8jLKdJRDk!
(-N#K+!313%iBTc&J!%+"%*!!)j+L$6J*)4%)J)!mH!8[J"ib`(re!%k,$%-"'3`
%m!!3)-m!SJ9iL$0JAlQq(N!!3di5S!-S`!5dJ6aJVIcKD4&2GUb"D4YmL+lS#li
5!UGP,&SV&r$I+PGeQ#KF%3EJ!4M!&rXLAp`"#3!Y+J&3jq)-'JLB@R6JY,4&JIL
[$!!mL!5SJ+'i45Hc"1)L@Ca0G(%ffFA,"3,b)KiB!Rka,`*'mE5i4KpQf8*TJ(&
4,FN8cPKHENJ!E6'Fi#X*!!mZ!653!!H!))LmJ1M%!f#"22J%!2%'"LGjF$@#J#!
!&K4%3Y`*"#!"C#)2q!9'`"6BJpR"$+M!*5!6[B3pM+Ib*"YR$VZD%ANJ15i$HG!
1k)%D)#'!B"j!!r"B$d5+2$J(Am!)[!)MN!!$RN!5k!&I`!9N!r0)3Q6*F'`&&m4
&rB-MB$4X`!ZiMepJ1`E(H[8*K"-Vm!)[3K[daah!($Z&(!JS&q16`!(D%J,@KCV
58rAJ"6`"!m!--%$r1)T*X6%`4TfK!GlK*fKA,a)H3))N93SNb"fJ!Tp!38l'Im8
J%`"i&)rb)"cF!d&!$e4!V[S&6'!#2)!H%&$Q`5q!NF**&8`!H`![ZS!$-$jY3&6
J+Z&L$J5"8X4A,X!bcN8Q-!5f!!cS!Tf4f6'"%q#6j#*Q**0E)!DJ5Dji!SB!Qkb
)VH8IC)31!&DN#P@a+PKP#'J9VX)"A#5-E&H3!1#(&)))-9[`4MH)*6Ub1eV%i1J
1Bq5l8K)`3"l@+a9C$eR,9@aXhr%EK-Ff-alG!CCFNJmJRMa*PrJ2"%dFB"lbi%,
HJG+K"N,!%"!$%)!4")%*)&dNTFl`!D&b9&)*HH!1[S(#D3-33$h+!c,J!AS*HD3
(jU"E1-N%m",,!E8!!L@J!#J*-I8"MZ8(d*%V%J#)J1(i#UC!FDS$i+!q0*SV+4`
N!+3N6m'4!V#V2M!j+)"4r!!pB!"mJ5*!"(iMRL3Nl-THUXGk%!0HJ"A3![*J%1L
"3K%%e-%pq!3Zi"km!5R3!HM"1fJEhb!&1-RJq!2)TEPd%Ja!533"'5!aESILJ!#
RBd)j#3%3A1,!dN%8p!N2S-KH'5i[ST1TP1hU8P+"6$N21H95e"RbmNA55a4J,q8
"[Y5Ar0*IqNS!!!1dBS,KLU,[#!LH)B"Lq*+,33%SB!KBc6FJqU!!4[%0BM%2L$i
@B!D+MEraKrq5!PK'dHF#[Xpi5hCT%JEm`k9j!GDQ%'LEEm!)[-fUK!IbiYaFQL(
!EZ*0+r$QV"&AA(14aFhp($Mh0m1P"a#FhmF*""k[+3HiSS'6R!!'lmL"Z4NZ@f5
$2)S%FLJDJ6N3#B#!K$`$M`"FGNUGB62r93pJ9jIJ#AM,+8!#8+8*D*J2d`8B5q(
`!4LNF$S&0q!%U)%r-+C+J*L#!)%J&!J$QiJ8[k56'3!6-6LZ+pXS$`K"Xm`Hlq!
-9)&2N!!#R1HNh*%kJ`L`KbP!$pi!JI`LS8!H2))*95MN`3X3!BAL"V`#&M!!9JA
kV!F#)acF+!$e#Bb!([J!91!HH!)-%$rRTdR"RGacBbj0&N!ZQB!%')T$!JJXJbT
!*',"m6`G[2%AU-kI#3"U3!)BLefZ$&!"Z50ac15FC(Bp$3UX5F!B'&9!ZcPZ!8I
im*S8bJ3Q#VB#!C3b!I#KaY,QdQ31N!#E1A5(LV`2`a@M@Z0FR4!4L6U!"2!%TN$
Vka01Nh-LdGE*1KZLIFQ)+I'lV%4KZ!i(edlCK[)&!m!$6Q!,RX"SDBVD-AE16K+
J3-1P"%J!5##%ENfl+88jD+(%",9!#$`TG[8$-+Er"+!#&!2-Jfq!2hl"[mb+8m!
)M0#j``4X6@,mS(NJK#j5L6-DAHJGJ+%UlYX-'"TU3l-9q"`-il0m5S(Vq3iT`I9
%9!"J1*+#kdN!1!#1h+$iUJ@`Kj)M!ecNK*U@j&*P3S&,i!JJ"#5i"'T!2Xa-RiQ
[2J!m`!3Ni"j`!4!J(ZZ"$(J#G8!BX)Ffm$!ck+EmT"*J$l`'Y%LY!0YL4+*#J$d
)J5S3#XB!Zp+0eT49US##BLND6E&)TP(J6MK(@*!!@Y4!)0#1m(*TDS!QqN3$@V@
D65JJ0TA&IpN#$XZ&F6l3aq3%0+QQJQk!E`!"2SR#C+1K0&@bJ$3,2E%aA#i!JfU
piU9"E6l2*rUmKSCkIE)2$2LA4q!P1J![!!LXTDfD!kFM#-b$"f"#e!!UH!!CP!@
X9%"!$ji!$!J!4!"aC)(p8!))!!EJ)LpJ26b'QKNF$3YAh!0km3!C!@DM&kd3&U+
UH'!'&)'SeJH1+!F9!ZD!%Bb)*k!aq#91j5'r)!Qm!"6J!*VT-ifQEA8BM%G)m")
I!!p)PDM$!Z!!S%S&(J!X(BM"%BIF4PIJ9U'T-&#J5a-*`!00`#,J`"ai!3QJdI"
(e0NMAk,M!!(ci!I%!(R`$'E!61d"Jc3'()j)-bb"JH9!!ND9!LL)(*P2`b821+C
jG)pfJXNU5p$Sjjb2T"-)A)03F!"k!"3iRB"!(L###0!T0-!AZ!1rmDrq+f$*@02
'Bp8@i8N)P!+3!%)2JX%2U+bYXSm1%`T`-6KNR`%BJQ!#9)`PU4lR`4Z)P1&5"Bc
4-JSMQ3!pq!&Ei*ed!86P)S96+"L5%`#*c+TZ%3+3!)$53+p)P$EL86eD5cd"PQb
M5"3(V&FcUKh,Bl5-"[6e4DV8+b!$a%18JJ!fS&YFM%C$A*@VcSJ!#8#c%!'IY!H
kk@a+,Cq8LMB&J`S#4#b*95a2LFfC+c+!BTFQ#C!!N3Q"42b"-f!$AJ%+%)rd3"+
SceXP+S&N!M@NRh3)b%JRJ3!d!!F`)jH'2Z@+54!V1`8%D$5'!p+Fc##!"UD!pZJ
$0"1*YN4)F!pd!9VG!4@U$U#1(5X,5)ITb)P"!PdUN@#kCZk!S`!B[A31J!dai$f
Vk#HpKiJ&XEKB%,!(VN!5`#`e0P`U9UM3%B$XH6`$kI%9-%NfQLTRDMbTY*8@&Lb
&Hr!,P%#!DM41SMl*$hca$B)M!f#aJTB*10&r@39`E+-PPC-edNlDphTTDkfPR3V
h!"F8*b&J'+J!23!%FFC#!J)pjDRD"UKkMQ"fU5,4E"&SSpKL%DM$#l0SPZ"B5cr
"(T!!'XI43BM(j9LF-QKdR)iNdMTLaca`$dVYdP5aiC64*S4[m'd*K!j3Mqc42F*
(q8JIl50qe)qd95,FJei3)1P"((J"Yj)H6)*U8'k$BlVe#2H!&d")5(!kC8Q&&!-
AdJCN5&$#)6dN"!#4)T*%QXK6B@l2EA#NS[KU!T621L!%BN(8#!(4)!M`J!qJ91r
,p`!"l1(DaS$3i39L)KACVl8+#46FTHPR"aGhi3HRJ5-'!(03&BVZ-R`VS*!!Z`J
$!@!#Q+l4T3S[S*bFNkP408$"1QNRc@9rd03(8%qm#"M4)RJJ'+L#-@!"P+,iJ!F
"i#`!J3#!"Tj#%h5e#H%q[!$T5Pf$36b4Y%e5dhD%-MXPUb5lc*,JB%[#JLj*)fd
NMNbf5p-+`0f"N!#F(X#l[Ber`,hqJ"1!5MIY,VK2*8!!D!#V5bV,KS'#!(KJ!(M
CEk!')S4`L3&$FZFQhX@lAk'"dQ#5m86[+J91H`FJ3#@B[+($$XJ!!b!++)!0#!%
)J"K%!"LJCHX!RNJ5-%6RQYY`#5c9,3"`X0h#mDT(HN!!VZHcI,#Sp"li!JTVB61
*EJd&d,*El&c(L@TIJk%pM@jb,"'"*m"C2!X!qTFVS2c#"Z43JYJ!p4%m9Z$&S!!
RN!!%Q!#c3CaYVR#fJ45!0[qXr"fdKIE3)S&%1d@$iiVX!f%KjK*-%##PU*59'Kc
GU9ZX#rX%!HU$#AJ#Cd!#&#Vr0!81`#0![1P9rKkH-e"r88$8R*T9d`eF65$3"-5
Q%'!"4L!)U0SL3)$V+,i5Smlh!(`")N!(k-%R)!+[Yp)LfD9C+)0`I+3(4m!qjS$
lN!#%9H@r0!',9`KEJB4L,&I&kkfqc[)Gf!%Zl!5m-*)0PcI@#AY,+-"'m5i38+1
mNhBL@!kU!H6[q88#T-J'"c6ffeNqblm8SpE@he*JJr&e'i"da!1U0eb1fHp5K"q
X-hd#MaH"kNj[+4%H`"kB!h,!$Tb#Hq"#S-"ZEE*2pK1JB#6U!5*(1)J%d%!3'0D
c'MGq!He8TU&M#DIAQ&YG"h%6S3!-S"CJJ3i-!AEVZK#2L4L*kUXqr(irUDpmL%D
!a5C5U8N(3LJ+%+,-jJ4)ZcABIjN05QS$NT5%BLi3bZFQ+HEL[rihaZD"!K`Z&5a
8q*&R)"6JccbJ2q2V!jL[H0H,I)!eJP2P`4q3!!JjGJp%f89K+KjQ#!M'(03#X0K
VR)hRcKc3!9`a"[KJHmKLK@J24FJJi2aieC!!fj!!rG!3"3%3@5*rh1#i!A!X('i
$(i"f!J$(Ub,H#32j!YFdA"V6Fb`Ufq1pk`L19lF)h'VJNK2+-lLQ5p-!'%56-`3
Ne[GJ+J"J#[4*X3)Sb`UK(-M@U#"R(0F!J+L!Ch&f#rPIQ@-!J)l9FIi%"$'CI,k
"!1S*2J!6#%rif"+,MRj-CRA[!`J#l4%+d!0N!*!!m98YK3Ui8peQC9&k5Q@[*Bl
,-5)*Y'8RmcUK!JH'b6VJ!G$5bTZ21A!*5!"i3"eJM`4J"dT"HKM&(03'i0JI55T
cE'$1S+qB#lb!5V`('Sf+8+BUD[`Ld3+3!!#X3"#3!!)EqC0'JIBS"3c$%+!(3lJ
HI)(@V*D,!*!!4!6DPP6k%hSJ)Jf$Hi9i&P0M`J*,M$@%L(6U!`)!QN)!FZ&1SB%
eL)b)eq0qdVf3!%E)kKXS!YVM#J`%RmTCIq`(Z!(b!")m!!Sj"ei&-rd'D"P'i)d
K!+hkl%B-9KNd1&UTJaT5T3p2FkMBTrF%4b0`$f""18!($S$l2LQer!&J3+%`"UU
!Tj,+3['I,m3m)!Y&!!M!N3%G"0L'+&!D`6(3!L!"j!3)N!$j36p6&348S5XN!jJ
0#G#U4K5(,NdL8$kVJ-8F![Jc#4J'*m#+Rk0D43([))2UJ,C++Kpa02f0JCQXrJ"
qLDJil9dP+'e!Vr,9[I`pkDDJG3)MPY"D+mhTJ"J`"e8#(8'b2YVdD(@I`41`Q%I
!#$X"r)PQpm"PcDbEYE0qeJm*4)`Y@Q8""F"!!B)J%!LHJ"h)!%aDClaN!-"Z$h&
(f-fIB%bc2RV`"iT!L#c6pf3'MUNj8!d-mA5F()%!!RL5Hr!(8N#HrJSG3Hl5h69
3AH0*Prl5lb"-"fSbEBQekcF3!pae28D1%2"GmHYiCC)f3$4cd#23D*168[!Rl6%
)[0FP!*Z*`&N1NDhj!f5"H[!,$259D#jGi!&mD6$`AT%!2IJ!8U")a`,mUPpT9Ap
9'Y%jA(D!MY"krl69(G@$ZP!ID[Im!6S#p)d'hYUC(J%b83q5FdTHYSKP5ZHG[C-
QT8!4'!*23!S3JH!S!UaJBBfQU0),r1[$+SY(-aA)!P#J#!4(35-,9!LeKJ3ieeB
*hY-4*8MPT9DaM!,,+*!!r6&XEe8eX%ipJ&0C!d96!!3%X,S"pQ!1M)Jf`!&X`3e
i"04dq5*4)X"TNi$X`#1V3PhNL)b"XP8f)%J@8d)qk-$)H%YK3D4'*eAM&Ic,)L"
e"HiKL!4Fpa59J%93+1T"'FM!dB#RIS)@d&aN3+%``NP!(R`$"J+K6-S$5!,ei!e
`l8F`!kVf%J"@-5!pe!KQ@Jc5J,cN0%C'!#5CXR$4`J2l"3!m31SLEA@#0,$Z"j!
!!IR$3Rb",r8)LX!2X!0dB!VdMbba-6T''`JS!q91L*32N!!(TJ"`(&`V3("MNM2
J5QJ%"HJ(@1!"()&lF!ALL&T'8D,J$ic1dUNqdI+&H0EG%fql'Vh0f%E!3bN)$-"
P")$J$EaY4P@i!4i!"ib!LZ)"qr9eZB'!J!*3&!-J[p#!)M!),X0P"%m8-,eh'31
ihZ)%!`#!'f!#b-$b$J!S!`L!Eip`!eJ!,9MH-S!1L%[)-2l##3,!!4hKTb3!5G!
4R)N%`0)*B5-!J"&!"$U#!"m"(0!)*J35N!!$YJ)!1!'J-#N)QSi!9f4!BMJ)#8%
'Q!'Q!!"S!%8)i!R""U3"MJJ4KN&##!"9)#%!J3c3%5V$&ZJ)45!K9!&!)!#b3$S
!"S$eNfE&""!9ZD+eqSTK-IeU'l2B3Y1Lp@+,RR4T0X8%m"5MiP5XLTp8)P,%T4N
%cU),Y6SZVQcb16)`l@J2"@T#,m[jV5*UXaZ!cR#!@MB*"'48*(S26iXqh1,pF#,
I6(aijN*2"T2MrdSLSYK`UDpiq#NkJ*m8a*k@1PlRRLJHEbh&1j%2Eq2G%GEici6
!SGZFe)24AETK#HT@hDcEGDH41K#lClG4I!5fQd9rJ0bG%'DFq1$G-m0hK`Ij%VJ
P1G8Ph1c%R4cZa!dP',IMKYb5fhpm+FZ0ZGm"$0$F3S"cHflH&"l+`*!!S5p"JAJ
(J!N`!3S#-eINbMbD#frLVEF*!@PJ!0CmN@H&"X!!m0FflqBZJ`"`FfkHb%mi05I
RfY`)G[0NlM)'3!2!Ap-mR$F!3i$0%lRH,J63[*dcJ%)J@2*j3AJ!4d'Ekqe"B-m
E3$BRhJD!Q`X#K9l3"8%L(`$G[*pVmiN1d1ej2GIQ"S!"M(0[VXh$"b&3k2'mR)1
2L,l2MIG%9qB92CdAK!@`!&Ck5`m!,0fPbh5BrY*M1NfIk6BpTpIdRBl6HIT0rqN
k[DF,GD$Zdi-k84rU4MfT&r@PMY5CqP&rkNUpU8YeU1l8ScT9RqT@ACS(KC5HdT@
j9IrU96fXBh@Q,J!@J%1rkQJGV)reYCl@aATECqYUrDh,pD"HeXpk6+rV-Kf[ch@
hEY5eqNN2kHBmT2peIkl5RkjK2qb)2E%VpXA1f"ZlBhrXN!!pXN[fb8lC+lYP[qb
B[E%(6aJ3!J"!#&J,c[XIX)+1F!08!!'J+#$!'!3!"E!)X$F!S!,Mf`4JJmkq!US
J!fMY(3%-M1m9S1a%#e!3!Bd!*c4chGkq5F(b"J'-!!$SJ1!Z6VV$$9J"$'"j)i#
bF0Y"i4mBhbF!!9#8%0!B4!"ZGaRARAacJVe`!"3"!-!"had!,),ahC(h3J&B#qM
GY9q#mDd#m-(b2J$1i*RJpS3`#XCh#[J`iV)XH(H$J$,k1rQQ"hYK!+4!DV$Ha8Q
PFUMQ@l3B![d1#Vp"E1F(&'8%&!0aLGY,!*mHhab!!pK!"'!-!)!R#,Sb)!!JK1F
1"'cJ!(!("J'ZU!cj4Ek"`I)Z!%B!!'L"r4i!lTe$a3)8436)V`(r6(TmE+F%bhX
%i)6UhK3#J"2`lh4!ZYml3L$M!m!Cm1pi3,T["#CI%*cl"S!%34i,F(L%F"DFH`S
!'`F"$'+"4B!3#X*k*prJ)-MV!3k2[32!Qem"+%#k8a3QE`)#`(ahU)4JH5F!6!!
!j%(394RId+%LJZ@Y!-`lNrF$!F!L1&4'`1JY`3"3"iGH!0"UK`S*PVF$!!38(R!
,J#RJhj'm&@3%!3!6I(F"m!Mm1bCBhK#JN!"8php3$J6!*KMI+!!D6'pD`&T`Ha)
iiH3E$1`&#+!'!S!H51p*)!!i9&#`[#@!&!Me,U-++2X8B0ceS"F)p8FK$%al90$
XeB#i()AL"!j-HeE3l*-lNbmNI'$D`i*Qc`*93(S("G2qI31!#5!-3Md0f"R6(KF
Xl`RJ$!+!'6Md!!!F6(YHX,`V`,eRmPLD(8al'`m!+J!3@"G9(JFk9'+`[#m!9'$
b'U$(6hYN82%j!3$3"iFq!(#"DFm-PMF'm)"-[J5`h@N2$8bq+%Ll9Ei4+(X9!!k
@G`E3"G!q!'5#D8m0E(k*Cr)2)!#8JQR2$@bq02J+i&jPd)*TAr-"J!ES0%cqT`+
$D8m1PVF'm!!"!!mdH*@"GKdU1PMH'`$PirBP%!$i`E4R"f"I&!J!)T!!kBr!Y)F
(blX$%&dQA`9'rE5R"h&I(JJ!4b$M"3!UQ2Ef(3#!!&$2j+(*dRHSr1#qehXZrd`
%`!hB!+3Jb(Ym)Km''MrjaJ4l)3#)He8!#i8Lq5B(34kU%(QAiIPA`&2,9`kKm!1
!J9(D%8#5C`,B(J!8!XF20*+mQ,F!54m!8!,D$`'NqePKr+$!mDm!'K$N`B'iM!%
'SD8(rp,1$'`J$c$K1!$j!i#@[JTS2aa`rT'JSNMrPQi,D$mPS#Jm!*mcJ1d2!))
"lFF&c[q&U`$bc`aS2c`!rdZ!,j!!rf[Jq$F!)R$qbaX&N!$rP[$i#3&&f3'K!3P
!rV8$MTmVC32Y!0h!mCIm!3$iJ!"J!`!#%-!"Q!X3%YYI!$!!e(qm`!%i`N%"&D!
$32YK!3IJ#3!!#!%9S,T`!h!!N!#!$D3$R!0I339)!ML!J%!0T0cGHNa!"IJ#&)!
i!%@K!q3"#Z$d&`$S!2AIpkIFY3(24!9B""5!)+"bepR9J-PI!!!&&)!!AJj`$`!
!kem6Z!A8IqKIBr-0k3!9S"N!!h)!&%81m!NF'4@JS[,iB3-f8!k`hP%!&5!I82p
"!fQJGNB$9)#(3!%)(63fmGrie`4+![8I2f!$l3m!!"C3!AB#"5!83&(J!#bJ(ZJ
$SJ)&B'q(!i`&%%!&1!X8J#6!(mJ"f3!9S#m!!eD#jad41!FfJFP!rBF(r)%p!00
8!9)$p4m`B!2G!+'"$e!"IJ2e(bY!8G`!fF"J8!'U!r8I1l!+VRIkAa2BVMeqQ-!
U1-+*!0XI*26im3'cB"G3"#CrC9hp&qIG30UC"&!-@J!&)"if[[d!C#!cf#%pJ+I
Gq0ECH3$&))lbq-%#Xk""!!)8JcF!$-J!f%!fJ!RR#M+$2p%0d!+XJcI3#`!!p),
6R`$3"$Kq,!!a3&&`"`!!"mJ-BJ'1R`G!!P!80!!IX!cq!kf!!$!'m)2-`#aS`PN
!j&p@J,ceGJI!XiF2YR3,`!$3[L%$0P!08+P`J3ZJ"H!4RJ#4Ad@4!LQ#,9d)-!!
mJ2GJ"e8,C)26(`"!2cf!h&X(PId*J![J$H!4EJ$AA`Fe`Qf%)q"2#"Ce8"+"#d$
q03%[)5#!!)5%,"`aZ!"L!5rK(q!(GR$jJ1"(rSd"95%pJ""HHq$J!ZJ'9)Ai!%+
iiAf#0@%H8"A#!cB3$C!!rD'&,4f9C`2m!HJ!3XJ1NRq23&A)$P!8-S!$X!c@K*V
!56J&943&R&4B%jB#95(Sem%P"%3K,&!9JJ-fd!a3iT'%0H%Z8"9b!j'K3dF%N!"
raN"95!e%K[LE%N$q4309)4TB8D`&4J$ja`eiK"a!L`F!a!"((`p!rTd$(L%,N!!
"[SD1!!#`'5k!KPl`*,fpKJiG5`J!p!-HS3S!#pK!-3!8S2deJ3M!53J"8"3a`&R
"%rU!%d"a#!EB3$#!0J!!5!%9S!IJ%CS!!`E64!b`&K9J#X!D$SB`J%+)"&5!0)"
(Q!)JJd`6@&J"rJ#e)6"!8F!!caj,'!!S!HiK&)!GLQq8i3+!`Rf(U)!0p!+)!cG
3"3J'X)B%J)()kbQ&6H"hmYaj-`$!#`!96)F#SKhJ(K*r&D)eTam'!MmK,8"4[!"
S!!$!!8Kr+J-Mi"lQH49&L9MiTAVZ)3Z3!13p4&aH!%!+R)6-4VkL(BS!Sj!!2`$
MhBM"drXA%(J#V!@iGa3F"$F!#Z$kM@qc!&q3!2Xp!!6!FcI!$A"Z3+LA%'`!"-"
FU1X0F2fGBGM5BBQP(5[!$R)2AZ*J%#9b!+#!J5J$*)J,B!`3*@i!Rf'&Q!*K!13
I$a!PUJ$f&`$J!K"GF#%!F!5FLG1(RNJ+M)$NRa53!#Aq!FfIRZMY"BJ!J,j![Y%
#0P$K!3#)KJXJ'K!PSJ#US*k)%*b)#q!FF#P5!a4&#i!2r)8YR4p`+B+%!%!,J!Z
dJ!YJ)R!TPS@T)P4!&&)#Pq*HQ#TkL16I*h!TdJ-f8!XJ%XL'#k!U%#@Q!)*IUVM
,K)8eB5e`+@)$S@*C3"%ZJ-"!P-J#-!)8"3[!$Cahj0mb)#f#LP5JK5FF@J0h)V0
S%kk+dk(1%!jFLXHK6@J(%)S,i$e`+H)#eD)@B#*@J!*!P1J"Z)BX`*Ui%Hi8Pk+
BD"0QF"8J"R!T&SJ!`!T`p%')2Z!)F#QQK#X!*C!!&e5!,X#Pb!RB3#X!(%!"0S%
j`+8)#P!8+`"XabRkJ%6!TCJ#&SchhMRB"$i"Pb)Q3&'S!-H!@9!"DJ'ASK#S!Z`
#T')!8!CFLY3L&FJ"D3!9)"a`+3)#+q-Ki249J([!TBJ)V)bd'K"3!4S#Pb)KB!1
T!0YD&HJ$4J+A)KpJ!k8!P3UPk!0b!TGLH*J#Y)cki5P`+9k(!%!+d!S-M8fJ,(!
TiJ%843S`"MS!&@![F#RQL5R!'!#i9B$)`+ABK*50fTPq1!eFLQM!eAJ$D)90S$G
`+9S@CH04X#qQ!hGLcSJ#M!-fB39)I5@*bp3p'!cdJ!,L2h!T!RRhB(q(,#i!!S!
#%#@H!"(K26M#"BJ#3!9`+IU(pf!6-#mbJb$!T8J%f%!S3!hJ-M+$+m#PZ$AFJm3
L5qJ!AST-J!ed!X3$f#)c'!4FLNL!m'M#)BbJ)a0`*bD2$p`Tm$VQJeI!RCL#$!E
T`1fB$iS"Gf*[C`)NJ,jM'h!RBNd2A#"J#c+$H-#Gk"T##qaL2MJ)h)NmJ2!)%J#
,qD!MF#IL!$D3!!P`#jb2r`!`P!P%L5B!%%"4Q!!Fd,0B%i)2$YA%b"HJ$)cL!P!
!P(B8SJN``N9r*H%$Z3,%Mi-"XDJd,S!K`!0T!Sb#J`%)K#(DK"kN[eJ#,!2+(IP
h!eL3!-%M!&!#3'"1!2NR"(L3!2L!$93#d'UBi!,B"$b3!#S!"@"$lJ8ISmk!"AL
3!,BL#9!0!!"@!2RR"Mb3!"i!"NN#E(L4S%'J-q3"&Z4"5%M`J%aJ6IJ)2*!!+3!
BN!$K93*rSFkJ#AL3!(FJ#5!4[)-e)5cJ3C+$K%5jaM-ZJ,Z!"jNcMJ"#)pbi!"S
$"F!$'#L1!#`J"9N64J-mT(di`-8&Rb-!`!eBN!!XJ!dd![L&G1)#H!l`N!$53li
bjpQ40D%m`%-@La)!rLB0,S$p!!mTiZP"4FBEk3-L!$bN&4N"q!1%)hA)3h)$&%8
%3!kJM8@H"q""jS!"J6+3!21T!"iN$l#mU3"H3BdSFC&[3#-9U!p`H%YH!2",QJ#
cBd@abfJ!Ld!a181fEr"L3$!UlRK*JC2(49D1"N"'i,`9H8k!"mRa&B`fd)ZS"AL
3!%M!AX!$l!-khYERlhQ3!%c!AY!$c(G!J$ST"hL3!&&+@+#GaC0eRKrJ39)"Hi%
-X#V#!0pG!+!)H*!!@)"lG`%C!3'P*H""FJ%h(Y(&fJ8!E#`!!!:
---