20m'Ȇ0&H'+3'&aO9קҧa5 '4§5Z& 0 n- Can't read IPL eH_0ZmX'+' Z&Ŝ9+&& Z&Ŝ9&'c99%@'!m'HOJ&ҍm'933D'9'P'݆ j&00.0- Not Linked - Nucleus I/O Error - Bad Nucleus TSC-PASC '$X'$TSC-PASC'$|X'$PASCDEFTXT(SPREFIXTXT(SPASCALCMD)SNPASCALBIN)SNPASS1BIN&)SNPASS2BIN5)SNPASS3BIN90SNPASS4BIN'0SNPASS5BIN!1SNP6809BIN 51SPRUNCMD  +1SCOMPLEXTXT cCOSINETXT  cEXPON2TXT  cGRAPH2TXT  cMINMAX3TXT  cPRIMESTXT ! cRECURGCDTXT  cSETOPTXT  cTRAVERSLTXT cXREFTXT  cRUNTESTTXT cGETDATETXT   c * * Pascal Runtime interface equates * _sysfns equ 256 _enter equ 18 _start equ 3 _exit equ 6 _endjob equ 9 _newline equ 12 _new equ 15 _range equ 21 _index equ 24 _pointer equ 27 _case equ 30 _pushr equ 33 _pushs equ 36 _cpyr equ 39 _cpyset equ 42 _bldset equ 45 _addr equ 48 _subr equ 51 _mpyr equ 54 _mpy equ 57 _divr equ 60 _div equ 63 _cpystr equ 66 _initv equ 69 _trunc equ 72 _conv equ 75 _abs equ 78 _absr equ 81 _negr equ 84 _lsword equ 87 _eqword equ 90 _grword equ 93 _nlword equ 96 _neword equ 99 _ngword equ 102 _lsreal equ 105 _eqreal equ 108 _grreal equ 111 _nlreal equ 114 _nereal equ 117 _ngreal equ 120 _eqset equ 123 _nlset equ 126 _neset equ 129 _ngset equ 132 _inset equ 135 _lsstr equ 138 _eqstr equ 141 _grstr equ 144 _nlstr equ 147 _nestr equ 150 _ngstr equ 153 _cpytag equ 156 _andset equ 159 _orset equ 162 _subset equ 165 _indx1 equ 168 _indx2 equ 171 _sqr equ 174 _sqrr equ 177 _subrng equ 180 _pshcs equ 183 pag (**********************************************************************) (* S T A N D A R D P R E F I X *) (**********************************************************************) CONST LINELENGTH = 132; TYPE LINE = ARRAY [1..LINELENGTH] OF CHAR; CONST IDLENGTH = 16; TYPE IDENTIFIER = ARRAY [1..IDLENGTH] OF CHAR; TYPE TEXT = FILE OF CHAR; text = TEXT; CONST MAXSTR = 10; {Length of Alfa strings } TYPE ALFA = ARRAY [1..MAXSTR] OF CHAR; alfa = ALFA;  TYPE PROGRESULT = (TERMINATED, OVERFLOW, POINTERERROR, RANGEERROR, VARIANTERROR, HEAPLIMIT, STACKLIMIT, ABORTED); TYPE ARGTAG = (NILTYPE, BOOLTYPE, INTTYPE, IDTYPE); TYPE ARGTYPE = RECORD CASE TAG: ARGTAG OF   NILTYPE, BOOLTYPE: (BOOL: BOOLEAN); INTTYPE: (INT: INTEGER); IDTYPE: (ID: IDENTIFIER) END; CONST MAXARG = 5; TYPE ARGLIST = ARRAY [1..MAXARG] OF ARGTYPE; PROCEDURE MARK(VAR TOP: INTEGER); PROC EDURE RELEASE(TOP: INTEGER); PROCEDURE RUN(ID: IDENTIFIER; VAR PARAM: ARGLIST; VAR LINE: INTEGER; VAR RESULT: PROGRESULT); PROCEDURE SYSTEM_DRIVE(VAR C: CHAR); PROCEDURE WORK_DRIVE(VAR C: CHAR); PROCEDURE ABORT; "TERMINATE PROGRAM I MMEDIATELY" (* PROCEDURES USED TO MANIPULATE ABSOLUTE MEMORY LOCATIONS. *) FUNCTION PEEK(LOC: INTEGER): INTEGER; (* READ BYTE *) FUNCTION PEEKW(LOC: INTEGER): INTEGER; (* READ WORD *) PROCEDURE POKE(LOC, VAL: INTEGER); (* WRITE BYTE *) PROCEDU RE POKEW(LOC, VAL: INTEGER); (* WRITE WORD *) FUNCTION ODD(X: INTEGER): BOOLEAN; FUNCTION ROUND(X: REAL): INTEGER; (*********************************************************************) (* FILE I/O DEFINITIONS   *) (*********************************************************************) PROCEDURE __GET(VAR F: TEXT); PROCEDURE __PUT(VAR F: TEXT); PROCEDURE __RDX(VAR C: CHAR); PROCEDURE __WRX(C: CHAR); FUNCTION EOLN(VAR F: UNIV TEXT): BOOLEAN; FUNCTION E OF(VAR F: UNIV TEXT): BOOLEAN; PROCEDURE __RLN; PROCEDURE __WLN; PROCEDURE __RWF(VAR F: TEXT; DUMMY1, DUMMY2: INTEGER); PROCEDURE __RWFS(VAR F: TEXT); { SHORT FORM OF RWF } PROCEDURE __EIO; PROCEDURE __RDI(VAR I: INTEGER; WIDTH, DIGITS: INTEGER);  PROCEDURE __RDC(VAR C: CHAR; WIDTH, DIGITS: INTEGER); PROCEDURE __RDR(VAR R: REAL; WIDTH, DIGITS: INTEGER); PROCEDURE __WRI(I: INTEGER; WIDTH, DUMMY: INTEGER); PROCEDURE __WRC(C: CHAR; WIDTH, DUMMY: INTEGER); PROCEDURE __WRS(S: LINE; WIDTH, DUMMY: INT EGER); PROCEDURE __WRR(R: REAL; WIDTH, DIGITS: INTEGER); PROCEDURE _FRESET(SIZE: INTEGER; NAME: LINE); PROCEDURE _FREWRITE(SIZE: INTEGER; NAME: LINE); PROCEDURE _SRESET; PROCEDURE _SREWRITE; PROCEDURE BUFFER(VAR F: TEXT); (* TURN BUFFERING ON *) PR OCEDURE UNBUFFER(VAR F: TEXT); (* TURN BUFFERING OFF *) PROCEDURE PAGE(VAR F: TEXT); (* OUTPUT FORM FEED *) PROCEDURE SETBIN(VAR F: TEXT); {Set binary file mode} (***********************************************************) (* STANDARD FUNCTIONS  (TRIG, ETC) *) (***********************************************************) FUNCTION SIN(X: REAL): REAL; FUNCTION COS(X: REAL): REAL; FUNCTION ARCTAN(X: REAL): REAL; FUNCTION EXP(X: REAL): REAL; FUNCTION LN(X: REAL): REAL; FUNCTION SQRT(X: REAL): REAL; FUNCTION RND(X: REAL): REAL; PROGRAM P(VAR INPUT, OUTPUT: TEXT; VAR PARAM: ARGLIST); ~'~';~'b~'s~'w~'~'~'~(L~(~(~(~(~)~))~)T~)y~)~)~ a~)~ ~)~)~)~)~)~*~* ~*~* ~*$~*(~*,~*0~*f~*v~*~*~*~*~*~*~+ ~+1~+U~*<~*C~*J~*Q~*X~*_~+~+~+~,=~(m~(~( ~(-~'~'C,,- ------.T...//'/@/<.//^1.NPASCAL   @CMASCC@SME XSXSX*lhOVERFLOWPOINTERRANGEVARIANTHEAP LIMITSTACK LIMITPROGRAM ABORT error near line #  Y =& =M&4  =M&%  =%+} *CS9 =4 =4  =_ ӷ *CS    * CS 9y '    % y y y y z &t v   CSj 0H+a+4'*'Y&Y&R&K&D49&4O9'9&#&&49*9O9_' Ȁ G&2 섄 BDF9'_'ՠG'! $#XDVfZf[f\f]f^| &X *' E|  _!GDVfBfCfDfEfFz &Ķ +$lGffAfBfCfDfEfF BICGE^]EC\[CAZYAĢXĶ $ccAcBcCcDcEcF '  +.ABCDEF'3jG&z x iFiEiDiCiBYI*AG' Ā4} &9G9$' _'OG_G 덗 *O"Gw_'6M'OG_ G CGffAfBfCfDfEfFv T *%`E^]EC\[CBZBYX9P8 D$E]EC\[CAZYAĩXffAfBfCfDfEfFv v v v v v v z &9 B D F O_BDF99 X%8 ] \#[ Z YX% iFiEiDiCiBiAiy y y y y y y z "'' ] \[ ZY X O v ccAcBcCcDcEcF903H X ꊀXX ķ 銀ĦG9lF&*lE&&lD&"lC&lB&lA&ML*lGĀ493ZBDF$'*CSjGXI*m*9G903F'I%File name syntax error: 46U'&Z&569'''5''2"5p''' '2dn54`30%34F3' 2n5`54`30%34F31''2n2B5f''5n`4dįd54Vf@'0%0턮0oo.f5d%4d- .d5461. TTT701!/52p4p0f36&6&6&6&54dd d50h44443l2h4Pd-m.fZd54@b-L(z.E\0b54@b-2.+\00b50'9+4d- .400d5(04z(&!2p4vh036&6&6&6&5Ά)(5 z)(&4v3j7&7&7&7&h5v294"fTTT4o)j5705i312h\32htO32hgB362hZ4vhh1.54Vfooƒ.f5 32f#32z4d,CSd5֦g'䊀 - ' . - ' . 99- ' . - *Z' . |2-l2'\2.L2-<2't,2.od4o0e&Z&lo5b"52 ]94o0e&Z&lo5b"52 ]94!ol0e&Z&jo5b"52 ]94o0e&Z&lo5+Jb"52 ]94"TTT4o570& b52]94Vfoo.f54F3f7NON7NON7NON7NON7NON7NON7NON7NONd5F294F3f7NON7NON7N"ON7NON7NON7NON7NON7NONd5F2,:94F3f7CSNON7CSNON7CSNON7CSNON7CSNON7CSNON7CSNON7CSNONd5F294vO&o /SS%!SM& S% &SSO hj5v2b95Q& &+  #&4 jZX3-h43-*& h;\`5 2je'o g̦g& ?& A M9_54 ZX3-&b5 ^90S.50H#PO:5 &I 8$bX.P.$L'>.PKb'.'! ݦ$ SS&t2dCOQ@bφ&  2d_@fOm&7;_&)@H3x4@D444 1"54vO hl5v2d94vkhl5v2d9 0O/ 0O4vd` hl5v2d94vjŦkhl5v2d94f4'4 5df52b9@OƆ &?4oZX3-J'*-\`b&W&;`\%&X6' & \%X`54ZX/3-'J&7& &$&;X` `\% 5`94X`$ &C X`50%Go ]>' J4 J4^J0O\\'\4^^J0O\  XLVXX0Z0V4 ?4N04b2bV ?V&TJX4T. 4=TT 2bL, -4&  4XTT-T0Z0O4TT J4 \L0O^^''\JN0^\\L0O^ \JN0 LJ40 f44J40 `44p xJ40 Z44\ dJ40 T44H PJ40 N444 4N40 4L44 4J40404 4~> 4eJ4>'<> 4A0 4Z& 0 4H 0 4=0 44440^4L4J4R^44N4b44Z'5 40 [40\4 \yc4\Yc'  %&70^4"L4J44|L0^L0. "L40 44KL4J44;7>& 0 4,B0zBBz'| 0|40^4^' 0 4=08@0:40 440@0z0BBN,B4&a0O+'7,B0BBN,B0BB ,B0BB2bRPHFDBL0T*&b00O+&KZZ@. '>(88>>0| P0O' >> >/>0|0O.Z4>0|0OpZ '> - < ><040Y44J040|44704094<4 N'\040|4<4040 4<>4 @L'0404<>4|::00O' :: 0404 <4|0404<:4aL'0404<:4@04(0@40y44#0@40|440@40W4<40 0@4( 8 88'0&4 4(BEx>'v40)4444_404444E04>' 04>' 04>' 04>' 04>4'2Z4N';P'40|4 444 404444 40444N40dB$>'JZ4D4B'GH'L' 04 04 L' 04 04J& 0 4 04|J'L' 04 0444>4' ZP44B'&04&04&>' 4g 404& 404\ Pascal Compiler V15 05/13/83 Overflow Pointer errorRange error Variant errorHeap overflowStack overflowAborted : line Try again PASCAL, pascal source[ assembly-file][ +options] Delete old assembly-file (Y/N)? /bin/pascal.passes/Source file unknown MEIllegal option: sysprefxflex-prefixprefixasmb .a +slo= >/dev/null +3000 +a="tsc" >/dev/null +2000 +a="tsc"kill .aFile name doesn't end in ".p"! - assembly suppressedtemp1temp2npass1npass2npass3npass4npass5 lib Psys bhdr $8C lib Pnorm bhdr $8B np6809np68000 lib Pend end _begin TEMP1TEMP2Compilation errors Pascal compilation complete. $|p' 404 ', B  , B4䝜@2b, B4䝜@J2b, B4䝜@00!00"00#00$00%00&00'00(00)00*00+ 00, 00- 00. 00/ 0000010020030042b *LJB/J00J00J004J00J004J008JXVVV0Z0X4 ?4N04b2bX ?X&VTT-T0Z0O4TT VTT. 4TT D 4G 4J &C4J4Q &J, -4 4J4Y2,000Jb ^^.^0004[^^ l4J4r'J4gr4J4r'J4Ay4J4r'J4 4L44J4r'L4J4 4N44L44J4r'N4L4J4  4J4b;4J4V^JGV4^.^L004^^ 2b^^J0O\\'\4^^J0O\  W0@4L40>4J4 44X4J X04f c04[ X04P M04E B0!4: 7014/ ,0J4$ !0U4 ֮4$@*2bEJ40d 䝍 ^V/m^'g \Z\&^VZ 1\Z40d ᝍ ^4^\ \ZZZV/\Z^4^ ^' Z^^LE &خJ 4R, RR 4bR 0d B V/o0\ \ \ 40d B ^^V.30Z \Z Z^40d B Z\^^ Į\ V P2b q2~ 4Y'0 4 -V P  4NV2b2b 30pd 4 ᝊ ' 04 04 JR V0d 4LB L0O0004Y  L4J4TT .\TL0ORA`4RZf'(T0V04R4A4b2b4a4b2b T0V0RT `T 0V4J4/.0144^0-44P0)44B0%4 440!44&044044 0440440 440 440440440440440 P44044~044p044b044T044F0! 448044*0440440440440440440440440440 @44044044044t044f044X044" J044<044.044 0440440440}440y440u440q440m4 040i440e440a440]4 4x0Y4 4j0U4 4\0Q4# 4N0M4 4@0I4420E44$0A440=440944054401440-440)4 40%440!44044044044|044n0 44`0$ 44R04 4D04!404"404#404$404%404&404'404(404)4}04*4o04+4a04,4S04-4E04.4704/4)04040414 042404340444r'0HXX=4X4Z9, ZZ a0Z\9, \\ C0\^9, ^^ %0^`9, `` 0`p'1`4^4\4Z4 4 &Yq 4$fd$f4p04$'rr;44Y^GV4^.4^^ 2b4K08'4K00' 4K0'04s0!0!<0؝'jhnlX0`^\Z0*0ĝ*0ĝ$0$0*0$~~0*0*\\.+0$\-0*\\ 0$0$0* 0t*00ZB \\.\000\\ 4R  & .I ̝Z48`' %Ҏ 94404b2b4b2b '44K0!6404b2b4K00X' %0X!0!6404b2b4K00X'G_0$ԝ''.&&>)& l.& n & 4K0X'0$ԝ' 4 O0X!0؝!x'.0X!0!6404b2b4K00X'؃0$ԝ'EZ4eZ' & 4K0X' C[+&+C -& ,0$ԝ' 4 J .'֎ 9404b2b44b2b 0$ԝ''&- أ   &2'4HJ' CS 44E'408404 00!0P',4N &/4.0P!0!60P' 0X!08!l' 08!0' K'0X!0P!<0' 50P!0!0X! (6420.,*(&$" Z'T.4T0̃0? T0̃04T. 40̃0 O4X 04T4PV XX &.XVV0d 40ZB XXV0d X0D\0$ԝ'0d 0O0004LV&4P4 =V4PV1&* .&!45 &@j^ c4-c4 c'^r# ֝$' j _h'P4, B4hfpdX0`^\Z  j"Z4 Z0' &} "Z4Z'& 4r .}Z4 Z' & }Z4Z'& 4 -E$<4+n',4d^n 3.&^ ,4 )& /4 4#a=&44^ 048=& 4 >& 4 !44^Kc=& 4m "4n4Yd'M 4 .& 4}*&lb*&)&b  &T Z4b'& 4N m  4l'/4l +4t^.4d*4Y4N^4> ^4.^0$ԝ4^' 4 4&^_4T4I^49/4.4#}4N4*U!+Pe,+ #~|zxvtrpnljhfdb`^\ZXVTRP$<' 40:480>4>4$6$22b6'0,^$;-=-0ޝ*0,I$.-0.*0,8$ -0Ν*0,($+-0*0,$-0*0,$1-0*0+$*-0*0+$-0~*0+ם$-0n*0+Ɲ$$-%-0^*0+$'-(-0N*0^$0+$&-0N$0>*0+y$-*--0.*0+^$-*-0-0*0+C$- - - - -0*0.$0$0*0+ $ ----->-0$0*0.$0$0ޝ*0$0.$0*0*$,-0$0Ν*0$0*$.-/---0*0$0*n$--0*0$0$0*0>$0~$0*0$0$0~*0* $-.-0n*0* $- -0~$0^*0)$- - - -0>*0^$0n$0N*0^$0)$0-0>*0~$0n$0.*0^$0$0*0$0)q$3-&-0*0)Y$--------?-@-A-B-C-D-E-F-<-H-0*0($?-A-0>*0$0 $0ޝ*0$0$0*0($4- -0*0($5-6-0$0~*0~$0(}$5-0n*0$0$0(\$0-.-*-0^*0^$0(9$--1-0N*0p$0.$0>*0>$0($0-0N*0$0'$7-0.! *0'۝$--0*0$0'$ ---0*0$0$0*0$0.$0*0$0$0*0$0'a$0-0*0$0'H$8-0*0 `$0$0''$4-9-:-7-0ޝ*0ޝ$0&$4-0Ν*0&$" --- -!-"-#-0*0&$---0*0&$-----0*0$0$0*0$0$0~*0$0&O$/-0 Pn*0&<$---0^*0$0&$/-0N*0.$0.$0*0.$0# $0ޝ*0%$)-0*0%ϝ$-*-0*0%$- -0~*0%$--0n*0%$*--0^*0$0n$0*0$0%]$0- @--*-0*0$0$0*0n$0%'$ -+-0Ν*0$0% $2-0*$  ^^J0O\\'\4^^J0O\  0$4L4}0$4J4n 4404J0 0$4g0$4[0$4O0$4C0$470$4+0$40$40$40$40$40$40$4t0$4h0$4\0$4P0$4D0$480$4,0$4 0 $4w0$4k0$4_0$4S0$4G0$4;0$4/0$4#0$40$4 0$40$40$40$4 y0$4 n0$4 c0$4 X)BLV`jt~",6@J R\fnxnx>4$0"I$-*2b0$$4;M40J$<' S0J$<' 40J$X88 b40$0$H2'40$<&+ 40$W<' 40$F4n0J$0^$0N$0$0P*4%40P$)0^$<'&<$& 0P$ 0P$Z%40P$ 0J$0$0J$^{0J$0N$0P*4&40P$0N$<'&<'& 0P$ M 0P$ &40P$ <)& 40J$0~$0$.0J$0Ν$0$44 0J$0$ (4<*& 40J$0J$0~$ 0J$ ,0J$0>$0P*40J$0N$0*40P$0^$<'%<$&0P$I 0P$40P$z <&&0$ 40$[0N$<'0J$ =0J$0$0P*40J$0$0*0P$44<& 40P$0P$*4@<*&r 40P$40P$0$<'0J$0ޝ$0P*40J$0ޝ$0*0P$44'<& 40P$/0P$:4<*& 40P$40P$!0$<'<G&40J$0$0$<'< D0J$0J$0J$0J$&0J$0J$ }0J$ t>b`VTRPNLJHFDB@><:86420.,*(&$"  | 40J$444U0J$0$440^4<+&h 40J$4<&Q:^740J$0Ν$<,& W4^4 0J$4 4^4 ?0J$0Ν$<,&  40J$0$0J$[4q<-& 40J$0$0J$42 `<-&U '40J$0$z0J$i40J$0$0P*<4& 40P$10P$2  40P$10$<'<.& 40P$ '</&  40J$0$<-&s  40J$0$0J$.4 &40J$0$#4<1& 40J$* /0J$0$0P*4 40P$<'~0P$4 404><0& 40P$0P$44 40P$0$<'<*&O 40P$|  '_<&0J$D0J$0$0P*40J$0$0 *0P$c4 4<0& 40P$0P$pd4 4f4j<-& 40$0$J 40$0$<'<*&\ 40$ 'e4W40J$0Ν$g4 4Y< &  40J $0n$0$0J$0$4<`+& 40J$b0N$0N$0P*40P$/L4FJ40P$0>$<'<.&a J40P$ 'Lg& 4<0&, J40N$Zq0J$4$4|0J$0$0*40P$4 40^4g<0& 40$0$4^4<*& 40$ 40$0$<'0$0n$0P* 40P$N4L4G  L40P$y0n$<'<.& L40P$0 @'<&L4:4 J40N$L440J$0N$0P*4< 0P$J 0P$ '(<*&e 40P$ 40P$0N$<'0J$0$240J$0$o<2& 4 00J$P0J$0$440J$0$ 4x<*& 40J$0J$0$240J$0$<2& 4![ 0J$0J$0$0Ν$0P*,40P$ 44340P$m< *'D0J$0$Y<0& 40J$0$0J$0$44 4|<*& 40J$0J$0$0$0*440J$0Ν$< &ZX40$<&& =#^ "^0$440Z4<0& 40$<40$T<3&!\4')4  \0$\44^4Z440$0$<'<*& 40$ XX'<+&h 40J$$4 <&; 40J$0ޝ $`0J$0$#%4<1& 40J$2 0J$0$0*^40$@40$0$<'<*& 40$ ^^'40J$0$0$<'< x0J$ 0J$0J$0J$`0!J$0J$%0J$J0J$0J$0J$h0J$0J$ H~|zxvtrpnljhfdb`^\ZXVTRPNLJHFDB@><:86420.,*(&$"   0<<&"-B<S4, B004")4<< &0J$0$0P*0P$ 0>$' j4 k4y(40$0$<'<0&0P$ z+4: . [4 4c+4 #0$<'<.&, (40P$Y )4'%<+& (40J$) &Ac4Bc' (40J$A&*S4, B004)4X 1B&(S4, B004!w)4%S4, B0$04O)4f<C&^ ^S4, B^004l4߳0J$:)4ߤm4ߜqS4, B004ߺl4e0J$)4Vm4N~<^"x0J$0$0*< &5ZS4%, B004Gl4*40$ +4)4m4<.&^E& \  \S4, B\004*4ޅn4}+4u0$+4e)4]<+&ߏ #40$ T<+&@s^E&\ \S4&, B\004M)4 (40J$e (40J$W0J$0$0P*40P$ t40P$K<4&&4ݞ0J$'4݌ (4݂0J$ )4t40J$0$Ν$< &*4C}^0J$0$0*0'$Z+440$0$<'<.&3 40$_ ^^'<+& 40J$;0J$<1& 40J$ 0J$0n$0*ݱ40J$%0~$0^4,4^4ܚ<5&݂ 40$0$(40$<6&/0\4.4\4^4ܪ<0J$-4\46 -4^4(0J$0^$0*40^4u0Z4n0J$0N$h4^4X<-& &p40$0\4-/4\4۫0$0440$14Z4ۅ4)0$0^$<'<*&T 40$ XX'24^4Z4ە<1& 40J$L0^40\4z-4^40J$0.$,4\4<'`7& 40J$0$0J$.4^4\40^4-4^*4ڃs0J$0$o<8&Y 40J$0$~0J$7,4^4=0J$0Ν$0*40^40\40J$0ޝ$S4434٢<(P4& 40$0$44x40$6<9&ڑ '<:&ڄ+7 40ޝ$0J$0.$T54^44\4!<7&9 40J$f0J$4^4\40J$0$0*^)@484آ0$0Ν$M< &+Q4؃0$ R4s<& V4cٝ94X^^,40$0n$<'<.&j 40$ 'e<7&A 40J$0$f0J$\\^.:4\\ >*00J$0$40J$0$80$<'a< 1=^ >@^ 7?^ 0A^ )<^ ">^ B^  -#;4>x0J$ ^4.S0J$0$0*440$0$<' ^<&C D ^0+ $^'4ֽ40$M0$<'~;4֚0$<'-< E F G נ !.40$E0$%4?40$0$<'s0J$0~$0*40$40$0~$<';4,0$<'<< #H^ ,I^ %J^ K^ L^  40$H^0$&^4r40$"/0~$<'{40J$0$0$<'}<`Y4Th_4:4RBV[4:4@0D-]4:4.20J$<(0J$0$<+& 40J$"0J$JN4ԕO4ԇ0J$0n$0P*40P$#00$<'0P$0$,-<,&{p460P$go4' P440P$0$<'<.&-7 40P$d40P$}r</& 40J$<   S440J$0Ν$>40J$0Ν$$1< &Q4a0J$R4R M4H0J$0^$0P*40P$S4 4p 40P$.0^$<'߮<34,0P$T4 4534 0P$0N$0*0$U4ҩ 40$90$<'<.& 420$ '</&ӛ 40P$ V4FӀ ` 7 40P$/!40J$0$ޝ0$<'[< BW4:4. DZ4:4 6X4 ,\4:4 ^4:4   !40J$W434.:Er@>8>4Ϙ ****** Pass line Sequenti0al programDeclarationConstant definitionType definitionTypeEnumeration typeSubrange typeSet typeArray typeRecord typeFile typeI/O argumentStack leng4thVariable declarationRoutineProcedureFunctionWith statementParameterBody1Statement listStatementId statementArgumentCompound statementIf statementCase statementWhile statementRepeat statementFor statementExpressionVariableConsta5ntPrefixInterfaceUniv modePointer type syntax6c.b, B nh, B4䝜@n2b, B4䝜@J2b pL00 vJXVVV0Z0X4 ?4N04b2bX ?X&VTT-T0Z0O4TT VTT. 4TT  4p^^.34^^ 捷p &C4J4ppp &kJ, -4 4J4pp4J4'J4:' 4P44<4:4J4'J4 :' 4P44<4:4L44J4'L4J4 :' 4P44<4:4N44L44J4'N4_L4J44N4L4uJ444N4L4J4}40^4J4^440^440\4J4^4\440^4 40\440Z4J4^4\4Z440^44^4&^\^GV4\.40Z4Z4\\ 2b40<4:^^J0O\\'\4^^J0O\   M0/4L40/4J4 44<4J0/^4g0/e4[0/n4O0/q4C0/v470/{4+0/40/40/40/40/40/40/40/40/4  v0/4 k0/4 `0/4 U0/4 J0/4 ?0/4} 4#-7AKU_is{ >4$@*2b94<4LJ 70/l4 <0/q4 10/x4 &0/4 0/4  4/ JL J0t4 2b VE0^4N4^40LJ aN4042b4J0L2b pL 4J0 {E0^4N4 ^40JL L4J4ٮ 40JE :0>4Ю>4$2b'p0*o@0ڝ* 0*0ʝ*&0*^^.^0t^^ 444444444 `044$0R440P44 0440T440\44 A0Z4450X44)0V4404P44d04\44S04V44B04R44104R44 04Z4404T444P4 P4a4P44P 4V44? 4Z44. 4\44 4R 44 4R444\44444]4Z4쨺,  4, @04J2b04 ^4^-7^040t4b0B2b^^ 2b2b,  4? 0,  4J 402bJ404䝜 2b  쨼'Q,  404N040tB2dN0t 4LJ2b E40^4^'^W4^]' ^4^0t4c4Z'AZN4'\ 4!^ 0\4>^4\4J42b04^&䝜L' 44! %䝜\^L' 4\42b>40^404^0t440$2b'4Kb bb^2d LE N^^'#^4L& ^ ^2b &4  [E0^^4JL& ^ ^ gL0tJ nEL^^'^44b4J4^2b x0cJ}0J04&   2b4442~d' 04&Į40440$2b'u cb0b04bb04b Jb0b04b 1b0b04bb04b  42d44 2b40^4\^'^0t4 ^&\ ^444 K^444 8'\  \  2b \\'404\' 䝜 䝜^2bE04&H0t40^4e&\\4^\2b\&^2b2b4 EV2~':2~40ڝ$2b'40L'0^4J4^44442~P'22~b02bE0^4^402b E^\Z04& \Z 42b04&(^^\]4Zc'4v 4l2b0X4̮X40Z44Z4^4\4m2bE0^4z^04^4?'E0Z42~' 2~^ ^0\4\40 ^Z442b7E0\4s0^4^40 \V44}2bDE 40^4~^4 L2~' 2~  ^^L.p2~'S0440 2b4b4442b ^^ ^E40^4^40\4+ 4^4rfE40^4/ 4Z n0J40$*0*^4& p 2dxE0ҝ*40^^4^2b444H2~'0 0ҝ$0$' 40$0ҝ$`0*404b042b4p4\..0J4$0*2b2~'04&^W4]' 4 '0ҝ$P -0ҝ*' 4  4}2bE2~O0  44E40^4\0Z4^'^0t4z40ڝ$2b' \ 4 h^4Z4@4p K4 A&XX'XX XZ 4z 2bZ40 \ 442bE40\44\4d0Z4^^\.Z0!42~')400Z2b44 2b^^  44L4U4J44{042~'X2~04'#44r44 #0J44"?2b J4 4/쨺'H44E04쨾'0^4 ^2~6's2~S4'0쨾'4A44倮44 )0^4^44#2b 444쨺'G.E0Z440\4J4\4\^^-d^04&=40Z2b4b4v0t2b^^ \D4$ J4 A4S42~{')044 ]04&)& 44 4. 4$2bh!^04&'^ ^^'4䝜2bv04&^'4卮4JG&G4bb04b &R44 J4J2b J4?2bJG' "04'4䝜2bE\04&)&\ 4^b04b2b \2b\'\&4r#444 W^4#44d4&40 4&4 &# 2b2b2b404%44(04&T(4b4^^`4^ȝf'^  4i  4I2b!40^440\4$VV.V000\VV 0&0ZZX ZX0&s04000\&0004b  4iX/X "Z,Z2bu)%4^4Z4X4:ZVVX.V0004VV \4E\04&c4 &J0^4׮^4/440 04f2b^4献44 \2#b \2b\' 4M4W/44މ&E04&W4&4^ ^F4^4$b'4G4bb^2b2b J40$^04&!4& 4 '^2b 42bF4^4oJ4$J4 /EJ'04L4ObrM4b4d45K%brN4b4ܷ*brO4b4d(4b *b04b (b04b b04b J'2K^\\'!\4T4b44{\2b I^^44f4V mbbL04&pbH44 E4ubJ'S4g $ )2deE40^4Z\^0t440$2b'^X B P\ٮ04I444bJ4b42b'`  Z2bZ'4|XX4\4E40^4 *X04&54 &Z XZ2bZ4^40\4 X2bX' 4 \444L444i(P04&;4 &$L4b4d4b04b  +2b x2b4=J44ق04&]4 &b04bJ4d41 + &b04bW4)@d4 c2b \2bJ44$2b'L ,LLL2~b4L2~b4Lz2~b4zL iL a&L 2~b4TL C&L L )L "*0 gntz 040B^X4 -r0 q0^ s^ l^ er^ ]2~04i^ >2~04J^ ^ + ^4N(2b'^^4N4ّ \\ \ .\ jk \  \ jk g^/ \  \ jk  \j&4 *d" v, }R, B\000t442~M'/04440ʝ$2b'q ]bb04bb04b Fbb04b /b-b04bb04b  b42d*޺04䝜2b2ކ00N44Գr9K04䝜J4b042b-D 040^4M4^4J4ԅJrL0[4ӫRݓ014䝜4b042b]P040^4O4^4.4^& r r^hnE404 4[B4zG42t"444 yY4bnZ4Wc]WQK/4d@(:%4ӄ/@4$]4 D4 444҈634$443444ܼ.4R~9x-4m+40W*4:L,4ҺAb;5/h)44l6{ 7444E44t84&4D'44Ң54s24hQ4<4RA4Gw(qk1640`C4IU=4J44:4;4)#444[444:R?45>4!4\4yR?424Oo߿ic443S:4<H44894!-14"~4).4L04pqi)6YXXS3NDs# *skz?dS}$$j+K-sQBp~lT{'%wn'/44Ԯ>44 72b>4ѝ ****** Pass line U4nresolved routineAmbiguous identifierCompiler abortInvalid constantInvalid subrangeMissing argumentNot a routineToo many argumentsLabel value too largeInvalid labelAmbiguous labelIn8valid with variableNot a functionInvalid name 5pusageInvalid selectionInvalid subscriptingInvalid callInvalid pointingIllegal standard I/O argumentBad nameInvalid resolutionToo many levelsToo many operandsToo many unique namesWITH statem9ent complexity errorToo many variant ta6`gs% , B , B@<!, B4䝜@<2b, B4䝜@J2b*JXVVV0Z0X4 ?4N04b2bX ?X&VTT-T0Z0O4TT VTT. 4TT 6 4>:^^.44^^ 捷?> &C4J4>>F> &kJ, -4 4J4>>N4J4'J4T<' 4644>4<4J4'J4 `<' 4644>4<4L44J4'L4J4 n<' 4644>4<4N44L44J4'N4_L4J4|<' 4644>4<444N44L44J4'4N4 L4J4 4N44L44J4'N4L4J444N4L4 J4444N4L4J4E0^000^턮^4䝜0NL J 2b E0^L000^턮^4䝜 J2b E0^L000^턮^4䝜 J2b E0^N000^턮^4䝜NJ0L2b<04444$'2b46̝: 0*0t*0*04䝜0 2b0T*00*0D*?0*0d*0!00044̀44P4444444'44444444 444 4444400044444 44" 444 4444 44 44 4444 44 44^^J0O\\'\4^^J0Op\  04L404J4 4# (4>4J04g04[04O04@04404(04z04 o04 d04 Y0 4 N04 C04 8 `ak.,*(mwx44$@$ *2bA444 44_K4V4440\440Z440X44\4 PZ4X4Z^X4^.40\4\4^^^ 2ba40^4 84^4\^GV4\.40Z4Z4\\ 2bj40^4J4^4Cp40^440\4J4^4\4k @v40>4<4d- 4440800 4004J0'0000 4d-" 4440800 40040000 4d- 4 0440800 6- 6660ԝ4J''J,4J  "  2b60ԝ4̮ 2b66 LJ-LJN 4YLN J?4L. LJ9N LN4# L`4J`'LJN .LW4JW'LJN 2~L4JCS4XNE0^4^&40800E0^4p^4䝜00 4b0 4 & 4?E0^4^4䝜4b04& 0 04b000䝜2b4b0 44b0 440800440T$2b'$ W4 ]' 4g  4[2bE40800^440\4 \4䝜^02bE40800440T$2b'2|d 4f 442^ ^ 42b408004Z4' ^' 4b^Z^\ 440$2b' Z Z2~^4d4\2b440X4X4䝜0\0Z2b6E408004 & \@^ \@^2b440Z4uZ4䝜0^0\2bPE &4C0^4$^4䝜002b[40800440$2b4^2b40\4\ZZ-J4Z08004䝜2~4^42bZZ 4\4k40800 440T$2b'& W4 ]'4 4^40$2b42b4408004䝜2~4^42b4$40800460ԝ4b^'   b042~4^42d44_40800460ԝ44ң^b4^2b/b^2dE0^4^4䝜0' 0 04080 04Z40$2b42b40^4^\\-Q4\08004䝜2~4Z4aҮCS2b\\ 4^4\84\.B4\08004^2~4^4Ү 2b\\ 2b҃484EJ'8/ 4`0^4M KN0^4^4䝜'  Ю2b064'44'444 ^4^EJ'9Z4080040d$2b'444J44044`84080040$2b'4 40\48\84080040$J440D$p2b'Z Z2b^^\.04^08004䝜ZJ2b^^ 44' ^ ^^4.#' ^ ^^414080044b4d4f4`h4'9442b;4i4464 CH40^4^0004&4b4d4  444ꙮ& B @B2bT4408004P]Z408004&$&4b4 4e 4[2b44e40^4^'j^0004ZZ  \ . \ ' \  \4b4d4f42b  4@4444080044b4d4)Z&140T$2b'0';4b 4d 42b=4H44 40800440$2b'^ ^ 4b4^42b44040^440\440Z42~444^4CS4\4Z4a44҃J4UE0^4ɮ^4䝜2~44@ҮCS0$2'  4 44>4҃4'/4 .4-4p440800J4A40^414 4^4 4&X14 4B4 400044b4d4_2b 40^4144^4 444440^440\4144\4 4S4^44E40^40\44 4\4&44^4d42bEJ3& 440\4\4J4b4d4f4D' 22bJ4o40800 E#40800\4440800Z44Z4!Z4'X X2b\440T$2b'54b 4d 4X4 54444㳮4b4d4%2bZ44b4X4 '&X @XXB2b440800Z$E0^4^4"&"04b4d4f4h4 :4.0P24E4u44<4Ca4NA4@B45 4~'4#sD4hc+4ZTN4~C 444-a'?4B4B44&4444,4!4@404-$4tn4c4X74M#4}B<(4l1+04X4O*4߯ $49zL"444G4"p&4%4%tztnh44C4R9L44>8!4-(:4 4޴4ީq*1434w*#]`jv^<yuN&ie~1iapRL11Z9*"cH9+@|a8wen'44Н ****** Pass lin$e Invalid nestingAddress overflowInvalid function typ'eRecord enumerationLong enumerationInvalid index typeInvalid member typeInvalid parameterCompiler abortOdd length string typeInvalid resolutionInvalid tag typeRecord pointer %typeE, B , B, B4䝜@2b, B4䝜@J2bJXVVV0Z04 X?4N04b2b X?X&VTT-T0Z0O4TT VTT. 4TT  4^^.54^^ 捷 &C4J4! &kJ, -4 4J4)4J4쨀'J4/<' 4&44>4<4J4쨀'J4 ;<' 4&44>4<4L44J4쨀'L4J4 I<' 4&44>4<4N4 4L44J4쨀'N4_L4J4W4N4L4uJ4]<' 4&44>4<44444N44L44J4쨀'%44N4L4J4!m<' 4&44>4<4444444N44L44J4쨀'-44.4&N4L4J4쨞4 & "쨜0442b쨆042b쨄~<04Ǯ4$$ 쨀'2b0$--0>*0̝$----0^*0^$0$---0*0^$0#$----0n*0a$-- -0N*0N$0.*0:$----0*0$--0*0$-----0*0$- -0*0ʝ$--0*0$--0Ν*0$-- -0$ޝ*0쨂4042b4 006 8:00؝B00ƝB00B00B 44^^J0O\\'\ 4^^J0O\  70t4L40r4J4 44>4J 70F4h <0J4] 10L4R &0P4G 0T4< p4$0ҝ$-*2b4 & J4a40 B Z4 Z' J440BJ4v 44 40^404^4~ `44 CJ \J U &J J =J 6 J /4J  0'^g c4 c'^A40$2b'^#섮44b P2b&44b2bZ^ 4 4b2bZ440Ν$ 2b^ \44b2bZ4Zந4Z^ '^  mkige}_[ S &C 040>$2b^ "4 @0^$2b^  ^^'4O^JR40^4(4^4 \^?4\.40Z4Z4\\ 2b[40^4J4^4Va40^440\4J4^4\4~ 0g40>4<ru44b044b040 4b044b04'/쨞0B4쨜B40Bb4#4b4d4f4h44Ʈ $4쨘4V4D444 &b䮈 C & 4b4d4 -44d4f4i    d44b44b044b0 440 4b044b4d4Yw440$2b'䮈 k &4b4 42~d4f4Z D44d4f4B42~g 42~zX   &  "40.$2b' 44 J& 40Z42~p\\' i440$2b'E2~^J'&^& 4b 4 4^4 4Z4q 42bJ'40 4b044b044b04􇍨440ޝ$2b440Ν$ 2b440N$2b'  4 &4 &,4b4q "4b4d4f4# 4|2~'& 4JJ'4쨜B2 2~q'C40$2b'4+4Z''4"'440^44^4R+V40^424^4'240^44^4840^4 4^4=ύB?40B642~;'Jf40\440Z4 4\4Z4\^^Z.40X4X4^^ Uh%44[!4a 4𮨜40\4444\440^44^4440Z44Z4}oyJ4-{h2~'Y 24J42~S ?4J4 4y *4  .40B2~`'Y 24J42~ ?4J4 4 *4  类40B`2~'Y 24J42~K ?4J4 4q *4  &40BܮZ𮨞440^$2bந444b2bZ'444 440BZ40>$2b'42~C! 4Z40>$2b' 4+ﮨ섮44b2b&ٮ&"J44뮨40B&"J4440BZ42~'_J\&\ J&\ J'4\44^K40B^ 4 4p殨Z4Z'44 4ٮ40B석Z4석Z'J44W 4싮40BA섮44b2b&&!J44940`B QZ42~k'/J44^40B^ 4M 4C'4אַ40B 4î40B44444 #40^$P2b'C&04 44b2b'46J'L4m 4! 40B44 Z4 c'4b42~k2b4 &9 &4b42~1l @"4b4d4f44쨜B#44b42~4쨜B)40B444z0^쮨44b4N&  ^=6400^440\440Z44^4\4Z4c40BZ42~_'FJ4&6^^40$2b'4% 4W4^J^40$ 2b'444gEN404?4LqZQvl4:aH[4P1448@:4/)4+4*4U4444!4S44<4?v)4)k4`4UBO4D> 4 34T(4"454!41444,4d.lDYc aR c[eL-ud!@8q^@jq6}TSW ~'쨚4 ****** Pass line Compiler abortOperand typeNot a variableNot assignableCharacter array element used with VAR parameter3A,, B , B^^J0O\\'\4^^J0O\  4JXVVV0Z0X4 ?4N04b2bX ?X&VTT-T0Z0O4TT VTT. 4TT J, -4 4J4E4J4VJ4NXVV0Z0X4 ?404b2bX ?X&J,-4VTT-T0Z0O4sTT  4V#J4N^ ,.^ 4)'4!^4'4+0*4J4 80'*4L4 4^^J,g^^40\40'\4^J,,4^ #\ ,\ %\ \ \  0'Z/`c/il/ruJ/{J\^^.;^0<4\]4Z'\2b^^ \/&0(4\40(4\0(4 ^^.^0<4 ,0(f4 /0(b4 $0(]4 0(X4|  0(@4] 0(=4R 4$44 4 ' 0(4 0(4E2b^^5J L #L L L , 0<4NL042~J4x J  &2b ":* 8(  /D0<4  ": 8  2b̃J:'7*0<4K0&x42b!: V8'7(0<40&:42b8  h4A49'0${'K0%40%4.$04',4 ' h0" $0P*0%4j0%4..0P0O4h',4> 20%"4J49J0<4'p[4Ϯ440$44Z4 '0$4# 4']4z&'[4]#4N4^ x4CS4b2b,)44NGV^0004 40$4 !4 `0$4 {']40#440#4$  x4CS4b2b,)44NGV^0004X 4b0#x4 !4M0#f4 o ?'[4 0#A4']4 P:  l2b  4L4 4J4C  L0<4J*L'4'D&0"48 &&0"4L4e 0"4L4V:L*(L' @41'D Z4Z'0"'4L4 0"4Y0"4L48  L(  2b0<4Z4Zb4Z'2bJ&0!44\ 0!44L 00<4JuJ &44::^'44&+ 40! 470!4*: R&44: 4&44 &  4]4 4v0 4: z4&!0* 4 4 0 .4: KJ 2b̃440<4 &&Z4Z' 044< 044,2b20..4 B0R4  I0O4 >0L4 30I4 (0F4 0C4y {x̃Q4 G041 N04& C04 804 -̃44e04  '$!̃ ̃ +4宨 B04 I04 >04 304u (0{4j 0w4_ 47 >J'.L,L^ L^JZ4^]'^^ L^^N TEL ^Jd\\/^442b^ \d\2b  aEN^L\\d/^^\d\ ^\00J mEL^J\\d/^^\d\ ^\00N|J68:4'004J48NLJ 8 s4404CS4!8:8>4$<$:$2$00404b4:8642.,\^ ^.^000\XI\^^ 04=040}0404^^.4042~4^4\4Z\4^^ 2'WU.40k4@,40p4+40k4 40p40~4^40(/8*/:6' 6'4404@؝';2'&4W80440 H04 N04  B04 604 *04 04 4;,, t B04x I04m >04b 304W (0}4L 0z4A 24444S0D444444 (0<>044442~44h40<0<4CS4b2bW4Z'|0<444NGV^0000<4Q0<^4000 0<B2bZ4֝Z'0< 0<40444k044442~4440<044E'e0<4Z4Z' 04b ,44E0?44044pg2b 404444{44k&I<'04m4Y4Q ''044m04&U<'0444 4'0 440404`} !0444444440L4444<' 054p02440)44n<'90<'&4404!4 4|0 44 q44U4Pe ẽ44804̃ ;̃44 04̃t 0h4444C4430D4B4.0844I4b44{0 404@:44J044:04444044̃0444404044{&]44*440l40g4 0d4404448 80H4̃,̃4444(044&]44{4404!0404D4444 8M04:̃}̃ 444 4Oy044&0<&-0<040<CS K44 0(4=0!4004#4444 )04\̃4444}044K &:̃44y044=4444+ 504̃̃44440`44&:̃440=44`]4444 x&704M̃Z̃  4444b 8&04̃Ṽ4444(R044&0<4̃44\Z4Z4Z'AZZW4\'(ZZ4Z0004b2bZ\ \ !'4404% PZ-!0404ZZZ/#0404ZZ 44442b 504̃̃4444 0n44&0<4̃44 "\Z4Z4Z'AZZW4\'(ZZ4Z0004b2bZ\ \'44.04 PZ-!04O04BZZZ/#04*04ZZ Q N44442b #50b4ẼR̃4444Z 0044(0<4̃44N\Z4Z4Z'AZZW4\'(ZZ4Z0004b2bZ\ \'2!4404b04 $04 I0{4Z000섃4N0_4Z000섃4)ߥ4444$2b L0#440<444&444"4 4444 % ;c44'444r xk2b 0j44.$$0000<4 Z4Z'42b '044֝`4f#'T<0 4ބߚ@0< &0<0<0<& 0 4 0 4& 0 u4 0 o444E0 \4y44(0 H4\ s0 B4ݩ$ޛ0< 0<0< '0< \w60 44N0<&@0$0<-0* '440% W4ܯ0 P44ܻ0<Z4̃0< (Z'M0$̃0<40<᝴0* $'&44l̃44\0 4Q0 44 q  &po '44440 U44ۧ4 )440 <4 :C4434444u0 44C&)0 4ڲ44441 ;0 4ډ4'`4440<0 44ߍl4٧4ٸ40 * 44ڛf0 y44ُ 2'G0 a44j4ރ4480 ;44?ٻ 2u0 "4460 4(P44ԣ4.84040 440 4> + 2b0 44٘4ݱ44H:0 44m0 44P0 ~4'40 q44.&$0 _4ԃ)@XI4]4؋ 0 J44t4H/,0<44ң̃ !,2b 0 4+044ؕ4444j$:8&#p4K4\ 4;04" !l4(49 40*04044ג44CS4ݾ50Z44&0G4H "- 0C4ו0?44פ$$^0$44ׅ4#044l0 44[.4404+ 444M ք'404L044;0440<& #.440<&0f4#40W44ւ0<&44ާ0<&0,44ߘ0 44%4 l2&e|=T}kJs $S-3Zx" $/9P_2 4']EF0>4C jsr leas ,s** es stackno_reg-x_regd_regs_elemaddressvalueindirectdirect pshs x pshs d_pshcs fcb _pshcs fcb fdb ,s++,u,ycnstbl+,pcr,u,y 0,x tfr d,xldxleaxldd clraldbstbstd tfr d,x ldd ,x_pushr_pushscmpdcmpd_lsreal_eqreal_grreal_nlr-eal_nereal_ngreal_eqset_nlset_neset_ngset_inset_lsstr_eqstr_grstr_nlstr_nestr_ngstr_newline equ lib pascdef_begin fdb 1_size** constantscnstbl fcb total compare operations were optimized Constant build set calls Var.iable build set calls_size equ *-_beginfalsejump lbge l lbne l lble l lblt l lbeq l lbgt l_lsword_eqword_grword_nlword_neword_ngwo 2rdpushconstpushvarpushindpushaddrfield leax ,xindex_indx1 subd # leax d,x_indx2 sub/d # leax d,x leax d,x_indexpointer_pointervariantrange_rangeassign_cpyr_cpysetassigntag_cpytagcopy pshs x ldd ,s++_cpystrnew_newnot 3 eorb #1and pshs x anda ,s+ andb ,s+_andsetor pshs x ora ,s+ orb ,s+_orsetneg0 coma comb addd #1_negraddaddd_addrsubsubd_subr_subsetmul_mpy tfr b,a clrb aslb rola_mpyrdiv_div tfr a,b sex asra rorb_divrmod_div p 4shs x ldd ,s++ anda # andb #endparammark_tempfunction_trunc_abs_absr_s1qr_sqrr addd #1 subd #1_convbuildset_bldsetsubrange_subrngcomparecompstruc tfr x,dfuncvalue leas -2,s leas -8,sdeflabeljump lbra lfalsejump lbeq lca5sejump_case fdb l-*startcase lbra linitvar_initvcall jsr [_sysf2ns+ lbsr p spc 3enter_enter_start fdb sreturn jmp _exit_endjobpopnewline* error *constantmessageincrement addd #1decrement subd #1### eom ### ~~~ ~ (~ ,~ 8~~ e~ {~ ~ ~ ~ ~ 3~ H~ s~ ~ ~ ~~ ~ )~ 5~ L~ _~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 0~ @~ P~ `~ p~ ~ ~ ~ ~ ~ !~ ~ ~ ~ ~ "~ )~ V~ k~ ~ ~ ~ ~ ~ ~ ~ ZO]koX)v FiDL7:W- @[@EEToo many active files!8J\nME OverflowPointerRangeVariantHeap limitStack limitPr ogram abort error near line # +G&G&N(48444 v'ƿˎ Ŏͮ' ̓ {$] 'V'Qƀ<'/>'2 ',' ' 'Z&  Z&o1'50 4 4 1! 9ooZ&9}'E44-}'449' 94vx|zc~52b5 n~4~vxz|5n~v v 4vjj1&.53b94644g% 55555 @L0BFile name syntax error: /C Call of undefined procedure!46'&Z&5ծ'$& ^˖3B &$$'52"5p2dn54`3%34 F32n5`o54`3%34F31$$2n2B5f5n*4eįe54Vf@%턮oo.f54d- .d u54Pd-.Z d54@b-.ѣ\0b54@b-.\00b50'9 4d-.400d5M 04z &X2p4vh036&6&6&6&5  G5z G&4v3j7&7&7&7& eh5v294"TTT4o505461. TTT4o501!/ 52p4p0f36&6&6&6&5G3 2h[:32hN-3 2hA 3'2h4'!4vhh1.54Vfoo Uƒ.f5ݦ4a3a52fM, CS32z4d,CSd5g'䈀4  ddd5u0h44443?2hw- ' . - ' . 99% ' y" r% k' d"  u2%CH Ee2'38U2"#(E2%52' %2"4o0e&Z&lo5b"52 ]94  o0eC&Z&lo5b"52 ]94ol0e&Z&jo5b"52 ]94o0eC&Z&lo5b"52 ]94"TTT4o 550& b52]94Vfoo.f54F3f7NON7NON7NON7NON7NON7NON7NON7NO  Nd5F294F3f7NON7NON7NON7NON7NON7NON7NON7NONd5F294F3f7CSNON7CSNON7CS%CNON7CSNON7CSNON7CSNON7CSNON7CSNONd5F29l\jh=&i=M&4kh=M&%ki=%+}8*  CS9k=4i=4kh=_ ӷ9*CSj98h* CSh9_h';> >h%>ykyjy?y>z;&t>v?>jCSiL0H+e+8'.']4"W+Z&R&K&D49&4O9'9&#&&  49*9O9_':Ȁ:98G&29 섄: BDF9'_'ՠG'!>$#XDVfZf[f\f]f^|>&X8*' E|> <_GDVfBfCfDfEfFz>&Ķ8+.$lGffAfBfCfDfEfF:8 BICGE^]EC\[CAZYAĢXĶ9$ccAcBcCcDc EcF>'4:8>+5ABCDEF':G='6jG&z=x>iFiEiDiCiBYI*AG'8Ā4}=&9G9=G'+9~E' _',OG_G=>*OGw_'6M'OG_=GDCGffAfBfCfDfEfFv>=>*%`E^]EC\[CBZ BYX9P8EDD$E]EC\[CAZYAĩXffAfBfCfDfEfFv>v?v@vAvBvCvDzE&9>B@DBFDO_BDF99E>X%8C]JA\[H@ZG>YX%>G@HAJCiFiEiDiCiBiAiyDyCyByAy@y?y>zE"''C]CA\ [A?ZY?>X>O v>ccAcBcCcDcEcF903H=X:XX8ķ9ĦG9lF&*lE&&lD&"lC&lB&lA&ML*lG Ā493ZBDF'*CSjGXI*m*9G9 03F'I%Attempt to 'GET' past EOF4vjw'"@3C'3_%1?&  C & hj5v2b9m4v@4R3Cj1?&hj5v2b94v@3Cj1?&4rhj5v2b94fC ' hdf52b94fm& hdf52b94&Em&=w&C ' 짉Ci C C '4 4C '54 & C454hbh52f94dbd52b945& C &Z 9w' C4%9TC 4&Ew&w& *C 4C ' '+'-&|w& C 4C '/ '++''-'#0-;9.7O4 + 5 }&  dj52f9RDI - Digit expected!4&E & O dj52f94v1f2&Ew&w& <C 4C ' 'ৠw& C 4ܦC ' &ކ nOhn5v2f94v&l&n,| n 043_&&}&3A01/ C41?& }' -C43A15C41!&hn5v2f94v&l1?/ C4^1?&nC4Ohn5v2f94v&n'1! l,l3 C43A&n'C41?& hn5v2f94v0no\l'b/ &C4Z&lj'blj.al\ !m,Laj\lm,ZbZ[oeo`&1f' C4E h5v2l94f C4*df52b9b;52bn& b';Nd& &FoBd@';o4h w Cooo@4 1@"5 52dnG&1"9b^'Qd& 4; c5*&7d@';52dnwoo@4 1@"5 4 w& Co@ /}&&"oB|@';o4p5q4w'08&S L$@&@';5+4 ' 0'&54Vլ& 3D &54F'3B &  ^$54$m'5"' "5451@"ɧ '& l?405 o 4fw&odf52b94fw&ldf52b94v0j0h5v2h94v0jm0h5v2h94v0j0h5v2h94v0jj 0yh5v2h94v0jM 0\h5v2h94v0j !0 0?h5v2h94v\0j0"h5v2h94V354V35֦H+cH+6O','[4&YH&RJ&KL&DN49&4O9O'9H&#J&L&N49*9O94P54P5o8H+.IJ "KLMN'3HjO&jCLh8iNiMiLiKiJYI*IO'IĀ4HmC&9O9CO'+J' 4Pl5OO "4P]54H8J:L5HIJKLMN9MFEMKDCKJBJHAH9f8cHcIcJcKcLcMcN9FDB90Hooooo'kM* #CS)jXI<*m*90HO'%*@7/EHIInHF'I*ZOH* H90Hoooooooo90H'O%EP'K+E*PmF&m' '%CS lO91_T>0fVODF0^]L1AO'Ie' HeHHE*PN=mE+P\F0ަO$jF %lF \.7+DaH*J+|H!- `^b_O'F^LFb_aH*J+IF^._._P^__M'oAJ 4+"' J&H* H-A&WO\Dl] O'ܦH*H-ΦFZm[+[4.S.R/N^[+ M*^* _ ZF_^.A.M'9_L&^^\/'_" &"F'_  # p]D^[*ZJ_0X^' Mj^&.7X_48j*2am\.*_+%.0fL'V% _\:V$ V_1V0j1V40TTTT040e5' .' %]'E0m\/!f 'l] 040e5& 0lFD&"V%&vV !\&+00j1'.&j10怯V '-& 0CD'e:F+J*@--b&"\& oee' .- oeo\90V瀯Vl19o?405&_X9%l?l ? Hz@CPt$#> nk( "-xŬbIgOL}# =pznOwQXes'ŬGGp7ljmVzCi+waf p_A6c[_/ $\ oPYa.BKU4$5 \R|:OfMK8w2H.'e9:`&9oE0YO_HJL\NR$0 Bf`'EOCA #246I%oD.& oDlA0E'e&G0E9"8D4VLVlAHIJKLM&VN($PmE*@PO5DODEƸOE*@ # )4 M5 $H'9HH0:mE*_ % \ 2060%0%:$9900 '9_+'-&S $09OǍ%0NlD%04lDMXIMEKYIKCIYIIAHIHhNiMiLiKiJiIiH%9hNiMiLiKiJiIiH%)~%$5OMMLKKJIIHH%LNHJ9LNHJ9L$N&H J"&9LNHJ9lN&*lM&&lL&"lK&lJ&lI&H %ML*lOĀ4H9'.SQRT - negative argumentH+ݦO'اBO]0O]'0`X4lQ0K`[09jOJ0(jOBGOO9aÂu"6ۭaÃ'hf ΂X0X9+%ISʂ-:찂]d.* &:o*0!00}00p@'HHO&CJOA]0[O'R'O* CS? ?0Hd?f@%% ?'(@0 d?f@$0?&(904HJLN5(zLN - negative or zero argumentlJ 'H+ԦO'Ё% J?OoB ?OBv0BBv0NN0 TC0<%0K0*0$'lBXX0F: O)?*CH}0-0oJ9$bȁ @]͂7TUk1r|K (ܣ< ~ϙe`B4X0X0X0 j' X0X 50^\HH0J0C,0\010m0m'lC0*|!0OO?M&O9*ݜEXP - argument too large;_A߈ Å+ڨ1!C )z8;)\8;)\H?H02Hm?*CS? ?HH90ĦHH0sg0 _0XAO AA@@&0R0.00+l! 0d|00@' O'HH9Iڢ!hIڢ!h‚Mb3#g%:) *PQ*#~YC,5$7[>,"/ITBT9!O'oBHAHu%MxƄO0rO'OA0bt0CHH0,\0 O`"oO7cB 9OlO'O0 0)00 O`"oO00P;+a0U00F@XXX0@:8mB' HH0&AHH9$y XE~+{~a{m}zۯd~7&mc8+-L= }]^$}4 8>+1Iڢ!h€O''4]59  { This program has been provided on disk for your convenience } { We thank Springer-Verlag Publishers for granting us permission to use the examples from their book 'Pascal User Manual and Report' by Jensen and Wirth } {program 7.1 - pag e 44} const fac = 4; type complex = record re,im: integer end; var x,y: complex; n: integer; begin x.re := 2; x.im := 7; y.re := 6; y.im := 3; for n := 1 to 4 do begin writeln(' x =',x.re:3,x.im:3,' y =',y.re:3,y.im:3); {  x+y } writeln(' sum =',x.re+y.re:3, x.im+y.im:3); {x*y} writeln(' product =',x.re*y.re - x.im*y.im:3, x.re*y.im + x.im*y.re:3); writeln; x.re := x.re + fac; x.im := x.im - fac; end end.  { This program has been provided on disk for your convenience } { We thank Springer-Verlag Publishers for granting us permission to use the examples from their book 'Pascal User Manual and Report' by Jensen and Wirth } {program 4.5 - pag e 24} const eps = 1e-14; var x,sx,s,t : real; i,k,n : integer; abt : real; abss : real; begin read(n); for i := 1 to n do begin read(x); t := 1.0; k := 0; s := 1.0; sx := sqr(x); while abs(t) > eps*abs(s) do begin k := k+2; t := -t * sx/conv(k * (k-1)); s := s + t; end; writeln(x,s, k div 2) end end.  { This program has been provided on disk for your convenience } { We thank Springer-Verlag Publishers for granting us permission to use the examples from their book 'Pascal User Manual and Report' by Jensen and Wirth } {program 11.8 - pa ge 81} var pi, spi: real; function power(x:real; y:integer): real; {y>=0} var z: real; y1: integer; x1: real; begin x1 := x; y1 := y; z := 1.0; while y1 > 0 do begin while not odd(y1) do begin y1 := y1 div 2; x1 := sqr(x1) end; y1 := y1-1; z := x1*z end; power := z end; {power} begin pi := 3.14159; writeln(2.0,7,power(2.0,7)); spi := power(pi,2); writeln(pi,2,spi); writeln(spi,2,power(spi,2)); writeln(pi,4,power(pi,4)) end.  { This program has been provided on disk for your convenience } { We thank Springer-Verlag Publishers for granting us permission to use the examples from their book 'Pascal User Manual and Report' by Jensen and Wirth } {Program 6.2 - pag e 38} const d=0.0625; {1/16, 16 lines per interval} s=32.0; {character width for interval} h1=34; {character position of x axis} h2=68; {line width} c=6.28138; {2*pi} lim=32; var x,y: real; i,j,k,n: integer; a: array [1 .. h2] of char; begin for j := 1 to h2 do a[j] := ' '; for i := 0 to lim do begin x:=d*conv(i); y:=exp(-x)*sin(c*x); a[h1] := ':'; n:=round(s*y)+h1; a[n] := '*'; if n

v then begin if u>k then k := u; if vk then k := v; if u k then k := g[n] else if g[n] < j then j := g[n]; end; {minmax} begin {read array} for i := 1 to n do begin read(a[i]); write(a[i]:3) end; writeln; minmax(a,min1,max1); writeln(min1,max1,max 1-min1); writeln; for i := 1 to n do begin read(b[i]); write(b[i]:3) end; writeln; minmax(b,min2,max2); writeln(min2,max2,max2-min2); abs1 := abs(min1-min2); abs2 := abs(max1-max2); writeln(abs1, abs2); writeln; for i := 1 to n do  begin a[i] := a[i] + b[i]; write(a[i]:3) end; writeln; minmax(a,min1,max1); writeln(min1,max1,max1-min1) end. " { This program has been provided on disk for your convenience } { We thank Springer-Verlag Publishers for granting us permission to use the examples from their book 'Pascal User Manual and Report' by Jensen and Wirth } { program 8.2, pag #e 54} const wdlength = 128; {max set count} maxbit = 127; w = 39; {w = n div wdlength div 2} var sieve, primes : array[0..w] of set of 0..maxbit; next : record word, bit : integer end; j,k,t,c : integer; $ empty : boolean; begin for t := 0 to w do begin sieve[t] := [0..maxbit]; primes[t] := [] end; sieve[0] := sieve[0] - [0]; next.word := 0; next.bit := 1; empty := false; with next do repeat {find next pri me} while not (bit in sieve[word]) do bit := succ(bit); primes[word] := primes[word] + [bit]; c := 2*bit + 1; j := bit; k := word; while k <= w do {eliminate} begin sieve[k] := sieve[k] - [j]; k := k + word *2; j := j + c; while j>maxbit do begin k := k+1; j := j - wdlength end end; if sieve[word] = [] then begin empty := true; bit := 0 end; while empty and (word= work then write('k'); if not (work >= free) then write(' jack'); if [sa] <= work then write('forget it'); writeln end.  { This program has been provided on disk for your convenience } { We thank Springer-Verlag Publishers for granting us permission to use the examples from their book 'Pascal User Manual and Report' by Jensen and Wirth } {program 11.5 - pa ge 77} type ptr = ^node; node = record info : char; llink, rlink : ptr end; var root : ptr; ch : char; procedure preorder(p : ptr); begin if p<>nil then begin write(p^.info); preorder(p^.llink); preorder(p ^.rlink) end end; {preorder} procedure inorder(p : ptr); begin if p<> nil then begin inorder(p^.llink); write(p^.info); inorder(p^.rlink) end end; {inorder} procedure postorder(p : ptr); begin if p<>nil then begin postor der(p^.llink); postorder(p^.rlink); write(p^.info) end end; {postorder} procedure enter(var p: ptr); begin read(ch); write(ch); if ch<>'.' then begin new(p); p^.info := ch; enter(p^.llink); enter(p^.rlink); end else p := nil end; {enter} begin write(' '); enter(root); writeln; write(' '); preorder(root); writeln; write(' '); inorder(root); writeln; write(' '); postorder(root); writeln end. { cross reference generator using hash table, modified from: Wirth, Niklaus, ALGORITHMS + DATA STRUCTURES = PROGRAMS (Englewood Cliffs, N.J.: Prentice-Hall, Inc., 1976). } CONST c1 = 10; { length of words } c2 = 10; { numbers p er line } c3 = 6; { digits per number } c4 = 9999; { maximum line number } p = 997; { prime number } free = ' '; TYPE index = 0..p; alfa = PACKED ARRAY [1..c1] of char; itemref = ^item; word = RECORD key: alf a; first, last: itemref; fol: index END; item = RECORD lno: 0..c4; next: itemref END; VAR i, top: index; k, k1: integer; n: integer; { current line number } id: alfa; f: text ; a: alfa; t: ARRAY [0..p] of word; { hash table } letters, letters_or_digits: set of char; list, aborted, end_of_comment: boolean; ch: char; PROCEDURE search; VAR h, d, i: index; indx: 1..c1; x: itemref; f: boo lean; { global variables: t, id, top } BEGIN h := 0; FOR indx := 1 TO c1 DO h := h + ORD (id [indx]); h := h MOD p; f := false; d := 1; NEW (x); x^.lno := n; x^.next := NIL; REPEAT  IF t [h].key = id THEN BEGIN { found } f := true; t [h].last^.next := x; t [h].last := x END ELSE IF t [h].key = free THEN BEGIN { new ent ry } f := true; WITH t [h] DO BEGIN key := id; first := x; last := x; fol := top  END; top := h END ELSE BEGIN { collision } h := h + d; d := d + 2; IF h >= p THEN h := h - p; IF d = p THEN  BEGIN writeln ('TABLE OVERFLOW'); aborted := true { terminate program } END END UNTIL (f OR aborted) END { search }; PROCEDURE printword (w: word  ); VAR l: integer; x: itemref; BEGIN write (' '); FOR l := 1 TO c1 DO write (w.key [l]); x := w.first; l := 0; REPEAT IF l = c2 THEN BEGIN writeln;  l := 0; write (' ': c1 + 1) END; l := l + 1; write (x^.lno: c3); x := x^.next UNTIL x = NIL; writeln END { printword }; PROCEDURE printtable; VAR i, j, m: index; BEGIN  i := top; WHILE i <> p DO BEGIN { scan linked list and find minimal key } m := i; j := t [i].fol; WHILE j <> p DO BEGIN IF t [j].key < t[m].key THEN m := j;  j := t [j].fol END; printword (t [m]); IF m <> i THEN BEGIN t [m].key := t[i].key; t [m].first := t[i].first; t [m].last := t[i].last  END; i := t [i].fol END END { printtable }; PROCEDURE writelnno; BEGIN IF list THEN BEGIN write (n: c3); { next line } write (' ') END END; { writelnno } PROCE DURE writeit; BEGIN IF list THEN write (f^) END; { writeit } PROCEDURE consume; BEGIN writeit; get (f) END; { consume } BEGIN n := 0; k1 := c1; top := p; list := true; IF PARAM[2].ID[1] = '+' THEN BEGIN  IF (PARAM[2].ID[2] = 'L') OR (PARAM[2].ID[2] = 'l') THEN list := false; END; reset(f, PARAM[1].ID); letters := []; FOR ch := 'a' TO 'z' DO letters := letters OR [ch]; FOR ch := 'A' TO 'Z' DO letters := letters O R [ch]; letters_or_digits := letters OR ['_']; FOR ch := '0' TO '9' DO letters_or_digits := letters_or_digits OR [ch]; FOR i := 0 TO p DO t [i].key := free; WHILE NOT eof (f) AND NOT aborted DO BEGIN IF n = c4 THEN n ! := 0; n := n + 1; writelnno; WHILE NOT eoln (f) AND NOT aborted DO BEGIN { scan non-empty line } IF f^ IN letters THEN BEGIN k := 0; REPE "AT IF k < c1 THEN BEGIN k := k + 1; a [k] := f^ END; writeit; get #(f) UNTIL NOT (f^ IN letters_or_digits); IF k >= k1 THEN k1 := k ELSE REPEAT a [k1] := ' '; $ k1 := k1 - 1 UNTIL k1 = k; id := a; { pack (a, 1, id) } search END ELSE BEGIN { check for quote or comment }  IF f^ = '''' THEN BEGIN REPEAT writeit; get (f) UNTIL f^ = ''''; consume  END ELSE IF f^ = '{' THEN BEGIN REPEAT writeit; get (f)  UNTIL f^ = '}'; consume END ELSE IF f^ = '"' THEN BEGIN REPEAT  writeit; get (f) UNTIL f^ = '"'; consume END ELSE  IF f^ = '(' THEN BEGIN writeit; get (f); IF f^ = '*' THEN { comment }  BEGIN end_of_comment := false; WHILE NOT (end_of_comment) DO BEGIN  REPEAT writeit; get (f) UNTIL f^ = '*';  writeit; get (f); IF f^ = ')' THEN BEGIN  end_of_comment := true; consume END END { WHILE } END { IF  } END { IF } ELSE consume END END; IF list THEN writeln; get (f) END; PAGE (output); printta ble END. {** **} {** Pascal programming example using the 'RUN' mechanism with an **} {** assembly language routine. This program calls an assembly **} {** language routine with a textual param eter which is printed **} {** on the terminal. The routine then returns the date in the **} {** parameters [2..4] in the form Month/Day/Year. **} {** **} type month = array [1..4] of char; var months: array [1..12] of month; parms: ARGLIST; {Used to pass information and arguments to program} line_no: integer; {Returns last line number executed in called program} reason: PROGRESULT; {Returns the r eason program terminated} begin months[1] := 'Jan'; months[2] := 'Feb'; months[3] := 'Mar'; months[4] := 'Apr'; months[5] := 'May'; months[6] := 'Jun'; months[7] := 'Jul'; months[8] := 'Aug'; months[9] := 'Sep'; months[10] := 'O ct'; months[11] := 'Nov'; months[12] := 'Dec'; parms[1].ID := 'Get Date '; RUN('GETDATE.CMD ', parms, line_no, reason); if reason = TERMINATED then begin {** Program terminated normally **} writeln('The current date is ', months[ parms[2].INT], parms[3].INT:4, ', 19', parms[4].INT:1); end else begin {** Program terminated abnormally **} write('**** Program abnormal termination on line ', line_no:1, 'because of '); case reason of OVERFLOW:  writeln('numeric overflow'); POINTERERROR: writeln('invalid pointer'); RANGEERROR: writeln('value out of range'); HEAPLIMIT: writeln('data space overflow'); STACKLIMIT: writeln('stack space overflow'); TERMINATED, VARIANTERROR: {** Not possible under this version **} end; end; end.  ttl Pascal/Assembly Interface Example pag * * These definitions describe the interface to the Pascal * runtime system. They are from the FLEX Pascal manual. * Start equ $0003 Begin a Pascal program Term equ $0009 Terminate a Pascal program Wln eq u $0126 Writeln Eio equ $012C End I/O Operation Wrs equ $0138 Write string * * FLEX data values * Month equ $CC0E Day equ $CC0F Year equ $CC10 pag * * Program begins here * org 0 fdb Size Size in bytes of my program * * Program execution will bei ng at this location * Begin jsr Start Initialize Pascal environment fdb 0 Parameters for Start fdb 12 **** NOTICE - not the same as in manual **** fdb 0 **** This value must be 12! **** fdb 0 pshs u,y Save registers just to be s afe * * At this point, the stack looks like this: * 12,Y - address of paramter list passed to this program * 14,Y - address of INPUT file * 16,Y - address of OUTPUT file * * Write the string: 'Entering "', parameter text, '"' on the *  terminal. This process is not completely described in the * FLEX Pascal guide, but could be determined by examining the * assembly language output from a Pascal program which performs * this function. * leax str1,pcr address of 'Entering "' pshs  x ldd #-1 Default width pshs d pshs d jsr [Wrs] Write string ldx 12,y get parameter list address leax 2,x point at param[1].ID pshs x ldd #-1 more default values pshs d pshs d jsr [Wrs] leax str2,pcr address of '"' pshs x ldd #-1 pshs d  pshs d jsr [Wrs] jsr [Wln] Writeln jsr [Eio] done with I/O operations * * Now pick up the current date from FLEX cells and return * them to the calling program. * ldx 12,y get parameter list address ldb Month pick up Month value clra std (2- 1)*18+2,x param[2].INT ldb Day pick up Day value std (3-1)*18+2,x param[3].INT ldb Year pick up Year value std (4-1)*18+2,x param[4].INT * * All done - return to calling program * puls u,y restore proper environment jsr Term Terminate program * * Strings and other constants go here - they must be included * in the Size value computed. * str1 fcc 'Entering "',0 Strings are null terminated str2 fcc '" ',0 * Size equ * Size in bytes of entire program * end    ! " # $      !"#$      !"#$      !"#$      !"#$      !"#$      !"#$      !"#$      !"#$      !"#$      !"#$      !"#$      !"#$      !"#$      !"#$      !"#$      !"#$      !"#$      !"#$                           ! " # $!!!!!!!!! ! ! ! ! !!!!!!!!!!!!!!!!!!! !!!"!#!$""""""""" " " " " """"""""""""""""""" "!"""#"$######### # # # # ################### #!#"###$$$$$$$$$$ $ $ $ $ $$$$$$$$$$$$$$$$$$$ $!$"$#$$%%%%%%%%% % % % % %%%%%%%%%%%%%%%%%%% %!%"%#%$&&&&&&&&& & & & & &&&&&&&&&&&&&&&&&&& &!&"&#&$''''''''' ' ' ' ' ''''''''''''''''''' '!'"'#'$