ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ std.zusatz’’’’’ 351:15:13č’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ AT install’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Œa€ė’’__\\ ’’’’  `>M’ž’’’’’’ AT install’’’’’’’’’’’’’’’’’’’_’’’’’’’’’’’’’’’’’’a€’K’’’’’’’’’’’’’’’’’’’±€’K’’’’’’’’’’’’’’’’’’’’K’’’’’’’’’’’’’’’’’’’Q’K’’’’’’’’’’’’’’’’’’’”’K’’’’’’’’’’’’’’’’’’’ń’K’’’’’’’’’’’’’’’’’’’A‚’K’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘‚’’’’’’’’’’’’’’’’’’’’±‚’j’’’’’’’’’’’’’’’’’’’!ƒ’/’’’’’’’’’’’’’’’’’’’aƒ’.’’’’’’’’’’’’’’’’’’’‘ƒ’@’’’’’’’’’’’’’’’’’’’გ+’’’’’’’’’’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1„’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’„’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’’’ page;’’’’’’’’’’’’’ф’J’’’’’’’’’’’’’’’’’’’!…’E’’’’’’’’’’’’’’’’’’’’’ line (2).’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q…’’’’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’±…’9’’’’’’’’’’’’’’’’’’’ń…’9’’’’’’’’’’’’’’’’’’’1†’’’’’’’’’’’’’’’’’’’’’’ line.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q†’’’’’’’’’’’’’’’’’’’’q†’’’’’’’’’’’’’’’’’’’’‘†’0’’’’’’’’’’’’’’’’’’’ц’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń†’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!‡’’’’’’’’’’’’’’’’’’’’A‡’/’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’”‡’’’’’’’’’’’’’’’’’’’’Į‡’’’’’’’’’’’’’’’’’’’’ᇒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ˆ’!’’’’’’’’’’’’’’’’’’’Qˆ’’’’’’’’’’’’’’’’’’’’qˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘ˆ’’’’’’’’’’’’’’’’’’’’Įˆ’’’’’’’’’’’’’’’’’’’’ሒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‰’0’’’’’’’’’’’’’’’’’’’A‰’’’’’’’’’’’’’’’’’’’’a‰’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‰’7’’’’’’’’’’’’’’’’’’’Į‰’’’’’’’’’’’’’’’’’’’’щ’’’’’’’’’’’’’’’’’’’’ń‰’#’’’’’’’’’’’’’’’’’’’!Š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AŠ’H’’’’’’’’’’’’’’’’’’’‘Š’5’’’’’’’’’’’’’’’’’’’’’ put (t).’’’’’’’’’’ъ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ PROC cl eol: ’’’’’’’’ńŠ’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ PROC cl eop: ’’’’’’’’!‹’’’’’’’’’’’’’’’’’’’’1‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‹’ ’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’’’ cl eol ’’’’’’’’’’’”‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‹’ ’’’’’’’’’’’’’’’’’’’ń‹’’’’’’’’’’’’’’’’’’’’’’ cl eop ’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’N(*************************************************************************)’’’N(*** Insertiert alle notwendigen Pakete, damit ein AT-System generiert ***)’’’N(*** werden kann, das die Hardwareuhr lesen und Partitionen bedienen ***)’’’N(*** kann. Startet den "AT Generator". ***)’’’N(*** ***)’’’N(*** Autor : W. Sauerwein Stand : 15.07.86 ***)’’’N(*************************************************************************)’’’erste bildschirmmeldung;’’’’’’nIF ich bin single THEN putline ("Die AT-spezifische Software ist nur auf Multi-User-Systemen benutzbar !")’’’’> ELSE hole dateien vom archiv;’’’’’’’’’’’’’’’. insertiere alle pakete;N put line ("Running ""AT Generator""...");’’’’’’’’’’’’’’. run ("A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’“’(’’’’’’’’’’’’’’’’’’’A“’’’’’’’’’’’’’’’’’’’’a“’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’”“’’’’’’’’’’’’’’’’’’’’Į“’’’’’’’’’’’’’’’’’’’’į“’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’µ’%’’’’’’’’’’’’’’’’’’’1µ’’’’’’’’’’’’’’’’’’’’Aµ’’’’’’’’’’’’’’’’’’’’aµ’6’’’’’’’’’’’’’’’’’’’”µ’’’’’’’’’’’’’’’’’’’’Įµ’0’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’¶’ ’’’’’’’’’’’’’’’’’’’1¶’0’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’q¶’’’’’’’’’’’’’’’’’’’’‘¶’’’’’’’’’’’’’’’’’’’’±¶’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѷ’’’’’’’’’’’’’’’’’’’’ń¶’"’’’’’’’’’’’’’’’’’’’!·’"’’’’’’’’’’’’’’’’’’’Q·’"’’’’’’’’’’’’’’’’’’’·’’’’’’’’’’’’’’’’’’’’”·’+’’’’’’’’’’’’’’’’’’’Ń·’’’’’’’’’’’’’’’’’’’’ń·’)’’’’’’’’’’’’’’’’’’’!ø’9’’’’’’’’’’’’’’’’’’’aø’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ø’/’’’’’’’’’’’’’’’’’’’įø’"’’’’’’’’’’’’’’’’’’’¹’"’’’’’’’’’’’’’’’’’’’A¹’’’’’’’’’’’’’’’’’’’’a¹’2’’’’’’’’’’’’’’’’’’’”¹’’’’’’’’’’’’’’’’’’’’Į¹’’’’’’’’’’’’’’’’’’’’į¹’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’1ŗ’=’’’’’’’’’’’’’’’’’’’qŗ’"’’’’’’’’’’’’’’’’’’’”ŗ’A’’’’’’’’’’’’’’’’’’’ńŗ’C’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A»’’’’’’’’’’’’’’’’’’’’a»’#’’’’’’’’’’’’’’’’’’’‘»’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”»’’’’’’’’’’’’’’’’’’’’’’ line (2); ’’’’’’’’’Į»’%’’’’’’’’’’’’’’’’’’’ń»’ ’’’’’’’’’’’’’’’’’’’’’ line; ’’’’’’’’’’’’’!¼’’’’’’’’’’’’’’’’’’’’’’ line; ’’’’’’’’’’’’’A¼’B’’’’’’’’’’’’’’’’’’’’’ line; ’’’’’’’’’’’’’‘¼’@’’’’’’’’’’’’’’’’’’’’’ line. ’’’’’’’’’’’’’į¼’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’½’#’’’’’’’’’’’’’’’’’’’1½’’’’’’’’’’’’’’’’’’’’Q½’’’’’’’’’’’’’’’’’’’’q½’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’‘½’’’’’’’’’’’’’’’’’’’’±½’’’’’’’’’’’’’’’’’’’’’’(*’’’’’’’’’’’’’’’’’’’’’REP’’’’’’’’’’’’’’’’’’ѽ’’’’’’’’’’’’’’’’’’’’ń½’#’’’’’’’’’’’’’’’’’’’!¾’2’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’a¾’’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’‘¾’’’’’’’’’’’’’’’’’’’’±¾’’’’’’’’’’’’’’’’’’’’Ѿ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’N(* ------------------- VERSION 12 vom 06.08.86 -------------------- *)’’’’’’’’>PACKET reporter routines DEFINES generate counts,’’’’’’’’’’’’’. count on,’’’’. count off,’’’> generate reports,’’’’’’’’’’’’> eliminate reports,’’’’’’’’’’’. assert,’’’’’’. report on,’’’. report off,’’. report:’’’’’’N(* Programm zur Ablaufverfolgung von ELAN Programmen. Das Programm ’’’’’’’’’’’N verfolgt Prozedur- und Refinementaufrufe ('trace') und erstellt’’’’’’’’’’’’N eine Haeufigkeitszaehlung ('count') und beachtet 'assertions'.’’’’’’’’’’’’’ Autor: Rainer Hahn *)’’’’’’FILE VAR input file;’’’’’’’’’’INT VAR zeilen nr,’’’’’’’’’’’’TEXT VAR zeile,’’’’’’’’’’’’’’’ dummy,’’’’’’’’’’’’’’’ dummy1,’’’’’’’’’’’’’’ symbol;’’’’’’’’’’’’’’LET quadro fis = "####",’’’’’’ triple fis = "###",’’’’’’’ double fis = "##",’’’’’’’’DATASPACE VAR ds := nilspace;’>BOUND ROW max STRUCT (INT anzahl, BOOL proc) VAR zaehlwerk;’’’LET max = 3000;’’’’’’’’’’’’’’’N(******************* gen report-Routinen ******************************) ’’’’’PROC generate reports:’’’’’’’’. generate reports (last param)’’’’’’’’’’’’’’’END PROC generate reports;’’’’.PROC generate reports (TEXT CONST name):’’’’’’ disable stop; ’’’’’’’’’’’’’’. gen trace statements (name); ’’’’’’’’’’’’’’’. IF is error AND error message = "ende"’’’’’’ THEN clear error;’’’’’’’’’ last param (name)’’’’ to line (input file, 1);’’’’ enable stop. ’’’’’’’’’’’’’’’END PROC generate reports;’’’’.PROC gen trace statements (TEXT CONST name):’’ enable stop; IF exists (name) ’’’’’’’’’’’> THEN input file := sequential file (modify, name)’’’’’’’’’> ELSE errorstop ("input file does not exist") ’’’’’’’’’’’’’ input file modifizieren’’’’’.END PROC gen trace statements; ’’’’’’’’’’’’’’’N(*************************** Test file modifizieren *****************) ’’’’’’’PROC input file modifizieren:’ zeilen nr := 1;’’’’’’’’’’’’’ to line (input file, 1);’’’’ col (input file, 1);’’’’’’’’ lese zeile;’’’’’’’’’’’’’’’ IF triple fis symbol’’’’’’. THEN wandele in quadro fis’’’’’’’’’’’’’’ IF proc oder op symbol’’’’> THEN verarbeite operatorT Generator")’’’forget ("AT install", quiet).’.ich bin single : (pcb (9) AND 255) <= 1.’’’’’’insertiere alle pakete :’’’’’’. insert and say ("AT Utilities").’’’’’’’’’’’erste bildschirmmeldung :’’’’’N put center (" Generator fŪr AT-spezifische Software gestartet."); line;’’’’N put center ("--------------------------------------------------");’’’’’’’’’hole dateien vom archiv :’’’’’ TEXT VAR datei;’’’’’’’’’’’’> datei := "AT Utilities"; hole wenn noetig;’’’’’> datei := "AT Generator"; hole wenn noetig;’’’’’ release (archive);’’’’’’’’’hole wenn noetig :’’’’’’’’’’’’ IF NOT exists (datei) THEN’> put line ("Loading """ + datei + """...");’’’’’’’’’’’’’’ fetch (datei, archive)’’.PROC insert and say (TEXT CONST datei) :’’’’’’ INT VAR cx, cy;’’’’’’’’’’’’> put line ("Inserting """ + datei + """...");’’’’’’’’’’’’’’’ get cursor (cx, cy);’’’’’’’ insert (datei);’’’’’’’’’’’’ cl eop (cx, cy); line;’’’’’ forget (datei, quiet).’’’’’END PROC insert and say;’’’’’’.TEXT PROC inverse (TEXT CONST t):’’’’’’’’’’’’’ ""15"" + t + " " + ""14""’’’END PROC inverse;’’’’’’’’’’’’’.PROC put center (TEXT CONST t):’’’’’’’’’’’’’’’ put center (t, 80)’’’’’’’’’END PROC put center;’’’’’’’’’’>PROC put center (INT CONST zeile, TEXT CONST t):’’’’’’’’’’’’’’ put center (zeile, t, 80)’’END PROC put center;’’’’’’’’’’>PROC put center (TEXT CONST t, INT CONST gesamtbreite):’’’’’’’ INT VAR cy; get cursor (cy, cy);’’’’’’’. put center (cy, t, gesamtbreite)’’’’’’’’’’’END PROC put center;’’’’’’’’’’NPROC put center (INT CONST zeile, TEXT CONST t, INT CONST gesamtbreite):’’’’’’> cursor ((gesamtbreite - length (t)) DIV 2, zeile);’’’’’’’’’END PROC put center;’’’’’’’’’’ out (""5"") END PROC cl eol;’’’’’’’’’’’’’’ out (""4"") END PROC cl eop; ’’’’’’’’’’’’’.PROC cl eol (INT CONST cx, cy): ’’’’’’’’’’’’’’ cursor (cx, cy); ’’’’’’’’’’END PROC cl eol; ’’’’’’’’’’’’’.PROC cl eop (INT CONST cx, cy): ’’’’’’’’’’’’’’ cursor (cx, cy); ’’’’’’’’’’END PROC cl eop; ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ AT Utilities’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņa€ė’’##   ’’’’  $>M’ž’’’’’’ AT Utilities’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’a€’K’’’’’’’’’’’’’’’’’’’±€’K’’’’’’’’’’’’’’’’’’’’K’’’’’’’’’’’’’’’’’’’Q’K’’’’’’’’’’’’’’’’’’’”’K’’’’’’’’’’’’’’’’’’’ń’K’’’’’’’’’’’’’’’’’’’A‚’K’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘‚’F’’’’’’’’’’’’’’’’’’’į‚’F’’’’’’’’’’’’’’’’’’’1ƒ’F’’’’’’’’’’’’’’’’’’’ƒ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ƒ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’გ’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a„’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’ф’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’…’6’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q…’)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”…’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į…’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’1†’2’’’’’’’’’’’’’’’’’’’q†’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±†’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ц’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ read block,’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!‡’"’’’’’’’’’’’’’’’’’’’Q‡’'’’’’’’’’’’’’’’’’’’’‡’$’’’’’’’’’’’’’’’’’’’±‡’&’’’’’’’’’’’’’’’’’’’ᇒ’’’’’’’’’’’’’’’’’’’ń‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ read block: ’’’’’’’’’ˆ’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qˆ’’’’’’’’’’’’’’’’’’’’qˆ’’’’’’’’’’’’’’’’’’’’‘ˆ’5’’’’’’’’’’’’’’’’’’’ш’#’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‰’’’’’’’’’’’’’’’’’’’’Q‰’’’’’’’’’’’’’’’’’’’’q‰’6’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’щ’%’’’’’’’’’’’’’’’’’’’Š’'’’’’’’’’’’’’’’’’’’’1Š’$’’’’’’’’’’’’’’’’’’’aŠ’&’’’’’’’’’’’’’’’’’’’‘Š’’’’’’’’’’’’’’’’’’’’±Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ write block: ’’’’’’’’ъ’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’1‹’’’’’’’’’’’’’’’’’’’’Q‹’5’’’’’’’’’’’’’’’’’’’‘‹’#’’’’’’’’’’’’’’’’’’’Į‹’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į‹’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’1Œ’’’’’’’’’’’’’’’’’’’’QŒ’,’’’’’’’’’’’’’’’’’’’Œ’3’’’’’’’’’’’’’’’’’’’ĮŒ’’’’’’’’’’’’’’’’’’’’ oder prozedurkopf’’’’’’’’’’’’’’ ELIF refinement symbol’’’’. THEN verarbeite ggf refinements’’’’’’’’’triple fis symbol:’’’’’’’’’’’’. pos (zeile, triple fis) > 0 AND ’’’’’’’’’’’’> (pos (zeile, triple fis) <> pos (zeile, quadro fis)).’’wandele in quadro fis:’’’’’’’’. change all (zeile, triple fis, quadro fis);’. write record (input file, zeile).’’’’’’’’’’’proc oder op symbol:’’’’’’’’’’> pos (zeile, "PROC") > 0 OR pos (zeile, "OP") > 0.’’’’’’’’’’’.verarbeite operator oder prozedurkopf:’’’’’’’’ scan (zeile);’’’’’’’’’’’’’’’ symbol lesen;’’’’’’’’’’’’’’’. IF symbol = "PROC" OR symbol = "OP"’’’’’’’’’ ELIF symbol = "END"’’’’’’’’’> THEN LEAVE verarbeite operator oder prozedurkopf’’’’’’’’’’ ELIF type = bold’’’’’’’’’’’’. THEN next symbol (symbol, type);’’’’’’’’’’> IF NOT (symbol = "PROC" OR symbol = "OP")’’’’’’’’’’’’> THEN LEAVE verarbeite operator oder prozedurkopf’’’> ELSE LEAVE verarbeite operator oder prozedurkopf’’’’’’’’’’ scanne kopf; insertiere trace anweisung.’ dummy := double fis;’’’’’’’’ dummy CAT "report(""";’’’’’’. dummy CAT text (line no (input file) + 1);’’ dummy CAT ": ";’’’’’’’’’’’’’. dummy CAT symbol; (* PROC oder OP *)’’’’’’’’ dummy CAT " ";’’’’’’’’’’’’’’ symbol lesen;’’’’’’’’’’’’’’’ dummy CAT symbol;’’’’’’’’’’’ fuege bis namens ende an;’’’ dummy CAT " ";’’’’’’’’’’’’’’. ueberlese ggf parameterliste.’’’’’’’’’’’’’’’fuege bis namens ende an:’’’’’ symbol lesen;’’’’’’’’’’’’’. IF symbol = "(" OR symbol = ":"’’’’’’’’’’’. THEN LEAVE fuege bis namensende an’’’’’’ dummy CAT symbol’’’’’’’’’’ueberlese ggf parameterliste:’ WHILE symbol <> ":" REP’’’’’ symbol lesen’’’’’’’’’’’’’’insertiere trace anweisung:’’’. WHILE pos (zeile, ":") = 0 REP’’’’’’’’’’’’’’ vorwaerts; lese zeile. schreibe zeile mit report statement.’’’’’’’’refinement symbol:’’’’’’’’’’’’. INT CONST point pos := pos (zeile, ".") ;’’> point pos > 0 AND point pos >= length (zeile) - 1.’’’’’’’’’’verarbeite ggf refinements:’’’ ueberlies leere zeilen ; ’’’ IF ist wirklich refinement’’. THEN insertiere report fuer refinement’’’’ueberlies leere zeilen :’’’’’’ vorwaerts; lese zeile> UNTIL pos (zeile, ""33"", ""254"", 1) > 0 PER .’’’’’’’’’’’’’ist wirklich refinement :’’’’’ scan (zeile) ;’’’’’’’’’’’’’’ next symbol (symbol, type) ; next symbol (symbol) ;’’’’’’. symbol = ":" AND type = tag .’’’’’’’’’’’’’’’.insertiere report fuer refinement:’’’’’’’’’’’’ dummy := double fis;’’’’’’’’ dummy CAT "report("" ";’. dummy CAT text (line no (input file) + 1);’’ dummy CAT ": ";’’’’’’’’’’’’’> dummy1 := subtext (zeile, 1, pos (zeile, ":") - 1);’’’’’’’’’ dummy CAT dummy1;’’’’’’’’’’’. schreibe zeile mit report statement’’’’’’’’’.END PROC input file modifizieren; ’’’’’’’’’’’’.PROC schreibe zeile mit report statement:’’’’’ dummy CAT """);";’’’’’’’’’’’ dummy CAT double fis;’’’’’’’. IF doppelpunkt steht am ende der zeile’’’’’’ THEN vorwaerts;’’’’’’’’’’’. insert record (input file);’’’’’’’’’’. write record (input file, dummy)’’’’’. ELSE insert char (dummy, ":", 1);’’’’’’’’’. change (zeile, ":", dummy);’’’’’’’’’’. write record (input file, zeile)’’’’’.doppelpunkt steht am ende der zeile:’’’’’’’’’’N (zeile SUB length (zeile)) = ":" OR (zeile SUB length (zeile) - 1) = ":".’’’.END PROC schreibe zeile mit report statement;’PROC symbol lesen:’’’’’’’’’’’’ next symbol (symbol, type);’ IF ende der zeile gescannt’’ THEN vorwaerts;’’’’’’’’’’’ lese zeile;’’’’’’’’’’. continue scan (zeile);’’’’’’’’’’’’’’’. next symbol (symbol, type)’’’’’’’’’’’ende der zeile gescannt:’’’’’’END PROC symbol lesen;’’’’’’’’PROC vorwaerts:’’’’’’’’’’’’’’’ IF eof (input file) ’’’’’’’’ THEN errorstop ("ende")’’’ down (input file);’’’’’’’’’’ IF eof (input file) ’’’’’’’’ THEN errorstop ("ende")’’’END PROC vorwaerts;’’’’’’’’’’’PROC lese zeile:’’’’’’’’’’’’’’. read record (input file, zeile); ’’’’’’’’’’’ cout (zeilen nr); ’’’’’’’’’’ zeilen nr INCR 1’’’’’’’’’’’’END PROC lese zeile;’’’’’’’’’’N(************************ eliminate reports-Routinen ******************)’’’’’’PROC eliminate reports:’’’’’’’. eliminate reports (last param)’’’’’’’’’’’’’’END PROC eliminate reports;’’’.PROC eliminate reports (TEXT CONST name): ’’’’ disable stop; ’’’’’’’’’’’’’’. eliminate statements (name); ’’’’’’’’’’’’’’’. IF is error AND error message = "ende"’’’’’’ THEN clear error;’’’’’’’’’ last param (name)’’’’ to line (input file, 1);’’’’ enable stop. ’’’’’’’’’’’’’’’END PROC eliminate reports;’’’.PROC eliminate statements (TEXT CONST name): ’ enable stop; IF exists (name) ’’’’’’’’’’’> THEN input file := sequential file (modify, name)’’’’’’’’’> ELSE errorstop ("input file does not exist") ’’’’’’’’’’’’’ statements entfernen.’’’’’’’statements entfernen:’’’’’’’’’ to line (input file, 1);’’’’ col (input file, 1);’’’’’’’’ zeilen nr := 1;’’’’’’’’’’’’’. WHILE NOT eof (input file) REP’’’’’’’’’’’’’’ lese zeile;’’’’’’’’’’’’’’’. IF pos (zeile, double fis) > 0’’’’’’’’’’’’> THEN eliminiere zeichenketten in dieser zeile’’’’’’’’’’’ ELSE vorwaerts’’’’’’’’’’.eliminiere zeichenketten in dieser zeile:’’’’’. INT VAR anfang := pos (zeile, double fis);’’. WHILE es ist noch etwas zu eliminieren REP’’ IF es ist ein quadro fis’’. THEN wandele es in ein triple fis’’’’’’’ ELIF es ist ein triple fis. THEN lass diese sequenz stehen’’’’’’’’’’. ELSE entferne zeichenkette’’’’’’’’’’’’’’ IF zeile ist jetzt leer’’’’’. THEN delete record (input file)’’’’’’’’’’’. ELSE write record (input file, zeile);’’’’ vorwaerts’’’’’’’’’’’’.es ist noch etwas zu eliminieren:’’’’’’’’’’’’’es ist ein quadro fis:’’’’’’’’. pos (zeile, quadro fis, anfang) = anfang.’’’wandele es in ein triple fis:’ delete char (zeile, anfang);> anfang := pos (zeile, double fis, anfang + 3).’’’’’’’’’’’’’’es ist ein triple fis:’’’’’’’’. pos (zeile, triple fis, anfang) = anfang.’’’lass diese sequenz stehen:’’’’> anfang := pos (zeile, triple fis, anfang + 1) + 3.’’’’’’’’’’entferne zeichenkette:’’’’’’’’> INT VAR end := pos (zeile, double fis, anfang+2) ;’’’’’’’’’’. THEN change (zeile, anfang, end + 1, "");’> anfang := pos (zeile, double fis, anfang)’’’’’’’’’’’’> ELSE anfang := pos (zeile, double fis, anfang+2) ’’’’’’’’’zeile ist jetzt leer:’’’’’’’’’. pos (zeile, ""33"", ""254"", 1) = 0.’’’’’’’’.END PROC eliminate statements; ’’’’’’’’’’’’’’’N(********************** Trace-Routinen *******************************) ’’’’’’FILE VAR trace file;’’’’’’’’’’.BOOL VAR zaehlwerk initialisiert :: FALSE,’’’’ trace on,’’’’’’’’’’’’ haeufigkeit on;’’’’’’.PROC report (TEXT CONST message):’’’’’’’’’’’’’ IF exists ("TRACE")’’’’’’’’’ ELSE trace on := TRUE;’’’’. haeufigkeit on := FALSE;’’’’’’’’’’’’’ BOOL CONST ist prozedur ::’’> pos (message, "PROC") > 0 OR pos (message, "OP") > 0;’’’’> trace file := sequential file (modify, "TRACE");’’’’’’’’’’’’ IF lines (trace file) <= 0’’. THEN insert record (trace file);’’’’’’’’’’. write record (trace file, "")’’’’’’’’> ELSE to line (trace file, lines (trace file));’’’’’’’’’’’’. read record (trace file, dummy);’’’’’ IF dummy <> ""’’’’’’’. THEN down (trace file);’’’’’’’’’’’’. insert record (trace file);’’’. write record (trace file, "")’. THEN write record (trace fጒ’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’5’’’’’’’’’’’’’’’’’’’a’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’±’2’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’’’ CASE 0:’’’’’’’’1Ž’>’’’’’’’’’’’’’’’’’’’qŽ’I’’’’’’’’’’’’’’’’’’’ĮŽ’6’’’’’’’’’’’’’’’’’’’’=’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q’8’’’’’’’’’’’’’’’’’’’±’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’ CASE 0:’’’’’’’’’B’’’’’’’’’’’’’’’’’’’ѐ’L’’’’’’’’’’’’’’’’’’’!‘’6’’’’’’’’’’’’’’’’’’’a‘’=’’’’’’’’’’’’’’’’’’’”‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ё’"’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’1’’%’’’’’’’’’’’’’’’’’’’a’’&’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ read block: ’’’’’’’’’Į’’1’’’’’’’’’’’’’’’’’’’“’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q“’’’’’’’’’’’’’’’’’’’’q“’’’’’’’’’’’’’’’’’’’’‘“’5’’’’’’’’’’’’’’’’’’’ѓ’#’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!”’’’’’’’’’’’’’’’’’’’’Q”’’’’’’’’’’’’’’’’’’’’q”’6’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’є’%’’’’’’’’’’’’’’’’’’’•’'’’’’’’’’’’’’’’’’’’’1•’%’’’’’’’’’’’’’’’’’’’a•’&’’’’’’’’’’’’’’’’’’’‘•’’’’’’’’’’’’’’’’’’’’±•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ write block: ’’’’’’’’ѕ’2’’’’’’’’’’’’’’’’’’’–’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a–’’’’’’’’’’’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’”–’5’’’’’’’’’’’’’’’’’’’į–’#’’’’’’’’’’’’’’’’’’’—’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1—’’’’’’’’’’’’’’’’’’’’a—’’’’’’’’’’’’’’’’’’’’—’’’’’’’’’’’’’’’’’’’’”—’,’’’’’’’’’’’’’’’’’’’ї’3’’’’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’1˜’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q˜’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q˜’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘˜’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᘒ;’’’’’’’’’’’’’’’’’’’!™’%’’’’’’’’’’’’’’’’’’’Q™’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q™’C’’’’’’’’’’’’’’’’’’’Į™’’’’’’’’’’’’’’’’’’’’į™’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’!š’’’’’’’’’’’’’’’’’’’’Aš’’’’’’’’’’’’’’’’’’’’aš’)’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’‘š’.’’’’’’’’’’’’’’’’’’’Įš’-’’’’’’’’’’’’’’’’’’’ńš’0’’’’’’’’’’’’’’’’’’’1›’5’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’q›’’’’’’’’’’’’’’’’’’’’‘›’#’’’’’’’’’’’’’’’’’’’Į›’3’’’’’’’’’’’’’’’’’’’œ’9’’’’’’’’’’’’’’’’’’’Aœ’2’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”œ’U’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’D’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±’ ’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’ cl eol ’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ž’ ’’’’’’’’’’’’’’’’’’’Qž’’’’’’’’’’’’’’’’’’’’’’ cl eop ’’’’’’’’’’’qž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ PROC cl eol: ’’’’’’’’‘ž’’’’’’’’’’’’’’’’’’’’”ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ PROC cl eop: ’’’’’’’’Įž’’’’’’’’’’’’’’’’’’’’ў’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńž’!’’’’’’’’’’’’’’’’’’’!Ÿ’’’’’’’’’’’’’’’’’’’’AŸ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŸ’’’’’’’’’’’’’’’’’’’’‘Ÿ’’’’’’’’’’’’’’’’’’’’±Ÿ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’џ’0’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1 ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q ’7’’’’’’’’’’’’’’’’’’’‘ ’’’’’’’’’’’’’’’’’’’’” ’’’’’’’’’’’’’’’’’’’’Į ’#’’’’’’’’’’’’’’’’’’’ń ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’H’’’’’’’’’’’’’’’’’’’a”’5’’’’’’’’’’’’’’’’’’’’’ put (t).’’’’’’’’’’””’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į”’:’’’’’’’’’’’’’’’’’’’!¢’I’’’’’’’’’’’’’’’’’’’q¢’I’’’’’’’’’’’’’’’’’’’Į¢’I’’’’’’’’’’’’’’’’’’’£’I’’’’’’’’’’’’’’’’’’’a£’I’’’’’’’’’’’’’’’’’’’±£’J’’’’’’’’’’’’’’’’’’’¤’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1¤’’’’’’’’’’’’’’’’’’’’Q¤’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’”¤’$’’’’’’’’’’’’’’’’’’’Ѥ’%’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’A„’'’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’”„’F’’’’’’’’’’’’’’’’’’’ń„’5’’’’’’’’’’’’’’’’’’’1¦’’’’’’’’’’’’’’’’’’’’Q¦’(’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”¦’’’’’’’’’’’’’’’’’’’’Į¦’’’’’’’’’’’’’’’’’’’’ᦒ2’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’!§’)’’’’’’’’’’’’’’’’’’’Q§’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’§’’’’’’’’’’’’’’’’’’’’”§’5’’’’’’’’’’’’’’’’’’’į§’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ø’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Ø’!’’’’’’’’’’’’’’’’’’’aØ’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ø’&’’’’’’’’’’’’’’’’’’’ĮØ’’’’’’’’’’’’’’’’’’’’ᨒ)’’’’’’’’’’’’’’’’’’’©’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q©’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q©’’’’’’’’’’’’’’’’’’’’‘©’’’’’’’’’’’’’’’’’’’’±©’&’’’’’’’’’’’’’’’’’’’į©’4’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ŗ’’’’’’’’’’’’’’’’’’’’AŖ’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qŖ’’’’’’’’’’’’’’’’’’’’‘Ŗ’’’’’’’’’’’’’’’’’’’’±Ŗ’'’’’’’’’’’’’’’’’’’’’įŖ’’’’’’’’’’’’’’’’’’’’«’F’’’’’’’’’’’’’’’’’’’a«’’’’’’’’’’’’’’’’’’’’‘«’5’’’’’’’’’’’’’’’’’’’Ń«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń«’’’’’’’’’’’’’’’’’’’’¬’)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A¬’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a¬’.’’’’’’’’’’’’’’’’’’’‘¬’1’’’’’’’’’’’’’’’’’’’Ѭ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń¬’0’’’’’’’’’’’’’’’’’’’1­’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a­’’’’’’’’’’’’’’’’’’’’­’:’’’’’’’’’’’’’’’’’’’Į­’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ high word:’’’’’’’’’’’®’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A®’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a®’0’’’’’’’’’’’’’’’’’’’”®’!’’’’’’’’’’’’’’’’’’’Ń®’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń®’+’’’’’’’’’’’’’’’’’’’!Æ’3’’’’’’’’’’’’’’’’’’’aÆ’I’’’’’’’’’’’’’’’’’’’±Æ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŃÆ’*’’’’’’’’’’’’’’’’’’’°’3’’’’’’’’’’’’’’’’’’’A°’I’’’’’’’’’’’’’’’’’’’‘°’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±°’0’’’’’’’’’’’’’’’’’’’ń°’3’’’’’’’’’’’’’’’’’’’1±’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q±’/’’’’’’’’’’’’’’’’’’’‘±’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į±’’’’’’’’’’’’’’’’’’’’į±’:’’’’’’’’’’’’’’’’’’’!²’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ high word:’’’’’’’’’’’q²’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”²’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į²’’’’’’’’’’’’’’’’’’’’į²’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1³’$’’’’’’’’’’’’’’’’’’’a³’1’’’’’’’’’’’’’’’’’’’”³’+’’’’’’’’’’’’’’’’’’’ѳ’(’’’’’’’’’’’’’’’’’’’“’A’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q“’’’’’’’’’’’’’’’’’’’’q“’’’’’’’’’’’’’’’’’’’’‘“’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±“’’’’’’’’’’’’’’’’’’’’Ń“’’’’’’’’’’’’’’’’’’’’ń“’#’’’’’’’’’’’’’’’’’’’!µ’3’’’’’’’’’’’’’’’’’’’aµ’7’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’ FALSE.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”µ’9’’’’’’’’’’’’’’’’’’’ile, message);’’ down (trace file);’’’. insert record (trace file);’’’’’’’’’’. write record (trace file, "")’’’’’’’’ IF haeufigkeit on’’’’’’’’’’’ THEN haeufigkeits zaehlunghaeufigkeits zaehlung:’’’’’’’’ hole zeilen nr;’’’’’’’’’’’’’hole zeilen nr:’’’’’’’’’’’’’’’> INT CONST von pos :: pos (message, ""33"", ""254"", 1);’’’’’ zeilen nr :=N int (subtext (message, von pos, pos (message, ":", von pos + 1) - 1)).’’’> IF last conversion ok AND zeilen nr > 0 AND zeilen nr <= max> THEN zaehlwerk [zeilen nr] . anzahl INCR 1;’’’’’’’’’’’’’’’> zaehlwerk [zeilen nr] . proc := ist prozedur’’’’’’’’’END PROC report;’’’’’’’’’’’’’’>PROC report (TEXT CONST message, INT CONST value):’’’’’’’’’’’’. report (message, text (value))’’’’’’’’’’’’’’END PROC report;’’’’’’’’’’’’’’>PROC report (TEXT CONST message, REAL CONST value):’’’’’’’’’’’. report (message, text (value))’’’’’’’’’’’’’’END PROC report;’’’’’’’’’’’’’’>PROC report (TEXT CONST message, TEXT CONST value):’’’’’’’’’’’ dummy1 := message;’’’’’’’’’’ dummy1 CAT ": ";’’’’’’’’’’’’ dummy1 CAT value;’’’’’’’’’’’ report (dummy1)’’’’’’’’’’’’’END PROC report;’’’’’’’’’’’’’’>PROC report (TEXT CONST message, BOOL CONST value):’’’’’’’’’’’ dummy1 := message;’’’’’’’’’’ dummy1 CAT ": ";’’’’’’’’’’’’ THEN dummy1 CAT "TRUE"’’’’ ELSE dummy1 CAT "FALSE"’’’ report (dummy1)’’’’’’’’’’’’’END PROC report;’’’’’’’’’’’’’’PROC report on: ’’’’’’’’’’’’’’ trace on := TRUE;’’’’’’’’’’’ dummy1 := "REPORT ---> ON";’ report (dummy1)’’’’’’’’’’’’’END PROC report on;’’’’’’’’’’’PROC report off: ’’’’’’’’’’’’’ dummy1 := "REPORT ---> OFF"; report (dummy1);’’’’’’’’’’’’ trace on := FALSE;’’’’’’’’’’END PROC report off;’’’’’’’’’’.PROC assert (BOOL CONST value):’’’’’’’’’’’’’’’ assert ("", value)’’’’’’’’’’END PROC assert;’’’’’’’’’’’’’’>PROC assert (TEXT CONST message, BOOL CONST value):’’’’’’’’’’’ dummy1 := "ASSERTION:";’’’’’ dummy1 CAT message;’’’’’’’’’ dummy1 CAT " ---> ";’’’’’’’’ THEN dummy1 CAT "TRUE"’’’’ ELSE line; put ("ASSERTION:"); ’ put (message);’’’’’’’ put ("---> FALSE");’’ line; IF yes ("weiter")’’’’. THEN dummy1 CAT "FALSE"’’’’’’’’’’’’. ELSE errorstop ("assertion failed") report (dummy1)’’’’’’’’’’’’’END PROC assert;’’’’’’’’’’’’’’N(************************** haeufigkeits-zaehlung ****************)’’’’’’’’’’’PROC count on: report ("COUNT ---> ON");’’’ haeufigkeit on := TRUE;’’’’’ initialisiere haeufigkeit.’’initialisiere haeufigkeit:’’’’ forget (ds); ds := nilspace;’’’’’’’’’’’’’. zaehlwerk initialisiert := TRUE;’’’’’’’’’’’’ zaehlwerk := ds;’’’’’’’’’’’’ FOR i FROM 1 UPTO max REP’’’. zaehlwerk [i] . anzahl := 0’’’’’’’’’’’’’’’END PROC count on;’’’’’’’’’’’’PROC count off:’’’’’’’’’’’’’’’ report ("COUNT ---> OFF");’’ haeufigkeit on := FALSE’’’’’END PROC count off;’’’’’’’’’’’PROC generate counts:’’’’’’’’’ generate counts (last param)END PROC generate counts;’’’’’.PROC generate counts (TEXT CONST name): ’’’’’’ disable stop; ’’’’’’’’’’’’’’ insert counts (name); ’’’’’’ last param (name);’’’’’’’’’’ to line (input file, 1);’’’’ enable stop. ’’’’’’’’’’’’’’’END PROC generate counts;’’’’’.PROC insert counts (TEXT CONST name):’’’’’’’’’ enable stop; IF exists (name)’’’’’’’’’’’’> THEN input file := sequential file (modify, name);’’’’’’’’ col (input file, 1)’’> ELSE errorstop ("input file does not exist")’’’’’’’’’’’’’’. IF NOT zaehlwerk initialisiert’’’’’’’’’’’’’’> THEN errorstop ("count nicht eingeschaltet")’’’’’’’’’’’’’’ counts insertieren;’’’’’’’’’ dataspace loeschen;’’’’’’’’’ statistik ausgeben.’’’’’’’’’counts insertieren:’’’’’’’’’’’. REAL VAR gesamt aufrufe :: 0.0, ’’’’’’’’’’’’. proc aufrufe :: 0.0, ’’’’’’’’’’’’. andere aufrufe :: 0.0; ’’’’’’’’’’’’ zeilen nr := 1;’’’’’’’’’’’’’. WHILE zeilen nr <= lines (input file) REP’’’ cout (zeilen nr);’’’’’’’’’. IF zaehlwerk [zeilen nr] . anzahl > 0’’’’’> THEN anzahl aufrufe in die eingabe zeile einfuegen;’’’’’ aufrufe mitzaehlen’ zeilen nr INCR 1’’’’’’’’’’>anzahl aufrufe in die eingabe zeile einfuegen: ’’’’’’’’’’’’’’’. to line (input file, zeilen nr);’’’’’’’’’’’’. read record (input file, zeile);’’’’’’’’’’’’ dummy := double fis;’’’’’’’’> dummy CAT text (zaehlwerk [zeilen nr] . anzahl);’’’’’’’’’’’’ dummy CAT double fis;’’’’’’’ change (zeile, 1, 0, dummy);. write record (input file, zeile).’’’’’’’’’’’aufrufe mitzaehlen: ’’’’’’’’’’> gesamt aufrufe INCR real (zaehlwerk [zeilen nr] . anzahl); ’. IF zaehlwerk [zeilen nr] . proc ’’’’’’’’’’’’N THEN proc aufrufe INCR real (zaehlwerk [zeilen nr] . anzahl) ’’’’’’’’’’’’’N ELSE andere aufrufe INCR real (zaehlwerk [zeilen nr] . anzahl) ’’’’’’’’’’’dataspace loeschen:’’’’’’’’’’’. zaehlwerk initialisiert := FALSE;’’’’’’’’’’’ forget (ds).statistik ausgeben: ’’’’’’’’’’. put ("Anzahl der Gesamtaufrufe:"); ’’’’’’’’’. ggf int put (gesamt aufrufe); ’’’’’’’’’’’’’’ put ("davon:"); ’’’’’’’’’’’’N ggf int put (proc aufrufe); put ("Prozeduren oder Operatoren"); ’’’’’’’’’’’’N ggf int put (andere aufrufe); put ("Refinements und andere"); ’’’’’’’’’’’’’’END PROC insert counts;’’’’’’’.PROC ggf int put (REAL CONST wert):’’’’’’’’’’’ IF wert >= real (maxint)’’’’ THEN put (wert)’’’’’’’’’’’ ELSE put (int (wert))’’’’’END PROC ggf int put;’’’’’’’’’END PACKET reporter routines;’ IF exists ("rep fehler")’’’’. THEN copy ("rep fehler", "zzz")’’’’’’’’’’’> ELSE errorstop ("rep fehler exisitiert nicht")’’’’’’’’’’’’ generate reports ("zzz");’’’ edit("zzz"); forget ("zzz")’’’’’’’’’’’’’’UNTIL no ("nochmal") END REP;’edit("reporter")*)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’vector’’’’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įµ’#’’’’’’’’’’’’’’’’’’’¶’#’’’’’’’’’’’’’’’’’’’A¶’2’’’’’’’’’’’’’’’’’’’¶’%’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’ PER;’’’’’’’’’’’’’±¶’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ѷ’’’’’’’’’’’’’’’’’’’’ń¶’0’’’’’’’’’’’’’’’’’’’1·’:’’’’’’’’’’’’’’’’’’’q·’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±·’’’’’’’’’’’’’’’’’’’’Ń·’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ø’%’’’’’’’’’’’’’’’’’’’aø’’’’’’’’’’’’’’’’’’’’ø’!’’’’’’’’’’’’’’’’’’’±ø’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ńø’@’’’’’’’’’’’’’’’’’’’!¹’’’’’’’’’’’’’’’’’’’’A¹’#’’’’’’’’’’’’’’’’’’’q¹’"’’’’’’’’’’’’’’’’’’’”¹’’’’’’’’’’’’’’’’’’’’Į¹’)’’’’’’’’’’’’’’’’’’’ń¹’’’’’’’’’’’’’’’’’’’’’’ value ’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ŗ’=’’’’’’’’’’’’’’’’’’’qŗ’I’’’’’’’’’’’’’’’’’’’Įŗ’#’’’’’’’’’’’’’’’’’’’ńŗ’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’1»’2’’’’’’’’’’’’’’’’’’’q»’’’’’’’’’’’’’’’’’’’’‘»’’’’’’’’’’’’’’’’’’’’’’ CASE 0:’’’’’’’’±»’>’’’’’’’’’’’’’’’’’’’ń»’I’’’’’’’’’’’’’’’’’’’A¼’6’’’’’’’’’’’’’’’’’’’¼’=’’’’’’’’’’’’’’’’’’’Į¼’’’’’’’’’’’’’’’’’’’’Ѽ’’’’’’’’’’’’’’’’’’’’ń¼’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’½’?’’’’’’’’’’’’’’’’’’’a½’I’’’’’’’’’’’’’’’’’’’±½’#’’’’’’’’’’’’’’’’’’’į½’’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’!¾’3’’’’’’’’’’’’’’’’’’’a¾’’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’’’ CASE 0:’’’’’’’’”¾’B’’’’’’’’’’’’’’’’’’’ń¾’L’’’’’’’’’’’’’’’’’’’Aæ’6’’’’’’’’’’’’’’’’’’’æ’=’’’’’’’’’’’’’’’’’’’Įæ’’’’’’’’’’’’’’’’’’’’Ńæ’’’’’’’’’’’’’’’’’’’’ńæ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ą’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aĄ’@’’’’’’’’’’’’’’’’’’’±Ą’+’’’’’’’’’’’’’’’’’’’įĄ’8’’’’’’’’’’’’’’’’’’’!Į’C’’’’’’’’’’’’’’’’’’’qĮ’,’’’’’’’’’’’’’’’’’’’”Į’+’’’’’’’’’’’’’’’’’’’ŃĮ’*’’’’’’’’’’’’’’’’’’’Ā’@’’’’’’’’’’’’’’’’’’’QĀ’2’’’’’’’’’’’’’’’’’’’‘Ā’,’’’’’’’’’’’’’’’’’’’ĮĀ’7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ć’!’’’’’’’’’’’’’’’’’’’1Ć’ ’’’’’’’’’’’’’’’’’’’aĆ’’’’’’’’’’’’’’’’’’’’Ć’’’’’’’’’’’’’’’’’’’’”Ć’'’’’’’’’’’’’’’’’’’’’ŃĆ’1’’’’’’’’’’’’’’’’’’’Ä’.’’’’’’’’’’’’’’’’’’’AÄ’-’’’’’’’’’’’’’’’’’’’qÄ’2’’’’’’’’’’’’’’’’’’’±Ä’1’’’’’’’’’’’’’’’’’’’ńÄ’3’’’’’’’’’’’’’’’’’’’1Å’:’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’qÅ’&’’’’’’’’’’’’’’’’’’’”Å’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮÅ’$’’’’’’’’’’’’’’’’’’’ńÅ’’’’’’’’’’’’’’’’’’’’Ę’'’’’’’’’’’’’’’’’’’’’AĘ’4’’’’’’’’’’’’’’’’’’’’’ PER.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ę’’’’’’’’’’’’’’’’’’’’”Ę’'’’’’’’’’’’’’’’’’’’’ŃĘ’3’’’’’’’’’’’’’’’’’’’Ē’3’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’QĒ’’’’’’’’’’’’’’’’’’’’qĒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ē’’’’’’’’’’’’’’’’’’’’±Ē’’’’’’’’’’’’’’’’’’’’ŃĒ’’’’’’’’’’’’’’’’’’’’ńĒ’'’’’’’’’’’’’’’’’’’’’!Č’)’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’QČ’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’circle :’’’’’’’’’’’’’Č’+’’’’’’’’’’’’’’’’’’’±Č’(’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’įČ’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’É’’’’’’’’’’’’’’’’’’’’1É’#’’’’’’’’’’’’’’’’’’’aÉ’!’’’’’’’’’’’’’’’’’’’‘É’P’’’’’’’’’’’’’’’’’’’ńÉ’’’’’’’’’’’’’’’’’’’’’’ PER’’’’’’’’’’’’’’ PER.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ tausche :’’’’’’’’’’’’Ź’’’’’’’’’’’’’’’’’’’’1Ź’"’’’’’’’’’’’’’’’’’’’aŹ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ź’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±Ź’’’’’’’’’’’’’’’’’’’’’’ headline;’’’’’’’’’ŃŹ’’’’’’’’’’’’’’’’’’’’’’ columns;’’’’’’’’’’ńŹ’’’’’’’’’’’’’’’’’’’’’’ rows;’’’’’’’’’’’’’’’ footlines.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ head line :’’’’’’’’’’Ė’"’’’’’’’’’’’’’’’’’’’1Ė’1’’’’’’’’’’’’’’’’’’’qĖ’7’’’’’’’’’’’’’’’’’’’±Ė’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńĖ’’’’’’’’’’’’’’’’’’’’Ģ’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’!Ģ’=’’’’’’’’’’’’’’’’’’’’’ PER.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ columns :’’’’’’’’’’’’aĢ’'’’’’’’’’’’’’’’’’’’’‘Ģ’;’’’’’’’’’’’’’’’’’’’ŃĢ’'’’’’’’’’’’’’’’’’’’’Ķ’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ underlines :’’’’’’’’’1Ķ’'’’’’’’’’’’’’’’’’’’’aĶ’=’’’’’’’’’’’’’’’’’’’”Ķ’'’’’’’’’’’’’’’’’’’’’ŃĶ’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’rows :’’’’’’’’’’’’’’’Ī’#’’’’’’’’’’’’’’’’’’’1Ī’.’’’’’’’’’’’’’’’’’’’aĪ’’’’’’’’’’’’’’’’’’’’’’ PER.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ footlines:’’’’’’’’’’’Ī’&’’’’’’’’’’’’’’’’’’’±Ī’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įĪ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ļ’’’’’’’’’’’’’’’’’’’’!Ļ’’’’’’’’’’’’’’’’’’’’AĻ’9’’’’’’’’’’’’’’’’’’’Ļ’J’’’’’’’’’’’’’’’’’’’ŃĻ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńĻ’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’1Š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QŠ’’’’’’’’’’’’’’’’’’’’qŠ’*’’’’’’’’’’’’’’’’’’’”Š’6’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įŠ’’’’’’’’’’’’’’’’’’’’Ń’*’’’’’’’’’’’’’’’’’’’1Ń’@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ń’)’’’’’’’’’’’’’’’’’’’±Ń’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įŃ’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ņ’<’’’’’’’’’’’’’’’’’’’aŅ’<’’’’’’’’’’’’’’’’’’’”Ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮŅ’9’’’’’’’’’’’’’’’’’’’Ó’:’’’’’’’’’’’’’’’’’’’AÓ’)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qÓ’’’’’’’’’’’’’’’’’’’’‘Ó’’’’’’’’’’’’’’’’’’’’”Ó’’’’’’’’’’’’’’’’’’’’ĮÓ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įÓ’’’’’’’’’’’’’’’’’’’’Ō’'’’’’’’’’’’’’’’’’’’’1Ō’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ put gesamt :’’’’’’’’’Ō’'’’’’’’’’’’’’’’’’’’’±Ō’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńŌ’’’’’’’’’’’’’’’’’’’’Õ’'’’’’’’’’’’’’’’’’’’’AÕ’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Õ’’’’’’’’’’’’’’’’’’’’‘Õ’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ part name :’’’’’’’’’’ĮÕ’"’’’’’’’’’’’’’’’’’’’ńÕ’ ’’’’’’’’’’’’’’’’’’’!Ö’"’’’’’’’’’’’’’’’’’’’QÖ’+’’’’’’’’’’’’’’’’’’’Ö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ö’’’’’’’’’’’’’’’’’’’’±Ö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įÖ’’’’’’’’’’’’’’’’’’’’’’ help := 0;’’’’’’’’×’#’’’’’’’’’’’’’’’’’’’1×’1’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’ help.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘×’!’’’’’’’’’’’’’’’’’’’Į×’"’’’’’’’’’’’’’’’’’’’ń×’P’’’’’’’’’’’’’’’’’’’QŲ’>’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ų’2’’’’’’’’’’’’’’’’’’’ŃŲ’&’’’’’’’’’’’’’’’’’’’Ł’#’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’1Ł’D’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’ help.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ł’’’’’’’’’’’’’’’’’’’’”Ł’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŃŁ’ ’’’’’’’’’’’’’’’’’’’Ś’;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AŚ’’’’’’’’’’’’’’’’’’’’aŚ’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ś’’’’’’’’’’’’’’’’’’’’±Ś’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įŚ’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ū’-’’’’’’’’’’’’’’’’’’’AŪ’7’’’’’’’’’’’’’’’’’’’Ū’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”Ū’!’’’’’’’’’’’’’’’’’’’ŃŪ’’’’’’’’’’’’’’’’’’’’ńŪ’’’’’’’’’’’’’’’’’’’’’’ line (4)’’’’’’’’’’Ü’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AÜ’D’’’’’’’’’’’’’’’’’’’‘Ü’’’’’’’’’’’’’’’’’’’’ĮÜ’'’’’’’’’’’’’’’’’’’’’ńÜ’1’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’1Ż’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aŻ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ż’G’’’’’’’’’’’’’’’’’’’ŃŻ’G’’’’’’’’’’’’’’’’’’’!Ž’G’’’’’’’’’’’’’’’’’’’qŽ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ž’’’’’’’’’’’’’’’’’’’’±Ž’?’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ß’’’’’’’’’’’’’’’’’’’’Aß’’’’’’’’’’’’’’’’’’’’Qß’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get clock:’’’’’’’’’’’qß’!’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ѓa€ė’’××ŌŌÜ’’’’ÜÜ؁>M’’’’’’vector’’’’’’’’’’’’’’’’’’’’’’’×’’’’’’’’’’’’’’’’’’a€’M’’’’’’’’’’’’’’’’’’’±€’M’’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’A’!’’’’’’’’’’’’’’’’’’’q’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’*’’’’’’’’’’’’’’’’’’’с’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’1‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q‚’M’’’’’’’’’’’’’’’’’’’”‚’’’’’’’’’’’’’’’’’’’’Į‚’*’’’’’’’’’’’’’’’’’’’ń‚’’’’’’’’’’’’’’’’’’’’ƒ’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ element i :’’’’’’’’’’Qƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qƒ’’’’’’’’’’’’’’’’’’’’ƒ’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’у’&’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP :=;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A„’*’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP :=;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ф’’’’’’’’’’’’’’’’’’’’ń„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1…’:’’’’’’’’’’’’’’’’’’’’’ IF lng <= 0’’’’’’’’q…’/’’’’’’’’’’’’’’’’’’’±…’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’х’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń…’(’’’’’’’’’’’’’’’’’’’!†’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A†’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a†’+’’’’’’’’’’’’’’’’’’’‘†’ ’’’’’’’’’’’’’’’’’’’Į†’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP SUB;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ᆒ ’’’’’’’’’’’’’’’’’’’’’ v.lng’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!‡’"’’’’’’’’’’’’’’’’’’’’’ v.lng’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q‡’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q‡’!’’’’’’’’’’’’’’’’’’’”‡’’’’’’’’’’’’’’’’’’’’Į‡’’’’’’’’’’’’’’’’’’’’ᇒ+’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aˆ’8’’’’’’’’’’’’’’’’’’’ˆ’!’’’’’’’’’’’’’’’’’’’±ˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ш’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńˆ’’’’’’’’’’’’’’’’’’’’!‰’’’’’’’’’’’’’’’’’’’’’’ END OP =;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A‰’ ’’’’’’’’’’’’’’’’’’’q‰’’’’’’’’’’’’’’’’’’’’’’ END OP <>;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘‰’’’’’’’’’’’’’’’’’’’’’’ v’’’’’’’’’’’’’’’’’’’’ END OP +;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±‰’!’’’’’’’’’’’’’’’’’’’ቒ ’’’’’’’’’’’’’’’’’’’’’ v := l;’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’1Š’A’’’’’’’’’’’’’’’’’’’’’ v’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP +;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’’’ v := a;’’’’’’’’’’’’”Š’’’’’’’’’’’’’’’’’’’’ĮŠ’1’’’’’’’’’’’’’’’’’’’’’ v’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP -;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‹’!’’’’’’’’’’’’’’’’’’’1‹’ ’’’’’’’’’’’’’’’’’’’’’ v := l;’’’’’’’’’’’’a‹’’’’’’’’’’’’’’’’’’’’‹’A’’’’’’’’’’’’’’’’’’’’’ v’’’’’’’’’’’’’’’’’’’’ END OP -;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ы’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’!Œ’’’’’’’’’’’’’’’’’’’’AŒ’’’’’’’’’’’’’’’’’’’’aŒ’5’’’’’’’’’’’’’’’’’’’’’ x’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP *;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”Œ’,’’’’’’’’’’’’’’’’’’’’’ r*v’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP *;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ь’,’’’’’’’’’’’’’’’’’’’’’ v := a;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’1’’’’’’’’’’’’’’’’’’’’’ v’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP *;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a’,’’’’’’’’’’’’’’’’’’’’’ v := a;’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’±’1’’’’’’’’’’’’’’’’’’’’’ v’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP /;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’Ž’:’’’’’’’’’’’’’’’’’’’QŽ’’’’’’’’’’’’’’’’’’’’aŽ’’’’’’’’’’’’’’’’’’’’Ž’1’’’’’’’’’’’’’’’’’’’ĮŽ’’’’’’’’’’’’’’’’’’’’įŽ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ ELIF i < 1’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’я’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’0’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’ᐒ!’’’’’’’’’’’’’’’’’’’‘’&’’’’’’’’’’’’’’’’’’’A‘’#’’’’’’’’’’’’’’’’’’’q‘’’’’’’’’’’’’’’’’’’’’‘‘’’’’’’’’’’’’’’’’’’’’±‘’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ё’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į‘’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’’’ REAL VAR x;’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC get;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’4’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’“’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC put;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A“’’’’’’’’’’’’’’’’’’’’a“’’’’’’’’’’’’’’’’’’’’“’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC put;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±“’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ß’’’’’’’’’’’’’’’’’’’’Įß’3’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’!ą’4’’’’’’’’’’’’’’’’’’’aą’,’’’’’’’’’’’’’’’’’’’‘ą’8’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’Ńą’’’’’’’’’’’’’’’’’’’’ńą’8’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’1į’’’’’’’’’’’’’’’’’’’’Qį’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qį’’’’’’’’’’’’’’’’’’’’‘į’/’’’’’’’’’’’’’’’’’’’Ńį’’’’’’’’’’’’’’’’’’’’įį’&’’’’’’’’’’’’’’’’’’’ā’>’’’’’’’’’’’’’’’’’’’’’ PER.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Qā’’’’’’’’’’’’’’’’’’’’qā’’’’’’’’’’’’’’’’’’’’‘ā’ ’’’’’’’’’’’’’’’’’’’Įā’’’’’’’’’’’’’’’’’’’’įā’’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’!ć’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’Ać’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’hw date:’’’’’’’’’’’’’ać’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘ć’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įć’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńć’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’hw time:’’’’’’’’’’’’’!ä’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Qä’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ä’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ä’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įä’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’å’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!å’J’’’’’’’’’’’’’’’’’’’qå’J’’’’’’’’’’’’’’’’’’’Įå’J’’’’’’’’’’’’’’’’’’’ę’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aę’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ę’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ę’!’’’’’’’’’’’’’’’’’’’Ńę’(’’’’’’’’’’’’’’’’’’’ē’&’’’’’’’’’’’’’’’’’’’1ē’2’’’’’’’’’’’’’’’’’’’qē’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ LET ack = 0;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ PROC shutup:’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ē’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įē’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’č’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1č’’’’’’’’’’’’’’’’’’’’Qč’$’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’č’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±č’’’’’’’’’’’’’’’’’’’’Ńč’’’’’’’’’’’’’’’’’’’’ńč’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’é’’’’’’’’’’’’’’’’’’’’1é’#’’’’’’’’’’’’’’’’’’’aé’’’’’’’’’’’’’’’’’’’’é’’’’’’’’’’’’’’’’’’’’”é’’’’’’’’’’’’’’’’’’’’Įé’’’’’’’’’’’’’’’’’’’’įé’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ź’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ź’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aź’%’’’’’’’’’’’’’’’’’’’qź’.’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ź’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įź’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńź’)’’’’’’’’’’’’’’’’’’’!ė’’’’’’’’’’’’’’’’’’’’’’ operation;’’’’’’’’Aė’’’’’’’’’’’’’’’’’’’’qė’’’’’’’’’’’’’’’’’’’’‘ė’!’’’’’’’’’’’’’’’’’’’Įė’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ show date:’’’’’’’’’’’’’ page;’’’’’’’’’’’’’’’ line (2); ’’’’’’’’įė’/’’’’’’’’’’’’’’’’’’’!ģ’<’’’’’’’’’’’’’’’’’’’’’ line (2).’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aģ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ģ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ģ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įģ’’’’’’’’’’’’’’’’’’’’įģ’5’’’’’’’’’’’’’’’’’’’!ķ’’’’’’’’’’’’’’’’’’’’Aķ’’’’’’’’’’’’’’’’’’’’aķ’’’’’’’’’’’’’’’’’’’’ķ’0’’’’’’’’’’’’’’’’’’’Įķ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įķ’’’’’’’’’’’’’’’’’’’’ī’’’’’’’’’’’’’’’’’’’’!ī’2’’’’’’’’’’’’’’’’’’’aī’’’’’’’’’’’’’’’’’’’’ī’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ī’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įī’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ļ’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ļ’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aļ’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ļ’’’’’’’’’’’’’’’’’’’’Ńļ’’’’’’’’’’’’’’’’’’’’ńļ’*’’’’’’’’’’’’’’’’’’’!š’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Qš’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’±š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ńš’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńš’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’1ń’’’’’’’’’’’’’’’’’’’’Ań’’’’’’’’’’’’’’’’’’’’Qń’ ’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’”ń’1’’’’’’’’’’’’’’’’’’’įń’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ PER’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ņ’’’’’’’’’’’’’’’’’’’’’’ init;’’’’’’’’’’’’’Aņ’'’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’qņ’’’’’’’’’’’’’’’’’’’’‘ņ’’’’’’’’’’’’’’’’’’’’±ņ’/’’’’’’’’’’’’’’’’’’’ńņ’’’’’’’’’’’’’’’’’’’’ó’&’’’’’’’’’’’’’’’’’’’Aó’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ PER.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qó’’’’’’’’’’’’’’’’’’’’‘ó’’’’’’’’’’’’’’’’’’’’±ó’’’’’’’’’’’’’’’’’’’’Ńó’[’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’message:’’’’’’’’’’’’’1ō’’’’’’’’’’’’’’’’’’’’Qō’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘ō’’’’’’’’’’’’’’’’’’’’±ō’’’’’’’’’’’’’’’’’’’’’’ THEN 0’’’’’’’’’Ńō’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’init:’’’’’’’’’’’’’’’’ńō’ ’’’’’’’’’’’’’’’’’’’!õ’"’’’’’’’’’’’’’’’’’’’Qõ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’õ’$’’’’’’’’’’’’’’’’’’’±õ’’’’’’’’’’’’’’’’’’’’Ńõ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńõ’’’’’’’’’’’’’’’’’’’’ö’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aö’’’’’’’’’’’’’’’’’’’’aö’’’’’’’’’’’’’’’’’’’’‘ö’?’’’’’’’’’’’’’’’’’’’įö’I’’’’’’’’’’’’’’’’’’’1÷’ ’’’’’’’’’’’’’’’’’’’a÷’6’’’’’’’’’’’’’’’’’’’”÷’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’Į÷’’’’’’’’’’’’’’’’’’’’į÷’2’’’’’’’’’’’’’’’’’’’!ų’6’’’’’’’’’’’’’’’’’’’aų’’’’’’’’’’’’’’’’’’’’ų’1’’’’’’’’’’’’’’’’’’’Įų’’’’’’’’’’’’’’’’’’’’įų’3’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’!ł’/’’’’’’’’’’’’’’’’’’’ał’ ’’’’’’’’’’’’’’’’’’’‘ł’$’’’’’’’’’’’’’’’’’’’Įł’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įł’’’’’’’’’’’’’’’’’’’’ś’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ escaped :’’’’’’’’’’’’!ś’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aś’’’’’’’’’’’’’’’’’’’’Qś’2’’’’’’’’’’’’’’’’’’’‘ś’?’’’’’’’’’’’’’’’’’’’įś’J’’’’’’’’’’’’’’’’’’’1ū’@’’’’’’’’’’’’’’’’’’’ū’’’’’’’’’’’’’’’’’’’’”ū’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’fehler :’’’’’’’’’’’’’Įū’’’’’’’’’’’’’’’’’’’’įū’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aü’$’’’’’’’’’’’’’’’’’’’qü’’’’’’’’’’’’’’’’’’’’‘ü’=’’’’’’’’’’’’’’’’’’’Ńü’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’!ż’’’’’’’’’’’’’’’’’’’’Aż’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’aż’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’”ż’ ’’’’’’’’’’’’’’’’’’’Ńż’’’’’’’’’’’’’’’’’’’’ńż’/’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’1ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’až’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ž’?’’’’’’’’’’’’’’’’’’’Ńž’I’’’’’’’’’’’’’’’’’’’!’’D’’’’’’’’’’’’’’’’’’’q’’D’’’’’’’’’’’’’’’’’’’Į’’D’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ break;’’’’’’’’’’’’R’J’’’’’’’’’’’’’’’’’’’¢’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’I’’’’’’’’’’’’’’’’’’’b’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ THEN’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’E’’’’’’’’’’’’’’’’’’’b’K’’’’’’’’’’’’’’’’’’’²’3’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’R’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET vector DEFINES VECTOR, :=, vector, (* Autor : H.Indenbirken *)’N SUB, LENGTH, length, norm, (* Stand : 21.10.83 *)’> nilvector, replace, =, <>,’’’’’’’’’’’’’’. +, -, *, /,’’’’’’’’’’’’’. get, put :’’’’’’’’’’’’’’.TYPE VECTOR = STRUCT (INT lng, TEXT elem);’’’’>TYPE INITVECTOR = STRUCT (INT lng, REAL value);’’’’’’’’’’’’’’’TEXT VAR t :: "12345678";’’’’’VECTOR VAR v :: nilvector;’’’’N(****************************************************************************’PROC dump (VECTOR CONST v) :’’. put line (text (v.lng) + " Elemente :");’’’’ FOR i FROM 1 UPTO v.lng’’’’’> REP put line (text (i) + ": " + text (element i)) PER .’’’’ v.elem RSUB i .’’’’’’’’’’’’END PROC dump;N****************************************************************************)’.OP := (VECTOR VAR l, VECTOR CONST r) :’’’’’’’’ l.lng := r.lng;’’’’’’’’’’’’’ l.elem := r.elem’’’’’’’’’’’’.OP := (VECTOR VAR l, INITVECTOR CONST r) :’’’’ l.lng := r.lng;’’’’’’’’’’’’’ replace (t, 1, r.value);’’’’ l.elem := r.lng * t’’’’’’’’’INITVECTOR PROC nilvector :’’’ vector (1, 0.0)’’’’’’’’’’’’END PROC nilvector;’’’’’’’’’’’>INITVECTOR PROC vector (INT CONST lng, REAL CONST value) :’’’’> THEN errorstop ("PROC vector : lng <= 0") FI;’’’’’’’’’’’’’’’ INITVECTOR : (lng, value)’’’END PROC vector;’’’’’’’’’’’’’’.INITVECTOR PROC vector (INT CONST lng) :’’’’’’ vector (lng, 0.0)’’’’’’’’’’’END PROC vector;’’’’’’’’’’’’’’.REAL OP SUB (VECTOR CONST v, INT CONST i) :’’’. test ("REAL OP SUB : ", v, i);’’’’’’’’’’’’’’ v.elem RSUB i’’’’’’’’’’’’’’’.INT OP LENGTH (VECTOR CONST v) :’’’’’’’’’’’’’’END OP LENGTH;.INT PROC length (VECTOR CONST v) :’’’’’’’’’’’’END PROC length;’’’’’’’’’’’’’’.REAL PROC norm (VECTOR CONST v) :’’’’’’’’’’’’’ REAL VAR result :: 0.0;’’’’’ FOR i FROM 1 UPTO v.lng’’’’’. REP result INCR ((v.elem RSUB i)**2) PER;’’’ sqrt (result) .’’’’’’’’’’’’END PROC norm;>PROC replace (VECTOR VAR v, INT CONST i, REAL CONST r) :’’’’’’. test ("PROC replace : ", v, i);’’’’’’’’’’’’’ replace (v.elem, i, r)’’’’’’END PROC replace;’’’’’’’’’’’’’.BOOL OP = (VECTOR CONST l, r) :’’’’’’’’’’’’’’’ l.elem = r.elem’’’’’’’’’’’’’.BOOL OP <> (VECTOR CONST l, r) :’’’’’’’’’’’’’’ l.elem <> r.elem’’’’’’’’’’’’VECTOR OP + (VECTOR CONST v) :.VECTOR OP + (VECTOR CONST l, r) :’’’’’’’’’’’’’. test ("VECTOR OP + : ", l, r);’’’’’’’’’’’’’’ FOR i FROM 1 UPTO v.lng’’’’’N REP replace (v.elem, i, (l.elem RSUB i) + (r.elem RSUB i)) PER;’’’’’’’’’’’’’VECTOR OP - (VECTOR CONST a) : FOR i FROM 1 UPTO v.lng’’’’’> REP replace (v.elem, i, - (a.elem RSUB i)) PER;’’’’’’’’’’’’’.VECTOR OP - (VECTOR CONST l, r) :’’’’’’’’’’’’’. test ("VECTOR OP - : ", l, r);’’’’’’’’’’’’’’ FOR i FROM 1 UPTO v.lng’’’’’N REP replace (v.elem, i, (l.elem RSUB i) - (r.elem RSUB i)) PER;’’’’’’’’’’’’’.REAL OP * (VECTOR CONST l, r) :’’’’’’’’’’’’’’’ test ("REAL OP * : ", l, r); REAL VAR x :: 0.0;’’’’’’’’’’ FOR i FROM 1 UPTO l.lng’’’’’> REP x INCR ((l.elem RSUB i) * (r.elem RSUB i)) PER;’’’’’’’’’.VECTOR OP * (VECTOR CONST v, REAL CONST r) :’’.VECTOR OP * (REAL CONST r, VECTOR CONST a) :’’ FOR i FROM 1 UPTO v.lng’’’’’> REP replace (v.elem, i, r*(a.elem RSUB i)) PER;’’’’’’’’’’’’’.VECTOR OP / (VECTOR CONST a, REAL CONST r) :’’ FOR i FROM 1 UPTO v.lng’’’’’> REP replace (v.elem, i, (a.elem RSUB i)/r) PER;’’’’’’’’’’’’’TEXT VAR error :: "";’’’’’’’’’>PROC test (TEXT CONST proc, VECTOR CONST v, INT CONST i) :’’’’ IF i > v.lng THEN error := proc;’’’’’’’’’> error CAT "subscript overflow (LENGTH v=";’’’’’’’’’’’’’ error CAT text (v.lng); error CAT ", i=";’’’’’’ error CAT text (i);’’’’ error CAT ")";’’’’’’’’’ errorstop (error)’’’’’’ THEN error := proc;’’’’’’’’’. error CAT "subscript underflow (i = ";’ error CAT text (i);’’’’ error CAT ")";’’’’’’’’’ errorstop (error)’’’’’’END PROC test;>PROC test (TEXT CONST proc, VECTOR CONST a, b) :’’’’’’’’’’’’’’ IF a.lng <> b.lng’’’’’’’’’’’ THEN error := proc;’’’’’’’’’ error CAT "LENGTH a ("; IF a.lng <= 0’’’’’’’’’’. THEN error CAT "undefined"’’’’’’’’’’’’’. ELSE error CAT text (a.lng) FI;’’’’’’’’. error CAT ") <> LENGTH b (";’’’’’’’’’’’ error CAT text (b.lng); error CAT ")";’’’’’’’’’ errorstop (error)’’’’’’END PROC test;.PROC get (VECTOR VAR v, INT CONST lng) :’’’’’’ v.lng := lng;’’’’’’’’’’’’’’’ v.elem := lng * "12345678";’ FOR i FROM 1 UPTO lng’’’’’’’ REP get (x); replace (v.elem, i, x)’’>PROC put (VECTOR CONST v, INT CONST length, fracs) :’’’’’’’’’’ FOR i FROM 1 UPTO v.lng’’’’’> REP put (text (v.elem RSUB i, length, fracs)) PER’’’’’’’’’’’PROC put (VECTOR CONST v) :’’’ FOR i FROM 1 UPTO v.lng’’’’’. REP put (text (v.elem RSUB i)) PER’’’’’’’’’’END PACKET vector;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’N(*************************************************************************)’’’N(*** AT-spezifische Software, die zum Lesen der Hardwareuhr und ***)’’’N(*** Booten in anderen Partitionen benŚtigt wird. ***)’’’N(*** ***)’’’N(*** Zusammengestellt und geŁndert : Werner Sauerwein, GMD ***)’’’N(*** Stand : 31.10.86 ***)’’’N(*************************************************************************)’’’NPACKET splitting DEFINES low byte, (* Copyright (C) 1985 *)’’’’’’’’N high byte, (* Martin SchŚnbeck, Spenge *)’’’’’’’’N low word, (* Stand: 13.09.85 *)’’’’’’’’. high word: ’’’’’’’’’.INT PROC high byte (INT CONST value):’’’’’’’’’ TEXT VAR x := " ";’’’’’’’ replace (x, 1, value);’’’’ code (x SUB 2)’’’’’’’’’’’’END PROC high byte;’’’’’’’’’’’.INT PROC low byte (INT CONST value):’’’’’’’’’’ TEXT VAR x := " ";’’’’’’’ replace (x, 1, value);’’’’ code (x SUB 1)’’’’’’’’’’’’END PROC low byte; ’’’’’’’’’’’>INT PROC high word (REAL CONST double precission int):’’’’’’’’. int (double precission int / 65536.0)’’’’’END PROC high word;’’’’’’’’’’’>INT PROC low word (REAL CONST double precission int): ’’’’’’’’. string of low bytes ISUB 1.’’’’’’’’’’’’’’’string of low bytes:’’’’’’’’’’> code (int (double precission int MOD 256.0)) +’’’’’’’’’’’’> code (int ((double precission int MOD 65536.0) / 256.0)). END PROC low word; ’’’’’’’’’’’END PACKET splitting;’’’’’’’’’PACKET basic block io DEFINES’ write block:.PROC read block (DATASPACE VAR ds,’’’’’’’’’’’’. INT CONST ds page no, ’’’’’’’. INT CONST block no,’’’’’’’’’’. INT VAR return code):’’’’’’’’ read block;  retry if read error.’’’’’’’’> block in (ds, ds page no, 0, block no, return code).’’’’’’’’retry if read error: ’’’’’’’’’ INT VAR retry;’’’’’’’’’’’’’’> FOR retry FROM 1 UPTO 10 WHILE return code = 2 REP ’’’’’’’’’. reset to block 0 if fifth try; ’’’’’’’’’’’ read block ’’’’’’’’’’’’’’’.reset to block 0 if fifth try: ’’’’’’’’’’’’’’’ IF retry = 5 ’’’’’’’’’’’’’’’> THEN block in (ds, ds page no, 0, 0, return code) ’’’’’’’’END PROC read block;’’’’’’’’’’.PROC write block (DATASPACE CONST ds,’’’’’’’’’. INT CONST ds page no, ’’’’’’’. INT CONST block no,’’’’’’’’’’. INT VAR return code):’’’’’’’’ write block; ’’’’’’’’’’’’’’’ retry if write error. ’’’’’’> block out (ds, ds page no, 0, block no, return code).’’’’’’’retry if write error: ’’’’’’’’ INT VAR retry;’’’’’’’’’’’’’’> FOR retry FROM 1 UPTO 10 WHILE return code = 2 REP ’’’’’’’’’. reset to block 0 if fifth try; ’’’’’’’’’’’ write block ’’’’’’’’’’’’’’.reset to block 0 if fifth try: ’’’’’’’’’’’’’’’ IF retry = 5 ’’’’’’’’’’’’’’’ THEN disable stop;’’’’’’’’. DATASPACE VAR dummy ds := nilspace;’’> block in (dummy ds, 2, 0, 0, return code);’’’’’’’’’’’ forget (dummy ds);’’’ enable stop’’’’’’’’’’END PROC write block; ’’’’’’’’>PROC read block (DATASPACE VAR ds, INT CONST ds page,’’’’’’’’’. REAL CONST archive block):’’’ enable stop;’’’’’’’’’’’’’’’> read block (ds, ds page, archive block, error);’’’’’’’’’’’’ INT VAR error;’’’’’’’’’’’’’ SELECT error OF’’’’’’’’’’’’> CASE 1: error stop ("Platte kann nicht gelesen werden");N CASE 2: error stop ("Lesefehler bei Block "+ text (archive block));’’’’’> CASE 3: error stop ("Versorgungsfehler Archiv");’’’’’’’’> OTHERWISE error stop ("unbekannter Fehler auf Platte");’ END SELECT;END PROC read block;’’’’’’’’’’>PROC write block (DATASPACE CONST ds, INT CONST ds page,’’’’’’. REAL CONST archive block):’’ enable stop;’’’’’’’’’’’’’’’> write block (ds, ds page, archive block, error);’’’’’’’’’’’ INT VAR error;’’’’’’’’’’’’’ SELECT error OF’’’’’’’’’’’’N CASE 1: error stop ("Platte kann nicht geschrieben werden");’’’’’’’’’’’’N CASE 2: error stop ("Schreibfehler bei Block "+ text (archive block));’’> CASE 3: error stop ("Versorgungsfehler Archiv");’’’’’’’’> OTHERWISE error stop ("unbekannter Fehler auf Platte");’ END SELECT;END PROC write block;’’’’’’’’’.PROC read block (DATASPACE VAR ds,’’’’’’’’’’’’. INT CONST ds page no, ’’’’’’’. REAL CONST block no,’’’’’’’’’. INT VAR return code):’’’’’’’’ read block;  retry if read error.’’’’’’’’> block in (ds, ds page no, high word (block no),’’’’’’’’’’’’’N low word (block no), return code).’’’’’’’’’’’’’’’retry if read error: ’’’’’’’’’ INT VAR retry;’’’’’’’’’’’’’’> FOR retry FROM 1 UPTO 10 WHILE return code = 2 REP ’’’’’’’’’. reset to block 0 if fifth try; ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’matrix’’’’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į±a€ė’’ääįįč’’’’ččå>M’’’’’’matrix’’’’’’’’’a€’B’’’’’’’’’’’ä’’’’’’’’’’’’’’’’’’±€’G’’’’’’’’’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’’Q’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’ၒ’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’!‚’’’’’’’’’’’’’’’’’’’’A‚’2’’’’’’’’’’’’’’’’’’’‚’&’’’’’’’’’’’’’’’’’’’±‚’’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ƒ’7’’’’’’’’’’’’’’’’’’’qƒ’C’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įƒ’’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’გM’’’’’’’’’’’’’’’’’’’1„’’’’’’’’’’’’’’’’’’’’Q„’J’’’’’’’’’’’’’’’’’’’”„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’ф’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!…’&’’’’’’’’’’’’’’’’’’’Q…’’’’’’’’’’’’’’’’’’’’’’ END OP :=;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q…’*’’’’’’’’’’’’’’’’’’’”…’’’’’’’’’’’’’’’’’’’’Į…’’’’’’’’’’’’’’’’’’’’į…’2’’’’’’’’’’’’’’’’’’’’’ IF r.idn’’’’’’’’’’’!†’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’idn :’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’A†’’’’’’’’’’’’’’’’’’’’a†’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP :=;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”†’D’’’’’’’’’’’’’’’’’’’ń†’’’’’’’’’’’’’’’’’’’’‡’,’’’’’’’’’’’’’’’’’’’1‡’’’’’’’’’’’’’’’’’’’’Q‡’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘‡’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į‡’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ᇒ2’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aˆ’&’’’’’’’’’’’’’’’’’’’‘ˆ’’’’’’’’’’’’’’’’’’’’”ˆ’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ሒ&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC idn;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‰’/’’’’’’’’’’’’’’’’’’’Q‰’%’’’’’’’’’’’’’’’’’’’‰’.’’’’’’’’’’’’’’’’’’’±‰’'’’’’’’’’’’’’’’’’’’’ቒ$’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ v’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC row;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Š’2’’’’’’’’’’’’’’’’’’’aŠ’"’’’’’’’’’’’’’’’’’’’‘Š’’’’’’’’’’’’’’’’’’’’±Š’’’’’’’’’’’’’’’’’’’’ъ’$’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ v’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!‹’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A‹’!’’’’’’’’’’’’’’’’’’’’’ m.columns’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q‹’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘‹’’’’’’’’’’’’’’’’’’’’’’ m.rows’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP ROWS;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±‹’7’’’’’’’’’’’’’’’’’’’ń‹’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC sub;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Œ’L’’’’’’’’’’’’’’’’’’’Œ’>’’’’’’’’’’’’’’’’’’’ĮŒ’$’’’’’’’’’’’’’’’’’’’ńŒ’5’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’-’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į’9’’’’’’’’’’’’’’’’’’’!Ž’0’’’’’’’’’’’’’’’’’’’aŽ’A’’’’’’’’’’’’’’’’’’’±Ž’$’’’’’’’’’’’’’’’’’’’įŽ’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’Q’=’’’’’’’’’’’’’’’’’’’‘’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į’J’’’’’’’’’’’’’’’’’’’1’4’’’’’’’’’’’’’’’’’’’q’=’’’’’’’’’’’’’’’’’’’±’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’A‘’’’’’’’’’’’’’’’’’’’’’’ THEN FALSE’’’’’’’’’a‘’’’’’’’’’’’’’’’’’’’’’’ THEN FALSE’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP =;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”‘’ ’’’’’’’’’’’’’’’’’’’ё’’’’’’’’’’’’’’’’’’’’’’ THEN TRUE’’’’’’’’’’ń‘’’’’’’’’’’’’’’’’’’’’’’ THEN TRUE’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP <>;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’-’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’’ m’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP +;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į’’!’’’’’’’’’’’’’’’’’’’ń’’>’’’’’’’’’’’’’’’’’’’1“’J’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ a := l;’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’“’&’’’’’’’’’’’’’’’’’’’±“’=’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP +;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń“’’’’’’’’’’’’’’’’’’’’’’ a := m;’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’”’&’’’’’’’’’’’’’’’’’’’A”’*’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ a’’’’’’’’’’’’’’’’’’’’’’’’ read block ’’’’’’’’’’’’’’’.reset to block 0 if fifth try: ’’’’’’’’’’’’’’’ IF retry = 5 ’’’’’’’’’’’’’’’> THEN block in (ds, ds page no, 0, 0, return code) ’’’’’’’’END PROC read block;’’’’’’’’’’.PROC write block (DATASPACE CONST ds,’’’’’’’’’. INT CONST ds page no, ’’’’’’’. REAL CONST block no,’’’’’’’’’. INT VAR return code):’’’’’’’’ write block; ’’’’’’’’’’’’’’’ retry if write error. ’’’’’’> block out (ds, ds page no, high word (block no),’’’’’’’’’’’’N low word (block no), return code).’’’’’’’’’’’’’’retry if write error: ’’’’’’’’ INT VAR retry;’’’’’’’’’’’’’’> FOR retry FROM 1 UPTO 10 WHILE return code = 2 REP ’’’’’’’’’. reset to block 0 if fifth try; ’’’’’’’’’’’ write block ’’’’’’’’’’’’’’.reset to block 0 if fifth try: ’’’’’’’’’’’’’’’ IF retry = 5 ’’’’’’’’’’’’’’’ THEN disable stop;’’’’’’’’. DATASPACE VAR dummy ds := nilspace;’’> block in (dummy ds, 2, 0, 0, return code);’’’’’’’’’’’ forget (dummy ds);’’’ enable stop’’’’’’’’’’END PROC write block; ’’’’’’’’END PACKET basic block io;’’’’NPACKET utilities DEFINES getchoice, cleol, cleop, inverse, put center:’’’’’’’’>INT PROC get choice (INT CONST von, bis, TEXT VAR retchar):’’’. get choice (von, bis, von, retchar)’’’’’’’’’END PROC get choice;’’’’’’’’’’NINT PROC get choice (INT CONST von, bis, zusatz, TEXT VAR retchar):’’’’’’’’’’’ LET return = ""13"",’’’’’’ escape = ""27"",’’’’’’ left = ""8"";’’’’’’’ TEXT VAR buffer; ’’’’’’’’’’ INT VAR cx, cy;’’’’’’’’’’’’. get cursor (cx, cy); out (" " + left);’’’’’. cursor (cx, cy); buffer := incharety;. UNTIL input ok OR buffer = escape PER; ’> IF buffer = escape THEN retchar := escape;’’’’’’’’’’’’’’> LEAVE get choice WITH 0’’’’’’’’’ out (buffer); ’’’’’’’’’’. leseschleife bis left or ret;’’’’’’’’’’’> IF retchar = left THEN out (left + " ") FI;’’’’’’’’’’’> IF retchar = escape THEN LEAVE get choice WITH 0 FI’’’’’> UNTIL retchar = return OR retchar = escape PER;’’’’’’’’’’’’ int (buffer). ’’’’’’’’’’’’’^input ok : (buffer >= text (von) AND buffer <= text (bis)) OR buffer = text (zusatz).’’’’’’’’’leseschleife bis left or ret:’ inchar (retchar) ’’’’’’’’N UNTIL retchar = return OR retchar = left OR retchar = escape PER.’’’’’’’’’’END PROC get choice;’’’’’’’’’’.PROC cl eol (INT CONST cx, cy): ’’’’’’’’’’’’’’ cursor (cx, cy); ’’’’’’’’’’END PROC cl eol; ’’’’’’’’’’’’’.PROC cl eop (INT CONST cx, cy): ’’’’’’’’’’’’’’ cursor (cx, cy); ’’’’’’’’’’END PROC cl eop; ’’’’’’’’’’’’’ out (""5"") END PROC cl eol;’’’’’’’’’’’’’’ out (""4"") END PROC cl eop; ’’’’’’’’’’’’’.TEXT PROC inverse (TEXT CONST t):’’’’’’’’’’’’’ ""15"" + t + " " + ""14""’’’END PROC inverse; ’’’’’’’’’’’’.PROC put center (TEXT CONST t):’’’’’’’’’’’’’’’ put center (t, 80)’’’’’’’’’END PROC put center;’’’’’’’’’’>PROC put center (INT CONST zeile, TEXT CONST t):’’’’’’’’’’’’’’ put center (zeile, t, 80)’’END PROC put center;’’’’’’’’’’>PROC put center (TEXT CONST t, INT CONST gesamtbreite):’’’’’’’ INT VAR cy; get cursor (cy, cy);’’’’’’’. put center (cy, t, gesamtbreite)’’’’’’’’’’’END PROC put center;’’’’’’’’’’NPROC put center (INT CONST zeile, TEXT CONST t, INT CONST gesamtbreite):’’’’’’> cursor ((gesamtbreite - length (t)) DIV 2, zeile);’’’’’’’’’END PROC put center;’’’’’’’’’’END PACKET utilities’’’’’’’’’’>PACKET part DEFINES activate, show actual partition table:’’’’N (* Copyright (C) 1985 *)’’’’’N (* Martin SchŚnbeck, Spenge *)’’’’’N (* Stand : 02.02.86 *)’’’’’N (* Changed by : W.Sauerwein *)’’’’’N (* I.Ley *)’’’’’N (* Stand : 03.10.86 *) ’’’’. LET fd channel = 28;’’’’’’’’’’’’ROW 256 INT VAR boot block;’’’.INT VAR boot block session := session - 1;’’’’PROC get boot block:’’’’’’’’’’. IF boot block session <> session’’’’’’’’’’. THEN hole aktuellen boot block’’’’’’’’’hole aktuellen boot block:’’’’ disable stop;’’’’’’’’’’’’’. DATASPACE VAR dummy ds := nilspace;’’’’’’’. BOUND STRUCT (ALIGN dummy, ’’’’’’’’’’’’’’’N ROW 256 INT block) VAR partition table := dummy ds; ’’’’’’’’> get external block (dummy ds, 2, 0, fd channel); ’’’’’’’’’ IF NOT is error’’’’’’’’’’’. THEN transfer data to boot block’’’’’’ forget (dummy ds). ’’’’’’’transfer data to boot block:’’ IF not valid boot block’’’> THEN try to get valid boot block from file’’’’’’’’’’’’. boot block := partition table. block;’’’’’. boot block session := session.’’’’’’’’’’’’not valid boot block:’’’’’’’’’> partition table. block [256] <> boot indicator OR’’’’’’’’’. it is an old boot block of eumel.’’’’’’’’’boot indicator: -21931.’’’’’’’.it is an old boot block of eumel:’’’’’’’’’’’’’. partition table. block [1] = 1514.’’’’’’’’.try to get valid boot block from file:’’’’’’’’ forget (dummy ds);’’’’’’’’. partition table := old ("bootblock");’’’’’> IF is error THEN LEAVE transfer data to boot block FI.’’’’END PROC get boot block;’’’’’’PROC put boot block:’’’’’’’’’’ IF boot block ist uptodate. THEN schreibe block auf platte’’’’’’’’> ELSE errorstop ("boot block nicht uptodate")’’’’’’’’’’boot block ist uptodate:’’’’’’. boot block session = session.’’’’’’’’’’’’’schreibe block auf platte:’’’’ disable stop;’’’’’’’’’’’’’. DATASPACE VAR dummy ds := nilspace;’’’’’’’. BOUND STRUCT (ALIGN dummy, ’’’’’’’’’’’’’’’N ROW 256 INT block) VAR partition table := dummy ds; ’’’’’’’’. transfer data to dataspace;’’’’’’’’’’’’’’’> put external block (dummy ds, 2, 0, fd channel); ’’’’’’’’’ forget (dummy ds). ’’’’’’’transfer data to dataspace:’’’. partition table. block := boot block.’’’’’END PROC put boot block;’’’’’’.INT PROC partition type (INT CONST partition):> low byte (boot block [entry (partition) + 2])’’’’’’’’’’’’’END PROC partition type;’’’’’’>REAL PROC partition start (INT CONST partition):’’’’’’’’’’’’’’. unsigned low word + high word.’’’’’’’’’’’’unsigned low word:’’’’’’’’’’’’> real (low byte (boot block [entry (partition) + 4])) +’’’’N real (high byte (boot block [entry (partition) + 4])) * 256.0.’’’’’’’’’’’’. real (boot block [entry (partition) + 5]).END PROC partition start;’’’’’>INT PROC partition word 0 (INT CONST partition):’’’’’’’’’’’’’’. boot block (entry (partition))’’’’’’’’’’’’’END PROC partition word 0;’’’’.INT PROC first track (INT CONST partition):’’’> high byte (boot block [entry (partition) + 1]) ’’’’’’’’’’’N + 4 * (low byte (boot block [entry (partition) + 1]) AND (128 + 64)) ’’’’’END PROC first track;’’’’’’’’’.INT PROC last track (INT CONST partition):’’’’> high byte (boot block [entry (partition) + 3]) ’’’’’’’’’’’N + 4 * (low byte (boot block [entry (partition) + 3]) AND (128 + 64)) ’’’’’END PROC last track;’’’’’’’’’’>BOOL PROC partition activ (INT CONST partition):’’’’’’’’’’’’’’> low byte (boot block [entry (partition)]) = 128’’’’’’’’’’’END PROC partition activ;’’’’’>REAL PROC partition size (INT CONST partition):’’’’’’’’’’’’’’’. unsigned low word + high word.’’’’’’’’’’’’unsigned low word:’’’’’’’’’’’’> real (low byte (boot block’’’’’’’’’’’’’’’’’’ END OP -;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q”’!’’’’’’’’’’’’’’’’’’’””’>’’’’’’’’’’’’’’’’’’’į”’J’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ a := l;’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’1•’&’’’’’’’’’’’’’’’’’’’a•’=’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP -;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”•’,’’’’’’’’’’’’’’’’’’’’’ m*x’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP *;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ѕ’,’’’’’’’’’’’’’’’’’’’’’ a := m;’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’–’&’’’’’’’’’’’’’’’’’’’1–’0’’’’’’’’’’’’’’’’’’’’’ a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP *;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q–’.’’’’’’’’’’’’’’’’’’’”–’B’’’’’’’’’’’’’’’’’’’ń–’G’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’A—’’’’’’’’’’’’’’’’’’’’a—’1’’’’’’’’’’’’’’’’’’’’’ result .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP *;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”—’.’’’’’’’’’’’’’’’’’’’ї’H’’’’’’’’’’’’’’’’’’’!˜’G’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’q˜’’’’’’’’’’’’’’’’’’’’‘˜’.’’’’’’’’’’’’’’’’’’’’’ result .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP *;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į˜’!’’’’’’’’’’’’’’’’’’’ń˜’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A™’’’’’’’’’’’’’’’’’’’’a™’’’’’’’’’’’’’’’’’’’’™’&’’’’’’’’’’’’’’’’’’’±™’’’’’’’’’’’’’’’’’’’’љ’’’’’’’’’’’’’’’’’’’’ń™’!’’’’’’’’’’’’’’’’’’’!š’;’’’’’’’’’’’’’’’’’’’aš’@’’’’’’’’’’’’’’’’’’’’’ PER’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ a .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP *;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±š’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńš’’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’1›’’’’’’’’’’’’’’’’’’’’Q›’’’’’’’’’’’’’’’’’’’’q›’’’’’’’’’’’’’’’’’’’’‘›’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ store row :’’’’’’’’’’±›’’’’’’’’’’’’’’’’’’’’ћ’<’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC get;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’œ’4’’’’’’’’’’’’’’’’’’’Qœ’’’’’’’’’’’’’’’’’’’’qœ’’’’’’’’’’’’’’’’’’’’‘œ’!’’’’’’’’’’’’’’’’’’’Įœ’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ PER’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC put;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’±’J’’’’’’’’’’’’’’’’’’’ž’4’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’Až’’’’’’’’’’’’’’’’’’’’’’ PER’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC put;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’až’’’’’’’’’’’’’’’’’’’’ž’D’’’’’’’’’’’’’’’’’’’ў’’’’’’’’’’’’’’’’’’’’ńž’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’1Ÿ’’’’’’’’’’’’’’’’’’’’QŸ’’’’’’’’’’’’’’’’’’’’qŸ’’’’’’’’’’’’’’’’’’’’‘Ÿ’’’’’’’’’’’’’’’’’’’’±Ÿ’’’’’’’’’’’’’’’’’’’’џ’’’’’’’’’’’’’’’’’’’’ńŸ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1 ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A ’-’’’’’’’’’’’’’’’’’’’’’ IF i < 1’’’’’’’’’’’q ’’’’’’’’’’’’’’’’’’’’‘ ’)’’’’’’’’’’’’’’’’’’’Į ’’’’’’’’’’’’’’’’’’’’į ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’ ELIF i > n’’’’’’’’’!”’’’’’’’’’’’’’’’’’’’’A”’*’’’’’’’’’’’’’’’’’’’q”’’’’’’’’’’’’’’’’’’’’‘”’’’’’’’’’’’’’’’’’’’’±”’’’’’’’’’’’’’’’’’’’’Ń”’!’’’’’’’’’’’’’’’’’’’¢’"’’’’’’’’’’’’’’’’’’’1¢’’’’’’’’’’’’’’’’’’’’Q¢’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢’#’’’’’’’’’’’’’’’’’’’±¢’’’’’’’’’’’’’’’’’’’’’’ transp (a);’’’’’’’’’’ a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ń¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ᢒ’’’’’’’’’’’’’’’’’’’£’(’’’’’’’’’’’’’’’’’’’’’ a := m;’’’’’’’’’’’’1£’’’’’’’’’’’’’’’’’’’’Q£’5’’’’’’’’’’’’’’’’’’’‘£’’’’’’’’’’’’’’’’’’’’±£’’’’’’’’’’’’’’’’’’’’Į£’’’’’’’’’’’’’’’’’’’’ᣒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ position :’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’’’ IF k > n’’’’’’’’’’’!¤’’’’’’’’’’’’’’’’’’’’’’ k .’’’’’’’’’’’’’’’A¤’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a¤’ ’’’’’’’’’’’’’’’’’’’’’ a := m;’’’’’’’’’’’’‘¤’’’’’’’’’’’’’’’’’’’’±¤’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ IF n <> k’’’’’’’’’’ń¤’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1„’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’”„’ ’’’’’’’’’’’’’’’’’’’Ń„’<’’’’’’’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’A¦’!’’’’’’’’’’’’’’’’’’’q¦’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘¦’’’’’’’’’’’’’’’’’’’’’’ a .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±¦’#’’’’’’’’’’’’’’’’’’’ᦒ’’’’’’’’’’’’’’’’’’’§’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!§’’’’’’’’’’’’’’’’’’’’’’ IF pos > j’’’’’’’’’A§’ ’’’’’’’’’’’’’’’’’’’q§’"’’’’’’’’’’’’’’’’’’’”§’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į§’’’’’’’’’’’’’’’’’’’’į§’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ø’’’’’’’’’’’’’’’’’’’’1Ø’’’’’’’’’’’’’’’’’’’’QØ’’’’’’’’’’’’’’’’’’’’qØ’’’’’’’’’’’’’’’’’’’’‘Ø’=’’’’’’’’’’’’’’’’’’’ŃØ’D’’’’’’’’’’’’’’’’’’’!©’’’’’’’’’’’’’’’’’’’’A©’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a©’’’’’’’’’’’’’’’’’’’’©’2’’’’’’’’’’’’’’’’’’’Į©’1’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’Ŗ’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Ŗ’’’’’’’’’’’’’’’’’’’’QŖ’’’’’’’’’’’’’’’’’’’’qŖ’’’’’’’’’’’’’’’’’’’’‘Ŗ’’’’’’’’’’’’’’’’’’’’±Ŗ’5’’’’’’’’’’’’’’’’’’’ńŖ’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP INV;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’«’’’’’’’’’’’’’’’’’’’’1«’’’’’’’’’’’’’’’’’’’’Q«’7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ a := m;’’’’’’’’’’’’‘«’'’’’’’’’’’’’’’’’’’’’Į«’’’’’’’’’’’’’’’’’’’’į«’’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’!¬’’’’’’’’’’’’’’’’’’’’A¬’&’’’’’’’’’’’’’’’’’’’q¬’"’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’”¬’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’Į¬’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ᬒ’’’’’’’’’’’’’’’’’’’­’’’’’’’’’’’’’’’’’’’’!­’’’’’’’’’’’’’’’’’’’’1­’’’’’’’’’’’’’’’’’’’’Q­’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’q­’’’’’’’’’’’’’’’’’’’’‘­’’’’’’’’’’’’’’’’’’’’±­’3’’’’’’’’’’’’’’’’’’’ń­’9’’’’’’’’’’’’’’’’’’’’’ PER’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1®’’’’’’’’’’’’’’’’’’’’Q®’$’’’’’’’’’’’’’’’’’’’®’’’’’’’’’’’’’’’’’’’’”®’-’’’’’’’’’’’’’’’’’’’Ń®’’’’’’’’’’’’’’’’’’’’ń®’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Æ’’’’’’’’’’’’’’’’’’’’1Æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END OP DET;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QÆ’D’’’’’’’’’’’’’’’’’’’”Æ’6’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’ᯒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’°’'’’’’’’’’’’’’’’’’’’’1°’*’’’’’’’’’’’’’’’’’’’a°’.’’’’’’’’’’’’’’’’’’’‘°’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±°’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ѱ’:’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’A±’)’’’’’’’’’’’’’’’’’’’q±’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”±’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į±’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’N^’’’’’’’’’’’’NPACKET matrix DEFINES MATRIX, matrix, idn, (* Stand : 16.06.86 wk *)’’’’’’’N :=, sub, (* Autor : H.Indenbirken *)’’’’’’’. row, column,’’’’’’’’’’’’ COLUMNS, ROWS,’’’ DET, ’’’ INV, ’’’ [entry (partition) + 6])) +’’’’N real (high byte (boot block [entry (partition) + 6])) * 256.0.’’’’’’’’’’’’. real (boot block [entry (partition) + 7]).END PROC partition size;’’’’’’INT PROC tracks: ’’’’’’’’’’’’’. get value (-10, fd channel) ’’’’’’’’’’’’’’’END PROC tracks; ’’’’’’’’’’’’’.PROC activate (INT CONST part type):’’’’’’’’’’> IF partition type exists AND is possible type’’’’’’’’’’’’’. THEN deactivate all partitions and’’’. activate desired partition’’’’’’N ELSE errorstop ("GewŪnschte Partitionart gibt es nicht")’’’’’’’’’’’’’is possible type:’’’’’’’’’’’’’ part type > 0 AND’’’’’’’’’’ part type < 256.’’’’’’’’’’’partition type exists:’’’’’’’’ INT VAR partition;’’’’’’’’. FOR partition FROM 1 UPTO 4 REP’’’’’’’’’’’> IF partition type (partition) = part type ’’’’’’’’’’’> THEN LEAVE partition type exists WITH TRUE’’’’’’’>deactivate all partitions and activate desired partition:’’’’’. FOR partition FROM 1 UPTO 4 REP’’’’’’’’’’’. deactivate this partition;’’’’’’’’’’’> IF partition type (partition) = part type’’’’’’’’’’’’. THEN activate partition’’’’’’’’’ put boot block.’’’’’’’’’’’deactivate this partition:’’’’> set bit (boot block [entry (partition)], 7);’’’’’’’’’’’’’’> (* first setting needed, because reset bit does xor *)’’’’> reset bit (boot block [entry (partition)], 7).’’’’’’’’’’’’activate partition:’’’’’’’’’’’> set bit (boot block [entry (partition)], 7)’’’’’’’’’’’’’’’END PROC activate;’’’’’’’’’’’’.INT PROC entry (INT CONST partition):’’’’’’’’’ get boot block;’’’’’’’’’’’. 256 - 5 * 8 + (partition * 8)’’’’’’’’’’’’’END PROC entry;’’’’’’’’’’’’’’’NINT PROC get value (INT CONST control code, channel for value): ’’’’’’’’’’’’’’ enable stop; ’’’’’’’’’’’’’. INT VAR old channel := channel;’’’’’’’’’’’. continue (channel for value); ’’’’’’’’’’’’ INT VAR value; ’’’’’’’’’’’. control (control code, 0, 0, value); ’’’’’ continue (old channel); ’’END PROC get value; ’’’’’’’’’’>PROC get external block (DATASPACE VAR ds, INT CONST ds page,’N archive block, get channel):’’’’’. INT VAR old channel := channel; ’’’’’’’’’’’ continue (get channel);’’’’ disable stop;’’’’’’’’’’’’’’> read block (ds, ds page, archive block, error);’’’’’’’’’’’’ INT VAR error;’’’’’’’’’’’’’ SELECT error OF’’’’’’’’’’’’> CASE 1: error stop ("Platte kann nicht gelesen werden");N CASE 2: error stop ("Lesefehler bei Block "+ text (archive block));’’’’’> CASE 3: error stop ("Versorgungsfehler Archiv");’’’’’’’’> OTHERWISE error stop ("unbekannter Fehler auf Platte");’ END SELECT; continue (old channel).’’’’END PROC get external block;’’NPROC put external block (DATASPACE CONST ds, INT CONST ds page,’’’’’’’’’’’’’’’N archive block, get channel):’’’’’. INT VAR old channel := channel; ’’’’’’’’’’’ continue (get channel);’’’’ disable stop;’’’’’’’’’’’’’’> write block (ds, ds page, archive block, error);’’’’’’’’’’’ INT VAR error;’’’’’’’’’’’’’ SELECT error OF’’’’’’’’’’’’N CASE 1: error stop ("Platte kann nicht geschrieben werden");’’’’’’’’’’’’N CASE 2: error stop ("Schreibfehler bei Block "+ text (archive block));’’> CASE 3: error stop ("Versorgungsfehler Archiv");’’’’’’’’> OTHERWISE error stop ("unbekannter Fehler auf Platte");’ END SELECT; continue (old channel).’’’’END PROC put external block;’’N(**************************************************************************)’’N LET max partitions = 4;’’’’’’’’’’’’’’. ROW max partitions INT VAR part list;’’’> ROW max partitions INT VAR part type, part active,’’’’’’N part first track, part last track;’’’’’’’’’’’. ROW max partitions REAL VAR part start,’’. part size;’’’. INT VAR zylinder,’’’’N startzeile tabelle :: 1,’’’’’’’’’’’’’’> active partition,’’’’’’’’’’’’. partitions,’’> partition, i, j, help;’’’’’’’. ’’’’’’’’’’’’’.PROC get actual partition data :’’’’’’’’’’’’’’ get boot block;’’’’’’’’’’’’ zylinder := tracks;’’’’’’’’. FOR i FROM 1 UPTO max partitions REP’’’’’’’> part type (i) := partition type (i);’’’’’’’’’’’’’. part first track (i) := first track (i);. part last track (i) := last track (i);’> part start (i) := partition start (i);’’’’’’’’’’’’> part size (i) := partition size (i);’’’’’’’’’’’’’> part active (i) := partition word 0 (i);’’’’’’’’’’’> IF partition activ (i) THEN active partition := i FI’’’’. get number of installed partitions;’’’’’’’’ generate part list.’’’’’’’’.get number of installed partitions :’’’’’’’’’’ partitions := 0;’’’’’’’’’’’. FOR i FROM 1 UPTO max partitions REP’’’’’’’> IF part type (i) <> 0 THEN partitions INCR 1 FI’’’’’’’’’’generate part list :’’’’’’’’’’. FOR i FROM 1 UPTO max partitions REP’’’’’’’> IF part type (i) <> 0 THEN part list (i) := i’’’’’’’’’’’> ELSE part list (i) := 0’’’’’’’’’’’ schiebe nullen nach hinten; sort part list.’’’’’’’’’’’’schiebe nullen nach hinten :’’ i := 1; INT VAR k := 0;’’’’ REP k INCR 1;’’’’’’’’’’’’’’. IF part list (i) = 0 THEN circle’’’’’’’. ELSE i INCR 1’’’’’. UNTIL k = max partitions - 1 PER.’’’’’’’’’’. FOR j FROM i UPTO max partitions - 1 REP’’’. part list (j) := part list (j + 1)’’’’’’. part list (max partitions) := 0.’’’’’’’’’’’sort part list :’’’’’’’’’’’’’’. FOR i FROM 2 UPTO partitions REP’’’’’’’’’’’. FOR j FROM 1 UPTO i - 1 REP’’’’’’’’’’’’’^ IF part first track (part list (i)) < part first track (part list (j))’’’’’’’’’’’’’’ THEN tausche FI’’ help := part list (i);’’’’’. part list (i) := part list (j);’’’’’’’’’’’’ part list (j) := help.’’’’’.END PROC get actual partition data;’’’’’’’’’’’PROC show partition table :’’’ devide table;’’’’’’’’’’’’’’ underlines;. cl eop (1, startzeile tabelle);’’’’’’’’’’’’> put center (inverse (" "’’’’’’’’’’’’’> + "Aktuelle Partitions - Tabelle"’’’’’’’> + " ")).’’’’’’’’’’devide table : FOR i FROM 1 UPTO 8’’’’’’’’> cursor (50, startzeile tabelle + i); out (inverse (""))’. cursor ( 1, startzeile tabelle + 2);’’’’’’’> out (" Nr. System Typ-Nr. Zustand GrŚūe Start Ende");’’’. cursor (54, startzeile tabelle + 2);’’’’’’’. out ("PlattengrŚūe / Zylinder ").’’’’’’’’’’. cursor ( 1, startzeile tabelle + 3);’’’’’’’> out ("-------------------------------------------------");’. cursor (52, startzeile tabelle + 3);’’’’’’’. out ("--------------------------").’’’’’’’’. FOR i FROM 1 UPTO max partitions’’’’’’’’’’’. REP cursor (2, startzeile tabelle + 3 + i); put (text (i) + " :")’’. cursor (1, startzeile tabelle + 9);’’’’’’’’. put center (inverse (75 * " ")).’’’’’’’’’’’END PROC show partition table;PROC update table :’’’’’’’’’’’ get actual partition data;’> FOR i FROM 1 UPTO partitions REP update partition PER;’’’’’N FOR i FROM partitions + 1 UPTO max partitions REP rubout partition PER;’’’’ zeige plattengroesse.’’’’’’update partiti TRANSP,  transp,’> replace row, replace column,’’’’’’’’’’’’. replace element,’’’’’’’’. get, put,’’’’’’’’’’’’’’’ =, <>,’’. +, -, * :’’’’’’’’’’’’’’’>TYPE MATRIX = STRUCT (INT rows, columns, VECTOR elems);’’’’’’’NTYPE INITMATRIX = STRUCT (INT rows, columns, REAL value, BOOL idn);’’’’’’’’’’’MATRIX VAR a :: idn (1);’’’’’’N(****************************************************************************’PROC dump (MATRIX CONST m) :’’N put line (text (m.rows) + " Reihen, " + text (m.columns) + " Spalten.");’’’’ dump (m.elems) .’’’’’’’’’’’END PROC dump;N****************************************************************************)’.OP := (MATRIX VAR l, MATRIX CONST r) :’’’’’’’’ CONCR (l) := CONCR (r);’’’’’.OP := (MATRIX VAR l, INITMATRIX CONST r) :’’’’ l.rows := r.rows;’’’’’’’’ l.columns := r.columns;’’’’’> l.elems := vector (r.rows*r.columns, r.value);’’’’’’’’’’’’ THEN idn FI .’’’’’’’’’’’’’’ FOR i FROM 1 UPTO r.rows’’’’> REP replace (l.elems, calc pos (l.columns, i, i), 1.0) PER’’NINITMATRIX PROC matrix (INT CONST rows, columns, REAL CONST value) :’’’’’’’’’’ IF rows <= 0. THEN errorstop ("PROC matrix : rows <= 0")’’ ELIF columns <= 0’’’’’’’’’’’> THEN errorstop ("PROC matrix : columns <= 0") FI;’’’’’’’’’’’. INITMATRIX : (rows, columns, value, FALSE)’’END PROC matrix;’’’’’’’’’’’’’’>INITMATRIX PROC matrix (INT CONST rows, columns) :’’’’’’’’’’’’ matrix (rows, columns, 0.0)’END PROC matrix;’’’’’’’’’’’’’’.INITMATRIX PROC idn (INT CONST size) :’’’’’’’’ IF size <= 0> THEN errorstop ("MATRIX PROC idn : size <= 0") FI;’’’’’’’’’’. INITMATRIX : (size, size, 0.0, TRUE)’’’’’’’’>VECTOR PROC row (MATRIX CONST m, INT CONST i) :’’’’’’’’’’’’’’’. VECTOR VAR v :: vector (m.columns);’’’’’’’’’. INT VAR j, k :: 1, pos :: (i-1) * m.columns;. FOR j FROM pos+1 UPTO pos + m.columns’’’’’’’. REP replace (v, k, m.elems SUB j);’’’’’’’’’’ k INCR 1>VECTOR PROC column (MATRIX CONST m, INT CONST j) :’’’’’’’’’’’’. VECTOR VAR v :: vector (m.rows);’’’’’’’’’’’’ INT VAR i, k :: j;’’’’’’’’’’ FOR i FROM 1 UPTO m.rows’’’’. REP replace (v, i, m.elems SUB k);’’’’’’’’’’ k INCR m.columns’’’’’’’’END PROC column;’’’’’’’’’’’’’’.INT OP COLUMNS (MATRIX CONST m) :’’’’’’’’’’’’’END OP COLUMNS;’’’’’’’’’’’’’’’INT OP ROWS (MATRIX CONST m) :>REAL PROC sub (MATRIX CONST a, INT CONST row, column) :’’’’’’’> a.elems SUB calc pos (a.columns, row, column)’’’’’’’’’’’’’’’NPROC replace row (MATRIX VAR m, INT CONST rowindex, VECTOR CONST rowvalue) :’’> test ("PROC replace row : ", "LENGTH rowvalue", "COLUMNS m",. LENGTH rowvalue, m.columns);’’’’’’’’’’> test ("PROC replace row : row ", rowindex, m.rows);’’’’’’’’’. INT VAR i, pos :: (rowindex-1) * m.columns;’ FOR i FROM 1 UPTO m.columns’> REP replace (m.elems, pos+i, rowvalue SUB i) PER’’’’’’’’’’’’END PROC replace row;’’’’’’’’’>PROC replace column (MATRIX VAR m, INT CONST columnindex,’’’’’> VECTOR CONST columnvalue) :’’’’’’’’’’’’’’N test ("PROC replace column : ", "LENGTH columnvalue", "ROWS m",’’’’’’’’’’’’’. LENGTH columnvalue, m.rows);’’’’’’’’’’N test ("PROC replace column : column ", columnindex, m.columns);’’’’’’’’’’’’’ FOR i FROM 1 UPTO m.rows’’’’> REP replace (m.elems, calc pos (m.columns, i, columnindex),’. columnvalue SUB i) PER’’’’’’’’’END PROC replace column;’’’’’’NPROC replace element (MATRIX VAR a, INT CONST row, column, REAL CONST x) :’’’’> test ("PROC replace element : row ", row, a.rows);’’’’’’’’’’> test ("PROC replace element : column ", column, a.columns);’> replace (a.elems, calc pos (a.columns, row, column), x)’’’’’END PROC replace element;’’’’’.BOOL OP = (MATRIX CONST l, r) :’’’’’’’’’’’’’’’ IF l.rows <> r.rows’’’’’’’’’ ELIF l.columns <> r.columns’ ELSE l.elems = r.elems FI’’’.BOOL OP <> (MATRIX CONST l, r) :’’’’’’’’’’’’’’ IF l.rows <> r.rows’’’’’’’’’ ELIF l.columns <> r.columns’ ELSE l.elems <> r.elems FI’’.INT PROC calc pos (INT CONST columns, z, s) :’ (z-1) * columns + s’’’’’’’’’’END PROC calc pos;’’’’’’’’’’’’MATRIX OP + (MATRIX CONST m) :.MATRIX OP + (MATRIX CONST l, r) :’’’’’’’’’’’’’> test ("MATRIX OP + : ", "ROWS l", "ROWS r", l.rows, r.rows);N test ("MATRIX OP + : ", "COLUMNS l", "COLUMNS r", l.columns, r.columns);’’’’. FOR i FROM 1 UPTO l.rows * l.columns’’’’’’’’> REP replace (a.elems, i, (l.elems SUB i) + (r.elems SUB i))’MATRIX OP - (MATRIX CONST m) :. FOR i FROM 1 UPTO m.rows * m.columns’’’’’’’’. REP replace (a.elems, i, -a.elems SUB i)’’’’.MATRIX OP - (MATRIX CONST l, r) :’’’’’’’’’’’’’> test ("MATRIX OP - : ", "ROWS l", "ROWS r", l.rows, r.rows);N test ("MATRIX OP - : ", "COLUMNS l", "COLUMNS r", l.columns, r.columns);’’’’. FOR i FROM 1 UPTO l.rows * l.columns’’’’’’’’> REP replace (a.elems, i, (l.elems SUB i) - (r.elems SUB i))’.MATRIX OP * (REAL CONST x, MATRIX CONST m) :’’.MATRIX OP * (MATRIX CONST m, REAL CONST x) :’’. FOR i FROM 1 UPTO m.rows * m.columns’’’’’’’’> REP replace (a.elems, i, x*m.elems SUB i) PER;’’’’’’’’’’’’’’.VECTOR OP * (VECTOR CONST v, MATRIX CONST m) :N test ("VECTOR OP * : ", "LENGTH v", "ROWS m", LENGTH v, m.rows);’’’’’’’’’’’’N VECTOR VAR result :: vector (m.columns); (*wk*)’’’’’’’ FOR i FROM 1 UPTO m.columns’> REP replace (result, i, v * column (m, i)) PER;’’’’’’’’’’’’’.VECTOR OP * (MATRIX CONST m, VECTOR CONST v) :N test ("VECTOR OP * : ", "COLUMNS m", "LENGTH v", COLUMNS m, LENGTH v);’’’’’’N VECTOR VAR result :: vector (m.rows); (*wk*)’’’’’’’ FOR i FROM 1 UPTO m.rows ’’’. REP replace (result, i, row (m, i) * v) PER;.MATRIX OP * (MATRIX CONST l, r) :’’’’’’’’’’’’’N test ("MATRIX OP * : ","COLUMNS l","ROWS r", l.columns, r.rows);’’’’’’’’’’’’ a.rows := l.rows;’’’’’’’’’’’ a.columns := r.columns;’’’’’. a.elems := vector (a.rows*a.columns)’’’’’’’’ INT VAR i, j;’’’’’’’’’’’’’’’ FOR i FROM 1 UPTO a.rows’’’’. REP FOR j FROM 1 UPTO a.columns’’’’’’’’’’’’’> REP VECTOR VAR rl :: row (l, i), cr :: column (r, j);’’’N replace (a.elems, calc pos (a.columns, i, j), rl * cr)’’’’’’’’’’’’’’>PROC get (MATRIX VAR a, INT CONST rows, columns) :’’’’’’’’’’’’ a := matrix (rows,columns);’ INT VAR i, j;’’’’’’’’’’’’’’’ VECTOR VAR v;’’’’’’’’’’’’’’’ FOR i FROM 1 UPTO rows’’’’’’ REP get (v, columns);’’’’’’’ store row’’’’’’’’’’’’’’’ FOR j FROM 1 UPTO a.columns’> REP replace (a.elems, calc pos (a.columns, i, j), v SUB j)’’>PROC put (MATRIX CONST a, INT CONST length, fracs) :’’’’’’’’’’ INT VAR i, j;’’’’’’’’’’’’’’’ FOR i FROM 1 UPTO a.rows’’’’. REP FOR j FROM 1 UPTO a.columns’’’’’’’’’’’’’> REP put (text (sub (a, i, j), length, fracs)) PER;’’’’’’ line (2);’’’’’’’’’’’’’’’PROC put (MATRIX CONST a) :’’’ INT VAR i, j;’’’’’’’’’’’’’’’ FOR i FROM 1 UPTO a.rows’’’’. REP FOR j FROM 1 UPTO a.columns’’’’’’’’’’’’’N REP TEXT CONST number :: " " + text (sub (a, i, j));’’’’> put (subtext (number, LENGTH number - 15))’’’’’’’’’’ line (2);’’’’’’’’’’’’’’’TEXT VAR error :: "";’’’’’’’’’NPROC test (TEXT CONST proc, l text, r text, INT CONST left, right) :’’’’’’’’’’ IF left <> right’’’’’’’’’’’’ THEN error := proc;’’’’’’’’’ error CAT l text;’’’’’’ error CAT " (";’’’’’’’’ error CAT text (left);’ error CAT ") <> ";’’’’’ error CAT r text;’’’’’’ error CAT " (";’’’’’’’’ error CAT text (right); error Con :’’’’’’’’’’’’ partition := part list (i); show partition.’’’’’’’’’’’’rubout partition :’’’’’’’’’’’’. cursor (6, startzeile tabelle + 3 + i);’’’’> out (" ").’’’’’’’’show partition :’’’’’’’’’’’’’’. cursor (6, startzeile tabelle + 3 + i);’’’’N put (name + type + zustand + groesse + startspur + endspur).’’’’’’’’’’’’’’.name : subtext (subtext (part name, 1, 9)’’’’’. + " ", 1, 10).’’’’’’’’’>type : text (part type (partition), 5) + " ".’’’’’’’’’’’’’’’>zustand : IF active partition = partition THEN (" aktiv ")’’> ELSE (" ")’’ FI.’’’’’’’’’’’’’’’>startspur : " " + text (part first track (partition), 5).’’’’’>endspur : text (part last track (partition), 6).’’’’.groesse : text (part groesse, 5).’’’’’zeige plattengroesse :’’’’’’’’ put gesamt; put noch freie;’’’’’’’’’’’’ put maximaler zwischenraum.put maximaler zwischenraum :’’. cursor (54, startzeile tabelle + 6);’’’’’’’N put ("max. zusammenh. : " + text (maximaler zwischenraum, 4)).’’’’’’’’’’’’’. cursor (54, startzeile tabelle + 4);’’’’’’’> put ("insgesamt : " + text (zylinder, 4)).’’’’’’’’’’’put noch freie :’’’’’’’’’’’’’’. cursor (54, startzeile tabelle + 5);’’’’’’’> put ("davon noch frei : " + text (freie zylinder, 4)).’’’’’part groesse :. partition groesse (partition).’’’’’’’’’’’’’. SELECT part type (partition) OF’’’’’’’’’’’’. CASE 1 : "DOS"’’’’’’’’’’’’’’. CASE 69, 70, 71, 72 : "EUMEL"’’’’’’’’’’’’. OTHERWISE text (part type (partition))’’’ END SELECT.freie zylinder :’’’’’’’’’’’’’’. zylinder - belegte zylinder.’’’’’’’’’’’’’’’belegte zylinder :’’’’’’’’’’’’. FOR i FROM 1 UPTO partitions REP’’’’’’’’’’’> help INCR partition groesse (part list (i))’’’’’’’’’’’’’END PROC update table;’’’’’’’’.INT PROC maximaler zwischenraum :’’’’’’’’’’’’’. IF partitions = 0 THEN zylinder’’’’’’’’’’’’^ ELSE max (maximaler platz vor und zwischen den partitionen,’’’’’’’’’’’’’’> platz hinter letzter partition)>maximaler platz vor und zwischen den partitionen :’’’’’’’’’’’’. help := platz vor erster partition;’’’’’’’’. FOR i FROM 1 UPTO partitions - 1’’’’’’’’’’’N help := max (help, begin of part i plus 1 - end of part i - 1)’’’’’’’’’’platz vor erster partition :’’. part first track (part list (1)).’’’’’’’’’’.platz hinter letzter partition :’’’’’’’’’’’’’’> zylinder - part last track (part list (partitions)) - 1.’’’begin of part i plus 1 :’’’’’’. part first track (part list (i + 1)).’’’’’’end of part i :’’’’’’’’’’’’’’’. part last track (part list (i)).’’’’’’’’’’’.END PROC maximaler zwischenraum;’’’’’’’’’’’’’’.INT PROC partition groesse (INT CONST part) :’> part last track (part) - part first track (part) + 1’’’’’’’END PROC partition groesse;’’’.PROC show actual partition table:’’’’’’’’’’’’’ show partition table;’’’’’’ update table;’’’’’’’’’’’’’’.END PROC show actual partition table;’’’’’’’’’NPROC show actual partition table (ROW max partitions INT VAR typnr):’’’’’’’’’’. show actual partition table;’’’’’’’’’’’’’’’. FOR i FROM 1 UPTO max partitions REP’’’’’’’> typnr (i) := partition type (part list (i))’’’’’’’’’’’’’.END PROC show actual partition table;’’’’’’’’’END PACKET part;’’’’’’’’’’’’’’NPACKET hw clock DEFINES hw clock: (* Copyright (C) 1985 *)’’’’’’’N (* Martin SchŚnbeck, Spenge *)’’’’’’’NLET clock length = 7, (* Stand: 06.11.85 *)’’’’’’’ clock command = 4;’’’’’’’’BOUND STRUCT (ALIGN dummy,’’’’N ROW clock length INT clock field) VAR clock data;’’’’’’’’’’’’’’’REAL PROC hw clock:’’’’’’’’’’’ disable stop;’’’’’’’’’’’’’ get clock; hw date + hw time.’’’’’’’’. DATASPACE VAR ds := nilspace;’’’’’’’’’’’’’ clock data := ds;’’’’’’’’’> INT VAR return code, actual channel := channel;’’’’’’’’’’’ go to shard channel;’’’’’’> blockin (ds, 2, -clock command, 0, return code);’’’’’’’’’’. IF actual channel = 0 THEN break (quiet)’’> ELSE continue (actual channel)’’’’’’ IF return code <> 0 ’’’’’’> THEN errorstop ("Keine Hardware Uhr vorhanden");’’’’’’ put clock into text;’’’’’’ forget (ds).’’’’’’’’’’’’’’put clock into text:’’’’’’’’’’> TEXT VAR clock text := clock length * " ";’’’’’’’’’’’’’’’ INT VAR i;. FOR i FROM 1 UPTO clock length REP’’’’’’’’> replace (clock text, i, clock data. clock field [i]);go to shard channel:’’’’’’’’’’ INT VAR retry;’’’’’’’’’’’’. FOR retry FROM 1 UPTO 20 REP’’’’’’’’’’’’’’ continue (32);’’’’’’’’ IF is error’’’’’’’’’’’ THEN clear error;’ pause (30)’’’ UNTIL channel = 32 PER.’’’. date (day + "." + month + "." + year).’’’’.day: subtext (clock text, 7, 8).’’’’’’’’’’’.month: subtext (clock text, 5, 6).’’’’’’’’’’’.year: subtext (clock text, 1, 4).’’’’’’’’’’’. time (hour + ":" + minute + ":" + second)..hour: subtext (clock text, 9, 10).’’’’’’’’’’.minute: subtext (clock text, 11, 12).’’’’’’’’’.second: subtext (clock text, 13, 14).’’’’’’’’’END PROC hw clock;’’’’’’’’’’’’END PACKET hw clock’’’’’’’’’’’NPACKET old shutup DEFINES old shutup, (* Copyright (C) 1985 *)’’’’N old save system: (* Martin SchŚnbeck, Spenge *)’’’’N (* Stand: 06.11.85 *)’’’’.PROC old shutup : shutup END PROC old shutup;’>PROC old save system : save system END PROC old save system;’’END PACKET old shutup;’’’’’’’’.PACKET new shutup DEFINES shutup,’’’’’’’’’’’’’. shutup dialog,’’’’’’. save system,’’’’’’’’> generate shutup manager,’’’’’’’’’’’’> generate shutup dialog manager:’’’’’. system down (PROC old shutup)’’’’’’’’’’’’’END PROC shutup;’’’’’’’’’’’’’’.PROC shutup (INT CONST new system):’’’’’’’’’’’ IF new system <> 0’’’’’’’’. THEN prepare for new system’’’’’’’’’’. system down (PROC old shutup).’’’’’’’’’’’’prepare for new system:’’’’’’’ activate (new system);’’’’ prepare for rebooting.’’’’prepare for rebooting:’’’’’’’’. INT VAR old channel := channel;’’’’’’’’’’’ continue (32);’’’’’’’’’’’’ INT VAR dummy;’’’’’’’’’’’’ control (-5, 0, 0, dummy); break (quiet);’’’’’’’’’’’’ continue (old channel).’’’END PROC shutup;’’’’’’’’’’’’’’PROC save system:’’’’’’’’’’’’’. IF yes ("Leere Floppy eingelegt")’’’’’’’’’. THEN system down (PROC old save system)END PROC save system;’’’’’’’’’.PROC system down (PROC operation):’’’’’’’’’’’’. BOOL VAR dialogue :: command dialogue;’’’’’ command dialogue (FALSE);’’. command dialogue (dialogue);’’’’’’’’’’’’’’’ IF command dialogue’’’’’’’’. THEN wait for configurator;’’’’’’’’’’’’’ show date;’’’’’’’’’> put (" Heute ist der"); putline (date);’’’’’’’’’’’’’’’> put (" Es ist"); put (time of day); putline ("Uhr");’’END PROC system down;’’’’’’’’’DATASPACE VAR ds := nilspace;’PROC wait for configurator:’’’ INT VAR i, receipt;’’’’’’’’> FOR i FROM 1 UPTO 20 WHILE configurator exists REP’’’’’’’’’ pause (30);’’’’’’’’’’’’’ forget (ds);’’’’’’’’’’’’ ds := nilspace;’’’’’’’’’> ping pong (configurator, ack, ds, receipt)’’’’’’’’’’’’’’ UNTIL receipt >= 0 PER.’’’’configurator exists:’’’’’’’’’’AT ")";’’’’’’’’’ errorstop (error)’’’’’’END PROC test;.PROC test (TEXT CONST proc, INT CONST i, n) :’ THEN error := proc;’’’’’’’’’. error CAT "subscript underflow (";’’’’’ error CAT text (i);’’’’ error CAT ")";’’’’’’’’’ errorstop (error)’’’’’’ THEN error := proc;’’’’’’’’’. error CAT "subscript overflow (i=";’’’’ error CAT text (i);’’’’ error CAT ", max=";’’’’ IF n <= 0’’’’’’’’’’’’’’. THEN error CAT "undefined"’’’’’’’’’’’’’. ELSE error CAT text (n) FI;’’’’’’’’’’’’ error CAT ")";’’’’’’’’’ errorstop (error)’’’’’’END PROC test;.MATRIX OP TRANSP (MATRIX CONST m) :’’’’’’’’’’’ MATRIX VAR a :: m;’’’’’’’’’’END OP TRANSP;PROC transp (MATRIX VAR m) :’’. INT VAR k :: 1, n :: m.rows*m.columns;’’’’’’ FOR i FROM 2 UPTO n’’’’’’’’’> REP replace (m.elems, i, a.elems SUB position) PER;’’’’’’’’’ a := idn (1);’’’’’’’’’’’’’’’ i := m.rows; m.rows := m.columns;’’’’’’’’ m.columns := i .’’’’’’’’’’’ k INCR m.columns;’’’’’’’’’’’ THEN k DECR (n-1) FI;’’’’’’’END PROC transp;’’’’’’’’’’’’’’.MATRIX OP INV (MATRIX CONST m) :’’’’’’’’’’’’’’ ROW 32 INT VAR pivots;’’’’’’> INT VAR i, j, k :: ROWS a, n :: COLUMNS a, pos;’’’’’’’’’’’’’> THEN errorstop ("MATRIX OP INV : no square matrix") FI;’’’’’. initialisiere die pivotpositionen;’’’’’’’’’’ FOR j FROM 1 UPTO n’’’’’’’’’ REP pivotsuche (a, j, pos);’. IF sub (a, pos, pos) = 0.0’’’’’’’’’’’’’’> THEN errorstop ("MATRIX OP INV : singular matrix") FI;’’. zeilentausch (a, j, pos);’’’’’’’’’’’’’’’. merke dir die vertauschung;’’’’’’’’’’’’’ transformiere die matrix spaltentausch;’’’’’’’’’’’’’’.initialisiere die pivotpositionen :’’’’’’’’’’’ FOR i FROM 1 UPTO n’’’’’’’’’ REP pivots [i] := i PER .’’merke dir die vertauschung :’’. THEN INT VAR hi :: pivots [j];’’’’’’’’’’’’’’. pivots [j] := pivots [pos];’’’’’’’’’’’’ pivots [pos] := hi’’’’’transformiere die matrix :’’’’. REAL VAR h := 1.0/sub (a, j, j);’’’’’’’’’’’’ FOR k FROM 1 UPTO n’’’’’’’’’ REP IF k <> j’’’’’’’’’’’’’’’ THEN FOR i FROM 1 UPTO n REP IF i <> j’’’’’’> THEN replace element (a, i, k, sub (a, i, k) -’N sub (a, i, j)*sub (a, j, k)*h);’’’’’’’’’’ FI’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’ FOR k FROM 1 UPTO n’’’’’’’’’> REP replace element (a, j, k, -h*sub (a, j, k));’’’’’’’’’’’’> replace element (a, k, j, h*sub (a, k, j))’’’’’’’’’’’’’. replace element (a, j, j, h) .’’’’’’’’’’’’’spaltentausch :’’’’’’’’’’’’’’’ VECTOR VAR v :: vector (n);’ FOR i FROM 1 UPTO n’’’’’’’’’ REP FOR k FROM 1 UPTO n’’’’’> REP replace (v, pivots [k], sub(a, i, k)) PER; ’’’’’’’’’ replace row (a, i, v) ’’REAL OP DET (MATRIX CONST m) : IF COLUMNS m <> ROWS m’’’’’’> THEN errorstop ("REAL OP DET : no square matrix") FI;’’’’’’’. INT VAR i, j, k, n :: COLUMNS m, pos;’’’’’’’ REAL VAR merker := 1.0; ’’’’ FOR j FROM 1 UPTO n’’’’’’’’’ REP pivotsuche (a, j, pos);’ IF j<> pos ’’’’’’’’’’’’’. THEN zeilentausch (a, j, pos);’’’’’’’’. zeilen tausch merken ’’’’’’’’’’’’ transformiere die matrix produkt der pivotelemente .transformiere die matrix : ’’’ REAL VAR hp := sub(a,j,j); ’ IF hp = 0.0  THEN LEAVE DET WITH 0.0 ’’ ELSE REAL VAR h := 1.0/hp; FOR i FROM j+1 UPTO n’’’’’’’ REP FOR k FROM j+1 UPTO n’’’> REP replace element (a, i, k, sub (a, i, k) -’’’’’’’’’’’> sub (a, i, j)*h*sub (a, j, k))’’’’’produkt der pivotelemente :’’’. REAL VAR produkt :: sub (a, 1, 1);’’’’’’’’’’ FOR j FROM 2 UPTO n’’’’’’’’’. REP produkt := produkt * sub (a, j, j) PER;’ a := idn (1);’’’’’’’’’’’’’’’ produkt * merker.’’’’’’’’’’’zeilen tausch merken: ’’’’’’’’ merker := merker * (-1.0). ’NPROC pivotsuche (MATRIX CONST a, INT CONST start pos, INT VAR pos) :’’’’’’’’’’> REAL VAR max :: abs (sub (a, start pos, start pos));’’’’’’’’ pos := start pos;’’’’’’’’’’’. FOR i FROM start pos+1 UPTO COLUMNS a’’’’’’’. REP IF abs (sub (a, i, start pos)) > max’’’’. THEN max := abs (sub (a, i, start pos)); pos := i’’’’’’’’’’’END PROC pivotsuche;’’’’’’’’’’>PROC zeilentausch (MATRIX VAR a, INT CONST old pos, pos) :’’’’. VECTOR VAR v := row (a, pos);’’’’’’’’’’’’’’’. replace row (a, pos, row (a, old pos));’’’’’. replace row (a, old pos, v) .’’’’’’’’’’’’’’END PROC zeilentausch;’’’’’’’’END PACKET matrix;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ disable stop;’’’’’’’’’’’’’’> TASK VAR configurator := task ("configurator");’’’’’’’’’’’’ clear error;’’’’’’’’’’’’’’’. NOT is niltask (configurator).’’’’’’’’’’’’’.END PROC wait for configurator;’’’’’’’’’’’’’’’PROC generate shutup manager:’. generate shutup manager ("shutup", 0);’’’.END PROC generate shutup manager;’’’’’’’’’’’’’NPROC generate shutup manager (TEXT CONST name, INT CONST new system):’’’’’’’’’ TASK VAR son;’’’’’’’’’’’’ shutup question := name;’. new system for manager := new system;’’’’. begin (name, PROC shutup manager, son)’’’.END PROC generate shutup manager;’’’’’’’’’’’’’.INT VAR new system for manager;’’’’’’’’’’’’’’’TEXT VAR shutup question;’’’’’PROC shutup manager:’’’’’’’’’’ disable stop;’’’’’’’’’’’’ command dialogue (TRUE);’ break; line ;. IF yes (shutup question)’’’’’’’’’’’’’’ THEN clear error;’> shutup (new system for manager);’’’’’’’’’’’’’ pause (300);’END PROC shutup manager;’’’’’’PROC shutup dialog:’’’’’’’’’’’. show actual partition table (typnr);’’’’’’’ enter part number;’’’’’’ get cursor (cx, cy);’’’’> IF NOT escaped CAND yes (shutup question)’’’’’’’’’’’’’’’ THEN message;’’’’’’’’. shutup (partition type);’’’’’’’’. LEAVE shutup dialog’’’’’’’’’’’’’shutup question:’’’’’’’’’’’’’’ IF partition null’’’’’’’’’’ THEN "Shutup ausfŪhren"’^ ELSE "Shutup nach Partition mit Typnummer " + text (typnr (partition)) + " ausfŪhren"’’’ cl eol (1, cy);’’’’’’’’’’’’> put line ("Bitte auf ENDE - Meldung warten !").’’’’’’’’’’’’partition type:’’’’’’’’’’’’’’’ IF partition = 0’’’’’’’’’’’ ELSE typnr (partition)’’. LET startzeile menu = 12, ’’’’’’’’’’’’’’. escape = ""27"",’’’’’’’’’’’’. max partitions = 4;’’’’’’’’’’’’’’’. ROW max partitions INT VAR typnr;’’’’’’’’’’ INT VAR partition, cx, cy;’ TEXT VAR retchar.’’’’’’’’’’partition null:’’’’’’’’’’’’’’’. partition = 0 COR typnr (partition) = 0.’’’enter part number :’’’’’’’’’’’. cl eop (1, startzeile menu);’’’’’’’’’’’’’’’N cursor (54, startzeile menu ); put ("Abbruch mit ");’’’’’’’’’’’’’’’N cursor (54, startzeile menu + 1); put ("Shutup ohne Wechsel mit <0>");’’’’’. cursor ( 1, startzeile menu);’’’’’’’’’’’’’’> put ("Zu welcher Partition wollen Sie wechseln :");’’’’’’’’ get cursor (cx, cy);’’’’’’’ REP cursor (cx, cy);’’’’> partition := get choice (0, 4, retchar);’’’’’’’’’’’’> IF sure escaped THEN LEAVE shutup dialog FI;’’’’’’’’ UNTIL NOT escaped PER;’’> IF partition <> 0 CAND NOT partition exists’’’’’’’’’’’’’ THEN fehler;’’’’’’’’’> put ("Diese Partition gibt es nicht")’’’’’’’’’’’> UNTIL partition = 0 OR partition exists PER;’’’’’’’’’’’’’’’. cl eol (54, startzeile menu);’’’’’’’’’’’’’’. cl eol (54, startzeile menu + 1);’’’’’’’’’’ cl eop (1, cy + 2).’’’’’’’’partition exists:’’’’’’’’’’’’’ typnr (partition) <> 0.’’’’ retchar = escape.’’’’’’’’’’sure escaped :> IF escaped THEN cl eop (1, 20); cursor (1, 22);’’’’’’’’’’’’N IF yes ("Shutup-Dialog abbrechen") THEN TRUE’’’’’’’’’’’’’’’N ELSE cl eop (1, 20);’’’’N FALSE’’’’’’’’’’’’’’ FI’’’’’’’’’ ELSE FALSE’’’’’’ cl eop (1, 20);’’’’’’’’’’’’> put (""7"" + inverse ("FEHLER :")); line (2).’’’’’’’’’’’’’’END PROC shutup dialog;’’’’’’’.PROC generate shutup dialog manager:’’’’’’’’’’ TASK VAR son;’’’’’’’’’’’’> begin ("shutup dialog", PROC shutup dialog manager, son)’.END PROC generate shutup dialog manager;’’’’’’PROC shutup dialog manager:’’’ disable stop;’’’’’’’’’’’’ command dialogue (TRUE);’ break; line;’’’’’’’’’’ clear error;’’’’’’’’’’. INT VAR sess := session;’’’’’’’’’’’’’’ shutup dialog;’’’’’’’’> IF sess <> session THEN pause (300) FI;’’’’’’’’’’’’’’’.END PROC shutup dialog manager;’’’’’’’’’’’’’’’END PACKET new shutup’’’’’’’’’NPACKET config manager with time DEFINES configuration manager ,’’’’’’’’’’’’’’’N configuration manager with time :’’’’’N (* Copyright (C) 1985 *)’’’’’’’’’’NINT VAR old session := 0; (* Martin SchŚnbeck, Spenge *)’’’’’’’’’’N (* Stand: 06.11.85 *)’’’’’’’’’’PROC configuration manager: ’’ configurate;’’’’’’’’’’’’’’’N global manager (PROC (DATASPACE VAR, INT CONST, INT CONST, TASK CONST) ’’’’> configuration manager with time) ’’’’’’’.END PROC configuration manager; ’’’’’’’’’’’’’’NPROC configuration manager with time (DATASPACE VAR ds, INT CONST order, ’’’’’N phase, TASK CONST order task): ’’’’’’’’’ IF old session <> session’ disable stop;’’’’’’’’’ set clock (hw clock); N set clock (hw clock); (* twice, to avoid all paging delay *) ’’’’’’’’’N IF is error THEN IF online THEN put error; clear error; pause (100)’’’> ELSE clear error’’’’’’’’’’’ FI FI;. old session := session;’’’’’’’’’’’’’’’ set autonom;’’’’’’’’’’> configuration manager (ds, order, phase, order task); ’’’’.END PROC configuration manager with time; ’’’’.END PACKET config manager with time;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’longint’’’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įĄa€ė’’©©¦¦ō’’’’ōōŖ>M’’’’’’longint’’’’’’’’’’’’’’’’’’’’’’©’’’’’’’’’’’’’’’’’’a€’L’’’’’’’’’’’’’’’’’’’±€’A’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’с’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’1‚’’’’’’’’’’’’’’’’’’’’Q‚’’’’’’’’’’’’’’’’’’’’q‚’’’’’’’’’’’’’’’’’’’’‘‚’’’’’’’’’’’’’’’’’’’’±‚’’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’!ƒ’’’’’’’’’’’’’’’’’’’’Qƒ’’’’’’’’’’’’’’’’’’’’qƒ’&’’’’’’’’’’’’’’’’’’’”ƒ’"’’’’’’’’’’’’’’’’’’’у’’’’’’’’’’’’’’’’’’’’ńƒ’&’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’„’!’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’A…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘…’"’’’’’’’’’’’’’’’’’’’Į…’’’’’’’’’’’’’’’’’’’’ń…’’’’’’’’’’’’’’’’’’’’†’1’’’’’’’’’’’’’’’’’’’Q†’J’’’’’’’’’’’’’’’’’’’”†’>’’’’’’’’’’’’’’’’’’’ᆒ%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‡’/’’’’’’’’’’’’’’’’’’’Q‡’’’’’’’’’’’’’’’’’’’’’’ END OP :=;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q‡’'’’’’’’’’’’’’’’’’’’’”‡’$’’’’’’’’’’’’’’’’’’’ч’$’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’!ˆ’*’’’’’’’’’’’’’’’’’’’Qˆ’’’’’’’’’’’’’’’’’’’’qˆ’'’’’’’’’’’’’’’’’’’’’”ˆ’*’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’ END OP < ;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ш’'’’’’’’’’’’’’’’’’’’’‰’$’’’’’’’’’’’’’’’’’’’1‰’$’’’’’’’’’’’’’’’’’’’a‰’’’’’’’’’’’’’’’’’’’’‰’*’’’’’’’’’’’’’’’’’’’±‰’’’’’’’’’’’’’’’’’’’’щ’'’’’’’’’’’’’’’’’’’’’Š’*’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’ END OP > ;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Š’'’’’’’’’’’’’’’’’’’’’aŠ’’’’’’’’’’’’’’’’’’’’’’ END OP <=;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Š’'’’’’’’’’’’’’’’’’’’’±Š’’’’’’’’’’’’’’’’’’’’’’ END OP >=;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ъ’'’’’’’’’’’’’’’’’’’’’‹’ ’’’’’’’’’’’’’’’’’’’’’ END OP <>;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1‹’'’’’’’’’’’’’’’’’’’’’a‹’ ’’’’’’’’’’’’’’’’’’’’’ END OP = ;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘‹’#’’’’’’’’’’’’’’’’’’’Į‹’#’’’’’’’’’’’’’’’’’’’ń‹’’’’’’’’’’’’’’’’’’’’Œ’0’’’’’’’’’’’’’’’’’’’QŒ’/’’’’’’’’’’’’’’’’’’’’’ END SELECT’’’’’’’’’’ END OP -;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Œ’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ь’)’’’’’’’’’’’’’’’’’’’’:’’’’’’’’’’’’’’’’’’’A’:’’’’’’’’’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’’э’’’’’’’’’’’’’’’’’’’’ń’+’’’’’’’’’’’’’’’’’’’!Ž’’’’’’’’’’’’’’’’’’’’AŽ’B’’’’’’’’’’’’’’’’’’’‘Ž’F’’’’’’’’’’’’’’’’’’’įŽ’4’’’’’’’’’’’’’’’’’’’!’;’’’’’’’’’’’’’’’’’’’’’ END OP -;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’)’’’’’’’’’’’’’’’’’’’‘’G’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’@’’’’’’’’’’’’’’’’’’’q’D’’’’’’’’’’’’’’’’’’’Į’'’’’’’’’’’’’’’’’’’’’’’ END OP +;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’)’’’’’’’’’’’’’’’’’’’!‘’H’’’’’’’’’’’’’’’’’’’q‘’H’’’’’’’’’’’’’’’’’’’Į‘’’’’’’’’’’’’’’’’’’’’į‘’’’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’Q’’G’’’’’’’’’’’’’’’’’’’”’’A’’’’’’’’’’’’’’’’’’’ń’’4’’’’’’’’’’’’’’’’’’’’’ END OP *;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1“’'’’’’’’’’’’’’’’’’’’’a“’:’’’’’’’’’’’’’’’’’’’”“’’’’’’’’’’’’’’’’’’’’’’ END OP **;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į“’1’’’’’’’’’’’’’’’’’’’”’>’’’’’’’’’’’’’’’’’’’A”’B’’’’’’’’’’’’’’’’’’’‘”’’’’’’’’’’’’’’’’’’’’±”’’’’’’’’’’’’’’’’’’’’є’)’’’’’’’’’’’’’’’’’’’•’.’’’’’’’’’’’’’’’’’’’1•’0’’’’’’’’’’’’’’’’’’’’’ END OP **; ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q•’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±•’%’’’’’’’’’’’’’’’’’’’į•’G’’’’’’’’’’’’’’’’’’’’’ END PROC abs;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1–’/’’’’’’’’’’’’’’’’’’’q–’’’’’’’’’’’’’’’’’’’’’’ END OP DECR;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘–’+’’’’’’’’’’’’’’’’’’’Į–’G’’’’’’’’’’’’’’’’’’’—’4’’’’’’’’’’’’’’’’’’’Q—’,’’’’’’’’’’’’’’’’’’’—’-’’’’’’’’’’’’’’’’’’’±—’B’’’’’’’’’’’’’’’’’’’˜’2’’’’’’’’’’’’’’’’’’’A˜’!’’’’’’’’’’’’’’’’’’’q˜’J’’’’’’’’’’’’’’’’’’’Į˜’’’’’’’’’’’’’’’’’’’’ᘒ,’’’’’’’’’’’’’’’’’’’™’%’’’’’’’’’’’’’’’’’’’A™’"’’’’’’’’’’’’’’’’’’’q™’)’’’’’’’’’’’’’’’’’’’”™’L’’’’’’’’’’’’’’’’’’’ń™’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1š’"’’’’’’’’’’’’’’’’’’’aš’2’’’’’’’’’’’’’’’’’’’”š’*’’’’’’’’’’’’’’’’’’’њ’?’’’’’’’’’’’’’’’’’’’!›’B’’’’’’’’’’’’’’’’’’’q›’C’’’’’’’’’’’’’’’’’’’Į›’’’’’’’’’’’’’’’’’’’’į›’.’’’’’’’’’’’’’’’’’’’œ’/’’’’’’’’’’’’’’’’’’’Qœ’<’’’’’’’’’’’’’’’’’’’’’ END OP DIV;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘œ’ ’’’’’’’’’’’’’’’’’’’Įœ’’’’’’’’’’’’’’’’’’’’ᜒ’’’’’’’’’’’’’’’’’’’’’ END PROC get;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’ END PROC get;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’2’’’’’’’’’’’’’’’’’’’ѝ’’’’’’’’’’’’’’’’’’’’’’ END OP INCR;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’&’’’’’’’’’’’’’’’’’’’!ž’’’’’’’’’’’’’’’’’’’’Až’’’’’’’’’’’’’’’’’’’’až’F’’’’’’’’’’’’’’’’’’’±ž’+’’’’’’’’’’’’’’’’’’’įž’+’’’’’’’’’’’’’’’’’’’Ÿ’1’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’ END PROC int;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŸ’&’’’’’’’’’’’’’’’’’’’Ÿ’;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ AT Generator’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€ė’’‰‰††’’’’Ё>M’ž’’’’’’ AT Generator’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’a€’K’’’’’’’’’’’’’’’’’’’±€’K’’’’’’’’’’’’’’’’’’’’K’’’’’’’’’’’’’’’’’’’Q’K’’’’’’’’’’’’’’’’’’’”’K’’’’’’’’’’’’’’’’’’’ń’K’’’’’’’’’’’’’’’’’’’A‚’K’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ LET ack = 0,’’’’’’’’’’’ nak = 1;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘‚’’’’’’’’’’’’’’’’’’’’”‚’’’’’’’’’’’’’’’’’’’’Į‚’’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’!ƒ’’’’’’’’’’’’’’’’’’’’Aƒ’’’’’’’’’’’’’’’’’’’’’’break.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qƒ’’’’’’’’’’’’’’’’’’’’‘ƒ’’’’’’’’’’’’’’’’’’’’±ƒ’’’’’’’’’’’’’’’’’’’’’’ line (2).’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’გ’’’’’’’’’’’’’’’’’’’„’*’’’’’’’’’’’’’’’’’’’1„’/’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’‘„’'’’’’’’’’’’’’’’’’’’’Į„’+’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’ń„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’!…’(’’’’’’’’’’’’’’’’’’’Q…’’’’’’’’’’’’’’’’’’’’q…’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”…’’’’’’’’’’’’’’’’’’’’Į…’)’’’’’’’’’’’’’’’’’’’ń…’’’’’’’’’’’’’’’’’’’’†’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A†’’’’’’’’’’’’’’’’’’’’a†’-’’’’’’’’’’’’’’’’’’’‘†’’’’’’’’’’’’’’’’’’’’±†’:’’’’’’’’’’’’’’’’’’’ń†’’’’’’’’’’’’’’’’’’’’‡’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‡’’’’’’’’’’’’’’’’’’’’q‡’%’’’’’’’’’’’’’’’’’’’”‡’’’’’’’’’’’’’’’’’’’’Į‡’’’’’’’’’’’’’’’’’’’’ᇒ’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aˆ’’’’’’’’’’’’’’’’’’’’aˆ’’’’’’’’’’’’’’’’’’’’‘ˆ’ ’’’’’’’’’’’’’’’’’’’Įˆ’#’’’’’’’’’’’’’’’’’’’ńˆ’’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’1‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‰’+’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’”‰’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’щ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń‰’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’1Š’’’’’’’’’’’’’’’’’’’’QŠ’!’’’’’’’’’’’’’’’’’’’Š’#’’’’’’’’’’’’’’’’’’’±Š’’’’’’’’’’’’’’’’’’’’ъ’’’’’’’’’’’’’’’’’’’’ńŠ’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’’’ setup;’’’’’’’’’’’’1‹’K’’’’’’’’’’’’’’’’’’’‹’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į‹’+’’’’’’’’’’’’’’’’’’’ń‹’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AŒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qŒ’!’’’’’’’’’’’’’’’’’’’”Œ’’’’’’’’’’’’’’’’’’’’ĮŒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ጒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q’0’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’э’7’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’!Ž’’’’’’’’’’’’’’’’’’’’AŽ’#’’’’’’’’’’’’’’’’’’’qŽ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ž’H’’’’’’’’’’’’’’’’’’’įŽ’5’’’’’’’’’’’’’’’’’’’’’ put (t).’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ PROC cl eol: ’’’’’’’’A’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ PROC cl eop: ’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’ ’’’’’’’’’’’’’’’’’’’я’’’’’’’’’’’’’’’’’’’’’’ cl eol ’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ cl eop ’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’N(*************************************************************************)’’’N(*** Generiert FŪr IBM-AT einen neuen SYSUR-Zweig. ***)’’’N(*** Danach wird die eingebaute Hardwareuhr fŪr die Systemzeit benutzt ***)’’’N(*** und andere Partitionen kŚnnen mit neuem 'shutup' gebootet werden. ***)’’’N(*** ***)’’’N(*** Autor : W. Sauerwein Stand : 15.07.86 ***)’’’N(*************************************************************************)’’’cl eop (1, 4);erzeuge collector;’’’’’’’’’’’’erzeuge archive manager;’’’’’’erzeuge operator;’’’’’’’’’’’’’erzeuge configurator;’’’’’’’’’loesche collector;’’’’’’’’’’’’.forget ("AT Generator", quiet);’’’’’’’’’’’’’’’loesche collector :’’’’’’’’’’’ end (/"colly");’’’’’’’’’’’’. put ("Collector gelŚscht.");’’’’’’’’’’’’’’’erzeuge collector :’’’’’’’’’’’’’’’’’’’ĮŸ’;’’’’’’’’’’’’’’’’’’’ ’-’’’’’’’’’’’’’’’’’’’1 ’0’’’’’’’’’’’’’’’’’’’q ’)’’’’’’’’’’’’’’’’’’’” ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į ’(’’’’’’’’’’’’’’’’’’’ń ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’!”’+’’’’’’’’’’’’’’’’’’’Q”’H’’’’’’’’’’’’’’’’’’’””’)’’’’’’’’’’’’’’’’’’’Ń”’1’’’’’’’’’’’’’’’’’’’¢’2’’’’’’’’’’’’’’’’’’’Q¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q¢’2’’’’’’’’’’’’’’’’’’’±¢’B’’’’’’’’’’’’’’’’’’’£’ ’’’’’’’’’’’’’’’’’’’1£’-’’’’’’’’’’’’’’’’’’’a£’6’’’’’’’’’’’’’’’’’’’’’ i - 1.’’’’’’’’’”£’3’’’’’’’’’’’’’’’’’’’ᣒ’’’’’’’’’’’’’’’’’’’¤’F’’’’’’’’’’’’’’’’’’’Q¤’"’’’’’’’’’’’’’’’’’’’¤’<’’’’’’’’’’’’’’’’’’’Į¤’’’’’’’’’’’’’’’’’’’’ᤒ’’’’’’’’’’’’’’’’’’’„’6’’’’’’’’’’’’’’’’’’’A„’F’’’’’’’’’’’’’’’’’’’‘„’@’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’¦’E’’’’’’’’’’’’’’’’’’’Q¦’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q¦’-’’’’’’’’’’’’’’’’’’’”¦’*’’’’’’’’’’’’’’’’’’’’’ END PROC max;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѧ’’’’’’’’’’’’’’’’’’’’ń¦’$’’’’’’’’’’’’’’’’’’’!§’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A§’-’’’’’’’’’’’’’’’’’’’q§’*’’’’’’’’’’’’’’’’’’’’’ END PROC min;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”§’+’’’’’’’’’’’’’’’’’’’ѧ’F’’’’’’’’’’’’’’’’’’’!Ø’'’’’’’’’’’’’’’’’’’’’’’ END OP MOD;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QØ’"’’’’’’’’’’’’’’’’’’’Ø’ ’’’’’’’’’’’’’’’’’’’±Ø’0’’’’’’’’’’’’’’’’’’’ńØ’)’’’’’’’’’’’’’’’’’’’!©’3’’’’’’’’’’’’’’’’’’’a©’2’’’’’’’’’’’’’’’’’’’”©’.’’’’’’’’’’’’’’’’’’’Ń©’.’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’’’ END PROC put;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ŗ’0’’’’’’’’’’’’’’’’’’’aŖ’’’’’’’’’’’’’’’’’’’’’’ END PROC put;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ŗ’=’’’’’’’’’’’’’’’’’’’ĮŖ’C’’’’’’’’’’’’’’’’’’’«’@’’’’’’’’’’’’’’’’’’’a«’3’’’’’’’’’’’’’’’’’’’”«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į«’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¬’#’’’’’’’’’’’’’’’’’’’1¬’#’’’’’’’’’’’’’’’’’’’a¬’’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’”¬’’’’’’’’’’’’’’’’’’’’’’ END SELECT’’’’’’’’Į¬’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѭ’(’’’’’’’’’’’’’’’’’’’­’.’’’’’’’’’’’’’’’’’’’1­’8’’’’’’’’’’’’’’’’’’’q­’7’’’’’’’’’’’’’’’’’’’±­’1’’’’’’’’’’’’’’’’’’’ń­’1’’’’’’’’’’’’’’’’’’’1®’5’’’’’’’’’’’’’’’’’’’q®’5’’’’’’’’’’’’’’’’’’’±®’’’’’’’’’’’’’’’’’’’’Ń®’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į®’9’’’’’’’’’’’’’’’’’’’!Æ’'’’’’’’’’’’’’’’’’’’’QÆ’C’’’’’’’’’’’’’’’’’’’”Æ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮÆ’’’’’’’’’’’’’’’’’’’’ᯒ/’’’’’’’’’’’’’’’’’’’!°’F’’’’’’’’’’’’’’’’’’’q°’(’’’’’’’’’’’’’’’’’’’”°’=’’’’’’’’’’’’’’’’’’’į°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’7’’’’’’’’’’’’’’’’’’’A±’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ѱ’%’’’’’’’’’’’’’’’’’’’²’B’’’’’’’’’’’’’’’’’’’Q²’’’’’’’’’’’’’’’’’’’’q²’-’’’’’’’’’’’’’’’’’’’”²’1’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’į²’3’’’’’’’’’’’’’’’’’’’’’ ergebnis.’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!³’’’’’’’’’’’’’’’’’’’’A³’H’’’’’’’’’’’’’’’’’’’‘³’’’’’’’’’’’’’’’’’’’’±³’/’’’’’’’’’’’’’’’’’’’ń³’)’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’!“’’’’’’’’’’’’’’’’’’’’A“’’’’’’’’’’’’’’’’’’’’a“’1’’’’’’’’’’’’’’’’’’’”“’#’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’Ń“’-’’’’’’’’’’’’’’’’’’’µ’*’’’’’’’’’’’’’’’’’’’1µ’@’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’µ’ ’’’’’’’’’’’’’’’’’’’±µ’@’’’’’’’’’’’’’’’’’’’¶’!’’’’’’’’’’’’’’’’’’’’’ END OP ADD;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1¶’"’’’’’’’’’’’’’’’’’’’a¶’G’’’’’’’’’’’’’’’’’’’±¶’G’’’’’’’’’’’’’’’’’’’·’F’’’’’’’’’’’’’’’’’’’Q·’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q·’,’’’’’’’’’’’’’’’’’’’”·’’’’’’’’’’’’’’’’’’’’Į·’’’’’’’’’’’’’’’’’’’’į·’3’’’’’’’’’’’’’’’’’’’!ø’/’’’’’’’’’’’’’’’’’’’aø’’’’’’’’’’’’’’’’’’’’’’ x MUL z ’’’’’’’’’’’ END OP EXP;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ø’@’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’Ńø’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¹’’’’’’’’’’’’’’’’’’’’!¹’*’’’’’’’’’’’’’’’’’’’Q¹’#’’’’’’’’’’’’’’’’’’’’’ i’’’’’’’’’’’’’’’’’¹’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±¹’$’’’’’’’’’’’’’’’’’’’į¹’L’’’’’’’’’’’’’’’’’’’1ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qŗ’%’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’”ŗ’9’’’’’’’’’’’’’’’’’’’įŗ’6’’’’’’’’’’’’’’’’’’’!»’H’’’’’’’’’’’’’’’’’’’q»’’’’’’’’’’’’’’’’’’’’‘»’*’’’’’’’’’’’’’’’’’’’Į»’7’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’¼’A’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’Q¼’C’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”¼’’’’’’’’’’’’’’’’’’’’Į¼’D’’’’’’’’’’’’’’’’’’’½’)’’’’’’’’’’’’’’’’’’’A½’!’’’’’’’’’’’’’’’’’’’q½’’’’’’’’’’’’’’’’’’’’’’ END OP MUL;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘½’&’’’’’’’’’’’’’’’’’’’Į½’B’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’1¾’.’’’’’’’’’’’’’’’’’’’a¾’6’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’”¾’5’’’’’’’’’’’’’’’’’’’’’ ergebnis.’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į¾’’’’’’’’’’’’’’’’’’’’æ’H’’’’’’’’’’’’’’’’’’’aæ’’’’’’’’’’’’’’’’’’’’æ’.’’’’’’’’’’’’’’’’’’’±æ’(’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’įæ’’’’’’’’’’’’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’!Ą’+’’’’’’’’’’’’’’’’’’’QĄ’'’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’Ą’8’’’’’’’’’’’’’’’’’’’’’ END OP SUB;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮĄ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET longint DEFINES LONGINT, (* Autoren: S.Baumann,A.Bentrup *)’’N :=, (* T.Sillke *)’’’’’’’’’’’’’N <, (* Stand: 17.03.81 *)’’’’’’’’’’’’’ >, ’ <=,’ >=,’ <>,’ =,’’ -,’’ +,’’ *,’’ **,’ ABS, abs,. DECR,’’’’’’’’’’’’’’’ DIV, get,. INCR,’’’’’’’’’’’’’’’ int,. (*last rest,*)’’’’’’’’. longint,’’’’’’’’’’’’ max,. . put line ("Generating 'Collector'...");’’’’> begin ("colly", PROC generate collector, t);’’’’’’’’’’’’’’’ warte auf meldung;’’’’’’’’’. IF answer = nak THEN end (/"colly");’’’’’’’. errorstop (meldung)’’’ TASK VAR t.erzeuge archive manager :’’’’’. put line ("Generating 'ARCHIVE'...");’’’’’’ end (/"ARCHIVE");’’’’’’’’’’. begin ("ARCHIVE", PROC archive manager, t).erzeuge operator :’’’’’’’’’’’’. put line ("Generating 'OPERATOR'...");’’’’’ end (/"OPERATOR");’’’’’’’’’. begin ("OPERATOR", PROC monitor, t).’’’’’’’erzeuge configurator :’’’’’’’’. put line ("Generating 'configurator'...");’ end (/"configurator");’’’’’> begin ("configurator", PROC generate configurator, t); ’’’’ warte auf meldung;’’’’’’’’’> IF answer = nak THEN errorstop (meldung) FI.’’’’’’’’’’’’’’’warte auf meldung : ’’’’’’’’’’. DATASPACE VAR ds; INT VAR answer; ’’’’’’’’’ wait (ds, answer, t);’’’’’’ BOUND TEXT VAR m := ds;’’’’ TEXT VAR meldung := m;’’’’’ forget (ds).’’’’’’’’’’’’’’’PROC generate collector :’’’’’ disable stop;’’’’’’’’’’’’’’. fetch all (/"configurator");’’’’’’’’’’’’’’’. DATASPACE VAR ds := nilspace;’’’’’’’’’’’’’’. BOUND TEXT VAR m := ds; m := "";’’’’’’’’’’’ send (father, mess, ds);’’’ forget (ds);’’’’’’’’’’’’’’’ free global manager.’’’’’’’.mess : IF is error THEN m := error message;’’’ nak’’’. ELSE ack FI.’’’’’’’’’’’’’’’END PROC generate collector;’’PROC generate configurator :’’ disable stop;’’’’’’’’’’’’’’ fetch all (/"colly");’’’’’’. DATASPACE VAR ds := nilspace; ’’’’’’’’’’’’’. BOUND TEXT VAR m := ds; m := "";’’’’’’’’’’’ send (father, mess, ds);’’’ forget (ds);’’’’’’’’’’’’’’’ enable stop;’’’’’’’’’’’’’’’ new configuration;’’’’’’’’’N global manager (PROC ( DATASPACE VAR, INT CONST, INT CONST, TASK CONST) ’’’> configuration manager with time).’’’’’’’’’’.mess : IF is error THEN m := error message;’’’ nak’’’. ELSE ack FI.’’’’’’’’’’’’’’’.END PROC generate configurator;’’’’’’’’’’’’’’’.TEXT PROC inverse (TEXT CONST t):’’’’’’’’’’’’’ ""15"" + t + " " + ""14""’’’END PROC inverse;’’’’’’’’’’’’’.PROC put center (TEXT CONST t):’’’’’’’’’’’’’’’ put center (t, 80)’’’’’’’’’END PROC put center;’’’’’’’’’’>PROC put center (INT CONST zeile, TEXT CONST t):’’’’’’’’’’’’’’ put center (zeile, t, 80)’’END PROC put center;’’’’’’’’’’>PROC put center (TEXT CONST t, INT CONST gesamtbreite):’’’’’’’ INT VAR cy; get cursor (cy, cy);’’’’’’’. put center (cy, t, gesamtbreite)’’’’’’’’’’’END PROC put center;’’’’’’’’’’NPROC put center (INT CONST zeile, TEXT CONST t, INT CONST gesamtbreite):’’’’’’> cursor ((gesamtbreite - length (t)) DIV 2, zeile);’’’’’’’’’END PROC put center;’’’’’’’’’’ out (""5"") END PROC cl eol;’’’’’’’’’’’’’’ out (""4"") END PROC cl eop; ’’’’’’’’’’’’’.PROC cl eol (INT CONST cx, cy): ’’’’’’’’’’’’’’ cursor (cx, cy); ’’’’’’’’’’END PROC cl eol; ’’’’’’’’’’’’’.PROC cl eop (INT CONST cx, cy): ’’’’’’’’’’’’’’ cursor (cx, cy); ’’’’’’’’’’END PROC cl eop; ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ max longint,’’’’’’’’ min, MOD, put,. random,’’’’’’’’’’’’’. SIGN,’’’’’’’’’’’’’’’. sign,’’’’’’’’’’’’’’’. text,’’’’’’’’’’’’’’’. zero:’’’’’’’’’’’’’’’TYPE LONGINT = TEXT;’’’’’’’’’’.LONGINT VAR result,aleft,aright;’’’’’’’’’’’’.TEXT VAR ergebnis,x,y,z,h;’’’’’’’’’’’’’’’INT VAR v byte,slr,sll;’>INT CONST snull :: code("0"), mtl :: 300 ;’’’’’’’’’’’’’NTEXT CONST negativ :: code(127),max digit :: code(99),null :: code(0),’’’’> overflow :: "LONGINT overflow",eins :: code(1); .BOOL VAR vorl,vorr,vleft,vright;’’’’’’’’’>OP := (LONGINT VAR left, LONGINT CONST right) :’’’’’’’’’’’’’’’ CONCR(left) := CONCR(right).BOOL OP < (LONGINT CONST left,right) :’’’’’’’. slr := sign(right)*length(right);’’’’’’’’’’. sll := sign(left )*length(left );’’’’’’’’’’ IF slr <> sll THEN’’’’’’’’’. IF slr > sll THEN TRUE ELSE FALSE FI’’’’ ELSE IF slr>0’’’’’’’’’’’’’’. THEN CONCR(left) < CONCR(right)’’’’’’’. ELSE CONCR(left) > CONCR(right) FI’’’’.BOOL OP > (LONGINT CONST left,right) :’’’’’’’. slr := sign(right)*length(right);’’’’’’’’’’. sll := sign(left )*length(left );’’’’’’’’’’ IF slr <> sll THEN’’’’’’’’’. IF slr < sll THEN TRUE ELSE FALSE FI’’’’ ELSE IF slr>0’’’’’’’’’’’’’’. THEN CONCR(left) > CONCR(right)’’’’’’’. ELSE CONCR(left) < CONCR(right) FI’’’’.BOOL OP <= (LONGINT CONST left,right) :’’’’’’’ NOT (left > right)’’’’’’’’’.BOOL OP >= (LONGINT CONST left,right) :’’’’’’’ NOT (left < right)’’’’’’’’’.BOOL OP <> (LONGINT CONST left,right) :’’’’’’’. CONCR (left) <> CONCR (right)’’’’’’’’’’’’’’.BOOL OP = (LONGINT CONST left,right) :’’’’’’’. CONCR (left) = CONCR (right)’’’’’’’’’’’’’’.LONGINT OP - (LONGINT CONST arg) : ’’’’’’’’’’’. SELECT code(CONCR(arg)SUB1) OF’’’’’’’’’’’ CASE 0 : zero’’’’’’’’’’’> CASE 127: LONGINT : (subtext(CONCR(arg),2))’’’’’’’’’’’’’’> OTHERWISE LONGINT : (negativ + CONCR(arg))’’’’’’’’’’’’’’’>LONGINT OP + (LONGINT CONST arg) : arg END OP +;’’’’’’’’’’’.LONGINT OP - (LONGINT CONST left,right) :’’’’’> IF CONCR(left ) = null THEN LEAVE - WITH -right’’’’> ELIF CONCR(right) = null THEN LEAVE - WITH left’’’’N ELIF sign(left) <> sign(right) THEN LEAVE - WITH left + (-right) FI;’’’’’’’ betrag(left,right);’’’’’’’’. BOOL CONST betrag max :: aleft > aright;’’’ IF betrag max’’’’’’’’’’’’N THEN result := LONGINT : (CONCR(aleft ) SUB CONCR(aright))’’’’’’’’’’’’N ELSE result := LONGINT : (CONCR(aright) SUB CONCR(aleft )) FI;’’’’’’’’> kuerze fuehrende nullen(CONCR(result),null);’’’’’’’’’’> IF vleft XOR betrag max THEN -result ELSE result FI’’’.LONGINT OP + (LONGINT CONST left,right) :’’’’’N IF sign(left) <> sign(right) THEN LEAVE + WITH left - (-right) FI;’’’’’’’ betrag(left,right);’’’’’’’’ IF aleft > aright’’’’’’’’’’N THEN result := LONGINT : (CONCR(aleft ) ADD CONCR(aright))’’’’’’’’’’’’’’N ELSE result := LONGINT : (CONCR(aright) ADD CONCR(aleft )) FI;’’’’’’’’’’. IF vleft THEN result ELSE -result FI’’’’’’’.LONGINT OP * (LONGINT CONST left,right) :’’’’’N IF CONCR(left) = null OR CONCR(right) = null THEN LEAVE * WITH zero’’’’’’N ELIF length(left) + length(right) > mtl THEN errorstop (overflow) FI;’’’’’’ betrag(left,right);’’’’’’’’ IF aleft < aright ’’’’’’’N THEN result := LONGINT : (CONCR(aright) MUL CONCR(aleft ))’’’’’’’’’’’’N ELSE result := LONGINT : (CONCR(aleft ) MUL CONCR(aright)) FI;’’’’’’’N IF length(CONCR(result)) = mtl THEN errorstop(overflow) FI;’’’’’’’’’’’’’> IF vleft XOR vright THEN -result ELSE result FI’’’’’’’’’’.LONGINT OP ** (LONGINT CONST arg,exp) :’’’’’’’> IF exp > longint(max int) THEN errorstop (overflow) FI;’’’’ arg ** int(exp)’’’’’’’’’’’’>LONGINT OP ** (LONGINT CONST arg,INT CONST exp) :’’’’’’’’’’’’’> IF exp < 0 THEN errorstop ("LONGINT OP ** : negativ exp")N ELIF CONCR(arg)=null AND exp=0 THEN errorstop(text(0 ** 0)) FI;’’’’’’’’’’’’ IF exp = 0 THEN one’’’’’ ELIF exp = 1 THEN arg’’’’’. ELIF sign(arg) = -1 AND exp MOD 2 <> 0’’’’’. THEN -LONGINT:(CONCR(abs(arg))EXPexp) > ELSE LONGINT:(CONCR(abs(arg))EXPexp) FI’’’’’’’’’’’’’’>LONGINT OP ABS (LONGINT CONST arg) : abs(arg) END OP ABS;’’’’’.LONGINT PROC abs (LONGINT CONST a) : ’’’’’’’’’N IF (CONCR(a)SUB1)=negativ THEN LONGINT:(subtext(CONCR(a),2)) ELSE a FI’’’’’’’>OP DECR (LONGINT VAR result,LONGINT CONST ab) :’’’’’’’’’’’’’’’ result := result - ab;’’’’’.LONGINT OP DIV (LONGINT CONST left,right) :’’’N IF CONCR(right) = null THEN error stop("LONGINT OP DIV by zero") FI;’’’’’’’> betrag(left,right); h := CONCR(aright);’’’’’’’’’’. y := null + CONCR(aleft ); vorl := vleft;’’. z := null + CONCR(aright); vorr := vright;’N IF aleft < aright THEN y:=CONCR(aleft); LEAVE DIV WITH zero FI;’’’’’’’’’’’’> INT VAR try,i,cr1 :: code(z SUB 2),cr2,cr3,zw;’’’’’’’’’’’’. BOOL VAR sh :: length(z) <> 2;’’’’’’’’’’’’’N IF sh THEN cr3:=code(zSUB3); cr2:=10*cr1+cr3DIV10; cr3:=100*cr1+cr3 FI;’’’’ CONCR(result) := "";’’’’’’’. FOR i FROM 0 UPTO length(y)-length(z) REP’’. laufe eine abschaetzung durch; ’’’’’’’’’. CONCR (result) CAT code(try)’’’’’’’’’’’’. PER; kuerze fuehrende nullen(y,null);’’’’’N IF(CONCR(result)SUB1)=nullTHEN CONCR(result):=subtext(CONCR(result),2)FI;’’> IF vleft XOR vright THEN -result ELSE result FI.’’’’’’’’’’’. laufe eine abschaetzung durch :’’’’’’’’’’’’> zw := 100*code(y SUB i+1) + code(y SUB i+2);’’’’’’’’’’’’. IF zw < 3276 AND sh THEN IF zw < 327’’’’N THEN try := min((100*zw + code(ySUBi+3)) DIV cr3, 99)’’’’’’’’’’’’’’’N ELSE try := min(( 10*zw + code(ySUBi+3)DIV10)DIV cr2, 99) FI’’’’’’’’’’’’N ELSE try := min( zw DIV cr1, 99) FI;’’’’’’’’’’’ x := z MUL code(try); ’. WHILE x > subtext(y,i+1,i+length(x)) REP> try DECR 1; x := x SUB z PER;’’’’’’’’’’’’’’’> replace(y,i + 1,subtext(y,i + 1,i + length(x)) SUB x) ’’.PROC get (LONGINT VAR result) : ’’’’’’’’’’’’’’ get (ergebnis);’’’’’’’’’’’’. result := longint(ergebnis);’’’’’’’’’’’’’’’.PROC get (FILE VAR file,LONGINT VAR result) :’ get(file,ergebnis);’’’’’’’’. result := longint(ergebnis);’’’’’’’’’’’’’’’>OP INCR (LONGINT VAR result,LONGINT CONST dazu) : ’’’’’’’’’’’’ result := result + dazu;’’’.INT PROC int (LONGINT CONST longint) :’’’’’’’’ IF length(longint) > 3 ’’’’ THEN max int + 1’’’’’’’’N ELSE ergebnis := (3-length(longint))*null + CONCR(abs(longint));’’’’’’’’. (code(ergebnis SUB 1) * 10000 +’’’. code(ergebnis SUB 2) * 100 +’’’> code(ergebnis SUB 3)) * sign(longint)’’’’’’’’’’’’’.LONGINT PROC longint (INT CONST int) :’’’’’’’’> CONCR(result) := code( abs(int) DIV 10000) +’’’> code((abs(int) MOD 10000) DIV 100) +’’’. code( abs(int) MOD 100);’> kuerze fuehrende nullen (CONCR(result),null);’’’’’’’’’’’’’’. IF int < 1 THEN -result ELSE result FI’’’’’END PROC longint;’’’’’’’’’’’’’.LONGINT PROC longint (TEXT CONST text) :’’’’’’ INT VAR i; ergebnis := compress(text);. BOOL VAR minus :: (ergebnisSUB1) = "-"; ’’’N IF (ergebnisSUB1)="+" OR minus THEN ergebnis:=subtext(ergebnis,2) FI;’’’’’’. kuerze fuehrende nullen(ergebnis,"0");’’’’’> kuerze die unzulaessigen zeichen aus ergebnP@’’@’’’’’’’’’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’std analysator’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Qˆa€ė’’FFCC @’’’’ @ @G>M’ž’’’’a€’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’F’’’’’’’’’’’’’’’’’’q€’M’’’’’’’’’’’’’’’’’’’Į€’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’)’’’’’’’’’’’’’’’’’’’q’)’’’’’’’’’’’’’’’’’’’”’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’с’’’’’’’’’’’’’’’’’’’’ń’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’!‚’8’’’’’’’’’’’’’’’’’’’a‚’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’т’%’’’’’’’’’’’’’’’’’’’ƒ’&’’’’’’’’’’’’’’’’’’’1ƒ’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qƒ’’’’’’’’’’’’’’’’’’’’‘ƒ’’’’’’’’’’’’’’’’’’’’±ƒ’’’’’’’’’’’’’’’’’’’’у’’’’’’’’’’’’’’’’’’’’ńƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’1„’*’’’’’’’’’’’’’’’’’’’a„’=’’’’’’’’’’’’’’’’’’’”„’’’’’’’’’’’’’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’…’R’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a…’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’±…’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’х’’’’’’’’’’’’’’’’’’’’ń…’’’’’’’’’’’’’’’’’’’’†’>’’’’’’’’’’’’’’’’’’’Q†’.’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’”†’’’’’’’’’’’’’’’’’’’’Į†’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᆒ ’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’1‡’’’’’’’’’’’’’’’’’’’’Q‡’’’’’’’’’’’’’’’’’’’’q‡’’’’’’’’’’’’’’’’’’’’‘‡’’’’’’’’’’’’’’’’’’’’±‡’’’’’’’’’’’’’’’’’’’’ч’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’ń‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’std analysatorNPACKET std analysator (* Autor : Rudolf Ruland *)’N (* Stand : 06.11.86 *)’. DEFINES std analysator :’’’’’’’’’’’’’’’.LET text code = 1, ’’’’’. error code = 2, ’’’’’. token code = 3; ’’’’’INT VAR instruction begin;’’’’.TEXT VAR unknown instruction := "";’’’’’’’’’’’>PROC std analysator (INT CONST op code, TEXT VAR string,’’’’’’N INT VAR par1, par2, par3, par4, par5, par6, par7) :’’’’’’ SELECT op code OF ’’’’’’’’’’. CASE text code : analyse text ’’’’’’’’’. CASE error code : report errors ’’’’’’’’. CASE token code : report tokens ’’’’’’’’ END SELECT ; . record : string’’’’’’ . record pos : par1’’’’’’’’ . width : par4’’’’’’’’ . height : par5’’’’’’’’ . depth : par6’’’’’’’’ . analyse text : ’’’’’’’’’’’. instruction begin := record pos + 1;’’’’> record pos := pos (record, "#", instruction begin) + 1;’ width := 0;’’’’’’’’ height := 0;’’’’’’’’ depth := 0;’’’’’’’’^ unknown instruction := subtext (record, instruction begin, instruction end);’’’’’’’’’’’’. . instruction end : record pos - 2’’’’’’. error msg : string ’’’’’’’. error nr : par1’’’’’’’’’’ report errors :’’’’’’’’’’’’’ IF error nr = 0’’’’’’’’’’’> THEN error msg := "unbekannte Anweisung (ignoriert): ";. error msg CAT unknown instruction; error nr := 1;’’’ ELSE error msg := "";’’ error nr := 0;’’’.. token text : string’’’’’’’’’’’’’’. token nr : par1. token font nr : par2. token modifications : par3. token width : par4. token x pos : par5. token y pos : par6. token type : par7 report tokens :’’’’’’’’’’’’’END PROC std analysator;’’’’’’END PACKET std analysator;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’is;’’’’’’’’’’’’’> schreibe ergebnis im hundertersystem in result;’’’’’’’’’’’’ result mit vorzeichen.’’’’’> kuerze die unzulaessigen zeichen aus ergebnis :’’’’’’’’’’’’N ergebnis := subtext(ergebnis,1,letztes zulaessiges zeichen).’’’’’’’’’’’’. letztes zulaessiges zeichen :’’’’’’’’’’’’’’. FOR i FROM 1 UPTO length(ergebnis) REP ’> UNTIL pos("0123456789", ergebnis SUB i) = 0 PER;’’’’’’’’> schreibe ergebnis im hundertersystem in result :’’’’’’’’’’’ sll := length(ergebnis);N IF sll MOD 2 <> 0 THEN ergebnis := "0"+ergebnis; sll INCR 1 FI; ’’’’’’’’. i := 1; CONCR(result) := "";’’’’’’’’’’’’> REP schreibe ein zeichen im hundertersystem in result;’’ i INCR 2’’’’’’’’’’’’ UNTIL i >= sll PER.’’’’’> schreibe ein zeichen im hundertersystem in result :’’’’’’’’N CONCR(result) CAT code((code(ergebnis SUB i ) - snull) * 10 +’’’’’’’’N code(ergebnis SUB i + 1) - snull).’’’’’’’’’’’’’’ result mit vorzeichen : ’’’N IF ergebnis="" THEN zero ELIF minus THEN -result ELSE result FI’’’’’’’’’END PROC longint;’’’’’’’’’’’’’.LONGINT PROC max (LONGINT CONST left,right) :’. IF left > right THEN left ELSE right FI’’’’LONGINT PROC max longint :’’’’. LONGINT : ((mtl - 1) * max digit)’’’’’’’’’’END PROC max longint;’’’’’’’’’.LONGINT PROC min (LONGINT CONST left,right) :’. IF left < right THEN left ELSE right FI’’’’.LONGINT OP MOD (LONGINT CONST left,right) :’’’N IF CONCR(right) = null THEN errorstop("LONGINT OP MOD by zero") FI;’’’’’’’’. result := left DIV right; last rest ’’’’’’’.PROC put (LONGINT CONST longint) :’’’’’’’’’’’’. INT VAR i :: 1,zwei ziffern;’’’’’’’’’’’’’’> IF sign(longint) = -1 THEN out("-"); i:=2 FI;’’’’’’’’’’’’’’. out(text(code(CONCR(longint) SUB i)));’’’’’> FOR i FROM i + 1 UPTO length(CONCR(longint)) REP’’’’’’’’’’’> zwei ziffern := code(CONCR(longint) SUB i);’’’’’’’’’’’’. out(code(zwei ziffern DIV 10 + snull));. out(code(zwei ziffern MOD 10 + snull)); PER;out(" ")’’’’’’’’’’’’’’’>PROC put (FILE VAR file,LONGINT CONST longint) :’’’’’’’’’’’’’’ put(file,text(longint));’’’>LONGINT PROC random (LONGINT CONST lower bound,upper bound) :’N INT VAR i; x := CONCR(upper bound - lower bound - one); y := "";’’’’’’’’’’’N FOR i FROM 1 UPTO length(x) REP y CAT code(random(0,99)) PER;’’’’’’’’’’’’’’> upper bound - (LONGINT : (y) MOD LONGINT : (x)) ’’’’’’’’’’’END PROC random;’’’’’’’’’’’’’’>INT OP SIGN (LONGINT CONST arg) : sign(arg) END OP SIGN;’’’’’’.INT PROC sign (LONGINT CONST arg) :’’’’’’’’’’’. SELECT code(CONCR(arg) SUB 1) OF’’’’’’’’’’’ CASE 0 : 0’’’’’’’’’’’ CASE 127 : -1’’’’’’’’’’’ OTHERWISE 1’’’’’’’’’’’END PROC sign;.TEXT PROC text (LONGINT CONST longint) :’’’’’’. INT VAR i::1,zwei ziffern; ergebnis := "";> IF sign(longint) = -1 THEN ergebnis := "-"; i:=2 FI;’’’’’’> ergebnis CAT text (code (CONCR (longint) SUB i ) ) ;’’’’’’’> FOR i FROM i+1 UPTO length(CONCR(longint)) REP’’’’’’’’’’’’’> zwei ziffern := code(CONCR(longint) SUB i);’’’’’’’’’’’’’> ergebnis CAT code(zwei ziffern DIV 10 + snull);’’’’’’’’’> ergebnis CAT code(zwei ziffern MOD 10 + snull) ’’’’’’’’’ PER; ergebnis’’’’’’’’’’’’END PROC text;>TEXT PROC text (LONGINT CONST longint,INT CONST length) :’’’’’. x := text(longint); sll := LENGTH x;’’’’’’’N IF sll > length THEN length * "*" ELSE (length - sll)*" " + x FI’’’’’’’’’’’END PROC text; ’’’’’’’’’’’’’’’LONGINT PROC last rest :’’’’’’> IF y=null THEN LEAVE last rest WITH zero FI; ’’’’’’’’’’’’’’’N IF vorl XOR vorr THEN y := h SUB y; kuerze fuehrende nullen(y,null);’’’’’’’’. vorl := TRUE FI;’’’’’’> IF NOTvorr THEN y:=negativ+y; vorr := TRUE FI; LONGINT:(y) ’END PROC last rest;’’’’’’’’’’’>LONGINT PROC zero : LONGINT : (null) END PROC zero;’’’’’’’>LONGINT PROC one : LONGINT : (""1"") END PROC one;’’’’’’’’N(* ----------------------- INTERNE HILFSPROZEDUREN ----------------------- *)’.TEXT OP ADD (TEXT CONST left,right) :’’’’’’’’’N INT VAR carrybit :: 0,i,dif :: length(left) - length(right);’’’’’’’’’’’’ ergebnis := left; ’’’’’’’’’. FOR i FROM length(left) DOWNTO dif + 1 REP’> replace(ergebnis,i,das result der addition)’’’’’’’’’’’’’> IF carrybit = 1 THEN addiere den uebertrag FI; ’’’’’’’’’’’ das result der addition :’’N v byte := (code(left SUB i) + code(right SUB i - dif) + carrybit);’’’’’’ IF v byte > 99 ’’’’’’’’’> THEN carrybit := 1; code(v byte - 100)’’’’’’’’’’’’’’’. ELSE carrybit := 0; code(v byte)’’’’’ addiere den uebertrag :’’’’ FOR i FROM i DOWNTO 1’’’> WHILE (ergebnis SUB i) >= max digit REP’’’’’’’’’’’’’. replace(ergebnis,i,null) ’’’’’’’’’’’. IF (ergebnis SUB 1) = null OR dif = 0’. THEN pruefe auf longint overflow ’’’’N ELSE replace(ergebnis,i,code(code(ergebnis SUB i) + 1))’’’’’’’’’’’’’’. pruefe auf longint overflow :’’’’’’’’’’’’’’N IF length(ergebnis) = mtl - 1 THEN errorstop(overflow) FI;’’’’’’’’’’’’’’. ergebnis := eins + ergebnis’’’’’’’’’’’’’.PROC betrag (LONGINT CONST a, b) :’’’’’’’’’’’’N vleft := (CONCR(a)SUB1)<>negativ; vright := (CONCR(b)SUB1)<>negativ;’’’’’’’N IF vleft THEN aleft :=a ELSE CONCR(aleft ):=subtext(CONCR(a),2) FI;’’’’’’’N IF vright THEN aright:=b ELSE CONCR(aright):=subtext(CONCR(b),2) FI’’’’’’’’END PROC betrag;’’’’’’’’’’’’’’.TEXT OP EXP (TEXT CONST arg,INT CONST exp) :’’ INT VAR zaehler :: exp;’’’’ x := arg; z := eins;’’’’’’’> REP IF zaehler MOD 2 = 1 THEN z := z MUL x FI; ’’’’’’’’’’’> zaehler := zaehler DIV 2; x := x MUL x ’’’’’’’’’’’’’’’ UNTIL zaehler = 1 PER;’’’’’NPROC kuerze fuehrende nullen ( TEXT VAR text,TEXT CONST snull) :’’’’’’’’’’’’’’. text := subtext(text,erste nicht snull).’’’ erste nicht snull :’’’’’’’’. FOR i FROM 1 UPTO length (text) - 1 REP’’’’. UNTIL (text SUB i) <> snull PER;’’’’’’’’’’’.END PROC kuerze fuehrende nullen;’’’’’’’’’’’’’.INT PROC length (LONGINT CONST a) : ’’’’’’’’’’N IF (CONCR(a)SUB1)=negativ THEN length(CONCR(a))-1 ELSE length(CONCR(a)) FI’’END PROC length;’’’’’’’’’’’’’’.TEXT OP MUL (TEXT CONST left,right) :’’’’’’’’’ INT VAR i,j,carrybit,v,w;’’> ergebnis := (length(left) + length(right) - 1) * null;’’’’’> FOR i FROM length(ergebnis) DOWNTO length(left) REP’’’’’’’’N v := i - length(left); w := length(right) - length(ergebnis) + i;’’’’’’ carrybit := 0;’’’’’’’’’. FOR j FROM length(left) DOWNTO 1 REP’’’’> replace(ergebnis,v + j,result der addition)’’’’’’’N replace(ergebnis,v,code(code(ergebnis SUB v) + carrybit));’’’’’’’’’’’’’N IF carrybit = 0 THEN ergebnis ELSE code(carrybit) + ergebnis FI.’’’’’’’’’’’ result der addition :’’’’’’N v byte := code(right SUB w) * code(left SUB j) + carrybit +’’’’’’’’’’. code(ergebnis SUB v + j);’’’’’. carrybit := v byte DIV 100;’’’’’’’’’’’’’ code(v byte MOD 100)’’’’.TEXT OP SUB (TEXT CONST left,right) : ’’’’’’’’N INT VAR carrybit :: 0,i,dif :: length(left) - length(right);’’’’’’’’’’’’ ergebnis := left;’’’’’’’’’’. FOR i FROM length(left) DOWNTO dif + 1 REP > replace(ergebnis,i,das result der subtraktion);’’’’’’’’> IF carrybit = 1 THEN subtrahiere den uebertrag FI;’’’’’’’’’. das result der subtraktion :’’’’’’’’’’’’’’’N v byte := (code(left SUB i) - code(right SUB i - dif) - carrybit);’’’’’’ IF v byte < 0 ’’’’’’’’’’. THEN carrybit := 1;code(v byte + 100). ELSE carrybit := 0;code(v byte)’’’’’’ subtrahiere den uebertrag :’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’eumel printer.5’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Č’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ưa€ė’’“ “   L’’’’ L L” >‚’ž’’’’a€’’’’’’’’’’’’’’€’'’’’’’’’’’’’“ ’’’’’’’’’’’’’’’’’’±€’L’’’’’’’’’’’’’’’’’’’’L’’’’’’’’’’’’’’’’’’’Q’L’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’"’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’‚’.’’’’’’’’’’’’’’’’’’’A‚’’’’’’’’’’’’’’’’’’’’a‚’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’”‚’’’’’’’’’’’’’’’’’’’’Į‚’’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ’O’’’’’’’’’’’’’’’’’’’aƒ’O’’’’’’’’’’’’’’’’’’’Įƒ’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A„’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q„’_’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į„’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1…’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘…’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į…’’’’’’’’’’’’’’’’’’’’į…’3’’’’’’’’’’’’’’’’’’’!†’’’’’’’’’’’’’’’’’’’’A†’)’’’’’’’’’’’’’’’’’’’q†’’’’’’’’’’’’’’’’’’’’‘†’’’’’’’’’’’’’’’’’’’’’’.;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±†’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‡’+’’’’’’’’’’’’’’’’’’’A‡’+’’’’’’’’’’’’’’’’’’’q‡’+’’’’’’’’’’’’’’’’’’’”‡’+’’’’’’’’’’’’’’’’’’’ч’*’’’’’’’’’’’’’’’’’’’ˆ’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ˆ’*’’’’’’’’’’’’’’’’’’’aˆ’)’’’’’’’’’’’’’’’’’’’‘ˆ’/’’’’’’’’’’’’’’’’’’’ш’(’’’’’’’’’’’’’’’’’’’‰’(’’’’’’’’’’’’’’’’’’’1‰’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‰’*’’’’’’’’’’’’’’’’’’’‘‰’)’’’’’’’’’’’’’’’’’’’Į‰’.’’’’’’’’’’’’’’’’’’’ń‰’*’’’’’’’’’’’’’’’’’’’!Š’+’’’’’’’’’’’’’’’’’’’QŠ’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Š’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Š’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ኒ(’’’’’’’’’’’’’’’’’’’‹’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‹’(’’’’’’’’’’’’’’’’’’’q‹’(’’’’’’’’’’’’’’’’’’’”‹’(’’’’’’’’’’’’’’’’’’’’’*)’’’’’’’’’’’’’’’’’’’ы’(’’’’’’’’’’’’’’’’’’’Œ’(’’’’’’’’’’’’’’’’’’’1Œ’(’’’’’’’’’’’’’’’’’’’aŒ’-’’’’’’’’’’’’’’’’’’’‘Œ’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŒ’(’’’’’’’’’’’’’’’’’’’ńŒ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’(’’’’’’’’’’’’’’’’’’’Q’(’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’±’(’’’’’’’’’’’’’’’’’’’į’(’’’’’’’’’’’’’’’’’’’Ž’)’’’’’’’’’’’’’’’’’’’AŽ’(’’’’’’’’’’’’’’’’’’’qŽ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ž’)’’’’’’’’’’’’’’’’’’’ю’+’’’’’’’’’’’’’’’’’’’’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’1’(’’’’’’’’’’’’’’’’’’’a’(’’’’’’’’’’’’’’’’’’’‘’(’’’’’’’’’’’’’’’’’’’Į’(’’’’’’’’’’’’’’’’’’’ń’(’’’’’’’’’’’’’’’’’’’!’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’-’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’±’1’’’’’’’’’’’’’’’’’’’ń’1’’’’’’’’’’’’’’’’’’’1‘’1’’’’’’’’’’’’’’’’’’’q‘’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‘’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į‘’:’’’’’’’’’’’’’’’’’’’!’’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’‘’’D’’’’’’’’’’’’’’’’’’’į’’*’’’’’’’’’’’’’’’’’’’“’$’’’’’’’’’’’’’’’’’’’A“’N’’’’’’’’’’’’’’’’’’’‘“’9’’’’’’’’’’’’’’’’’’’ѓ’.’’’’’’’’’’’’’’’’’’’”’5’’’’’’’’’’’’’’’’’’’A”’#’’’’’’’’’’’’’’’’’’’q”’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’””’<’’’’’’’’’’’’’’’’’’’į”’<’’’’’’’’’’’’’’’’’’’!•’<’’’’’’’’’’’’’’’’’’’a•’<’’’’’’’’’’’’’’’’’’’”•’<’’’’’’’’’’’’’’’’’’’į•’<’’’’’’’’’’’’’’’’’’’!–’<’’’’’’’’’’’’’’’’’’’a–’<’’’’’’’’’’’’’’’’’’’”–’<’’’’’’’’’’’’’’’’’’’į–’<’’’’’’’’’’’’’’’’’’’!—’<’’’’’’’’’’’’’’’’’’’a—’<’’’’’’’’’’’’’’’’’’’”—’<’’’’’’’’’’’’’’’’’’’į—’<’’’’’’’’’’’’’’’’’’’!˜’<’’’’’’’’’’’’’’’’’’’a˜’<’’’’’’’’’’’’’’’’’’’”˜’<’’’’’’’’’’’’’’’’’’’ᘒ<’’’’’’’’’’’’’’’’’’’!™’<’’’’’’’’’’’’’’’’’’’a™’<’’’’’’’’’’’’’’’’’’’”™’<’’’’’’’’’’’’’’’’’’’į™’<’’’’’’’’’’’’’’’’’’’!š’<’’’’’’’’’’’’’’’’’’’aš’<’’’’’’’’’’’’’’’’’’’”š’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᚒ4’’’’’’’’’’’’’’’’’’’!›’=’’’’’’’’’’’’’’’’’’’a›’-’’’’’’’’’’’’’’’’’’’‘›’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ћ’K’’’’’’’’’’’’’’’’’’’!œ’D’’’’’’’’’’’’’’’’’’’qœ’F’’’’’’’’’’’’’’’’’’’Įœ’0’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’1’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’6’’’’’’’’’’’’’’’’’’’ FOR i FROM i DOWNTO 2 ’’. WHILE (ergebnis SUB i) = null REP’’’. replace(ergebnis,i,max digit)’’’’’’’> replace(ergebnis,i,code(code(ergebnis SUB i) - 1))’’’’’’END PACKET longint;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’complex’’’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įŽa€ė’’uurr’’’’v>M’’’’’’complex’’’’’’’’’’’’’’’’’’’’’’u’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a€’F’’’’’’’’’’’’’’’’’’’±€’D’’’’’’’’’’’’’’’’’’’’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’#’’’’’’’’’’’’’’’’’’’q’F’’’’’’’’’’’’’’’’’’’Į’E’’’’’’’’’’’’’’’’’’’‚’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‚’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‚’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ENDOP := ;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’т’(’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’!ƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aƒ’*’’’’’’’’’’’’’’’’’’’qƒ’’’’’’’’’’’’’’’’’’’’‘ƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ƒ’*’’’’’’’’’’’’’’’’’’’გ’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!„’'’’’’’’’’’’’’’’’’’’’Q„’&’’’’’’’’’’’’’’’’’’’’’ END OP CONJ; ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’”„’’’’’’’’’’’’’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ END OP =; ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń„’’’’’’’’’’’’’’’’’’’’!…’’’’’’’’’’’’’’’’’’’’A…’’’’’’’’’’’’’’’’’’’’’’ ELSE TRUE ’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ END OP <>; ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a…’!’’’’’’’’’’’’’’’’’’’‘…’#’’’’’’’’’’’’’’’’’’’’’ END OP +; ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į…’!’’’’’’’’’’’’’’’’’’’ń…’#’’’’’’’’’’’’’’’’’’’’’ END OP -; ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!†’!’’’’’’’’’’’’’’’’’’’Q†’*’’’’’’’’’’’’’’’’’’’†’*’’’’’’’’’’’’’’’’’’’±†’0’’’±’F’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ž’>’’’’’’’’’’’’’’’’’’’až’(’’’’’’’’’’’’’’’’’’’‘ž’/’’’’’’’’’’’’’’’’’’’ў’$’’’’’’’’’’’’’’’’’’’Ÿ’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŸ’+’’’’’’’’’’’’’’’’’’’qŸ’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ÿ’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŸ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’=’’’’’’’’’’’’’’’’’’’Q ’D’’’’’’’’’’’’’’’’’’’” ’@’’’’’’’’’’’’’’’’’’’ń ’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!”’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q”’C’’’’’’’’’’’’’’’’’’’””’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į”’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1¢’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a¢’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”¢’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᢒY’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A£’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘£’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᣒ’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’!¤’$’’’’’’’’’’’’’’’’’’’Q¤’’’’’’’’’’’’’’’’’’’’q¤’’’’’’’’’’’’’’’’’’’’‘¤’’’’’’’’’’’’’’’’’’’’±¤’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѥ’ ’’’’’’’’’’’’’’’’’’’„’*’’’’’’’’’’’’’’’’’’’1„’&’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’’’.;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”„’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń„’’’’’’’’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1¦’F’’’’’’’’’’’’’’’’’’’¦’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±¦’#’’’’’’’’’’’’’’’’’’’ᦒP’’’’’’’’’’’’’’’’’’’A§’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’§’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į§’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ø’"’’’’’’’’’’’’’’’’’’’AØ’’’’’’’’’’’’’’’’’’’’aØ’"’’’’’’’’’’’’’’’’’’’’’.; ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ø’D’’’’’’’’’’’’’’’’’’’ᨒD’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1©’M’’’’’’’’’’’’’’’’’’’©’<’’’’’’’’’’’’’’’’’’’Į©’<’’’’’’’’’’’’’’’’’’’Ŗ’5’’’’’’’’’’’’’’’’’’’AŖ’4’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ŗ’D’’’’’’’’’’’’’’’’’’’ńŖ’D’’’’’’’’’’’’’’’’’’’A«’F’’’’’’’’’’’’’’’’’’’‘«’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’į«’ ’’’’’’’’’’’’’’’’’’’¬’3’’’’’’’’’’’’’’’’’’’Q¬’3’’’’’’’’’’’’’’’’’’’‘¬’*’’’’’’’’’’’’’’’’’’’Į¬’*’’’’’’’’’’’’’’’’’’’ń¬’"’’’’’’’’’’’’’’’’’’’!­’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’Q­’$’’’’’’’’’’’’’’’’’’’­’’’’’’’’’’’’’’’’’’’’’’ THEN’’’’’’’’’’±­’O’’’’’’’’’’’’’’’’’’’®’2’’’’’’’’’’’’’’’’’’’Q®’4’’’’’’’’’’’’’’’’’’’‘®’4’’’’’’’’’’’’’’’’’’’Ń®’’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’ń®’O’’’’’’’’’’’’’’’’’’’QÆ’F’’’’’’’’’’’’’’’’’’’”Æ’F’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’ńÆ’’’’’’’’’’’’’’’’’’’’°’C’’’’’’’’’’’’’’’’’’’a°’*’’’’’’’’’’’’’’’’’’’‘°’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’Į°’!’’’’’’’’’’’’’’’’’’’ń°’C’’’’’’’’’’’’’’’’’’’A±’Z’’’’’’’’’’’’’’’’’’’”±’I’’’’’’’’’’’’’’’’’’’’’.;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń±’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!²’’’’’’’’’’’’’’’’’’’’A²’Q’’’’’’’’’’’’’’’’’’’”²’Q’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’³’'’’’’’’’’’’’’’’’’’’’1³’’’’’’’’’’’’’’’’’’’’Q³’O’’’’’’’’’’’’’’’’’’’±³’E’’’’’’’’’’’’’’’’’’’“’G’’’’’’’’’’’’’’’’’’’Q“’G’’’’’’’’’’’’’’’’’’’”“’’’’’’’’’’’’’’’’’’’’Į“’’’’’’’’’’’’’’’’’’’’į“’O’’’’’’’’’’’’’’’’’’’Aµ’[’’’’’’’’’’’’’’’’’’’”µ’[’’’’’’’’’’’’’’’’’’’¶’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’!¶’Q’’’’’’’’’’’’’’’’’’’¶’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į¶’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’·’D’’’’’’’’’’’’’’’’’’’a·’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±·’’’’’’’’’’’’’’’’’’’’Ń·’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń·’#’’’’’’’’’’’’’’’’’’’!ø’A’’’’’’’’’’’’’’’’’’’qø’:’’’’’’’’’’’’’’’’’’’±ø’C’’’’’’’’’’’’’’’’’’’¹’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1¹’O’’’’’’’’’’’’’’’’’’’‘¹’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į¹’@’’’’’’’’’’’’’’’’’’’1ŗ’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ŗ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńŗ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’»’3’’’’’’’’’’’’’’’’’’’A»’3’’’’’’’’’’’’’’’’’’’»’B’’’’’’’’’’’’’’’’’’’Ń»’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¼’/’’’’’’’’’’’’’’’’’’’A¼’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¼’0’’’’’’’’’’’’’’’’’’’Į¼’2’’’’’’’’’’’’’’’’’’’½’1’’’’’’’’’’’’’’’’’’’A½’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’½’’’’’’’’’’’’’’’’’’’’”½’’’’’’’’’’’’’’’’’’’’Į½’’’’’’’’’’’’’’’’’’’’į½’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¾’ ’’’’’’’’’’’’’’’’’’’1¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q¾’’’’’’’’’’’’’’’’’’’’q¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘¾’"’’’’’’’’’’’’’’’’’’’Į¾’’’’’’’’’’’’’’’’’’’’’’.; ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į¾’D’’’’’’’’’’’’’’’’’’’1æ’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’æ’’’’’’’’’’’’’’’’’’’’”æ’<’’’’’’’’’’’’’’’’’’’įæ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ą’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĄ’’’’’’’’’’’’’’’’’’’’aĄ’’’’’’’’’’’’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’”Ą’’’’’’’’’’’’’’’’’’’’ĮĄ’*’’’’’’’’’’’’’’’’’’’ńĄ’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Į’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QĮ’D’’’’’’’’’’’’’’’’’’’”Į’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńĮ’0’’’’’’’’’’’’’’’’’’’1Ā’Q’’’’’’’’’’’’’’’’’’’‘Ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃĀ’!’’’’’’’’’’’’’’’’’’’Ć’!’’’’’’’’’’’’’’’’’’’1Ć’"’’’’’’’’’’’’’’’’’’’aĆ’"’’’’’’’’’’’’’’’’’’’‘Ć’"’’’’’’’’’’’’’’’’’’’ĮĆ’"’’’’’’’’’’’’’’’’’’’ńĆ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ä’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QÄ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ä’.’’’’’’’’’’’’’’’’’’’±Ä’a’’’’’’’’’’’’’’’’’’’!Å’\’’’’’’’’’’’’’’’’’’’Å’b’’’’’’’’’’’’’’’’’’’ńÅ’]’’’’’’’’’’’’’’’’’’’QĘ’Z’’’’’’’’’’’’’’’’’’’±Ę’5’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńĘ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ē’D’’’’’’’’’’’’’’’’’’’qĒ’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮĒ’’’’’’’’’’’’’’’’’’’’įĒ’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Č’’’’’’’’’’’’’’’’’’’’QČ’’’’’’’’’’’’’’’’’’’’qČ’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Č’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮČ’B’’’’’’’’’’’’’’’’’’’É’G’’’’’’’’’’’’’’’’’’’aÉ’E’’’’’’’’’’’’’’’’’’’±É’2’’’’’’’’’’’’’’’’’’’’’.;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÉ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ź’’’’’’’’’’’’’’’’’’’’AŹ’’’’’’’’’’’’’’’’’’’’aŹ’!’’’’’’’’’’’’’’’’’’’‘Ź’&’’’’’’’’’’’’’’’’’’’ĮŹ’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ė’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ė’D’’’’’’’’’’’’’’’’’’’Ė’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃĖ’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ģ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĢ’&’’’’’’’’’’’’’’’’’’’qĢ’&’’’’’’’’’’’’’’’’’’’’’.;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ģ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮĢ’’’’’’’’’’’’’’’’’’’’įĢ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĶ’’’’’’’’’’’’’’’’’’’’aĶ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ķ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĶ’#’’’’’’’’’’’’’’’’’’’Ī’D’’’’’’’’’’’’’’’’’’’aĪ’M’’’’’’’’’’’’’’’’’’’±Ī’H’’’’’’’’’’’’’’’’’’’Ļ’D’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń†’0’’’’’’’’’’’’’’’’’’’’’ END OP *; ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1‡’!’’’’’’’’’’’’’’’’’’’a‡’)’’’’’’’’’’’’’’’’’’’‘‡’)’’’’’’’’’’’’’’’’’’’Į‡’:’’’’’’’’’’’’’’’’’’’ˆ’M’’’’’’’’’’’’’’’’’’’Qˆ’L’’’’’’’’’’’’’’’’’’’’’ END OP /; ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ˆ’’’’’’’’’’’’’’’’’’’’Įˆ’’’’’’’’’’’’’’’’’’’’ńˆ’ ’’’’’’’’’’’’’’’’’’’!‰’%’’’’’’’’’’’’’’’’’’’Q‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‰’’’’’’’’’’’’’’’’’’’’‰’!’’’’’’’’’’’’’’’’’’’±‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‰’!’’’’’’’’’’’’’’’’’’’ń‰’ ’’’’’’’’’’’’’’’’’’’!Š’ ’’’’’’’’’’’’’’’’’’’QŠ’'’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’”Š’8’’’’’’’’’’’’’’’’’’’ኒ2’’’’’’’’’’’’’’’’’’’!‹’E’’’’’’’’’’’’’’’’’’’q‹’#’’’’’’’’’’’’’’’’’’’”‹’+’’’’’’’’’’’’’’’’’’’ы’5’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Œ’ ’’’’’’’’’’’’’’’’’’’aŒ’!’’’’’’’’’’’’’’’’’’’‘Œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Œ’$’’’’’’’’’’’’’’’’’’’ь’’’’’’’’’’’’’’’’’’’’ńŒ’’’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’Q’(’’’’’’’’’’’’’’’’’’’’?’’’’’’’’’’’’’’’’’’’э’,’’’’’’’’’’’’’’’’’’’Ž’5’’’’’’’’’’’’’’’’’’’’’FI. ’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŽ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŽ’’’’’’’’’’’’’’’’’’’’Ž’8’’’’’’’’’’’’’’’’’’’’’ END OP ABS; ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŽ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET complex DEFINES COMPLEX,:=,complex zero,complex one,complex i, ’’’’’’’’N complex,realpart,imagpart,CONJ,+,-,*,/,=,<>, ’’’’’’’’’’> put,get, ABS, sqrt, phi, dphi :’’’’’’’’.TYPE COMPLEX = STRUCT(REAL re,im); ’’’’’’’’’’’NCOMPLEX PROC complex zero: COMPLEX :(0.0,0.0). END PROC complex zero; ’’’’’’’’NCOMPLEX PROC complex one : COMPLEX :(1.0,0.0). END PROC complex one; ’’’’’’’’’NCOMPLEX PROC complex i : COMPLEX :(0.0,1.0). END PROC complex i; ’’’’’’’’’’’>OP := (COMPLEX VAR dest, COMPLEX CONST source) :’’’’’’’’’’’’’’. CONCR (dest) := CONCR (source)’’’’’’’’’’’’’’.COMPLEX PROC complex(REAL CONST re,im): ’’’’’’ COMPLEX :(re,im). ’’’’’’’’’END PROC complex; ’’’’’’’’’’’’.REAL PROC realpart(COMPLEX CONST number): ’’’’ number.re. ’’’’’’’’END PROC realpart; ’’’’’’’’’’’.REAL PROC imagpart(COMPLEX CONST number): ’’’’ number.im. ’’’’’’’’END PROC imagpart ;’’’’’’’’’’’.COMPLEX OP CONJ(COMPLEX CONST number): ’’’’’’’. COMPLEX :( number.re,- number.im). ’’’’’’’’BOOL OP =(COMPLEX CONST a,b):  IF a.re=b.re ’’’’’’’’’’’’ THEN a.im=b.im ’’’’’’’’’’’’ ELSE FALSE .BOOL OP <>(COMPLEX CONST a,b): ’’’’’’’’’’’’’’’ IF a.re=b.re ’’’’’’’’’’’’ THEN a.im<>b.im ’’’’’’’’’’’.COMPLEX OP +(COMPLEX CONST a,b): ’’’’’’’’’’’’’. COMPLEX :(a.re+b.re,a.im+b.im). ’’’’’’’’’’’.COMPLEX OP -(COMPLEX CONST a,b): ’’’’’’’’’’’’’. COMPLEX :(a.re-b.re,a.im-b.im). ’’’’’’’’’’’.COMPLEX OP *(COMPLEX CONST a,b): ’’’’’’’’’’’’’. REAL VAR re of a::a.re,im of a ::a.im, ’’’’. re of b::b.re,im of b ::b.im; ’’’’> COMPLEX :(re of a*re of b- im of a *im of b, ’’’’’’’’’’’’’’> re of a*im of b+ im of a*re of b). ’’’’’’’’’’’’’’.COMPLEX OP /(COMPLEX CONST a,b): ’’’’’’’’’’’’’. REAL VAR re of a::a.re,im of a::a.im, ’’’’’. re of b::b.re,im of b::b.im; ’’’’’> REAL VAR sqare sum of re and im ::b.re*b.re+b.im*b.im; ’’’’N COMPLEX :( (re of a * re of b + im of a * im of b)/sqare sum of re and im,’N (im of a *re of b - re of a*im of b)/sqare sum of re and im). ’’PROC get(COMPLEX VAR a): ’’’’’. REAL VAR realpart,imagpart; ’’’’’’’’’’’’’’’. get(realpart);get(imagpart); ’’’’’’’’’’’’’’. a:= COMPLEX :(realpart,imagpart); ’’’’’’’’’END PROC get; PROC put(COMPLEX CONST a): ’’’. put(a.re);put(" ");put(a.im); ’’’’’’’’’’’’’END PROC put; .REAL PROC dphi(COMPLEX CONST x): ’’’’’’’’’’’’’. IF imagpart(x)=0.0 THEN reell’’’’’’’’’’’’’’. ELIF realpart(x)=0.0 THEN imag ’’’’’’’’’’’’’’. ELIF realpart(x)>0.0 THEN realpositiv ’’’’’’’ ELSE realnegativ ’’’’’’’’’’’’>reell: IF sign(realpart(x)) < 0 THEN 180.0 ELSE 0.0 FI. ’’’’’’>imag: IF imagpart(x)>0.0 THEN 90.0 ELSE 270.0 FI. ’’’’’’’’’’’’Nrealpositiv:IF imagpart(x)>0.0 THEN arctand(realpart(x)/imagpart(x)) ’’’’’’’’’. ELSE’’’’’’’’’’’.arctand(realpart(x)/imagpart(x))+360.0 FI. ’’’>realnegativ: arctand(realpart(x)/imagpart(x))+180.0. ’’’’’’’’’END PROC dphi; ’’’’’’’’’’’’’’’.REAL PROC phi(COMPLEX CONST x): ’’’’’’’’’’’’’’.dphi(x)*3.141592653689793/180.0. ’’’’’’’’’’’’’END PROC phi; .COMPLEX PROC sqrt(COMPLEX CONST x): ’’’’’’’’’’IF x=complex zero THEN x ’’’’’ELIF realpart(x)<0.0 THEN ’’’’>complex(imagpart(x)/(2.0*real(sign(imagpart(x)))’’’’’’’’’’’’’’. *sqrt((ABSx-realpart(x))/2.0)), ’’’’’’N real(sign(imagpart(x)))*sqrt((ABS x-realpart(x))/2.0)) ’’’’’’’’’’’’’’’.ELSE complex(sqrt((ABS x+realpart(x))/2.0), ’’> imagpart(x)/(2.0*sqrt((ABS x+realpart(x))/2.0)))’’’’’’’’’END PROC sqrt; ’’’’’’’’’’’’’’’REAL OP ABS(COMPLEX CONST x): > sqrt(realpart(x)*realpart(x)+imagpart(x)*imagpart(x)). ’’’’’’END PACKET complex; ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’TeCal’’’’’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’h’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QĻ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ļ’D’’’’’’’’’’’’’’’’’’’ŃĻ’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Š’<’’’’’’’’’’’’’’’’’’’aŠ’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃŠ’’’’’’’’’’’’’’’’’’’’ńŠ’0’’’’’’’’’’’’’’’’’’’1Ń’’’’’’’’’’’’’’’’’’’’QŃ’/’’’’’’’’’’’’’’’’’’’‘Ń’’’’’’’’’’’’’’’’’’’’±Ń’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃŃ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŃ’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ņ’’’’’’’’’’’’’’’’’’’’QŅ’"’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’”Ņ’’’’’’’’’’’’’’’’’’’’ĮŅ’K’’’’’’’’’’’’’’’’’’’Ó’K’’’’’’’’’’’’’’’’’’’aÓ’A’’’’’’’’’’’’’’’’’’’±Ó’Q’’’’’’’’’’’’’’’’’’’Ō’3’’’’’’’’’’’’’’’’’’’QŌ’L’’’’’’’’’’’’’’’’’’’”Ō’K’’’’’’’’’’’’’’’’’’’ńŌ’Q’’’’’’’’’’’’’’’’’’’QÕ’2’’’’’’’’’’’’’’’’’’’‘Õ’’’’’’’’’’’’’’’’’’’’±Õ’ ’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įÕ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ö’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ö’"’’’’’’’’’’’’’’’’’’’QÖ’"’’’’’’’’’’’’’’’’’’’Ö’"’’’’’’’’’’’’’’’’’’’±Ö’"’’’’’’’’’’’’’’’’’’’įÖ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1×’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”×’’’’’’’’’’’’’’’’’’’’Į×’’’’’’’’’’’’’’’’’’’’Ń×’&’’’’’’’’’’’’’’’’’’’Ų’’’’’’’’’’’’’’’’’’’’!Ų’’’’’’’’’’’’’’’’’’’’AŲ’’’’’’’’’’’’’’’’’’’’aŲ’’’’’’’’’’’’’’’’’’’’Ų’(’’’’’’’’’’’’’’’’’’’±Ų’(’’’’’’’’’’’’’’’’’’’įŲ’(’’’’’’’’’’’’’’’’’’’Ł’$’’’’’’’’’’’’’’’’’’’AŁ’$’’’’’’’’’’’’’’’’’’’qŁ’$’’’’’’’’’’’’’’’’’’’”Ł’.’’’’’’’’’’’’’’’’’’’ŃŁ’'’’’’’’’’’’’’’’’’’’’Ś’'’’’’’’’’’’’’’’’’’’’1Ś’’’’’’’’’’’’’’’’’’’’AŚ’L’’’’’’’’’’’’’’’’’’’‘Ś’R’’’’’’’’’’’’’’’’’’’ńŚ’K’’’’’’’’’’’’’’’’’’’AŪ’R’’’’’’’’’’’’’’’’’’’”Ū’K’’’’’’’’’’’’’’’’’’’ńŪ’L’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AÜ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aÜ’B’’’’’’’’’’’’’’’’’’’±Ü’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’’’’’’1Ż’’’’’’’’’’’’’’’’’’’’QŻ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ż’A’’’’’’’’’’’’’’’’’’’ŃŻ’?’’’’’’’’’’’’’’’’’’’!Ž’@’’’’’’’’’’’’’’’’’’’qŽ’C’’’’’’’’’’’’’’’’’’’ĮŽ’B’’’’’’’’’’’’’’’’’’’ß’@’’’’’’’’’’’’’’’’’’’aß’@’’’’’’’’’’’’’’’’’’’±ß’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ą’+’’’’’’’’’’’’’’’’’’’Qą’#’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ą’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’!į’4’’’’’’’’’’’’’’’’’’’aį’.’’’’’’’’’’’’’’’’’’’‘į’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įį’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’!ā’6’’’’’’’’’’’’’’’’’’’aā’1’’’’’’’’’’’’’’’’’’’”ā’+’’’’’’’’’’’’’’’’’’’Ńā’E’’’’’’’’’’’’’’’’’’’!ć’#’’’’’’’’’’’’’’’’’’’Qć’]’’’’’’’’’’’’’’’’’’’±ć’>’’’’’’’’’’’’’’’’’’’ńć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ä’’’’’’’’’’’’’’’’’’’’Qä’4’’’’’’’’’’’’’’’’’’’‘ä’.’’’’’’’’’’’’’’’’’’’Įä’G’’’’’’’’’’’’’’’’’’’å’&’’’’’’’’’’’’’’’’’’’Aå’_’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±å’’’’’’’’’’’’’’’’’’’’Ńå’’’’’’’’’’’’’’’’’’’’ńå’6’’’’’’’’’’’’’’’’’’’1ę’1’’’’’’’’’’’’’’’’’’’qę’+’’’’’’’’’’’’’’’’’’’”ę’E’’’’’’’’’’’’’’’’’’’ńę’#’’’’’’’’’’’’’’’’’’’!ē’Y’’’’’’’’’’’’’’’’’’’ē’>’’’’’’’’’’’’’’’’’’’Įē’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įē’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’č’T’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ač’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”č’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įč’’’’’’’’’’’’’’’’’’’’é’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qé’’’’’’’’’’’’’’’’’’’’qé’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±é’’’’’’’’’’’’’’’’’’’’Ńé’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ź’’’’’’’’’’’’’’’’’’’’!ź’X’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ź’’’’’’’’’’’’’’’’’’’’”ź’'’’’’’’’’’’’’’’’’’’’Ńź’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ . kommentar :’’’’’’’’ė’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qė’’’’’’’’’’’’’’’’’’’’qė’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ė’’’’’’’’’’’’’’’’’’’’Įė’'’’’’’’’’’’’’’’’’’’’ńė’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’!ģ’’’’’’’’’’’’’’’’’’’’Aģ’&’’’’’’’’’’’’’’’’’’’qģ’’’’’’’’’’’’’’’’’’’’‘ģ’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įģ’(’’’’’’’’’’’’’’’’’’’ńģ’C’’’’’’’’’’’’’’’’’’’Aķ’'’’’’’’’’’’’’’’’’’’’qķ’H’’’’’’’’’’’’’’’’’’’Įķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ī’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qī’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ī’8’’’’’’’’’’’’’’’’’’’Įī’’’’’’’’’’’’’’’’’’’’įī’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ļ’`’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ļ’6’’’’’’’’’’’’’’’’’’’Įļ’4’’’’’’’’’’’’’’’’’’’š’.’’’’’’’’’’’’’’’’’’’1š’G’’’’’’’’’’’’’’’’’’’š’&’’’’’’’’’’’’’’’’’’’±š’\’’’’’’’’’’’’’’’’’’’ń’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ disable stop;’’’’’’’’Qń’’’’’’’’’’’’’’’’’’’’qń’7’’’’’’’’’’’’’’’’’’’±ń’6’’’’’’’’’’’’’’’’’’’ńń’0’’’’’’’’’’’’’’’’’’’1ņ’I’’’’’’’’’’’’’’’’’’’ņ’(’’’’’’’’’’’’’’’’’’’±ņ’^’’’’’’’’’’’’’’’’’’’ó’(’’’’’’’’’’’’’’’’’’’Aó’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qó’’’’’’’’’’’’’’’’’’’’‘ó’/’’’’’’’’’’’’’’’’’’’Ńó’,’’’’’’’’’’’’’’’’’’’ō’,’’’’’’’’’’’’’’’’’’’1ō’’’’’’’’’’’’’’’’’’’’Qō’’’’’’’’’’’’’’’’’’’’qō’’’’’’’’’’’’’’’’’’’’‘ō’J’’’’’’’’’’’’’’’’’’’įō’P’’’’’’’’’’’’’’’’’’’Aõ’’’’’’’’’’’’’’’’’’’’aõ’’’’’’’’’’’’’’’’’’’’õ’ ’’’’’’’’’’’’’’’’’’’±õ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’Ńõ’’’’’’’’’’’’’’’’’’’’ńõ’R’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qö’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qö’’’’’’’’’’’’’’’’’’’’‘ö’’’’’’’’’’’’’’’’’’’’±ö’’’’’’’’’’’’’’’’’’’’Ńö’’’’’’’’’’’’’’’’’’’’ńö’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’÷’A’’’’’’’’’’’’’’’’’’’a÷’A’’’’’’’’’’’’’’’’’’’±÷’J’’’’’’’’’’’’’’’’’’’ų’D’’’’’’’’’’’’’’’’’’’Qų’D’’’’’’’’’’’’’’’’’’’”ų’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńų’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ał’<’’’’’’’’’’’’’’’’’’’ł’;’’’’’’’’’’’’’’’’’’’Įł’5’’’’’’’’’’’’’’’’’’’ś’N’’’’’’’’’’’’’’’’’’’Qś’-’’’’’’’’’’’’’’’’’’’ś’c’’’’’’’’’’’’’’’’’’’ńś’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ enable stop;’’’’’’’’’Aū’’’’’’’’’’’’’’’’’’’’aū’’’’’’’’’’’’’’’’’’’’‘ū’’’’’’’’’’’’’’’’’’’’±ū’’’’’’’’’’’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’Ńū’’’’’’’’’’’’’’’’’’’’ńū’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’1ü’’’’’’’’’’’’’’’’’’’’Qü’4’’’’’’’’’’’’’’’’’’’‘ü’U’’’’’’’’’’’’’’’’’’’ńü’)’’’’’’’’’’’’’’’’’’’!ż’%’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’Qż’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’qż’’’’’’’’’’’’’’’’’’’’‘ż’'’’’’’’’’’’’’’’’’’’’Įż’’’’’’’’’’’’’’’’’’’’įż’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ž’+’’’’’’’’’’’’’’’’’’’1ž’,’’’’’’’’’’’’’’’’’’’až’,’’’’’’’’’’’’’’’’’’’‘ž’+’’’’’’’’’’’’’’’’’’’Įž’G’’’’’’’’’’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’’a’’D’’’’’’’’’’’’’’’’’’’±’’I’’’’’’’’’’’’’’’’’’’’:’’’’’’’’’’’’’’’’’’’B’3’’’’’’’’’’’’’’’’’’’‚’(’’’’’’’’’’’’’’’’’’’²’.’’’’’’’’’’’’’’’’’’’ā’-’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’B’(’’’’’’’’’’’’’’’’’’’r’(’’’’’’’’’’’’’’’’’’’¢’1’’’’’’’’’’’’’’’’’’’ā’)’’’’’’’’’’’’’’’’’’’’(’’’’’’’’’’’’’’’’’’’B’(’’’’’’’’’’’’’’’’’’’r’(’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńęa€ė’’ZZWWĢ’’’’ĢĢ[>M’’’’’’TeCal’’’’’’’’’’’’’’’’’’’’’’’’Z’’’’’’’’’’’’’’’’’’a€’H’’’’’’’’’’’’’’’’’’’±€’H’’’’’’’’’’’’’’’’’’’’H’’’’’’’’’’’’’’’’’’’Q’H’’’’’’’’’’’’’’’’’’’”’H’’’’’’’’’’’’’’’’’’’ń’H’’’’’’’’’’’’’’’’’’’A‚’H’’’’’’’’’’’’’’’’’’’‘‚’H’’’’’’’’’’’’’’’’’’’į‚’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ƒ’<’’’’’’’’’’’’’’’’’’’qƒ’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ƒ’F’’’’’’’’’’’’’’’’’’’„’F’’’’’’’’’’’’’’’’’’’Q„’F’’’’’’’’’’’’’’’’’’’”„’F’’’’’’’’’’’’’’’’’’’ń„’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A…’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’…’ ’’’’’’’’’’’’’’’’’’’±…’G’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’!†’’’’’’’’’’’’’’’’’’’’A†’F’’’’’’’’’’’’’’’’’’’‘†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±†’’’’’’’’’’’’’’’’’’’’ц’’’’’’’’’’’’’’’’’’’’ń†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‡’*’’’’’’’’’’’’’’’’’’’A‡’’’’’’’’’’’’’’’’’’’’a‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’’’ anfang’’’’’’’’’’’’”‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‡’’’’’’’’’’’’’’’’’’’’’’ ende’’’’’’’’’’’’’’ᇒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ˆ’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qˆ’’’’’’’’’’’’’’’’’’’’qˆ’’’’’’’’’’’’’’’’’’’’’’ number.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ˆ’’’’’’’’’’’’’’’’’’’’±ˆ’#’’’’’’’’’’’’’’’’’’’ሒ’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’!‰’’’’’’’’’’’’’’’’’’’’Q‰’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’q‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘‰’ ’’’’’’’’’’’’’’’’’’’Į‰’’’’’’’’’’’’’’’’’’’’ቒ’’’’’’’’’’’’’’’’’’’ń‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Š’’’’’’’’’’’’’’’’’’’’’’ p INCR 1;’’’’’’’’’AŠ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŠ’’’’’’’’’’’’’’’’’’’’’’ p DECR 1;’’’’’’’’’‘Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ende merken :’’’’’’’’ĮŠ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ኒ’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’!‹’’’’’’’’’’’’’’’’’’’’A‹’’’’’’’’’’’’’’’’’’’’a‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’”‹’’’’’’’’’’’’’’’’’’’’Į‹’’’’’’’’’’’’’’’’’’’’į‹’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’!Œ’)’’’’’’’’’’’’’’’’’’’QŒ’%’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’”Œ’&’’’’’’’’’’’’’’’’’’’ь’’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’ńŒ’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ PER.’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’!Ž’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŽ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’”Ž’’’’’’’’’’’’’’’’’’’’ĮŽ’’’’’’’’’’’’’’’’’’’’įŽ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’9’’’’’’’’’’’’’’’’’’’я’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’ᐒ6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‘’’’’’’’’’’’’’’’’’’’’A‘’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‘’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ignorieren :.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’’H’’’’’’’’’’’’’’’’’’’į’’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1“’’’’’’’’’’’’’’’’’’’’Q“’3’’’’’’’’’’’’’’’’’’’‘“’’’’’’’’’’’’’’’’’’’’±“’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ѓ’’’’’’’’’’’’’’’’’’’’ń“’’’’’’’’’’’’’’’’’’’’”’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A”’1’’’’’’’’’’’’’’’’’’’”’7’’’’’’’’’’’’’’’’’’’Į”’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’•’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1•’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q•’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”•’’’’’’’’’’’’’’’’’’’’Į•’4’’’’’’’’’’’’’’’’’’’–’&’’’’’’’’’’’’’’’’’’’1–’@’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’±–’-’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’į–’9’’’’’’’’’’’’’’’’’’’!—’’’’’’’’’’’’’’’’’’’’’’ PER.’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A—’’’’’’’’’’’’’’’’’’’’a—’'’’’’’’’’’’’’’’’’’’’‘—’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’±—’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į—’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!˜’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A˜’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a˜’/’’’’’’’’’’’’’’’’’’’”˜’9’’’’’’’’’’’’’’’’’’’ᘒ5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!™’F’’’’’’’’’’’’’’’’’’’q™’F’’’’’’’’’’’’’’’’’’’Į™’F’’’’’’’’’’’’’’’’’’’š’F’’’’’’’’’’’’’’’’’’’aš’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±š’7’’’’’’’’’’’’’’’’’’’ńš’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A›’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”›’’’’’’’’’’’’’’’’’’’’Į›’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į›’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1œ’"’’’’’’’’’’’’’’’’’’’aœ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘œ’’’’’’’’’’’’’’’’’’’’±œ’’’’’’’’’’’’’’’’’’’’ќ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’ńœ’/’’’’’’’’’’’’’’’’’’’1’)’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’ѝ’’’’’’’’’’’’’’’’’’’’ń’2’’’’’’’’’’’’’’’’’’’1ž’,’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’až’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’”ž’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ў’’’’’’’’’’’’’’’’’’’’ńž’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’1Ÿ’’’’’’’’’’’’’’’’’’’’QŸ’’’’’’’’’’’’’’’’’’’’qŸ’’’’’’’’’’’’’’’’’’’’‘Ÿ’’’’’’’’’’’’’’’’’’’’±Ÿ’2’’’’’’’’’’’’’’’’’’’ńŸ’0’’’’’’’’’’’’’’’’’’’’’ END SELECT’’’’’’’’1 ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC clear :’’’’’’’’’A ’’’’’’’’’’’’’’’’’’’’a ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’” ’’’’’’’’’’’’’’’’’’’’Į ’’’’’’’’’’’’’’’’’’’’į ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’!”’’’’’’’’’’’’’’’’’’’’A”’’’’’’’’’’’’’’’’’’’’a”’6’’’’’’’’’’’’’’’’’’’””’,’’’’’’’’’’’’’’’’’’’Ń”’’’’’’’’’’’’’’’’’’’’ń”’’’’’’’’’’’’’’’’’’’’¢’ ’’’’’’’’’’’’’’’’’’’A¢’’’’’’’’’’’’’’’’’’’’a¢’’’’’’’’’’’’’’’’’’’’¢’.’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’±¢’'’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’’’’ᢒ=’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!£’1’’’’’’’’’’’’’’’’’’’a£’0’’’’’’’’’’’’’’’’’’’”£’A’’’’’’’’’’’’’’’’’’’ń£’’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’1¤’’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’’’’Q¤’.’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’J’’’’’’’’’’’’’’’’’’’ņ’P’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’ ’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’¢’$’’’’’’’’’’’’’’’’’’’Ņ’%’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’2’"’’’’’’’’’’’’’’’’’’’b’7’’’’’’’’’’’’’’’’’’’¢’K’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’’b’+’’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’Ā’,’’’’’’’’’’’’’’’’’’’ņ’(’’’’’’’’’’’’’’’’’’’"’9’’’’’’’’’’’’’’’’’’’b’X’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’2’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’#’’’’’’’’’’’’’’’’’’’¢’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’" ’T’’’’’’’’’’’’’’’’’’’‚ ’F’’’’’’’’’’’’’’’’’’’Ņ ’R’’’’’’’’’’’’’’’’’’’2 ’=’’’’’’’’’’’’’’’’’’’r ’?’’’’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā ’/’’’’’’’’’’’’’’’’’’’" ’*’’’’’’’’’’’’’’’’’’’R ’’’’’’’’’’’’’’’’’’’’r ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢ ’ ’’’’’’’’’’’’’’’’’’’Ņ ’%’’’’’’’’’’’’’’’’’’’ ’#’’’’’’’’’’’’’’’’’’’2 ’4’’’’’’’’’’’’’’’’’’’r ’U’’’’’’’’’’’’’’’’’’’Ņ ’(’’’’’’’’’’’’’’’’’’’ ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2 ’(’’’’’’’’’’’’’’’’’’’b ’A’’’’’’’’’’’’’’’’’’’² ’:’’’’’’’’’’’’’’’’’’’ņ ’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’2’ ’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’+’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’²’/’’’’’’’’’’’’’’’’’’’ņ’4’’’’’’’’’’’’’’’’’’’2’6’’’’’’’’’’’’’’’’’’’r’9’’’’’’’’’’’’’’’’’’’²’3’’’’’’’’’’’’’’’’’’’ņ’4’’’’’’’’’’’’’’’’’’’2’7’’’’’’’’’’’’’’’’’’’r’7’’’’’’’’’’’’’’’’’’’²’3’’’’’’’’’’’’’’’’’’’ņ’9’’’’’’’’’’’’’’’’’’’2’4’’’’’’’’’’’’’’’’’’’r’4’’’’’’’’’’’’’’’’’’’²’8’’’’’’’’’’’’’’’’’’’ņ’8’’’’’’’’’’’’’’’’’’’2’8’’’’’’’’’’’’’’’’’’’r’-’’’’’’’’’’’’’’’’’’’¢’B’’’’’’’’’’’’’’’’’’’ņ’3’’’’’’’’’’’’’’’’’’’2’7’’’’’’’’’’’’’’’’’’’r’9’’’’’’’’’’’’’’’’’’’²’9’’’’’’’’’’’’’’’’’’’ņ’6’’’’’’’’’’’’’’’’’’’2’:’’’’’’’’’’’’’’’’’’’r’4’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’<’’’’’’’’’’’’’’’’’’’’’=’’’’’’’’’’’’’’’’’’’Ņ’5’’’’’’’’’’’’’’’’’’’’@’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’Y’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’V’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’%’’’’’’’’’’’’’’’’’’’R’0’’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’'’’’’’’’’’’’’’’’’’’’‚’"’’’’’’’’’’’’’’’’’’’²’M’’’’’’’’’’’’’’’’’’’’U’’’’’’’’’’’’’’’’’’’b’/’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’+’’’’’’’’’’’’’’’’’’’ņ’'’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’%’’’’’’’’’’’’’’’’’’’r’>’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’Y’’’’’’’’’’’’’’’’’’’2’Y’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’&’’’’’’’’’’’’’’’’’’’²’;’’’’’’’’’’’’’’’’’’’ņ’4’’’’’’’’’’’’’’’’’’’2’.’’’’’’’’’’’’’’’’’’’b’+’’’’’’’’’’’’’’’’’’’’’=’’’’’’’’’’’’’’’’’’’Ņ’5’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’$’’’’’’’’’’’’’’’’’’’‚’%’’’’’’’’’’’’’’’’’’’²’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’" ’F’’’’’’’’’’’’’’’’’’’r ’+’’’’’’’’’’’’’’’’’’’¢ ’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā ’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"!’’’’’’’’’’’’’’’’’’’’B!’6’’’’’’’’’’’’’’’’’’’‚!’5’’’’’’’’’’’’’’’’’’’Ā!’5’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2"’’’’’’’’’’’’’’’’’’’’R"’6’’’’’’’’’’’’’’’’’’’’"’5’’’’’’’’’’’’’’’’’’’Ņ"’5’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’B#’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’²#’6’’’’’’’’’’’’’’’’’’’ņ#’+’’’’’’’’’’’’’’’’’’’"$’+’’’’’’’’’’’’’’’’’’’R$’’’’’’’’’’’’’’’’’’’’r$’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’$’’’’’’’’’’’’’’’’’’’’²$’%’’’’’’’’’’’’’’’’’’’ā$’=’’’’’’’’’’’’’’’’’’’"%’:’’’’’’’’’’’’’’’’’’’b%’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’(**)’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’’²%’%’’’’’’’’’’’’’’’’’’’ā%’;’’’’’’’’’’’’’’’’’’’"&’H’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’(**)’’’’’’’’’’’’’’’’’r&’’’’’’’’’’’’’’’’’’’’’&’.’’’’’’’’’’’’’’’’’’’Ā&’<’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"'’’’’’’’’’’’’’’’’’’’’B'’.’’’’’’’’’’’’’’’’’’’r'’<’’’’’’’’’’’’’’’’’’’²'’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’Ņ'’’’’’’’’’’’’’’’’’’’’ņ'’’’’’’’’’’’’’’’’’’’’"(’’’’’’’’’’’’’’’’’’’’B(’’’’’’’’’’’’’’’’’’’’b(’’’’’’’’’’’’’’’’’’’’‚(’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’¢(’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’Ā(’’’’’’’’’’’’’’’’’’’’ā(’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’’")’’’’’’’’’’’’’’’’’’’’B)’’’’’’’’’’’’’’’’’’’’b)’1’’’’’’’’’’’’’’’’’’’¢)’7’’’’’’’’’’’’’’’’’’’ā)’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2*’’’’’’’’’’’’’’’’’’’’R*’$’’’’’’’’’’’’’’’’’’’‚*’#’’’’’’’’’’’’’’’’’’’²*’$’’’’’’’’’’’’’’’’’’’ā*’'’’’’’’’’’’’’’’’’’’’+’&’’’’’’’’’’’’’’’’’’’B+’(’’’’’’’’’’’’’’’’’’’r+’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢+’’’’’’’’’’’’’’’’’’’’Ā+’-’’’’’’’’’’’’’’’’’’’ņ+’E’’’’’’’’’’’’’’’’’’’B,’6’’’’’’’’’’’’’’’’’’’‚,’Z’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā,’’’’’’’’’’’’’’’’’’’’-’'’’’’’’’’’’’’’’’’’’’B-’&’’’’’’’’’’’’’’’’’’’r-’#’’’’’’’’’’’’’’’’’’’¢-’#’’’’’’’’’’’’’’’’’’’Ņ-’/’’’’’’’’’’’’’’’’’’’.’?’’’’’’’’’’’’’’’’’’’b.’O’’’’’’’’’’’’’’’’’’’Ā.’N’’’’’’’’’’’’’’’’’’’/’[’’’’’’’’’’’’’’’’’’’r/’2’’’’’’’’’’’’’’’’’’’²/’C’’’’’’’’’’’’’’’’’’’0’H’’’’’’’’’’’’’’’’’’’R0’O’’’’’’’’’’’’’’’’’’’²0’>’’’’’’’’’’’’’’’’’’’ņ0’)’’’’’’’’’’’’’’’’’’’"1’F’’’’’’’’’’’’’’’’’’’r1’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā1’’’’’’’’’’’’’’’’’’’’ā1’@’’’’’’’’’’’’’’’’’’’22’(’’’’’’’’’’’’’’’’’’’b2’A’’’’’’’’’’’’’’’’’’’²2’E’’’’’’’’’’’’’’’’’’’3’H’’’’’’’’’’’’’’’’’’’R3’K’’’’’’’’’’’’’’’’’’’¢3’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’²3’’’’’’’’’’’’’’’’’’’’Ņ3’’’’’’’’’’’’’’’’’’’’ņ3’1’’’’’’’’’’’’’’’’’’’24’7’’’’’’’’’’’’’’’’’’’r4’K’’’’’’’’’’’’’’’’’’’Ā4’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’ā4’’’’’’’’’’’’’’’’’’’’5’#’’’’’’’’’’’’’’’’’’’25’?’’’’’’’’’’’’’’’’’’’‚5’(’’’’’’’’’’’’’’’’’’’²5’#’’’’’’’’’’’’’’’’’’’ā5’"’’’’’’’’’’’’’’’’’’’6’^’’’’’’’’’’’’’’’’’’’r6’(’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢6’’’’’’’’’’’’’’’’’’’’Ā6’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’’’"7’’’’’’’’’’’’’’’’’’’’B7’1’’’’’’’’’’’’’’’’’’’‚7’7’’’’’’’’’’’’’’’’’’’Ā7’K’’’’’’’’’’’’’’’’’’’”¤’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į¤’’’’’’’’’’’’’’’’’’’’ᤒ’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1„’’’’’’’’’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ auswerten :’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’±„’*’’’’’’’’’’’’’’’’’’’į„’*’’’’’’’’’’’’’’’’’’’¦’*’’’’’’’’’’’’’’’’’’’A¦’2’’’’’’’’’’’’’’’’’’’¦’3’’’’’’’’’’’’’’’’’’’Į¦’4’’’’’’’’’’’’’’’’’’’’’ OTHERWISE’’’’’’’’’§’R’’’’’’’’’’’’’’’’’’’a§’’’’’’’’’’’’’’’’’’’’q§’’’’’’’’’’’’’’’’’’’’‘§’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±§’’’’’’’’’’’’’’’’’’’’ѧ’’’’’’’’’’’’’’’’’’’’ń§’,’’’’’’’’’’’’’’’’’’’!Ø’J’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’qØ’’’’’’’’’’’’’’’’’’’’‘Ø’'’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’’’’ĮØ’’’’’’’’’’’’’’’’’’’’ᨒ&’’’’’’’’’’’’’’’’’’’©’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1©’’’’’’’’’’’’’’’’’’’’Q©’’’’’’’’’’’’’’’’’’’’q©’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±©’’’’’’’’’’’’’’’’’’’’Ń©’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń©’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’!Ŗ’’’’’’’’’’’’’’’’’’’’AŖ’6’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’”Ŗ’’’’’’’’’’’’’’’’’’’’ĮŖ’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’įŖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŖ’’’’’’’’’’’’’’’’’’’’«’’’’’’’’’’’’’’’’’’’’1«’!’’’’’’’’’’’’’’’’’’’a«’’’’’’’’’’’’’’’’’’’’«’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’”«’’’’’’’’’’’’’’’’’’’’’’ END PROC pop;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į«’’’’’’’’’’’’’’’’’’’’į«’0’’’’’’’’’’’’’’’’’’’!¬’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¬’’’’’’’’’’’’’’’’’’’’a¬’’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”¬’’’’’’’’’’’’’’’’’’’’Į¬’’’’’’’’’’’’’’’’’’’’ᬒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’­’#’’’’’’’’’’’’’’’’’’’1­’’’’’’’’’’’’’’’’’’’’Q­’’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’’’’q­’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’ END PROC do;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC dump :’’’’’’’’’’‘­’’’’’’’’’’’’’’’’’’’’”­’’’’’’’’’’’’’’’’’’’’Į­’’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’į­’)’’’’’’’’’’’’’’’’’’’®’&’’’’’’’’’’’’’’’’’’’A®’)’’’’’’’’’’’’’’’’’’’q®’’’’’’’’’’’’’’’’’’’’‘®’)’’’’’’’’’’’’’’’’’’’Į®’%’’’’’’’’’’’’’’’’’’’ń®’*’’’’’’’’’’’’’’’’’’’!Æ’’’’’’’’’’’’’’’’’’’’AÆ’&’’’’’’’’’’’’’’’’’’’qÆ’0’’’’’’’’’’’’’’’’’’’±Æ’M’’’’’’’’’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’’’!°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’1°’(’’’’’’’’’’’’’’’’’’’a°’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±°’?’’’’’’’’’’’’’’’’’’’±’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A±’F’’’’’’’’’’’’’’’’’’’‘±’F’’’’’’’’’’’’’’’’’’’į±’F’’’’’’’’’’’’’’’’’’’1²’F’’’’’’’’’’’’’’’’’’’²’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѳ’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!³’C’’’’’’’’’’’’’’’’’’’q³’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘³’-’’’’’’’’’’’’’’’’’’’Į³’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń³’"’’’’’’’’’’’’’’’’’’’!“’?’’’’’’’’’’’’’’’’’’’q“’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘“’"’’’’’’’’’’’’’’’’’’’Į“’’’’’’’’’’’’’’’’’’’’į“’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’µ’3’’’’’’’’’’’’’’’’’’’Aµ’’’’’’’’’’’’’’’’’’’’aµ’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’µ’'’’’’’’’’’’’’’’’’’’’±µ’'’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’įµ’’’’’’’’’’’’’’’’’’’’¶’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1¶’’’’’’’’’’’’’’’’’’’’Q¶’’’’’’’’’’’’’’’’’’’’¶’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”¶’"’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’Ѷ’5’’’’’’’’’’’’’’’’’’’·’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A·’0’’’’’’’’’’’’’’’’’’’·’+’’’’’’’’’’’’’’’’’’’±·’-’’’’’’’’’’’’’’’’’’’į·’’’’’’’’’’’’’’’’’’’’ø’+’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ formelende :’’’’’’’’’1ø’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aø’’’’’’’’’’’’’’’’’’’’aø’’’’’’’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ø’’’’’’’’’’’’’’’’’’’’Įø’’’’’’’’’’’’’’’’’’’’įø’0’’’’’’’’’’’’’’’’’’’!¹’’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’’’’A¹’/’’’’’’’’’’’’’’’’’’’¹’’’’’’’’’’’’’’’’’’’’”¹’’’’’’’’’’’’’’’’’’’’Į¹’’’’’’’’’’’’’’’’’’’’į¹’,’’’’’’’’’’’’’’’’’’’ŗ’:’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qŗ’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŗ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńŗ’’’’’’’’’’’’’’’’’’’’ńŗ’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’1»’.’’’’’’’’’’’’’’’’’’’a»’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”»’’’’’’’’’’’’’’’’’’’’Į»’’’’’’’’’’’’’’’’’’’’į»’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¼’$’’’’’’’’’’’’’’’’’’’1¼’’’’’’’’’’’’’’’’’’’’Q¼’5’’’’’’’’’’’’’’’’’’’‘¼’’’’’’’’’’’’’’’’’’’’±¼’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѽ’#’’’’’’’’’’’’’’’’’’’½’’’’’’’’’’’’’’’’’’’’!½’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A½’+’’’’’’’’’’’’’’’’’’’q½’9’’’’’’’’’’’’’’’’’’’±½’’’’’’’’’’’’’’’’’’’’ѽ’/’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’1¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q¾’&’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’”¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į¾’#’’’’’’’’’’’’’’’’’’’ń¾’’’’’’’’’’’’’’’’’’’’æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1æ’’’’’’’’’’’’’’’’’’’’Qæ’’’’’’’’’’’’’’’’’’’’qæ’O’’’’’’’’’’’’’’’’’’’Ńæ’&’’’’’’’’’’’’’’’’’’’Ą’&’’’’’’’’’’’’’’’’’’’1Ą’(’’’’’’’’’’’’’’’’’’’aĄ’C’’’’’’’’’’’’’’’’’’’±Ą’(’’’’’’’’’’’’’’’’’’’įĄ’(’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’1Į’1’’’’’’’’’’’’’’’’’’’qĮ’’’’’’’’’’’’’’’’’’’’‘Į’0’’’’’’’’’’’’’’’’’’’ŃĮ’6’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ā’’’’’’’’’’’’’’’’’’’’QĀ’.’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’”Ā’’’’’’’’’’’’’’’’’’’’ĮĀ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĀ’’’’’’’’’’’’’’’’’’’’Ć’$’’’’’’’’’’’’’’’’’’’1Ć’*’’’’’’’’’’’’’’’’’’’aĆ’’’’’’’’’’’’’’’’’’’’‘Ć’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃĆ’$’’’’’’’’’’’’’’’’’’’Ä’’’’’’’’’’’’’’’’’’’’!Ä’’’’’’’’’’’’’’’’’’’’AÄ’9’’’’’’’’’’’’’’’’’’’Ä’’’’’’’’’’’’’’’’’’’’”Ä’.’’’’’’’’’’’’’’’’’’’ŃÄ’’’’’’’’’’’’’’’’’’’’ńÄ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Å’%’’’’’’’’’’’’’’’’’’’AÅ’F’’’’’’’’’’’’’’’’’’’‘Å’<’’’’’’’’’’’’’’’’’’’ŃÅ’%’’’’’’’’’’’’’’’’’’’Ę’I’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’QĘ’"’’’’’’’’’’’’’’’’’’’Ę’6’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’’’’’ĮĘ’*’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ńĘ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ē’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aĒ’6’’’’’’’’’’’’’’’’’’’”Ē’6’’’’’’’’’’’’’’’’’’’įĒ’6’’’’’’’’’’’’’’’’’’’!Č’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aČ’’’’’’’’’’’’’’’’’’’’Č’’’’’’’’’’’’’’’’’’’’”Č’’’’’’’’’’’’’’’’’’’’ĮČ’’’’’’’’’’’’’’’’’’’’įČ’’’’’’’’’’’’’’’’’’’’É’’’’’’’’’’’’’’’’’’’’!É’’’’’’’’’’’’’’’’’’’’AÉ’’’’’’’’’’’’’’’’’’’’aÉ’’’’’’’’’’’’’’’’’’’’É’’’’’’’’’’’’’’’’’’’’”É’’’’’’’’’’’’’’’’’’’’ĮÉ’’’’’’’’’’’’’’’’’’’’įÉ’’’’’’’’’’’’’’’’’’’’Ź’’’’’’’’’’’’’’’’’’’’!Ź’’’’’’’’’’’’’’’’’’’’AŹ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŹ’’’’’’’’’’’’’’’’’’’’Ź’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ź’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŹ’’’’’’’’’’’’’’’’’’’’įŹ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’’’’’’’’’!Ė’’’’’’’’’’’’’’’’’’’’AĖ’#’’’’’’’’’’’’’’’’’’’qĖ’ ’’’’’’’’’’’’’’’’’’’”Ė’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮĖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’8’’’’’’’’’’’’’’’’’’’’28’’’’’’’’’’’’’’’’’’’’R8’’’’’’’’’’’’’’’’’’’’r8’$’’’’’’’’’’’’’’’’’’’¢8’8’’’’’’’’’’’’’’’’’’’ā8’#’’’’’’’’’’’’’’’’’’’9’'’’’’’’’’’’’’’’’’’’’B9’’’’’’’’’’’’’’’’’’’’b9’*’’’’’’’’’’’’’’’’’’’’9’#’’’’’’’’’’’’’’’’’’’Ā9’%’’’’’’’’’’’’’’’’’’’ņ9’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’:’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2:’’’’’’’’’’’’’’’’’’’’R:’8’’’’’’’’’’’’’’’’’’’’:’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā:’’’’’’’’’’’’’’’’’’’’ā:’’’’’’’’’’’’’’’’’’’’;’*’’’’’’’’’’’’’’’’’’’2;’>’’’’’’’’’’’’’’’’’’’r;’’’’’’’’’’’’’’’’’’’’’;’ ’’’’’’’’’’’’’’’’’’’Ā;’’’’’’’’’’’’’’’’’’’’ā;’’’’’’’’’’’’’’’’’’’’<’’’’’’’’’’’’’’’’’’’’"<’ ’’’’’’’’’’’’’’’’’’’R<’3’’’’’’’’’’’’’’’’’’’’<’9’’’’’’’’’’’’’’’’’’’Ņ<’)’’’’’’’’’’’’’’’’’’’=’(’’’’’’’’’’’’’’’’’’’2=’-’’’’’’’’’’’’’’’’’’’b=’)’’’’’’’’’’’’’’’’’’’’=’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²=’’’’’’’’’’’’’’’’’’’’Ņ=’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ=’’’’’’’’’’’’’’’’’’’’>’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2>’’’’’’’’’’’’’’’’’’’’R>’"’’’’’’’’’’’’’’’’’’’‚>’9’’’’’’’’’’’’’’’’’’’Ā>’B’’’’’’’’’’’’’’’’’’’?’-’’’’’’’’’’’’’’’’’’’B?’H’’’’’’’’’’’’’’’’’’’’?’9’’’’’’’’’’’’’’’’’’’Ņ?’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ?’’’’’’’’’’’’’’’’’’’’@’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R@’’’’’’’’’’’’’’’’’’’’r@’%’’’’’’’’’’’’’’’’’’’¢@’:’’’’’’’’’’’’’’’’’’’ā@’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’A’/’’’’’’’’’’’’’’’’’’’BA’'’’’’’’’’’’’’’’’’’’’rA’#’’’’’’’’’’’’’’’’’’’¢A’&’’’’’’’’’’’’’’’’’’’ŅA’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņA’’’’’’’’’’’’’’’’’’’’B’.’’’’’’’’’’’’’’’’’’’BB’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’rB’’’’’’’’’’’’’’’’’’’’’B’#’’’’’’’’’’’’’’’’’’’ĀB’ ’’’’’’’’’’’’’’’’’’’ņB’"’’’’’’’’’’’’’’’’’’’"C’^’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’‚C’.’’’’’’’’’’’’’’’’’’’²C’#’’’’’’’’’’’’’’’’’’’āC’&’’’’’’’’’’’’’’’’’’’D’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2D’"’’’’’’’’’’’’’’’’’’’bD’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’D’’’’’’’’’’’’’’’’’’’’²D’#’’’’’’’’’’’’’’’’’’’āD’ ’’’’’’’’’’’’’’’’’’’E’"’’’’’’’’’’’’’’’’’’’BE’7’’’’’’’’’’’’’’’’’’’‚E’#’’’’’’’’’’’’’’’’’’’²E’T’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’F’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BF’"’’’’’’’’’’’’’’’’’’’rF’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢F’’’’’’’’’’’’’’’’’’’’ĀF’ ’’’’’’’’’’’’’’’’’’’ņF’’’’’’’’’’’’’’’’’’’’G’+’’’’’’’’’’’’’’’’’’’BG’)’’’’’’’’’’’’’’’’’’’rG’K’’’’’’’’’’’’’’’’’’’ĀG’&’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņG’$’’’’’’’’’’’’’’’’’’’"H’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’BH’’’’’’’’’’’’’’’’’’’’rH’’’’’’’’’’’’’’’’’’’’’H’’’’’’’’’’’’’’’’’’’’ĀH’'’’’’’’’’’’’’’’’’’’’ņH’+’’’’’’’’’’’’’’’’’’’"I’?’’’’’’’’’’’’’’’’’’’rI’(’’’’’’’’’’’’’’’’’’’¢I’,’’’’’’’’’’’’’’’’’’’ŅI’’’’’’’’’’’’’’’’’’’’ņI’(’’’’’’’’’’’’’’’’’’’"J’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BJ’$’’’’’’’’’’’’’’’’’’’rJ’%’’’’’’’’’’’’’’’’’’’¢J’’’’’’’’’’’’’’’’’’’’ĀJ’'’’’’’’’’’’’’’’’’’’’ņJ’(’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"K’#’’’’’’’’’’’’’’’’’’’RK’+’’’’’’’’’’’’’’’’’’’‚K’/’’’’’’’’’’’’’’’’’’’ĀK’0’’’’’’’’’’’’’’’’’’’L’9’’’’’’’’’’’’’’’’’’’BL’3’’’’’’’’’’’’’’’’’’’‚L’/’’’’’’’’’’’’’’’’’’’ĀL’’’’’’’’’’’’’’’’’’’’āL’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’’2M’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’rM’’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’’²M’ ’’’’’’’’’’’’’’’’’’’āM’#’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’N’’’’’’’’’’’’’’’’’’’’BN’&’’’’’’’’’’’’’’’’’’’rN’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢N’’’’’’’’’’’’’’’’’’’’ĀN’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’O’’’’’’’’’’’’’’’’’’’’"O’’’’’’’’’’’’’’’’’’’’BO’’’’’’’’’’’’’’’’’’’’bO’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²O’’’’’’’’’’’’’’’’’’’’ŅO’F’’’’’’’’’’’’’’’’’’’"P’7’’’’’’’’’’’’’’’’’’’bP’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢P’&’’’’’’’’’’’’’’’’’’’ŅP’’’’’’’’’’’’’’’’’’’’ņP’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’BQ’’’’’’’’’’’’’’’’’’’’bQ’P’’’’’’’’’’’’’’’’’’’ĀQ’&’’’’’’’’’’’’’’’’’’’ņQ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"R’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RR’’’’’’’’’’’’’’’’’’’’‚R’@’’’’’’’’’’’’’’’’’’’ŅR’)’’’’’’’’’’’’’’’’’’’S’0’’’’’’’’’’’’’’’’’’’BS’I’’’’’’’’’’’’’’’’’’’’S’>’’’’’’’’’’’’’’’’’’’ŅS’F’’’’’’’’’’’’’’’’’’’"T’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BT’’’’’’’’’’’’’’’’’’’’bT’X’’’’’’’’’’’’’’’’’’’ĀT’4’’’’’’’’’’’’’’’’’’’U’’’’’’’’’’’’’’’’’’’’"U’$’’’’’’’’’’’’’’’’’’’RU’’’’’’’’’’’’’’’’’’’’rU’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’ĀU’’’’’’’’’’’’’’’’’’’’āU’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"V’’’’’’’’’’’’’’’’’’’’BV’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rV’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’V’1’’’’’’’’’’’’’’’’’’’ŅV’ ’’’’’’’’’’’’’’’’’’’W’-’’’’’’’’’’’’’’’’’’’2W’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RW’0’’’’’’’’’’’’’’’’’’’’W’’’’’’’’’’’’’’’’’’’’²W’+’’’’’’’’’’’’’’’’’’’āW’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’X’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BX’’’’’’’’’’’’’’’’’’’’bX’$’’’’’’’’’’’’’’’’’’’’X’’’’’’’’’’’’’’’’’’’’²X’'’’’’’’’’’’’’’’’’’’’āX’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Y’’’’’’’’’’’’’’’’’’’’2Y’’’’’’’’’’’’’’’’’’’’RY’’’’’’’’’’’’’’’’’’’’rY’4’’’’’’’’’’’’’’’’’’’²Y’2’’’’’’’’’’’’’’’’’’’ņY’$’’’’’’’’’’’’’’’’’’’"Z’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RZ’'’’’’’’’’’’’’’’’’’’’‚Z’E’’’’’’’’’’’’’’’’’’’ŅZ’.’’’’’’’’’’’’’’’’’’’[’2’’’’’’’’’’’’’’’’’’’B[’,’’’’’’’’’’’’’’’’’’’r[’2’’’’’’’’’’’’’’’’’’’²[’>’’’’’’’’’’’’’’’’’’’ņ[’:’’’’’’’’’’’’’’’’’’’2\’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’R\’’’’’’’’’’’’’’’’’’’’r\’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢\’’’’’’’’’’’’’’’’’’’’Ā\’’’’’’’’’’’’’’’’’’’’ā\’’’’’’’’’’’’’’’’’’’’]’>’’’’’’’’’’’’’’’’’’’B]’8’’’’’’’’’’’’’’’’’’’‚]’’’’’’’’’’’’’’’’’’’’¢]’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā]’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā]’’’’’’’’’’’’’’’’’’’’^’’’’’’’’’’’’’’’’’’’’"^’1’’’’’’’’’’’’’’’’’’’b^’+’’’’’’’’’’’’’’’’’’’’^’’’’’’’’’’’’’’’’’’’’²^’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ^’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’_’)’’’’’’’’’’’’’’’’’’’2_’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b_’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚_’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā_’/’’’’’’’’’’’’’’’’’’’`’1’’’’’’’’’’’’’’’’’’’B`’’’’’’’’’’’’’’’’’’’’b`’’’’’’’’’’’’’’’’’’’’‚`’’’’’’’’’’’’’’’’’’’’¢`’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ`’#’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’"a’>’’’’’’’’’’’’’’’’’’’ba’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²a’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āa’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"b’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Bb’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’b’1’’’’’’’’’’’’’’’’’’’Ņb’P’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2c’’’’’’’’’’’’’’’’’’’’Rc’’’’’’’’’’’’’’’’’’’’rc’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’c’’’’’’’’’’’’’’’’’’’’²c’"’’’’’’’’’’’’’’’’’’’āc’"’’’’’’’’’’’’’’’’’’’d’,’’’’’’’’’’’’’’’’’’’Bd’*’’’’’’’’’’’’’’’’’’’’’FI; ’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rd’’’’’’’’’’’’’’’’’’’’’d’’’’’’’’’’’’’’’’’’’’įĖ’’’’’’’’’’’’’’’’’’’’Ģ’8’’’’’’’’’’’’’’’’’’’AĢ’’’’’’’’’’’’’’’’’’’’aĢ’’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’’’’Ģ’'’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’±Ģ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃĢ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńĢ’’’’’’’’’’’’’’’’’’’’Ķ’!’’’’’’’’’’’’’’’’’’’AĶ’’’’’’’’’’’’’’’’’’’’’’ summe.’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aĶ’’’’’’’’’’’’’’’’’’’’‘Ķ’ ’’’’’’’’’’’’’’’’’’’ĮĶ’’’’’’’’’’’’’’’’’’’’ńĶ’’’’’’’’’’’’’’’’’’’’’’ PER.’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ī’’’’’’’’’’’’’’’’’’’’1Ī’.’’’’’’’’’’’’’’’’’’’aĪ’’’’’’’’’’’’’’’’’’’’Ī’8’’’’’’’’’’’’’’’’’’’ĮĪ’ ’’’’’’’’’’’’’’’’’’’ńĪ’’’’’’’’’’’’’’’’’’’’Ļ’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ļ’’’’’’’’’’’’’’’’’’’’QĻ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ļ’’’’’’’’’’’’’’’’’’’’”Ļ’’’’’’’’’’’’’’’’’’’’ĮĻ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńĻ’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŠ’’’’’’’’’’’’’’’’’’’’aŠ’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’”Š’’’’’’’’’’’’’’’’’’’’ĮŠ’’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’’’’įŠ’4’’’’’’’’’’’’’’’’’’’!Ń’%’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŃ’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ń’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŃ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’"’’’’’’’’’’’’’’’’’’’AŅ’’’’’’’’’’’’’’’’’’’’aŅ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC tecal :’’’’’’’’’”Ņ’’’’’’’’’’’’’’’’’’’’ĮŅ’’’’’’’’’’’’’’’’’’’’įŅ’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’!Ó’’’’’’’’’’’’’’’’’’’’’’ quit;’’’’’’’’’’’’’AÓ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QÓ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qÓ’’’’’’’’’’’’’’’’’’’’”Ó’’’’’’’’’’’’’’’’’’’’ĮÓ’4’’’’’’’’’’’’’’’’’’’Ō’7’’’’’’’’’’’’’’’’’’’AŌ’’’’’’’’’’’’’’’’’’’’aŌ’4’’’’’’’’’’’’’’’’’’’”Ō’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃŌ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŌ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Õ’’’’’’’’’’’’’’’’’’’’AÕ’’’’’’’’’’’’’’’’’’’’QÕ’3’’’’’’’’’’’’’’’’’’’‘Õ’’’’’’’’’’’’’’’’’’’’±Õ’’’’’’’’’’’’’’’’’’’’ŃÕ’0’’’’’’’’’’’’’’’’’’’Ö’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ö’’’’’’’’’’’’’’’’’’’’QÖ’1’’’’’’’’’’’’’’’’’’’‘Ö’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’±Ö’’’’’’’’’’’’’’’’’’’’ŃÖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÖ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!×’’’’’’’’’’’’’’’’’’’’A×’’’’’’’’’’’’’’’’’’’’a×’'’’’’’’’’’’’’’’’’’’’‘×’%’’’’’’’’’’’’’’’’’’’Į×’#’’’’’’’’’’’’’’’’’’’ń×’.’’’’’’’’’’’’’’’’’’’!Ų’,’’’’’’’’’’’’’’’’’’’QŲ’.’’’’’’’’’’’’’’’’’’’Ų’/’’’’’’’’’’’’’’’’’’’ĮŲ’2’’’’’’’’’’’’’’’’’’’Ł’2’’’’’’’’’’’’’’’’’’’AŁ’!’’’’’’’’’’’’’’’’’’’qŁ’&’’’’’’’’’’’’’’’’’’’”Ł’)’’’’’’’’’’’’’’’’’’’ŃŁ’0’’’’’’’’’’’’’’’’’’’Ś’4’’’’’’’’’’’’’’’’’’’QŚ’0’’’’’’’’’’’’’’’’’’’‘Ś’=’’’’’’’’’’’’’’’’’’’ŃŚ’2’’’’’’’’’’’’’’’’’’’Ū’2’’’’’’’’’’’’’’’’’’’QŪ’>’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ do prozent :’’’’’’’’’‘Ū’’’’’’’’’’’’’’’’’’’’±Ū’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ŃŪ’&’’’’’’’’’’’’’’’’’’’Ü’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ do clear :’’’’’’’’’’’’’ clear;’’’’’’’’’’’’’!Ü’’’’’’’’’’’’’’’’’’’’AÜ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ do get : ’’’’’’’’’’’’aÜ’’’’’’’’’’’’’’’’’’’’Ü’ ’’’’’’’’’’’’’’’’’’’±Ü’’’’’’’’’’’’’’’’’’’’ŃÜ’’’’’’’’’’’’’’’’’’’’ńÜ’’’’’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’’’’’’1Ż’’’’’’’’’’’’’’’’’’’’QŻ’’’’’’’’’’’’’’’’’’’’qŻ’’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’’’’’‘Ż’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ż’’’’’’’’’’’’’’’’’’’’ŃŻ’’’’’’’’’’’’’’’’’’’’ńŻ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’1Ž’’’’’’’’’’’’’’’’’’’’QŽ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŽ’’’’’’’’’’’’’’’’’’’’‘Ž’’’’’’’’’’’’’’’’’’’’±Ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃŽ’’’’’’’’’’’’’’’’’’’’ńŽ’’’’’’’’’’’’’’’’’’’’ß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ß’’’’’’’’’’’’’’’’’’’’Qß’’’’’’’’’’’’’’’’’’’’qß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ß’’’’’’’’’’’’’’’’’’’’±ß’’’’’’’’’’’’’’’’’’’’Ńß’’’’’’’’’’’’’’’’’’’’ńß’’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’1ą’’’’’’’’’’’’’’’’’’’’Qą’’’’’’’’’’’’’’’’’’’’qą’’’’’’’’’’’’’’’’’’’’‘ą’0’’’’’’’’’’’’’’’’’’’Ńą’!’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!į’’’’’’’’’’’’’’’’’’’’Aį’(’’’’’’’’’’’’’’’’’’’qį’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘į’’’’’’’’’’’’’’’’’’’’±į’:’’’’’’’’’’’’’’’’’’’ńį’4’’’’’’’’’’’’’’’’’’’1ā’’’’’’’’’’’’’’’’’’’’Qā’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’qā’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ā’4’’’’’’’’’’’’’’’’’’’ńā’@’’’’’’’’’’’’’’’’’’’Ać’$’’’’’’’’’’’’’’’’’’’’’ zeile neu;’’’’’’’’’qć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ć’’’’’’’’’’’’’’’’’’’’±ć’’’’’’’’’’’’’’’’’’’’Ńć’0’’’’’’’’’’’’’’’’’’’ä’’’’’’’’’’’’’’’’’’’’1ä’$’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’aä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ä’’’’’’’’’’’’’’’’’’’’‘ä’’’’’’’’’’’’’’’’’’’’±ä’’’’’’’’’’’’’’’’’’’’Ńä’7’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ do runden :’’’’’’’’’’å’,’’’’’’’’’’’’’’’’’’’Aå’'’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qå’"’’’’’’’’’’’’’’’’’’’”å’’’’’’’’’’’’’’’’’’’’Įå’’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’’’’’įå’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ę’’’’’’’’’’’’’’’’’’’’’’ quit;’’’’’’’’’’’’’’!ę’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aę’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’clear;’’’’’’’’’’’’’’’aę’'’’’’’’’’’’’’’’’’’’’‘ę’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńę’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²d’’’’’’’’’’’’’’’’’’’’Ņd’$’’’’’’’’’’’’’’’’’’’e’ ’’’’’’’’’’’’’’’’’’’2e’$’’’’’’’’’’’’’’’’’’’be’!’’’’’’’’’’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’’e’%’’’’’’’’’’’’’’’’’’’Āe’’’’’’’’’’’’’’’’’’’’āe’"’’’’’’’’’’’’’’’’’’’f’3’’’’’’’’’’’’’’’’’’’Rf’4’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’’f’$’’’’’’’’’’’’’’’’’’’Āf’"’’’’’’’’’’’’’’’’’’’ņf’2’’’’’’’’’’’’’’’’’’’2g’2’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’rg’’’’’’’’’’’’’’’’’’’’’g’’’’’’’’’’’’’’’’’’’’²g’2’’’’’’’’’’’’’’’’’’’ņg’;’’’’’’’’’’’’’’’’’’’2h’=’’’’’’’’’’’’’’’’’’’rh’’’’’’’’’’’’’’’’’’’’’h’’’’’’’’’’’’’’’’’’’’Āh’#’’’’’’’’’’’’’’’’’’’ņh’"’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"i’’’’’’’’’’’’’’’’’’’’Bi’)’’’’’’’’’’’’’’’’’’’ri’O’’’’’’’’’’’’’’’’’’’Ņi’E’’’’’’’’’’’’’’’’’’’"j’2’’’’’’’’’’’’’’’’’’’bj’#’’’’’’’’’’’’’’’’’’’’j’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Āj’’’’’’’’’’’’’’’’’’’’āj’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"k’’’’’’’’’’’’’’’’’’’’Bk’I’’’’’’’’’’’’’’’’’’’’k’R’’’’’’’’’’’’’’’’’’’ņk’:’’’’’’’’’’’’’’’’’’’2l’9’’’’’’’’’’’’’’’’’’’rl’8’’’’’’’’’’’’’’’’’’’²l’?’’’’’’’’’’’’’’’’’’’m’`’’’’’’’’’’’’’’’’’’’rm’*’’’’’’’’’’’’’’’’’’’¢m’/’’’’’’’’’’’’’’’’’’’ām’9’’’’’’’’’’’’’’’’’’’"n’*’’’’’’’’’’’’’’’’’’’Rn’%’’’’’’’’’’’’’’’’’’’‚n’J’’’’’’’’’’’’’’’’’’’Ņn’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"o’’’’’’’’’’’’’’’’’’’’Bo’$’’’’’’’’’’’’’’’’’’’ro’$’’’’’’’’’’’’’’’’’’’¢o’!’’’’’’’’’’’’’’’’’’’Ņo’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’āo’’’’’’’’’’’’’’’’’’’’p’%’’’’’’’’’’’’’’’’’’’2p’’’’’’’’’’’’’’’’’’’’Rp’/’’’’’’’’’’’’’’’’’’’’p’M’’’’’’’’’’’’’’’’’’’āp’:’’’’’’’’’’’’’’’’’’’"q’5’’’’’’’’’’’’’’’’’’’bq’8’’’’’’’’’’’’’’’’’’’¢q’(’’’’’’’’’’’’’’’’’’’Ņq’*’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’"r’'’’’’’’’’’’’’’’’’’’’Rr’%’’’’’’’’’’’’’’’’’’’‚r’&’’’’’’’’’’’’’’’’’’’²r’)’’’’’’’’’’’’’’’’’’’ār’(’’’’’’’’’’’’’’’’’’’s’%’’’’’’’’’’’’’’’’’’’Bs’’’’’’’’’’’’’’’’’’’’bs’.’’’’’’’’’’’’’’’’’’’’s’/’’’’’’’’’’’’’’’’’’’Ņs’+’’’’’’’’’’’’’’’’’’’t’)’’’’’’’’’’’’’’’’’’’2t’*’’’’’’’’’’’’’’’’’’’bt’’’’’’’’’’’’’’’’’’’’‚t’)’’’’’’’’’’’’’’’’’’’²t’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’Ņt’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņt’'’’’’’’’’’’’’’’’’’’’"u’’’’’’’’’’’’’’’’’’’’Bu’:’’’’’’’’’’’’’’’’’’’‚u’M’’’’’’’’’’’’’’’’’’’Ņu’;’’’’’’’’’’’’’’’’’’’v’B’’’’’’’’’’’’’’’’’’’bv’P’’’’’’’’’’’’’’’’’’’Āv’>’’’’’’’’’’’’’’’’’’’w’@’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rw’(’’’’’’’’’’’’’’’’’’’‚w’%’’’’’’’’’’’’’’’’’’’²w’8’’’’’’’’’’’’’’’’’’’ņw’-’’’’’’’’’’’’’’’’’’’"x’-’’’’’’’’’’’’’’’’’’’Rx’’’’’’’’’’’’’’’’’’’’rx’*’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢x’ ’’’’’’’’’’’’’’’’’’’Ņx’6’’’’’’’’’’’’’’’’’’’y’6’’’’’’’’’’’’’’’’’’’Ry’H’’’’’’’’’’’’’’’’’’’¢y’I’’’’’’’’’’’’’’’’’’’ņy’H’’’’’’’’’’’’’’’’’’’Bz’I’’’’’’’’’’’’’’’’’’’’z’'’’’’’’’’’’’’’’’’’’’Āz’H’’’’’’’’’’’’’’’’’’’{’O’’’’’’’’’’’’’’’’’’’r{’T’’’’’’’’’’’’’’’’’’’Ņ{’0’’’’’’’’’’’’’’’’’’’|’2’’’’’’’’’’’’’’’’’’’R|’G’’’’’’’’’’’’’’’’’’’¢|’8’’’’’’’’’’’’’’’’’’’ā|’S’’’’’’’’’’’’’’’’’’’B}’’’’’’’’’’’’’’’’’’’’b}’’’’’’’’’’’’’’’’’’’’‚}’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢}’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ}’ ’’’’’’’’’’’’’’’’’’’~’N’’’’’’’’’’’’’’’’’’’R~’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚~’’’’’’’’’’’’’’’’’’’’¢~’$’’’’’’’’’’’’’’’’’’’Ņ~’6’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’/’’’’’’’’’’’’’’’’’’’r’/’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’²’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’€’1’’’’’’’’’’’’’’’’’’’R€’#’’’’’’’’’’’’’’’’’’’‚€’5’’’’’’’’’’’’’’’’’’’Ā€’%’’’’’’’’’’’’’’’’’’’ņ€’V’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’5’’’’’’’’’’’’’’’’’’’²’%’’’’’’’’’’’’’’’’’’’⁒V’’’’’’’’’’’’’’’’’’’B‚’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚‚’’’’’’’’’’’’’’’’’’’’¢‚’5’’’’’’’’’’’’’’’’’’’ā‚’%’’’’’’’’’’’’’’’’’’’ƒ’V’’’’’’’’’’’’’’’’’’’rƒ’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢ƒ’’’’’’’’’’’’’’’’’’’’ƒ’A’’’’’’’’’’’’’’’’’’’„’?’’’’’’’’’’’’’’’’’’’b„’?’’’’’’’’’’’’’’’’’’’²„’4’’’’’’’’’’’’’’’’’’’ņ„’5’’’’’’’’’’’’’’’’’’’2…’%’’’’’’’’’’’’’’’’’’’b…’V’’’’’’’’’’’’’’’’’’’Ā…’-’’’’’’’’’’’’’’’’’’’ņ…’*’’’’’’’’’’’’’’’’’’’"†’4’’’’’’’’’’’’’’’’’’’b†’&’’’’’’’’’’’’’’’’’’’’†’0’’’’’’’’’’’’’’’’’’’҆’A’’’’’’’’’’’’’’’’’’’"‡’3’’’’’’’’’’’’’’’’’’’b‡’’’’’’’’’’’’’’’’’’’’‚‡’=’’’’’’’’’’’’’’’’’’’‡’+’’’’’’’’’’’’’’’’’’’ņ‡’\’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rˆ’'’’’’’’’’’’’’’’’’’’’‚ˆ’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’−$’’’’’’’’’’’’’’’’’’’‰’1’’’’’’’’’’’’’’’’’’’R‰’#’’’’’’’’’’’’’’’’’’’‚‰’9’’’’’’’’’’’’’’’’’’’‰’(’’’’’’’’’’’’’’’’’’’ņ‰’Y’’’’’’’’’’’’’’’’’’’RŠ’?’’’’’’’’’’’’’’’’’’’¢Š’.’’’’’’’’’’’’’’’’’’’Ҋ’+’’’’’’’’’’’’’’’’’’’‹’-’’’’’’’’’’’’’’’’’’’2‹’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R‹’%’’’’’’’’’’’’’’’’’’’‚‹’:’’’’’’’’’’’’’’’’’’’Ā‹’0’’’’’’’’’’’’’’’’’’’Œ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2Œ’7’’’’’’’’’’’’’’’’’’’rŒ’P’’’’’’’’’’’’’’’’’’’Ҍ’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’B’)’’’’’’’’’’’’’’’’’’’r’%’’’’’’’’’’’’’’’’’’’¢’5’’’’’’’’’’’’’’’’’’’ā’%’’’’’’’’’’’’’’’’’’’Ž’V’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’rŽ’’’’’’’’’’’’’’’’’’’’’Ž’(’’’’’’’’’’’’’’’’’’’ĀŽ’1’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’2’R’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’3’’’’’’’’’’’’’’’’’’’ņ’ ’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’!’’’’’’’’’’’’’’’’’’’r’M’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’‘’1’’’’’’’’’’’’’’’’’’’R‘’M’’’’’’’’’’’’’’’’’’’¢‘’)’’’’’’’’’’’’’’’’’’’Ņ‘’+’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’2’’(’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’’%’’’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’Ā’’7’’’’’’’’’’’’’’’’’’’“’(’’’’’’’’’’’’’’’’’’’2“’F’’’’’’’’’’’’’’’’’’’‚“’7’’’’’’’’’’’’’’’’’’’Ā“’’’’’’’’’’’’’’’’’’’’ā“’#’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’2”’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b”’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’”’*’’’’’’’’’’’’’’’’’’’Ā”’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’•’ ’’’’’’’’’’’’’’’’’’’2•’)’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’b•’*’’’’’’’’’’’’’’’’’’’’•’5’’’’’’’’’’’’’’’’’’’Ņ•’%’’’’’’’’’’’’’’’’’’’–’V’’’’’’’’’’’’’’’’’’’b–’’’’’’’’’’’’’’’’’’’’‚–’%’’’’’’’’’’’’’’’’’’’²–’<’’’’’’’’’’’’’’’’’’’ņ–’@’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B—’8’’’’’’’’’’’’’’’’’’’‚—’&’’’’’’’’’’’’’’’’’’’²—’,’’’’’’’’’’’’’’’’’’’ā—’)’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’˜’+’’’’’’’’’’’’’’’’’’’B˜’’’’’’’’’’’’’’’’’’’’r˜’5’’’’’’’’’’’’’’’’’’’²˜’%’’’’’’’’’’’’’’’’’’’☒V’’’’’’’’’’’’’’’’’’’B™’’’’’’’’’’’’’’’’’’’’b™’=’’’’’’’’’’’’’’’’’’’¢™’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’Ņ™’)’’’’’’’’’’’’’’’’’’’š’(’’’’’’’’’’’’’’’’’’’2š’5’’’’’’’’’’’’’’’’’’’rš’%’’’’’’’’’’’’’’’’’’’¢š’V’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’"›’%’’’’’’’’’’’’’’’’’’’R›’;’’’’’’’’’’’’’’’’’’’’›’)’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’Ā›’*’’’’’’’’’’’’’’’’’’’ņ›’-’’’’’’’’’’’’’’’’’’’"œ’1’’’’’’’’’’’’’’’’’’’bœ’!’’’’’’’’’’’’’’’’’’’’œ’R’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’N(**********************************************************************)’’’’’’N(* *)’’’’’’N(* TeCal - Text Calculator *)’’’’’’N(* *)’’’’’’N(* Autor : Andreas Schmeink 06.09.1984 *)’’’’’’N(* Korrektur: Hilmar v.d. Bussche 17.09.1984 *)’’’’’’N(* 20.09.1984 *)’’’’’’N(* Adaption : Uwe Behrend, Andreas Schmeink 03.08.1987 *)’’’’’’N(**********************************************************************)’’’’’’>PACKET pick DEFINES pick up number, left range, right range,’’> replace number, last pick up ok :’’’’’’’’’N(********************************************************************)’’’’’’’’N(* *)’’’’’’’’N(* Zahlen erkennen und schreiben fŪr TeCal 12.09.84 *)’’’’’’’’N(* *)’’’’’’’’N(********************************************************************)’’’’’’’’>LET ziffern = "0123456789", pseudoblankcode = 223;’’’’’’’’’’’’.ROW 10 REAL VAR ziffer plus eins’’’’’’’’’’’’’’N := ROW 10 REAL : (0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0);’’’’’’’REAL VAR number;’’’’’’’’’’’’’’BOOL VAR ziffer gefunden;’’’’’NINT VAR anfang, ende, zeichencode, vorkommastellen, p, dezimalzeichen;’’’’’’’’TEXT VAR worktext;’’’’’’’’’’’’BOOL PROC last pick up ok:’’’’ ziffer gefunden’’’’’’’’’’’’END PROC last pick up ok;’’’’’.REAL PROC code to digit (INT CONST code) :’’’’ ziffer plus eins (code-47)’END PROC code to digit; ’’’’’’INT PROC left range :’’’’’’’’’END PROC left range;’’’’’’’’’’INT PROC right range :’’’’’’’’END PROC right range;’’’’’’’’’NREAL PROC pick up number (TEXT CONST source, INT CONST where) :’’’’’’’’’’’’’’’ suche ende der zahl; ’’’’’’ lies zahl ein;’’’’’’’’’’’’’suche ende der zahl :’’’’’’’’’. fange bei gegebener position an;’’’’’’’’’’’ IF vorzeichen THEN’’’’’’’’’ nach rechts ruecken’’’’’. WHILE erlaubtes zeichen REP ’’’’’’’’’’’’’’’ nach rechts ruecken ’’’’ ende merken.’’’’’’’’’’’’’’’.fange bei gegebener position an:’’’’’’’’’’’’’’ ziffer gefunden := FALSE;’’ p := where;. betrachte aktuelles zeichen.’’’’’’’’’’’’’’’nach rechts ruecken:’’’’’’’’’’. betrachte aktuelles zeichen.’’’’’’’’’’’’’’’nach links ruecken:’’’’’’’’’’’. betrachte aktuelles zeichen.’’’’’’’’’’’’’’’ ende := p - 1.’’’’’’’’’’’’’lies zahl ein :’’’’’’’’’’’’’’’ fange hinter der zahl an;’’ sammle ziffern auf;’’’’’’’’ pruefe vorzeichen;’’’’’’’’’ werte exponent aus.’’’’’’’’sammle ziffern auf :’’’’’’’’’’ nach links ruecken;’’’’’ IF ziffer THEN’’’’’’’’’’ ziffer behandeln’’’’’ ELIF punkt OR komma THEN. IF wirkt als dezimalzeichen THEN’’’’’. dezimalzeichen behandeln’’’’’’’’’ ELSE ignorieren’’’’’’. ELIF pseudoblank vor ziffer THEN’’’’’’’’ ignorieren’’’’’’’’’’’. LEAVE sammle ziffern auf’’’’’’’’’’’’’pruefe vorzeichen :’’’’’’’’’’’ IF minus THEN’’’’’’’’’’’’’’ anfang := p;’’’’’’’’’’’’ number := number * -1.0’ ELIF plus THEN’’’’’’’’’’’’’ anfang := p’’’’’’’’’’’’’ anfang := p+1’’’’’’’’’’’werte exponent aus :’’’’’’’’’’> set exp (vorkommastellen+decimal exponent(number), number).fange hinter der zahl an :’’’’ vorkommastellen := 0;’’’’’’ dezimalzeichen := 0;’’’’’’’ number := 0.0;’’’’’’’’’’’’’ p := ende + 1.’’’’’’’’’’’’’betrachte aktuelles zeichen: ’. zeichencode := code (source SUB p).’’’’’’’’ziffer behandeln :’’’’’’’’’’’’ ziffer gefunden := TRUE;’’’> number := (number + code to digit (zeichencode))/10.0;’’’’’ vorkommastellen INCR 1.’’’’dezimalzeichen behandeln :’’’’. dezimalzeichen := zeichencode;’’’’’’’’’’’’’ vorkommastellen := 0.’’’’’’wirkt als dezimalzeichen :’’’’> dezimalzeichen = 0 OR dezimalzeichen = zeichencode.’’’’’’’’erlaubtes zeichen :’’’’’’’’’’’> ziffer OR punkt OR komma OR pseudoblank vor ziffer.’’’’’’’’pseudoblank vor ziffer :’’’’’’N zeichencode = pseudoblankcode AND pos (ziffern, source SUB (p+1) ) > 0.’’’’vorzeichen : plus OR minus.’’’>ziffer : zeichencode >= 48 AND zeichencode <= 57. ’’’’’’’’’’’’plus : zeichencode = 43.’’’’’’minus : zeichencode = 45.’’’’’punkt : zeichencode = 46.’’’’’komma : zeichencode = 44.’’’’’END PROC pick up number;’’’’’’NPROC replace number (TEXT VAR source, REAL CONST value, INT CONST where,’’’’’’N nachkommastellen) :’’’ alte grenzen feststellen;’’> wenn noetig auf format der neuen zahl erweitern;’’’’’’’’’’’ zahl in text umwandeln;’’’’ zahl ersetzen. ’’’’’’’’’’’’alte grenzen feststellen :’’’’ REAL VAR dummy; ’’’’’’’’’’’. dummy := pick up number (source, where).’’’>wenn noetig auf format der neuen zahl erweitern :’’’’’’’’’’’’’> INT VAR schreibanfang := min (anfang, neuer anfang),’’’’’’’> schreibende := max (ende, neues ende).’’’’’’’’’’’’’.neuer anfang : where - vorkommazeichen + 1.’’’>vorkommazeichen : max (2,(decimal exponent (value) + 2)).’’’’’.neues ende : where + nachkommastellen + 1.’’’’zahl in text umwandeln :’’’’’’> worktext := text (value,stellen,nachkommastellen);’’’’’’’’’’. IF decimal exponent (value) < 0 THEN’’’’’’’’N change (worktext," .","0."); change (worktext," -.","-0.");’’’’’’’’’’’’’’. IF nachkommastellen = 0 THEN ’’’’’’’’’’’’’’’. replace (worktext, LENGTH worktext, " ")’> WHILE LENGTH worktext < schreibende-schreibanfang+1 REP’’’’’ worktext CAT " "’’’’’’’’’zahl ersetzen : ’’’’’’’’’’’’’’. WHILE LENGTH source < schreibende REP’’’’’’’ source CAT " "’’’’’’’’’’’. replace (source, schreibanfang, worktext) .’>stellen : where-schreibanfang+’’.’’’’’’’’’’’’’’’’’’’’ņœ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’$’’’’’’’’’’’’’’’’’’’‚’5’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’"’’’’’’’’’’’’’’’’’’’ž’#’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’Bž’’’’’’’’’’’’’’’’’’’’rž’!’’’’’’’’’’’’’’’’’’’¢ž’1’’’’’’’’’’’’’’’’’’’āž’’’’’’’’’’’’’’’’’’’’Ÿ’+’’’’’’’’’’’’’’’’’’’2Ÿ’5’’’’’’’’’’’’’’’’’’’rŸ’/’’’’’’’’’’’’’’’’’’’²Ÿ’T’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2 ’=’’’’’’’’’’’’’’’’’’’r ’N’’’’’’’’’’’’’’’’’’’Ā ’=’’’’’’’’’’’’’’’’’’’”’N’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’R”’"’’’’’’’’’’’’’’’’’’’‚”’:’’’’’’’’’’’’’’’’’’’Ā”’A’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’¢’ ’’’’’’’’’’’’’’’’’’’B¢’J’’’’’’’’’’’’’’’’’’’’¢’>’’’’’’’’’’’’’’’’’’’Ņ¢’'’’’’’’’’’’’’’’’’’’’£’L’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’R£’’’’’’’’’’’’’’’’’’’’r£’’’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’²£’1’’’’’’’’’’’’’’’’’’’ņ£’@’’’’’’’’’’’’’’’’’’’B¤’<’’’’’’’’’’’’’’’’’’’‚¤’C’’’’’’’’’’’’’’’’’’’Ҥ’P’’’’’’’’’’’’’’’’’’’2„’P’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’²„’’’’’’’’’’’’’’’’’’’’Ņ„’8’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’¦’#’’’’’’’’’’’’’’’’’’’B¦’+’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’r¦’’’’’’’’’’’’’’’’’’’’’¦’*’’’’’’’’’’’’’’’’’’’¦’M’’’’’’’’’’’’’’’’’’’§’C’’’’’’’’’’’’’’’’’’’b§’’’’’’’’’’’’’’’’’’’’‚§’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’²§’’’’’’’’’’’’’’’’’’’’ā§’’’’’’’’’’’’’’’’’’’’Ø’C’’’’’’’’’’’’’’’’’’’RØ’5’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’’Ø’’’’’’’’’’’’’’’’’’’’²Ø’#’’’’’’’’’’’’’’’’’’’⨒9’’’’’’’’’’’’’’’’’’’"©’,’’’’’’’’’’’’’’’’’’’R©’A’’’’’’’’’’’’’’’’’’’¢©’C’’’’’’’’’’’’’’’’’’’ņ©’(’’’’’’’’’’’’’’’’’’’"Ŗ’'’’’’’’’’’’’’’’’’’’’RŖ’'’’’’’’’’’’’’’’’’’’’‚Ŗ’’’’’’’’’’’’’’’’’’’’¢Ŗ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀŖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āŖ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’«’%’’’’’’’’’’’’’’’’’’’B«’!’’’’’’’’’’’’’’’’’’’r«’C’’’’’’’’’’’’’’’’’’’Ā«’A’’’’’’’’’’’’’’’’’’’¬’C’’’’’’’’’’’’’’’’’’’b¬’’’’’’’’’’’’’’’’’’’’‚¬’E’’’’’’’’’’’’’’’’’’’Ҭ’M’’’’’’’’’’’’’’’’’’’"­’!’’’’’’’’’’’’’’’’’’’R­’E’’’’’’’’’’’’’’’’’’’¢­’M’’’’’’’’’’’’’’’’’’’ņ­’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’"®’?’’’’’’’’’’’’’’’’’’’r®’L’’’’’’’’’’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā®’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā®’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"Æ’$’’’’’’’’’’’’’’’’’’’RÆ’3’’’’’’’’’’’’’’’’’’’’Æ’G’’’’’’’’’’’’’’’’’’’⯒-’’’’’’’’’’’’’’’’’’’°’&’’’’’’’’’’’’’’’’’’’B°’&’’’’’’’’’’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’r°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²°’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ°’$’’’’’’’’’’’’’’’’’’’"±’3’’’’’’’’’’’’’’’’’’’b±’-’’’’’’’’’’’’’’’’’’’’±’%’’’’’’’’’’’’’’’’’’’±’&’’’’’’’’’’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’ņ±’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B²’2’’’’’’’’’’’’’’’’’’’‚²’ ’’’’’’’’’’’’’’’’’’’²²’W’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’2³’6’’’’’’’’’’’’’’’’’’’r³’1’’’’’’’’’’’’’’’’’’’²³’’’’’’’’’’’’’’’’’’’’ҳ’’’’’’’’’’’’’’’’’’’’ņ³’ ’’’’’’’’’’’’’’’’’’’"“’’’’’’’’’’’’’’’’’’’’B“’%’’’’’’’’’’’’’’’’’’’r“’ ’’’’’’’’’’’’’’’’’’’¢“’!’’’’’’’’’’’’’’’’’’’Ņ“’!’’’’’’’’’’’’’’’’’’’µ’'’’’’’’’’’’’’’’’’’’’2µ’"’’’’’’’’’’’’’’’’’’’bµ’1’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’PER;’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢µ’’’’’’’’’’’’’’’’’’’’µ’$’’’’’’’’’’’’’’’’’’’ņµ’B’’’’’’’’’’’’’’’’’’’B¶’0’’’’’’’’’’’’’’’’’’’‚¶’&’’’’’’’’’’’’’’’’’’’²¶’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ҷ’’’’’’’’’’’’’’’’’’’’ņ¶’6’’’’’’’’’’’’’’’’’’’2·’0’’’’’’’’’’’’’’’’’’’r·’!’’’’’’’’’’’’’’’’’’’¢·’*’’’’’’’’’’’’’’’’’’’Ņ·’’’’’’’’’’’’’’’’’’’’ņ·’@’’’’’’’’’’’’’’’’’’’Bø’)’’’’’’’’’’’’’’’’’’’rø’-’’’’’’’’’’’’’’’’’’’¢ø’'’’’’’’’’’’’’’’’’’’’Ņø’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņø’’’’’’’’’’’’’’’’’’’’¹’E’’’’’’’’’’’’’’’’’’’b¹’J’’’’’’’’’’’’’’’’’’’²¹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ҹ’’’’’’’’’’’’’’’’’’’’ņ¹’&’’’’’’’’’’’’’’’’’’’"ŗ’4’’’’’’’’’’’’’’’’’’’bŗ’Q’’’’’’’’’’’’’’’’’’’Āŗ’’’’’’’’’’’’’’’’’’’’āŗ’C’’’’’’’’’’’’’’’’’’’2»’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R»’'’’’’’’’’’’’’’’’’’’’‚»’<’’’’’’’’’’’’’’’’’’’Ā»’&’’’’’’’’’’’’’’’’’’’ņ»’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2¼’)’’’’’’’’’’’’’’’’’’’b¼’#’’’’’’’’’’’’’’’’’’’’¼’S’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ¼’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2½’5’’’’’’’’’’’’’’’’’’’r½’S’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ҽ’’’’’’’’’’’’’’’’’’’’ņ½’’’’’’’’’’’’’’’’’’’’¾’B’’’’’’’’’’’’’’’’’’’b¾’$’’’’’’’’’’’’’’’’’’’’¾’"’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¾’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’æ’’’’’’’’’’’’’’’’’’’’2æ’0’’’’’’’’’’’’’’’’’’’ræ’Q’’’’’’’’’’’’’’’’’’’Ņæ’’’’’’’’’’’’’’’’’’’’ņæ’.’’’’’’’’’’’’’’’’’’’"Ą’G’’’’’’’’’’’’’’’’’’’rĄ’'’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’¢Ą’`’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’2Į’H’’’’’’’’’’’’’’’’’’’‚Į’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²Į’’’’’’’’’’’’’’’’’’’’ŅĮ’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’2Ā’3’’’’’’’’’’’’’’’’’’’rĀ’8’’’’’’’’’’’’’’’’’’’²Ā’N’’’’’’’’’’’’’’’’’’’Ć’4’’’’’’’’’’’’’’’’’’’BĆ’’’’’’’’’’’’’’’’’’’’bĆ’1’’’’’’’’’’’’’’’’’’’¢Ć’)’’’’’’’’’’’’’’’’’’’ŅĆ’’’’’’’’’’’’’’’’’’’’ņĆ’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’Ä’ ’’’’’’’’’’’’’’’’’’’BÄ’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’rÄ’’’’’’’’’’’’’’’’’’’’’Ä’>’’’’’’’’’’’’’’’’’’’ŅÄ’B’’’’’’’’’’’’’’’’’’’"Å’’’’’’’’’’’’’’’’’’’’BÅ’,’’’’’’’’’’’’’’’’’’’rÅ’*’’’’’’’’’’’’’’’’’’’¢Å’+’’’’’’’’’’’’’’’’’’’ŅÅ’-’’’’’’’’’’’’’’’’’’’Ę’-’’’’’’’’’’’’’’’’’’’2Ę’.’’’’’’’’’’’’’’’’’’’bĘ’-’’’’’’’’’’’’’’’’’’’’Ę’-’’’’’’’’’’’’’’’’’’’ĀĘ’1’’’’’’’’’’’’’’’’’’’Ē’+’’’’’’’’’’’’’’’’’’’2Ē’0’’’’’’’’’’’’’’’’’’’rĒ’,’’’’’’’’’’’’’’’’’’’¢Ē’/’’’’’’’’’’’’’’’’’’’āĒ’)’’’’’’’’’’’’’’’’’’’Č’-’’’’’’’’’’’’’’’’’’’BČ’)’’’’’’’’’’’’’’’’’’’rČ’’’’’’’’’’’’’’’’’’’’’Č’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²Č’’’’’’’’’’’’’’’’’’’’ŅČ’#’’’’’’’’’’’’’’’’’’’É’,’’’’’’’’’’’’’’’’’’’2É’ ’’’’’’’’’’’’’’’’’’’bÉ’)’’’’’’’’’’’’’’’’’’’’É’(’’’’’’’’’’’’’’’’’’’ĀÉ’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ź’)’’’’’’’’’’’’’’’’’’’2Ź’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RŹ’’’’’’’’’’’’’’’’’’’’rŹ’’’’’’’’’’’’’’’’’’’’’Ź’.’’’’’’’’’’’’’’’’’’’ĀŹ’Q’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"Ė’’’’’’’’’’’’’’’’’’’’BĖ’’’’’’’’’’’’’’’’’’’’bĖ’.’’’’’’’’’’’’’’’’’’’’Ė’S’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņĖ’’’’’’’’’’’’’’’’’’’’Ģ’"’’’’’’’’’’’’’’’’’’’BĢ’’’’’’’’’’’’’’’’’’’’bĢ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’‚Ģ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢Ģ’’’’’’’’’’’’’’’’’’’’ĀĢ’"’’’’’’’’’’’’’’’’’’’ņĢ’’’’’’’’’’’’’’’’’’’’Ķ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’2Ķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RĶ’’’’’’’’’’’’’’’’’’’’rĶ’@’’’’’’’’’’’’’’’’’’’ĀĶ’"’’’’’’’’’’’’’’’’’’’ņĶ’%’’’’’’’’’’’’’’’’’’’"Ī’3’’’’’’’’’’’’’’’’’’’bĪ’-’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ī’’’’’’’’’’’’’’’’’’’’²Ī’@’’’’’’’’’’’’’’’’’’’Ļ’F’’’’’’’’’’’’’’’’’’’RĻ’$’’’’’’’’’’’’’’’’’’’‚Ļ’2’’’’’’’’’’’’’’’’’’’2+nachkommastellen. ’’’’’’’’’’’’END PROC replace number;’’’’’’END PACKET pick;’’’’’’’’’’’’’’>PACKET rechner DEFINES clear, push, result, do,’’’’’’’’’’’’’’’> superklammer auf, superklammer zu,’’’’’> empty, operand expected, dump:’’’’’’’’’N(********************************************************************)’’’’’’’’N(* *)’’’’’’’’N(* Rechenwerk fuer TeCal 13.09.84 *)’’’’’’’’N(* *)’’’’’’’’N(********************************************************************)’’’’’’’’>LET plus = 1, minus = 2, mal = 3, durch = 4, hoch = 5,’’’’’’’N monad minus = 6, klammer auf = 7, klammer zu = 8, gleich = 9; ’’’’’’’’’’’>LET klammerpriostufe = 10, superklammerpriostufe = 500;’’’’’’’LET tiefe = 30; ’’’’’’’’’’’’’’REAL VAR dummy;’’’’’’’’’’’’’’’BOOL VAR war operand; ’’’’’’’’NINT VAR operandentop, operatorentop, klammerprio, superklammerprio; ’’’’’’’’’’.ROW tiefe INT VAR operatorenstack;’’’’’’’’’’’’.ROW tiefe REAL VAR operandenstack; ’’’’’’’’’’’PROC superklammer auf :’’’’’’’ IF war operand THEN’’’’’’’’ pop (dummy)’’’’’’’’’’’’’> superklammerprio INCR superklammerpriostufe;’’’’’’’’’’’’’’’. klammerprio INCR superklammerpriostufe’’’’’END PROC superklammer auf;’’’’PROC superklammer zu :’’’’’’’’. IF superklammerprio > 0 THEN’’’’’’’’’’’’’’’ push (gleich);’’’’’’’’’’> superklammerprio DECR superklammerpriostufe;’’’’’’’’’’’’. klammerprio DECR superklammerpriostufe’’END PROC superklammer zu;’’’’’INT PROC prio (INT CONST op):’. klammer prio + elementar prio.’’’’’’’’’’’’’elementar prio :’’’’’’’’’’’’’’ SELECT op OF ’’’’’’’’’’’’’’ CASE plus,minus : 2’’’’’’’’ CASE mal,durch : 3’’’’’’’’ CASE hoch : 4’’’’’’’’ CASE monadminus : 6’’’’’’’’ CASE klammerzu : 0’’’’’’’’> CASE gleich : -klammerprio+superklammerprio’’’’’’’’’’’’> OTHERWISE errorstop ("prio("+text(op)+")"); 0’’’’’’’’’’’’’’END PROC prio; operandentop := 0;’’’’’’’’’ operatorentop := 0; ’’’’’’’ war operand := FALSE;’’’’’’ klammerprio := 0;’’’’’’’’’’ superklammerprio := 0;’’’’’END PROC clear;’’’’’’’’’’’’’’’PROC push (INT CONST op) :’’’’ enable stop;’’’’’’’’’’’’’’’ IF war operand THEN’’’’’’’’> dyadischer operator oder gleich oder klammer zu ’’’’’’’’. ELIF op = minus COR op = monad minus THEN’’ push monadisches minus’’ ELIF op = plus THEN’’’’’’’’. (* ignoriere monad plus *)’’’’’’’’’’’’’’ ELIF op = klammer auf THEN’ IF stack zu voll THEN’’’. errorstop ("Zuviele offene Klammern"). klammerprio INCR klammerpriostufe’’’’’’’> errorstop ("Zahl erwartet, letzten Operator ignoriert")’>dyadischer operator oder gleich oder klammer zu :’’’’’’’’’’’’’> IF op = monad minus COR op = klammer auf THEN’’’’’’’’’’’’’’N (* errorstop ("Operator (+,-,*,/) vor Klammer auf fehlt")*)’’’’’’’’’’’’’ ignore last operand;’’’’ push (op);’’’’’’’’’’’’’’ LEAVE push’’’’’’’’’’’’’’. WHILE prio (op) <= stack top prio REPEAT auswerten’’’’’’’’’’’’ push operator’’’’’’’’’’’stack top prio : ’’’’’’’’’’’’’. IF operatorentop = 0 THEN -1’’’’’’’’’’’’’’’ ELSE operator DIV 10’’’’’’’stack zu voll :’’’’’’’’’’’’’’’ operandentop >= tiefe - 4.’ REAL VAR op2;’’’’’’’’’’’’’’ SELECT operator MOD 10 OF’’. CASE monad minus : operand := - operand’’’’. CASE plus : pop (op2); operand INCR op2’’’’. CASE minus: pop (op2); operand DECR op2’’’’> CASE mal : pop (op2); operand := operand * op2’’’’’’’’’’’’> CASE durch: pop (op2); operand := operand / op2 ’’’’’’’’’’’> CASE hoch : pop (op2); operand := operand ** op2 ’’’’’’’’’’^(**) errorstop ("Im Opstack ("+text(operatorentop)+") gefunden : "+text(operator))’’’’’’’’’’’’ END SELECT; war operand := TRUE;’’’’’’’ operatorentop DECR 1.’’’’’’push operator :’’’’’’’’’’’’’’’ IF op = klammerzu THEN’’’’’. IF klammerprio > superklammerprio THEN’’N klammerprio DECR klammerpriostufe (* ELSE ignoriere ")" zuviel *)’’’’ ELIF op = gleich THEN’’’’’’. klammerprio := superklammerprio; ’’’’’’’ operatorentop INCR 1;’’’. operator := prio (op) * 10 + op;’’’’’’’’ war operand := FALSE’’’’push monadisches minus :’’’’’’ operatorentop INCR 1;’’’’’’> operator := prio (monad minus) * 10 + monad minus.’’’’’’’’’ignore last operand :’’’’’’’’’ pop (dummy).’’’’’’’’’’’’’’’END PROC push;PROC push (REAL CONST op) :’’’ IF war operand THEN’’’’’’’’> operand := op; (* Operand wird ueberschrieben *)’’’’’’’’ operandentop INCR 1;’’’’ operand := op;’’’’’’’’’’ war operand := TRUE’’’’’END PROC push;PROC pop (REAL VAR r) :’’’’’’’ IF operandentop = 0 THEN’’’. errorstop ("Operand fehlt")’’’’’’’’’’’’’ ELSE r := operand;’’’’’’’’’ operandentop DECR 1’’’’’ war operand := FALSE’’’’’’’REAL PROC result :’’’’’’’’’’’’> IF operanden top > 0 THEN operand ELSE 0.0 FI’’’’’’’’’’’’’’END PROC result;’’’’’’’’’’’’’’BOOL PROC empty :’’’’’’’’’’’’’ operandentop < 1’’’’’’’’’’’END PROC empty;’’’’’’’’’’’’’’’BOOL PROC operand expected :’’ NOT war operand’’’’’’’’’’’’END PROC operand expected;’’’’.PROC do (REAL PROC (REAL CONST) f):’’’’’’’’’’’ IF NOT war operand THEN’’’’ push (f(result))’’’’’’’’ operand := f(operand)’’’ INT VAR x,y; get cursor (x,y);’’’’’’’’’’’ cursor (1,1);’’’’’’’’’’’’’’’. put(operatorentop);put ("OPERATOREN");’’’’’. FOR i FROM 1 UPTO operatorentop REP’’’’’’’’. put (text (operatorenstack(i),8));’’’’’ PER;out (""5""); line; ’’’’. put (operandentop);put ("OPERANDEN ");’’’’’. FOR i FROM 1 UPTO operandentop REP’’’’’’’’’. put (text (operandenstack(i),8,2));’’’’ PER;out (""5""); line;’’’’’. put ("Klammern:");put(klammerprio);’’’’’’’’> put ("Superklammern:");put(superklammerprio);’’’’’’’’’’’’’’N IF war operand THEN put ("war operand") ELSE put ("war operator") FI;line;’ cursor (x,y);’’’’’’’’’’’’’’END PROC dump;.operand : operandenstack (operandentop).’’’’’’.operator: operatorenstack(operatorentop).’’’’’END PACKET rechner;’’’’’’’’’’’NPACKET tecalfunctions DEFINES merke, prozentsatz, kommastellen,’’’’’’’’’’’’’’’> prozent, evaluate, tecal :’’’’’’N(********************************************************************)’’’’’’’’N(* *)’’’’’’’’N(* TeCal - Funktionen 15.09.84 *)’’’’’’’’N(* *)’’’’’’’’N(********************************************************************)’’’’’’’’NLET operatorenliste = "+-*/^ ()=", gib ausdruck = ""15" gib wert : ";’’’’’’’’’NREAL VAR speicher := 0.0, percent := 14.0, displayed value := -1.0;’’’’’’’’’’’INT VAR nachkommastellen := 2;.INT VAR zeiger,dachpos; (* fuer evaluate *)’.TEXT VAR char; (* fuer evaluate *)’.TEXT VAR status line, anzeigetext;’’’’’’’’’’’’NINT VAR anzeigestart, anzeigelaenge, memorystart, prozentstart;’’’’’’’’’’’’’’’init status line;’’’’’’’’’’’’’.PROC evaluate (TEXT CONST formel):’’’’’’’’’’’’ evaluate (formel,1)’’’’’’’’END PROC evaluate;’’’’’’’’’’’’>PROC evaluate (TEXT CONST formel, INT CONST ab wo):’’’’’’’’’’’ enable stop;’’’’’’’’’’’’’’’ zum formelanfang; ’’’’’’’’’. zum naechsten relevanten zeichen;’’’’’’’. IF formelende THEN LEAVE evaluate’’’’’’’ symbol verarbeiten’’’’’’ĀĻ’-’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņĻ’’’’’’’’’’’’’’’’’’’’Š’)’’’’’’’’’’’’’’’’’’’BŠ’O’’’’’’’’’’’’’’’’’’’¢Š’’’’’’’’’’’’’’’’’’’’ŅŠ’@’’’’’’’’’’’’’’’’’’’"Ń’8’’’’’’’’’’’’’’’’’’’bŃ’(’’’’’’’’’’’’’’’’’’’’Ń’>’’’’’’’’’’’’’’’’’’’ŅŃ’>’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’Ņ’!’’’’’’’’’’’’’’’’’’’BŅ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bŅ’*’’’’’’’’’’’’’’’’’’’’Ņ’(’’’’’’’’’’’’’’’’’’’ĀŅ’G’’’’’’’’’’’’’’’’’’’Ó’I’’’’’’’’’’’’’’’’’’’bÓ’S’’’’’’’’’’’’’’’’’’’ĀÓ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅÓ’*’’’’’’’’’’’’’’’’’’’Ō’(’’’’’’’’’’’’’’’’’’’2Ō’9’’’’’’’’’’’’’’’’’’’rŌ’;’’’’’’’’’’’’’’’’’’’²Ō’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀŌ’’’’’’’’’’’’’’’’’’’’āŌ’!’’’’’’’’’’’’’’’’’’’Õ’6’’’’’’’’’’’’’’’’’’’RÕ’%’’’’’’’’’’’’’’’’’’’‚Õ’%’’’’’’’’’’’’’’’’’’’²Õ’’’’’’’’’’’’’’’’’’’’ŅÕ’ ’’’’’’’’’’’’’’’’’’’Ö’4’’’’’’’’’’’’’’’’’’’BÖ’5’’’’’’’’’’’’’’’’’’’‚Ö’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢Ö’!’’’’’’’’’’’’’’’’’’’ŅÖ’9’’’’’’’’’’’’’’’’’’’×’+’’’’’’’’’’’’’’’’’’’B×’0’’’’’’’’’’’’’’’’’’’‚×’,’’’’’’’’’’’’’’’’’’’²×’6’’’’’’’’’’’’’’’’’’’ņ×’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2Ų’!’’’’’’’’’’’’’’’’’’’bŲ’S’’’’’’’’’’’’’’’’’’’ĀŲ’[’’’’’’’’’’’’’’’’’’’"Ł’-’’’’’’’’’’’’’’’’’’’RŁ’H’’’’’’’’’’’’’’’’’’’¢Ł’’’’’’’’’’’’’’’’’’’’ĀŁ’J’’’’’’’’’’’’’’’’’’’Ś’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bŚ’(’’’’’’’’’’’’’’’’’’’’Ś’@’’’’’’’’’’’’’’’’’’’āŚ’K’’’’’’’’’’’’’’’’’’’2Ū’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚Ū’’’’’’’’’’’’’’’’’’’’¢Ū’’’’’’’’’’’’’’’’’’’’ĀŪ’5’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ü’0’’’’’’’’’’’’’’’’’’’BÜ’H’’’’’’’’’’’’’’’’’’’’Ü’@’’’’’’’’’’’’’’’’’’’āÜ’D’’’’’’’’’’’’’’’’’’’2Ż’<’’’’’’’’’’’’’’’’’’’rŻ’(’’’’’’’’’’’’’’’’’’’¢Ż’M’’’’’’’’’’’’’’’’’’’ņŻ’’’’’’’’’’’’’’’’’’’’Ž’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BŽ’$’’’’’’’’’’’’’’’’’’’rŽ’?’’’’’’’’’’’’’’’’’’’ĀŽ’M’’’’’’’’’’’’’’’’’’’ß’M’’’’’’’’’’’’’’’’’’’bß’B’’’’’’’’’’’’’’’’’’’²ß’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’"ą’.’’’’’’’’’’’’’’’’’’’Rą’N’’’’’’’’’’’’’’’’’’’¢ą’A’’’’’’’’’’’’’’’’’’’ņą’O’’’’’’’’’’’’’’’’’’’Rį’P’’’’’’’’’’’’’’’’’’’²į’I’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’"ā’?’’’’’’’’’’’’’’’’’’’rā’P’’’’’’’’’’’’’’’’’’’Ņā’R’’’’’’’’’’’’’’’’’’’2ć’J’’’’’’’’’’’’’’’’’’’‚ć’’’’’’’’’’’’’’’’’’’’¢ć’V’’’’’’’’’’’’’’’’’’’ä’N’’’’’’’’’’’’’’’’’’’Rä’Q’’’’’’’’’’’’’’’’’’’²ä’U’’’’’’’’’’’’’’’’’’’å’<’’’’’’’’’’’’’’’’’’’Rå’L’’’’’’’’’’’’’’’’’’’¢å’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Āå’!’’’’’’’’’’’’’’’’’’’ņå’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"ę’’’’’’’’’’’’’’’’’’’’Bę’M’’’’’’’’’’’’’’’’’’’’ę’D’’’’’’’’’’’’’’’’’’’āę’/’’’’’’’’’’’’’’’’’’’"ē’]’’’’’’’’’’’’’’’’’’’‚ē’I’’’’’’’’’’’’’’’’’’’Ņē’A’’’’’’’’’’’’’’’’’’’"č’=’’’’’’’’’’’’’’’’’’’bč’=’’’’’’’’’’’’’’’’’’’¢č’-’’’’’’’’’’’’’’’’’’’Ņč’0’’’’’’’’’’’’’’’’’’’é’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Bé’/’’’’’’’’’’’’’’’’’’’‚é’'’’’’’’’’’’’’’’’’’’’²é’,’’’’’’’’’’’’’’’’’’’āé’4’’’’’’’’’’’’’’’’’’’"ź’D’’’’’’’’’’’’’’’’’’’rź’L’’’’’’’’’’’’’’’’’’’Āź’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņź’’’’’’’’’’’’’’’’’’’’ė’)’’’’’’’’’’’’’’’’’’’Bė’’’’’’’’’’’’’’’’’’’’bė’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚ė’’’’’’’’’’’’’’’’’’’’¢ė’’’’’’’’’’’’’’’’’’’’Āė’?’’’’’’’’’’’’’’’’’’’ģ’5’’’’’’’’’’’’’’’’’’’Rģ’"’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’‚ģ’’’’’’’’’’’’’’’’’’’’¢ģ’?’’’’’’’’’’’’’’’’’’’ņģ’5’’’’’’’’’’’’’’’’’’’2ķ’"’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bķ’’’’’’’’’’’’’’’’’’’’‚ķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢ķ’’’’’’’’’’’’’’’’’’’’Āķ’"’’’’’’’’’’’’’’’’’’’ņķ’0’’’’’’’’’’’’’’’’’’’2ī’’’’’’’’’’’’’’’’’’’’Rī’(’’’’’’’’’’’’’’’’’’’‚ī’;’’’’’’’’’’’’’’’’’’’Āī’%’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’ņī’’’’’’’’’’’’’’’’’’’’ļ’(’’’’’’’’’’’’’’’’’’’Bļ’;’’’’’’’’’’’’’’’’’’’‚ļ’%’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²ļ’’’’’’’’’’’’’’’’’’’’Ņļ’<’’’’’’’’’’’’’’’’’’’š’C’’’’’’’’’’’’’’’’’’’bš’4’’’’’’’’’’’’’’’’’’’¢š’>’’’’’’’’’’’’’’’’’’’āš’+’’’’’’’’’’’’’’’’’’’’’ disable stop;’’’’’’’’ń’1’’’’’’’’’’’’’’’’’’’Rń’?’’’’’’’’’’’’’’’’’’’¢ń’O’’’’’’’’’’’’’’’’’’’’’ IF is error’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’"ņ’’’’’’’’’’’’’’’’’’’’Bņ’"’’’’’’’’’’’’’’’’’’’rņ’’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’’’ enable stop;’’’’’’’’’²ņ’’’’’’’’’’’’’’’’’’’’āņ’=’’’’’’’’’’’’’’’’’’’"ó’*’’’’’’’’’’’’’’’’’’’Ró’:’’’’’’’’’’’’’’’’’’’’ó’U’’’’’’’’’’’’’’’’’’’ņó’U’’’’’’’’’’’’’’’’’’’Rō’$’’’’’’’’’’’’’’’’’’’‚ō’8’’’’’’’’’’’’’’’’’’’Āō’1’’’’’’’’’’’’’’’’’’’õ’0’’’’’’’’’’’’’’’’’’’Bõ’;’’’’’’’’’’’’’’’’’’’‚õ’F’’’’’’’’’’’’’’’’’’’Ņõ’L’’’’’’’’’’’’’’’’’’’"ö’F’’’’’’’’’’’’’’’’’’’rö’L’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’Āö’"’’’’’’’’’’’’’’’’’’’ņö’Q’’’’’’’’’’’’’’’’’’’R÷’+’’’’’’’’’’’’’’’’’’’‚÷’’’’’’’’’’’’’’’’’’’’¢÷’’’’’’’’’’’’’’’’’’’’’’ disable stop;’’’’’’’’Ā÷’=’’’’’’’’’’’’’’’’’’’ų’C’’’’’’’’’’’’’’’’’’’Rų’?’’’’’’’’’’’’’’’’’’’’’ IF is error’’’’’’’’’’¢ų’’’’’’’’’’’’’’’’’’’’Āų’’’’’’’’’’’’’’’’’’’’āų’"’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’2ł’’’’’’’’’’’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’’’ enable stop;’’’’’’’’’Rł’’’’’’’’’’’’’’’’’’’’‚ł’=’’’’’’’’’’’’’’’’’’’Āł’4’’’’’’’’’’’’’’’’’’’ś’’’’’’’’’’’’’’’’’’’’"ś’'’’’’’’’’’’’’’’’’’’’Rś’3’’’’’’’’’’’’’’’’’’’’ś’;’’’’’’’’’’’’’’’’’’’Ņś’@’’’’’’’’’’’’’’’’’’’"ū’-’’’’’’’’’’’’’’’’’’’Rū’’’’’’’’’’’’’’’’’’’’rū’1’’’’’’’’’’’’’’’’’’’²ū’1’’’’’’’’’’’’’’’’’’’ņū’A’’’’’’’’’’’’’’’’’’’Bü’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bü’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²ü’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņü’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"ż’’’’’’’’’’’’’’’’’’’’Bż’!’’’’’’’’’’’’’’’’’’’rż’N’’’’’’’’’’’’’’’’’’’Āż’ ’’’’’’’’’’’’’’’’’’’ņż’R’’’’’’’’’’’’’’’’’’’Rž’B’’’’’’’’’’’’’’’’’’’¢ž’G’’’’’’’’’’’’’’’’’’’ņž’G’’’’’’’’’’’’’’’’’’’B’’U’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’Ā’’$’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’N’’’’’’’’’’’’’’’’’’’c’C’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ć’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’c’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£’6’’’’’’’’’’’’’’’’’’’ć’F’’’’’’’’’’’’’’’’’’’3’8’’’’’’’’’’’’’’’’’’’s’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ć’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’C’U’’’’’’’’’’’’’’’’’’’£’+’’’’’’’’’’’’’’’’’’’Ó’9’’’’’’’’’’’’’’’’’’’’K’’’’’’’’’’’’’’’’’’’c’’’’’’’’’’’’’’’’’’’’ƒ’$’’’’’’’’’’’’’’’’’’’³’)’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’3’D’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’£’0’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’ 0’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’S’*’’’’’’’’’’’’’’’’’’’ƒ’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ó’!’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’c’I’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’Ó’>’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’c’A’’’’’’’’’’’’’’’’’’’³’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ć’$’’’’’’’’’’’’’’’’’’’ ’$’’’’’’’’’’’’’’’’’’’C ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’s ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“ ’;’’’’’’’’’’’’’’’’’’’. UNTIL gleich zeichen verarbeitet PER.’’’’’’zum formelanfang :’’’’’’’’’’’’. dachpos := pos (formel,"^");’’’’’’’’’’’’’’’ zeiger:= ab wo - 1.’’’’’’’’.zum naechsten relevanten zeichen :’’’’’’’’’’’’> zum naechsten wahrscheinlich relevanten zeichen’’’’’’’’’. UNTIL formelende COR wirklich relevant PER.>zum naechsten wahrscheinlich relevanten zeichen:’’’’’’’’’’’’’’. zeiger := pos (formel,"%","=",zeiger+1);’’’. IF dachpos <> 0 CAND zeiger > dachpos THEN’ zeiger := dachpos;’’’’’’. dachpos := pos (formel,"^",dachpos+1)’’’ zeiger = 0.wirklich relevant :’’’’’’’’’’’ char := formel SUB zeiger;’ pos ("',.:;<", char) = 0.’’symbol verarbeiten :’’’’’’’’’’ IF ziffer THEN’’’’’’’’’’’’’> push (abs(pick up number(formel,zeiger)));’’’’’’’’’’’’’’ zeiger := right range’’’> INT VAR op := pos (operatorenliste,char);’’’’’’’’’’’’’’’ IF op > 0 THEN’’’’’’’’’’ push (op)’’’’’’’’’’’’ ELIF char = "%" THEN’’’’. do (REAL PROC (REAL CONST) prozent)’’> ELSE errorstop ("TeCal FEHLER : symbol verarbeiten")’’’’.gleichzeichen verarbeitet : char = "=".’’’’’’’.ziffer : pos ("0123456789",char) > 0.’’’’’’’’’END PROC evaluate;’’’’’’’’’’’’PROC merke (REAL CONST wert) : speicher := wert;’’’’’’’’’’’’ set anzeigetext (speicher);’’. replace (statusline,memorystart,anzeigetext); show status line’’’’’’’’’’’’’END PROC merke;’’’’’’’’’’’’’’’PROC merke (INT CONST wert) :’ merke (real (wert));’’’’’’’’’END PROC merke;’’’’’’’’’’’’’’’.PROC prozentsatz (REAL CONST wert) :’’’’’’’’’’ percent := wert;’’’’’’’’’’’’’> replace (statusline,prozentstart,text(percent,6,2));’’’’’’’’’ show status line;’’’’’’’’’’’’END PROC prozentsatz;’’’’’’’’’.PROC prozentsatz (INT CONST wert) :’’’’’’’’’’’ prozentsatz (real (wert));’’’END PROC prozentsatz;’’’’’’’’’.PROC kommastellen (INT CONST anz stellen) :’’’> nachkommastellen := max ( 0, min (anz stellen, 16)) ;’’’’’ set anzeigetext (0.0);’’’’’’’> replace (statusline,anzeigestart,anzeigetext);’’’’’’’’’’’’’’’ merke (speicher);’’’’’’’’’’’’END PROC kommastellen;’’’’’’’’.REAL PROC prozent (REAL CONST wovon) :’’’’’’’’ percent * wovon / 100.0’’’’’’END PROC prozent;’’’’’’’’’’’’’.REAL PROC runden (REAL CONST was) :’’’’’’’’’’’ round (was,nachkommastellen)END PROC runden;’’’’’’’’’’’’’’PROC init status line :’’’’’’’ statusline := ’’’’’’’’’’’’’^"$Anzeige: & __________._________ $ %%%.%%% Memory: ----------.--------- &"’’’’’’’’’’’’’’’.; change all (statusline,"$",""15"");’’’’’’’’. change all (statusline,"&",""14"");’’’’’’’’. anzeigestart := pos (statusline,"_");’’’’’’N anzeigelaenge:= pos (statusline," ",anzeigestart)-anzeigestart; ’’’’’’’’’’’. memorystart := pos (statusline,"-");’’’’’’. prozentstart := pos (statusline,"%");’’’’’’ set anzeigetext (0.0);’’’’’> replace (statusline,anzeigestart,anzeigetext);’’’’’’’’’’’’’ set anzeigetext (speicher);> replace (statusline,memorystart,anzeigetext);’’’’’’’’’’’’’’> replace (statusline,prozentstart,text(percent,6,2))’’’’’’’’END PROC init status line;’’’’PROC show status line :’’’’’’’. cursor (1,y screen size); out (statusline); displayed value := 0.0;’’’’ display value’’’’’’’’’’’’’’END PROC show status line;’’’’PROC display value :’’’’’’’’’’. IF displayed value <> result THEN’’’’’’’’’’. cursor (anzeigestart,y screen size);’’’’. set anzeigetext (result);’’’’’’’’’’’’’’’ out (anzeigetext)’’’’’’’END PROC display value;’’’’’’’.PROC get expression (TEXT VAR exp) :’’’’’’’’’’ cursor (1,yscreen size);’’’’ out (gib ausdruck);’’’’’’’’’> (x screen size - 4 - LENGTH gib ausdruck) TIMESOUT " ";’’’’’ out (""14""15""8" ");’’’’’’’. cursor (LENGTH gib ausdruck, y screen size); editget (exp);’’’’’’’’’’’’’’END PROC get expression;’’’’’’.PROC set anzeigetext (REAL CONST r) :’’’’’’’’’N IF decimal exponent (r) + nachkommastellen + 3 <= anzeigelaenge THEN’’’’’’’’> anzeigetext := text (r,anzeigelaenge,nachkommastellen);’’. IF decimal exponent (r) < 0 THEN’’’’’’’’’N change (anzeigetext," .","0."); change (anzeigetext," -.","-0.");’’’’’. IF nachkommastellen = 0 THEN ’’’’’’’’’’’’> replace (anzeigetext, LENGTH anzeigetext, " ")’’’’’’’’. anzeigetext := text (r,anzeigelaenge)’’’’END PROC set anzeigetext;’’’’’N(*************** TeCal - Editor - Schnittstelle *****************)’’’’’’’’’’>LET tecal tasten = "tq%()*+-/=CEFHKLMNRSVW^T"9"?",’’’’’’’’> funktionenliste = "LSCEFHKMNRVWtq%"9"T?" ,’’’’’’’’> zahlzeichen = "1234567890.,-+" ,’’’’’’’’> std tasten = "tqevw19dpgn"9"" ;’’’’’’’’LET kommando prozent = 15,’’’ kommando clear = 3,’’’’ kommando einlesen = 4,’’’’ kommando formel = 5,’’’’ kommando recall = 7,’’’’ kommando lesen = 1,’’’’ kommando store = 8,’’’’ kommando naechste = 9,’’’’ kommando q = 14,’’’ kommando runden = 10,’’’ kommando schreiben= 2,’’’’ kommando umschalt = 13,’’’ kommando ver sum = 11,’’’ kommando fenster = 12,’’’ kommando type = 17,’’’ kommando help = 18;’’’LET x screen size = 79,’ y screen size = 24;’FILE VAR tecal file;’’’’’’’’’’TEXT VAR record, input buffer;INT VAR record pos;’’’’’’’’’’’PROC dateizeile lesen :’’’’’’’ set busy indicator;’’’’’’’’’. read record (tecal file, record);’’’’’’’’’’’. record pos := col (tecal file)’’’’’’’’’’’’’’END PROC dateizeile lesen; ’’’PROC zahl aufsammeln :’’’’’’’’ dateizeile lesen;’’’’’’’’’’> REAL VAR zahl := pick up number (record, record pos);’’’’’’ IF last pick up ok THEN’’’’ push (zahl)’’’’’’’’’’’’’. errorstop ("Keine Zahl gefunden")’’’’’’’END PROC zahl aufsammeln;’’’’’REAL PROC spaltensumme :’’’’’’ anfangsposition merken;’’’’. nach oben laufen und addieren;’’’’’’’’’’’’’ zum anfang zurueck;’’’’’’’’.nach oben laufen und addieren :’’’’’’’’’’’’’’’. WHILE NOT oben angekommen REP’’’’’’’’’’’’’’. hochgehen und satz lesen;’’’’’’’’’’’’’’’ record auswerten’’’’’’’’anfangsposition merken :’’’’’’. INT VAR alte zeile := line no (tecal file); dateizeile lesen;’’’’’’’’’’> REAL VAR summe := pick up number (record,record pos);’’’’’’. BOOL VAR weiterlaufen := TRUE’’’’’’’’’’’’’’ IF NOT last pick up ok THEN summe := 0.0’’’’’’’’’’’zum anfang zurueck :’’’’’’’’’’. to line (tecalfile, alte zeile).’’’’’’’’’’’hochgehen und satz lesen :’’’’ up (tecal file);’’’’’’’’’’’. read record (tecal file, record).’’’’’’’’’’Noben angekommen : line no (tecalfile) = 1 COR NOT weiterlaufen.’’’’’’’’’’’’’’’record auswerten :’’’’’’’’’’’’ IF blankzeile THEN’’’’’’’’’ weiterlaufen := TRUE ’’’ ELIF kein zahlzeichen THEN’ weiterlaufen := FALSE’’’> summe INCR pick up number (record,record pos);’’’’’’’’’’. weiterlaufen := last pick up ok’’’’’’’’’Nblankzeile : LENGTH record < record pos COR (record SUB record pos) = " ".’’’’Nkein zahlzeichen : pos (zahlzeichen,record SUB recordpos) = 0. ’’’’’’’’’’’’’’’END PROC spaltensumme;’’’’’’’’.PROC tecal (TEXT CONST filename) :’’’’’’’’’’’’ type (""27"t");’’’’’’’’’’’’’ edit (filename).’’’’’’’’’’’’END PROC tecal;’’’’’’’’’’’’’’’ IF groesster editor > 0’’’’’’ THEN tecal auf editfile’’’ ELSE tecal (lastparam)’’’’tecal auf editfile :’’’’’’’’’’ FILE VAR f := editfile;’’’’ tecal (f) .END PROC tecal;’’’’’’’’’’’’’’’.PROC tecal (FILE VAR ed file) :’’’’’’’’’’’’’’’ enable stop ;’’’’’’’’’’’> open editor (groesster editor + 1, ed file, TRUE,’’’’’’’’’’Ó ’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’# ’S’’’’’’’’’’’’’’’’’’’ƒ ’+’’’’’’’’’’’’’’’’’’’³ ’-’’’’’’’’’’’’’’’’’’’ć ’+’’’’’’’’’’’’’’’’’’’ ’5’’’’’’’’’’’’’’’’’’’S ’A’’’’’’’’’’’’’’’’’’’£ ’.’’’’’’’’’’’’’’’’’’’Ó ’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’3 ’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’s ’8’’’’’’’’’’’’’’’’’’’³ ’’’’’’’’’’’’’’’’’’’’Ó ’ ’’’’’’’’’’’’’’’’’’’ ’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’C ’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“ ’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ć ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’C’>’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’Ć’%’’’’’’’’’’’’’’’’’’’ó’:’’’’’’’’’’’’’’’’’’’3’F’’’’’’’’’’’’’’’’’’’ƒ’&’’’’’’’’’’’’’’’’’’’³’8’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’C’ ’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’s’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’c’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’£’2’’’’’’’’’’’’’’’’’’’ć’2’’’’’’’’’’’’’’’’’’’#’'’’’’’’’’’’’’’’’’’’’S’'’’’’’’’’’’’’’’’’’’’ƒ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’Ó’&’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’3’(’’’’’’’’’’’’’’’’’’’c’)’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“’$’’’’’’’’’’’’’’’’’’’Ć’8’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’3’=’’’’’’’’’’’’’’’’’’’s’9’’’’’’’’’’’’’’’’’’’³’+’’’’’’’’’’’’’’’’’’’ć’3’’’’’’’’’’’’’’’’’’’#’9’’’’’’’’’’’’’’’’’’’c’+’’’’’’’’’’’’’’’’’’’“’7’’’’’’’’’’’’’’’’’’’Ó’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’C’%’’’’’’’’’’’’’’’’’’’s’7’’’’’’’’’’’’’’’’’’’³’#’’’’’’’’’’’’’’’’’’’ć’?’’’’’’’’’’’’’’’’’’’3’:’’’’’’’’’’’’’’’’’’’s’+’’’’’’’’’’’’’’’’’’’£’3’’’’’’’’’’’’’’’’’’’ć’:’’’’’’’’’’’’’’’’’’’#’,’’’’’’’’’’’’’’’’’’’S’6’’’’’’’’’’’’’’’’’’’“’:’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’C’#’’’’’’’’’’’’’’’’’’’s’/’’’’’’’’’’’’’’’’’’’³’H’’’’’’’’’’’’’’’’’’’’H’’’’’’’’’’’’’’’’’’’S’F’’’’’’’’’’’’’’’’’’’£’H’’’’’’’’’’’’’’’’’’’ó’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#’,’’’’’’’’’’’’’’’’’’’S’#’’’’’’’’’’’’’’’’’’’ƒ’H’’’’’’’’’’’’’’’’’’’Ó’F’’’’’’’’’’’’’’’’’’’#’H’’’’’’’’’’’’’’’’’’’s’F’’’’’’’’’’’’’’’’’’’Ć’H’’’’’’’’’’’’’’’’’’’’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’C’+’’’’’’’’’’’’’’’’’’’s’#’’’’’’’’’’’’’’’’’’’£’I’’’’’’’’’’’’’’’’’’’ó’G’’’’’’’’’’’’’’’’’’’C’I’’’’’’’’’’’’’’’’’’’“’G’’’’’’’’’’’’’’’’’’’ć’I’’’’’’’’’’’’’’’’’’’3’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’c’4’’’’’’’’’’’’’’’’’’’£’#’’’’’’’’’’’’’’’’’’’Ó’/’’’’’’’’’’’’’’’’’’’ ’I’’’’’’’’’’’’’’’’’’’c ’I’’’’’’’’’’’’’’’’’’’³ ’G’’’’’’’’’’’’’’’’’’’!’I’’’’’’’’’’’’’’’’’’’S!’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ!’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£!’"’’’’’’’’’’’’’’’’’’’Ó!’’’’’’’’’’’’’’’’’’’’ó!’.’’’’’’’’’’’’’’’’’’’#"’0’’’’’’’’’’’’’’’’’’’c"’/’’’’’’’’’’’’’’’’’’’£"’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ó"’!’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’##’/’’’’’’’’’’’’’’’’’’’c#’9’’’’’’’’’’’’’’’’’’’£#’/’’’’’’’’’’’’’’’’’’’ć#’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’$’$’’’’’’’’’’’’’’’’’’’C$’4’’’’’’’’’’’’’’’’’’’ƒ$’’’’’’’’’’’’’’’’’’’’£$’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ó$’'’’’’’’’’’’’’’’’’’’’%’$’’’’’’’’’’’’’’’’’’’3%’0’’’’’’’’’’’’’’’’’’’s%’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£%’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ć%’/’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’’#&’"’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’S&’’’’’’’’’’’’’’’’’’’’s&’’’’’’’’’’’’’’’’’’’’“&’’’’’’’’’’’’’’’’’’’’³&’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ć&’ ’’’’’’’’’’’’’’’’’’’'’6’’’’’’’’’’’’’’’’’’’S'’’’’’’’’’’’’’’’’’’’’s'’K’’’’’’’’’’’’’’’’’’’Ć'’L’’’’’’’’’’’’’’’’’’’(’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’3(’ ’’’’’’’’’’’’’’’’’’’c(’4’’’’’’’’’’’’’’’’’’’£(’’’’’’’’’’’’’’’’’’’’Ć(’M’’’’’’’’’’’’’’’’’’’)’N’’’’’’’’’’’’’’’’’’’c)’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ)’(’’’’’’’’’’’’’’’’’’’³)’H’’’’’’’’’’’’’’’’’’’*’"’’’’’’’’’’’’’’’’’’’3*’3’’’’’’’’’’’’’’’’’’’s*’$’’’’’’’’’’’’’’’’’’’£*’D’’’’’’’’’’’’’’’’’’’ó*’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’C+’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’s+’7’’’’’’’’’’’’’’’’’’’³+’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’,’.’’’’’’’’’’’’’’’’’’’3,’"’’’’’’’’’’’’’’’’’’’c,’$’’’’’’’’’’’’’’’’’’’“,’)’’’’’’’’’’’’’’’’’’’Ć,’’’’’’’’’’’’’’’’’’’’ć,’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’-’(’’’’’’’’’’’’’’’’’’’3-’’’’’’’’’’’’’’’’’’’’S-’C’’’’’’’’’’’’’’’’’’’£-’.’’’’’’’’’’’’’’’’’’’Ó-’-’’’’’’’’’’’’’’’’’’’.’-’’’’’’’’’’’’’’’’’’’3.’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’S.’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’s.’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³.’"’’’’’’’’’’’’’’’’’’’ć.’$’’’’’’’’’’’’’’’’’’’/’"’’’’’’’’’’’’’’’’’’’C/’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’c/’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“/’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ó/’$’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’’#0’#’’’’’’’’’’’’’’’’’’’S0’,’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ0’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³0’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ó0’’’’’’’’’’’’’’’’’’’’ó0’!’’’’’’’’’’’’’’’’’’’#1’'’’’’’’’’’’’’’’’’’’’S1’:’’’’’’’’’’’’’’’’’’’“1’(’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ć1’’’’’’’’’’’’’’’’’’’’ć1’’’’’’’’’’’’’’’’’’’’2’9’’’’’’’’’’’’’’’’’’’S2’9’’’’’’’’’’’’’’’’’’’“2’9’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ó2’.’’’’’’’’’’’’’’’’’’’3’ ’’’’’’’’’’’’’’’’’’’33’&’’’’’’’’’’’’’’’’’’’c3’!’’’’’’’’’’’’’’’’’’’“3’’’’’’’’’’’’’’’’’’’’³3’B’’’’’’’’’’’’’’’’’’’4’ ’’’’’’’’’’’’’’’’’’’34’4’’’’’’’’’’’’’’’’’’’s4’ ’’’’’’’’’’’’’’’’’’’£4’/’’’’’’’’’’’’’’’’’’’ć4’%’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’5’#’’’’’’’’’’’’’’’’’’’C5’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’s5’)’’’’’’’’’’’’’’’’’’’£5’:’’’’’’’’’’’’’’’’’’’ć5’<’’’’’’’’’’’’’’’’’’’#6’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’s6’.’’’’’’’’’’’’’’’’’’’£6’7’’’’’’’’’’’’’’’’’’’ć6’7’’’’’’’’’’’’’’’’’’’#7’9’’’’’’’’’’’’’’’’’’’c7’%’’’’’’’’’’’’’’’’’’’“7’5’’’’’’’’’’’’’’’’’’’Ó7’J’’’’’’’’’’’’’’’’’’’#8’(’’’’’’’’’’’’’’’’’’’S8’-’’’’’’’’’’’’’’’’’’’ƒ8’B’’’’’’’’’’’’’’’’’’’Ó8’(’’’’’’’’’’’’’’’’’’’9’8’’’’’’’’’’’’’’’’’’’C9’C’’’’’’’’’’’’’’’’’’’“9’B’’’’’’’’’’’’’’’’’’’ć9’’’’’’’’’’’’’’’’’’’’:’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#:’’’’’’’’’’’’’’’’’’’’S:’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’s:’8’’’’’’’’’’’’’’’’’’’³:’<’’’’’’’’’’’’’’’’’’’ó:’<’’’’’’’’’’’’’’’’’’’3;’<’’’’’’’’’’’’’’’’’’’s;’<’’’’’’’’’’’’’’’’’’’³;’<’’’’’’’’’’’’’’’’’’’ó;’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#<’*’’’’’’’’’’’’’’’’’’’S<’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“<’%’’’’’’’’’’’’’’’’’’’Ć<’A’’’’’’’’’’’’’’’’’’’=’A’’’’’’’’’’’’’’’’’’’> 1, 1, x screen size, y screen size - 1);’’’’’’’ show status line;’’’’’’’’’’’> edit (groesster editor, tecal tasten + std tasten,’’’’’’’’’’. PROC (TEXT CONST) tecal interpreter) .END PROC tecal;’’’’’’’’’’’’’’’.PROC tecal interpreter (TEXT CONST symbol) :’’ tecal file := editfile ;’’’’ nichts neu ;> INT VAR kommando := pos (operatorenliste,symbol);’’’’’’’’’’’ IF kommando > 0 THEN’’’’’’’’ normale rechenoperation’’> ELSE kommando := pos (funktionenliste,symbol);’’’’’’’’’’’’’’ sonderfunktion’’’’’’’’’’’normale rechenoperation :’’’’’> IF operand expected CAND keine klammer auf THEN’’’’’’’’’’’’’ zahl aufsammeln’’’’’’’’’’ push (kommando);’’’’’’’’’’’’ display value.’’’’’’’’’’’’’’.keine klammer auf : symbol <> "(".’’’’’’’’’’’’sonderfunktion :’’’’’’’’’’’’’’ SELECT kommando OF’’’’’’’’’’. CASE kommando prozent : do prozent’’’’’’’. CASE kommando clear : do clear’’’’’’’’’. CASE kommando einlesen : do get’’’’’’’’’’’. CASE kommando formel : do formelrechnung. CASE kommando ver sum : do spaltensumme’’. CASE kommando recall : do speicher lesen> CASE kommando lesen : do zahl aufsammeln’’’’’’’’’’’’’’’> CASE kommando store : do speicher schreiben’’’’’’’’’’’’> CASE kommando naechste : do zur naechsten zahl’’’’’’’’’’’’. CASE kommando q : quit’’’’’’’’’’’’’. CASE kommando runden : do runden’’’’’’’’. CASE kommando schreiben: do schreiben’’’’’> CASE kommando umschalt : do tecal abschalten’’’’’’’’’’’’’’> CASE kommando type : do type displayed value’’’’’’’’’’>(* CASE kommando hor sum : calculate ver sum*)’’’’’’’’’’’’’’> CASE kommando fenster : do fenster als zweiten operanden’>(* CASE kommando tab : calculate tab sum *)’’’’’’’’’’’’> CASE kommando help : do ("tecal auskunft")’’’’’’’’’’’’> OTHERWISE : std kommando interpreter (symbol) IF operand expected THEN’’’’ zahl aufsammeln’’’’’’’’’’. do (REAL PROC (REAL CONST) prozent);’’’’’’’’ display value.’’’’’’’’’’’’’’ ueberschrift neu;’’’’’’’’’’’ show status line.’’’’’’’’’’’ input buffer := "";’’’’’’’’’. get expression (input buffer);’’’’’’’’’’’’’’ IF input buffer > " " THEN’’ disable stop;’’’’’’’’’’’’ superklammer auf;’’’’’’’’ evaluate (input buffer);’ superklammer zu;’’’’’’’’’ show status line;’’’’’’’’ enable stop;’’’’’’’’’’’’’ show status line’’’’’’’’’do zahl aufsammeln :’’’’’’’’’’ zahl aufsammeln;’’’’’’’’’’’’ display value.’’’’’’’’’’’’’’do speicher schreiben :’’’’’’’ merke (result);’’’’’’’’’’’’’ show status line.’’’’’’’’’’’do type displayed value :’’’’’ set anzeigetext (result);’’’ push(compress(anzeigetext)).do speicher lesen :’’’’’’’’’’’ push (speicher);’’’’’’’’’’’’ display value.’’’’’’’’’’’’’’do spaltensumme :’’’’’’’’’’’’’ push (spaltensumme);’’’’’’’’ display value.’’’’’’’’’’’’’’do formelrechnung :’’’’’’’’’’’ dateizeile lesen;’’’’’’’’’’’ disable stop;’’’’’’’’’’’’ superklammer auf;’’’’’’’’ evaluate (record);’’’’’’’ superklammer zu;’’’’’’’’’ enable stop;’’’’’’’’’’’’’ display value;’’’’’’’’’’’’’’> IF enthaelt gleichzeichen CAND NOT empty THEN ’’’’’’’’’’’’’’. ergebnis dahinter schreiben ’’’’’’’’’’’’’ col (LENGTH record + 1)’’enthaelt gleichzeichen :’’’’’’. INT VAR gleichpos := pos (record,"=");’’’’’’ gleichpos > 0.’’’’’’’’’’’’’’ergebnis dahinter schreiben :’> record pos := gleichpos + 2 + decimal exponent (result);’’’’> gleich pos := pos (record, ".", recordpos + 1) -1;’’’’’’’’’’ IF gleichpos > 0 THEN’’’’’’’ record pos := gleichpos’’> ergebnis eintragen und dateizeile zurueckschreiben.’’’’’’’’’>ergebnis eintragen und dateizeile zurueckschreiben :’’’’’’’’’’N replace number (record, result, record pos, nachkommastellen);’’’’’’’’’’’’’’. write record (tecal file, record);’’’’’’’’’’ col (record pos).’’’’’’’’’’’do zur naechsten zahl :’’’’’’’ dateizeile lesen;’’’’’’’’’’’> record pos := pos (record,"0","9",record pos);’’’’’’’’’’’’’’ IF record pos = 0 THEN’’’’’’. record pos := LENGTH record + 1’’’’’’’’’’ col (record pos).’’’’’’’’’’’do schreiben : IF NOT empty THEN’’’’’’’’’’’ dateizeile lesen;’’’’’’’’> ergebnis eintragen und dateizeile zurueckschreiben’’’’’’’. IF NOT empty AND NOT operand expected THEN’’. do (REAL PROC (REAL CONST) runden)’’’’’’’.do fenster als zweiten operanden :’’’’’’’’’’’’ IF empty THEN ’’’’’’’’’’’’’’ push (0.0)’’’’’’’’’’’’’’’ push (result)’’’’’’’’’’’’do tecal abschalten :’’’’’’’’’ edit (tecalfile).’’’’’’’’’’’END PROC tecal interpreter;’’’.kommando auf taste legen ("t","tecal");’’’’’’’>(*kommando auf taste legen ("?","tecalauskunft");*)’’’’’’’’’’’END PACKET tecal functions; ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’c=’A’’’’’’’’’’’’’’’’’’’³=’A’’’’’’’’’’’’’’’’’’’>’A’’’’’’’’’’’’’’’’’’’S>’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£>’’’’’’’’’’’’’’’’’’’’Ć>’&’’’’’’’’’’’’’’’’’’’ó>’5’’’’’’’’’’’’’’’’’’’3?’!’’’’’’’’’’’’’’’’’’’c?’1’’’’’’’’’’’’’’’’’’’£?’F’’’’’’’’’’’’’’’’’’’ó?’$’’’’’’’’’’’’’’’’’’’#@’)’’’’’’’’’’’’’’’’’’’S@’/’’’’’’’’’’’’’’’’’’’“@’%’’’’’’’’’’’’’’’’’’’Ć@’4’’’’’’’’’’’’’’’’’’’A’?’’’’’’’’’’’’’’’’’’’SA’/’’’’’’’’’’’’’’’’’’’“A’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³A’!’’’’’’’’’’’’’’’’’’’ćA’0’’’’’’’’’’’’’’’’’’’#B’>’’’’’’’’’’’’’’’’’’’cB’?’’’’’’’’’’’’’’’’’’’³B’?’’’’’’’’’’’’’’’’’’’C’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’3C’’’’’’’’’’’’’’’’’’’’SC’8’’’’’’’’’’’’’’’’’’’“C’8’’’’’’’’’’’’’’’’’’’ÓC’8’’’’’’’’’’’’’’’’’’’D’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’CD’!’’’’’’’’’’’’’’’’’’’sD’0’’’’’’’’’’’’’’’’’’’³D’>’’’’’’’’’’’’’’’’’’’óD’8’’’’’’’’’’’’’’’’’’’3E’8’’’’’’’’’’’’’’’’’’’sE’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£E’’’’’’’’’’’’’’’’’’’’ĆE’"’’’’’’’’’’’’’’’’’’’óE’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#F’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’SF’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£F’’’’’’’’’’’’’’’’’’’’ĆF’!’’’’’’’’’’’’’’’’’’’óF’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’CG’’’’’’’’’’’’’’’’’’’’sG’’’’’’’’’’’’’’’’’’’’“G’#’’’’’’’’’’’’’’’’’’’ĆG’"’’’’’’’’’’’’’’’’’’’óG’%’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’#H’ ’’’’’’’’’’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’SH’’’’’’’’’’’’’’’’’’’’sH’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£H’’’’’’’’’’’’’’’’’’’’ĆH’’’’’’’’’’’’’’’’’’’’ćH’’’’’’’’’’’’’’’’’’’’I’=’’’’’’’’’’’’’’’’’’’CI’=’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒI’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³I’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’óI’’’’’’’’’’’’’’’’’’’’J’*’’’’’’’’’’’’’’’’’’’CJ’"’’’’’’’’’’’’’’’’’’’sJ’'’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’£J’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ÓJ’’’’’’’’’’’’’’’’’’’’óJ’0’’’’’’’’’’’’’’’’’’’3K’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’cK’’’’’’’’’’’’’’’’’’’’ƒK’&’’’’’’’’’’’’’’’’’’’³K’H’’’’’’’’’’’’’’’’’’’L’'’’’’’’’’’’’’’’’’’’’3L’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’sL’’’’’’’’’’’’’’’’’’’’“L’#’’’’’’’’’’’’’’’’’’’ĆL’'’’’’’’’’’’’’’’’’’’’óL’+’’’’’’’’’’’’’’’’’’’#M’*’’’’’’’’’’’’’’’’’’’SM’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’sM’!’’’’’’’’’’’’’’’’’’’£M’0’’’’’’’’’’’’’’’’’’’ćM’!’’’’’’’’’’’’’’’’’’’N’$’’’’’’’’’’’’’’’’’’’CN’Q’’’’’’’’’’’’’’’’’’’£N’#’’’’’’’’’’’’’’’’’’’ÓN’&’’’’’’’’’’’’’’’’’’’O’(’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’3O’’’’’’’’’’’’’’’’’’’’SO’/’’’’’’’’’’’’’’’’’’’“O’]’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’óO’’’’’’’’’’’’’’’’’’’’P’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’cP’’’’’’’’’’’’’’’’’’’’“P’L’’’’’’’’’’’’’’’’’’’ćP’\’’’’’’’’’’’’’’’’’’’CQ’*’’’’’’’’’’’’’’’’’’’sQ’C’’’’’’’’’’’’’’’’’’’ĆQ’3’’’’’’’’’’’’’’’’’’’R’-’’’’’’’’’’’’’’’’’’’3R’E’’’’’’’’’’’’’’’’’’’ƒR’5’’’’’’’’’’’’’’’’’’’ĆR’(’’’’’’’’’’’’’’’’’’’óR’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’S’)’’’’’’’’’’’’’’’’’’’CS’U’’’’’’’’’’’’’’’’’’’£S’'’’’’’’’’’’’’’’’’’’’ÓS’$’’’’’’’’’’’’’’’’’’’T’R’’’’’’’’’’’’’’’’’’’cT’=’’’’’’’’’’’’’’’’’’’£T’Y’’’’’’’’’’’’’’’’’’’U’=’’’’’’’’’’’’’’’’’’’CU’1’’’’’’’’’’’’’’’’’’’ƒU’:’’’’’’’’’’’’’’’’’’’ĆU’H’’’’’’’’’’’’’’’’’’’V’4’’’’’’’’’’’’’’’’’’’SV’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’sV’5’’’’’’’’’’’’’’’’’’’³V’8’’’’’’’’’’’’’’’’’’’óV’6’’’’’’’’’’’’’’’’’’’3W’5’’’’’’’’’’’’’’’’’’’sW’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“W’2’’’’’’’’’’’’’’’’’’’ÓW’?’’’’’’’’’’’’’’’’’’’#X’+’’’’’’’’’’’’’’’’’’’SX’+’’’’’’’’’’’’’’’’’’’ƒX’’’’’’’’’’’’’’’’’’’’£X’<’’’’’’’’’’’’’’’’’’’ćX’X’’’’’’’’’’’’’’’’’’’CY’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒY’+’’’’’’’’’’’’’’’’’’’³Y’2’’’’’’’’’’’’’’’’’’’óY’$’’’’’’’’’’’’’’’’’’’#Z’R’’’’’’’’’’’’’’’’’’’ƒZ’=’’’’’’’’’’’’’’’’’’’ĆZ’Y’’’’’’’’’’’’’’’’’’’#[’&’’’’’’’’’’’’’’’’’’’S[’1’’’’’’’’’’’’’’’’’’’“[’9’’’’’’’’’’’’’’’’’’’Ó[’[’’’’’’’’’’’’’’’’’’’3\’4’’’’’’’’’’’’’’’’’’’s\’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“\’4’’’’’’’’’’’’’’’’’’’Ó\’;’’’’’’’’’’’’’’’’’’’]’6’’’’’’’’’’’’’’’’’’’S]’5’’’’’’’’’’’’’’’’’’’“]’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³]’5’’’’’’’’’’’’’’’’’’’ó]’B’’’’’’’’’’’’’’’’’’’C^’+’’’’’’’’’’’’’’’’’’’s^’+’’’’’’’’’’’’’’’’’’’£^’’’’’’’’’’’’’’’’’’’’Ć^’<’’’’’’’’’’’’’’’’’’’_’X’’’’’’’’’’’’’’’’’’’c_’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’£_’’’’’’’’’’’’’’’’’’’’Ć_’’’’’’’’’’’’’’’’’’’’ó_’’’’’’’’’’’’’’’’’’’’`’&’’’’’’’’’’’’’’’’’’’C`’B’’’’’’’’’’’’’’’’’’’“`’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ć`’’’’’’’’’’’’’’’’’’’’ć`’C’’’’’’’’’’’’’’’’’’’3a’,’’’’’’’’’’’’’’’’’’’ca’6’’’’’’’’’’’’’’’’’’’£a’=’’’’’’’’’’’’’’’’’’’ća’6’’’’’’’’’’’’’’’’’’’#b’(’’’’’’’’’’’’’’’’’’’Sb’/’’’’’’’’’’’’’’’’’’’“b’"’’’’’’’’’’’’’’’’’’’Ćb’`’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’3c’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’cc’+’’’’’’’’’’’’’’’’’’’“c’9’’’’’’’’’’’’’’’’’’’Óc’Q’’’’’’’’’’’’’’’’’’’3d’;’’’’’’’’’’’’’’’’’’’sd’;’’’’’’’’’’’’’’’’’’’³d’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’Ód’’’’’’’’’’’’’’’’’’’’ód’’’’’’’’’’’’’’’’’’’’e’$’’’’’’’’’’’’’’’’’’’Ce’’’’’’’’’’’’’’’’’’’’ce’+’’’’’’’’’’’’’’’’’’’“e’&’’’’’’’’’’’’’’’’’’’Će’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’f’’’’’’’’’’’’’’’’’’’’3f’.’’’’’’’’’’’’’’’’’’’cf’>’’’’’’’’’’’’’’’’’’’£f’)’’’’’’’’’’’’’’’’’’’Óf’(’’’’’’’’’’’’’’’’’’’g’#’’’’’’’’’’’’’’’’’’’3g’-’’’’’’’’’’’’’’’’’’’cg’e’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’Óg’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’h’,’’’’’’’’’’’’’’’’’’’Ch’<’’’’’’’’’’’’’’’’’’’ƒh’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Óh’#’’’’’’’’’’’’’’’’’’’i’I’’’’’’’’’’’’’’’’’’’Si’5’’’’’’’’’’’’’’’’’’’“i’;’’’’’’’’’’’’’’’’’’’Ói’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ói’)’’’’’’’’’’’’’’’’’’’#j’=’’’’’’’’’’’’’’’’’’’cj’<’’’’’’’’’’’’’’’’’’’£j’H’’’’’’’’’’’’’’’’’’’ój’B’’’’’’’’’’’’’’’’’’’Ck’’’’’’’’’’’’’’’’’’’’ck’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£k’%’’’’’’’’’’’’’’’’’’’Ók’*’’’’’’’’’’’’’’’’’’’l’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#l’’’’’’’’’’’’’’’’’’’’Cl’3’’’’’’’’’’’’’’’’’’’ƒl’’’’’’’’’’’’’’’’’’’’£l’’’’’’’’’’’’’’’’’’’’Ćl’’’’’’’’’’’’’’’’’’’’ćl’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’m’’’’’’’’’’’’’’’’’’’’#m’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Sm’’’’’’’’’’’’’’’’’’’’sm’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£m’’’’’’’’’’’’’’’’’’’’Ćm’"’’’’’’’’’’’’’’’’’’’óm’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’3n’’’’’’’’’’’’’’’’’’’’Sn’’’’’’’’’’’’’’’’’’’’ƒn’Y’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ćn’*’’’’’’’’’’’’’’’’’’’o’.’’’’’’’’’’’’’’’’’’’Co’g’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³o’*’’’’’’’’’’’’’’’’’’’ćo’’’’’’’’’’’’’’’’’’’’p’g’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’sp’’’’’’’’’’’’’’’’’’’’“p’’’’’’’’’’’’’’’’’’’’³p’T’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’q’*’’’’’’’’’’’’’’’’’’’Cq’+’’’’’’’’’’’’’’’’’’’sq’’’’’’’’’’’’’’’’’’’’“q’G’’’’’’’’’’’’’’’’’’’ćq’3’’’’’’’’’’’’’’’’’’’#r’P’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ƒr’3’’’’’’’’’’’’’’’’’’’Ćr’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ór’’’’’’’’’’’’’’’’’’’’s’’’’’’’’’’’’’’’’’’’’#s’5’’’’’’’’’’’’’’’’’’’cs’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒs’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£s’[’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’t’’’’’’’’’’’’’’’’’’’’#t’’’’’’’’’’’’’’’’’’’’Ct’,’’’’’’’’’’’’’’’’’’’st’7’’’’’’’’’’’’’’’’’’’³t’’’’’’’’’’’’’’’’’’’’P@’’@’’’’’’’’’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’TeCal Auskunft’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’X’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`€`€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įäa€ė’’’’’’’’’’’’’’’’’’’’’’’’‚>M’’’’a€-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’(*’’’’’’’’’’’’’’’’’’’q€’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į€’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’B’’’’’’’’’’’’’’’’’’’Į’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1‚’D’’’’’’’’’’’’’’’’’’’‚’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‚’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‚’4’’’’’’’’’’’’’’’’’’’1ƒ’A’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ƒ’'’’’’’’’’’’’’’’’’’’’у’+’’’’’’’’’’’’’’’’’’’„’-’’’’’’’’’’’’’’’’’’’1„’)’’’’’’’’’’’’’’’’’’’a„’*’’’’’’’’’’’’’’’’’’’‘„’)’’’’’’’’’’’’’’’’’’’Į„’.’’’’’’’’’’’’’’’’’’’ń„’.’’’’’’’’’’’’’’’’’’’!…’-’’’’’’’’’’’’’’’’’’’Q…’&’’’’’’’’’’’’’’’’’’’…’2’’’’’’’’’’’’’’’’’’’Į…’/’’’’’’’’’’’’’’’’’’’†’+’’’’’’’’’’’’’’’’’’’1†’?’’’’’’’’’’’’’’’’’’’†’.’’’’’’’’’’’’’’’’’’’±†’%’’’’’’’’’’’’’’’’’’’ᆒ2’’’’’’’’’’’’’’’’’’’!‡’%’’’’’’’’’’’’’’’’’’’Q‡’=’’’’’’’’’’’’’’’’’’’‘‡’5’’’’’’’’’’’’’’’’’’’ч’'’’’’’’’’’’’’’’’’’’’ˆ’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aˆ’E’’’’’’’’’’’’’’’’’’’‘ˆ’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ሒ2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‰’=’’’’’’’’’’’’’’’’’’’a‰’=’’’’’’’’’’’’’’’’’’’”‰’D’’’’’’’’’’’’’’’’’’’ń‰’A’’’’’’’’’’’’’’’’’’’AŠ’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Š’9’’’’’’’’’’’’’’’’’’’ĮŠ’B’’’’’’’’’’’’’’’’’’’‹’B’’’’’’’’’’’’’’’’’’’a‹’A’’’’’’’’’’’’’’’’’’’±‹’?’’’’’’’’’’’’’’’’’’’Œ’@’’’’’’’’’’’’’’’’’’’QŒ’C’’’’’’’’’’’’’’’’’’’”Œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŒ’E’’’’’’’’’’’’’’’’’’’’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’B’’’’’’’’’’’’’’’’’’’į’B’’’’’’’’’’’’’’’’’’’1Ž’@’’’’’’’’’’’’’’’’’’’Ž’A’’’’’’’’’’’’’’’’’’’ю’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŽ’A’’’’’’’’’’’’’’’’’’’A’A’’’’’’’’’’’’’’’’’’’‘’E’’’’’’’’’’’’’’’’’’’į’E’’’’’’’’’’’’’’’’’’’1’C’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’E’’’’’’’’’’’’’’’’’’’ń’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‘’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q‘’A’’’’’’’’’’’’’’’’’’’Į‘’B’’’’’’’’’’’’’’’’’’’’’@’’’’’’’’’’’’’’’’’’’a’’A’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ђ’9’’’’’’’’’’’’’’’’’’’“’?’’’’’’’’’’’’’’’’’’’a“’B’’’’’’’’’’’’’’’’’’’±“’A’’’’’’’’’’’’’’’’’’’”’?’’’’’’’’’’’’’’’’’’’Q”’<’’’’’’’’’’’’’’’’’’’‘”’C’’’’’’’’’’’’’’’’’’’į”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’•’E’’’’’’’’’’’’’’’’’’’Q•’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į•’C’’’’’’’’’’’’’’’’’’’–’D’’’’’’’’’’’’’’’’’’’a–’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±–’E’’’’’’’’’’’’’’’’’’’—’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q—’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘—’D’’’’’’’’’’’’’’’’’’’į—’?’’’’’’’’’’’’’’’’’’’1˜’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’˜’E’’’’’’’’’’’’’’’’’’’ј’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!™’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A™’A’’’’’’’’’’’’’’’’’’’‘™’B’’’’’’’’’’’’’’’’’’’į™’C’’’’’’’’’’’’’’’’’’’1š’A’’’’’’’’’’’’’’’’’’’š’D’’’’’’’’’’’’’’’’’’’њ’B’’’’’’’’’’’’’’’’’’’!›’8’’’’’’’’’’’’’’’’’’’a›’F’’’’’’’’’’’’’’’’’’’±›’F’’’’’’’’’’’’’’’’’’’œ’C’’’’’’’’’’’’’’’’’’’Qœ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’œ’C’’’’’’’’’’’’’’’’’’’ќ’D’’’’’’’’’’’’’’’’’’’!’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’E’’’’’’’’’’’’’’’’’’’±’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ž’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ž’E’’’’’’’’’’’’’’’’’’’ž’D’’’’’’’’’’’’’’’’’’’ў’E’’’’’’’’’’’’’’’’’’’!Ÿ’=’’’’’’’’’’’’’’’’’’’aŸ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ÿ’C’’’’’’’’’’’’’’’’’’’្D’’’’’’’’’’’’’’’’’’’1 ’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q ’E’’’’’’’’’’’’’’’’’’’Į ’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A”’?’’’’’’’’’’’’’’’’’’’‘”’C’’’’’’’’’’’’’’’’’’’į”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’4’’’’’’’’’’’’’’’’’’’A¢’D’’’’’’’’’’’’’’’’’’’‘¢’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń¢’E’’’’’’’’’’’’’’’’’’’!£’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q£’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘£’C’’’’’’’’’’’’’’’’’’’ᣒ@’’’’’’’’’’’’’’’’’’’1¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q¤’E’’’’’’’’’’’’’’’’’’’”¤’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’„’A’’’’’’’’’’’’’’’’’’’a„’9’’’’’’’’’’’’’’’’’’’”„’?’’’’’’’’’’’’’’’’’’’ń„’?’’’’’’’’’’’’’’’’’’’A¦’D’’’’’’’’’’’’’’’’’’’‘¦’>’’’’’’’’’’’’’’’’’’’Ѧ’=’’’’’’’’’’’’’’’’’’’§’C’’’’’’’’’’’’’’’’’’’a§’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘§’4’’’’’’’’’’’’’’’’’’’ѧ’D’’’’’’’’’’’’’’’’’’’!Ø’<’’’’’’’’’’’’’’’’’’’aØ’D’’’’’’’’’’’’’’’’’’’±Ø’D’’’’’’’’’’’’’’’’’’’©’$’’’’’’’’’’’’’’’’’’’1©’D’’’’’’’’’’’’’’’’’’’©’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į©’E’’’’’’’’’’’’’’’’’’’Ŗ’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ŗ’>’’’’’’’’’’’’’’’’’’’ĮŖ’<’’’’’’’’’’’’’’’’’’’«’;’’’’’’’’’’’’’’’’’’’A«’>’’’’’’’’’’’’’’’’’’’«’D’’’’’’’’’’’’’’’’’’’Ń«’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¬’?’’’’’’’’’’’’’’’’’’’a¬’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±¬’E’’’’’’’’’’’’’’’’’’’­’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q­’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’­’?’’’’’’’’’’’’’’’’’’’Ń­’B’’’’’’’’’’’’’’’’’’’!®’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a®’E’’’’’’’’’’’’’’’’’’’±®’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Æ’@’’’’’’’’’’’’’’’’’’’Æ’B’’’’’’’’’’’’’’’’’’’ŃÆ’6’’’’’’’’’’’’’’’’’’’°’C’’’’’’’’’’’’’’’’’’’a°’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±°’E’’’’’’’’’’’’’’’’’’’±’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q±’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’@’’’’’’’’’’’’’’’’’’’ѱ’A’’’’’’’’’’’’’’’’’’’!²’H’’’’’’’’’’’’’’’’’’’q²’D’’’’’’’’’’’’’’’’’’’Į²’@’’’Ót’4’’’’’’’’’’’’’’’’’’’u’’’’’’’’’’’’’’’’’’’’3u’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Su’'’’’’’’’’’’’’’’’’’’’ƒu’’’’’’’’’’’’’’’’’’’’£u’(’’’’’’’’’’’’’’’’’’’Óu’’’’’’’’’’’’’’’’’’’’v’’’’’’’’’’’’’’’’’’’’#v’L’’’’’’’’’’’’’’’’’’’sv’(’’’’’’’’’’’’’’’’’’’£v’3’’’’’’’’’’’’’’’’’’’ćv’’’’’’’’’’’’’’’’’’’’w’’’’’’’’’’’’’’’’’’’’#w’0’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’cw’’’’’’’’’’’’’’’’’’’’ƒw’’’’’’’’’’’’’’’’’’’’£w’9’’’’’’’’’’’’’’’’’’’ćw’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’x’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’3x’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒx’’’’’’’’’’’’’’’’’’’’£x’’’’’’’’’’’’’’’’’’’’Ćx’’’’’’’’’’’’’’’’’’’’ćx’%’’’’’’’’’’’’’’’’’’’y’0’’’’’’’’’’’’’’’’’’’Sy’’’’’’’’’’’’’’’’’’’’sy’ ’’’’’’’’’’’’’’’’’’’£y’-’’’’’’’’’’’’’’’’’’’Óy’&’’’’’’’’’’’’’’’’’’’z’’’’’’’’’’’’’’’’’’’’#z’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Cz’’’’’’’’’’’’’’’’’’’’cz’’’’’’’’’’’’’’’’’’’’ƒz’9’’’’’’’’’’’’’’’’’’’Ćz’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ćz’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’{’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’S{’’’’’’’’’’’’’’’’’’’’s{’’’’’’’’’’’’’’’’’’’’“{’(’’’’’’’’’’’’’’’’’’’Ć{’’’’’’’’’’’’’’’’’’’’ć{’%’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’|’!’’’’’’’’’’’’’’’’’’’C|’’’’’’’’’’’’’’’’’’’’c|’/’’’’’’’’’’’’’’’’’’’£|’’’’’’’’’’’’’’’’’’’’Ć|’’’’’’’’’’’’’’’’’’’’ć|’.’’’’’’’’’’’’’’’’’’’}’’’’’’’’’’’’’’’’’’’’3}’$’’’’’’’’’’’’’’’’’’’c}’$’’’’’’’’’’’’’’’’’’’“}’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’³}’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ó}’!’’’’’’’’’’’’’’’’’’’#~’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’s~’2’’’’’’’’’’’’’’’’’’’³~’4’’’’’’’’’’’’’’’’’’’ó~’$’’’’’’’’’’’’’’’’’’’#’.’’’’’’’’’’’’’’’’’’’S’Q’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ó’2’’’’’’’’’’’’’’’’’’’€’6’’’’’’’’’’’’’’’’’’’S€’.’’’’’’’’’’’’’’’’’’’ƒ€’Q’’’’’’’’’’’’’’’’’’’怒’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#’ ’’’’’’’’’’’’’’’’’’’S’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’Ɓ’’’’’’’’’’’’’’’’’’’’恒’’’’’’’’’’’’’’’’’’’‚’'’’’’’’’’’’’’’’’’’’’3‚’L’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’ƒ‚’-’’’’’’’’’’’’’’’’’’’³‚’0’’’’’’’’’’’’’’’’’’’ó‚’5’’’’’’’’’’’’’’’’’’’3ƒ’7’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’ PER;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’sƒ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£ƒ’/’’’’’’’’’’’’’’’’’’’惒9’’’’’’’’’’’’’’’’’’’#„’B’’’’’’’’’’’’’’’’’’’s„’’’’’’’’’’’’’’’’’’’’“„’%’’’’’’’’’’’’’’’’’’’Ƅ’M’’’’’’’’’’’’’’’’’’’…’L’’’’’’’’’’’’’’’’’’’c…’’’’’’’’’’’’’’’’’’’’ƒ…’4’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƅ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ó…’ ’’’’’’’’’’’’’’’’’’’#†’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’s†’’’’’’’’’’’’’’’’’’’’“†’’’’’’’’’’’’’’’’’’’’³†’0’’’’’’’’’’’’’’’’’’’ó†’5’’’’’’’’’’’’’’’’’’’3‡’7’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’ PER;’’’’’’’’’’’’s‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“‡’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ƈ’/’’’’’’’’’’’’’’’’’’’ˆ’9’’’’’’’’’’’’’’’’’’’Cˆ’C’’’’’’’’’’’’’’’’’’’“ˆ’1’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ӈ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’#‰’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’s‰’’’’’’’’’’’’’’’’’’’’“‰’’’’’’’’’’’’’’’’’’’’³‰’B’’’’’’’’’’’’’’’’’’’Š’#’’’’’’’’’’’’’’’’’’’3Š’.’’’’’’’’’’’’’’’’’’’cŠ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒŠ’’’’’’’’’’’’’’’’’’’’£Š’’’’’’’’’’’’’’’’’’’’Ê’ ’’’’’’’’’’’’’’’’’’’óŠ’’’’’’’’’’’’’’’’’’’’‹’'’’’’’’’’’’’’’’’’’’’C‹’’’’’’’’’’’’’’’’’’’’c‹’+’’’’’’’’’’’’’’’’’’’“‹’Q’’’’’’’’’’’’’’’’’’’ó‹’’’’’’’’’’’’’’’’’’’’Œ’Q’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’sŒ’’’’’’’’’’’’’’’’’’’’“Œ’’’’’’’’’’’’’’’’’’’’³Œ’:’’’’’’’’’’’’’’’’’’’󌒒’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’S’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£’1’’’’’’’’’’’’’’’’’’’ć’5’’’’’’’’’’’’’’’’’’’#Ž’’’’’’’’’’’’’’’’’’’’CŽ’*’’’’’’’’’’’’’’’’’’’sŽ’8’’’’’’’’’’’’’’’’’’’³Ž’A’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’S’)’’’’’’’’’’’’’’’’’’’ƒ’)’’’’’’’’’’’’’’’’’’’³’0’’’’’’’’’’’’’’’’’’’󏒒’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’C’'’’’’’’’’’’’’’’’’’’’s’S’’’’’’’’’’’’’’’’’’’Ӑ’"’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’3‘’’’’’’’’’’’’’’’’’’’’S‘’$’’’’’’’’’’’’’’’’’’’ƒ‘’P’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ć‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’3’’G’’’’’’’’’’’’’’’’’’’ƒ’’R’’’’’’’’’’’’’’’’’’’ć’’S’’’’’’’’’’’’’’’’’’’C“’’’’’’’’’’’’’’’’’’’’c“’’’’’’’’’’’’’’’’’’’’ƒ“’4’’’’’’’’’’’’’’’’’’’Ɠ’'’’’’’’’’’’’’’’’’’’’ó“’’’’’’’’’’’’’’’’’’’’”’i’’’’’’’’’’’’’’’’’’’ƒ”’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³”’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ć”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’•’;’’’’’’’’’’’’’’’’’’’C•’V’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ enable stop;’’’’’’’’’£•’’’’’’’’’’’’’’’’’’’’’’ gib cr aus;’’’’’’’’’’ƕ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ć•’’’’’’’’’’’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’3–’)’’’’’’’’’’’’’’’’’’’c–’M’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’³–’#’’’’’’’’’’’’’’’’’’’ć–’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#—’’’’’’’’’’’’’’’’’’’’3—’’’’’’’’’’’’’’’’’’’’S—’5’’’’’’’’’’’’’’’’’’’“—’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³—’’’’’’’’’’’’’’’’’’’’ӗ’’’’’’’’’’’’’’’’’’’’ó—’"’’’’’’’’’’’’’’’’’’’#˜’’’’’’’’’’’’’’’’’’’’C˜’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’c˜’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ˜’6’’’’’’’’’’’’’’’’’’’Ƙ’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’™’+’’’’’’’’’’’’’’’’’’’C™’’’’’’’’’’’’’’’’’’’’c™’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ™’’’’’’’’’’’’’’’’’’’’£™’$’’’’’’’’’’’’’’’’’’’ә’’’’’’’’’’’’’’’’’’’’ó™’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’3š’’’’’’’’’’’’’’’’’’’’Sš’’’’’’’’’’’’’’’’’’’’sš’’’’’’’’’’’’’’’’’’’’“š’"’’’’’’’’’’’’’’’’’’’Ú’’’’’’’’’’’’’’’’’’’’㚒’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’#›’R’’’’’’’’’’’’’’’’’’’ƒ›’E’’’’’’’’’’’’’’’’’’’ӛ’’’’’’’’’’’’’’’’’’’’ó›’"’’’’’’’’’’’’’’’’’’’#œ’4’’’’’’’’’’’’’’’’’’’cœ’-’’’’’’’’’’’’’’’’’’’“œ’-’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’Ü’’’’’’’’’’’’’’’’’’’’㜒3’’’’’’’’’’’’’’’’’’’#’,’’’’’’’’’’’’’’’’’’’S’,’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’Ɲ’#’’’’’’’’’’’’’’’’’’’ó’5’’’’’’’’’’’’’’’’’’’3ž’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’cž’%’’’’’’’’’’’’’’’’’’’“ž’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƞ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ćž’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’3Ÿ’2’’’’’’’’’’’’’’’’’’’sŸ’2’’’’’’’’’’’’’’’’’’’³Ÿ’8’’’’’’’’’’’’’’’’’’’óŸ’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’C ’)’’’’’’’’’’’’’’’’’’’s ’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’’’ elan fuss :’’’’’’’’£ ’’’’’’’’’’’’’’’’’’’’Ć ’’’’’’’’’’’’’’’’’’’’ć ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’#”’.’’’’’’’’’’’’’’’’’’’S”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’³’C’’’’’’’’’’’’’’’’’’’a³’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³’A’’’’’’’’’’’’’’’’’’’ѳ’A’’’’’’’’’’’’’’’’’’’!“’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q“’E’’’’’’’’’’’’’’’’’’’”“’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń“’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’µ’B’’’’’’’’’’’’’’’’’’’aµ’C’’’’’’’’’’’’’’’’’’’±µ’C’’’’’’’’’’’’’’’’’’’¶’@’’’’’’’’’’’’’’’’’’’Q¶’>’’’’’’’’’’’’’’’’’’’‘¶’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±¶’=’’’’’’’’’’’’’’’’’’’ń¶’’’’’’’’’’’’’’’’’’’’·’4’’’’’’’’’’’’’’’’’’’Q·’D’’’’’’’’’’’’’’’’’’’”·’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į·’E’’’’’’’’’’’’’’’’’’’1ø’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ø’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ø’A’’’’’’’’’’’’’’’’’’’¹’E’’’’’’’’’’’’’’’’’’’Q¹’B’’’’’’’’’’’’’’’’’’’”¹’<’’’’’’’’’’’’’’’’’’’į¹’@’’’’’’’’’’’’’’’’’’’1ŗ’D’’’’’’’’’’’’’’’’’’’ŗ’C’’’’’’’’’’’’’’’’’’’Ńŗ’C’’’’’’’’’’’’’’’’’’’!»’8’’’’’’’’’’’’’’’’’’’a»’A’’’’’’’’’’’’’’’’’’’±»’B’’’’’’’’’’’’’’’’’’’¼’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¼’@’’’’’’’’’’’’’’’’’’’q¼’>’’’’’’’’’’’’’’’’’’’±¼’D’’’’’’’’’’’’’’’’’’’½’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q½’E’’’’’’’’’’’’’’’’’’’”½’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń½’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1¾’;’’’’’’’’’’’’’’’’’’’q¾’C’’’’’’’’’’’’’’’’’’’Į¾’@’’’’’’’’’’’’’’’’’’’æ’A’’’’’’’’’’’’’’’’’’’aæ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’æ’A’’’’’’’’’’’’’’’’’’’Ńæ’?’’’’’’’’’’’’’’’’’’’!Ą’A’’’’’’’’’’’’’’’’’’’qĄ’D’’’’’’’’’’’’’’’’’’’ĮĄ’<’’’’’’’’’’’’’’’’’’’Į’?’’’’’’’’’’’’’’’’’’’QĮ’@’’’’’’’’’’’’’’’’’’’”Į’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĮ’E’’’’’’’’’’’’’’’’’’’1Ā’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮĀ’<’’’’’’’’’’’’’’’’’’’Ć’G’’’’’’’’’’’’’’’’’’’QĆ’@’’’’’’’’’’’’’’’’’’’”Ć’A’’’’’’’’’’’’’’’’’’’ńĆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ä’A’’’’’’’’’’’’’’’’’’’aÄ’?’’’’’’’’’’’’’’’’’’’±Ä’A’’’’’’’’’’’’’’’’’’’Å’D’’’’’’’’’’’’’’’’’’’QÅ’<’’’’’’’’’’’’’’’’’’’‘Å’?’’’’’’’’’’’’’’’’’’’įÅ’@’’’’’’’’’’’’’’’’’’’1Ę’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qĘ’E’’’’’’’’’’’’’’’’’’’ĮĘ’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ē’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĒ’:’’’’’’’’’’’’’’’’’’’Ē’I’’’’’’’’’’’’’’’’’’’ŃĒ’@’’’’’’’’’’’’’’’’’’’!Č’A’’’’’’’’’’’’’’’’’’’qČ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Č’A’’’’’’’’’’’’’’’’’’’įČ’?’’’’’’’’’’’’’’’’’’’1É’A’’’’’’’’’’’’’’’’’’’É’D’’’’’’’’’’’’’’’’’’’ŃÉ’<’’’’’’’’’’’’’’’’’’’Ź’?’’’’’’’’’’’’’’’’’’’aŹ’@’’’’’’’’’’’’’’’’’’’±Ź’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŹ’E’’’’’’’’’’’’’’’’’’’AĖ’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ė’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮĖ’D’’’’’’’’’’’’’’’’’’’Ģ’E’’’’’’’’’’’’’’’’’’’aĢ’?’’’’’’’’’’’’’’’’’’’±Ģ’A’’’’’’’’’’’’’’’’’’’Ķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ķ’A’’’’’’’’’’’’’’’’’’’qĶ’?’’’’’’’’’’’’’’’’’’’ĮĶ’A’’’’’’’’’’’’’’’’’’’Ī’D’’’’’’’’’’’’’’’’’’’aĪ’<’’’’’’’’’’’’’’’’’’’”Ī’?’’’’’’’’’’’’’’’’’’’ńĪ’@’’’’’’’’’’’’’’’’’’’AĻ’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ļ’E’’’’’’’’’’’’’’’’’’’ŃĻ’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŠ’;’’’’’’’’’’’’’’’’’’’Š’6’’’’’’’’’’’’’’’’’’’ĮŠ’9’’’’’’’’’’’’’’’’’’’Ń’B’’’’’’’’’’’’’’’’’’’QŃ’?’’’’’’’’’’’’’’’’’’’”Ń’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŃ’A’’’’’’’’’’’’’’’’’’’AŅ’?’’’’’’’’’’’’’’’’’’’‘Ņ’A’’’’’’’’’’’’’’’’’’’įŅ’D’’’’’’’’’’’’’’’’’’’1Ó’<’’’’’’’’’’’’’’’’’’’qÓ’?’’’’’’’’’’’’’’’’’’’ĮÓ’@’’’’’’’’’’’’’’’’’’’Ō’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŌ’D’’’’’’’’’’’’’’’’’’’’’*)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ō’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įŌ’J’’’’’’’’’’’’’’’’’’’1Õ’J’’’’’’’’’’’’’’’’’’’Õ’J’’’’’’’’’’’’’’’’’’’ŃÕ’J’’’’’’’’’’’’’’’’’’’!Ö’J’’’’’’’’’’’’’’’’’’’qÖ’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮÖ’(’’’’’’’’’’’’’’’’’’’ńÖ’'’’’’’’’’’’’’’’’’’’’!×’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q×’!’’’’’’’’’’’’’’’’’’’×’!’’’’’’’’’’’’’’’’’’’±×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń×’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ų’’’’’’’’’’’’’’’’’’’’AŲ’’’’’’’’’’’’’’’’’’’’aŲ’’’’’’’’’’’’’’’’’’’’Ų’’’’’’’’’’’’’’’’’’’’”Ų’’’’’’’’’’’’’’’’’’’’ĮŲ’’’’’’’’’’’’’’’’’’’’įŲ’#’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’Ł’!’’’’’’’’’’’’’’’’’’’AŁ’’’’’’’’’’’’’’’’’’’’QŁ’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŁ’’’’’’’’’’’’’’’’’’’’Ł’’’’’’’’’’’’’’’’’’’’”Ł’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŁ’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ś’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ś’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŚ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ś’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ś’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įŚ’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ū’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŪ’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŪ’"’’’’’’’’’’’’’’’’’’’”Ū’'’’’’’’’’’’’’’’’’’’’ŃŪ’’’’’’’’’’’’’’’’’’’’ńŪ’(’’’’’’’’’’’’’’’’’’’!Ü’’’’’’’’’’’’’’’’’’’’AÜ’’’’’’’’’’’’’’’’’’’’aÜ’’’’’’’’’’’’’’’’’’’’Ü’’’’’’’’’’’’’’’’’’’’”Ü’4’’’’’’’’’’’’’’’’’’’įÜ’’’’’’’’’’’’’’’’’’’’Ż’(’’’’’’’’’’’’’’’’’’’1Ż’’’’’’’’’’’’’’’’’’’’QŻ’’’’’’’’’’’’’’’’’’’’qŻ’’’’’’’’’’’’’’’’’’’’‘Ż’’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ż’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŻ’'’’’’’’’’’’’’’’’’’’’ńŻ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’!Ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŽ’’’’’’’’’’’’’’’’’’’’aŽ’’’’’’’’’’’’’’’’’’’’Ž’>’’’’’’’’’’’’’’’’’’’ĮŽ’R’’’’’’’’’’’’’’’’’’’!ß’’’’’’’’’’’’’’’’’’’’Aß’’’’’’’’’’’’’’’’’’’’aß’%’’’’’’’’’’’’’’’’’’’‘ß’&’’’’’’’’’’’’’’’’’’’Įß’’’’’’’’’’’’’’’’’’’’įß’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’ą’#’’’’’’’’’’’’’’’’’’’1ą’D’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’”ą’;’’’’’’’’’’’’’’’’’’’įą’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1į’’’’’’’’’’’’’’’’’’’’Qį’’’’’’’’’’’’’’’’’’’’qį’’’’’’’’’’’’’’’’’’’’‘į’’’’’’’’’’’’’’’’’’’’±į’ ’’’’’’’’’’’’’’’’’’’įį’’’’’’’’’’’’’’’’’’’’ā’C’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’Qā’’’’’’’’’’’’’’’’’’’’qā’"’’’’’’’’’’’’’’’’’’’”ā’’’’’’’’’’’’’’’’’’’’Įā’’’’’’’’’’’’’’’’’’’’įā’’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’!ć’ ’’’’’’’’’’’’’’’’’’’Qć’’’’’’’’’’’’’’’’’’’’ć’!’’’’’’’’’’’’’’’’’’’±ć’’’’’’’’’’’’’’’’’’’’Ńć’?’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’!ä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aä’+’’’’’’’’’’’’’’’’’’’qä’’’’’’’’’’’’’’’’’’’’‘ä’’’’’’’’’’’’’’’’’’’’”ä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įä’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’s”’0’’’’’’’’’’’’’’’’’’’³”’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’#¢’’’’’’’’’’’’’’’’’’’’C¢’’’’’’’’’’’’’’’’’’’’c¢’&’’’’’’’’’’’’’’’’’’’“¢’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’³¢’*’’’’’’’’’’’’’’’’’’’㢒’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’#£’Z’’’’’’’’’’’’’’’’’’’ƒ£’’’’’’’’’’’’’’’’’’’’££’V’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’#¤’’’’’’’’’’’’’’’’’’’’C¤’+’’’’’’’’’’’’’’’’’’’s¤’F’’’’’’’’’’’’’’’’’’’Ƥ’T’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’C„’’’’’’’’’’’’’’’’’’’’c„’.’’’’’’’’’’’’’’’’’’’“„’’’’’’’’’’’’’’’’’’’’³„’(’’’’’’’’’’’’’’’’’’’ć„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’’’ elan kopf :’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’#¦’’’’’’’’’’’’’’’’’’’’C¦’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’c¦’’’’’’’’’’’’’’’’’’’’ƒ¦’ ’’’’’’’’’’’’’’’’’’’³¦’ ’’’’’’’’’’’’’’’’’’’榒"’’’’’’’’’’’’’’’’’’’§’@’’’’’’’’’’’’’’’’’’’c§’’’’’’’’’’’’’’’’’’’’ƒ§’’’’’’’’’’’’’’’’’’’’£§’*’’’’’’’’’’’’’’’’’’’Ó§’*’’’’’’’’’’’’’’’’’’’Ø’"’’’’’’’’’’’’’’’’’’’3Ø’(’’’’’’’’’’’’’’’’’’’cØ’’’’’’’’’’’’’’’’’’’’ƒØ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£Ø’’’’’’’’’’’’’’’’’’’’ĆØ’’’’’’’’’’’’’’’’’’’’óØ’H’’’’’’’’’’’’’’’’’’’C©’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“©’’’’’’’’’’’’’’’’’’’’³©’’’’’’’’’’’’’’’’’’’’ć©’’’’’’’’’’’’’’’’’’’’Ŗ’ ’’’’’’’’’’’’’’’’’’’3Ŗ’’’’’’’’’’’’’’’’’’’’SŖ’+’’’’’’’’’’’’’’’’’’’ƒŖ’F’’’’’’’’’’’’’’’’’’’ÓŖ’T’’’’’’’’’’’’’’’’’’’3«’P’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³«’U’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¬’K’’’’’’’’’’’’’’’’’’’c¬’’’’’’’’’’’’’’’’’’’’ƒ¬’5’’’’’’’’’’’’’’’’’’’Ƭ’P’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#­’’’’’’’’’’’’’’’’’’’’C­’’’’’’’’’’’’’’’’’’’’c­’’’’’’’’’’’’’’’’’’’’ƒ­’"’’’’’’’’’’’’’’’’’’’³­’/’’’’’’’’’’’’’’’’’’’ó­’’’’’’’’’’’’’’’’’’’’®’ ’’’’’’’’’’’’’’’’’’’C®’ ’’’’’’’’’’’’’’’’’’’s®’’’’’’’’’’’’’’’’’’’’“®’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³®’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ó®’"’’’’’’’’’’’’’’’’’’’Æ’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ gib cr aus;’’’’’’’’’’’’ gib lf aus;’’’’’’’’’’cÆ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“Æ’’’’’’’’’’’’’’’’’’’’£Æ’-’’’’’’’’’’’’’’’’’’’ÓÆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’óÆ’’’’’’’’’’’’’’’’’’’’°’(’’’’’’’’’’’’’’’’’’’3°’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£°’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’eumel printer.5’’’’’’’’’’’’’’’.'’’’’’’’NPACKET eumel printer (* Autor : Rudolf Ruland *)’’N (* Version : 5 *)’’N (* Stand : 25.04.88 *)’’ DEFINES print, ’’’’’’’’. with elan listings,’’’’’’’’’’’’ is elan source,. bottom label for elan listings, x pos,’’’’’’’’’ y pos,’’’’’’’’’ y offset index, line type,’’’’’ material,’’’’’’ pages printed,’^(* >>> ***************************************************************** <<< *)’’’’’’’’’’’’’’’^(* >>> Aus KompatibilitŁtsgrŪnden zur Textverarbeitung der Version 1.8.0 <<< *)’’’’’’’’’’’’’’’^(* >>> siehe bei 'Berechnung des Zeilenvorschubs' <<< *)’’’’’’’’’’’’’’’ old linefeed :’.BOOL VAR old linefeed calculation := TRUE;’’’’nPROC old linefeed (BOOL CONST value) : old linefeed calculation := value END PROC old linefeed;’’’’’’’’’’’’’’’NBOOL PROC old linefeed : old linefeed calculation END PROC old linefeed;’’’’’’^(* >>> ***************************************************************** <<< *)’’’’’’’’’’’’’’’.INT CONST int length := length of one int;’’. length of one int :’’’’’’’’’> INT VAR int counter := 0, int value := max int;’’’’’’’’’’’ REP int counter INCR 1;’’’. int value := int value DIV 256;’’’’’ UNTIL int value = 0 PER;’’ int counter’’’’’’’’’’’’’’’^(* >>> ***************************************************************** <<< *)’’’’’’’’’’’’’’’.LET std x wanted = 2.54,’’’. std y wanted = 2.35,’’’. std limit = 16.0,’’’. std pagelength = 25.0,’’’. std linefeed faktor = 1.0,’’’’. std material = "";’’’’’.LET blank = " ",’’’’. blank code 1 = 33,’’’’’> geschuetztes blank = ""223"", ’’’’’’’’’’’’’’’. keine blankanalyse = 0,’’’’’’. einfach blank = 1,’’’’’’. doppel blank = 2,’’’’’’. anweisungszeichen = "#",’’’’. anweisungszeichen code 1 = 36,’’’’’. geschuetztes anweisungszeichen = ""222"",. druckerkommando zeichen = "/",’’’’. quote = """",’’’. kommentar zeichen = "-",’’’’. punkt = ".",’’’’. leer = 0,’’’’’. kommando token = 0,’’’’’’. text token = 1,’’’’’’. underline linetype = 1,’’’’’’.(* fraction linetype = 2,’’’’’’. root linetype = 3,’’’’’’. underline bit = 0,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’TeCal AuskunftN::::::::::::::::::: unbekannte Funktion ::::::::::::::::::::::::::: ’’’’’’’’’’> FŪr die getippte Taste existiert kein Auskunftstext ! ’’N:::::::::::::::::::::::: ? ::::::::::::::::::::::::: ’’’’’’’’’’Zweck: Auskunft erteilen ’’’NWirkung: ? erwartet das DrŪcken einer Taste und erteilt dann’’’’’’’’’’’’> eine Auskunft zur Wirkung der Funktion : ’’’’’’’’’’’’. "gedrŪckte Taste"N Sofern keine entsprechende Funktion bekannt ist, wird diese’’’’’’’’’’> Auskunft hier gezeigt. Beispiel : die Tastenfolge ’. ? M ’’’’’> bewirkt eine Auskunft zur Funktion M.’’’’’’’’’’N Auf diese Weise erhalten Sie zu den folgenden Funktionen’’’’’’’’’’’’’ eine Auskunft : ’’’’’. + Addieren ’’’’’’’. - Subtrahieren ’’’. * Multiplizieren ’. / Dividieren ’’’’’. ^ Potenzieren ’’’’. = Ausrechnen ’’’’’. ( Klammerrechnung . ) Klammerrechnung . % Prozentrechnen ’. C LŚschen ’’’’’’’’> E Einlesen (Terminal) ’’’’’’’’’’’’> F Formel berechnen ’’’’’’’’’’’’’’’. V Summe bilden ’’’N K Konstante aus Merkregister holen ’’’’’’’’’’’’’’’. L Lesen aus Datei . M Merken ’’’’’’’’’> N NŁchste Zahl suchen ’’’’’’’’’’’’. R Runden ’’’’’’’’’> S Schreiben mit Punktausrichtung ’> T Schreiben im Flieūtext ’’’’’’’’’. ? Auskunft ’’’’’’’> t TeCal ein-/ausschalten ’’’’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: = :::::::::::::::::::::::::’’’’’’’’’>Zweck: Ermitteln des Ergebnisses einer Rechnung ’’’’’’’’’’’’>Wirkung: Wirkt wie die "Gleich"-Taste eines Taschenrechners. ’> = folgt der Eingabe der letzten Zahl und fŪhrt’N dazu, daū das Ergebnis der gesamten Rechnung in der Anzeige’’’’’’’’’’N erscheint. Eventuell noch fehlende schliessende Klammern’’’’’’’’’’’’’> in einer Rechnung werden automatisch ergŁnzt.’’’’’’’’>Fehler: Fehlt bei BetŁtigung von = eine Zahl, z.B.’’’’’N nach einem Operatoren (+,-,*,...), so wird versucht, eine’’’’’’’’’’’’N Zahl aus der Datei zu lesen (vergleiche L). SchlŁgt’’’’’’’’’’’’N der Versuch fehl, steht also an der Cursorposition keine’’’’’’’’’’’’’N gŪltige Zahl, so wird eine entsprechende Fehlermeldung’’’’’’’’’’’’’’’N ausgegeben und das = ignoriert. Anschlieūend kann’’’’’’’’’’’’’’N so weitergerechnet werden, als wŁre = nicht betŁtigt’’’’’’’’’’’ worden.’’’’’’’’’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: ( :::::::::::::::::::::::::’’’’’’’’’.Zweck: Klammerung von RechenausdrŪcken ’’’’’NWirkung: Wirkt wie die "Klammer auf"-Taste eines Taschenrechners. ’’’’’’’’’’’’N Der Ausdruck, der zwischen ( und ) eingegeben’’’’’’’’’’’’N wird, wird vor den Operationen auūerhalb der Klammerung’’’’’’’’’’’’’’N ausgewertet. Klammern dŪrfen auch geschachtelt verwendet’’’’’’’’’’’’’ werden. ’’’’’’’’’’’’’NFehler: Wird bis zur Eingabe von = keine korrespondierende’’’’’’’’’’’’’N schliessende Klammer eingegeben, so wird angenommen, die’’’’’’’’’’’’’N schliessende Klammer stŪnde unmittelbar vor dem Gleichheits-’’’’’’’’’N zeichen. Wurde unmittelbar vor ( eine Zahl eingelesen,’’’’’’’’’N so wird diese Zahl durch das Ergebnis des Klammerausdrucks’’’’’’’’’’’ Ūberschrieben. ’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: ) :::::::::::::::::::::::::’’’’’’’’’.Zweck: Klammerung von RechenausdrŪcken ’’’’’NWirkung: Wirkt wie die "Klammer zu"-Taste eines Taschenrechners. ’’’’’’’’’’’’’N Der Ausdruck, der zwischen ( und ) eingegeben’’’’’’’’’’’’N wird, wird vor den Operationen auūerhalb der Klammerung’’’’’’’’’’’’’’N ausgewertet. Klammern dŪrfen auch geschachtelt verwendet’’’’’’’’’’’’’ werden. ’’’’’’’’’’’’’>Fehler: Fehlt bei BetŁtigung von ) eine Zahl, z.B.’’’’’N nach den Operatoren (+,-,*,...), so wird versucht eine’’’’’’’’’’’’’’’N Zahl aus der Datei zu lesen (vergleiche L). SchlŁgt’’’’’’’’’’’’N der Versuch fehl, steht also an der Cursorposition keine’’’’’’’’’’’’’N gŪltige Zahl, so wird eine entsprechende Fehlermeldung’’’’’’’’’’’’’’’> ausgegeben und ) ignoriert. Anschlieūend kann’’N so weitergerechnet werden, als wŁre ) nicht betŁtigt’’’’’’’’’’’ worden. ’’’’’’’’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: % :::::::::::::::::::::::::’’’’’’’’’Zweck: Prozentrechnung ’’’’’NWirkung: % berechnet den eingestellten Prozentsatz vom g. bold bit = 1,’’’’’’. italics bit = 2,’’’’’’. modifikations liste = "ubir",’. anzahl modifikationen = 4, ’’’’’. document = 1,’’’’’’. page = 2,’’’’’’. write text = 1,’’’’’’. write cmd = 2,’’’’’’. carriage return = 3, ’’’’’. move = 4,’’’’’’. draw = 5,’’’’’’. on = 6, ’’’’’. off = 7,’’’’’’. type = 8,’’’’’’. text code = 1, ’’’’’.(* error code = 2, *)’’’. token code = 3,’’’’’’. tag type = 1,’’’’’’. bold type = 2,’’’’’’. number type = 3,’’’’’’. text type = 4,’’’’’’. delimiter type = 6,’’’’’’. eof type = 7;’’’’’’.INT CONST null ausgang := minint,’. erweiterungs ausgang := maxint,’> blank ausgang := maxint - 1,’’’’’’’’’’’’’> anweisungs ausgang := maxint - 2,’’’’’’’’’’’’’> d code ausgang := maxint - 3,’’’’’’’’’’’’’> max breite := maxint - 4,’’’’’’’’’’’’’. linien token := -1;’’’’’’>ROW anzahl modifikationen INT CONST modifikations werte :=’’’’N ROW anzahl modifikationen INT : (1, 2, 4, 8);’’TEXT CONST anweisungsliste := N "type:1.1on:2.1off:3.1center:4.0right:5.0u:6.0d:7.0e:8.0b:9.0" +’’’’’’’’’’. "fillchar:10.1mark:11.2markend:12.0" +’’’’. "ub:13.0ue:14.0fb:15.0fe:16.0" +’’’’’’’’’’N "block:20.0columns:21.2columnsend:22.0free:23.1limit:24.1linefeed:25.1" + > "material:26.1page:27.01pagelength:29.1start:30.2" + ’’’’’. "table:31.0tableend:32.0clearpos:33.01" + > "lpos:35.1rpos:36.1cpos:37.1dpos:38.2bpos:39.2" +’’’’’’’’’. "textbegin:40.02textend:42.0" +’’’’’’’’’’’. "indentation:43.1ytab:44.1";’’’’’’’’’’’’’’>LET a type = 1, a block = 20,’’> a on = 2, a columns = 21,’’> a off = 3, a columnsend = 22,’’> a center = 4, a free = 23,’’> a right = 5, a limit = 24,’’> a up = 6, a linefeed = 25,’’> a down = 7, a material = 26,’’> a end up or down = 8, a page0 = 27,’’> a bsp = 9, a page1 = 28,’’> a fill char = 10, a pagelength = 29,’’> a mark = 11, a start = 30,’’> a markend = 12, a table = 31,’’> a ub = 13, a tableend = 32,’’> a ue = 14, a clearpos0 = 33,’’> a fb = 15, a clearpos1 = 34,’’> a fe = 16, a lpos = 35,’’> a rpos = 36,’’> a cpos = 37,’’> a dpos = 38,’’> a bpos = 39,’’> a textbegin0 = 40,’’> a textbegin2 = 41,’’> a textend = 42,’’> a indentation = 43,’’> a y tab = 44;’’>INT VAR a xpos, a breite, a font, a modifikationen,’’’’’’’’’’> a modifikationen fuer x move, a ypos, aktuelle ypos,’. letzter font, letzte modifikationen,’> d ypos, d xpos, d font, d modifikationen, ’’’’’’’’’’’N zeilenpos, alte zeilenpos, zeilen laenge, anzahl zeichen, ausgang,’’’N anzahl einrueck blanks, blankbreite, fuehrende anweisungen,’’’’’’’’’’N einrueckbreite, aktuelle einrueckbreite, alte einrueckbreite,’’’’’’’’> aktuelle zeilentiefe der letzten zeile,’’’’’’’’’’’’’’. blankmodus, alter blankmodus,’’’’’’’’> token zeiger, erstes token der zeile, ’’’’’’’’’’’’’’’> erstes tab token, tab anfang, anzahl blanks, ’’’’’’’’N d code 1, d pitch, fuell zeichen breite, erstes fuell token, ’’’’’’’’ letztes fuell token, > x size, y size, x wanted, y wanted, x start, y start,. pagelength, limit, indentation,’’’’’’> left margin, top margin, seitenlaenge,’’’’’’’’’’’’’’’. papierlaenge, papierbreite,’’’’’’’’’’> luecke, anzahl spalten, aktuelle spalte,’’’’’’’’’’’’’. verschiebung, linien verschiebung,’’’> rest, neue modifikationen, modifikations modus, pass,> int param, anweisungs index, anzahl params,’’’’’’’’’’ gedruckte seiten;’’’’>BOOL VAR zeile ist absatzzeile, letzte zeile war absatzzeile,’N zeile muss geblockt werden, rechts, a block token, offsets,’’’’’’’’’’N tabellen modus, block modus, center modus, right modus,’’’’’’’’’’’’’’. seite ist offen, vor erster seite;’’’.REAL VAR linefeed faktor, real param;’’’’’’’’’NTEXT VAR zeile, anweisung, par1, par2, material wert, replacements,’’’’’’’’’’’> fuell zeichen, d string, font offsets;’’’’’’’’’’’’’’’NROW 256 INT VAR zeichenbreiten, replacement tabelle, zeichen zaehler;’’’’’’’’’.INITFLAG VAR in dieser task := FALSE;’’’’’’’’’>. zeile ist zu ende : zeilenpos > zeilen laenge’>. zeilen breite : a xpos - left margin’’’’’’^. naechstes zeichen ist blank : pos (zeile, blank, zeilenpos + 1, zeilenpos + 1) <> 0’’’’’N. naechstes nicht blankes zeichen : pos (zeile, ""33"", ""255"", zeilenpos)’’’N. in letzter spalte : aktuelle spalte >= anzahl spalten’’’’’’’’’. anfangs blankmodus :’’’’’’’’ INT VAR dummy;’’’’’’’’’’’’. IF center modus OR right modus’’’’’’’’’’ THEN dummy’’’’’’’’’’’ ELIF index zaehler = 0’’’’ THEN blankmodus’’’’’’ ELSE alter blankmodus.. initialisiere tab variablen : ’’’’’’’’’’’’’’. erstes tab token := token index f + 1;’’’’. tab anfang := zeilen breite;’’’’’’’’ anzahl blanks := 0;’’’’ a block token := FALSE;N(******************************************************************)’’’’’’’’’’LET zeilen nr laenge = 4,’’’ teil einrueckung = 5,’’’N headline pre = "Zeile **** E L A N EUMEL 1.8.2 **** ",’’’’’’’’. headline post = " **** ";’’’’’’’’’’’’.INT VAR zeilen nr, rest auf seite,’’’’’’’’’’’^ max zeichen zeile, max zeichen fuss, layout laenge, layout laenge name,’’’’’’’’’’’’’’> symbol type, naechster symbol type, select counter;’’>BOOL VAR vor erstem packet, innerhalb einer liste;’’’’’’’’’’’’NTEXT VAR bottom label, dateiname, layout blanks, refinement layout zeile;’’’’’.. symbol : fuell zeichen’’’’’’’’’’’’. naechstes symbol : d string’.. elan text : d token. text’’’’’’’’’’’’N(******************************************************************)’’’’’’’’’’N(*** Berechnung des Zeilenvorschubs ***)’’’’’’’’’’NINT VAR fonthoehe, fonttiefe, fontdurchschuss,’> groesste fonthoehe, groesste fonttiefe,’’> groesste analysatorhoehe, groesste analysatortiefe,’’erade’’’’’’’’’’’N angezeigten Wert. Voreingestellt ist 14%; diese Einstellung’’’’’’’’’’N kann durch das Kommando "prozentsatz" verstellt werden.’’’’’’’’’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: C :::::::::::::::::::::::::’’’’’’’’’>Zweck: Abschlieūen einer Rechnung und LŚschen der Anzeige ’’NWirkung: C wirkt wie die "Clear"-Taste auf dem Taschenrechner.’’’’’’’’’’N Die Anzeige wird auf 0.0 gesetzt. Alle Klammern werden’’’’’’’’’’’’’’’N geschlossen. Der Wert des Merkregisters bleibt erhalten. ’’’’’’’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: E :::::::::::::::::::::::::’’’’’’’’’Zweck: Eingabe vom Terminal’NWirkung: E zeigt in der Statuszeile ein leeres Feld mit der’’’’’’’’’’’’’N Aufforderung "gib wert :". In dieses Feld kann man Zahlen’’’’’’’’’’’’N eingeben, die in die aktuelle Rechnung einfliessen sollen,’’’’’’’’’’’N ohne daū sie in der Datei stehen. Auch die Eingabe eines’’’’’’’’’’’’’N ganzen Rechenausdrucks ist zulŁssig. Auf diese Weise lassen’’’’’’’’’’N sich auch ganze Aufgaben als Nebenrechnung ausfŪhren. Die’’’’’’’’’’’’> Eingabe eines Ausdrucks wird mit der -Taste’’’’’’N abgeschlossen. Daraufhin erfolgt die Auswertung, das Ergebnis’’’’’’’’N steht anschliessend in der Anzeige. Mit diesem Wert kann dann’’’’’’’’N ebenso weitergerechnet werden, als wŁre er mit L aus’’’’’’’’’’’. der Datei gelesen worden. ’’’’’’’’’’’NFehler: Wird zweimal hintereinander eine Zahl eingelesen, ohne daū’’’’’’’’’’’N zwischendurch ein Operator ( +,-,*,...) erkannt wurde,’’’’’’’’’’> so Ūberschreibt die letzte Eingabe die vorhergehende.N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: L :::::::::::::::::::::::::’’’’’’’’’.Zweck: Lesen von Zahlen aus der Datei ’’’’’’NWirkung: L liest eine Zahl aus der Datei, an der Stelle, an der’’’’’’’’’N der Cursor gerade steht. Dabei darf der Cursor irgendwo auf’’’’’’’’’’N der Zahl oder unmittelbar dahinter stehen. Die gelesene Zahl’’’’’’’’’> wird in die Anzeige Ūbertragen und steht fŪr weitere’. Operationen zur VerfŪgung. ’’’’’’’’’’NFehler: Wird zweimal hintereinander eine Zahl eingelesen, ohne daū’’’’’’’’’’’N zwischendurch ein Operator ( +,-,*,...) erkannt wurde,’’’’’’’’’’> so Ūberschreibt die letzte Eingabe die vorhergehende.N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: K :::::::::::::::::::::::::’’’’’’’’’.Zweck: Konstante aus Merkregister lesen ’’’’NWirkung: K ŪbertrŁgt den Wert aus dem Merkregister in die’’’’’’’’’’’’’’’N Anzeige. Anschlieūend steht er fŪr weitere Operationen zur’’’’’’’’’’’ VerfŪgung. ’’’’’’’’’’>Fehler: Wurde vorher eine Zahl eingelesen, ohne daū’’’’’’’’’’N zwischendurch ein Operator ( +,-,*,...) erkannt wurde,’’’’’’’’’’> so Ūberschreibt K die vorhergehende Eingabe.’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: M :::::::::::::::::::::::::’’’’’’’’’Zweck: Merken einer Zahl ’’’NWirkung: M kopiert die Zahl aus der Anzeige ins Merkregister.’’’’’’’’’’’N Sie kann dann spŁter mit K fŪr weitere Rechnungen’’’’’’’’’’’’’’ verwendet werden. ’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: F :::::::::::::::::::::::::’’’’’’’’’Zweck: Formel berechnen ’’’’NWirkung: F liest die ganze Zeile, auf der der Cursor gerade’’’’’’’’’’’’’> steht, aus der Datei und interpretiert diese als’’’’’N Rechenausdruck. Dabei werden alle Zeichen die nicht zu’’’’’’’’’’’’’’’N einer Zahl gehŚren auūer +,-,*,/,^,%,(,),= ignoriert. ’’’’’’’’’’’’’’’N EnthŁlt die Zeile ein "="-Zeichen, so wird der Ausdruck nur’’’’’’’’’’> bis zu diesem ausgewertet und das Ergebnis hinter das> Gleichheitszeichen geschrieben. Andernfalls wird das’N Ergebnis nur in die Anzeige Ūbertragen. Es kann so in eine’’’’’’’’’’’. Rechnung mit einbezogen werden. ’’’’’>Fehler: Wurde vorher eine Zahl eingelesen, ohne daū’’’’’’’’’’N zwischendurch ein Operator ( +,-,*,...) erkannt wurde,’’’’’’’’’’> so Ūberschreibt F die vorhergehende Eingabe. ’’N EnhŁlt die Zeile zwei aufeinanderfolgende Zahlen, die nicht’’’’’’’’’’N durch einen Operator (+,-,*,/,^) getrennt sind, so wird nur’’’’’’’’’’. die letzte berŪcksichtigt. ’’’’’’’’’’N Folgen zwei Operatoren unmittelbar aufeinander, so wird die’’’’’’’’’’> Auswertung mit einer Fehlermeldung abgebrochen. ’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: N :::::::::::::::::::::::::’’’’’’’’’Zweck: NŁchste Zahl suchen’’>Wirkung: N setzt den Cursor auf die nŁchste Zahl, sofern> er nicht bereits auf einer steht. Damit lassen sich’’> innerhalb von Lernsequenzen, durch die Kombination’’’> Cursor rechts, N auch Zahlen nacheinanderN aufsammeln, die nicht auf festen Tabellenpositionen stehen,’’’’’’’’’’> sondern nur durch mindestens ein Blank getrennt sind.NFehler: Steht in der aktuellen Zeile hinter der Cursorposition’’’’’’’’’’’’’’’N keine Zahl, so wird der Cursor hinter das Zeilenende gesetzt. ’’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: R :::::::::::::::::::::::::’’’’’’’’’.Zweck: Runden des Zwischenergebnisses’’’’’’’NWirkung: R rundet das Zwischenergebnis auf die angezeigte’’’’’’’’’’’’’’’N Stellenzahl, d.h. die verdeckten Stellen, mit denen TeCal’’’’’’’’’’’’> ansonsten weiterrechnet, werden vernachlŁssigt.’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: T :::::::::::::::::::::::::’’’’’’’’’.Zweck: Schreiben im Fieūtext ’’’’’’’’’’’’’’’NWirkung: T schreibt die Zahl aus der Anzeige in die Datei.’’’’’’’’’’’’’’N Dabei wird die Zahl genau so geschrieben, als wŪrden alle’’’’’’’’’’’’> Ziffern einzeln Ūber die Tastatur eingegeben.’’’’’’’’N Eingeschaltete Editormodi wie RUBIN werden dabei beachtet,’’’’’’’’’’’N ein Ausrichtung nach Dezimalstellen findet nicht statt.’’’’’’’’’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: S :::::::::::::::::::::::::’’’’’’’’’.Zweck: Schreiben in die Datei ’’’’’’’’’’’’’’NWirkung: S schreibt die Zahl aus der Anzeige in die Datei.’’’’’’’’’’’’’’N Dabei wird Sie nach dem Dezimalpunkt ausgerichtet, oder,’’’’’’’’’’’’’N sofern sie keine Nachkommastellen hat, linksbŪndig geschrieben.’’’’’’N Stand vorher an der Cursorposition eine Zahl, so wird diese’’’’’’’’’’N vollstŁndig gelŚscht, auch wenn die zu schreibende Zahl’’’’’’’’’’’’’’N kŪrzer ist. Ansonsten werden nur soviele Stellen wie nŚtig’’’’’’’’’’’ Ūberschrieben. ’’’’’’NFehler: Befindet sich der Cursor so nah am Zeilenanfang, daū die’’’’’’’’’’’’’N Vorkommastellen keinen Platz vor dem > letzte zeilenhoehe, letzte zeilentiefe, ’’’’’’’’’> aktuelle zeilenhoehe, aktuelle zeilentiefe;’’’’’’’’’’REAL VAR real fontgroesse;’’’’N. fontgroesse : fonthoehe + fonttiefe’’’’’’’’’’N. groesste fontgroesse : groesste fonthoehe + groesste fonttiefe’’’’’’’’’’N. letzte zeilengroesse : letzte zeilenhoehe + letzte zeilentiefe’’’’’’’’N. aktuelle zeilengroesse : aktuelle zeilenhoehe + aktuelle zeilentiefe’’’’’’’’. initialisiere zeilenvorschub :’’’’’’’’’’’’’’> aktuelle zeilenhoehe := letzte zeilenhoehe;’’’’’’’’’’’> aktuelle zeilentiefe := letzte zeilentiefe;’’’’’’’’’’’. groesste fonthoehe := fonthoehe;’’’’. groesste fonttiefe := fonttiefe;’’’’. groesste analysatorhoehe := 0;’’’’’’’’’’’’. groesste analysatortiefe := 0;’’’’’’’’’’’’. ueberpruefe groesste fontgroesse :’’’’’’’’’’. IF old linefeed calculation’’’’’’’’’’’’’’’^(* >>> Maximumsbestimmung Ūber FontgrŚūe ******************************* <<< *)’’’’’’’’’’’’’’’> IF fontgroesse >= groesste fontgroesse’’’’’’’’’’’’> THEN groesste fonthoehe := fonthoehe;’’’’’’’’’’> groesste fonttiefe := fonttiefe;’’’’’’’’’’ FI;’’’’’’’’’’’’’’’^(* >>> Maximumsbestimmung Ūber FonthŚhe und Fonttiefe ****************** <<< *)’’’’’’’’’’’’’’’N groesste fonthoehe := max (fonthoehe, groesste fonthoehe);’’’’’’’’N groesste fonttiefe := max (fonttiefe, groesste fonttiefe);’’’’’’’’ berechne fontgroesse :’’’’’’N fonthoehe INCR (fontdurchschuss DIV 2 + fontdurchschuss MOD 2);’’’’’’’’’’’. fonttiefe INCR fontdurchschuss DIV 2;’’’’. real fontgroesse := real (fontgroesse);’’’. berechne letzte zeilengroesse :’’’’’’’’’’’’’N REAL CONST zeilengroesse := real fontgroesse * linefeed faktor;’’’’’’’’’’’^ letzte zeilenhoehe := int (real (fonthoehe) * zeilengroesse / real fontgroesse + 0.5);’’’’N letzte zeilentiefe := int (zeilengroesse + 0.5) - letzte zeilenhoehe;’’’’’.PROC berechne aktuelle zeilengroesse :’’’’’’’’ IF linefeed faktor >= 1.0’^ THEN aktuelle zeilenhoehe := max (groesste fonthoehe, letzte zeilenhoehe);’’’’’’’’’’’’’^ aktuelle zeilentiefe := max (groesste fonttiefe, letzte zeilentiefe);’’’’’’’’’’’’’. IF old linefeed calculation’’’’’’’ THEN’’’’’’’’’’’^(* >>> Maximumsbestimmung Ūber FontgrŚūe ******************************* <<< *)’’’’’’’’’’’’’’’N IF letzte zeilengroesse >= aktuelle zeilengroesse’’’’’’’’’N THEN aktuelle zeilenhoehe := letzte zeilenhoehe;’’’’’’’N aktuelle zeilentiefe := letzte zeilentiefe;’’’’’’’ FI;’’’’’’’ ELSE’’’’’’’’’’’^(* >>> Maximumsbestimmung Ūber FonthŚhe und Fonttiefe ****************** <<< *)’’’’’’’’’’’’’’’^ aktuelle zeilenhoehe := max (letzte zeilenhoehe, aktuelle zeilenhoehe);’’’^ aktuelle zeilentiefe := max (letzte zeilentiefe, aktuelle zeilentiefe);’’’ FI;’’’’’’’’’’’’’’’^ aktuelle zeilenhoehe := max (groesste analysatorhoehe, aktuelle zeilenhoehe);’’’’’’’’’’’’’^ aktuelle zeilentiefe := max (groesste analysatortiefe, aktuelle zeilentiefe);’’’’’’’’’’’’’.END PROC berechne aktuelle zeilengroesse;’’’’’N(******************************************************************)’’’’’’’’’’N(*** tokenspeicher ***)’’’’’’’’’’LET max number token = 3000,’ max number ypos = 1000,’. TOKEN = STRUCT (TEXT text,’’’’’’’’’’’N INT xpos, breite, font, modifikationen,’’’’’’’’’’’’’> modifikationen fuer x move, ’’’’N offset index, naechster token index, ’’’’’’’’’’’. BOOL block token ),’’^ YPOS = STRUCT (INT ypos, vorheriger ypos index, naechster ypos index,’’’’’’’’’’’’’’’N erster token index, letzter token index ), ’’’’’’N TOKENLISTE = STRUCT (ROW max number token TOKEN token liste,’’’’’’’’’’’’’’N ROW max number ypos YPOS ypos liste );’’’’’’’’’’’’DATASPACE VAR ds;’’’’’’’’’’’’’.BOUND TOKENLISTE VAR tokenspeicher;’’’’’’’’’’’.TOKEN VAR d token, offset token;’’’’’’’’’’’’’’>INT VAR erster ypos index a, letzter ypos index a, ’’’’’’’’’’’> erster ypos index d, letzter ypos index d, ’’’’’’’’’’’N ypos index, ypos index f, ypos index a, ypos index d, ’’’’’’’’’’’’. token index, token index f;’’’’’’’’’’’>. t : tokenspeicher. token liste (token index)’’’’’’’’’’’’’’’>. tf : tokenspeicher. token liste (token index f)’’’’’’’’’’’’’>. y : tokenspeicher. ypos liste (ypos index) ’’’’’’’’’’’’’’>. yf : tokenspeicher. ypos liste (ypos index f) ’’’’’’’’’’’’>. ya : tokenspeicher. ypos liste (ypos index a)’’’’’’’’’’’’’>. yd : tokenspeicher. ypos liste (ypos index d)’’’’’’’’’’’’’. loesche druckspeicher :’’’’’ erster ypos index d := 0;’ ypos index f := 0;’ token index f := 0;’.. druckspeicher ist nicht leer :’’’’’’’’’’’’’’ erster ypos index d <> 0’’. loesche analysespeicher :’’’ erster ypos index a := 0;’.. analysespeicher ist nicht leer :’’’’’’’’’’’’ erster ypos index a <> 0’’N(******************************************************************)’’’’’’’’’’N(*** anweisungsspeicher ***)’’’’’’’’’’INT VAR anweisungszaehler;’’’>TEXT VAR anweisungs indizes, params1 zeiger, params2 zeiger;’’.THESAURUS VAR params1, params2; ’’’’’’’’’’’’’’.PROC loesche anweisungsspeicher :’’’’’’’’’’’’’ anweisungs zaehler := 0;’’ anweisungs indizes := "";’ params1 zeiger := "";’ params2 zeiger := "";’. params1 := empty thesaurus;’’’’. params2 := empty thesaurus;’’’’.END PROC loesche anweisungsspeicher; ’’’’’’’’’N(******************************************************************)’’’’’’’’’’N(*** indexspeicher ***)’’’’’’’’’’>INT VAR index zaehler, hoechster index zaehler;’’’’’’’’’’’’’’^TEXT VAR letzte index breite, xpos vor index, zeilenpos nach index, grosse fonts,’’’’’’’’’’’’’ index verschiebung;’’PROC loesche indexspeicher :’’. index zaehler := 0;’’’’’’’’’’’’’. hoechster index zaehler := 0;’’’’’’’’’’’’’. letzte index breite := "";’’’’’’’’’’’’. xpos vor index := "";’’’’’’’’’’’’. zeilenpos nach index := "";’’’’’’’’’’’’. index verschiebung := "";’’’’’’’’’’’’. grosse fonts := "";’’’’’’’’’’’’.END PROC loesche indexspeicher; ’’’’’’’’’’’’’’.PROC loesche hoehere index level :’’’’’’’’’’’’. IF hoechster index zaehler > index zaehlern THEN letzte index breite := subtext (letzte index breite, 1, int length * index zaehler);’’’’’’’’’’’’’^ xpos vor index := subtext (xpos vor index, 1, int length * index zaehler);’’n zeilenpos nach index := subtext (zeilenpos nach index, 1, int length * index zaehler);’’’’’’’’’’’’^ index verschiebung := subtext (index verschiebung, int length * index zaehler);’^ grosse fonts := subtext (grosse fonts, 1, int length * index zaehler);’’’’> hoechster index zaehler := index zaehler;’’’’’’’’’.END PROC loesche hoehere index level;’’’’’’’’’N(******************************************************************)’’’’’’’’’’N(*** tabellenspeicher ***)’’’’’’’’’’LET max tabs = 30,’’N TABELLENEINTRAG = STRUCCursor finden, wird’’’’’’’’’’’’’. das Schreiben unterdrŪckt. ’’’’’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: V :::::::::::::::::::::::::’’’’’’’’’Zweck: Vertikalsumme bilden NWirkung: V summiert alle Zahlen, die Ūber dem Cursor stehen,’’’’’’’’’’’’N bis eine Zeile gefunden wird, in der Ūber dem Cursor keine’’’’’’’’’’’N gŪltige Zahl steht. Dabei werden Leerstellen Ūbersprungen.’’’’’’’’’’’N Die auf diese Weise gebildete Summe wird in die Anzeige’’’’’’’’’’’’’’> Ūbertragen und steht dort fŪr weitere Operationen zur VerfŪgung. ’’’’’’’’’’>Fehler: Befindet sich keine Zahl Ūber dem Cursor, so ist das’ Ergebnis 0.0. ’’’’’’’> Wurde vorher eine Zahl eingelesen, ohne daū’’’’’’’’’’N zwischendurch ein Operator ( +,-,*,...) erkannt wurde,’’’’’’’’’’> so Ūberschreibt V die vorhergehende Eingabe.’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: t :::::::::::::::::::::::::’’’’’’’’’.Zweck: TeCal ein-/ausschalten ’’’’’’’’’’’’’’NWirkung: Wenn TeCal ausgeschaltet ist, so schaltet t TeCal’’’’’’’’’’’’’N ein, anderfalls wird TeCal ausgeschaltet. Ob TeCal ein- oder’’’’’’’’’N ausgeschaltet ist, erkennt man daran, ob in der untersten’’’’’’’’’’’’> Zeile die TeCal-Statuszeile steht oder nicht. Durch’’N Ausschalten von TeCal werden alle TeCal-Funktionstasten’’’’’’’’’’’’’’N (auūer t und ?) wieder mit den ursprŪnglichen’’’’’’’’’’N benutzereigenen Funktionen belegt, so daū man diese nutzen’’’’’’’’’’’N kann. Eine laufende Rechnung bleibt durch Aus- und Wieder-’’’’’’’’’’’> einschalten von TeCal unberŪhrt. Auch durch ein’’’’’’N zwischenzeitliches Verlassen des Editors und eventuelles’’’’’’’’’’’’’N ×ffnen einer anderen Datei wird eine angefangene Rechnung’’’’’’’’’’’’ nicht gelŚscht. ’’’’’NFehler: Das Einschalten von TeCal kann dadurch verhindert sein,’’’’’’’’’’’’’’> daū der Benutzer die Wirkung von t umdefiniert.N In diesem Falle sollte man den Befehl "tecal" auf die Taste’’’’’’’’’’N "t" legen. (Wie das geht, steht in der Editor-Beschreibung).’’’’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: + :::::::::::::::::::::::::’’’’’’’’’>Zweck: Addition zweier Zahlen (oder AusdrŪcke)’’’’’’’’’’’’’’>Wirkung: Wirkt wie die "Plus"-Taste eines Taschenrechners. ’’’N + muū zwischen der Eingabe der beiden zu addierenden’’’’’’’’’’’N Werte (z.B. mit L oder E) betŁtigt werden. ’’’’’’’’’’’’’’N Bei der Auswertung wird Punktrechnung vor Strichrechnung’’’’’’’’’’’’’ beachtet. ’’’’’’’’’’’NFehler: Fehlt bei BetŁtigung von + der erste Operand, z.B.’’’’’’’’’’’’’N am Anfang einer Rechnung oder zwischen zwei Operatoren’’’’’’’’’’’’’’’N (+,-,*,...), so wird versucht eine Zahl aus der Datei zu’’’’’’’’’’’’’N lesen (vergleiche L). SchlŁgt der Versuch fehl, steht’’’’’’’’’’> also an der Cursorposition keine Zahl, so wird eine’’N entsprechende Fehlermeldung ausgegeben und das +’’’’’’’’’’’’’’’N ignoriert. Anschlieūend kann so weitergerechnet werden,’’’’’’’’’’’’’’> als wŁre + nicht betŁtigt worden. ’’’’’’’’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: - :::::::::::::::::::::::::’’’’’’’’’>Zweck: Subtraktion zweier Zahlen (oder AusdrŪcke)’’’’’’’’’’’>Wirkung: Wirkt wie die "Minus"-Taste eines Taschenrechners. ’’N - muū zwischen der Eingabe der beiden zu subtrahierenden’’’’’’’N Werte (z.B. mit L oder E) betŁtigt werden. ’’’’’’’’’’’’’’N Bei der Auswertung wird Punktrechnung vor Strichrechnung’’’’’’’’’’’’’ beachtet. ’’’’’’’’’’’NFehler: Fehlt bei BetŁtigung von - der erste Operand, z.B.’’’’’’’’’’’’’N am Anfang einer Rechnung oder zwischen zwei Operatoren’’’’’’’’’’’’’’’N (+,-,*,...), so wird versucht eine Zahl aus der Datei zu’’’’’’’’’’’’’N lesen (vergleiche L). SchlŁgt der Versuch fehl, steht’’’’’’’’’’> also an der Cursorposition keine Zahl, so wird eine’’N entsprechende Fehlermeldung ausgegeben und das -’’’’’’’’’’’’’’’N ignoriert. Anschlieūend kann so weitergerechnet werden,’’’’’’’’’’’’’’> als wŁre - nicht betŁtigt worden.’’’’’’’’’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: * :::::::::::::::::::::::::’’’’’’’’’.Zweck: Multiplikation zweier Zahlen ’’’’’’’’>Wirkung: Wirkt wie die "Mal"-Taste eines Taschenrechners. ’’’’N * muū zwischen der Eingabe der beiden zu multiplizierenden’’’’’N Werte (z.B. mit L oder E) betŁtigt werden. ’’’’’’’’’’’’’’N Bei der Auswertung wird Punktrechnung vor Strichrechnung’’’’’’’’’’’’’ beachtet. ’’’’’’’’’’’NFehler: Fehlt bei BetŁtigung von * der erste Operand, z.B.’’’’’’’’’’’’’N am Anfang einer Rechnung oder zwischen zwei Operatoren’’’’’’’’’’’’’’’N (+,-,*,...), so wird versucht eine Zahl aus der Datei zu’’’’’’’’’’’’’N lesen (vergleiche L). SchlŁgt der Versuch fehl, steht’’’’’’’’’’> also an der Cursorposition keine Zahl, so wird eine’’N entsprechende Fehlermeldung ausgegeben und das *’’’’’’’’’’’’’’’N ignoriert. Anschlieūend kann so weitergerechnet werden,’’’’’’’’’’’’’’> als wŁre * nicht betŁtigt worden.’’’’’’’’’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: / :::::::::::::::::::::::::’’’’’’’’’.Zweck: Division zweier Zahlen ’’’’’’’’’’’’’’NWirkung: Wirkt wie die "Geteilt durch"-Taste eines Taschenrechners. ’’’’’’’’’’N / muū zwischen der Eingabe der beiden zu dividierenden’’’’’’’’’N Werte (z.B. mit L oder E) betŁtigt werden.’’’’’’’’’’’’’’’N Bei der Auswertung wird Punktrechnung vor Strichrechnung’’’’’’’’’’’’’ beachtet. ’’’’’’’’’’’NFehler: Fehlt bei BetŁtigung von / der erste Operand, z.B.’’’’’’’’’’’’’N am Anfang einer Rechnung oder zwischen zwei Operatoren’’’’’’’’’’’’’’’N (+,-,*,...), so wird versucht eine Zahl aus der Datei zu’’’’’’’’’’’’’N lesen (vergleiche L). SchlŁgt der Versuch fehl, steht’’’’’’’’’’> also an der Cursorposition keine Zahl, so wird eine’’N entsprechende Fehlermeldung ausgegeben und das /’’’’’’’’’’’’’’’N ignoriert. Anschlieūend kann so weitergerechnet werden,’’’’’’’’’’’’’’> als wŁre / nicht betŁtigt worden.’’’’’’’’’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q :::::::: ’’’’’’’’’N:::::::::::::::::::::::: ^ :::::::::::::::::::::::::’’’’’’’’’Zweck: Potenzieren’’’’’’’’’’>Wirkung: Wirkt wie die "Hoch"-Taste eines Taschenrechners. ’’’> ^ muū zwischen der Eingabe zweier Werte’’’’’’’’> (z.B. mit L oder E) betŁtigt werden,’’’’’N und liefert als Wert dann die erste Zahl hoch die zweite.’’’’’’’’’’’’N ^ hat eine hŚhere PrioritŁt als * und / und wird’’’’’’’’’’’’’’’N daher in einer Kettenrechnung immer zuerst ausgewertet. ’’’’’’’’’’’’’NFehler: FehltT (INT tab typ, tab position, tab param);’’’’’’’TEXT VAR tab liste, fill char;THESAURUS VAR d strings;’’’’’’.ROW max tabs TABELLENEINTRAG VAR tabspeicher;’INT VAR tab index;’’’’’’’’’’’’N. tab typ : tab speicher (tab liste ISUB tab index). tab typ’’’’’’’’’’’’N. tab position : tab speicher (tab liste ISUB tab index). tab position’’’’’’’N. tab param : tab speicher (tab liste ISUB tab index). tab param ’’’’’’’’’>. anzahl tabs : LENGTH tab liste DIV int length ’’’’’’’’’’’’.PROC loesche tabellenspeicher :’’’’’’’’’’’’’’’ fill char := " ";’’’’’’’’’ tabliste := "";’’’’’’’’’’. d strings := empty thesaurus;’’’’’’’’’’’’’. FOR tab index FROM 1 UPTO max tabs’’’’’’’’> REP tab speicher (tab index). tab typ := leer PER;’’’’.END PROC loesche tabellenspeicher;’’’’’’’’’’’’N(******************************************************************)’’’’’’’’’’N(*** markierungsspeicher ***)’’’’’’’’’’NINT VAR mark index l, mark index r, alter mark index l, alter mark index r;’’’ROW 4 TOKEN VAR mark token;’’’.. markierung links : mark index l > 0’’’’’’’’.. markierung rechts : mark index r > 0’’’’’’’’PROC loesche markierung :’’’’’ mark index l := 0;’’’’’’’ mark index r := 0;’’’’’’’END PROC loesche markierung;’’PROC loesche alte markierung : alter mark index l := 0;’ alter mark index r := 0;’.END PROC loesche alte markierung;’’’’’’’’’’’’’.PROC initialisiere markierung :’’’’’’’’’’’’’’’. FOR mark index l FROM 1 UPTO 4’’’’’’’’’’’N REP mark token (mark index l). modifikationen fuer x move := 0;’’’’’’’’’’N mark token (mark index l). offset index := text token;’N mark token (mark index l). block token := FALSE;’’’’’’N mark token (mark index l). naechster token index := 0;’’’’’’’’’’.END PROC initialisiere markierung;’’’’’’’’’’’’N(******************************************************************)’’’’’’’’’’N(*** durchschuss ***)’’’’’’’’’’>INT VAR durchschuss 1, durchschuss 2, anzahl durchschuss 1, ’’. anzahl durchschuss, zeilen zaehler;’’’BOOL VAR wechsel := TRUE;’’’’’INT PROC durchschuss :’’’’’’’’ zeilen zaehler INCR 1;’’’> IF zeilen zaehler <= anzahl durchschuss 1’’’’’’’’’’’’’’ THEN durchschuss 1’’> ELIF zeilen zaehler <= anzahl durchschuss ’’’’’’’’’’’’’’’ THEN durchschuss 2’’ ELSE 0’’’’’’’’’’’’’’END PROC durchschuss;’’’’’’’’’>PROC neuer durchschuss (INT CONST anzahl, rest l) :’’’’’’’’’’’ zeilen zaehler := 0;’. anzahl durchschuss := anzahl;’’’’’’’’’’’’ IF anzahl > 0 ’’’’’’’’’’’ THEN IF wechsel’’’’’’’N THEN durchschuss 1 := rest l DIV anzahl durchschuss;’’’N durchschuss 2 := durchschuss 1 + sign (rest l);’’’N anzahl durchschuss 1 := anzahl durchschuss -’’’’’’’’’’’’’^ abs (rest l) MOD anzahl durchschuss;’’’’’’’’’’’’’> wechsel := FALSE;’’’’’’’’’’’N ELSE durchschuss 2 := rest l DIV anzahl durchschuss; ’’N durchschuss 1 := durchschuss 2 + sign (rest l);’’’^ anzahl durchschuss 1 := abs (rest l) MOD anzahl durchschuss;’’’’’’’’’’’’’> wechsel := TRUE;’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’. ELSE loesche durchschuss’’’’’’’’’’’’’’END PROC neuer durchschuss;’’’PROC loesche durchschuss :’’’’. durchschuss 1 := 0;’’’’’’’’’’’’. durchschuss 2 := 0;’’’’’’’’’’’’. anzahl durchschuss 1 := 0;’’’’’’’’’’’’. anzahl durchschuss := 0;’’’’’’’’’’’’. zeilen zaehler := 0;’’’’’’’’’’’’END PROC loesche durchschuss;’N(****************************************************************)’’’’’’’’’’’’PROC initialisierung :’’’’’’’’ INT VAR index;’’’’’’’’’’’’’’ forget (ds);. ds := nilspace; tokenspeicher := ds;’’’’’’’’ loesche druckspeicher;’’’’’’ loesche anweisungsspeicher;’ loesche indexspeicher;’’’’’’ initialisiere markierung;’’’. right modus := FALSE;’’’’’’. center modus := FALSE;’’’’’’. seite ist offen := FALSE;’’’’’’. pass := 0;’’’’’’’’’’. a breite := 0;’’’’’’’’’’. a modifikationen fuer x move := 0;’’’’’’’’’’. aktuelle zeilentiefe der letzten zeile := 0;. d code 1 := leer;’’’’’’’. erstes fuell token := leer;’’’’’’’ IF two bytesN THEN FOR index FROM 1 UPTO 129 REP zeichen zaehler (index) := 1 PER; ’’^ FOR index FROM 130 UPTO 160 REP zeichen zaehler (index) := - maxint PER;’’’’’’’’’’’’N FOR index FROM 161 UPTO 224 REP zeichen zaehler (index) := 1 PER;’’’^ FOR index FROM 225 UPTO 240 REP zeichen zaehler (index) := - maxint PER;’’’’’’’’’’’’N FOR index FROM 241 UPTO 256 REP zeichen zaehler (index) := 1 PER;’’’N ELSE FOR index FROM 1 UPTO 256 REP zeichen zaehler (index) := 1 PER; ’’END PROC initialisierung;’’’’’N(****************************************************************)’’’’’’’’’’’’N(*** print - Kommando ***)’’’’’’’’’’’’.BOOL VAR elan listings erlaubt;’’’’’’’’’’’’’’’FILE VAR eingabe;’’’’’’’’’’’’’.THESAURUS VAR elan bolds := empty thesaurus;’’Ninsert (elan bolds, "PACKET"); insert (elan bolds, "PROC");’’’’’’’’’’’’’Ninsert (elan bolds, "PROCEDURE"); insert (elan bolds, "OP");’’’’’’’’’’’’’’’Ninsert (elan bolds, "OPERATOR"); insert (elan bolds, "LET");’’’’’’’’’’’’’’Ninsert (elan bolds, "ROW"); insert (elan bolds, "STRUCT");’’’’’’’’’’’Ninsert (elan bolds, "TYPE"); insert (elan bolds, "BOUND");’’’’’’’’’’’’Ninsert (elan bolds, "IF"); insert (elan bolds, "REP");’’’’’’’’’’’’’’Ninsert (elan bolds, "REPEAT"); insert (elan bolds, "FOR");’’’’’’’’’’’’’’Ninsert (elan bolds, "WHILE"); insert (elan bolds, "SELECT");’’’’’’’’’’’with elan listings (TRUE);’’’’.PROC with elan listings (BOOL CONST flag) :’’’. elan listings erlaubt := flag;’’’’’’’’’’’END PROC with elan listings;’’^BOOL PROC with elan listings : elan listings erlaubt END PROC with elan listings;’’’’’’’’’’’’’PROC print (FILE VAR file,’’’’> PROC (INT CONST, INT VAR, INT VAR) open,’’’’’’’’’’. PROC (INT CONST, INT CONST) close,N PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) :’’’’’ eingabe := file;’’’’’’’’’’’’ input (eingabe);’’’’’’’’’’’’> print (PROC (TEXT VAR) lese zeile, BOOL PROC is eof,’’’’’’’’> PROC (INT CONST, INT VAR, INT VAR) open,’’’’’’’’’’’’’. PROC (INT CONST, INT CONST) close,’’’N PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute, ’’’’’’’’’. PROC (INT CONST, TEXT VAR,’’’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) std analysator,’> elan listings erlaubt CAND is elan source (eingabe),  headline (eingabe) );END PROC print;’’’’’’’’’’’’’’’PROC print (FILE VAR file,’’’’> PROC (INT CONST, INT VAR, INT VAR) open,’’’’’’’’’’. PROC (INT CONST, INT CONST) close,N PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute,’’’’’’’. PROC (INT CONST, TEXT VAR,’’’’’’’’n INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator ) :’’’’’’’’’’’’’’’ eingabe := file;’’’’’’’’’’’’ input (eingabe);’’’’’’’’’’’’> print (PROC bei BetŁtigung von ^ der erste Operand, z.B.’’’’’’’’’’’’’N am Anfang einer Rechnung oder zwischen zwei Operatoren’’’’’’’’’’’’’’’N (+,-,*,...), so wird versucht eine Zahl aus der Datei zu’’’’’’’’’’’’’N lesen (vergleiche L). SchlŁgt der Versuch fehl, steht’’’’’’’’’’> also an der Cursorposition keine Zahl, so wird eine’’N entsprechende Fehlermeldung ausgegeben und das ^’’’’’’’’’’’’’’’N ignoriert. Anschlieūend kann so weitergerechnet werden,’’’’’’’’’’’’’’> als wŁre ^ nicht betŁtigt worden.’’’’’’’’’’’’’’N:::::::: Abschnittsende, Auskunft verlassen mit q ::::::::’’’’’’’’’’>PACKET tecal auskunft DEFINES tecal auskunft : ’’’’’’’’’’’’’’’N(***********************************************************************) ’’’’N(* Anpassung an den im EUMEL integrierten Patternmatcher *) ’’’’N(* 4. 6. 1987 -as- *) ’’’’N(* Anpassung und Korrektur *) ’’’’N(* 11.10.90 Uwe Behrend *) ’’’’N(***********************************************************************) ’’’’.LET anfangszeile = "::::: ",’’’’’’. end zeile = "Abschnittsende",’’’’’’’. dummyabschnitt = "::: unbekannt";’’’’’’’’’.BOOL VAR auskunft aktiv := FALSE;’’’’’’’’’’’’’.TEXT CONST auskunftsdatei := std;’’’’’’’’’’’’’TASK CONST ur := father;’’’’’’NBOOL PROC has range (FILE VAR f, TEXT CONST von, bis, INT VAR von line) : ’’’’ gehe an file anfang; ’’’’’’’ suche von position; ’’’’’’’’ IF von gefunden ’’’’’’’’’’’’ THEN position merken; ’’’’ suche bis position; ’ IF NOT bis gefunden ’. THEN gehe zum file ende ’’’’’’’’’’’. zum ende der bis zeile; ’’’’’’’’’’’’’ TRUE  ELSE FALSE gehe an file anfang:’’’’’’’’ to line (f, 1); ’’’’’’’’’’ col (f, 1) . ’’’’’’’’’’’’’N suche von position: IF NOT at (f, von) THEN down (f, von) FI. ’’’’’’’’’’’’’’ von gefunden: at (f, von). ’. position merken: von line := line no (f). ’’. suche bis position: down (f, bis). ’’’’’’’’’ bis gefunden: at (f, bis). ’. gehe zum file ende: to line (lines (f)). ’’’> zum ende der bis zeile: col (f, len (f) + 1) . ’’’’’’’’’’’’’END PROC has range;’’’’’’’’’’’.PROC show (FILE VAR f, TEXT CONST von, bis) : . FRANGE VAR r; INT VAR von line; ’’’’’’’’’’’’. IF has range (f, von, bis, von line) ’’’’’’’ THEN disable stop; ’’’’’’’. set range (f, von line, 1, r); ’’’’’’ to line (f, 1); ’’’’’ col (f, 1);’’’’’’’’’’ show (f); ’’’’’’’’’’’ set range (f, r) ’’’’> ELIF has range (f, dummyabschnitt, bis, von line) ’’’’’’’’’’ THEN disable stop; ’’’’’’’. set range (f, von line, 1, r); ’’’’’’ to line (f, 1); ’’’’’ col (f, 1);’’’’’’’’’’ show (f); ’’’’’’’’’’’ set range (f, r) ’’’’END PROC show;.PROC tecal auskunft (TEXT CONST taste):’’’’’’’ enable stop; fetch file if neccessary;’’’ show part of file.’’’’’’’’’’ fetch file if neccessary :’’ TASK VAR task := father;’’> WHILE NOT exists (auskunftsdatei) CAND NOT (task = ur) REP^ out (""13" Auskunftsdatei muū geholt werden von " +name (task) + "!"13""); ’’’’’’’’’’’’ zeile neu;’’’’’’’’’’’’’’ disable stop;’’’’’’’’’’’. x fetch (auskunftsdatei, task);’’’’’’’’’. IF is error THEN clear error FI;’’’’’’’’ enable stop;’’’’’’’’’’’’ task := father(task)’’’’. IF NOT exists (auskunftsdatei) ’’’’’’’’’’’N THEN errorstop ("Datei """+auskunftsdatei+""" wurde gelŚscht")’’’’’’’’’’ show part of file :’’’’’’’’’> FILE VAR f := sequential file (modify, auskunftsdatei);’’’. show (f, anfangszeile + taste, endzeile).’END PROC tecal auskunft;’’’’’’PROC tecal auskunft :’’’’’’’’’ IF NOT auskunft aktiv ’’’’’’ THEN TEXT VAR char; ’’’’’’ INT VAR x,y; ’’’’’’’’. get edit cursor (x,y); ’’’’’’’’’’’’’’ cursor (1, y); ’’’’’’N out (""13""5""15" Funktionstaste drŪcken oder "14""); ’’’’’’’’’’’ inchar (char) ’’’’’. UNTIL char <> ""27"" PER;’’’’’’’’’’’’ out (""13""5"");’’’’’ disable stop;’’’’’’’’ INT VAR c := col; ’’’ col (1);’’’’’’’’’’’’’. auskunft aktiv := TRUE;’’’’’’’’’’’’’’. tecal auskunft (char);’’’’’’’’’’’’’’’. auskunft aktiv := FALSE;’’’’’’’’’’’’’ col (c);’’’’’’’’’’’’’N ELSE errorstop ("Auskunft innerhalb Auskunft geht nicht !")’’’’’’’’’’’’’’’END PROC tecal auskunft;’’’’’’.PROC x fetch (TEXT CONST n, TASK CONST t): ’’’ enable stop; ’’’’’’’’’’’’’’’ fetch (n,t) END PROC x fetch; ’’’’’’’’’’’’END PACKET tecal auskunft;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’(TEXT VAR) lese zeile, BOOL PROC is eof,’’’’’’’’> PROC (INT CONST, INT VAR, INT VAR) open,’’’’’’’’’’’’’. PROC (INT CONST, INT CONST) close,’’’N PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute, ’’’’’’’’’. PROC (INT CONST, TEXT VAR,’’’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator,’’’’’> elan listings erlaubt CAND is elan source (eingabe),  headline (eingabe) );END PROC print;’’’’’’’’’’’’’’’^PROC lese zeile (TEXT VAR zeile l) : getline (eingabe, zeile l) END PROC lese zeile;’’’’’’’’’’>BOOL PROC is eof : eof (eingabe) END PROC is eof;’’’’’’’’’’’’’>BOOL PROC is elan source (FILE VAR eingabe l) :’’’’’’’’’’’’’’’hole erstes symbol;’’’’’’’’’’’Nelan programm tag COR elan programm bold COR kommentar COR elanlist anweisung’. elan programm tag :’’’’’’’’’> symbol type = tag type CAND pos (zeile, ";") > 0 ’’’’’’’’’. elan programm bold :’’’’’’’’. symbol type = bold type CAND is elan bold’ . is elan bold :’’’’’’’’’’^ (elan bolds CONTAINS symbol) COR deklaration COR proc oder op (naechstes symbol)’’’’’’ . deklaration :’’’’’’’’’’’. next symbol (naechstes symbol);’’’’’’’> naechstes symbol = "VAR" OR naechstes symbol = "CONST"> pos (zeile, "(*") > 0 OR pos (zeile, "{") > 0 ’’’’’’’’’’’’. elanlist anweisung :’’’’’’’’. symbol = "#" AND elanlist folgt’’’’’’’’’’’ . elanlist folgt :’’’’’’’’. next symbol (naechstes symbol);’’’’’’’. naechstes symbol = "elanlist"’’’’’’’’’ hole erstes symbol :’’’’’’’’. hole erstes nicht blankes symbol; ’’’’’’’’ scan (zeile);’’’’’’’’’’’’’. next symbol (symbol, symbol type);’’’’’’’’. . hole erstes nicht blankes symbol :’’’’’’N IF eof (eingabe l) THEN LEAVE is elan source WITH FALSE FI;’’’’’’’’’’’. REP getline (eingabe l, zeile);’’’’’’’N UNTIL pos (zeile, ""33"",""254"", 1) > 0 OR eof (eingabe l) PER;’’’’’’ reset (eingabe l);’’’’END PROC is elan source;’’’’’’N(****************************************************************)’’’’’’’’’’’’.bottom label for elan listings ("");’’’’’’’’’’>PROC bottom label for elan listings (TEXT CONST label) :’’’’’’ bottom label := label;’’’.END PROC bottom label for elan listings;’’’’’’nTEXT PROC bottom label for elan listings : bottom label END PROC bottom label for elan listings;’’’’’’’’’’’’’’>PROC print (PROC (TEXT VAR) next line, BOOL PROC eof, ’’’’’’’’> PROC (INT CONST, INT VAR, INT VAR) open,’’’’’’’’’’. PROC (INT CONST, INT CONST) close,N PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute,’’’’’’’. PROC (INT CONST, TEXT VAR,’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator,’’> BOOL CONST elan listing, TEXT CONST file name) :’’gedruckte seiten := 0;’’’’’’’’>drucke datei (PROC (TEXT VAR) next line, BOOL PROC eof,’’’’’’’> PROC (INT CONST, INT VAR, INT VAR) open,’’’’’’’’> PROC (INT CONST, INT CONST) close,’’’’’’’’’’’’’’N PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute,’’’’’. PROC (INT CONST, TEXT VAR,’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator,. elan listing, file name );’’’’’’.IF is error THEN behandle fehlermeldung FI;’’’. behandle fehlermeldung :’’’’> TEXT CONST fehler meldung := error message;’’’’’’’’’’’’’’’. INT CONST fehler zeile := error line,’’. fehler code := error code;’’ clear error;’’’’’’’’’’’’’’ IF NOT vor erster seite’’’ THEN IF seite ist offenN THEN schliesse seite ab (PROC (INT CONST, INT CONST) close,’’’’^ PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute )’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’ clear error;’’’’’’. close (document, 0);’’’’’’’’’’’’’’ clear error;’’’’’’ initialisierung;’’’’’’’’’’^ errorstop (fehler code, fehler meldung (* + " -> " + text (fehler zeile) *) );’’’’’’’’’’’’END PROC print; ’’’’’’’’’’’’’’d xpos := 0;’’’d ypos := 0;’’’d token. offset index := 1;’’’material wert := "";’’gedruckte seiten := 0;’’’NINT PROC x pos : d xpos END PROC x pos;’’’’’’’’’’’’’NINT PROC y pos : d ypos END PROC y pos;’’’’’’’’’’’’’NINT PROC y offset index : d token. offset index END PROC y offset index;’’’’NINT PROC linetype : - d token. offset index END PROC linetype;’’’’’’’’’’NTEXT PROC material : material wert END PROC material;’’’’’’’’’’NINT PROC pages printed : gedruckte seiten END PROC pages printed;’’’’’N(****************************************************************)’’’’’’’’’’’’>PROC drucke datei (PROC (TEXT VAR) next line, BOOL PROC eof,’’> PROC (INT CONST, INT VAR, INT VAR) open,’’’> PROC (INT CONST, INT CONST) close,’’’’’’’’’N PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute,. PROC (INT CONST, TEXT VAR,’n INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator,’’’’’’’’’’’N BOOL CONST elan listing, TEXT CONST file name ) :’’’’’’’’’’IF elan listing’’’’’’’’’’’’’’’. THEN dateiname := file name;’’’’’’’’’’’’’’’ drucke elan listing;’’ ELSE drucke text datei;’’’’ drucke text datei :’’’’’’’’’ initialisiere druck; ’’’’’ WHILE NOT eof’’’’’’’’’’’’’ REP next line (zeile); ’’’> analysiere zeile (PROC (INT CONST, TEXT VAR,’’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’’’’’’’’. drucke token soweit wie moeglich;’’’’’. werte anweisungsspeicher aus;’’’’’’’’’ schliesse druck ab; ’’’’’’ initialisiere druck :’’’’’’’. IF NOT initialized (in dieser task)’’’’’’’ THEN ds := nilspace;’’’ initialisierung’’’. vor erster seite := TRUE;’’’. tabellen modus := FALSE;’’. block modus := FALSE;’’. zeile ist absatzzeile := TRUE;’’’N x wanted := x step conversion (std x wanted);’’’’’’’N y wanted := y step conversion (std y wanted);’’’’’’’N limit := x step conversion (std limit);’’’’’’’’’’N pagelength := y step conversion (std pagelength);’’’’’> linefeed faktor := std linefeed faktor;’’’’> material wert := std material;’’’’’’’’’’’. indentation := 0;’’’’’’. modifikations modus := maxint; . seitenlaenge := maxint;’. papierlaenge := maxint;’. left margin := 0;’’’’’’. top margin := 0;’’’’’’> a ypos := top margin;’’’’’’’’’’’’’. a font := -1;’’’’’. a modifikationen := 0;’’’’’’. aktuelle spalte := 1;’’’’’’. anzahl spalten := 1;’’’’’’ stelle neuen font ein (1); loesche tabellenspeicher;’ loesche markierung;’’’’’’’ loesche alte markierung;’’ loesche durchschuss;’’’’’’ schliesse druck ab :’’’’’’’’ IF NOT vor erster seite’’’ THEN IF seite ist offenN THEN schliesse seite ab (PROC (INT CONST, INT CONST) close,’’’’^ ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’font convertor 9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²/a€ė’’IIFF$’’’’$$J>‚’ž’’’’a€’’’’’’’’’’’’’’€’’’’’’’’’’’’I’’’’’’’’’’’’’’’’’’”€’N’’’’’’’’’’’’’’’’’’’ń€’M’’’’’’’’’’’’’’’’’’’A’#’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‚’+’’’’’’’’’’’’’’’’’’’Q‚’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’”‚’3’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’ƒ’)’’’’’’’’’’’’’’’’’’’1ƒ’’’’’’’’’’’’’’’’’’’’Qƒ’’’’’’’’’’’’’’’’’’’’’’.;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qƒ’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’у’'’’’’’’’’’’’’’’’’’’’„’'’’’’’’’’’’’’’’’’’’’1„’'’’’’’’’’’’’’’’’’’’’a„’'’’’’’’’’’’’’’’’’’’’‘„’'’’’’’’’’’’’’’’’’’’’Į„’'’’’’’’’’’’’’’’’’’’’ń„’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!…’'’’’’’’’’’’’’’’’’’’’Q…’'’’’’’’’’’’’’’’’’’’’…’'’’’’’’’’’’’’’’’’’’’±…’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į…’'’’’’’’’’’’’’’’’’’’’†’'’’’’’’’’’’’’’’’’’’’A†’'’’’’’’’’’’’’’’’’’’’q†’'’’’’’’’’’’’’’’’’’’’”†’'’’’’’’’’’’’’’’’’’’’ц’'’’’’’’’’’’’’’’’’’’’‡’'’’’’’’’’’’’’’’’’’’’1‡’'’’’’’’’’’’’’’’’’’’’a‡’'’’’’’’’’’’’’’’’’’’’‘‡’'’’’’’’’’’’’’’’’’’’’Į‡’'’’’’’’’’’’’’’’’’’’’ń‡’'’’’’’’’’’’’’’’’’’’’!ˆ’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qˆ’?’’’’’’’’’’’’’’’’’’’”ˆ’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńˆ’)’’’’’’’’’’’’’’’’’’’!‰’)’’’’’’’’’’’’’’’’’’’Q‰’,’’’’’’’’’’’’’’’’’’’‰’-’’’’’’’’’’’’’’’’’’’±‰’4’’’’’’’’’’’’’’’’’’’ń‰’,’’’’’’’’’’’’’’’’’’’!Š’.’’’’’’’’’’’’’’’’’’’QŠ’-’’’’’’’’’’’’’’’’’’’Š’2’’’’’’’’’’’’’’’’’’’ĮŠ’3’’’’’’’’’’’’’’’’’’’‹’.’’’’’’’’’’’’’’’’’’’1‹’,’’’’’’’’’’’’’’’’’’’a‹’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘‹’+’’’’’’’’’’’’’’’’’’’Į‹’+’’’’’’’’’’’’’’’’’’’ń‹’,’’’’’’’’’’’’’’’’’’’!Œ’-’’’’’’’’’’’’’’’’’’’QŒ’1’’’’’’’’’’’’’’’’’’’‘Œ’.’’’’’’’’’’’’’’’’’’’ĮŒ’,’’’’’’’’’’’’’’’’’’’ńŒ’,’’’’’’’’’’’’’’’’’’’!’1’’’’’’’’’’’’’’’’’’’a’0’’’’’’’’’’’’’’’’’’’”’.’’’’’’’’’’’’’’’’’’’э’2’’’’’’’’’’’’’’’’’’’Ž’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŽ’:’’’’’’’’’’’’’’’’’’’‘Ž’5’’’’’’’’’’’’’’’’’’’ю’5’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’A’?’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’я’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’+’’’’’’’’’’’’’’’’’’’ń’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1‘’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‘’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į‘’’’’’’’’’’’’’’’’’’’’’’>’’’’’’’’’’’’’’’’’’’A’’?’’’’’’’’’’’’’’’’’’’‘’’8’’’’’’’’’’’’’’’’’’’ђ’G’’’’’’’’’’’’’’’’’’’!“’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q“’#’’’’’’’’’’’’’’’’’’’”“’’’’’’’’’’’’’’’’’’’’Į“’8’’’’’’’’’’’’’’’’’’’”’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’є’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń”’)’’’’’’’’’’’’’’’’’’’!•’3’’’’’’’’’’’’’’’’’’’a•’ ’’’’’’’’’’’’’’’’’’’’’.;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘•’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’–’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1–’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q–’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘–’0’’’’’’’’’’’’’’’’’’’’’ disable stop;’’’’’’’’і’’’’’’’’’’’’’’’’’’’’ń–’’’’’’’’’’’’’’’’’’’’’’load;’’’’’’’’’’’’’’’’—’)’’’’’’’’’’’’’’’’’’’’’ forget (ds);’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A—’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a—’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”—’0’’’’’’’’’’’’’’’’’’’į—’!’’’’’’’’’’’’’’’’’’’˜’&’’’’’’’’’’’’’’’’’’’A˜’S’’’’’’’’’’’’’’’’’’’”˜’K’’’’’’’’’’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’’’ disable stop;’’’’’’’’ń˜’&’’’’’’’’’’’’’’’’’’’!™’’’’’’’’’’’’’’’’’’’’A™’’’’’’’’’’’’’’’’’’’’a™’%’’’’’’’’’’’’’’’’’’’‘™’*’’’’’’’’’’’’’’’’’’’’’load;’’’’’’’’’’’’’’’’Į™’)’’’’’’’’’’’’’’’’’’’’’ forget (ds);’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń™’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC load :’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ enable stop;’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’1š’’’’’’’’’’’’’’’’’’’’Qš’’’’’’’’’’’’’’’’’’’’qš’’’’’’’’’’’’’’’’’’’’‘š’'’’’’’’’’’’’’’’’’’’’Įš’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᚒ’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’!›’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A›’’’’’’’’’’’’’’’’’’’’a›’’’’’’’’’’’’’’’’’’’’›’1’’’’’’’’’’’’’’’’’’’Į›’:’’’’’’’’’’’’’’’’’’’œ’3’’’’’’’’’’’’’’’’’’’Aœ’8’’’’’’’’’’’’’’’’’’’œ’,’’’’’’’’’’’’’’’’’’’±œ’'’’’’’’’’’’’’’’’’’’’ᜒ:’’’’’’’’’’’’’’’’’’’!’(’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’į’3’’’’’’’’’’’’’’’’’’’!ž’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’Qž’’’’’’’’’’’’’’’’’’’’qž’’’’’’’’’’’’’’’’’’’’‘ž’’’’’’’’’’’’’’’’’’’’±ž’.’’’’’’’’’’’’’’’’’’’įž’8’’’’’’’’’’’’’’’’’’’!Ÿ’!’’’’’’’’’’’’’’’’’’’QŸ’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’”Ÿ’’’’’’’’’’’’’’’’’’’’ĮŸ’’’’’’’’’’’’’’’’’’’’្8’’’’’’’’’’’’’’’’’’’! ’’’’’’’’’’’’’’’’’’’’A ’ ’’’’’’’’’’’’’’’’’’’q ’’’’’’’’’’’’’’’’’’’’‘ ’]’’’’’’’’’’’’’’’’’’’ń ’-’’’’’’’’’’’’’’’’’’’ PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute )’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’. close (document, 0);’’’’’’’’’’’’’’. drucke token soweit wie moeglich :’’’’’’’’’’. IF analysespeicher ist nicht leer’’’’’’’’’. THEN letztes token bei gleicher ypos; ’. IF NOT seite ist offen’’’’’’’’’’’’> THEN eroeffne seite (x wanted, y wanted,’’’’’’’N PROC (INT CONST, INT VAR, INT VAR) open);’’’ FI;’’’’’’’’’’’’’’’N IF seitenlaenge ueberschritten OR papierlaenge ueberschritten ’’’’. THEN neue seite oder spalte;’’’. analysiere zeile nochmal;’. ELSE sortiere neue token ein;’’. IF in letzter spalte’’’’’’> THEN drucke tokenspeicher (a ypos,’’’’’^ PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’ FI;’’’’’’’ FI;’’’’’’’’’’’’’’’. . seitenlaenge ueberschritten :’’’’’’’’’’’> a ypos + aktuelle zeilentiefe > seitenlaenge ’’’’’’’’’. . papierlaenge ueberschritten :’’’’’’’’’’’> a ypos + aktuelle zeilentiefe > papierlaenge ’’’’’’’’’ . neue seite oder spalte : IF in letzter spalte’’^ THEN INT CONST aktuelles y wanted := y wanted bei seitenwechel ohne page;’’’’’’’’’’N schliesse seite ab (PROC (INT CONST, INT CONST) close,’’’’’’’’^ PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’’’’’’’> eroeffne seite (x wanted, aktuelles y wanted,’N PROC (INT CONST, INT VAR, INT VAR) open);’’’’’’’’’’’’’’’ ELSE neue spalte;’’> . y wanted bei seitenwechel ohne page :’’’’’’’’’’’’’’’. IF seitenlaenge ueberschritten’’’’ THEN y wanted’’ ELSE 0’’’’’’’’’ FI. . analysiere zeile nochmal :’’’’’’’’’’’’’’. setze auf alte werte zurueck;’’’’’’’’’. loesche anweisungsspeicher;’’’’’’’’’’’> analysiere zeile (PROC (INT CONST, TEXT VAR,’’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’’’’’’’’. letztes token bei gleicher ypos;’’’’’’. sortiere neue token ein;’’’’’’’’’’’’’’. . setze auf alte werte zurueck :’’’’’’N zeile ist absatzzeile := letzte zeile war absatzzeile;’’’’’’’’’’’’’> a modifikationen := letzte modifikationen;’’’’> stelle neuen font ein (letzter font);’’’’’’’’’’’’’’. werte anweisungsspeicher aus :’’’’’’’’’’’’’’ INT VAR index;’’’’’’’’’’’’. FOR index FROM 1 UPTO anweisungszaehler’’’> SELECT anweisungs indizes ISUB index OF’’’’’’’’’’’’’’’> CASE a block : block anweisung’’’’’’’’’’> CASE a columns : columns anweisung’’’’’’’’> CASE a columnsend : columnsend anweisung’’’’’> CASE a free : free anweisung’’’’’’’’’’’> CASE a limit : limit anweisung’’’’’’’’’’> CASE a linefeed : linefeed anweisung’’’’’’’> CASE a material : material anweisung’’’’’’’> CASE a page0, a page1 : page anweisung’’’’’’’’’’’> CASE a pagelength : pagelength anweisung’’’’’> CASE a start : start anweisung’’’’’’’’’’> CASE a table : table anweisung’’’’’’’’’’> CASE a tableend : tableend anweisung ’’’’’’> CASE a clearpos0 : clearpos0 anweisung’’’’’’> CASE a clearpos1 : clearpos1 anweisung’’’’’’. CASE a lpos, a rpos, a cpos, a dpos’N : lpos rpos cpos dpos anweisung’’’’’’’’’’’’> CASE a bpos : bpos anweisung’’’’’’’’’’’> CASE a fillchar : fillchar anweisung’’’’’’’> CASE a textbegin0 : textbegin0 anweisung’’’’’> CASE a textbegin2 : textbegin2 anweisung’’’’’> CASE a textend : textend anweisung’’’’’’’’> CASE a indentation : indentation anweisung’’’’> CASE a y tab : y tab anweisung’’’’’’’’’’ END SELECT’’’’’’’’’’’’ loesche anweisungsspeicher; . block anweisung :’’’’’’’’ blockmodus := TRUE;’’’’ . columns anweisung :’’’’’’> IF anzahl spalten = 1 AND int conversion ok (param1)’’> AND real conversion ok (param2) ’> THEN anzahl spalten := max (1, int param); ’’’’’’’’’N luecke := x step conversion (real param);’’’’’’’’’’’’’’ . columnsend anweisung :’’’ anzahl spalten := 1;’’ aktuelle spalte := 1; ’> left margin := x wanted - x start + indentation;’’’ . free anweisung :’’’’’’’’’^ IF real conversion ok (param1) THEN a ypos INCR y step conversion (real param) FI;’’’’’ . limit anweisung :’’’’’’’’^ IF real conversion ok (param1) THEN limit := x step conversion (real param) FI;’’’’’’’’ . linefeed anweisung :’’’’’. IF real conversion ok (param1)’’’’’’’’’> THEN linefeed faktor := real param;’’’’’’’’’’’’’’. berechne letzte zeilengroesse;’ . material anweisung :’’’’’. material wert := param1;’’’’’’’’’’’’’’’ . page anweisung :’’’’’’’’’ IF seite ist offen’’’’’. THEN IF NOT in letzter spalte’’’’’’’. THEN neue spalte’’’’’’’’’’’’N ELSE schliesse seite ab (PROC (INT CONST, INT CONST) close,’^ PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’’’’> papier laenge := maxint;’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’. ELSE a ypos := top margin;’’’. papier laenge := maxint;’’’’’’’ . pagelength anweisung :’’’. IF real conversion ok (param1)’’’’’’’’’> THEN pagelength := y step conversion (real param); . start anweisung :’’’’’’’’^ IF real conversion ok (param1) THEN x wanted := x step conversion (real param) FI;’’’’’^ IF real conversion ok (param2) THEN y wanted := y step conversion (real param) FI;’’’’’ . table anweisung :’’’’’’’’ tabellenmodus := TRUE;’ . tableend anweisung :’’’’’ tabellenmodus := FALSE; . clearpos0 anweisung :’’’’. loesche tabellenspeicher;’’’’’’’’’’’’’’ . clearpos1 anweisung :’’’’. IF real conversion ok (param1) ’’’’’’’’> THEN int param := x step conversion (real param);’’’> FOR tab index FROM 1 UPTO anzahl tabs’’’’’’’’’’. REP IF tab position = int param. THEN tab typ := leer;’’’> delete int (tab liste, tab index);’> LEAVE clearpos1 anweisung;’’’’’’’’’ FI;’’’’’’’’ PER;’’’’’’’’’’’. . lpos rpos cpos dpos anweisung :’’’’’’’’’’. IF real conversion ok (param1)’’’’’’’’’N THEN neuer tab eintrag (anweisungs indizes ISUB index, param2) FI; ’ . bpos anweisung :’’’’’’’’’N IF real conversion ok (param2) CAND real conversion ok (param1)’’’’’’’’. CAND real (param2) > real param’’’> THEN neuer tab eintrag (a bpos, param2) FI;’’’’’’’’’ . fillchar anweisung :’’’’’ fill char := param1;’’ . textbegin0 anweisung :’’’> aktuelle einrueckbreite := alte einrueckbreite;’’’’’’’’> mark index l := alter mark index l;’’’’’’’’’> mark index r := alter mark index r;’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!”’’’’’’’’’’’’’’’’’’’’A”’7’’’’’’’’’’’’’’’’’’’”’;’’’’’’’’’’’’’’’’’’’Į”’,’’’’’’’’’’’’’’’’’’’ń”’,’’’’’’’’’’’’’’’’’’’!¢’-’’’’’’’’’’’’’’’’’’’Q¢’;’’’’’’’’’’’’’’’’’’’‘¢’-’’’’’’’’’’’’’’’’’’’Į¢’-’’’’’’’’’’’’’’’’’’’ń¢’-’’’’’’’’’’’’’’’’’’’!£’.’’’’’’’’’’’’’’’’’’’Q£’4’’’’’’’’’’’’’’’’’’’‘£’4’’’’’’’’’’’’’’’’’’’Ń£’,’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’1¤’2’’’’’’’’’’’’’’’’’’’q¤’2’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±¤’’’’’’’’’’’’’’’’’’’’Ѥ’’’’’’’’’’’’’’’’’’’’ń¤’’’’’’’’’’’’’’’’’’’’„’'’’’’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’a„’!’’’’’’’’’’’’’’’’’’’‘„’#’’’’’’’’’’’’’’’’’’’Į„’F’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’¦’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¦’’’’’’’’’’’’’’’’’’’’a¦’’’’’’’’’’’’’’’’’’’’¦’0’’’’’’’’’’’’’’’’’’’Į¦’’’’’’’’’’’’’’’’’’’’ᦒ/’’’’’’’’’’’’’’’’’’’!§’E’’’’’’’’’’’’’’’’’’’q§’'’’’’’’’’’’’’’’’’’’’”§’'’’’’’’’’’’’’’’’’’’’ѧ’'’’’’’’’’’’’’’’’’’’’Ø’'’’’’’’’’’’’’’’’’’’’1Ø’'’’’’’’’’’’’’’’’’’’’aØ’7’’’’’’’’’’’’’’’’’’’”Ø’K’’’’’’’’’’’’’’’’’’’ńØ’&’’’’’’’’’’’’’’’’’’’!©’K’’’’’’’’’’’’’’’’’’’q©’&’’’’’’’’’’’’’’’’’’’”©’&’’’’’’’’’’’’’’’’’’’Ń©’&’’’’’’’’’’’’’’’’’’’Ŗ’&’’’’’’’’’’’’’’’’’’’1Ŗ’<’’’’’’’’’’’’’’’’’’’qŖ’C’’’’’’’’’’’’’’’’’’’ĮŖ’@’’’’’’’’’’’’’’’’’’’«’%’’’’’’’’’’’’’’’’’’’A«’M’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘«’’’’’’’’’’’’’’’’’’’’±«’’’’’’’’’’’’’’’’’’’’Ń«’’’’’’’’’’’’’’’’’’’’ń«’’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’1¬’=’’’’’’’’’’’’’’’’’’’q¬’’’’’’’’’’’’’’’’’’’’‘¬’F’’’’’’’’’’’’’’’’’’’ᬒ<’’’’’’’’’’’’’’’’’’’!­’?’’’’’’’’’’’’’’’’’’’q­’L’’’’’’’’’’’’’’’’’’’Į­’A’’’’’’’’’’’’’’’’’’’®’?’’’’’’’’’’’’’’’’’’’a®’’’’’’’’’’’’’’’’’’’’®’0’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į®’’’’’’’’’’’’’’’’’’’’į®’'’’’’’’’’’’’’’’’’’’’Æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Æ’’’’’’’’’’’’’’’’’’’’QÆ’’’’’’’’’’’’’’’’’’’’qÆ’N’’’’’’’’’’’’’’’’’’’ĮÆ’’’’’’’’’’’’’’’’’’’’ᯒ’’’’’’’’’’’’’’’’’’’°’'’’’’’’’’’’’’’’’’’’’1°’’’’’’’’’’’’’’’’’’’’Q°’I’’’’’’’’’’’’’’’’’’’”°’.’’’’’’’’’’’’’’’’’’’Ѱ’%’’’’’’’’’’’’’’’’’’’±’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A±’’’’’’’’’’’’’’’’’’’’a±’(’’’’’’’’’’’’’’’’’’’‘±’8’’’’’’’’’’’’’’’’’’’ѱ’’’’’’’’’’’’’’’’’’’’ń±’@’’’’’’’’’’’’’’’’’’’A²’&’’’’’’’’’’’’’’’’’’’q²’(’’’’’’’’’’’’’’’’’’’”²’.’’’’’’’’’’’’’’’’’’’Ѳ’(’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³’*’’’’’’’’’’’’’’’’’’’1³’=’’’’’’’’’’’’’’’’’’’q³’G’’’’’’’’’’’’’’’’’’’Į³’1’’’’’’’’’’’’’’’’’’’“’0’’’’’’’’’’’’’’’’’’’A“’0’’’’’’’’’’’’’’’’’’’“’0’’’’’’’’’’’’’’’’’’’Į“’5’’’’’’’’’’’’’’’’’’’µ’;’’’’’’’’’’’’’’’’’’’Aµ’I’’’’’’’’’’’’’’’’’’’‘µ’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ѵ’$’’’’’’’’’’’’’’’’’’’¶’7’’’’’’’’’’’’’’’’’’’A¶’G’’’’’’’’’’’’’’’’’’’‘¶’,’’’’’’’’’’’’’’’’’’’Į¶’^’’’’’’’’’’’’’’’’’’’!·’>’’’’’’’’’’’’’’’’’’’a·’0’’’’’’’’’’’’’’’’’’’”·’6’’’’’’’’’’’’’’’’’’’į·’B’’’’’’’’’’’’’’’’’’’1ø’’’’’’’’’’’’’’’’’’’’Qø’I’’’’’’’’’’’’’’’’’’’”ø’5’’’’’’’’’’’’’’’’’’’įø’M’’’’’’’’’’’’’’’’’’’1¹’4’’’’’’’’’’’’’’’’’’’q¹’H’’’’’’’’’’’’’’’’’’’Į¹’K’’’’’’’’’’’’’’’’’’’ŗ’7’’’’’’’’’’’’’’’’’’’Qŗ’7’’’’’’’’’’’’’’’’’’’‘ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’±ŗ’’’’’’’’’’’’’’’’’’’’Ńŗ’’’’’’’’’’’’’’’’’’’’ńŗ’’’’’’’’’’’’’’’’’’’’»’)’’’’’’’’’’’’’’’’’’’A»’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a»’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’”»’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į»’(’’’’’’’’’’’’’’’’’’’ń»’D’’’’’’’’’’’’’’’’’’’A¼’’’’’’’’’’’’’’’’’’’’a¼’ ’’’’’’’’’’’’’’’’’’’‘¼’K’’’’’’’’’’’’’’’’’’’į¼’!’’’’’’’’’’’’’’’’’’’½’(’’’’’’’’’’’’’’’’’’’A½’D’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘½’’’’’’’’’’’’’’’’’’’’±½’’’’’’’’’’’’’’’’’’’’ѽ’5’’’’’’’’’’’’’’’’’’’¾’?’’’’’’’’’’’’’’’’’’’a¾’’’’’’’’’’’’’’’’’’’’¾’#’’’’’’’’’’’’’’’’’’’±¾’/’’’’’’’’’’’’’’’’’’’ń¾’/’’’’’’’’’’’’’’’’’’’1æ’2’’’’’’’’’’’’’’’’’’’qæ’3’’’’’’’’’’’’’’’’’’’±æ’:’’’’’’’’’’’’’’’’’’’ńæ’2’’’’’’’’’’’’’’’’’’’1Ą’4’’’’’’’’’’’’’’’’’’’qĄ’3’’’’’’’’’’’’’’’’’’’±Ą’4’’’’’’’’’’’’’’’’’’’ńĄ’5’’’’’’’’’’’’’’’’’’’1Į’4’’’’’’’’’’’’’’’’’’’qĮ’2’’’’’’’’’’’’’’’’’’’±Į’4’’’’’’’’’’’’’’’’’’’ńĮ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’1Ā’'’’’’’’’’’’’’’’’’’’’aĀ’,’’’’’’’’’’’’’’’’’’’‘Ā’!’’’’’’’’’’’’’’’’’’’ĮĀ’’’’’’’’’’’’’’’’’’’’įĀ’J’’’’’’’’’’’’’’’’’’’1Ć’L’’’’’’’’’’’’’’’’’’’Ć’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’”Ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮĆ’’’’’’’’’’’’’’’’’’’’įĆ’'’’’’’’’’’’’’’’’’’’’Ä’-’’’’’’’’’’’’’’’’’’’AÄ’!’’’’’’’’’’’’’’’’’’’qÄ’’’’’’’’’’’’’’’’’’’’‘Ä’I’’’’’’’’’’’’’’’’’’’įÄ’L’’’’’’’’’’’’’’’’’’’1Å’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’QÅ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qÅ’’’’’’’’’’’’’’’’’’’’‘Å’'’’’’’’’’’’’’’’’’’’’ĮÅ’’’’’’’’’’’’’’’’’’’’ńÅ’$’’’’’’’’’’’’’’’’’’’!Ę’’’’’’’’’’’’’’’’’’’’AĘ’Q’’’’’’’’’’’’’’’’’’’”Ę’R’’’’’’’’’’’’’’’’’’’Ē’’’’’’’’’’’’’’’’’’’’!Ē’’’’’’’’’’’’’’’’’’’’AĒ’5’’’’’’’’’’’’’’’’’’’Ē’’’’’’’’’’’’’’’’’’’’”Ē’O’’’’’’’’’’’’’’’’’’’Č’D’’’’’’’’’’’’’’’’’’’QČ’:’’’’’’’’’’’’’’’’’’’‘Č’<’’’’’’’’’’’’’’’’’’’ŃČ’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńČ’’’’’’’’’’’’’’’’’’’’É’'’’’’’’’’’’’’’’’’’’’AÉ’’’’’’’’’’’’’’’’’’’’qÉ’$’’’’’’’’’’’’’’’’’’’”É’’’’’’’’’’’’’’’’’’’’ĮÉ’R’’’’’’’’’’’’’’’’’’’!Ź’S’’’’’’’’’’’’’’’’’’’Ź’’’’’’’’’’’’’’’’’’’’”Ź’’’’’’’’’’’’’’’’’’’’ĮŹ’6’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’’’’’’’’’!Ė’O’’’’’’’’’’’’’’’’’’’Ė’D’’’’’’’’’’’’’’’’’’’ŃĖ’;’’’’’’’’’’’’’’’’’’’Ģ’<’’’’’’’’’’’’’’’’’’’QĢ’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qĢ’’’’’’’’’’’’’’’’’’’’”Ģ’!’’’’’’’’’’’’’’’’’’’ŃĢ’0’’’’’’’’’’’’’’’’’’’Ķ’!’’’’’’’’’’’’’’’’’’’AĶ’’’’’’’’’’’’’’’’’’’’aĶ’S’’’’’’’’’’’’’’’’’’’ĮĶ’P’’’’’’’’’’’’’’’’’’’!Ī’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’AĪ’;’’’’’’’’’’’’’’’’’’’Ī’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ī’’’’’’’’’’’’’’’’’’’’ĮĪ’!’’’’’’’’’’’’’’’’’’’ńĪ’(’’’’’’’’’’’’’’’’’’’!Ļ’!’’’’’’’’’’’’’’’’’’’QĻ’’’’’’’’’’’’’’’’’’’’qĻ’K’’’’’’’’’’’’’’’’’’’ĮĻ’M’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’1Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŠ’’’’’’’’’’’’’’’’’’’’qŠ’!’’’’’’’’’’’’’’’’’’’”Š’*’’’’’’’’’’’’’’’’’’’ŃŠ’!’’’’’’’’’’’’’’’’’’’Ń’’’’’’’’’’’’’’’’’’’’!Ń’M’’’’’’’’’’’’’’’’’’’qŃ’K’’’’’’’’’’’’’’’’’’’ĮŃ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’įŃ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’!Ņ’!’’’’’’’’’’’’’’’’’’’QŅ’)’’’’’’’’’’’’’’’’’’’Ņ’!’’’’’’’’’’’’’’’’’’’±Ņ’’’’’’’’’’’’’’’’’’’’ŃŅ’L’’’’’’’’’’’’’’’’’’’!Ó’K’’’’’’’’’’’’’’’’’’’qÓ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’‘Ó’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ó’’’’’’’’’’’’’’’’’’’’ŃÓ’!’’’’’’’’’’’’’’’’’’’Ō’ ’’’’’’’’’’’’’’’’’’’1Ō’’’’’’’’’’’’’’’’’’’’QŌ’S’’’’’’’’’’’’’’’’’’’±Ō’R’’’’’’’’’’’’’’’’’’’Õ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’1Õ’’’’’’’’’’’’’’’’’’’’QÕ’*’’’’’’’’’’’’’’’’’’’Õ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Õ’’’’’’’’’’’’’’’’’’’’ĮÕ’!’’’’’’’’’’’’’’’’’’’ńÕ’ ’’’’’’’’’’’’’’’’’’’!Ö’’’’’’’’’’’’’’’’’’’’AÖ’T’’’’’’’’’’’’’’’’’’’”Ö’Q’’’’’’’’’’’’’’’’’’’×’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’!×’’’’’’’’’’’’’’’’’’’’A×’+’’’’’’’’’’’’’’’’’’’q×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘×’’’’’’’’’’’’’’’’’’’’±×’)’’’’’’’’’’’’’’’’’’’į×’’’’’’’’’’’’’’’’’’’’Ų’’’’’’’’’’’’’’’’’’’’1Ų’D’’’’’’’’’’’’’’’’’’’Ų’!’’’’’’’’’’’’’’’’’’’±Ų’L’’’’’’’’’’’’’’’’’’’Ł’=’’’’’’’’’’’’’’’’’’’AŁ’’’’’’’’’’’’’’’’’’’’aŁ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ł’’’’’’’’’’’’’’’’’’’’”Ł’!’’’’’’’’’’’’’’’’’’’ŃŁ’ ’’’’’’’’’’’’’’’’’’’Ś’’’’’’’’’’’’’’’’’’’’!Ś’N’’’’’’’’’’’’’’’’’’’. loesche alte markierung;’’’’’’’’’’’’’’’ . textbegin2 anweisung :’’’> aktuelle einrueckbreite := alte einrueckbreite;’’’’’’’’> mark index l := alter mark index l;’’’’’’’’’> mark index r := alter mark index r;’’’’’’’’’. loesche alte markierung;’’’’’’’’’’’’’’’N neuer durchschuss (int (param1), y step conversion (real (param 2)));’’ . textend anweisung :’’’’’’> alte einrueckbreite := aktuelle einrueckbreite;’’’’’’’’. alter mark index l := mark index l;’’’. alter mark index r := mark index r;’’’ loesche markierung;’’’’ loesche durchschuss;’’’ . indentation anweisung :’’.(**) IF real conversion ok (param1)’’’’’’’’’> THEN int param := x step conversion (real param);’> left margin INCR (int param - indentation);’’’’. indentation := int param;’’’ . y tab anweisung :’’’’’’’’.(**) IF real conversion ok (param1)’’’’’’’’’> THEN int param := y step conversion (real param);’’’N IF int param <= seitenlaenge THEN a ypos := int param FI;’’’’’’ . param1 :’’’’’’’’’’’’’. IF (params1 zeiger ISUB index) <> 0> THEN name (params1, params1 zeiger ISUB index)’’ ELSE ""’’’’’’’’’ . param2 :’’’’’’’’’’’’’. IF (params2 zeiger ISUB index) <> 0> THEN name (params2, params2 zeiger ISUB index)’’ ELSE ""’’’’’’’’’ drucke elan listing :’’’’’’’. initialisiere elan listing;’’’’’’’’’’’’’’’ WHILE NOT eof’’’’’’’’’’’’’ REP next line (zeile);’’’’ zeilen nr INCR 1;’’’’’ drucke elan zeile;’’’’ schliesse elan listing ab; initialisiere elan listing : open document cmd;’’’’’’’’ hole elan list font;’’’’’’ initialisiere variablen;’’ elan fuss und kopf (1,’’’’> PROC (INT CONST, INT CONST) close,’’’’’’’’’’’’’> PROC (INT CONST, INT VAR, INT VAR) open,’’’’’’’N PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’ . open document cmd :’’’’’. material wert := "";’’’’’’’’’’. d token. offset index := 1;’’’’’’’’’’’. erster ypos index d := 0; ’’’’’’’’’’. vor erster seite := FALSE;’’’’’’’. seite ist offen := TRUE;’’’’’’’’. open (document, x size, y size);’’’’’’. vor erster seite := FALSE;’’’’’’’ . hole elan list font :’’’. d font := max (1, font ("elanlist"));’N get replacements (d font, replacements, replacement tabelle);’’’’’’’’’> einrueckbreite := indentation pitch (d font) ;’’’’’’’’^ font hoehe := font lead (d font) + font height (d font) + font depth (d font);’’’’. . initialisiere variablen :’’’’’’’’’’’’’’’. innerhalb einer liste := FALSE;’’’’’’’. vor erstem packet := TRUE;’’’’’’’’. zeilen nr := 0;’’’’’’’’’’’. select counter := 0;’’’’’’’’’’’> y wanted := y size DIV 23;’’’’’’’’’’’’’’’N pagelength := y size - y wanted - y wanted; ’’’’’’’’’’’’’’’^ x wanted := (min (x size DIV 10, x step conversion (2.54))’’’’’’’’’’’’’’’N DIV einrueckbreite) * einrueckbreite; ^ max zeichen zeile := (x size - x wanted - (x wanted DIV 3)) DIV einrueckbreite;’’’> max zeichen fuss := fusszeilenbreite;’’’’’’’’’’’’N layout laenge := min (38, max zeichen zeile DIV 3);’’’’’’’’’’’N layout laenge name := layout laenge - zeilen nr laenge - 8; ’’’’’’^ layout blanks := (layout laenge - zeilen nr laenge - 1) * " "; ’’’’’’’’’’’’’’’> refinement layout zeile := (layout laenge - 1) * " " ;. refinement layout zeile CAT "|" ;’’’’’N IF pagelength DIV fonthoehe - 6 < 35 OR max zeichen zeile < 65’’’’’’’’N THEN errorstop ("Schreibfeld fuer 'elan listing' zu klein") FI;’’’’ . fusszeilenbreite :’’N INT CONST dina 4 breite := x step conversion (21.0);’’’’’’’’’’’’’’. IF x size <= dina 4 breite’’’’’’N THEN (x size - 2 * x wanted) DIV einrueckbreite ’’’’’’’’’’’’’N ELIF 120 * einrueckbreite <= dina 4 breite - 2 * x wanted’’’’’’’’’N THEN (dina 4 breite - 2 * x wanted) DIV einrueckbreite ’’’’’’N ELSE min (120, (x size - 2 * x wanted) DIV einrueckbreite)’’’ FI schliesse elan listing ab :’ elan fuss und kopf (-1,’’’> PROC (INT CONST, INT CONST) close,’’’’’’’’’’’’’> PROC (INT CONST, INT VAR, INT VAR) open,’’’’’’’N PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’ close (document, 0);’’’’’’ drucke elan zeile :’’’’’’’’’. IF pos (zeile, "#page#") = 1 ’’’’’’’’’’’N THEN IF nicht am seiten anfang THEN seiten wechsel FI;’’’’’’’’’’’’’’’. ELIF pos (zeile, "#elanlist#") <> 1 ’’’’’’. THEN bestimme elan layout;’’’’’’’’’’’. bestimme elan zeile;’’’’’’’’’’’’^ gib elan text aus (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute); . seitenwechsel wenn noetig;’’’’’’ . nicht am seitenanfang :’> rest auf seite < pagelength - 3 * font hoehe’’’’’’’’’’ . seiten wechsel :’’’’’’’’ elan fuss und kopf (0,> PROC (INT CONST, INT CONST) close,’’’’’’’’’’’’’> PROC (INT CONST, INT VAR, INT VAR) open,’’’’’’’N PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’ bestimme elan layout :’’’’’’ IF innerhalb einer liste THEN leeres layout;’’. pruefe ende der liste ’’’’’’’’’’> ELIF pos (zeile, "P") <> 0 COR pos (zeile, ":") <> 0’’’’’’. THEN analysiere elan zeile’’’’’’’’’’’. ELIF innerhalb einer select kette ’’’’’’’ THEN leeres layout;’’. pruefe ende der select kette’’’’. ELIF pos (zeile, "SELECT") <> 0’’’’’’’’’’’. THEN analysiere select kette’’’’’’’’’ ELSE leeres layout ’’ elan text CAT "|";’’’’’’’’ . leeres layout :’’’’’’’’’> elan text := text (zeilen nr, zeilen nr laenge);’’’’’’. elan text CAT layout blanks;’’’’’’’’’’ . analysiere elan zeile :’ scan (zeile);’’’’’’’’’. next symbol (symbol, symbol type);’’’’> next symbol (naechstes symbol, naechster symbol type); IF packet anfang’’’’. THEN packet layout ’’’’’’’’’’’’’’ ELIF type anfang’’’’’’ THEN type layout’ ELIF proc op anfang’’’. THEN proc op layout’’’’’’’’’’’’’’> ELSE IF innerhalb einer select kette’’’’’’’’’’’> THEN pruefe ende der select kette;’’’’’. leeres layout’’’’’. ELIF refinement anfang’’’’’’. THEN refinement layout’. ELSE leeres layout’’’’’ FI;’’’’’’’’’’’’’’ . packet anfang :’’’’’’’’’ symbol = "PACKET"’’’’’ . type anfang :’’’’’’’’’’’ symbol = "TYPE"’’’’’’’ . proc op anfang :’’’’’’’’. IF proc oder op (symbol)’’’’’’’’’’’’> THEN naechster symbol type <> delimiter type’’’’’N ELIF (symbol <> "END") AND proc oder op (naechstes symbol)’’’’’’’’’’’’. THEN symbol := naechstes symbol;’N next symbol (naechstes symbol, naechster symbol type);’’’’’’> naechster symbol type <> delimiter type’’’’’ ELSE FALSE’’’’’’’ . refinemeqŚ’N’’’’’’’’’’’’’’’’’’’ĮŚ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’įŚ’$’’’’’’’’’’’’’’’’’’’Ū’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ū’’’’’’’’’’’’’’’’’’’’QŪ’!’’’’’’’’’’’’’’’’’’’Ū’’’’’’’’’’’’’’’’’’’’”Ū’8’’’’’’’’’’’’’’’’’’’įŪ’%’’’’’’’’’’’’’’’’’’’Ü’$’’’’’’’’’’’’’’’’’’’AÜ’%’’’’’’’’’’’’’’’’’’’qÜ’’’’’’’’’’’’’’’’’’’’‘Ü’4’’’’’’’’’’’’’’’’’’’ŃÜ’%’’’’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’’’’’’!Ż’O’’’’’’’’’’’’’’’’’’’Ż’V’’’’’’’’’’’’’’’’’’’įŻ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’!Ž’+’’’’’’’’’’’’’’’’’’’QŽ’’’’’’’’’’’’’’’’’’’’qŽ’O’’’’’’’’’’’’’’’’’’’ŃŽ’D’’’’’’’’’’’’’’’’’’’!ß’:’’’’’’’’’’’’’’’’’’’aß’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ß’’’’’’’’’’’’’’’’’’’’”ß’!’’’’’’’’’’’’’’’’’’’Ńß’4’’’’’’’’’’’’’’’’’’’ą’!’’’’’’’’’’’’’’’’’’’Aą’ ’’’’’’’’’’’’’’’’’’’qą’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’”ą’7’’’’’’’’’’’’’’’’’’’įą’!’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’1į’M’’’’’’’’’’’’’’’’’’’į’U’’’’’’’’’’’’’’’’’’’įį’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’!ā’’’’’’’’’’’’’’’’’’’’Aā’’’’’’’’’’’’’’’’’’’’aā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’”ā’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įā’’’’’’’’’’’’’’’’’’’’įā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’!ć’’’’’’’’’’’’’’’’’’’’Ać’K’’’’’’’’’’’’’’’’’’’‘ć’’’’’’’’’’’’’’’’’’’’±ć’'’’’’’’’’’’’’’’’’’’’įć’’’’’’’’’’’’’’’’’’’’ä’’’’’’’’’’’’’’’’’’’’Aä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aä’’’’’’’’’’’’’’’’’’’’ä’’’’’’’’’’’’’’’’’’’’”ä’8’’’’’’’’’’’’’’’’’’’įä’'’’’’’’’’’’’’’’’’’’’å’8’’’’’’’’’’’’’’’’’’’Qå’ ’’’’’’’’’’’’’’’’’’’å’K’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńå’’’’’’’’’’’’’’’’’’’’ńå’’’’’’’’’’’’’’’’’’’’ę’#’’’’’’’’’’’’’’’’’’’Aę’#’’’’’’’’’’’’’’’’’’’qę’"’’’’’’’’’’’’’’’’’’’”ę’(’’’’’’’’’’’’’’’’’’’Ńę’H’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ē’’’’’’’’’’’’’’’’’’’’Qē’'’’’’’’’’’’’’’’’’’’’ē’%’’’’’’’’’’’’’’’’’’’±ē’L’’’’’’’’’’’’’’’’’’’č’#’’’’’’’’’’’’’’’’’’’1č’B’’’’’’’’’’’’’’’’’’’č’*’’’’’’’’’’’’’’’’’’’±č’W’’’’’’’’’’’’’’’’’’’é’(’’’’’’’’’’’’’’’’’’’Aé’2’’’’’’’’’’’’’’’’’’’é’H’’’’’’’’’’’’’’’’’’’Ńé’O’’’’’’’’’’’’’’’’’’’1ź’G’’’’’’’’’’’’’’’’’’’ź’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ź’&’’’’’’’’’’’’’’’’’’’Ńź’"’’’’’’’’’’’’’’’’’’’ė’W’’’’’’’’’’’’’’’’’’’aė’)’’’’’’’’’’’’’’’’’’’‘ė’D’’’’’’’’’’’’’’’’’’’įė’N’’’’’’’’’’’’’’’’’’’1ģ’F’’’’’’’’’’’’’’’’’’’ģ’8’’’’’’’’’’’’’’’’’’’Įģ’*’’’’’’’’’’’’’’’’’’’ńģ’d’’’’’’’’’’’’’’’’’’’aķ’#’’’’’’’’’’’’’’’’’’’‘ķ’=’’’’’’’’’’’’’’’’’’’Ńķ’N’’’’’’’’’’’’’’’’’’’!ī’@’’’’’’’’’’’’’’’’’’’qī’2’’’’’’’’’’’’’’’’’’’±ī’*’’’’’’’’’’’’’’’’’’’įī’^’’’’’’’’’’’’’’’’’’’Aļ’(’’’’’’’’’’’’’’’’’’’qļ’2’’’’’’’’’’’’’’’’’’’±ļ’O’’’’’’’’’’’’’’’’’’’š’V’’’’’’’’’’’’’’’’’’’qš’B’’’’’’’’’’’’’’’’’’’Įš’R’’’’’’’’’’’’’’’’’’’!ń’E’’’’’’’’’’’’’’’’’’’qń’7’’’’’’’’’’’’’’’’’’’±ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’!ņ’’’’’’’’’’’’’’’’’’’’Aņ’2’’’’’’’’’’’’’’’’’’’ņ’6’’’’’’’’’’’’’’’’’’’Įņ’’’’’’’’’’’’’’’’’’’’įņ’$’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’Aó’D’’’’’’’’’’’’’’’’’’’‘ó’’’’’’’’’’’’’’’’’’’’±ó’A’’’’’’’’’’’’’’’’’’’ō’’’’’’’’’’’’’’’’’’’’!ō’’’’’’’’’’’’’’’’’’’’Aō’J’’’’’’’’’’’’’’’’’’’‘ō’?’’’’’’’’’’’’’’’’’’’įō’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’õ’’’’’’’’’’’’’’’’’’’’!õ’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aõ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’õ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’’’±õ’+’’’’’’’’’’’’’’’’’’’įõ’4’’’’’’’’’’’’’’’’’’’!ö’3’’’’’’’’’’’’’’’’’’’aö’@’’’’’’’’’’’’’’’’’’’±ö’3’’’’’’’’’’’’’’’’’’’ńö’@’’’’’’’’’’’’’’’’’’’A÷’3’’’’’’’’’’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END OP :=;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’÷’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±÷’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ų’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ų’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qų’’’’’’’’’’’’’’’’’’’’qų’’’’’’’’’’’’’’’’’’’’ų’C’’’’’’’’’’’’’’’’’’’Ńų’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ł’’’’’’’’’’’’’’’’’’’’Ał’ ’’’’’’’’’’’’’’’’’’’qł’ ’’’’’’’’’’’’’’’’’’’”ł’$’’’’’’’’’’’’’’’’’’’Ńł’'’’’’’’’’’’’’’’’’’’’ś’’’’’’’’’’’’’’’’’’’’!ś’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’(*’’’’’’’’’’’’’’’’’’’Aś’’’’’’’’’’’’’’’’’’’’aś’’’’’’’’’’’’’’’’’’’’ś’’’’’’’’’’’’’’’’’’’’”ś’ ’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’*)’’’’’’’’’’’’’’’’’’’Ńś’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńś’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aū’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ enable stop;’’’’’’’’’‘ū’’’’’’’’’’’’’’’’’’’’±ū’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’Ńū’’’’’’’’’’’’’’’’’’’’ńū’’’’’’’’’’’’’’’’’’’’ü’!’’’’’’’’’’’’’’’’’’’Aü’E’’’’’’’’’’’’’’’’’’’‘ü’F’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’įü’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’1ż’’’’’’’’’’’’’’’’’’’’Qż’’’’’’’’’’’’’’’’’’’’qż’:’’’’’’’’’’’’’’’’’’’±ż’'’’’’’’’’’’’’’’’’’’’įż’’’’’’’’’’’’’’’’’’’’’’ z := " ";’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’!ž’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qž’’’’’’’’’’’’’’’’’’’’‘ž’&’’’’’’’’’’’’’’’’’’’Įž’ ’’’’’’’’’’’’’’’’’’’ńž’^’’’’’’’’’’’’’’’’’’’Q’’/’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’ put z;’’’’’’’’’’’±’’Q’’’’’’’’’’’’’’’’’’’’T’’’’’’’’’’’’’’’’’’’r’T’’’’’’’’’’’’’’’’’’’Ņ’T’’’’’’’’’’’’’’’’’’’2’T’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ put z;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’5’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’2’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B’6’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’2’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’$’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’B’%’’’’’’’’’’’’’’’’’’’r’)’’’’’’’’’’’’’’’’’’’¢’H’’’’’’’’’’’’’’’’’’’ņ’-’’’’’’’’’’’’’’’’’’’"’0’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’Ā’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’&’’’’’’’’’’’’’’’’’’’r’K’’’’’’’’’’’’’’’’’’’Ā’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’!’’’’’’’’’’’’’’’’’’’b’,’’’’’’’’’’’’’’’’’’’’’I’’’’’’’’’’’’’’’’’’’ā’1’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’ ’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’‚’%’’’’’’’’’’’’’’’’’’’²’D’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’" ’’’’’’’’’’’’’’’’’’’’B ’!’’’’’’’’’’’’’’’’’’’r ’H’’’’’’’’’’’’’’’’’’’Ā ’%’’’’’’’’’’’’’’’’’’’ņ ’)’’’’’’’’’’’’’’’’’’’" ’G’’’’’’’’’’’’’’’’’’’r ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā ’"’’’’’’’’’’’’’’’’’’’ņ ’.’’’’’’’’’’’’’’’’’’’" ’’’’’’’’’’’’’’’’’’’’B ’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ . put font :’’’’’’’’’b ’’’’’’’’’’’’’’’’’’’’’’ put z;’’’’’’’’’’’‚ ’E’’’’’’’’’’’’’’’’’’’Ņ ’/’’’’’’’’’’’’’’’’’’’ ’0’’’’’’’’’’’’’’’’’’’R ’’’’’’’’’’’’’’’’’’’’r ’’’’’’’’’’’’’’’’’’’’’ ’/’’’’’’’’’’’’’’’’’’’Ņ ’(’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’" ’/’’’’’’’’’’’’’’’’’’’nt anfang :’’’’’> symbol type = tag type AND naechstes symbol = ":" ’’’’ . packet layout :’’’’’’’’’. IF nicht am seiten anfang AND’’’’’’’’’> (NOT vor erstem packet OR gedruckte seiten > 1)’’’’ THEN seiten wechsel’> layout (" ", naechstes symbol, "*") ;’’’’’’’’’’’’’’’. vor erstem packet := FALSE;’’’’’’’. select counter := 0;’’’’’’’’’’’. innerhalb einer liste := TRUE;’’’’’’’’ pruefe ende der liste; . type layout :’’’’’’’’’’’. layout (" ", naechstes symbol, ".");. select counter := 0;’’’’’’’’’’’ . proc op layout :’’’’’’’’. IF keine vier zeilen mehr’’’’’’’’’’’. THEN seiten wechsel’’’’’’’’’’’’’’. ELIF nicht am seitenanfang’’’’’’’’’’’’^ THEN cr plus lf (2, PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute); . layout (" ", naechstes symbol, ".");. select counter := 0;’’’’’’’’’’’. innerhalb einer liste := TRUE;’’’’’’’’ pruefe ende der liste;. . keine vier zeilen mehr :’’’’’’’’’’’’. rest auf seite <= 8 * font hoehe ’ . refinement layout :’’’’’. IF keine drei zeilen mehr’’’’’’’’’’’. THEN seiten wechsel’’’’’’’’’’’’’’. ELIF nicht am seitenanfang’’’’’’’’’’’’> THEN elan text := refinement layout zeile;’’’’’’’. gib elan text aus’’’’’’’’’’’^ (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’’’’’. layout (" ", symbol, " ");’’’’’’’. . keine drei zeilen mehr :’’’’’’’’’’’’. rest auf seite <= 7 * font hoehe ’ . pruefe ende der liste :’. IF pos (zeile, ":") <> 0’’’’’’’’’’’’’’ THEN scan (zeile);’. WHILE innerhalb einer liste’’’. REP next symbol (symbol);’’’’’N IF symbol = ":" THEN innerhalb einer liste := FALSE FI;’’’. UNTIL symbol = "" PER;’’’’’’’’. . innerhalb einer select kette :’’’’’’’’’’ select counter > 0’’’’. . analysiere select kette :’’’’’’’’’’’’’’’ scan (zeile);’’’’’’’’’. naechstes symbol := "";’’’’’’’’’’’’’’’. REP symbol := naechstes symbol;’’’’’’’. next symbol (naechstes symbol);’’’N IF naechstes symbol = "SELECT" CAND symbol <> "END"’’’’’’’’’’’’’’’. THEN select counter := 1;’’’’’’. untersuche select kette;’’ FI;’’’’’’’’’’’’’’’. UNTIL naechstes symbol = "" PER;’’’’’’ leeres layout;’’’’’’’’. . pruefe ende der select kette :’’’’’’’’’’. IF pos (zeile, "SELECT") <> 0’’’’’’’’’ THEN scan (zeile);’. naechstes symbol := "";’’’’’’’. untersuche select kette;’’’’’’. . untersuche select kette :’’’’’’’’’’’. REP symbol := naechstes symbol;’’’> next symbol (naechstes symbol);’’’’’’’’’’’’’’’> IF naechstes symbol = "SELECT"’’’’’’’’’’’’’’> THEN select counter INCR select step’’’’’> ELIF naechstes symbol = "ENDSELECT"’’’’’’’’’’’> THEN select counter DECR 1’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’. UNTIL naechstes symbol = "" PER;’ . select step :’’> IF symbol = "END" THEN -1 ELSE 1 FI’’’’’’’’’’ bestimme elan zeile : ’’’’’’ IF zeile ist nicht zu lang. THEN elan text CAT zeile;’’’’’’’’’’’’’’. ELSE drucke zeile in teilen ’’’’’’’’’’’. . zeile ist nicht zu lang :’’’’’’’’’’’’’’’. zeilen laenge := LENGTH zeile;’’’’’’’’. zeilen laenge <= rest auf zeile’’’’’’’ . rest auf zeile :’’’’’> max zeichen zeile - LENGTH elan text’’’’’’’’’’’’’’’ . drucke zeile in teilen : zeilen pos := 1;’’’’’’ bestimme einrueckung;’N WHILE zeile noch nicht ganz gedruckt REP teil layout PER;’’’’’’’’’’’’’ . bestimme einrueckung :’’N anzahl einrueck blanks := naechstes nicht blankes zeichen - 1;’’’’’’’’> IF anzahl einrueck blanks > rest auf zeile - 20’’’’’’’> THEN anzahl einrueck blanks := 0 FI;’’’’’’’’’’’’’’’. . zeile noch nicht ganz gedruckt :’’’’’’’’ bestimme zeilenteil;’’ NOT zeile ist zu ende’. . bestimme zeilenteil :’’’’’’’’’’’’’’’ bestimme laenge;’’^ zeilen teil := subtext (zeile, zeilen pos, zeilen pos + laenge - 1);’’’’’’’’’’’’’’. elan text CAT zeilen teil;’’’’’’’’. zeilen pos INCR laenge;’’’’’’’’’’’. . zeilen teil : par1’’’’’’’’’’’’’’. . bestimme laenge :’’’’’’’’’’’’’’’N INT VAR laenge := zeilen laenge - zeilen pos + 1;’’’’’’’’’’’’’’. IF laenge > rest auf zeile’’’’’> THEN laenge := rest auf zeile;’’’’’’’’’’’’’’N WHILE (zeile SUB (zeilen pos + laenge - 1)) <> " "’’’’’> REP laenge DECR 1 UNTIL laenge = 0 PER;N IF laenge = 0 THEN laenge := rest auf zeile FI;’’’’’’’’ FI;’’’’’’’’’’’’ . teil layout :’’’’’’’’’’’^ gib elan text aus (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute); ’’’’’’> elan text := (zeilen nr laenge - 1) * " "; ’’’’’’’’’’ elan text CAT "+";’’’’. elan text CAT layout blanks;’’’’’’’’’’ elan text CAT "|";’’’’N elan text cat blanks (anzahl einrueck blanks + teil einrueckung);’’’’’ seiten wechsel wenn noetig :> IF keine zeilen mehr AND NOT eof THEN seiten wechsel FI; ’ . keine zeilen mehr :’’’’’. rest auf seite <= 4 * font hoehe ’’’’’END PROC drucke datei;’’’’’’’’>BOOL PROC real conversion ok (TEXT CONST param) :’’’’’’’’’’’’’. real param := real (param);’’’’’’’’’’’’’’. last conversion ok AND real param >= 0.0’END PROC real conversion ok;’’>BOOL PROC int conversion ok (TEXT CONST param) :’’’’’’’’’’’’’’ int param := int (param);. last conversion ok AND int param >= 0 ’’’END PROC int conversion ok;’’’>PROC neuer tab eintrag (INT CONST typ, TEXT CONST param) :’’’’ suche neuen eintrag;’’’’’. sortiere neue tab position ein;’’’’’’’’’’ tab typ := typ;’’’’’. tab position := neue tab position;’’’’’’’. tab param := eventueller parameter;’’’ . suche neuen eintrag :’’ INT VAR index := 0;’’ REP index INCR 1;’’’’> IF tab speicher (index). tab typ = leer’’’’’’’’’’> THEN LEAVE suche neuen eintrag FI;’’’’’’’’’’’’. UNTIL index = max tabs PER;’’’’’’’’’’. LEAVE neuer tab eintrag;’’’’’’’’’’’’’. . sortiere neue tab position ein :’’’’’’’N INT VAR neue tab position := x step conversion (real param);’’’’’’’’’. FOR tab index FROM 1 UPTO anzahl tabs> REP IF tab position = neue tab position’’’’’’’’’’’’. THEN LEAVE neuer tab eintrag’’> ELIF tab position > neue tab position’’’’’’’’’’’’> THEN insert int (tab liste, tab index, index);> LEAVE sortiere neue tab position ein;’’’’ FI;’’’’’’’’’’’’’’ tab liste CAT index;’. tab index := anzahl tabs;’’’’’’’’’’’ . eventueller parameter : INT VAR link;’’’’’’’’ SELECT typ OF’’’’’’’’> CASE a dpos : insert (d strings, param, link); link> CASE a bpos : x step conversion (real(param))’’’’’’ OTHERWISE : 0’’’’ END SELECT’’’’’’’’’’’END PROC neuer tab eintrag;’’’PROC neue spalte :’’’’’’’’’’’’b ’*’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’² ’’’’’’’’’’’’’’’’’’’’Ņ ’/’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’1’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’1’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’1’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’‚’K’’’’’’’’’’’’’’’’’’’Ņ’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’/’’’’’’’’’’’’’’’’’’’²’*’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’J’’’’’’’’’’’’’’’’’’’¢’K’’’’’’’’’’’’’’’’’’’ņ’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’L’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’K’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’T’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’2’C’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’4’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’)’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’B’?’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’%’’’’’’’’’’’’’’’’’’’ņ’)’’’’’’’’’’’’’’’’’’’"’<’’’’’’’’’’’’’’’’’’’b’,’’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’ā’-’’’’’’’’’’’’’’’’’’’’4’’’’’’’’’’’’’’’’’’’R’D’’’’’’’’’’’’’’’’’’’¢’8’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’B’-’’’’’’’’’’’’’’’’’’’r’,’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’ ’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’!’’’’’’’’’’’’’’’’’’’ā’D’’’’’’’’’’’’’’’’’’’2’+’’’’’’’’’’’’’’’’’’’b’R’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’N’’’’’’’’’’’’’’’’’’’’$’’’’’’’’’’’’’’’’’’’B’;’’’’’’’’’’’’’’’’’’’‚’Q’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’ ’’’’’’’’’’’’’’’’’’’r’-’’’’’’’’’’’’’’’’’’’¢’E’’’’’’’’’’’’’’’’’’’ņ’M’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’&’’’’’’’’’’’’’’’’’’’²’C’’’’’’’’’’’’’’’’’’’ ’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2 ’’’’’’’’’’’’’’’’’’’’R ’’’’’’’’’’’’’’’’’’’’r ’’’’’’’’’’’’’’’’’’’’‚ ’%’’’’’’’’’’’’’’’’’’’² ’>’’’’’’’’’’’’’’’’’’’ņ ’’’’’’’’’’’’’’’’’’’’!’"’’’’’’’’’’’’’’’’’’’B!’%’’’’’’’’’’’’’’’’’’’r!’;’’’’’’’’’’’’’’’’’’’²!’’’’’’’’’’’’’’’’’’’’Ņ!’%’’’’’’’’’’’’’’’’’’’"’)’’’’’’’’’’’’’’’’’’’2"’@’’’’’’’’’’’’’’’’’’’‚"’G’’’’’’’’’’’’’’’’’’’Ņ"’M’’’’’’’’’’’’’’’’’’’"#’>’’’’’’’’’’’’’’’’’’’b#’’’’’’’’’’’’’’’’’’’’’#’"’’’’’’’’’’’’’’’’’’’Ā#’-’’’’’’’’’’’’’’’’’’’ņ#’,’’’’’’’’’’’’’’’’’’’"$’’’’’’’’’’’’’’’’’’’’B$’ ’’’’’’’’’’’’’’’’’’’r$’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’$’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ$’(’’’’’’’’’’’’’’’’’’’%’9’’’’’’’’’’’’’’’’’’’B%’K’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’’²%’H’’’’’’’’’’’’’’’’’’’&’O’’’’’’’’’’’’’’’’’’’b&’-’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²&’4’’’’’’’’’’’’’’’’’’’ņ&’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’’2'’.’’’’’’’’’’’’’’’’’’’b'’0’’’’’’’’’’’’’’’’’’’¢'’R’’’’’’’’’’’’’’’’’’’(’’’’’’’’’’’’’’’’’’’’"(’’’’’’’’’’’’’’’’’’’’R(’,’’’’’’’’’’’’’’’’’’’‚(’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢(’’’’’’’’’’’’’’’’’’’’Ā(’%’’’’’’’’’’’’’’’’’’’ņ(’A’’’’’’’’’’’’’’’’’’’B)’L’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²)’’’’’’’’’’’’’’’’’’’’Ņ)’1’’’’’’’’’’’’’’’’’’’*’1’’’’’’’’’’’’’’’’’’’R*’B’’’’’’’’’’’’’’’’’’’¢*’’’’’’’’’’’’’’’’’’’’Ā*’#’’’’’’’’’’’’’’’’’’’ņ*’’’’’’’’’’’’’’’’’’’’+’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’B+’’’’’’’’’’’’’’’’’’’’b+’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚+’’’’’’’’’’’’’’’’’’’’¢+’’’’’’’’’’’’’’’’’’’’²+’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ+’’’’’’’’’’’’’’’’’’’’ņ+’’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’’2,’’’’’’’’’’’’’’’’’’’’R,’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r,’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC put z :’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’’²,’’’’’’’’’’’’’’’’’’’’’’ z := " ";’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ,’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ,’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ INT VAR p;’’’’’’’’’"-’$’’’’’’’’’’’’’’’’’’’R-’&’’’’’’’’’’’’’’’’’’’‚-’’’’’’’’’’’’’’’’’’’’’-’E’’’’’’’’’’’’’’’’’’’ā-’*’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’.’)’’’’’’’’’’’’’’’’’’’B.’’’’’’’’’’’’’’’’’’’’R.’E’’’’’’’’’’’’’’’’’’’¢.’-’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ.’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ.’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"/’’’’’’’’’’’’’’’’’’’’B/’ ’’’’’’’’’’’’’’’’’’’’’ buffer’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r/’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’font convertor 9’’’’’’’’’’’’’’'’’’’’’’NPACKET font convertor (* Autor : Rudolf Ruland *) N (* Stand : 29.03.88 *)’. DEFINES create font table ,’’’’’’’’’’’ add fonts,’’’’. create font file :’’’’’’’’’’’’^(* >>> ******************************************************* a ypos := top margin;’’’> aktuelle zeilentiefe der letzten zeile := 0;’’’’’’’’’’’’’. left margin INCR (limit + luecke);’’’ aktuelle spalte INCR 1;’’END PROC neue spalte ;’’’’’’’’.BOOL PROC proc oder op (TEXT CONST symbol) :’’. symbol = "PROC" OR symbol = "PROCEDURE"’’’’’. OR symbol = "OP" OR symbol = "OPERATOR" ’’ENDPROC proc oder op ;’’’’’’’’>PROC layout (TEXT CONST pre, TEXT VAR name, TEXT CONST post) :>name := subtext (name, 1, layout laenge name) ;’’’’’’’’’’’’’’’>elan text := text (zeilen nr, zeilen nr laenge);’’’’’’’’’’’’’elan text CAT pre;’’’’’’’’’’’’elan text CAT name;’’’’’’’’’’’elan text CAT " ";’’’’’’’’’’’’.generiere strukturiertes layout;’’’’’’’’’’’’’’.. generiere strukturiertes layout :’’’’’’’’’’’ INT VAR index;’’’’’’’’’’’’> FOR index FROM 1 UPTO layout laenge - LENGTH elan text - 1. REP elan text CAT post PER;’’’’’’’’’’’END PROC layout ;’’’’’’’’’’’’’.PROC elan text cat blanks (INT CONST anzahl) : par2 := anzahl * " ";’’’’’’’ elan text CAT par2;’’’’’’’’’END PROC elan text cat blanks;N(***********************************************************************)’’’’’>PROC analysiere zeile (PROC (INT CONST, TEXT VAR,’’’’’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator) :’’’’’’’’’’’’’’loesche analysespeicher;’’’’’’behandle fuehrende blanks;’’’’pruefe ob markierung links;’’’IF tabellen modus’’’’’’’’’’’. THEN analysiere tabellenzeile’’’’’’’’’’’’.ELIF letzte zeile war absatzzeile ’’’’’’’’’’’’. THEN analysiere zeile nach absatzzeile ’’. ELSE analysiere zeile nach blockzeile’’’’pruefe center und right modus;pruefe ob tabulation vorliegt;werte indexspeicher aus;’’’’’’.IF zeile ist keine anweisungszeile ’’’’’’’’’’. THEN berechne zeilenvorschub;’’’’’’’’’’’’’’. pruefe ob markierung rechts;’’’’’’’’’’. ELSE behandle anweisungszeile;’’’’’’’’’’’’’. analysiere zeile nach absatzzeile :’’’’’’’’’ test auf aufzaehlung;’’’’’. IF zeile muss geblockt werden ’’’’’’’’’’’’> THEN analysiere blockzeile nach absatzzeile ’’’’’’’’’’’> ELSE analysiere absatzzeile nach absatzzeile ’’’’’’’’’’. analysiere zeile nach blockzeile :’’’’’’’’’’. IF zeile muss geblockt werden ’’’’’’’’’’’’> THEN analysiere blockzeile nach blockzeile ’’’’’’’’’’’’> ELSE analysiere absatzzeile nach blockzeile’’’’’’’’’’’’ behandle fuehrende blanks :’ zeilenpos := 1;’’’’’’’’’’’> zeilenpos := naechstes nicht blankes zeichen; ’’’’’’’’’’’’> letzte zeile war absatzzeile := zeile ist absatzzeile; ’’’> IF letzte zeile war absatzzeile THEN neue einrueckung FI;’ IF zeilenpos = 0’’’’’’’’’’. THEN behandle leerzeile;’’’’’’’’’’’’’’’. LEAVE analysiere zeile;’’’’’’’’’’’. ELSE initialisiere analyse;’’’’’’’’’’’’ . behandle leerzeile :’’’’. a ypos INCR (letzte zeilenhoehe +’’’’’^ aktuelle zeilentiefe der letzten zeile + durchschuss);’’’’’’’’’’’’’’’N aktuelle zeilentiefe der letzten zeile := letzte zeilentiefe;’’’’’’’’’> zeile ist absatzzeile := LENGTH zeile > 0;’’’’’’’’’’’’. pruefe ob markierung links;’’’’’’’’’’’. pruefe ob markierung rechts;’’’’’’’’’’ . neue einrueckung :’’’’’’> aktuelle einrueckbreite := einrueckbreite;’’’’’’’’’’’’ . initialisiere analyse :’N zeile ist absatzzeile := (zeile SUB LENGTH zeile) = blank;’’’’’^ zeile muss geblockt werden := block modus AND NOT zeile ist absatzzeile;’’’’’’’’’’’’> erstes token der zeile := token index f + 1;’’’’> zeilen laenge := laenge der zeile;’’’’’> anzahl einrueck blanks := zeilen pos - 1; ’’’’’’N anzahl zeichen := anzahl einrueck blanks;’’’’’’’’’’’’’’’n a xpos := left margin + anzahl zeichen * aktuelle einrueckbreite; ’’’’’’’’’’’’’’. a modifikationen fuer x move := 0;’’’’> letzter font := a font;’’’’’’’’’’’’’’’> letzte modifikationen := a modifikationen;’’’’’. fuehrende anweisungen := 0;’’’’. initialisiere zeilenvorschub;’’’’’’’’’N IF zeile muss geblockt werden THEN initialisiere tab variablen FI;’’’’N IF hoechster index zaehler > 0 THEN loesche index speicher FI;’’’’’’’’ . laenge der zeile :’’. IF zeile ist absatzzeile’’’’’’’’’’. THEN LENGTH zeile - 1’’’’’’’’’’. ELSE LENGTH zeile ’’’’’’’’’’’’’ FI pruefe ob markierung links :. INT VAR linkes markierungs token;’’’’’’’’’ IF markierung links’’’’’’’> THEN mark token (mark index l). xpos := ’’’’’’’’’’’’’’’N left margin - mark token (mark index l). breite;’> linkes markierungs token := token index f + 1;’’’’> lege markierungs token an (mark index l);’’’’’’’’’> erstes token der zeile := token index f + 1;’’’’’’. initialisiere tab variablen;’’’’’’. ELSE linkes markierungs token := 0;’’’’ analysiere tabellenzeile : ’. anfangs blankmodus := doppel blank;’’’’’’’. alte zeilenpos := zeilen pos;’’’’’’’’’. a xpos := left margin;’’’’’’’’. FOR tab index FROM 1 UPTO anzahl tabs’’’’’. REP lege fuell token an wenn noetig;’’’’’’. initialisiere tab variablen; ’’’’’’’’’ SELECT tab typ OF’’’’’. CASE a lpos : linksbuendige spalte> CASE a rpos : rechtsbuendige spalte’’’’’’’’’’’’’’’. CASE a cpos : zentrierte spalte’’’. CASE a dpos : dezimale spalte’’’’’. CASE a bpos : geblockte spalte’’’’ END SELECT;’’’’’’’’’’’. berechne fuell token wenn noetig;’’’’’ tabulation;’’’’’’’’’’’ analysiere rest der zeile;. . lege fuell token an wenn noetig :’’’’’’’ IF fill char <> blank’> THEN fuellzeichen := fill char;’’’’N fuellzeichen breite := string breite (fuellzeichen);’> token zeiger := zeilen pos;’’’N erstes fuell token := token index f + 1;’’’’’’’’’’’’^ lege token an (zeile, token zeiger, zeilen pos - 1, text token);’’’’’’’’’’’’’’> letztes fuell token := token index f;N a modifikationen fuer x move := a modifikationen’’’’’’’’’’’’’’. . berechne fuell token wenn noetig :’’’’’’. IF erstes fuell token <> leer’’’’’’’’’> THEN IF letztes fuell token <> token index f ’’’’’’. THEN berechne fuell token;’. ELSE loesche letzte token;’ FI;’’’’’’’’’’’. erstes fuell token := leer’’’’. . berechne fuell token :’’’’’’’’’’’’’’> INT VAR anzahl fuellzeichen, fuell breite;’’’’’’’’> token index := erstes fuell token;’’’’’’’’N anzahl fuellzeichen := (tab anfang - t. xpos + left margin) ’’’’’’N DIV fuellzeichen breite;’’’’’N rest := (tab anfang - t. xpos + left margin) ’’’’’’N MOD fuellzeichen breite;’’’’’. IF anzahl fuell zeichen > 0’’’’’’’N THEN fuell text := anzahl fuellzeichen * fuellzeichen; ’’’’’’^ fuell breite := anzahl fuellzeichen * fuellzeichen breite; ’’’’’’’’’’’’’’’^ FOR token index FROM erstes fuell token UPTO letztes fuell token’’’’’’’’’’> REP t. text := fuell tex********** <<< *)’’’’’’’’’’’’’’’.INT CONST int length := length of one int,’’’. highest bit := int length * 8 - 1;’’. length of one int :’’’’’’’’’> INT VAR int counter := 0, int value := max int;’’’’’’’’’’’ REP int counter INCR 1;’’’. int value := int value DIV 256;’’’’’ UNTIL int value = 0 PER;’’ int counter’’’’’’’’’’’’’’’^(* >>> ***************************************************************** <<< *)’’’’’’’’’’’’’’’.LET t tag = 1,’’’’’’’. t bold = 2,’’’’’’’. t number = 3,’’’’’’’. t text = 4,’’’’’’’. t operator = 5,’’’’’’’. t delimiter = 6,’’’’’’’. t end of file = 7,’’’’’’’. nil modus = 0,’’’’’’’. font table modus = 1,’’’’’’’. font modus = 2,’’’’’’’. extension modus = 3,’’’’’’’. x unit = 1,’’’’’’’. y unit = 2,’’’’’’’. on string = 3,’’’’’’’. off string = 4,’’’’’’’. indentation pitch = 5,’’’’’’’. font lead = 6,’’’’’’’. font height = 7,’’’’’’’. font depth = 8,’’’’’’’. larger font = 9,’’’’’’’. smaller font = 10,’’’’’’’. font string = 11,’’’’’’’. y off sets = 12,’’’’’’’. bold off set = 13;’’’’’’’NTHESAURUS VAR names, english identification := empty thesaurus,’’’’’’’’’’’’’’’N german identification := empty thesaurus;’’’’’’’’’’’’’’’.insert (english identification, "xunit");’’’’’.insert (english identification, "yunit");’’’’’.insert (english identification, "onstring");’’.insert (english identification, "offstring");’>insert (english identification, "indentationpitch");’’’’’’’’’’.insert (english identification, "fontlead");’’.insert (english identification, "fontheight");.insert (english identification, "fontdepth");’>insert (english identification, "nextlargerfont");’’’’’’’’’’’’>insert (english identification, "nextsmallerfont");’’’’’’’’’’’.insert (english identification, "fontstring");.insert (english identification, "yoffsets");’’.insert (english identification, "boldoffset");.insert (german identification, "xeinheit");’’’.insert (german identification, "yeinheit");’’’.insert (german identification, "onsequenz");’’.insert (german identification, "offsequenz");’>insert (german identification, "einrueckbreite");’’’’’’’’’’’’’.insert (german identification, "durchschuss");.insert (german identification, "fonthoehe");’’.insert (german identification, "fonttiefe");’’>insert (german identification, "groessererfont");’’’’’’’’’’’’’>insert (german identification, "kleinererfont");’’’’’’’’’’’’’’.insert (german identification, "fontsequenz");>insert (german identification, "yverschiebungen");’’’’’’’’’’’’>insert (german identification, "boldverschiebung");’’’’’’’’’’’>INT VAR modus, last modus, symbol type, int symbol, pitch,’’’’> identification nr, link nr, extension code 1,’’’’’’’’’> char code 1, char code, char pos, vorzeichen,’’’’’’’’’. replacements length, index;’’’’’’’’’’’NTEXT VAR symbol, font table name, replacement, char, buffer, z;’’’’’’’’’’’’’’’BOOL VAR english;’’’’’’’’’’’’’FILE VAR file, font file;’’’’’N(*****************************************************************) ’’’’’’’’’’LET max fonts = 50,’’’’’ max extensions = 120, ’’’ font table type = 3009,’’’ FONTTABLE = STRUCT (’’’’’’ THESAURUS font names, . TEXT replacements, font name links,’’’> extension chars, extension indexes, ’’’’’’’’’’’’’. ROW 4 TEXT on strings, off strings,’’’ REAL x unit, y unit,’’. ROW 256 INT replacements table,’’’’’’’. INT last font, last extension,’’’’’’’’ ROW max fonts STRUCT (> TEXT font string, font name indexes, replacements,N extension chars, extension indexes, y offsets,’’’’’’’’’’’’’’’> ROW 256 INT pitch table, replacements table,’’’’’’N INT indentation pitch, font lead, font height, font depth,’’’’’’’N next larger font, next smaller font, bold offset ) fonts ,’’’. ROW max extensions STRUCT (’’’’’’’’’’’ TEXT replacements,> ROW 256 INT pitch table, replacements table,’’’’’’^ INT std pitch ) extensions ,’’’’’’’’’’’’’’’ );’’’’.BOUND FONTTABLE VAR font table;’’’’’’’’’’’’’’’DATASPACE VAR ds;’’’’’’’’’’’’’INT VAR font nr, extension nr;.. font : font table. fonts (font nr)’’’’’>. extension : font table. extensions (extension nr)’’’’’’’’’’’.. line nr : line no (file) - 1’’’’’’’’’’’’’’N(*****************************************************************) ’’’’’’’’’’PROC create font table :’’’’’’. create font table (last param)’’’’’’’’’’END PROC create font table;’’’>PROC create font table (TEXT CONST font file name) :’’’’’’’’’’>file := sequential file (input, font file name);’’’’’’’’’’’’’’ds := nilspace;’’’’’’’’’’’’modus := nil modus;’’’’’’’’’’’.IF is error THEN error (errormessage) FI;’’’’’END PROC create font table;’’’>PROC add fonts (TEXT CONST font tab name, font file name) :’’’>file := sequential file (input, font file name);’’’’’’’’’’’’’’.font table name := font tab name;’’’’’’’’’’’’’.change all (font table name, " ", "");’’’’’’’’^IF NOT exists (font table name) COR type (old (font table name)) <> font table type’’’’’’’’’’’N THEN errorstop ("Fonttabelle """ + font table name + """ gibt es nicht")’’’.ds := old (font table name);’’’’’’’’fonttable := ds;’’’’’’’’’’’modus := font modus;’’’.font nr := fonttable. last font;’’’’’’’’’.extension nr := fonttable. last extension;’’’’.IF is error THEN error (errormessage) FI;’’’’’END PROC add fonts;’’’’’’’’’’’initialize loading;’’’’’’’’’’’REP get kennung; ’’’’’’’’’’’’’ get identification;’’’’’’’ get char specifications;’’.UNTIL symbol type >= t end of file PER;’’’’’’’font table found;’’’’’’’’’’’’’. initialize loading :’’’’’’’’ scan (file);’’’’’’’’’’’’’’ get next symbol;’’’’’’’’’’. font table found :’’’’’’’’’’ IF font nr = 0’’’’’’’’’’’’> THEN errorstop ("Fonts zur Fonttabelle """’’’’’’’’’’’’’> + font table name + """ fehlen"); ’’’’> ELSE font table. last font := font nr; ’’’’’’’’’’’> font table. last extension := extension nr; ’’’’’’. forget (font table name, quiet);’’. copy (ds, font table name);’’’’’’’> type (old (font table name), font table type);’’’’. forget (ds); ds := nilspace;’’’’’’. get next symbol :’’’’’’’’’’’. next symbol (file, symbol, symbol type);’’. get semicolon :’’’’’’’’’’’’’ get next symbol;’’’’’’’’’’> IF symbol <> ";" OR symbol type <> t delimiter ’’’’’’’’’’’. THEN errorstop ("';' erwartet") FI;’’’’ get kennung :’’’’’’’’’’’’’’’ cout (line nr);’’’’’’’’’’’ IF symbol type <> t bold ’. THEN errorstop ("Kennung erwartet") FI;> IF symbol = "FONTTABLE" OR symbol = "FONTTABELLE" ’’’’’’. THEN initialize font table;’’’’’’’’’’’’’. get font table name;’’’’’’’’’’’’’’’ ELIF symbol = "FONT"’’’’’’ THEN initialize font;’’’ get font names;’’’’> ELIF symbol = "EXTENSION" t;’’’’’’’’’’’’’’> t. breite := fuell breite;’’’’’’’’’’’’N IF erstes fuell token <> erstes token der zeile’’’’’’’> THEN t. xpos INCR rest DIV 2;’’’’’’^ t. modifikationen fuer x move := t. modifikationen;’’’’’’’’’’’ FI;’’’ PER;’’’’’’ FI;’’’’’’’’’’’’’’’. . fuell text : par1’’’’’’’’’’’’’’’. . loesche letzte token :’’’’’’’’’’’’’’N FOR token index FROM letztes fuell token DOWNTO erstes fuell token. REP loesche letztes token PER;’’’’ . tabulation :’’’’’’’’’’’’. alte zeilenpos := zeilenpos;’’’’’’’’’’> zeilenpos := naechstes nicht blankes zeichen; ’’’’’’’’ IF zeilenpos = 0’’’’’’> THEN zeilenpos := zeilenlaenge + 1; ’’’’’’’’’’’’’’’> LEAVE analysiere tabellenzeile;’’’’’’’’’’’’’’’> anzahl zeichen INCR zeilenpos - alte zeilenpos; ’’’’’’ . linksbuendige spalte : ’> a xpos := left margin + tab position;’’’’’’’’’’’’’. tab anfang := tab position;’’’’’’’’’’’> bestimme token bis terminator oder zeilenende’’’’’’’’’. (PROC (INT CONST, TEXT VAR,’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’’’’’’’ . rechtsbuendige spalte :’> bestimme token bis terminator oder zeilenende’’’’’’’’’. (PROC (INT CONST, TEXT VAR,’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’’’’’’’> schreibe zeile rechtsbuendig (tab position);’’’’’’’’’’ . zentrierte spalte :’’’’’> bestimme token bis terminator oder zeilenende’’’’’’’’’. (PROC (INT CONST, TEXT VAR,’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’’’’’’’. zentriere zeile (tab position);’’’’’’’ . dezimale spalte :’’’’’’’N d string := name (d strings, tab param);’’’’’’’’’’’’’N d code 1 := code (d string SUB 1) + 1;’’’’’’’’’’’’’’’N d pitch := zeichenbreiten (d code 1);’’’’’’’’’’’’’’’> zeichenbreiten (d code 1) := d code ausgang;’’’’’’’’’’> bestimme token bis terminator oder zeilenende’’’’’’’’’. (PROC (INT CONST, TEXT VAR,’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’’’’’’’. zeichenbreiten (d code 1) := d pitch;’. d code 1 := leer;’’’’> schreibe zeile rechtsbuendig (tab position);’’’’’’’’’’. IF zeichen ist dezimal zeichen’’’’’’’’> THEN IF tab position <> zeilen breite’’’’’’’’’’’’’’N THEN a xpos := left margin + tab position;’’’’’’’’’’’’’> tab anfang := tab position;’’’’’’’’’’’ FI;’’’’’’’’’’’> bestimme token bis terminator oder zeilenende’. (PROC (INT CONST, TEXT VAR,’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’. . zeichen ist dezimal zeichen :’’’’’’’> pos (zeile, d string, zeilen pos) = zeilen pos’’’ . geblockte spalte :’’’’’’. blankmodus := einfach blank;’’’’’’’’’’> a xpos := left margin + tab position;’’’’’’’’’’’’’. tab anfang := tab position;’’’’’’’’’’’> REP bestimme token bis terminator oder zeilenende’’’’’. (PROC (INT CONST, TEXT VAR,’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’’’’N IF zeile ist zu ende OR naechstes zeichen ist blank’’’’’’’’’’’’’’’. THEN blocke spalte wenn noetig;. LEAVE geblockte spalte;’’’. ELSE dehnbares blank gefunden;’ FI;’’’’’’’’’’’’’’’. . blocke spalte wenn noetig :’’’’’’’’’> IF letztes zeichen ist kein geschuetztes blank’’’’> THEN blocke zeile (tab param) FI;’’’’’’’’’’’’’’. blank modus := doppel blank;’’’’’’> . letztes zeichen ist kein geschuetztes blank :’’’’’’’^ pos (zeile, geschuetztes blank, zeilen pos - 1, zeilen pos - 1) = 0’’’’’’’’’’’’’’> AND NOT within kanji (zeile, zeilen pos - 2)’’’’. . analysiere rest der zeile :’’’’’’’’’’’’’. blankmodus := keine blankanalyse;’’’’’. zeilen pos := alte zeilenpos;’’’’’’’’’> bestimme token bis terminator oder zeilenende’’’’’’’’’. (PROC (INT CONST, TEXT VAR,’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’’’’’’’ test auf aufzaehlung : ’’’’’. anfangs blankmodus := einfach blank;’’’’’’> bestimme token bis terminator oder zeilenende’’’’’’’’’’’’’. (PROC (INT CONST, TEXT VAR,’’’’’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’’’’’’’’’’’ IF zeile ist zu ende’’’’’’> THEN LEAVE analysiere zeile nach absatzzeile’’’’’’’’’’’. ELSE aufzaehlung moeglich’’’’’’’’’’’’’’ . aufzaehlung moeglich :’’. bestimme letztes zeichen;’’’’’’’’’’’’’N IF (anzahl zeichen bei aufzaehlung < 2 AND letztes zeichen = "-")’N OR (anzahl zeichen bei aufzaehlung < 20 AND letztes zeichen = ":")’> OR (anzahl zeichen bei aufzaehlung < 7’’’’’’’’’’’’’N AND pos (".)", letztes zeichen) <> 0)’. OR naechstes zeichen ist blank’’’’’. THEN tabulator position gefunden;’’’. ELIF zeile muss geblockt werden’’’’’’’. THEN dehnbares blank gefunden;’’’’’’. . bestimme letztes zeichen : ’’’’’’’’’. token index := token index f;’’’’’> WHILE token index >= erstes token der zeile’’’’’’’. REP IF token ist text token ’’’’’’N THEN letztes zeichen := t. text SUB LENGTH t. text;’’’’’’’’> LEAVE bestimme letztes zeichen;’’’’’’’ FI;’’’’’’’’’’’. token index DECR 1;’’’’’’’’’’’ PER;’’’’’’’’’’’’’’. letztes zeichen := "";’’’’’’’’’’’’. . letztes zeichen : par1’’’’’’’’’’’’’’. . anzahl zeichen bei aufzaehlung :’’’’> anzahl zeichen - anzahl einrueck blanks’’’’’’’’’’’. . token ist text token :’’’’’’’’’’’’’’. t. offset index >= text token’’’’’. analysiere blockzeile nach absatzzeile :’’’’> REP bestimme token bis terminator oder zeilenende’’’’’’’’’. (PROC (INT CONST, TEXT VAR,’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’’’’’’’ IF zeile ist zu ende ’. THEN blocke zeile (limit);’’’’’’’’’> LEAVE analysiere blockzeile nach absatzzeile’’N ELSE analysiere blank in blockzeile nach absatzzeile ’’’’’’’’’’’’’’> . analysiere blank in blockzeile nach absatzzeile : ’’’’’’. IF naechstes zeichen ist blank’’’’’’’’. THEN tabulator position gefunden;’’. ELSE dehnbares blank gefunden;’’’’’. analysiere absatzzeile nach absatzzeile :’’’. blankmodus := doppel blank;’’’’’’’’’’’’’’’> REP bestimme token bis terminator oder zeilenende’’’’’’’’’. (PROC (INT CONST, TEXT VAR,’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’’’’’’’ IF zeile ist zu ende ’> THEN LEAVE analysiere absatzzeile nach absatzzeile’. ELSE tabulator position gefunden’’’. analysiere blockzeile nach blockzeile :’’’’’OR symbol = "ERWEITERUNG" ’’’’’’ THEN get extension char;. initialize extension;’’’’’’’’’’’’’’ ELIF modus = nil modus’’’’^ THEN errorstop ("Kennung 'FONTTABLE' oder 'FONTTABELLE' zu Beginn der Datei erwartet") ’. ELSE errorstop ("unzulaessige Kennung")’ . initialize font table :’> IF modus <> nil modus THEN font table found FI;’’’’’’’> modus := font table modus;’’’. font nr := 0;’’. extension nr := 0;’’. font table := ds;’> font table. font names := empty thesaurus; ’’’. font table. replacements := "";’. font table. font name links := "";’. font table. extension chars := "";’. font table. extension indexes := ""; > font table. x unit := 10.0/2.54;’’’’’’’’’’> font table. y unit := 6.0/2.54;’’’’’’’’’’. font table. replacements table := 0;’’. FOR index FROM 1 UPTO 4’’’’’’’’’’’’’’’> REP font table. on strings (index) := "";’’’’’’’’’’’’> font table. off strings (index) := "";’’’’’’’’’’’’ . get font table name :’’’ get name list;’’’’’’’’ symbol type := t text;. symbol := name (names, 1);’’’’’’’ IF exists (symbol)’’’’. THEN forget (symbol);’’’’’’’’’’’’’. IF exists (symbol)’’’’’’’’’’’N THEN errorstop ("Fonttabelle existiert schon") FI;’’’’’’’’. font table name := symbol;’’’’’’’’’’’’ . initialize font :’’’’’’’ IF font nr = max fonts> THEN errorstop ("zu viele Fonts") FI;’’’’’’’’’’’’’’ font nr INCR 1;’’’’’’’> modus := font modus;’’’’’’’’’’’’’’’N replacements length := LENGTH font table. replacements; ’’’’’’’’’. font. font string := "";’’’’’’’. font. font name indexes := "";’’’’’’’. font. replacements := "";’’’’’’’. font. extension chars := "";’’’’’’’. font. extension indexes := "";’’’’’’’> font. y offsets := int length * ""0"";’’’’’’’N font. indentation pitch := int (font table. x unit * 2.54 / 10.0);’’’. font. font lead := 0;’’’’’’’’N font. font height := int (font table. y unit * 2.54 / 6.0); ’’’. font. font depth := 0;’’’’’’’’. font. next larger font := 0;’’’’’’’’. font. next smaller font := 0;’’’’’’’’. font. bold offset := 0;’’’’’’’’> font. pitch table := font. indentation pitch;’’N font. replacements table := font table. replacements table;’’’’’’’’’’’N FOR index FROM 1 UPTO LENGTH font table. extension chars’’’’’’’’’’’’’’. REP font. replacements table ’’’’’’’’’N ( code (font table. extension chars SUB index) + 1 ) := maxint;’ . get font names :’’’’’’’’ get name list;’’’’’’’’ index := 0;’’’’’’’’’’’ symbol type := t text; WHILE next font name’’> REP link nr := link (font table. font names, symbol);’ IF link nr = 0’’’’N THEN insert (font table. font names, symbol, link nr); ’’’’’’’’> font table. font name links CAT font nr;’’N ELIF (font table. font name links ISUB link nr) = 0’’’’’’’’’’’’’’’N THEN replace (font table. font name links, link nr, font nr);’’N ELSE errorstop ("Font existiert in Fonttabelle """’’’’’’’’’’’’’N + font table name + """ schon")’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’> font. font name indexes CAT link nr;’’’’’’’’’’’’’’ . next font name :’’’’. get (names, symbol, index);’’’’’’’ symbol <> ""’’’’’’ . get extension char :’’’’ IF NOT two bytes’’’’’’N THEN errorstop ("Erweiterungen nur im zwei-Byte-Modus erlaubt") FI; get name list;’’’’’’’’ symbol type := t text;. symbol := name (names, 1);’’’’’’’ IF LENGTH symbol <> 1 N THEN errorstop ("nur ein Zeichen bei Erweiterung erlaubt") FI;’’’’’. extension code 1 := code (symbol) + 1;. IF NOT is kanji esc (symbol) ’’’’’’’’’> THEN errorstop ("Kanji-ESC-Zeichen erwartet") FI;’’ . initialize extension :’’. IF extension nr = max extensions’’’’’’> THEN errorstop ("zu viele Erweiterungen") FI;’’’’’’ extension nr INCR 1;’’N IF modus <> extension modus THEN last modus := modus FI;’’’’’’’’’’’’’’. modus := extension modus;’’’’’’’’. IF last modus = font table modus’’’’’’. THEN initalize font table extension. ELSE initalize font extension’’’’’’. . initalize font table extension :’’’’> IF pos (font table. extension chars, symbol) <> 0’N THEN errorstop ("Erweiterung wurde schon definiert") FI;’’’’’’’> extension. replacements := "";’’’’’’’’’’’’’> extension. std pitch := 0;’’’’’’’’’’’’’’> extension. pitch table := 0;’’’’’’’’’’’’’’> extension. replacements table := 0;’’’’’’’’’’’’’’> font table. extension chars CAT symbol;’’’’’’’’’> font table. extension indexes CAT extension nr;’’’N font table. replacements table (extension code 1) := max int;’’’’’> replacements length := 0;’’’’’’’’’’’’’’. . initalize font extension :’’’’’’’’’’> IF pos (font. extension chars, symbol) <> 0’’’’’’’N THEN errorstop ("Erweiterung wurde schon definiert") FI;’’’’’’’. extension. replacements := "";’’^ extension. std pitch := font. pitch table (extension code 1) XOR (-maxint-1);> extension. pitch table := extension. std pitch;> font. extension chars CAT symbol;’’’’’’’’’’’’’’> font. extension indexes CAT extension nr;’’’’’’’’N char pos := pos (font table. extension chars, symbol);’’’’’’’’’’’’ IF char pos <> 0’’N THEN index := font table. extension indexes ISUB char pos;’’’’’> extension. replacements table := ’’’’’’’’’N font table. extensions (index). replacements table;’> replacements length :=’’’’’’’’’’N LENGTH font table. extensions (index). replacements; ’’’’’’N font. replacements table (extension code 1) := max int;’’’> ELSE extension. replacements table := 0;’’’’’’’> replacements length := 0;’’’’’’’ FI;’’’’’’’’’’’’’’’ get identification :’’’’’’’’ WHILE identification found REP cout (line nr);’’’’’’’. determine identification link nr;’’’’’ select identification; . identification found :’’ get next symbol; ’’’’’ symbol type = t tag’’’. . determine identification link nr :’’’’’’N identification nr := link (english identification, symbol); ’’’’’’’’’’ english := TRUE;’’’’’’. IF identification nr = 0’’’’’’’’’’’’’’N THEN identification nr := link (german identification, symbol); ’’’. english := FALSE;’’’’’’’’’’’’’. IF identification nr = 0’’’’’’N THEN errorstop ("unzulaesige Identifikation") FI;’’’’’’’’’’ . select identification :’ get next symbol;’’’’’’> IF symbol <> "=" OR symbol type <> t o. anfangs blankmodus := einfach blank;’’’’’’> REP bestimme token bis terminator oder zeilenende’’’’’’’’’. (PROC (INT CONST, TEXT VAR,’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’’’’’’’ IF zeile ist zu ende ’. THEN blocke zeile (limit);’’’’’’’’’> LEAVE analysiere blockzeile nach blockzeile’’’. ELSE dehnbares blank gefunden ’’’’’. analysiere absatzzeile nach blockzeile :’’’’. anfangs blankmodus := keine blankanalyse;’> bestimme token bis terminator oder zeilenende’’’’’’’’’’’’’. (PROC (INT CONST, TEXT VAR,’’’’’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’’’’’’’’’’’ dehnbares blank gefunden :’’ anzahl zeichen INCR 1;’’’’ zeilenpos INCR 1;’’’’. a xpos INCR blankbreite;’’’’’’’’’’> a modifikationen fuer x move := a modifikationen;’’’’’’’’’ IF NOT a block token’’’’’’. THEN anzahl blanks INCR 1;’’’’’’’’’’’’. a block token := TRUE; ’’’’’’’’’’’. tabulator position gefunden :’’’’’’’’’’’’’’’. alte zeilenpos := zeilenpos; ’’’’’’’’’’’’’> zeilenpos := naechstes nicht blankes zeichen;’’’’’’’’’’’’’ IF zeilenpos = 0 ’’’’’’’’’. THEN zeilenpos := zeilen laenge + 1;’’’> ELSE IF erstes token der zeile > token index f’’’’’’’’’> THEN token zeiger := zeilen pos;’’’’’’’’’’’’’’’^ lege token an (zeile, token zeiger, zeilen pos - 1, text token);’’’’’’’’’’ FI;’’’’’’’’’’’’’’’> anzahl zeichen INCR (zeilenpos - alte zeilenpos);’N a xpos := left margin + anzahl zeichen * aktuelle einrueckbreite; > a modifikationen fuer x move := a modifikationen;’N IF zeile muss geblockt werden THEN initialisiere tab variablen FI;. pruefe center und right modus : ’’’’’’’’’’’’> IF center modus THEN zentriere zeile (limit DIV 2) FI;’’’’N IF right modus THEN schreibe zeile rechtsbuendig (limit) FI;’’’’’’’’’’’’’. pruefe ob tabulation vorliegt:’’’’’’’’’’’’’’N IF analyse speicher ist nicht leer CAND a xpos > tf. xpos + tf. breite’’’’> THEN a modifikationen fuer x move := a modifikationen; . token zeiger := zeilen pos;’’’’’’’N lege token an (zeile, token zeiger, zeilen pos - 1, text token);’’ werte indexspeicher aus :’’’ INT VAR index;’’’’’’’’’’’’ IF index zaehler > 0’’’’’’> THEN FOR index FROM index zaehler DOWNTO 1’’’’’’’’’’’’’N REP a ypos DECR (index verschiebung ISUB index);’’’’’’’’’’’’’’> IF (letzte index breite ISUB index) <> 0’’N THEN a xpos := (xpos vor index ISUB index) +’’’’’’’’’’’^ min (a xpos - (xpos vor index ISUB index),’’’’’’’’’’’’’’^ letzte index breite ISUB index);’’’’’’’’’’’’’’ FI;’’’’’’’ PER;’’’’’’’’’’> stelle neuen font ein (grosse fonts ISUB 1);’’’’’’. zeile ist keine anweisungszeile :’’’’’’’’’’’. fuehrende anweisungen <> zeilen laenge’’’ berechne zeilenvorschub :’’’. verschiebung := aktuelle zeilenhoehe +’’’’N aktuelle zeilentiefe der letzten zeile + durchschuss;’N aktuelle zeilentiefe der letzten zeile := aktuelle zeilentiefe;’’’’’’’’’’’ a ypos INCR verschiebung;’. verschiebe token ypos (verschiebung);’’’’’. pruefe ob markierung rechts :’’’’’’’’’’’’’’’ IF markierung rechts’’’’’’N THEN mark token (mark index r). xpos := left margin + limit;’’’’’’’’’’’> lege markierungs token an (mark index r);’’’’’’’’’ behandle anweisungszeile :’’. IF linkes markierungs token > 0’’’’’’’’’’’> THEN IF erstes token der zeile = token index f + 1’’’’’. THEN loesche analysespeicher;’’N ELSE FOR token index FROM linkes markierungs token’’’’’’’’’’’’’N UPTO erstes token der zeile - 1’’’’’’’’’’’. REP t. text := "";’’’’’’. t. xpos := 0;’’’’’’’. t. breite := 0;’’’’’’’ PER;’’’’’’ FI;’’’’’’’’’’’’’’’END PROC analysiere zeile;’’’’.PROC blocke zeile (INT CONST rechter rand) :’’.rest := rechter rand - zeilen breite;’’’’’’’’’.IF rest > 0 AND anzahl blanks > 0’’’’’’’’’’’’’N THEN INT CONST schmaler schritt := rest DIV anzahl blanks,’’’’’’’’’’’N breiter schritt := schmaler schritt + 1,’’’’’’’’’’’’’N anzahl breite schritte := rest MOD anzahl blanks;’’’’’’’’’’’ IF rechts’’’’’’’’’’’’’N THEN blocke token xpos (breiter schritt, schmaler schritt,’’’’’’’’’N anzahl breite schritte);’. rechts := FALSE; ’’’’’’’’’’’’’N ELSE blocke token xpos (schmaler schritt, breiter schritt,’’’’’’’’’N anzahl blanks - anzahl breite schritte);’. rechts := TRUE;’’’’’’’’’’’’’’’N a xpos INCR ( breiter schritt * anzahl breite schritte +’’’’’’’’’’’’’’’N schmaler schritt * (anzahl blanks - anzahl breite schritte) );’’END PROC blocke zeile;’’’’’’’’>PROC zentriere zeile (INT CONST zentrier pos) :’’’’’’’’’’’’’’’.IF erstes tab token <= token index f’’’’’’’’’’> THEN verschiebung := zentrier pos - tab anfang -’’’’’’’’’’’N (zeilen breite - tab anfang) DIV 2; ’’’’’’’. verschiebe token xpos (verschiebung);’. a xpos INCR verschiebung; ’’’’’’’’. tab anfang INCR verschiebung; ’’’’’’’’center modus := FALSE;’’’’’’’’END PROC zentriere zeile;’’’’’>PROC schreibe zeile rechtsbuendig (INT CONST rechte pos) :’’’’.IF erstes tab token <= token index f’’’’’’’’’’> THEN verschiebung := rechte pos - zeilen breite;’’’’’’’’’’’. verschiebe token xpos (verschiebung);’. a xpos INCR verschiebung;’’’’’’’’’. tab anfang INCR verschiebung; ’’’’’’’’right modus := FALSE;’’’’’’’’’.END PROC schreibe zeile rechtsbuendig;’’’’’’’’>PROC bestimme token bis terminator oder zeilenende’’’’’’’’’’’’. (PROC (INT CONST, TEXT VAR,’’’’’’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator):’’’’’’’token zeiger := zeilen pos;’’’>REP stranalyze (zeichenbreiten, a breite, max breite, ’’’’’’’’> zeile, zeilen pos, zeilen laenge,’’’’’’’’’’’’’ ausgang);’’’’’ zeilen pos INCR 1;’’’’’’’’. IF ausgang = blank ausgang’’’’’’’’’’’’’’ THEN analysiere blank. ELIF ausgang = anweisungs ausgang’’’’’’’’’. THEN anweisung gefunden’’’’’’’’’’’’’’. ELIF ausgang = d code ausgang’’’’’’’’’’’’’. THEN analysiere d string’’’’’’’’’’’’’. ELIF ausgang = erweiterungs ausgang’’’’’’’. THEN erweiterung gefunden’’’’’’’’’’’’> ELSE terminator oder zeilenende gefunden’’’’’’’’’’’’’. analysiere blank :’’’’’’’’’’. IF blankmodus = einfach blank OR’’’’’’’’’’N (blankmodus = doppel blank AND naechstes zeichen ist blank)’’’’’’’’’’’’> THEN terminator oder zeilenende gefunden ’’’’’’’’’’’’’’. ELSE a breite INCR blankbreite;’’’’’’’’ zeilenpos INCR 1;’. analysiere d string :’’’’’’’> IF pos (zeile, d string, zeilen pos) = zeilen pos ’’’’’’’’> THEN terminator oder zeilenende gefunden ’’’’’’’’’’’’’’. ELSE IF d pitch = maxint’’’’’’’’’’’’’. THEN erweiterung gefunden’’’’ ELIF d pitch < 0’’N perator’’’’’’’’’N THEN errorstop ("'=' nach Identifikation fehlt") FI;’’’’’’’’’’’’’’’ get next symbol; ’’’’’. SELECT identification nr OF’’’’’’’’’’’> CASE x unit : x unit found’’’’’’’’’’’’’’’> CASE y unit : y unit found’’’’’’’’’’’’’’’> CASE on string : on string found’’’’’’’’’’’’> CASE off string : off string found’’’’’’’’’’’> CASE indentation pitch : indentation pitch found’’’’> CASE font lead : font lead found’’’’’’’’’’’’> CASE font height : font height found’’’’’’’’’’> CASE font depth : font depth found’’’’’’’’’’’> CASE larger font : larger font found’’’’’’’’’’> CASE smaller font : smaller font found’’’’’’’’’> CASE font string : font string found’’’’’’’’’’> CASE y offsets : y offsets found’’’’’’’’’’’’> CASE bold offset : bold offset found’’’’’’’’’’ END SELECT;’’’’’’’’’’’ . x unit found :’’’’’’’’’’. check modus (font table modus);’’’’’’’. font table. x unit := real (symbol);’’. IF NOT last conversion ok’’’’’’’’’’’’’ THEN IF english’’’’N THEN errorstop ("REAL-Denoter nach 'x unit' erwartet") ’’’’N ELSE errorstop ("REAL-Denoter nach 'x einheit' erwartet")’’ FI;’’’’’’’’’’’ get semicolon;’’’’’’’’ . y unit found :’’’’’’’’’’. check modus (font table modus);’’’’’’’. font table. y unit := real (symbol); ’. IF NOT last conversion ok’’’’’’’’’’’’’ THEN IF english’’’’N THEN errorstop ("REAL-Denoter nach 'y unit' erwartet")’’’’’N ELSE errorstop ("REAL-Denoter nach 'y einheit' erwartet")’’ FI;’’’’’’’’’’’ get semicolon;’’’’’’’’ . on string found :’’’’’’’. check modus (font table modus);’’’’’’’. FOR index FROM 1 UPTO 4’’’’’’’’’’’’’’’. REP IF symbol type <> t text’’’’’’’’’’ THEN IF english^ THEN errorstop ("TEXT-Denoter nach 'on string' erwartet") ’’’’’’’’’’’’’^ ELSE errorstop ("TEXT-Denoter nach 'on sequenz' erwartet") ’’’’’’’’’’’’ FI;’’’’’’’ FI;’’’’’’’’’’’’’’’> font table. on strings (index) := symbol;’’’’’’’’’ get next symbol;’’^ IF (symbol <> "," AND symbol <> ";") OR symbol type <> t delimiter ’’’’’’’’’’’’’’’N THEN errorstop ("',' oder ';' in Liste erwartet") FI;’’’’’’’’’’> IF symbol = ";" THEN LEAVE on string found FI;’’’’> IF index = 4 THEN errorstop ("';' erwartet") FI;’’ get next symbol;’’ . off string found :’’’’’’. check modus (font table modus);’’’’’’’. FOR index FROM 1 UPTO 4’’’’’’’’’’’’’’’. REP IF symbol type <> t text’’’’’’’’’’ THEN IF english^ THEN errorstop ("TEXT-Denoter nach 'off string' erwartet") ’’’’’’’’’’’’^ ELSE errorstop ("TEXT-Denoter nach 'off sequenz' erwartet") ’’’’’’’’’’’ FI;’’’’’’’ FI;’’’’’’’’’’’’’’’> font table. off strings (index) := symbol;’’’’’’’’ get next symbol;’’^ IF (symbol <> "," AND symbol <> ";") OR symbol type <> t delimiter ’’’’’’’’’’’’’’’N THEN errorstop ("',' oder ';' in Liste erwartet") FI;’’’’’’’’’’> IF symbol = ";" THEN LEAVE off string found FI;’’’> IF index = 4 THEN errorstop ("';' erwartet") FI;’’ get next symbol;’’. . indentation pitch found :’’’’’’’’’’’’’’’. check modus (font modus);’’’’’’’’’’’’’> font. indentation pitch := int (symbol);’’’’’’’’’’’’’’. IF NOT last conversion ok’’’’’’’’’’’’’ THEN IF english’’’’^ THEN errorstop ("INT-Denoter nach 'indentation pitch' erwartet")’’’’’’’’’’’^ ELSE errorstop ("INT-Denoter nach 'einrueckbreite' erwartet")’’’’’’’’’’’’’’ FI;’’’’’’’’’’’> font. pitch table := font. indentation pitch;’’’ get semicolon;’’’’’’’’ . font lead found :’’’’’’’. check modus (font modus);’’’’’’’’’’’’’. font. font lead := int (symbol);’’’’’’. IF NOT last conversion ok’’’’’’’’’’’’’ THEN IF english’’’’N THEN errorstop ("INT-Denoter nach 'font lead' erwartet")’’’N ELSE errorstop ("INT-Denoter nach 'durchschuss' erwartet")’ FI;’’’’’’’’’’’ get semicolon;’’’’’’’’ . font height found :’’’’’. check modus (font modus);’’’’’’’’’’’’’. font. font height := int (symbol);’’’’. IF NOT last conversion ok’’’’’’’’’’’’’ THEN IF english’’’’N THEN errorstop ("INT-Denoter nach 'font height' erwartet")’N ELSE errorstop ("INT-Denoter nach 'fonthoehe' erwartet")’’’ FI;’’’’’’’’’’’ get semicolon;’’’’’’’’ . font depth found :’’’’’’. check modus (font modus);’’’’’’’’’’’’’. font. font depth := int (symbol);’’’’’. IF NOT last conversion ok’’’’’’’’’’’’’ THEN IF english’’’’N THEN errorstop ("INT-Denoter nach 'font depth' erwartet")’’N ELSE errorstop ("INT-Denoter nach 'fonttiefe' erwartet")’’’ FI;’’’’’’’’’’’ get semicolon;’’’’’’’’ . larger font found :’’’’’. check modus (font modus);’’’’’’’’’’’’’. IF symbol type <> t text’’’’’’’’’’’’’’ THEN IF english’’’’^ THEN errorstop ("TEXT-Denoter nach 'next larger font' erwartet")’’’’’’’’’’’^ ELSE errorstop ("TEXT-Denoter nach 'groesserer font' erwartet")’’’’’’’’’’’’ FI;’’’’’’’’’’’ determine link nr;’’’’. font. next larger font := link nr;’’’’ get semicolon;’’’’’’’’ . smaller font found :’’’’. check modus (font modus);’’’’’’’’’’’’’. IF symbol type <> t text’’’’’’’’’’’’’’ THEN IF english’’’’^ THEN errorstop ("TEXT-Denoter nach 'next smaller font' erwartet")’’’’’’’’’’^ ELSE errorstop ("TEXT-Denoter nach 'kleinerer font' erwartet")’’’’’’’’’’’’’ FI;’’’’’’’’’’’ determine link nr;’’’’. font. next smaller font := link nr;’’’ get semicolon;’’’’’’’’ . determine link nr :’. change all (symbol, " ", "");’’’’’ IF symbol = ""’’. THEN link nr := 0’’’’’’’’’’’’’’’N ELSE link nr := link (font table. font names, symbol);’’’’’’’’’’. IF link nr = 0’’’’’’’’’’’’’N THEN insert (font table. font names, symbol, link nr);’’> font table. font name links CAT 0;’ FI;’’’’’’’’ FI;’’’’’’’’’’’’’’’ . font string found :’’’’’. check modus (font modus);’’’’’’’’’’’’’. IF symbol type <> t text’’’’’’’’’’’’’’ THEN IF english’’’’N THEN errorstop ("TEXT-Denoter nach 'font string' erwartet")N ELSE errorstop ("TEXT-Denoter nach 'fontsequenz' erwartet") FI;’’’’’’’’’’’. font. font string := symbol;’’’’’’’’’’ get semicolon;’’’’’’’’ . y offsets found :’’’’’’’. check modus (font modus);’’’’’’’’’’’’’ font. y offsets := "";> REP IF symbol = "-" AND symbol type = t operator’’’’’’. THEN vorzeichen THEN a breite INCR (d pitch XOR - maxint - 1); ’’’’’’’’’’’’’’. zeilen pos INCR 2; ’’’’’. ELSE a breite INCR d pitch; ’. zeilenpos INCR 1;’’’’’’’ FI;’’’’’’’’’’’’’’’. erweiterung gefunden :’’’’’’N a breite INCR extended char pitch (a font, zeile SUB zeilen pos, ’’’’’’’’’N zeile SUB zeilen pos + 1); ’’’’ zeilen pos INCR 2;’’’’’’’’. anweisung gefunden :’’’’’’’’. gegebenfalls neues token gefunden;’’’’’’’’> analysiere anweisung (PROC (INT CONST, TEXT VAR,’’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator);’’’’’’’’’’’’’ IF zeile ist zu ende’’’’’’N THEN LEAVE bestimme token bis terminator oder zeilenende FI;’’’’’’’’’’’ token zeiger := zeilenpos;.. terminator oder zeilenende gefunden :’’’’’’’> IF ausgang = null ausgang THEN zeilen laenge DECR 1 FI;’’. gegebenfalls neues token gefunden;’’’’’’’’> LEAVE bestimme token bis terminator oder zeilenende;’’’’’’. . gegebenfalls neues token gefunden :’’’’’. IF token zeiger < zeilenpos’’’’’’’’’’’^ THEN lege token an (zeile, token zeiger, zeilen pos - 1, text token) FI;’’’’’’’’’’’>END PROC bestimme token bis terminator oder zeilen ende;’’’’’’>PROC analysiere anweisung (PROC (INT CONST, TEXT VAR,’’’’’’’’’^ INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR, INT VAR) analysator) :’’’’’’’’’’’ bestimme anweisung;’’’’’’’’ IF anweisung ist kommandoN THEN lege token an (anweisung, 1, maxint, kommando token);’’’’’’’’’’’’. ELIF anweisung ist kein kommentar’’’’’’’’’’. THEN werte anweisung aus; ’’’’’’’’’’’’. . anweisungsende : zeilen pos - 2’’’’’’’ . erstes zeichen : par1’. bestimme anweisung :’’’’’’’’> INT CONST anweisungsanfang := zeilenpos + 1;’’’’’’’’’’’’’’^ zeilen pos := pos (zeile, anweisungszeichen, anweisungsanfang, zeilenlaenge);’’’’’’’’’’’’’ IF zeilenpos = 0’’’’’’’’’’. THEN zeilenpos := anweisungsanfang - 1;N replace (zeile, zeilenpos, geschuetztes anweisungszeichen);’’’’’’’. LEAVE analysiere anweisung;’’’’’’’n IF fuehrende anweisungen = anweisungsanfang - 2 THEN fuehrende anweisungen := zeilen pos FI;’’’’’’’’’’’’’’ zeilen pos INCR 1; ’’’’’’’N anweisung := subtext (zeile, anweisungsanfang, anweisungsende);’’’’’’. erstes zeichen := anweisung SUB 1;’’’’’’’’. anweisung ist kommando : ’’’. IF erstes zeichen = quote’’’’’’’’’’’’’’’. THEN scan (anweisung);’’’’’’’’’’’’’’’> next symbol (anweisung, symbol type);’’’’’’’’’’’> next symbol (par2, naechster symbol type);’’’’’’N IF symbol type <> text type OR naechster symbol type <> eof type> THEN LEAVE analysiere anweisung FI;’’’’’’’’’’ TRUE’’’’’’’’’’’’> ELIF erstes zeichen = druckerkommando zeichen’’’’’’’’’’’’’. THEN delete char (anweisung, 1);’’’’’ TRUE’’’’’’’’’’’’ ELSE FALSE’’’’’’’’’’’.. anweisung ist kein kommentar :’’’’’’’’’’’’’’. erstes zeichen <> kommentar zeichen’’’’’’’ werte anweisung aus :’’’’’’’> analyze command (anweisungs liste, anweisung, number type,N anweisungs index, anzahl params, par1, par2);’’’’’’’’’’’’ SELECT anweisungs index OF. CASE a type : type anweisung’’. CASE a on : on anweisung’’’’. CASE a off : off anweisung’’’. CASE a ub, a fb : ub fb anweisung’. CASE a ue, a fe : ue fe anweisung’. CASE a center : center anweisung. CASE a right : right anweisung’. CASE a up, a down : index anweisung’> CASE a end up or down : end index anweisung’’’’’’’’’’’’’. CASE a bsp : bsp anweisung’’’> CASE a fillchar : fillchar anweisung’’’’’’’’’’’’’’. CASE a mark : mark anweisung’’> CASE a markend : markend anweisung’’’’’’’’’’’’’’’. OTHERWISE : IF anweisungs index > 0’’’’’. THEN speichere anweisung’. ELSE rufe analysator’’’’’ FI;’’’’’’’’’ END SELECT;’’’’’’’’’’’’’’’ . type anweisung :’’’’’’’’. change all (par1, " ", "");’’’’’’’’’’’. stelle neuen font ein (font (par1));’’. a modifikationen := 0;’’’’’’’’’’’’’’. ueberpruefe groesste fontgroesse;’’’’’. IF nicht innerhalb eines indexes’’’’’’> THEN berechne aktuelle zeilengroesse FI;’’’’’’’’’’’. . nicht innerhalb eines indexes :’’’’’ index zaehler = 0’ . on anweisung :’’’’’’’’’’ par1 := par1 SUB 1;’’’. IF pos (modifikations liste, par1) > 0^ THEN set bit (a modifikationen, pos (modifikations liste, par1) - 1 );’’’’’’’’’’’’’ . off anweisung :’’’’’’’’’ par1 := par1 SUB 1;’’’. IF pos (modifikations liste, par1) > 0^ THEN reset bit (a modifikationen, pos (modifikations liste, par1) - 1 );’’’’’’’’’’’ . ub fb anweisung :’’’’’’’. IF anweisungs index = a ub’’’’’’’’’’’’ THEN par1 := "u"’’’ ELSE par1 := "b"’’’ on anweisung;’’’’’’’’’ . ue fe anweisung :’’’’’’’. IF anweisungs index = a ue’’’’’’’’’’’’ THEN par1 := "u"’’’ ELSE par1 := "b"’’’ off anweisung;’’’’’’’’ . center anweisung :’’’’’’N IF NOT zeile muss geblockt werden AND NOT tabellen modus’’’’’’’’’’’’’’. AND NOT right modus’’’’’’’’’’’’. THEN center modus := TRUE;’’’’’’’’’> blankmodus := keine blankanalyse;’’’’’’’’’’’. initialisiere tab variablen; ’ . right anweisung :’’’’’’’N IF NOT zeile muss geblockt werden AND NOT tabellen modus’’’’’’’’’’’’’’N THEN IF center modus THEN zentriere zeile (limit DIV 2) FI;’’’’’’’’. right modus := TRUE;’’’’’’’’’’> blankmodus := keine blankanalyse;’’’’’’’’’’’’. initialisiere tab variablen; ’ . index anweisung :’’’’’’’. INT CONST grosser font := a font,’’’’’^ grosse fonthoehe := fonthoehe, grosse fonttiefe := fonttiefe;’’’’’’’’’’’’’’’. INT VAR kleiner font;’’’’’’’’’’’’’’’N IF next smaller font exists (grosser font, kleiner font)’’’’’’’’’’’’’’> THEN stelle neuen font ein (kleiner font) FI;’’’’’’. IF font hoehe < grosse fonthoehe’’’’’’> THEN verschiebung := verschiebung fuer kleinen font> ELSE verschiebung := verschiebung fuer grossen font. a ypos INCR verschiebung;’’’’’’’’’’’’’ merke index werte;’’’’. . verschiebung fuer kleinen font :’’’’. IF anweisungs index = a down’’’’’’N THEN 15 PROZENT (grosse fonthoehe + grosse fonttiefe)’’’’’’’N ELSE - ( 4 PROZENT (grosse fonthoehe + grosse fonttiefe) )’’’’’^ - (grosse fonthoehe + grosse fonttiefe - fonthoehe - fonttiefe)’’’’’’’’’’’ FI. . verschiebung fuer grossen font :’’’’. IF anweisungs index = a down’’’’’’> THEN 25 PROZENT (fonthoehe + fonttiefe)’’’’’> ELSE - (50 PROZENT (fonthoehe + fonttiefe) )’’’ FI . merke index werte :’. index zaehler INCR 1;’’’’’’’’’’’’’> IF hoechster index zaehler < index zaehler’’’’’’’’. THEN neues index level’’’’’’’’’. ELSE altes index level’’’’’’’’’ FI;’’’’’’’’’’’’’’’. IF index zaehler = 1’’’’’’’’’’’’’’ := -1;’’’’’’’’’. get next symbol;’’’’’’’’’’. ELSE vorzeichen := 1;’’’’’’’’’ FI;’’’’’’’’’’’’’’’> int symbol := vorzeichen * int (symbol);’’’’’’’’’’. IF NOT last conversion ok’’’’’’’’’ THEN IF english^ THEN errorstop ("INT-Denoter nach 'y offsets' erwartet")’’’’’’’’’’’’’’’^ ELSE errorstop ("INT-Denoter nach 'y verschiebungen' erwartet")’’’’’’’’ FI;’’’’’’’ FI;’’’’’’’’’’’’’’’. font. y offsets CAT int symbol;’’’ get next symbol;’’^ IF (symbol <> "," AND symbol <> ";") OR symbol type <> t delimiter ’’’’’’’’’’’’’’’N THEN errorstop ("',' oder ';' in Liste erwartet") FI;’’’’’’’’’’> IF symbol = ";" THEN LEAVE y offsets found FI;’’’’ get next symbol;’’ . bold offset found :’’’’’. check modus (font modus);’’’’’’’’’’’’’> IF symbol = "-" AND symbol type = t operator’’’’’’’’’’. THEN vorzeichen := -1;’’’’’’’’’’’’’. get next symbol;’’’’’’’’’’’’’’. ELSE vorzeichen := 1;’’’’’’’’’’’’’> font. bold offset := vorzeichen * int (symbol);’’’’’’’. IF NOT last conversion ok’’’’’’’’’’’’’ THEN IF english’’’’N THEN errorstop ("INT-Denoter nach 'bold offset' erwartet")’^ ELSE errorstop ("INT-Denoter nach 'bold verschiebungen' erwartet")’’’’’’’’’ FI;’’’’’’’’’’’ get semicolon;’’’’’’’’ get char specifications :’’’ WHILE char found’’’’’’’’’’ REP cout (line nr); ’’’’’’ char specification;’’’ get next symbol; ’’’’’ . char found :’’’’’’’’’’’’ symbol type = t text’’ . char specification :’’’’ IF LENGTH symbol <> 1 N THEN errorstop ("nur ein Zeichen bei Zeichenangabe erlaubt") FI;’’’ char := symbol; ’’’’’’. char code 1 := code (char) + 1;’’’’’’’. look for specification;’’’’’’’’’’’’’’’. look for specification;’’’’’’’’’’’’’’’ get semicolon;’’’’’’’’ . look for specification : get next symbol; ’’’’’> IF symbol = ";" AND symbol type = t delimiter ’’’’’’. THEN LEAVE char specification’’’’’’’> ELIF symbol = "," AND symbol type = t delimiter ’’’’’’. THEN get specification’’’’’’’’’’’’’’N ELSE errorstop ("',' oder ';' bei Zeichenspezifikation erwartet")’’’ . get specification :’’’’’ get next symbol;’’’’’’. IF symbol type = t number’’’’’’’’’’’. THEN pitch specification;’’’’’’’’’’’. ELIF symbol type = t text ’’’’’’’’’’’’. THEN replacement specification’’’’’’N ELSE errorstop ("unzulaessiger Wert bei Zeichenspezifikation")’’’’’’. . pitch specification :’’’’’’’’’’’’’’’. int symbol := int (symbol);’’’’’’’. IF NOT last conversion ok’’’’’’’’’N THEN errorstop ("INT-Denoter bei Breitenangabe erwartet") FI;’’. IF modus = font modus’’’’’’’’’’’N THEN font. pitch table (char code 1) := int symbol;’’’’’’’’’’’’. IF is kanji esc (char)’’’’^ THEN set bit (font. pitch table (char code 1), highest bit) FI; ’’’’’’’. ELIF modus = extension modus’’’’’’> THEN IF last modus = font modus AND’’’’’’’’’’’’N font. pitch table (extension code 1) <> max int’’’’’’^ THEN font. pitch table (extension code 1) := max int FI;’’’’’’’’’’’’’’’N extension. pitch table (char code 1) := int symbol;’’’’’’’ FI;’’’’’’’’’’’’’’’. . replacement specification : ’’’’’’’’. IF LENGTH symbol > 255’’’’’’’’’’’’^ THEN errorstop ("Ersatzdarstellungen duerfen nur 255 Zeichen haben") FI;’’’’’’’. IF modus = font table modus’’’’’N THEN font table. replacements table (char code 1) := ’’’’’’’’’’N (LENGTH font table. replacements + 1); N font table. replacements CAT code (LENGTH symbol);’’’’’’’’> font table. replacements CAT symbol;’’’’’’. IF is kanji esc (char)’’’’n THEN set bit (font table. replacements table (char code 1), highest bit) FI; ’’’’’’’’’’. ELIF modus = font modus’’’’’’’’’’’> THEN font. replacements table (char code 1) :=’N (replacements length + LENGTH font. replacements + 1); N font. replacements CAT code (LENGTH symbol);’’’’’’’’’’’’’’> font. replacements CAT symbol;’’’’’’’’’’’’. IF is kanji esc (char)’’’’^ THEN set bit (font. replacements table (char code 1), highest bit) FI; . ELIF modus = extension modus’’’’’’> THEN IF last modus = font modus AND’’’’’’’’’’’’^ font. replacements table (extension code 1) <> max int’’’’’’’’’’’’’’’^ THEN font. replacements table (extension code 1) := max int FI;’’’’’’’’N extension. replacements table (char code 1) :=’’’’’’’’’’’’^ (replacements length + LENGTH extension. replacements + 1); ’’’’’’’’’’’’N extension. replacements CAT code (LENGTH symbol);’’’’’’’’’> extension. replacements CAT symbol;’’’’’’’ FI;’’’’’’’’’’’’’’’END PROC load;PROC get name list :’’’’’’’’’’ names := empty thesaurus;’’ get next symbol;’’’’’’’’’’’> IF symbol <> ":" OR symbol type <> t delimiter ’’’’’’’’’’’’> THEN errorstop ("':' nach Kennung erwartet") FI;’’’’’’’’ REP get next symbol;’’’’’’’. change all (symbol, " ", "");’’’’’’’’’’. IF symbol type <> t text’’’’’’’’’’’’’’’N THEN errorstop ("TEXT-Denoter in Namesliste erwartet") FI;’’’’’’’’’’ IF symbol = ""’’’’’’’’’N THEN errorstop ("'niltext' als Name nicht erlaubt") FI;’’’’’’’’’’’’’ insert (names, symbol); get next symbol;’’’’’’’N IF (symbol <> "," AND symbol <> ";") OR symbol type <> t delimiter ’’’’N THEN errorstop ("',' oder ';' in Liste erwartet") FI;’’’’’’’’’’’’’’’ UNTIL symbol = ";" PER;’’’’ . get next symbol :’’’’’’’’> next symbol (file, symbol, symbol type);’’’’’’’’’’’’’’’END PROC get name list;’’’’’’’.OP := (ROW 256 INT VAR l, INT CONST r) :’’’’’’.IF modus = extension modus OR NOT two bytes’’’> THEN FOR i FROM 1 UPTO 256 REP l (i) := r PER; ’’’’’’’’’’> ELSE FOR i FROM 1 UPTO 129 REP l (i) := r PER;’’’’’’’’’’’N FOR i FROM 130 UPTO 160 REP l (i) := r - maxint - 1 PER;’’’’’’’’’’’’’’> FOR i FROM 161 UPTO 224 REP l (i) := r PER;’’’’’’’’’’’N FOR i FROM 225 UPTO 240 REP l (i) := r - maxint - 1 PER;’’’’’’’’’’’’’’> FOR i FROM 241 UPTO 256 REP l (i) := r PER;’’’’’’’’’’’.PROC check modus (INT CONST mod) :’’’’’’’’’’’’N IF mod <> modus THEN errorstop ("unzulaessige Identifikation") FI;’’’’’’’’’’END PROC check modus;’’’’’’’’’.PROC error (TEXT CONST message) :’’’’’’’’’’’’’(*INT CONST l := error line;*) clear error;N errorstop ("Zeile " + text (line nr) + " bei " + letztes symbol +’’’’’’’’’’’N " : " + message (* + errorline if neccessary *) ); ’’’’’’’’’’’’’’ . letztes symbol :’’’’’’’’’’. IF symbol type = t text’’’’’’’’’’’’’’. THEN decode (symbol);’’’’’’’’’’’’’’. """" + symbol + """"’’’’’’’’’’. ELIF symbol type >= t end of file’’’’’’’> THEN alter blankmodus := blankmodus; ’’’’’’’’’’> blankmodus := keine blankanalyse;’’’’’’’’’ FI;’’’’’’’’’’’’’’’. . neues index level :’’’’’’’’’’’’’> hoechster index zaehler := index zaehler;’’’’’. letzte index breite CAT 0;’’’> xpos vor index CAT a xpos;’’’’’’’’’’’’’’. zeilenpos nach index CAT -1;’’> index verschiebung CAT verschiebung;’’’’’’’’> grosse fonts CAT grosser font;’’’’’’’’. . altes index level :’’’’’’’’’’’’’^ IF (zeilenpos nach index ISUB index zaehler) = anweisungsanfang - 1’’’’’’’’’’’^ AND sign (index verschiebung ISUB index zaehler) <> sign (verschiebung)’’’. THEN doppelindex gefunden;’N ELSE replace (xpos vor index, index zaehler, a xpos);’’’’’’ FI;’’’’’’’’’’’N replace (index verschiebung, index zaehler, verschiebung);’’’’N replace (grosse fonts, index zaehler, grosser font);’’’’’’’’’’. . doppelindex gefunden :’’’’’’N replace (letzte index breite, index zaehler,’’’’’’’’’’’’’’N a xpos - (xpos vor index ISUB index zaehler));’’’N a xpos := xpos vor index ISUB index zaehler;’’’’’’’’’’’’’’ . end index anweisung :’’’ IF index zaehler > 0’’> THEN schalte auf alte index werte zurueck;’’’’’’’’’> . schalte auf alte index werte zurueck :’’’’’’’’’’’’’’N IF index zaehler = 1 THEN blankmodus := alter blankmodus FI;’’’’’’N a ypos DECR (index verschiebung ISUB index zaehler);’’’’’’’’’’’’’’N stelle neuen font ein (grosse fonts ISUB index zaehler);’’’’’’’’’’> IF (letzte index breite ISUB index zaehler) <> 0’’. THEN berechne doppelindex’’’’’’N ELSE replace (zeilenpos nach index, index zaehler, zeilenpos);’ FI;’’’’’’’’’’’’’’’. index zaehler DECR 1;’’’’’’’’’’’’’. . berechne doppelindex :’’’’’’’’’’N a xpos := (xpos vor index ISUB index zaehler) +’’’’’’’’’’’’’’’N max (a xpos - (xpos vor index ISUB index zaehler),’N letzte index breite ISUB index zaehler);’N replace (zeilenpos nach index, index zaehler, -1);’’’’’’’’’’’’N replace (letzte index breite, index zaehler, 0);’’’’’’’’’’’’’’ . bsp anweisung :’’’’’’’’’. INT VAR breite davor, breite dahinter;N IF anweisungs anfang - 2 >= 1 AND anweisungs ende + 2 <= zeilen laengeN THEN IF is kanji esc (zeile SUB anweisungs anfang - 3)’’’’’’’’’’’’’^ THEN zeichen davor := subtext (zeile, anweisungs anfang - 3,’’’’’’’’’’’’’’’^ anweisungs anfang - 2);’’’’’’’’’’’’’’N ELSE zeichen davor := zeile SUB anweisungs anfang - 2;’’’’’ FI;’’’’’’’’’’’N IF is kanji esc (zeile SUB anweisungs ende + 2)’’’’’’’’’’’’’’’^ THEN zeichen dahinter := subtext (zeile, anweisungs ende + 2,’’’’’’’’’’’’’’^ anweisungs ende + 3 );’’’’’’’’’’’’N ELSE zeichen dahinter := zeile SUB anweisungs ende + 2;’’’’ FI;’’’’’’’’’’’^ IF pos (" #", zeichen davor) = 0 AND pos (" #", zeichen dahinter) = 0 ’’’’’’’’N THEN breite davor := char pitch (a font, zeichen davor);^ breite dahinter := char pitch (a font, zeichen dahinter);’’’’’’’’’’’’’^ IF breite davor < breite dahinter THEN vertausche zeichen FI;’’’’’’’’’> lege token fuer zeichen dahinter an;’’N a xpos INCR (breite davor - breite dahinter) DIV 2; ’’ FI;’’’’’’’’’’’. . zeichen davor : par1’’’’’’’’’’’’’. . zeichen dahinter : par2’’’’’’’’’’’’’ . vertausche zeichen :N change (zeile, anweisungs anfang - 2 - LENGTH zeichen davor + 1, ’N anweisungs anfang - 2, zeichen dahinter);’’’’’’’’’’> change (zeile, anweisungs ende + 2,’’’’’’’’’’’’’’’^ anweisungs ende + 2 + LENGTH zeichen dahinter - 1, zeichen davor);’N change (tf. text, LENGTH tf. text - LENGTH zeichen davor + 1,’’’’’N LENGTH tf. text, zeichen dahinter);’’’’’’’’’’’’’> tf. breite INCR (breite dahinter - breite davor);’> a xpos INCR (breite dahinter - breite davor);’. int param := breite davor;’> breite davor := breite dahinter;’’’’’’’’’’’’’’. breite dahinter := int param;’’’’> . lege token fuer zeichen dahinter an :’’’’’’’’’’’’’’’. token zeiger := zeilen pos;’’’’’’’. a breite := breite dahinter;’’> zeilen pos INCR LENGTH zeichen dahinter;’’’’’’’’’’N a xpos DECR (breite davor + breite dahinter) DIV 2; ’’’’’’’’’’N lege token an (zeile, token zeiger, zeilen pos - 1, text token);’’. anzahl zeichen DECR 1;’’’’’’’’’’’’ . fillchar anweisung :’’’’. IF par1 = "" THEN par1 := " " FI;’’’’’ fill char := par1;’’’’ speichere anweisung;’’ . mark anweisung :’’’’’’’’ IF par1 <> "" ’’’’’’’’N THEN mark index l := (alter mark index l MOD 2) + 1;’’’’’’’’’’’’’’’> neue markierung (par1, mark index l);’’’’’’’’’. ELSE mark index l := 0;’’’’’’’’’’’’ IF par2 <> "" ’’’’’’’’N THEN mark index r := (alter mark index r MOD 2) + 3;’’’’’’’’’’’’’’’> neue markierung (par2, mark index r);’’’’’’’’’. ELSE mark index r := 0;’’’’’’’’’’’’ . markend anweisung :’’’’’ loesche markierung;’’’ . speichere anweisung :’’’. anweisungs zaehler INCR 1;’’’’’’’’’’’’> anweisungs indizes CAT anweisungs index;’’’’’’’’’’’’’’ IF par1 <> ""’’’’’’’’’. THEN insert (params1, par1); ’’’’’’> params1 zeiger CAT highest entry (params1);’’’. ELSE params1 zeiger CAT 0;’’’’’’’’’ IF par2 <> ""’’’’’’’’’. THEN insert (params2, par2); ’’’’’’> params2 zeiger CAT highest entry (params2);’’’. ELSE params2 zeiger CAT 0;’’’’’’’’’ . rufe analysator :’’’’’’’> INT CONST alte xpos := a xpos, alte y pos := a ypos;’’N INT VAR analysatorbreite, analysatorhoehe, analysatortiefe,’’’’’’’’’’’> analysator font := a font,’’’’’’’’’’> analysator modifikationen := a modifikationen;. zeilen pos := anweisungsanfang - 1;’’’> analysator (text code, zeile, zeilen pos,’’’’’’’’’’’’’N analysator font, analysator modifikationen,’’’’’’’’’’’’’’’^ analysatorbreite, analysatorhoehe, analysatortiefe, dummy);’’’’’’’’’’’’’’’ THEN par1 := error message; par1 CAT " a1-> ";’’’’. par1 CAT text (errorline);’’’’’’’’’’’’ clear error;’’’’’’’’’’ errorstop (par1);’’’’’. hole token der analyse;’’’’’’’’’’’’’’’> a xpos := alte xpos + analysatorbreite;’. a ypos := alte ypos;’’’’> a modifikationen := analysator modifikationen;’’’’^ groesste analysatorhoehe := max (analysatorhoehe, groesste analysator hoehe);’’’’’’’’’^ groess THEN "EOF"’’’’’’’’’ ELSE symbol’’’’’’’’ . errorline if neccessary :’ IF l = 0 ’’’’’’’’’’’’’’’ THEN ""’’’’’’’’’’’’’’. ELSE " -> " + text (l) ’’’’’’’’’’’’’’END PROC error;’’’’’’’’’’’’’’’N(*******************************************************************)’’’’’’’’’NPROC create font file (TEXT CONST font tab name, font file name) :’’’’’’’’’’’’connect font table;’’’’’’’’’’’put font table in font file;’’ connect font table :’’’’’’’’ buffer := font tab name;’’. change all (buffer, " ", "");’’’’’’’’’’’’’N IF NOT exists (buffer) COR type (old (buffer)) <> font table type’’’’’’’’’N THEN errorstop ("Fonttabelle """ + buffer + """ gibt es nicht")’’’’’’’’ font table := old (buffer);. put font table in font file :’’’’’’’’’’’’’’’ INT VAR font file nr := 0; enable stop;’’’’’’’’’’’’’’> font file := sequential file (output, font file name);’’’’. max line length (font file, 16000);’’’’’’’ check file overflow;’’’’’’ put font table;’’’’’’’’’’’N FOR font nr FROM 1 UPTO font table. last font REP put font PER;’’’’’’’’’’’ . check file overflow :’’’. WHILE lines (font file) > 3600’’’’’’’’. REP font file nr INCR 1;’’’’’’’’’’’’’’^ font file := sequential file (output, font file name + "." + text (font file nr));> max line length (font file, 16000);’’’’’’’’’’’’’’’. put font table :’’’’’’’’’’’’^ z CAT "FONTTABLE : """; z CAT buffer; z CAT """;"; put z; ’’’’’’’’’’’’’^ z CAT " x unit = "; z CAT text (font table. x unit); z CAT ";"; put z; ’’’’’’’’’’^ z CAT " y unit = "; z CAT text (font table. y unit); z CAT ";"; put z; ’’’’’’’’’’^ z CAT " on string = """; z cat on strings; z CAT """;"; put z; ’’’’’’’’’’^ z CAT " off string = """; z cat off strings; z CAT """;"; put z; ’’’’’’’’’’. put font table replacements;’’’’’’’’’’’’’’ put font table extensions; . z cat on strings :’’’’’’. FOR index FROM 1 UPTO 4’’’’’’’’’’’’’’’> REP buffer := font table. on strings (index);’’’’’’’’’ decode (buffer); ’ z CAT buffer;’’’’’> IF index <> 4 THEN z CAT """, """ FI;’’’’’’’’’’’’ . z cat off strings :’’’’’. FOR index FROM 1 UPTO 4’’’’’’’’’’’’’’’> REP buffer := font table. off strings (index);’’’’’’’’ decode (buffer); ’ z CAT buffer;’’’’’> IF index <> 4 THEN z CAT """, """ FI;’’’’’’’’’’’’. . put font table replacements : ’’’’’’’’’’ put z;. FOR char code FROM 0 UPTO 255’’’’’’’’’. REP char code 1 := char code + 1;’’’’’N link nr := font table. replacements table (char code 1);’’’’’’. reset bit (link nr, highest bit);’> IF link nr > 0 AND link nr <> maxint’’’’’’’’’’’’’’. THEN z CAT " ";’’’’’’’’’’’’’’’. put char code;’’’’’’’’’’’’> put font table replacement;’’’’’’’’’’’’’’’ put z;’’’’ FI;’’’’’’’’’’’’’’’. . put font table replacement :’’’’’’’’N replacement := subtext (font table. replacements, link nr + 1,’’’N link nr + code (font table. replacements SUB link nr) );’ put replacement;’’. . put font table extensions :’’’’’’’’’’’’’. IF font table. extension chars <> ""’’N THEN FOR index FROM 1 UPTO LENGTH font table. extension chars ’’’’’> REP put font table extension PER;’’’’’’’’’’’’’. . put font table extension :’’’’’’’’’’’’’’ check file overflow;’’ put z;. z CAT " EXTENSION : """"";’’’’’’’’’N z CAT text 3 (code (font table. extension chars SUB index));’’’’’’’’’’ z CAT """"";";’’’’’’’’ put z; put z; ’’’’’’’’. replacements length := 0;’’’’’’’’’’’’’N extension nr := font table. extension indexes ISUB index;’’’’’’. FOR char code FROM 0 UPTO 255’’’’’’’’’. REP char code 1 := char code + 1;’’’’’N link nr := extension. replacements table (char code 1);’’’’’’’ IF link nr > 0’’’’. THEN z CAT " ";’’’’’’’’’’’’’’’. put char code;’’’’’’’’’’’’. put extension replacement; put z;’’’’ FI;’’’’’’’’’’’’’’’ check file overflow;’’’’’’N z CAT " FONT : "; z cat font names; z CAT ";"; put z; ’’’’’’’’’> z CAT " indentation pitch = ";’’’’’’’’’’’’’’’> z CAT text(font. indentation pitch);’’’’’’’’’’’’’’ z CAT ";"; put z;  IF font. font lead <> 0 ’’> THEN z CAT " font lead = ";’’’’’’’’’’’’’’’. z CAT text(font. font lead);’’’’’’ z CAT ";"; put z;’> z CAT " font height = ";’’’’’’’’’’’’’’’. z CAT text(font. font height);’’’’ z CAT ";"; put z;  IF font. font depth <> 0’’> THEN z CAT " font depth = ";’’’’’’’’’’’’’’’. z CAT text(font. font depth);’’’’’ z CAT ";"; put z;’ IF next larger <> ""’’’’’’> THEN z CAT " next larger font = """;’’’’’’’’’’’’’ z CAT next larger;. z CAT """;"; put z;’’’’’’’’’’’’’’’ IF next smaller <> ""’’’’’> THEN z CAT " next smaller font = """;’’’’’’’’’’’’’. z CAT next smaller;’’’’’’’’’’’’’’’. z CAT """;"; put z;’’’’’’’’’’’’’’’ IF font. font string <> ""> THEN z CAT " font string = """;’’’’’’’’’’’’’ z CAT font string;. z CAT """;"; put z;’’’’’’’’’’’’’’’N IF (font. y offsets ISUB 1) <> 0 OR LENGTH font. y offsets > int length’’’> THEN z CAT " y offsets = ";’’’’’’’’’’’’’’’ z cat y offsets;’’ z CAT ";"; put z;  IF font. bold offset <> 0’> THEN z CAT " bold offset = ";’’’’’’’’’’’’’’’. z CAT text(font. bold offset);’’’’ z CAT ";"; put z;’. put font pitches and replacements;’’’’’’’’ put font extensions;’’’’’’N . next larger : name (font table. font names, font. next larger font)’’’’N . next smaller : name (font table. font names, font. next smaller font)’’’N . font string : buffer := font. font string; decode (buffer); buffer’’’’’ . z cat font names :’’’’’’ z CAT """";’’’’’’’’’’’N z CAT name (font table. font names, font. font name indexes ISUB 1);’’ z CAT """";’’’’’’’’’’’N FOR index FROM 2 UPTO LENGTH font. font name indexes DIV int length’’’ REP z CAT ", """;’’’’^ z CAT name (font table. font names, font. font name indexes ISUB index);’’’’’’’’’’ z CAT """";’’’’’’’ . z cat y offsets :’’’’’’’. z CAT text (font. y offsets ISUB 1);’’N FOR index FROM 2 UPTO LENGTH font. y offsets DIV int length’’’’’’’’’’’ REP z CAT ", ";’’’’’’> z CAT text (font. y offsets ISUB index);’’’’’’’’’’. . put font pitches and replacements :’’’’’. BOOL VAR ausgabe := FALSE; ’’’’’’’’’’’N replacements length := LENGTH font table. replacements;’’’’’’’’’’’’’’’ put z; z CAT " "; ’’’’’’’’’’. FOR char code FROM 0 UPTO 255’’’’’’’’’. REP char code 1 := char code + 1;’’’’’> pitch := font. pitch table (char code 1); ’’. reset bit (pitch, highest bit); ’’N link nr := font. replacements table (char code 1);’’’’’’’’’’’’. reset bit (link nrte analysatortiefe := max (analysatortiefe, groesste analysator tiefe);’’’’’’’’’. IF analysator font <> a font’’’’’’’’’’> THEN stelle neuen font ein (analysator font);’’’’’’> ueberpruefe groesste fontgroesse;’’’’’’’’’’’’’> IF nicht innerhalb eines indexes’’’’’’’’’’’’’’> THEN berechne aktuelle zeilengroesse FI;’’’N ELSE aktuelle zeilenhoehe := max (groesste analysatorhoehe,’’’’’’’’N aktuelle zeilenhoehe);’’N aktuelle zeilentiefe := max (groesste analysatortiefe,’’’’’’’’N aktuelle zeilentiefe);’’. . hole token der analyse :’’’’’’’’’’’’^ INT VAR token nr := 0, token font, token xpos, token ypos, token typ;’’’’’’’’’’’’’. BOOL VAR font changed := FALSE;’’’ token text := "";’ REP’’’’’’’’’’’’’’’> analysator (token code, token text, token nr,’N token font, a modifikationen, a breite,’’’’’’’’’’’N token xpos, token ypos, token typ);’’’’’’’’’’’’’’’ THEN par1 := error message; par1 CAT " a2-> ";’’’’. par1 CAT text (errorline);’’’’’’’’’’’’ clear error;’’’’’’’’’’ errorstop (par1);’’’’’. IF token nr = 0’’’’’’’’’’’’’’’> THEN IF font changed THEN a font := -1 FI;’> LEAVE hole token der analyse’’’’’’’’’’ FI;’’’’’’’’’’’. IF token font <> a font’’’’’’’> THEN a font := token font;’’’’’’’’’’’> font offsets := y offsets (a font);’’’N offsets := LENGTH font offsets > 2;’’’’’’’’’’’’’’. font changed := TRUE;’ FI;’’’’’’’’’’’> a xpos := alte xpos + token xpos;’’’’’’’’’’’’’> a ypos := alte ypos + token ypos;’’’’’’’’’’’’’N lege token an (token text, 1, max int, token typ)’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’. . token text : par1’’’’’’’’’’’’’’’END PROC analysiere anweisung;>PROC stelle neuen font ein (INT CONST font nr ) :’’’’’’’’’’’’’. IF font nr <> a font THEN neuer font FI;’’’’ . neuer font :’’’’’’’’’’’’’’. a font := max (1, font nr);’’’’’’’’’’’’’N get font (a font, einrueckbreite, fontdurchschuss, fonthoehe, fonttiefe,. zeichenbreiten);’’’’’’’’’’’’’’^ blankbreite := zeichenbreiten (blank code 1);’’’’’’’’’’’’N zeichenbreiten (blank code 1) := blank ausgang;’’’’’’’’’’’’N zeichenbreiten (anweisungs zeichen code 1) := anweisungs ausgang;’’’’’’’N font offsets := y offsets (a font);’’’’’’’^ offsets := LENGTH font offsets > int length;’’’’’’’’’ berechne fontgroesse;’’’. berechne letzte zeilengroesse;’’’’’’’’’’ IF d code 1 <> leer’’’’’N THEN d pitch := zeichenbreiten (d code 1);N zeichenbreiten (d code 1) := d code ausgang;’’’’’’’’’’’.END PROC stelle neuen font ein;’’’’’’’’’’’’’’’.INT OP PROZENT (INT CONST prozent, wert) :’’’’. (wert * prozent + 99) DIV 100’’’’’’’’’’’’’END OP PROZENT; ’’’’’’’’’’’’’’>PROC neue markierung (TEXT CONST text, INT CONST mark index) :> mark token (mark index). text := text;’’’’’’’’N mark token (mark index). breite := string breite (text);’’’’’’’’> mark token (mark index). font := a font;’’’’’’N mark token (mark index). modifikationen := a modifikationen;’’’’’’’’’’’’END PROC neue markierung;’’’’’.INT PROC string breite (TEXT CONST string) :’’. INT VAR summe := 0, pos := 1;’’’’’’’’’’’’’^ REP stranalyze (zeichenbreiten, summe, max breite, string, pos, maxint, ausgang);’’’’’’’’’. IF ausgang = erweiterungs ausgang’’’> THEN summe INCR extended char pitch (a font,’’’’’N string SUB pos+1, string SUB pos+2);’’’ pos INCR 3;’. ELIF ausgang = blank ausgang’’’’’’’’’’. THEN summe INCR blankbreite;’’’’’ pos INCR 2;’. ELIF ausgang = anweisungs ausgang’’’’’N THEN summe INCR char pitch (a font, anweisungszeichen);’’’’’’’’’’ pos INCR 2;’> ELSE LEAVE string breite WITH summe’’’’’’’’’’’’’’END PROC string breite;’’’’’’’N(*******************************************************************)’’’’’’’’’.PROC lege token an (TEXT CONST token text,’’’’N INT CONST token anfang, token ende, token typ) :’’’’’’’’’. INT VAR anfang := token anfang;’’’’’’’’’’’’’> aktuelle ypos := a ypos + (font offsets ISUB 1); ’’’’’’’’’’’ neuer token index;’’’’’’’’’’N uebertrage token (tf, token text, token anfang, token ende, token typ);’’’’’ IF token typ >= text token> THEN IF offsets THEN lege offsets an (font offsets) FI;N stranalyze (zeichen zaehler, anzahl zeichen, max int,’’’’’’’’’’’’’N token text, anfang, token ende, ausgang);’’’’’’’’’’’’’. a xpos INCR a breite;’’’’’’’’’’’’’. a breite := 0;’’’’’’’’’’. a modifikationen fuer x move := 0;’’’’’’’’’’. a block token := FALSE;’’’’’’END PROC lege token an;’’’’’’’>PROC uebertrage token (TOKEN VAR tf, TEXT CONST token text,’’’N INT CONST token anfang, token ende, token typ) :’’’’’’’^ tf. text := subtext (token text, token anfang, token ende);’’’’’’’’’’’. tf. xpos := a xpos;’’’. tf. breite := a breite;’. tf. font := a font;’’’> tf. modifikationen := a modifikationen;’’’’’’’’’N tf. modifikationen fuer x move := a modifikationen fuer x move;’’’’’’’’’’’’’. tf. offset index := token typ;> tf. block token := a block token;’’’’’’’’’’’’END PROC uebertrage token;’’’’>PROC lege markierungs token an (INT CONST mark index) :’’’’’’’> aktuelle ypos := a ypos + (mark font offsets ISUB 1); ’’’’’’ neuer token index;’’’’’’’’’’. tf := mark token (mark index);’’’’’’’’’’’’’’> IF mark offsets THEN lege offsets an (mark font offsets) FI;N . mark font offsets : y offsets (mark token (mark index). font)’’’’’’’’’’’N . mark offsets : LENGTH mark font offsets > int length’’’’’’’’’’’’’’’.END PROC lege markierungs token an;’’’’’’’’’’’.PROC lege offsets an (TEXT CONST offsets l) :’> INT CONST anzahl offsets := LENGTH offsets l DIV int length; INT VAR index;’’’’’’’’’’’’’’ offset token := tf;’’’’’’’’’. offset token. block token := FALSE;’’’’’’’’’> reset bit (offset token. modifikationen, underline bit);’’’’N reset bit (offset token. modifikationen fuer x move, underline bit);’’’’’’’’. FOR index FROM 2 UPTO anzahl offsets’’’’’’’’> REP aktuelle ypos := a ypos + (offsets l ISUB index); ’’’’’’ neuer token index;’’’’’’. tf := offset token;’’’’’’’. tf. offset index := index;’’’’’’’’’’’’’’END PROC lege offsets an;’’’’’PROC neuer token index :’’’’’’IF erster ypos index a = 0’’ THEN erste ypos’’’’’’’’’’ELIF ya. ypos = aktuelle ypos . THEN neues token bei gleicher ypos’’’’’’’ ELSE fuege neue ypos ein’ . erste ypos :’’’’’’’’’’’’’’ ypos index f INCR 1;’’’> erster ypos index a := ypos index f;’’’’’’’’’’’’> letzter ypos inde, highest bit);’> IF (pitch <> font. indentation pitch) OR’’’’’’’’’’N (link nr > replacements length AND link nr <> maxint)’’’’’’’’’’> THEN put font char pitch and replacement;’’’’’’. IF ausgabe ’’’’’’’’’’’’’’’. THEN put z;’’’’’’’’’’’’. ausgabe := FALSE;’. ELSE ausgabe := TRUE;’’ FI;’’’’’’’. z CAT " "; ’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’> IF ausgabe THEN put z ELSE z := " " FI;’’’’’’’’’’’’’’’> . put font char pitch and replacement :’’’’’’’’’’’’’’’ put char code;’’’’. put font char pitch; ’’’’’’’’’’’’’N IF link nr > replacements length AND link nr <> maxint’’’’’’’’’’. THEN put font replacement;’’’^ IF NOT ausgabe THEN z CAT (6 - LENGTH replacement) * " " FI;’’’’’’’’’’’’ ELIF ausgabe’’’’’’. THEN z CAT ";"’’’’’’’’’’’’’’’. ELSE z CAT "; ";’’ FI;’’’’’’’’’’’’’’’. . put font char pitch :’’’’’’’’’’’’’’’. IF pitch = max int ’’’’’’’’’’’’’’’N THEN char pos := pos (font. extension chars, code (char code));. IF char pos <> 0’’’’’’’’’’> THEN pitch := font table. extensions’’’^ (font. extension indexes ISUB char pos). std pitch ’’’’’’’’’’’’’ FI;’’’’’’’ FI;’’’’’’’’’’’’’’’ put char pitch; ’’. . put font replacement :’’’’’’’’’’’’’’. link nr DECR replacements length;’N replacement := subtext (font. replacements, link nr + 1,’’’’’’’’’N link nr + code (font. replacements SUB link nr) );’ put replacement;’’ . put font extensions :’’’. IF font. extension chars <> ""’’’’’’’’N THEN FOR index FROM 1 UPTO LENGTH font. extension chars ’’’’’’’’’’’. REP put font extension PER;’’’ . put font extension :’’’’ check file overflow;’’ put z;. z CAT " EXTENSION : """"";’’’’’’’’’> z CAT text 3 (code (font. extension chars SUB index)); z CAT """"";";’’’’’’’’. put z; put z; z CAT " "; ’’’’’’’’’’’’. detemine replacements length;’’’’’’’’’> extension nr := font. extension indexes ISUB index;’’’ ausgabe := FALSE;. FOR char code FROM 0 UPTO 255’’’’’’’’’. REP char code 1 := char code + 1;’’’’’N pitch := extension. pitch table (char code 1);’’’’’’’’’’’’’’N link nr := extension. replacements table (char code 1);’’’’’’’N IF pitch <> extension. std pitch OR link nr > replacements length’> THEN put extension char pitch and replacement; . IF ausgabe ’’’’’’’’’’’’’’’. THEN put z;’’’’’’’’’’’’. ausgabe := FALSE;’. ELSE ausgabe := TRUE;’’ FI;’’’’’’’. z CAT " "; ’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’> IF ausgabe THEN put z ELSE z := " " FI;’’’’’’’’’’’’’’’. . detemine replacements length :’’’’’’> char pos := pos (font table. extension chars,’’’’’N font. extension chars SUB index); ’’’ IF char pos <> 0’’N THEN replacements length := LENGTH font table. extensions’’’’’’^ (font table. extension indexes ISUB char pos). replacements; ’’’’’’’’’’’’’’’. ELSE replacements length := 0;’ FI;’’’’’’’’’’’’’’’> . put extension char pitch and replacement :’’’’’’’’’’ put char code;’’’’ put char pitch;’’’. IF link nr > replacements length> THEN put extension replacement;’’’’’’’’’’’’’’^ IF NOT ausgabe THEN z CAT (6 - LENGTH replacement) * " " FI;’’’’’’’’’’’’ ELIF ausgabe’’’’’’. THEN z CAT ";"’’’’’’’’’’’’’’’. ELSE z CAT "; ";’’ FI;’’’’’’’’’’’’’’’. put extension replacement :’. link nr DECR replacements length;’’’’’’’’’N replacement := subtext (extension. replacements, link nr + 1,’’’’’’’’’’’’’N link nr + code (extension. replacements SUB link nr) );’’ put replacement;’’’’’’’’’’. put char code :’’’’’’’’’’’’’> IF (char code >= 32 AND char code <= 122) OR’’’’’’’’’’’’’> (char code >= 214 AND char code <= 223) OR’’’’’’’’’’’’’N char code = 124 OR char code = 126 OR char code = 251’’’’’’’’’’’’ THEN z CAT "(* ";’’’’’’. z CAT code (char code);’’’’’’’’’’’ z CAT " *) """"";’. ELSE z CAT " """"";’’’’’’’’’’’’’ z CAT text 3 (char code);’ z CAT """""";’’’’’’’’’’’’’. put char pitch : ’’’’’’’’’’’ z CAT ","; z CAT text (pitch, 5);’’’’. put replacement :’’’’’’’’’’’ decode (replacement);’’’’’ z CAT ", """;’’’’’’’’’’’ z CAT replacement;’’’’’’’’ z CAT """;"’’’’’’’’’’’’’’’END PROC create font file;’’’’ putline (font file, z);’’’’’ cout (lines (font file));’’’END PROC put z;’’’’’’’’’’’’’’’.PROC decode (TEXT VAR string) :’’’’’’’’’’’’’’’. change all (string, """", """""");’’’’’’’’’’. p := pos (string, ""0"", ""31"", 1);’’’’’’’’ WHILE p <> 0N REP change (string, p, p, """" + text (code(string SUB p)) + """");’’’’’’’’’. p := pos (string, ""0"", ""31"", p);’’’’. p := pos (string, ""127"", ""255"", 1);’’’’’ WHILE p <> 0N REP change (string, p, p, """" + text (code(string SUB p)) + """");’’’’’’’’’. p := pos (string, ""127"", ""255"", p);’END PROC decode;’’’’’’’’’’’’’’.TEXT PROC text 3 (INT CONST value) :’’’’’’’’’’ buffer := text (value, 3);’’. change all (buffer, " ", "0");’’’’’’’’’’’’’’END PROC text 3;’’’’’’’’’’’’’’END PACKET font convertor;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ TeCal.gen’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’x a := ypos index f;’’’’’’’’’’’’. yf. vorheriger ypos index := 0;’’’’’’’. yf. naechster ypos index := 0;’’’’’’’. erstes token bei neuer ypos;’’’’’’’’’’’’ . fuege neue ypos ein :’’’’’. letztes token bei gleicher ypos;’’’’’’’’. IF ya. ypos > aktuelle ypos’’’’’’’’’’’’’. THEN richtige ypos ist oberhalb’’’’’’. ELSE richtige ypos ist unterhalb’’’’’. . richtige ypos ist oberhalb :’’’’’’’’’’> REP ypos index a := ya. vorheriger ypos index;’’’’’’. IF ypos index a = 0’’’’’’’’’’’> THEN fuege ypos vor erstem ypos index ein;’> LEAVE richtige ypos ist oberhalb;’’’’’. ELIF ya. ypos = aktuelle ypos’’’> THEN neues token bei neuer ypos;’’’’’’’’’’’> LEAVE richtige ypos ist oberhalb;’’’’’. ELIF ya. ypos < aktuelle ypos’’’> THEN fuege ypos nach ypos index ein;’’’’’’’> LEAVE richtige ypos ist oberhalb;’’’’’ FI;’’’’’’’’’’’’’ PER;. . richtige ypos ist unterhalb :’’’’’’’’’> REP ypos index a := ya. naechster ypos index;’’’’’’’. IF ypos index a = 0’’’’’’’’’’’N THEN fuege ypos nach letztem ypos index ein;’’’’’’’’’’’’’’’> LEAVE richtige ypos ist unterhalb;’’’’. ELIF ya. ypos = aktuelle ypos’’’> THEN neues token bei neuer ypos;’’’’’’’’’’’> LEAVE richtige ypos ist unterhalb;’’’’. ELIF ya. ypos > aktuelle ypos ’’> THEN fuege ypos vor ypos index ein;’’’’’’’’> LEAVE richtige ypos ist unterhalb;’’’’ FI;’’’’’’’’’’’’’ PER;> . fuege ypos vor erstem ypos index ein :’’’’’’’’’’’’. ypos index f INCR 1;’’’’’’’’’’’> yf. vorheriger ypos index := 0;’’’’’’’’’’’’’’’N yf. naechster ypos index := erster ypos index a;’’’’’’N erster ypos index a := ypos index f;’’’’’’N ypos index a := yf. naechster ypos index;’’’’’’’’N ya. vorheriger ypos index := ypos index f;’’’’’’. erstes token bei neuer ypos;’’’’. . fuege ypos nach ypos index ein :’’. ypos index f INCR 1;’’’’’’’’’’’N yf. vorheriger ypos index := ypos index a;’’’’’’N yf. naechster ypos index := ya. naechster ypos index;’’’’’’’’N ya. naechster ypos index := ypos index f;’’’’’’N ypos index a := yf. naechster ypos index;’’’’’’’’N ya. vorheriger ypos index := ypos index f;’’’’’’. erstes token bei neuer ypos;’’’’. . fuege ypos vor ypos index ein :’’’. ypos index f INCR 1;’’’’’’’’’’’N yf. naechster ypos index := ypos index a;’’’’’N yf. vorheriger ypos index := ya. vorheriger ypos index;’’’’’’’N ya. vorheriger ypos index := ypos index f;’’’’’N ypos index a := yf. vorheriger ypos index;’’’’’’’N ya. naechster ypos index := ypos index f;’’’’’. erstes token bei neuer ypos;’’’’> . fuege ypos nach letztem ypos index ein :’’’’’’’’’’. ypos index f INCR 1;’’’’’’’’’’’> yf. naechster ypos index := 0;’’’’’’’’’’’’’’’N yf. vorheriger ypos index := letzter ypos index a;’’’’’N letzter ypos index a := ypos index f;’’’’’N ypos index a := yf. vorheriger ypos index;’’’’’’’N ya. naechster ypos index := ypos index f;’’’’’. erstes token bei neuer ypos;’’’’END PROC neuer token index;’’’.PROC erstes token bei neuer ypos :’’’’’’’’’’’’ token index f INCR 1;’’’’. ypos index a := ypos index f;> ya. erster token index := token index f; ’’’’’’’’’’’’’’> ya. ypos := aktuelle ypos;’’’’’’’’’’’’’’’.END PROC erstes token bei neuer ypos;’’’’’’’’’.PROC neues token bei neuer ypos :’’’’’’’’’’’’’ token index f INCR 1;’’’’> ya. ypos := aktuelle ypos;’’’’’’’’’’’’’’’> token index := ya. letzter token index;’’’’’> t. naechster token index := token index f;’’’’’’’’’’’’’’’.END PROC neues token bei neuer ypos;’’’’’’’’’’.PROC neues token bei gleicher ypos :’’’’’’’’’’> tf. naechster token index := token index f + 1;’’’’’’’’’’ token index f INCR 1;’’’’.END PROC neues token bei gleicher ypos;’’’’’’’.PROC letztes token bei gleicher ypos : ’’’’’’’. tf. naechster token index := 0;’’’’’’’’’’> ya. letzter token index := token index f;’’’’’’’’’’’’’’.END PROC letztes token bei gleicher ypos;’’’’’PROC loesche letztes token :’’> IF token index f = ya. erster token index ’’’’’’’’’’’’’’’ THEN loesche ypos’’’’’. ELSE token index f DECR 1;’’’’’’’’’’’’ . loesche ypos :’’’’’’’’’ kette vorgaenger um;’ kette nachfolger um;’. bestimme letzten ypos index;’’’’’’’’’. . kette vorgaenger um :’’’’’’’’’’’’’’> ypos index := ya. vorheriger ypos index; ’’’’’’’’ IF ypos index = 0N THEN erster ypos index a := ya. naechster ypos index;’’’N ELSE y. naechster ypos index := ya. naechster ypos index; ’’ FI;’’’’’’’’’’’’’’. . kette nachfolger um :’’’’’’’’’’’’’’> ypos index := ya. naechster ypos index;’’’’’’’’’’ IF ypos index = 0N THEN letzter ypos index a := ya. vorheriger ypos index;’N ELSE y. vorheriger ypos index := ya. vorheriger ypos index;  FI;’’’’’’’’’’’’’’. . bestimme letzten ypos index :’’’’’’N IF ypos index a = ypos index f THEN ypos index f DECR 1 FI;’’’’’’. token index f DECR 1;’’’’’’’’’’’’> ypos index a := letzter ypos index a; ’’’’’’’’’’’. WHILE ypos index a <> 0’’’’’’’’’’N CAND ya. letzter token index <> token index f’’’’’’’’’’N REP ypos index a := ya. vorheriger ypos index PER;’’’’’’’’’’’’’’’.END PROC loesche letztes token;’’’’’’’’’’’’’’’>PROC blocke token xpos (INT CONST dehnung 1, dehnung 2,’’’’’’’N anzahl dehnungen fuer dehnung 1 ) :’’’’’’’’’. INT VAR dehnung := 0, anzahl dehnungen := 0;. token index := erstes tab token;’’’’’’’’’’’’. WHILE token index <= token index f’’’’’’’’’’. REP erhoehe token xpos bei block token;’’’’’ t. xpos INCR dehnung;’’’ token index INCR 1; ’’’’. . erhoehe token xpos bei block token :’’’’’’ IF t. block token’’’’’’’N THEN IF anzahl dehnungen < anzahl dehnungen fuer dehnung 1’’’’’’’’’’’. THEN anzahl dehnungen INCR 1;. dehnung INCR dehnung 1;’. ELSE dehnung INCR dehnung 2;’ FI;’’’’’’’’’’’’’END PROC blocke token xpos;’’’>PROC verschiebe token xpos (INT CONST verschiebung l) :’’’’’’’. token index := erstes tab token;’’’’’’’’’’’’. WHILE token index <= token index f’’’’’’’’’’. REP t. xpos INCR verschiebung l;’’’’’’’’’’’’ token index INCR 1; ’’’’.END PROC verschiebe token xpos;’’’’’’’’’’’’’’’>PROC verschiebe token ypos (INT CONST verschiebung l) :’’’’’’’. ypos index := erster ypos index a;’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ˆa€ė’’9966“’’’’““:>Młž’’’’’’ TeCal.gen’’’’’’’’’’’’’’’’’’’’9’’’’’’’’’’’’’’’’’’a€’’’’’’’’’’’’’’’’’’’’€’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±€’8’’’’’’’’’’’’’’’’’’’ń€’J’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ checkoff;’’’’’’’’’’’’’’ insert tecal;’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’H’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’1‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q‚’’’’’’’’’’’’’’’’’’’’q‚’I’’’’’’’’’’’’’’’’’’’Į‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’ƒ’M’’’’’’’’’’’’’’’’’’’Qƒ’’’’’’’’’’’’’’’’’’’’qƒ’$’’’’’’’’’’’’’’’’’’’”ƒ’=’’’’’’’’’’’’’’’’’’’გ;’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’„’ ’’’’’’’’’’’’’’’’’’’±„’2’’’’’’’’’’’’’’’’’’’’’ i:= 1;’’’’’’’’’’’’’ń„’'’’’’’’’’’’’’’’’’’’’!…’M’’’’’’’’’’’’’’’’’’’q…’M’’’’’’’’’’’’’’’’’’’Į…’K’’’’’’’’’’’’’’’’’’’†’#’’’’’’’’’’’’’’’’’’’A†’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’q†’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘†’’’’’’’’’’’’’’’’’’’’±†’’’’’’’’’’’’’’’’’’’’ц’’’’’’’’’’’’’’’’’’’’ń†’#’’’’’’’’’’’’’’’’’’’!‡’$’’’’’’’’’’’’’’’’’’’Q‡’7’’’’’’’’’’’’’’’’’’’‘‡’-’’’’’’’’’’’’’’’’’’’Į‡’’’’’’’’’’’’’’’’’’’’ч’’’’’’’’’’’’’’’’’’’’ń‡’’’’’’’’’’’’’’’’’’’’’’ TRUE .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’LET tecal = "TeCal",’’’’’’’. auskunft = "TeCal Auskunft";’’’’’’’’’’’’’’>IF NOT exists ("TeCal") THEN fetch ("TeCal",archive) FI;’’’’’’NIF NOT exists ("TeCal Auskunft") THEN fetch ("TeCal Auskunft",archive) FI;’’’’insert auskunft;’’’’’’’’’’’’’’shorten auskunft file;’’’’’’’’forget ("Tecal.gen", quiet).’’insert tecal :’’’’’’’’’’’’’’N display (""13""10""15" TeCal-Rechner wird installiert "14""13""10"");’’’’’’ insert (tecal);’’’’’’’’’’’’’ forget (tecal, quiet).’’’’’’insert auskunft:’’’’’’’’’’’’’’N display (""13""15" TeCal-Auskunftfile wird installiert "14""13""10"");’’’’’ insert (auskunft).’’’’’’’’’’shorten auskunft file :’’’’’’’N display (""13""10""15" TeCal-Auskunftfile wird komprimiert "14""13""10"");’ disable stop;’’’’’’’’’’’’’’’. DATASPACE VAR dspace := nil space;’’’’’’’’’’> FILE VAR file := sequential file ( input, auskunft),’> shorted:= sequential file (output, dspace);’’’ TEXT VAR buffer;’’’’’’’ INT VAR i;’’’’’’’’’’’’ WHILE NOT eof (file)’’’’’’’’. REPEAT get line (file, buffer)’’’’’’’’’’’’’’> UNTIL (pos ("(*", buffer) > 0) OR is error PER;’’’’’’’’’’’’. IF eof (file) COR text not transfered’’’’’’’N THEN errorstop ("TeCal-Auskunftsfile ist bereits komprimiert!"13""10"" +’N "'ESC ' funktioniert wahrscheinlich nicht."13""10"" +’N "Bitte ORIGINAL Auskunftsfile von Diskette verwenden")’’’. ELSE forget (auskunft, quiet);’’’’’’’’’’’. copy (dspace, auskunft)’’’’’’’’’’’’’ forget (dspace) .’’’’’’’’’’’ text not transfered :’’’’’’’’ WHILE NOT eof (file)’’’’’’ REPEAT cout (i);’’’’’’’’’’. get line (file, buffer);’’’’’’’’’’’. IF pos (buffer, "*)") > 0’’’’’’’’’’> THEN LEAVE text not transfered WITH FALSE’’’’’’’. ELSE put line (shorted, buffer)’ FI; i INCR 1’’’’’’’’’’’ UNTIL is error PER;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ WHILE ypos index <> 0’’’’’’’. REP y. ypos INCR verschiebung l; ’’’’’’’’’’’. ypos index := y. naechster ypos index;’’.END PROC verschiebe token ypos;’’’’’’’’’’’’’’’PROC sortiere neue token ein :INT VAR index; ’’’’’’’’’’’’’’’.IF analysespeicher ist nicht leer’’’’’’’’’’’’’. THEN IF druckspeicher ist nicht leer’’’’’’’> THEN sortiere neue token in sortierte liste ein’’’’. ELSE sortierte liste ist leer’’’’’’. sortierte liste ist leer :’’. IF erster ypos index a <> 0’’’’’’’’’’’’’’’> THEN erster ypos index d := erster ypos index a;’’’’’> letzter ypos index d := letzter ypos index a;’’’’’> ypos index d := letzter ypos index a;’’’’’.. sortiere neue token in sortierte liste ein :. gehe zum ersten neuen token;’’’’’’’’’’’’’’. bestimme erste einsortierposition;’’’’’’’’. WHILE es gibt noch neue token’’’’’’’’’’’’’ REP IF ypos index d = 0’N THEN haenge neue token ans ende der sortierten liste ’’’’’’’’’’’’. ELIF ya. ypos > yd. ypos’’’’’’’’’’’’’’> THEN naechste ypos der sortierten liste’’’’’’’’’’. ELIF ya. ypos = yd. ypos’’’’’’’’’’’’’’> THEN neues token auf gleicher ypos’’’’’’’’’’’’’’’. ELSE neue token vor ypos’’’’’’’’’. . gehe zum ersten neuen token :’’’’’’’’’’’. ypos index a := erster ypos index a;’’. . bestimme erste einsortierposition :’’’’’> WHILE ypos index d <> 0 CAND ya. ypos < yd. ypos’’’’> REP ypos index d := yd. vorheriger ypos index PER;’’N IF ypos index d = 0 THEN erste neue token vor listen anfang FI;’’’’’’’. . erste neue token vor listen anfang :> ypos index d := erster ypos index d;’’’’’’’> erster ypos index d := erster ypos index a;’’’’’’’> REP ypos index a := ya. naechster ypos index;’’’’’. IF ypos index a = 0’’’’’’’’’> THEN verkette letztes ya mit yd;’’’’’’’’’N LEAVE sortiere neue token in sortierte liste ein’’’’. ELIF ya. ypos = yd. ypos’’’’’’. THEN verkette ya mit yd;’N LEAVE erste neue token vor listen anfang’’’’’’’’’’’’. ELIF ya. ypos > yd. ypos’’’’’’> THEN verkette vorheriges ya mit yd;’’’’’’N ypos index d := yd. naechster ypos index;’’’’’’’’’’’N LEAVE erste neue token vor listen anfang’’’’’’’’’’’’ FI;’’’’’’’’’’’ PER;’’’’’’’’’’’’’’. . es gibt noch neue token :’’’’’’’’’’’’’’’ ypos index a <> 0’’’’’> . haenge neue token ans ende der sortierten liste : ’’’’’’> ypos index d := letzter ypos index d;’’> yd. naechster ypos index := ypos index a;’’> ya. vorheriger ypos index := ypos index d;’’> letzter ypos index d := letzter ypos index a;’’> ypos index d := letzter ypos index a;’’. ypos index a := 0;’’’’’. . naechste ypos der sortierten liste :’’’’> ypos index d := yd. naechster ypos index;’’’’’’’’’’’’’. . neues token auf gleicher ypos :’’’’’’’’’N token index := yd. letzter token index;’’’’’’’’’’’’’N t . naechster token index := ya. erster token index;’’’’’’’’’’’’’N yd. letzter token index := ya. letzter token index;’’’’’’’’’’’’’N ypos index a := ya. naechster ypos index;’’’’’’’’’’’’’N ypos index d := yd. naechster ypos index;’’’’’’’’’’’’’N IF ypos index d = 0 THEN ypos index d := letzter ypos index d FI;’’’’’ . neue token vor ypos :’’’. verkette ya mit vorherigem yd;’’’’’’’’> REP ypos index a := ya. naechster ypos index;’’’’’’’’’. IF ypos index a = 0’’’’’’’’’’’’’> THEN verkette letztes ya mit yd;’’’’’’’’’’’’’N LEAVE sortiere neue token in sortierte liste ein’’’’’’’’. ELIF ya. ypos = yd. ypos’’’’’’’’’’. THEN verkette ya mit yd;’’’’’> LEAVE neue token vor ypos’’’’’’’’’’’’’’’. ELIF ya. ypos > yd. ypos ’’’’’’’’’> THEN verkette vorheriges ya mit yd;’’’’’’’’’’N ypos index d := yd. naechster ypos index;’’’’’’’’’’’’’’’> LEAVE neue token vor ypos’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’.. verkette ya mit vorherigem yd :’’’’’’’’’’’’’> index := ypos index d;’’’’’’’’’’’’’’> ypos index d := yd. vorheriger ypos index; N yd. naechster ypos index := ypos index a;’’’’’’’’’’’’’’’N ya. vorheriger ypos index := ypos index d;’’’’’’’’’’’’’’’. ypos index d := index;’’’’’. verkette letztes ya mit yd :> ypos index a := letzter ypos index a;’’’’’’> yd. vorheriger ypos index := ypos index a;’’’’’’> ya. naechster ypos index := ypos index d;’’’’’’. ypos index a := 0;’’’’’’’’’.. verkette vorheriges ya mit yd :’’’’’’’’’’’’’> index := ypos index a;’’’’’’’’’’’’’’> ypos index a := ya. vorheriger ypos index; > yd. vorheriger ypos index := ypos index a;’’’’’’> ya. naechster ypos index := ypos index d;’’’’’’. ypos index a := index;’’’’’. verkette ya mit yd :’’’’’’’’. verkette vorheriges ya mit yd;’’’’’’’’’’’’. neues token auf gleicher ypos;’’’’’’’’’’’’.END PROC sortiere neue token ein;’’’’’’’’’’’’’N(***************************************************************)’’’’’’’’’’’’’PROC drucke tokenspeicher’’’’’. (INT CONST max ypos,’’’’’’’’’’’’’N PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) :’’’.IF druckspeicher ist nicht leer’’’’’’’’’’’’’’’ THEN gehe zur ersten ypos; . WHILE yd. ypos <= max ypos ’’’’’’’’’’’. REP drucke token bei ypos;’’’’’’’’’’’’. gehe zur naechsten ypos; ’’’’’’’’’. loesche gedruckte token;’’’’’’’’’’’’’’. gehe zur ersten ypos :’’’’’’. ypos index d := erster ypos index d;’’’’’’. drucke token bei ypos :’’’’’ IF yd. ypos >= - y start’’ THEN druck durchgang;’’> IF bold pass THEN fett durchgang FI;’> IF underline pass THEN unterstreich durchgang FI;’. . bold pass : bit (pass, bold bit)’’’> . underline pass : bit (pass, underline bit)’’’’’’’’’’’’’’. gehe zur naechsten ypos : ’’. IF ypos index d = letzter ypos index d’’’’. THEN loesche druckspeicher;’’’’’’’’’’’’. LEAVE drucke tokenspeicher;’’’’’’’. ypos index d := yd. naechster ypos index;’. loesche gedruckte token :’’’> erster ypos index d := ypos index d;’’’’’’’’’’’’’’. yd. vorheriger ypos index := 0;’’’’’’’’’ druck durchgang :’’’’’’’’’’’. verschiebung := yd. ypos - d ypos;’’’’’’’’N y move (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’. gehe zum ersten token dieser ypos; ’’’’’’’> REP drucke token UNTIL kein token mehr vorhanden PER;’’’’’ . drucke token :’’’’’’’’’’. IF NOT token passt in zeile’’’’’’’’’’’. THEN IF token ist text token’’’’’’’. THEN berechne token teil’’’. ELSE LEAVE drucke token’’’’ FI;’’’’’’’’’’’. font wechsel wenn noetig;’’’’’’’’’’’’’> x move mit modifikations ueberpruefung; ’’’’’’’’’’’’’’. IF token ist text to’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööken’’’’’’’’’’’’’. THEN gib text token aus’’’’’’’’’’^ (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’’’’’’’’. ELIF token ist linien token’’’’’’’’’’’. THEN gib linien token aus’’’’’’’’. ELSE gib kommando token aus’’’’’’ . gib linien token aus :’’> linien verschiebung := d token. breite;’’’’’’’’’’’’’’’^ ziehe horizontale linie (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’ . gib kommando token aus :N execute (write cmd, d token. text, 1, LENGTH d token. text)’’’’’’’’’’’. . berechne token teil :’’’’’’’’’’’’’’’N INT CONST fuenf punkte := 5 * char pitch (d token. font, punkt);’’^ INT VAR token pos, token breite, anzahl punkte, zeichen laenge, zeichen breite; ’’. IF d token. xpos < - x start’’’’N AND d token. xpos + d token. breite > - x start ’’’’’’’’’’’> THEN berechne token teil von links’’’’’’’’’’’. ELIF d token. xpos < papierbreite’N AND d token. xpos + d token. breite > papierbreite’’’’’’’’’> THEN berechne token teil nach rechts’’’’’’’’’. ELSE LEAVE drucke token’’’’’’ FI;’’’’’’’’’’’’’’’. . berechne token teil von links :’’’’’^ rest := min (x size, d token. xpos + d token. breite + x start);’’’’’’’’’. d token. xpos := - x start;’’’’’’’. IF rest <= fuenf punkte ’’’’’’’’’’^ THEN anzahl punkte := rest DIV char pitch (d token. font, punkt);’’’’’’’’’’’’> d token. text := anzahl punkte * punkt;’^ d token. breite := anzahl punkte * char pitch (d token. font, punkt);’’’’’> ELSE token pos := LENGTH d token. text + 1;’> token breite := fuenf punkte;’’’’’’’’’’’’’> berechne token teil breite von hinten;’’’’N change (d token. text, 1, token pos - 1, 5 * punkt);’’’’’’> d token. breite := token breite;’’’’’’’’’’ FI;’’’’’’’’’’’’’’’> . berechne token teil breite von hinten :’’’’’’’’’> WHILE naechstes zeichen passt noch davor’’’’’’> REP token breite INCR zeichen breite; ’’’’’’’’> token pos DECR zeichen laenge;’’’’’’’’’ PER;’’’’’’’’’’> . naechstes zeichen passt noch davor :’’’’’’’’’’’’N IF within kanji (d token. text, token pos - 1) ’’’’’’’’’’’’’’’. THEN zeichen laenge := 2’’’. ELSE zeichen laenge := 1’’’ FI;’’’’’’’’’’’> zeichen breite := char pitch (d token. font,’’^ subtext (d token. text, token pos - zeichen laenge, token pos - 1));’’’’’’> token breite + zeichen breite < rest’’’’’’’’’’. . berechne token teil nach rechts :’’’> rest := papier breite - d token. xpos;’’’’’’’’’’’’. IF rest <= fuenf punkte ’’’’’’’’’’^ THEN anzahl punkte := rest DIV char pitch (d token. font, punkt);’’’’’’’’’’’’> d token. text := anzahl punkte * punkt;’^ d token. breite := anzahl punkte * char pitch (d token. font, punkt);’’’’’. ELSE token pos := 0;’’’’’’’’> token breite := fuenf punkte;’’’’’’’’’’’’’> berechne token teil breite von vorne;’’’’’^ change (d token. text, token pos + 1, LENGTH d token. text, 5 * punkt);’’’> d token. breite := token breite;’’’’’’’’’’ FI;’’’’’’’’’’’’’’’> . berechne token teil breite von vorne :’’’’’’’’’’> WHILE naechstes zeichen passt noch dahinter’’’> REP token breite INCR zeichen breite; ’’’’’’’’> token pos INCR zeichen laenge;’’’’’’’’’ PER;’’’’’’’’’’> . naechstes zeichen passt noch dahinter :’’’’’’’’’N IF is kanji esc (d token. text SUB token pos + 1) ’’’’’’’’’’’’. THEN zeichen laenge := 2’’’. ELSE zeichen laenge := 1’’’ FI;’’’’’’’’’’’> zeichen breite := char pitch (d token. font,’’^ subtext (d token. text, token pos + 1, token pos + zeichen laenge));’’’’’’> token breite + zeichen breite < rest’’’’’’’’’’ fett durchgang :’’’’’’’’’’’’. reset bit (pass, bold bit);’’’’’’’’’’’’’’’ gib cr aus;’’’’’’’’’’’’’’’. gehe zum ersten token dieser ypos;’’’’’’’’N REP gib token nochmal aus UNTIL kein token mehr vorhanden PER;’’’’’’’’’’’’. schalte modifikationen aus wenn noetig;’’’ . gib token nochmal aus :’N INT CONST min verschiebung := bold offset (d token. font); ’’’’’’’’’’’. d token. xpos INCR min verschiebung;’’> IF bit (d token. modifikationen, bold bit) AND’’’’’’’’> token passt in zeile AND token ist text token ’> THEN verschiebung := d token. xpos - d xpos;’’’’’’’’. font wechsel wenn noetig;’’’’’’> schalte italics ein wenn noetig;’’’’’’’’’’’’’’’. x move wenn noetig;’’’’’’’’’’’’n gib text token aus (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute); ’’’’’’’’’’’’’’. d token. xpos DECR min verschiebung;’’. . schalte italics ein wenn noetig :’’’> IF bit (d token. modifikationen, italics bit)’’’’’^ THEN neue modifikationen := modifikations werte (italics bit + 1);’’’’’’’’’’’’’> schalte modifikationen ein wenn noetig;’’’> ELSE schalte modifikationen aus wenn noetig;’’’ FI;’’’’’’’’’’’’’’’ unterstreich durchgang :’’’’ INT VAR l xpos := 0;’’’’’’. reset bit (pass, underline bit);’’’’’’’’’’ gib cr aus;’’’’’’’’’’’’’’’. schalte modifikationen aus wenn noetig;’’’. gehe zum ersten token dieser ypos;’’’’’’’’N REP unterstreiche token UNTIL kein token mehr vorhanden PER;’’’’’’’’’’’’’’ . unterstreiche token :’’’. IF token muss unterstrichen werden AND> token passt in zeile AND token ist text token . THEN font wechsel wenn noetig;’’’’’. berechne x move laenge; ’’’’’’. x move wenn noetig;’’’’’’’’’’’. berechne unterstreich laenge;’n ziehe horizontale linie (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’’’’> l xpos := d token. xpos + d token. breite;’’’’’’’’’’’. . token muss unterstrichen werden :’’> bit (d token. modifikationen, underline bit) OR’’N bit (d token. modifikationen fuer x move, underline bit)’’’’’’. . berechne x move laenge :’’’’’’’’’’’N IF bit (d token. modifikationen fuer x move, underline bit) ’’’’’> THEN verschiebung := l xpos - d xpos’’’’’’’’’> ELSE verschiebung := d token. xpos - d xpos’’’ FI;’’’’’’’’’’’’’’. . berechne unterstreich laenge :’’’’’> IF bit (d token. modifikationen, underline bit) ’> THEN linien verschiebung := d token. xpos + ’’N d token. breite - d xpos’’’’’’N ELSE linien verschiebung := d token. xpos - d xpos’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’> d token. offset index := - underline line type;’’.. gehe zum ersten token dieser ypos :’’’’’’’’’. token index := yd. erster token index;’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö d token := t;’’’’’’’’’’’’’. kein token mehr vorhanden :’> token index := d token. naechster token index;’’’’’’’’’’’ IF token index = 0’’’’’’’’ THEN TRUE’’’’’’’’’’’’’’ ELSE d token := t;’’’’’ FALSE’’’’’’’’’’’’’. token ist text token :’’’’’’. d token. offset index >= text token’’’’’’’. token ist linien token :’’’’. d token. offset index <= linien token’’’’’. token passt in zeile :’’’’’’. d token. xpos >= - x start AND’’’’’’’’’’’’> d token. xpos + d token. breite <= papier breite ’’’’. font wechsel wenn noetig :’’. IF d token. font <> d font’’’’’’’’’’’’’’’^ THEN font wechsel (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) FI;’’’’’.. schalte modifikationen ein wenn noetig :’’’’. IF d modifikationen <> neue modifikationenn THEN schalte modifikationen ein (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) FI;’’’’’’’.. schalte modifikationen aus wenn noetig :’’’’ IF d modifikationen <> 0’’n THEN schalte modifikationen aus (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) FI;’’’’’’’. x move wenn noetig :’’’’’’’’ IF verschiebung <> 0’’’’’’^ THEN x move (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) FI; ’’’’’’’’’’. x move mit modifikations ueberpruefung :’’’’. verschiebung := d token. xpos - d xpos;’’’ IF verschiebung <> 0’’’’’’N THEN neue modifikationen := d token. modifikationen fuer x move;’’’’’’’> schalte modifikationen ein wenn noetig;’’’’’’’’’’’^ x move (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’’’’’’’’’> neue modifikationen := d token. modifikationen;’’’’’’’’’’’. schalte modifikationen ein wenn noetig;’’’. gib cr aus : IF d xpos <> 0’’’’’’’’’’’’> THEN execute (carriage return, "", d xpos, 0);’’’’’’’’’ d xpos := 0;’’’’’’END PROC drucke tokenspeicher;^PROC ziehe horizontale linie (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) :’’’ IF linien verschiebung > 0 THEN disable stop; ’’’’. d xpos INCR linien verschiebung;’’> execute (draw, "", linien verschiebung, 0);’’’’’’’ IF is error’’’’’’’> THEN ziehe horizontale linie nach cr;’’’’’’’’’’ FI;’’’’’’’’’’’’’’’ enable stop;’’’’’’. . ziehe horizontale linie nach cr :’’’’’’’ clear error;’’’’’’’’’’. d xpos DECR linien verschiebung;’’’’’’. verschiebung := d xpos;’’’’’’’’’’’’’’’ gib cr aus;’’’’’’’’’’’N x move (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’. d xpos INCR linien verschiebung;’’’’’’> execute (draw, "", linien verschiebung, 0);’’’’’’’’’’’ IF is error’’’’’’’’’’’ THEN clear error; ’> d xpos DECR linien verschiebung;’’’’’’’’’’’’’’ . gib cr aus :’’’’’’’’’’’’ IF d xpos <> 0’’’’’’’’> THEN execute (carriage return, "", d xpos, 0);’’’’’ d xpos := 0;’’.END PROC ziehe horizontale linie;’’’’’’’’’’’’’NPROC y move (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) :’’’’ IF verschiebung <> 0’’’’’’ THEN gib cr aus;’’’’’’’ disable stop; ’’’’. d ypos INCR verschiebung;’’’’’’’’’> execute (move, "", 0, verschiebung);’’’’’’’’’’’’’’ IF is error’’’’’’’. THEN clear error;’’’’’’’’’’’’’’. d ypos DECR verschiebung;’. verschiebung := 0;’’’’’’’’ FI;’’’’’’’’’’’’’’’ enable stop;’’’’’’ . gib cr aus :’’’’’’’’’’’’ IF d xpos <> 0’’’’’’’’> THEN execute (carriage return, "", d xpos, 0);’’’’’ d xpos := 0;’’END PROC y move;’’’’’’’’’’’’’’NPROC x move (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) :’’’’ disable stop;’’’’’’’’’’’’’ d xpos INCR verschiebung; . execute (move, "", verschiebung, 0);’’’’’’ IF is error’’’’’’’’’’’’’’’. THEN fuehre x move nach cr aus’’’’’’’’’. . fuehre x move nach cr aus :’’’’’’’’’’’’’ clear error;’’’’’’’’’’> schalte modifikationen aus wenn noetig;’’’’’’’’’’’’’’’ gib cr bei x move aus; IF d xpos <> 0’’’’’’’’. THEN execute (move, "", d xpos, 0); IF is error’’’. THEN clear error;’’’’’’’’’’. d xpos := 0;’’’’’’’’’’ FI’’’’’’’’’’’’> schalte modifikationen ein wenn noetig;’’’’’’’’’’’’’’’. . gib cr bei x move aus :’’’’’’’’’’’’’N execute (carriage return, "", d xpos - verschiebung, 0);’’’’’’’’’> . schalte modifikationen aus wenn noetig :’’’’’’’’’’’’> neue modifikationen := d modifikationen;’’’’’’’’’’. IF d modifikationen <> 0’’’’’’’’’’. THEN schalte modifikationen aus^ (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’> . schalte modifikationen ein wenn noetig :’’’’’’’’’’’’> IF d modifikationen <> neue modifikationen’’’’’’’’. THEN schalte modifikationen ein^ (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’END PROC x move;’’’’’’’’’’’’’’.PROC schalte modifikationen ein ’’’’’’’’’’’’’’N (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) :’’’’ disable stop;’’’’’’’’’’’’ INT VAR index;’’’’’’’’’’’ IF d modifikationen <> 0’. THEN schalte modifikationen aus’’’’’’’N (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’. d modifikationen := neue modifikationen;’> FOR index FROM 1 UPTO anzahl modifikationen’’’’’’’’’’’’’’> REP IF bit (d modifikationen, modifikations bit)’’’’’’’’’> THEN modifikation muss eingeschaltet werden’’’’’’’. . modifikations bit : index - 1’’’’’’’’’’> . modifikation muss eingeschaltet werden :’’’’’’’’’’’’’’’> IF bit (modifikations modus, modifikations bit) ’’’’’N THEN execute (on, "", modifikations werte (index), 0);’’’’’’’’’’’’ IF is error’’. THEN clear error;’’’’’’’’’N reset bit (modifikations modus, modifikations bit); ’N set bit (pass, modifikations bit);’’ FI;’’’’’’’’’’> ELSE set bit (pass, modifikations bit); ’’’’’’’’’’.END PROC schalte modifikationen ein;’’’’’’’’’’.PROC schalte modifikationen aus ’’’’’’’’’’’’’’N (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) :’’’’ disable stop;’’’’’’’’’’’’ INT VAR index;’’’’’’’’’’’> FOR index FROM 1 UPTO anzahl modifikationen’’’’’’’’’’’’’’> REP IF bit (d modifikationen, modifikations bit)’’’’’’’’’> THEN modifikation muss ausgeschaltet werden’’’’’’’ d modifikationen := 0;’’’. . modifikations bit : index - 1’’’’’’’’’’> . modifikation muss ausgeschaltet werden :’’’’’’’’’’’’’’’> IF bit (modifikations modus, modifikations bit) ’’’’’N THEN execute (off, "", modifikations werte (index), 0);’’’’’’’’’’’> IF is error THEN clear error FI;’’’’’’’’’’’’’.END PROC schalte modifikationen aus;’’’’’’’’’’PROC font wechsel ’’’’’’’’’’’’N (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) :’’’’ disable stop;’’’’’’’’’’’’ d font := d token. font;’N get replacements (d font, replacements, replacement tabelle);’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. execute (type, "", d font, 0);’’’’’’’’’’’. IF is error THEN font wechsel nach cr FI; enable stop;’’’’’’’’’’’’’ . font wechsel nach cr :’ clear error;’’’’’’’’’. verschiebung := d xpos;’’’’’’’’’’’’’’ gib cr aus;’’’’’’’’’’. execute (type, "", d font, 0);’’’’’’’ IF NOT is error’’’’’’. THEN schalte modifikationen aus’’’^ (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’’’’’’’’ x move’’’’’’’^ (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’’’’’’’’ . gib cr aus :’’’’’’’’’’’ IF d xpos <> 0’’’’’’’> THEN execute (carriage return, "", d xpos, 0);’’’’ d xpos := 0;’END PROC font wechsel;’’’’’’’’PROC gib text token aus ’’’’’’N (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) :’’’’> INT CONST token laenge := LENGTH d token. text;’’’’’’’’’’’’’> INT VAR token pos := 1, alte token pos, summe := 0;’’’’’’’’’ IF token laenge > 0’’’’’’’’’. THEN REP alte token pos := token pos;’’’’> stranalyze (replacement tabelle, summe, 0,’’’’’’N d token. text, token pos, token laenge,’’’’’’’’’’’’’. ausgang);’’’’’’’’’’’ IF ausgang = 0 ’. THEN gib token rest aus;’’’’’. ELSE gib token teil aus;’’’’’> gib ersatzdarstellung aus;’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’ PER; . gib token rest aus :’’’’’’. IF token laenge >= alte token pos’’’’’’’^ THEN execute (write text, d token. text, alte token pos, token laenge) FI;’’’’’’’’’’’. d xpos INCR d token. breite;’’’’’’’’’’’’. LEAVE gib text token aus;’’’’’’’’’’’’’’’ . gib token teil aus :’’’’’’. IF token pos >= alte token pos’’’’’’’’’’^ THEN execute (write text, d token. text, alte token pos, token pos) FI;’’’’’’’’’’’’’’. . gib ersatzdarstellung aus :’’’’’’’’’’’’’’’ IF ausgang = maxint’’’’’N THEN ersatzdarstellung := extended replacement (d token. font,’’’’’’’^ d token. text SUB token pos + 1, d token. text SUB token pos + 2);’’’’’’’’’’’’^ execute (write text, ersatzdarstellung, 1, LENGTH ersatzdarstellung);’’’’’’’’’’’ tokenpos INCR 3; ELSE IF ausgang < 0’’> THEN ausgang := ausgang XOR minint;’’’’’’’’’’. token pos INCR 1;’’’’’’’ FI;’’’’’’’’’’’’’n execute (write text, replacements, ausgang + 1, ausgang + code (replacements SUB ausgang));’’’’’. token pos INCR 2;’’’’’’’’’’’’’’’. . ersatzdarstellung : par1’’’’’’’’’’’’’’END PROC gib text token aus;’’>PROC schliesse seite ab (PROC (INT CONST, INT CONST) close,’’’^ PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) :’’’’’’’’gebe restliche token aus;’’’’’seiten ende kommando;’’’’’’’’’. gebe restliche token aus :’’. IF erster ypos index d <> 0’’’’’’’’’’’’’’’. THEN drucke tokenspeicher (maxint,’’’’’N PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’. rest := papier laenge - d ypos;’’’’’’’’’’’> aktuelle zeilentiefe der letzten zeile := 0;’’’’’’’’’’’’’’. gib cr aus : IF d xpos <> 0’’’’’’’’’’’’> THEN execute (carriage return, "", d xpos, 0);’’’’’’’’’ d xpos := 0;’’’’’’. seiten ende kommando :’’’’’’ seite ist offen := FALSE;’. a ypos := top margin;’’’’’’’’’’’’ aktuelle spalte := 1;’’’’’ close (page, rest);’’’’’’’END PROC schliesse seite ab;’’>PROC eroeffne seite (INT CONST x wanted l, y wanted l,’’’’’’’’N PROC (INT CONST, INT VAR, INT VAR) open ) :’’’’’’’’’’’’’’.IF vor erster seite THEN eroeffne druck FI;’’’seiten anfang kommando;’’’’’’’initialisiere neue seite;’’’’’. eroeffne druck :’’’’’’’’’’’’. open (document, x size, y size);’’’’’’’’’’ vor erster seite := FALSE; d font := -1;’’’ d modifikationen := 0;’’’’. seiten anfang kommando :’’’’ x start := x wanted l;’’’’ y start := y wanted l;’’’’. open (page, x start, y start);’’’’’’’’’’’’ gedruckte seiten INCR 1;’’ seite ist offen := TRUE;’’. initialisiere neue seite :’’^ INT CONST dif left margin := x wanted l - x start - left margin + indentation,’’’’’’’’’’’’N dif top margin := y wanted l - y start - top margin; ’’’’’’’’’ IF dif left margin <> 0’’’. THEN erstes tab token := 1;’’’’’’’’’’’’> verschiebe token xpos (dif left margin);’’’’’’’’’’. a xpos INCR dif left margin;’. left margin INCR dif left margin;’ IF dif top margin <> 0’’’’> THEN verschiebe token ypos (dif top margin);’’’’’’’’’’’. a ypos INCR dif top margin;’’. top margin INCR dif top margin;’’ d xpos := 0;’’’’’’’’’’’’’’ d ypos := 0;’’’’’’’’’’’’’’. IF seitenlaenge <= papierlaenge’’’’’’’’’’’> THEN seitenlaenge := top margin + pagelength; ’’’’’’’’’. ELSE seitenlaenge DECR papierlaenge;’’’. papierlaenge := y size - y start;’’’’’’’’’. papierbreite := x size - x start;’’’’’’’’’END PROC eroeffne seite;’’’’’’N(****************************************************************)’’’’’’’’’’’’>PROC elan fuss und kopf (INT CONST fuss oder kopf,’’’’’’’’’’’’> PROC (INT CONST, INT CONST) close,’’’’’’’’’’’’> PROC (INT CONST, INT VAR, INT VAR) open,’’’’’’N PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) :’.IF fuss oder kopf <= 0 THEN elan fuss FI;’’’’’.IF fuss oder kopf >= 0 THEN elan kopf FI;’’’’’ y move zur fusszeile;’’’’’ drucke elan fuss;’’’’’’’’’ close page cmd;’’’’’’’’’’’. y move zur fusszeile :’’’’’’. execute (carriage return, "", d xpos, 0); d xpos := 0;’’’’’’’’’’’’’’> verschiebung := rest auf seite - font hoehe;’’’’’’’’’’’’’’N y move (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’. drucke elan fuss :’’’’’’’’’’ IF bottom label = ""’’’’’’ THEN seiten nr := ""’’’. ELSE seiten nr := bottom label;’’’’’’’’ seiten nr CAT "/";. seiten nr CAT text (gedruckte seiten);’’’’ elan text := seiten nr;’’’ elan text CAT " ";’’’’’’^ elan text cat blanks ((max zeichen fuss - LENGTH dateiname) DIV 2 - LENGTH elan text);’’’’ elan text CAT dateiname;’’^ elan text cat blanks (max zeichen fuss - LENGTH seiten nr - LENGTH elan text - 3);’’’’’’’’ elan text CAT " ";’’’’’’ elan text CAT seiten nr;’’. IF LENGTH elan text > max zeichen zeile’’’N THEN elan text := subtext (elan text, 1, max zeichen zeile) FI;’’’’’’’’^ gib elan text aus (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute); ’’’’’’’’’’ . seiten nr : par1’’’’’’’’. close page cmd :’’’’’’’’’’’’. execute (carriage return, "", d xpos, 0); d xpos := 0;’’’’’’’’’’’’’’. close (page, papierlaenge - d ypos);’’’’’’ seite ist offen := FALSE;’ open page cmd ;’’’’’’’’’’’ y move zur kopfzeile;’’’’’ drucke elan kopf;’’’’’’’’’. open page cmd :’’’’’’’’’’’’’. x start := x wanted;’’’’’’’’’’’’’’. y start := y wanted;’’’’’’’’’’’’’’. open (page, x start, y start);’’’’’’’’’’’’N IF fuss oder kopf = 1 THEN execute (type, "", d font, 0) FI;’’’’’’’’’’’’’’ gedruckte seiten INCR 1;’’ seite ist offen := TRUE;’’. top margin := y wanted - y start;’’’’. left margin := x wanted - x start;’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. rest auf seite := pagelength;’’’’’’’’’’’’. papierlaenge := y size - y start;’’’’’’ d ypos := 0; ’’’’ d xpos := 0;’’’’’. y move zur kopf zeile :’’’’’. verschiebung := top margin;’’’’’’’’’’’’’’’N y move (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’N IF verschiebung = 0 THEN rest auf seite INCR top margin FI;’’’’’’’’’’’’’’’. drucke elan kopf :’’’’’’’’’’. elan text := headline pre;’’’’’’’’’’’’’’’ elan text CAT date;’’’’’’’. elan text CAT headline post;’’’’’’’’’’’’’’ elan text CAT datei name;’. IF LENGTH elan text > max zeichen zeile’’’N THEN elan text := subtext (elan text, 1, max zeichen zeile) FI;’’’’’’’’^ gib elan text aus (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute); ’’’’’’’’’’^ cr plus lf (2, PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute); ’’’’’’’’’’’’’’ENDPROC elan fuss und kopf;’’’^PROC gib elan text aus (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) :’’’’’’’’’Ncr plus lf (1, PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’linker rand wenn noetig;’’’’’’>d token. breite := LENGTH elan text * einrueckbreite;’’’’’’’’’^gib text token aus (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’’’’’’’’’. linker rand wenn noetig :’’’ IF left margin > 0’’’’’’’’ THEN disable stop;’’’’’. d xpos := left margin;’’’’’’’’’’’’> execute (move, "", left margin, 0);’’’’’’’’’’’’’’’ IF is error ’’’’’’. THEN clear error;’’’’’’’’’’’’’’. d xpos := 0;’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’ enable stop;’’’’’’END PROC gib elan text aus;’’’.PROC cr plus lf (INT CONST anzahl,’’’’’’’’’’’’^ PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute) : ’’’’’’’’’’’’’’’.rest auf seite DECR verschiebung;’’’’’’’’’’’’’. gib cr aus :. execute (carriage return, "", d xpos, 0);’ d xpos := 0;’’’’’’’’’’’’’’. gib lf aus :. verschiebung := anzahl * font hoehe;’’’’’’N y move (PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’END PROC cr plus lf ; ’’’’’’’’END PACKET eumel printer;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ spool cmd’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A“a€ė’’““±± X’’’’ X Xµ>M’ž’’’’’’ spool cmd’’’’’’’’ ’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’a€’L’’’’’’’’’’’’’’’’’’’±€’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’ၒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‚’’’’’’’’’’’’’’’’’’’’A‚’’’’’’’’’’’’’’’’’’’’a‚’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’”‚’’’’’’’’’’’’’’’’’’’’Į‚’’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ƒ’Y’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ƒ’#’’’’’’’’’’’’’’’’’’’გ’’’’’’’’’’’’’’’’’’’„’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q„’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘„’(’’’’’’’’’’’’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’į„’A’’’’’’’’’’’’’’’’’’’1…’’’’’’’’’’’’’’’’’’’’A…’’’’’’’’’’’’’’’’’’’’Q…’’’’’’’’’’’’’’’’’’’’q…’"’’’’’’’’’’’’’’’’’’’”…’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’х’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’†’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q†’ ’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’”†’’’’’’’’’’’’’’’’’’’’Į†’’’’’’’’’’’’’’’’’’’’ᆒ’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’!‡’$’’’’’’’’’’’’’’’’’’’Q‡’’’’’’’’’’’’’’’’’’’’q‡’’’’’’’’’’’’’’’’’’’’‘‡’’’’’’’’’’’’’’’’’’’’±‡’’’’’’’’’’’’’’’’’’’’ч’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ˆ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aˆ’’’’’’’’’’’’’’’’’’’’Qˆ’%’’’’’’’’’’’’’’’’’’’ˆ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ш’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’!‰’%’’’’’’’’’’’’’’’’’’’Q‰’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‰’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ቒ$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Š’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŠ’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŠ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŠ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‹’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‹’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ы’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Œ’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŒ’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Œ’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ጒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’=’’’’’’’’’’’’’’’’’’’A’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’э’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’1Ž’?’’’’’’’’’’’’’’’’’’’Ž’5’’’’’’’’’’’’’’’’’’’ĮŽ’$’’’’’’’’’’’’’’’’’’’ńŽ’2’’’’’’’’’’’’’’’’’’’1’#’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’/’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’$’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’%’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᐒ’’’’’’’’’’’’’’’’’’’‘’,’’’’’’’’’’’’’’’’’’’1‘’’’’’’’’’’’’’’’’’’’’Q‘’’’’’’’’’’’’’’’’’’’’q‘’$’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’”‘’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ё’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‘’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET spool cmd (* Autor : R. Ruland *)’’N (* Stand : 13.08.87 *)’’ DEFINES. spool control password,’’’’’’’’ kill spool,’’’ first spool,’’’ start spool,’’’ stop spool,’’’ halt spool,’’’ wait for halt :LET error nak = 2 ,’’ entry line code = 23 ,’ killer code = 24 ,  first code = 25 ,’ start code = 26 ,  stop code = 27 ,’ halt code = 28 ,’ wait for halt code = 29 ;’DATASPACE VAR ds;’’’’’’’’’’’’’^BOUND STRUCT (TEXT entry line, INT index, TEXT actual entries, password) VAR control msg;’’’’’BOUND TEXT VAR error msg;’’’’’INT VAR reply;.INITFLAG VAR in this task := FALSE;’’’’’’’’’’’BOOL VAR dialogue;’’’’’’’’’’’’.TEXT VAR control password, password;’’’’’’’’’’control password := "";’’’’’’’>PROC spool control password (TEXT CONST new password):’’’’’’’’. IF on line THEN say (""3""13""5"") FI;’’’’’’ disable stop;’’’’’’’’’’’’’’’N do ("enter spool control password (""" + new password + """)");’’’’’’’’’’’’’ clear error; no do again; cover tracks;’’’’’’’’’’’’’’’. cover tracks (control password);’’’’’’’’’’’’. control password := new password;’’’’’’’’’’’.END PROC spool control password;’’’’’’’’’’’’’’NPROC call spool (INT CONST op code, TEXT CONST name, TASK CONST spool) :’’’’’’. dialogue := command dialogue;’’’’’’’’’’’’’’ password := write password; password CAT "/";’’’’’’’’’’’ password CAT read password;’ disable stop;’’’’’’’’’’’’’’’ command dialogue (FALSE);’’’. enter password (control password);’’’’’’’’’’ command dialogue (dialogue); call (op code, name, spool); command dialogue (FALSE);’’’ enter password (password);’’ command dialogue (dialogue);END PROC call spool;’’’’’’’’’’.PROC start spool (TASK CONST spool) :’’’’’’’’’ enable stop;. call spool (halt code, "", spool);’’’’’’’’’. call spool (start code, "", spool);’’’’’’’’’END PROC start spool;’’’’’’’’’>PROC start spool (TASK CONST spool, INT CONST new channel) :’’ enable stop;. call spool (halt code, "", spool);’’’’’’’’’> call spool (start code, text (new channel), spool);’’’’’’’’’END PROC start spool;’’’’’’’’’.PROC stop spool (TASK CONST spool) :’’’’’’’’’’. call spool (stop code, "", spool);’’’’’’’’’’END PROC stop spool;’’’’’’’’’’>PROC stop spool (TASK CONST spool, TEXT CONST deactive msg) :’. call spool (stop code, deactive msg, spool);END PROC stop spool;’’’’’’’’’’.PROC halt spool (TASK CONST spool) :’’’’’’’’’’. call spool (halt code, "", spool);’’’’’’’’’’END PROC halt spool;’’’’’’’’’’>PROC halt spool (TASK CONST spool, TEXT CONST deactive msg) :’. call spool (halt code, deactive msg, spool);END PROC halt spool;’’’’’’’’’’.PROC wait for halt (TASK CONST spool) :’’’’’’’. call spool (wait for halt code, "", spool);’END PROC wait for halt;’’’’’’’NPROC wait for halt (TASK CONST spool, TEXT CONST deactive msg) :’’’’’’’’’’’’’’> call spool (wait for halt code, deactive msg, spool);’’’’’’’END PROC wait for halt;’’’’’’’>PROC control spool (TASK CONST spool, INT CONST control code,’> TEXT CONST question, BOOL CONST leave) :’’ enable stop; initialize control msg;’’’’’ WHILE valid spool entry’’’’’> REP IF control question THEN control spool entry FI PER;’’ . initialize control msg :’’N IF NOT initialized (in this task) THEN ds := nilspace FI;’’’’’’’’’’’’’’’> forget (ds); ds := nilspace; control msg := ds;’’’’’’’’’. control msg. entry line := "";’’’’’’’’’’> control msg. password := control password;’’’’’’’’’’’’. control msg. index := 0;’’’’’’’’’’’ say (""13""10"");’’’’’’’ . valid spool entry :’’’’’’’> call (spool, entry line code, ds, reply);’’’’’’’’’’’’’’’ IF reply = error nak’’’’ THEN error msg := ds;. errorstop (error msg);’’’’’’’’’’ control msg. index <> 0’ . control question :’’’’’’’. say (control msg. entry line);’’’’’’’’’ yes (question) ’’’’’’’’ . control spool entry :’’’’’. call (spool, control code, ds, reply);’’ IF reply = error nak’’’’ THEN error msg := ds;. errorstop (error msg);’’’’’’’’’’. IF leave THEN LEAVE control spool FI;’’’END PROC control spool;’’’’’’’.PROC kill spool (TASK CONST spool) :’’’’’’’’’’> control spool (spool, killer code, " loeschen", FALSE)’’’’END PROC kill spool;’’’’’’’’’’.PROC first spool (TASK CONST spool) :’’’’’’’’’> control spool (spool, first code, " als erstes", TRUE)’’’’END PROC first spool;’’’’’’’’’.END PACKET spool cmd; ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ spool manager’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2 a€ė’’$$!! d’’’’ d d%>Č’ž’’’’’’ spool manager’’’’ '$’’’’’’’’’’’’’’’’’’a€’L’’’’’’’’’’’’’’’’’’’±€’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’!’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ၒ’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’!‚’’’’’’’’’’’’’’’’’’’’A‚’’’’’’’’’’’’’’’’’’’’a‚’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’”‚’’’’’’’’’’’’’’’’’’’’Į‚’’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’!ƒ’’’’’’’’’’’’’’’’’’’’’’ :’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’Įƒ’’’’’’’’’’’’’’’’’’’’გ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’”„’’’’’’’’’’’’’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’!…’’’’’’’’’’’’’’’’’’’’A…’’’’’’’’’’’’’’’’’’’’a…’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’”…’’’’’’’’’’’’’’’’’’’’Į…’’’’’’’’’’’’’’’’’’’’į…’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!†’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a†’’’’’’’’’’’’’’’’’’’’‘†’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į†’’’’’’’’’’’’’’’’’’’’ᆒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‡’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‡’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‡’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ч’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‡’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ˆ’B’’’’’’’’’’’’’’’’’’’ˆ’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ш’N’’’’’’’’’’’’’’’’’’’!‰’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q‰’@’’’’’’’’’’’’’’’’’’’Į‰’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‰’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŠ’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Š’3’’’’’’’’’’’’’’’’’’’ĮŠ’Y’’’’’’’’’’’’’’’’’’’!‹’’’’’’’’’’’’’’’’’’’’A‹’’’’’’’’’’’’’’’’’’’’a‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‹’&’’’’’’’’’’’’’’’’’’’±‹’&’’’’’’’’’’’’’’’’’’’į‹’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Œ’-’’’’’’’’’’’’’’’’’’’AŒ’5’’’’’’’’’’’’’’’’’’’Œ’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŒ’&’’’’’’’’’’’’’’’’’’’ńŒ’&’’’’’’’’’’’’’’’’’’’!’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’=’’’’’’’’’’’’’’’’’’’‘’(’’’’’’’’’’’’’’’’’’’’’.; ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’ ’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’Ž’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŽ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’”Ž’’’’’’’’’’’’’’’’’’’’ĮŽ’’’’’’’’’’’’’’’’’’’’įŽ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’,’’’’’’’’’’’’’’’’’’’’+’’’’’’’’’’’’’’’’’’’±’2’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’ѐ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1‘’"’’’’’’’’’’’’’’’’’’’a‘’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‘’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į‘’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’’<’’’’’’’’’’’’’’’’’’’ђ’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’“’"’’’’’’’’’’’’’’’’’’’A“’#’’’’’’’’’’’’’’’’’’’q“’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”“’6’’’’’’’’’’’’’’’’’’’į“’(’’’’’’’’’’’’’’’’’’’”’.’’’’’’’’’’’’’’’’’’’A”’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q”’(’’’’’’’’’’’’’’’’’’’””’0’’’’’’’’’’’’’’’’’’’į”’E’’’’’’’’’’’’’’’’’’’1•’)’’’’’’’’’’’’’’’’’’’a•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’•’B’’’’’’’’’’’’’’’’’’’ѕ’0’’’’’’’’’’’’’’’’’’’–’E’’’’’’’’’’’’’’’’’’’a–’3’’’’’’’’’’’’’’’’’’’”–’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į–’3’’’’’’’’’’’’’’’’’’’—’F’’’’’’’’’’’’’’’’’’’Q—’&’’’’’’’’’’’’’’’’’’’—’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į—’’’’’’’’’’’’’’’’’’’’’’ break;’’’’’’’’’’’’’ї’’’’’’’’’’’’’’’’’’’’ń—’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’1˜’’’’’’’’’’’’’’’’’’’’a˜’’’’’’’’’’’’’’’’’’’’˜’.’’’’’’’’’’’’’’’’’’’±˜’-’’’’’’’’’’’’’’’’’’’ᘒ.’’’’’’’’’’’’’’’’’’’™’*’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’A™’’’’’’’’’’’’’’’’’’’’a™’(’’’’’’’’’’’’’’’’’’’’’ PER ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘™’’’’’’’’’’’’’’’’’’’’±™’’’’’’’’’’’’’’’’’’’’љ’’’’’’’’’’’’’’’’’’’’ń™’’’’’’’’’’’’’’’’’’’’š’)’’’’’’’’’’’’’’’’’’’Aš’!’’’’’’’’’’’’’’’’’’’qš’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”š’!’’’’’’’’’’’’’’’’’’’њ’+’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’!›’3’’’’’’’’’’’’’’’’’’’a›’3’’’’’’’’’’’’’’’’’’’”›’1’’’’’’’’’’’’’’’’’’’į›’3’’’’’’’’’’’’’’’’’’’!œ’2’’’’’’’’’’’’’’’’’’’aœ’0’’’’’’’’’’’’’’’’’’’”œ’;’’’’’’’’’’’’’’’’’’’ᜒ,’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’3’’’’’’’’’’’’’’’’’’’”’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’!ž’’’’’’’’’’’’’’’’’’’’Až’’’’’’’’’’’’’’’’’’’’až’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ž’’’’’’’’’’’’’’’’’’’’±ž’D’’’’’’’’’’’’’’’’’’’Ÿ’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŸ’’’’’’’’’’’’’’’’’’’’qŸ’H’’’’’’’’’’’’’’’’’’’ĮŸ’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’! ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q ’’’’’’’’’’’’’’’’’’’’q ’’’’’’’’’’’’’’’’’’’’‘ ’’’’’’’’’’’’’’’’’’’’Į ’$’’’’’’’’’’’’’’’’’’’ń ’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’Q”’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’””’’’’’’’’’’’’’’’’’’’’Į”’’’’’’’’’’’’’’’’’’’’į”’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¢’’’’’’’’’’’’’’’’’’’’1¢’’’’’’’’’’’’’’’’’’’’Q¢’’’’’’’’’’’’’’’’’’’’q¢’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”¢’’’’’’’’’’’’’’’’’’’’Į¢’’’’’’’’’’’’’’’’’’’’ᢒ!’’’’’’’’’’’’’’’’’’’£’$’’’’’’’’’’’’’’’’’’’A£’%’’’’’’’’’’’’’’’’’’’q£’1’’’’’’’’’’’’’’’’’’’±£’’’’’’’’’’’’’’’’’’’’Ń£’6’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¤’'’’’’’’’’’’’’’’’’’’’A¤’&’’’’’’’’’’’’’’’’’’’q¤’#’’’’’’’’’’’’’’’’’’’”¤’)’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѥ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń¤’+’’’’’’’’’’’’’’’’’’’!„’+’’’’’’’’’’’’’’’’’’’Q„’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’±„’5’’’’’’’’’’’’’’’’’’’ń„’4’’’’’’’’’’’’’’’’’’’1¦’0’’’’’’’’’’’’’’’’’’’q¦’6’’’’’’’’’’’’’’’’’’’±¦’3’’’’’’’’’’’’’’’’’’’ń¦’2’’’’’’’’’’’’’’’’’’’1§’2’’’’’’’’’’’’’’’’’’’q§’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±§’8’’’’’’’’’’’’’’’’’’’ń§’.’’’’’’’’’’’’’’’’’’’!Ø’0’’’’’’’’’’’’’’’’’’’aØ’4’’’’’’’’’’’’’’’’’’’”Ø’3’’’’’’’’’’’’’’’’’’’ᨒ&’’’’’’’’’’’’’’’’’’’©’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q©’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q©’<’’’’’’’’’’’’’’’’’’’±©’’’’’’’’’’’’’’’’’’’’Ń©’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END SELECT;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń©’’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’1Ŗ’M’’’’’’’’’’’’’’’’’’’Ŗ’7’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’ĮŖ’’’’’’’’’’’’’’’’’’’’įŖ’’’’’’’’’’’’’’’’’’’’«’’’’’’’’’’’’’’’’’’’’!«’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A«’’’’’’’’’’’’’’’’’’’’a«’’’’’’’’’’’’’’’’’’’’«’’’’’’’’’’’’’’’’’’’’”«’’’’’’’’’’’’’’’’’’’’Į«’’’’’’’’’’’’’’’’’’’’į«’&’’’’’’’’’’’’’’’’’’’¬’%’’’’’’’’’’’’’’’’’’’A¬’3’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’”¬’#’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѭ’’’’’’’’’’’’’’’’’’’’ń¬’’’’’’’’’’’’’’’’’’’’­’’’’’’’’’’’’’’’’’’’’1­’ ’’’’’’’’’’’’’’’’’’’a­’.’’’’’’’’’’’’’’’’’’’‘­’:’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’Ń­’’’’’’’’’’’’’’’’’’’’ń­’)’’’’’’’’’’’’’’’’’’’!®’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’Q®’’’’’’’’’’’’’’’’’’’’q®’’’’’’’’’’’’’’’’’’’’‘®’’’’’’’’’’’’’’’’’’’’±®’*’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į®’’’’’’’’’’’’’’’’’’’’Æ’/’’’’’’’’’’’’’’’’’’’AÆ’’’’’’’’’’’’’’’’’’’’aÆ’,’’’’’’’’’’’’’’’’’’’‘Æ’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’ĮÆ’’’’’’’’’’’’’’’’’’’’ᯒ’’’’’’’’’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’’’!°’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’Q°’’’’’’’’’’’’’’’’’’’’q°’’’’’’’’’’’’’’’’’’’’‘°’(’’’’’’’’’’’’’’’’’’’Į°’*’’’’’’’’’’’’’’’’’’’ń°’,’’’’’’’’’’’’’’’’’’’!±’1’’’’’’’’’’’’’’’’’’’a±’4’’’’’’’’’’’’’’’’’’’”±’,’’’’’’’’’’’’’’’’’’’ѱ’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’1²’#’’’’’’’’’’’’’’’’’’’a²’5’’’’’’’’’’’’’’’’’’’”²’’’’’’’’’’’’’’’’’’’’Į²’,’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń²’’’’’’’’’’’’’’’’’’’’³’2’’’’’’’’’’’’’’’’’’’Q³’’’’’’’’’’’’’’’’’’’’q³’7’’’’’’’’’’’’’’’’’’’±³’9’’’’’’’’’’’’’’’’’’’ń³’;’’’’’’’’’’’’’’’’’’’1“’=’’’’’’’’’’’’’’’’’’’q“’+’’’’’’’’’’’’’’’’’’’”“’-’’’’’’’’’’’’’’’’’’’Ń“’!’’’’’’’’’’’’’’’’’’’µ’C’’’’’’’’’’’’’’’’’’’Qµ’'’’’’’’’’’’’’’’’’’’’µ’C’’’’’’’’’’’’’’’’’’’ѵ’!’’’’’’’’’’’’’’’’’’’¶’(’’’’’’’’’’’’’’’’’’’1¶’=’’’’’’’’’’’’’’’’’’’q¶’6’’’’’’’’’’’’’’’’’’’±¶’’’’’’’’’’’’’’’’’’’’Ѷ’3’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’·’’’’’’’’’’’’’’’’’’’’1·’$’’’’’’’’’’’’’’’’’’’a·’,’’’’’’’’’’’’’’’’’’’‘·’/’’’’’’’’’’’’’’’’’’’Ń·’,’’’’’’’’’’’’’’’’’’’ø’0’’’’’’’’’’’’’’’’’’’Aø’’’’’’’’’’’’’’’’’’’’aø’&’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ PER ;’’’’’’’’’’’’‘ø’,’’’’’’’’’’’’’’’’’’’Įø’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’ńø’’’’’’’’’’’’’’’’’’’’¹’$’’’’’’’’’’’’’’’’’’’A¹’,’’’’’’’’’’’’’’’’’’’q¹’/’’’’’’’’’’’’’’’’’’’±¹’’’’’’’’’’’’’’’’’’’’ѹ’’’’’’’’’’’’’’’’’’’’ń¹’(’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ŗ’’’’’’’’’’’’’’’’’’’’Aŗ’0’’’’’’’’’’’’’’’’’’’ŗ’4’’’’’’’’’’’’’’’’’’’Įŗ’T’’’’’’’’’’’’’’’’’’’!»’)’’’’’’’’’’’’’’’’’’’Q»’’’’’’’’’’’’’’’’’’’’’’ PER ;’’’’’’’’q»’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į»’#’’’’’’’’’’’’’’’’’’’ń»’T’’’’’’’’’’’’’’’’’’’Q¼’"’’’’’’’’’’’’’’’’’’’¼’&’’’’’’’’’’’’’’’’’’’±¼’8’’’’’’’’’’’’’’’’’’’ń¼’<’’’’’’’’’’’’’’’’’’’1½’-’’’’’’’’’’’’’’’’’’’a½’2’’’’’’’’’’’’’’’’’’’”½’’’’’’’’’’’’’’’’’’’’Į½’’’’’’’’’’’’’’’’’’’’į½’V’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¾’’’’’’’’’’’’’’’’’’’’a¾’#’’’’’’’’’’’’’’’’’’’‘¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’±¾’’’’’’’’’’’’’’’’’’’’Ѿ’,’’’’’’’’’’’’’’’’’’’æ’/’’’’’’’’’’’’’’’’’’’Aæ’B’’’’’’’’’’’’’’’’’’’‘æ’ ’’’’’’’’’’’’’’’’’’’Įæ’,’’’’’’’’’’’’’’’’’’’ńæ’(’’’’’’’’’’’’’’’’’’’!Ą’>’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’ PER;’’’’’’’’’’’’’aĄ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’‘Ą’’’’’’’’’’’’’’’’’’’’±Ą’.’’’’’’’’’’’’’’’’’’’įĄ’0’’’’’’’’’’’’’’’’’’’!Į’’’’’’’’’’’’’’’’’’’’AĮ’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’qĮ’’’’’’’’’’’’’’’’’’’’‘Į’L’’’’’’’’’’’’’’’’’’’įĮ’Q’’’’’’’’’’’’’’’’’’’AĀ’’’’’’’’’’’’’’’’’’’’aĀ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ā’’’’’’’’’’’’’’’’’’’’±Ā’&’’’’’’’’’’’’’’’’’’’įĀ’F’’’’’’’’’’’’’’’’’’’1Ć’1’’’’’’’’’’’’’’’’’’’qĆ’2’’’’’’’’’’’’’’’’’’’±Ć’.’’’’’’’’’’’’’’’’’’’įĆ’’’’’’’’’’’’’’’’’’’’Ä’+’’’’’’’’’’’’’’’’’’’1Ä’1’’’’’’’’’’’’’’’’’’’qÄ’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ä’’’’’’’’’’’’’’’’’’’’ŃÄ’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’!Å’’’’’’’’’’’’’’’’’’’’1Å’L’’’’’’’’’’’’’’’’’’’Å’#’’’’’’’’’’’’’’’’’’’±Å’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’įÅ’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’Ę’L’’’’’’’’’’’’’’’’’’’QĘ’$’’’’’’’’’’’’’’’’’’’Ę’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’±Ę’’’’’’’’’’’’’’’’’’’’ŃĘ’<’’’’’’’’’’’’’’’’’’’Ē’/’’’’’’’’’’’’’’’’’’’QĒ’>’’’’’’’’’’’’’’’’’’’‘Ē’$’’’’’’’’’’’’’’’’’’’ĮĒ’’’’’’’’’’’’’’’’’’’’įĒ’2’’’’’’’’’’’’’’’’’’’!Č’T’’’’’’’’’’’’’’’’’’’Č’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Č’'’’’’’’’’’’’’’’’’’’’ŃČ’1’’’’’’’’’’’’’’’’’’’É’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’aÉ’’’’’’’’’’’’’’’’’’’’É’<’’’’’’’’’’’’’’’’’’’ĮÉ’’’’’’’’’’’’’’’’’’’’įÉ’'’’’’’’’’’’’’’’’’’’’Ź’+’’’’’’’’’’’’’’’’’’’AŹ’’’’’’’’’’’’’’’’’’’’aŹ’’’’’’’’’’’’’’’’’’’’Ź’!’’’’’’’’’’’’’’’’’’’±Ź’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’ŃŹ’’’’’’’’’’’’’’’’’’’’ńŹ’<’’’’’’’’’’’’’’’’’’’1Ė’’’’’’’’’’’’’’’’’’’’QĖ’'’’’’’’’’’’’’’’’’’’’Ė’'’’’’’’’’’’’’’’’’’’’±Ė’+’’’’’’’’’’’’’’’’’’’įĖ’9’’’’’’’’’’’’’’’’’’’!Ģ’"’’’’’’’’’’’’’’’’’’’QĢ’(’’’’’’’’’’’’’’’’’’’Ģ’+’’’’’’’’’’’’’’’’’’’±Ģ’3’’’’’’’’’’’’’’’’’’’ńĢ’’’’’’’’’’’’’’’’’’’’!Ķ’’’’’’’’’’’’’’’’’’’’AĶ’!’’’’’’’’’’’’’’’’’’’qĶ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ķ’’’’’’’’’’’’’’’’’’’’±Ķ’’’’’’’’’’’’’’’’’’’’įĶ’.’’’’’’’’’’’’’’’’’’’Ī’M’’’’’’’’’’’’’’’’’’’aĪ’,’’’’’’’’’’’’’’’’’’’‘Ī’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’’’ send ack :’’’’’’’’’±Ī’,’’’’’’’’’’’’’’’’’’’įĪ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’Ļ’’’’’’’’’’’’’’’’’’’’1Ļ’%’’’’’’’’’’’’’’’’’’’aĻ’’’’’’’’’’’’’’’’’’’’Ļ’&’’’’’’’’’’’’’’’’’’’±Ļ’’’’’’’’’’’’’’’’’’’’ŃĻ’ ’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’!Š’’’’’’’’’’’’’’’’’’’’AŠ’,’’’’’’’’’’’’’’’’’’’qŠ’W’’’’’’’’’’’’’’’’’’’ŃŠ’’’’’’’’’’’’’’’’’’’’ńŠ’ ’’’’’’’’’’’’’’’’’’’!Ń’"’’’’’’’’’’’’’’’’’’’QŃ’1’’’’’’’’’’’’’’’’’’’‘Ń’"’’’’’’’’’’’’’’’’’’’ĮŃ’"’’’’’’’’’’’’’’’’’’’ńŃ’"’’’’’’’’’’’’’’’’’’’!Ņ’"’’’’’’’’’’’’’’’’’’’QŅ’!’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’”Ņ’'’’’’’’’’’’’’’’’’’’’ŃŅ’’’’’’’’’’’’’’’’’’’’ńŅ’’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ó’)’’’’’’’’’’’’’’’’’’’aÓ’%’’’’’’’’’’’’’’’’’’’‘Ó’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃÓ’*’’’’’’’’’’’’’’’’’’’Ō’’’’’’’’’’’’’’’’’’’’!Ō’6’’’’’’’’’’’’’’’’’’’aŌ’’’’’’’’’’’’’’’’’’’’Ō’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ō’’’’’’’’’’’’’’’’’’’’ŃŌ’0’’’’’’’’’’’’’’’’’’’Õ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Õ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QÕ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qÕ’’’’’’’’’’’’’’’’’’’’‘Õ’'’’’’’’’’’’’’’’’’’’’ĮÕ’(’’’’’’’’’’’’’’’’’’’ńÕ’’’’’’’’’’’’’’’’’’’’Ö’+’’’’’’’’’’’’’’’’’’’AÖ’8’’’’’’’’’’’’’’’’’’’Ö’%’’’’’’’’’’’’’’’’’’’±Ö’+’’’’’’’’’’’’’’’’’’’įÖ’'’’’’’’’’’’’’’’’’’’’×’%’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a×’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±×’’’’’’’’’’’’’’’’’’’’Ń×’&’’’’’’’’’’’’’’’’’’’Ų’’’’’’’’’’’’’’’’’’’’!Ų’’’’’’’’’’’’’’’’’’’’AŲ’#’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŲ’’’’’’’’’’’’’’’’’’’’‘Ų’,’’’’’’’’’’’’’’’’’’’ĮŲ’:’’’’’’’’’’’’’’’’’’’Ł’)’’’’’’’’’’’’’’’’’’’1Ł’,’’’’’’’’’’’’’’’’’’’aŁ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ł’’’’’’’’’’’’’’’’’’’’”Ł’;’’’’’’’’’’’’’’’’’’’įŁ’P’’’’’’’’’’’’’’’’’’’AŚ’%’’’’’’’’’’’’’’’’’’’qŚ’?’’’’’’’’’’’’’’’’’’’ĮŚ’"’’’’’’’’’’’’’’’’’’’ńŚ’.’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’!Ū’7’’’’’’’’’’’’’’’’’’’aŪ’+’’’’’’’’’’’’’’’’’’’‘Ū’,’’’’’’’’’’’’’’’’’’’ĮŪ’.’’’’’’’’’’’’’’’’’’’ńŪ’A’’’’’’’’’’’’’’’’’’’AÜ’.’’’’’’’’’’’’’’’’’’’qÜ’?’’’’’’’’’’’’’’’’’’’ĮÜ’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÜ’ ’’’’’’’’’’’’’’’’’’’!Ż’3’’’’’’’’’’’’’’’’’’’aŻ’’’’’’’’’’’’’’’’’’’’Ż’>’’’’’’’’’’’’’’’’’’’ĮŻ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įŻ’’’’’’’’’’’’’’’’’’’’ńŻ’.’’’’’’’’’’’’’’’’’’’!Ž’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŽ’’’’’’’’’’’’’’’’’’’’Ž’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŽ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įŽ’H’’’’’’’’’’’’’’’’’’’1ß’G’’’’’’’’’’’’’’’’’’’ß’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńß’’’’’’’’’’’’’’’’’’’’ą’A’’’’’’’’’’’’’’’’’’’aą’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ą’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įą’’’’’’’’’’’’’’’’’’’’įą’4’’’’’’’’’’’’’’’’’’’!į’1’’’’’’’’’’’’’’’’’’’aį’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”į’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńį’’’’’’’’’’’’’’’’’’’’įį’$’’’’’’’’’’’’’’’’’’’ā’(’’’’’’’’’’’’’’’’’’’Aā’’’’’’’’’’’’’’’’’’’’aā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įā’D’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’Ać’’’’’’’’’’’’’’’’’’’’ać’’’’’’’’’’’’’’’’’’’’ć’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ć’,’’’’’’’’’’’’’’’’’’’įć’ ’’’’’’’’’’’’’’’’’’’ä’8’’’’’’’’’’’’’’’’’’’Qä’4’’’’’’’’’’’’’’’’’’’‘ä’)’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įä’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’å’5’’’’’’’’’’’’’’’’’’’Qå’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’å’"’’’’’’’’’’’’’’’’’’’±å’’’’’’’’’’’’’’’’’’’’Ńå’*’’’’’’’’’’’’’’’’’’’ę’'’’’’’’’’’’’’’’’’’’’1ę’J’’’’’’’’’’’’’’’’’’’ę’-’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ę’’’’’’’’’’’’’’’’’’’’Ńę’>’’’’’’’’’’’’’’’’’’’ē’+’’’’’’’’’’’’’’’’’’’Aē’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qē’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ē’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńē’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’č’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!č’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ač’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘č’’’’’’’’’’’’’’’’’’’’±č’9’’’’’’’’’’’’’’’’’’’ńč’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aé’’’’’’’’’’’’’’’’’’’’aé’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±é’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įé’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ź’’’’’’’’’’’’’’’’’’’’Aź’;’’’’’’’’’’’’’’’’’’’ź’>’’’’’’’’’’’’’’’’’’’Įź’(’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńź’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ė’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qė’>’’’’’’’’’’’’’’’’’’’‘ė’’’’’’’’’’’’’’’’’’’’±ė’2’’’’’’’’’’’’’’’’’’’ńė’’’’’’’’’’’’’’’’’’’’ģ’D’’’’’’’’’’’’’’’’’’’aģ’’’’’’’’’’’’’’’’’’’’ģ’9’’’’’’’’’’’’’’’’’’’Įģ’’’’’’’’’’’’’’’’’’’’įģ’H’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ķ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aķ’H’’’’’’’’’’’’’’’’’’’±ķ’H’’’’’’’’’’’’’’’’’’’ī’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qī’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qī’’’’’’’’’’’’’’’’’’’’ī’0’’’’’’’’’’’’’’’’’’’Įī’M’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ halt spool;’’’’’’’’ļ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ļ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qļ’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ļ’’’’’’’’’’’’’’’’’’’’‘ļ’’’’’’’’’’’’’’’’’’’’Įļ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńļ’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńļ’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!š’’’’’’’’’’’’’’’’’’’’Aš’$’’’’’’’’’’’’’’’’’’’qš’’’’’’’’’’’’’’’’’’’’‘š’’’’’’’’’’’’’’’’’’’’”š’+’’’’’’’’’’’’’’’’’’’Ńš’F’’’’’’’’’’’’’’’’’’’!ń’’’’’’’’’’’’’’’’’’’’Ań’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ań’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įń’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńń’’’’’’’’’’’’’’’’’’’’ņ’$’’’’’’’’’’’’’’’’’’’1ņ’’’’’’’’’’’’’’’’’’’’Qņ’’’’’’’’’’’’’’’’’’’’qņ’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įņ’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ó’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aó’’’’’’’’’’’’’’’’’’’’Qó’’’’’’’’’’’’’’’’’’’’qó’’’’’’’’’’’’’’’’’’’’‘ó’#’’’’’’’’’’’’’’’’’’’Įó’5’’’’’’’’’’’’’’’’’’’ō’$’’’’’’’’’’’’’’’’’’’1ō’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qō’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qō’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ō’’’’’’’’’’’’’’’’’’’’Ńō’<’’’’’’’’’’’’’’’’’’’õ’3’’’’’’’’’’’’’’’’’’’Qõ’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’õ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”õ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įõ’’’’’’’’’’’’’’’’’’’’Ńõ’’’’’’’’’’’’’’’’’’’’ńõ’*’’’’’’’’’’’’’’’’’’’!ö’7’’’’’’’’’’’’’’’’’’’aö’&’’’’’’’’’’’’’’’’’’’‘ö’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įö’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įö’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’÷’’’’’’’’’’’’’’’’’’’’A÷’?’’’’’’’’’’’’’’’’’’’‘÷’0’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń÷’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń÷’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ų’*’’’’’’’’’’’’’’’’’’’Qų’#’’’’’’’’’’’’’’’’’’’ų’!’’’’’’’’’’’’’’’’’’’±ų’’’’’’’’’’’’’’’’’’’’Ńų’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įų’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ł’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ł’’’’’’’’’’’’’’’’’’’’Įł’’’’’’’’’’’’’’’’’’’’įł’&’’’’’’’’’’’’’’’’’’’ś’F’’’’’’’’’’’’’’’’’’’aś’F’’’’’’’’’’’’’’’’’’’±ś’’’’’’’’’’’’’’’’’’’’Ńś’&’’’’’’’’’’’’’’’’’’’ū’F’’’’’’’’’’’’’’’’’’’Qū’F’’’’’’’’’’’’’’’’’’’”ū’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’Įū’’’’’’’’’’’’’’’’’’’’įū’F’’’’’’’’’’’’’’’’’’’1ü’’’’’’’’’’’’’’’’’’’’Qü’!’’’’’’’’’’’’’’’’’’’ü’F’’’’’’’’’’’’’’’’’’’Ńü’F’’’’’’’’’’’’’’’’’’’!ż’’’’’’’’’’’’’’’’’’’’1ż’F’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ż’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įż’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’!ž’%’’’’’’’’’’’’’’’’’’’Qž’,’’’’’’’’’’’’’’’’’’’ž’8’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’Įž’’’’’’’’’’’’’’’’’’’’įž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’1’’%’’’’’’’’’’’’’’’’’’’a’’%’’’’’’’’’’’’’’’’’’’‘’’(’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’$’’’’’’’’’’’’’’’’’’’R’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ output (f);’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’5’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’,’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’%’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’Ņ’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’3’’’’’’’’’’’’’’’’’’’‚’&’’’’’’’’’’’’’’’’’’’²’-’’’’’’’’’’’’’’’’’’’ā’g’’’’’’’’’’’’’’’’’’’R’b’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’#’’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’B’\’’’’’’’’’’’’’’’’’’’¢’Z’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’7’’’’’’’’’’’’’’’’’’’¢’&’’’’’’’’’’’’’’’’’’’Ņ’<’’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’B’)’’’’’’’’’’’’’’’’’’’r’Z’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’1’’’’’’’’’’’’’’’’’’’2 ’)’’’’’’’’’’’’’’’’’’’b ’<’’’’’’’’’’’’’’’’’’’¢ ’’’’’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’ņ ’=’’’’’’’’’’’’’’’’’’’2 ’)’’’’’’’’’’’’’’’’’’’b ’’’’’’’’’’’’’’’’’’’’‚ ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢ ’’’’’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’ā ’4’’’’’’’’’’’’’’’’’’’" ’+’’’’’’’’’’’’’’’’’’’R ’/’’’’’’’’’’’’’’’’’’’’ ’#’’’’’’’’’’’’’’’’’’’Ā ’.’’’’’’’’’’’’’’’’’’’ņ ’0’’’’’’’’’’’’’’’’’’’2 ’’’’’’’’’’’’’’’’’’’’R ’’’’’’’’’’’’’’’’’’’’r ’6’’’’’’’’’’’’’’’’’’’² ’<’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET spool manager DEFINES (* Autor : R. Ruland *)’’N (* Stand : 23.02.88 *)’’ spool manager ,’’’’’’’’’’’ server channel ,’’’’’’’’’’ spool duty,’’’’’’’’’’’’’’’ station only, ’’’’’’’’’’’’ auto stop,. enter spool control password,’’’’’’’’’’’’’ spool control password,’’’ start spool,’’’’’’’’’’’’’’ stop spool,’’’’’’’’’’’’’’ halt spool,’’’’’’’’’’’’’’ kill spool,’’’’’’’’’’’’’’ first spool,’’’’’’’’’’’’’’ spool entry line,’’’’’’’’’ number spool entries,’’’’’ spool status,’’’’’’’’’’’’’ server task,’’’’’’’’’’’’’’ clear spool,’’’’’’’’’’’’’’ list spool,’’’’’’’’’’’’’’LET que size = 200 , ack = 0 ,’’ nak = 1 ,’’ error nak = 2 ,’’ second phase ack = 5 ,’’ false code = 6 ,’’ fetch code = 11 ,’ save code = 12 ,’ exists code = 13 ,’ erase code = 14 ,’ list code = 15 ,’ all code = 17 ,’ param fetch code = 21 ,’ file save code = 22 ,’ entry line code = 23 ,’ killer code = 24 ,  first code = 25 ,’ start code = 26 ,  stop code = 27 ,’ halt code = 28 ,’ wait for halt code = 29 ,’ help code = 49 ,’ continue code = 100 ,> control codes = ""23""24""25""26""27""28""29"" ,’’’’’. file type = 1003 ,’’’’’’’’’’’’’’’. help file name = "help";’’’’’’’’’’’’’’LET begin char = ""0"",’’’’’ end char = ""1"";’’’’’NLET PARAMS = STRUCT (TEXT name, userid, password, sendername, INT station);’NBOUND ROW que size STRUCT (PARAMS ds params, TEXT entry line) VAR que;’’’’’’’’. ROW que size DATASPACE VAR que space;’’’PARAMS VAR save params;’’’’’’’.DATASPACE VAR que ds, global ds;’’’’’’’’’’’’’’FILE VAR file;NINT VAR last order, reply, old heap size, que index, fetch index, ’’’’’’’’’’’’N station by start, begin pos, end pos, order task station, sp channel;’NTEXT VAR que entries, free entries, order task name, buffer, deactive message,N error message buffer, sp duty, start time, control password;’’’’’’’’’NBOOL VAR server is waiting, stop cmd pending, start cmd pending,’’’’’’’’’’’’’’. auto stop pending, stat only;’’’’’’’’NTASK VAR last order task, server, calling parent, task in control; ’’’’’’’’’’’>INITFLAG VAR in this task := FALSE, init que space := FALSE;’’>BOUND STRUCT (TEXT name, userid, password) VAR msg;’’’’’’’’’’’^BOUND STRUCT (TEXT entry line, INT index, TEXT actual entries, password) VAR control msg;’’’’’BOUND PARAMS VAR fetch msg;’’’BOUND THESAURUS VAR all msg;’’BOUND TEXT VAR error msg;’’’’’.. que is empty : que entries = ""’’’’’’’’.. que is full : free entries = ""’’’’’’’’.. number entries : LENGTH que entries’’’’’’’.. first index : code (que entries SUB 1)’>. list index : code (que entries SUB que index)’’’’’’’’’>. last index : code (que entries SUB number entries)’’’’.. fetch entry : que (fetch index)’’’’’’’’.. list entry : que (list index)’’’’’’’’.. last entry : que (last index)’’’’’’’’>. was define station : station by start <> station (myself)’.. is valid fetch entry : fetch index > 0’’’’’’.INT VAR command index , params ;’’’’’’’’’’’’’’TEXT VAR param 1, param 2 ;’’’NLET spool command list = "start:1.01stop:3.0halt:4.0first:5.0killer:6.0";’’’’’sp channel := 0;’’’’’’’sp duty := ""; ’’’’’deactive message := "";’’’’’’stat only := FALSE;’’’auto stop pending := FALSE;’’’.task in control := supervisor;’’’’’’’’’’’’’’control password := "-";’’’’’.PROC server channel (INT CONST channel nr) :’’. IF channel nr <= 0 OR channel nr >= 33’’’> THEN errorstop ("falsche Kanalangabe") FI;’’’’’’’’’’’’ sp channel := channel nr;END PROC server channel;’’’’’’NINT PROC server channel : sp channel END PROC server channel;’’’’’’’’’’’’’’’.PROC station only (BOOL CONST flag) :’’’’’’’’’ stat only := flag’’’’’’’’END PROC station only;’’’’’’’’>BOOL PROC station only : stat only END PROC station only;’’’.PROC auto stop (BOOL CONST flag) :’’’’’’’’’’’’ auto stop pending := flagEND PROC auto stop;’’’’’’’’’’’>BOOL PROC auto stop : auto stop pending END PROC auto stop;’.PROC spool duty (TEXT CONST duty) :’’’’’’’’’’’ sp duty := duty;’’’’’’’’’END PROC spool duty;’’’’’’’’’’>TEXT PROC spool duty : sp duty END PROC spool duty;’’’’’’’’’>PROC enter spool control password (TEXT CONST new password):’’ disable stop;’’’’’’’’’’’’’’’ cover tracks;’’’’’’’’’’’’’’’. cover tracks (control password);’’’’’’’’’’’’. control password := new password;’’’’’’’’’’’.END PROC enter spool control password;’’’’’’’’>PROC spool control password (TEXT CONST new password):’’’’’’’’. IF on line THEN say (""3""13""5"") FI;’’’’’’. enter spool control password (new password);.END PROC spool control password;’’’’’’’’’’’’’’.PROC spool manager (PROC server start) :’’’’’’> spool manager (PROC (DATASPACE VAR, INT CONST,’’’’’’’’’’’’’’N INT CONST, TASK CONST) spool manager,’’’’’’’’’. PROC server start, TRUE)’’’’’END PROC spool manager;’’’’’’’NPROC spool manager (PROC server start, BOOL CONST initial start) :’’’’’’’’’’’’> spool manager (PROC (DATASPACE VAR, INT CONST,’’’’’’’’’’’’’’N INT CONST, TASK CONST) spool manager,’’’’’’’’’> PROC server start, initial start) ’’’’’’’’’’’END PROC spool manager;’’’’’’’>PROC spool manager (PROC (DATASPACE VAR, INT CONST,’’’’’’’’’’’N INT CONST, TASK CONST) spool,’’’’’’’’. PROC server start,’’’’’’’’> BOOL CONST initial start) :’’’’’’’’’’’’’’’ set autonom; disable stop;’’’’’’’’’’’’’’’ command dialogue (FALSE);’’’ initialize spool manager;’’’. REP start spool if necessary;’’’’’’’’’’’’’’’ wait for next order;’’’’. IF order not allowed THEN reject order. ELIF is first phase THEN first phase’. ELIF is second phase THEN second phase. ELSE send nak’’’’ send error if necessary;. collect heap garbage if necessary;’’’’’’ . initialize spool manager : initialize if necessary; stop server;’’’’’’’’’’’’ erase fetch entry;’’’’’’. start cmd pending := initial start;’’’’’. stop cmd pending := FALSE;’’’’’’’’’’’’’. last order task := niltask;’’’’’’’’’’’. . initialize if necessary :’’’’’’’’’’’’’. IF NOT initialized (in this task)’’’ THEN clear spool;> global ds := nilspace;’’’’’’’’’’’> que ds := nilspace;’’’’’’’’’’’> que := que ds;’’’’’’’’’’’’’> server öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö := niltask; ’’’’’’’’’’’> calling parent := niltask;’’’’’’’’’’’’> server is waiting := FALSE;’’’’’’’’’’’’’’> station by start := station (myself);’’’. old heap size := 0;’’. error message buffer := "";’ . start spool if necessary :> IF start cmd pending AND NOT stop cmd pending’’’’’’’’’’’> THEN start server (PROC server start) FI;’’’’’’’’’’’’ . wait for next order :’’’’’ INT VAR order, phase;’’’ TASK VAR order task;’’’’ forget (global ds);’’’’’. wait (global ds, order, order task);’’’’ . order not allowed :’’’’’’’N station only CAND station (ordertask) <> station (myself) CAND’’’’’’’’’’N ( order > 255 COR pos (control codes, code (order)) = 0 )’’’’’ . reject order :’’’’’’’’’’’’N errorstop ("kein Zugriffsrecht auf Task " + text (station(myself))’’’’’’> + "/""" + name(myself) + """") ’’’’’’’’’’’’’ . is first phase :’’’’’’’’’’. order <> second phase ack ’’’’’’’’’’’ . first phase :’’’’’’’’’’’’’ phase := 1;’’’’’’’’’’’’’. last order := order;’’’’’’’’’’’’’’’. last order task := order task;’’’’’’’’’’> spool (global ds, order, phase, order task);’’’’’’’’’’’’ . is second phase :’’’’’’’’’. order task = last order task ’’’’’’’’’’’ . second phase :’’’’’’’’’’’’ phase INCR 1 ;’’’’’’’’’’ order := last order;’’’’> spool (global ds, order, phase, order task);’’’’’’’’’’’’ . send nak : forget (global ds);’’’’’ global ds := nilspace;’’. send (order task, nak, global ds);’’’’’’ . send error if necessary :’ IF is error’’’’’’’’’’’’’. THEN forget (global ds);’’’’’’’’’’’’’. global ds := nilspace;’’’’’’’’’’. error msg := global ds;’’’’’’’’’> CONCR (error msg) := error message;’’’’’’’’’’’’’ clear error;’’’’> send (order task, error nak, global ds);’’’’’’’’. . collect heap garbage if necessary :’’’’’’’. IF heap size > old heap size + 2’’’’’’’’. THEN collect heap garbage;’’’’’’’’’’’. old heap size := heap size;’’’’’END PROC spool manager;’’’’’’’.PROC spool manager (DATASPACE VAR order ds,’’’. INT CONST order, phase,’’’. TASK CONST order task ): enable stop; SELECT order OF’’’’’’’’’’’’’> CASE fetch code, help code : out of que or help’’’’’’’’’> CASE param fetch code : send fetch params’’’’’’’’’’> CASE save code : new que entry’’’’’’’’’’’’’’> CASE file save code : new file que entry ’’’’’’’’> CASE exists code : exists que entry’’’’’’’’’’’> CASE erase code : erase que entry’’’’’’’’’’’’> CASE list code : send spool list’’’’’’’’’’’’> CASE all code : send owners ds names’’’’’’’> CASE entry line code : send next entry line ’’’’’’. CASE killer code : kill entry > CASE first code : make to first’’’’’’’’’’’’’’> CASE start code : start server task’’’’’’’’’’> CASE stop code : stop server task’’’’’’’’’’’. CASE halt code, wait for halt code’’’’’’’’> : halt server task’’’’’’’’’’’ OTHERWISE :’’’’’’’’’’’’’’’> IF order >= continue code AND order task = supervisor’’ THEN spool monitor’’ ELSE wrong operation. wrong operation :’’’’’’’’’’’ IF order > error nak’’’’’’N THEN errorstop ("falscher Auftrag fuer Task " + text (station(myself))’> + "/""" + name(myself) + """") ’’’’’’’ out of que or help :’’’’’’’’ IF order task = server’’’’ THEN out of que’’’’’’’’ ELSE send help file’’’’ . out of que :’’’’’’’’’’’’ erase fetch entry;’’’’ IF stop cmd pending  THEN stop server’ ELIF que is empty’’’’’. THEN IF auto stop pending’’’’’’’’. THEN stop server’’’’’’’’’> ELSE server is waiting := TRUE’’’’’’’’’’’ FI;’’’’’’’’’. ELSE send first entry;’’’’’’’’’’’ . send help file :’’’’’’’’ check server (TRUE);’’ IF order = fetch code’. THEN msg := order ds;’’’’’’’’’’’’’’. IF msg. name <> help file name> THEN errorstop ("keine Servertask") FI;’’’’ forget (order ds);’’’’. order ds := old (help file name);’’’’’. send (order task, ack, order ds);’’’’’ send fetch params :’’’’’’’’’ IF order task = server’’’’ THEN send params’’’’’’’. ELSE errorstop ("keine Servertask")’’’’ . send params :’’’’’’’’’’’> forget(order ds); order ds := nilspace;’’’’’’’’’’’’’’’ fetch msg := order ds;. fetch msg := fetch entry. ds params;’’. send (order task, ack, order ds);’’’’’ new que entry :’’’’’’’’’’’’’ IF phase = 1’’’’’’’’’’’’’’ THEN prepare into que’’. ELSE into que (order ds, order task)’’’ prepare into que :’’’’’’’’’’ msg := order ds ;’’’’’’’’’. save params. name := msg.name;’’’’’’. save params. userid := msg.userid;’’’’. save params. password := msg.password;’’> save params. sendername := name (order task);’’’’’’’’’’’’’> save params. station := station (order task);’’’’’’’’’’. forget (order ds); order ds := nilspace;’’> send (order task, second phase ack, order ds);’’’’’’’’’’’’ new file que entry :’’’’’’’’. IF type (order ds) <> file type’’’’’’’’’’’> THEN errorstop ("Datenraum hat falschen Typ");’’’’’’’’’ ELSE get file params;’’. into que (order ds, order task);’’ . get file params :’’’’’’’> file := sequential file (input, order ds);’’’’’’’’’’’’ end pos := 0;’’’’’’’’’> next headline information (save params. name); ’’’’’’’> next headline information (save params. userid); ’’’’’> next headline information (save params. password); ’’’> next headline information (save params. sendername); ’. next headline information (buffer);’’’. save params. station := int (buffer);’. IF NOT last conversion ok’’’’’’’’’’’’’N THEN save params. station := station (order task) FI;’’’’’’’’’’’. IF save params. sendername = ""’’’’’’’N THEN save params. sendername := name (order task) FI;’’’’’’’’’’’. IF save params. name = ""’’’’’’’’’’’’’. THEN IF headline (file) <> ""’’’’’’> THEN save params. name := headline (file);’> ELSE errorstop ("Name unzulaessig")’’’’’’’’ FI;’’’’’’’’’’’> ELSE headline (file, save params. name);’’’’’’’’’’’ exists que entry :’’’’’’’’’’. msg := order ds ;’’’’’’’’’’. order task name := name (order task);’’> order task station := station (order task);’’’’’’’’’’’’’’’. FOR que index FROM 1 UPTO number entries’’> REP IF is entry from order task (msg. name) ’’’’’’’’’’’’’’ THEN send ack;’’’’’. LEAVE exists que entry’’’’’’’’. forget (order ds); order ds := nilspace;’’. send (order task, false code, order ds)’’’ erase que entry :’’’’’’’’’’’. msg := order ds ;’’’’’’’’’’. order task name := name (order task);’’> order task station := station (order task);’’’’’’’’’’’’’’’ IF phase = 1’’’’’’’’’’’’’’ THEN ask for erase’’’’’. ELSE erööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööase entry from order task ’’’’’’ . ask for erase :’’’’’’’’’> FOR que index FROM 1 UPTO number entries’’’’’’’’’’’’’’> REP IF is entry from order task (msg. name) ’’’’’’’’’’^ THEN manager question ("""" + msg.name + """ loeschen", order task); ’’’’’’’’’’. LEAVE erase que entry’’’’’ FI;’’’’’’’’’’’’’’’N manager message ("""" + msg.name + """ existiert nicht", order task);’. . erase entry from order task :’’’’’’’’’’’^ IF is valid que index (que index) CAND is entry from order task (msg. name) ’’’’’’’’’’. THEN delete que entry; ’’’’’’’’’’’’. LEAVE erase que entry ’’’’’’’’> ELSE FOR que index FROM 1 UPTO number entries’’’’’’> REP IF is entry from order task (msg. name) ’’. THEN delete que entry;’> LEAVE erase que entry ’’’’’’’’’’’’ FI;’’’’’’’ PER;’’’’’’’’’’^ manager message ("""" + msg.name + """ existiert nicht", order task);’’’’’’’’ . delete que entry :’’. kill spool (que index);’’’’’’’’’’’ send ack;’’’’’’’’’ send owners ds names:’’’’’’’. order task name := name (order task);’’> order task station := station (order task);’’’’’’’’’’’’’’’N forget (order ds); order ds := nilspace; all msg := order ds; ’’’’’’’’’’’’. all msg := empty thesaurus; ’’’’’’’’’’’’’’. FOR que index FROM 1 UPTO number entries’’. REP IF is entry from order task ("")’’’’’’> THEN insert (all msg, list entry. ds params. name) . send (order task, ack, order ds) ’’’’’’’’’ send spool list :’’’’’’’’’’’. forget (global ds); global ds := nilspace;> file := sequential file (output, global ds);’’’’’’’’’’’’’’ list spool (file);’’’’’’’’. send (order task, ack, global ds);’’’’’’’’ send next entry line :’’’’’’N control msg := order ds; check control password (control msg. password);’’^ IF control msg. index = 0 THEN control msg. actual entries := que entries FI;’’’’’’’’’’’’’ get next entry line;’’’’’’. send (order task, ack, order ds);’’’’’’’’’ . get next entry line :’’’. REP control msg. index INCR 1;’’’’’’’’N IF control msg. index > LENGTH control msg. actual entries’’’’’’’’> THEN control msg. index := 0;’’’’’’’’’’’’’> control msg. entry line := "";’’’’’’’’’’’’. LEAVE get next entry line; FI;’’’’’’’’’’’’’’’. que index := control que index;’’’> UNTIL is valid que index (que index) PER;’’’’’’’’’’’’’> control msg. entry line := list entry. entry line;’’’’ . control que index :’’’’’N pos (que entries, control msg. actual entries SUB control msg. index)’ kill entry :N control msg := order ds; check control password (control msg. password);’’. kill spool (control que index);’’’’’’’’’’’. send (order task, ack, order ds);’’’’’’’’’ make to first :’’’’’’’’’’’’’N control msg := order ds; check control password (control msg. password);’’. first spool (control que index);’’’’’’’’’’. send (order task, ack, order ds);’’’’’’’’’ start server task :’’’’’’’’’> msg := order ds; check control password (msg. password);’’> IF exists (server) AND NOT stop cmd pending’’’’’’’’’’’’’’’> THEN errorstop ("Spool muū zuerst gestoppt werden") FI;. new server channel is necessary;’’’’’’’’’’ start cmd pending := TRUE;> IF server channel <= 0 OR server channel >= 33’’’’’’’’’’’’^ THEN manager message ("WARNUNG : Serverkanal nicht eingestellt", order task);’’’’’’’’’’ ELSE send ack’’’’’’’’’’. . new server channel is necessary :’’’’’’’> INT CONST new channel := int (msg. name);’’’’’’’’’’’’’N IF last conversion ok THEN server channel (new channel) FI;’’’’’’’’’’’ stop server task :’’’’’’’’’’> msg := order ds; check control password (msg. password);’’ IF phase = 1’’’’’’’’’’’’’’. THEN start cmd pending := FALSE;’’’’’’’. deactive message := msg. name;’’’ stop server;’’’’’’ check fetch entry;. ELSE reinsert fetch entry;’’’’’’’’’’’’’ send ack;’’’’’’’’’ halt server task :’’’’’’’’’’> msg := order ds; check control password (msg. password);’’ IF phase = 1’’’’’’’’’’’’’’. THEN stop cmd pending := TRUE; ’’’’’’’. start cmd pending := FALSE;’’’’’’’. deactive message := msg. name;’’’> IF NOT exists (server) OR server is waiting’’’’’. THEN stop server;’’’’’’’’’’’’. check fetch entry;’’’’’’. ELIF order = wait for halt code’’’> THEN calling parent := order task;’’’’’’’’’’’. ELSE send ack;’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’. ELSE reinsert fetch entry;’’’’’’’’’’’’’ send ack;’’’’’’’’’ . check fetch entry :’’’’’. IF is valid fetch entry’’’’’’’’’’’’’’’. THEN manager question (""13""10"" +N fetch entry. entry line + " neu eintragen", order task);’. fetch index := -fetch index;’’ ELSE send ack;’’’’’. forget (order ds); order ds := nilspace;’’. send (order task, ack, order ds)’’’’’’’’’’ spool monitor :’’’’’’’’’’’’’. continue (order - continue code);’’’’’’’’’ disable stop;’’’’’’’’’’’’’. put error message if there is one;’’’’’’’’ WHILE online’’’’’’’’’’’’’’. REP command dialogue (TRUE);’’’’’’’’’’’’’’ sysout ("");’’’’’’’’’’ sysin ("");’’’’’’’’’’’. get command ("gib Spool-Kommando:");’’^ analyze command (spool command list, 3, command index, params, param1, param2);’’’’’’’ reset editor;’’’’’’’’’. SELECT command index OF ’’’’’’’’’’’’’’. CASE 1 : start spool’’’’’’’’’’’’> CASE 2 : start spool (int (param1))’’’’’’’’’’’’’. CASE 3 : stop spool’’’’’’’’’’’’. CASE 4 : halt spool’’’’’’’’’’’’. CASE 5 : first spool’’’’’’’’’’’’. CASE 6 : kill spool’’’’’’’’’’’’. OTHERWISE : do command’’’’’’’’’’’’’ END SELECT;’’’’’’’’’’’. save error message if there is one;’’’’’’’ command dialogue (FALSE);’ break (quiet);’’’’’’’’’’’’ set autonom;’’’’’’’’’’’’’’. . put error message if there is one :’’’’’. IF error message buffer <> ""’’’’’’’’’> THEN errorstop (error message buffer); FI;’’’’’’’’’. . save error message if there is one :’’’’ IF is error’’’’’’’’’’’> THEN error message buffer := error message;’’’’’’’’ clear error;’’. ELSE error message buffer := "";’’’ . reset editor :’’’’’’’’’’> WHILE aktueller editor > 0 REP quit PER;’’’’’’’’’’’’’’ clear error;’’’’’’’’’’END PROC spool manager;’’’’’’’PROC send first entry :’’’’’’ forget (global ds);’’’’’’’’’. global ds := que space (first index);’’’’’’’. send (server, ack, global ds, reply) ;’’’’’’ IF reply = ack’’’’’’’’’’’’’’. THEN fetch index := first index;’’’> que entries := subtext (que entries, 2);’’’’’’. server is waiting := FALSE;’’’’’’’’’. start time := time of day;’’’. start time CAT " am ";’’’’’’’. start time CAT date;’’’’’’’’’END PROC send first entry;’’’’NPROC into que (DATASPACE VAR order ds, TASK CONST order task) :’’’’’’’’’’’’’’’ IF que is full’’’’’’’’’’’’’’. THEN errorstop ("Spool ist voll")’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö ELSE make new entry;’’’’’ send ack;’’’’’’’’’’’. awake server if necessary’’’’’’’’’’’ . make new entry :’’’’’’’’’’. que entries CAT (free entries SUB 1);’’> free entries := subtext (free entries, 2);’’’’. que space (last index) := order ds;’’’’’. last entry. ds params := save params;’’ build entry line;’’’’’’’ . build entry line :’’’’> IF LENGTH last entry. ds params. sender name > 16’’’^ THEN buffer := subtext (last entry. ds params. sender name, 1, 13);’’’’’’’’’’’’’’. buffer CAT "...""";’’’’’’’’’N ELSE buffer := last entry. ds params. sender name;’’’’’’’’’’’’’’’. buffer CAT """";’’’’’’’’’’’’. buffer := text (buffer, 17);> last entry. entry line := entry station text;’’’’’’’. last entry. entry line CAT "/""";’’’. last entry. entry line CAT buffer;’’. last entry. entry line CAT " : """ ;N last entry. entry line CAT last entry. ds params. name;’’’’’’’’’’’’’. last entry. entry line CAT """ (" ;N last entry. entry line CAT text (storage (order ds));’’’’’’’’’’’’’’’. last entry. entry line CAT " K)";’’’. . entry station text :’’’’’’’’’’’’’’> IF last entry. ds params. station = 0’’’’’’’’’’’ THEN " "’’’> ELSE text (last entry. ds params. station, 3) FI’’’’’’’’’’’’’’ . send ack :. forget (order ds); order ds := nilspace;. send (order task, ack, order ds)’’’’’’’’. . awake server if necessary :’’’’’’’’’’’’’’’> IF server is waiting THEN send first entry FI;’’’’’’’’’’END PROC into que;’’’’’’’’’’’’N(*********************************************************************) ’’’’’’N(* Hilfsprozeduren zum Spoolmanager *)’’’’’’’N(*********************************************************************) ’’’’’’PROC reinsert fetch entry :’’’ IF fetch index <> 0’’’’’’’’’N THEN insert char (que entries, code (abs (fetch index)), 1);’’’’’’’’’’’’’ fetch index := 0;’’’END PROC reinsert fetch entry;PROC erase fetch entry :’’’’’’ IF fetch index <> 0’’’’’’’’’> THEN free entries CAT code (abs (fetch index));’’’’’’’’’’> forget (que space (abs (fetch index)));’’’’’’’’’’’’’ fetch index := 0;’’’END PROC erase fetch entry;’’’.PROC start server (PROC server start):’’’’’’’’ stop server;. begin (PROC server start, server);’’’’’’’’’’. station by start := station (myself);’’’’’’ start cmd pending := FALSE;’ deactive message := "";’’’’END PROC start server;’’’’’’’’PROC stop server :’’’’’’’’’’’’N IF exists (server) THEN end (server) ELSE check server (FALSE) FI;’’’’’’’’’’. server := niltask;’’’’’’’’’’’’’’’ server is waiting := FALSE;’ stop cmd pending := FALSE; . send calling parent reply if necessary;’’’’’. . send calling parent reply if necessary :’’. IF exists (calling parent)’’’’’’’’’’’’’’> THEN forget (global ds); global ds := nilspace;’’’’’’> send (calling parent, ack, global ds);’’’’’’’’’’. calling parent := niltask;’’’’’END PROC stop server;’’’’’’’’’.PROC check server (BOOL CONST with stop) :’’’’> IF was define station CAND NOT is niltask (server) ’’’’’’’’’. THEN stop old server if necessary FI;’’’’. . stop old server if necessary :’’’’’’’’’’’’ access catalogue;’’’’’’’. TASK VAR old server := son (myself);’’’’. WHILE NOT is niltask (old server)’’’’’’’N REP IF index (old server) = index (server) THEN old server found FI;’’’’. old server := brother (old server);’ . old server found :’’’’> IF name (old server) = "-" THEN end (old server) FI;. IF with stop THEN stop server FI;’’’. LEAVE stop old server if necessary;’END PROC check server;’’’’’’’’>BOOL PROC is valid que index (INT CONST index) :’’’’’’’’’’’’’’. 1 <= index AND index <= number entries’’’’’’END PROC is valid que index;’’>BOOL PROC is entry from order task (TEXT CONST file name) :’’’. correct order task CAND correct filename’’’’ . correct order task :’’’’’’> order task name = list entry. ds params. sendername’’’’’N AND order task station = list entry. ds params. station’’’’’’’’’’’’’ . correct file name :’’’’’’’N file name = "" OR file name = list entry. ds params. name’’’’’’’’’’’’’’’.END PROC is entry from order task; ’’’’’’’’’’’>PROC check control password (TEXT CONST password) :’’’’’’’’’’’ IF control password = "-"’’> THEN errorstop ("Kontrolle des Spools nicht erlaubt")’’’> ELIF control password <> "" CAND control password <> password. THEN errorstop ("Passwort falsch")’’’’’’.END PROC check control password;’’’’’’’’’’’’’’.PROC next headline information (TEXT VAR t):’’> begin pos := pos (headline (file), begin char, end pos + 1); IF begin pos = 0’’’’’’’’’’’’> THEN begin pos := LENGTH headline (file) + 1;’’’’’’’’’’’’ t := "";’’’’’’’’’’’’N ELSE end pos := pos (headline (file), end char, begin pos + 1);’’’’’’’’’’ IF end pos = 0’’’’’’> THEN end pos := LENGTH headline (file) + 1; ’’’’’ t := "";’’’’N ELSE t := subtext (headline (file), begin pos+1, end pos-1)’’’’’’.END PROC next headline information;’’’’’’’’’’’N(*********************************************************************) ’’’’’’N(* Prozeduren zur Verwaltung der Warteschlange *) ’’’’’’N(*********************************************************************) ’’’’’’PROC start spool :’’’’’’’’’’’’ enable stop;> IF server channel <= 0 OR server channel >= 33’’’’’’’’’’’’’’N THEN display (""13""10"WARNUNG : Serverkanal nicht eingestellt"13""10"")’ start cmd pending := TRUE;’’END PROC start spool;’’’’’’’’’.PROC start spool (INT CONST new channel) :’’’’ enable stop;. server channel (new channel);’’’’’’’’’’’’’’’ start spool;END PROC start spool;’’’’’’’’’.PROC stop spool (TEXT CONST deactive msg) :’’’ disable stop;’’’’’’’’’’’’’’’. deactive message := deactive msg;’’’’’’’’’’ start cmd pending := FALSE;’ stop server;. IF is valid fetch entry CAND on line CAND’’’N yes (""13""10"" + fetch entry. entry line + " neu eintragen")’’’’’’’’ THEN reinsert fetch entry ELSE erase fetch entry;’’END PROC stop spool;’’’’’’’’’’>PROC stop spool : stop spool ("") END PROC stop spool;’’’’’’.PROC halt spool (TEXT CONST deactive msg) :’’’ enable stop;. deactive message := deactive msg;’’’’’’’’’’ stop cmd pending := TRUE; ’ start cmd pending := FALSE;’N IF NOT exists (server) OR server is waiting THEN stop spool FI;’’’’’’’’’’’’’END PROC halt spool;’’’’’’’’’’>PROC halt spool : halt spool ("") END PROC halt spool;’’’’’’PROC kill spool :’’’’’’’’’’’’’ enable stop; say (""13""10"");’’’’’’’’’’’ que index := 1;’’’’’’’’’’’’’. WHILE que index <= number entries’’’’’’’’’’’> REP IF yes (list entry. entry line + " loeschen")’’’’’’’’’. THEN kill spool (que index)’’’’’’’’’’ ELSE que index INCR 1END PROC kill spool;’’’’’’’’’’.PROC kill spool (INT CONST index) :’’’’’’’’’’’. IF is valid que index (index)’’’’’’’’’’’’’’’> THEN forget (que space (code (que entries SUB index)));’’> free entries CAT (que entries SUB index);’’’’’’’’’’’. delete char (que entries, index);’’’END PROC kill spool;’’’’’’’’’’PROC first spool :’’’’’’’’’’’’ enable stop; say (""13""10"");’’’’’’’’’’’. FOR que indeööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööx FROM 1 UPTO number entries’’’’> REP IF yes (list entry. entry line + " als erstes")’’’’’’’. THEN first spool (que index);’’’’’’’’. LEAVE first spool’’’’’’’’’’’’’’’END PROC first spool;’’’’’’’’’.PROC first spool (INT CONST index) :’’’’’’’’’’. IF is valid que index (index)’’’’’’’’’’’’’’’N THEN insert char (que entries, que entries SUB index, 1);’’’’’’’’’’’’’’’> delete char (que entries, index + 1);’’’’’’’’’’’’’’END PROC first spool;’’’’’’’’’.TEXT PROC spool entry line (INT CONST index) :. IF index = 0 CAND is valid fetch entry’’’’. THEN fetch entry. entry line’’’’’’’’’’’. ELIF is valid que index (index)’’’’’’’’’’’’’ THEN entry. entry line’ ELSE "". . entry : que (code (que entries SUB index))END PROC spool entry line;’’’’NINT PROC number spool entries : number entries END PROC number spool entries;’INT PROC spool status :’’’’’’’ IF exists (server)’’’’’’’’’’ THEN IF stop cmd pending’. THEN IF start cmd pending’’’’’’’’N THEN 3 (* aktiviert (neu start) *)’’’’’’’’N ELSE 2 (* aktiviert (warten auf halt) *)’’’’’’’’ FI’’’’’’’’’’. ELSE IF server is waiting’’’’’’’’N THEN 0 (* kein Auftrag in Bearbeitung *)’’’’’’’’N ELSE 1 (* aktiviert *)’’’’’’’’ FI’’’’’’’’’’ ELIF start cmd pending’’’’’’N THEN 0 (* wird aktiviert *)’’’’’’’’ ELIF is valid fetch entry’’’. THEN IF was define station’’’’’’’’’’’’’N THEN -3 (* deaktiviert (define station) *)’’’’’’’’N ELSE -2 (* deaktiviert (server gelŚcht) *)’’’’’’’’ FIN ELSE -1 (* deaktiviert *)’’’’’’’’END PROC spool status;’’’’’’’’>TASK PROC server task : server END PROC server task;’’’’’’’’PROC clear spool :’’’’’’’’’’’’ disable stop;’’’’’’’’’’’’’’’. IF NOT initialized (init que space)’’’’’’’’’. THEN FOR que index FROM 1 UPTO que size’’> REP que space (que index) := nilspace PER;’’’’’’ que entries := "";’’’’’’’’’ free entries := "";’’’’’’’’’ fetch index := 0;’’’’’’’’’’ stop server;. FOR que index FROM 1 UPTO que size ’’’’’’’’’. REP forget (que space (que index));’’’’’’’’’. free entries CAT code (que index);’’’’’’END PROC clear spool;’’’’’’’’’PROC list spool :’’’’’’’’’’’’’ disable stop;’’’’’’’’’’’’’’’. DATASPACE VAR list ds := nilspace;’’’’’’’’’’> FILE VAR list file := sequential file (output, list ds);’’’’ list spool (list file);’’’’’ show (list file);’’’’’’’’’’’ forget (list ds);’’’’’’’’’’’END PROC list spool;’’’’’’’’’’PROC list spool (FILE VAR f) : enable stop; max line length (f, 1000);’’> headline (f, station text + name (myself) + """");’’’’’’’’’ put spool duty;’’’’’’’’’’’’’ put current job;’’’’’’’’’’’’ put spool que;’’’’’’’’’’’’’’ . station text :’’’’’’’’’’’’ IF station(myself) = 0’’ THEN "/"""’’’’’’’’’’’. ELSE text (station(myself)) + "/"""’’ . put spool duty :’’’’’’’’’’ IF spool duty <> ""’’’’’. THEN write (f, "Aufgabe: ");’’’’’’’’’. write (f, spool duty );’’’’’’’’’ line (f, 2);’’’’ . put current job :’’’’’’’’’ IF is valid fetch entry’> THEN write (f, "In Bearbeitung seit ");’’’’’’’’’’’’’’. write (f, start time);’’’’’’’’’’ write (f, ":");’ line (f, 2);’’’’> putline (f, fetch entry. entry line);’’’’’’’’’’’. IF NOT exists (server)’’’’’’’’. THEN IF was define station’n THEN putline (f, "Spool ist deaktiviert, da Stationsnummer geaendert wurde")’’’’’’’n ELSE putline (f, "Spool ist deaktiviert, da der Server gelŚscht wurde")’’’’’’’’’’’’ FI;’’’. ELIF stop cmd pending’’’’’’’’’’’. THEN IF start cmd pending’’^ THEN putline (f, "Spool wird nach diesem Auftrag neu aktiviert");’’^ ELSE putline (f, "Spool wird nach diesem Auftrag deaktiviert");’’’’ FI;’’’ FI;’’’’’’’’’’’’’ line (f);’’’’’’’> ELSE write (f, "kein Auftrag in Bearbeitung");’’’’’’’. IF NOT exists (server)’’’’’’’’> THEN write (f, ", da Spool deaktiviert");’’. IF start cmd pending’’. THEN line (f);’’’’’^ write (f, "Spool wird nach Verlassen der Task aktiviert");’’’’ FI;’’’> IF deactive message <> ""’’’’’’’’’’’’’. THEN line (f);’’’’’> write (f, deactive message);’’ FI;’’’. ELIF que is empty’’’’’’’’’’’’’’’> THEN write (f, ", da Warteschlange leer");’. LEAVE list spool;’’’’’ FI;’’’’’’’’’’’’’ line (f, 2);’’’’ . put spool que :’’’’’’’’’’’ IF que is empty’’’’’’’’’> THEN putline (f, "Warteschlange ist leer");’’’’’’’’’’. ELSE write (f, "Warteschlange (");’’’> write (f, text (number entries));’’’’’’’’’’’’’’’. IF number entries = 1’’’’’’’’’’’. THEN write (f, " Auftrag):");> ELSE write (f, " Auftraege):");’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’ line (f, 2);’’’’> FOR que index FROM 1 UPTO number entries’’’’’’’’> REP putline (f, list entry. entry line) PER;’’END PROC list spool;’’’’’’’’’’ENDPACKET spool manager;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’P@’’@’’’’’’’’’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’printer server’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘‹a€ė’’eebb p’’’’ p pf>X’ž’’’’a€’’’’’’’’’’’’’’’’’’’’’’’’’’’’e’’’’’’’’’’’’’’’’’’q€’M’’’’’’’’’’’’’’’’’’’Į€’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ INT VAR c;’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’с’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’1‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q‚’-’’’’’’’’’’’’’’’’’’’‚’1’’’’’’’’’’’’’’’’’’’Į‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ’Q’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ƒ’’’’’’’’’’’’’’’’’’’’у’’’’’’’’’’’’’’’’’’’’ńƒ’'’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’A„’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’ф’’’’’’’’’’’’’’’’’’’’ń„’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’…’$’’’’’’’’’’’’’’’’’’’A…’!’’’’’’’’’’’’’’’’’’’q…’%’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ PER ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”…’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į…’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į…’’’’’’’’’’’’’’’’’’’’†’*’’’’’’’’’’’’’’’’’’’1†’-’’’’’’’’’’’’’’’’’’’a†’0’’’’’’’’’’’’’’’’’’’”†’’’’’’’’’’’’’’’’’’’’Į†’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᆒ’’’’’’’’’’’’’’’’’’’‡’ ’’’’’’’’’’’’’’’’’’’1‡’/’’’’’’’’’’’’’’’’’’’q‡’’’’’’’’’’’’’’’’’’’’‘‡’3’’’’’’’’’’’’’’’’’’’ч’’’’’’’’’’’’’’’’’’’’ń‡’-’’’’’’’’’’’’’’’’’’’!ˆ’*’’’’’’’’’’’’’’’’’’’Qˆ’,’’’’’’’’’’’’’’’’’’’ˆ’/’’’’’’’’’’’’’’’’’’’Įˆ’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńˆ’’’’’’’’’’’’’’’’’’’’‰’-’’’’’’’’’’’’’’’’’’’1‰’’’’’’’’’’’’’’’’’’’’Q‰’3’’’’’’’’’’’’’’’’’’’‘‰’-’’’’’’’’’’’’’’’’’’’Į‰’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Š’'’’’’’’’’’’’’’’’’’’’aŠ’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’”Š’$’’’’’’’’’’’’’’’’’’’ъ’:’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’1‹’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’Q‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q‹’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’printer serverNPACKET multi user printer : (* Autor : Rudolf Ruland *)’N (* Stand : 24.03.86 *)’.put ("gib Druckerkanal : "); get (c);’’’’’’’’’ server channel (c);’’’’’’’’’ station only (FALSE) ;’’’’’’. spool duty ("Ausgabe mit dem Drucker");’’’’’ spool control task (myself);LET ack = 0 ,’’’’ fetch code = 11 ,’’’ param fetch code = 21 ,’’’ file type = 1003 ;’.INT VAR reply, old heap size, sender station;’>TEXT VAR file name, userid, password, sendername;’’’’’’’’’’’’’FILE VAR file ;’’’’’’’’’’’’’’’DATASPACE VAR ds, file ds;’’’’^BOUND STRUCT (TEXT file name, userid, password, sendername, INT station) VAR msg;’’’’’’’’’’’’’BOUND TEXT VAR error msg ;’’’’spool manager (PROC printer);’PROC printer : disable stop ;’’’’’’’’’’’’’’ command dialogue (FALSE);’’’. ds := nilspace; file ds := nilspace; ’’’’’’’ continue (server channel) ;’. check error ("Kanal belegt");’’’’’’’’’’’’’ old heap size := heap size ; execute print ;’’’’’’’’’’’ IF is error’’’’’’’’’’’’’’’ THEN put error;’’’’’’’’’ clear error;’’’’’’’. IF heap size > old heap size + 4’’’’’’’’’’. THEN collect heap garbage ;’’’’’’’’’’’’’. old heap size := heap size’’’’’’’’’ENDPROC printer ;’’’’’’’’’’’’’PROC execute print :’’’’’’’’’’ enable stop ;’’’’’’’’’’’’’’’. forget (file ds) ; file ds := nilspace ;’’’’. call (father, fetch code, file ds, reply) ;’> IF reply = ack CAND type (file ds) = file type’’’’’’’’’’’’’’ THEN get file params;’’’’ print file’’’’’’’’’’. get file params :’’’’’’’’’’’. forget (ds); ds := nilspace;’’’’’’’’’’’’’’> call (father, param fetch code, ds, reply);’’’’’’’’’’’’’’’ IF reply <> ack’’’’’’’’’’’> THEN error msg := ds; errorstop (error msg);’’’’’’’’’’’ ELSE msg := ds;’’’’’’’’. file name := msg. file name;’. userid := msg. userid;’’’’. password := msg. password;’’> sendername := msg. sender name;’’’’’’’’’’’’’’’. sender station := msg. station;’’’. print file :. file := sequential file (input, file ds);’ print (file,’’’’’’’’’’’’’’> PROC (INT CONST, INT VAR, INT VAR) open,’’’’’’’’’’’. PROC (INT CONST, INT CONST) close,’N PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute);’’’’’’’ENDPROC execute print ;’’’’’’’.PROC check error (TEXT CONST message) :’’’’’’’ IF is error’’’’’’’’’’’’’’’ THEN clear error;’’’’’’. rename myself (message);’’’’’’’’’’> IF is error THEN clear error; end (myself) FI;’’’’ pause (18000);’’’’ end (myself);’’’’’END PROC check error;’’’’’’’’’ENDPACKET multi user printer ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ port server’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’””a€ė’’¦¦££|’’’’||§>X’ž’’’’’’ port server’’’’’’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’a€’M’’’’’’’’’’’’’’’’’’’±€’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’9’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’с’’’’’’’’’’’’’’’’’’’’ń’-’’’’’’’’’’’’’’’’’’’!‚’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q‚’’’’’’’’’’’’’’’’’’’’‘‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‚’’’’’’’’’’’’’’’’’’’’т’’’’’’’’’’’’’’’’’’’’ń‚’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’1ƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Qƒ’’’’’’’’’’’’’’’’’’’’qƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘ƒ’’’’’’’’’’’’’’’’’’’’±ƒ’>’’’’’’’’’’’’’’’’’’’ńƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’„’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1„’V’’’’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’!…’’’’’’’’’’’’’’’’’’’’A…’<’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’”…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į…’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’†’$’’’’’’’’’’’’’’’’’’’1†’!’’’’’’’’’’’’’’’’’’’a†’%’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PER ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘†’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±†’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ enable stop;’’’’’’’’’ц’'’’’’’’’’’’’’’’’’’’’‡’*’’’’’’’’’’’’’’’’’’’1‡’’’’’’’’’’’’’’’’’’’’Q‡’/’’’’’’’’’’’’’’’’’’’‘‡’’’’’’’’’’’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‡’’’’’’’’’’’’’’’’’’’’ч’"’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’Qˆ’G’’’’’’’’’’’’’’’’’’’”ˆ’4’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ሒ’’’’’’’’’’’’’’’’’’’‰’ ’’’’’’’’’’’’’’’’’’’1‰’/’’’’’’’’’’’’’’’’’’’q‰’’’’’’’’’’’’’’’’’’’’‘‰’3’’’’’’’’’’’’’’’’’’’щ’’’’’’’’’’’’’’’’’’’’ń‰’)’’’’’’’’’’’’’’’’’’’!Š’*’’’’’’’’’’’’’’’’’’’QŠ’)’’’’’’’’’’’’’’’’’’’Š’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Š’’’’’’’’’’’’’’’’’’’’ъ’’’’’’’’’’’’’’’’’’’’ńŠ’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’1‹’’’’’’’’’’’’’’’’’’’’Q‹’’’’’’’’’’’’’’’’’’’’q‹’.’’’’’’’’’’’’’’’’’’’”‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į‹’L’’’’’’’’’’’’’’’’’’’1Œ’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’”Œ’’’’’’’’’’’’’’’’’’’’ĮŒ’’’’’’’’’’’’’’’’’’’’ጒ=’’’’’’’’’’’’’’’’’’’!’D’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’;’’’’’’’’’’’’’’’’’’’э’.’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’!Ž’7’’’’’’’’’’’’’’’’’’’aŽ’?’’’’’’’’’’’’’’’’’’’±Ž’’’’’’’’’’’’’’’’’’’’ю’ ’’’’’’’’’’’’’’’’’’’’@’’’’’’’’’’’’’’’’’’’Q’*’’’’’’’’’’’’’’’’’’’’+’’’’’’’’’’’’’’’’’’’±’.’’’’’’’’’’’’’’’’’’’į’/’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’ PER;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END OP //;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᐒ+’’’’’’’’’’’’’’’’’’’‘’*’’’’’’’’’’’’’’’’’’’A‘’-’’’’’’’’’’’’’’’’’’’q‘’J’’’’’’’’’’’’’’’’’’’Į‘’’’’’’’’’’’’’’’’’’’’į‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’’&’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’“’1’’’’’’’’’’’’’’’’’’’A“’’’’’’’’’’’’’’’’’’’’a“’;’’’’’’’’’’’’’’’’’’’”“’’’’’’’’’’’’’’’’’’’’Į“’0’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’!”’’’’’’’’’’’’’’’’’’’’A”’’’’’’’’’’’’’’’’’’’’a”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET port server: (* Autor : R. Ruland *)’N (* Stand : 21.03.86 *)’INT VAR port station;’’’’’’’’TEXT VAR port := "PRINTER";’’’>put ("gib Name des Zielspools : "); editget (port); line;’’’’’Nput ("gib Stationsnummer des Zielspools : "); get (port station);’’’’’’’’’’’’’server channel (15);’’’’’’’’’’.spool duty ("Verwalter fuer Task """ + port +’N """ auf Station " + text (port station));’LET max counter = 10 ,’’’ time slice = 300 ,’’ ack = 0 ,’’’’ fetch code = 11 ,’’’ param fetch code = 21 ,’’’ file save code = 22 , ’’ file type = 1003 ,’ begin char = ""0"",’ end char = ""1"";’INT VAR reply, old heap size;’>TEXT VAR file name, write pass, read pass, sendername, buffer;FILE VAR file;.DATASPACE VAR ds, file ds, send ds;’’’’’’’’’’’^BOUND STRUCT (TEXT file name, write pass, read pass, sendername, INT station) VAR msg;’’’’’’’’BOUND TEXT VAR error msg ;’’’’.spool manager (PROC save file);’’’’’’’’’’’’’’’PROC save file :’’’’’’’’’’’’’’ disable stop ;’’’’’’’’’’’’’’ command dialogue (FALSE);’’’> ds := nilspace; file ds := nilspace; send ds := nil space;’’ old heap size := heap size;’ execute save file;’’’’’’’’> IF is error THEN save error (error message) FI;’’’’’’’’’’’. IF heap size > old heap size + 4’’’’’’’’’’. THEN collect heap garbage ;’’’’’’’’’’’’’. old heap size := heap size’’’’’’’’’ENDPROC save file;’’’’’’’’’’’’PROC execute save file :’’’’’’.forget (file ds) ; file ds := nilspace;’’’’’’’.call (father, fetch code, file ds, reply);’’’’IF reply <> ack’’’’’’’’’’’’’’’> THEN error msg := ds; errorstop (error msg);’’’’’’’’’’’’’’’ ELSE save file ds’’’’’’’’’’. save file ds :’’’’’’’’’’’’’’. IF type (file ds) = file type ’’’’’’’’’’’’ THEN get file params;’’. insert file params;’’’’’’’’’’’’’’’N call station (port station, port, file save code, file ds);’’’’’’’> ELSE errorstop ("Datenraum hat falschen Typ")’’’’’’’’’’. get file params :’’’’’’’’’’’. forget (ds); ds := nilspace;’’’’’’’’’’’’’’> call (father, param fetch code, ds, reply);’’’’’’’’’’’’’’’ IF reply <> ack’’’’’’’’’’’> THEN error msg := ds; errorstop (error msg);’’’’’’’’’’’ ELSE msg := ds;’’’’’’’’. file name := msg. file name;’’’’’. write pass := msg. write pass;’’’’. read pass := msg. read pass;’’’’’. sendername := msg. sender name;’’’. insert file params :’’’’’’’’ buffer := "";’’’’’’’’’’’’’ in headline (filename);’’’ in headline (write pass);’ in headline (read pass);’’ in headline (sendername);’. file := sequential file (input, file ds) ; headline (file, buffer);’’END PROC execute save file;’’’NPROC call station (INT CONST order task station, TEXT CONST order task name,’’N INT CONST order code, DATASPACE VAR order ds) :’’’’’’’’’’’’ INT VAR counter := 0;’’’’ TASK VAR order task;’’’’’ disable stop;’’’’’’’’’’’’> REP order task := order task station // order task name;’N IF is error CAND pos (error message, "antwortet nicht") > 0’’’’’’’’’’ THEN clear error;’> counter := min (max counter, counter + 1);’’’. pause (counter * time slice); ELSE enable stop;’> forget (send ds); send ds := order ds;’’’’’’’N call (order task, order code, send ds, reply);’’’’’’’’’’’’’’’ disable stop;. IF reply = ack ’’’’’’’’’’’’’’N THEN forget (order ds); order ds := send ds;’’’’’’’’’’’’’’. forget (send ds);’’’’. LEAVE call station’’’. ELSE error msg := send ds;> errorstop (error msg);’’’’’’’’’’’’’’’ FI;’’’’’’’’’’END PROC call station;’’’’’’’’>TASK OP // (INT CONST station, TEXT CONST name) :’’’’’’’’’’’’’ enable stop;’’’’’’’’’’’’’’ station / name’’’’’’’’’’’’.PROC in headline (TEXT CONST information) :’’’. IF pos (information, begin char) <> 0 ’’’’. OR pos (information, end char) <> 0 ’N THEN errorstop ("Name darf nicht Code 0 oder Code 1 enthalten") FI;’’’’ buffer CAT begin char;’’’’ buffer CAT information;’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö buffer CAT end char;’’’’’’END PROC in headline;’’’’’’’’’.PROC save error (TEXT CONST message) :’’’’’’’’ clear error;’’’’’’’’’’’’’ file name CAT ".";’’’’’’’. file name CAT sender name;’’’’’’’’’’’’’’’ file name CAT ".ERROR";’’> file := sequential file (output, file name);’’’’’’’’’’’’’ putline (file, " ");’’’’’> putline (file, "Uebertragung nicht korrekt beendet ");’’’ putline (file, " ");’’’’’> put (file, "ERROR :"); put (file, message);’’’’’’’’’’’’’’ save (file name, public); clear error;’’’’’’’’’’’’’ forget(file name, quiet);END PROC save error;’’’’’’’’’’ENDPACKET port server;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’purge’’’’’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’шa€ė’’WWTTˆ’’’’ˆˆX>M’’’’’’purge’’’’’’’’’’’’’’’’’’’’’’’’W’’’’’’’’’’’’’’’’’’a€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’€’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ PROC purge :’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’р’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’?’’’’’’’’’’’’’’’’’’’q’.’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’с’6’’’’’’’’’’’’’’’’’’’‚’(’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’A‚’’’’’’’’’’’’’’’’’’’’q‚’?’’’’’’’’’’’’’’’’’’’Į‚’0’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aƒ’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ƒ’-’’’’’’’’’’’’’’’’’’’±ƒ’(’’’’’’’’’’’’’’’’’’’გ#’’’’’’’’’’’’’’’’’’’„’ ’’’’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’a„’(’’’’’’’’’’’’’’’’’’’’’ END REP .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’±„’-’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!…’’’’’’’’’’’’’’’’’’’’A…’#’’’’’’’’’’’’’’’’’’’q…’’’’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’±…’’’’’’’’’’’’’’’’’’’’х’’’’’’’’’’’’’’’’’’’’ń…’0’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ END REP ;’’’’’’’’’’’’ FALSE .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1†’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q†’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q†’’’’’’’’’’’’’’’’’’’’†’%’’’’’’’’’’’’’’’’’’’±†’’’’’’’’’’’’’’’’’’’’ц’’’’’’’’’’’’’’’’’’’’ń†’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’‡’%’’’’’’’’’’’’’’’’’’’’’ END REP .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A‡’’’’’’’’’’’’’’’’’’’’a‡’C’’’’’’’’’’’’’’’’’’’±‡’'’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’ᇒ’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’Aˆ’’’’’’’’’’’’’’’’’’’’aˆ’)’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ END REP ;’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’ FALSE .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘ˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’PACKET purge DEFINES purge :’’.TEXT VAR task name, record, file name, dummy ;FILE VAR permit ;’’’’’’’’’’’’’. IF exists ("permitted tasks")’’’’’’’’’’’’’’’ THEN access catalogue ;’’’N permit := sequential file (input, "permitted tasks") ;’’’’’’’’’’’’’’’. say (""10""13"TASKS :"10""10""13"") ;. IF myself < supervisor’’’’’’’’’’’’’’’> THEN purge son tasks (brother (supervisor))’’’’’’’’. ELSE purge son tasks (myself)’’’’’’. IF exists ("permitted files")’’’’’’’’’’’’’’’N THEN permit := sequential file (input, "permitted files") ;’’’’’’’’’’’’’’’> say (""10""13"DATEIEN :"10""10""13"") ;’’’’’’’’’’’’’’ purge files’’’’’’’’’’ENDPROC purge ;’’’’’’’’’’’’’’’>PROC purge son tasks (TASK CONST father task) :’’’’’’’’’’’’’’’. TASK VAR actual task := son (father task) ;’. WHILE NOT is niltask (actual task) REP’’’’’’. purge son tasks (actual task) ;’’’’’’’’’’’. IF NOT actual task permitted’’’’’’’’’’’’’’ THEN erase actual task’’. actual task := brother (actual task)’’’’’’erase actual task :’’’’’’’’’’’. say ("""") ; say (task name) ; say ("""") ;’ IF yes (" loeschen")’’’’’’’’ THEN end (actual task)’’’’actual task permitted :’’’’’’’. task name := name (actual task) ;’’’’’’’’’’’ reset (permit) ;’’’’’’’’’’’’ WHILE NOT eof (permit) REP’’ getline (permit, record) ; IF task name = record’’’’’> THEN LEAVE actual task permitted WITH TRUE’’’’’’’’’’’’’’ENDPROC purge son tasks ;’’’’’PROC purge files :’’’’’’’’’’’’ begin list ;. get list entry (file name, dummy) ;’’’’’’’’’ WHILE file name <> "" REP’’’ IF NOT file permitted’’’’’ THEN forget (file name)’. get list entry (file name, dummy)’’’’’’’’’file permitted :’’’’’’’’’’’’’’N IF file name = "permitted tasks" OR file name = "permitted files"’’’’’’’’’’’. THEN LEAVE file permitted WITH TRUE’’’’’’’ reset (permit) ;’’’’’’’’’’’’ WHILE NOT eof (permit) REP’’ getline (permit, record) ; IF file name = record’’’’’. THEN LEAVE file permitted WITH TRUE’’’’’ENDPROC purge files ;’’’’’’’’’ENDPACKET purge ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’crypt’’’’’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööaa€ė’’ŒŒ‰‰”’’’’””>M’’’’’’crypt’’’’’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’a€’D’’’’’’’’’’’’’’’’’’’±€’D’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ crypt ,’’’’’’’’’’’’’’ decrypt :’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’ၒ’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’!‚’’’’’’’’’’’’’’’’’’’’A‚’’’’’’’’’’’’’’’’’’’’a‚’’’’’’’’’’’’’’’’’’’’’’ PER ;’’’’’’’’’’’’’’q‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ crypt char :’’’’’’’’’‘‚’A’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’!ƒ’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’у’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’”„’’’’’’’’’’’’’’’’’’’’’’ PER ;’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ф’’’’’’’’’’’’’’’’’’’’į„’A’’’’’’’’’’’’’’’’’’’1…’’’’’’’’’’’’’’’’’’’’Q…’’’’’’’’’’’’’’’’’’’’q…’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’х’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!†’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q†’’’’’’’’’’’’’’’’’’’’q†’*’’’’’’’’’’’’’’’’’’’”†’C’’’’’’’’’’’’’’’’’’’’’ PER ;’’’’’’’’’’’’’’ń†’"’’’’’’’’’’’’’’’’’’’!‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‡’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘‡’.’’’’’’’’’’’’’’’’’’’Į‡’’’’’’’’’’’’’’’’’’’’ᇒ’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’Aˆ’2’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ˆ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ሒ’’’’’’’’’’’’’’’’’’’‰’"’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’1‰’’’’’’’’’’’’’’’’’’’’a‰’%’’’’’’’’’’’’’’’’’’’‘‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’щ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‰’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’1Š’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ENDPROC eof ;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŠ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŠ’’’’’’’’’’’’’’’’’’’’Š’"’’’’’’’’’’’’’’’’’’’±Š’’’’’’’’’’’’’’’’’’’’ъ’’’’’’’’’’’’’’’’’’’’ńŠ’ ’’’’’’’’’’’’’’’’’’’!‹’’’’’’’’’’’’’’’’’’’’A‹’"’’’’’’’’’’’’’’’’’’’q‹’’’’’’’’’’’’’’’’’’’’‘‹’'’’’’’’’’’’’’’’’’’’’Į‹’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Œ’’’’’’’’’’’’’’’’’’’’AŒ’$’’’’’’’’’’’’’’’’’’’qŒ’’’’’’’’’’’’’’’’’’’’‘Œ’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’±Œ’’’’’’’’’’’’’’’’’’’’ь’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’N(* ------------------- VERSION 2 vom 21.04.86 ------------------- *)’’’’’’’’’’NPACKET cryptograf DEFINES (* Autor: J.Liedtke *)’’’’’’’’’’.TEXT VAR char , in buffer, out buffer ;’’’’’’’INT VAR in pos , key index ;’’DATASPACE VAR scratch space ;’FILE VAR in, out;’’’’’’’’’’’’’.PROC crypt (TEXT CONST file, key) :’’’’’’’’’’’ open (file) ;’’’’’’’’’’’’’’’ initialize crypt (key) ;’’’’ WHILE NOT eof REP’’’’’’’’’’’ read char ;’’’’’’’’’’’’’’’ crypt char ;’’’’’’’’’’’’’’ write char close (file) .’’’’’’’’’’’’’’N char := code (( character + random char + key char ) MOD 250) ;’’’’’’’’’’’’’ IF key index = LENGTH key’’’ THEN key index := 1’’’’’’’ ELSE key index INCR 1’’’’’character : code (char) .’’’random char : random (0,250).’.key char : code (key SUB key index) .’’’’’’ENDPROC crypt ;’’’’’’’’’’’’’’’.PROC decrypt (TEXT CONST file, key) :’’’’’’’’’ open (file) ;’’’’’’’’’’’’’’’ initialize crypt (key) ;’’’’ WHILE NOT eof REP’’’’’’’’’’’ read char ;’’’’’’’’’’’’’’’ decrypt char ;’’’’’’’’’’’’ write char close (file) .’’’’’’’’’’’’’’decrypt char :N char := code (( character - random char - key char ) MOD 250) ;’’’’’’’’’’’’’ IF key index = LENGTH key’’’ THEN key index := 1’’’’’’’ ELSE key index INCR 1’’’’’character : code (char) .’’’random char : random (0,250) ..key char : code (key SUB key index) .’’’’’’ENDPROC decrypt ;’’’’’’’’’’’’’.PROC initialize crypt (TEXT CONST key) :’’’’’’ INT VAR random key := 0 ;’’’. FOR key index FROM 1 UPTO LENGTH key REP’’’’N random key := (random key + code (key SUB key index)) MOD 32000’’’’’’’’’’’. initialize random (random key) ;’’’’’’’’’’’’ key index := 1’’’’’’’’’’’’’’ENDPROC initialize crypt ;’’’’.PROC open (TEXT CONST source file) :’’’’’’’’’’. in := sequential file (input, source file) ; getline (in, in buffer) ;’’’ in pos := 1 ;’’’’’’’’’’’’’’’ forget (scratch space) ; ’’’ scratch space := nilspace ; > out := sequential file (output, scratch space) ;’’’’’’’’’’’’ out buffer := "" .’’’’’’’’’’ENDPROC open ;.PROC close (TEXT CONST source file) :’’’’’’’’’ IF out buffer <> ""’’’’’’’’’. THEN putline (out, out buffer)’’’’’’’’’’’’. forget (source file, quiet) ;’’’’’’’’’’’’’’’. copy (scratch space, source file) ;’’’’’’’’’ forget (scratch space) .’’’’ENDPROC close ;’’’’’’’’’’’’’’’BOOL PROC eof :’’’’’’’’’’’’’’’ IF in pos > LENGTH in buffer THEN eof (in)’’’’’’’’’’’’’ ELSE FALSEPROC read char :’’’’’’’’’’’’’’ IF in pos > 250’’’’’’’’’’’’’. THEN getline (in, in buffer) ;’’’’’’’’’’’’ in pos := 1 ;’’’’’’’’ read char’’’’’’’’’’’’. ELIF in pos > LENGTH in buffer’’’’’’’’’’’’’’ THEN in pos := 1 ;’’’’’’’’. getline (in, in buffer) ;’’’’’’’’’’’’ char := ""13""’’’’’’’. ELSE char := in buffer SUB in pos ;’’’’’’’ in pos INCR 1’’’’’’’’ENDPROC read char ;’’’’’’’’’’’PROC write char :’’’’’’’’’’’’’ IF char = ""13""’’’’’’’’’’’’. THEN putline (out, out buffer) ;’’’’’’’’’’ out buffer := ""’’’’’ ELSE out buffer CAT char’’ IF LENGTH out buffer = 250’’. THEN putline (out, out buffer) ;’’’’’’’’’’ out buffer := ""’’’’’ENDPROC write char ;’’’’’’’’’’ENDPACKET cryptograf ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ free channel’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A¬a€ė’’°°­­ ’’’’  ±>M’ž’’’’’’ free channel’’’’’’’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’a€’H’’’’’’’’’’’’’’’’’’’±€’H’’’’’’’’’’’’’’’’’’’’’ FCHANNEL ,’’’’’’’’’’’ := ,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ open ,’’’’’’’’’’’’’’’ close ,’’’’’’’’’’’’’’ out ,’’’’’’’’’’’’’’’’ in ,’’’’’’’’’’’’’’’’’ dialogue ,’’’’’’’’’’’ save ,’’’’’’’’’’’’’’’ fetch :’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’!‚’’’’’’’’’’’’’’’’’’’’Q‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±‚’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į‚’F’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ƒ’&’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’Įƒ’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’„’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q„’ ’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’”„’*’’’’’’’’’’’’’’’’’’’’’ open (dest)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ENDOP := ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ф’6’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’…’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A…’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a…’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±…’ ’’’’’’’’’’’’’’’’’’’į…’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’!†’'’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q†’’’’’’’’’’’’’’’’’’’’q†’’’’’’’’’’’’’’’’’’’’‘†’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±†’’’’’’’’’’’’’’’’’’’’ц’6’’’’’’’’’’’’’’’’’’’‡’ ’’’’’’’’’’’’’’’’’’’A‡’7’’’’’’’’’’’’’’’’’’’‡’;’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‡’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ч’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’Aˆ’6’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ˆ’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ш’’’’’’’’’’’’’’’’’’’’ńˆ’’’’’’’’’’’’’’’’’’’’‰’=’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q‰’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q‰’5’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±‰’’’’’’’’’’’’’’’’’’’’щ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń‰’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’!Š’E’’’’’’’’’’’’’’’’’’’qŠ’’’’’’’’’’’’’’’’’’’’‘Š’!’’’’’’’’’’’’’’’’’’’ĮŠ’D’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’!‹’’’’’’’’’’’’’’’’’’’’A‹’(’’’’’’’’’’’’’’’’’’’q‹’’’’’’’’’’’’’’’’’’’’‘‹’6’’’’’’’’’’’’’’’’’’’ы’(’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’!Œ’-’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ENDPROC out ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QŒ’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Œ’’’’’’’’’’’’’’’’’’’’±Œ’$’’’’’’’’’’’’’’’’’’’ጒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ENDPROC in ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’a’<’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’)’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ prepare ds :’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’1Ž’$’’’’’’’’’’’’’’’’’’’aŽ’.’’’’’’’’’’’’’’’’’’’‘Ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮŽ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ю’H’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’F’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’ ’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’ PER’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’H’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q‘’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”‘’’’’’’’’’’’’’’’’’’’’±‘’>’’’’’’’’’’’’’’’’’’’ń‘’’’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’a’’$’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ prepare ds :’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’!“’’’’’’’’’’’’’’’’’’’’A“’’’’’’’’’’’’’’’’’’’’a“’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”“’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į“’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’!”’’’’’’’’’’’’’’’’’’’’A”’’’’’’’’’’’’’’’’’’’’a”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’'’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’±”’"’’’’’’’’’’’’’’’’’’’į”’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’!•’'’’’’’’’’’’’’’’’’’’’Q•’’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’”•’’’’’’’’’’’’’’’’’’’’±•’>’’’’’’’’’’’’’’’’’’’ń•’’’’’’’’’’’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’1–’7’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q–’’’’’’’’’’’’’’’’’’’’‘–’’’’’’’’’’’’’’’’’’’’±–’#’’’’’’’’’’’’’’’’’’’į–’(’’’’’’’’’’’’’’’’’’’—’’’’’’’’’’’’’’’’’’’’1—’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q—’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q—’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö”—’’’’’’’’’’’’’’’’’’’’’’ break ;’’’’’’’’’’’’Į—’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’į—’&’’’’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’A˜’"’’’’’’’’’’’’’’’’’’’q˜’’’’’’’’’’’’’’’’’’’’‘˜’’’’’’’’’’’’’’’’’’’’±˜’’’’’’’’’’’’’’’’’’’’ј’"’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ use channel :’’’’’’’’™’.’’’’’’’’’’’’’’’’’’’1™’<’’’’’’’’’’’’’’’’’’’q™’9’’’’’’’’’’’’’’’’’’’±™’=’’’’’’’’’’’’’’’’’’’ń™’:’’’’’’’’’’’’’’’’’’’1š’<’’’’’’’’’’’’’’’’’’’qš’&’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’”š’’’’’’’’’’’’’’’’’’’’’’ IF is error’’’’’’’’Įš’’’’’’’’’’’’’’’’’’’’ᚒ’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ dialogue :’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’!›’"’’’’’’’’’’’’’’’’’’’Q›’'’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’”›’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’Į›’’’’’’’’’’’’’’’’’’’’į›’’’’’’’’’’’’’’’’’’’’œ’B’’’’’’’’’’’’’’’’’’’Qœ’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’”œ’’’’’’’’’’’’’’’’’’’’Įœ’’’’’’’’’’’’’’’’’’’’ќ’’’’’’’’’’’’’’’’’’’’ńœ’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’ msg := ds ;’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’ѝ’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’ž’+’’’’’’’’’’’’’’’’’’’Až’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’”ž’’’’’’’’’’’’’’’’’’’’Įž’’’’’’’’’’’’’’’’’’’’įž’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’!Ÿ’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AŸ’’’’’’’’’’’’’’’’’’’’aŸ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’”Ÿ’’’’’’’’’’’’’’’’’’’’ĮŸ’’’’’’’’’’’’’’’’’’’’្"’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1 ’’’’’’’’’’’’’’’’’’’’Q ’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ignore open :’’’’’’’’ ’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’± ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ń ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń ’’’’’’’’’’’’’’’’’’’’”’&’’’’’’’’’’’’’’’’’’’A”’’’’’’’’’’’’’’’’’’’’a”’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’q”’’’’’’’’’’’’’’’’’’’’‘”’’’’’’’’’’’’’’’’’’’’±”’’’’’’’’’’’’’’’’’’’’Ń”’’’’’’’’’’’’’’’’’’’’ń”’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1¢’’’’’’’’’’’’’’’’’’’’’’ TEXT CONST’’’’’’’’’Q¢’$’’’’’’’’’’’’’’’’’’’¢’+’’’’’’’’’’’’’’’’’’’±¢’+’’’’’’’’’’’’’’’’’’’ᢒ+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ end of line :’’’’’’’’£’’’’’’’’’’’’’’’’’’’’1£’’’’’’’’’’’’’’’’’’’’Q£’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q£’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’‘£’’’’’’’’’’’’’’’’’’’’±£’’’’’’’’’’’’’’’’’’’’Ń£’ ’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’¤’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1¤’’’’’’’’’’’’’’’’’’’’Q¤’’’’’’’’’’’’’’’’’’’’a¤’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ skip chars :’’’’’’’’’¤’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±¤’’’’’’’’’’’’’’’’’’’’Ѥ’’’’’’’’’’’’’’’’’’’’ń¤’’’’’’’’’’’’’’’’’’’’„’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’”„’’’’’’’’’’’’’’’’’’’’’’ open file ;’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’!¦’7’’’’’’’’’’’’’’’’’’’a¦’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’”¦’’’’’’’’’’’’’’’’’’’’Į¦’ ’’’’’’’’’’’’’’’’’’’ń¦’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1§’’’’’’’’’’’’’’’’’’’’Q§’&’’’’’’’’’’’’’’’’’’’’’ TEXT CONST’’’’’’’’’§’+’’’’’’’’’’’’’’’’’’’±§’+’’’’’’’’’’’’’’’’’’’į§’+’’’’’’’’’’’’’’’’’’’Ø’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ open file :’’’’’’’’’’AØ’’’’’’’’’’’’’’’’’’’’aØ’’’’’’’’’’’’’’’’’’’’Ø’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±Ø’’’’’’’’’’’’’’’’’’’’ĮØ’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’ᨒ’’’’’’’’’’’’’’’’’’’©’’’’’’’’’’’’’’’’’’’’!©’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’A©’:’’’’’’’’’’’’’’’’’’’©’1’’’’’’’’’’’’’’’’’’’Į©’*’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’ń©’@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AŖ’’’’’’’’’’’’’’’’’’’’aŖ’’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’‘Ŗ’’’’’’’’’’’’’’’’’’’’±Ŗ’’’’’’’’’’’’’’’’’’’’ŃŖ’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ expand tabs:’’’’’’’’’ńŖ’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’page:’’’’’’’’’’’’’’’’!«’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A«’’’’’’’’’’’’’’’’’’’’Q«’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”«’’’’’’’’’’’’’’’’’’’’Į«’=’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!¬’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET free channel DEFINES (* Autor: J.Liedtke *)’’’’’’N (* Stand: 10.06.86 *)’’’’’’ free channel ,’’’’’’’’’’’’’’LET ack = 0 ,’’ nak = 1 ,’’ error nak = 2 ,’’ empty message code = 256 , long message code = 257 ,. file send code = 1024 ,’’’’’’’’’’’’’’’. file receive code = 2048 ,’’’’’’’’’’’’’’’. open code = 1000 ,’’’’’’’’’’’’’’’. close code = 1001 ,’’’’’’’’’’’’’’’. file type = 1003 ;’’’’’’’’’’’’’’’.INT CONST task not existing := - 1 ;’’’’’’’’’’NTYPE FCHANNEL = STRUCT (TASK server, TEXT input buffer, server name) ;’’’’’’’’.INT VAR message code , response code ;’’’’’’’’TASK VAR partner ;’’’’’’’’’’’’DATASPACE VAR ds ;’’’’’’’’’’’’BOUND TEXT VAR msg ;’’’’’’’’’’.TEXT VAR response, char, esc char , record ;’’FILE VAR file ;’’’’’’’’’’’’’’’>OP := (FCHANNEL VAR dest, FCHANNEL CONST source) :’’’’’’’’’’’’. dest.server := source.server ;’’’’’’’’’’’’’’ dest.input buffer := "" ;’’’. dest.server name := source.server name ;’’’’>FCHANNEL PROC free channel (TEXT CONST channel name) :’’’’’’’’. FCHANNEL:(niltask,"", channel name)’’’’’’’’’ENDPROC free channel ;’’’’’’’’.PROC open (FCHANNEL VAR channel) :’’’’’’’’’’’’ INT VAR receipt ;’’’’’’’’’’’. initialize message dataspace ;’’’’’’’’’’’’’’ send open code ;’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö IF receipt <> ack’’’’’’’’’’’. THEN errorstop ("channel not free")’’’’’’’initialize message dataspace : forget (ds) ;’’’’’’’’’’’’’’’ ds := nilspace .’’’’’’’’’’’’send open code :’’’’’’’’’’’’’’> ping pong (channel.server, open code, ds, receipt) ;’’’’’’’’. IF receipt = task not existing’’’’’’’’’’’’’’> THEN channel.server := task (channel.server name) ;’’’’’’’> ping pong (channel.server, open code, ds, receipt)’’’ENDPROC open ;.PROC close (FCHANNEL VAR channel) :’’’’’’’’’’’ forget (ds) ;’’’’’’’’’’’’’’’ ds := nilspace ;’’’’’’’’’’’’> call (channel.server, close code, ds, response code)’’’’’’’’ENDPROC close ;’’’’’’’’’’’’’’’.PROC close (TEXT CONST channel server) :’’’’’’ forget (ds) ;’’’’’’’’’’’’’’’ ds := nilspace ;’’’’’’’’’’’’> call (task (channel server), close code, ds, response code)’ENDPROC close ;’’’’’’’’’’’’’’’>PROC out (FCHANNEL VAR channel, TEXT CONST message) :’’’’’’’’’ send message ;’’’’’’’’’’’’’’ get response .’’’’’’’’’’’’’’send message : IF message = ""’’’’’’’’’’’’’N THEN call (channel.server, empty message code, ds, response code)’’’’’’’’’ ELSE msg := ds ;’’’’’’’’’’. CONCR (msg) := message ;’’’’’’’’’’’’’N call (channel.server, long message code, ds, response code)’’’’’’’’’’get response : IF response code < 0’’’’’’’’. THEN errorstop ("channel not ready")’’’’’’ ELIF response code < 256’’’’> THEN channel.input buffer CAT code (response code)’’’’’’’’. ELIF response code = long message code’’’’’’ THEN msg := ds ;’’’’’’’’’’. channel.input buffer CAT CONCR (msg)’>PROC in (FCHANNEL VAR channel, TEXT VAR response) :’’’’’’’’’’’ out (channel, "") ;’’’’’’’’’. response := channel.input buffer ;’’’’’’’’’’ channel.input buffer := ""’’NPROC save (FCHANNEL VAR channel, TEXT CONST file name, control chars) :’’’’’’’ prepare ds ;> call (channel.server, file send code, ds, response code) ;’’ IF response code = error nak. THEN BOUND TEXT VAR error msg := ds ;’’’’’ errorstop (error msg) forget (ds) ;’’’’’’’’’’’’’’’. ds := old (file name, file type) ;’’’’’’’’’’. FILE VAR f := sequential file (modify, ds) ;. headline (f, control chars) .’’’’’’’’’’’’’’’ENDPROC save ;NPROC fetch (FCHANNEL VAR channel, TEXT CONST file name, control chars) :’’’’’’N IF NOT exists (file name) COR yes ("""" + file name + """ loeschen")’’’’’’’’ THEN fetch first part ;’’’. WHILE more to fetch REP’’’’’’’’’’’’’’ fetch next part’’’’fetch first part :’’’’’’’’’’’’ INT VAR part := 0 ;’’’’’’’’’> receive file (channel, file name, control chars) .’’’’’’’’’’fetch next part :’’’’’’’’’’’’’ part INCR 1 ;’’’’’’’’’’’’’’’N receive file (channel, file name + "." + text (part), control chars) .’’’’’’>more to fetch : response code = file receive code .’’’’’’’’’’ENDPROC fetch ;’’’’’’’’’’’’’’’NPROC receive file (FCHANNEL VAR channel,TEXT CONST file name, control chars):’ prepare ds ;> call (channel.server, file receive code, ds, response code); IF response code = error nak. THEN BOUND TEXT VAR error msg := ds ;’’’’’ errorstop (error msg). ELSE forget (file name, quiet) ;’’’’’’’’’’. copy (ds, file name) ;’’’’’’’’’’’’’’’ forget (ds) ;’’’’’’’’ ds := nilspace ;’’’’’ forget (ds) ;’’’’’’’’’’’’’’’ ds := nilspace ;’’’’’’’’’’’’ BOUND TEXT VAR ctl := ds ;’’ ctl := control chars .’’’’’’ENDPROC receive file ;’’’’’’’’>PROC dialogue (FCHANNEL CONST channel, TEXT CONST esc) :’’’’’’ forget (ds) ;’’’’’’’’’’’’’’’ ds := nilspace ;’’’’’’’’’’’’ partner := channel.server ;’ esc char := esc ;’’’’’’’’’’’ enable stop ;’’’’’’’’’’’’’’’. response code := empty message code ;’’’’’’’. get and send message charety ;’’’’’’’’’’’’ out response option’’’’’’’get and send message charety :. IF response code = empty message code’’’’’’’. THEN char := incharety (10)’’’’’’’’’’’’’’’ ELSE char := incharety’’’’ IF char = ""> THEN call (partner, empty message code, ds, response code) ELIF char = esc char’’’’’’’’ THEN LEAVE dialogue’’’’’’’> ELSE call (partner, code (char), ds, response code)’’’’’’’out response option :’’’’’’’’’ IF response code < 256’’’’’’. THEN out (code (response code))’’’’’’’’’’’. ELIF response code = long message code’’’’’’ THEN msg := ds ;’’’’’’’’’’ out (CONCR (msg))’’’’ENDPROC dialogue ;’’’’’’’’’’’’.PROC free channel (INT CONST nr) :’’’’’’’’’’’’ INT CONST my channel := nr ; disable stop ;’’’’’’’’’’’’’’. wait (ds, message code, partner) ;’’’’’’’’. IF message code = open code’’’’’’’’’’’’’’’. THEN connect to my channel ;’’’’’’’’’’’’ use channel ;’’’’’’ break (quiet)’’’’’’ ELIF message code >= 0’’’’. THEN send (partner, nak, ds)’’’’’’’’’’’’. ping pong (partner, ack, ds, message code) ;> WHILE message code <> close code AND message code >= 0 REP’’> IF message code <= long message code THEN dialogue’’’’’> ELIF message code = file receive code THEN receive file’> ELIF message code = file send code THEN send file’’’’> ELIF message code = open code THEN ignore open’’. ELSE errorstop ("falsche Sendung")’’’’’’’’ UNTIL is error PER ;’’’’’’’’ THEN send error message’’’ ELSE send handshake ack’’’ IF message code < 256’’’’’’’. THEN out (code (message code))’’’’’’’’’’’’. ELIF message code = long message code’’’’’’’ THEN msg := ds ;’’’’’’’’’’ out (CONCR (msg))’’’’ response := incharety (1) ;’ IF response = ""’’’’’’’’’’’’N THEN ping pong (partner, empty message code, ds, message code)’’’’’’’’’’’’. ELSE short or long response’’’’’’’’’’’’’’’short or long response :’’’’’’ char := incharety ;’’’’’’’’’ IF char = "" THEN short response’’’’’’’ ELSE long response’’’’’’’’short response :’’’’’’’’’’’’’’> ping pong (partner, code (response), ds, message code) .’’’’long response :’’’’’’’’’’’’’’’ response CAT char ;’’’’’’’’’ msg := response ;’’’’’’’’’’’ cat input (msg, char) ;’’’ msg CAT char’’’’’’’’’’’’’’. UNTIL char = "" OR LENGTH msg > 500 PER ;’’’> ping pong (partner, long message code, ds, message code) .’’connect to my channel :’’’’’’’ continue (my channel) ;’’’’’ WHILE is error REP’’’’’’’’’’ clear error ;’’’’’’’’’’’’’ pause (100) ;’’’’’’’’’’’’’ continue (my channel)’’’’’send handshake ack :’’’’’’’’’’ send (partner, ack, ds) .’’’send error message :’’’’’’’’’’ forget (ds) ;’’’’’’’’’’’’’’’ ds := nilspace ;’’’’’’’’’’’’. BOUND TEXT VAR error msg := ds ;’’’’’’’’’’’’ error msg := error message ; clear error ;’’’’’’’’’’’’’’’. send (partner, error nak, ds) .’’’’’’’’’’’’’. ping pong (partner, ack, ds, message code) .ENDPROC free channel ;’’’’’’’’PROC send file :’’’’’’’’’’’’’’ enable stop ;’’’’’’’’’’’’’’’. file := sequential file (input,ds) ;’’’’’’’’ get control chars ;’’’’’’’’’ skip chars ; getline (file, record) ;’’ out (record) ;’’’’’’’’’’’’ end of line’’’’’’’’’’’’’’’ UNTIL eof (file) PER ;’’’’’’ end of transmission ;’’’’’’’ send ack reply .’’’’’’’’’’’’get control chars :’’’’’’’’’’’. control chars := headline (file) ,’’’’’’’’’’. end of file char := control chars SUB 1 ,’’’. end of line char := control chars SUB 2 ,’’’. handshake char := control chars SUB 3 .’’’ out (end of line char) ;’’’’ IF handshake char <> ""’’’’’ THEN wait for handshake’’’wait for handshake :’’’’’’’’’’ char := incharety (300) ;’ IF char = ""’’’’’’’’’’’’’’. THEN errorstop ("timeout")’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. UNTIL char = handshake char PER .’’’’’’’’’’’end of transmission :’’’’’’’’’ skip chars ; out (end of file char) .’’’’. WHILE incharety (3) <> "" REP PER .’’’’’’’’’send ack reply :’’’’’’’’’’’’’’ forget (ds) ;’’’’’’’’’’’’’’’ ds := nilspace ;’’’’’’’’’’’’. ping pong (partner, ack, ds, message code) .ENDPROC send file ;’’’’’’’’’’’PROC receive file :’’’’’’’’’’’ enable stop ;’’’’’’’’’’’’’’’ get control chars ;’’’’’’’’’ INT VAR line no := 0 ;’’’’’’ receive line ;’’’’’’’’’’’’ IF eof received’’’’’’’’’’’> THEN ping pong (partner, ack, ds, message code) ;’’’’’’’ LEAVE receive file’ putline (file, record) ;’’ line no INCR 1’’’’’’’’’’’’. UNTIL near file overflow PER ;’’’’’’’’’’’’’’> ping pong (partner, file receive code, ds, message code) .’’get control chars :’’’’’’’’’’’. BOUND TEXT VAR control chars := ds ;’’’’’’’’. end of file char := control chars SUB 1 ,’’’. end of line char := control chars SUB 2 ,’’’. handshake char := control chars SUB 3 ,’’’. handshake prompt := control chars SUB 4 .’’’ forget (ds) ;’’’’’’’’’’’’’’’ ds := nilspace ;’’’’’’’’’’’’. file := sequential file (output, ds) .’’’’’’receive line : record := "" ;’’’’’’’’’’’’’’ cat input (record, char) ; IF char = ""’’’’’’’’’’’’’’ THEN wait for char’’’’’’> IF char = handshake prompt THEN out (handshake char)’’’’> ELIF char = ""9"" THEN expand tabs’’’’’’’’’’’’’. ELIF char = ""12"" THEN page’’’’N UNTIL char = end of line char OR char = end of file char PER .’’’’’’’’’’’’’’wait for char :’’’’’’’’’’’’’’’ char := incharety (300) ;’’’ IF char = "" THEN errorstop ("timeout") ELIF char >= ""32""’’’’’’’’’ THEN record CAT char’’’’’’. record CAT (8-(LENGTH record MOD 8)) * " " . record := "#page# " .’’’’’’’eof received :N char = end of file char OR (record SUB LENGTH record ) = end of file char .’near file overflow :’’’’’’’’’’> line no > 3999 OR (line no > 3800 AND record = "#page# ") .’ENDPROC receive file ;’’’’’’’’ENDPACKET free channel ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ scheduler’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±a€ė’’¦¦££¬’’’’¬¬§>M’’’’’’ scheduler’’’’’’’’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a€’J’’’’’’’’’’’’’’’’’’’±€’J’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’@’’’’’’’’’’’’’’’’’’’‘’D’’’’’’’’’’’’’’’’’’’ၒF’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1‚’’’’’’’’’’’’’’’’’’’’Q‚’&’’’’’’’’’’’’’’’’’’’‚’"’’’’’’’’’’’’’’’’’’’±‚’'’’’’’’’’’’’’’’’’’’’į‚’$’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’1ƒ’7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qƒ’’’’’’’’’’’’’’’’’’’’‘ƒ’’’’’’’’’’’’’’’’’’’’±ƒ’"’’’’’’’’’’’’’’’’’’’გ’’’’’’’’’’’’’’’’’’’„’"’’’’’’’’’’’’’’’’’’’1„’’’’’’’’’’’’’’’’’’’’Q„’"’’’’’’’’’’’’’’’’’’’„’"’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ф’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’…’C’’’’’’’’’’’’’’’’’’’Q…’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”…’’’’’’’’’’’’’’’’’’’’’’ log :’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į…’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń…’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’1†’&’’’’’’’’’’’’’’’’’’’a†’&’’’’’’’’’’’’’’’’’’’‘†’#’’’’’’’’’’’’’’’’’’’Į†’#’’’’’’’’’’’’’’’’’’’ń†’%’’’’’’’’’’’’’’’’’’’!‡’’’’’’’’’’’’’’’’’’’’A‡’’’’’’’’’’’’’’’’’’’’a‡’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”‡’’’’’’’’’’’’’’’’’’’’Į‡’’’’’’’’’’’’’’’’’’’’ᇒ’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’Aˆ’’’’’’’’’’’’’’’’’’’’aˆ’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įˆ’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‰’(’’’’’’’’’’’’’’’’’’’1‰’$’’’’’’’’’’’’’’’’’’’a‰’’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’”‰’’’’’’’’’’’’’’’’’’’’Į‰’’’’’’’’’’’’’’’’’’’’ቒ"’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Š’&’’’’’’’’’’’’’’’’’’’AŠ’8’’’’’’’’’’’’’’’’’’’Š’(’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ save values :’’’’’’’’±Š’’’’’’’’’’’’’’’’’’’’ъ’ ’’’’’’’’’’’’’’’’’’’‹’ ’’’’’’’’’’’’’’’’’’’1‹’’’’’’’’’’’’’’’’’’’’Q‹’’’’’’’’’’’’’’’’’’’’q‹’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”‹’’’’’’’’’’’’’’’’’’’’Į‹’’’’’’’’’’’’’’’’’’’’į‹’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’!Œ’’’’’’’’’’’’’’’’’’’’AŒ’’’’’’’’’’’’’’’’’’’’aŒ’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’±Œ’’’’’’’’’’’’’’’’’’’’ь’’’’’’’’’’’’’’’’’’’’ńŒ’(’’’’’’’’’’’’’’’’’’’!’)’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’(’’’’’’’’’’’’’’’’’’’”’(’’’’’’’’’’’’’’’’’’’э’"’’’’’’’’’’’’’’’’’’’Ž’"’’’’’’’’’’’’’’’’’’’1Ž’&’’’’’’’’’’’’’’’’’’’aŽ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”Ž’I’’’’’’’’’’’’’’’’’’’ńŽ’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A’*’’’’’’’’’’’’’’’’’’’q’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ENDPROC log ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±’K’’’’’’’’’’’’’’’’’’’‘’K’’’’’’’’’’’’’’’’’’’Q‘’’’’’’’’’’’’’’’’’’’’q‘’ ’’’’’’’’’’’’’’’’’’’”‘’#’’’’’’’’’’’’’’’’’’’ё’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±’’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į’’ ’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’1“’&’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’a“’ ’’’’’’’’’’’’’’’’’’’‘“’’’’’’’’’’’’’’’’’’’’±“’’’’’’’’’’’’’’’’’’’’ѓ’)’’’’’’’’’’’’’’’’’’’”’3’’’’’’’’’’’’’’’’’’’A”’*’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’q”’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘”’’’’’’’’’’’’’’’’’’’’±”’’’’’’’’’’’’’’’’’’’’є’$’’’’’’’’’’’’’’’’’’’•’"’’’’’’’’’’’’’’’’’’’1•’-’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’a•’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’•’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±•’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń•’’’’’’’’’’’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’1–’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a–’’’’’’’’’’’’’’’’’’’’’’ INT VAR j ;’’’’’’’’‘–’"’’’’’’’’’’’’’’’’’’’Į–’'’’’’’’’’’’’’’’’’’’’ń–’’’’’’’’’’’’’’’’’’’’—’0’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q—’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q—’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±—’’’’’’’’’’’’’’’’’’’’ї’’’’’’’’’’’’’’’’’’’’ń—’’’’’’’’’’’’’’’’’’’’˜’!’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A˜’’’’’’’’’’’’’’’’’’’’a˜’’’’’’’’’’’’’’’’’’’’˜’#’’’’’’’’’’’’’’’’’’’±˜’"’’’’’’’’’’’’’’’’’’’ᘒ!’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1™’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a™’’’’’’’’’’’’’’’’’’’’’’ INT VAR i ;’’’’’’’’q™’.’’’’’’’’’’’’’’’’’’’”™’’’’’’’’’’’’’’’’’’’’’’ PER ;’’’’’’’’’’’’’’Į™’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į™’’’’’’’’’’’’’’’’’’’’š’*’’’’’’’’’’’’’’’’’’’1š’ ’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aš’'’’’’’’’’’’’’’’’’’’’‘š’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įš’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńš’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A›’’’’’’’’’’’’’’’’’’’’a›’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”›’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ћ’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!œ’(’’’’’’’’’’’’’’’’’’’Qœ’#’’’’’’’’’’’’’’’’’’’œ’,’’’’’’’’’’’’’’’’’’’±œ’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ќ’&’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’&’’’’’’’’’’’’’’’’’’’Q’=’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’G’’’’’’’’’’’’’’’’’’’Až’G’’’’’’’’’’’’’’’’’’’‘ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ž’!’’’’’’’’’’’’’’’’’’’įž’!’’’’’’’’’’’’’’’’’’’Ÿ’$’’’’’’’’’’’’’’’’’’’AŸ’#’’’’’’’’’’’’’’’’’’’qŸ’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”Ÿ’’’’’’’’’’’’’’’’’’’’ĮŸ’’’’’’’’’’’’’’’’’’’’្’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’! ’6’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a ’’’’’’’’’’’’’’’’’’’’ ’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’± ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ń ’’’’’’’’’’’’’’’’’’’’ń ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’Q”’’’’’’’’’’’’’’’’’’’’’’ break ;’’’’’’’’’’’’q”’’’’’’’’’’’’’’’’’’’’‘”’’’’’’’’’’’’’’’’’’’’±”’’’’’’’’’’’’’’’’’’’’į”’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’!¢’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¢’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a¢’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’‘¢’’’’’’’’’’’’’’’’’’’’±¢’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’Ń¢’’’’’’’’’’’’’’’’’’’’ń¢’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’1£’’’’’’’’’’’’’’’’’’’’Q£’@’’’’’’’’’’’’’’’’’’’”£’2’’’’’’’’’’’’’’’’’’’ᣒ’’’’’’’’’’’’’’’’’’’¤’7’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A¤’’’’’’’’’’’’’’’’’’’’’’ REAL VAR ’’’’’’’’’’a¤’’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’”¤’’’’’’’’’’’’’’’’’’’’Į¤’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń¤’’’’’’’’’’’’’’’’’’’’„’+’’’’’’’’’’’’’’’’’’’A„’8’’’’’’’’’’’’’’’’’’’„’8’’’’’’’’’’’’’’’’’’’Į„’B’’’’’’’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’1¦’’’’’’’’’’’’’’’’’’’’Q¦’’’’’’’’’’’’’’’’’’’’q¦’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”¦’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į¦’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’§’’’’’’’’’’’’’’’’’’’’1§’’’’’’’’’’’’’’’’’’’’Q§’’’’’’’’’’’’’’’’’’’’q§’’’’’’’’’’’’’’’’’’’’‘§’&’’’’’’’’’’’’’’’’’’’Į§’’’’’’’’’’’’’’’’’’’’į§’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’Ø’’’’’’’’’’’’’’’’’’’’’’ END REP .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ø’’’’’’’’’’’’’’’’’’’’AØ’’’’’’’’’’’’’’’’’’’’qØ’"’’’’’’’’’’’’’’’’’’’”Ø’$’’’’’’’’’’’’’’’’’’’ŃØ’+’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’©’$’’’’’’’’’’’’’’’’’’’1©’ ’’’’’’’’’’’’’’’’’’’a©’’’’’’’’’’’’’’’’’’’’©’’’’’’’’’’’’’’’’’’’’”©’/’’’’’’’’’’’’’’’’’’’į©’%’’’’’’’’’’’’’’’’’’’Ŗ’1’’’’’’’’’’’’’’’’’’’QŖ’:’’’’’’’’’’’’’’’’’’’‘Ŗ’%’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮŖ’’’’’’’’’’’’’’’’’’’’įŖ’1’’’’’’’’’’’’’’’’’’’!«’0’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a«’D’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±«’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń«’"’’’’’’’’’’’’’’’’’’’!¬’"’’’’’’’’’’’’’’’’’’’Q¬’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¬’=’’’’’’’’’’’’’’’’’’’Į¬’@’’’’’’’’’’’’’’’’’’’­’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a­’’’’’’’’’’’’’’’’’’’’­’+’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’±­’"’’’’’’’’’’’’’’’’’’’į­’’’’’’’’’’’’’’’’’’’’®’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!®’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a®’$’’’’’’’’’’’’’’’’’’’‘®’G’’’’’’’’’’’’’’’’’’’į®’!’’’’’’’’’’’’’’’’’’’Æ’1’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QÆ’>’’’’’’’’’’’’’’’’’’’‘Æ’’’’’’’’’’’’’’’’’’’’ĮÆ’3’’’’’’’’’’’’’’’’’’’°’-’’’’’’’’’’’’’’’’’’’1°’3’’’’’’’’’’’’’’’’’’’’’ ELSE’’’’’’’’’’’’’q°’"’’’’’’’’’’’’’’’’’’’”°’+’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’Ѱ’F’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!±’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a±’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ scheduler;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET std schedule strategy DEFINES (* Autor: J.Liedtke *)’’’’N (* Stand: 15.10.82 *)’’’’ strategic decision :’’’’’’PROC strategic decision ’’’’’’N (INT CONST foreground workers, background workers,’’’’’’’’’’’’’’N REAL CONST fore cpu load, back cpu load, paging load,’’’’’’’’’’N INT VAR lowest activation prio, max background tasks) :’’’’’’’’ IF no background permitted’’. THEN lowest activation prio := 0 ;’’’’’’’’. max background tasks := 0’’’’’’’’’’’’. ELSE lowest activation prio := 10 ;’’’’’’’. select max background tasks’’’’’’’’’’no background permitted :’’’’’> foreground workers > 0 AND fore cpu load > 0.03 .’’’’’’’select max background tasks :’ IF fore cpu load > 0.01’’’’’. THEN max background tasks := 1’’’’’’’’’’’’ ELIF paging load < 0.07’’’’’. THEN max background tasks := 3’’’’’’’’’’’’ ELIF paging load < 0.15’’’’’. THEN max background tasks := 2’’’’’’’’’’’’. ELSE max background tasks := 1’’’’’’’’’’’’ENDPROC strategic decision ;’’.ENDPACKET std schedule strategy ;’’’’’’’’’’’’’N (* Autor: J.Liedtke*)’’’’’’’’’’’NPACKET eumelmeter DEFINES (* Stand: 11.10.83 *)’’’’’’’’’’’ init log ,’’’’’’’’’’’’’’’.LET snapshot interval = 590.0 ;’’’’’’’’’’’’’’’REAL VAR next snapshot time ,’ time , timex ,. paging wait , paging wait x ,’’’’’’’’. paging busy , paging busy x ,’’’’’’’’. fore cpu , fore cpu x ,’’’’’’’’’’’. back cpu , back cpu x ,’’’’’’’’’’’. system cpu , system cpu x ,’’’’’’’’’ delta t ;’’’’’’’’’’’’INT VAR storage max, used ;’’’TEXT VAR record ;’’’’’’’’’’’’’PROC init log :’’’’’’’’’’’’’’’ time := clock (1) ;’’ paging wait := clock (2) ;’’ paging busy := clock (3) ;’’ fore cpu := clock (4) ;’’ back cpu := clock (5) ;’’ system cpu := clock (6) ;’’> next snapshot time := time + snapshot interval’’’’’’’’’’’’’’ENDPROC init log ;’’’’’’’’’’’’>PROC log (INT CONST active terminals, active background) :’’’’. new snapshot time if was clock reset ;’’’’’’. IF clock (1) >= next snapshot time’’’’’’’’’’ THEN save values ;’’’’’’’’ get new values ;’’’’’ create stat record ;’ put log (record) ;’’’. define next snapshot time’’’’’’’’’’’’.new snapshot time if was clock reset :’’’’’’’’> IF clock (1) < next snapshot time - snapshot interval ’’’’’’. THEN next snapshot time := clock (1)’’’’’’ time x := time ;’’’’’’’’’’’’. paging wait x := paging wait ;’’’’’’’’’’’’’’. paging busy x := paging busy ;’’’’’’’’’’’’’’ fore cpu x := fore cpu ;’ back cpu x := back cpu ;’. system cpu x := system cpu .’’’’’’’’’’’’’’’get new values :’’’’’’’’’’’’’’ time := clock (1) ;’’’’’’’’’ paging wait := clock (2) ;’’ paging busy := clock (3) ;’’ fore cpu := clock (4) ;’’ back cpu := clock (5) ;’’ system cpu := clock (6) ;’’. storage (storage max, used) .’’’’’’’’’’’’’’’create stat record :’’’’’’’’’’ record := text (used, 5) ;’. record CAT text (active terminals,3) ;’’’’’’. record CAT text (active background,3) ;’’’’’ delta t := (time - time x) ;. percent (paging wait, paging wait x) ;’’’’’’. percent (paging busy, paging busy x) ;’’’’’’. percent (fore cpu, fore cpu x) ;’’’’’’’’’’’’. percent (back cpu, back cpu x) ;’’’’’’’’’’’’. percent (system cpu, system cpu x) ;’’’’’’’’ percent (last, 0.0) ;’’’’’’’ percent (nutz, 0.0) .’’’’’’’Nlast : paging wait + paging busy + fore cpu + back cpu + system cpu’’’’’N - paging waitx - paging busyx - fore cpux - back cpux - system cpux .’’.nutz : time - paging wait - system cpu’’’’. - timex + paging waitx + system cpux .’define next snapshot time :’’’> next snapshot time := time + snapshot interval .’’’’’’’’’’’’.PROC percent (REAL CONST neu, alt ) :’’’’’’’’’> record CAT text ( (neu-alt) / delta t * 100.0, 6,1) + "%"’’’ENDPROC percent ;’’’’’’’’’’’’’ENDPACKET eumelmeter ;’’’’’’’’NPACKET background que manager DEFINES (* Autor: J.Liedtke *)’’’N (* Stand: 15.10.82 *)’’’ into background que ,’’’’’. delete from background que ,’’’’’’’’’’’’’’. get first from background que ,’’’’’’’’’’’. get next from background que :’’’’’’’’’’’’LET que size = 100 ,’’’’’’’’’’. ENTRY = STRUCT (TASK task, INT class) ;INT VAR end of que := 0 ,’’’’’ actual entry pos ;’’’’ROW que size ENTRY VAR que ;’’.PROC into background que (TASK CONST task) :’’. INT VAR class := prio (task) ;’’’’’’’’’’’’’’ IF end of que = que size’’’’. THEN delete all not existing tasks’’’’’’’’. check whether already in que ;’’’’’’’’’’’’’’ IF already in que’’’’’’’’’’’ THEN IF in same class’’’’’. THEN LEAVE into background que’’’’’> ELSE delete from background que (task) ;’’’’’’’’’’’. into background que (task)’’’’ ELSE insert new entry’’’’’check whether already in que : INT VAR entry pos := 1 ;’’’’. WHILE entry pos <= end of que REP’’’’’’’’’’. IF que (entry pos).task = task’’’’’’’’’’’’. THEN LEAVE check whether already in que’ entry pos INCR 1’’’’’’’’’’.already in que : entry pos <= end of que .’’’>in same class : que (entry pos).class = class .’’’’’’’’’’’’’insert new entry :’’’’’’’’’’’’ end of que INCR 1 ;’’’’’’’’’. que (end of que) := ENTRY:( task, class ) .’.delete all not existing tasks :’’’’’’’’’’’’’’’. FOR j FROM 1 UPTO end of que REP’’’’’’’’’’’’. TASK VAR examined := que (j).task ;’’’’’’’ IF NOT exists (examined)’’> THEN delete from background que (examined)’’’’’’’’’’’’’’ENDPROC into background que ;’>PROC delete from background que (TASK CONST task) :’’’’’’’’’’’ search for entry ;’’’’’’’’’’ IF entry found’’’’’’’’’’’’’’ THEN deletööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööe entry ;’’’’’’’. update actual entry pos ’’’’’’’’’’’’’search for entry :’’’’’’’’’’’’ INT VAR entry pos := 1 ;’’’’. WHILE entry pos <= end of que REP’’’’’’’’’’’. IF que (entry pos).task = task’’’’’’’’’’’’. THEN LEAVE search for entry’’’’’’’’’’’’’ entry pos INCR 1’’’’’’’’’’.entry found : entry pos <= end of que .’’’’’’’delete entry :. FOR i FROM entry pos UPTO end of que - 1 REP que (i) := que (i+1)’’’’’’ end of que DECR 1 .’’’’’’’’’update actual entry pos :’’’’’. IF actual entry or following one deleted’’’’. THEN actual entry pos DECR 1’’’’’’’’’’’’’’.actual entry or following one deleted :’’’’’’’. entry pos >= actual entry pos .’’’’’’’’’’’’’.ENDPROC delete from background que ;’’’’’’’’’’NPROC get first from background que (TASK VAR task, INT CONST lowest class) :’’ actual entry pos := 0 ;’’’’’> get next from background que (task, lowest class)’’’’’’’’’’’.ENDPROC get first from background que ;’’’’’’’NPROC get next from background que (TASK VAR task, INT CONST lowest class) :’’’. search next entry of permitted class ;’’’’’’. IF actual entry pos <= end of que’’’’’’’’’’’. THEN task := que (actual entry pos).task’’ ELSE task := niltask’’’’’’.search next entry of permitted class :’’’’’’’’ actual entry pos INCR 1’’’. UNTIL actual entry pos > end of que ’’’’’’’’> COR que (actual entry pos).class <= lowest class PER.’.ENDPROC get next from background que ;’’’’’’’’.ENDPACKET background que manager ;’’’’’’’’’’’’NPACKET scheduler DEFINES (* Autor: J.Liedtke *)’’’’’’’N (* Stand: 09.12.82 *)’’’’’’’ scheduler :’’’’’’’’’’’’’’’.LET std background prio = 7 ,’’’’’’’’’’’’’. highest background prio = 5 ,’’’’’’’’’’’’’. long slice = 6000 ,’’’’’’’’’’. short slice = 600 ,’’’’’’’’’’’. blocked busy = 4 ;’’’’’’’’’’’’’INT VAR slice ,’’’’’’’’’’’’’’’ foreground workers ,’’ background workers ;’’BOOL VAR is logging ;’’’’’’’’’>REAL VAR fore cpu load , back cpu load , paging load ;’’’’’’’’access catalogue ;’’’’’’’’’’’’.TASK CONST ur task := brother (supervisor) ;’’TASK VAR actual task ;’’’’’’’’PROC scheduler :’’’’’’’’’’’’’’ IF yes ("mit eumelmeter")’’’ THEN is logging := TRUE’’’ ELSE is logging := FALSE’’ task password ("-") ;’’’’’’’ set autonom ;’’’’’’’’’’’’’’’ command dialogue (FALSE) ;’’. forget ("scheduler", quiet) ;’’’’’’’’’’’’’’’ disable stop; ’’’’’’’’’’’’’’ REP scheduler operation; ’’’ clear error ’’’’’’’’’’’’END PROC scheduler; ’’’’’’’’’’PROC scheduler operation:’’’’’ enable stop; IF is logging ’’’’’’’’’’’’’’ THEN init log ’’’’’’’’’’’’ slice := short slice ;’’’’’’ init system load moniting ;’ pause (slice) ;’’’’’’’’’’’ monit system load ;’’’’’’’N look at all active user tasks and block background workers ;’’’’’’’’’’’’’’> activate next background workers if possible ;’’’’’’’’’’’’ IF is logging’’’’’’’’’’’’’> THEN log (foreground workers, background workers)’’’’’’’init system load moniting :’’’ time x := clock (1) ,’’’ fore cpu x := clock (4) ,’’’ back cpu x := clock (5) ,’’’. paging x := clock (2) + clock (3) .’’’’’’’monit system load :’’’’’’’’’’’. REAL VAR interval := clock (1) - time x ;’’’> fore cpu load := (clock (4) - fore cpu x) / interval ;’’’’’’> back cpu load := (clock (5) - back cpu x) / interval ;’’’’’’N paging load := (clock (2) + clock (3) - paging x) / interval ;’’’’’’’’’’’’ time x := clock (1) ;’’’ fore cpu x := clock (4) ;’’’ back cpu x := clock (5) ;’’’. paging x := clock (2) + clock (3) .’’’’’’’ENDPROC scheduler operation;’’NPROC look at all active user tasks and block background workers :’’’’’’’’’’’’’ foreground workers := 0 ;’’’ background workers := 0 ;’’’ actual task := myself ;’’’’’ next active (actual task) ;’. WHILE NOT (actual task = myself) REP’’’’’’’’ IF actual task < ur task’’ THEN look at this task’’ next active (actual task)’look at this task :’’’’’’’’’’’. IF channel (actual task) >= 0’’’’’’’’’’’’’’’. THEN foreground workers INCR 1’’’’’’’’’’’’. ELSE background workers INCR 1 ;’’’’’’’’’’. block actual task if simple worker’’’.block actual task if simple worker :’’’’’’’’’’. IF son (actual task) = niltask’’’’’’’’’’’’’’ THEN pause (5) ;’’’’’’’’’’ block (actual task) ;> IF status (actual task) = blocked busy’’’’’’’’’’’’’’’. THEN set background prio ;’’’’’’’’’> into background que (actual task)’’’’’’’’’’’’’> ELIF prio (actual task) < highest background prio’’’’. THEN unblock (actual task)’’’’’’’’’set background prio :’’’’’’’’’> IF prio (actual task) < highest background prio’’’’’’’’’’’’’> THEN prio (actual task, std background prio)’’’’’’’’’’’’’’NENDPROC look at all active user tasks and block background workers ;’’’’’’’’’’>PROC activate next background workers if possible :’’’’’’’’’’’. INT VAR lowest activation prio ,’’’’’’’’’’’’. max background workers ,’’’’’’’’’’’’. active background workers := 0 ;’’’’> strategic decision (foreground workers, background workers,’N fore cpu load, back cpu load, paging load,’’’’’’’’’’’’’’N lowest activation prio, max background workers) ;’’’’’’’ IF background permitted’’’’’. THEN try to activate background workers’’’. IF active background workers > 0’’’’’’’’’’’’ THEN slice := short slice’ ELSE slice := long slice’’>background permitted : max background workers > 0 .’’’’’’’’’’’.try to activate background workers :’’’’’’’’’’N get first from background que (actual task, lowest activation prio) ;’’’’’’’. IF NOT is niltask (actual task)’’’’’’’’’’’’’> THEN delete from background que (actual task)’’’’’’’’’’’’’> WHILE active background workers < max background workers REP. IF is niltask (actual task)’’’’’’’’’’’’’’’> THEN LEAVE try to activate background workers’’’’’’’’’’’. ELIF status (actual task) <> blocked busy’> THEN delete from background que (actual task)’’’’’’’’’’’. unblock (actual task) ;’’’’’’’’’’’’. active background workers INCR 1’’’N get next from background que (actual task, lowest activation prio)’’’’’’’’>ENDPROC activate next background workers if possible ;’’’’’’’’ENDPACKET scheduler ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ eumelmeter’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘a€ė’’……‚‚ø’’’’øø†>M’’’’’’ eumelmeter’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’a€’D’’’’’’’’’’’’’’’’’’’±€’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ log :’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’&’’’’’’’’’’’’’’’’’’’Į’&’’’’’’’’’’’’’’’’’’’ń’#’’’’’’’’’’’’’’’’’’’!‚’#’’’’’’’’’’’’’’’’’’’Q‚’%’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’”‚’’’’’’’’’’’’’’’’’’’’Į‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’!ƒ’’’’’’’’’’’’’’’’’’’’Aƒ’’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’Įƒ’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!„’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a„’(’’’’’’’’’’’’’’’’’’’‘„’$’’’’’’’’’’’’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’!…’’’’’’’’’’’’’’’’’’’’A…’"’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q…’&’’’’’’’’’’’’’’’’’’’”…’8’’’’’’’’’’’’’’’’’’’į…’(’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ save values :’’’’’’’’†’’’’’’’’’’’’’’’’’’’’1†’ ’’’’’’’’’’’’’’’’’’’a†’ ’’’’’’’’’’’’’’’’’’’‘†’’’’’’’’’’’’’’’’’’’’±†’’’’’’’’’’’’’’’’’’’’ц’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’!‡’’’’’’’’’’’’’’’’’’’’A‡’’’’’’’’’’’’’’’’’’’’a‡’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’”‡’’’’’’’’’’’’’’’’’’’’Į‡’’’’’’’’’’’’’’’’’’’’ᇒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’1ˆ’’’’’’’’’’’’’’’’’’’’Qˆ’(’’’’’’’’’’’’’’’’’’’ˆ’)’’’’’’’’’’’’’’’’’’’±ˆ’’’’’’’’’’’’’’’’’’’’ш’(’’’’’’’’’’’’’’’’’’’‰’(’’’’’’’’’’’’’’’’’’’1‰’"’’’’’’’’’’’’’’’’’’’a‰’"’’’’’’’’’’’’’’’’’’’‘‰’&’’’’’’’’’’’’’’’’’’’Į‰’’’’’’’’’’’’’’’’’’’’ቒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Š’I’’’’’’’’’’’’’’’’’’’QŠ’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”Š’*’’’’’’’’’’’’’’’’’’’ъ’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’!‹’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ENDPROC log ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a‹’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘‹’;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ы’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Œ’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AŒ’’’’’’’’’’’’’’’’’’’’’’break ;’’’’’’’’’’’’’’aŒ’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’’’ init log ;’’’’’’’’’’’’’REP’’’’’’’’’’’’’’’’’’”Œ’’’’’’’’’’’’’’’’’’’’ĮŒ’@’’’’’’’’’’’’’’’’’’’’+’’’’’’’’’’’’’’’’’’’’’PER ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’э’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’1Ž’!’’’’’’’’’’’’’’’’’’’aŽ’)’’’’’’’’’’’’’’’’’’’‘Ž’*’’’’’’’’’’’’’’’’’’’’’ öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö FI’’’’’’’’’’ FI’’’’’’’’’’’’’’’ĮŽ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įŽ’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’N (* Author: J.Liedtke*)’’’’’’’’’’NPACKET eumelmeter DEFINES (* Stand: 11.10.83 *)’’’’’’’’’’ init log ,’’’’’’’’’’’’’’’.LET snapshot interval = 590.0 ;’’’’’’’’’’’’’’’REAL VAR next snapshot time ,’ time , timex ,. paging wait , paging wait x ,’’’’’’’’. paging busy , paging busy x ,’’’’’’’’. fore cpu , fore cpu x ,’’’’’’’’’’’. back cpu , back cpu x ,’’’’’’’’’’’. system cpu , system cpu x ,’’’’’’’’’ delta t ;’’’’’’’’’’’’INT VAR storage max, used ;’’’TEXT VAR record ;’’’’’’’’’’’’’PROC init log :’’’’’’’’’’’’’’’ time := clock (1) ;’’ paging wait := clock (2) ;’’ paging busy := clock (3) ;’’ fore cpu := clock (4) ;’’ back cpu := clock (5) ;’’ system cpu := clock (6) ;’’> next snapshot time := time + snapshot interval’’’’’’’’’’’’’’ENDPROC init log ;’’’’’’’’’’’’>PROC log (INT CONST active terminals, active background) :’’’’. new snapshot time if was clock reset ;’’’’’’. IF clock (1) >= next snapshot time’’’’’’’’’’ THEN save values ;’’’’’’’’ get new values ;’’’’’ create stat record ;’ put log (record) ;’’’. define next snapshot time’’’’’’’’’’’’.new snapshot time if was clock reset :’’’’’’’’> IF clock (1) < next snapshot time - snapshot interval ’’’’’’. THEN next snapshot time := clock (1)’’’’’’ time x := time ;’’’’’’’’’’’’. paging wait x := paging wait ;’’’’’’’’’’’’’’. paging busy x := paging busy ;’’’’’’’’’’’’’’ fore cpu x := fore cpu ;’ back cpu x := back cpu ;’. system cpu x := system cpu .’’’’’’’’’’’’’’’get new values :’’’’’’’’’’’’’’ time := clock (1) ;’’’’’’’’’ paging wait := clock (2) ;’’ paging busy := clock (3) ;’’ fore cpu := clock (4) ;’’ back cpu := clock (5) ;’’ system cpu := clock (6) ;’’. storage (storage max, used) .’’’’’’’’’’’’’’’create stat record :’’’’’’’’’’ record := text (used, 5) ;’. record CAT text (active terminals,3) ;’’’’’’. record CAT text (active background,3) ;’’’’’ delta t := (time - time x) ;. percent (paging wait, paging wait x) ;’’’’’’. percent (paging busy, paging busy x) ;’’’’’’. percent (fore cpu, fore cpu x) ;’’’’’’’’’’’’. percent (back cpu, back cpu x) ;’’’’’’’’’’’’. percent (system cpu, system cpu x) ;’’’’’’’’ percent (last, 0.0) ;’’’’’’’ percent (nutz, 0.0) .’’’’’’’Nlast : paging wait + paging busy + fore cpu + back cpu + system cpu’’’’’N - paging waitx - paging busyx - fore cpux - back cpux - system cpux .’’.nutz : time - paging wait - system cpu’’’’. - timex + paging waitx + system cpux .’define next snapshot time :’’’> next snapshot time := time + snapshot interval .’’’’’’’’’’’’.PROC percent (REAL CONST neu, alt ) :’’’’’’’’’> record CAT text ( (neu-alt) / delta t * 100.0, 6,1) + "%"’’’ENDPROC percent ;’’’’’’’’’’’’’ENDPACKET eumelmeter ;’’’’’’’’.INT VAR active terminals , active background ;task password ("-") ;’’’’’’’’’command dialogue (FALSE) ;’’’’forget ("eumelmeter") ;’’’’’’’ pause (6000) ;’’’’’’’’’’’’’’N count active processes (active terminals, active background) ;’’’’’’’’’’’’’’. log (active terminals, active background)’’’NPROC count active processes (INT VAR active terminals, active background) :’’’ active terminals := 0 ;’’’’’ active background := 0 ;’’’’ TASK VAR process := myself ; next active (process) ;’’’ IF user process ’’’’’’’’’’. THEN IF process at terminal’’’’’’’’’’’’’. THEN active terminals INCR 1’’’’’. ELSE active background INCR 1’’’’ UNTIL process = myself PER .>user process : NOT (process < supervisor) .’’’’’’’’’’’>process at terminal : channel (process) >= 0 .’’’’’’’’’’’’’’’.ENDPROC count active processes ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ referencer’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚a€ė’’7744Ä’’’’ÄÄ8>M’ž’’’’’’ referencer’’’’’’’’’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’a€’F’’’’’’’’’’’’’’’’’’’±€’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń€’1’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’1’’’’’’’’’’’’’’’’’’’с’-’’’’’’’’’’’’’’’’’’’‚’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A‚’"’’’’’’’’’’’’’’’’’’’q‚’’’’’’’’’’’’’’’’’’’’‘‚’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į‚’ ’’’’’’’’’’’’’’’’’’’ń‚’!’’’’’’’’’’’’’’’’’’’!ƒ’’’’’’’’’’’’’’’’’’’’Aƒ’’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’ line ; ’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įƒ’'’’’’’’’’’’’’’’’’’’’ńƒ’’’’’’’’’’’’’’’’’’’’’’ note line ;’’’’’’’’„’’’’’’’’’’’’’’’’’’’’1„’’’’’’’’’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’’’ note line.’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö‘„’’’’’’’’’’’’’’’’’’’’±„’2’’’’’’’’’’’’’’’’’’’ń„’:’’’’’’’’’’’’’’’’’’’1…’0’’’’’’’’’’’’’’’’’’’q…’7’’’’’’’’’’’’’’’’’’’±…’’’’’’’’’’’’’’’’’’’’х’.’’’’’’’’’’’’’’’’’’’†’0’’’’’’’’’’’’’’’’’’’A†’*’’’’’’’’’’’’’’’’’’’q†’’’’’’’’’’’’’’’’’’’’’’ ENDSELECT. ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’zusatz: ’’’’’’’’’’’’’‘†’’’’’’’’’’’’’’’’’’’’±†’2’’’’’’’’’’’’’’’’’’’ń†’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’1‡’8’’’’’’’’’’’’’’’’’’’q‡’>’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’±‡’!’’’’’’’’’’’’’’’’’’’ᇒ’’’’’’’’’’’’’’’’’’’ˆ’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qˆ’’’’’’’’’’’’’’’’’’’’qˆ’ ’’’’’’’’’’’’’’’’’’’”ˆ’'’’’’’’’’’’’’’’’’’’’ш’ ’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’1‰’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‰’&’’’’’’’’’’’’’’’’’’’‘‰’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±‰’(’’’’’’’’’’’’’’’’’’’ቒ'’’’’’’’’’’’’’’’’’’’Š’&’’’’’’’’’’’’’’’’’’’AŠ’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŠ’0’’’’’’’’’’’’’’’’’’’±Š’>’’’’’’’’’’’’’’’’’’’ńŠ’9’’’’’’’’’’’’’’’’’’’1‹’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‹’B’’’’’’’’’’’’’’’’’’’ń‹’’’’’’’’’’’’’’’’’’’’Œ’"’’’’’’’’’’’’’’’’’’’AŒ’’’’’’’’’’’’’’’’’’’’aŒ’!’’’’’’’’’’’’’’’’’’’‘Œ’#’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŒ’’’’’’’’’’’’’’’’’’’’ጒ*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’?’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’э’?’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’!Ž’’’’’’’’’’’’’’’’’’’’AŽ’%’’’’’’’’’’’’’’’’’’’qŽ’’’’’’’’’’’’’’’’’’’’‘Ž’’’’’’’’’’’’’’’’’’’’±Ž’7’’’’’’’’’’’’’’’’’’’ńŽ’,’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’)’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’į’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’A’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±’.’’’’’’’’’’’’’’’’’’’ᐒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’G’’’’’’’’’’’’’’’’’’’Q‘’2’’’’’’’’’’’’’’’’’’’‘‘’)’’’’’’’’’’’’’’’’’’’Į‘’#’’’’’’’’’’’’’’’’’’’ń‘’ ’’’’’’’’’’’’’’’’’’’!’’/’’’’’’’’’’’’’’’’’’’a’’*’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’’,’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’“’%’’’’’’’’’’’’’’’’’’’1“’’’’’’’’’’’’’’’’’’’’’’ ENDREP.’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q“’’’’’’’’’’’’’’’’’’’’q“’’’’’’’’’’’’’’’’’’’’‘“’(’’’’’’’’’’’’’’’’’’’Į“’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’į“’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ wrap around :’’’’’’’’!”’(’’’’’’’’’’’’’’’’’’’Q”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a”’@’’’’’’’’’’’’’’’’’’’±”’C’’’’’’’’’’’’’’’’’’’•’%’’’’’’’’’’’’’’’’’’’1•’)’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’a•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’•’)’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’’’±•’0’’’’’’’’’’’’’’’’’’’ń•’*’’’’’’’’’’’’’’’’’’’!–’’’’’’’’’’’’’’’’’’’’’’ END REP ’’’’’’’’’’’A–’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a–’%’’’’’’’’’’’’’’’’’’’’’ line ;’’’’’’’’’’’’’‘–’E’’’’’’’’’’’’’’’’’’’į–’’’’’’’’’’’’’’’’’’’’’’ line ;’’’’’’’’’’’’’ń–’’’’’’’’’’’’’’’’’’’’—’’’’’’’’’’’’’’’’’’’’1—’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q—’’’’’’’’’’’’’’’’’’’’q—’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±—’’’’’’’’’’’’’’’’’’’’’’ INT VAR i,’’’’’’’’’ї’#’’’’’’’’’’’’’’’’’’’˜’"’’’’’’’’’’’’’’’’’’’1˜’*’’’’’’’’’’’’’’’’’’’a˜’’’’’’’’’’’’’’’’’’’’‘˜’%’’’’’’’’’’’’’’’’’’’Į˜’;’’’’’’’’’’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’!™’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ END REP. ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A™’’’’’’’’’’’’’’’’’’’’a™’’’’’’’’’’’’’’’’’’’’™’5’’’’’’’’’’’’’’’’’’’Į™’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į™’’’’’’’’’’’’’’’’’’’’š’'’’’’’’’’’’’’’’’’’’’1š’"’’’’’’’’’’’’’’’’’’’aš’#’’’’’’’’’’’’’’’’’’’‘š’’’’’’’’’’’’’’’’’’’’±š’'’’’’’’’’’’’’’’’’’’’ᚒ’’’’’’’’’’’’’’’’’’’›’2’’’’’’’’’’’’’’’’’’’A›’6’’’’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’›’!’’’’’’’’’’’’’’’’’’’±›’"’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’į›’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’!œ’’’’’’’’’’’’’’’’’’’’Aœ’’’’’’’’’’’’’’’’’’’’aœ’’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’”œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įœ’’’’’’’’’’’’’’’’’’’’ᜒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’!’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’ѝ’+’’’’’’’’’’’’’’’’’’’ž’&’’’’’’’’’’’’’’’’’’’1ž’’’’’’’’’’’’’’’’’’’’Qž’'’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ž’’’’’’’’’’’’’’’’’’’’Įž’"’’’’’’’’’’’’’’’’’’’ńž’@’’’’’’’’’’’’’’’’’’’AŸ’’’’’’’’’’’’’’’’’’’’aŸ’?’’’’’’’’’’’’’’’’’’’±Ÿ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’џ’’’’’’’’’’’’’’’’’’’’ńŸ’A’’’’’’’’’’’’’’’’’’’A ’F’’’’’’’’’’’’’’’’’’’‘ ’$’’’’’’’’’’’’’’’’’’’Į ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į ’’’’’’’’’’’’’’’’’’’’”’,’’’’’’’’’’’’’’’’’’’1”’&’’’’’’’’’’’’’’’’’’’a”’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’””’ ’’’’’’’’’’’’’’’’’’’Ń”’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¢’&’’’’’’’’’’’’’’’’’’’Q¢’,’’’’’’’’’’’’’’’’’’’¢’'’’’’’’’’’’’’’’’’’’’±¢’ ’’’’’’’’’’’’’’’’’’’ᢒ$’’’’’’’’’’’’’’’’’’’£’#’’’’’’’’’’’’’’’’’’’A£’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q£’,’’’’’’’’’’’’’’’’’’’”£’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į£’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᣒ!’’’’’’’’’’’’’’’’’’’¤’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a¤’’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’”¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į¤’’’’’’’’’’’’’’’’’’’’ᤒ’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’”„’’’’’’’’’’’’’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¦’-’’’’’’’’’’’’’’’’’’’Q¦’’’’’’’’’’’’’’’’’’’’a¦’’’’’’’’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’”¦’’’’’’’’’’’’’’’’’’’’Į¦’%’’’’’’’’’’’’’’’’’’’ń¦’’’’’’’’’’’’’’’’’’’’§’'’’’’’’’’’’’’’’’’’’’A§’’’’’’’’’’’’’’’’’’’’a§’-’’’’’’’’’’’’’’’’’’’‘§’.’’’’’’’’’’’’’’’’’’’Į§’’’’’’’’’’’’’’’’’’’’į§’&’’’’’’’’’’’’’’’’’’’’’ END REP; ’’’’’’’’’’Ø’!’’’’’’’’’’’’’’’’’’’AØ’+’’’’’’’’’’’’’’’’’’’qØ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”Ø’#’’’’’’’’’’’’’’’’’’’ŃØ’’’’’’’’’’’’’’’’’’’’ńØ’’’’’’’’’’’’’’’’’’’’©’’’’’’’’’’’’’’’’’’’’1©’-’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a©’’’’’’’’’’’’’’’’’’’’©’’’’’’’’’’’’’’’’’’’’”©’’’’’’’’’’’’’’’’’’’’Į©’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į©’’’’’’’’’’’’’’’’’’’’Ŗ’(’’’’’’’’’’’’’’’’’’’1Ŗ’’’’’’’’’’’’’’’’’’’’QŖ’%’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’”Ŗ’’’’’’’’’’’’’’’’’’’’ĮŖ’’’’’’’’’’’’’’’’’’’’įŖ’$’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’«’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1«’’’’’’’’’’’’’’’’’’’’Q«’’’’’’’’’’’’’’’’’’’’«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”«’"’’’’’’’’’’’’’’’’’’’Ń«’’’’’’’’’’’’’’’’’’’’ń«’0’’’’’’’’’’’’’’’’’’’1¬’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’Q¬’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q¬’-’’’’’’’’’’’’’’’’’’’”¬’'’’’’’’’’’’’’’’’’’’’Ѭ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń¬’’’’’’’’’’’’’’’’’’’’­’’’’’’’’’’’’’’’’’’’’1­’’’’’’’’’’’’’’’’’’’’Q­’’’’’’’’’’’’’’’’’’’’q­’’’’’’’’’’’’’’’’’’’’‘­’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±­’"’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’į­’B’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö1®’’’’’’’’’’’’’’’’’’’’Q®’.’’’’’’’’’’’’’’’’’’’®’,’’’’’’’’’’’’’’’’’’’±®’’’’’’’’’’’’’’’’’’’’Ń®’%’’’’’’’’’’’’’’’’’’’Æ’,’’’’’’’’’’’’’’’’’’’1Æ’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’QÆ’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Æ’’’’’’’’’’’’’’’’’’’’”Æ’"’’’’’’’’’’’’’’’’’’’ŃÆ’’’’’’’’’’’’’’’’’’’’ńÆ’*’’’’’’’’’’’’’’’’’’’!°’'’’’’’’’’’’’’’’’’’’’Q°’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’q°’’’’’’’’’’’’’’’’’’’’‘°’!’’’’’’’’’’’’’’’’’’’Į°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į°’’’’’’’’’’’’’’’’’’’’±’1’’’’’’’’’’’’’’’’’’’A±’’’’’’’’’’’’’’’’’’’’a±’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”±’"’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’ѱ’#’’’’’’’’’’’’’’’’’’’’’ END REP. ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’ ’’’’’’’’’’’’’’’’’’’1²’’’’’’’’’’’’’’’’’’’’Q²’ ’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’”²’’’’’’’’’’’’’’’’’’’’Į²’’’’’’’’’’’’’’’’’’’’į²’I’’’’’’’’’’’’’’’’’’’1³’B’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’”³’’’’’’’’’’’’’’’’’’’’Į³’-’’’’’’’’’’’’’’’’’’’ń³’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’1“’J’’’’’’’’’’’’’’’’’’’“’>’’’’’’’’’’’’’’’’’’’Į“’’’’’’’’’’’’’’’’’’’’ń“’-’’’’’’’’’’’’’’’’’’’!µ’’’’’’’’’’’’’’’’’’’’Aµ’’’’’’’’’’’’’’’’’’’’aµ’’’’’’’’’’’’’’’’’’’’µ’’’’’’’’’’’’’’’’’’’’”µ’’’’’’’’’’’’’’’’’’’’Įµ’)’’’’’’’’’’’’’’’’’’’ńµ’’’’’’’’’’’’’’’’’’’’¶’"’’’’’’’’’’’’’’’’’’’A¶’’’’’’’’’’’’’’’’’’’’a¶’'’’’’’’’’’’’’’’’’’’’‘¶’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’±¶’’’’’’’’’’’’’’’’’’’’Ѷ’(’’’’’’’’’’’’’’’’’’’·’!’’’’’’’’’’’’’’’’’’’1·’’’’’’’’’’’’’’’’’’’’Q·’*’’’’’’’’’’’’’’’’’’’·’ ’’’’’’’’’’’’’’’’’’’±·’’’’’’’’’’’’’’’’’’’’Ń·’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’!ø’ ’’’’’’’’’’’’’’’’’’’Qø’’’’’’’’’’’’’’’’’’’’qø’:’’’’’’’’’’’’’’’’’’’±ø’’’’’’’’’’’’’’’’’’’’Ńø’’’’’’’’’’’’’’’’’’’’ńø’'’’’’’’’’’’’’’’’’’’’!¹’’’’’’’’’’’’’’’’’’’’A¹’&’’’’’’’’’’’’’’’’’’’q¹’!’’’’’’’’’’’’’’’’’’’”¹’$’’’’’’’’’’’’’’’’’’’ѹ’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’ FI’’’’’’’’’’’’’’’ń¹’,’’’’’’’’’’’’’’’’’’’!ŗ’’’’’’’’’’’’’’’’’’’’Aŗ’’’’’’’’’’’’’’’’’’’’aŗ’!’’’’’’’’’’’’’’’’’’’‘ŗ’’’’’’’’’’’’’’’’’’’’±ŗ’'’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’įŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’!»’’’’’’’’’’’’’’’’’’’’A»’’’’’’’’’’’’’’’’’’’’a»’%’’’’’’’’’’’’’’’’’’’‘»’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’±»’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ń»’’’’’’’’’’’’’’’’’’’’ń»’’’’’’’’’’’’’’’’’’’’¼’-’’’’’’’’’’’’’’’’’’’A¼’’’’’’’’’’’’’’’’’’’’’’ ENDREP;’’’’’’’’’’’’q¼’’’’’’’’’’’’’’’’’’’’‘¼’’’’’’’’’’’’’’’’’’’’±¼’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ѽ’’’’’’’’’’’’’’’’’’’’ń¼’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’½’!’’’’’’’’’’’’’’’’’’’A½’’’’’’’’’’’’’’’’’’’’a½’’’’’’’’’’’’’’’’’’’’½’'’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ END REP ’’’’’’’’’’’±½’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į½’’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’!¾’’’’’’’’’’’’’’’’’’’’A¾’’’’’’’’’’’’’’’’’’’’a¾’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’”¾’’’’’’’’’’’’’’’’’’’’Į¾’’’’’’’’’’’’’’’’’’’’į¾’’’’’’’’’’’’’’’’’’’’’’ END REP; ’’’’’’’’’’æ’’’’’’’’’’’’’’’’’’’’!æ’$’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ noch einmal: ’’’’’’’’Qæ’’’’’’’’’’’’’’’’’’’’qæ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”æ’’’’’’’’’’’’’’’’’’’’Įæ’’’’’’’’’’’’’’’’’’’’įæ’3’’’’’’’’’’’’’’’’’’’!Ą’’’’’’’’’’’’’’’’’’’’AĄ’’’’’’’’’’’’’’’’’’’’aĄ’%’’’’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’‘Ą’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ą’’’’’’’’’’’’’’’’’’’’ŃĄ’’’’’’’’’’’’’’’’’’’’ńĄ’B’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’AĮ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qĮ’’’’’’’’’’’’’’’’’’’’‘Į’’’’’’’’’’’’’’’’’’’’±Į’C’’’’’’’’’’’’’’’’’’’Ā’$’’’’’’’’’’’’’’’’’’’1Ā’!’’’’’’’’’’’’’’’’’’’aĀ’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’”Ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮĀ’’’’’’’’’’’’’’’’’’’’įĀ’’’’’’’’’’’’’’’’’’’’Ć’3’’’’’’’’’’’’’’’’’’’AĆ’’’’’’’’’’’’’’’’’’’’aĆ’’’’’’’’’’’’’’’’’’’’Ć’&’’’’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’±Ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ende comment:’’’’’’’’ŃĆ’’’’’’’’’’’’’’’’’’’’ńĆ’B’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’AÄ’’’’’’’’’’’’’’’’’’’’aÄ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ä’’’’’’’’’’’’’’’’’’’’±Ä’’’’’’’’’’’’’’’’’’’’ŃÄ’C’’’’’’’’’’’’’’’’’’’!Å’$’’’’’’’’’’’’’’’’’’’QÅ’’’’’’’’’’’’’’’’’’’’qÅ’’’’’’’’’’’’’’’’’’’’‘Å’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’±Å’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŃÅ’!’’’’’’’’’’’’’’’’’’’Ę’M’’’’’’’’’’’’’’’’’’’QĘ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ę’’’’’’’’’’’’’’’’’’’’”Ę’#’’’’’’’’’’’’’’’’’’’ŃĘ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńĘ’’’’’’’’’’’’’’’’’’’’Ē’#’’’’’’’’’’’’’’’’’’’AĒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aĒ’’’’’’’’’’’’’’’’’’’’Ē’#’’’’’’’’’’’’’’’’’’’±Ē’’’’’’’’’’’’’’’’’’’’ŃĒ’’’’’’’’’’’’’’’’’’’’ńĒ’K’’’’’’’’’’’’’’’’’’’AČ’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qČ’!’’’’’’’’’’’’’’’’’’’”Č’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ INT VAR symb,’’’’’’’’’’ typ,’’’’’’’’’ĮČ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įČ’’’’’’’’’’’’’’’’’’’’É’’’’’’’’’’’’’’’’’’’’!É’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1É’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QÉ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ FILE VAR f;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qÉ’ ’’’’’’’’’’’’’’’’’’’”É’’’’’’’’’’’’’’’’’’’’ŃÉ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ź’’’’’’’’’’’’’’’’’’’’!Ź’’’’’’’’’’’’’’’’’’’’AŹ’’’’’’’’’’’’’’’’’’’’aŹ’’’’’’’’’’’’’’’’’’’’Ź’’’’’’’’’’’’’’’’’’’’”Ź’’’’’’’’’’’’’’’’’’’’ĮŹ’’’’’’’’’’’’’’’’’’’’įŹ’’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’’’’’’’’’!Ė’’’’’’’’’’’’’’’’’’’’AĖ’’’’’’’’’’’’’’’’’’’’aĖ’’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’’’’’’’’’”Ė’’’’’’’’’’’’’’’’’’’’ĮĖ’’’’’’’’’’’’’’’’’’’’įĖ’’’’’’’’’’’’’’’’’’’’Ģ’’’’’’’’’’’’’’’’’’’’!Ģ’’’’’’’’’’’’’’’’’’’’AĢ’’’’’’’’’’’’’’’’’’’’aĢ’’’’’’’’’’’’’’’’’’’’Ģ’’’’’’’’’’’’’’’’’’’’”Ģ’’’’’’’’’’’’’’’’’’’’ĮĢ’’’’’’’’’’’’’’’’’’’’įĢ’’’’’’’’’’’’’’’’’’’’Ķ’’’’’’’’’’’’’’’’’’’’!Ķ’’’’’’’’’’’’’’’’’’’’AĶ’’’’’’’’’’’’’’’’’’’’aĶ’’’’’’’’’’’’’’’’’’’’Ķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ķ’’’’’’’’’’’’’’’’’’’’ĮĶ’’’’’’’’’’’’’’’’’’’’įĶ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ī’)’’’’’’’’’’’’’’’’’’’1Ī’-’’’’’’’’’’’’’’’’’’’aĪ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ī’3’’’’’’’’’’’’’’’’’’’ĮĪ’’’’’’’’’’’’’’’’’’’’įĪ’’’’’’’’’’’’’’’’’’’’Ļ’4’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’QĻ’’’’’’’’’’’’’’’’’’’’qĻ’.’’’’’’’’’’’’’’’’’’’”Ļ’’’’’’’’’’’’’’’’’’’’ĮĻ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃĻ’’’’’’’’’’’’’’’’’’’’ńĻ’’’’’’’’’’’’’’’’’’’’Š’"’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’AŠ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŠ’:’’’’’’’’’’’’’’’’’’’”Š’’’’’’’’’’’’’’’’’’’’±Š’’’’’’’’’’’’’’’’’’’’ŃŠ’’’’’’’’’’’’’’’’’’’’ńŠ’’’’’’’’’’’’’’’’’’’’’’ line ;’’’’’’’’’’’’’Ń’$’’’’’’’’’’’’’’’’’’’’’ line ;’’’’’’’’’’’’’AŃ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ueberschrift:’’’’’’’’’’ page;’’’’’’’’’’’’’’aŃ’’’’’’’’’’’’’’’’’’’’Ń’’’’’’’’’’’’’’’’’’’’’’ put ("->");’’’’’’’’”Ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŃ’’’’’’’’’’’’’’’’’’’’įŃ’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’!Ņ’N’’’’’’’’’’’’’’’’’’’qŅ’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’‘Ņ’’’’’’’’’’’’’’’’’’’’±Ņ’’’’’’’’’’’’’’’’’’’’ĮŅ’’’’’’’’’’’’’’’’’’’’įŅ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’!Ó’ ’’’’’’’’’’’’’’’’’’’’’ line ;’’’’’’’’’’’’’ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööQÓ’’’’’’’’’’’’’’’’’’’’qÓ’!’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’”Ó’’’’’’’’’’’’’’’’’’’’ĮÓ’*’’’’’’’’’’’’’’’’’’’ńÓ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’Ō’’’’’’’’’’’’’’’’’’’’1Ō’*’’’’’’’’’’’’’’’’’’’aŌ’’’’’’’’’’’’’’’’’’’’Ō’#’’’’’’’’’’’’’’’’’’’±Ō’’’’’’’’’’’’’’’’’’’’ŃŌ’@’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’!Õ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AÕ’6’’’’’’’’’’’’’’’’’’’Õ’’’’’’’’’’’’’’’’’’’’”Õ’’’’’’’’’’’’’’’’’’’’ĮÕ’’’’’’’’’’’’’’’’’’’’įÕ’&’’’’’’’’’’’’’’’’’’’Ö’'’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AÖ’ ’’’’’’’’’’’’’’’’’’’qÖ’’’’’’’’’’’’’’’’’’’’‘Ö’’’’’’’’’’’’’’’’’’’’±Ö’ ’’’’’’’’’’’’’’’’’’’įÖ’’’’’’’’’’’’’’’’’’’’×’"’’’’’’’’’’’’’’’’’’’1×’’’’’’’’’’’’’’’’’’’’Q×’’’’’’’’’’’’’’’’’’’’q×’ ’’’’’’’’’’’’’’’’’’’”×’%’’’’’’’’’’’’’’’’’’’Ń×’’’’’’’’’’’’’’’’’’’’ń×’$’’’’’’’’’’’’’’’’’’’!Ų’.’’’’’’’’’’’’’’’’’’’QŲ’’’’’’’’’’’’’’’’’’’’qŲ’"’’’’’’’’’’’’’’’’’’’”Ų’’’’’’’’’’’’’’’’’’’’ĮŲ’’’’’’’’’’’’’’’’’’’’įŲ’$’’’’’’’’’’’’’’’’’’’Ł’7’’’’’’’’’’’’’’’’’’’QŁ’’’’’’’’’’’’’’’’’’’’qŁ’#’’’’’’’’’’’’’’’’’’’”Ł’’’’’’’’’’’’’’’’’’’’ĮŁ’’’’’’’’’’’’’’’’’’’’įŁ’'’’’’’’’’’’’’’’’’’’’Ś’’’’’’’’’’’’’’’’’’’’1Ś’’’’’’’’’’’’’’’’’’’’’’ OTHERWISE: ’’’’’’’’’’ ENDSELECT. ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŚ’’’’’’’’’’’’’’’’’’’’qŚ’’’’’’’’’’’’’’’’’’’’‘Ś’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±Ś’#’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’įŚ’’’’’’’’’’’’’’’’’’’’Ū’’’’’’’’’’’’’’’’’’’’!Ū’#’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’QŪ’#’’’’’’’’’’’’’’’’’’’Ū’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ū’’’’’’’’’’’’’’’’’’’’ŃŪ’’’’’’’’’’’’’’’’’’’’ńŪ’ ’’’’’’’’’’’’’’’’’’’!Ü’’’’’’’’’’’’’’’’’’’’AÜ’’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aÜ’’’’’’’’’’’’’’’’’’’’Ü’ ’’’’’’’’’’’’’’’’’’’±Ü’’’’’’’’’’’’’’’’’’’’ŃÜ’’’’’’’’’’’’’’’’’’’’ńÜ’4’’’’’’’’’’’’’’’’’’’1Ż’'’’’’’’’’’’’’’’’’’’’aŻ’'’’’’’’’’’’’’’’’’’’’‘Ż’’’’’’’’’’’’’’’’’’’’±Ż’#’’’’’’’’’’’’’’’’’’’įŻ’.’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’Ž’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŽ’%’’’’’’’’’’’’’’’’’’’qŽ’’’’’’’’’’’’’’’’’’’’‘Ž’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŽ’’’’’’’’’’’’’’’’’’’’įŽ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ß’#’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’1ß’’’’’’’’’’’’’’’’’’’’Qß’’’’’’’’’’’’’’’’’’’’qß’"’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’”ß’#’’’’’’’’’’’’’’’’’’’Ńß’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ą’"’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’1ą’’’’’’’’’’’’’’’’’’’’Qą’’’’’’’’’’’’’’’’’’’’qą’’’’’’’’’’’’’’’’’’’’‘ą’’’’’’’’’’’’’’’’’’’’±ą’'’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’įą’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’1į’’’’’’’’’’’’’’’’’’’’Qį’)’’’’’’’’’’’’’’’’’’’į’ ’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’±į’’’’’’’’’’’’’’’’’’’’Ńį’’’’’’’’’’’’’’’’’’’’ńį’"’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’!ā’2’’’’’’’’’’’’’’’’’’’aā’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘ā’*’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’Įā’’’’’’’’’’’’’’’’’’’’įā’ ’’’’’’’’’’’’’’’’’’’ć’!’’’’’’’’’’’’’’’’’’’Ać’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qć’#’’’’’’’’’’’’’’’’’’’”ć’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’Įć’:’’’’’’’’’’’’’’’’’’’ä’’’’’’’’’’’’’’’’’’’’!ä’’’’’’’’’’’’’’’’’’’’Qä’’’’’’’’’’’’’’’’’’’’qä’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’‘ä’G’’’’’’’’’’’’’’’’’’’įä’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’å’'’’’’’’’’’’’’’’’’’’’Aå’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’aå’’’’’’’’’’’’’’’’’’’’å’,’’’’’’’’’’’’’’’’’’’±å’+’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’įå’’’’’’’’’’’’’’’’’’’’ę’’’’’’’’’’’’’’’’’’’’!ę’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’Aę’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ę’’’’’’’’’’’’’’’’’’’’”ę’’’’’’’’’’’’’’’’’’’’Įę’/’’’’’’’’’’’’’’’’’’’ē’ ’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ē’’’’’’’’’’’’’’’’’’’’Qē’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’qē’(’’’’’’’’’’’’’’’’’’’”ē’'’’’’’’’’’’’’’’’’’’’Ńē’’’’’’’’’’’’’’’’’’’’ńē’’’’’’’’’’’’’’’’’’’’č’’’’’’’’’’’’’’’’’’’’Ač’*’’’’’’’’’’’’’’’’’’’qč’7’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’±č’’’’’’’’’’’’’’’’’’’’Ńč’ ’’’’’’’’’’’’’’’’’’’é’*’’’’’’’’’’’’’’’’’’’1é’7’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’qé’;’’’’’’’’’’’’’’’’’’’±é’>’’’’’’’’’’’’’’’’’’’ńé’2’’’’’’’’’’’’’’’’’’’1ź’%’’’’’’’’’’’’’’’’’’’aź’/’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’”ź’+’’’’’’’’’’’’’’’’’’’Ńź’:’’’’’’’’’’’’’’’’’’’ė’H’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’aė’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ė’1’’’’’’’’’’’’’’’’’’’Ńė’’’’’’’’’’’’’’’’’’’’ńė’’’’’’’’’’’’’’’’’’’’ģ’’’’’’’’’’’’’’’’’’’’1ģ’%’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aģ’’’’’’’’’’’’’’’’’’’’ģ’’’’’’’’’’’’’’’’’’’’”ģ’&’’’’’’’’’’’’’’’’’’’Ńģ’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ķ’9’’’’’’’’’’’’’’’’’’’Qķ’’’’’’’’’’’’’’’’’’’’qķ’’’’’’’’’’’’’’’’’’’’‘ķ’&’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’Įķ’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ī’#’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’1ī’’’’’’’’’’’’’’’’’’’’Qī’’’’’’’’’’’’’’’’’’’’qī’,’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’”ī’#’’’’’’’’’’’’’’’’’’’Ńī’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ļ’)’’’’’’’’’’’’’’’’’’’1ļ’’’’’’’’’’’’’’’’’’’’Qļ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qļ’#’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’”ļ’’’’’’’’’’’’’’’’’’’’Įļ’&’’’’’’’’’’’’’’’’’’’ńļ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’š’8’’’’’’’’’’’’’’’’’’’Qš’’’’’’’’’’’’’’’’’’’’qš’(’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’”š’’’’’’’’’’’’’’’’’’’’Įš’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’įš’’’’’’’’’’’’’’’’’’’’ń’+’’’’’’’’’’’’’’’’’’’1ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ań’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ń’’’’’’’’’’’’’’’’’’’’’’ INT VAR i; ’’’’’’’’Ńń’*’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ END REP; ’’’’’’’’’’!ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aņ’’’’’’’’’’’’’’’’’’’’aņ’&’’’’’’’’’’’’’’’’’’’‘ņ’,’’’’’’’’’’’’’’’’’’’Įņ’’’’’’’’’’’’’’’’’’’’’’ END REP; ’’’’’’’’’’įņ’’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ó’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aó’3’’’’’’’’’’’’’’’’’’’ó’&’’’’’’’’’’’’’’’’’’’±ó’,’’’’’’’’’’’’’’’’’’’’’ INT VAR i; ’’’’’’’’įó’!’’’’’’’’’’’’’’’’’’’’’ modify (f);’’’’’’’’ō’’’’’’’’’’’’’’’’’’’’1ō’’’’’’’’’’’’’’’’’’’’’’ modify (f);’’’’’’’’Qō’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qō’’’’’’’’’’’’’’’’’’’’”ō’*’’’’’’’’’’’’’’’’’’’’’ cout (i);’’’’’’’’Ńō’’’’’’’’’’’’’’’’’’’’ńō’’’’’’’’’’’’’’’’’’’’õ’5’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ ENDREP.’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qõ’+’’’’’’’’’’’’’’’’’’’õ’’’’’’’’’’’’’’’’’’’’”õ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńõ’’’’’’’’’’’’’’’’’’’’įõ’#’’’’’’’’’’’’’’’’’’’ö’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ö’’’’’’’’’’’’’’’’’’’’’’ i := 0;’’’’’’’’’’’’Qö’’’’’’’’’’’’’’’’’’’’qö’’’’’’’’’’’’’’’’’’’’’’ i INCR 1;’’’’’’’’’’ cout (i);’’’’’’’’‘ö’’’’’’’’’’’’’’’’’’’’±ö’’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ńö’’’’’’’’’’’’’’’’’’’’ńö’0’’’’’’’’’’’’’’’’’’’’’ IF ende > 0’’’’’’’’1÷’/’’’’’’’’’’’’’’’’’’’q÷’!’’’’’’’’’’’’’’’’’’’”÷’"’’’’’’’’’’’’’’’’’’’Ń÷’)’’’’’’’’’’’’’’’’’’’ų’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ down (f).’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ų’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’Qų’#’’’’’’’’’’’’’’’’’’’ų’’’’’’’’’’’’’’’’’’’’”ų’)’’’’’’’’’’’’’’’’’’’Ńų’’’’’’’’’’’’’’’’’’’’įų’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’!ł’*’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’ FI;’’’’’’’’’’’’’Qł’/’’’’’’’’’’’’’’’’’’’‘ł’’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’±ł’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įł’"’’’’’’’’’’’’’’’’’’’ś’I’’’’’’’’’’’’’’’’’’’aś’3’’’’’’’’’’’’’’’’’’’”ś’’’’’’’’’’’’’’’’’’’’Ńś’’’’’’’’’’’’’’’’’’’’ńś’’’’’’’’’’’’’’’’’’’’ū’.’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aū’’’’’’’’’’’’’’’’’’’’aū’B’’’’’’’’’’’’’’’’’’’±ū’!’’’’’’’’’’’’’’’’’’’įū’9’’’’’’’’’’’’’’’’’’’!ü’’’’’’’’’’’’’’’’’’’’Aü’’’’’’’’’’’’’’’’’’’’aü’ ’’’’’’’’’’’’’’’’’’’‘ü’7’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńü’’’’’’’’’’’’’’’’’’’’ńü’’’’’’’’’’’’’’’’’’’’ż’D’’’’’’’’’’’’’’’’’’’aż’'’’’’’’’’’’’’’’’’’’’‘ż’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įż’’’’’’’’’’’’’’’’’’’’įż’’’’’’’’’’’’’’’’’’’’ž’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Až’'’’’’’’’’’’’’’’’’’’’qž’)’’’’’’’’’’’’’’’’’’’”ž’)’’’’’’’’’’’’’’’’’’’Ńž’(’’’’’’’’’’’’’’’’’’’’’$’’’’’’’’’’’’’’’’’’’1’’%’’’’’’’’’’’’’’’’’’’a’’%’’’’’’’’’’’’’’’’’’’’’ END REP; ’’’’’’’’’’’’ anf := 1; ’’’’’’’’’‘’’%’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’ń’’%’’’’’’’’’’’’’’’’’’’’’ END REP; ’’’’’’’’’’"’"’’’’’’’’’’’’’’’’’’’R’#’’’’’’’’’’’’’’’’’’’‚’'’’’’’’’’’’’’’’’’’’’²’B’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’2’'’’’’’’’’’’’’’’’’’’’b’B’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’²’$’’’’’’’’’’’’’’’’’’’ā’A’’’’’’’’’’’’’’’’’’’2’4’’’’’’’’’’’’’’’’’’’r’C’’’’’’’’’’’’’’’’’’’Ā’5’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’K’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’Ņ’*’’’’’’’’’’’’’’’’’’’’’ END PROC nr;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’(*’’’’’’’’’’’’’’’’’’’’’REP’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’N(* ------------------- VERSION 10 vom 01.08.86 -------------------- *)’’’’’’’’>PACKET referencer errors DEFINES report referencer error:’’’’’>(* Programm zur Fehlerbehandlung des referencers.’’’’’’’’’’’’’ Autor: Rainer Hahn *)’’’’’’TEXT VAR fehlerdummy,’’’’’’’’’ message;’’’’’’’’’’’’’>PROC report referencer error (INT CONST error nr,’’’’’’’’’’’’’. INT CONST line nr,’> TEXT CONST addition):’’’’’’’’’’’’’’. einfache fehlermeldung aufbauen;’’’’’’’’’’’’ diese auf terminal ausgeben;. fehlermeldung in fehlerdatei ausgeben.’’’’’’.einfache fehlermeldung aufbauen:’’’’’’’’’’’’’’. message := "WARNUNG in Zeile ";’’’’’’’’’’’’’ message CAT text (line nr);’ message CAT " : ";’’’’’’’’’’ message CAT simple message.’diese auf terminal ausgeben: ’ putline (message).’’’’’’’’’’.fehlermeldung in fehlerdatei ausgeben: ’’’’’’’ note (message); ’’’’’’’’’’’’ fehlerdummy := " >>> ";’’’ fehlerdummy CAT zusatz;’’’’’ note (fehlerdummy);’’’’’’’’’simple message: ’’’’’’’’’’’’’’ SELECT error nr OF ’’’’’’’’’> CASE 1: "Text Denoter ueber mehr als eine Zeile"’’’’’’’’’’’’> CASE 2: "Nicht beendeter Text Denoter bei Programmende" ’’’’> CASE 3: "Kommentar ueber mehr als eine Zeile" ’’’’’’’’’’’’’’> CASE 4: "Nicht beendeter Kommentar bei Programmende" ’’’’’’’ CASE 5: "Ueberdeckung"’’’’’’. CASE 6, 9: "Refinement mehrmals eingesetzt" > CASE 7, 10: "Refinement wird nicht aufgerufen"’’’’’’’’’’’’’’. CASE 8: "Objekt wird nicht angesprochen"’’’’ OTHERWISE "" ’’’’’’’’’’’’’’’ SELECT error nr OF ’’’’’’’’’> CASE 1, 2, 3, 4: "Ueber " + addition + " Zeilen"’’’’’’’’’’’’ CASE 5: addition’’’’’’’’’’’’ CASE 6, 7, 8: addition’’’’’’> CASE 9, 10: addition + " in mindestens einer Prozedur"’’’’’’> OTHERWISE "interner Fehler: HRZ Bielefeld benachrichtigen!" .END PROC report referencer error ’’’’’’’’’’’’’END PACKET referencer errors; N(************************************************************************)’’’’PACKET name table handling’’’’. DEFINES NAMETABLE,’’’’’’’’’’’’’’. empty name table,’’’’’’’. put name, ’’’’’’’’’’’’’’. get name,’’’’’’’’’’’’’’’. dump table:’’’’’’’’’’’’’.(* Programm zur Speicherung von Namen.’’’’’’’’ Autor: Rainer Hahn *)’’’’’’.LET hash table length = 1024, ’’’’’’. hash table length minus one = 1023,’’’’’’’. start of name table = 255,’’’’’’’’. name table length = 2000;’’’’’’’>TYPE NAMETABLE = STRUCT (INT number of entries, ’’’’’’’’’’’’’’> ROW hash table length INT hash table,> ROW name table length INT next, ’’’’’N ROW name table length TEXT name table); ’’’’’’’’’’’’’TEXT VAR dummy, f;’’’’’’’’’’’’NPROC put name (NAMETABLE VAR n, TEXT CONST name, INT VAR pointer):’’’’’’’’’’’’ INT VAR errechneter index; ’. hash (name, errechneter index); ’’’’’’’’’’’’ IF noch kein eintrag ’’’’’’’. THEN gaenzlich neuer eintrag ’’’’’’’’’’’’’. ELSE name in vorhandener kette ’’’’’’’’’’’noch kein eintrag: ’’’’’’’’’’’. n . hash table [errechneter index] = 0. ’’’’gaenzlich neuer eintrag: ’’’’’N n . hash table [errechneter index] := n . number of entries; ’’’’’’’’’’’’’’’. neuer eintrag (n, name, pointer).’’’’’’’’’’’name in vorhandener kette:’’’’N INT VAR dieser eintrag :: n. hash table [errööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööechneter index]; ’’’’’’’’’’’’’’’ IF name ist vorhanden’’’’’. THEN pointer := dieser eintrag;’’’’’’’’’ LEAVE put name ’’’’ ELIF kette zu ende’’’’’’’’> THEN neuer eintrag an vorhandene kette anketten; ’’’’’’’. neuer eintrag (n, name, pointer);’’ LEAVE put name’’’’’. ELSE naechster eintrag in der kette’’’’’name ist vorhanden: ’’’’’’’’’’. n . name table [dieser eintrag] = name.’’’’’kette zu ende: ’’’’’’’’’’’’’’’. n . next [dieser eintrag] = 0.’’’’’’’’’’’’’’.neuer eintrag an vorhandene kette anketten: ’’> n . next [dieser eintrag] := n . number of entries. ’’’’’’’’.naechster eintrag in der kette:’’’’’’’’’’’’’’’. dieser eintrag := n . next [dieser eintrag].END PROC put name; ’’’’’’’’’’’NPROC neuer eintrag (NAMETABLE VAR n, TEXT CONST name, INT VAR pointer):’’’’’’’> n . name table [n . number of entries] := name; ’’’’’’’’’’’’. n . next [n . number of entries] := 0; ’’’’’. pointer := n . number of entries;’’’’’’’’’’’. n . number of entries INCR 1; ’’’’’’’’’’’’’’> IF n . number of entries > name table length ’’’’’’’’’’’’’’’. THEN errorstop ("volle Namenstabelle")’’’’END PROC neuer eintrag;’’’’’’’.PROC hash (TEXT CONST name, INT VAR index) :’’ index := code (name SUB 1);’. FOR i FROM 2 UPTO length (name) REP’’’’’’’’’ addmult cyclic’’’’’’’’’’’’addmult cyclic :’’’’’’’’’’’’’’ index INCR index ;’’’’’’’’’’. IF index > hash table length minus one’’’’’’ THEN wrap around’’’’’’’’’’> index := (index + code (name SUB i)) MOD hash table length.’. index DECR hash table length minus one’’’’’’ENDPROC hash ;NPROC get name (NAMETABLE CONST n, INT CONST index, TEXT VAR t): ’’’’’’’’’’’’’’N IF index < n . number of entries AND index >= start of name table’’’’’’’’’’’. THEN t := n . name table [index] ’’’’’’’’’. ELSE errorstop ("Interner Fehler 1") ’’’’’END PROC get name; ’’’’’’’’’’’.PROC empty name table (NAMETABLE VAR n): ’’’’’> n . number of entries := start of name table; ’’’’’’’’’’’’’’. FOR i FROM 1 UPTO hash table length REP ’’’’ n . hash table [i] := 0 ’’END PROC empty name table;’’’’.PROC dump table (NAMETABLE CONST n): ’’’’’’’’’N put ("Bitte Name der Datei, in die die Namenstabelle gehen soll:");’’’’’’’’’ getline (f); file assoziieren; ’’’’’’’’’’ dump namens ketten; ’’’’’’’’ zusammenfassung.’’’’’’’’’’’’file assoziieren: ’’’’’’’’’’’’> FILE VAR file :: sequential file (output, f). ’’’’’’’’’’’’’’dump namens ketten:’’’’’’’’’’’. anz hash eintraege :: 0, ’’’’’’’’’’’. kette 3 eintraege :: 0;’’’’’’’’’’’’. FOR i FROM 1 UPTO hash table length REP ’’’’. IF n . hash table [i] <> 0 ’’’’’’’’’’’’’’’. THEN anz hash eintraege INCR 1;’’’’’’’’’> INT VAR naechster eintrag :: n . hash table [i];’’’ dump hash eintrag;’ ketten eintraege’’’dump hash eintrag: ’’’’’’’’’’’ dummy := text (i); ’’’’’’’’’> WHILE length (dummy) < 4 REP dummy CAT " " END REP;’’’’’’’’’ dummy CAT ": ".’’’’’’’’’’’’’ketten eintraege:’’’’’’’’’’’’’. INT VAR anz eintraege pro kette :: 0;’’’’’’’. WHILE naechster eintrag > 0 REP ’’’’’’’’’’’’. anz eintraege pro kette INCR 1;’’’’’’’’’’’ dummy CAT " ";’’’’’’’’’’’’. dummy CAT text (naechster eintrag);’’’’’’’ dummy CAT " -> ";’’’’’’’’’> dummy CAT n . name table [naechster eintrag]; ’’’’’’’’’’’’> naechster eintrag := n . next [naechster eintrag];’’’’’’’’. IF anz eintraege pro kette > 2 ’’’’’’’’’’’’’. THEN kette 3 eintraege INCR 1 ’’’’’’’’’’’’ putline (file, dummy). ’’’’’zusammenfassung: ’’’’’’’’’’’’’ statistik ueberschrift;’’’’’ anzahl hash eintraege; ’’’’’ anzahl namens eintraege;’’’’ verkettungsfaktor; ’’’’’’’’’ anzahl laengerer ketten.’’’’statistik ueberschrift: ’’’’’’ line (file, 2);’’’’’’’’’’’’’ dummy := " ---------- "; ’’’. dummy CAT "S T A T I S T I K:";’’’’’’’’’’’’’ dummy CAT " ---------- ";’’’ putline (file, dummy);’’’’’’ line (file, 2).’’’’’’’’’’’’’anzahl hash eintraege:’’’’’’’’. dummy := "Anzahl Hash-Eintraege (max. "; ’’’. dummy CAT text (hash table length); ’’’’’’’’ dummy CAT "): "; ’’’’’’’’’’’. dummy CAT text (anz hash eintraege); ’’’’’’’ putline (file, dummy).’’’’’’anzahl namens eintraege: ’’’’’. dummy := "Anzahl Namen (max. "; ’’’’’’’’’’’’N dummy CAT text (name table length - start of name table + 1); ’’’’’’’’’’’’’’ dummy CAT "): "; ’’’’’’’’’’’N dummy CAT text (n . number of entries - start of name table);’’’’’’’’’’’’’’’ putline (file, dummy).’’’’’’verkettungsfaktor: ’’’’’’’’’’’N dummy := "Verkettungsfaktor (Anzahl Namen / Anzahl Ketten): "; ’’’’’’’’’’’’’N dummy CAT text (real (n . number of entries - start of name table) /’’’’’’’’. real (anz hash eintraege));’’’’’’’’’’ putline (file, dummy).’’’’’’anzahl laengerer ketten:’’’’’’. dummy := "Anzahl Ketten > 2 Eintraege: "; ’’. dummy CAT text (kette 3 eintraege); ’’’’’’’’ putline (file, dummy).’’’’’’END PROC dump table; ’’’’’’’’’.END PACKET name table handling; ’’’’’’’’’’’’’’N(***************************************************************************)’.PACKET scanner DEFINES init scanning, ’’’’’’’’. init name table with,’’. dump name table,’’’’’’’. get name,’’’’’’’’’’’’’’. end scanning,’’’’’’’’’’. line number,’’’’’’’’’’’. symbol: ’’’’’’’’’’’’’’’.(* Programm zum scannen von ELAN-Programmen.’’ Autor: Rainer Hahn *)’’’’’’FILE VAR eingabe; ’’’’’’’’’’’’.DATASPACE VAR ds alt := nilspace,’’’’’’’’’’’’’. ds neu := nilspace;’’’’’’’’’’’’’BOUND NAMETABLE VAR tabelle;’’TEXT VAR zeile, ’’’’’’’’’’’’’’ zeichen, ’’’’’’’’’’’’ dummy;’’’’’’’’’’’’’’’LET end of program = ""30"",’’ eop = 1, ’’’’’’ identifier = 2, ’’’’’’ keyword = 3, ’’’’’’ delimiter = 4,’’’’’’’ punkt = 46,’’’’’’ doppelpunkt = 58, ’’’’’ init symbol = 30, ’’’’’ assign symbol = 31;’’’’’’INT VAR zeilen nr,’’’’’’’’’’’’ zeichen pos;’’’’’’’’’’.PROC init name table with (TEXT CONST worte):’INT VAR index; forget (ds alt);’’’’’’’’’’’’ ds alt := nilspace;’’’’’’’’’ tabelle := dsalt;’’’’’’’’’’’. empty name table (CONCR (tabelle));’’’’’’’’’ INT VAR anf :: 1, ’’’’’’’’’’. ende :: pos (worte, ",", 1); ’’’’’’’ WHILE ende > 0 REP ’’’’’’’’’. dummy := subtext (worte, anf, ende - 1); ’. put name (CONCR (tabelle), dummy, index);  anf := ende + 1; ’’’’’’’’’. ende := pos (worte, ",", ende + 1)’’’’’’’’. dummy := subtext (worte, anf); ’’’’’’’’’’’’’. put name (CONCR (tabelle), dummy, index) ’’’.END PROC init name table with; ’’’’’’’’’’’’’’’.PROC init scanning (TEXT CONST f): ’’’’’’’’’’’ IF exists (f) ’’’’’’’’’’’’’’ THEN namenstabelle holen;’ erste zeile lesen ’’’. ELSE errorstop ("Datei existiert nicht") ’namenstabelle holen: ’’’’’’’’’ forget (ds neu);’’’’’’’’’’’’ ds neu := ds alt; ’’’’’’’’’’ tabelle := ds neu. ’’’’’’’’’erste zeile lesen: ’’’’’’’’’’’. eingabe := sequential file (input, f);’’’’’’ IF eof (eingabe) ’’’’’’’’’’’. THEN errorstop ("Datei ist leer")’’’’’’’’’ ELSE zeile := "";’’’’’’’’’ zeilen nr := 0; ’’’’’ zeile lesen; ’’’’’’’’. naechstes non blank zeichen’’’’’’’’’’END PROC init scanning; ’’’’’’PROC dump name table: ’’’’’’’’. dump table (CONCR (tabelle)) ’’’’’’’’’’’’’’’END PROC dump name table; ’’’’.PROC end scanning (TEXT CONST f): ’’’’’’’’’’’’ IF anything noted’’’’’’’’’’’> THEN eingaööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööbe := sequential file (modify, f);’’’’’’’’’’’’’’ note edit (eingabe) ’END PROC end scanning; ’’’’’’’.PROC get name (INT CONST index, TEXT VAR t): ’. get name (CONCR (tabelle), index, t) ’’’’’’’END PROC get name; ’’’’’’’’’’’PROC zeile lesen: ’’’’’’’’’’’’ getline (eingabe, zeile); ’’ zeilen nr INCR 1; ’’’’’’’’’’ cout (zeilen nr);’’’’’’’’’’’ zeichen pos := 0’’’’’’’’’’’’END PROC zeile lesen; ’’’’’’’’.PROC naechstes non blank zeichen: ’’’’’’’’’’’’N zeichen pos := pos (zeile, ""33"", ""254"", zeichen pos + 1); ’’’’’’’’’’’’ IF zeichen pos <> 0 ’’’’’’. THEN zeichen := (zeile SUB zeichen pos);. LEAVE naechstes non blank zeichen’’ ELIF eof (eingabe) ’’’’’’’. THEN zeichen := end of program;’’’’’’’’’. LEAVE naechstes non blank zeichen’’ ELSE zeile lesen’’’’’’’’.END PROC naechstes non blank zeichen; ’’’’’’’’PROC naechstes zeichen: ’’’’’’. IF zeichen pos > length (zeile) ’’’’’’’’’’’’ THEN IF eof (eingabe) ’’’’. THEN zeichen := end of program;’’’’. LEAVE naechstes zeichen’’’’’’’ ELSE zeile lesen ’’ zeichenpos INCR 1; ’’’’’’’’’. zeichen := zeile SUB zeichenpos’’’’’’’’’’’’’END PROC naechstes zeichen; ’’INT PROC line number:’’’’’’’’’> IF zeichenpos = pos (zeile, ""33"", ""254"", 1)’’’’’’’’’’’’’ THEN zeilen nr - 1 ’’’’’’’ ELSE zeilen nr ’’’’’’’’’’’END PROC line number; ’’’’’’’’.PROC symbol (INT VAR symb, type): ’’’’’’’’’’’’. suche naechstes checker symbol ’’’’’’’’’’’.suche naechstes checker symbol: ’’’’’’’’’’’’’’ SELECT code (zeichen) OF’’’’. CASE 30: (* end of programn *)’’’’’’’’’’’’’’ symb := eop; ’’’’’’’’’’’’’ type := eop; ’’’’’’’’’’’’’ LEAVE symbol’’’’’’’’’’’’’’N CASE 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,’’’’’N 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122:’’’’’’’’’’’’ (* small letters *)’’’’’’’ identifier aufsammeln; ’’’. put name (CONCR (tabelle), dummy, symb); ’ type := identifier;’’’’’’’ LEAVE symbol’’’’’’’’’’’’’’N CASE 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,’’’’> 82, 83, 84, 85, 86, 87, 88, 89, 90: (* large letters *). schluesselwort aufsammeln; ’’’’’’’’’’’’’’’. put name (CONCR (tabelle), dummy, symb); ’ type := keyword; ’’’’’’’’’ LEAVE symbol’’’’’’’’’’’’’’ CASE 34: (* " *)’’’’’’’’’’’’ skip text denoter ’’’’’’’’ CASE 40: (* ( *) ’’’’’’’’’’’. IF (zeile SUB zeichen pos + 1) = "*" ’’’’’ THEN skip comment ’’’’’’. ELSE symb := code (zeichen);’’’’’’’’’’’’ type := delimiter;’. naechstes non blank zeichen;’’’’’’’ LEAVE symbol;’’’’’’ CASE 58: (* : *) ’’’’’’’’’’’. IF (zeile SUB zeichenpos + 1) = "=" ’’’’’’. THEN symb := assign symbol;’’’’’’’’’’’’’ zeichenpos INCR 1’’. ELIF (zeile SUB zeichenpos + 1) = ":" ’’’’. THEN symb := init symbol; ’’’’’’’’’’’’’’ zeichenpos INCR 1 ’. ELSE symb := doppelpunkt ’’’’’’’’’’’’’’’ type := delimiter; ’’’’’’’. naechstes non blank zeichen;’’’’’’’’’’’’’’ LEAVE symbol’’’’’’’’’’’’’’> CASE 48, 49, 50, 51, 52, 53, 54, 55, 56, 57: (* 0 - 9 *)’’’’ int denoter skippen;’’’’’’ IF zeichen = "."’’’’’’’’’’. THEN naechstes non blank zeichen;’’’’’’’ IF digit’’’’’’’’’’’. THEN real denoter skippen’’’’’’’’. ELSE symb := punkt; ’’’’’’’’’’’’’. type := delimiter;’’’’’’’’’’ LEAVE symbol. CASE 41, 44, 46, 59, 61: (* ) , . ; = *) ’’ symb := code (zeichen); ’’ type := delimiter; ’’’’’’’. naechstes non blank zeichen; ’’’’’’’’’’’’’ LEAVE symbol’’’’’’’’’’’’’’. OTHERWISE naechstes non blank zeichen’’’’’’’END PROC symbol; ’’’’’’’’’’’’’PROC real denoter skippen:’’’’ int denoter skippen;’’’’’’’’ IF zeichen = "e" ’’’’’’’’’’’. THEN naechstes non blank zeichen;’’’’’’’’’ int denoter skippen’’END PROC real denoter skippen;PROC int denoter skippen:’’’’’ naechstes non blank zeichen;. WHILE zeichen >= "0" AND zeichen <= "9" REP’. naechstes non blank zeichen’’’’’’’’’’’’’’’ zeichenpos DECR 1;’’’’’’’’’’ naechstes non blank zeichen’END PROC int denoter skippen;’PROC identifier aufsammeln:’’’ dummy := zeichen; ’’’’’’’’’’. naechstes non blank zeichen; ’’’’’’’’’’’’’ IF small letter or digit ’ THEN dummy CAT zeichen ’. ELSE LEAVE identifier aufsammeln ’’’’’’’.END PROC identifier aufsammeln; ’’’’’’’’’’’’’’.PROC schluesselwort aufsammeln:’’’’’’’’’’’’’’’ dummy := ""; sammle schluesselwort; ’’’’’ IF dummy = "END" ’’’’’’’’’’’ THEN noch einmal ’’’’’’’’’sammle schluesselwort: ’’’’’’’ WHILE large letter REP ’’’’’ dummy CAT zeichen;’’’’’’’’ naechstes zeichen’’’’’’’’’ IF zeichen = " "’’’’’’’’’’’’. THEN naechstes non blank zeichen’’’’’’’’’’ sammle schluesselwort’’’’’’’.END PROC schluesselwort aufsammeln; ’’’’’’’’’’PROC skip text denoter: ’’’’’’ INT VAR anz zeilen :: 0; ’’’> zeichen pos := pos (zeile, """", zeichenpos + 1);’’’’’’’’’’’ WHILE zeichen pos = 0 REP ’’ naechste zeile einlesen;’’. zeichen pos := pos (zeile, """");’’’’’’’’’ ende text denoter.’’’’’’’’’’ende text denoter: ’’’’’’’’’’’ IF anz zeilen > 1 ’’’’’’’’’’N THEN report referencer error (1, zeilen nr, text (anz zeilen))’’’’’’’’’’’’. naechstes non blank zeichen. ’’’’’’’’’’’’’’’naechste zeile einlesen: ’’’’’ IF eof (eingabe) ’’’’’’’’’’’N THEN report referencer error (2, zeilen nr, text (anz zeilen));’’’’’’’’’’’. zeichen := end of program; ’’’’’’’’’’. LEAVE skip text denoter ’’’’’’’’’’’’’ ELSE zeile lesen;’’’’’’’’’ anz zeilen INCR 1 ’’’END PROC skip text denoter; ’’PROC skip comment:’’’’’’’’’’’’ INT VAR anz zeilen :: 0;’’’’> zeichen pos := pos (zeile, "*)", zeichenpos + 2);’’’’’’’’’’’ WHILE zeichen pos = 0 REP ’’ naechste zeile einlesen; ’. zeichen pos := pos (zeile, "*)"); ’’’’’’’’ ende comment.’’’’’’’’’’’’’’’ IF anz zeilen > 1 ’’’’’’’’’’N THEN report referencer error (3, zeilen nr, text (anz zeilen))’’’’’’’’’’’’ zeichen pos INCR 2;’’’’’’’’’. naechstes non blank zeichen. ’’’’’’’’’’’’’’’naechste zeile einlesen: ’’’’’ IF eof (eingabe) ’’’’’’’’’’’N THEN report referencer error (4, zeilen nr, text (anz zeilen));’’’’’’’’’’’. zeichen := end of program; ’’’’’’’’’’ LEAVE skip comment’’’ ELSE zeile lesen;’’’’’’’’’ anz zeilen INCR 1 ’’’END PROC skip comment;’’’’’’’’.BOOL PROC small letter or digit: ’’’’’’’’’’’’’N (zeichen >= "0" AND zeichen <= "9") OR (zeichen >= "a" AND zeichen <= "z") ’.END PROC small letter or digit; ’’’’’’’’’’’’’’BOOL PROC small letter: ’’’’’’. zeichen >= "a" AND zeichen <= "z"’’’’’’’’’’’END PROC small letter;’’’’’’’’BOOL PROC large letter:’’’’’’’. zeichen >= "A" AND zeichen <= "Z"’’’’’’’’’’’END PROC large letter;’’’’’’’’BOOL PROC digit:’’’’’’’’’’’’’’. zeichen >= "0" AND zeichen <= "9"’’’’’’’’’’’END PROC digit;’’’’’’’’’’’’’’’END PACKET scanner;’’’’’’’’’’’N(*************************************************************************)’’’.PACKET referencer2 DEFINES referencer:’’’’’’’’.(* Programm fuer den 'referencer'’’’’’’’’’’’’’ Autor: Rainer Hahn *)’’’’’’ max index;’’’’’’’’’’’’TEXT VAR dummy,’’’’’’’’’’’’’’’ dummy2,’’’’’’’’’’’’’’ name;DATASPACE VAR ds;’’’’’’’’’’’’’BOUND ROW max TEXT VAR liste;’.BOOL VAR initialisiert :: FALSE,’’’’’’’’’’’’’’. symbol bereits geholt,’’’’’’’’’’’’’’’. globale deklarationen;’’’’’’’’’’’’’’’ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööLET max = 1751,’’’ global text = "<--G",’ local text = "<--L",’ refinement text = "<--R",’ procedure text = "<--P",’ eop = 1, ’’’’’’’ identifier = 2, ’’’’’’’ keyword = 3, ’’’’’’’ init symbol = 30, ’’’’’’ assign symbol = 31,’’’’’’’ klammer auf = 40, ’’’’’’ klammer zu = 41,’’’’’’’ komma = 44,’’’’’’’ punkt = 46,’’’’’’’ doppelpunkt = 58, ’’’’’’ semikolon = 59, ’’’’’’ proc symbol = 255, ’ end proc symbol = 256,’’ packet symbol = 257, ’ end packet symbol = 258,’’ type symbol = 259, ’ var symbol = 260,’’ const symbol = 261,’’ let symbol = 262,’’ leave symbol = 263,’’ op symbol = 264,’’ endop symbol = 265,’’ endif symbol = 266,’’ fi symbol = 266;’’PROC referencer: ’’’’’’’’’’’’’ referencer (last param) ’’’’END PROC referencer; ’’’’’’’’’.PROC referencer (TEXT CONST check file): ’’’’’. referencer (check file, check file + ".r") ’END PROC referencer; ’’’’’’’’’>PROC referencer (TEXT CONST check file, dump file):’’’’’’’’’’’ IF exists (check file)’’’’’’. THEN dump file ggf loeschen’’’’’’’’’’’’’’’> ELSE errorstop ("Eingabe-Datei nicht vorhanden")’’’’’’’’’’ disable stop;’’’’’’’’’’’’’’’. start referencing (check file, dump file); forget (ds);’’’’’’’’’’’’’’ enable stop.dump file ggf loeschen:’’’’’’’ IF exists (dump file)’’’’’’’. THEN forget (dump file, quiet)’’’’’’’’’’’’END PROC referencer;’’’’’’’’’’>PROC start referencing (TEXT CONST check file, dump file):’’’’ enable stop; ueberschrift;’’’’’’’’’’’’’’’ initialisierung;’’’’’’’’’’’’ verkuerzte syntax analyse;’’. in dump file kopieren (dump file);’’’’’’’’’’ end scanning (check file).’’ put ("REFERENCER:");’’’’’’’’ put (check file);’’’’’’’’’’’ putline (dump file).’’’’’’’’initialisierung:’’’’’’’’’’’’’’ IF NOT initialisiert’’’’’’’’ THEN init name table with’N("PROC,ENDPROC,PACKET,ENDPACKET,TYPE,VAR,CONST,LET,LEAVE,OP,ENDOP,ENDIF,FI");  initialisiert := TRUE ds := nilspace;’’’’’’’’’’’’’ liste := ds; max index := end op symbol;’ dummy := checkfile.’’’’’’’’’verkuerzte syntax analyse: ’’’. globale deklarationen := TRUE;’’’’’’’’’’’’’’ init scanning (dummy);’’’’’’. symbol bereits geholt := FALSE;’’’’’’’’’’’’’ IF symbol bereits geholt ’. THEN symbol bereits geholt := FALSE ’’’’ ELSE symbol (symb, typ)’ IF typ = keyword ’’’’’’’’’. THEN nach schluesselwort verarbeiten’’’’ ELIF symb = punkt’’’’’’’’’. THEN ggf refinement aufnehmen’’’’’’’’’’’ ELIF typ = identifier ’’’’N THEN identifier aufnehmen und ggf aktuelle parameter liste’’’’’’’’’’’’’’ UNTIL typ = eop ENDREP. ’’’’>identifier aufnehmen und ggf aktuelle parameter liste:’’’’’’’’ in die liste (symb, "");’’’’ symbol (symb, typ); ’’’’’’’’ IF symb = klammer auf ’’’’’’. THEN aktuelle parameter aufnehmen ’’’’’’’’. ELSE symbol bereits geholt := TRUE ’’’’’’’.nach schluesselwort verarbeiten:’’’’’’’’’’’’’’ SELECT symb OF ’’’’’’’’’’’’’ CASE let symbol:’’’’’’’’’’’’. let deklarationen aufsammeln’’’’’’’’’’’’’’ CASE packet symbol:’’’’’’’’’. namen des interface aufsammeln’’’’’’’’’’’’ CASE end packet symbol:’’’’’ skip naechstes symbol ’’’’. CASE var symbol, const symbol:’’’’’’’’’’’’’’. datenobjekt deklaration aufnehmen’’’’’’’’’ CASE proc symbol:’’’’’’’’’’’. globale deklarationen := FALSE; ’’’’’’’’’’. prozedur name und ggf parameter aufsammeln CASE end proc symbol:’’’’’’’. globale deklarationen := TRUE;’’’’’’’’’’’’ skip naechstes symbol’’’’’ CASE op symbol: ’’’’’’’’’’’’. globale deklarationen := FALSE; ’’’’’’’’’’> operatornamen skippen und ggf parameter aufsammeln ’’’’’’’ CASE end op symbol: ’’’’’’’’. globale deklarationen := TRUE; ’’’’’’’’’’’ skip until (semikolon) ’’’ CASE type symbol: ’’’’’’’’’’. namen der typ definition aufsammeln’’’’’’’ CASE leave symbol: ’’’’’’’’’ skip naechstes symbol’’’’’skip naechstes symbol: ’’’’’’’ symbol (symb, typ). ’’’’’’’’END PROC start referencing;’’’.PROC aktuelle parameter aufnehmen: ’’’’’’’’’’’ symbol (symb, typ); ’’’’’’ IF typ = identifier ’’’’’’. THEN in die liste (symb, "") ’’’’’’’’’’’. UNTIL symb = klammer zu END REP. ’’’’’’’’’’’.END PROC aktuelle parameter aufnehmen; ’’’’’’’PROC ggf refinement aufnehmen: symbol (symb, typ); ’’’’’’’’. symbol bereits geholt := TRUE;’’’’’’’’’’’’’’ WHILE typ = identifier REP ’ doppelpunkt oder selektor’doppelpunkt oder selektor:’’’’. INT CONST letzter id :: symb; ’’’’’’’’’’’’’’ symbol (symb, typ);’’’’’’’’’ IF symb = doppelpunkt’’’’’’’> THEN in die liste (letzter id, refinement text);’’’’’’’’’’. LEAVE ggf refinement aufnehmen’’’’’’’. ELSE in die liste (letzter id, "");’’’’’’’ IF symb = punkt ’’’’’. THEN symbol (symb, typ) ’’’’’’’’’’’. ELSE LEAVE ggf refinement aufnehmen.END PROC ggf refinement aufnehmen; ’’’’’’’’’’’.PROC namen des interface aufsammeln: ’’’’’’’’’ packet name ueberspringen;’’. namen der schnittstelle aufsammeln. ’’’’’’’’packet name ueberspringen: ’’’ symbol (symb, typ).’’’’’’’’’.namen der schnittstelle aufsammeln:’’’’’’’’’’’ symbol (symb, typ);’’’’’’’ IF typ = identifier ’’’’’’. THEN in die liste (symb, "")’’’’’’’’’’’’. UNTIL symb = doppelpunkt END REP.’’’’’’’’’’’.END PROC namen des interface aufsammeln; ’’’’’.PROC let deklarationen aufsammeln:’’’’’’’’’’’’ symbol (symb, typ);’’’’’’’ IF typ = identifier ’’’’’’ THEN let name aufnehmen’ ELIF typ = keyword ’’’’’’’. THEN bis zum komma oder semikolon’’’’’’’. UNTIL symb = semikolon END REP.’’’’’’’’’’’’’let name aufnehmen: ’’’’’’’’’’ IF globale deklarationen’’’’. THEN in die liste (symb, global text)’’’’’. ELSE in die liste (symb, "")’’’’’’’’’’’’’’ symbol (symb, typ);’’’’’’’ IF typ = identifier’’’’’’’. THEN in die liste (symb, "")’’’’’’’’’’’’> UNTIL symb = komma OR symb = semikolon END REP. ’’’’’’’’’’’’.END PROC let deklarationen aufsammeln;’’’’’’’’.PROC namen der typ definition aufsammeln: ’’’’ symbol (symb, typ); ’’’’’’. bis zum komma oder semikolon’’’’’’’’’’’’’’. UNTIL symb = semikolon END REP ’’’’’’’’’’’’’.END PROC namen der typ definition aufsammeln;’.PROC bis zum komma oder semikolon: ’’’’’’’’’’’ INT VAR anz klammern :: 0; ’> symbol (symb, typ); (* fields aufnehmen weggelassen *)’’’’ IF symb = klammer auf ’’’’. THEN anz klammern INCR 1 ’’’’’’’’’’’’’’’ ELIF symb = klammer zu’’’’ THEN anz klammern DECR 1N UNTIL (symb = komma AND anz klammern = 0) OR symb = semikolon ENDREP.’’’’’’’.END PROC bis zum komma oder semikolon; ’’’’’’’.PROC datenobjekt deklaration aufnehmen:’’’’’’’ symbol (symb, typ); ’’’’’’’’ IF globale deklarationen’’. THEN in die liste (symb, global text) ’’. ELSE in die liste (symb, local text) ’’’ skip ggf initialisierung;’ IF symb = komma ’’’’’’’’’’ THEN symbol (symb, typ) > UNTIL symb = semikolon OR symb = punkt END REP.’’’’’’’’’’’’’skip ggf initialisierung: ’’’’ symbol (symb, typ); ’’’’’’’’> IF symb = init symbol OR symb = assign symbol’’’’’’’’’’’’’’’. THEN initialisierung skippen’’’’’’’’’’’’’’initialisierung skippen: ’’’’’ INT VAR anz klammern :: 0;’’. INT CONST vorheriges symbol :: symb,’’’’’’. vorheriger typ :: typ;’’’’’’’ symbol (symb, typ); ’’’’’’ IF symb = ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööklammer auf ’’’’. THEN anz klammern INCR 1;’’’’’’’’’’’’’’’. IF vorheriger typ = identifier ’’’’> THEN in die liste (vorheriges symbol, "") ’’’’’’’ ELIF symb = klammer zu ’’’. THEN anz klammern DECR 1; ’’’’’’’’’’’’’’. IF vorheriger typ = identifier ’’’’> THEN in die liste (vorheriges symbol, "") ’’’’’’’> ELIF vorheriger typ = identifier AND symb = doppelpunkt’’’> THEN in die liste (vorheriges symbol, refinement text); > LEAVE datenobjekt deklaration aufnehmen’’’’’’’’’’’’. ELIF vorheriger typ = identifier ’’’’’’’’’> THEN in die liste (vorheriges symbol, "")’’’’’’’’’’’’’’’. UNTIL (symb = komma AND anz klammern = 0)’’’> OR symb = semikolon OR symb = end proc symbol OR ’’’’N symb = end op symbol OR symb = endif symbol OR symb = fi symbol’’’’’’.END PROC datenobjekt deklaration aufnehmen; ’’>PROC prozedur name und ggf parameter aufsammeln: ’’’’’’’’’’’’’ prozedurname aufsammeln;’’’’ symbol (symb, typ); ’’’’’’’’ IF symb <> doppelpunkt’’’’’’. THEN formale parameter aufsammeln’’’’’’’’’prozedurname aufsammeln:’’’’’’ symbol (symb, typ); ’’’’’’’’. in die liste (symb, procedure text).’’’’’’’’>END PROC prozedurname und ggf parameter aufsammeln; ’’’’’’’’’’>PROC operatornamen skippen und ggf parameter aufsammeln: ’’’’’ symbol (symb, typ);’’’’’’’’’ IF symb <> doppelpunkt’’’’’’. THEN formale parameter aufsammeln ’’’’’’’’>END PROC operatornamen skippen und ggf parameter aufsammeln;’’.PROC formale parameter aufsammeln: ’’’’’’’’’’’ symbol (symb, typ); ’’’’’’ IF typ = identifier ’’’’’’. THEN in die liste (symb, local text); ’’. UNTIL symb = doppelpunkt END REP ’’’’’’’’’’’.END PROC formale parameter aufsammeln; ’’’’’’’.PROC skip until (INT CONST zeichencode): ’’’’’ skip until (zeichencode, 0) END PROC skip until; ’’’’’’’’’.PROC skip until (INT CONST z1, z2):’’’’’’’’’’’ symbol (symb, typ) ’’’’’’’. UNTIL symb = z1 OR symb = z2 END REP’’’’’’’’END PROC skip until; ’’’’’’’’’>PROC in die liste (INT CONST index, TEXT CONST zusatz): ’’’’’’ IF index > max index ’’’’’’’. THEN listenelemente initialisieren; ’’’’’’ IF aktueller eintrag = "" ’’ THEN namens eintrag ’’’’’’ aktueller eintrag CAT " ";’’. aktueller eintrag CAT text (line number);’’’. aktueller eintrag CAT zusatz.’’’’’’’’’’’’’’’aktueller eintrag: ’’’’’’’’’’’ liste [index]. ’’’’’’’’’’’’’.listenelemente initialisieren: ’’’’’’’’’’’’’’’. FOR i FROM max index + 1 UPTO index REP ’’’’ liste [i] := ""’’’’’’’’’’ max index := index.’’’’’’’’’namens eintrag:’’’’’’’’’’’’’’’. get name (index, aktueller eintrag);’’’’’’’’. WHILE length (aktueller eintrag) < 15 REP ’’ aktueller eintrag CAT " "’ aktueller eintrag CAT ":".’’END PROC in die liste; ’’’’’’’TEXT VAR zeile;’’’’’’’’’’’’’’’>PROC in dump file kopieren (TEXT CONST dump file): ’’’’’’’’’’’. putline ("Ausgabedatei erstellen"); ’’’’’’’’. f := sequential file (output, dump file); ’’. kopieren und ggf fehlermeldung;’’’’’’’’’’’’’ ggf sortieren;’’’’’’’’’’’’’’ zeile ggf aufspalten;’’’’’’’ to line (f, 1).’’’’’’’’’’’’’.kopieren und ggf fehlermeldung:’’’’’’’’’’’’’’’. FOR i FROM fi symbol UPTO max index REP ’’’’ zeile := liste [i];’’’’’’’ IF zeile <> "" ’’’’’’’’’’’> THEN ausgabe der referenz und ggf fehlermeldung’’’’’’’’’.ausgabe der referenz und ggf fehlermeldung:’’’ putline (f, zeile);’’’’’’’’’. ggf referencer fehlermeldung.’’’’’’’’’’’’’’’ggf sortieren:. IF yes (dump file + " sortieren")’’’’’’’’’’’ THEN sort (dump file);’’’’zeile ggf aufspalten: ’’’’’’’’ to line (f, 1);’’’’’’’’’’’’’ WHILE NOT eof (f) REP’’’’’’’ read record (f, zeile);’’’ ggf aufspalten’’’’’’’’’’’’ggf aufspalten:’’’’’’’’’’’’’’’>INT VAR anf :: 1, ende :: pos (zeile, " ", 72); ’’’’’’’’’’’’’’> THEN dummy := subtext (zeile, 1, ende - 1);’’’’’’’’’’’’’’’. write record (f, dummy);’’’’’’’’’’’’’. spalte bis restzeile auf;’’’’’’’’’’’’. dummy CAT subtext (zeile, anf); ’’’’’. write record (f, dummy);’’’’’’’’’’’’’spalte bis restzeile auf:’’’’’. dummy := " ";’’’’’’’’’’’ anf := ende + 1;’’’’’’’’’. ende := pos (zeile, " ", ende + 55);’’’’’ down (f); insert record (f);’’’’’’’ IF ende <= 0’’’’’’’’’’’’’. THEN LEAVE spalte bis restzeile auf’’’’> dummy CAT subtext (zeile, anf, ende - 1); ’’’’’’’’’’’’’’’ write record (f, dummy); .END PROC in dump file kopieren; ’’’’’’’’’’’’’’.PROC ggf referencer fehlermeldung:’’’’’’’’’’’’N name := subtext (zeile, 1, min( pos(zeile, " "), pos(zeile, ":")) - 1);’’’’’> dummy := subtext (zeile, pos (zeile, ": ") + 2); ’’’’’’’’’’’. ueberdeckungs ueberpruefung; ’’’’’’’’’’’’’’’ not used ueberpruefung; ’’’’ IF pos (dummy, "R") > 0’’’’’. THEN refinement mehr als zweimal verwendetueberdeckungs ueberpruefung: ’N IF pos (dummy, global text) > 0 AND pos (dummy, local text) > 0 ’’’’’’’’’’’’. THEN dummy2 := "und Zeile "; ’’’’’’’’’’’’’> dummy2 CAT text (nr (pos (dummy, local text))); ’’’’’ dummy2 CAT ": "; ’’’’ dummy2 CAT name;’’’’’. report referencer error’’’’’’’’’’’’’’> (5, nr (pos (dummy, global text)), dummy2) ’’’’’’’not used ueberpruefung: ’’’’’’ IF pos (dummy, " ") = 0 AND’N (pos (dummy, global text) > 0 OR pos (dummy, local text) > 0 OR’’’’’’’’’’. pos (dummy, refinement text) > 0)’’’’’’’. THEN not used fehlermeldung’’’’’’’’’’’’’’’not used fehlermeldung: ’’’’’’ report referencer error’’’’’> (8, nr (length (dummy) - length (local text) + 1), name).’’’.refinement mehr als zweimal verwendet: ’’’’’’’. INT VAR refinement deklarationen :: 0, ’’’’’. refinement aufrufe :: 0, ’’’’’. anf :: 1;’’’’’’. WHILE pos (dummy,"R", anf) > 0 REP’’’’’’’’’’. refinement deklarationen INCR 1; ’’’’’’’’’. anf := pos (dummy, "R", anf) + 1 ’’’’’’’’’. WHILE pos (dummy, " ", anf) > 0 REP’’’’’’’’’. refinement aufrufe INCR 1; ’’’’’’’’’’’’’’’. anf := pos (dummy, " ", anf) + 1 ’’’’’’’’’. IF refinement deklarationen = 1 ’’’’’’’’’’’’. THEN IF refinement aufrufe > 1 ’’’’’’’’’’’. THEN report referencer error’’’’’’’N (6, nr (pos (dummy, refinement text)), name) ’’’’’’’’’’’’. ELIF refinement aufrufe = 0 ’’’’’’’’’. THEN report referencer error’’’’’’’N (7, nr (pos (dummy, refinement text)), name) ’’’’’’’’’’’’. ELIF refinement deklarationen > 1 ’’’’’’’’’’N THEN IF 2 * refinement deklarationen - 1 > refinement aufrufe’’’’’’’’’’’’’> THEN report referencer error (9, 0, name)’’’’’’’’’’N ELIF 2 * refinement deklarationen - 1 < refinement aufrufe’’’’’’’’’’’> THEN report referencer error (10, 0, name)’’’’’’’’’.END PROC ggf referencer fehlermeldung;’’’’’’’’INT PROC nr (INT CONST ende):’ INT VAR von :: ende - 1;’’’’N WHILE von > 0 AND ((dummy SUB von) >= "0" AND (dummy SUB von) <= "9") REP’’’ von DECR 1. int (subtext (dummy, von + 1, ende - 1))’’’’END PACKET referencer2;’’’’’’’ referencer ("ref fehler");’’ edit ("ref fehler.r");UNTIL no ("nochmal") END REP*)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’reporter’’’’’’’11.01.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń¾a€ė’’Š’’’’ŠŠ>M’ž’’’’’’reporter’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€’F’’’’’’’’’’’’’’’’’’’±€’1’’’’’’’’’’’’’’’’’’’ń€’*’’’’’’’’’’’’’’’’’’’!’+’’’’’’’’’’’’’’’’’’’Q’2’’’’’’’’’’’’’’’’’’’‘’3’’’’’’’’’’’’’’’’’’’с’(’’’’’’’’’’’’’’’’’’’‚’+’’’’’’’’’’’’’’’’’’’1‚’,’’’’’’’’’’’’’’’’’’’a‚’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘‚’C’’’’’’’’’’’’’’’’’’’į‚’B’’’’’’’’’’’’’’’’’’’1ƒ’A’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įƒ’’’’’’’’’’’’’’’’’’’’’’ type;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’გ’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’”„’’’’’’’’’’’’’’’’’’’’’’ tag = 1,’’’’’’’’’’ bold = 2;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’į„’;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!…’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A…’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’±…’’’’’’’’’’’’’’’’’’’’į…’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’†’(’’’’’’’’’’’’’’’’’’’1†’’’’’’’’’’’’’’’’’’’’Q†’’’’’’’’’’’’’’’’’’’’†’(’’’’’’’’’’’’’’’’’’’±†’’’’’’’’’’’’’’’’’’’’ц’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ń†’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’1‡’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q‡’,’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’‘‡’’’’’’’’’’’’’’’’’’’’±‡’5’’’’’’’’’’’’’’’’’’’ń‡’1’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’1ˆ’’’’’’’’’’’’’’’’’’’’Qˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ˆ’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ш’’’’’’’’’’’’’’’’’’’’ńˆ’’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’1‰’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’Q‰’’’’’’’’’’’’’’’’’’’’q‰’’’’’’’’’’’’’’’’’’’’‘‰’ ’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’Į‰’’’’’’’’’’’’’’’’’’’’ቒ0’’’’’’’’’’’’’’’’’’’!Š’’’’’’’’’’’’’’’’’’’’AŠ’%’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ vorwaerts’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŠ’’’’’’’’’’’’’’’’’’’’‘Š’"’’’’’’’’’’’’’’’’’’’ĮŠ’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’!‹’-’’’’’’’’’’’’’’’’’’’Q‹’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’”‹’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į‹’&’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’1Œ’’’’’’’’’’’’’’’’’’’’QŒ’%’’’’’’’’’’’’’’’’’’’’’ THEN ’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’”Œ’4’’’’’’’’’’’’’’’’’’’ጒ’’’’’’’’’’’’’’’’’’’’$’’’’’’’’’’’’’’’’’’’1’2’’’’’’’’’’’’’’’’’’’q’;’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’±’4’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ scanne kopf:’’’’’’’’’!Ž’’’’’’’’’’’’’’’’’’’’AŽ’’’’’’’’’’’’’’’’’’’’aŽ’,’’’’’’’’’’’’’’’’’’’‘Ž’’’’’’’’’’’’’’’’’’’’±Ž’&’’’’’’’’’’’’’’’’’’’įŽ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’я’’’’’’’’’’’’’’’’’’’’ń’#’’’’’’’’’’’’’’’’’’’!’(’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ѐ’’’’’’’’’’’’’’’’’’’’ń’ ’’’’’’’’’’’’’’’’’’’!‘’’’’’’’’’’’’’’’’’’’’1‘’’’’’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’A‘’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q‘’’’’’’’’’’’’’’’’’’’’‘‘’,’’’’’’’’’’’’’’’’’’’Į‘’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’a’’*’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’ђ’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’1“’’’’’’’’’’’’’’’’’’’’Q“’’’’’’’’’’’’’’’’’’’’q“’’’’’’’’’’’’’’’’’’’’‘“’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į“’"’’’’’’’’’’’’’’’’’’’ń“’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’1”’,’’’’’’’’’’’’’’’’’’’a”’’’’’’’’’’’’’’’’’’’’”’5’’’’’’’’’’’’’’’’’’’Į”’’’’’’’’’’’’’’’’’’’’į”’%’’’’’’’’’’’’’’’’’’’•’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A•’)’’’’’’’’’’’’’’’’’’’q•’’’’’’’’’’’’’’’’’’’’‘•’’’’’’’’’’’’’’’’’’’’±•’(’’’’’’’’’’’’’’’’’’’į•’’’’’’’’’’’’’’’’’’’’–’$’’’’’’’’’’’’’’’’’’’1–’)’’’’’’’’’’’’’’’’’’’a–’%’’’’’’’’’’’’’’’’’’’‘–’$’’’’’’’’’’’’’’’’’’’Į–’)’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń–’$’’’’’’’’’’’’’’’’’’’!—’K’’’’’’’’’’’’’’’’’’’q—’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”—’’’’’’’’’’’’’’’’’’’’Į—’’’’’’’’’’’’’’’’’’’’į—’’’’’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’!˜’’’’’’’’’’’’’’’’’’’’A˜’’’’’’’’’’’’’’’’’’’’q˜’#’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”˜’’’’’’’’’’’’’’’’’’’’’’ type >= 7.’’’’’’’’’Į˜’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ᘒ’’’’’’’’’’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’!™’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’A™’’’’’’’’’’’’’’’’’’’’a™’’’’’’’’’’’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’”™’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į™’’’’’’’’’’’’’’’’’’’’į™’#’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’1š’’’’’’’’’’’’’’’’’’’’Qš’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qš’H’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įš’’’’’’’’’’’’’’’’’’’’ᚒ ’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1›’*’’’’’’’’’’’’’’’’’’’a›’’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’±›’(’’’’’’’’’’’’’’’’’’’į›’’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’!œ’’’’’’’’’’’’’’’’’’’’Aœ’’’’’’’’’’’’’’’’’’’’aœ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’œ’-’’’’’’’’’’’’’’’’’’’±œ’’’’’’’’’’’’’’’’’’’’Įœ’’’’’’’’’’’’’’’’’’’’ᜒ5’’’’’’’’’’’’’’’’’’’!’1’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’ž’ ’’’’’’’’’’’’’’’’’’’1ž’’’’’’’’’’’’’’’’’’’’Qž’"’’’’’’’’’’’’’’’’’’’ž’3’’’’’’’’’’’’’’’’’’’Įž’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įž’)’’’’’’’’’’’’’’’’’’’Ÿ’,’’’’’’’’’’’’’’’’’’’AŸ’,’’’’’’’’’’’’’’’’’’’qŸ’’’’’’’’’’’’’’’’’’’’‘Ÿ’'’’’’’’’’’’’’’’’’’’’ĮŸ’’’’’’’’’’’’’’’’’’’’្$’’’’’’’’’’’’’’’’’’’ ’ ’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’A ’’’’’’’’’’’’’’’’’’’’a ’#’’’’’’’’’’’’’’’’’’’‘ ’*’’’’’’’’’’’’’’’’’’’Į ’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į ’!’’’’’’’’’’’’’’’’’’’’’ anfang > 0.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’1”’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a”’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’””’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į”’’’’’’’’’’’’’’’’’’’’¢’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1¢’’’’’’’’’’’’’’’’’’’’Q¢’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘¢’’’’’’’’’’’’’’’’’’’’±¢’4’’’’’’’’’’’’’’’’’’’’’ IF end > 0’’’’’’’’’ń¢’-’’’’’’’’’’’’’’’’’’’!£’2’’’’’’’’’’’’’’’’’’’a£’5’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”£’’’’’’’’’’’’’’’’’’’’Į£’&’’’’’’’’’’’’’’’’’’’ń£’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!¤’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q¤’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘¤’*’’’’’’’’’’’’’’’’’’’Į¤’’’’’’’’’’’’’’’’’’’’ᤒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’„’!’’’’’’’’’’’’’’’’’’’1„’’’’’’’’’’’’’’’’’’’’’’ THEN ’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’q„’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’”„’’’’’’’’’’’’’’’’’’’’Į„’:’’’’’’’’’’’’’’’’’’’¦’2’’’’’’’’’’’’’’’’’’’A¦’’’’’’’’’’’’’’’’’’’’a¦’$’’’’’’’’’’’’’’’’’’’‘¦’&’’’’’’’’’’’’’’’’’’’Į¦’2’’’’’’’’’’’’’’’’’’’§’)’’’’’’’’’’’’’’’’’’’1§’’’’’’’’’’’’’’’’’’’’Q§’"’’’’’’’’’’’’’’’’’’’§’+’’’’’’’’’’’’’’’’’’’±§’-’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ IF trace on’’’’’’’’į§’,’’’’’’’’’’’’’’’’’’’Ø’’’’’’’’’’’’’’’’’’’’1Ø’$’’’’’’’’’’’’’’’’’’’aØ’&’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’‘Ø’’’’’’’’’’’’’’’’’’’’±Ø’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŃØ’’’’’’’’’’’’’’’’’’’’ńØ’’’’’’’’’’’’’’’’’’’’’’ zaehle mit.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’©’’’’’’’’’’’’’’’’’’’’1©’9’’’’’’’’’’’’’’’’’’’q©’’’’’’’’’’’’’’’’’’’’©’K’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ zaehle mit:’’’’’’’’’’Ń©’>’’’’’’’’’’’’’’’’’’’Ŗ’/’’’’’’’’’’’’’’’’’’’QŖ’5’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’‘Ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ŗ’2’’’’’’’’’’’’’’’’’’’ńŖ’ ’’’’’’’’’’’’’’’’’’’!«’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A«’3’’’’’’’’’’’’’’’’’’’«’ ’’’’’’’’’’’’’’’’’’’±«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń«’3’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’1¬’’’’’’’’’’’’’’’’’’’’Q¬’’’’’’’’’’’’’’’’’’’’q¬’’’’’’’’’’’’’’’’’’’’‘¬’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±¬’3’’’’’’’’’’’’’’’’’’’ń¬’’’’’’’’’’’’’’’’’’’’­’’’’’’’’’’’’’’’’’’’’’’ IF value’’’’’’’’’’’1­’’’’’’’’’’’’’’’’’’’’Q­’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’q­’’’’’’’’’’’’’’’’’’’’‘­’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±­’’’’’’’’’’’’’’’’’’’’Ń­’’’’’’’’’’’’’’’’’’’’ń­’’’’’’’’’’’’’’’’’’’’®’’’’’’’’’’’’’’’’’’’’1®’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q®’’’’’’’’’’’’’’’’’’’’q®’’’’’’’’’’’’’’’’’’’’‘®’’’’’’’’’’’’’’’’’’’’±®’’’’’’’’’’’’’’’’’’’’Ń®’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń®’’’’’’’’’’’’’’’’’’’’!Æ’’’’’’’’’’’’’’’’’’’’AÆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aÆ’3’’’’’’’’’’’’’’’’’’’”Æ’’’’’’’’’’’’’’’’’’’’ĮÆ’’’’’’’’’’’’’’’’’’’’ᯒ’’’’’’’’’’’’’’’’’’’’’ IF value’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’’’!°’’’’’’’’’’’’’’’’’’’’1°’’’’’’’’’’’’’’’’’’’’Q°’’’’’’’’’’’’’’’’’’’’q°’’’’’’’’’’’’’’’’’’’’‘°’’’’’’’’’’’’’’’’’’’’”°’’’’’’’’’’’’’’’’’’’’Į°’"’’’’’’’’’’’’’’’’’’’ń°’.’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’!±’’’’’’’’’’’’’’’’’’’’A±’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a±’C’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±±’’’’’’’’’’’’’’’’’’’’Į±’’’’’’’’’’’’’’’’’’’’į±’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!²’’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’A²’’’’’’’’’’’’’’’’’’’’Q²’’’’’’’’’’’’’’’’’’’’q²’"’’’’’’’’’’’’’’’’’’’”²’’’’’’’’’’’’’’’’’’’’Į²’’’’’’’’’’’’’’’’’’’’į²’’’’’’’’’’’’’’’’’’’’’’ END REP’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1³’’’’’’’’’’’’’’’’’’’’Q³’’’’’’’’’’’’’’’’’’’’q³’’’’’’’’’’’’’’’’’’’’‘³’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±³’’’’’’’’’’’’’’’’’’’’ѳ’’’’’’’’’’’’’’’’’’’’ń³’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö