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))!!!: