[net.sources.mac] ETHZ Standalone Loader.

bobc@tikal.UUCP (Bob Campbell) (05/15/86)

There are several bug reports which need to be addressed and this are
fairly simple.

1]  The wrong version of Streams.DEF was sent the changes to it are
    very easy to do:

    RCS file: RCS/Streams.DEF,v
    retrieving revision 1.2
    retrieving revision 1.3
    diff  -r1.2 -r1.3
    11c11
    < FROM FileTypes IMPORT ParamBlkRec,OSType;
    ---
    > FROM FileTypes IMPORT ParamBlockRec,OSType;
    31c31
    < 	    PB		:	ParamBlkRec;
    ---
    > 	    PB		:	ParamBlockRec;
    36d35
    <     OSType	=	ARRAY [0..3] OF CHAR;

    (This means delete the line which defines OSType).

2]  entropy!nunke pointed out a few features about the use of A5 which
    I had not noted.  A5 was being used as the global "PROCESS"
    pointer which points to parameters to the current Co-Routine. It
    is set up as follows.

    Process Stack   |
		    |                 |
		    | SysProc20       | Return to caller?
		    | Frame Pointer 9 |
		    | Frame Pointer 8 |
		    | ...             |
    -8(A5)          | Frame Pointer 1 |
    -4(A5)          | Frame Pointer 0 |
    A5 -----------> | 0               | I am not sure what this is Proc id #?
     4(A5)          | Stack Limit     |
		    | Parameters from |
		    | Parent process  |
		    | ....            |
    Because I didn't like the idea of swapping A5 before every trap
    call I don't set up A5 this way.  Instead I use the MacIntosh
    useage for A5  This will work for every thing except Nested
    Subroutines:

    PROCEDURE P1;
    VAR i:INTEGER;
	PROCEDURE P2;
	VAR j:INTEGER;
	BEGIN
	    j := i
	END P2;
    BEGIN
	P2
    END P1;

    Because of this programs run with the M2Exec program may not work
    correctly.  Programs run with the NewLoader installed in the
    resource fork should work ok as the 100H bytes allocated for the
    quick draw globals by the Linker are not being used and set in the
    area which would be used for frame pointers.  In the current
    version stack checking is not supported and also co-routines are
    not supported either.  This make the A5 set up that I use as
    follows:

		| Unused		|
		| ...			|
		| Frame Pointer 9	|
		| ...			|
    -4(A5)-->	| Frame Pointer 0	|
    A5------>	| Address of QDGlobals	|
		| Application Parameters|
		| ...			|
		| Jump Table		|
		| (Not used)		|

    When I provide support for Co-Routines I intent to place the
    missing stack limits (etc) below the Frame Pointers, and reinstate
    the stack checking (as Co-Routines will have to turn off the macs
    normal stack checking to allow allocation of Co-Routine stacks in
    the Heap).

I have been hearing rumors about the Current version of the MacIntosh 1
(or 2) pass Modula-2 compiler.  It is rumored to be done (see article
332@ethx.UUCP in net.lang.mod2) if any one knows anything about this
system I would like to hear from them, esp who would I talk to to get a
version of this.  Also I have spoken to people who claim that TDI (the
amaga version of modula-2) claims they will not produce one for the Mac
as the version Wirth is producing would leave them no market.

This file is a BinHexed Packit I file containing the Source, and
Compiled version of the "new loader"  To use the new loader use
ResEdit to create a Resource Fork on the M2Exec Document.  Use the
NEW option in the File Menu, and type in the full path to the file ie
VOL:FileName as in "MODWork:DecLink.LOD".  Then open the NewLoader
program and copy its CODE resources, and paste them in the new
document.  Then convert the File Type and Creator to APPL PROG (or
what ever you desire for Creator).  You then have a standalone
loader.

Bob Campbell
{dataio,fluke,hplsla,uw-beaver}!tikal!bobc

(This file must be converted with BinHex 4.0)

:#P"KBfY*G#j`DA3!8%P8)&"*9#!!N!3Qc3#3")Q!8%eKC`P1CAG-Ef&NCA)!"jR
#!!S!!!Rk!%$,b!!!m4!!!!R1!!F!3$2d!*!'S#-!!PhF!!%Jj!"!,()!)3!X!!"
"8&"-!*!%!3#3#3F!QX-MGCV&E0VXf!!!!3#3!`8!N!-%!*!%2J#3maJ!N!-S!!!
"!*!%#!#3!b!!!$mm!!'Tm!!!!TS!N!-"5IS#BN+X!!a$q!N3+8N!%MPm!*!$&KP
m!*!$'KPm!!%!'b!m!!!#$+%H)8J!(%2k!L`LL%(k!LkJ!%TX!""R!!!%UI4"qJ)
H3rS"pL&*!#!KI!#3!mi!,M&m!!%!,#&m!*!$"!!NS!*"qJ(k3rS"hL&*!#!KI!#
3!pS!,M&m!!%!,#&m!*!$"!!NS!*"qJ(@3rS"XL&*!#!KI!#3!q!!,M&m!!%!,#&
m!*!$"!!NS!*"qJ'b3rS"NL&*!#!KI!#3!q3!,M&m!!%!,#&m!*!$"!!NS!*"qJ'
13rS"HL&*!#!KI!#3!qJ!,M&m!!%!,#&m!*!$"!!NS!)J1J&5Saj+3'F!!!5Tp#)
)!S%!rj!$3IS"5##"*%(9qJ%X)$S"-*!!ZJ%N3IS"3%25)8N!)#&k!4S!,M&m!!%
!,#&!!#5J!LKk!4JU$#ik!3j"qJ%D3rS"%L&*!#!K4`!Z-A`!!3!X)A`!N!-#!#5
J!P5(-$S!p!a!!!PR!!!@3IS!l+!")(S!hU!IfIS![%k8UI4"qJ$B3rS!d#&*!#!
K4`!Z-A`!!3!X)A`!N!-#!#5J!P5(1$S!XJ4%!!T"qJ#Z3rS!TL&*!#!K4`!Z-A`
!!3!X)A`!N!-%!#5J!PL(,$S!L&5(*M`!N!-#YN4Z!!!b3IS!HN2k!()K53!J)8F
!,M&m!!%!,#&m!*!$!J!NS!*8KbC-e[S!8YZcD!"8Jf$+9)G"qJ")3rS!3#&*!#!
K4`!Z-A`!!3!X)A`!N!-#!#5J!P5(B!$r,!#3r`#3R`%!N!-&!*!$"!#3"$i!N!N
F!$i!!%024%8!!3!+!!$rrb!!N!J"rrmN!!!F!*$r!*$(L,C36@&R$8jPGda[B@4
PFLj"FfeV#J!!#IS!3-[)!!$a%!!!#Fi!"`"!-r3!N!DJ)`!#AG`!!5$N!%!XFJ!
K!#`!!&4&@&404848!3#3"4@H!!!"l*QR9*UDlU@l(3ml)&4SDA-JDA-JEANJ6Q9
h)%a[B@4PFL"QEh)J494)@L"0Ef4eE'%Y-L"3FQpRFQ&YFb"TG#"MB@iJBQ801b"
TER0dB@aXC@3J5@iJG'KP)(*PFfpeFQ0P)'C[FQXJEfBJB5"PH'9M)%4[Bh9YC@j
d)(4[)'eKDf8JDA301b"K)(0dB@jNB@a[EQ8JF(*[Ch*KE5i01`dl)%NJBQ9XD@9
fC5"dD'&d)(4SC5"ZB@eP)'pQ)(4SC5"XBA9ZBfKPC#"QD@aP)'Pc)'PZ)%0eFN&
`6Q&YC5`01b"KEQ3JDA-JEfiJG'KP)'4PCQ&eE(3JGQpXG@eP,Jd0)*!+58j$6&9
%45#3!de%8c%k6@&M9(*KF(-Z4!dJN!T*6N0-984&)*!$6846-6T8EfpX4A&e,N3
0)*!+58j$6&9%45#3!de%8c%k8hPc4A&e,N30)*!+58j$6&9%45#3!de%8c%k4P0
&FA8Z4!dJN!T*6N0-984&)*!$6846-6T0B@08FQ&`Fbj%$3dl)&*PB@4-EfjR+%C
TE'8X6fCQFf9d,%*eCQCPFLNl$6X0)*!+68&$8NmJN!95C@&N6'pZCb!J4La2CQB
X3R9QCQ9b)$d0)*!+6%9")*!(HdCp,%%`$5#3#Na&35#3"hY#G@CQCA*p,%%a$5#
3#Ne29N8Z6##3"%%a,'P[3R9QCQ9b+%%`+3dJN!T06eC&,N`JN!4l6fCQI5aTEe"
[FdpQCR0PG#K"-#N0)*!+68p@45jA)*!%)fCc4R*[E90dBA*d,'P[8'pc6@pNC5K
"-#N0)*!+68p@45j-)*!%)c3XD@p5CA&$Eh9ZG#K"-#N0)*!+Ae*PB@30)*!+I!d
l)&*PB@4AEh*N+%CTE'8X6fCQFf9d,%*eCQCPFLNl$6X0)*!+68&$8NmJN!95C@&
N9fpbC#!J4La2CQBX3R9QCQ9b)$d0)*!+6%9")*!(HdCp,%%`$5#3#Na&35#3"hY
#G@CQCA*p,%%a$5#3#Ne29N8Z6##3"%%a,'P[3R9QCQ9b+%%`+3dJN!T06eC&,N`
JN!4l6fCQI5aTEe"[FdpQCR0PG#K"-#N0)*!+68p@45jA)*!%)fCc4R*[E90dBA*
d,'P[8'pc6@pNC5K"-#N0)*!+68p@45j-)*!%)c)XD@p5CA&$Eh9ZG#K"-#N0)*!
+Ae*PB@30)*!+I!dl)&*PB@4#G@CQCA)S4La2CQBX3R9QCQ9b,&0THQ8T1`dl$5#
3#Ne"3e*2)*!&8Q9KC%*eCQCPFL#3#NBX6fCQ,%*eCQCPFLa6DATP)$d0)*!+6%9
")*!(HdCp,%%`$5#3#Na&35#3"hY#G@CQCA*p,%%a$5#3#Ne29N8Z6##3"%%a,'P
[3R9QCQ9b+%%`+3dJN!T06eC&,N`JN!4l6fCQI5aTEe"[FdpQCR0PG#K"-#N0)*!
+68p@45jA)*!%)fCc4R*[E90dBA*d,'P[8'pc6@pNC5K"-#N0)*!+68p@45j-)*!
%He0THQ9p,'P[8Q9a3fpeER3S36!T$5#3#Pp5C@&N$5#3#R`01b"06d496%8J6Q9
h6'pKC'9b1`dl)&C"8Jdl)*!*8h4KFR43EfPZG$T"4%4549061b!S+L"3EfPZG#"
dEb"UG@e`)(4[)*!,+LN01b#3#8a[B@43EfPZG$SJ384%8N968cXJ+#SJ8'pTER3
JGfKPFQ8JG'KP)&4PH(3J8f9RE@9ZG#"cG'&bG(-J+LN01b#3#94PH(42CQCcCA3
k384%8N968cXJ+#SJ4QPXC5"2CQCcCA3JG'mJ9'9iG##3%LST$6XJN!P'DA*cG%C
bC@8k)%&%4&*&8e-l)#JU)&0THQ8JEfBJ9'9iG#!V)%4KG'%JN")U+3dl)*!*9'9
iG&0THQ8k)#""4%4549061b!S+L"6DATP)'pQ)&4PH(3JN"NU+3dl)*!*6'pKC%p
QCR0PG$T"4%4549061b!S+L"2CQCcCA3JEfBJ6'pKC#"8B@*XC5#3"bST$6XJN!P
%BA4K8(4b1L#3!d&%4&*&8e-l)#JU)&"[D@jdCA)JG'mJ4'&dB5!V)&4PH(3JN!8
U+3dl)*!*4QPXC6SJN!C3BA*KE8*XDcXJN!SS+L"'D@aP)%4KG'&#E'pMDb#3$5S
T$6X0$8jPGda[B@4PFJd01`dl)*!*4QPXC5!k25"2F'9Z+%0eFN&`6Q&YC5a5C@&
N6fjXH5Nl$6X01b#3#9p%C@*eCfGPFJdJN!T-48%JN!G'D@aP,%%d$5#3#N0-8Lj
-)*!&D@p$Efe`E'9dD@pZ+%%d+3dJN!T-48%JN!G$GA*"F%jKE@8X36%0)*!+68p
@45j-)*!%36%XD@p'D@aP6Q&YC5K"0#N0)*!+68p@45jA)*!%)c!XD@p@8Q9Q6R9
Y+%%d+3dJN!T06eC&,N)JN!3M-#aTEdCTE'98HA"P+%%d+3dJN!T06eC&,N)JN!3
MCR05C&"PFQdXD@p3CA*YFh0Z+%%d+3dJN!T06eC&,N`JN!3M06)d,%3`$5#3#Pp
1CAG3G()0)*!+68p@45j-)*!%36!XD@p2Gfj#G@BS36!T$5#3#Na&35#3"dCTE'9
#G@CQCA)X36%0)*!+68p@45j-)*!%36!X+%%a+3dJN!T-48%JN!G'D@aP,%%`$5#
3#Pp2F'9Z$5#3#P469#jA)*!&D@p5CA0eE(3S363T$5#3#N*&85#3"d!a$5#3#Pp
&H'Pd9'p6D'9XE!e!-3dJN!T5C@&N6'pZCb!J4QPXC5`M*%0&,&0dBA*d8'pTER3
0)*!+8Q9KC%a[EQFJ)%CTE'8X)b4%35a'DA*cG%CbC@80)*!+8Q9KC%a[EQFJ)%C
TE'8X)b4&-#a-Ef&N8'pTER30)*!+8Q9KC%a[EQFJ)%CTE'8X)b4&0#a8CAKd6fC
QFf9d$5#3#P*PB@4-EfjR)#"'D@aP,#-N46JX6'pKC%pQCR0PG!dJN!T06eC&,N`
JN!4'DA*cG%CbC@8X4$!JN"!l)%&XE'pMBA4P)%ePE@pbH5"QEh)JF(*[Cbi0)*!
+AdjPGe"dFL#3!ba$E'9KFJdJN!T88e3Z9b#3"83`$5#3#N*&85#3"d!b$5#3#Pp
&H'Pd9'p6D'9XE!e!-L#3#%e29N8Z6##3"%%`,%3a$5#3#N&14%NZ6##3"#-N-$"
'N!BX4$%JN!ml)'0XC@&b)'9iG(*K)'*TG(-0)*!+6%9")*!(4'&dB9"dFLa"-##
3%MXJFf&fC5"KC'4bCA0c$5#3#Ne29N8Z6##3"%3a,#K"-#N0)*!+68p@45j-)*!
%4$%X36)0)*!+384%35j-)*!%6'pKC&"[D@jd,%%b)*!%1b"-Ef&N3@4NFQ9cFb!
p)%4KG'&3G()J+b"-Ef&N8'pTER30)*!+68p@45j-)*!%4QPbFh4'FQ9P,%3`)*!
%1b"6DATP)$dJ4QPbFh3J4R*PC5!Y)%a[B@3J8'pTER30)*!+8e9#,N`JN!9-Ef&
N8'pTER3X4$!01b"5C@&N)'PZ)(4SC5"`FQpRFQ&Y$5#3#P*PB@4#G@CQCA)J4QP
XC5a8CAKd6fCQFf9d,#K"-LNX4$!01`dl)%4PBfpNC5"-Ef&NCA)J9'&LE'801`d
JN!T06eC&,N`JN!4%BA4K8(4b,%%d$5#3#Ne29N8Z6##3"%%d,%3e$5#3#Ne29N8
Z6##3"%a[B@42CQCcCA3X4$F0)*!+8Q9KC&G[FQ3J)%CTE'8X4$FX9'e`9fpbC!d
JN!T"4%44,N`JN!3M-La%0`e!0L#3#%e29N8Z9b#3"&4YF&G[FQ3X4$!JN!Sl)%4
[CA-J9'e`9fpbC#!p)%p54#K-Ef&N9'&LE'9'E'&R+3dJN!T$69!Z9b#3"5-N-$N
X4$!JN!dl)%P')%j[G#"dD'9Z)'4[EQ8Z$5#3#N*&85#3"d!c$5#3#Na&35#3"dC
TE'8X36!JN!dl)%0XEh0P)%CTE'80)*!+Ad0XEh0P$5#3#Ne29N8Z6##3"%CTE'9
#G@CQCA)X36!JN!Fl)%CbC@8J3R9QCQ9b$5#3#Pp%DA0`Eh03G()0)*!+384%35j
-)*!%8h4KFR43EfPZG#a"0##3"cXJ3f&XG@aKG'8J8h4KFR3J3@4NFQ9cF`dJN!T
+8e)JN!FS363T)*!31b"$B@aX)&"bEfGbB@d0)*!+Ad9iDA48Ee0SC@aX)*!51b"
%EfjP)#KPH'Pd+3dU)%9-8d803$-JN!K5C@&N9fpbC#!J4QPXC5a%0ba8EA"AEh*
N)*!&1b"5C@&N)&0THQ80)*!+384%85j-)*!%)c)X4$F0)*!+68p@45jA)*!%9'e
`9fpbC#a%0!dJN!T698)Z9b#3"5-a-#a%0##3$MXJ6R9YBQ9b)'pQ)'9ZG(*TCA-
J+L!b)$dJ4$3J,5!a-!dJN!T5C@&N6'pZCb!J4QPXC5a%0ba8EA"AEh*N)*!&1b"
5C@&N)%*KFf8J3@4NFQ9cF`dJN!T"4%44,N`JN!3M0#a%0`dJN!T06eC&,N`JN!4
8EA"AEh*N,%3f)*!+1b"%0L!k25"#BA0P$5#3#N&%4&%Z6##3"#-b,%3h)*!21b"
6DfP`)&0PCfePER3J6R9YBQ9b$5#3#Ne29N8Z6##3"#-b,%3c)*!21b"'6e)J4$-
J1MdJ-L"86b"%0#"%6`e!0##3#%008#jA)*!&4$3X4$-JN!ml$5#3#N*(9##3"d!
e)*!51`dJN!T5C@&N9fpbC#!J4QPXC5a%0ba8EA"AEh*N)*!&1b#3"9*PB@3S6fC
QFf9d+3dJN!T"4%44,N`JN!3M-La%0`dJN!T06eC&,N`JN!4"0#a"-`dJN!T"4%4
",PFJN!48EA"AEh*N,%%c)*!+1b#3"8%c)$Sp)%pQCR0PG#!V)%4KG'&3G()J+%%
c+3dJN!T"4%3Z6##3"83e,#K"-ba%0Lj-+5#3#$XJN!9"C'TeFh3J6'PZDb"3EfP
ZG#"LH5"%BA4K8(4b)#K%05N0)*!+384%85j-)*!%)c)X4$-JN!ml)%914#!S+L"
'6e)J+LN0)*!+3P*")*!(3$3JN!J03$8JN!K"4%44,N`JN!3M-La%0b#3$cXJ8fY
TF#"$D'9MDh0eE3dJN!T5C@&N9fpbC#!J4QPXC5a%0ba8EA"AEh*N)*!&1b"5C@&
N)%jPH(3J5f9j$5#3#N&%4&%Z6##3"#-b,%3h$5#3#N*535#3"d!f$3e6G'&bG&"
[D@jd)*!+4%-Z6##3"M!06'pKC&"[D@jd)*!,4%-Z6##3"M!09'9iG%pQCR0PG##
3#N4$,N`JN!B`$8CTFR0d4R*PC5#3#d4$,N`JN!B`$94PH(46DATP)*!-4%-Z6##
3"M!06'pKC%pQCR0PG##3#N4$,N`JN!B`$84KG'&3G()JN!e%3bj-)*!'-!e'D@a
P3R9QCQ9b)*!+4%-Z6##3"M!09'e`9fpbC##3$84$,PFJN!B`$94YF$*AEh*N)*!
-4%-Z9b#3"M!04QPXC5#3%%4$3Lj#)*!&D@p44@a6DATP,$!JN!N0)*!+48j%!!!
"!*!$!C)!N!15!*!$@Np@45jA#50'4N0269!V4Np548dX,5K68#N0#8T68NC3$3N
Z48j%63d0#5j038056`P'8N9053d*68p@45jA#50'4NP19#Y'6e*&65`Y+&03+3d
*5P054P!0#5j&6N40$3d*,Ne"3e*2#8C548e-$3P06eC&,PF*)dC'6%j(+dC28N9
0,#dS8e!T$3P+8e*'8!d*,N914%d0$6XYN$X01b"-EfGL,Jdl,C!4!*!$H!!$!*!
$5!"3!*!%![!#J2rFrq`#p!+8!3)&+!2m!!%!N!0)!&!!N!3#m!+!!&!!)!+!$)!
!'!!"N!-!N!-"*`m!!3!"!!)#*!#3-3S!#3C0EfjKBfmf!*!$"!!&!!S!!!%!N!-
"NJ#3!j)!N!0D!!$a'!"k!*!$(!"D!!*&8&*5!*!$'N9'6P3!N!-Q494"3J#3!c)
$k[rr!*!)!q[rr`#3!h`!!B#N!qcrr`#3!iS!!B#m!AK36@&R$NjPGda[B@4PFLj
-D@jV#J!!#IS!3-[)!!$a%!!!#Fi!"`"!-r3!N!DJ)`!#AG`!!5$N!%!XFJ!K!#`
!!&4&@&404848!3#3"JX!N!5CTeHDQYl8QE"T6Q9h6'pKC'9b$554#e"0B@F06Q9
h6'pKC'9b,NeKF'X+!!!*qJ"!bmJ!!2%3!!!*cJ!(!%!cp!#3"U!M!!*Gh!!")13
!3#ab!#%!,!!!9%9B9%e&4&3"!*!'$3#3"*V$)h5DhY5'fRJ0$8jPGda[B@4PFJd
0HYe36@&R$8jPGda[B@4PFLj5C@aV#J!!#IS!3-[)!!$a%!!!#Fi!"`"!-r3!N!D
J)`!#AG`!!5$N!%!XFJ!K!#`!!&*&6%*"8ddJ!3#3"3Bc!*!%QVGDLjV&E,IJ`!!
!"4E$$8jPGda[B@4PFLj"8dh$$de%8c%k6@&M9(*KF(-Z4--06Q9h6'pKC'9b,N&
66F,$$Ne%8c%k9'p[E%9aG5j%``e1CAG-Ef&NCA)Z3900`X-06846-6T6HA0&FA8
Z4--06Q9h6'pKC'9b,N&66F,$$%e%8c%k4P0&FA8Z4--06Q9h6'pKC'9b,N&66F,
$$de%8c%k6@&M9(*KF(-Z4--06Q9h6'pKC'9b,N&66F)$!!)!5F$(`N*#V%)!$-*
#3rK##4$#3LP*3J!5`N)jI%)!!%)!&X*#'Aa#!!"#!"V#3KPm3J!"3J!E`N)J2%)
!!%)#$-*#S4l#3L&)3J!F`J-!!`"$`-I#3L+)`J-!!J""`-I#3U!!`N*+E%)!%-)
$!!4"Cd%!F-*#UI6#!`!#!%(!am)$!!8!3m$(`N)K58)!)-*#)Aa#!!"#!-j#!#l
#3M&m3J!"3J!X`N)KI%)!!%)!"%)!*-*#S!,#!`!#!%(!am)$!!B!3m$(`N)K58)
!)-*#)Aa#!!"#!0T#!#l#3M&m3J!"3J!X`N)KI%)!!%)!"%)!*-*#S!,#!`!#!%(
!am)$!!F!3m$(`N)K58)!)-*#)Aa#!!"#!1"#!#l#3M&m3J!"3J!X`N)KI%)!!%)
!"%)!*-*#S!,#!`!#!%(!am)$!!J!3m$(`N)K58)!)-*#)Aa#!!"#!14#!#l#3M&
m3J!"3J!X`N)KI%)!!%)!"%)!*-*#S!,#!`!#!%(!am)$!!N!3m$(`N)K58)!)-*
#)Aa#!!"#!1K#!#l#3M&m3J!"3J!X`N)KI%)!!%)!"%)!*-*#S!,#3L!k!`!'F-*
#Sal#3NT!`J-!#N&R33"``N+Tp-*#)JM#3J+"3J$r3[rr`J-!#`""`-I#3L#"`N)
N3F*#eIS$!!G``N)J1J-!"R$#3T!!ZJ-!"h$#!`!#!%(!am*#3p,#3L&*3J!J`N)
KHJ-!#("#!#l#3M&m3J!"3J!X`N)K3%)!*-*#S!,#3LKk!`!,F-*#+Jc#3Lik!`!
*F-)$!!)!3F$(`J-!$!"$`-I#3L&*3J!J`N)K4d)!,X*#-Aa#!!&#!#c#3L&m3J!
!3J!#3J!N`N+J!X*#9)I#3M!k!`!-F-*#$%"#!!R#!`!13@G"!($#!`!#!%(!am*
#S!(#3L"k!`!$F-*#S"r#3YRk!`!&F-*#6T6#3URd`J-!!J""`-I#!`!-!%2!am*
#)8P#!#$#3L&(3J!Z`N)aI%)!!8)!,-*#)Aa#!!"#!!*#!#6#3U!#`N*8Km*#1$S
$!!a``N)%4%)!#X)$!!)!3F$(`J-!$!"$`-I#3L&*3J!J`N)K4d)!,X*#-Aa#!!&
#!#c#3L&m3J!!3J!%3J!N`N+J!X*#@)I#3L`k!`!-F-*#9)I#3LBm3J!!3J!#`N+
f4-)$!"""EN%!F-)$!!)!3F$(`J-!$!"$`-I#3L&*3J!J`N)K4d)!,X*#-Aa#!!&
#!#c#3L&m3J!!3J!#3J!N`N+J!X*#9)I#3LC-`N,@qJ-!$($#3YZc3@K"!-*#9)2
#3@""bX*#9)I#!`!#!%(!am)$!!`!3m$(`N)K58)!)-*#)8G#!#l#3M&m3J!"3J!
X`N)KI%)!!%)!!N)!*-*#S!,#3P5(`N&J33"#rbc#3J!!3J!!`N)!!%)!!-*#!!"
#!!$#3J!!3J!!`N)!!%)!!-*#!!"#!!$#3J!!3J!!`N)!!%)!!-*#!!$#3J!!`J#
3!f!b`X!!%J!!!TB!N!3+6%p"4%p'4P0&9!!*!!!#9!)&)c%`3$%!"!#3!d3#"5-
a-%!b!!S!!!%'!J8M-6"!-`!1!!!"LJ)%4NP-43!#!!!#C!)&)c%`3$3!$`!!!H)
##P4&@&424NC6493!#!!!!NJ#"5-a-%!e!"!!!!)B!JT69%&59&"258j8!!8!!!*
!!J8M-6"!0J!0!!!"DJ)*6N9A6%p"4%95!!%!N!3##NC*6%9#98C'49)!!`!!!P`
##&4&@&4659T&!"%!!!*3!JK869!b9dp54!!5!!!#BJ)*6%p"4&"258j8!!F!!!*
%!JP'59*69%C5488!"J!!!N`#"e408&G28N3!$!!!!Q!#"d4"9%&39&)!#`!!!PJ
#bGK34@jNX))!!!: