@CAT,P 1015-022-023.,///10000 @ASG,T TEMP.,///10000 @ELT,OI TEMP.1015-022-023,,,130113053241,000 )@@G@@**PF**@@@[=+@@@@@@@@@@@[@CM@@@]FE@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AA )@@G@@@@@@N@@]O@@@]F^ EQ@@@@P@@#^@@@]F^ ;Q@@@@@@@@@@@-@@@@@@@@@@@@@@@@@@@@@@@@AB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AD )@@G@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Y@@@@@@@@@@@@@@@AE )@@G@@@@@@@@@@@@@@@@X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@@&@@@@E@@$AN )@@G@@ASMSUB @@@@@W@@[@@@ @@@@@[]@@@@B@@@@W@#4$]FCTITLES AO )@@G@@@@@@@@@@[@@@ @ @#@^^@@@@F@@@@WBC@8GQBTTY @@@@@@@@[@@@AP )@@G@@ @ @#@^^@@@@L@@@@WMAL#[ECCFORM @@@@@@@@[@@@ AQ )@@G@@@ @A@ ^@@@@H@@@@W^1N]FCSETUP @@@@@@@@[@@@ AV )@@G@@@@@@@[^@@@@F@@@@X.KU%]FCHOLS @@@@@@@@[@@@ @@@@@[^@@@@OAW )@@G@@@@@@YCLYQ]FCSK2 @@@@@@@@[@@@ @@@@@[^@@@@X@@@@YWI#T]GCAX )@@G@@END @@@@@@@@[@@@ @ @@@[^@@@@]@@@@Y9@G%]DCSAM AY )@@G@@@@@@@@@@A@@@ @SK@X @@@@[U@@@@Y;E!&FHAEYE @@@@@@@@A@@@AZ )@@G@@ @[9@4#^@@@@_@@@@)PG/<^]DCAL @@@@@@@@A@@S BA )@@G@@@9H[]2^@@@ .@@@@-OJ>T##CPOSTER @@M@@@@@[@@NFOR @ @@@[^@@@@"BB )@@G@@@@@@$LH3<^]DPOSTER @@T@@@@@[@@@ASM @ @@@[]@@@@^@@@@*JH3(^]DBC )@@G@@POSTER @@@@@@@@A@@@ @(2@[]CFOO BD )@@G@@@@@@@@@@A@@P [P'@TM^@@@#8@@@@%6E[N^^DFOO @@@@@@@@[@@@BE )@@G@@ @ @@@[#@@@@\@@@@,,[-$GGCCOMMON @@@@@@@@^@@@ BF )@@G@@@[@@@[@@@@@D@@@@\XAVZ^FDCALMAP @@@@@@@@[@@@ @ @@@[A@@@@ BG )@@G@@@@@@\&AWS^FDCAL @@@@@@@@[@@@NEWS @ @@@[[@@@@V@@@@\:AW=^FDBH )@@G@@POSTER @@@@@@@@[@@@NEWS @ @@@[[@@@@D@@@@0AAW&^FDMINUS2 BI )@@G@@@@@@@@@@[@@+NEWS @ @@@[[@@@@C@@@@0JAW$^FDRELEASE @@@@@@@@[@@@BJ )@@G@@DOC @ @@@[B@@@@V@@@@0R@:AFYD3D @@@@@@@@[@@@ BK )@@G@@@ @@@[^@@@@"@@@@02GA8D^EBATTLESHIPS @@@@@@@@A@@@ [R8@(J^@@@#9BL )@@G@@@@@@10K?"BMDTREK @@@@@@@K[@@Z @ @@@[@@@@@;@@@@5(I>YBIEBM )@@G@@TREK @@@@@@@@A@@@ ]R.@*>^@@@ :@@@@6=N-D]QECOKOV BN )@@G@@@@@@@@@K[@@- @ @@@[@@@@@W@@@@/JM37GIECOKOV @@@@@@@@A@@@BO )@@G@@ EPC^/)E)@@&0@@@@/:GL-FKEMINUS2 @@@@@@@@ @@@RLIB$ BP )@@G@@@@@[8[RFRANDEM @@@@@@@@ @@@RLIB$ @@@[<+@@[@@]BQ )@@G@@@@@[<)[&K[RFTANDEM @@@@@@@@ @@@RLIB$ @@@[<&@@[@@#@@@[<<[&W[RFBR )@@G@@GETIO$ @@@@@@@@ @@@RLIB$ @@@[<(@@]@@]@@@[<$[&'[RFGRAPH BS )@@G@@@@@@@@@@ @@@RLIB$ @@@[=Z@@[@@4@@@[<:[$^[RFLOOKEQ$ @@@@@@@@ @@@BT )@@G@@RLIB$ @@@[=-@@[@@[@@@[=)[$P[RFSYSIO @@@@@@@@[@@, BU )@@G@@@ @@@[]@@@[/@@@[[*B?OFEEP1MAP @@@@@@@@[@@@FLAP @ @@@[A@@@@ BV )@@G@@@@@[#=C^>CKBFILE @@@@[D@@[@@7 @ @@@[]@@@#P@@@[#(D[FFKCBW )@@G@@MACS @@@@@@@@[@@0 @ @@@[]@@@#K@@@[A"C3)FKCEDQT BX )@@G@@@@@@@@@@[@@@P1MAP @ @@@[A@@@@ @@@[EIL*>FFEEDDBK @@@@@@@@[@@_BY )@@G@@ @ @@@[]@@@[E@@@[ENL^2 ]CSYSIO @@@@@@@@ @@@ BZ )@@G@@@@@[F\@@^@@M@@@[FXK<4G]EMISC @@@@@@@@ @@@ @@@[G=@@O@@1CA )@@G@@@@@[F3K=MG]EMACS @@@@@@@@ @@@ @@@[HL@@^@@T@@@[G8K=!G]ECB )@@G@@VARS @@@@@@@@ @@@ @@@[H-@@#@@G@@@[HPK=/G]EFLC CC )@@G@@@@@@@@@@ @@@ @@@[I#@@^@@Z@@@[H=K>LG]EIRAS @@@@@@@@ @@@CD )@@G@@ @@@[IN@@^@@G@@@[IBK>)G]EDNG @@@@@@@@ @@@ CE )@@G@@@@@[IW@@#@@ @@@[IRK>%G]EPRINT @@@@@@@@ @@@ @@@[I+@@]@@#CF )@@G@@@@@[IZK>2G]ETOPS @@@@@@@@ @@@ @@@[I*@@#@@^@@@[I=K>'G]ECG )@@G@@FILE @@@@@@@@ @@@ @@@[JE@@A@@Z@@@[I:K&IG]EGP CH )@@G@@@@@@@@@@ @@@ @@@[J%@@ @@U@@@[JKK&>G]ETXD @@@@@@@@ @@@CI )@@G@@ @@@[J8@@]@@D@@@[J\K&,G]EIMM @@@@@@@@ @@@ CJ )@@G@@@@@[K[@@#@@B@@@[J'K&'G]EHDG @@@@@@@@ @@@ @@@[KC@@]@@^CK )@@G@@@@@[K^K$^G]ESEQ @@@@@@@@ @@@ @@@[KI@@]@@^@@@[KEK$GG]ECL )@@G@@CALLR @@@@@@@@ @@@ @@@[KP@@#@@ @@@[KKK$RG]EMSGS CM )@@G@@@@@@@@@@ @@@ @@@[K(@@J@@L@@@[KSK$=G]EEDDBK @@@@@@@@ @@@CN )@@G@@ @@@[LQ@@G@@Y@@@[K8K(WG]EEDDBF @@@@@@@@ @@@ CO )@@G@@@@@[L>@@]@@#@@@[L+K(*G]EMANUAL @@@@@@@K[@@@ @ @@@[[@@@NXCP )@@G@@@@@[L$N)'D#EMCC @@@@@@@@[@[# @ @@@[]@@@]Z@@@[>^C1&FKCCQ )@@G@@MCC @@@@@@@@ @@@ @@@[$'@@I@@R@@@[$ZGFEMACROS @@@@@@@@[@@@NYU CY )@@G@@@ @@@[@@@@@C@@@]##[2']]FEDQ @@@@@@@K[@@@NEWS @ @@@[[@@@#KCZ )@@G@@@@@]#F[2;]]FAAPCT @@@@@@@@[@@@ @ @@@[@@@@@K@@@@!4F]L[QFDA )@@G@@CKEY @@@@@@@@[@@@ @ @@@[@@@@[D@@@@,^FAO[QFCNSLIT DB )@@G@@@@@@@@@@[@@@ @ @@@[@@@@@B@@@@\HFE:[QFCSN @@@@@@@@[@@@DC )@@G@@ @ @@@[@@@@@^@@@@\OJ"K]$GBEDRC @@@@@@@@[@@@ @ @@@[@@@@@^@@@@\&KA1GBEDF )@@G@@EX8LOD @@@@@@@@[@@@ @ @@@[@@@@@]@@@@\%KB[GBEEXITF0 DG )@@G@@@@@@@@@@[@@@ @ @@@[@@@@@+@@@@\?KEXGBEFNCCNT @@@@[)@@[@@@DH )@@G@@ @ @@@[@@@@@^@@@@0IKFQGBEINIT1 @@@@[(@@[@@@ DI )@@G@@@ @@@[@@@@@^@@@@0MI(Q[]FINIT2 @@@@@@@@[@@@ @ @@@[@@@@@^DJ )@@G@@@@@@0QKG3GBEIO @@@@@@@@[@@@ @ @@@[@@@@@D@@@@0UAW9GMEDK )@@G@@KPOOL @@@@@@@@[@@@ @ @@@[@@@@@[@@@@0[L&EPEIO-WITH-FIX @@@@@@@@[@@@ @ @@@[@@@@[[EN )@@G@@@@@@8SL3 EQEAASMTAGS @@@@@@@@[@@@ @ @@@[[@@@[N@@@@9TEN5EREEO )@@G@@FALL @@@@@@@@[@@@ @ @@@[[@@@@Q@@@@'?O/1EVESN$AP EP )@@G@@@@@@@@@@[@@@ @ @@@[@@@@[=@@@@;]@I]EWEIO @@@@@@@@[@@@EQ )@@G@@ @ @@@[@@@@@/@@@@/&KZ%EYEIOMSA @@@@@@@@[@@@ ER )@@G@@@ @@@[@@@@@ @@@@.+MQREYESMSAPR @@@@]A@@[@@@ @ @@@[@@@@@FES )@@G@@@@@@.$MU2GDESMUPQ @@@@@@@@[@@@ EW )@@G@@@ @@@[@@@@@ @@@@":J#4GFEK DISTRIBUTION <<<<<<<<<',/,@G@@@@ *' ACCEX )@@G@@OUNT',T16,'FILES',T26,'FIXED',T37,'REMOV',T46,'SEC TAPES', @F@@@@ *EY )@@G@@T58,'V-OPTION',T69,'G-OPTION',T84,'F2',T95,'F4',T105,'F17', @E@@@@ *EZ )@@G@@T116,'F14',T127,'F40',/,' -----',21('------'),/,) @[@@@@ @ @@@@FA )@@G@@ 1003 FORMAT (1X,2A6,I6,10I11)@[@@@@ @B@@@@ 1004 FORMAT (1X,2A6,I4,FB )@@G@@I7,I6,6I5,2I6) @[@@@@ @D@@@@ 1005 FORMAT ('0FILES:',I6,', FIXEDFC )@@G@@ TRACKS:',I6, @E@@@@ *', V-OPT TRACKS:',I6,', SECURE BACKUP BLFD )@@G@@OCKS:',I6,/,@C@@@@ *16X,'REMOV TRACKS:',I6,', G-OPT TRACKS:',@ @@@@FE )@@G@@ *I6,A1,' UNLOADED:',I6) @[@@@@ @C@@@@ 1006 FORMAT(1H1,'SUMMARFF )@@G@@Y BY BILLING AREA: ', @E@@@@ *3X,'FILES (F) TRACKS (R) V/G-OPFG )@@G@@T SEC TAPES'/) @[@@@@ @A@@@@ 1007 FORMAT(1H0,4A6,4I9,3X,I9) FH )@@G@@@[@@@@ @ @@@@ 1008 FORMAT ('0END GBILL') @[@@@@ @ @@@@ 2000 FI )@@G@@FORMAT(4A6,I4,10I5,'GB')@[@@@@ @]@@@@ END ___ F1RE BACKUP BLFJ )@@G@@)@@@F]S@@@@@)@#@C@)@]@C@)[G@C@)@#@IS)@?@C@IN HOU@@@@@[@@@@@@@@@@@@@@@@@@FK )@@G@@/,0@@@AA@@@F)@![S@@@@@@@ /AMC ORNELLROCK/C ER L CENTMEDICAFL )@@G@@ SE AB@@@F)@8[S@@@@@@@,G) ACT (T,USTUDENCH RESEARSORED FM )@@G@@UNSPON SEARCHRED RESPONSOAC@@@F)[#[C@@@@@@@)@[@E@@@@@@@ FN )@@G@@ OTHER EXEC CTS AD@@@F)@][F#L#L#L#L] #@K3@@@@@FO )@@G@@;)@@@PC@@@@]@[=@@@@@@@[H/,0@@@ @@[X4 @@[X3 @@[X2 @@[X1AE@@@F)@F[M[@^G^G1FP )@@G@@#H#G@@C@@@@][^0@@]+8);__C^)@@][@@@@#C/@@@[/K@@@L*@@@@GG/@__";C@@@ # READ @E@@@@ J SQRSEF JH )@@G@@ . $A NO,SQRSEF YES @A@@@@ L A1,IDBLSW .JI )@@G@@@A@@@@ TZ A1 .@A@@@@ J SQRGJJ )@@G@@T9 .@A@@@@ LA,U A1,1 .@A@@@@ J JK )@@G@@ SQRG10 .@A@@@@SQRGT9 SZ A1 .@G@@@@JL )@@G@@SQRG10 . $P DOUBLE BUFFER SW TO A1 JM )@@G@@@E@@@@ LA A2,IBNUMR . $P BLOCK NUMBER TO A2 @G@@@@JN )@@G@@ SA A2,IBRSTA . $P SAVE BLK # FOR WHICH READ ST JO )@@G@@@G@@@@ LMJ X11,IBREAD . $P START READ OPERATION FOR NJP )@@G@@XT I B@G@@@@ J SQRGT2 . $J SQRGT2 NEW INDEX BLOJQ )@@G@@CK OBTAINED @A@@@@SQRSEF . NO MORE BLOCKS TO READ @A@@@@ LAJR )@@G@@,U A0,1 .@G@@@@ SA A0,REOFSW . $P SEJS )@@G@@T END OF FILE SWITCH @C@@@@ J SQRGT2 .JT )@@G@@ $J SQRGT2 @]@@@@ . @A@@@@SQRFBL . FIRST BLOCK TO BE READ JU )@@G@@@G@@@@ SZ IDBLSW . $P SET DOUBLE BUFFER SWITCH TJV )@@G@@O ZERO@E@@@@ SZ A1 . $P PROPER SWITCH TO A1 JW )@@G@@@E@@@@ LA,U A2,0 . $P BLOCK NUMBER TO A2 @G@@@@JX )@@G@@ LMJ X11,IBREAD . $W ISSUE READ FOR 1ST BLOCK JY )@@G@@@A@@@@ TP IIOPKT+3 .@E@@@@ ER WAITJZ )@@G@@$ . $P WAIT FOR END OF READ@A@@@@ TZ,S1 IIOPKT+3 KA )@@G@@ .@A@@@@ J IIOERR .@A@@@@ KB )@@G@@ .@A@@@@ LA A0,IDBLSW @A@@@@ KC )@@G@@ LA A3,IBUF,A0 @G@@@@ SA A3,IRADDR .KD )@@G@@ $P UPDATE ADDRESS OF BLOCK @A@@@@ LA,H2 A0,1,A3 KE )@@G@@ .@G@@@@ SA A0,SQRRIN . $P UPDATE NUM OF INDICKF )@@G@@ES IN BLK @A@@@@ LA A5,IBNUMR .@A@@@@ AAKG )@@G@@,U A5,1 .@G@@@@ S A5,IBNUMR . $P UPKH )@@G@@DATE # OF BLOCKS READ @G@@@@ TG A5,IBNUMW .KI )@@G@@ $T # OF BLKS WRITTEN > # READ @E@@@@ J SQEOF1 KJ )@@G@@ . $A NO,SQEOF1 YES @G@@@@ .KK )@@G@@ $P PREPARE TO START NEXT OP [ READ]@A@@@@ LA A1,IDBLSW KL )@@G@@ @^@@@@ TZ A1 @A@@@@ J SQRG11 KM )@@G@@ @^@@@@ LA,U A1,1@A@@@@ J SQRG12 KN )@@G@@ @^@@@@SQRG11 SZ A1 @G@@@@SQRG12 . KO )@@G@@ . $P PROPER DBL BUFFER SW + A1 @A@@@@ LA A2,IKP )@@G@@BNUMR @G@@@@ SA A2,IBRSTA . $P SAVE BLK # FORKQ )@@G@@ WHICH READ START @C@@@@ LMJ X11,IBREAD . $W IBREAD KR )@@G@@@G@@@@ . $P DO NOT WAIT FOR THIS I/O KS )@@G@@ @]@@@@SQRG13 . @A@@@@ LA A0,IRADDR .@G@@@@KT )@@G@@ TNZ,H2 1,A0 . $T ANY INDICES IN BLOCK READ KU )@@G@@@G@@@@ J SQRNRI . $A NO,SQRNRI YES,SQRGT2 KV )@@G@@ @A@@@@ J SQRGT2 .@]@@@@ . @]@@@@KW )@@G@@SQEOF1 . @^@@@@ LA,U A3,1@G@@@@ SA A3,RKX )@@G@@EOFSW . $P SET READ END OF FILE SWITCH @C@@@@ J KY )@@G@@ SQRG13 . $J SQRG13 @]@@@@ . @A@@@@SQRGT4 . OVERFLOW KZ )@@G@@DEFINED FOR BLOCK @C@@@@ . NO MORE INDICES IN ORIGINAL BLOCK LA )@@G@@@G@@@@ TZ ROVFSW . $T WAS THIS BLOCK AN OVERFLOWLB )@@G@@ BLOCK@E@@@@ J SQROBL . $A YES,SQROBL NO LC )@@G@@@^@@@@ LA,U A0,1@E@@@@ SA A0,ROVFSW .LD )@@G@@ $P SET OVERFLOW SWITCH @A@@@@ LA A1,IBNUMR .@G@@@@LE )@@G@@ SA A1,SQRORB . $P SAVE ORIGINAL BLOCK # IN SQRORB LF )@@G@@@C@@@@SQROBL . NEED AN OVERFLOW INDEX BLOCK @G@@@@ TPLG )@@G@@ IIOPKT+3 . $P WAIT FOR PREVIOUS IO TO COMPLETE@A@@@@ LH )@@G@@ ER WAIT$ @A@@@@ TZ,S1 IIOPKT+3 LI )@@G@@@A@@@@ J IIOERR @G@@@@ LA A1,ILJ )@@G@@OBF1A . $P ADDRESS OF INDEX BLOCK TO A1 @A@@@@ LA LK )@@G@@ A2,IRADDR .@G@@@@ LA,H2 A3,0,A2 . $P # OF OVELL )@@G@@RFLOW BLOCK TO A3 @G@@@@ MSI,U A3,IBSIZE . $P WRLM )@@G@@D # AT BEG OF BLK TO A3 @E@@@@ DSL A3,36 .LN )@@G@@ PREPARE TO DIVIDE @E@@@@ DI,U A3,28 . $P SELO )@@G@@CTOR NUMBER TO A3 @E@@@@ TZ A4 . NO REMAILP )@@G@@NDER ALLOWED@A@@@@ ER ERR$ .@G@@@@ LALQ )@@G@@,U A4,020 . $P READ FUNCTION CODE TO A4 @G@@@@ LR )@@G@@ SA A4,IIOFUNC . $P READ FN CODE TO PACKET @G@@@@LS )@@G@@ SA A3,IIOSECT . $P SECTOR NUMBER TO PACKET LT )@@G@@@G@@@@ SA A1,IIOBUF . $P BUFFER ADDRESS TO I/O PKT LU )@@G@@ @A@@@@ L,U A0,IIOPKT .@E@@@@ ER LV )@@G@@ IO$ . $W IO$ ISSUE THE I/O @G@@@@ TP IIOPLW )@@G@@KT+3 . $P WAIT FOR I/O TO COMPLETE @A@@@@ ER LX )@@G@@ WAIT$ @A@@@@ TZ,S1 IIOPKT+3 @A@@@@ LY )@@G@@ J IIOERR @A@@@@ LA A1,IOBF1A .LZ )@@G@@@G@@@@ SA A1,IRADDR . $P UPDATE IRADDR BY NEW OVF BMA )@@G@@LK @^@@@@ LA,U A2,2@G@@@@ SA A2,IBRELR MB )@@G@@ . $P UPDATE IBRELR TO POINT TO REL 2 @G@@@@ LA A3,IMC )@@G@@BONRR . $P UPDATE # OF OVERFLOW BLOCKS READ@^@@@@ AA,U MD )@@G@@ A3,1@A@@@@ SA A3,IBONRR @A@@@@ LX ME )@@G@@ X8,IRADDR .@G@@@@ TNZ,H2 1,X8 . $T ANY INDIMF )@@G@@CES IN THIS BLOCK @E@@@@ J SQRNOI . $A NOMG )@@G@@,SQRNOI YES @G@@@@ LA,H2 A4,1,X8 . $P # OF INDMH )@@G@@ICES IN BLOCK TO A4 @G@@@@ SA A4,SQRRIN . $P UPMI )@@G@@DATE SQRRIN BY # OF REM INDX @A@@@@ AX X8,IBRELR MJ )@@G@@@E@@@@ LA A5,0,X8 . $P NEXT INDEX TO A5 @G@@@@MK )@@G@@ SA A5,RINDEX . $P INDEX OF RECORD TO RINDEX ML )@@G@@@^@@@@ ANA,U A4,1@G@@@@ SA A4,SQRRIN .MM )@@G@@ $P UPDATE # OF INDICES REMAINING @A@@@@ LA A0,IBRELR MN )@@G@@ @^@@@@ AA,U A0,2@G@@@@ SA A0,IBRELR MO )@@G@@ . $P UPDATE RELATIVE INDX BLK PTR @A@@@@ J SQRGMP )@@G@@T3 @C@@@@SQRNOI . NO MORE INDICES AVAILABLE IN THIS BLOCK@G@@@@MQ )@@G@@ TNZ,H2 0,X8 . $T ANY OVERFLOW BLOCKS DEFINED MR )@@G@@@E@@@@ J SQRGT5 . $A NO,SQRGT5 YES,SQRGT4@C@@@@MS )@@G@@ J SQRGT4 . $ @E@@@@SQRGT3 . INDEX FOUMT )@@G@@ND, BREAK DOWN AND GET TEMP FILE BLOCK @A@@@@ LA A1,RMU )@@G@@INDEX .@A@@@@ LSSL A1,6 .@E@@@@ SSMV )@@G@@L A1,6 . $P SECTOR NUMBER TO A1 @E@@@@ DSL MW )@@G@@ A1,36 . PREPARE TO DIVIDE @E@@@@ DI,U A1,TMX )@@G@@BSECT . $P BLOCK NUMBER TO A1 @G@@@@ MY )@@G@@ . $P SECTOR WITHIN BLOCK TO A2 @A@@@@ LA A3,TMZ )@@G@@BSQWN .@A@@@@ ANA,U A3,1 .@G@@@@ TGNA )@@G@@ A3,A1 . $T TEMP BLK NUM > LARGEST SEQ WR BL@G@@@@ NB )@@G@@ J SQRG14 . $J SQRG14 BLOCK IS NOT OVERFLOW @G@@@@NC )@@G@@ LMJ X11,TOREAD . $W TOREAD OVERFLOW BLOCK ND )@@G@@@C@@@@ J SQRG15 . $J SQRG15 @C@@@@SQRG14 . BLONE )@@G@@CK WHERE RECORD IS NOT OVERFLOW @C@@@@ LMJ X11,TBREADNF )@@G@@ . $W TBREAD @G@@@@ . UPON RETURNNG )@@G@@ SECTAD HAS SECTOR ADDR @A@@@@SQRG15 LA A0,SECTAD @G@@@@NH )@@G@@ AA,S1 A0,RINDEX . $P ADDRESS OF RECORD TO A0 NI )@@G@@@E@@@@ LA,H2 A5,0,A0 . $P RECORD LENGTH TO A5 @C@@@@NJ )@@G@@ ANA,U A5,EXTRAW . @B@[@@ ANA,U NK )@@G@@ A5,EXTRAW . @B@@@[ ANA,U A5,1 . NL )@@G@@@G@@@@ SA,H2 A5,2,X10 . $P RECORD LENGTH TO CALLING PNM )@@G@@ACKET @^@@@@ AA,U A0,1@G@@@@ SA A0,1,X10 NN )@@G@@ . $P ADDRESS OF RECORD TO PACKET @A@@@@ LA A1,RNO )@@G@@ECNMR @^@@@@ AA,U A1,1@E@@@@ SA A1,0NP )@@G@@,X10 . $P RECORD # TO PACKET @G@@@@ SA A1,RECNMR NQ )@@G@@ . $P UPDATE # OF RECORDS READ @G@@@@ SZ,T1 2,X1NR )@@G@@0 . $P ZERO STATUS (SUCCESSFUL) @C@@@@ J NS )@@G@@ *RETURN . $E EXIT @C@@@@SQREOF . END OF FILE NO MORE RECORDSNT )@@G@@ TO READ @^@@@@ LA,U A0,1@A@@@@ SA,T1 A0,2NU )@@G@@,X10 @A@@@@ J *RETURN @]@@@@SQRFLI . NV )@@G@@@G@@@@ LMJ X11,IBWRT1 . $W IBWRT1 FLUSH INDEX BUF NW )@@G@@ @G@@@@ TP IIOPKT+3 . $P MAKE SURE I/O IS NX )@@G@@DONE @C@@@@ ER WAIT$ . @G@@@@NY )@@G@@ TZ,S1 IIOPKT+3 . $P MAKE SURE I/O IS OK NZ )@@G@@@C@@@@ J IIOERR . @C@@@@ LAOA )@@G@@,U A0,1 . @E@@@@ SA A0,CRETSW OB )@@G@@ . $P SET CRETSW @G@@@@ SA A0,WRITSW OC )@@G@@ . $P SET WRITSW TO INDICATE EOW @C@@@@ LA A1,TBNUMW OD )@@G@@ . @I@@@@ SA A1,TBSQWN . $P SAVE OE )@@G@@# OF BLOCKS READ FOR EDIT @C@@@@ LA A1,IBNUMW OF )@@G@@ . @E@@@@ SA A1,IBNUMWO . $P UPDATOG )@@G@@E IBNUMWO @C@@@@ LA A2,RECNMW . @G@@@@OH )@@G@@ SA A2,RECNMC . $P SAVE == OF RECORDS IN RECNMC OI )@@G@@@C@@@@ J SQRFOK .$J SQRFOK@]@@@@/ OJ )@@G@@@]@@@@ . @]@@@@ . @]@@@@ . @]@@@@ . OK )@@G@@@]@@@@ . @]@@@@ . @E@@@@ . SUBROUTINE TO DOUBLE BUFFEROL )@@G@@ TEMPORARY FILE BLOCKS. @G@@@@ . UPON ENTRY, A1 HAS BLOCK NUM, A2 OM )@@G@@HAS REL SECTOR WITHIN BLOCK @G@@@@ . UPON RETURN, LOCATION SECTAON )@@G@@D WILL POINT TO BEG OF SECTOR IN BUFFER @]@@@@ . @]@@@@TBREADOO )@@G@@ . @C@@@@ SX,H2 X11,RET1 . $H TBREAD @G@@@@ OP )@@G@@ TNZ TBNUMR . $T ANY TEMP FILE BLOCKS READ @E@@@@OQ )@@G@@ J TBRNTB . $A NO,TBRNTB YES @A@@@@TBRGT1OR )@@G@@ . A BLOCK HAS BEEN READ @A@@@@ LA A4,TBNUMR OS )@@G@@@G@@@@ ANA,U A4,1 . $P LAST BLOCK NUMBER READ TO OT )@@G@@A4 @G@@@@ TLE A4,A1 . $T BLK # WANTED <= BLK OU )@@G@@# READ @E@@@@ J TBRNIN . $A NO,TBRNIN YES OV )@@G@@ @G@@@@ TE A4,A1 . $T BLK # WANTED = BLK #OW )@@G@@ READ @C@@@@ ER ERR$ . $E EXIT @C@@@@OX )@@G@@ J TBGETS . $J TBGETS @C@@@@TBRNIN . BLOCK WANOY )@@G@@TED IS NOT AVAILABLE @G@@@@ TP TIOPKT+3 .OZ )@@G@@ MAKE SURE I/O PACKET IS FREE @A@@@@ ER WAIT$ PA )@@G@@ @G@@@@ TZ,S1 TIOPKT+3 . MAKE SURE LAST I/O WAS PB )@@G@@OK @A@@@@ J TIOERR .@G@@@@ PC )@@G@@ . $ ANOTHER BLOCK MUST BE READY NOW @A@@@@ PD )@@G@@ LA A5,TBNUMR .@A@@@@ TZ TDBLSW .PE )@@G@@@A@@@@ J TBRGT2 .@A@@@@ LA,U A0,1PF )@@G@@ .@G@@@@ SA A0,TDBLSW . $P UPDATE TEMP FIPG )@@G@@LE DBLE BUF SW @A@@@@ J TBRGT3 .@A@@@@TBRGT2PH )@@G@@ SZ TDBLSW .@]@@@@TBRGT3 . @G@@@@ TE PI )@@G@@ A5,TBRSTA . $T IS NEXT BLOCK SAME AS STARTED @E@@@@ ERPJ )@@G@@ ERR$ . $E ERROR, SHOULD BE @C@@@@ AA,U PK )@@G@@ A5,1 . @G@@@@ SA A5,TBNUMR . $PPL )@@G@@ UPDATE BLOCK READ TO BLOCK READ + 1@G@@@@ LA A0,TDBLSW PM )@@G@@ . $P UPDATE TRADDR (ADDR OF TEMP BLK)@A@@@@ LA A4,TPN )@@G@@BUF,A0 .@A@@@@ SA A4,TRADDR .@G@@@@ LMPO )@@G@@J X11,TBRDE1 . $W TBRDE1 ST RDE OF NEXT BLK IF ANY@G@@@@ PP )@@G@@ . $P WILL NOT WAIT FOR NEW I/O @A@@@@PQ )@@G@@ LA A5,TBNUMR .@A@@@@ ANA,U A5,1 PR )@@G@@ .@G@@@@ TNE A1,A5 . $T BLOCK READ SAME AS BPS )@@G@@LOCK WANTED @E@@@@ J TBGETS . $A YES,TBGETS NO PT )@@G@@ @G@@@@ TNZ TEOFSW . $T IS TEMP FILE END OF PU )@@G@@FILE SW SET @E@@@@ J TBRNIN . $A NO,TBRNIN YES PV )@@G@@ @C@@@@ ER ERR$ . $E EXIT @G@@@@TBRNTBPW )@@G@@ . NO TEMP BLOCKS HAVE BEEN READ YET, READ BLOCK # IN A1 @C@@@@PX )@@G@@ . REGISTERS A1 AND A2 NOT TO BE CHANGED @A@@@@ SZ PY )@@G@@ TDBLSW @G@@@@ TP TIOPKT+3 . MAKE SURE IPZ )@@G@@/O PACKET IS FREE @A@@@@ ER WAIT$ @A@@@@QA )@@G@@ TZ,S1 TIOPKT+3 @A@@@@ J TIOERR QB )@@G@@ @A@@@@ LA A3,A1 .@E@@@@ MSI,U QC )@@G@@ A3,TBSECT . $P SECTOR NUMBER TO A3 @E@@@@ LA A4,TQD )@@G@@BUF . $P BUFFER ADDRESS TO A4@E@@@@ LA,U A5,020 QE )@@G@@ . $P I/O READ CODE TO A5 @E@@@@ SA A5,TIOFUNC .QF )@@G@@ $P I/O CODE TO TIOPKTT @G@@@@ SA A4,TIOBUF . $P BUQG )@@G@@FFER ADDRESS TO TIOPKT @G@@@@ SA A3,TIOSECT .QH )@@G@@ $P SECTOR NUMBER TO TIOPKT @E@@@@ LA,U A0,TIOPKT QI )@@G@@ . $P ISSUE THE I/O @^@@@@ ER IO$ @G@@@@ QJ )@@G@@ TP TIOPKT+3 . $P WAIT FOR I/O TO COMPLETE @A@@@@QK )@@G@@ ER WAIT$ @A@@@@ TZ,S1 TIOPKT+3 QL )@@G@@ @A@@@@ J TIOERR @G@@@@ SA QM )@@G@@ A4,TRADDR . $P UPDATE TEMP FILE ADDRESS @A@@@@ L QN )@@G@@ A5,A1 @^@@@@ AA,U A5,1@G@@@@ SAQO )@@G@@ A5,TBNUMR . $P UPDATE # OF TEMP FILES READ @G@@@@ QP )@@G@@ LMJ X11,TBRDE1 . $W TBRDE1 ST READ OF NEXT BL IF ANY@C@@@@QQ )@@G@@ J TBRGT1 . $J TBRGT1 @]@@@@ . @A@@@@QR )@@G@@TBGETS . BLOCK WANTED IS IN CORE @C@@@@ LA A0,TDBLSW QS )@@G@@ . @G@@@@ LA A0,TBUF,A0 . $P ADDR QT )@@G@@OF TEMP BUF TO A0 @G@@@@ MSI,U A2,28 . $P REL WQU )@@G@@RD DISPLACEMENT TO A2 @G@@@@ AA A0,A2 . $PQV )@@G@@ ADDRESS OF SECTOR WANTED TO A0 @G@@@@ S A0,SECTAD QW )@@G@@ . $P ADDR OF SECTOR WANTED TO SECTAD @C@@@@ J *RETQX )@@G@@1 . $P EXIT @]@@@@ . @E@@@@TBRDE1 . SUBROUTINE TO SQY )@@G@@TART READ OF NEXT TEMP BLOCK IF ANY @C@@@@ SX,H2 X11,RET2 QZ )@@G@@ . @G@@@@ LA A5,TBNUMR . $P A5 CONTARA )@@G@@INS NEXT REL BLK NUMBER @G@@@@ TG A5,TBSQWN . $T ANRB )@@G@@Y MORE BLOCKS TO BE READ @E@@@@ J TBRGT4 .RC )@@G@@ $A NO,TBRGT4 YES @G@@@@ . STARTRD )@@G@@ NEXT READ OPERATION (NO WAIT)@A@@@@ LA A0,TDBLSW .RE )@@G@@@A@@@@ TZ A0 .@A@@@@ J TBRGRF )@@G@@T5 .@A@@@@ LA,U A0,1 .@A@@@@ J RG )@@G@@ TBRGT6 .@G@@@@TBRGT5 SZ A0 . $P A0RH )@@G@@ HAS THE CORRECT DBL BUF SW @E@@@@TBRGT6 LA A4,TBUF,A0 .RI )@@G@@ $P BUFFER ADDRESS TO A4@A@@@@ SA A5,TBRSTA @E@@@@RJ )@@G@@ MSI,U A5,TBSECT . $P SECTOR NUMBER TO A5 @G@@@@ RK )@@G@@ TP TIOPKT+3 . $P WAIT TILL TIOPKT IS CLEAR @A@@@@RL )@@G@@ ER WAIT$ .@A@@@@ TZ,S1 TIOPKT+3 RM )@@G@@ .@G@@@@ J TIOERR . MAK SURE LAST I/O WAS ORN )@@G@@K @G@@@@ SA A4,TIOBUF . $P I/O BUFFER ADDRO )@@G@@R TO TIOPKT @G@@@@ SA A5,TIOSECT . $P I/O SECTRP )@@G@@OR NUMBER TO TIOPKT @G@@@@ LA,U A0,020 . $P RERQ )@@G@@AD FUNCTION CODE TO A0 @G@@@@ SA A0,TIOFUNC .RR )@@G@@ $P READ FUNCTION CODE TO TIOPKT @G@@@@ LA,U A0,TIOPKT RS )@@G@@ . $P ISSUE THE I/O WITHOUT WAIT @A@@@@ ER IO$ RT )@@G@@ .@C@@@@ J *RET2 . $E EXIT @]@@@@RU )@@G@@TBRGT4 . @^@@@@ LA,U A0,1@G@@@@ SA A0,TRV )@@G@@EOFSW . $P SET TEMP END OF FILE SWITCH @C@@@@ J RW )@@G@@ *RET2 . $E EXIT @]@@@@ . @G@@@@ . SUBROUTINE TO IRX )@@G@@NITIATE A READ OPERATION FOR INDEX BLOCK WHOSE REL @G@@@@ . NUMBER ISRY )@@G@@ IN REGISTER A2. THE PROPER DOUBLE BUFFERED SWITCH IS IN @A@@@@ . REGRZ )@@G@@ISTER A1 (VALUE 0 OR 1) @]@@@@ . @]@@@@IBREAD . @C@@@@SA )@@G@@ SX,H2 X11,RET1 . $H IBREAD @G@@@@ TP SB )@@G@@ IIOPKT+3 . $ MAKE SURE IIOPKT IS FREE @A@@@@ ERSC )@@G@@ WAIT$ @A@@@@ TZ,S1 IIOPKT+3 @A@@@@SD )@@G@@ J IIOERR @G@@@@ LA,U A3,020 SE )@@G@@ . $P I/O READ FN CODE TO A3 @E@@@@ SA A3,ISF )@@G@@IOFUNC . $P I/O CODE TO PACKET @E@@@@ LA A4,IBUF,A1SG )@@G@@ . $P BUFFER ADDRESS TO A4@G@@@@ SA A4,IIOBUF .SH )@@G@@ $P BUFFER ADDRESS TO PACKET @E@@@@ LA A5,A2 SI )@@G@@ . $P REL BLK # TO A5 @E@@@@ MSI,U A5,IBSECT .SJ )@@G@@ $P SECTOR # TO A5 @G@@@@ SA A5,IIOSECT . $P SESK )@@G@@CTOR NUMBER TO IIOPKT @A@@@@ LA,U A0,IIOPKT .SL )@@G@@@C@@@@ ER IO$ . $W IO$ @G@@@@ SASM )@@G@@ A2,IBRSTA . $P SAVE BLK NUM FOR WHICH READ ST @A@@@@ SN )@@G@@ J *RET1 @]@@@@ . @E@@@@ . SUBROUTINE TO RSO )@@G@@EAD OVERFLOW TEMP FILE BLOCKS INTO TOBF1A @G@@@@ . THE RELATIVE BLOCK NUSP )@@G@@MBER IS IN A1, THE SECTOR NUMBER WITHIN BLOCK @^@@@@ . IS IN REGISTER SQ )@@G@@A2. @G@@@@ . UPON RETURN, LOCATION SECTAD WILL HAVE THE ADDRESS OF SECSR )@@G@@TOR IN CORE @]@@@@ . @]@@@@TOREAD . @C@@@@ SX,H2 SS )@@G@@ X11,RET1 . $H TOREAD @A@@@@ LA A0,TBONRR .ST )@@G@@@G@@@@ TNE A1,A0 . $T OVF BLK READ = BLK WANTED SU )@@G@@ @E@@@@ J TORGT1 . $A YES,TORGT1 NO SV )@@G@@@A@@@@ LA A3,A1 .@E@@@@ MSI,U A3,TSW )@@G@@BSECT . $P SECTOR NUMBER TO A3 @E@@@@ LA A4,TOBF1A SX )@@G@@ . $P BUFFER ADDRESS TO A4@G@@@@ LA,U A5,020 .SY )@@G@@ $P I/O READ FN CODE TO A5 @G@@@@ TP TIOPKT+3 SZ )@@G@@ . $P MAKE SURE THAT PACKET IS FREE @A@@@@ ER WAITTA )@@G@@$ .@G@@@@ TZ,S1 TIOPKT+3 . $P MAKE SURE THATTB )@@G@@ LAST I/O WAS OK @A@@@@ J TIOERR .@G@@@@ TC )@@G@@ SA A3,TIOSECT . $P SECTOR NUMBER TO TEMP I/O PACKET@G@@@@TD )@@G@@ SA A4,TIOBUF . $P BUFFER ADDRESS TO TIOPKT TE )@@G@@@E@@@@ SA A5,TIOFUNC . $P I/O CODE TO TIOPKT @C@@@@TF )@@G@@ LA,U A0,TIOPKT . @G@@@@ ER TG )@@G@@ IO$ . $W ISSUE THE IO TO TEMP FILE @G@@@@ TPTH )@@G@@ TIOPKT+3 . $P WAIT FOR I/O TO COMPLETE @A@@@@ TI )@@G@@ ER WAIT$ .@G@@@@ TZ,S1 TIOPKT+3 .TJ )@@G@@ $P MAKE SURE I/O WAS GOOD @A@@@@ J TIOERR TK )@@G@@ .@G@@@@ SA A4,TRADDR . $P SAVE BUF ADDR IN TL )@@G@@TRADDR @G@@@@ SA A1,TBONRR . $P SAVE # OF OTM )@@G@@VF BLK READ (REL) @]@@@@TORGT1 . @C@@@@ LA A5,A2 TN )@@G@@ . $ @G@@@@ MSI,U A5,28 . $P RELATIVETO )@@G@@ # OF WRDS TO A5 @G@@@@ AA A5,TOBF1A . $P ADTP )@@G@@DRESS OF SECTOR TO A5 @G@@@@ SA A5,SECTAD .TQ )@@G@@ $ ADDR OF SECTOR TO LOC SECTAD @A@@@@ J *RET1 TR )@@G@@ @]@@@@ . @]@@@@ . @]@@@@SQRFSL . @G@@@@ TS )@@G@@ LMJ X11,TBWRT1 . $P WRITE LAST TEMP BLOCK OUT @A@@@@TT )@@G@@ TP TIOPKT+3 @C@@@@ ER WAIT$ TU )@@G@@ . @C@@@@ TZ,S1 TIOPKT+3 . TV )@@G@@@C@@@@ J TIOERR . @I@@@@ LXTW )@@G@@ X9,IBRTAD . $P ADDR OF INX CORE REF TAB TO X9 TX )@@G@@@G@@@@ LR R1,IBFENT . $P # OF ENTRIES TO R1 TY )@@G@@ @]@@@@FLSLP3 . @E@@@@ JGD R1,$+2 . $TTZ )@@G@@ ARE WE DONE @E@@@@ J FLSGT1 . $A YES,FUA )@@G@@LSGT1 NO @E@@@@ LA,H1 A1,0,X9 . $P INX BLK NUMUB )@@G@@ TO A1@G@@@@ LA,H2 A2,0,X9 . $P INX BLK ADDR TO AUC )@@G@@2 @G@@@@ LA,U A3,010 . $P WRITE FUNCTUD )@@G@@ION TO A3 @G@@@@ LMJ X11,IBIOW . $W IBIOWUE )@@G@@ WRITE I BLOCK OUT @E@@@@ AX,U X9,1 . $PUF )@@G@@ INCREMENT PTR @E@@@@ J FLSLP3 . $J FLSLPUG )@@G@@3 @]@@@@FLSGT1 . @I@@@@ LX X9,TBRTAD UH )@@G@@ . $P ADDR OF DATA CORE REF BLK TO X9 @G@@@@ LR UI )@@G@@ R1,TBFENT . $P # OF TEMP BLKS TO R1 @]@@@@FLSLP4 . UJ )@@G@@@E@@@@ JGD R1,$+2 . $T ARE WE DONE @E@@@@UK )@@G@@ J FLSGT2 . $A YES,FLSGT2 NO @G@@@@ UL )@@G@@ LA,H1 A1,0,X9 . $P TEMP BLK NUM TO A1 @G@@@@UM )@@G@@ LA,H2 A2,0,X9 . $P TEMP BLK ADDR TO A2 UN )@@G@@@G@@@@ LA,U A3,010 . $W WRITE FUNCTION CODE TO UO )@@G@@A3 @C@@@@ LMJ X11,TBIOW . $W TBIOW@E@@@@ UP )@@G@@ AX,U X9,1 . $P INCREMENT PTR @E@@@@ J UQ )@@G@@ FLSLP4 . $J FLSLP4 @]@@@@FLSGT2 . @]@@@@UR )@@G@@ . @]@@@@ . @A@@@@ . FLUSH OVERFLOW INDEX BLOCKS US )@@G@@@]@@@@ . @]@@@@ . @C@@@@ LX X9,IOVFRADUT )@@G@@ . @G@@@@ LR R1,IOBFENT . # OF OVFUU )@@G@@ BLOCKS TO R1 @]@@@@FLSLP5 . @E@@@@ JGD R1,$UV )@@G@@+2 . $T ARE WE DONE @E@@@@ J FLSGT3 UW )@@G@@ . $J FLSGT3 @G@@@@ LA,H1 A1,0,X9 UX )@@G@@ . OVF INX BLOCK NUM TO A1 @G@@@@ LA,H2 A2,0,X9 UY )@@G@@ . OVF INDEX BLOCK ADDR TO A2 @C@@@@ LA,U A3,0UZ )@@G@@10 . @I@@@@ . L$SNAP 'OVFLSH',2,1,IOBFENT VA )@@G@@ . @E@@@@ LMJ X11,VB )@@G@@IBIOW . $W IBIOW ISSUE WRITE@E@@@@ AX,U X9,1 VC )@@G@@ . $P ADVANCE POINTER @E@@@@ J FLSLP5 VD )@@G@@ . $J FLSLP4 @]@@@@FLSGT3 . @]@@@@ . @]@@@@ . VE )@@G@@ @C@@@@ LA,U A0,1 . @G@@@@ VF )@@G@@ SA A0,FLSHSW . $P SET EDIT BUF FLUSH SW @A@@@@VG )@@G@@ . FLUSH EDIT BUFFERS IF ANY @C@@@@ J SQRGT1 VH )@@G@@ . @]@@@@/ @]@@@@ . @G@@@@ . SUBROUTINVI )@@G@@E TO ASSIGN THE INDEX AND TEMPORARY FILES FOR THE TEMP FILE @G@@@@ . ACCVJ )@@G@@ESS METHOD. THE SUBROUTINE WILL ISSUE MCORE$ CALLS TO GET THE @^@@@@VK )@@G@@ . NECESSARY BUFFERS @E@@@@ . WILL ALSO MCORE SPACE FOR THE NECESSARYVL )@@G@@ TABLES @]@@@@FILASG . @C@@@@ SX,H2 X11,RET1 VM )@@G@@ . @G@@@@ LA,U A0,ASGIA . $P TRY TO AVN )@@G@@SSIGN,A FIRST (INDEX FI)@C@@@@ ER CSF$ . $W CSVO )@@G@@F$ @E@@@@ JP A0,IFUSE . $T FACILITY REJECTED VP )@@G@@@E@@@@ . $A NO,IFUSE YES @G@@@@VQ )@@G@@ TZ WRITSW . $T HAS THERE BEEN A SEQUENTIAL WRITVR )@@G@@@E@@@@ J IASER1 . $A YES,IASER1 NO @G@@@@VS )@@G@@ L,U A0,ASGIT . $P TRY TO ASG,T (INDEX FILE) VT )@@G@@@C@@@@ ER CSF$ . $W CSF$ @E@@@@ JNVU )@@G@@ A0,IASER2 . $T FACILITY REJECTED @E@@@@ . VV )@@G@@ . $A YES,IASER2 NO @E@@@@IFUSE . FACILITY NOT REJVW )@@G@@ECTED ON AN ASG,A FOR INDEX FILE @]@@@@ . @G@@@@ LAVX )@@G@@,U A0,ASGTA . $P TRY TO ASG,A TEMP FILE @C@@@@ VY )@@G@@ ER CSF$ . $W CSF$ @E@@@@ JP A0,TVZ )@@G@@FUSE . $T FACILITY REJECTED @E@@@@ WA )@@G@@ . $A NO,TFUSE YES @G@@@@ TZ WRITSW .WB )@@G@@ $T ANY SEQUENTIAL WRITE OCCURED @E@@@@ J TASER1 WC )@@G@@ . $A YES,TASER1 NO @G@@@@ L,U A0,ASGTT .WD )@@G@@ $P TRY TO ASG,T (TEMP FILE) @C@@@@ ER CSF$ WE )@@G@@ . $W CSF$ @E@@@@ JN A0,TASER2 . $T FACILITYWF )@@G@@ REJECTED @E@@@@ . $A YES,TASER2 NO WG )@@G@@ @]@@@@TFUSE . @G@@@@ L,U A0,1 . $P SEWH )@@G@@T IDFASW SWITCH (FILES ASSIGN)@A@@@@ S A0,IDFASW .WI )@@G@@@G@@@@ LA A0,LAST$D . $P PREPARE TO ISSUE MCORE$ WJ )@@G@@ @A@@@@ LA A1,A0 @^@@@@ AA,U WK )@@G@@ A1,1@I@@@@ SA A1,IWADDR . $P INITIALIZE FIRST WL )@@G@@WRITE ADDRESS @G@@@@ SA A1,IBUF1A . $P ADWM )@@G@@DRESS OF FIRST BUF TO IBUF1A @A@@@@ LA A2,A1 WN )@@G@@@A@@@@ AA,U A2,IBSIZE @G@@@@ SA A2,IWO )@@G@@BUF2A . $P ADDRESS OF 2ND INX BUF TO IBUF2A@C@@@@ LA,U WP )@@G@@ A2,IBNUM . @I@@@@ MSI,U A2,IBSIZE WQ )@@G@@ . $P SIZE OF INDEX BUFFERS FOR EDITING @G@@@@ AA WR )@@G@@ A1,A2 . $P ACCOUNT FOR EDIT INDEX BUFFERS @G@@@@ SAWS )@@G@@ A1,IOBF1A . $P ADDR OF FIRST OVF INX BUF IOBF1A@C@@@@ WT )@@G@@ AA,U A1,IOVBUFF . @G@@@@ SA A1,TWU )@@G@@BUF1A . $P ADDR OF TEMP FILE 1ST BUF TBUF1A@A@@@@ LA WV )@@G@@ A2,A1 .@A@@@@ AA,U A2,TBSIZE .@G@@@@ WW )@@G@@ SA A2,TBUF2A . $P ADDR OF TEMP FILE 2ND BUF TBUF2A@C@@@@WX )@@G@@ LA,U A0,TBNUM . @I@@@@ MSI,U WY )@@G@@ A0,TBSIZE . $P SIZE OF DATA BUFFERS FOR EDITING @C@@@@WZ )@@G@@ AA A1,A0 . $ @I@@@@ SA XA )@@G@@ A1,TWADDR . $P INITIALIZE FIRST TEMP BLK ADDR @G@@@@XB )@@G@@ SA A1,TOBF1A . $P ADDR OF 1ST OVF TBUF TO TOBF1A XC )@@G@@@C@@@@ AA,U A1,TBSIZE . $ @G@@@@ SAXD )@@G@@ A1,TOBF2A . $P ADDR OF 2ND OVF TBUF TO TOBF2A @A@@@@ XE )@@G@@ AA,U A1,TBSIZE .@A@@@@ LA A0,A1 .XF )@@G@@@E@@@@ SA A0,LAST$D . $P UPDATE LAST$D @G@@@@XG )@@G@@ ER MCORE$ . $P ISSUE MCORE$ TO GET BUFFERS XH )@@G@@@]@@@@ . @]@@@@ . @A@@@@ . MCORE FOR CORE RAND INDEX TXI )@@G@@ABLE @]@@@@ . @]@@@@ . @C@@@@ LA A0,LXJ )@@G@@AST$D . @C@@@@ LA A1,A0 . XK )@@G@@ @C@@@@ AA,U A1,1 . @E@@@@ XL )@@G@@ SA,H2 A1,RNDADD . $P UPDATE RNDADD @C@@@@ AAXM )@@G@@,U A0,IDBNUM . @E@@@@ SA A0,LAST$D XN )@@G@@ . UPDATE LAST$D @E@@@@ ER MCORE$ XO )@@G@@ . ISSUE THE MCORE @]@@@@ . @]@@@@ . @C@@@@ . MCOXP )@@G@@RE FOR INDEX CORE REFERENCE TABLE @]@@@@ . @]@@@@ . XQ )@@G@@ @C@@@@ LA A0,LAST$D . @C@@@@ XR )@@G@@ LA A1,A0 . @C@@@@ AA,U A1,1XS )@@G@@ . @E@@@@ SA,H2 A1,IBRTAD . $PXT )@@G@@ UPDATE IBRTAD @C@@@@ AA,U A0,IBNUM . XU )@@G@@@E@@@@ SA A0,LAST$D . UPDATE LAST$D @E@@@@XV )@@G@@ ER MCORE$ . ISSUE THE MCORE @]@@@@ . XW )@@G@@ @]@@@@ . @C@@@@ . MCORE FOR DATA BUFFER CORE REFERENCE TAXX )@@G@@BLE @]@@@@ . @]@@@@ . @C@@@@ LA A0,LXY )@@G@@AST$D . @C@@@@ LA A1,A0 . XZ )@@G@@ @C@@@@ AA,U A1,1 . @E@@@@ YA )@@G@@ SA,H2 A1,TBRTAD . $P UPDATE RNDADD @C@@@@ AAYB )@@G@@,U A0,TBNUM . @E@@@@ SA A0,LAST$D YC )@@G@@ . UPDATE LAST$D @E@@@@ ER MCORE$ YD )@@G@@ . ISSUE THE MCORE @]@@@@ . @]@@@@ . @A@@@@ . MCOYE )@@G@@RE FOR INDEX UPDATE TABLE @]@@@@ . @]@@@@ . @C@@@@YF )@@G@@ LA A0,LAST$D . @C@@@@ LA YG )@@G@@ A1,A0 . @C@@@@ AA,U A1,1 YH )@@G@@ . @E@@@@ SA,H2 A1,IUPDAD . $P UPDATE IUPDYI )@@G@@AD @C@@@@ AA,U A0,IBNUM . @E@@@@ YJ )@@G@@ SA A0,LAST$D . UPDATE LAST$D @E@@@@ ERYK )@@G@@ MCORE$ . ISSUE THE MCORE @]@@@@ . @]@@@@YL )@@G@@ . @C@@@@ . MCORE FOR OVERFLOW INDEX CORE REFERENCE TABLE@]@@@@YM )@@G@@ . @]@@@@ . @C@@@@ LA A0,LAST$D YN )@@G@@ . @C@@@@ LA A1,A0 . @C@@@@YO )@@G@@ AA,U A1,1 . @E@@@@ SA,H2 YP )@@G@@ A1,IOVFRAD . $P UPDATE IOVFRAD @C@@@@ AA,U A0,IYQ )@@G@@OVFNUM . @E@@@@ SA A0,LAST$D . UPYR )@@G@@DATE LAST$D @E@@@@ ER MCORE$ . ISSUE THYS )@@G@@E MCORE @]@@@@ . @]@@@@ . @C@@@@ J YT )@@G@@ *RET1 . $E EXIT @]@@@@ . @A@@@@IASER1 LX,U YU )@@G@@ X10,ASGIA .@C@@@@ LMJ X11,ASGERR . $E EXIT YV )@@G@@@]@@@@IASER2 . @A@@@@ LX,U X10,ASGIT .@C@@@@ YW )@@G@@ LMJ X11,ASGERR . $E EXIT @]@@@@TASER1 . @A@@@@ YX )@@G@@ LX,U X10,ASGTA .@C@@@@ LMJ X11,ASGERR .YY )@@G@@ $E EXIT @]@@@@TASER2 . @A@@@@ LX,U X10,ASGTT .YZ )@@G@@@C@@@@ LMJ X11,ASGERR . $E EXIT @]@@@@ . ZA )@@G@@@]@@@@ . @G@@@@ . SUBROUTINE TO BE CALLED BY THE EDIT PROCESSORZB )@@G@@S TO CHECK SWITCHES @C@@@@ . AND FLUSH SEQUENTIAL WRITE INDEX BUFFERZC )@@G@@ @]@@@@ . @]@@@@FRSTED* . @^@@@@ + 0 ZD )@@G@@@G@@@@ TNZ IDFASW . $T TEMP FILE HAS BEEN ASSIGNEZE )@@G@@D @^@@@@ ER ERR$@G@@@@ TZ CRETSW ZF )@@G@@ . $T FILE HAS BEEN CREATED @C@@@@ J *FRSZG )@@G@@TED . $E EXIT @C@@@@RMRFLI . THIS IS THE FIRST RANDOM READ ZH )@@G@@ @G@@@@ LMJ X11,IBWRT1 . $W IBWRT1 FLUSH INDEX BZI )@@G@@UFFER OUT @G@@@@ TP IIOPKT+3 . $P MAKE SURE I/O ZJ )@@G@@IS DONE @A@@@@ ER WAIT$ @E@@@@ ZK )@@G@@ TZ,S1 IIOPKT+3 . $P MAKE SURE I/O WAS OK@A@@@@ J ZL )@@G@@ IIOERR @^@@@@ LA,U A0,1@G@@@@ SAZM )@@G@@ A0,CRETSW . $P SET CRETSW (TEMP FILE CREATED) @G@@@@ ZN )@@G@@ SA A0,WRITSW . $P SET NON SEQUENTIAL WRITE MODE @E@@@@ZO )@@G@@ . UPDATE SOME CONSTANTS IN PREPARATION FOR EDITING @]@@@@ . ZP )@@G@@ @A@@@@ LA A1,TBNUMW @G@@@@ SA ZQ )@@G@@ A1,TBSQWN . $P SAVE # OF TEMP BLKS WRITTEN; @G@@@@ ZR )@@G@@ . FOR EDITING PURPOSE, ANY BLOCKS @G@@@@ ZS )@@G@@ . TO BE WRITTEN HEREAFTER ARE OVF @C@@@@ZT )@@G@@ LA A1,IBNUMW . @I@@@@ SA ZU )@@G@@ A1,IBNUMWO . $P IBNUMWO WILL CONTAIN CURRENT # OF @G@@@@ZV )@@G@@ . $ INDEX BLOCK INCLUDING OVERFLOWZW )@@G@@@A@@@@ J *FRSTED @]@@@@ . @]@@@@/ ZX )@@G@@ @]@@@@ . @C@@@@ . RANDOM READ TEMP FILE ACCESS METHOD ZY )@@G@@ @]@@@@ . @]@@@@TF$RMR* . @C@@@@ SX,H2 X11,ZZ )@@G@@RETN1 . $H TF$RMR @I@@@@ SLJ FRSTED . $PAA )@@G@@ FLUSH SQW INDEX BUF ON FRST ED @]@@@@RMRGT1 . @G@@@@ AB )@@G@@ LA A3,0,X10 . $P RECORD NUMBER WANTED TO A3 @C@@@@AC )@@G@@ LMJ X11,LOCINX . $W LOCINX @G@@@@ AD )@@G@@ . WILL RETURN INDEX IN LCINX @G@@@@ AE )@@G@@ . AND ADDR OF INDEX IN LCINXA @G@@@@ AF )@@G@@ . INX BLK ADDRESS IN INXPKT+1 @E@@@@AG )@@G@@ TZ A0 . $T SUCCESSFUL @E@@@@ AH )@@G@@ J LOCEOF . $A NO,LOCEOF YES @A@@@@ LAAI )@@G@@ A0,LCINX .@E@@@@ SA A0,TEMPKT+1 . $P INAJ )@@G@@DEX TO TEMPKT+1 @G@@@@ LMJ X11,LOCREC . $W LOCREC LAK )@@G@@OCATE RECORD IN BUFFER @G@@@@ . REAL )@@G@@CORD ADDRESS RETURNED (RMRRAD)@A@@@@ . DELIVER RECORD TO CALLING PACKET AM )@@G@@@G@@@@ LX,H2 X8,TEMPKT . $P ADDR OF RECORD + HEADER TOAN )@@G@@ X8 @E@@@@ LA,H2 A5,0,X8 . $P RECORD LENGTH TO A5 AO )@@G@@@^@@@@ ANA,U A5,1@G@@@@ SA,H2 A5,2,X10 .AP )@@G@@ $P RECORD LENGTH TO CALLING PACKET @^@@@@ AX,U X8,1@G@@@@AQ )@@G@@ TZ RMR1SW . $T DO WE DELIVER RECORD AR )@@G@@@E@@@@ J RMRGT2 . $A NO,RMRGT2 YES @G@@@@AS )@@G@@ LX,H2 X9,1,X10 . $P ADDR OF CALLING BUF TO X9 AT )@@G@@@A@@@@ LR R1,A5 @I@@@@ SLJ RTRAAU )@@G@@NS . $P TRANSFER RECORD TO CALLING BUFFER @G@@@@RMRGT3AV )@@G@@ SZ,T1 2,X10 . $P SET 0 RETURN CODE IN CALLING PKT@E@@@@AW )@@G@@ SZ RMR1SW . $P RESET RMR1SW @C@@@@ AX )@@G@@ J *RETN1 . $E EXIT @]@@@@ . @]@@@@LOCEOFAY )@@G@@ . @A@@@@ LA,U A0,1 .@E@@@@ SA,T1 AZ )@@G@@ A0,2,X10 . $P SET ERROR RETURN @E@@@@ SZ RMR1BA )@@G@@SW . $P RESET RMR1SW @C@@@@ J *RETN1 BB )@@G@@ . $E @]@@@@ . @A@@@@RMRGT2 . DO NOT DELIVER RECORDBC )@@G@@ @G@@@@ SX,H2 X8,1,X10 . $P RETURN RECORD ADDBD )@@G@@RESS @C@@@@ J RMRGT3 .$J RMRGT3@]@@@@BE )@@G@@ . @]@@@@ . @C@@@@TF$RMR1* . RANDOM READ WITHOUT DELIVBF )@@G@@ERING RECORD@C@@@@ LA,U A0,1 . @E@@@@BG )@@G@@ SA A0,RMR1SW . $P SET RMR1SW @E@@@@ BH )@@G@@ J TF$RMR . $J TF$RMR @]@@@@/ BI )@@G@@@G@@@@ . SUBROUTINE TO LOCATE THE INDEX FOR A RECORD WHOSE NUMBER IS CONBJ )@@G@@TAINED@E@@@@ . IN A3 RETURN CODE WILL BE IN REGISTER A0 (0=SUCCESSFUL).BK )@@G@@@G@@@@ . IF SUCCESSFUL, THE INDEX WILL BE PLACED IN LOCATION LCINX AND IBL )@@G@@TS @A@@@@ . ADDRESS IN LOCATION LCINXA. @E@@@@ . ADDRESS OF INDEBM )@@G@@X BLOCK TO H2 OF INXPKT+1, INX BLK NUM TO @C@@@@ . H2 OF INXPKT. REL INDBN )@@G@@EX IN BLOCK TO INXREL. @]@@@@ . @G@@@@ . IUPDPT1 WILL CONTAIN BO )@@G@@THE RELATIVE LOCATION OF BLOCK WITHIN @A@@@@ . TABLE INDEX BLOBP )@@G@@CK UPDATE TABLE @]@@@@LOCINX* . @C@@@@ SX,H2 X11,RET1 BQ )@@G@@ . $H LOCINX @G@@@@ SZ,S6 SW2 . $P RESETBR )@@G@@ ZERO REC SWITCH @G@@@@LOCGT3 SA A3,LOCRCN . $P SABS )@@G@@VE RECORD NUMBER WANTED @G@@@@ LA A4,RECNMC .BT )@@G@@ $P CURRENT # OF RECORDS TO A4 @G@@@@ TLE A4,A3 BU )@@G@@ . $T REC # WANTED <= CURRENT NUM @G@@@@ J RMREBV )@@G@@R1 . $A NO,RMRER1 RETURN NOT AVAILABLE @E@@@@ TNZ BW )@@G@@ A3 . $T REC # WANTED = 0 @E@@@@ J LCZEBX )@@G@@R1 . $A YES,LCZER1 NO @E@@@@ . LOCATE WHICH INDEX BLOCK HABY )@@G@@S THE RECORD INDEX DESIRED @A@@@@ LX X8,RNDADD BZ )@@G@@@C@@@@ LXI,U X8,1 . @E@@@@ LRCA )@@G@@ R1,RNDIDX . $P R1 WILL CONTROL LOOP@G@@@@ SZ CB )@@G@@ A5 . $P A5 WILL HOLD ACCUMULATED INX SUM@G@@@@ SZCC )@@G@@ A1 . $P BLOCK NUMBER WILL BE IN A1 @G@@@@LOCLP1CD )@@G@@ AA,H2 A5,0,*X8 . $P ACCUMULATE # OF INDICES @E@@@@CE )@@G@@ TLE A5,A3 . $T REC # WANTED FOUND @^@@@@ CF )@@G@@ J $+2 @A@@@@ J LOCIFD @G@@@@ CG )@@G@@ AA,U A1,1 . $P INCREMENT BLOCK NUMBER @I@@@@CH )@@G@@ JGD R1,LOCLP1 . $T TRIED ALL RAND CORE INX TAB ENTRCI )@@G@@IES @E@@@@ ER ERR$ . $A NO LOCLP1 YES CJ )@@G@@ @A@@@@LOCIFD . FOUND INDEX BLOCK # @^@@@@ ANX,U CK )@@G@@ X8,1@C@@@@ LA A0,0,X8 . @G@@@@ CL )@@G@@ SA A0,REMINDX . $P INITIALIZE REMINDX @G@@@@CM )@@G@@ SX,H2 X8,RNDSAV . $P SAVE ADDRESS OF RND TABLE CN )@@G@@@A@@@@ ANA,H2 A5,0,X8 @^@@@@ AA,U A5,1CO )@@G@@@G@@@@ SA A5,INXLOW . $P LOWER INDEX # TO INXLOW (1CP )@@G@@ST= 1)@A@@@@ LA,H2 A4,0,X8 @G@@@@ SA CQ )@@G@@ A4,INXINT . $P # OF INDICES IN BLOCK TO INXINT @G@@@@ SACR )@@G@@,H2 A1,INXPKT . $P INX BLK WANTED TO INXPKT (H2) @G@@@@ CS )@@G@@ LMJ X11,INXBUF . $W INXBUF GET INDEX BLOCK @G@@@@CT )@@G@@ TZ,H1 INXPKT . SECOND WORD OF IXPKT WILL HAVE CU )@@G@@@E@@@@ ER ERR$ . ADDRESS OF BLOCK @C@@@@CV )@@G@@ . FIND OUT IF INDEX IS IN THIS BLOCK @A@@@@ LX CW )@@G@@ X9,INXPKT+1 @A@@@@ LA A2,LOCRCN .@E@@@@ CX )@@G@@ ANA A2,INXLOW . $P REL INDEX TO A2 @A@@@@ SACY )@@G@@ A2,INXREL .@G@@@@LOCLOOP1 LA,H2 A0,1,X9 . $CZ )@@G@@P # OF INDICES IN BLK TO A0 @G@@@@ TNZ A0 DA )@@G@@ . $T ANY INDICES IN BLOCK OBTAINED@E@@@@ J LOCGT22 DB )@@G@@ . $A NO,LOCGT22 YES @G@@@@ ANA,U A0,1 DC )@@G@@ . $P DECREMENT # OF INDICES @G@@@@ TLE A0,A2 DD )@@G@@ . $T INDEX IS IN THIS BLOCK @E@@@@ J LOCGDE )@@G@@T2 . $A NO,LOCGT2 YES @E@@@@ . FOUND INDEX IN BLOCK, CALCUDF )@@G@@LATE DISPLACEMENT & READ INDEX@]@@@@LOCIF1 . @A@@@@ MSI,U DG )@@G@@ A2,2 .@C@@@@ AA,U A2,2 . $ DH )@@G@@@G@@@@ AX X9,A2 . $P X9 POINTS TO INDEX WANTED DI )@@G@@ @E@@@@ LA A0,0,X9 . $P INDEX TO A0 DJ )@@G@@@E@@@@ SA A0,LCINX . $P INDEX TO LCINX @G@@@@DK )@@G@@ SZ,H1 INXPKT . $P SUCCESSFUL RETURN CODE TO INXPKTDL )@@G@@@G@@@@ SX X9,LCINXA . $P SAVE ADDR OF INDEX IN LCINDM )@@G@@XA @A@@@@ SZ A0 .@C@@@@ J DN )@@G@@ *RET1 . $E EXIT @E@@@@ J LOCGT2 DO )@@G@@ . $J LOCGT2 @^@@@@LOCGT22 . @C@@@@ AADP )@@G@@,U A2,1 . @]@@@@LOCGT2 . @]@@@@ . DQ )@@G@@@]@@@@ . @C@@@@ . INDEX NOT FOUND IN BLOCK, CHECK FOR OVERFLOW DR )@@G@@@A@@@@ . X9 POINTS TO INDEX BLOCK @]@@@@ . @]@@@@ . DS )@@G@@ @G@@@@ TNZ,H2 0,X9 $T IS OVERFLOW BLOCK DDT )@@G@@EFINED @I@@@@ J RMRER1 . $A NO,RMRER1 DU )@@G@@ . $A NO, @]@@@@ . @C@@@@ . UPDATE # OF INDDV )@@G@@ICES LEFT TO SEARCH @]@@@@ . @E@@@@ ANA DW )@@G@@ A2,A0 . $P NEW REL INX TO A2@C@@@@ ANA,U A2,1DX )@@G@@ . @G@@@@ SA A2,INXREL . $PDY )@@G@@ SAVE OVF REL INDEX @C@@@@ LA A0,REMINDX DZ )@@G@@ . @C@@@@ ANA,H2 A0,1,X9 . @I@@@@EA )@@G@@ SA A0,REMINDX . REMAINING # OF INDICES TO REMINDEB )@@G@@X @G@@@@ LA,H2 A1,0,X9 . $P OVERFLOW BLEC )@@G@@OCK # TO A1 @G@@@@ SA,H2 A1,INXPKT . $P OVF BED )@@G@@LOCK # TO INXPKT,,H2 @G@@@@ LMJ X11,INXBUF . $WEE )@@G@@ INXBUF GET INDEX BLOCK @C@@@@ TZ,H1 INXPKT EF )@@G@@ . @C@@@@ ER ERR$ . @G@@@@EG )@@G@@ LX X9,INXPKT+1 . $P INDEX BLOCK ADDRESS TO X9 EH )@@G@@@G@@@@ LA A2,INXREL . $P OVERFLOW REL INDEX TO AEI )@@G@@2 @C@@@@ JN A2,RMRER1 . @E@@@@ EJ )@@G@@ J LOCLOOP1 . $J LOCLOOP1 @]@@@@RMRER1 . EK )@@G@@@G@@@@ LA,U A0,1 . $P RETURN NONZERO STATUS EL )@@G@@ @C@@@@ J *RET1 . $E EXIT @C@@@@LCZER1EM )@@G@@ . WANTING TO LOCATE RECORD NUMBER ZERO @C@@@@ LA,U A0,1EN )@@G@@ . @I@@@@ SA,S6 A0,SW2 . $PEO )@@G@@ SET SW TO INDICATE ZERO RECORD @E@@@@ AA,U A3,1EP )@@G@@ . $P INCREMENT RCD# @E@@@@ J LOCGT3 EQ )@@G@@ . $J LOCGT3 @]@@@@ . @C@@@@ . SUBROUTINE TO MER )@@G@@ANAGE INDEX EDIT BUFFERS @G@@@@ . UPON ENTRY, H2 OF INXPKT CONTAINSES )@@G@@ RELATIVE INDEX BLOCK NUMBER @G@@@@ . UPON RETURN, H1 OF INXPKT CET )@@G@@ONTAINS ERROR STATUS (0=SUCCESSFUL) @E@@@@ . INXPKT+1EU )@@G@@ CONTAINS ADDRESS OF BLOCK IN BUFFER@]@@@@ . @]@@@@ . EV )@@G@@@]@@@@INXBUF* . @C@@@@ SX,H2 X11,RET2 . $H INXBUF EW )@@G@@@G@@@@ SZ IFNDOOVF . RESET FOUND ON OVERFLOW PAEX )@@G@@GE @G@@@@ LA,H2 A1,INXPKT . $P REL INDEX BLK NUM TOEY )@@G@@ A1 @G@@@@ TNZ IOBFENT . $P ANY OVERFLOEZ )@@G@@W ENTRIES @E@@@@ J IBFGT11 . $P NO,IBFA )@@G@@FGT11 YES @G@@@@ LR R1,IOBFENT . $P # OF OVF BLFB )@@G@@OCKS TO R1 @I@@@@ LX X8,IOVFRAD . $P ADDR FC )@@G@@OF OVF CORE REF TABLE TO X8 @]@@@@IBFLP3 . @A@@@@ JGFD )@@G@@D R1,$+2 @E@@@@ J IBFGT11 . YEFE )@@G@@S,IBFGT11 NO @E@@@@ TNE,H1 A1,0,X8 . INX BLOCFF )@@G@@K NUM EQUAL @E@@@@ J IBFOFND . $J IBFOFND FG )@@G@@ @E@@@@ AX,U X8,1 . $P INCREMENT POINTERFH )@@G@@@E@@@@ J IBFLP3 . $J IBFLP3 @]@@@@FI )@@G@@ . @]@@@@ . @C@@@@IBFOFND . BLOCK WAS FOUND IN OVERFLOFJ )@@G@@W AREA @]@@@@ . @]@@@@ . @E@@@@ LA,H2 FK )@@G@@ A0,0,X8 . BLOCK NUMBER TO A0 @G@@@@ SA,H2 A0,IFL )@@G@@NXPKT+1 . $P BLOCK NUMBER TO INXPKT+1,,H2 @C@@@@ . L$SNAP FM )@@G@@ 'INXFND',,8,INXPKT @]@@@@ . @]@@@@ . @E@@@@FN )@@G@@ . SWITCH IFNDOOVF IS TO BE SET TO INDICATE THAT INDEX BLOCK@A@@@@ . WASFO )@@G@@ FOUND IN OVERFLOW AREA. @]@@@@ . @]@@@@ . @C@@@@FP )@@G@@ LA,U A0,1 . @E@@@@ SA FQ )@@G@@ A0,IFNDOOVF . $P SET IFNDOOVF @C@@@@ SZ,H1 INXPFR )@@G@@KT . @C@@@@ J *RET2 . $EFS )@@G@@ EXIT @]@@@@IBFGT11 . @G@@@@ TNZ IBFENT . $T ANFT )@@G@@Y ENTRIES IN INDEX EDIT BUFS @E@@@@ J IBFEMP .FU )@@G@@ $A NO,IBFEMP YES @E@@@@ LR R1,IBFENT . $P # FV )@@G@@OF ENTRIES TO R1 @G@@@@ LX X8,IBRTAD . $P ADDRESS FW )@@G@@OF INX BUF REF TAB TO X8@]@@@@IBFLP1 @G@@@@ JGD R1,$FX )@@G@@+2 . $T DONE WITH ALL ENTRIES @E@@@@ J FY )@@G@@ IBNFND . $A YES,IBNFND NO @G@@@@ TNE,H1 A1,0FZ )@@G@@,X8 . $T INDEX BLOCK IN BUFFER @E@@@@ J GA )@@G@@ IBFFND . $A YES,IBFFND NO @C@@@@ AX,U X8,1GB )@@G@@ . $ @C@@@@ J IBFLP1 . $J IBGC )@@G@@FLP1 @]@@@@ . @C@@@@IBFFND . INDEX BLOCK WANTED IS FOUND IN BUGD )@@G@@FFER @G@@@@ LA,H2 A0,0,X8 . $P ADDRESS OF BUFFER TOGE )@@G@@ A0 @G@@@@ SA,H2 A0,INXPKT+1 . $P ADDRESS OF BUFGF )@@G@@FER TO CALLING PKT@G@@@@ ANX X8,IBRTAD . POINTER GG )@@G@@WITHIN UPD TABLE TO X8 @C@@@@ SX,H2 X8,IUPDPT1 . GH )@@G@@ @G@@@@ SZ,H1 INXPKT . $P SET SUCCESSFUL RETURGI )@@G@@N CODE @C@@@@ J *RET2 . $E EXIT @E@@@@GJ )@@G@@IBNFND . INDEX BLOCK WANTED WAS NOT FOUND IN BUFFER @A@@@@ GK )@@G@@ LX X9,IBRTAD @G@@@@ AX X9,IBFPT1 . $PGL )@@G@@ X9 POINTS TO BUF ENTRY TO WRITE OUT@A@@@@ LA A3,IBFENT GM )@@G@@ @G@@@@ TE,U A3,IBNUM . $T # OF ENTRIES IN BUFFGN )@@G@@ER = # BLKS @E@@@@ J IBFGT1 . $A NO,IBFGT1 YES GO )@@G@@ @E@@@@ . WE HAVE TO WRITE ONE BLOCK OUT BEFORE READING ANOTHER IN GP )@@G@@@G@@@@ . IBFPT1 POINTS TO BLOCK ENTRY TO BE WRITTEN OUT (REL POINTER) GQ )@@G@@ @A@@@@ . CHECK IF BLOCK HAS BEEN MODIFIED @G@@@@ LA GR )@@G@@ A0,IUPDAD . ADDR OF INDEX BLOCK INDICATOR @G@@@@ AAGS )@@G@@ A0,IBFPT1 . POINT TO CORRESPONDING BLOCK @C@@@@ GT )@@G@@ TNZ 0,A0 . @C@@@@ J IBFGGU )@@G@@T1 . @G@@@@ SZ 0,A0 . RESGV )@@G@@ET UPDATE INDICATOR @E@@@@ LA,H1 A1,0,X9 . $PGW )@@G@@ IBLOCK NUMBER TO A1 @E@@@@ LA,H2 A2,0,X9 . $P IBLOCGX )@@G@@K ADDRESS TO A2 @G@@@@ LA,U A3,010 . $P WRITE FUGY )@@G@@NCTION CODE TO A3 @E@@@@ LMJ X11,IBIOW . $W PEGZ )@@G@@RFORM I/O AND WAIT@]@@@@IBFGT1 . @G@@@@ LA,H2 A1,INXPKT HA )@@G@@ . $P NEW BLOCK # WANTED TO A1 @E@@@@ LA,H2 A2,0HB )@@G@@,X9 . $P ADDR OF IBLOCK TO A2@G@@@@ LA,U A3,020 HC )@@G@@ . $P READ FUNCTION CODE TO A3 @G@@@@ LMJ X11,HD )@@G@@IBIOW . $W IBIOW PERFORM I/O AND WAIT @E@@@@ SA,H1 HE )@@G@@ A1,0,X9 . $P UPDATE BUFFER ENTRY @E@@@@ LA A5,IHF )@@G@@BFPT1 . $P INX BUF PTR TO A5 @G@@@@ SA A5,IUPDPT1HG )@@G@@ . SAVE TO INDICATE UPDATE @E@@@@ AA,U A5,1HH )@@G@@ . $P INCREMENT BY 1 @E@@@@ TE,U A5,IBNUM HI )@@G@@ . $T END OF BUF CONDITION@E@@@@ J IBFGT2 .HJ )@@G@@ $A NO,IBFGT2 YES @E@@@@ SZ A5 . $P ZEHK )@@G@@RO REL INX BUF PTR@G@@@@IBFGT2 SA A5,IBFPT1 . $P STORE NEHL )@@G@@W REL PTR IN IBFPT1 @G@@@@ LA A0,IBFENT .$P NUMHM )@@G@@ OF INX BLOCKS TO A0 @E@@@@ TNE,U A0,IBNUM .HN )@@G@@ $T ARE THEY EQ TO IBNUM@E@@@@ J IBFGT3 . $A YEHO )@@G@@S,IBFGT3 NO @A@@@@ AA,U A0,1 .@E@@@@ HP )@@G@@ SA A0,IBFENT . $P INCREMENT IBFENT @]@@@@IBFGT3 . HQ )@@G@@@G@@@@ SA A2,INXPKT+1 . $P ADDRESS OF IBLOCK TO CALLIHR )@@G@@NG PKT@E@@@@ SZ,H1 INXPKT . $P ZERO RETURN STATUS HS )@@G@@@C@@@@ J *RET2 . $E EXIT @E@@@@IBFEMP . INDHT )@@G@@EX BLOCK EMPTY, INITIALIZE BUFFER TABLE @I@@@@ LX HU )@@G@@ X8,IBRTAD . $P ADD OF INX BUF CORE REF TABLE TO X8 @G@@@@HV )@@G@@ LX X9,IBUF . $P ADDRESS OF 1ST INX BUF TO X9 HW )@@G@@@E@@@@ LR,U R1,IBNUM . $P R1 WILL CONTROL LOOP@^@@@@HX )@@G@@ LXI,U X8,1@G@@@@IBFLP2 JGD R1,$+2 . $T ARHY )@@G@@E WE DONE WITH ALL ENTRIES @E@@@@ J IBFEMP1 HZ )@@G@@. $A YES,IBNFND NO @G@@@@ SX,H2 X9,0,*X8 . $P ADIA )@@G@@DR OF CORRESPONDING BUF TO ENT@A@@@@ AX,U X9,IBSIZE IB )@@G@@@C@@@@ J IBFLP2 . $J IBFLP2 @]@@@@IBFEMP1 . IC )@@G@@@I@@@@ LXM X8,IOVFRAD . $P ADDR OF OVF CORE REF ENID )@@G@@TRY TAB TO X8 @A@@@@ LX X9,IOBF1A @I@@@@ IE )@@G@@ LR,U R1,IOVFNUM . $P # OF ENTRIES IN TAB WILL CONTROL LOIF )@@G@@OP @]@@@@IBFLP22 . @E@@@@ JGD R1,$+2 . $PIG )@@G@@ ARE WE DONE @E@@@@ J IBNFND . $J IBNFNIH )@@G@@D @E@@@@ SX,H2 X9,0,*X8 . $P ADDR TO OVFII )@@G@@ TABLE@G@@@@ AX,U X9,IBSIZE . $P POINT TO NEXT BUFIJ )@@G@@FER @E@@@@ J IBFLP22 . $J IBFLP22 IK )@@G@@ @]@@@@ . @E@@@@ . SUBROUTINE TO ISSUE AN I/O FOR INDEX BLIL )@@G@@OCKS, THEN TO WAIT@C@@@@ . UPON ENTRY, A1 HAS REL BLOCK NUMBER IM )@@G@@@A@@@@ . A2 HAS IBLOCK ADDRESS@C@@@@ . A3 HAS I/IN )@@G@@O FUNCTION CODE @]@@@@ . @E@@@@IBIOW* SX,H2 X11,IO )@@G@@RET3 . $H IBIOW I/O WITH WAIT @G@@@@ TP IIOPKT+3 IP )@@G@@ . $P MAKE SURE I/O PACKET IS FREE @A@@@@ ER WAITIQ )@@G@@$ @G@@@@ TZ,S1 IIOPKT+3 . $P MAKE SURE LASTIR )@@G@@ I/O WAS OK @A@@@@ J IIOERR @A@@@@ IS )@@G@@ LA A4,A1 .@A@@@@ MSI,U A4,IBSECT IT )@@G@@@G@@@@ SA A4,IIOSECT . $P SECTOR NUMBER TO I/O PACKEIU )@@G@@T @G@@@@ SA A2,IIOBUF . $P BUFFER ADDRESS TO I/IV )@@G@@O PACKET @G@@@@ SA A3,IIOFUNC . $P FUNCTION CODE IW )@@G@@TO I/O PACKET @A@@@@ L,U A0,IIOPKT .@E@@@@ IX )@@G@@ ER IO$ . $W IO$ ISSUE THE I/O @G@@@@ TPIY )@@G@@ IIOPKT+3 . $P MAKE SURE I/O PACKET IS FREE @A@@@@ IZ )@@G@@ ER WAIT$ @G@@@@ TZ,S1 IIOPKT+3 .JA )@@G@@ $P MAKE SURE LAST I/O WAS OK @A@@@@ J IIOERR JB )@@G@@ @C@@@@ J *RET3 . $E EXIT @]@@@@ . JC )@@G@@ @E@@@@ . SUBROUTINE TO LOCATE RECORD WHOSE INDEX IS IN TEMPKT+1 JD )@@G@@@G@@@@ . UPON RETURN, THE ADDRESS OF THE RECORD IS FOUND IN H2 OF TEMPKTJE )@@G@@ @]@@@@ . @]@@@@ . @]@@@@LOCREC* @C@@@@ JF )@@G@@ SX,H2 X11,RET2 . $H LOCREC @A@@@@ LA A1,TJG )@@G@@EMPKT+1 @^@@@@ LSSL A1,6@^@@@@ SSL A1,6JH )@@G@@@A@@@@ DSL A1,36 @E@@@@ DI,U A1,TJI )@@G@@BSECT . $P BLOCK NUMBER TO A1 @G@@@@ SA A2,LOCSWB JJ )@@G@@ . $P SECTOR WITHIN BLOCK TO A2,LOCTBL@G@@@@ SA A1,LJK )@@G@@OCBLK . $P BLOCK NUMBER TO LOCBLK @G@@@@ LA JL )@@G@@ A3,TBNUMW . $P # OF TEMP BLOCKS WRITTEN TO A3 @G@@@@ ANJM )@@G@@A,U A3,1 . $P REL # OF LAST TEMP BLK TO A3 @G@@@@ JN )@@G@@ TLE A3,A1 . $T BLOCK WANTED <= TBNUMW-1 @E@@@@JO )@@G@@ J RECGT1 . $A NO,RECGT1 YES @C@@@@ . BLOJP )@@G@@CK WANTED MUST HAVE BEEN WRITTEN OUT @]@@@@ . @G@@@@ JQ )@@G@@ TNZ TBFENT . $T ANY ENTRIES IN TEMP EDIT BUFS @E@@@@JR )@@G@@ J TBFEMP . $A NO,TBFEMP YES @E@@@@ JS )@@G@@ LR R1,TBFENT . $P # OF ENTRIES TO R1 @A@@@@ LXJT )@@G@@ X8,TBRTAD @]@@@@TBFLP1 . @G@@@@ JGD R1,$JU )@@G@@+2 . $T DONE WITH ALL ENTRIES @E@@@@ J JV )@@G@@ TBNFND . $A YES,TBNFND NO @G@@@@ TNE,H1 A1,0JW )@@G@@,X8 . $T TEMP BLOCK ALREADY IN BUFFER @E@@@@ J JX )@@G@@ TBFFND . $A YES,TBFFND NO @A@@@@ AX,U X8,1JY )@@G@@ .@A@@@@ J TBFLP1 @]@@@@ . JZ )@@G@@@C@@@@TBFFND . TEMP FILE WANTED IS FOUND IN BUFFER @]@@@@ . KA )@@G@@@C@@@@ LA,H2 A0,0,X8 . $ @A@@@@ MSKB )@@G@@I,U A2,28 .@A@@@@ AA A0,A2 .@E@@@@KC )@@G@@ AA,S1 A0,TEMPKT+1 . $P A0 POINTS TO RECORD @G@@@@ KD )@@G@@ SA,H2 A0,TEMPKT . $P RECORD ADDRESS TO CALLING PACKET@A@@@@KE )@@G@@ J *RET2 @]@@@@ . @E@@@@TBNFND . TEMKF )@@G@@PORARY BLOCK NOT NOT FOUND IN BUFFER, READ IT IN@A@@@@ LX KG )@@G@@ X9,TBRTAD @G@@@@ AX X9,TBFPT1 . $P X9 POINTKH )@@G@@S TO EDIT TEMP BUF ENTRY@A@@@@ LA A3,TBFENT @G@@@@KI )@@G@@ TE,U A3,TBNUM . $T # OF ENTRIES IN TBUF = # OF BLKSKJ )@@G@@@A@@@@ J TBFGT3 @G@@@@ . WE HAVE TO WRITE ONE KK )@@G@@TEMP FILE BLOCK OUT BEFORE READING ANOTHER IN @I@@@@ . TBFPT1 POINTS TKL )@@G@@O BLOCK ENTRY IN TEMP BUF CORE REF TAB TO BE WRITTEN OUT (REL) @G@@@@KM )@@G@@ LA,H1 A1,0,X9 . $P TBLOCK NUMBER TO A1 (TO WRITE) KN )@@G@@@E@@@@ LA,H2 A2,0,X9 . $P BUFFER ADDRESS TO A2@G@@@@KO )@@G@@ LA,U A3,010 . $P WRITE FUNCTION CODE TO A3 KP )@@G@@@G@@@@ LMJ X11,TBIOW . $W TBIOW WRITE BLOCK OUT KQ )@@G@@ @]@@@@TBFGT3 . @E@@@@ LA A1,LOCBLK . $P BLKR )@@G@@K # TO READ TO A1 @E@@@@ LA,H2 A2,0,X9 . $P BUFFER AKS )@@G@@DDRESS TO A2@A@@@@ LA,U A3,020 @G@@@@ LMKT )@@G@@J X11,TBIOW . $W TBIOW PERFORM TEMP I/O & WAIT @E@@@@ KU )@@G@@ SA,H1 A1,0,X9 . $P UPDATE BUFFER ENTRY @E@@@@ LAKV )@@G@@ A5,TBFPT1 . $P TEMP BUF PTR TO A5 @E@@@@ AA,U KW )@@G@@ A5,1 . $P INCREMENT BY 1 @G@@@@ TE,U A5,TKX )@@G@@BNUM . $T END OF BUFFER CONDITION @E@@@@ J KY )@@G@@ TBFGT2 . $A NO,TBFGT2 YES @G@@@@ SZ A5 KZ )@@G@@ . $P ZERO RELATIVE PTR IN TBF TABLE @G@@@@TBFGT2 SA LA )@@G@@ A5,TBFPT1 . $P NEW REL PTR TO TBFPT1 @G@@@@ LALB )@@G@@ A0,TBFENT . $P # OF ENTRIES IN BUFFER TO A0 @G@@@@ LC )@@G@@ TNE,U A0,TBNUM . $T # OF ENTRIES IN BUFS = TBNUM @E@@@@LD )@@G@@ J TBFGT4 . $A YES,TBFGT4 NO @G@@@@ LE )@@G@@ AA,U A0,1 . $P INCREMENT # OF ENTRIES IN BUF @G@@@@LF )@@G@@ SA A0,TBFENT . $P UPDATE TBFENT (# OF ENTRIES) LG )@@G@@@]@@@@TBFGT4 . @A@@@@ LA A3,LOCSWB .@A@@@@ LH )@@G@@ MSI,U A3,28 .@G@@@@ AA A2,A3 .LI )@@G@@ $P ADDRESS OF SECTOR TO A2 @G@@@@ AA,S1 A2,TEMPKT+LJ )@@G@@1 . $P ADDRESS OF RECORD TO A2 @G@@@@ SA,H2 A2,TLK )@@G@@EMPKT . $P ADDRESS OF RECORD TO CALLING PKT@C@@@@ J LL )@@G@@ *RET2 . $E EXIT @]@@@@ . @E@@@@TBFEMP . INDEX BLOLM )@@G@@CK EMPTY, INITIALIZE BUFFER TABLE @I@@@@ LX X8,TLN )@@G@@BRTAD . $P ADDR OF TEMP BUF CORE REF TABLE TO X8 @G@@@@ LO )@@G@@ LX X9,TBUF . $P ADDR OF 1ST TEMP BUFFER TO X9 @E@@@@LP )@@G@@ LR,U R1,TBNUM . $P R1 WILL CONTROL LOOP@^@@@@ LQ )@@G@@ LXI,U X8,1@G@@@@TBFLP2 JGD R1,$+2 . $T ARE WE DLR )@@G@@ONE WITH ALL ENTRIES @A@@@@ J TBNFND @G@@@@LS )@@G@@ SX,H2 X9,0,*X8 . $P ADDR OF CORRESPONDING BUF TO ENTLT )@@G@@@A@@@@ AX,U X9,TBSIZE @C@@@@ J TBFLLU )@@G@@P2 . $J TBFLP2 @A@@@@RECGT1 . BLK WANTED > TBNUMW-1 @^@@@@LV )@@G@@ AA,U A3,1 . @G@@@@ TE A3,A1 . $TLW )@@G@@ IS IT 1 OVER TBNUMW-1 @E@@@@ ER ERR$ LX )@@G@@ . $A YES,EXIT NO @C@@@@ LA A0,TDBLSW . LY )@@G@@ @G@@@@ LA A2,TOBF1A,A0 . $P ADDR OF TEMP BLOCLZ )@@G@@K TO A2 @E@@@@ J TBFGT4 . $J TBFGT4 MA )@@G@@ @]@@@@ . @E@@@@ . SUBROUTINE TO ISSUE AN I/O FOR TEMP BLOMB )@@G@@CKS THEN WAIT @A@@@@ . UPON ENTRY, A1 HAS BLOCK NUMBER @C@@@@ . MC )@@G@@ A2 HAS TEMP BLOCK ADDRESS (BUFFER@C@@@@ . A3 HAS I/MD )@@G@@O FUNCTION CODE @]@@@@ . @G@@@@TBIOW* ME )@@G@@ . $H TBIOW TEMP FILE I/O WITH WAIT @C@@@@ SX,H2 MF )@@G@@ X11,RET3 . @G@@@@ TP TIOPKT+3 .MG )@@G@@ $P MAKE SURE TEMP I/O PKT IS FREE @A@@@@ ER WAIT$ MH )@@G@@ .@G@@@@ TZ,S1 TIOPKT+3 . $P MAKE SURE LAST I/O WMI )@@G@@AS OK @A@@@@ J TIOERR @A@@@@ LAMJ )@@G@@ A4,A1 @G@@@@ MSI,U A4,TBSECT . $P SEMK )@@G@@CTOR NUMBER TO I/O PKT @A@@@@ SA A4,TIOSECT .ML )@@G@@@G@@@@ SA A2,TIOBUF . $P BUFFER ADDRESS TO TEMP I/OMM )@@G@@ PKT @G@@@@ SA A3,TIOFUNC . $P FUNCTION CODE TO TEMMN )@@G@@P I/O PKT @A@@@@ LA,U A0,TIOPKT .@E@@@@ ERMO )@@G@@ IO$ . $W IO$ ISSUE THE I/O @G@@@@ TP MP )@@G@@ TIOPKT+3 . $P MAKE SURE I/O PKT IS FREE @A@@@@ ERMQ )@@G@@ WAIT$ @G@@@@ TZ,S1 TIOPKT+3 . $P MAMR )@@G@@KE SURE LAST I/O IS OK @A@@@@ J TIOERR MS )@@G@@@C@@@@ J *RET3 . $E EXIT @]@@@@ . MT )@@G@@@]@@@@$(2) @]@@@@ . @C@@@@IIOPKT I$OD 'I$FILE MU )@@G@@ ',W$ IBSIZE,0 0@C@@@@TIOPKT I$OD 'T$FILE ',W$ TBSIZE,0 0MV )@@G@@@A@@@@IIOFUNC EQUF IIOPKT+3,,S2 @A@@@@TIOFUNC EQUF TIOPMW )@@G@@KT+3,,S2 @A@@@@IIOWRDS EQUF IIOPKT+4,,H1 @A@@@@TIOWRDS EQMX )@@G@@UF TIOPKT+4,,H1 @A@@@@IIOBUF EQUF IIOPKT+4,,H2 @A@@@@MY )@@G@@TIOBUF EQUF TIOPKT+4,,H2 @A@@@@IIOSECT EQUF IIOPKT+5 MZ )@@G@@ @A@@@@TIOSECT EQUF TIOPKT+5 @]@@@@ . @A@@@@NA )@@G@@ASGIA '@ASG,A I$FILE .' @C@@@@ASGIT '@ASG,T I$FILE,//PNB )@@G@@OS/100 .' @A@@@@ASGTA '@ASG,A T$FILE .' @C@@@@ASGTT NC )@@G@@ '@ASG,T T$FILE,//POS/400 .' @]@@@@ . @G@@@@SW1* ND )@@G@@ + 0 . SWITCH, SEE EQUF DESCRIPTION @G@@@@NE )@@G@@SW2* + 0 . SWITCH, SEE EQUF DESCRIPTION NF )@@G@@@E@@@@WRITSW EQUF SW1,,S1 . SEQ WRITE MODE =0 @G@@@@NG )@@G@@IDFASW EQUF SW1,,S2 . INDEX & DATA FILES ASSIGNED NH )@@G@@@G@@@@CRETSW EQUF SW1,,S3 . TEMP FILE CREATED, NO MORE SENI )@@G@@Q @G@@@@FIBLSW EQUF SW1,,S4 . FIRST INDEX BLOCK TO WRNJ )@@G@@ITE @G@@@@FTBLSW EQUF SW1,,S5 . FIRST TEMP FILE BNK )@@G@@LOCK TO WRITE @G@@@@FLSHSW EQUF SW1,,S6 . SWITCH TO INL )@@G@@NDICATE EDIT BUF FLUSH @E@@@@REOFSW EQUF SW2,,S1 . READ NM )@@G@@END OF FILE SWITCH@G@@@@ROVFSW EQUF SW2,,S2 . SEQUENTIAL NN )@@G@@READ OVERFLOW SWITCH @G@@@@TROFSW EQUF SW2,,S3 . TEMP NO )@@G@@FILE READ END OF FILE SW @G@@@@TEOFSW EQUF SW2,,S5 NP )@@G@@ . TO INDICATE TEMP FILE EOF @G@@@@LCZESW EQUF SW2,,S6 NQ )@@G@@ . FOR RCD#0 WANTED, BY LOCINX @G@@@@IDBLSW* + 0 NR )@@G@@ . INDEX WRITE DBLE BUF SW @G@@@@IBNUMW* + NS )@@G@@ 0 . INDEX WRITE BLOCK NUMBER, SEQ WRITE@G@@@@IBNUMWO* + NT )@@G@@ 0 . CURRENT # OF IBLKS INCL OVF @G@@@@IBRELWNU )@@G@@* + 2 . REL LOCATION IN INDEX WRITE BLOCK @G@@@@NV )@@G@@IWADDR* + 0 . ADDRESS OF CUR INDEX WRITE BLOCK NW )@@G@@@G@@@@IBWRSW* + 0 . ANY WRITE IN CUR IDX BLOCK SWNX )@@G@@ @G@@@@ISECT* + 0 . SECTOR NUMBER OF WRITTENNY )@@G@@ INDEX BLK @G@@@@TDBLSW* + 0 . TEMP FILE WRITE DNZ )@@G@@BLE BUF SWITCH @G@@@@TBNUMW* + 0 . TEMP FILE BOA )@@G@@LOCK NUMBER, SEQ WRITE @G@@@@TBRELW* + 0 . REL LOB )@@G@@OCATION IN TEMP WRITE BLOCK @G@@@@TWADDR* + 0 .OC )@@G@@ ADDRESS OF CURRENT TEMP WRITE BLOCK@G@@@@TBWRSW* + 0 OD )@@G@@ . ANY WRITE IN CUR TEMP BLOCK SW @G@@@@TSECT* + 0 OE )@@G@@ . SECTOR NUMBER OF WRITTEN TEMP BLOCK@G@@@@RECNMC* + OF )@@G@@ 0 . CURRENT NUMBER OF RECORDS IN FILE @G@@@@RECNMW* + OG )@@G@@ 0 . # OF RECORDS FOR SEQ WRITE @E@@@@RECLENOH )@@G@@* + 0 . RECORD LENGTH @E@@@@RECLN1* + OI )@@G@@ 0 . REC LENGTH + EXTRAW @E@@@@RECADD* + OJ )@@G@@ 0 . RECORD ADDRESS @G@@@@INDEX* + 0 OK )@@G@@ . RECORD INDEX FORMED BY TEMP A/M @G@@@@RNDIDX* + OL )@@G@@ 0 . POINTER TO RAND CORE INDEX TABLE@^@@@@ZEROS* + OM )@@G@@ 0 @G@@@@RNDADD* + 0 . ADDR OF RAND CORE INDEON )@@G@@X TABLE @]@@@@$(6) @E@@@@IBUF* OO )@@G@@. ADDR OF INDEX BUFFER @E@@@@IBUF1A* + 0 . ADDROP )@@G@@ OF WRITE INDEX BUFFER 1@E@@@@IBUF2A* + 0 . ADDR OF INOQ )@@G@@DEX BUFFER 2 @G@@@@IOBF1A* + 0 . ADDR OF OVERFLOWOR )@@G@@ INDEX BUFFER 1 @G@@@@IOBF2A* + 0 . ADDR OF OVOS )@@G@@ERFLOW INDEX BUFFER 2 @G@@@@TBUF* . ADDROT )@@G@@ OF TEMP FILE EDIT BUFFERS @G@@@@TBUF1A* + 0 OU )@@G@@. ADDR OF TEMP FILE BUFFER 1 (SEQ READ) @G@@@@TBUF2A* + 0 OV )@@G@@ . ADDR OF TEMP FILE BUFFER 2 (SEQ READ) @G@@@@TOBF1A* + OW )@@G@@ 0 . ADDR OF WRITE OVF TEMP BUFFER 1 (SEQ) @G@@@@TOBF2A* + OX )@@G@@ 0 . ADDR OF WRITE OVF TEMP BUFFER 2 (SEQ) @^@@@@RETURNOY )@@G@@* + 0 @^@@@@RET1* + 0 @^@@@@RET2* + OZ )@@G@@ 0 @^@@@@RET3* + 0 @]@@@@$(4) @E@@@@IBNUMR* + PA )@@G@@ 0 . # OF INDEX BLOCKS READ @G@@@@IBRELR* + PB )@@G@@ 2 . REL LOCATION IN INDEX READ BLOCK @G@@@@IRADDR* + PC )@@G@@ 0 . ADDRESS OF CUR INDEX BLOCK READ @G@@@@SQRORBPD )@@G@@* + 0 . # OF ORIGINAL BLOCK BEFORE OVERFLOW @G@@@@PE )@@G@@SQRRIN* + 0 . # OF REMAINING INDICES IN CURRENT BLOCK PF )@@G@@@E@@@@RINDEX* + 0 . INDEX OF RECORD TO BE READ @G@@@@PG )@@G@@IBRSTA* + 0 . NEXT BLOCK NUMBER FOR WHICH A READ STARTPH )@@G@@@G@@@@IBONMR* + 0 . # OF INDEX OVF BLOCKS GENERATED PI )@@G@@ @G@@@@IBONRR* + 0 . # OF INDEX OVF BLOCKS READ PJ )@@G@@(SEQ READ) @E@@@@TBNUMR* + 0 . # OF TEMP FILE BLOCKS PK )@@G@@READ @G@@@@TBONRR* + 0 . BLK # OF TEMP OVERFLOW BLOCKPL )@@G@@ READ @G@@@@TBRELR* + 0 . REL LOCATION WITHIN TEPM )@@G@@MP FILE BLOCK @E@@@@TRADDR* + 0 . ADDRESS OF TEMP PN )@@G@@FILE BLOCK @G@@@@TORELR* + 0 . RELATIVE LOCATION WITHPO )@@G@@IN TEMP BLOCK @G@@@@TBRSTA* + 0 . REL BLOCK NUMBERPP )@@G@@ FOR WHICH READ STARTED @E@@@@RECNMR* + 0 . # OF RECORPQ )@@G@@DS READ @G@@@@CURREC* + 0 . CURRENT PR )@@G@@RECORD NUMBER @E@@@@SECTAD* + 0 . ADPS )@@G@@DRESS OF SECTOR @]@@@@$(10) @G@@@@TBSQWN* + 0 PT )@@G@@ . # OF TEMP BLKS WRITTEN BY SEQ WRITE@G@@@@INXLOW* + 0 PU )@@G@@ . # OF 1ST INDEX IN CONCERNED BLOCK @G@@@@INXINT* + PV )@@G@@ 0 . # OF INDICES IN INDEX BLK+ OVF @G@@@@LOCRCN* + PW )@@G@@ 0 . RECORD NUMBER AS SUPPLIED LOCINX @G@@@@LCINX*PX )@@G@@ + 0 . INDEX LOCATED BY LOCINX ROUTINE @G@@@@PY )@@G@@LCINXA* + 0 . ADDRESS OF INDEX LOCATED BY LCINX PZ )@@G@@@I@@@@IFNDOOVF* + 0 . SW = 1 IF INDEX IS FOUND IQA )@@G@@N OVERFLOW @I@@@@ . AREA. ITQB )@@G@@ IS RESET UPON ENTRY TO INXBUF @G@@@@RNDSAV* + 0 QC )@@G@@ . TOSAVE ADDR OF RND TABLE ENTRY @G@@@@INXPKT* RES 2 QD )@@G@@ . PACKET TO CALL INDEX BUFFER ROUTINE@E@@@@INXREL* + QE )@@G@@ 0 . REL INDEX WITHIN BLOCK @A@@@@ QF )@@G@@ .@G@@@@TEMPKT* RES 2 . PACKET TO CALL TEQG )@@G@@MP FILE BUF ROUTNE@^@@@@RETN1* + 0 @G@@@@IBFENT* + QH )@@G@@ 0 . # OF ENTRIES IN INDEX EDIT BUFFERS @G@@@@IBRTAD* + QI )@@G@@ 0 . INDEX BUFFER CORE REF TABLE @G@@@@IOVFRAQJ )@@G@@D* + 0 . ADDR OF OVF INDEX REF TABLE @G@@@@QK )@@G@@IUPDPT1* + 0 . POINTER TO UPDATE INDEX TABLE QL )@@G@@@G@@@@IUPDAD* + 0 . ADDR OF INDEX BLOCK INDIC QM )@@G@@UPDATE@G@@@@IBFPT1* + 0 . POINTER TO INDEX EDIT BQN )@@G@@UF TABLE @G@@@@TBFENT* + 0 . # OF ENTRIES IN TQO )@@G@@EMP EDIT BUFFERS @G@@@@TBRTAD* + 0 . TEMP BUFQP )@@G@@FER CORE REF TABLE @G@@@@TBFPT1* + 0 . POINTQQ )@@G@@ER TO TEMP EDIT BUF TABLE @G@@@@LOCSWB* + 0 .QR )@@G@@ SECTOR WITHIN TEMP BLK FOR LOCREC @G@@@@LOCBLK* + 0 QS )@@G@@ . TEMP BLOCK NUMBER FOR LOCREC @I@@@@RMR1SW* + 0 QT )@@G@@ . TO INDICATE RMR WITHOUT REC DELIVERY @^@@@@ QU )@@G@@ END ___ . SECTOR NUMBER OF WRITTEN INDEX BLK @G@@@@TDBLSWQV )@@G@@* + 0 . TEMP FILE WRITE DBLE BUF SWITCH @G@@@@QW )@@G@@TBNUMW* + 0 *[@@@@*SDFF*@[@@@@$(1) @#@@@@ AXR$ QX )@@G@@@[@@@@ . @D@@@@TF$C* . TEMPORARY FILE ACCESS METHOD CHANGE COMMAND QY )@@G@@@^@@@@EXTRAW EQU 0 @C@@@@ SX,H2 X11,RETURN .QZ )@@G@@ $H TF$C @G@@@@ SLJ FRSTED . $P FLUSH SQW INDERA )@@G@@X BUF ON 1ST EDIT @[@@@@ . @F@@@@ . PREPARE TO BUILD PACKET TO CALL RRB )@@G@@ANDOM READ FOR THIS RECORD @C@@@@ SX,H2 X10,SAVX10 .RC )@@G@@ $P SAVE X10@G@[@@ LA,H1 A0,0,X10 . $P REC # TO BE CHRD )@@G@@ANGED TO A0 @G@@@[ LA A0,0,X10 . $P REC # TORE )@@G@@ BE CHANGED TO A0 @F@@@@ LX,U X10,RNDPKT . $P ADRF )@@G@@DR OF RNDPKT TO X10 @E@[@@ SA,H1 A0,0,X10 . $P RERG )@@G@@C # TO RNDPKT @E@@@[ SA A0,0,X10 . $P REC # TORH )@@G@@ RNDPKT @G@@@@ LMJ X11,TF$RMR1 . $W TF$RMR1 ISSUE RI )@@G@@RANDOM READ @D@@@@ TZ,T1 RNDPKT+2 . $T SUCCESSFRJ )@@G@@UL @E@@@@ J DLTER1 . $A NO,DLTER1 YES RK )@@G@@@G@[@@ LA,H2 A3,0,X10 . $P ORIGINAL RECORD LENGTH TO RL )@@G@@A3 @G@@@[ LA,H2 A3,2,X10 . $P ORIGINAL RECORD LENGRM )@@G@@TH TO A3 @G@@@@ AA,U A3,EXTRAW . $P RCD LENGTH + ERN )@@G@@XTRAW TO A3 @A@@@@ LA A0,SAVX10 .@E@[@@ RO )@@G@@ LA,H2 A4,0,A0 . $P NEW LENGTH TO A4 @E@@@[ LARP )@@G@@,H2 A4,2,A0 . $P NEW LENGTH TO A4 @G@@@@ TG RQ )@@G@@ A3,A4 . $T OLD RCD SIZE < NEW LENGTH @E@@@@ J RR )@@G@@ CHNGT1 . $A NO,CHNGT1 YES @F@@@@ LA RS )@@G@@ A1,A4 . $P NEW RECORD LENGTH TO A1 @E@@@@ AA,U RT )@@G@@ A1,1 . $P ADD 1 FOR REC HDR @F@@@@ SA A1,RRU )@@G@@ECLEN . $P TOTAL LENGTH TO RECLEN @F@@@@ LA,H2 A2,1RV )@@G@@,A0 . $P ADDR OF NEW RECORD TO A2 @F@@@@ SA A2,RRW )@@G@@ECADD . $P RECORD ADDRESS TO RECADD @C@@@@CHNLP1 . CHECK IF THERE RX )@@G@@IS SPACE IN TEMP FILE @G@@@@ TNZ TBWRSW . $ ANRY )@@G@@YTHING WRITTEN IN TEMP BLOCK @G@@@@ LMJ X11,TINIT .RZ )@@G@@ $ INITIALIZE TEMP BLOCK IF NOTHING@G@@@@ LMJ X11,TSPACESA )@@G@@ . $T ANY SPACE LEFT IN TEMP FILE @E@@@@ JZ A2,CSB )@@G@@HNGT2 . $A YES,CHNGT2 NO @E@@@@ LMJ X11,TBWRT1SC )@@G@@ . $P WRITE RECORD OUT @C@@@@ J CHNLP1 .SD )@@G@@ $J CHNLP1 @A@@@@CHNGT2 . FOUND SPACE IN TEMP BLOCK @G@@@@ LXSE )@@G@@ X9,TWADDR . $P ADDRESS OF TEMP BLOCK TO X9 @G@@@@ SF )@@G@@ AX X9,TBRELW . $P X9 POINTS TO NEW LOC IN TEMP BLK@E@@@@SG )@@G@@ LA A3,RECLEN . $P RECORD LENGTH TO A3 @G@@@@ SH )@@G@@ SA,H2 A3,0,X9 . $P RCD LGTH TO H2 OF TEMP ENTRY @F@@@@SI )@@G@@ AA,U A3,EXTRAW . $P RCD LGTH + EXTRAW TO A3 @G@@@@SJ )@@G@@ SA A3,RECLN1 . $P RCD LGTH + EXTRAW TO RECLN1 SK )@@G@@@G@@@@ SA,H1 A3,0,X9 . $P RCD LGTH + EXTRAW TO H1 OFSL )@@G@@ TBUF @E@@@@ LA A3,RECLEN . $P RECORD LENGTH TO A3 SM )@@G@@@G@@@@ AX,U X9,1 . $P RECORD DESTINATION ADDR TOSN )@@G@@ X9 @A@@@@ ANA,U A3,1 .@E@@@@ LR SO )@@G@@ R1,A3 . $P RECORD LENGTH TO R1 @G@@@@ LX X8,RSP )@@G@@ECADD . $P RECORD ORIGINATING ADDR TO X8 @G@@@@ SLJ SQ )@@G@@ RTRANS . $W RTRANS TRANSFER RCD TO TEMP BLK @G@@@@ LMSR )@@G@@J X11,FRMINX . $W FRMINX FORM INDEX FOR RECORD @A@@@@ SS )@@G@@ LA A5,TBRELW .@A@@@@ AA A5,RECLN1 .ST )@@G@@@E@@@@ SA A5,TBRELW . $P UPDATE TBRELW @A@@@@SU )@@G@@ LA,U A0,1 .@D@@@@ SA A0,TBWRSW SV )@@G@@ . $P SET TBWRSW @D@@@@ . PREPARE TO CHANGE INDEX FOUND BY THE NESW )@@G@@W INDEX @D@@@@ SLJ INDXUPD . $W INDXUPD SX )@@G@@@E@@@@ LA A0,LCINXA . $P INDEX ADDRESS TO A0 @F@@@@SY )@@G@@ LA A1,INDEX . $P NEWLY FORMED INDEX TO A1 @G@@@@SZ )@@G@@ SA A1,0,A0 . $P NEWLY FORMED INDEX TO INDEX BLK TA )@@G@@@A@@@@ LX X10,SAVX10 .@F@@@@ LX,H2 X9,1TB )@@G@@,X10 . $P ADDR OF NEW RECORD TO X9 @D@@@@ LA A2,0TC )@@G@@,X9 . $P DBP TO A2 @E@@@@ SA A2,1,A0 .TD )@@G@@ $P DBP TO INDEX BLK @C@@@@ J DLTEX0 . $J DLTE )@@G@@TEX0 @[@@@@ . @F@@@@CHNGT1 . OLD RECORD HAS SUFFICINT SPACE, REPLACETF )@@G@@ RECORD AND DBP @F@@@@ LA A1,A4 . $P NEW REC TG )@@G@@LENGTH TO A1 @E@@@@ AA,U A1,1 . $P ADD 1 FOTH )@@G@@R REC HEADER@A@@@@ SA A1,RECLEN @F@@@@ LXTI )@@G@@,H2 X9,TEMPKT . $P RECORD HDR ADDR TO X9 @G@@@@ SATJ )@@G@@,H2 A1,0,X9 . $P NEW RECORD LENGTH TO REMP BLK @G@@@@ TK )@@G@@ AX,U X9,1 . $P RECORD DESTINATION ADDRESS TO X9@A@@@@TL )@@G@@ ANA,U A1,1 .@E@@@@ LR R1,A1 TM )@@G@@. $P RECORD LENGTH TO R1 @A@@@@ LX X10,SAVX10 .TN )@@G@@@F@@@@ LX,H2 X8,1,X10 . $P NEW RECORD ADDRESS TO X8 TO )@@G@@@D@@@@ LA A5,0,X8 . $P DBP TO A5 @F@@@@ TP )@@G@@ SLJ RTRANS . $W RTRANS TRANSFER RECORD @D@@@@ TQ )@@G@@ SLJ INDXUPD . $W INDXUPD @E@@@@ LA TR )@@G@@ A0,LCINXA . $P INDEX ADDRESS TO A0 @F@@@@ SA A5,1TS )@@G@@,A0 . $P CHANGE DATA BASE POINTER @]@@@@DLTEX0 . @G@@@@ TT )@@G@@ SZ,T1 2,X10 . $P SET ZERO RETURN CODE (SUCCESSFUL@C@@@@TU )@@G@@ J *RETURN . $E EXIT @]@@@@DLTER1 . @A@@@@TV )@@G@@ LA,U A0,1 .@E@@@@ SA,T1 A0,2,X10 TW )@@G@@ . $P SET NONZERO STATUS @C@@@@ J *RETURN .TX )@@G@@ $E EXIT @[@@@@ . @[@@@@ . @B@@@@INDXUPD* + 0 TY )@@G@@ . @[@@@@ . @E@@@@ . SUBROUTINE TO MARK THAT AN INDEX BLOCK TZ )@@G@@HAS BEEN MODIFIED @C@]@@ . POINTER TO ENTRY IN IUPDTAB IS IN IUPDPT1 UA )@@G@@@E@@@] . POINTER TO ENTRY IN INDEX UPDATE TABLE IS IN IUPDPT1 @[@@@@UB )@@G@@ . @B@@@@ DS A0,UPDSAVE . @H@@@@ TZUC )@@G@@ IFNDOOVF . $T WAS LAST BLOCK FOUND ON OVERFLOW @E@@@@UD )@@G@@ J UPDRET . $A YES,UPDRET NO @E@@@@ UE )@@G@@ LA A0,IUPDPT1 . REL ENTRY LOC TO A0 @B@@@@ TGUF )@@G@@,U A0,IBNUM . @B@@@@ ER ERR$ UG )@@G@@ . @G@]@@ AA,U A0,IUPDTAB . ABSOLUTE ENTRY ADDR UH )@@G@@TO A0 @G@@@] AA A0,IUPDAD . ABSOLUTE ENTRYUI )@@G@@ ADDR TO A0 @B@@@@ LA,U A1,7 . @F@@@@UJ )@@G@@ SA A1,0,A0 . MARK ENTRY AS UPDATED @[@@@@UK )@@G@@ . @[@@@@ . @]@@@@UPDRET . @[@@@@ . @[@@@@ . @B@@@@ UL )@@G@@ DL A0,UPDSAVE . @B@@@@ J *INDXUPD UM )@@G@@ . @[@@@@ . @[@@@@/ @[@@@@ . @[@@@@ . @[@@@@$(2) UN )@@G@@@G@@@@UPDSAVE RES 2 . TO SAVE REGISTERS BY INDXUUO )@@G@@PD @[@@@@ . @G@@@@RETURN + 0 . RETURN ADDRUP )@@G@@ESS FOR CHANGE COMMAND @^@@@@SAVX10 + 0 @F@#@@CHBUFF* REUQ )@@G@@S 326 . BUFFER TO HOLD RECORD DELIVERED @G@[@@RNDPKT* + UR )@@G@@ 0 . RCD# IN H1, LENGTH IN H2 @C@@@[RNDPKTUS )@@G@@* + 0 . RCD# @G@#@@ + CHBUUT )@@G@@FF . BUFFER ADDRESS FOR RECORD DELIVERY @G@@@# + UU )@@G@@ 0 . BUFFER ADDRESS FOR RECORD DELIVERY @E@[@@ + UV )@@G@@ 0 . STATUS IN T1 @F@@@[ + UW )@@G@@ 0 . STATUS IN T1, LENGTH IN H2 @#@@@@ END UX )@@G@@___ TEMP FILE @E@@@@*[@@@@*SDFF*@[@@@# . @#@@@# AXR$ UY )@@G@@@[@@@#$(1) @D@@@#TF$MVE* . TEMP FILE ACCESS METHOD MOVE COMMAND UZ )@@G@@@[@@@# . @C@@@# SX,H2 X11,RETURN . $H TF$MVE @C@@@#VA )@@G@@ SX X10,X10SAV . $P SAVE X10@G@@@# SLJ VB )@@G@@ FRSTED . $P FLUSH SQW INDEX BUF ON 1ST EDIT @G@@@# LVC )@@G@@MJ X11,CHRNGE . $W CHRNGE CHECK IF RECORDS IN RANGE@G@@@# VD )@@G@@ TZ A2 . $T RCD# TO MOVE AFTER OUT OF RNGE @E@@@#VE )@@G@@ J MVEER1 . $A NO,MVEER1 YES @B@@@# VF )@@G@@ LA A0,3,X10 . $ @E@@@# SA A0,MVSAV2 VG )@@G@@ . $P RCD#3 TO (MVSAV2) @A@@@# LA A1,4,X10 .VH )@@G@@@A@@@# ANA A1,A0 .@G@@@# AA,U A1,1VI )@@G@@ . $P NUMBER OF RECS TO BE MOVED TO A1@G@^@# SA,H2 VJ )@@G@@ A1,MVSAV2 . $P # OF RECS TO MOVE TO H2(MVSAV2) @G@@@^ SVK )@@G@@A A1,NUMMVE . $P # OF RECS TO MOVE TO (NUMMVE) @A@@@# VL )@@G@@ LA A2,0,X10 .@E@@@# SA A2,MVSAV1 .VM )@@G@@ $P RCD#1 TO MVSAV1 @[@@@# . @C@@@# . SET UP LOOP FOR MOVING RECOVN )@@G@@RDS ONE BY ONE @]@@@#MVELP1 @G@^@# TNZ,H2 MVSAV2 VO )@@G@@ . $T DONE WITH ALL RECORDS TO MOVE @G@@@^ TNZ NUMMVP )@@G@@VE . $T DONE WITH ALL RECORDS TO MOVE @E@@@# J VQ )@@G@@ MVEDN1 . $A YES,MVEDN1 NO @G@ @# LX,U X10,VR )@@G@@RNDPKT . $P ADDR OF RANDOM READ PKT TO X10 @G@@@ LX,U VS )@@G@@ X10,RMVPKT . $P ADDR OF RANDOM READ PKT TO X10 @F@@@# LAVT )@@G@@ A0,MVSAV2 . $P RECORD # TO MOVE TO A0 @G@ @# SAVU )@@G@@ A0,0,X10 . $P RECORD # TO MOVE TO RNDPKT @G@@@ VV )@@G@@ SA A0,0,X10 . $P RECORD # TO MOVE TO RMVPKT @F@@@#VW )@@G@@ LMJ X11,TF$RMR . $W TF$RMR ISSUE RANDOM READ @G@ @#VX )@@G@@ . RECORD DELIVERED TO CHBUFF VY )@@G@@@F@@@ . RECORD DELIVERED TO RDA VZ )@@G@@@E@ @# TZ,T1 RNDPKT+2 . $T SUCCESSFUL @D@@@ WA )@@G@@ TZ,T1 RMVPKT+2 . $T SUCCESSFUL @E@@@# J WB )@@G@@ MVEER1 . $A NO,MVEER1 YES @C@ @^ L$SNAP WC )@@G@@ 'RNDPKT',0,4,RNDPKT @B@B@ L$SNAP 'RMVPKT',0,4,RMVWD )@@G@@PKT @B@@@B . L$SNAP 'RMVPKT',0,4,RMVPKT @[@@@# . @E@@@#WE )@@G@@ . PREPARE TO DELETE RECORD JUST READ TO FREE INDEX SPACE @[@@@# . WF )@@G@@@F@@@# LX,U X10,DLTPKT . $P ADDR OF DLTPKT TO X10 WG )@@G@@@A@ @# LA A1,RNDPKT .@A@@@ LA A1,RWH )@@G@@MVPKT .@G@@@# SA A1,3,X10 . $P RECORD NUMBER WI )@@G@@TO DELETE TO PKT @A@@@# SA A1,4,X10 .@E@@@# WJ )@@G@@ LMJ X11,TF$DLT . $W TF$DLT DELETE RECORD@B@@@# TZWK )@@G@@,T1 DLTPKT+2 . @B@@@# J MVEER1 WL )@@G@@ . @[@@@# . @C@@@# . FIGURE OUT EFFECT OF DELETE ON RECORD NUMBERSWM )@@G@@@[@@@# . @E@ @# LA A2,RNDPKT . $P RECORD DELETEDWN )@@G@@ TO A2@E@@@ LA A2,RMVPKT . $P RECORD DELETED TO A2WO )@@G@@@E@@@# TG A2,MVSAV1 . $T RCD# DELETED < RCD#1@E@@@#WP )@@G@@ J MVEGT2 . $A NO,MVEGT2 YES,MVEGT1@ @@@# WQ )@@G@@ J MVEGT1 @A@@@#MVEGT1 LA A3,MVSAV1 .@A@@@#WR )@@G@@ ANA,U A3,1 .@G@@@# SA A3,MVSAV1 WS )@@G@@ . $P DECREMENT RCD#1, WHERE TO INSERT@F@@@#MVEGT2 . PREPARE TO INSEWT )@@G@@RT RECORD IN FILE AFTER RCD# IN MVSAV1 @[@@@# . @ @@@# . SET UP THWU )@@G@@E INSERT PACKET @F@@@# LX,U X10,IAFPKT . $P ADDR OF WV )@@G@@IAFPKT TO X10 @A@@@# LA A4,MVSAV1 .@G@@@# WW )@@G@@ SA A4,0,X10 . $P RCD# TO INSERT AFTER H1(IAFPKT) @G@ @#WX )@@G@@ LA,H2 A5,RNDPKT+2 . $P LENGTH OF RECORD TO A5 WY )@@G@@@F@@@ LA,H2 A5,RMVPKT+2 . $P LENGTH OF RECORD TO A5 WZ )@@G@@@G@@@# SA,H2 A5,2,X10 . $P LENGTH OF RECORD TO H2(IAFXA )@@G@@PKT) @E@@@# LMJ X11,TF$IA . $W TF$IA INSERT RECORD XB )@@G@@@A@@@# TZ,T1 2,X10 .@A@@@# J MVEEXC )@@G@@R1 .@B@B@^ L$SNAP 'DLTMVE',0,12,DLTPKT @B@@@B XD )@@G@@ . L$SNAP 'DLTMVE',0,12,DLTPKT @G@@@# LA A5,MVSAV1 XE )@@G@@ . $P RCD# TO INSERT AFTER TO A5 @G@@@# TLE A5,MXF )@@G@@VSAV2 . $T RCD# TO INSERT <= INSERT RCD# @E@@@# J XG )@@G@@ MVEGT4 . $A NO,MVEGT2 YES,MVEGT3@ @@@# J MVEGXH )@@G@@T3 @C@@@#MVEGT4 . INCREMENT RECORD TO INSERT AFTER @G@@@# XI )@@G@@ AA,U A5,1 . $P INCREMEN RCD# TO INSERT AFTER @G@@@#XJ )@@G@@ SA A5,MVSAV1 . $P NEW RCD# TO INSERT AFTER MVSAV1XK )@@G@@@A@@@# LA A1,MVSAV2 .@A@@@# AA,U A1,1XL )@@G@@ .@G@@@# SA A1,MVSAV2 . $P INCREMENT NEXTXM )@@G@@ RECORD # TO MOVE @ @@@# J MVEGT5 @]@@@#MVEGT3 . XN )@@G@@@A@@@# LA A1,MVSAV1 .@A@@@# AA,U A1,1XO )@@G@@ .@G@@@# SA A1,MVSAV1 . $P INCREMENT RCD=XP )@@G@@ TO INSERT AFTER @]@@@#MVEGT5 . @A@^@# LA,H2 A0,MVSAV2 XQ )@@G@@ .@A@@@^ LA A0,NUMMVE .@A@@@# ANA,U XR )@@G@@ A0,1 .@G@^@# SA,H2 A0,MVSAV2 . $P DECREMENXS )@@G@@T # OF RECORDS TO MOVE @G@@@^ SA A0,NUMMVE . $P DEXT )@@G@@CREMENT # OF RECORDS TO MOVE @ @@@# J MVELP1 @A@@@#XU )@@G@@MVEDN1 . NO MORE RECORDS TO MOVE @D@@@# LX X10,X10SAVXV )@@G@@ . $P RESTORE X10 @F@@@# SZ,T1 2,X10 . $P STXW )@@G@@ORE SUCCESSFUL RETURN @A@@@# LA A0,0,X10 .@G@@@#XX )@@G@@ SA A0,1,X10 . $P RETURN FINAL RCD# TO CALLER SAMEXY )@@G@@@B@@@A SZ RDA . @C@A@ _ SZ XZ )@@G@@ RDA . @B@@@ SZ RDALN YA )@@G@@ . @C@@@# J *RETURN . $E EXIT @]@@@#MVEER1YB )@@G@@ . @D@@@# LX X10,X10SAV . $P RESTORE X10 @^@@@#YC )@@G@@ LA,U A0,1@F@@@# SA,T1 A0,2,X10 . $P SEYD )@@G@@T ERROR RETURN CODE @B@@@ SZ RDA . YE )@@G@@@B@@@ SZ RDALN . @C@@@# J YF )@@G@@ *RETURN . $E EXIT @[@@@# . @G@@@# . SUBROUTINE TO CHECK IYG )@@G@@F RCD# TO MOVE AFTER IS OUT OF RANGE OF @^@@@# . RECORDS TO BE MYH )@@G@@OVED. @F@@@# . UPON RETURN, A2 CONTAINS ERROR CODE (0 = RCD# OUT OF RANGYI )@@G@@E) @[@@@# . @C@@@#CHRNGE SX,H2 X11,RET1 . $H CHRNGE YJ )@@G@@@D@@@# LA A0,0,X10 . $P RCD#1 TO A0 @D@@@# YK )@@G@@ LA A1,3,X10 . $P RCD#3 TO A1 @D@@@# LA YL )@@G@@ A2,4,X10 . $P RCD#4 TO A2 @E@@@# TLE A2,A1 YM )@@G@@ . $T RCD#3 <= RCD#4 @E@@@# J CHREX1 .YN )@@G@@ $A NO,CHREX1 YES @E@@@# TG A0,A1 . $T RCYO )@@G@@D#3 > RCD#1 @E@@@# J CHRGT1 . $A NO,CHRGTYP )@@G@@1 YES,CHREX0@ @@@# J CHREX0 @]@@@#CHRGT1 . @E@@@#YQ )@@G@@ TLE A2,A0 . $T RCD#1 <= RCD=4 @E@@@# YR )@@G@@ J CHREX0 . $A NO,CHREX0 YES @G@@@#CHREX1 LAYS )@@G@@,U A2,1 . $P RETURN NONZERO ERROR CODE @C@@@# YT )@@G@@ J *RET1 . $E EXIT @F@@@#CHREX0 SZ A2 YU )@@G@@ . $P RETURN ZERO ERROR STATUS @C@@@# J *RETYV )@@G@@1 . $E EXIT @[@@@#$(2) @C@@@ RMVPKT* + 0 YW )@@G@@ . RCD# @G@@@ + RDA . BUFFER AYX )@@G@@DDRESS FOR DELIVERY @G@@@ + 0 . STYY )@@G@@ATUS IN T1, LENGTH IN H2 @E@@@#DLTPKT* + 0 . # OFYZ )@@G@@ RECORDS DELETED @B@@@# + 0 . RCD#2 ZA )@@G@@@E@@@# + 0 . T1 HAS STATUS (0=SUCCESSFUL)@C@@@#ZB )@@G@@ + 0 . RCD#3 @C@@@# + ZC )@@G@@ 0 . RCD#4 @D@@@#IAFPKT* + 0 . RCD#ZD )@@G@@ TO INSERT AFTER @C@ @# + CHBUFF RECORD ADDRESS ZE )@@G@@@C@@@ + RDA RECORD ADDRESS @G@@@# + ZF )@@G@@ 0 . T1 HAS STATUS (0=SUCCESSFUL), H2 LENGTH @E@@@#MVSAV1ZG )@@G@@ + 0 . HAS RECORD # TO MOVE AFTER @G@@@#MVSAV2 + ZH )@@G@@ 0 . HAS RCD3 FROM PACKET FOR LOOP CONTROL @E@@@^NUMMVEZI )@@G@@ + 0 . # OF RECORDS TO MOVE@C@@@#X10SAV + ZJ )@@G@@ 0 . TO SAVE X10 @^@@@#RET1 + 0 @^@@@#ZK )@@G@@RETURN + 0 @[@@@# . @#@@@# END ___ TG ZL )@@G@@ A2,MVSAV1 . $T RCD# DELETED < RCD#1@E@@@# J MVEGZM )@@G@@T2 . $A NO,MVEGT*[@@@@*SDFF*@C@@@@ . TEMPORARY FILE ACCESS METHOZN )@@G@@D COPY COMMAND @[@@@@ . @#@@@@ AXR$ @[@@@@$(1) @C@@@@ZO )@@G@@TF$CPY* . $H TF$CPY @A@@@@ SX,H2 ZP )@@G@@ X11,RETURN .@C@@@@ SX X10,X10SAV . $P SAVE X10ZQ )@@G@@@G@@@@ SLJ FRSTED . $P FLUSH SQW INDEX BUF ON 1STZR )@@G@@ EDIT @E@[@@ LA,H1 A0,1,X10 . $P RCD#3 TO A0 ZS )@@G@@@D@@@[ LA A0,3,X10 . $P RCD#3 TO A0 @E@[@@ ZT )@@G@@ LA,H2 A1,1,X10 . $P RCD#4 TO A1 @D@@@[ LAZU )@@G@@ A1,4,X10 . $P RCD#4 TO A1 @C@[@@ LA,H1 A2,0ZV )@@G@@,X10 . $P RCD#1 TO A2 @C@@@[ LA A2,0,X10 . $P RCD#1 TZW )@@G@@O A2 @G@@@@ SA,H2 A2,CPSAV1 . $P RCD#1 TO CPSAV1, RCD# TO ZX )@@G@@INSERT AFTER@E@@@@ TLE A1,A0 . $T RCD#3 <= RCD#4ZY )@@G@@ @E@@@@ J CPYER1 . $A NO,CPYER1 YES ZZ )@@G@@@D@@@@ TLE A0,A2 . $T RCD#1 <= RCD#3 @E@@@@ AA )@@G@@ J CPYGT1 . $A NO,CPYGT1 YES,CPYGT2 @A@@@@ J AB )@@G@@ CPYGT2 . @]@@@@CPYGT1 . @D@@@@ TLE A2,AAC )@@G@@1 . $T RCD#4 <= RCD#1 @C@@@@ J CPYER1 . $A NAD )@@G@@O,CPYER1 YES@C@@@@ SZ CPYSW1 . $P RESET CPYSW1 @C@@@@AE )@@G@@ J CPYGT3 . $J CPYGT3 @C@@@@CPYGT2 LA,U AF )@@G@@ A5,1 . $P SET CPYSW1 @A@@@@ SA A5,CPYSW1 .AG )@@G@@@]@@@@CPYGT3 . @[@@@@ . @G@]@@ SA,H1 A0,CPSAV2 .AH )@@G@@ $P RCD# TO COPY TO H1(CPSAV2) @G@@@] SA A0,CPSAV2 AI )@@G@@ . $P RCD# TO COPY TO (CPSAV2) @A@@@@ ANA A1,AAJ )@@G@@0 .@A@@@@ AA,U A1,1 .@G@]@@ SAAK )@@G@@,H2 A1,CPSAV2 . $P # OF RECORDS TO COPY H2(CPSAV2) @G@@@] AL )@@G@@ SA A1,NUMCPY . $P # OF RECORDS TO COPY (NUMCPY) @[@@@@AM )@@G@@ . @C@@@@ . SET UP LOOP FOR COPYING RECORDS ONE BY ONE @[@@@@ . AN )@@G@@@]@@@@CPYLP1 . @G@]@@ TNZ,H2 CPSAV2 . $T DONE WITAO )@@G@@H ALL RECORDS TO COPY @G@@@] TNZ NUMCPY . $T DOAP )@@G@@NE WITH ALL RECORDS TO COPY @E@@@@ J CPYDNE .AQ )@@G@@ $A YES,CPYDNE NO @G@#@@ LX,U X10,RNDPKT . $P ADAR )@@G@@DR OF RANDOM READ PKT TO X10 @G@@@# LX,U X10,RMVPKT .AS )@@G@@ $P ADDR OF RANDOM READ PKT TO X10 @E@]@@ LA,H1 A0,CPSAV2 AT )@@G@@ . $P RCD# TO COPY TO A0 @E@@@] LA A0,CPSAV2 .AU )@@G@@ $P RCD# TO COPY TO A0 @G@[@@ SA,H1 A0,0,X10 . $P RCAV )@@G@@D# TO COPY TO RNDPKT @G@#@[ SA A0,0,X10 .AW )@@G@@ $P RCD# TO COPY TO RNDPKT @F@@@# SA A0,0,X10 AX )@@G@@ . $P RCD# TO COPY TO RMVPKT @F@@@@ LMJ X11,TF$RMRAY )@@G@@ . $W TF$RMR ISSUE RANDOM READ @G@#@@ AZ )@@G@@ . RECORD DELIVERED TO CHBUFF @F@@@# BA )@@G@@ . RECORD DELIVERED TO RDA @E@#@@ TZ,T1 RNDPBB )@@G@@KT+2 . $T SUCCESSFUL @D@@@# TZ,T1 RMVPKT+2 BC )@@G@@ . $T SUCCESSFUL @E@@@@ J CPYER1 . $A NOBD )@@G@@,CPYER1 YES @[@@@@ . @E@@@@ . PREPARE TO INSERT RECORD IN FILE BE )@@G@@AFTER RECORD IN CPSAV1 @[@@@@ . @C@#@] L$SNAP 'RNDPKT',0BF )@@G@@,4,RNDPKT @B@^@# L$SNAP 'RMVPKT',0,4,RMVPKT @B@@@^BG )@@G@@ . L$SNAP 'RMVPKT',0,4,RMVPKT @G@@@@ LX,U X10,BH )@@G@@IAFPKT . $P ADDR OF INSERT AFTER PKT TO X10 @A@@@@ LA,H2 BI )@@G@@ A4,CPSAV1 .@G@[@@ SA,H1 A4,0,X10 . $P RCD# TO BJ )@@G@@INSERT AFTER TO IAFPKT @G@@@[ SA A4,0,X10 . $P RCBK )@@G@@D# TO INSERT AFTER TO IAFPKT @A@[@@ LA,H2 A5,RNDPKT .BL )@@G@@@A@#@[ LA,H2 A5,RNDPKT+2 .@A@@@# LA,H2 A5,RBM )@@G@@MVPKT+2 .@G@[@@ SA,H2 A5,0,X10 . $P RCD LENGTH TO BN )@@G@@H2(IAFPKT) @G@]@[ SA,H2 A5,3,X10 . $P RCD LENGBO )@@G@@TH TO H2(IAFPKT)+2 @G@@@] SA,H2 A5,2,X10 . $P RCBP )@@G@@D LENGTH TO H2(IAFPKT)+2 @E@@@@ LMJ X11,TF$IA .BQ )@@G@@ $W TF$IA INSERT RECORD @D@@@@ TZ,T1 2,X10 . $T SUBR )@@G@@CCESSFUL @E@@@@ J CPYER1 . $A NO,CPYER1 YES BS )@@G@@ @B@^@] L$SNAP 'IAFPKT',0,4,IAFPKT @B@@@^ . L$BT )@@G@@SNAP 'IAFPKT',0,4,IAFPKT @E@]@@ LA,H1 A0,CPSAV2 .BU )@@G@@ $P RCD# TO COPY TO A0 @E@@@] LA A0,CPSAV2 . $P RCBV )@@G@@D# TO COPY TO A0 @G@@@@ TZ CPYSW1 . $T RCD# TO BW )@@G@@COPY <= RCD# TO INSERT @E@@@@ J CPYGT5 . $A NOBX )@@G@@,CPYGT5 YES @A@@@@ .@A@@@@ BY )@@G@@ .@G@@@@ AA,U A0,1 .BZ )@@G@@ $P INCREMENT RCD# TO COPY BY 1 @C@@@@ J CPYGT6 CA )@@G@@ . $J CPYGT6 @]@@@@CPYGT5 . @G@@@@ AA,U A0,2 CB )@@G@@ . $P INCREMENT RCD# TO COPY BY 2 @G@]@@CPYGT6 SA,H1 A0,CCC )@@G@@PSAV2 . $P NEW RCD# TO COPY TO H1(CPSAV2) @G@@@]CPYGT6 SA CD )@@G@@ A0,CPSAV2 . $P NEW RCD# TO COPY TO (CPSAV2) @A@]@@ LACE )@@G@@,H2 A1,CPSAV1 .@A@@@] LA A1,CPSAV1 .@A@@@@CF )@@G@@ AA,U A1,1 .@G@]@@ SA,H2 A1,CPSAV1 CG )@@G@@ . $P UPDATE RCD# TO INSERT BY 1 @G@@@] SA A1,CCH )@@G@@PSAV1 . $P UPDATE RCD# TO INSERT BY 1 @A@]@@ LA,H2 CI )@@G@@ A2,CPSAV2 .@A@@@] LA A2,NUMCPY .@A@@@@ CJ )@@G@@ ANA,U A2,1 .@G@]@@ SA,H2 A2,CPSAV2 .CK )@@G@@ $P UPDATE # OF RECORDS TO COPY @G@@@] SA A2,NUMCPY CL )@@G@@ . $P UPDATE # OF RECORDS TO COPY @C@@@@ J CPYLCM )@@G@@P1 . $J CPYLP1 @]@@@@CPYDNE . @D@@@@ LX X10,CN )@@G@@X10SAV . $P RESTORE X10 @A@]@@ LA,H2 A0,CPSAV1 .CO )@@G@@@A@@@] LA A0,CPSAV1 .@E@[@@ SA,H2 A0,0CP )@@G@@,X10 . $P RETURN PROPER RCD#2 @E@@@[ SA A0,1,X10 CQ )@@G@@ . $P RETURN PROPER RCD#2 @G@@@@ SZ,T1 2,X10 .CR )@@G@@ $P RETURN ZERO ERROR STATUS @B@@@# SZ RDA CS )@@G@@ . @B@@@# SZ RDALN . @C@@@@ CT )@@G@@ J *RETURN . $E EXIT @]@@@@CPYER1 . @G@@@@ CU )@@G@@ LA,U A0,1 . $P RETURN NON ZERO ERROR STATUS @A@@@@CV )@@G@@ SA,T1 A0,2,X10 .@B@@@# SZ RDA CW )@@G@@ . @B@@@# SZ RDALN . @C@@@@ CX )@@G@@ J *RETURN . $E EXIT @[@@@@$(2) @E@]@@CPSAV1 + CY )@@G@@ 0 . H2 HAS RCD# TO INSERT AFTER @E@@@]CPSAV1 + CZ )@@G@@ 0 . HAS RCD# TO INSERT AFTER @E@]@@CPSAV2 + 0 DA )@@G@@ . H1 HAS RCD# TO COPY @D@@@]CPSAV2 + 0 DB )@@G@@. HAS RCD# TO COPY @E@@@]NUMCPY + 0 . # DC )@@G@@OF RECORDS TO COPY@E@]@@ . H2 HAS # OF RECODD )@@G@@RDS TO COPY @F@@@@CPYSW1 + 0 . 0 WHEN RCD#3 <= RCD#DE )@@G@@4 <= RCD#1 @^@@@@RETURN + 0 @B@@@@X10SAV + 0 DF )@@G@@ . @#@@@@ END ___1,A0 .@A@@@@ DG )@@G@@ AA,U A1,1 *[@@@@*SDFF*@[@@@D . @C@@@D . TEMPORARY FILE DH )@@G@@ACCESS METHOD, LOCATE BY DBP @[@@@D . @#@@@D AXR$ @[@@@DDI )@@G@@$(1) @B@@@DTF$DBP1* LA,U A0,1 . @E@@@D SADJ )@@G@@ A0,DBPASW . $P SET DBPASW @B@H@D L$SNAP DK )@@G@@ 'DBP1 ',0,4,DBPPKT @B@@@H . L$SNAP 'DBP1 ',0,4,DBPPKT DL )@@G@@@]@@@DTF$DBP* @A@@@D SX,H2 X11,RETURN @B@@@D DM )@@G@@ SX X10,X10SAV . @F@@@D SLJ FRSTED DN )@@G@@ . $W FRSTED FLUSH INDEX BUFF @A@@@D SZ DBPSW DO )@@G@@ .@G@@@D TNZ RNDSAV . $T HAS ANY BLOCK BEEDP )@@G@@N LOCATED @E@@@D J DBPKFIL . $A NO,DBPKFIL DQ )@@G@@YES @[@@@D . @A@@@D . SEARCH LAST LOCATED BLOCK FIRST @[@@@D . DR )@@G@@@B@@@D LA A2,RNDADD . @B@@@D LA DS )@@G@@ A1,RNDSAV . @H@@@D ANA A1,A2 . $PDT )@@G@@ REL BLOCK # OF LAST LOCATED BLOCK @B@@@D TG A1,RNDIDX DU )@@G@@ . @B@@@D ER ERR$ . @B@@@D DV )@@G@@ SA,H2 A1,DBPBLK . @G@@@D LMJ X11,DBPSCHDW )@@G@@ . $W DBPSCH SEARCH FOR INDEX @E@@@D JZ A2,DDX )@@G@@BPFND . $T WAS INDEX FOUND @E@@@D DY )@@G@@ . $A YES,DBPFND NO @^@@@DDBPKFIL . @[@@@D . DZ )@@G@@@[@@@D . @E@@@D . CALL THE KEY FILE ACCESS METHOD TO FIND REL INDEX BEA )@@G@@LOCK #@[@@@D . @[@@@D . @F@@@G TNZ,H1 1,X10 EB )@@G@@ . $T IS POINTER ARTIFICIAL @E@@@G J ARTDBP EC )@@G@@ . $YES,ARTDBP NO @F@@@D LA A0,1,X10 . $PED )@@G@@ DBP TO LOCATE TO A0 @E@@@D SA A0,KFAPKT+3 . $PEE )@@G@@ DBP TO KFAPKT+3 @B@@@D LX,U X10,KFAPKT . @D@@@DEF )@@G@@ LMJ X11,KF$AMR . $W KF$AMR @B@@@D LXEG )@@G@@ X10,X10SAV . @G@@@D TZ KFAPKT+5 EH )@@G@@ . $T SUCCESSFUL KEY FILE READ @E@@@D J ARTDBP EI )@@G@@ . $A NO,ARTDBP YES @[@@@D . @^@@@D . FOUND DBP IN KEY FILEEJ )@@G@@@[@@@D . @E@@@D TZ,H1 KFAPKT+4 . $T RECORD RELOEK )@@G@@ADED @E@@@D J ARTDBP . $A YES,ARTDBP NO EL )@@G@@@F@@@D LA,H2 A1,KFAPKT+4 . $P BLOCK NUMBER TO A1 EM )@@G@@@G@@@D SA A1,RELKBLK . SAVE RELATIVE BLOCK NUMBEREN )@@G@@ @F@@@D TG A1,RNDIDX . $T BLOCK NUMBER LEGAEO )@@G@@L @E@@@D J ARTDBP . $T NO,ARTDBP YES EP )@@G@@@I@E@D L$SNAP 'DBPKFM',0,4,KFAPKT+3 EQ )@@G@@ . @H@@@E . L$SNAP 'DBPKFM',0,4,KFAPKT+3 ER )@@G@@ . @D@@@D J DBPGT3 ES )@@G@@ . $J DBPGT3 @]@@@DARTDBP . @[@@@D . @C@@@D . TEMPORARY FILE ET )@@G@@ACCESS METHOD, LOCATE BY DBP @[@@@D . @A@@@D LA A2,REU )@@G@@NDADD .@G@@@D TNZ RNDSAV . $T ANY RECORD HASEV )@@G@@ BEEN LOCATED @E@@@D J DBPGT1 . $A NO,DBPGTEW )@@G@@ YES @B@@@D LA A1,RNDSAV . @G@@@D EX )@@G@@ ANA A1,A2 . $P RELATIVE CURRENT BLOCK# TO A1 @A@@@DEY )@@G@@ TG A1,RNDIDX .@A@@@D ER ERR$ EZ )@@G@@ .@C@@@D J DBPGT3 . $J DBPGT3 @]@@@DDBPGT1FA )@@G@@ . @F@@@D SZ A1 . $P ASSUME 0 REL BLK NUMFB )@@G@@BER @]@@@DDBPGT3 . @F@@@D SA A1,BLKUP . $P BLFC )@@G@@KUP = CUR REL INX BLK# @^@@@D ANA,U A1,1@E@@@D SAFD )@@G@@ A1,BLKDN . $P BLKDN = BLKUP - 1 @G@@@D LR FE )@@G@@ R2,RNDIDX . $P # OF BLK ENTRIES TO DBPIXN @B@@@D SRFF )@@G@@ R2,DBPIXN . $ @]@@@DDBPLP1 . @G@@@D JGD FG )@@G@@ R2,$+2 . $T ARE WE DONE WITH ALL ENTS @E@@@D J FH )@@G@@ DBPER1 . $A YES,DBPER1 NO @]@@@DDBPLP2 @D@@@DFI )@@G@@ TZ DBPSW . $T DBPSW = 0 @E@@@D J FJ )@@G@@ DBPGT4 . $A NO,DBPGT4 YES @[@@@D . @#@@@D . DBPFK )@@G@@SW IZ ZERO @[@@@D . @B@@@D LA,U A0,1 . $ FL )@@G@@@D@@@D SA A0,DBPSW . $P SET DBPSW @D@@@D FM )@@G@@ LA A1,BLKUP . $P BLKUP TO A1 @A@@@D LA FN )@@G@@ A2,RNDIDX .@G@@@D ANA,U A2,1 . $P MAX REL FO )@@G@@INX BLK NUM TO A2 @G@@@D TLE A2,A1 . $T BLFP )@@G@@KUP <= MAX REL INX BLK NUM @E@@@D J DBPLP2 .FQ )@@G@@ $P NO,DBPLP2 YES @A@@@D LA A3,A1 . @A@@@DFR )@@G@@ AA,U A3,1 . @D@@@D SA A3,BLKUP FS )@@G@@ . $P INCREMENT BLKUP @[@@@D . @F@@@D . SHOULD SEARCH BLOCK WHOSE RFT )@@G@@EL # IS IN A1 FOR DBP, A1 CONTAINS @^@@@D . REL BLK NUMBER @E@@@DFU )@@G@@DBPGT6 SA,H2 A1,DBPBLK . $P REL BLK # TO H2(DBPBLK)@G@@@D FV )@@G@@ LMJ X11,DBPSCH . $W DBPSCH SEARCH INDEX BLOCK @E@@@DFW )@@G@@ . A2=0 IF SUCCESSFUL @D@@@D FX )@@G@@ TZ A2 . $T SUCCESSFUL @E@@@D J FY )@@G@@ DBPLP1 . $A NO,DBPLP1 YES,DBPFND@A@@@D J DBPFFZ )@@G@@ND .@^@@@DDBPGT4 . DBPSW IS ONE @D@@@D SZ DBPSGA )@@G@@W . $P RESET DBPSW @D@@@D LA A0,BLKDN .GB )@@G@@ $P BLKDN TO A0 @D@@@D TG,U A0,0 . $T BLKDN ) GC )@@G@@0 @E@@@D J DBPGT5 . $A NO,DBPGT5 YES,DBPLP2GD )@@G@@@ @@@D J DBPLP2 @]@@@DDBPGT5 . @D@@@D LAGE )@@G@@ A1,BLKDN . $P BLKDN TO A1 @A@@@D LA A3,AGF )@@G@@1 .@A@@@D ANA,U A3,1 .@E@@@D SAGG )@@G@@ A3,BLKDN . $P DECREMENT BLKDN @C@@@D J GH )@@G@@ DBPGT6 . $J DBPGT6 @[@@@D . @E@@@DDBPFND . FOUND INDEX FORGI )@@G@@ DBP, WILL BE IN LOCATION DBPINX @[@@@D . @A@@@D LA GJ )@@G@@ A3,DBPINX @E@@@D SA A3,TEMPKT+1 . $P INDEX TOGK )@@G@@ TEMPKT+1 @E@@@D LMJ X11,LOCREC . $W LOCREC LOCATE GL )@@G@@RECORD@G@@@D LX,H2 X8,TEMPKT . $P ADDR OF RECORD < HEAGM )@@G@@DER TO X8 @E@@@D LA,H2 A5,0,X8 . $P RECORD LENGTH GN )@@G@@TO A5 @^@@@D ANA,U A5,1@G@@@D SA A5,3,X10 GO )@@G@@ . $P RECORD LENGTH TO CALLING PKT @A@@@D AX,U X8,1GP )@@G@@ .@G@@@D TNZ DBPASW . $T RECORD TO BGQ )@@G@@E DELIVERED @E@@@D J DBPGT7 . $A NO,DBGR )@@G@@PGT7 YES @G@@@D SX,H2 X8,2,X10 . $P RETURN ADDRGS )@@G@@ESS OF RECORD @D@@@D J DBPEX0 . $J DBPEXGT )@@G@@0 @]@@@DDBPGT7 @A@@@D LX,H2 X9,2,X10 .@ @@@DGU )@@G@@ LR R1,A5 @F@@@D SLJ RTRANS .GV )@@G@@ $W RTRANS TRANSFER RECORD @E@@@DDBPEX0 SZ,T1 2,X10 .GW )@@G@@ $P SET ZERO RETURN CODE@]@@@DDBPEXT . @B@@@D SZ DBPAGX )@@G@@SW . @ @@@D J *RETURN @ @@@DDBPER1 . COUGY )@@G@@LD NOT FIND DP @A@@@D LA,U A0,1 .@G@@@D GZ )@@G@@ SA,T1 A0,2,X10 . $P RETURN NON ZERO ERROR CODE @C@@@DHA )@@G@@ J DBPEXT . $E EXIT @[@@@D . @G@@@D . SUBHB )@@G@@ROUTINE TO SEARCH AN INDEX BLOCK FOR DBP REQUIRED BY CALLING @D@@@DHC )@@G@@ . PACKET (1,X10) . THE INDEX BLOCK NUMBER IS IN A1. @E@@@D . IF DBP ISHD )@@G@@ NOT FOUND IN BLOCK, SEARCH THE OVERFLOW BLOCKS @E@@@D . UPON RETURN, A2HE )@@G@@ CONTAINS ERROR STATUS 0=SUCCESSFUL @C@@@D . DBPINX CHF )@@G@@ONTAINS INDEX IF FOUND @F@@@D . H1(DBPBLK) CONTAINS REL INHG )@@G@@X BLK NUMBER WHERE FND @D@@@D . RECORD # TO CALLING PACKEHH )@@G@@T 0,X10 @[@@@D . @]@@@DDBPSCH @C@@@D SX,H2 X11,HI )@@G@@RET1 . $H DBPSCH @G@@@D SZ SCHINX . $P # HJ )@@G@@OF INDICES SEARCHED IS ZERO @A@@@DSCHLP2 SA,H1 A1,DBPBLK .HK )@@G@@@F@@@D SA,H2 A1,INXPKT . $P INX BLK# TO H2(INXPKT) HL )@@G@@@E@@@D LMJ X11,INXBUF . $W INXBUF GET BLOCK @D@@@DHM )@@G@@ TZ,H1 INXPKT . $T SUCCESSFUL @C@@@D ERHN )@@G@@ ERR$ . $E EXIT @E@@@D LX X9,INXPKT+HO )@@G@@1 . $P ADDR OF BLK TO X9 @F@@@D TNZ,H2 1,X9 .HP )@@G@@ $T ANY INDICES IN THIS BLK @E@@@D J SCHGT1 .HQ )@@G@@ $A NO,SCHGT1 YES @G@@@D LA A0,SCHINX . $P UPHR )@@G@@DATE # OF INDICES SEARCHED @A@@@D AA,H2 A0,1,X9 .HS )@@G@@@A@@@D SA A0,SCHINX @A@@@D . PREPARE TO SEARCH BLOHT )@@G@@CK FOR DBP @A@@@D LX X8,X9 .@G@@@D AXHU )@@G@@,U X8,3 . $P X8 POINTS TO BEG OF SEARCH @G@@@D HV )@@G@@ LXI,U X8,2 . $P X8 WILL INDEX BLK TO SEARCH @E@@@DHW )@@G@@ LA A2,1,X10 . $P DBP TO FIND TO A2 @G@@@D HX )@@G@@ LR,H2 R1,1,X9 . $P # OF INDICES IN BLK TO R1 @D@@@DHY )@@G@@ SE A2,0,*X8 . $T DBP IN BLOCK @E@@@D J HZ )@@G@@ SCHGT1 . $T NO,SCHGT1 YES @D@@@D . FOUND A MATCH FIA )@@G@@OR DBP, CALCULATE RECORD NUMBER @A@@@D LA A0,SCHINX IB )@@G@@ .@G@@@D ANA A0,R1 . $P SUBTRACT # OF INDICEIC )@@G@@S IN BLK @G@@@D SA A0,SCHINX . $P INX # IN THIS ID )@@G@@BLK TO SCHINX @B@@@D LA A0,RNDADD . @B@@@DIE )@@G@@ LXI,U A0,1 . @A@@@D SZ A4 IF )@@G@@ .@A@@@D LR,H2 R1,DBPBLK .@F@@@D TNIG )@@G@@Z R1 . $T WAS INX FOUND IN 1ST BLOCK @C@@@D J IH )@@G@@ SCHGT2 . $A YES,SCHGT2 NO@A@@@DSCHLP1 II )@@G@@. @E@@@D JGD R1,$+2 . $T ARE WE DONE WITH ALL BLKSIJ )@@G@@@C@@@D J SCHGT2 . $A YES,SCHGT2 NO@E@@@D AAIK )@@G@@ A4,0,*A0 . $P ACCUMULATE # OF INDICES @C@@@D J IL )@@G@@ SCHLP1 . $J SCHLP1 @]@@@DSCHGT2 . @H@@@D SA,H2 IM )@@G@@ A0,RNDSAV . $P SAVE ADD OF RAND CORE INX TAB ENT @E@@@D IN )@@G@@ AA A4,SCHINX . $P INDEX # FOUND TO A4 @G@@@D SAIO )@@G@@ A4,0,X10 . $P RECORD # TO CALLING PACKET @F@@@D IP )@@G@@ ANX,U X8,3 . $P X8 POINTS TO INDEX FOUND @D@@@D IQ )@@G@@ LA A5,0,X8 . $P INDEX TO A5 @E@@@D SA IR )@@G@@ A5,DBPINX . $P INDEX TO DBPINX @E@@@D SZ A2 IS )@@G@@ . $P SET 0 RETURN CODE @ @@@D J *RET1 IT )@@G@@@A@@@DSCHGT1 . NO MATCH IN INDEX BLOCK @G@@@D TNZ,H2 0,X9IU )@@G@@ . $T OVERFLOW BLOCK AVAILABLE @E@@@D J IV )@@G@@ SCHER1 . $A NO,SCHER1 YES @F@@@D LA,H2 A1,0IW )@@G@@,X9 . $P OVERFLOW BLOCK # TO A1 @C@@@D J SCHLIX )@@G@@P2 . $J SCHLP2 @]@@@DSCHER1 . @F@@@D LA,U A2,1IY )@@G@@ . $P RETURN NONZERO STATUS @ @@@D J *RETIZ )@@G@@1 @[@@@D$(2) @E@@@DDBPSW + 0 . 0 FOR SEARCJA )@@G@@H UPWARD @G@@@DRELKBLK + 0 . REL INX BLK # JB )@@G@@RETURNED BY KF$AM @F@@@DBLKUP + 0 . BLK # FOR SJC )@@G@@EARCH GOING UP @F@@@DBLKDN + 0 . BLK # FOR SJD )@@G@@EARCH GOING DOWN @G@@@DDBPIXN + 0 . # OF INDEX JE )@@G@@BLKS LEFT TO SEARCH @F@@@DDBPBLK + 0,0 . H2 HAJF )@@G@@S INX BLK # SEARCHED @G@@@D . H1 HAJG )@@G@@S INX BLK # WHERE FOUND @G@@@DSCHINX + 0 .JH )@@G@@ # OF INDICES SEARCHED IN BLOCK @B@@@DDBPINX + 0 JI )@@G@@ . @F@@@DDBPASW + 0 . TO INDICATE TFJJ )@@G@@$DBP1 CALL @H@@@D . TF$DBP1 CALL WJK )@@G@@ILL NOT DELIVER RECORD @G@@@DKFAPKT RES 46 . KEJL )@@G@@Y FILE ACCESS METHOD PACKET @G@@@D JM )@@G@@ . USED FOR GETTING BLOCK NUMBERS @A@@@DRETURN + 0 JN )@@G@@ .@A@@@DRET1 + 0 .@G@@@DX10SAV + JO )@@G@@ 0 . SAVE X10 BEFORE CALLING KF$AM @#@@@D ENJP )@@G@@D ___ J DBPEX0 . $J DBPEX0 @]@@@DDBPGT7 JQ )@@G@@*[@@@@*SDFF*@]@@@@ . @A@[@@ . ** DBPARSE ** JR )@@G@@@A@@@[ . ** PARSE ** @]@@@@ . @C@@@@ . JS )@@G@@ THIS ROUTINE IS USED TO PARSE THE SYTAX@E@[@@ . READ BY TJT )@@G@@HE DATA BASE EDITOR SYSTEM @E@@@[ . READ BY THE D B REOJU )@@G@@RGANIZATION MAIN CONTROL @]@@@@ . @A@@@@ . THE INTERJV )@@G@@FACE IS: @]@@@@ . @A@[@@ . LMJ X11,DJW )@@G@@BPARSE@A@@@[ . LMJ X11,PARSE @]@@@@ . @A@[@@JX )@@G@@ . ** DSPARSE ** @]@@@@ . @^@@@@ AXRJY )@@G@@$ @^@@@@ED FORM 6,6,6,18 @^@@@@PF FORM 12,6,18 JZ )@@G@@@]@@@@ . @^@@@@$(4) LIT. @]@@@@$(1). @C@[@@KA )@@G@@DBPARSE*. . $H DBPARSE @C@@@[PARSE*. KB )@@G@@ . $H PARSE @A@@@] L,U A1,BLKS . KC )@@G@@@A@@@] L,U A2,PBUFR . @A@@@] LXI,U A2,1 KD )@@G@@ . @A@@@] L,U R1,50 . @C@@@] BT KE )@@G@@ A2,,*A1 . *W CLEAR BUFFER @E@]@@ SLJ CLR KF )@@G@@. $W CLEAR PARSE BUFFER @E@]@@ DS A0,SA01 . $P SKG )@@G@@AVE WORKING REGISTERS @A@]@@ DS A2,SA23 . @A@]@@KH )@@G@@ DS A4,SA45 . @A@]@@ S X1,SX1 KI )@@G@@. @A@]@@ S X2,SX2 . @A@]@@ S X3,KJ )@@G@@SX3 . @A@@@@ L A5,A0 . @E@@@@PL1 KK )@@G@@ L,U X3,PBUFR . $P GET PTR TO PARSE BUF @A@@@@ LXIKL )@@G@@,U X3,1 . @E@@@@ L X2,A5 . $P SET PTRKM )@@G@@ TO INPUT STRING @A@@@@ LXI,U X2,1 . @E@@@@ KN )@@G@@ SSL A5,18 . $P GET INPUT WORD CNT @E@@@@ MSIKO )@@G@@,U A5,6 . $P CONVERT TO CHAR CNT @A@@@@ ANA,U A5,KP )@@G@@1 . -1 @C@@@@ SZ A1 . $P INIT CNTR KQ )@@G@@@E@@@@ L A2,(1,0) . $P INIT INPUT CHR INDEX @E@@@@KR )@@G@@PL2 L A3,(1,0) . $P INIT OUTPUT CHR INDEX @E@@@@ KS )@@G@@ L X1,X3 . $P SET ALT OUTPUT PTR @C@@@@GET1 EX KT )@@G@@ GET,A2 . $W GET A CHAR @C@@@@ TLEM,U A2,5 KU )@@G@@. $P END OF WORD ?@^@@@@ J $+2 @E@@@@ L A2,KV )@@G@@(1,0) . $P YES, RESET INDEX @E@@@@ TNE,U A0,5 KW )@@G@@ . $T CHAR A BLANK ? @E@@@@ J CHKBLK KX )@@G@@. $A YES,CHKBLK NO,PL3 @C@@@@PL3 A,U A1,1 . $P IKY )@@G@@NCR CHR CNTR@C@@@@ EX PUT,A3 . $W SAVE CHAR @E@@@@KZ )@@G@@ TLEM,U A3,5 . $P END OF OUTPUT WORD ? @^@@@@ LA )@@G@@ J $+2 @E@@@@ L A3,(1,0) . $P YES, RESET INLB )@@G@@DEX @E@@@@ JGD A5,GET1 . $P LOOP TILL INTERRUPTLC )@@G@@ @C@@@@ J EXIT . $J EXIT @C@@@@CHKBLKLD )@@G@@ JZ A1,CHK2 . $H CHK BLK @E@]@@ A,U X3,2 LE )@@G@@ . $P POINT TO NXT OUTPUT BLOCK@E@@@] A,U X3,5 LF )@@G@@. $P POINT TO NXT OUTPUT BLOCK@C@@@@ SZ A1 . $P CLG )@@G@@LEAR CHR CNT@E@@@@CHK2 JGD A5,PL2 . $P IF NOT DONE LOOP LH )@@G@@ @]@@@]EXIT. @C@]@@EXIT DL A0,SA01 . $W RESTORELI )@@G@@ REGS @A@]@@ DL A2,SA23 . @A@]@@ DL A4,LJ )@@G@@SA45 . @A@]@@ L X1,SX1 . @A@]@@ LK )@@G@@ L X2,SX2 . @A@]@@ L X3,SX3 . LL )@@G@@@C@@@@ J 0,X11 . $E EXIT @]@@@@ . LM )@@G@@@C@@@@GET L,S1 A0,,X2 . GET VECTOR @A@@@@ L,SLN )@@G@@2 A0,,X2 . @A@@@@ L,S3 A0,,X2 . @A@@@@LO )@@G@@ L,S4 A0,,X2 . @A@@@@ L,S5 A0,,X2 LP )@@G@@. @A@@@@ L,S6 A0,,*X2 . @]@@@@ . @C@@@@LQ )@@G@@PUT S,S1 A0,,X1 . PUT VECTOR @A@@@@ S,S2 A0,LR )@@G@@,X1 . @A@@@@ S,S3 A0,,X1 . @A@@@@ LS )@@G@@ S,S4 A0,,X1 . @A@@@@ S,S5 A0,,X1 . LT )@@G@@@A@@@@ S,S6 A0,,*X1 . @C@]@@CLR + 0 LU )@@G@@ . $H CLR @A@]@@ L,U A1,BLKS . @A@]@@LV )@@G@@ L,U A2,PBUFR . @A@]@@ LXI,U A2,1 LW )@@G@@. @A@]@@ L,U R1,20 . @C@]@@ BT A2,LX )@@G@@,*A1 . *W CLEAR BUFFER @C@]@@ J *CLR . $E ELY )@@G@@XIT @]@@@@$(4). @#@#@@SA01 RES 2 @#@#@@SA23 RESLZ )@@G@@ 2 @#@#@@SA45 RES 2 @#@#@@SX1 + 0 @#@#@@SX2 + MA )@@G@@ 0 @#@#@@SX3 + 0 @^@@@@BLKS ' ' @]@@@@ MB )@@G@@ END___^@)^@)^@)^@) 0)^@)^@)@D@]@@^@)^@)^@)^@)^[G^@)^@)^[SAC?ETSAC)^@)MC )@@G@@^@)^@)^@) 0)^@)^@)@D@]@@^@)^@)^@)^@)^[G^@)^@)^[SAK?ETSAK)^@)^@)^@)^@) 0)MD )@@G@@^@)^@)@D@]@@^@)^@)^@)^@)*[@@@@*SDFF*@#@@@@ AXR$ @]@@@@$(1). ME )@@G@@ @]@@@@DUMMY*. @ @@@@ J 0,X11 @#@@@@ MF )@@G@@ END ___^@)^@)^@)^@)C(IC))^@)___D1PD(]C(M*[@@@@*SDFF*@^@@@@ MG )@@G@@ AXR$ @^@@@@$(4) LIT @]@@@@$(1). @A@@@@MH )@@G@@PGSIZE EQUF 2,X9,H1 @A@@@@UNUSED EQUF 2,X9,H2 MI )@@G@@ @A@@@@SLOTS EQUF 3,X9,H1 @A@@@@LASTVAC EQUF MJ )@@G@@ 3,X9,H2 @A@@@@PGTYPE EQUF 1,X9,S3 @A@@@@CALCNUMK )@@G@@M EQUF 6,X9,H1 @A@@@@PGNUM EQUF 1,X9,H2 ML )@@G@@@A@@@@ACODE EQUF 1,X9,T1 @A@@@@RCDTYP EQUF 0,X7MM )@@G@@,T1 @A@@@@RCDDESC EQUF 0,X7,S3 @A@@@@RCDLENG EQMN )@@G@@UF 0,X7,H2 @A@@@@SLTDESC EQUF 0,X6,S1 @A@@@@MO )@@G@@DISP EQUF 0,X6,H2 @C@@@@PACKPG* MP )@@G@@ . $H @]@@@@. @E@@@@. PACKPG IS A SUBROUTIMQ )@@G@@NE TO COMPACT A DATA BASE PAGE@C@@@@. ENTERED: LMJ X1MR )@@G@@1,PACKPG @A@@@@. X9 = PAGE ADDR @C@@@@. MS )@@G@@ OTHER REGISTERS USED: @E@@@@. AMT )@@G@@0,A1,X1,X2,X3,R13,R14,R15,R1 @]@@@@. @C@@@@ LXI,U MU )@@G@@ X9,1 . @E@@@@ TNZ UNUSED MV )@@G@@ . $T ANY UNUSED WORDS @E@@@@ J 0,X11 . $AMW )@@G@@ YES NO,RETURN @G@@@@ LA A0,LASTVAC . $P GET LMX )@@G@@AST VACANT WRD ADDR @C@@@@ AA A0,X9 . MY )@@G@@ @E@@@@ LA A0,0,A0 . GET THE ENTRY MZ )@@G@@@G@@@@ TNE A0,UNUSED . $T MATCH UNUSED COUNT NA )@@G@@ @E@@@@ J PACKPG55 . $A YES,PACKPG55 NO NB )@@G@@@]@@@@PACKPG1. @E@@@@ LA A0,PGSIZE . $P GET PNC )@@G@@AGE SIZE @E@@@@ ANA A0,SLOTS . $P - SLOTS NUMND )@@G@@BER @E@@@@ ANA A0,CALCNUM . $P - CALC SLOTS NE )@@G@@@E@@@@ AA A0,X9 . $P COMPUTE ABS ADDR @C@@@@NF )@@G@@ LXI,U A0,1 . @E@@@@ LR NG )@@G@@ R15,A0 . SAVE IT IN R15 @C@@@@PACKPG2 NH )@@G@@ . $H @I@@@@ LX X1,X9 . $PNI )@@G@@ SET UP X1 & X2 FOR RECORD TRANSFER @C@@@@ LXI,U X1,1NJ )@@G@@ . @C@@@@ AX,U X1,10 . NK )@@G@@ @C@@@@ LX X2,X1 . @C@@@@PACKPGNL )@@G@@3 . $H @E@@@@ LA A0,RNM )@@G@@15 . $T LAST RECORD MOVED@C@@@@ TNE A0,X2 NN )@@G@@ . @E@@@@ J PACKPG5 . $A YES,PNO )@@G@@ACKPG5 NO @C@@@@ LA A0,(010000000) . @E@@@@NP )@@G@@ AND A0,0,X2 . $T RECORD DELETED @E@@@@ NQ )@@G@@ JZ A1,PACKPG4 . $A YES,PACKPG4 NO @E@@@@ LRNR )@@G@@,H2 R1,0,X2 . $P GET RECORD LENGTH@E@@@@ LR NS )@@G@@ R13,X1 . $P SAVE X1 @E@@@@ LR R14,NT )@@G@@X2 . $P SAVE X2 @E@@@@ BT X1,0,*X2 NU )@@G@@ . SAVE THE RECORD @G@@@@ LX X3,X9 NV )@@G@@ . $ MODIFY THE SLOT ENTRY @G@@@@ AX X3,PGSIZE NW )@@G@@ . $P COMPUTE THE SLOT ADDR @C@@@@ ANX X3,CNX )@@G@@ALCNUM . @C@@@@ ANX,U X3,1 . NY )@@G@@ @C@@@@ LXI,U X3,-1 . @E@@@@ NZ )@@G@@ LA A0,R14 . $P GET OLD DISP @C@@@@ ANOA )@@G@@A A0,X9 . @C@@@@ LXI,U A0,0 OB )@@G@@ . @E@@@@ LR R1,SLOTS . $P GET LOC )@@G@@OOP COUNT @E@@@@ SE,H2 A0,0,*X3 . $T SEARCH FOR OD )@@G@@SLOT @E@@@@ ER ERR$ . $A YES NO,ERR OE )@@G@@@E@@@@ LA A0,R13 . $P GET THE NEW DISP @C@@@@OF )@@G@@ ANA A0,X9 . @E@@@@ SA,H2 OG )@@G@@ A0,1,X3 . $P SAVE IT @C@@@@ J PACKOH )@@G@@PG3 . $J NXT @C@@@@PACKPG4 . $HOI )@@G@@ @G@@@@ AX,H2 X2,0,X2 . $P BUMP UP TO NXT REOJ )@@G@@CORD @C@@@@ J PACKPG3 . @C@@@@OK )@@G@@PACKPG5 . $H @G@@@@ LA OL )@@G@@ A0,X1 . $P COMPUTE LAST VAC ADDR @C@@@@ ANOM )@@G@@A A0,X9 . @E@@@@ SA A0,LASTVACON )@@G@@ . $P SAVE IT @I@@@@ LA A0,X2 OO )@@G@@ . $P COMPUTE NUMBER OF WRDS TO BE ZEROED @C@@@@ ANA OP )@@G@@ A0,X1 . @E@@@@ SA A0,UNUSED OQ )@@G@@ . $P SAVE UNUSED COUNT@C@@@@ LR R1,A0 . OR )@@G@@ @C@@@@ SZ A0 . @G@@@@ OS )@@G@@ LX,U X3,A0 . $P SET UP TO STORE ZEROS @C@@@@OT )@@G@@ BT X1,0,*X3 . @I@@@@PACKPG55 OU )@@G@@ . $H CHECK IF ANY SLOTS MAY BE ELIMINATED @E@@@@OV )@@G@@ TNZ SLOTS . $T ANY SLOTS @E@@@@ OW )@@G@@ J 0,X11 . $A YES NO,RETURN @E@@@@ LROX )@@G@@ R15,SLOTS . $P SCAN SLOTS @C@@@@ JGD OY )@@G@@ R15,$+1 . @G@@@@ LX X1,X9 OZ )@@G@@ . $P COMPUTE SLOTS ADDR @C@@@@ AX X1,PGSIZE PA )@@G@@ . @C@@@@ ANX X1,CALCNUM . PB )@@G@@@C@@@@ ANX X1,SLOTS . @^@@@@ LXPC )@@G@@I,U X1,1@C@@@@PACKPG6 . $H @E@@@@PD )@@G@@ LA A0,(0400000000000). $P SET A0 @E@@@@ PE )@@G@@ AND A0,0,X1 . $T SLOT IN USE @E@@@@ JZPF )@@G@@ A1,PACKPG7 . $A YES,PACKPG7 NO @E@@@@ SZ PG )@@G@@ 0,*X1 . $P ZERO OUT THE SLOT@E@@@@ LA,U A0,1PH )@@G@@ . $P UP UNUSED COUNT @C@@@@ AA A0,UNUSED PI )@@G@@ . @C@@@@ SA A0,UNUSED . PJ )@@G@@@E@@@@ LA A0,SLOTS . $P DOWN SLOTS COUNT @^@@@@PK )@@G@@ ANA,U A0,1@C@@@@ SA A0,SLOTS . PL )@@G@@ @E@@@@ JGD R15,PACKPG6 . $J TRY NXT PM )@@G@@@C@@@@PACKPG7 . $H @E@@@@ LXPN )@@G@@ X1,X9 . $P SET LASTVAC @C@@@@ AX PO )@@G@@ X1,LASTVAC . @C@@@@ LA A0,UNUSED PP )@@G@@ . @C@@@@ SA A0,0,X1 . @E@@@@PQ )@@G@@ J 0,X11 . $J RETURN @^@@@@ PR )@@G@@ END ___ TN RETURN @^@@@@ END PS )@@G@@___ TNZ UNUSED . $T ANY UNUSED *[@@@@*SDFF*@[@@@@ . PT )@@G@@@C@@@@ . ** SCHEMA ACCESS METHODS ** @[@@@@ . @G@@@@PU )@@G@@ . THIS ELEMENT CONTAINS THE FOLLOWING SCHEMA ACCESS METHODS: PV )@@G@@@C@@@@ . FABNME, FABCDE, FSABCD @C@@@@ . PW )@@G@@ FRBNME, FRBCDE, FSRBCD @C@@@@ . FSBNME, FPX )@@G@@SBCDE, FSSBCD @A@@@@ . FASRTL, FDSDT @[@@@@ . PY )@@G@@@[@@@@ . @#@@@@ AXR$. @#@@@@$(4) LIT. @]@@@@$(3). PZ )@@G@@ @A@@@@PF FORM 12,6,18 . @[@@@@ . @[@@@@ . QA )@@G@@@A@@@@ . ** FABNME ** @[@@@@ . @G@@@@ . THQB )@@G@@IS ROUTINE FETCHES AN AREA TABLE FROM THE ABSOLUTE SCHEMA @[@@@@ . QC )@@G@@@E@@@@ . THERE ARE THREE ENTRY POINTS WHOSE CALLS ARE: @D@@@@QD )@@G@@ . LMJ X11,[FABNME,FABCDE,FSABCD] @ @@@@ . QE )@@G@@ + KEY @A@@@@ . + BUFFER @C@@@@ . QF )@@G@@ + SCHEMA-INDICATOR @B@@@@ . + QG )@@G@@ $,('RTN-NAME') @[@@@@ . @B@@@@ . WHERE KEY CONTAIQH )@@G@@NS: @E@@@@ . AREA-NAME,AREA-CODE,SEQUENCE-NUMBERQI )@@G@@@G@@@@ . BUFFER IS BUFFER INTO WHICH TABLE IS TO BE PLAQJ )@@G@@CED @E@@@@ . SCHEMA-INDICATOR INDICATES WHICH SCHEMA:QK )@@G@@@B@@@@ . 0 - OLDSCHEMA @B@@@@ . QL )@@G@@ 1 - NEWSCHEMA @[@@@@ . @E@@@@ . THE ROUTINE TESTS SDQM )@@G@@TICF TO SEE SDT IS IN CORE @E@@@@ . IF NOT, A ROUTINE IS QN )@@G@@CALLED TO READ IT @[@@@@ . @E@@@@ . IF TABLE CANNOT BE FQO )@@G@@OUND, ROUTINE RETURNS WITH @A@@@@ . ZERO IN LOCATION KEY QP )@@G@@@[@@@@ . @[@@@@ . @A@@@@ . ** FABNME ** @C@@@@QQ )@@G@@ . D L SCHEIDT - 11/74 @[@@@@ . @C@@@@FABNMEQR )@@G@@*. . $H FABNME @D@@@@ L A3,*QS )@@G@@2,X11 . $P SET SCHEMA INDEX @D@@@@ TNZ SDTICF,A3 . $T IQT )@@G@@S SDT IN CORE ? @E@@@@ SLJ FASRTL . $W CALL FASRTL TQU )@@G@@O GET SDT @C@@@@ DL A0,*0,X11 . $P GET A-EA NAME@D@@@@QV )@@G@@ L,H1 R1,ARTPTR,A3 . $P GET # OF ART @G@@@@ L,QW )@@G@@H2 X8,ARTPTR,A3 . $P GET ADDR OF START OF ART BLOCK @A@@@@ QX )@@G@@ LXI,U X8,10 . @G@@@@NME1 SE A0,4,*X8 . $P SQY )@@G@@EARCH ART FOR MATCH ON 1ST WD OF NME@D@@@@ J ERROR QZ )@@G@@. $T WAS MATCH FOUND ? @C@@@@ . $A YES NO,RA )@@G@@ERROR @A@@@@ L X9,X8 . @A@@@@ AN,U RB )@@G@@ X9,10 . @F@@@@ TE A1,5,X9 . $T DOES 2ND WD ORC )@@G@@F NAME MATCH ? @C@@@@ J NME1 . $A YES NO,NME1 RD )@@G@@@C@@@@ J GETADT . $J GETADT @[@@@@ . @[@@@@RE )@@G@@ . @C@@@@FABCDE*. . $H FABCDE @D@@@@ RF )@@G@@ L A3,*2,X11 . $P SET SCHEMA INDEX @D@@@@ TNZ RG )@@G@@ SDTICF,A3 . $T IS SDT IN CORE ? @E@@@@ SLJ FASRTL RH )@@G@@. $W CALL FASRTL TO GET SDT @C@@@@ L A0,*0,X11 . $P GRI )@@G@@ET AREA CODE@D@@@@ L,H1 R1,ARTPTR,A3 . $P GET # OF ART RJ )@@G@@@G@@@@ L,H2 X8,ARTPTR,A3 . $P GET ADDR OF START OF ART BLORK )@@G@@CK @A@@@@ LXI,U X8,10 . @A@@@@ L,U RL )@@G@@ R2,07777 . @G@@@@ MSE A0,0,*X8 . $P SEARCH ART FORM )@@G@@R MATCH ON AREA CODE @D@@@@ J ERROR . $T WAS MATRN )@@G@@CH FOUND ? @C@@@@ . $A YES NO,ERROR @A@@@@RO )@@G@@ L X9,X8 . @A@@@@ AN,U X9,10 RP )@@G@@. @C@@@@ J GETADT . $J GETADT @[@@@@ . RQ )@@G@@@[@@@@ . @C@@@@FSABCD*. . $H FSABCD @D@@@@RR )@@G@@ L A3,*2,X11 . $P SET SCHEMA INDEX @D@@@@ TNRS )@@G@@Z SDTICF,A3 . $T IS SDT IN CORE ? @E@@@@ SLJ FASRRT )@@G@@TL . $W CALL FASRTL TO GET SDT @E@@@@ L A0,*0,X11 RU )@@G@@. $P GET SEQUENCE NUMBER @A@@@@ AN,U A0,1 . RV )@@G@@@F@@@@ TP A0 . $T IS SEQUENCE NUMBER VALID ? RW )@@G@@@A@@@@ J ERROR . @A@@@@ TG,H1 A0,ARX )@@G@@RTPTR,A3 . @C@@@@ J ERROR . $A YES NO,ERROR @E@@@@RY )@@G@@ MSI,U A0,10 . $P CALCULATE DISP INTO ART @A@@@@ RZ )@@G@@ L,H2 X9,ARTPTR,A3 . @E@@@@ A X9,A0 . $P SSA )@@G@@ET INDEX INTO ART @[@@@@ . @[@@@@ . @D@@@@GETADT L SB )@@G@@ X8,1,X11 . $P GET BUFFER ADDR @A@@@@ LXI,U X8,1 SC )@@G@@. @A@@@@ LXI,U X9,1 . @A@@@@ L,U SD )@@G@@ R1,10 . @E@@@@ BT X8,0,*X9 . $P BLOCK TRANSFESE )@@G@@R ADT @C@@@@ J 4,X11 . $E RETURN @[@@@@SF )@@G@@ . @[@@@@ . @A@@@@ . ** FRBNME ** @[@@@@ . SG )@@G@@@G@@@@ . THIS ROUTINE FETCHES A RECORD TABLE FROM THE ABSOLUTE SCSH )@@G@@HEMA @[@@@@ . @E@@@@ . THERE ARE THREE ENTRY POINTS WHOSE CALSI )@@G@@LS ARE: @D@@@@ . LMJ X11,[FRBNME,FRBCDE,FSRBCD] SJ )@@G@@@ @@@@ . + KEY @A@@@@ . + BUFFESK )@@G@@R @C@@@@ . + SCHEMA-INDICATOR @B@@@@ . SL )@@G@@ + $,('RTN-NAME') @[@@@@ . @B@@@@ . SM )@@G@@ WHERE KEY CONTAINS: @F@@@@ . RECORD-NAME,RECORSN )@@G@@D-CODE,SEQUENCE-NUMBER @G@@@@ . BUFFER IS BUFFER INTO SO )@@G@@WHICH TABLE IS TO BE PLACED @E@@@@ . SCHEMA-INDICATORSP )@@G@@ INDICATES WHICH SCHEMA:@B@@@@ . 0 - OLDSCHEMA SQ )@@G@@@B@@@@ . 1 - NEWSCHEMA @[@@@@ . @E@@@@ . SR )@@G@@ THE ROUTINE TESTS SDTICF TO SEE SDT IS IN CORE @E@@@@ . SS )@@G@@ IF NOT, A ROUTINE IS CALLED TO READ IT @[@@@@ . @E@@@@ . ST )@@G@@ IF TABLE CANNOT BE FOUND, ROUTINE RETURNS WITH @A@@@@ . SU )@@G@@ ZERO IN LOCATION KEY @[@@@@ . @[@@@@ . @A@@@@ . SV )@@G@@ ** FRBNME ** @C@@@@ . D L SCHEIDT - 11/74 SW )@@G@@@[@@@@ . @C@@@@FRBNME*. . $H FRBNME @D@@@@SX )@@G@@ L A3,*2,X11 . $P SET SCHEMA INDEX @D@@@@ TNSY )@@G@@Z SDTICF,A3 . $T IS SDT IN CORE ? @E@@@@ SLJ FASRSZ )@@G@@TL . $W CALL FASRTL TO GET SDT @D@@@@ L A0,*0,X11 TA )@@G@@. $P GET RECORD NAME @A@@@@ L X8,0,X11 . @A@@@@TB )@@G@@ DL A1,1,X8 . @A@@@@ DL A4,3,X8 TC )@@G@@. @D@@@@ L,H1 R1,RRTPTR,A3 . $P GET # OF RRT @G@@@@TD )@@G@@ L,H2 X8,RRTPTR,A3 . $P GET ADDR OF START OF RRT BLOCK TE )@@G@@@A@@@@ LXI,U X8,10 . @G@@@@NME2 SE A0,4TF )@@G@@,*X8 . $P SEARCH RRT FOR MATCH ON 1ST WD OF NME@D@@@@ J TG )@@G@@ ERROR . $T WAS MATCH FOUND ? @C@@@@ TH )@@G@@. $A YES NO,ERROR @A@@@@ L X9,X8 . @A@@@@ TI )@@G@@ AN,U X9,10 . @G@@@@ DTE A1,5,X9 . $T DTJ )@@G@@O 2ND AND 3RD WD OF NAME MATCH ? @C@@@@ J NME2 TK )@@G@@. $A YES NO,NME2 @G@@@@ DTE A4,7,X9 . $T DO 4TH AND 5TTL )@@G@@H WD OF NAME MATCH ? @C@@@@ J NME2 . $A YES NO,TM )@@G@@NME2 @C@@@@ J GETTBL . $J GETTBL @[@@@@ . TN )@@G@@@[@@@@ . @C@@@@FRBCDE*. . $H FRBCDE @D@@@@TO )@@G@@ L A3,*2,X11 . $P SET SCHEMA INDEX @D@@@@ TNTP )@@G@@Z SDTICF,A3 . $T IS SDT IN CORE ? @E@@@@ SLJ FASRTQ )@@G@@TL . $W CALL FASRTL TO GET SDT @D@@@@ L A0,*0,X11 TR )@@G@@. $P GET RECORD CODE @D@@@@ L,H1 R1,RRTPTR,A3 . $P GET TS )@@G@@# OF RRT @G@@@@ L,H2 X8,RRTPTR,A3 . $P GET ADDR OF STARTT )@@G@@T OF RRT BLOCK @A@@@@ LXI,U X8,10 . @A@@@@ TU )@@G@@ L,U R2,07777 . @G@@@@ MSE A0,0,*X8 . $P STV )@@G@@EARCH RRT FOR MATCH ON RECD CODE @D@@@@ J ERROR TW )@@G@@. $T WAS MATCH FOUND ? @C@@@@ . $A YES NO,TX )@@G@@ERROR @A@@@@ L X9,X8 . @A@@@@ AN,U TY )@@G@@ X9,10 . @C@@@@ J GETTBL . $J GETTBL TZ )@@G@@@[@@@@ . @[@@@@ . @C@@@@FSRBCD*. . $H FSRBCD UA )@@G@@ @D@@@@ L A3,*2,X11 . $P SET SCHEMA INDEX @D@@@@UB )@@G@@ TNZ SDTICF,A3 . $T IS SDT IN CORE ? @E@@@@ SLUC )@@G@@J FASRTL . $W CALL FASRTL TO GET SDT @E@@@@ L UD )@@G@@ A0,*0,X11 . $P GET SEQUENCE NUMBER @A@@@@ AN,U A0,1UE )@@G@@ . @F@@@@ TP A0 . $T IS SEQUENCE NUMBER UF )@@G@@VALID ? @A@@@@ J ERROR . @A@@@@ TGUG )@@G@@,H1 A0,RRTPTR,A3 . @C@@@@ J ERROR . $A YES NO,UH )@@G@@ERROR @E@@@@ MSI,U A0,10 . $P CALCULATE DISP INTO RRT UI )@@G@@@A@@@@ L,H2 X9,RRTPTR,A3 . @E@@@@ A X9,AUJ )@@G@@0 . $P SET INDEX INTO RRT @E@@@@ L A1,1,X9 UK )@@G@@. $P GET RELATIVE SECTOR ADDR @A@@@@ LSSL A1,12 . UL )@@G@@@A@@@@ SSL A1,12 . @A@@@@ SZ A0 UM )@@G@@ . @E@@@@ DI,U A0,64 . $P GET SECTOR ADDR OF UN )@@G@@TRACK @A@@@@ MSI,U A0,64 . @F@@@@ TE UO )@@G@@ A0,TRKIC,A3 . $T IS PROPER TRACK IN CORE - @F@@@@ SLJ UP )@@G@@ GETTRK . $W READ PROPER TRACK FROM SCHEMA @G@@@@ MSI,U UQ )@@G@@ A1,28 . $P GET WORD DISP OF RDT WITHIN TRK @E@@@@ AUUR )@@G@@,T1 A1,1,X9 . $P GET LAST ADDR OF RDT @F@@@@ TG,U US )@@G@@ A2,1792 . $T IS RDT COMPLETELY IN TRACK - @C@@@@ J UT )@@G@@ GETTBL . $A YES NO,GETTBL@A@@@@ L A2,TRKAD,A3 . UU )@@G@@@E@@@@ A A2,A1 . $P GET CORE ADDR OF RDT @E@@@@UV )@@G@@ L,T1 R1,1,X9 . $P GET # WORDS IN RDT @E@@@@ UW )@@G@@ L A0,1,X11 . $P GET USER'S BUFFER ADDR @A@@@@ LXUX )@@G@@I,U A0,1 . @A@@@@ LXI,U A2,1 . @C@@@@UY )@@G@@ BT A0,0,*A2 . $P TRANSFER RDT @C@@@@ J UZ )@@G@@ 4,X11 . $E RETURN @A@@@@GETTRK + 0 . VA )@@G@@@E@@@@ S A0,TRKIC,A3 . $P UPDATE TRK-IN-CORE PTR @D@@@@VB )@@G@@ L,U X8,SIOPKT . $P GET I/O PKT ADDR @E@@@@ DLVC )@@G@@ A4,*FILENM,A3 . $P PUT FILE NAME IN PKT @A@@@@ DS VD )@@G@@ A4,0,X8 . @E@@@@ L,U A0,1792 . $P PUT WORD CNT VE )@@G@@IN PKT @A@@@@ S,H1 A0,4,X8 . @G@@@@ L VF )@@G@@ A0,TRKAD,A3 . $T HAS TRACK BUFFER BEEN GOTTEN - @C@@@@ VG )@@G@@ JNZ A0,GTTRK2 . $A NO YES,GTTRK2@A@@@@ L A4,AVH )@@G@@1 . @A@@@@ L A0,LAST$D . @F@@@@ AUVI )@@G@@,U A0,1 . $P GET START ADDR OF TRK BUFFER @A@@@@ S VJ )@@G@@ A1,TRKAD,A3 . @A@@@@ A,U A0,1792 . @E@@@@VK )@@G@@ S A0,LAST$D . $P GET CORE FOR BUFFER @A@@@@ VL )@@G@@ ER MCORE$ . @A@@@@ L A0,A1 . VM )@@G@@@A@@@@ L A1,A4 . @E@@@@GTTRK2 S,H2 A0,4VN )@@G@@,X8 . $P PUT BUFFER ADDR IN PKT @G@@@@ L A0,TRKIC,AVO )@@G@@3 . $P GET REL SECTOR ADDR OF TRACK @E@@@@ A A0,SVP )@@G@@ECTAD,A3 . $P ADD ABS START SECTOR @E@@@@ S A0,5,X8 VQ )@@G@@. $P PUT SECTOR ADDR IN PKT @E@@@@ I$OW SIOPKT . $P RVR )@@G@@EAD TRACK INTO CORE @D@@@@ L,S1 A0,3,X8 . $P GET I/OVS )@@G@@ STATUS @C@@@@ TNE,U A0,5 . $T IS IT NOT 05 @D@@@@VT )@@G@@ SZ,S1 3,X8 . $P ZERO 05 STATUS @E@@@@ TZVU )@@G@@,S1 3,X8 . $T WAS READ SUCCESSFUL - @C@@@@ J VV )@@G@@ SFIOER . $A YES NO,SFIOER@C@@@@ J *GETTRK . $E RVW )@@G@@ETURN @]@@@@ . @]@@@@ . @A@@@@ . VX )@@G@@ ** FSBNME ** @]@@@@ . @G@@@@ . THIS ROUTINE FETCHESVY )@@G@@ A SET TABLE FROM THE ABSOLUTE SCHEMA @]@@@@ . @E@@@@ . VZ )@@G@@ THERE ARE THREE ENTRY POINTS WHOSE CALLS ARE: @E@@@@ . WA )@@G@@ LMJ X11,[FSBNME,FSBCDE,FSSBCD] @A@@@@ . WB )@@G@@ + KEY @A@@@@ . + BUFFER @C@@@@ . WC )@@G@@ + SCHEMA-INDICATOR @C@@@@ . + WD )@@G@@ $,('RTN-NAME') @]@@@@ . @C@@@@ . WHERWE )@@G@@E KEY CONTAINS: @E@@@@ . SET-NAME,SET-CODEWF )@@G@@,SEQUENCE-NUMBER @G@@@@ . BUFFER IS BUFFER INTO WHICH WG )@@G@@TABLE IS TO BE PLACED @E@@@@ . SCHEMA-INDICATOR INDICWH )@@G@@ATES WHICH SCHEMA:@C@@@@ . 0 - OLDSCHEMA WI )@@G@@@C@@@@ . 1 - NEWSCHEMA @]@@@@ . WJ )@@G@@@E@@@@ . THE ROUTINE TESTS SDTICF TO SEE SDT IS IN CORE @E@@@@WK )@@G@@ . IF NOT, A ROUTINE IS CALLED TO READ IT @]@@@@ . WL )@@G@@ @E@@@@ . IF TABLE CANNOT BE FOUND, ROUTINE RETURNS WITH WM )@@G@@@A@@@@ . ZERO IN LOCATION KEY @]@@@@ . @]@@@@ . WN )@@G@@ @A@@@@ . ** FSBNME ** @C@@@@ . WO )@@G@@ D L SCHEIDT - 11/74 @]@@@@ . @C@@@@FSBNME*. WP )@@G@@ . $H FSBNME @E@@@@ L A3,*2,X11 . $P SWQ )@@G@@ET SCHEMA INDEX @E@@@@ TNZ SDTICF,A3 . $T IS SDT WR )@@G@@IN CORE ? @E@@@@ SLJ FASRTL . $W CALL FASRTL TWS )@@G@@O GET SDT @E@@@@ L A0,*0,X11 . $P GET SET NAMEAME WT )@@G@@ @A@@@@ L X8,0,X11 . @A@@@@ DL WU )@@G@@ A1,1,X8 . @A@@@@ DL A4,3,X8 . @E@@@@ WV )@@G@@ L,H1 R1,SRTPTR,A3 . $P GET # OF SRT @G@@@@ L,WW )@@G@@H2 X8,SRTPTR,A3 . $P GET ADDR OF START OF SRT BLOCK @A@@@@ WX )@@G@@ LXI,U X8,9 . @G@@@@NME3 SE A0,4,*X8 . $P SWY )@@G@@EARCH SRT FOR MATCH ON 1ST WD OF NME@E@@@@ J ERROR WZ )@@G@@. $T WAS MATCH FOUND ? @C@@@@ . $A YXA )@@G@@ES NO,ERROR @A@@@@ L X9,X8 . @A@@@@ ANXB )@@G@@,U X9,9 . @G@@@@ DTE A1,5,X9 . $T DO 2ND XC )@@G@@AND 3RD WD OF NAME MATCH ? @C@@@@ J NME3 . $A YXD )@@G@@ES NO,NME3 @G@@@@ DTE A4,7,X9 . $T DO 4TH AND 5TH WD OXE )@@G@@F NAME MATCH ? @C@@@@ J NME3 . $A YES NO,NME3 XF )@@G@@@C@@@@ J GETTBL . $J GETTBL @]@@@@ . XG )@@G@@@]@@@@ . @C@@@@FSBCDE*. . $H FSBCDE XH )@@G@@@E@@@@ L A3,*2,X11 . $P SET SCHEMA INDEX @E@@@@XI )@@G@@ TNZ SDTICF,A3 . $T IS SDT IN CORE ? @E@@@@ XJ )@@G@@ SLJ FASRTL . $W CALL FASRTL TO GET SDT @C@@@@ L XK )@@G@@ A0,*0,X11 . $P GET SET CODE @E@@@@ L,H1 R1,SRTPTR,XL )@@G@@A3 . $P GET # OF SRT @G@@@@ L,H2 X8,SRTPTR,A3 . $XM )@@G@@P GET ADDR OF START OF SRT BLOCK @A@@@@ LXI,U X8,9 XN )@@G@@. @A@@@@ L,U R2,07777 . @G@@@@ MSE XO )@@G@@ A0,0,*X8 . $P SEARCH SRT FOR MATCH ON SET CODE @E@@@@ J XP )@@G@@ ERROR . $T WAS MATCH FOUND ? @C@@@@ XQ )@@G@@ . $A YES NO,ERROR @A@@@@ L X9,X8 . XR )@@G@@@A@@@@ AN,U X9,9 . @C@@@@ J GETTXS )@@G@@BL . $J GETTBL @]@@@@ . @]@@@@ . @C@@@@FSSBCDXT )@@G@@*. . $H FSSBCD @E@@@@ L A3,*XU )@@G@@2,X11 . $P SET SCHEMA INDEX @E@@@@ TNZ SDTICF,A3 XV )@@G@@. $T IS SDT IN CORE ? @E@@@@ SLJ FASRTL . $W CXW )@@G@@ALL FASRTL TO GET SDT @E@@@@ L A0,*0,X11 . $P GET SEQXX )@@G@@UENCE NUMBER @A@@@@ AN,U A0,1 . @G@@@@ XY )@@G@@ TP A0 . $T IS SEQUENCE NUMBER VALID ? @A@@@@XZ )@@G@@ J ERROR . @A@@@@ TG,H1 A0,SRTPTR,YA )@@G@@A3 . @C@@@@ J ERROR . $A YES NO,ERROR @E@@@@ YB )@@G@@ MSI,U A0,9 . $P CALCULATE DISP INTO SRT @A@@@@ L,YC )@@G@@H2 X9,SRTPTR,A3 . @E@@@@ A X9,A0 . $P SET INDYD )@@G@@EX INTO SRT @C@@@@ J GETTBL . $J GETTBL YE )@@G@@@]@@@@ . @A@@@@ . ** FITBRC ** @]@@@@ . YF )@@G@@ @E@@@@ . THIS ROUTINE FETCHES THE ITEM NAME TABLE YG )@@G@@@C@@@@ . FOR A SPECIFIED RECORD @]@@@@ . YH )@@G@@@^@@@@ . THE CALL IS @A@@@@ . LMJ X11,FITBRC YI )@@G@@@A@@@@ . + RECORD-CODE@A@@@@ . + YJ )@@G@@ BUFFER @C@@@@ . + SCHEMA-INDICATOR @C@@@@YK )@@G@@ . + $,('RTN-NAME') @^@@@@ . WHEYL )@@G@@RE @G@@@@ . RECORD-CODE CONTAINS CODE OF OBJECT RECOYM )@@G@@RD @E@@@@ . BUFFER IS WHERE TABLE IS RETURNED YN )@@G@@ @G@@@@ . SCHEMA-INDICATOR INDICATES OLD(0) OR NEWYO )@@G@@(1) SCHEMA @]@@@@ . @E@@@@ . THE ROUTINE TESTS SDTICF TYP )@@G@@O SEE IF SDT IS IN CORE @E@@@@ . IF NOT, A ROUTINE IS CALLEDYQ )@@G@@ TO READ IT @]@@@@ . @E@@@@ . IF RDT CANNOT BE FOUYR )@@G@@ND, ROUTINE WILL RETURN @C@@@@ . WITH ZERO IN RECORD-CYS )@@G@@ODE @]@@@@ . @C@@@@FITBRC*. . $H FYT )@@G@@ITBRC @E@@@@ L A3,*2,X11 . $P SET SCHEMA INDEX YU )@@G@@ @E@@@@ TNZ SDTICF,A3 . $T IS SDT IN CORE YV )@@G@@@E@@@@ SLJ FASRTL . $W CALL FASRTL TO GET SDT @E@@@@YW )@@G@@ L A0,*0,X11 . $P GET RECORD CODE @E@@@@ YX )@@G@@ L,H1 R1,RRTPTR,A3 . $P GET # OF RRT @G@@@@ L,YY )@@G@@H2 X8,RRTPTR,A3 . $P GET ADDR OF START OF RRT BLOCK @A@@@@ YZ )@@G@@ LXI,U X8,10 . @A@@@@ L,U R2,07777 . ZA )@@G@@@G@@@@ MSE A0,0,*X8 . $P SEARCH RRT FOR MATCH ON RECD COZB )@@G@@DE @E@@@@ J ERROR . $T WAS MATCH FOUND ZC )@@G@@@C@@@@ . $A YES NO,ERROR @A@@@@ L ZD )@@G@@ X9,X8 . @A@@@@ AN,U X9,2 . @C@@@@ZE )@@G@@ J GETTBL . $J GETTBL @]@@@@ . @E@@@@ZF )@@G@@ . **************************************************** @E@@@@GETTBLZG )@@G@@ L,U X8,SIOPKT . $P GET I/O PKT ADDR @E@@@@ DLZH )@@G@@ A0,*FILENM,A3 . $P PUT FILE NAME IN PKT @A@@@@ DS ZI )@@G@@ A0,0,X8 . @E@@@@ L,T1 A0,1,X9 . $P PUT WORD LENGZJ )@@G@@TH IN PKT @A@@@@ S,H1 A0,4,X8 . @E@@@@ L ZK )@@G@@ A0,1,X11 . $P PUT BUFFER ADDR IN PKT @A@@@@ S,H2 ZL )@@G@@ A0,4,X8 . @E@@@@ L A0,1,X9 . $P GET RELATIVE ZM )@@G@@SECTOR ADDR @A@@@@ LSSL A0,12 . @A@@@@ SSZN )@@G@@L A0,12 . @E@@@@ A A0,SECTAD,A3 . $P ADD ZO )@@G@@ABS START SECTOR @E@@@@ S A0,5,X8 . $P PUT SECTOR ADZP )@@G@@DR IN PKT @E@@@@ I$OW SIOPKT . $P READ TBL INTO BUFFEZQ )@@G@@R @E@@@@ TZ,S1 3,X8 . $T WAS READ SUCCESSFUL ? ZR )@@G@@@C@@@@ J SFIOER . $A YES NO,SFIOER@C@@@@ J ZS )@@G@@ 4,X11 . $E RETURN @]@@@@ . @]@@@@ . ZT )@@G@@@C@@@@ . THIS ROUTINE CALLS FASRTL - @E@@@@ . ZU )@@G@@ TO INITIALIZE THE IN-CORE SCHEMA REF TBL, AND@G@@@@ . PARZV )@@G@@TICULARLY TO INITIALIZE THE MAX TBL SIZE VALUES @C@@@@FDSDT*. ZW )@@G@@ . $H FDSDT @C@@@@ L A3,*0,X11 ZX )@@G@@. $W CALL FASRTL @A@@@@ SLJ FASRTL . @A@@@@ ZY )@@G@@ J 2,X11 . $E @]@@@@ . @]@@@@ . @E@@@@ZZ )@@G@@ERROR SZ *0,X11 . $P STORE ZERO IN LOC KEY @C@@@@ AA )@@G@@ J 4,X11 . $E RETURN @]@@@@ . @]@@@@ . AB )@@G@@ @A@@@@ . ** FASRTL ** @]@@@@ . @G@@@@AC )@@G@@ . THIS ROUTINE READS THE SCHEMA REFERENCE TABLES FROM AD )@@G@@@C@@@@ . A USER-SPECIFIED ABSOLUTE SCHEMA @E@@@@ . ITAE )@@G@@ WILL HANDLE TWO DIFFERENT SCHEMAS CONCURRENTLY @E@@@@ . AFTER THAF )@@G@@E READ, THE TABLES ARE PACKED SO AS TO BE @A@@@@ . CONTINUOUAG )@@G@@S @]@@@@ . @E@@@@ . SPACE FOR THE TABLES IS GOAH )@@G@@TTEN BY MCORE$ @]@@@@ . @E@@@@ . LOCATIONS ARTPAI )@@G@@TR, RRTPTR, SRTPTR ARE SET UP WITH @E@@@@ . H1 CONTAINING AJ )@@G@@# OF WORDS IN TABLE @E@@@@ . H2 CONTAINING START AK )@@G@@ADDR OF TABLE @]@@@@ . @A@@@@ . THE ROUTINE ISAL )@@G@@ CALLED BY -@A@@@@ . SLJ FASRTL @E@@@@ . ANAM )@@G@@D A3 MUST CONTAIN THE SCHEMA INDICATOR - @A@@@@ . 0 -AN )@@G@@ OLDSCHEMA @A@@@@ . 1 - NEWSCHEMA @]@@@@ . AO )@@G@@ @G@@@@ . A USE COMMAND MUST HAVE BEEN ISSUED PRIOR TO CALL AP )@@G@@- @E@@@@ . @USE OLDSCHEMA.,[OLD-SCHEMA-FILE-NAME].AQ )@@G@@ @E@@@@ . @USE NEWSCHEMA.,[NEW-SCHEMA-FILE-NAME]. AR )@@G@@@]@@@@ . @A@@@@ . ** FASRTL ** @]@@@@ . AS )@@G@@ @C@@@@FASRTL + 0 . $H FASRTL @A@@@@ AT )@@G@@ L,U A0,4 . @A@@@@ L A1,ASGADR,A3 . AU )@@G@@@A@@@@ LSSL A1,18 . @A@@@@ LDSL A0,18 AV )@@G@@ . @E@@@@ ER CSF$ . $P ISSUE ASG COMMAND AW )@@G@@ @E@@@@ JN A0,ERR1 . $P GO TO ERR1 IF REJECTED AX )@@G@@@A@@@@ DL A0,*FILENM,A3 . @G@@@@ DS A0,ELTPKTAY )@@G@@ . $P GET PROPER FILE NAME INTO PKTS @A@@@@ DS A0,AZ )@@G@@SIOPKT . @A@@@@ L,U A0,ELTPKT . @G@@@@ BA )@@G@@ ER PFS$ . $P GET SECTOR ADDR OF ELEMENT IN FILE @G@@@@BB )@@G@@ JNZ A2,ERR2 . $P GO TO ERR2 IF ELEMENT NOT FOUND BC )@@G@@@G@@@@ L A0,ELTSEC . $P SAVE SECTOR DISP OF SCHEMA IN FBD )@@G@@ILE @A@@@@ S A0,SECTAD,A3 . @G@@@@ L A0,BE )@@G@@LAST$D . $P GET NEXT AVAIL D-BANK ADDR @A@@@@ AUBF )@@G@@,U A0,1 . @G@@@@ S A1,BUFADR . $P SAVE STBG )@@G@@ART ADDR OF NEW BUFFER @A@@@@ S A1,SAVLOC . BH )@@G@@@A@@@@ S A1,R3 . @A@@@@ A,U A0,28 BI )@@G@@ . @G@@@@ ER MCORE$ . $P GET CORE FOR 1ST SEBJ )@@G@@CTOR OF SCHEMA @E@@@@ L,U A0,28 . $P SET UP PACKETBK )@@G@@ TO READ FDT@A@@@@ S A0,WDCNT . @A@@@@ L BL )@@G@@ A0,ELTSEC . @A@@@@ S A0,DRUMAD . @C@@@@BM )@@G@@ I$OW SIOPKT . $P READ IN FDT @E@@@@ TZ IOSBN )@@G@@TAT . $T READ SUCCESSFUL ? @C@@@@ J SFIOER BO )@@G@@ . $A YES NO,SFIOER@G@@@@ L A0,8,A1 . $P GET LENBP )@@G@@GTH OF 1ST SCD SEGMENT @A@@@@ SSL A0,24 . BQ )@@G@@@A@@@@ S A0,SWDCNT . @G@@@@ L A0,DRUMADBR )@@G@@ . $P INCREMENT PACKET TO NEXT SECTOR @A@@@@ A,U A0,BS )@@G@@1 . @A@@@@ S A0,DRUMAD . @G@@@@SDTLP BT )@@G@@ L A0,LAST$D . $P GET CORE BUFFER FOR NEXT SDT SEGMENT @A@@@@BU )@@G@@ AU,U A0,1 . @A@@@@ S A1,BUFADR BV )@@G@@. @A@@@@ A A0,SWDCNT . @A@@@@ S A0,BW )@@G@@LAST$D . @A@@@@ ER MCORE$ . @E@@@@ BX )@@G@@ L A0,SWDCNT . $P SET UP PACKET FOR READ @A@@@@ S BY )@@G@@ A0,WDCNT . @E@@@@ I$OW SIOPKT . $P READ INBZ )@@G@@ NEXT SDT SEGMENT @E@@@@ TZ IOSTAT . $T READ SUCCESSFCA )@@G@@UL ? @C@@@@ J SFIOER . $A YES NO,SFIOER@E@@@@CB )@@G@@ TNZ,T3 1,A1 . $T MORE SDT SEGMENTS ? @C@@@@ CC )@@G@@ J PCKSDT . $A YES NO,PCKSDT@G@@@@ L A0,DRUMADCD )@@G@@ . $P INCREMENT SECTOR CNT TO NEXT SEGMENT @A@@@@ A,U A0,CE )@@G@@63 . @A@@@@ S A0,DRUMAD . @G@@@@ CF )@@G@@ L,T3 A0,1,A1 . $P GET LENGTH OF NEXT SCD SEGMENT @A@@@@CG )@@G@@ LSSL A0,24 . @A@@@@ SSL A0,24 CH )@@G@@. @A@@@@ S A0,SWDCNT . @C@@@@ J SDTCI )@@G@@LP . $J SDTLP @E@@@@PCKSDT L X9,SAVLOC . $P GCJ )@@G@@ET START ADDR OF SDT @A@@@@ L A2,LAST$D . @E@@@@CK )@@G@@ A,U A2,1 . $P GET START ADDR OF ART @A@@@@ CL )@@G@@ L X8,A2 . @A@@@@ S,H2 A2,ARTPTR,A3 . CM )@@G@@@E@@@@ L A1,6,X9 . $P GET RT CNT WORD @A@@@@CN )@@G@@ SSL A0,36 . @E@@@@ LDSL A0,12 CO )@@G@@. $P GET # ART ENTRIES @A@@@@ S,H1 A0,ARTPTR,A3 . CP )@@G@@@G@@@@ MSI,U A0,10 . $P CALCULATE START OF PACKED RRT CQ )@@G@@ @A@@@@ A A2,A0 . @A@@@@ S,H2 A2,CR )@@G@@RRTPTR,A3 . @A@@@@ SSL A0,36 . @E@@@@ CS )@@G@@ LDSL A0,12 . $P GET # RRT ENTRIES @A@@@@ S,CT )@@G@@H1 A0,RRTPTR,A3 . @G@@@@ MSI,U A0,10 . $P CALCULACU )@@G@@TE START OF PACKED SRT @A@@@@ A A2,A0 . CV )@@G@@@A@@@@ S,H2 A2,SRTPTR,A3 . @A@@@@ SSL A0,36 CW )@@G@@ . @E@@@@ LDSL A0,12 . $P GET # SRT ENTRIES CX )@@G@@ @A@@@@ S,H1 A0,SRTPTR,A3 . @G@@@@ MSI,U A0CY )@@G@@,9 . $P CALCULATE END OF PACKED SDT @A@@@@ A CZ )@@G@@ A2,A0 . @A@@@@ S A2,SAVLOC . @G@@@@DA )@@G@@ L A0,A2 . $P GET CORE FOR PACKED TABLES DB )@@G@@@A@@@@ ER MCORE$ . @C@@@@ J GETART DC )@@G@@ . $J GETART @A@@@@ARTLP L A0,X8 . @G@@@@DD )@@G@@ TNE,H2 A0,RRTPTR,A3 . $T ARE THERE MORE ART IN NEXT SEGMENT ? DE )@@G@@@C@@@@ J GETRRT . $A YES NO,GETRRT@G@@@@ A,DF )@@G@@U X9,1764 . $P SET PTR TO START OF NEXT SEGMENT @A@@@@GETARTDG )@@G@@ L,T2 X10,8,X9 . @E@@@@ A X10,X9 . $P SDH )@@G@@ET INDEX TO START OF ART@A@@@@ LXI,U X10,1 . @A@@@@DI )@@G@@ LXI,U X8,1 . @E@@@@ L,T3 A0,8,X9 DJ )@@G@@. $P GET # ART IN THIS SEGMENT@A@@@@ MSI,U A0,10 . DK )@@G@@@G@@@@ L R1,A0 . $P BLOCK MOVE ART TO BE CONTINUOUSDL )@@G@@ @A@@@@ BT X8,0,*X10 . @A@@@@ LXI,U X8DM )@@G@@,0 . @C@@@@ J ARTLP . $J ARTLP DN )@@G@@@A@@@@RRTLP L A0,X8 . @G@@@@ TNE,H2 A0,SRTPDO )@@G@@TR,A3 . $T ARE THERE MORE RRT IN NEXT SEGMENT ? @C@@@@ J GETDP )@@G@@SRT . $A YES NO,GETSRT@G@@@@ A,U X9,1764 . $P SDQ )@@G@@ET PTR TO START OF NEXT SEGMENT @A@@@@GETRRT L,T2 X10,9,X9 DR )@@G@@. @E@@@@ A X10,X9 . $P SET INDEX TO START OF RRTDS )@@G@@@A@@@@ LXI,U X10,1 . @A@@@@ LXI,U X8,1 DT )@@G@@ . @E@@@@ L,T3 A0,9,X9 . $P GET # RRT IN THIS SDU )@@G@@EGMENT@A@@@@ MSI,U A0,10 . @G@@@@ L R1,DV )@@G@@A0 . $P BLOCK MOVE RRT TO BE CONTINUOUS @A@@@@ BTDW )@@G@@ X8,0,*X10 . @A@@@@ LXI,U X8,0 . @C@@@@DX )@@G@@ J RRTLP . $J RRTLP @A@@@@SRTLP L A0,DY )@@G@@X8 . @G@@@@ TNE,H2 A0,SAVLOC . $T ARE THERE MORDZ )@@G@@E SRT IN NEXT SEGMENT ? @C@@@@ J EXIT . $A YES NO,EA )@@G@@EXIT @G@@@@ A,U X9,1764 . $P SET PTR TO START OF NEXT EB )@@G@@SEGMENT @A@@@@GETSRT L,T2 X10,10,X9 . @E@@@@ A EC )@@G@@ X10,X9 . $P SET INDEX TO START OF SRT@A@@@@ LXI,U X1ED )@@G@@0,1 . @A@@@@ LXI,U X8,1 . @E@@@@ EE )@@G@@ L,T3 A0,10,X9 . $P GET # SRT IN THIS SEGMENT@A@@@@ MSEF )@@G@@I,U A0,9 . @G@@@@ L R1,A0 . $P BLOCK MEG )@@G@@OVE SRT TO BE CONTINUOUS @A@@@@ BT X8,0,*X10 . EH )@@G@@@A@@@@ LXI,U X8,0 . @C@@@@ J SRTLP EI )@@G@@ . $J SRTLP @G@@@@EXIT L,H2 A0,ARTPTR,A3 . $P BLOCK SEJ )@@G@@HIFT RT TO LOWER CORE @A@@@@ L X8,A0 . EK )@@G@@@E@@@@ AN A0,R3 . $P GET SHIFT DIFFERENCE @E@@@@EL )@@G@@ ANU,H2 A0,ARTPTR,A3 . $P UPDATE RT PTRS @A@@@@ EM )@@G@@ SN,H2 A1,ARTPTR,A3 . @A@@@@ ANU,H2 A0,RRTPTR,A3 . EN )@@G@@@A@@@@ SN,H2 A1,RRTPTR,A3 . @A@@@@ ANU,H2 A0,SRTPEO )@@G@@TR,A3 . @A@@@@ SN,H2 A1,SRTPTR,A3 . @E@@@@ L,EP )@@G@@H2 A0,SAVLOC . $P GET # WORDS IN RT @A@@@@ AN A0,EQ )@@G@@X8 . @A@@@@ L R1,A0 . @A@@@@ ER )@@G@@ L X9,R3 . @E@@@@ LXI,U X8,1 . $P SES )@@G@@ET TRANSFER INDICES @A@@@@ LXI,U X9,1 . @E@@@@ET )@@G@@ BT X9,0,*X8 . $P BLOCK TRANSFER RT @E@@@@ EU )@@G@@ L A0,X9 . $P RELEASE UNUSED CORE @A@@@@ LSEV )@@G@@SL A0,18 . @A@@@@ SSL A0,18 . @A@@@@EW )@@G@@ S A0,LAST$D . @A@@@@ ER LCORE$ EX )@@G@@. @E@@@@ L,U A0,10 . $P SET MAX ADT SIZE EY )@@G@@@A@@@@ S A0,MAXADT,A3 . @G@@@@ L,H1 R1,RRTPTREZ )@@G@@,A3 . $P SEARCH ALL RRT TO FIND MAX RDT SIZE @A@@@@ L,H2 X8,FA )@@G@@RRTPTR,A3 . @A@@@@ LXI,U X8,10 . @A@@@@MRLP FB )@@G@@ SG,T1 A0,1,*X8 . @A@@@@ J MREND . FC )@@G@@@A@@@@ L A1,X8 . @A@@@@ AN,U A1,10 FD )@@G@@ . @A@@@@ L,T1 A0,1,A1 . @A@@@@ J FE )@@G@@ MRLP . @A@@@@MREND S A0,MAXRDT,A3 . @G@@@@FF )@@G@@ L,H1 R1,SRTPTR,A3 . $P SEARCH ALL SRT TO FIND MAX SDT SIZE FG )@@G@@@A@@@@ L,H2 X8,SRTPTR,A3 . @A@@@@ LXI,U X8,9 FH )@@G@@ . @A@@@@MSLP SG,T1 A0,1,*X8 . @A@@@@ J FI )@@G@@ MSEND . @A@@@@ L A1,X8 . @A@@@@FJ )@@G@@ AN,U A1,9 . @A@@@@ L,T1 A0,1,A1 FK )@@G@@. @A@@@@ J MSLP . @A@@@@MSEND S A0,FL )@@G@@MAXSDT,A3 . @A@@@@ L,U A0,1 . @E@@@@ FM )@@G@@ S A0,SDTICF,A3 . $P SET SDT-IN-CORE-FLAG @C@@@@ J FN )@@G@@ *FASRTL . $E RETURN @]@@@@ . @^@@@@ . ERFO )@@G@@ROR ROUTINES@]@@@@ . @C@@@@ERR1 S A0,SAVLOC . $H EFP )@@G@@RR1 @A@@@@ E$DIT EDTPKT . @A@@@@ E$FQ )@@G@@COPY 40,MSG1 . @E@@@@ E$OCTF 12,SAVLOC . $P OUTPUT FR )@@G@@ASG STATUS @A@@@@ E$DITX . @A@@@@ FS )@@G@@ P$RINT (PF 1,12,EDTBUF) .@A@@@@ ER EXIT$ . $E FT )@@G@@@C@@@@ERR2 S A2,SAVLOC . $H ERR2 @A@@@@ E$FU )@@G@@DIT EDTPKT . @A@@@@ E$COPY 34,MSG2 . @E@@@@FV )@@G@@ E$OCTF 2,SAVLOC . $P OUTPUT PFS$ STATUS @A@@@@ FW )@@G@@ E$DITX . @A@@@@ P$RINT (PF 1,12,EDTBUF) .FX )@@G@@@A@@@@ ER EXIT$ . $E @C@@@@SFIOER*. FY )@@G@@ . $H SFIOER @A@@@@ E$DIT EDTPKT . @A@@@@FZ )@@G@@ E$COPY 38,MSG3 . @A@@@@ L,U A1,3 GA )@@G@@. @A@@@@ L A0,IOSTAT . @E@@@@ LMJ X11GB )@@G@@,EOCTF$ . $P OUTPUT I/O STATUS @A@@@@ E$DITX GC )@@G@@ . @A@@@@ P$RINT (PF 1,12,EDTBUF) . @E@@@@ L$GD )@@G@@SNAP 'IO PKT',7,6,SIOPKT . $P SNAP I/O PKT @A@@@@ ER EXIGE )@@G@@T$ . $E @]@@@@ . @]@@@@$(4). @C@@@@EDTPKT E$GF )@@G@@PKT 12,EDTBUF 'MSG','.' . @A@@@@EDTBUF RES 12 GG )@@G@@. @A@@@@ASGADR + ASGOLN . @A@@@@ + ASGGH )@@G@@NLN . @A@@@@ASGOLN '@ASG,A OLDSCHEMA. . ' . @A@@@@ASGNLNGI )@@G@@ '@ASG,A NEWSCHEMA. . ' . @A@@@@ELTPKT 'XXXXXXXX' . GJ )@@G@@@A@@@@ 'SCHEMA ' . @A@@@@ + 0 GK )@@G@@ . @A@@@@ + 0,0,6,0,0,0 . @A@@@@ DO GL )@@G@@ 4 , ' ' . @A@@@@ELTSEC + 0 . @A@@@@GM )@@G@@ + 0 . @A@@@@SIOPKT 'XXXXXXXX' GN )@@G@@. @A@@@@ + 0 . @A@@@@ + 0,0GO )@@G@@20,0,0,0,0 . @A@@@@ + 0 . @A@@@@ GP )@@G@@ + 0 . @A@@@@FILENM + OLDNME . GQ )@@G@@@A@@@@ + NEWNME . @A@@@@OLDNME 'OLDSCHEMA' GR )@@G@@ . @A@@@@NEWNME 'NEWSCHEMA' . @A@@@@TRKIC + GS )@@G@@ -1 . @A@@@@ + -1 . @A@@@@GT )@@G@@TRKAD + 0 . @A@@@@ + 0 GU )@@G@@. @A@@@@SAVLOC + 0 . @A@@@@SWDCNT + 0 GV )@@G@@ . @A@@@@ARTPTR + 0 . @A@@@@ GW )@@G@@ + 0 . @A@@@@RRTPTR + 0 . GX )@@G@@@A@@@@ + 0 . @A@@@@SRTPTR + 0 GY )@@G@@ . @A@@@@ + 0 . @A@@@@SDTICF* + GZ )@@G@@ 0 . @A@@@@ + 0 . @A@@@@HA )@@G@@SECTAD* + 0 . @A@@@@ + 0 HB )@@G@@. @A@@@@MAXADT* + 0 . @A@@@@ + 0 HC )@@G@@ . @A@@@@MAXRDT* + 0 . @A@@@@ HD )@@G@@ + 0 . @A@@@@MAXSDT* + 0 . HE )@@G@@@A@@@@ + 0 . @]@@@@ . @A@@@@DRUMADHF )@@G@@ EQUF SIOPKT+5 . @A@@@@WDCNT EQUF SIOPKT+4,,H1 . HG )@@G@@@A@@@@BUFADR EQUF SIOPKT+4,,H2 . @A@@@@IOSTAT EQUF SIOPKT+3,HH )@@G@@,S1 . @]@@@@ . @E@@@@MSG1 'ERROR IN ASSIGNING SCHEMA HI )@@G@@FILE - STATUS:' . @C@@@@MSG2 'SCHEMA ELEMENT NOT FOUND - STATHJ )@@G@@US:' .@E@@@@MSG3 'I/O ERROR READING ABS SCHEMA - STATUS:' . HK )@@G@@@A@@@@ END . ___ * + 0 HL )@@G@@. @A@@@@ + 0 . @A@@@@MAXADT* + 0 HM )@@G@@ . @A@@@@ + 0 *[@@@@*SDFF*@#@@@@ HN )@@G@@ AXR$ @#@@@@$(4) LIT. . @]@@@@$(1). @[@@@@. @^@@@@HO )@@G@@. * DB$AM * @[@@@@. @F@@@@. THIS IS ROUTINE, KNOHP )@@G@@WN AS DATA BASE ACCESS METHOD, IS @[@@@@. @E@@@@. TO HQ )@@G@@READ & WRITE THE DATA BASE PAGE(S). @[@@@@. @^@@@@. ENHR )@@G@@TERED: @A@@@@. LX,U X10,PARAM@A@@@@. HS )@@G@@ LMJ X11,DB$AM@[@@@@. @[@@@@. @F@@@@ANAME EQUF HT )@@G@@ 0,X10 . WORD 0 & 1 IS AREA NAME @G@@@@ HU )@@G@@ . IF WORD 0 = 0 , WORD 1 IS DBP, @G@@@@ HV )@@G@@ . AND THE PAGE POINTED BY DBP @E@@@@ HW )@@G@@ . WILL BE READ @E@@@@STA EQHX )@@G@@UF 3,X10,S1 . STATUS RETURNED: @G@@@@ HY )@@G@@ . 022 ACCESS BEYOND AN AREA @H@@@@ HZ )@@G@@ . 052 GOT LESS PAGES THAN REQ'D @G@@@@IA )@@G@@ . 053 FUNCTION CODE NOT R/W IB )@@G@@@G@@@@ . 054 (PGCNT,BUFLEN,STPGIC )@@G@@) = 0 @I@@@@ . 055 AREA NOT SPEID )@@G@@CIFIED IN AREA CMD @E@@@@FNC EQUF 3,X10,S2 . FUIE )@@G@@NCTION CODE @E@@@@ . 020 IF )@@G@@ READ @E@@@@ . 010 WRITEIG )@@G@@ @G@@@@FWRDCNT EQUF 3,X10,H2 . TOTAL NUMBER OF WORDIH )@@G@@ READ @G@@@@ . NOTE: THIS NII )@@G@@UMBER DIVIDED BY @H@@@@ . IJ )@@G@@PAGESZ SHOULD PROVID NUMBER @F@@@@ IK )@@G@@ . OF PAGES READ. @G@@@@PGCNT EQUF 4,X10,H1 IL )@@G@@ . NUMBER OF PAGES REQUESTED @D@@@@BUFADDR EQUF 4,X10,H2 IM )@@G@@ . BUFFER ADDR @E@@@@BUFLEN EQUF 5,X10,H1 . LEIN )@@G@@NGTH OF BUFFER @E@@@@STPG EQUF 5,X10,H2 . STARTINGIO )@@G@@ PAGE NUMBER@F@@@@ . 1 = FIP )@@G@@IRST PAGE @E@@@@PAGESZ EQUF 6,X10,H2 . AREA PAGE SIZEIQ )@@G@@ @E@@@@DBP EQUF 1,X10 . DATA BASE POINTER IR )@@G@@@ @@@@DRUMADDR EQUF 5,X10 @^@@@@NAME EQUF 1,X9@ @@@@IS )@@G@@PGBIT EQUF 0,X9,S3 @ @@@@RCDBIT EQUF 0,X9,S4 @ @@@@IT )@@G@@CODE EQUF 0,X9,T1 @ @@@@PGLENG EQUF 3,X9,T1 @ @@@@IU )@@G@@PGALOCT EQUF 4,X9,H1 @C@@@@DB$AM* IV )@@G@@ . $H @C@@@@ SZ R3 . RESET R3@E@@@@IW )@@G@@ SZ STA . $P RESET STATUS BYTE@G@@@@ IX )@@G@@ SZ FWRDCNT . $P RESET WORD(INPUT) COUNT @G@@@@IY )@@G@@ DL A0,7,X10 . $P MOVE LAST TWO TO 4TH&5TH IZ )@@G@@@B@@@@ DS A0,4,X10 . @[@@@@. @F@@@@. JA )@@G@@ CHECK IF D OPTION SET, GO TO TRACE ROUTINE IF IT IS @[@@@@. JB )@@G@@@E@@@@ TZ DOPT . $T D OPTION SET @E@@@@JC )@@G@@ J TRACE . $A YES,TRACE NO @E@@@@TRACERJD )@@G@@ . $H RETURN FRON TRACE@F@@@@ TNJE )@@G@@Z ANAME . $T AREA NAME PROVIDED @E@@@@ J JF )@@G@@ DB201 . $A YES NO,DB201 @E@@@@ LX JG )@@G@@ X9,C3 . $P GET AREA TBL @B@@@@ LXI,U X9,9JH )@@G@@ . @E@@@@ LA,H1 A0,C3 . $P AREA JI )@@G@@TBL LENGTH @B@@@@ DSL A0,36 . @G@@@@ JJ )@@G@@ DI,U A0,9 . $P COMPUTE THE ENTRY COUNT @B@@@@JK )@@G@@ ANA,U A0,1 . @E@@@@ DL A1,AJL )@@G@@NAME . $P A0,A1 = AREA NAME@C@@@@DB101 JM )@@G@@ . $H @E@@@@ DTE A1,1,*X9 . $P SEARCJN )@@G@@H TBL @D@@@@ JGD A0,DB101 . $T FOUND IT JO )@@G@@@E@@@@ JN A0,DB955 . $A YES NO,DB100 @B@@@@JP )@@G@@ ANX X9,(9,9) . @ @@@@ J DB30JQ )@@G@@1 @^@@@@/. DBP ENTERED @C@@@@DB201 JR )@@G@@ . $H @E@@@@ LA,H1 A0,C3 . $P GET CJS )@@G@@3 TBL LENGTH@B@@@@ DSL A0,36 . @G@@@@ JT )@@G@@ DI,U A0,9 . $P COMPUTE THE ENTRY COUNT @B@@@@JU )@@G@@ LR R1,A0 . @G@@@@ LX X9,CJV )@@G@@3 . $P GET FIRT AREA TBL ENTRY @B@@@@ LXI,U JW )@@G@@ X9,9 . @B@@@@ LA A0,PGBIT . JX )@@G@@@B@@@@ AA A0,RCDBIT . @E@@@@ LA JY )@@G@@ A4,DBP . $P COMPUTE AREA CODE@ @@@@ DSL A4,0JZ )@@G@@,A0 @G@@@@ SE,T1 A4,0,*X9 . $T AREA CODE IN TBL KA )@@G@@ENTRY @E@@@@ J DB955 . $A YES NO,DB9KB )@@G@@54 @B@@@@ ANX X9,(9,9) . @F@@@@ DLKC )@@G@@ A0,NAME . MOVE AREA NAME TO PKT @B@@@@ DSKD )@@G@@ A0,ANAME . @B@@@@ SZ A4 KE )@@G@@ . @F@@@@ LA A0,PGBIT . $P COMPUT PAGE NUMBEKF )@@G@@R @G@@@@ LDSL A4,0,A0 . THIS PAGE NUMBER WIKG )@@G@@LL BE @G@@@@ SA A4,STPG . THE STARTINKH )@@G@@G PAGE NUMBER @[@@@@/ @C@@@@DB301 KI )@@G@@ . $H @B@@@@ TNZ PGCNT . @G@@@@ KJ )@@G@@ J DB954 . $P CHECK PGCNT,BUFLEN,STPG @ @@@@KK )@@G@@ TNZ BUFLEN @ @@@@ J DB954 @^@@@@KL )@@G@@ TNZ STPG@ @@@@ J DB954 @F@@@@ KM )@@G@@ SZ FWRDCNT . $P INITIALIZE FWRDCNT @B@@@@ KN )@@G@@ LA A0,PGLENG . @E@@@@ SA A0,PAGESZ KO )@@G@@ . $P SET PAGE SIZE @]@@@@DB305 @G@@@@ LA KP )@@G@@ A0,PGCNT . $T CHECK IF PAGE ACCESSED BEYOND@B@@@@ AAKQ )@@G@@ A0,STPG . @B@@@@ ANA,U A0,1 KR )@@G@@ . @D@@@@ LA A4,PGALOCT . $A YES,DB310 @B@@@@KS )@@G@@ TLE A4,A0 . @B@@@@ J DB31KT )@@G@@0 . @G@@@@ . $P CHECKKU )@@G@@ IF BUFFER BIG ENOUGH @B@@@@ LA A0,PGCNT . KV )@@G@@@E@@@@ MSI A0,PGLENG . $A YES NO,DB320 @B@@@@KW )@@G@@ LA A4,BUFLEN . @B@@@@ TLE A4,AKX )@@G@@0 . @B@@@@ J DB320 . @E@@@@KY )@@G@@ SA A0,PGCNT . $P COMPUTE DRUM ADDR@B@@@@ KZ )@@G@@ LA A0,STPG . @B@@@@ ANA,U A0,1 LA )@@G@@ . @B@@@@ MSI A0,PAGESZ . @B@@@@ LB )@@G@@ DSL A0,36 . @B@@@@ DI,U A0,28 LC )@@G@@ . @B@@@@ SA A0,DRUMADDR . @F@@@@ LD )@@G@@ LA A0,FNC . $T FUNCTION CODE = R/W @G@@@@ LE )@@G@@ LR,U R1,4 . $P SET UP TO CHECK FUNCTION CODE@B@@@@LF )@@G@@ LX X8,(1,CODETYPE) . @E@@@@ SE,T3 A0,,LG )@@G@@*X8 . $P PERFORM SEARCH @F@@@@ J DB953 LH )@@G@@ . $J ERROR, FNC NOT FOUND @B@@@@ ANX X8,(1,1) LI )@@G@@ . @D@@@@ LA,T2 A0,,X8 . GET F CODE LJ )@@G@@@E@@@@ SA A0,FNC . $P RESET IN PKT @E@@@@LK )@@G@@ TZ,T1 0,X8 . $T IO$ OR IOW$ @D@@@@ LL )@@G@@ J DOIO$ . $J DO IO$ @]@@@@$(4). @]@@@@LM )@@G@@CODETYPE. @^@@@@ +0,010,010 @^@@@@ +0,020,020 LN )@@G@@@^@@@@ +1,010,011 @^@@@@ +1,020,021 @]@@@@$(1). LO )@@G@@ @C@@@@DB401 . $H @F@@@@ LP )@@G@@ LA A0,X10 . $P GET I/O PACKET ADDR @D@@@@ LQ )@@G@@ ER IOW$ . $P DO I/O @E@@@@ TZ LR )@@G@@ STA . $T GOOD STATUS @E@@@@ LMJ X11,LS )@@G@@IOERR . $A YES NO,IOERR @B@@@@ TNZ R3 LT )@@G@@ . @E@@@@ J 0,X11 . $J EXIT,RETURNLU )@@G@@ @ @@@@DB402 LA,U A0,052 @ @@@@ SA A0,SLV )@@G@@TA @ @@@@ J 0,X11 @C@@@@DB310 LW )@@G@@ . $H @ @@@@ LA,U A0,052 @G@@@@ LX )@@G@@ SA A0,R3 . $P ADJUST PGCNT TO END OF AREA @ @@@@LY )@@G@@ ANA A4,STPG @C@@@@ JN A4,DB922 LZ )@@G@@ . $E @^@@@@ AA,U A4,1@ @@@@ SA A4,PMA )@@G@@GCNT @ @@@@ J DB305 @C@@@@DB320 MB )@@G@@ . $H @^@@@@ SZ A3 @H@@@@ DIMC )@@G@@ A3,PGLENG . $P ADJUST PGCNT TO FIT THE BUFFER @ @@@@MD )@@G@@ SA A3,PGCNT @C@@@@ JZ A3,DB402 ME )@@G@@ . $E @ @@@@ J DB305 @C@@@@DB922 MF )@@G@@ . $H @ @@@@ LA,U A0,022 @B@@@@MG )@@G@@ SA A0,STA . @D@@@@ J 0,X1MH )@@G@@1 . $J RETURN @C@@@@DB955 MI )@@G@@ . $H @ @@@@ LA,U A0,055 @ @@@@ J MJ )@@G@@ DB990 @C@@@@DB954 . $H @ @@@@MK )@@G@@ LA,U A0,054 @ @@@@ J DB990 @C@@@@ML )@@G@@DB953 . $H @ @@@@ LA,U MM )@@G@@ A0,053 @ @@@@DB990 SA A0,STA @B@@@@ J MN )@@G@@ IOERR . @C@@@@DOIO$ . $HMO )@@G@@ @B@@@@ LA A0,X10 . @B@@@@ ERMP )@@G@@ IO$ . @D@@@@ J 0,X11 MQ )@@G@@ . $J RETURN @[@@@@. @^@@@@. TRACE ROUTINE @[@@@@. MR )@@G@@@C@@@@TRACE . $H @F@@@@ TSMS )@@G@@ TSWORD . $T SEE IF FREE TO TRACE @E@@@@ SXMT )@@G@@ X1,SAVEX1 . $P SAVE X1,X2,X3,X11@B@@@@ SX MU )@@G@@ X2,SAVEX2 . @B@@@@ SX X3,SAVEX3 . MV )@@G@@@B@@@@ SX X11,SAVEX11 . @ @@@@ E$DIT MW )@@G@@ EDPKT @ @@@@ E$COPY 12,ANAME @A@@@@ E$FD1 MX )@@G@@ ('FUNC=') @ @@@@ E$OCTF 3,FNC @A@@@@ E$MY )@@G@@FD1 (',STPG=') @A@@@@ E$DECF 5,STPG @A@@@@MZ )@@G@@ E$FD2 (',PGCNT=') @A@@@@ E$DECF 3,PGCNT NA )@@G@@ @A@@@@ E$FD2 (',BUFADD=') @A@@@@ E$OCTF NB )@@G@@ 6,BUFADDR @^@@@@ E$DITX @A@@@@ P$RNTA NC )@@G@@ PRTAPKT @G@@@@ LX X1,SAVEX1 . $P RESTOND )@@G@@RE X1,X2,X3,X11 @C@@@@ LX X2,SAVEX2 . NE )@@G@@ @C@@@@ LX X3,SAVEX3 . @C@@@@ NF )@@G@@ LX X11,SAVEX11 . @A@@@@ C$TS TSWONG )@@G@@RD @E@@@@ J TRACER . $J RETURN NH )@@G@@ @]@@@@$(4). @A@@@@PF FORM 12,6,18 @]@@@@NI )@@G@@PRTAPKT. @A@@@@ PF 1,14,LINE @^@@@@ 'DNJ )@@G@@B$AMPF' @A@@@@EDPKT E$PKT 14,LINE @^@@@@LINE RENK )@@G@@S 14 @]@@@@SAVEX1 +0@]@@@@SAVEX2 +0@]@@@@SAVEX3 +0@]@@@@NL )@@G@@SAVEX11 +0@]@@@@TSWORD +0@^@@@@ END ___ @]@@@@NM )@@G@@SAVEX1 +0@]@@@@SAVEX2 +0@]@@@@SAVEX3 +0@]@@@@SAVEX11 +0@]@@@@NN )@@G@@*[@@@@*SDFF*@^@@@@ AXR$ @^@@@@$(4) LIT NO )@@G@@@]@@@@$(1). @]@@@@F$ASG*. @A@@@@ SX X11,SAVEX1NP )@@G@@1 @E@@@@ LA,H1 A4,C3 . GET AREA TBL COUNT NQ )@@G@@@C@@@@ DSL A4,36 . @E@@@@ DINR )@@G@@,U A4,9 . COMPUTE ENTRY COUNT @E@@@@ LX,H2 NS )@@G@@ X8,C3 . GET TBL ENTRY ADDR @^@@@@ LXI,U X8,9NT )@@G@@@E@@@@ JZ A4,0,X11 . RETURN IF 0 ENTRY @^@@@@NU )@@G@@ ANA,U A4,1@]@@@@ASGLOOP. @ @@@@ E$DIT EDPKNV )@@G@@T @^@@@@ E$CHAR '@' @A@@@@ E$FD1 ('ASG,A') NW )@@G@@ @^@@@@ E$CHAR ' ' @ @@@@ E$FD2 1,*X8 NX )@@G@@@^@@@@ E$CHAR ' ' @^@@@@ E$CHAR '.' @#@@@@ NY )@@G@@ E$DITX @ @@@@ LA,U A0,LINE @^@@@@ ER NZ )@@G@@ CSF$@A@@@@ JN A0,ASGXER @A@@@@ JGD OA )@@G@@ A4,ASGLOOP @A@@@@ LX X11,SAVEX11 @ @@@@ OB )@@G@@ J 0,X11 @[@@@@/ @]@@@@ASGXER. @ @@@@ LXOC )@@G@@,U X10,LINE @A@@@@ LMJ X11,ASGERR @^@@@@LINE OD )@@G@@ RES 10 @A@@@@EDPKT E$PKT 10,LINE @^@@@@SAVEX1OE )@@G@@1 RES 1 @^@@@@ END ___A@^@A@A@ E$OF )@@G@@DIT EDPKT @A@A@ E$COPY )@@[Y*@@@@@@;:)@@MW#K@@SOG )@@G@@ @@@@TG#0@@H;CK@@MW#)@@G @@@@U;G@@@MC#0@@HBF2-85*CALC*AA@@@@)@F[Y*@@@@@@OH )@@G@@C@0@@G;?@@@GC@K@@R @@@@V @@@@U @@@@T @@@@S @@@@G/KF@@@C@F)@@;$)@@MAB@@@@OI )@@G@@)@Q[Y*@]@@@@:8@@@AG8@@@[;!@@@A;(K@@Y')G@@.H8@@@[ @@@@A @@@@M;CK@@M;?@@@AOJ )@@G@@ @@@@GAC@@@@)@-[Q*@C@)C@@@@@@@/KB@@@/!K@@:/^0@@WH80@@[/!K@@::9)@@AG9)@@[OK )@@G@@G8K@@[(@@@@G @@@@GAD@@@@)@:[Y*@]@@@@C#K@@KC#@@@K/K @@@O9)@@[')A@@4;(#@@@OL )@@G@@ @@@@MR@0@@MT9)@@AG9)@@AD[)@@MAE@@@@)@6[Y*@@@@@@C(X@@@C!X@@@C1X@@@C5X@@@OM )@@G@@/S@@@@/S@@@@/S@@@@N@0@@KN@)@@KC#0@@KC#)@@KAF@@@@)[[[Y*@@)]@@H9@@@0/K@@[KON )@@G@@:9@@@ /[@@[K;!@@@A @@@@K @@@@HC9)@@ C[K@@GC-X@@@C>X@@@AG@@@@)[G[Q*@)@C@@OO )@@G@@@@@@@@O]@@@L/[K@[=CTS@@[R]@@@I/KB@@@8^)@[AG@K@@KT8K@@E+80@@JE@0@@KAH@@@@OP )@@G@@)[Q[Q%@C@)]@@@@@@@G9K@@[H[S@@[C[S@@]/K@@[RO]@@@L/[K@[=C5S@@@/K@@[X:OC@@@OQ )@@G@@/@@@[XAI@@@@)[)[Q*@)@-@@@@@@@@W80@@D @@@@JCD@@@@@@[@@@/KB@@@C@@@[&/KB@@@OR )@@G@@;@@@@M&#C@@[C@@@@LAJ@@@@)[%[Q%@CK[@^[@K@@@CW[@@@P@K@['/G0@[78#0@[\9.[)@[OS )@@G@@8#0@[\&8K@@DR^K@@@9!E@@@/@0@[7AK@@@@)[4[Y*@@]@@@C@@@@S/!0@@IC];@@@&'0@@[OT )@@G@@@@D@@D/KB@@@ @E@@]C8@@__/KB@@@A^U@@][WE@@]AL@@@@)[_[Q%@)C]@)@)@@@@&'0@@[OU )@@G@@@@@@@ /K@@[.C];@@[&'0@@]/K@@@]C#@@]B/!0@[M/!0@[$/!0@[#AM@@@@)]D[Y*)@@]@@OV )@@G@@T8@@@HC[J@]SE@0@@KH9@@@A;!@@@A @@@@K @@@@GC8K@@#C[K@@S/!0@@IC];@@@AN@@@@OW )@@G@@)]O[Y*)]@@@@@@@@@#@@@@@]@@@@@]@@@@@[@@@@@[@@@@@@@@@@@@/K@@]7C@K@@G8#K@]IOX )@@G@@G@@@@KAO@@@@)]Z[Y*@@@@@@@@@@@D@@@@@B@@@@@A@@@@@C@@@@@B@@@@@ @@@@@A@@@@@ OY )@@G@@@@@@@^@@@@@^@@@@@#AP@@@@)]%[Y*@@@)@@/!0@@IC];@@@&'0@@[@@@@@G@@@@@F@@@@@EOZ )@@G@@@@@@@D@@@@@G@@@@@C@@@@@F@@@@@EAQ@@@@)]5[Q*)C]@)C@C@@@@C@@@@S/!0@@IC];@@@PA )@@G@@&'0@@]/K@@@]C#@@#D/!0@[M/!0@[$/!0@[#C@@@@SAR@@@@)]_[Q%@]@C@]@@@@@@/K@@]7PB )@@G@@T@K@@NG8K@@[G90@@[/!0@[#C@@@@S/!0@@IC];@@[C[0@@H/!0@[#AS@@@@)#D[Q*]@C]@)PC )@@G@@C]@@@@/K@@@]C#@@#N/!0@[M/!0@[$/!0@[#C@@@@S/!0@@IC];@@@&'0@@[@@@@@ AT@@@@PD )@@G@@)#N[Q*]@C]@)C]@@@@/K@@@]C#@@#"/!0@[M/!0@[$/!0@[#C@@@@S/!0@@IC];@@@&'0@@[PE )@@G@@@@@@@[AU@@@@)#X[Q%@)@C@)@@@@@@C];@@[C[0@@H/!0@[#C@@@@S/!0@@IC];@@@&'0@@]PF )@@G@@R@K@@G/!0@[M/!0@[$AV@@@@)#$[Y%@C@@@@;H@@@MC[@@@[;G@@@=C[0@@HG@@@@NT90@[=PG )@@G@@W8@@@O @@@@G/!0@[#C@@@@S/!0@@IAW@@@@)#2[Y*@]@@@@C@F)@@;$)@@M;:)@@MC#)@@HPH )@@G@@W@@@#" @@@@GC@K@@NC#0@@HG@K@@LW@@@@K;DK@@MAX@@@@)#.[Q*@)]@)C]@@@@@C#@@ >PI )@@G@@/!0@[M/!0@[$/!0@[#C@@@@S/!0@@IC];@@@&'0@@[@@@@@#/KF@@@AY@@@@)^B[Q%@]@C@CPJ )@@G@@]@@@@@/@K@^O/!0@[#C@@@@TC[0@@H/!0@[#C@@@@S/!0@@IC];@@[&'0@@^/K@@@]AZ@@@@PK )@@G@@)^L[Q*@)@)]@@@@@@@/!0@[#C@@@@S/!0@@IC];@@@&'0@@]/K@@^^G@K@@NT8K@@ET8K@@EPL )@@G@@!8K@@EBA@@@@)^V[Q*C@)]@]@@@@@@/!0@@IC];@@@&'0@@[/K@@^^G@K@@N/!0@[#C@@@@SPM )@@G@@/!0@@IC];@@[C[0@@HBB@@@@)^>[Q*)C@C@C@@@@@@C[0@@H/!0@[#C@@@@T;J@@@G/!0@@IPN )@@G@@C];@@@&'0@@]/K@@^^/!0@[#C@@@@SBC@@@@)^\[Q*)]@C@C@@@@@@C@K@@S/!0@@IC];@@@PO )@@G@@&'0@@[/K@@^^G@K@@NW@@@ > @@@@G/!0@[#C@@@@SBD@@@@)^9[Y*)@)@@@H9@@@A;!@@@APP )@@G@@ @@@@K @@@@GC8K@@#C[K@@S/!0@@IC];@@@&'0@@[/K@@^^;CK@@YBE@@@@) ^[Q*)@)]@@PQ )@@G@@@@@@@@@@@@@[@@@@@@@@@@@@/K@@^^C@K@@G8#K@ [G@@@@KT8@@@HC[J@ FE@0@@KBF@@@@PR )@@G@@) I[Y*@@@@@@@@@@@B@@@@@ @@@@@A@@@@@ @@@@@^@@@@@^@@@@@#@@@@@#@@@@@]@@@@@]PS )@@G@@@@@@@[BG@@@@) T[Y*@@@@@@@@@@@F@@@@@E@@@@@D@@@@@G@@@@@C@@@@@F@@@@@E@@@@@DPT )@@G@@@@@@@B@@@@@A@@@@@CBH@@@@) =[Q*@)]@)C]@@@@@C#@@ \/!0@[M/!0@[$/!0@[#C@@@@SPU )@@G@@/!0@@IC];@@@&'0@@[@@@@@#@@@@@GBI@@@@) ,[Q%@@)]@]@@@@@@/!0@@IC];@@@&'0@@[PV )@@G@@/K@@ :C@K@@S/!0@@IC];@@@&'0@@[@@@@@ /K@@@]BJ@@@@) 8[Q*)@)C@@@@@@@@T90@@EPW )@@G@@!8K@[=T90@@E!8K@J*/@K@A^/!0@[#C@@@@TC[0@@H/!0@[#C@@@@SBK@@@@)A][Q*]@]@C@PX )@@G@@@@@@@@C[0@@H/!0@[#C@@@@S/!0@@IC];@@@&'0@@]/K@@ :G@K@@NT90@@E!8K@@EBL@@@@PY )@@G@@)AG[Q*)]@)]@]@@@@@/!0@@IC];@@@&'0@@[/K@@ &&'0@@[/K@@ ./!0@[#C@@@@S/!0@@IPZ )@@G@@C];@@[BM@@@@)AQ[Y*@@)@)@/!0@@IC];@@@&'0@@[/K@@ :C@K@@GP;@@@[%8K@@]T8@@@]QA )@@G@@W8@@@E;G@@@/C@@@@SBN@@@@)A-[Q*]@]@]@@@@@@@/K@@ :;CK@@YC@K@@S/!0@@IC];@@@QB )@@G@@&'0@@[/K@@ :+8@@@J;C@@@YC@@@@SBO@@@@)A:[Q*C@)@)]@@@@@@/!0@[#C@@@@S/!0@@IQC )@@G@@C];@@[C[0@@H/!0@[#C@@@@S/!0@@IC];@@@&'0@@^BP@@@@)A5[Q*]@C@]@@@@@@@/!0@@IQD )@@G@@C];@@#G[0@@HT90@@E/!0@[#C@@@@S/!0@@IC];@@]G[0@@HT90@[=BQ@@@@)A_[Q*)@)@)@QE )@@G@@@@@@@@C@@@[]C@K@[#/!0@@IC];@@@&'0@@[/K@@ :O#K@@NT90@@B/!0@[#C@@@@SBR@@@@QF )@@G@@)BD[Y*@@@@@@)@@@@H;*@@@^C@@@@T)@@@@H;*@@@#C@@@@U)@@@@H;*@@@]C@@@@V)@@@@HQG )@@G@@;*@@@[BS@@@@)BO[Y*@@)@)@/!0@@IC];@@]&'0@@#/K@@ :O#K@@G;CK@@M;?@@@M @@@@GQH )@@G@@)@@@@H;*@@@ C@@@@SBT@@@@)BZ[Q*)@)@)@@@@@@@C];@@[G[0@@H/!0@[#C@@@@UG[0@@HQI )@@G@@/!0@[#C@@@@TC[0@@H/!0@[#C@@@@SBU@@@@)B([Q%@C@C@)]@@@@@/K@@ :O#K@@N/!0@[#QJ )@@G@@C@@@@S/!0@@IC];@@@G[0@@H/!0@[#C@@@@S/!0@@IBV@@@@)B3[Q*C@)C]@)C@@@@@@@@@#QK )@@G@@/K@@@]C#@@B//!0@[M/!0@[$/!0@[#C@@@@S/!0@@IC];@@@&'0@@[BW@@@@)B.[Q*C@]@@@QL )@@G@@@@@@@@C];@@@;!0@@GC]@@@S/!0@@IC];@@#C[0@@S;F@@@S/!0@@IC];@@#&'0@@^BX@@@@QM )@@G@@)CB[Q%@@)@@@@@@@@@C@K@@P-]@@@T-[0@@S;FK@@M;J@@@A/!0@@IC];@@];!0@@AC]@@@SQN )@@G@@/!0@@IBY@@@@)CL@,%@)C]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#/K@@@]QO )@@G@@C#@@CP/!0@[M/!0@[$BZ@@@@@@^@@F@@J@@[@@L@@:@].@@@@@ @@@@@@@@@@@@@@@@@@@@@QP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CQC3 CL0008 @@E@@@QQ )@@G@@@@@@]^CL0014 @@E@@@@@@@[;CL0015 @@E@@@@@@@#ECL0077 @@E@@@QR )@@G@@@@@@AACL0103 @@E@@@@@@@ &CL0231 @@E@@@@@@@ 5CL0281 @@E@@@QS )@@G@@@@@@ALCL0295 @@E@@@@@@@ 5CL0298 @@E@@@@@@@B^CL0311 @@E@@@QT )@@G@@@@@@ 0CL0333 @@E@@@@@@@ALCL0721 @@E@@@@@@@]2CL0724 @@E@@@QU )@@G@@@@@@]2CL1042 @@E@@@@@@@B.CL1136 @@E@@@@@@@A:CL1141 @@E@@@QV )@@G@@@@@@A>CL1229 @@E@@@@@@@AACL1500 @@E@@@@@@@]2CL1505 @@E@@@QW )@@G@@@@@@]CCL1522 @@E@@@@@@@^CCL1530 @@E@@@@@@@#OCL1604 @@E@@@QX )@@G@@@@@@ALCL1623 @@E@@@@@@@#XCL1630 @@E@@@@@@@#OCL1640 @@E@@@QY )@@G@@@@@@#_CL1657 @@E@@@@@@@#OCL1713 @@E@@@@@@@AYCL1715 @@E@@@QZ )@@G@@@@@@AYCL1717 @@E@@@@@@@AYCL1737 @@E@@@@@@@ANCL1815 @@E@@@RA )@@G@@@@@@ &CL1819 @@E@@@@@@@ &CL1824 @@E@@@@@@@^;CL1907 @@E@@@RB )@@G@@@@@@[;CL2022 @@E@@@@@@@^QCL210 @@E@@@@@@@^+CL413 @@E@@@RC )@@G@@@@@@^*CL415 @@E@@@@@@@^5CL417 @@E@@@@@@@B3CL761 @@E@@@RD )@@G@@@@@@];CL893 @@E@@@@@@@AYCL895 @@E@@@@@@@AYCL897 @@E@@@RE )@@G@@@@@@AY@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*[@@@@*SDFF*@[@@@[ . RF )@@G@@@A@@@[ . ** CONF-1 ** @[@@@[ . @E@@@[ . THRG )@@G@@IS ELEMENT CONTAINS THE FOLLOWING ROUTINES: @C@@@[ . BLDRH )@@G@@C1, BLDC3, CTINIT, BLDC8 @[@@@[ . @[@@@[ . @A@@@[ . RI )@@G@@ ** BLDC1 ** @[@@@[ . @D@@@[ . THIS ROUTINE PRODUCERJ )@@G@@S ALL OF TABLES FOR @B@@@[ . EACH INPUT OBJECT RECORD RK )@@G@@@[@@@[ . @D@@@[ . IT BUILDS C1/C9 ITSELF, AND CALLS ROUTINES RL )@@G@@@C@@@[ . TO BUILD C5/C11, C6/C12, C7/C13, @B@@@[ . RM )@@G@@ C8, C14, AND C15 @[@@@[ . @E@@@[ . ON THE INITIALRN )@@G@@ CALL, BUFFER SPACE FOR THE TABLES @C@@@[ . AND SCHEMA TABLRO )@@G@@ES IS MCORED @[@@@[ . @A@@@[ . THE ROUTINE CALL IS RP )@@G@@@A@@@[ . LX,U X10,NAMEBUF@A@@@[ . LMJ RQ )@@G@@ X11,BLDC1 @G@@@[ . WHERE NAMEBUF CONTAINS THE OBRR )@@G@@J RECORD NAME @[@@@[ . @E@@@[ . IF AN INVALID NAME IS GIVERS )@@G@@N, THIS ROUTINE WILL @B@@@[ . PRODUCE WARNING MESSAGES RT )@@G@@@[@@@[ . @#@@@[ AXR$. @#@@@[$(2) LIT. @A@@@[PF RU )@@G@@ FORM 12,6,18 . @G@@@[ . NUMOAP* EQU 30 . MRV )@@G@@AX NUM OWN/AUTO PTR PER C1/C9 ENTRY @F@@@[ . NUMREC EQU 100 RW )@@G@@ . MAX NUM REC ENTRIES IN C1/C9 @B@@@[ . C1SIZE EQU NUMREC*(NUMORX )@@G@@AP+39) . @A@@@[ . C5SIZE EQU (NUMREC/3)*233 . @A@@@[ . C7SIZE RY )@@G@@EQU (NUMREC/3)*200 . @A@@@[ . C8SIZE EQU NUMREC*6+28 . @[@@@[RZ )@@G@@ . @]@@@[$(1). @[@@@[ . @B@@@[BLDC1*. SA )@@G@@. $H BLDC1 @D@@@[ S,H2 X11,RETURN . $P SAVE RETURN ADDR SB )@@G@@@E@@@[ S,H2 X10,RNMPTR . $P STORE NAME PTR IN CALL @E@@@[SC )@@G@@ L A1,0,X10 . $P SAVE FIRST WORD OF NAME @A@@@[ SD )@@G@@ S A1,SA1 . @E@@@[ TNZ BUFFLG . $T ISE )@@G@@S THIS INITIAL CALL ? @C@@@[ SLJ CTINIT . $A NO YES,SF )@@G@@CTINIT@E@@@[ SZ X7 . $P SET FOR FIRST SCHEMA SG )@@G@@@A@@@[ SZ SFIND . @A@@@[ SZ NFFLG SH )@@G@@ . @A@@@[ SZ C8FLG . @A@@@[ SZ SI )@@G@@ CURREC . @F@@@[C1STRT LMJ X11,FRBNME . $W FRBNME SJ )@@G@@- GET RDT FROM SCHEMA @A@@@[RNMPTR* + 0 . @A@@@[SK )@@G@@RTABAD* + 0 . @A@@@[ + SFIND SL )@@G@@. @A@@@[ + $,('BLDC1') . @E@@@[ TNZ *RNSM )@@G@@MPTR . $T WAS RECORD NAME VALID ? @C@@@[ J C1ERR SN )@@G@@ . $A YES NO,C1ERR @F@@@[ TNZ C8FLG . $T IS THISSO )@@G@@ SECOND PASS FOR NAME @F@@@[ SLJ BLDC8 . $W BLDC8 -SP )@@G@@ ENTER OBJ REC IN C8 @E@@@[ LMJ X11,BLDC5 . $W BLDC5 -SQ )@@G@@ BUILD C5/C11 @D@@@[ L X8,RTABAD . $P SET PTR TO RDSR )@@G@@T @E@@@[ L,T3 A0,1,X8 . $P SAVE OBJECT RECORD CODE SS )@@G@@@A@@@[ LSSL A0,24 . @A@@@[ SSL A0,24 ST )@@G@@ . @A@@@[ S A0,C1ORCD . @G@@@[ L SU )@@G@@ A0,RTABAD . $P SAVE OWNER, AUTO, MANUAL LIST PTRS @A@@@[ SV )@@G@@ AU,T1 A0,4,X8 . @A@@@[ S A1,C1LPTR . SW )@@G@@@A@@@[ L,S1 A1,3,X8 . @A@@@[ S,S1 A1,C1LPTRSX )@@G@@ . @A@@@[ AU,T2 A0,4,X8 . @A@@@[ S SY )@@G@@ A1,C1LPTR+1 . @A@@@[ L,S2 A1,3,X8 . @A@@@[SZ )@@G@@ S,S1 A1,C1LPTR+1 . @A@@@[ AU,T3 A0,4,X8 TA )@@G@@. @A@@@[ S A1,C1LPTR+2 . @A@@@[ L,S3 A1,TB )@@G@@3,X8 . @A@@@[ S,S1 A1,C1LPTR+2 . @E@@@[ TC )@@G@@ SZ,S2 C1ORCD . $P SET CHAIN-EMPTY FLAG @A@@@[ L,UTD )@@G@@ A0,0 . @F@@@[ SLJ C1LIST . $W C1LIST-TE )@@G@@ PROCESS OWNER LIST @A@@@[ L,U A0,1 . @E@@@[TF )@@G@@ SLJ C1LIST . $W C1LIST- PROCESS AUTO LIST@A@@@[ TG )@@G@@ L,U A0,2 . @F@@@[ SLJ C1LIST . $W CTH )@@G@@1LIST- PROCESS MANUAL LIST @E@@@[ TZ,S2 C1ORCD . $T WTI )@@G@@ERE ALL LISTS EMPTY ? @C@@@[ J C1EXIT . $A YES NO,TJ )@@G@@C1EXIT@A@@@[ L A3,C1ORCD . @A@@@[ LSSL A3,TK )@@G@@24 . @A@@@[ S A3,C1SWRD . @A@@@[ TL )@@G@@ L,U A1,4 . @G@@@[ SLJ C1STOR . $W CTM )@@G@@1STOR - STORE OBJ REC W/ NO PTR INFO@A@@@[C1EXIT L A0,X7 TN )@@G@@. @D@@@[ TNE A0,NS$FLG . $T ANOTHER SCHEMA ? @C@@@[TO )@@G@@ J C1EXT2 . $A YES NO,C1EXT2@E@@@[ L,U X7,TP )@@G@@1 . $P SET FOR SECOND SCHEMA @A@@@[ S X7,SFIND TQ )@@G@@ . @C@@@[ J C1STRT . $J C1STRT @E@@@[TR )@@G@@C1EXT2 TZ NS$FLG . $T IS THERE ONLY ONE SCHEMA @G@@@[ TS )@@G@@ LMJ X11,ARTDEF . $W ARTDEF - BUILD ART RULES FOR RECD @E@@@[TT )@@G@@ J *RETURN . $E RETURN TO MAIN CONTROL @[@@@[ . TU )@@G@@@#@@@[ . C1LIST - @E@@@[ . SCANS THE SET-RELATION LISTS OF TV )@@G@@THE OBJ REC @B@@@[ . A0 INDICATES WHICH LIST - @C@@@[TW )@@G@@ . 0-OWNER, 1-AUTO, 2-MANUAL @[@@@[ . @C@@@[C1LISTTX )@@G@@ + 0 . $H C1LIST @D@@@[ TNZ,S1 C1LPTR,ATY )@@G@@0 . $T IS LIST EMPTY ? @C@@@[ J *C1LIST . $A NTZ )@@G@@O YES,C1LEND@A@@@[ L,U A3,1 . @A@@@[ S,SUA )@@G@@2 A3,C1ORCD . @D@@@[ L,S1 A6,C1LPTR,A0 . $P SET LISUB )@@G@@T LOOP CNT @A@@@[ AN,U A6,1 . @D@@@[ L,HUC )@@G@@2 X6,C1LPTR,A0 . $P SET INDEX TO LIST @F@@@[C1LLP L,T3 A4,0,X6 UD )@@G@@ . $P GET NEXT SET CODE FROM LIST @A@@@[ LSSL A4,24 UE )@@G@@ . @A@@@[ SSL A4,24 . @G@@@[ SLJUF )@@G@@ C1SET . $W C1SET - SCAN SET FOR INVOLVED RECS @F@@@[ UG )@@G@@ A,S1 X6,0,X6 . $P SET INDEX TO NEXT LIST ENTRY @E@@@[ UH )@@G@@ JGD A6,C1LLP . $T MORE LIST ENTRIES ? @C@@@[ UI )@@G@@ . $A NO YES,C1LLP @D@@@[C1LEND J *C1LIST UJ )@@G@@. $E RETURN TO BLDC1 @[@@@[ . @]@@@[ . C1SET -@F@@@[ . GEUK )@@G@@TS AND SCANS THE SET TABLE TO GET REC AND PTR INFO @B@@@[ . UL )@@G@@ A4 CONTAINS THE SET CODE @[@@@[ . @B@@@[C1SET + 0 UM )@@G@@ . $H C1SET @C@@@[ S A4,C1SCDE . $P SAVE SET CODEUN )@@G@@@A@@@[ SZ,S1 C1ORCD . @F@@@[ LMJ X11,FSBCDUO )@@G@@E . $W FSBCDE - GET SDT FROM SCHEMA @A@@@[ + C1SCDE UP )@@G@@ . @A@@@[STABAD* + 0 . @A@@@[ + UQ )@@G@@ SFIND . @A@@@[ + $,('BLDC1') . @E@@@[UR )@@G@@ LMJ X11,BLDC7 . $W BLDC7 - BUILD C7/C13 @A@@@[ US )@@G@@ L X9,STABAD . @E@@@[ L A0,2,X9 . $P GUT )@@G@@ET OWNER RECORD WORD @A@@@[ S A0,C1SWRD . @A@@@[UU )@@G@@ L,U A1,0 . @E@@@[ SLJ C1STOR UV )@@G@@. $W C1STOR - STORE RECORD PTR@E@@@[ L,S3 X8,2,X9 . $P GUW )@@G@@ET MEMBER RECORD COUNT @A@@@[ AN,U X8,1 . @E@@@[UX )@@G@@ A,U X9,8 . $P INITIALIZE MEMBER PTR @E@@@[C1SLP UY )@@G@@ L A0,0,X9 . $P GET MEMBER RECORD WORD @A@@@[ S UZ )@@G@@ A0,C1SWRD . @A@@@[ L,U A1,1 . @E@@@[VA )@@G@@ SLJ C1STOR . $W C1STOR - STORE RECORD PTR@E@@@[ VB )@@G@@ A,T3 X9,1,X9 . $P RESET PTR TO NEXT MEMBER @E@@@[ JGDVC )@@G@@ X8,C1SLP . $T ARE THERE MORE MEMBERS ? @C@@@[ VD )@@G@@ . $A NO YES,C1SLP @G@@@[ TNZ,S1 C1ORCD . $T WVE )@@G@@AS OBJECT RECORD ENCOUNTERED ? @C@@@[ J C1ERRI VF )@@G@@. $J C1ERRI @D@@@[ J *C1SET . $E RETURN TO C1LVG )@@G@@IST @[@@@[ . @#@@@[ . C1STOR - @D@@@[ . BUILDS AND STOVH )@@G@@RES POINTER ENTRY IN C1/C9 @C@@@[ . A RECORD ENTRY IS CREATED VI )@@G@@IF NEEDED @D@@@[ . A CHECK IS MADE FOR DUPLICATE PTR ENTRIES VJ )@@G@@@E@@@[ . A1 INDICATES OWNER (0) OR MEMBER (1) OF SET @A@@@[VK )@@G@@ . X8 AND X9 MUST BE SAVED @[@@@[ . @C@@@[C1STOR + 0 VL )@@G@@ . $H C1STOR @A@@@[ L R5,X8 . VM )@@G@@@A@@@[ L R6,X9 . @A@@@[ L R7,A1 VN )@@G@@ . @D@@@[ L A0,C1SWRD . $P GET RECORD CODE VO )@@G@@@A@@@[ SSL A0,24 . @A@@@[ S A0,C1R2WDVP )@@G@@ . @F@@@[ LMJ X11,FRBCDE . $W FRBCDE - GET RDT FRVQ )@@G@@OM SCHEMA @A@@@[ + C1R2WD . @A@@@[R2TBAD* + VR )@@G@@ 0 . @A@@@[ + SFIND . @A@@@[VS )@@G@@ + $,('BLDC1') . @A@@@^ L A0,R2TBAD VT )@@G@@. @F@@@^ L,S1 A0,1,A0 . $P GET LOCATION MODE OF RECOVU )@@G@@RD @D@@@^ SZ R11 . $P RESET DIRECT FLAG @F@@@^VV )@@G@@ TNE,U A0,1 . $T IS RECORD NOT DIRECT RECORD @D@@@^VW )@@G@@ L,U R11,1 . $P SET DIRECT FLAG @A@@@[ L VX )@@G@@ X8,R5 . @A@@@[ L X9,R6 . @A@@@[VY )@@G@@ L A1,R7 . @D@@@[ L A2,C1SWRD VZ )@@G@@. $P GET RECORD CODE @E@@@[ L,H1 R1,*CN,X7 . $P GET NUMWA )@@G@@ OF C TAB ENTRIES @A@@@[ L R2,(0777700000000) . @F@@@[ WB )@@G@@ L,U A0,NUMOAP . $P SET INDEX FOR SEARCHING C TBL @A@@@[ WC )@@G@@ A,U A0,39 . @A@@@[ LSSL A0,18 . WD )@@G@@@A@@@[ LXM,H2 A0,*CN,X7 . @G@@@[ MSE A2,0,*A0 WE )@@G@@ . $P SEARCH C TAB FOR EXISTING REC ENTRY @E@@@[ WF )@@G@@ . $T WAS AN ENTRY FOUND ? @E@@@[ J C1NEW WG )@@G@@ . $A NO,C1NEW YES,C1TYPE @A@@@[ AN,U A0,NUMOAP WH )@@G@@. @A@@@[ AN,U A0,39 . @A@@@[ J C1TWI )@@G@@YPE . @F@@@[C1NEW L,H1 A12,*CN,X7 . $P GET NUMBER OFWJ )@@G@@ ENTRIES IN TBL @E@@@[ TG,U A12,NUMREC . $T IS IT LESS THWK )@@G@@AN MAX NUM @A@]@[ ER ERR$ . $E @C@@@] J WL )@@G@@ C1OFL . $A YES NO,C1OFL @E@@@[ SSL A2,24 WM )@@G@@. $P INITIALIZE NEW ENTRY @A@^@[ LSSL A2,24 . WN )@@G@@@A@@@^ LSSL A2,3 . @C@@@^ A A2,R11 WO )@@G@@ . DIRECT FLAG @A@@@^ LSSL A2,21 . @C@@@[WP )@@G@@ S A2,0,A0 . RECORD CODE @A@@@[ L A3,WQ )@@G@@(0400000000000) . @A@@@[ A,U A0,1 . @E@@@[ WR )@@G@@ S A3,NUMOAP,A0 . MANUAL BLOCK HDR WORD @A@@@[ A,UWS )@@G@@ A0,1 . @A@@@[ SZ NUMOAP,A0 . MASK@A@@@[WT )@@G@@ AN,U A0,2 . @A@@@[ L,U A3,1 WU )@@G@@. @F@@@[ A,H1 A3,*CN,X7 . INCREMENT NUM OF C TAB ENTRIWV )@@G@@ES @A@@@[ S,H1 A3,*CN,X7 . @G@@@[C1TYPE L,T1 A2,WW )@@G@@C1SWRD . $P DETERMINE IF RECORD IS OBJ, OWN, @F@@@[ TNEWX )@@G@@,T3 A2,C1ORCD . $ MEM, OR CO-MEM W-R-T OBJ REC @F@@@[ J WY )@@G@@ C1OBJ . JUMP IF THIS IS OBJECT RECORD @D@@@[ JZ WZ )@@G@@ A1,C1OWN . JUMP IF OWNER OF SET @E@^@[ L,S1 A2,C1ORCDXA )@@G@@ . RECORD IS MEMBER OF SET @A@^@[ TE,U A2,1 XB )@@G@@. @G@^@[ J $+3 . JUMP IF OBJ REC IS NOT OWNERXC )@@G@@ OF SET @D@@@[ L,U A4,4 . TYPE IS MEMBER (4) XD )@@G@@@A@@@[ J C1ENT . @E@^@[ L,U A4,010 XE )@@G@@ . TYPE IS CO-MEMBER (8) @A@^@[ J C1ENT XF )@@G@@. @D@@@[C1OWN L,U A4,2 . TYPE IS OWNER (2) @A@@@[XG )@@G@@ J C1ENT . @D@@@[C1OBJ L,U A4,1 XH )@@G@@. TYPE IS OBJECT (1) @G@@@[ L,U A2,1 . OBJECT FOUXI )@@G@@ND IN THIS SET, MARK FOUND FLG@F@@@[ TZ A1 . =XJ )@@G@@1 IF OBJ IS OWNER OF SET, @F@@@[ LSSL A2,1 . =XK )@@G@@2 IF OBJ IS MEMBER OF SET @A@@@[ S,S1 A2,C1ORCD . XL )@@G@@@F@@@[C1ENT OR,S3 A4,0,A0 . $P STORE RTYPE IN C TAB ENTRY XM )@@G@@@A@@@[ S,S3 A5,0,A0 . @G@@@[ TNE,U A1,4 XN )@@G@@ . $T WAS C1STOR ENTERED FROM C1SET ? @D@@@[ J *C1XO )@@G@@STOR . $E RETURN TO BLDC1 @E@@@[ TNE,U A1,0 XP )@@G@@. $T IS RECORD OWNER OF SET ? @C@@@[ J C1STO . $A NXQ )@@G@@O YES,C1STO @A@@@[ L,U A2,2 . @G@@@[ TG,XR )@@G@@S3 A2,C1SWRD . $T IS RECORD AUTO MEMBER OF SET ? @C@@@[ XS )@@G@@ J C1STA . $A NO YES,C1STA @A@@@[ A,U A0,1 XT )@@G@@ . @G@@@[ TZ,S2 NUMOAP,A0 . $T HAS MANUAL TABLE BEXU )@@G@@EN CREATED ? @C@@@[ J C1MAN . $A NO YES,C1MAN XV )@@G@@@A@@@[ A,U A0,NUMOAP . @A@@@[ S,H2 A0,SA0 XW )@@G@@ . @A@@@[ L X5,R2TBAD . @E@@@[ L,TXX )@@G@@1 A2,6,X5 . $P SAVE DISPLACEMENT OF MFCW@A@@@[ S,S6 A2,XY )@@G@@0,A0 . @F@@@[ L,S3 A2,6,X5 . $P SAVE NUMBER OXZ )@@G@@F PTRS RESERVED @A@@@[ S,S5 A2,0,A0 . @E@@@[ YA )@@G@@ L,S3 A1,3,X5 . $P SAVE MANUAL MEMBER COUNT @A@@@[ S,SYB )@@G@@2 A1,0,A0 . @A@@@[ AN,U A1,1 . @A@@@[YC )@@G@@ LXM X4,SA0 . @A@@@[ LXI,U X4,1 YD )@@G@@. @A@@@[ A,T3 X5,4,X5 . @G@@@[C1MLP1 L A4,YE )@@G@@0,X5 . $P BUILD C TAB ENTRY MAN MEM LIST @A@@@[ SZ YF )@@G@@ A3 . @D@@@[ LSSL A4,6 . FORMAT MANYG )@@G@@UAL WORD @A@@@[ LDSL A3,6 . @A@@@[ LSSYH )@@G@@L A4,6 . @A@@@[ LDSL A3,6 . @A@@@[YI )@@G@@ LSSC A4,18 . @A@@@[ DSL A3,1 YJ )@@G@@. @A@@@[ SSL A4,2 . @A@@@[ DSL A3,YK )@@G@@3 . @A@@@[ SSL A3,2 . @A@@@[ YL )@@G@@ SSC A4,12 . @A@@@[ DSL A3,12 . YM )@@G@@@A@@@[ S A4,2,*X4 . @A@@@[ A,S1 X5,0,X5 YN )@@G@@ . @A@@@[ JGD A1,C1MLP1 . @A@@@[ AN,YO )@@G@@U A0,NUMOAP . @G@@@[C1MAN L A4,(0400000000000) . $P SETYP )@@G@@ UP PTRS FOR MAN LIST SEARCH @A@@@[ A,U A0,NUMOAP . YQ )@@G@@@A@@@[ S,H2 A0,SA0 . @A@@@[ LXI,U A0,1 YR )@@G@@ . @D@@@[ L,S2 A1,0,A0 . $P GET MAN LIST CNT YS )@@G@@@A@@@[ AN,U A1,1 . @G@@@[C1MLP2 L,T2 A2,2,*A0 YT )@@G@@ . $P SEARCH MAN LIST FOR OBJECT RECORD @A@@@[ LSSL A2,YU )@@G@@24 . @A@@@[ SSL A2,24 . @A@@@[ YV )@@G@@ TNE A2,C1SCDE . @A@@@[ J C1MAN1 . YW )@@G@@@G@@@[ SSL A4,1 . $P SHIFT MASK BIT TO CORRESPOND TOYX )@@G@@ SET @A@@@[ JGD A1,C1MLP2 . @E@@@[ J C1EYY )@@G@@RRI . IF SET NOT FOUND, ERROR OFF @A@@@[C1MAN1 L,H2 A0,SA0 YZ )@@G@@ . @G@@@[ OR A4,1,A0 . $P OR MASK BIT INTO C ZA )@@G@@TAB ENTRY MASK WRD@A@@@[ S A5,1,A0 . @D@@@[ ZB )@@G@@ J *C1STOR . $E RETURN TO C1SET @A@@@[C1STO L X5,ZC )@@G@@R2TBAD . @E@@@[ L,S1 A3,3,X5 . $P GET OWNER COUZD )@@G@@NT IN RDT @A@@@[ AN,U A3,1 . @A@@@[ A,TZE )@@G@@1 X5,4,X5 . @C@@@[ J C1OALP . $J C1OALP ZF )@@G@@ @A@@@[C1STA L X5,R2TBAD . @F@@@[ L,S2 A3,ZG )@@G@@3,X5 . $P GET AUTO MEMBER COUNT IN RDT @A@@@[ A,T2 X5,ZH )@@G@@4,X5 . @A@@@[ AN,U A3,1 . @E@@@[C1OALPZI )@@G@@ L,T3 A2,0,X5 . $P SEARCH RDT FOR SET ENTRY @A@@@[ LSSZJ )@@G@@L A2,24 . @A@@@[ SSL A2,24 . @A@@@[ZK )@@G@@ TNE A2,C1SCDE . @A@@@[ J C1STOA ZL )@@G@@. @A@@@[ A,S1 X5,0,X5 . @A@@@[ JGD A3,ZM )@@G@@C1OALP . @E@@@[ J C1ERRI . IF SET NOT FOUNDZN )@@G@@, ERROR OFF @G@@@[C1STOA L A3,0,X5 . $P SET UP POINTER DESCZO )@@G@@RIPTION ENTRY @A@@@[ SZ A2 . @A@@@[ ZP )@@G@@ LSSL A3,6 . @A@@@[ LDSL A2,18 . ZQ )@@G@@@A@@@[ LSSC A3,18 . @A@@@[ DSL A2,1 ZR )@@G@@ . @A@@@[ SSL A3,2 . @A@@@[ DSLZS )@@G@@ A2,3 . @A@@@[ SSL A2,2 . @A@@@[ZT )@@G@@ LSSC A3,1 . @A@@@[ TNZ A1 ZU )@@G@@. @A@@@[ A,U A3,1 . @A@@@[ LSSC A3,ZV )@@G@@11 . @A@@@[ DSL A2,6 . @A@@@[ ZW )@@G@@ SSC A3,18 . @A@@@[ DSL A2,12 . ZX )@@G@@@F@@@[ L,S4 R1,0,A0 . $P SEARCH PRESENT POINTER LIST ZY )@@G@@@A@@@[ LXM X10,A0 . @A@@@[ LXI,U X10,1 ZZ )@@G@@ . @G@@@[ SE A3,1,*X10 . $T DOES NEW DESC MATCHAA )@@G@@ AN OLD DESC ? @C@@@[ J C1SOA1 . $A YES NO,C1SOA1AB )@@G@@@D@@@[ J *C1STOR . $E RETURN TO C1SET @A@@@[C1SOA1AC )@@G@@ L,S4 A1,0,A0 . @E@@@[ S A3,1,X10 . $P SAD )@@G@@TORE NEW PTR DESC @A@@@[ A,U A1,1 . @D@@@^AE )@@G@@ TG,U A1,NUMOAP . $T NUMOAP EXCEEDED @C@@@^ J AF )@@G@@ OAPOFL . $A NO YES,OAPOFL@D@@@[ S,S4 A1,0,A0 AG )@@G@@. $P INCREMENT O/A CNT @D@@@[ J *C1STOR . $E RETURN AH )@@G@@TO C1SET @[@@@[ . @#@@@[ . C1ERRI - @A@@@[ . INTERNALAI )@@G@@ ERROR EXIT @[@@@[ . @C@@@[C1ERRI. . $H CAJ )@@G@@1ERRI @G@@@[ P$RINT (PF 1,6,C1ERIM) . $P PRINT ERROR MESSAAK )@@G@@GE AND TERMINATE @A@@@[ ER ERR$ . $E @[@@@[ . AL )@@G@@@]@@@[ . C1ERR -@B@@@[ . HANDLES INVALID NAME ERRORS @[@@@[AM )@@G@@ . @B@@@[C1ERR. . $H C1ERR @E@@@[ L AN )@@G@@ A1,SA1 . $P RESTORE RECORD NAME @A@@@[ S A1,AO )@@G@@*RNMPTR . @A@@@[ L,U A0,' ' . @A@@@[ AP )@@G@@ S,S2 A0,EDPKT . @E@@@[ TZ NS$FLG . $T AAQ )@@G@@RE THERE TWO SCHEMAS ? @C@@@[ J C1ER1 . $A NO YES,AR )@@G@@C1ER1 @D@@@[ E$DIT EDPKT . $P FORMAT MESSAGE @A@@@[AS )@@G@@ E$COPY 14,C1EM01 . @A@@@[ L A0,RNMPTR AT )@@G@@. @A@@@[ LMJ X11,EMSG$ . @A@@@[ E$COPY 22AU )@@G@@,C3EM02 . @A@@@[ E$DITX . @C@@@[ AV )@@G@@ J C3EREX . $J C3EREX @G@@@[C1ER1 TZ NFFLG AW )@@G@@ . $T WAS NAME NOT FOUND IN BOTH SCHEMAS ? @C@@@[ J C1EAX )@@G@@R2 . $A NO YES,C1ER2 @D@@@[ E$DIT EDPKT . $P FAY )@@G@@ORMAT MESSAGE @A@@@[ E$COPY 16,C1EM11 . @A@@@[ AZ )@@G@@ L A0,RNMPTR . @A@@@[ LMJ X11,EMSG$ . BA )@@G@@@A@@@[ E$COPY 16,C3EM12 . @A@@@[ L A0,C3EM13BB )@@G@@,X7 . @A@@@[ LMJ X11,EFD1$ . @A@@@[ E$CBC )@@G@@OPY 7,C3EM14 . @A@@@[ E$DITX . @E@@@[BD )@@G@@ P$RINT (PF 1,14,PRINT) . $P PRINT WARNING MESSAGE @A@@@[ BE )@@G@@ L,U A0,1 . @A@@@[ S A0,NFFLG . BF )@@G@@@C@@@[ J C1EXIT . $J C1EXIT @D@@@[C1ER2 E$DBG )@@G@@IT EDPKT . $P FORMAT MESSAGE @A@@@[ E$COPY 14,C1EM0BH )@@G@@1 . @A@@@[ L A0,RNMPTR . @A@@@[ LMJBI )@@G@@ X11,EMSG$ . @A@@@[ E$COPY 29,C3EM22 . @A@@@[BJ )@@G@@ E$DITX . @C@@@[ J C3EREX BK )@@G@@. $J C3EREX @[@@@] . @B@@@]C1OFL. . $H CBL )@@G@@1OFL @E@@@] P$RINT (PF 1,4,C1OM) . $P PRINT OVERFLOW MESSAGE BM )@@G@@@A@@@] ER ERR$ . $E @[@@@^ . @C@@@^OAPOFL. BN )@@G@@ . $H OAPOFL @D@@@^ L A5,0,A0 BO )@@G@@. $P SAVE RECORD CODE @A@ @^ LSSL A5,24 . @A@@@ BP )@@G@@ SSL A5,24 . @G@@@^ E$DIT EDPKT BQ )@@G@@. $P FORMAT & PRINT NUMOAP OFL MSG @A@@@^ E$COPY 14,OAPM1BR )@@G@@ . @A@@@^ E$DECV A5 . @A@@@^ E$CBS )@@G@@OPY 18,OAPM2 . @A@@@^ L,U A0,NUMOAP . @A@@@^BT )@@G@@ LMJ X11,EDECV$ . @A@@@^ E$CHAR '!' BU )@@G@@. @A@@@^ E$DITX . @A@@@^ P$RINT (PBV )@@G@@F 1,14,PRINT) . @A@@@^ ER ERR$ . $E @]@@@[ . BW )@@G@@ @]@@@[$(2). @A@@@[SA0 + 0 . @A@@@[BX )@@G@@SA1 + 0 . @A@@@[C1ORCD + 0 BY )@@G@@. @A@@@[C1SWRD + 0 . @A@@@[C1SCDE + 0 BZ )@@G@@ . @A@@@[C1R2WD + 0 . @A@@@[C1LPTRCA )@@G@@ RES 3 . @A@@@[CN + C1 . CB )@@G@@@A@@@[ + C9 . @A@@@[C1EM01 'ERROR: RECORD CC )@@G@@' . @A@@@[C1EM11 'WARNING: RECORD ' . @E@@@[C1ERIM 'COCD )@@G@@NFIG INTERNAL SCHEMA TABLE ERROR ' . @A@@@]C1OM 'C1/C9 TACE )@@G@@BLE OVERFLOW!' . @A@@@^OAPM1 'ERROR: RECORD ' . @A@@@^OAPM2 CF )@@G@@ ' EXCEEDS NUMOAP = ' . @]@@@[ . @A@@@[ . CG )@@G@@ ** BLDC3 ** @]@@@[ . @C@@@[ . THIS ROUTINE BUILDS CH )@@G@@THE AREA TABLES @E@@@[ . C3 AND C10 FROM THE INPUT AREA NACI )@@G@@MES @]@@@[ . @A@@@[ . THE ROUTINE CALL IS CJ )@@G@@@E@@@[ . LX X10,(NAME-LIST-INC,AREA-NAME-LIST) @A@@@[CK )@@G@@ . LMJ X11,BLDC3 @G@@@[ . WHERE AREACL )@@G@@-NAME-LIST IS ADDR OF NAME-LIST @G@@@[ . CM )@@G@@ AND NAME-LIST-INC IS # OF WORDS/NAME @C@@@[ . CN )@@G@@ IN LIST @]@@@[ . @E@@@[ . A NAME WCO )@@G@@ITH THE FIRST WORD ALL BLANKS WILL @C@@@[ . SIGNAL THCP )@@G@@E END OF THE LIST @]@@@[ . @E@@@[ . IF AN INVALID CQ )@@G@@NAME IS GIVEN, THE ROUTINE WILL @C@@@[ . PRODUCE WARNINGCR )@@G@@ MESSAGES @]@@@[ . @E@@@[ . EACH ENTRY WILL BE PCS )@@G@@LACED IN THE TABLE SO THAT @E@@@[ . THE TABLE IS SORTED BCT )@@G@@Y ASCENDING AREA CODE @]@@@[ . @^@@@[$(2) LIT. CU )@@G@@@]@@@[$(1). @]@@@[ . @C@@@[BLDC3*. CV )@@G@@. $H BLDC3 @E@@@[ S,H2 X11,RETURN . $P SAVE RETURN ACW )@@G@@DDR @E@@@[ S X10,SX10 . $P SAVE NAME LIST PTR CX )@@G@@ @E@@@[ SZ X7 . $P SET FOR FIRST SCHEMA CY )@@G@@@E@@@[C3INIT TZ,H1 *CX,X7 . $T IS THIS FIRST AREA ? @C@@@[CZ )@@G@@ J C3RSET . $A YES NO,C3RSET@A@@@[ S X7,DA )@@G@@SFIND . @G@@@[ LMJ X11,FDSDT . $W INITIALIZE SCDB )@@G@@HEMA ACCESS METHOD @A@@@[ + SFIND . @A@@@[DC )@@G@@ + $,('BLDC3') . @G@@@[ L A0,*LADDR,X7 DD )@@G@@. $P SAVE STARTING ADDR OF C3/C10 @A@@@[ A,U A0,1 DE )@@G@@ . @A@@@[ S,H2 A0,*CX,X7 . @A@@@[C3INT2 L DF )@@G@@ A0,X7 . @E@@@[ TNE A0,NS$FLG . $T ANOTHERDG )@@G@@ SCHEMA ? @C@@@[ J C3OLD . $A YES NO,C3OLD DH )@@G@@@E@@@[ L,U X7,1 . $P SET FOR SECOND SCHEMA @C@@@[DI )@@G@@ J C3INIT . $J C3INIT @G@@@[C3RSET L,H2 A0,DJ )@@G@@*CX,X7 . $P GET FIRST WORD ADDR OF LAST TBL ENTRY@A@@@[ A,HDK )@@G@@1 A0,*CX,X7 . @A@@@[ AN,U A0,9 . @A@@@[DL )@@G@@ L,U A1,9 . @G@@@[ S,T3 A1,0,A0 DM )@@G@@. $P RESET LAST LINK FROM 0 TO 9 @C@@@[ J C3INT2 DN )@@G@@ . $J C3INT2 @E@@@[C3OLD SZ X7 . $P SET FORDO )@@G@@ FIRST SCHEMA @A@@@[ SZ SFIND . @E@@@[ DP )@@G@@ SZ NFFLG . $P SET NOT-FOUND FLAG TO 0 @A@@@[C3TEST L DQ )@@G@@ X10,SX10 . @E@@@[ L A0,0,X10 . $P GET FIRDR )@@G@@ST WORD OF NAME @E@@@[ TNE A0,BLNKS . $T IS IT BLANKS DS )@@G@@? @C@@@[ J C3EXIT . $A NO YES,C3EXIT@E@@@[DT )@@G@@ S,H2 X10,ANMPTR . $P STORE NAME PTR IN CALL @G@@@[ DU )@@G@@ DL A0,0,X10 . $P SAVE NAME IN CASE OF ERROR @A@@@[DV )@@G@@ DS A0,ANAME . @G@@@[C3TST2 LMJ X11,FABNME DW )@@G@@. $W GET AREA DESC TABLE FROM SCHEMA @A@@@[ANMPTR + 0 DX )@@G@@ . @A@@@[ + ADTBUF . @A@@@[ + DY )@@G@@ SFIND . @A@@@[ + $,('BLDC3') . @E@@@[DZ )@@G@@ TNZ *ANMPTR . $T WAS AREA NAME VALID ? @C@@@[ EA )@@G@@ J C3ERR . $A YES NO,C3ERR @G@@@[ L A0,ADTBUFEB )@@G@@ . $P GET AND FORMAT AREA-CODE LINE @A@@@[ LSSC A0,EC )@@G@@12 . @A@@@[ LSSL A0,12 . @A@@@[ ED )@@G@@ A,U A0,9 . @A@@@[ S A0,C3BUF . EE )@@G@@@C@@@[ DL A0,ADTBUF+4 . $P GET AREA NAME@A@@@[ DS EF )@@G@@ A0,C3BUF+1 . @A@@@[ SZ A0 . @G@@@[EG )@@G@@ L A1,ADTBUF+6 . $P GET AND FORMAT PG-LENGTH LINE EH )@@G@@@A@@@[ LDSL A0,18 . @A@@@[ LSSL A0,6 EI )@@G@@ . @G@@@[ A,S6 A0,ADTBUF+3 . $P INSERT FILE TYPE INEJ )@@G@@TO P-L LINE @A@@@[ DSL A0,18 . @A@@@[ EK )@@G@@ S A1,C3BUF+3 . @E@@@[ DL A0,ADTBUF+7 . $P GEL )@@G@@ET PAGE ALLOCATION LINES@A@@@[ DS A0,C3BUF+4 . @A@@@[EM )@@G@@ SZ A0 . @G@@@[ L A1,ADTBUF+9 EN )@@G@@. $P GET AND FORMAT LOAD-FACTOR LINE @A@@@[ LDSL A0,12 EO )@@G@@ . @A@@@[ LSSL A1,6 . @A@@@[ DSLEP )@@G@@ A0,18 . @A@@@[ S A1,C3BUF+6 . @E@@@[EQ )@@G@@ L A0,AREAP . $P GET UNLOAD FLAG @E@@@[ ER )@@G@@ S,S1 A0,C3BUF+8 . $P PUT IT IN TABLE ENTRY @G@@@[ L ES )@@G@@ A0,*LADDR,X7 . $P GET ADDR OF NEXT AVAIL CORE WORD @A@@@[ ET )@@G@@ AU,U A0,1 . @A@@@[ LXI,U A1,1 . EU )@@G@@@A@@@[ A,U A0,9 . @A@@@[ S A0,*LADDREV )@@G@@,X7 . @E@@@[ ER MCORE$ . $W MCORE BUFFER SPACE EW )@@G@@ @C@@@[ L,T1 A2,C3BUF . $P GET AREA CODE@G@@@[ EX )@@G@@ L,H2 X9,*CX,X7 . $P SET UP PTRS FOR C TABLE SEARCH @A@@@[EY )@@G@@ LXI,U X9,9 . @A@@@[ SZ A4 EZ )@@G@@. @A@@@[ L,H1 A5,*CX,X7 . @G@@@[ DI,U A4,FA )@@G@@9 . $P CONVERT WORD CNT TO ENTRY CNT @A@@@[ L FB )@@G@@ R1,A4 . @G@@@[ SG,T1 A2,0,*X9 . $P SEARCH FC )@@G@@C TABLE FOR PLACEMENT OF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@@@@@@@@@@@@@@@@@FM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]@@@@@@@@@@@@@@^@@]FO )@@G@@COM @@Q@@@@@@O0,COUNT @@Q@@@@@@O1< . ON PERM.@ @@@@ FP )@@G@@ CTE 0,0,LNON2 . @D@@@@ +'NOLN' . LIFQ )@@G@@NE # OFF. @ @@@@ CTE 0,0,LNON3 . @D@@@@ +'NOEC' FR )@@G@@ . ECHO OFF. @ @@@@ CTE 0,0,ECHO2 . FS )@@G@@@E@@@@CTABL2L EQU ($-CTABL2)/2 . LENGTH OF SECT 2. @[@@@@FT )@@G@@/. @B@@@@IVTABL* . TABLE OF INTRINSIC VARIABLES. @A@@@@ +'FU )@@G@@ALL' . A BIG NUMBER!!@B@@@@ L,U A10,250000 . FV )@@G@@@A@@@@ +'CARG' . CURRENT ARG. @B@@@@ L A10,FW )@@G@@CURARG . @^@@@@ +'CCL' . @B@@@@ L FX )@@G@@ A10,CL . @B@@@@ +'CCM' . CHARACTER MASK. FY )@@G@@@B@@@@ L A10,CMSK . @^@@@@ +'CCY' FZ )@@G@@ . @D@@@@ L A10,LC . LATEST CYCLE. @A@@@@GA )@@G@@ +'CDI' . CODE OF INPUT.@B@@@@ L A10,ASCIN GB )@@G@@ . @B@@@@ +'CDO' . CODE OF OUTPUT. @B@@@@ GC )@@G@@ L A10,ASCOUTF . @A@@@@ +'CF' . CHANGE FGD )@@G@@LAG. @B@@@@ L A10,CFAIL . @A@@@@ +'GE )@@G@@CHF' . CHANGE FLAG. @B@@@@ L A10,NOCHGF . GF )@@G@@@^@@@@ +'CIL' . @B@@@@ L A10,SAVE2 GG )@@G@@ . @B@@@@ +'CLCN' . START COL IN CHANGE.@B@@@@ L GH )@@G@@ A10,CLCN . @^@@@@ +'CLL' . @B@@@@ GI )@@G@@ L A10,NLIMT . @^@@@@ +'CLN' . @B@@@@GJ )@@G@@ L A10,LCT . @D@@@@ +'CNL' . CUGK )@@G@@RRENT LINE COUNT AT LAST EOF. @C@@@@ L A10,CNLC GL )@@G@@ . GET IT. @^@@@@ +'CPG' . @B@@@@ L A10,GM )@@G@@PGLG . @^@@@@ +'CPGN' . @D@@@@ L GN )@@G@@ A10,PGCT . PAGE COUNT. @^@@@@ +'CPL' . @B@@@@GO )@@G@@ L A10,PTL . @^@@@@ +'CRPT' . GP )@@G@@@E@@@@ L A10,RPTK . REPEAT COUNTER. @^@@@@GQ )@@G@@ +'CSI' . @B@@@@ L A10,ISPACE . GR )@@G@@@^@@@@ +'CSO' . @B@@@@ L A10,ICWS,,S4 GS )@@G@@ . @^@@@@ +'CSP' . @B@@@@ L A10,SPACEMGT )@@G@@,,S2 . @B@@@@ +'CVF' . CURRENT VERIFY FLAG.@B@@@@ GU )@@G@@ L A10,BRIEF2 . @B@@@@ +'DELF' . TO BE DEGV )@@G@@L FLAG. @B@@@@ L A10,DELFLG . @B@@@@ GW )@@G@@ +'DIF' . DATAFILE INPUT. @B@@@@ L A10,DOPTI GX )@@G@@ . @A@@@@ +'DOF' . DATAFILE OUT. @B@@@@ L GY )@@G@@ A10,DOPTO . @A@@@@ +'ECHF' . ECHO FLAG. GZ )@@G@@@B@@@@ L A10,EOPT . @A@@@@ +'EOFF' HA )@@G@@ . EOF FLAG. @B@@@@ L A10,EOFF . @A@@@@HB )@@G@@ +'FF' . FIND FLAG. @B@@@@ L A10,FFAIL HC )@@G@@ . @A@@@@ +'INMX' . MAX INPUT. @B@@@@ L HD )@@G@@ A10,INTLG . @B@@@@ +'LCOL' . FIRST NON-BLNKHE )@@G@@ COL. @F@@@@ L A10,LCOLC . GET LEFT COL POINTERHF )@@G@@. @A@@@@ +'LF' . LOCATE FLAG. @B@@@@ L HG )@@G@@ A10,LFAIL . @C@@@@ +'LLCN' . START OF LOCATED STRHH )@@G@@ING. @B@@@@ L A10,LLCN . @C@@@@ +'HI )@@G@@LMAR' . LEFT MARGIN IN TEXT MODE. @C@@@@ L A10,LMAR HJ )@@G@@ . GET IT. @E@@@@ +'MCC' . COUNT OF DBANK CORE BLOCKSHK )@@G@@ IN USE. @D@@@@ L,Q3 A10,MCDONE . # BLOCKS. HL )@@G@@@^@@@@ +'MLN' . @D@@@@ L A10,MLCT HM )@@G@@ . MACRO LINE #. @A@@@@ +'MRPT' . MACRO REPEAT. @B@@@@ HN )@@G@@ L A10,MRPTKV . @C@@@@ +'NARG' . # OF ARGHO )@@G@@S ON MACRO CALL. @B@@@@ L A10,NARGC . @A@@@@HP )@@G@@ +'NELT' . NO ELT INPUT. @B@@@@ L A10,ELMNF HQ )@@G@@ . @A@@@@ +'NEW' . NEW IMAGE. @B@@@@ L HR )@@G@@ A10,AC1 . @A@@@@ +'OFF' . UTILITY OFF. HS )@@G@@@B@@@@ SZ A10 . 0 @G@@@@OFFP* EQU HT )@@G@@ $-IVTABL . ADDR OFFSET FROM IVTABL-1 OF SZ.@A@@@@ +'HU )@@G@@ON' . UTILITY ON. @B@@@@ L,U A10,1 . 1.HV )@@G@@@B@@_@ +'PTYP' . PROGRAM TYPE. (A4) @B@@_@ L HW )@@G@@ A10,PTYPEF . @^@@@@ +'RCOL' . @E@@@@ L HX )@@G@@ A10,RCOLC .. GET RIGHT LIMIT. @C@@@@ +'RMAR' HY )@@G@@ . RIGHT MARGIN IN TEXT MODE.@E@@@@ L A10,RMARV HZ )@@G@@ . GET EXACT COLUMN. @^@@@@ +'SCL' . @B@@@@ L IA )@@G@@ A10,LCOLP . @A@@@@ +'SCR' . RIGHT MARGIN. IB )@@G@@@B@@@@ L A10,CEND . @B@@@@ +'TYPN' IC )@@G@@ . NUMERIC OF SUB-TYPE.@B@@@@ L A10,INTBL+9,,S1 . ID )@@G@@@B@@@@IVTABLL* EQU ($-IVTABL)/2 . @]@@@@ . @^@@@@IE )@@G@@ END . ___2 . @B@@@@ +'CVF' . CURRENT IF )@@G@@VERIFY FLAG.@B@@@@ L A10,BRIEF2 . @B@@@@ IG )@@G@@)@@[N][)@@K)TK@@@@G[J@@@R#0@@@ @@@@KA#O@[XR@L@@@R[[@@#R@1@@]R@-@@[A@L@@^IH )@@G@@/K@@@@AA@@@@)@E[#@K)UK)VK^CB^CBOCB)@@@@@@@*@^@@8/,)@@@'=@@@@'=@@@@R#@@AVII )@@G@@/K@@@@%[@@@@8#0@@DAB@@@@)@M[N][.]]@K)-^@@@R#^@@W @^@@6A#^@@7R#^@@6/K@@[@IJ )@@G@@(4^@@@/!)@@@ @^@@8/,)@@@/,)@@@AC@@@@)@W[M[@^@([^)C]^^S'=@@@@C@@@AW/K@@@/IK )@@G@@R;@@@@/K@@@%%8@@@]/K@@@"(@^@@WA#^@@WP;@@@[AD@@@@)@&[#@K^CC4@([C-@U-@S@@@IL )@@G@@@@@@@@C8K@@AC8@@@@/,0@@@R;@@@@/K@@@"'=@@@@C@@@AX/K@@@VAE@@@@)@,[#]@*K)LKIM )@@G@@)>K)&K^CD0@@@@@@@@R;@@@*/,0@@@/K@@@7:@@@@@9?@@@@/,0@@@C/@@@[/,0@@@AF@@@@IN )@@G@@)@6[#]@.][K(@&-@O-[KO)(K)%K@@@/K@@[K'=@@@@R;@@@@/,0@@@/,0@@@C8K@@@C8@@@@IO )@@G@@/,0@@@AG@@@@)@"[M@K[]]?K)?@@@@C').]K'=@@@@%8K@@]/K@@@@:8K@@[/@K@[HR#O@[XIP )@@G@@ @^@@WA#^@@6R#^@@7AH@@@@)[C[M@K)!^[]]8@@@@ @^@[B @^@@?'=@@@@C@@@AY @^@[%IQ )@@G@@/K@@@@A#^@[>R;@@@2A#^@[JR;@@@[AI@@@@)[M[M@@^CF4CG@@@@@AZ@@@@R#@@@@ @^@@;IR )@@G@@ @^@@C @^@@K C^@@J(@^@@I @^@[C @^@[J()^@@[AJ@@@@)[W[M^@[@^CGK@@@@@R')@@[IS )@@G@@/,)@@@ @^@@V/K@@[,9?I@@@O#=@@FRB=@@G/K@@[<(@^@@I @^@@:AK@@@@)[&[M[]#CK)3IT )@@G@@@K@@@@/,)@]\ @^@@PR#O@[-(@@@@H/K@@@@(@^@@0/,)@@@ W^@@O @^@@2A]=@@CAL@@@@IU )@@G@@)[0[N]#K[]#CK@@@@@H9@@@[H[^@@2C[^@@0/K@@]^%8K@@./,)@@@C[=@[-C[O@@29*^@@DIV )@@G@@/K@@@@AM@@@@)['[E^C[[]#OK[]#O@@@@@@@/D@@@@:80@@'/K@@]F(@^@@P/D@@@@:80@@)IW )@@G@@RN/@@@O;@@@[R#^@@2AN@@@@)]#[N@^[]#CK[@@@@@[[=@[-[[O@@2/K@@[7A#O@@P/K@@]FIX )@@G@@%8K@@./,)@@@/K@@]F%8K@@'/K@@]FAO@@@@)]H[MK[@K^@@@@@@@@%80@@]*)^@@];C0@@KIY )@@G@@R#0@@IRB\@]_/K@@]T2CZ)#@N8K@@.R#0@AZ9?^@@DAP@@@@)]R[N@K)6[@K^@@@@@/KJ@@@IZ )@@G@@R;K@@[+8)J__RB\@]_/K@@]-2@Z)#@N8K@@)&;0@@]/K@@@@/K@@]YAQ@@@@)]-[F]#X@K^@JA )@@G@@K)8^CIOCI)@@/K@@@@/,)@@@ @^@@2/K@@@@C[@@@Q')J@^//K@@]$/K@@]=/,)@@@AR@@@@JB )@@G@@)]%[F]#!]#1@K),K@^CJK@@@/,0@@@R;O@@DR;@@@]9*^@@D/K@@[K'=@@@@C@@@A)A#K@@@JC )@@G@@/,)@@@AS@@@@)]3[U@@@@@@@P;0@@]/KE@@@:@Z@@@O#0@@K;(@@@[C[@@@IP;)@@[RF=@@ JD )@@G@@/@'@@[RB4@@ 9?^@@DAT@@@@)]"[#@^CJ=CJ4CK^CKOCK=CK0@@@@@@@:K@@@[2)@@@[<)@@JE )@@G@@@[()@@@[&K@@@[?K@@/KE@@[8#)@];AU@@@@)#A[#]^L]^P]^T]^X]^-]^>]^(]]?@@[+K@@JF )@@G@@@[6@@@@[3)@@@[-)@@@@!K@@@[0K@@@[=)@@@[$K@@AV@@@@)#I[#]^!]^1]^5]^9]^.] []JG )@@G@@ ] C@IL0@@@H-,@@@HD+)@@I[!K@@GT()@@G9(K@@@[%K@@@@,@@@AW@@@@)#Q[#] H] L]JH )@@G@@ P] T] X] -] >] *@H9=@@@H1=@@@I[$@@@IT(@@@IT\@@@IT0@@@I(0@@@I[?@@@AX@@@@JI )@@G@@)#Y[#] !] 1] 5] 9] .]A[]A ]AC@GT!@@@HD&@@@HD\)@@H-?@@@H--)@@H(<@@@GT=@@@JJ )@@G@@GT?@@@AY@@@@)#&[#]AH]AL]AP]AT]AX]A-]A>]A*@IL6@@@IT<@@@HD?@@@G(8K@@I[1)@@JK )@@G@@HD0)@@HD$K@@HD!)@@AZ@@@@)#,[#]A!]^H]^X]A1]A5]A9]A.]B@@G10K@@H-=)@@G1=)@@JL )@@G@@H-H1=JM )@@G@@@[4K@@G9\K@@IT&@@@I(-)@@IL4@@@GL2@@@H-0K@@BB@@@@)#"[F]BWK-8^CYL]B*K-;@@@JN )@@G@@@@@@@@@[@@@)@@@[3G(1@@@@@@@[3G(4@@@@@@@[4GD+BD@@@@JP )@@G@@)^K[F]C@K+[^C)-]CGK+^@@@@@@)@@H-\GD=@@@)@@G1(H->@@@@@@@[*G-?@@@@@@@[*G-$JQ )@@G@@@@@@@@BE@@@@)^T[EK+ ^C--]CWK+C@@@@@@@[?HD6@@@@@@H(>H1=@@@@@@@[=G(?@@@@@@JR )@@G@@@[?H(,@@@K@@@[?H(4BF@@@@)^+[F]C=K+E^C+1@^C<@@@@@@@@)@@@[>=@@@@[K@[,H90JS )@@G@@@@@@@@@[?HD<@@@@@@HD,H-,@@@@@@BG@@@@)^:[EK+H^C<-]BCK-E@@@@@@IT-I1>@@@@@@JT )@@G@@IL(G19@@@@@@IL(G(&@@@@@@I-@@@GT&C]=@[R@[@[H-&C]=@@6BN@@@@) 3[U@@@@@@@H-!GD2C]=@]NKB )@@G@@H-?GT,C]=@@=@@@H-&CY=@[?H-H-4CU=@@LH1-IL$CA=@@JH(2I[4C]=@@N@[!H-,CU=@@+@[!GTD( C-DCT[D))CDNETDMC )@@G@@ETOCDICT ^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@]&D9OD[ EK)ETPCLNDD^MD )@@G@@FC)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@]$C- E[O^[JC0)E1JCT[ME )@@G@@E-DD9ICDG^[MC(CCD]^[ADDICDI LED9]^[#D9PD0)^-QD-]@@@@]*D9OD[ EK)C1DD1[D0)MF )@@G@@^0)DLJCK)CTJE(IET D-DD1B^@)^@)^@)^@)^@)^@)^-IF[OD*)^@)@@@@@QD1[AK2D*)^@)MG )@@G@@@@@@@Q^-IF[OM$*L"@#C@@@@^-QD-]@@@@](E[MD9]CDODDJD0)CDIC))E[[ELJD- ^@)^@)MH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@]%D- C9[D))CDDC))^@)^@)^@)^@)^@)^@)^@)MI )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@]:D9OD[ EK)D- C9[D))^@)^@)^@)^@)^@)^@)MJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@]?ETJE(MCT ^[JC0)D( C-DCT[D))CT[EL ^@)MK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@]!CDIE-DE[NFD#D[JE-DCS)D( C-N^@)^@)^@)ML )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@]2CDIE-DC- E[MC(NET[D1O^[HC(^ES)^@)^@)MM )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@]7D(DD1JEK)E-MCDIEDPDDGDDUC(MES)^@)^@)MN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@]/CTIES)ETODDHE(GCDIE-N^@)^@)^@)^@)^@)MO )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#[CDIE-D (KCDMDTDD1ND9IDD[D0)C-ME(BES)MP )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#AD[TE[ID9ODD#^[^ELPC9N^@)^@)^@)^@)^@)MQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#FD-DE-CDDPD*)^@)^@)^@)^@)^@)^@)^@)^@)MR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#KCDIE-DD[DETOCDHDDIC(N^@)^@)^@)^@)^@)MS )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#PE(IDD^C(IE-DC1DC(^^[HC(^ES)^@)^@)^@)MT )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#UETPDD#DD^C*)CDOE- D(KE-N^[MC(LE(DELDMU )@@G@@D1B^[HC(^^[[E-OC(IE-DD9I^-QD-]@@@@#VE1[D-DC-DE-T^[JC0)D-DE1DD1B^[NDDOE([MV )@@G@@E-DD9I^[^CDOCC)^@)^@)^@)^-QD-]@@@@#WE1[D-DC-DE-T^[JC0)C(HE[GD9TD( D1O^[^MW )@@G@@CDOCC)^@)^@)^@)^@)^@)^@)^-IF[OD*)^@)@@@@@QD1[AK2D*)^@)@@@@@Q^-IF[OM$*L"@MX )@@G@@#C@@@@^-QD-]@@@@#XE1[D-DC-DE-T^[JC0)C(#D9ID9HDD#^[^CDOCC)^@)^@)^@)^@)^@)MY )@@G@@^@)^@)^-QD-]@@@@#YE9DE-C^[HFDNC(GC0)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MZ )@@G@@^@)^@)^-QD-]@@@@#ZD1J^[BD9JC))^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NA )@@G@@^@)^@)^-QD-]@@@@#)C9JD9^^[LE([D-DE-DC(N^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NB )@@G@@^@)^@)^-QD-]@@@@#-D(JETO^[KC(JE[GC*)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NC )@@G@@^@)^@)^-QD-]@@@@#+E[MD9PC))^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ND )@@G@@^@)^@)^-QD-]@@@@#EL C9[EL^^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NG )@@G@@^@)^@)^-QD-]@@@@#&C1[DDGE(MC*)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NH )@@G@@^@)^@)^-QD-]@@@@#$E[JETDE-DE1 ^[[E-ODDOE(^C*)^@)^@)^@)^@)^@)^@)^@)^@)^@)NI )@@G@@^@)^@)^-QD-]@@@@#*D-DE1DD1B^[NDDOE([E-DD9I^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NJ )@@G@@^@)^@)^-QD-]@@@@#(E[ D9KD- ^[GDDQC(^^[RDDOD@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NK )@@G@@^@)^@)^-QD-]@@@@#%C1JD9^^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NL )@@G@@^@)^@)^-QD-]@@@@#:EL CTMC([E-DD9I^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NM )@@G@@^@)^@)^-QD-]@@@@#?D1PD(]C(M^[JC0)C1MDD D1^ES)^@)^@)^@)^@)^@)^@)^@)^@)^@)NN )@@G@@^@)^@)^-IF[OD*)^@)@@@@@QD1[AK2D*)^@)@@@@@Q^-IF[OM$*L"@#C@@@@^-QD-]@@@@#!NO )@@G@@DLJCK)ETDE-PCDODDJD0)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#,NP )@@G@@E[MC(NC(IE))D-DC1 ^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#\NQ )@@G@@C1MC( C-JD*)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#0NR )@@G@@C(SCTDE- D( D1O^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#1NS )@@G@@D[JETO^[]C(GDDBC(MCDICT ^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#2NT )@@G@@E[[EL[D1JDD^^[KELJDL CTODDJD0)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#3NU )@@G@@C9MCDIC-DD9NC*)C(SE[[D1NDDQC(IC(NES)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#4NV )@@G@@E[ EL#C(KE-PCDG^[^DDNE-JELODDJD1N^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#5NW )@@G@@CDIF[DD9PES)DDIE-MD9KE(IDDODDQC(IC(NES)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#6NX )@@G@@EL E-[EL^CDODDJD0)CDIC))CDKCDOD[T^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#7NY )@@G@@C-DETJELDC(IE-[E-DD9I^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#8NZ )@@G@@D(JE-JEK)C-DETOE(MCL[D1#C(N^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#9OA )@@G@@CTJD1#C(KE-PCDG^[^DDND9MC9[D1DFL[E-DD9I^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#'OB )@@G@@C- E[MC(NET C))D(JD9^^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#;OC )@@G@@DDHE[[DDMC(^^[AE(ICTODDJD1DD1B^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#/OD )@@G@@D9]ET ETNDDQC*)CTJD(KE(GETDE1 ^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-IF[OD*)^@)OE )@@G@@@@@@@QD1[AK2D*)^@)@@@@@Q^-IF[OM$*L"@#C@@@@^-QD-]@@@@#.E-JE-[D))E1[D-PC*)OF )@@G@@D9A^[[ETNC(OES)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@#"E-JE-[D))E1[D-PC*)OG )@@G@@D9A^[^C(]E-N^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-QD-]@@@@^IB*)CTJD(KE(OC(^^[NOH )@@G@@D9#DD[D))CD#E-DE1DE-T^[NCTJEL ^@)^@)^@)^@)^-QD-]@@@@^JE-JE-[D))CTJD(KE(OOI )@@G@@C(^^[[CTODDQDDOFC)ET#D9MC*)^@)^@)^@)^@)^@)^-QE1G@@@@@ KO@@@@E9FETCE[[E1[OJ )@@G@@DDG^@)^@)^@)^@)^@)KQ@@@@E9FETCE[ID9OCDQCDDD))^@)^@)^@)^-QD1^^-QE1G@@@@@AOK )@@G@@@@@@@@CL[ET D-DD1 ^@)^@)^@)^@)^@)^@)KG@@@@A-HD9IE-C^@)^@)^@)^@)^@)^@)^@)OL )@@G@@KO@@@@B@)D(JD1OD@)^@)^@)^@)^@)^@)^@)KQ@@@@AC0^[HD9IE-C^@)^@)^@)^@)^@)^@)OM )@@G@@KW@@@@AC4^[HD9IE-C^@)^@)^@)^@)^@)^@)KX@@@@AC8^[HD9IE-C^@)^@)^@)^@)^@)^@)ON )@@G@@KY@@@@AK2^[HD9IE-C^@)^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@@B@@@@@@D(DETNC(^^@)OO )@@G@@^@)^@)^@)^@)^@)^@)KG@@@@CTJD(KD- E- ^[JD0)E-DD( ^@)^@)KO@@@@CTJD(KD- E- OP )@@G@@^[GCDOC*)^@)^@)^@)KQ@@@@E[[ELOCTJD(K^[JD0)E-DD( ^@)^@)KW@@@@E[[ELOCTJD(KOQ )@@G@@^[GCDOC*)^@)^@)^@)KX@@@@C- CT CDNC(^^@)^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@@COR )@@G@@@@@@@@D1J^@)^@)^@)^@)^@)^@)^@)^@)^@)KG@@@@FD ES)^@)^@)^@)^@)^@)^@)^@)^@)OS )@@G@@^-QD1^^-QE1G@@@@@D@@@@@@D1J^@)^@)^@)^@)^@)^@)^@)^@)^@)KG@@@@FD ES)^@)^@)OT )@@G@@^@)^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@@E@@@@@@D1J^@)^@)^@)^@)^@)^@)^@)^@)^@)OU )@@G@@KG@@@@FD ES)^@)^@)^@)^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@@F@@@@@@D1J^@)^@)^@)OV )@@G@@^@)^@)^@)^@)^@)^@)#C@@@@KG@@@@FD ES)^@)^@)^@)^@)^@)^@)^@)^@)^-QD1^^-QE1GOW )@@G@@@@@@@G@@@@@@D1J^@)^@)^@)^@)^@)^@)^@)^@)^@)KG@@@@FD ES)^@)^@)^@)^@)^@)^@)OX )@@G@@^@)^@)^-QD1^^-QE1G@@@@@H@@@@@@D1J^@)^@)^@)^@)^@)^@)^@)^@)^@)KG@@@@FD ES)OY )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@@I@@@@@@D1J^@)^@)^@)^@)^@)^@)^@)OZ )@@G@@^@)^@)KG@@@@FD ES)^@)^@)^@)^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@@J@@@@@@D1J^@)PA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)KG@@@@FD ES)^@)^@)^@)^@)^@)^@)^@)^@)^-QD1^^-QE1GPB )@@G@@@@@@@KKG@@@@E-JC-[FC)^@)^@)^@)^@)^@)^@)^@)KO@@@@FD ETOEL^CDT^@)^@)^@)^@)PC )@@G@@^@)^@)KQ@@@@D(JEL ^[OD[[D0)AK)C-[FDN^@)^@)^-QD1^^-QE1G@@@@@LKG@@@@D9PE))PD )@@G@@D(JETO^@)^@)^@)^@)^@)^@)KO@@@@D9PE))D[[D-A^@)^@)^@)^@)^@)^@)KQ@@@@DDI^[HPE )@@G@@D9NE))^@)^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@@N@@@@@@DDICD^C(LE- ^@)^@)^@)^@)PF )@@G@@^@)^@)KG@@@@CD^C(LE([E- ^@)^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@@O@@@@@@C-DC))PG )@@G@@D1JE))C([E))^@)^@)^@)^@)KG@@@@CDOC*)CLT^[NC(GC0)^@)^@)^@)^@)KO@@@@CDOC*)PH )@@G@@E9DE-C^[JE-CC(MES)^@)^@)KQ@@@@DTID9R^[RC(GD))^@)^@)^@)^@)^@)^-QD1^^-QE1GPI )@@G@@@@@@@P@@@@@@C-DC))D1JE))C([E))^@)^@)^@)^@)KG@@@@CDOC*)CLT^[NC(GC0)^@)^@)PJ )@@G@@^@)^@)KO@@@@CDOC*)E9DE-C^[JE-CC(MES)^@)^@)KQ@@@@DTID9R^[RC(GD))^@)^@)^@)PK )@@G@@^@)^@)^-QD1^^-QE1G@@@@@Q@@@@@@C-DC))D1JE))C([E))^@)^@)^@)^@)KG@@@@CDOC*)PL )@@G@@CLT^[NC(GC0)^@)^@)^@)^@)KO@@@@CDOC*)E9DE-C^[JE-CC(MES)^@)^@)^-IF[O^@)^@)PM )@@G@@#C@@@@KQ@@@@DTID9R^[RC(GD))^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@@R@@@@@@D1J^@)PN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)KG@@@@FD ES)^@)^@)^@)^@)^@)^@)^@)^@)^-QD1^^-QE1GPO )@@G@@@@@@@SKG@@@@ETDD1BD- ^@)^@)^@)^@)^@)^@)^@)KO@@@@D([ELMDD C))^@)^@)^@)^@)PP )@@G@@^@)^@)KQ@@@@ET E[[ELOC))^@)^@)^@)^@)^@)^@)KW@@@@C-DE1JEL#C(^^@)^@)^@)^@)PQ )@@G@@^@)^@)KX@@@@E9DC-JE9 C))^@)^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@@X@@@@@@D1JD1 PR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)KG@@@@ETPE[ ELACTG^@)^@)^@)^@)^@)^@)KO@@@@C(SE- PS )@@G@@D1^C(^^@)^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@@Y@@@@@@D1J^@)^@)^@)^@)^@)^@)^@)PT )@@G@@^@)^@)KG@@@@FD ES)^@)^@)^@)^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@@Z@@@@@@D1J^@)PU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)KG@@@@FD ES)^@)^@)^@)^@)^@)^@)^@)^@)^-QD1^^-QE1GPV )@@G@@@@@@@-KG@@@@E[[FDHC(IE))DDI^[FDDIC))^@)^@)KO@@@@C9DC1O^[JEK)C1MC( D-JCD^PW )@@G@@^@)^@)KQ@@@@CLJEL^C(MD-I^@)^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@@+@@@@@@D1JE))PX )@@G@@C-JD1 ^@)^@)^@)^@)^@)^@)KG@@@@C-JD1 ^[]FC)ET D-A^@)^@)^@)^@)KO@@@@C-JD1 PY )@@G@@^[RDDOD@)ETJD(JD1 ^@)^@)^-QD1^^-QE1G@@@@@<@@@@@@D1JE))C-JD1 ^@)^@)^@)^@)PZ )@@G@@^@)^@)KG@@@@C-JD1 ^[]FC)ET D-A^@)^@)^@)^@)KO@@@@C-JD1 ^[RDDOD@)ETJD(JD1 QA )@@G@@^@)^@)^-QD1^^-QE1G@@@@@=@@@@@@D1JE))C-JD1 ^@)^@)^@)^@)^@)^@)KG@@@@C-JD1 QB )@@G@@^[]FC)ET D-A^@)^@)^@)^@)KO@@@@C-JD1 ^[RDDOD@)ETJD(JD1 ^@)^@)^-QD1^^-QE1GQC )@@G@@@@@@@>@@@@@@D1JE))C-JD1 ^@)^@)^@)^@)^@)^@)^-IF[O^@)^@)#C@@@@KG@@@@C-JD1 QD )@@G@@^[]FC)ET D-A^@)^@)^@)^@)KO@@@@C-JD1 ^[RDDOD@)ETJD(JD1 ^@)^@)^-QD1^^-QE1GQE )@@G@@@@@@@&@@@@@@D1JE))C-JD1 ^@)^@)^@)^@)^@)^@)KG@@@@C-JD1 ^[]FC)ET D-A^@)^@)QF )@@G@@^@)^@)KO@@@@C-JD1 ^[RDDOD@)ETJD(JD1 ^@)^@)^-QD1^^-QE1G@@@@@$@@@@@@D1JE))QG )@@G@@C-JD1 ^@)^@)^@)^@)^@)^@)KG@@@@C-JD1 ^[]FC)ET D-A^@)^@)^@)^@)KO@@@@C-JD1 QH )@@G@@^[RDDOD@)ETJD(JD1 ^@)^@)^-QD1^^-QE1G@@@@@*@@@@@@D1JE))C-JD1 ^@)^@)^@)^@)QI )@@G@@^@)^@)KG@@@@C-JD1 ^[]FC)ET D-A^@)^@)^@)^@)KO@@@@C-JD1 ^[RDDOD@)ETJD(JD1 QJ )@@G@@^@)^@)^-QD1^^-QE1G@@@@@(@@@@@@D1JE))C-JD1 ^@)^@)^@)^@)^@)^@)KG@@@@C-JD1 QK )@@G@@^[]FC)ET D-A^@)^@)^@)^@)KO@@@@C-JD1 ^[RDDOD@)ETJD(JD1 ^@)^@)^-QD1^^-QE1GQL )@@G@@@@@@@%@@@@@@D1JE))C-JD1 ^@)^@)^@)^@)^@)^@)KG@@@@C-JD1 ^[]FC)ET D-A^@)^@)QM )@@G@@^@)^@)KO@@@@C-JD1 ^[RDDOD@)ETJD(JD1 ^@)^@)^-QD1^^-QE1G@@@@@:@@@@@@D1JE))QN )@@G@@C-JD1 ^@)^@)^@)^@)^@)^@)KG@@@@C-JD1 ^[]FC)ET D-A^@)^@)^@)^@)KO@@@@C-JD1 QO )@@G@@^[RDDOD@)ETJD(JD1 ^@)^@)^-QD1^^-QE1G@@@@@?@@@@@@D1JE))C-JD1 ^@)^@)^@)^@)QP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@]@@@QQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@I@@@@@@@@@@@@@@@@@@@@@@@@QR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@^@@@@@@@@@@@@@@@@@@@@@@@@QT )@@G@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@@@@@@@@@@@@@@QV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QW )@@G@@@@@@@@@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QX )@@G@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@QY )@@G@@@@@@@@@@@@@@@@@@@E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RA )@@G@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^@@IMINUS2 @@+@@@@@@@@@RB )@@G@@MI2GET @@+@@@@@@@@@MI2SET @@+@@@@@@@@@RANDEM @@<@@@@@@@@@RC )@@G@@TANDEM @@=@@@@@@@@@TWAIT @@>@@@@@@@@@GETERR @@>@@@@@@@@@RD )@@G@@GETKNT @@>@@@@@@@@@GETAFC @@>@@@@@@@@@GETIOF @@>@@@@@@@@@RE )@@G@@GETADR @@>@@@@@@@@@TOFF @@>@@@@@@@@@GRAPH @@&@@@@@@@@@RF )@@G@@LOOKEQ @@$@@@@@@@@@MENDCM @@[@@@@@@@^ZCTABL2P @C@@@@@@@@@QRG )@@G@@IVTABL @@[@@@@@@@^.OFFP @C@@@@@@@@[KIVTABLL @C@@@@@@@@@\RH )@@G@@G*,^[IG(8I))^[-IL>^@)I-*G*)^@$G0$^@) [&HD,G)(^@)*[@@@@*SDFF*@^@@@@ RI )@@G@@ AXR$ . @A@@@@ EDPC . GET DEFS. @C@@@@ RJ )@@G@@ . SDFI/O BUFFER ALLOCATION IN D BANK. @]@@@@ . @^@@@@$(0) RK )@@G@@ . D BANK. @B@@_@HHCHK* + 0407160512351 . @A@@@@RL )@@G@@CURDBL* + ENDDB . END OF D BANK. @^@@@@IN1* RES IBL @^@@@@RM )@@G@@IN2* RES IBL @^@@@@OUT1* RES OBL @^@@@@OUT2* RERN )@@G@@S OBL @G@@@@ENDDB* EQU $ . MUST BE LAST ARO )@@G@@LLOCATION IN $(0).@G@@@@ RES NBBIAS+512*NBLKS . PADDING RP )@@G@@TO AVOID MCORE FIRST. @^@@@@ END . ___D))@M@@@@C(IC-^RQ )@@G@@CK%^@)^@)C(LE*)^@)^@)^@)^))^@)^@)^@)^@)^@)^@)^@)^@) 0)D(PETO^[]C*)D-[ETORR )@@G@@)@@@KJA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@I]RS )@@G@@)90(N(AA@@@@@@@@@@/@KC >/,0C^]9*KCHZR#@CIG'=@@@I^#0CD](C[@@ /K@C^%RCL@@ RT )@@G@@/K@C^?/K@CBOR#@CLB'=@@@J@@^@@[@@ @@A@@L@@B@@!@@@@@@@M]EDIN EDOUT RU )@@G@@ OUTBL AREA AREAM1 AREA2 HHCHK @@@@@@RV )@@G@@@@@@@@CURDBL @@@@@@@@@@@[IN1 @@@@@@@@@@@]IN2 @@@@@@RW )@@G@@@@@@#+OUT1 @@@@@@@@@@B]OUT2 @@@@@@@@@@E+ENDDB @@@@@@RX )@@G@@@@@@I]^@)^[0H)1^@)@ @@@@^@)^@)^@)^@1A*)^@)^@)^[&I-,^@)@ @@@@^@)^@)^@)^@1RY )@@G@@*[S@@@*SDFF*@C@@@@ DEF . DEFS FOR INIT AND EDQC$. @G@@@@RZ )@@G@@MCFSIZ EQU 1800 . # LINES AT WHICH MCORE$ DONE. SA )@@G@@@ @@@@P FORM 12,6,18 @ @@@@F FORM 6,6,6,18 SB )@@G@@@^@@@@RPT EQU R1 @E@@@@OLCT EQU A11 SC )@@G@@ . INPUT LINE COUNT. @D@@@@LCT EQU A12 . LISD )@@G@@NE COUNT @E@@@@RC EQU A15 . REQUESTED CYCLSE )@@G@@E. @E@@@@IBL EQU 224 . INPUT BUFFER SIZE. SF )@@G@@@C@@@@OBL EQU 224 . OUTPUT. @D@@@@OBLS EQSG )@@G@@U OBL//28 . IN SECTORS. @B@@@@IBLS EQU IBL/SH )@@G@@/28 . @F@@@@CLRCR EQU 1 . 1= CLEARSI )@@G@@ CORE ON MCORE$. @F@@@@MACBS EQU 02000 . DO EXP ISJ )@@G@@N INCR OF 2K. @G@@@@NBLKS EQU 0 . INITIALLSK )@@G@@Y ALLOCATED EXP BLOCKS. @F@@@@NBBIAS EQU 256 . INSL )@@G@@ITIAL BIAS IN EDBM. @D@@@@BSIZE EQU 1792 . BISM )@@G@@G BUFFERS. @D@@@@BSEC EQU BSIZE//28 . IN SECTORS. SN )@@G@@@F@@@@ICW EQU EDIN+10 . INPUT IMAGE CONTROL WORD. SO )@@G@@@E@@@@OCW EQU EDOUT+10 . OUTPUT CONTROL WORD.@D@@@@SP )@@G@@CL EQUF OUTBL+8,,S2 . CYCLE LIMIT @D@@@@LC EQSQ )@@G@@UF OUTBL+8,,S4 . LATEST CYCLE @E@@@@CC EQUF OUTBSR )@@G@@L+8,,S6 . CURRENT NO OF CYCLES@D@@@@IL EQUF EDIN+10,,SSS )@@G@@2 . IMAGE LENGTH. @E@@@@DC1 EQUF EDIN+10,,S3 . DEST )@@G@@LETED THIS UPDATE @D@@@@DC EQUF EDIN+10,,S4 . CYCLE DESU )@@G@@LETED @E@@@@AC1 EQUF EDIN+10,,S5 . ADDED THIS UPDATE SV )@@G@@@D@@@@AC EQUF EDIN+10,,S6 . ACTUAL CYCLE @E@@@@CLASS SW )@@G@@ EQUF AREA,,S1 . CLASS OF CHARACTER. @F@@@@EDIT80 EQSX )@@G@@UF AREA,,Q2 . EDIT COMMAND CHAR VECTOR. @D@@@@EDIT81 EQSY )@@G@@UF AREAM1,,Q2 . EDIT80-1. @G@@@@IMAG80 EQUF AREASZ )@@G@@,,Q3 . CURRENT TEXT IMAGE CHAR VECTOR. @D@@@@IMAG81 EQUF TA )@@G@@ AREAM1,,Q3 . IMAG80-1. @E@@@@TAB80 EQUF AREA,,Q4 TB )@@G@@ . TAB SETTING VECTOR. @G@@@@LFTBUF EQUF AREA2,,Q1 TC )@@G@@ . SAVE TEXT OF L AND F COMMANDS. @E@@@@CHTBUF EQUF AREA2,,Q2 TD )@@G@@ . SAVE TEXT OF CHANGE.@E@@@@MCAR80 EQUF AREA2,,Q3 TE )@@G@@ . FOR MACRO ARGS. @G@@@@CHAN80 EQUF AREA2,,Q4 . CHTF )@@G@@ANGE COMMAND CHAR VECTOR. @D@@@@MACON EQU 1 TG )@@G@@ . SET MACROS ON.@E@@@@MCBIAS EQU 0120 . BIAS FORTH )@@G@@ MCORE$. @F@@@@MCNTMX EQUF 200,,U . MAX NUMBER OF TI )@@G@@NAMES*2. @E@@@@MCLVMX EQUF 30,,U . MAX MACRO NESTTJ )@@G@@ING*2.@E@@@@MIL EQUF 0,,S3 . MACRO IMAGE LENGTH. TK )@@G@@@E@@@@MCF EQUF 0,,S2 . LAST IMAGE FLAG. @E@@@@TL )@@G@@MSK EQUF 0,,Q1 . IMAGE SKIP COUNTER. @E@@@@MRC TM )@@G@@ EQUF 0,,H2 . REPEAT COUNTER SAVE.@B@@@@ . TN )@@G@@EQUF'S FOR VARIABLE HANDLING. @E@@@@VMODE EQUF 0,,S1 TO )@@G@@ . VARIABLE MODE FIELD.@E@@@@VSHP EQUF 0,,S2 . VATP )@@G@@RIABLE SHAPE. @E@@@@VLK EQUF 0,,S3 . VARIABLETQ )@@G@@ LOCK FLAG. @E@@@@VADDR EQUF 0,,H2 . VARIABLE ADDRETR )@@G@@SS. @E@@@@VL EQUF 0,,S1 . VAR ENTRY LENGTH. TS )@@G@@@E@@@@P1SYS EQU 1 . 1 = ASSEMBLE FOR P1.@G@@@@TT )@@G@@SYS32 EQU 0 . 1 -> FOR USE UNDER EXEC L32. TU )@@G@@@F@@@@STRUN EQU 61 . USE 61 FOR SUBTYPE RUN. TV )@@G@@@E@@@@STADD EQU 62 . AND 62 FOR ADD. @F@@@@TW )@@G@@NDDEF EQU 1 . DEFAULT FOR NEW DATE (ND).@I@@@@TX )@@G@@ . 0 - USE OLD DATE, 1 - USE CURRETY )@@G@@NT DATE. @H@@@@NTFILE EQU 12 . # OF TRACKS LETZ )@@G@@FT WHEN WARNING MSG. @H@@@@EXMAX EQU 25 . MAUA )@@G@@X INDIRECTING OF 'EX' COMMANDS. @[@@@@. @E@@@@. THE FOLLUB )@@G@@OWING EQU'S AND EQUF'S DEFINE THE LAYOUT @E@@@@. OF THE COMMON UC )@@G@@BANK DATA AREA IN THE USER'S DBANK. @F@@@@. REFERENCES TO USER DUD )@@G@@BANK ARE REGISTER BASED SO THAT THEY@C@@@@. MAY BE RELOCATED AS UE )@@G@@THE USER CHOOSES. @G@@@@. CURRENTLY, ALL NAMED ITEMS HAVE BEEN BUF )@@G@@ASED ON REGISTER X4. @G@@@@. HOWEVER, ARRAYS HAVE NOT YET BEEUG )@@G@@N BASED. THESE ARRAYS ARE @G@@@@. STILL ALLOCATED IN THE DBAUH )@@G@@NK IN THE ELEMENT EDDBK AT FIXED @G@@@@. ADDRESSES. SOON, THEUI )@@G@@SE ARRAYS WILL BE MOVED TO A SEPARATE @F@@@@. ELEMENT AND EVUJ )@@G@@ENTUALLY THEY WILL ALSO BE REGISTER BASED.@G@@@@. ON ENTRY TO EDUK )@@G@@QC$ THE REGISTER X1 SHOULD POINT TO A REGISTER @C@@@@. BASE TABUL )@@G@@LE OF THE FOLLOWING FORMAT: @[@@@@. @A@@@@. + BASEUM )@@G@@ OF X1 AREA.@A@@@@. + BASE OF X2 AREA.@A@@@@. + UN )@@G@@ BASE OF X3 AREA.@A@@@@. + BASE OF X4 AREA.@D@@@@UO )@@G@@. + 0 . FOR X1 SAVE. @[@@@@. @C@@@@UP )@@G@@. THE FOLLOWING IS THE X4 BASED AREA: @B@@@@AOPT EQUF UQ )@@G@@ 0,X4,S1 . @B@@@@BOPT EQUF 0,X4,S2 . UR )@@G@@@B@@@@COPT EQUF 0,X4,S3 . @B@@@@DOPT EQUF US )@@G@@ 0,X4,S4 . @B@@@@EOPT EQUF 0,X4,S5 . UT )@@G@@@B@@@@FOPT EQUF 0,X4,S6 . @B@@@@GOPT EQUF UU )@@G@@ 1,X4,S1 . @B@@@@HOPT EQUF 1,X4,S2 . UV )@@G@@@B@@@@IOPT EQUF 1,X4,S3 . @B@@@@JOPT EQUF UW )@@G@@ 1,X4,S4 . @B@@@@KOPT EQUF 1,X4,S5 . UX )@@G@@@B@@@@LOPT EQUF 1,X4,S6 . @B@@@@MOPT EQUF UY )@@G@@ 2,X4,S1 . @B@@@@NOPT EQUF 2,X4,S2 . UZ )@@G@@@B@@@@OOPT EQUF 2,X4,S3 . @B@@@@POPT EQUF VA )@@G@@ 2,X4,S4 . @B@@@@QOPT EQUF 2,X4,S5 . VB )@@G@@@B@@@@ROPT EQUF 2,X4,S6 . @B@@@@SOPT EQUF VC )@@G@@ 3,X4,S1 . @B@@@@TOPT EQUF 3,X4,S2 . VD )@@G@@@B@@@@UOPT EQUF 3,X4,S3 . @B@@@@VOPT EQUF VE )@@G@@ 3,X4,S4 . @B@@@@WOPT EQUF 3,X4,S5 . VF )@@G@@@B@@@@XOPT EQUF 3,X4,S6 . @B@@@@YOPT EQUF VG )@@G@@ 4,X4,S1 . @B@@@@ZOPT EQUF 4,X4,S2 . VH )@@G@@@D@@@@. BELOW IS THE MISCELLANEOUS CONSTANT POOL: @C@@@@CBASE VI )@@G@@ EQU 5 . OFFSET. @D@@@@ . MACRO AND VAVJ )@@G@@RIABLE HANDLER VARIABLES: @F@@@@MCNTBL EQUF CBASE,X4 VK )@@G@@ . # NAMES, ADDR OF NAMELIST.@G@@@@MCTFRE EQUF CBASE+1,X4 VL )@@G@@ . 0, ADDR OF FIRST FREESPACE. @F@@@@MCARGL EQUF CBASE+2,X4VM )@@G@@ . START, LENGTH FOR MCAR80. @F@@@@NEWCM EQUF CBASE+3,X4VN )@@G@@ . SET TO INDICATE NEW INPUT.@G@@@@MCNTMP EQUF CBASE+4,X4VO )@@G@@ . TEMP MACRO NAME SAVE (2 WORDS). @G@@@@MCNTM2 EQUF CBASVP )@@G@@E+6,X4 . 0, POINTER TO ITEM NAME STACK. @F@@@@MCNLV EQUF VQ )@@G@@ CBASE+7,X4 . 0, MACRO NESTING LEVEL. @F@@@@MSTEP EQUF VR )@@G@@ CBASE+8,X4 . SKIP COUNTER WITHIN MACRO.@F@@@@CMAC EQUF VS )@@G@@ CBASE+9,X4 . CONTINUATION PTR: 0, ADDR.@F@@@@MRPTK EQUF VT )@@G@@ CBASE+10,X4,H1 . MACRO REPEAT COUNTER. @E@@@@MRPTKV EQUF VU )@@G@@ CBASE+10,X4,H2 . SAVE MRPT FOR VAR. @I@@@@CMFM EQUF CBASVV )@@G@@E+11,X4 . =LAST CMD FROM MACRO EXP WAS MACRO REF. @F@@@@MIMD VW )@@G@@ EQUF CBASE+12,X4,Q1 . FLAG FOR $*$ (NOT IMPL). @E@@@@MDECF VX )@@G@@ EQUF CBASE+12,X4,Q2 . FLAG FOR LEVEL DECR.@F@@@@NARGC EQVY )@@G@@UF CBASE+12,X4,Q3 . # OF ARGS ON MACRO CALL. @F@@@@MLST EQVZ )@@G@@UF CBASE+13,X4 . = MACRO LISTING MODE. @D@@@@MLCT EQWA )@@G@@UF CBASE+14,X4 . MACRO LINE #. @D@@@@CURARG EQUF CBASWB )@@G@@E+15,X4,Q1 . CURRENT ARG #.@F@@@@MRPTE EQUF CBASE+15,X4,Q2 WC )@@G@@ . FLAG FOR RP STOP AT EOF. @E@@@@VDEF EQUF CBASE+16,X4 WD )@@G@@ . = VAR DEF MODE ON. @E@@@@NAMS EQUF CBASE+17,X4 . SAWE )@@G@@VE OF VAR NAME. @F@@@@NAMAD EQUF CBASE+18,X4 . SAVE OF WF )@@G@@VAR NAME ADDR. @F@@@@VARSV EQUF CBASE+19,X4 . VAR NAMEWG )@@G@@ SAVE.(2 WORDS). @ @@@@ . GENERAL VARIABLES:@H@@@@SUBRET EQWH )@@G@@UF CBASE+21,X4 . SET WITH RETURN IF RETURN WANTED. @G@@@@WI )@@G@@CINT EQUF CBAS^@)^@)^@)^@)^@)^@)KW@@@@ETOELJD1GFC)C-DET[C9MC( WJ )@@G@@^@)^@)^-QD1^^-QE1G@@@@#ZKG@@@@ETOELJD1BD-T^[[C9MC( ^@)^@)^@)KO@@@@CDBEL WK )@@G@@C*)^@)^@)^@)^@)^@)^@)^@)KQ@@@@C-DET[C9MC( ^@)^@)^@)^@)^@)^@)KW@@@@ETOELJWL )@@G@@D1GFC)C-DET[C9MC( ^@)^@)^-QD1^^-QE1G@@@@#)KG@@@@ETOELJD1BD-T^[[C9MC( ^@)WM )@@G@@^@)^@)KO@@@@CDBEL C*)^@)^@)^@)^@)^@)^@)^@)KQ@@@@C-DET[C9MC( ^@)^@)^@)^@)WN )@@G@@^@)^@)KW@@@@ETOELJD1GFC)C-DET[C9MC( ^@)^@)^-QD1^^-IF[O^-IF[O^-IF[OD9]^@)WO )@@G@@^@)^@)^-IF[O^@)^@)#C@@@@^-QE1G@@@@#-KG@@@@ETOELJD1BD-T^[[C9MC( ^@)^@)^@)WP )@@G@@KO@@@@CDBEL C*)^@)^@)^@)^@)^@)^@)^@)KQ@@@@C-DET[C9MC( ^@)^@)^@)^@)^@)^@)WQ )@@G@@KW@@@@ETOELJD1GFC)C-DET[C9MC( ^@)^@)^-QD1^^-QE1G@@@@#+KG@@@@ETOELJD1BD-TWR )@@G@@^[[C9MC( ^@)^@)^@)KO@@@@CDBEL C*)^@)^@)^@)^@)^@)^@)^@)KQ@@@@C-DET[C9MC( WS )@@G@@^@)^@)^@)^@)^@)^@)KW@@@@ETOELJD1GFC)C-DET[C9MC( ^@)^@)^-QD1^^-QE1G@@@@#KG@@@@ETOELJD1BD-T^[[C9MC( ^@)^@)^@)WY )@@G@@KO@@@@CDBEL C*)^@)^@)^@)^@)^@)^@)^@)KQ@@@@C-DET[C9MC( ^@)^@)^@)^@)^@)^@)WZ )@@G@@KW@@@@ETOELJD1GFC)C-DET[C9MC( ^@)^@)^-QD1^^-QE1G@@@@#&KG@@@@ETOELJD1BD-TXA )@@G@@^[[C9MC( ^@)^@)^@)KO@@@@CDBEL C*)^@)^@)^@)^@)^@)^@)^@)KQ@@@@C-DET[C9MC( XB )@@G@@^@)^@)^@)^@)^@)^@)KW@@@@ETOELJD1GFC)C-DET[C9MC( ^@)^@)^-QD1^^-QE1G@@@@#$XC )@@G@@KG@@@@ETOELJD1BD-T^[[C9MC( ^@)^@)^@)KO@@@@CDBEL C*)^@)^@)^@)^@)^@)^@)^@)XD )@@G@@KQ@@@@C-DET[C9MC( ^@)^@)^@)^@)^@)^@)KW@@@@ETOELJD1GFC)C-DET[C9MC( ^@)^@)XE )@@G@@^-QD1^^-QE1G@@@@#*KG@@@@D1JE))CDO^[[D-G^@)^@)^@)^@)^@)^-IF[O^-IF[O^@)^@)XF )@@G@@#C@@@@KO@@@@E1 ELT^[GDDOE-GC*)^@)^@)^@)^@)KQ@@@@CDQC(MCDBC*)^@)^@)^@)^@)XG )@@G@@^@)^@)KW@@@@CDGD9O^@)^@)^@)^@)^@)^@)^@)^@)KX@@@@C9MC([E))C- CDG^@)^@)^@)XH )@@G@@^@)^@)^-QD1^^-QE1G@@@@#(KG@@@@D1JE))CDO^[[D-G^@)^@)^@)^@)^@)KO@@@@E1 ELTXI )@@G@@^[GDDOE-GC*)^@)^@)^@)^@)KQ@@@@CDQC(MCDBC*)^@)^@)^@)^@)^@)^@)KW@@@@CDGD9OXJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)KX@@@@C9MC([E))C- CDG^@)^@)^@)^@)^@)^-QD1^^-QE1GXK )@@G@@@@@@#%KG@@@@D1JE))CDO^[[D-G^@)^@)^@)^@)^@)KO@@@@E1 ELT^[GDDOE-GC*)^@)^@)XL )@@G@@^@)^@)KQ@@@@CDQC(MCDBC*)^@)^@)^@)^@)^@)^@)KW@@@@CDGD9O^@)^@)^@)^@)^@)^@)XM )@@G@@^@)^@)KX@@@@C9MC([E))C- CDG^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@#:KG@@@@D1JE))XN )@@G@@CDO^[[D-G^@)^@)^@)^@)^@)KO@@@@E1 ELT^[GDDOE-GC*)^@)^@)^@)^@)KQ@@@@CDQC(MXO )@@G@@CDBC*)^@)^@)^@)^@)^@)^@)KW@@@@CDGD9O^@)^@)^@)^@)^@)^@)^@)^@)KX@@@@C9MC([XP )@@G@@E))C- CDG^@)^@)^@)^@)^@)^-QD1^^-QE1G@@@@#?KG@@@@D1JE))CDO^[[D-G^@)^@)^@)XQ )@@G@@^@)^@)KO@@@@E1 ELT^[GDDOE-GC*)^@)^@)^@)^@)KQ@@@@CDQC(MCDBC*)^@)^@)^@)^@)XR )@@G@@^@)^@)KW@@@@CDGD9O^@)^@)^@)^@)^@)^@)^@)^@)KX@@@@C9MC([E))C- CDG^@)^@)^@)XS )@@G@@^@)^@)^-QD1^^-QE1G@@@@#!KG@@@@D1JE))CDO^[[D-G^@)^@)^@)^@)^@)KO@@@@E1 ELTXT )@@G@@^[GDDOE-GC*)^@)^@)^@)^@)KQ@@@@CDQC(MCDBC*)^@)^@)^@)^@)^@)^@)KW@@@@CDGD9OXU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)KX@@@@C9MC([E))C- CDG^@)^@)^@)^@)^@)^-QD1^^-QE1GXV )@@G@@@@@@#,KG@@@@D1JE))CDO^[[D-G^@)^@)^@)^@)^@)^-IF[O^@)^@)@;@@@@KO@@@@E1 ELTXW )@@G@@^[GDDOE-GC*)^@)^@)^@)^@)KQ@@@@CDQC(MCDBC*)^@)^@)^@)^@)^@)^@)KW@@@@CDGD9OXX )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)KX@@@@C9MC([E))C- CDG^@)^@)^@)^@)^@)^-QD1^^-QE1GXY )@@G@@@@@@#\KG@@@@D1JE))CDO^[[D-G^@)^@)^@)^@)^@)KO@@@@E1 ELT^[GDDOE-GC*)^@)^@)XZ )@@G@@^@)^@)KQ@@@@CDQC(MCDBC*)^@)^@)^@)^@)^@)^@)KW@@@@CDGD9O^@)^@)^@)^@)^@)^@)YA )@@G@@^@)^@)KX@@@@C9MC([E))C- CDG^@)^@)^@)^@)^@)^-QD1^^-IF[O@ @@@@^-JCLNE1 ELTYB )@@G@@^[GDDOE-GC*)^@)^@)^H@@@@KG@@@@LAM@@@KO@@@@@@@@@@KG@@@@M$*L"@M$*L"@M$*L"@YC )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@YD )@@G@@@@@@@@KG@@@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@K?K@@@KO@@@@M$*L"@YE )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@YF )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@KO@@@@M$*L"@M$*L"@M$*L"@@@@@@@YG )@@G@@M$*L"@@@@@@@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@YH )@@G@@M$*L"@M$*L"@M$*L"@K_)@@@@@@@@@@@@@@@K_S@@@KO@@@@@@@@@@@@@@@@@@@@@@@@@@@@YI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@KO@@@@KG@@@@KQ@@@@KQ@@@@KG@@@@M$*L"@K"*@@@@@@@@@YJ )@@G@@M$*L"@K$@@@@KG@@@@@@@@@@M$*L"@@@@@@@M$*L"@K$@@@@KG@@@@@@@@@@@@@@@@KG@@@@YK )@@G@@KG@@@@KG@@@@@@@@@@@@@@@@@@@@@@LG^@@@@@@@@@LJO@@@@@@@@@@@@@@@@@@@@@KG@@@@YL )@@G@@@@@@@@M$*L"@@@@@@@M$*L"@KG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KG@@@@@@@@@@YN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M$*L"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KQ@@@@YP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KQ@@@@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@YQ )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@M$*L"@M$*L"@YR )@@G@@M$*L"@M$*L"@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@YS )@@G@@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@M$*L"@YT )@@G@@M$*L"@M$*L"@M$*L"@@@@@@@KW@@@@KQ@@@@KW@@@@KG@@@@KO@@@@KG@@@@KG@@@@KW@@@@YU )@@G@@KG@@@@KG@@@@KW@@@@KW@@@@KG@@@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@YV )@@G@@M$*L"@KY@@@@K=)@@@K?K@@@K=@@@@K&@@@@K?)@@@K$)@@@@@@@@@@@@@@@KQ@@@@K=@@@@YW )@@G@@K?@@@@K=)@@@@@@@@@LPY@@@@@@@@@@@@@@@K"DPPPKI%%%%@@@@@@@@@@@@@@@@@@@@@@@@YX )@@G@@KI%%%%K.-PPP@@@@@@K>5PPP@@@@@@@@@@@@K>5PPPM$*L"@M$*L"@^H@@@@KG@@@@LAO@@@YY )@@G@@KO@@@@@@@@@@KO@@@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@YZ )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@KG@@@@M$*L"@M$*L"@M$*L"@M$*L"@ZA )@@G@@M$*L"@M$*L"@M$*L"@K>@@@@KO@@@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@ZB )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@ZC )@@G@@M$*L"@KO@@@@M$*L"@M$*L"@M$*L"@KG@@@@@@@@@@@@@@@@@@@@@@M$*L"@M$*L"@M$*L"@ZD )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@K_W@@@@@@@@@@@@@@@ZE )@@G@@K_^@@@KY@@@@@@@@@@@@@@@@@@@@@@@@@@@@KQ@@@@KG@@@@@@@@@@@@@@@@KQ@@@@KG@@@@ZF )@@G@@KQ@@@@KQ@@@@KQ@@@@M$*L"@KZ@@@@@@@@@@M$*L"@K_@@@@KG@@@@K50@@@KG@@@@@@@@@@ZG )@@G@@M$*L"@K/C@@@KG@@@@@@@@@@@@@@@@KO@@@@KX@@@@KG@@@@@@@@@@@@@@@@@@@@@@K"0@@@ZH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KG@@@@M$*L"@M$*L"@M$*L"@M$*L"@KG@@@@@@@@@@ZI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@KG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZL )@@G@@KG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KO@@@@ZM )@@G@@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@M$*L"@ZN )@@G@@M$*L"@M$*L"@M$*L"@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@M$*L"@M$*L"@M$*L"@ZO )@@G@@M$*L"@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@ZP )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@KX@@@@KX@@@@ZQ )@@G@@KX@@@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@ZR )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@ZS )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@K/0@@@@@@@@@@@@@@@@@@@@@ZT )@@G@@K.;5J&KX]?AX@@@@@@@@@@@@KP]?AX@@@@@@KP]?AXKX8YB-@@@@@@K.8YB-K45J&F@@@@@@ZU )@@G@@K6;?*7M$*L"@M$*L"@^H@@@@KG@@@@LAS@@@KO@@@@@@@@@@KG@@@@M$*L"@M$*L"@M$*L"@ZV )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@ZW )@@G@@@@@@@@KG@@@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@KX@@@@KO@@@@M$*L"@ZX )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@ZY )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@KO@@@@M$*L"@M$*L"@M$*L"@K"^@@@ZZ )@@G@@KG@@@@@@@@@@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@AA )@@G@@M$*L"@M$*L"@M$*L"@K_=@@@K4*@@@@@@@@@K7)@@@K,@@@@KY@@@@KG@@@@@@@@@@@@@@@@AB )@@G@@K?)@@@KO@@@@@@@@@@@@@@@@@@@@@@@@@@@@KG@@@@KQ@@@@KG@@@@M$*L"@K/^@@@@@@@@@AC )@@G@@M$*L"@K7@@@@KG@@@@@@@@@@M$*L"@@@@@@@M$*L"@K7@@@@KG@@@@@@@@@@@@@@@@KG@@@@AD )@@G@@KG@@@@KG@@@@KW@@@@@@@@@@@@@@@@LW0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KG@@@@AE )@@G@@@@@@@@M$*L"@KG@@@@LG?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KO@@@@KG@@@@AF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KG@@@@@@@@@@@@@@@@AG )@@G@@KG@@@@@@@@@@KG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KG@@@@AH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AI )@@G@@KG@@@@@@@@@@@@@@@@@@@@@@@@@@@@KQ@@@@KX@@@@@@@@@@@@@@@@KX@@@@@@@@@@KG@@@@AJ )@@G@@@@@@@@@@@@@@KG@@@@@@@@@@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@M$*L"@M$*L"@AK )@@G@@M$*L"@M$*L"@KO@@@@@@@@@@@@@@@@KO@@@@@@@@@@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@AL )@@G@@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@M$*L"@AM )@@G@@M$*L"@M$*L"@M$*L"@@@@@@@KG@@@@KG@@@@KG@@@@KG@@@@KW@@@@KG@@@@KG@@@@KW@@@@AN )@@G@@KW@@@@KG@@@@KW@@@@KW@@@@KG@@@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@AO )@@G@@M$*L"@KO@@@@K&@@@@@@@@@@KG@@@@@@@@@@KX@@@@KO@@@@@@@@@@@@@@@@@@@@@@@@@@@@AP )@@G@@@@@@@@@@@@@@LR4@@@@@@@@@K\(KTS@@@@@@K6G?V)K?.Q\&KW.Q\&@@@@@@K$W]BT@@@@@@AQ )@@G@@@@@@@@K6!0CX@@@@@@K52J7+@@@@@@@@@@@@K52J7+M$*L"@M$*L"@^H@@@@KG@@@@LAW@@@AR )@@G@@KO@@@@@@@@@@KO@@@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@AS )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@KG@@@@M$*L"@M$*L"@M$*L"@M$*L"@AT )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@AU )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@AV )@@G@@M$*L"@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@AW )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@K_=@@@@@@@@@@@@@@@AX )@@G@@K")@@@K?K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@K?K@@@KQ@@@@AY )@@G@@M$*L"@KQ@@@@KQ@@@@M$*L"@K7*@@@@@@@@@M$*L"@K7)@@@KQ@@@@@@@@@@M$*L"@@@@@@@AZ )@@G@@M$*L"@K7)@@@KQ@@@@KG@@@@@@@@@@@@@@@@KG@@@@KG@@@@M$*L"@M$*L"@M$*L"@M$*L"@BA )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@KG@@@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@@@@@@@BB )@@G@@@@@@@@KG@@@@@@@@@@@@@@@@KO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BC )@@G@@@@@@@@KG@@@@@@@@@@KG@@@@@@@@@@@@@@@@KG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BD )@@G@@KG@@@@M$*L"@@@@@@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@BE )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@BF )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@BG )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@BH )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@BI )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@KX@@@@KX@@@@BJ )@@G@@KX@@@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@BK )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@BL )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@@@@@@@BM )@@G@@K.R3N=K$[>@@@@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@M$*L"@BT )@@G@@M$*L"@M$*L"@M$*L"@K_=@@@K68@@@@@@@@@KW@@@@K70@@@@@@@@@@@@@@@@@@@@@@@@@@@BU )@@G@@K70@@@KO@@@@@@@@@@@@@@@@@@@@@@@@@@@@KQ@@@@KG@@@@KO@@@@M$*L"@K_S@@@@@@@@@BV )@@G@@M$*L"@KQ@@@@KG@@@@@@@@@@M$*L"@@@@@@@M$*L"@KQ@@@@KG@@@@@@@@@@@@@@@@KG@@@@BW )@@G@@KG@@@@KG@@@@@@@@@@@@@@@@@@@@@@K6@@@@@@@@@@@@@@@@@@@@@@M$*L"@@@@@@@KG@@@@BX )@@G@@M$*L"@M$*L"@M$*L"@M$*L"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KO@@@@@@@@@@@@@@@@@@@@@@@@@@@@KY@@@@@@@@@@CB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M$*L"@M$*L"@M$*L"@@@@@@@@@@@@@@@@@@@@@@@@@CC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ED )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ER )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ES )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ET )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ID )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@II )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ME )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ML )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ND )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ON )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ST )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@US )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ED )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ER )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ES )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ET )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@*[@@@@*SDFF*@#@@@@ AXR$ @#@@@@HDGIMGEV )@@G@@ 'M,66, '@#@@@@ + 0 @^@@@@ RES 27 @[@@@@EW )@@G@@$(1) @D@@@@DEMAND* S A4,*0,X11 . 4 IF BY DEMAND @D@@@@EX )@@G@@ . 6 IF BY BATCH @D@@@@GLITCH L EY )@@G@@ A0,(EXIT,HDGIMG+1) . MAKE IT A @D@@@@ EZ )@@G@@ . PROCESSOR @ @@@@ ER READ$ @ @@@@FA )@@G@@ TEP A0,(1*/30)@^@@@@ J $-3 @D@@@@TIME FB )@@G@@ ER DATE$ . TIME AND DATE @ @@@@ SA FC )@@G@@ A0,*1,X11 @ @@@@ SA A1,*2,X11 @D@@@@MARJ L FD )@@G@@ A0,*3,X11 . ADJUST MARGINS @A@@@@ S A0,HDGIMG+FE )@@G@@1 @A@@@@ L A0,(2,HDGIMG) @ @@@@ ER FF )@@G@@ PRTCN$ @ @@@@ J 5,X11 @ @@@@MARGIN* L FG )@@G@@ A0,*0,X11 @A@@@@ S A0,HDGIMG+1 @A@@@@ L FH )@@G@@ A0,(2,HDGIMG) @ @@@@ ER PRTCN$ @ @@[@ FI )@@G@@ ER EXIT$ @#[@@@ END ___@@@@@@@@@@@@@@@@@@@@@FJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*[@@@@*SDFF*@C@@@@C FL )@@G@@SECTION 16 - RANDOM TITLES FOR DESIGNS @[@@@@ @^@@@@ SUBROUFM )@@G@@TINE TITLE @A@@@@ IMPLICIT INTEGER (A-W,Y,Z) @A@@@@ DIMENSFN )@@G@@ION ADJ(40), NOUN(40) @G@@@@ DATA (ADJ(J),J=1,40)/'PRETTY',' MISTFO )@@G@@Y','UNIVAC',' COLD',' PAPER',@G@@@@ *' NYU',' MISS','AT THE',' FP )@@G@@FLAT',' IN A',' WEIRD',' RAW', @G@@@@ *'RUSTIC',' DARK',' MFQ )@@G@@Y',' NEW',' ONLY',' EARLY','INDIAN', @G@@@@ *' CHEAP',' LOST',FR )@@G@@'SPRING',6HIT'S A,' GOOD','JUST A',' USUAL', @G@@@@ *'BROKEN',' FS )@@G@@TRUE','MOSTLY',' SWIFT',' SUPER',' YOUR','SQUARE', @G@@@# *' GLASFT )@@G@@S','SELDOM',' FREE','ORANGE','RUBBER','FUTURE','FAMOUS'/ @G@@@@ FU )@@G@@DATA (NOUN(J),J=1,40)/'SUBWAY','DESIGN','WINDOW','TURKEY','CIRCUS'@G@@@@FV )@@G@@ *,'WIRE ','SCENE ','BALL ','FOOT ','FOREST','IMAGE ','IDEA ', FW )@@G@@@G@@@@ *'LIGHTS','SHADOW','CHILD ','(?) ','MONTH ','BIRD ','LIFE FX )@@G@@ ', @G@@@@ *'MOVIE ','FACE ','PLACE ','HOME ','BARREL','PLANET',FY )@@G@@'BRANCH', @G@@@@ *'CENTER','ROBOT ','T.V. ','MATRIX','DEVICE','SOFZ )@@G@@UL ','DESERT', @G@@@@ *'TIME ','SCREEN','JUNGLE','PROTON','CAGE GA )@@G@@ ','SYSTEM','FISH '/ @A@[@@ LL = RANDEM(-1) * 39.0 + 1.0 @^@]@[GB )@@G@@ X = RANDEM(-1) @ @]@[ LL = X * 39.0 + 1.0 @A@[@@ GC )@@G@@MM = RANDEM(-1) * 39.0 + 1.0 @^@]@[ X = RANDEM(-1) @ @]@[ GD )@@G@@MM = X * 39.0 + 1.0 @^@@@] LL = MINUS2(-1) @^@@@] MM = MGE )@@G@@INUS2(-1) @ @@@] LL = MOD(LL,39) + 1 @ @@@] MM = MOD(MM,GF )@@G@@39) + 1 @B@#@@ WRITE (6,102) ADJ(LL), NOUN(MM) @A@@@# GG )@@G@@PRINT 102, ADJ(LL), NOUN(MM) @G@@@@ 102 FORMAT (/,1H0,58X,'...........GH )@@G@@....',/,1H ,58X,'.',13X,'.',/,1H ,58@G@@@@ 1X,'.',A6,1X,A6,'.',/,1H GI )@@G@@58X,'.',13X,'.',/,1H 58X,'...............'@]@@@@ 2) @]@@@@ GJ )@@G@@RETURN@]@@@@ END ___C- D** *1 C) K)AS9 00^@:^@1 00^@)@ @]@[^@)^@)GK )@@G@@^@)F@)B*)EL[D1^C(H @!AC(*[@@@@*SDFF*@C@@@@C MONTHLY AND YEARLY CALENGL )@@G@@DARS FROM TELETYPE@ @@@@ SUBROUTINE TTY ($,$) @E@]@@ DIMENSGM )@@G@@ION W(7), D(32), DK(3,31), V(7,3), U(3), ZZ(3) @D@#@] DIMENSION W(GN )@@G@@7), D(32), DK(3,31), V(7,3), ZZ(3) @A@@@# DIMENSION W(7), D(32), VGO )@@G@@(7,3) @#@@@@ INCLUDE COM @G@@@@ DATA D/' 1',' 2',' 3',' 4',' 5GP )@@G@@',' 6',' 7',' 8',' 9','10','11','12'@G@@@@ *,'13','14','15','16','17GQ )@@G@@','18','19','20','21','22','23','24','25',@B@@@@ *'26','27','28','29GR )@@G@@','30','31',' '/ @^@]@@ COMMON /CTY/NN @ @#@] COMMON /CTY/GS )@@G@@NN, U(3) @B@@@# COMMON /CTY/NN,U(3),DK(3,31),ZZ(3) @#@[@@ GT )@@G@@DATA NN/0/ @ @@@@ IF (MON .EQ. 0) GO TO 10@ @@@@ PRINT 1, KC(GU )@@G@@MO), LY @F@@@@ 1 FORMAT (///,1H ,5X,A6,I4,//,1H ,' S M T W T GV )@@G@@ F S') @A@@@@ IF (KD(1) .EQ. 1) GO TO 4 @^@@@@ B = KDGW )@@G@@(1) - 1 @]@@@@ E = 0 @^@@@@ DO 2 I = 1, B @#@@@@ GX )@@G@@E = E + 1 @#@@@@ 2 W(I) = D(32)@#@@@@ B = 7 - E @^@@@@ GY )@@G@@DO 3 I = 1,B @#@@@@ E = E + 1 @#@@@@ 3 W(E) = D(I) @#@@@@GZ )@@G@@ PRINT 8, W @#@@@@ B = B + 1 @#@@@@ GO TO 5 @]@@@@HA )@@G@@ 4 B = 1 @#@@@@ 5 E = B + 28 @^@@@@ DO 9 I = B,E,7 @^@@@@HB )@@G@@ DO 7 J = 0,6 @#@@@@ K = I + J @]@@@@ L = K @A@@@@HC )@@G@@ IF (K .GE. NEWMON) L = 32 @^@@@@ 7 W(J+1) = D(L) @#@@@@HD )@@G@@ PRINT 8, W @ @@@@ 8 FORMAT (1H ,7(A2,1X)) @A@@@@ IF (K HE )@@G@@.GE. NEWMON) GO TO 21 @#@@@@ 9 CONTINUE @#@@@@ GO TO 21 HF )@@G@@@#@@@@ 10 NN = NN + 1 @#@@@@ U(NN) = MO @^@@@@ ZZ(NN) = NEWHG )@@G@@MON @^@@@@ DO 11 I = 1,31 @^@@@@ 11 DK(NN,I) = KD(I) @A@@@@HH )@@G@@ IF (NN .LT. 3) MO = MO + 1 @ @@@@ IF (NN .LT. 3) RETURN 2 HI )@@G@@@]@@@@ NN = 0@#@@@@ I = U(1) @#@@@@ J = U(2) @#@@@@HJ )@@G@@ K = U(3) @C@@@@ PRINT 12, KC(I), LY, KC(J), LY, KC(K), LY HK )@@G@@@G@@@@ 12 FORMAT (///,1H ,5X,A6,I4,2(15X,A6,I4),//,' S M T W T FHL )@@G@@ S', @A@@@@ *2(6X,'S M T W T F S')) @^@@@@ DO 16 G = 1HM )@@G@@,3 @]@@@@ E = 0 @A@@@@ IF (DK(G,1) .EQ. 1) GO TO 14 @^@@@@HN )@@G@@ B = DK(G,1) - 1 @^@@@@ DO 13 I = 1,B @#@@@@ E = E HO )@@G@@+ 1 @^@@@@ 13 V(I,G) = D(32) @#@@@@ 14 B = 7 - E @^@@@@ HP )@@G@@DO 15 I = 1,B @#@@@@ E = E + 1 @^@@@@ 15 V(E,G) = D(I) HQ )@@G@@@#@@@@ 16 U(G) = B @#@@@@ PRINT 19, V @^@@@@ DO 20 I = 1HR )@@G@@,5 @^@@@@ DO 18 G = 1,3 @^@@@@ DO 17 J = 1,7 @#@@@@HS )@@G@@ K = U(G) + J@]@@@@ L = K @ @@@@ IF (K .GE. ZZ(G)) L = 32HT )@@G@@@^@@@@ 17 V(J,G) = D(L) @^@@@@ 18 U(G) = U(G) + 7 @#@@@@ HU )@@G@@PRINT 19, V @C@@@@ 19 FORMAT (1H ,6(A2,1X),A2,2(5X,6(A2,1X),A2))@#@@@@HV )@@G@@ 20 CONTINUE @ @@@@ IF (MO .EQ. 12) GO TO 21@#@@@@ MO = MHW )@@G@@O + 1 @#@@@@ RETURN 2 @#@@@@ 21 PRINT 22 @#@@@@ 22 FORMATHX )@@G@@ (1H0)@#@@@@ RETURN 1 @]@@@@ END ___V(7,3), U(3), ZZ(3) HY )@@G@@*[@@@@*SDFF*@A@@@]C PERPETUAL CALENDAR FORMULA @[@@@]C @ @@@]HZ )@@G@@ SUBROUTINE CFORM ($,$,$)@#@@@] INCLUDE COM @^@@@A S = MIIA )@@G@@NUS2(-1) @^@@@A UNIQUE = MOD(S,8) @]@#@] S = Z @D@@@] IB )@@G@@GO TO (32,29,32,31,32,31,32,32,31,32,31,32), MO @#@@@] 32 NEWMON = 32 IC )@@G@@@#@@@] GO TO 15 @#@@@] 31 NEWMON = 31 @#@@@] GO TO 15 ID )@@G@@@#@@@] 29 NEWMON = 29 @F@@@] IF ((MOD(LY,100).EQ.0).AND.(MOD(LY,4IE )@@G@@00).NE.0)) GO TO 13 @ @@@] IF (MOD(LY,4)) 13,14,13 @ @@@] 13 IF )@@G@@IF (ID - 29) 15,767,15 @#@@@] 14 NEWMON = 30 @A@@@] 15 IF (ID - NEWIG )@@G@@MON) ,600,600 @]@@@] S = MO@]@@@] T = LY@ @@@] IF (S IH )@@G@@.LT. 3) T = LY - 1@A@@@] IF (S .LT. 3) S = MO + 12 @^@ @] II )@@G@@Z = NEWMON - 1 @^@ @] DO 10 Y = 1,Z @^@@@ ZZ = NEWMON IJ )@@G@@- 1 @^@@@ DO 10 Y = 1,ZZ @C@@@] QQ=Y+2*S+(3*S+3)/5+T+T/4IK )@@G@@-T/100+T/400+1 @ @@@] 10 KD(Y) = MOD(QQ,7) + 1 @D@@@] IF((MOIL )@@G@@N .NE. 0) .AND. (ID .NE. 0)) GO TO 757 @ @@@] IF (ID .NE. 0) GO IM )@@G@@TO 500@A@@@] IF (MODE .EQ. 1) RETURN 2 @A@^@] IF (MODE .EQIN )@@G@@. 2) RETURN 3 @#@@@^ RETURN 3 @#@@@] 757 SM = KD(ID) @A@@@]IO )@@G@@ IF (LY - RLYEAR) 758,,759 @A@@@] IF (MON - MONTH) 758,,75IP )@@G@@9 @A@@@] IF (ID - DAY) 758,,759 @^@@@] PRINT 125, KIQ )@@G@@W(SM) @#@@@] RETURN 1 @B@@@] 758 PRINT 135, KC(MON), ID, LY, KWIR )@@G@@(SM) @#@@@] RETURN 1 @B@@@] 759 PRINT 130, KC(MON), ID, LY, KWIS )@@G@@(SM) @#@@@] RETURN 1 @^@@@] 767 PRINT 189, LY @#@@@] IT )@@G@@RETURN 1 @ @@@] 500 PRINT 106, MON, ID, LY @#@@@] RETURN 1 IU )@@G@@@ @@@] 600 PRINT 190, KC(MON), ID @#@@@] RETURN 1 @C@@@] 106 IV )@@G@@FORMAT (1H0I2,I3,I5,'? GO TO JAIL - DO ' @B@@@] *'NOT PASS GO, DO NIW )@@G@@OT COLLECT $200') @G@@@] 125 FORMAT (1H0'COME ON, NOW. YOU KNOW JUST AIX )@@G@@S WELL AS I THAT TODAY I@^@@@] *S ',A6,'DAY.') @E@@@] 130 FORMATIY )@@G@@ (1H0,A6,I2,',',I5,' WILL BE A ',A6,'DAY.') @D@@@] 135 FORMAT (1H0,IZ )@@G@@A6,I2,',',I5,' WAS A ',A6,'DAY.') @G@@@] 189 FORMAT (1H0I4,' IS NOT AJA )@@G@@ LEAP YEAR - - THERE IS NO FEB. 29TH.') @E@@@] 190 FORMAT (1H0'THERE JB )@@G@@IS NO SUCH THING AS ',A6,I3,'.') @]@@@] END ___E))AC9A@?^[FCS*JC )@@G@@D(JD0( ))DD^@^@@@]^@)^@)*[@@@@*SDFF*@A@@@]C SUBA - JUST TO CONSERVE JD )@@G@@SPACE @@@A@]@^@@@] SUBROUTINE SUBA @^@@@] DIMENSION SEED(2) JE )@@G@@@#@@@] INCLUDE COM @#@@@] MODE = 1 @ @@@] IF (Y .EQ. 4JF )@@G@@) MODE = 2 @B@@@] DECODE (198,HDAY) DATE(1), DATE(2) @D@@@] JG )@@G@@DECODE (194,HDAY) MONTH, DAY, RLYEAR, S, T, Y @F@^@] SEED(1) = (MJH )@@G@@ONTH-1)*2592000+(DAY-1)*86400+S*3600+T*60+Y @A@#@] SEED(2) = DAJI )@@G@@TE(1) * DATE(2) @^@^@# SEED(2) = DATE(2) @^@ @^ SEED(1) = DAJJ )@@G@@TE(2) @G@ @^ SEED(2) = (MONTH-1)*2000000 + (DAY-1)*85000 + S*3601 +JK )@@G@@ T*63 + Y*3 @G@@@ SEED(1) = (MONTH-1)*2592000 + (DAY-1)*86400 + S*JL )@@G@@3600 + T*60 + Y @A@@@ SEED(2) = DATE(1) * DATE(2) @^@@@] JM )@@G@@CALL MI2SET(SEED) @^@@@^ Y = MINUS2(-1) @ @@@] RLYEAR = RLYJN )@@G@@EAR + 1900 @^@@@] PRINT 103, HDAY @]@@@] RETURN@B@A@] 103 JO )@@G@@FORMAT (' CAL 5.6 ',A6,' AT ',A6) @C@@9A 103 FORMAT (' N.Y.U. CAL 5.7JP )@@G@@ ',A6,' AT ',A6) @#@@@] 194 FORMAT (6I2)@#@@@] 198 FORMAT (2I6)@]@@@]JQ )@@G@@ END ___^@)^@)FC)*[@@@@*SDFF*@A@@@]C RANDOM DESIGNS (RECTANGUJR )@@G@@LAR) @[@@@] @^@@@] SUBROUTINE SKETCH @A@ @] IMPLICIT INTJS )@@G@@EGER (A-W,Y,Z) @B@#@] DIMENSION MARK(10), PICTUR(52,20) @D@@@#JT )@@G@@ DIMENSION MARK(10), PICTUR(13,20), LINE(20) @D@^@] COMMONJU )@@G@@ /DRAW/DATE(2),MO,LY,MONTH,DAY,RLYEAR,TT @#@@@^ INCLUDE COM @G@@@]JV )@@G@@ DATA (MARK(I),I=1,10)/3H ,3H ,3H ,3H ,3H\\\,3H ,3H///,3HJW )@@G@@@^@@@] * ,3H***,3H / @A@A@] IF (TT .NE. 1) WRITE (6,172) JX )@@G@@@A@A@] IF (TT .EQ. 1) WRITE (6,173) @ @@@A IF (TT .NE. 1) PRIJY )@@G@@NT 172@ @@@A IF (TT .EQ. 1) PRINT 173@^@#@] DO 780 M = 1,25,2JZ )@@G@@@^@@@# DO 780 M = 1,13 @^@@@] DO 780 L = 1,10 @ @@@] KA )@@G@@DO 780 J = 0,18,18 @^@@@] TY = MINUS2(-1) @^@@@] TY = MKB )@@G@@OD(TY,9) + 1@C@#@] FLD(J,18,PICTUR(M,L)) = FLD(0,18,MARK(TY))@D@#@]KC )@@G@@ 780 FLD(J,18,PICTUR(M+1,L)) = FLD(0,18,MARK(TY)) @^@#@] DO 782KD )@@G@@ M = 1,26 @C@@@# 780 FLD(J,18,PICTUR(M,L)) = FLD(0,18,MARK(TY))@^@@@#KE )@@G@@ DO 782 M = 1,13 @^@@@] DO 782 L = 11,20 @ @@@] DO 782KF )@@G@@ J = 0,18,18 @#@@@] I = 21 - L @^@@@] K = 0 - (J - 18) KG )@@G@@@A@@@] TY = FLD(J,18,PICTUR(M,I)) @B@@@] IF (TY .EQ. 6H@@@/KH )@@G@@//) TY = 6H +++ @B@@@] IF (TY .EQ. 6H@@@\\\) TY = 6H /// @B@@@]KI )@@G@@ IF (TY .EQ. 6H +++) TY = 6H \\\ @C@@@] 782 FLD(K,18,PICTUR(M,KJ )@@G@@L)) = FLD(18,18,TY) @^@#@] DO 783 M = 27,52 @^@#@] DO 783KK )@@G@@ L = 1,10 @ @#@] DO 783 J = 0,18,18 @#@#@] I = 53 - M KL )@@G@@@A@#@] TY = FLD(J,18,PICTUR(I,L)) @B@#@] IF (TY .EQ. 6H@@@/KM )@@G@@//) TY = 6H +++ @B@#@] IF (TY .EQ. 6H@@@\\\) TY = 6H /// @B@#@]KN )@@G@@ IF (TY .EQ. 6H +++) TY = 6H \\\ @C@#@] 783 FLD(J,18,PICTUR(M,KO )@@G@@L)) = FLD(18,18,TY) @^@#@] DO 784 M = 27,52 @^@#@] DO 784KP )@@G@@ L = 11,20 @ @#@] DO 784 J = 0,18,18 @^@#@] K = 0 - (J -KQ )@@G@@ 18) @#@#@] I = 53 - M @#@#@] TY = 21 - L @D@#@] 784 FLD(K,KR )@@G@@18,PICTUR(M,L)) = FLD(J,18,PICTUR(I,TY)) @^@#@] DO 790 L = 1,20 KS )@@G@@@ @#@] PICTUR(1,L) = 6H****** @ @#@] PICTUR(2,L) = 6H****** KT )@@G@@@^@#@] PICTUR(3,L) = 6H @^@#@] PICTUR(4,L) = 6H @^@#@] KU )@@G@@PICTUR(49,L) = 6H @^@#@] PICTUR(50,L) = 6H @ @#@] PICTUR(51,L)KV )@@G@@ = 6H****** @ @#@] 790 PICTUR(52,L) = 6H****** @^@#@] DO 791 L = KW )@@G@@3,50 @B@#@] FLD(0,18,PICTUR(L,1)) = 6H ** @B@#@] 791 FLD(18KX )@@G@@,18,PICTUR(L,20)) = 6H ** @D@#@] PRINT 174, ((PICTUR(L,M), M = KY )@@G@@1,20), L = 1,52) @^@@@# DO 1 L = 1,20 @ @@@# PICTUR(1,L) KZ )@@G@@= 6H****** @^@@@# 1 PICTUR(2,L) = 6H @^@@@# DO 2 I = 2,13 LA )@@G@@@B@@@# FLD(0,18,PICTUR(I,1)) = 6H ** @B@@@# 2 FLD(18,18,PILB )@@G@@CTUR(I,20)) = 6H ** @G@@@# PRINT 174, ((PICTUR(L,M),M=1,20),(PILC )@@G@@CTUR(L,N),N=1,20),L=1,13) @^@@@# DO 4 I = 13,1 @^@@@# LD )@@G@@DO 3 J = 1,20 @^@@@# DO 3 K = 0,18,18 @A@@@# TY = FLD(K,1LE )@@G@@8,PICTUR(I,J)) @B@@@# IF (TY .EQ. 6H@@@///) TY = 6H +++ @B@@@#LF )@@G@@ IF (TY .EQ. 6H@@@\\\) TY = 6H /// @B@@@# IF (TY .EQ. 6H +LG )@@G@@++) TY = 6H \\\ @B@@@# 3 FLD(K,18,LINE(J)) = FLD(18,18,TY) @D@@@#LH )@@G@@ 4 PRINT 174, (LINE(J),J=1,20), (LINE(K),K=1,20) @]@@@] RETURNLI )@@G@@@ @@@] 172 FORMAT (1H1,//////) @^@@@] 173 FORMAT (1H1,//) @ @@@]LJ )@@G@@ 174 FORMAT (1H ,5X,20A6) @]@@@] END ___Q. 1) PRINT 173@^@#@]LK )@@G@@ DO 780 M = 1,25,2@^@@@# DO 780 M = 1,13 @^@@@] DO 780LL )@@G@@*[@@@@*SDFF*@ @@@@C CALENDAR DISPLAY, PART 2@[@@@@ @ @@@@ LM )@@G@@SUBROUTINE DSPLA2 ($,$) @ @@@@ DIMENSION M(14), NU(11) @#@@@@ LN )@@G@@INCLUDE COM @E@@@@ DATA NU/O043020410216,O350411442076,O35041140613LO )@@G@@4, @F@@@@ *O043124574204,O770207406134,O042107506134,O76041042102LP )@@G@@0, @D@@@@ *O350613506134,O350613610420,O350614306134,O0/ @A@@@@LQ )@@G@@ DATA BLANKS/O050505050505/ @#@@@@ P = KD(1) @ @@@@ LR )@@G@@IF (P .NE. 1) GO TO 402 @]@@@@ TM = 1@#@@@@ GO TO 450 @#@@@@LS )@@G@@ 402 P = P - 2 @#@@@@ PRINT 162 @^@@@@ DO 312 G = 1,7 LT )@@G@@@^@@@@ DO 412 QQ = 0,P @ @@@@ M(2*QQ + 1) = BLANKS @ @@@@LU )@@G@@ 412 M(2*QQ + 2) = BLANKS @ @@@@ IF (G .EQ. 1) P = P + 1 @]@@@@LV )@@G@@ SM = 0@^@@@@ DO 311 QQ = P,6 @#@@@@ SM = SM + 1 @]@@@@LW )@@G@@ S = 11@]@@@@ T = SM@B@@@@ IF (HOLDAY(MO,SM) .EQ. 0) GO TLX )@@G@@O 313 @A@@@@ S = 2 * HOLDAY(MO,SM) + 3 @ @@@@ M(2*QQ + 1) LY )@@G@@= C(S,G) @ @@@@ M(2*QQ + 2) = C(S+1,G) @#@@@@ GO TO 311 LZ )@@G@@@^@@@@ 313 R = G * 5 - 5 @ @@@@ M(2*QQ + 1) = BLANKS @ @@@@MA )@@G@@ M(2*QQ + 2) = BLANKS @^@@@@ DO 10 Y = 0,24,6 @E@@@@ MB )@@G@@IF (FLD(R,1,NU(S)) .EQ. 1) FLD(Y,6,M(2*QQ+1)) = 40 @E@@@@ IF (FLMC )@@G@@D(R,1,NU(T)) .EQ. 1) FLD(Y,6,M(2*QQ+2)) = 40 @#@@@@ 10 R = R + 1 MD )@@G@@@#@@@@ 311 CONTINUE @#@@@@ PRINT 160, M@#@@@@ 312 CONTINUE ME )@@G@@@#@@@@ TM = SM + 1 @[@@@@ @A@@@@C SECTION 9 - REST OF CALEMF )@@G@@NDAR @[@@@@ @#@@@@ 450 SM = TM + 28@ @@@@ IF (TM .EQ. 1) GO MG )@@G@@TO 451@#@@@@ PRINT 161 @#@@@@ GO TO 452 @#@@@@ 451 PRINT MH )@@G@@162 @^@@@@ 452 DO 90 R = TM,SM,7@^@@@@ DO 85 G = 1,7 @^@@@@MI )@@G@@ DO 80 QQ = 0,6 @#@@@@ P = R + QQ @ @@@@ IF (P - NEWMMJ )@@G@@ON) ,13,13 @ @@@@ S = 2 * HOLDAY(MO,P) + 3@^@@@@ IF (S-3) 314MK )@@G@@,,314 @#@@@@ S = P/10 @ @@@@ IF (S .EQ. 0) S = 11 @^@@@@ML )@@G@@ T = MOD(P,10) @ @@@@ IF (T .EQ. 0) T = 10 @E@@@@ 314 MM )@@G@@IF((KD(31) .EQ. 2) .AND. (NEWMON .GT. 31)) GO TO 243 @E@@@@ IF((KDMN )@@G@@(30) .EQ. 1) .AND. (NEWMON .GT. 30)) GO TO 241 @E@@@@ IF((KD(31) .MO )@@G@@EQ. 1) .AND. (NEWMON .GT. 31)) GO TO 242 @^@@@@ Y = NEWMON - 1 MP )@@G@@@A@@_@ 11 IF (HOLDAY(MO,P)) 245,,245 @^@@_@ I = 5 * G - 5 MQ )@@G@@@ @@@@ M(2*QQ + 1) = BLANKS @ @@@@ M(2*QQ + 2) = BLANKS MR )@@G@@@^@@@@ DO 12 J = 0,4 @E@@@@ IF (FLD(I+J,1,NU(S)) .EQ. 1) FMS )@@G@@LD(J*6,6,M(2*QQ+1)) = 40@E@@@@ 12 IF (FLD(I+J,1,NU(T)) .EQ. 1) FLD(J*6MT )@@G@@,6,M(2*QQ+2)) = 40@#@@@@ GO TO 80 @ @@@@ 13 M(2*QQ + 1) = BLANMU )@@G@@KS @ @@@@ M(2*QQ + 2) = BLANKS @#@@@@ GO TO 80 @ @@@@MV )@@G@@ 241 IF (P .NE. 23) GO TO 11 @]@@@@ S = 1 @]@@@@ Y = 29@#@@@@MW )@@G@@ GO TO 245 @ @@@@ 242 IF (P .NE. 24) GO TO 11 @]@@@@ S = 3 MX )@@G@@@]@@@@ Y = 30@#@@@@ GO TO 245 @D@@@@ 243 IF ((P .NE. 23) .AMY )@@G@@ND. (P .NE. 24)) GO TO 11 @]@@@@ S = 1 @ @@@@ IF (P .EQ. 2MZ )@@G@@4) S = 3 @]@@@@ Y = 29@ @@@@ 245 M(2*QQ + 1) = C(S,G) @ @@@@NA )@@G@@ M(2*QQ + 2) = C(S+1,G) @#@@@@ 80 CONTINUE @#@@@@ 85 PRINT NB )@@G@@160, M@ @@@@ IF (P .GE. Y) GO TO 751 @#@@@@ 90 PRINT 161 @A@@@@NC )@@G@@ 751 IF (MO .EQ. 12) GO TO 752 @#@@@@ MO = MO + 1 @^@@@@ ND )@@G@@IF (MON) 17,18,17 @#@@@@ 752 PRINT 162 @#@@@@ 17 RETURN 1 @#@@@@NE )@@G@@ 18 RETURN 2 @B@@@@ 160 FORMAT (1H ,5(2A6,8X),2A6,7X,2A6) @^@@@@NF )@@G@@ 161 FORMAT (/,1H0) @#@@@@ 162 FORMAT (1H0)@]@@@@ END ___(G NG )@@G@@.EQ. 1) P = P + 1 @]@@@@ SM = 0@^@@@@ DO 311 QQ = P,6 @#@@@@NH )@@G@@ SM = SM + 1 @]@@@@ S = 11@]@@@@ T = SM@B@@@@ IF (HONI )@@G@@*[@@@@*SDFF*@B@@@@C PERPETUAL CALENDAR FOR 1753 - 9999 @[@@@@ NJ )@@G@@@F@@_@C WRITTEN BY R. DUFF KURLAND AS A TERM PROJECT IN APRIL, 1970,NK )@@G@@@F@@_@C AND EXPANDED (WHILE BEING SHRUNK) BY SAME EVER SINCE THEN. NL )@@G@@@D@@_@C LAST WORK DONE ON CAL WAS A BUG FIX ON 3/3/72. @[@@_@ NM )@@G@@@^@@@@ INCLUDE COM, LIST @B@@@@ COMMON /CTY/NN,U(3),DK(3,31),ZNN )@@G@@Z(3) @#@@@@ DATA NN/0/ @^@@@@ INCLUDE COUNT @C@@@@ NO )@@G@@CALL DEMAND (Y,HDAY(1),HDAY(2),'1,0. ') @#@@@@ CALL SUBA @A@@@@NP )@@G@@ 17 CALL SETUP ($8,$1108,$999) @A@@@@ 8 CALL CFORM ($17,$749,$74NQ )@@G@@8) @ @@@@ 1108 CALL HOLS ($17,$999) @^@@@@ 748 CALL TTY ($17,$8) NR )@@G@@@E@@@@ 749 IF ((TT .NE. 2) .AND. (UNIQUE .LT. 4)) CALL SKETCH @E@@@@NS )@@G@@ IF ((TT .NE. 2) .AND. (UNIQUE .GE. 4)) CALL SKECH2 @A@@@@ NT )@@G@@IF (TT .EQ. 1) CALL TITLE @#@@@@ CALL DSPLAY @ @@@@ CALL DNU )@@G@@SPLA2 ($17,$8) @#@@@@ 999 CALL END @ @@@@ CALL MARGIN ('6,3.NV )@@G@@ ') @]@@@@ END ___^@)^@)DDA^@* [OE)) 1IC*,^@2 C) 1[D1^ 0) [PD1DNW )@@G@@*[@@@@*SDFF*@^@@@@C CALENDAR DISPLAY @[@@@@ @^@@@@ SUBROUNX )@@G@@TINE DSPLAY @G@@@@ DIMENSION U(9,12),LINE(22),B(9),A(22),F(8,5),TABNY )@@G@@LE(5,5),NU(11), @#@@@@ *CC(4),L(4) @#@@@@ INCLUDE COM @E@@@@NZ )@@G@@ DATA NU/O043020410216,O350411442076,O350411406134, @F@@@@ *OA )@@G@@O043124574204,O770207406134,O042107506134,O760410421020, @D@@@@ *OB )@@G@@O350613506134,O350613610420,O350614306134,O0/ @G@@@@ DATA A/O1052OC )@@G@@17706142,O750617506174,O350604102134,O750614306174, @F@@@@ *O77020OD )@@G@@7502076,O770207502040,O350605706134,O430617706142, @^@@@@ *O34204OE )@@G@@1020434, @F@@@@ *O020410306134,O410204102076,O435655306142,O43071OF )@@G@@5316142, @F@@@@ *O350614306134,O750617502040,O750617522242,O35060OG )@@G@@3406134, @F@@@@ *O762041020410,O430614306134,O430614305210,O43061OH )@@G@@2420410,O0/ @G@@@@ DATA ((U(Y,D),Y=1,9),D=1,12)/10,1,13,19,1,16,21,OI )@@G@@22,22,6,5,2,16,19,@G@@@@ *1,16,21,22,12,1,16,3,8,22,22,22,22,1,15,16OJ )@@G@@,9,11,22,22,22,22,12,1,2@G@@@@ *1,22,22,22,22,22,22,10,19,13,5,22,22OK )@@G@@,22,22,22,10,19,11,21,22,22,22@G@@@@ *,22,22,1,19,7,19,17,18,22,22,2OL )@@G@@2,17,5,15,18,5,12,2,5,16,14,3,18,14,@F@@@@ *2,5,16,22,22,13,14,20,5,OM )@@G@@12,2,5,16,22,4,5,3,5,12,2,5,16,22/ @E@@@@ DATA LINE(1)/6H0XXXXX/,(ON )@@G@@LINE(Y),Y=2,22)/21*6HXXXXXX/ @E@@@@ DATA (F(6,I),I=1,5)/' OO )@@G@@ '/ @E@@@@ DATA (F(7,I),I=1,5)/' COMPLIMEOP )@@G@@NTS OF '/ @E@@@@ DATA (F(8,I),I=1,5)/' UHMC COMPUTER CENOQ )@@G@@TER '/ @G@@@@ DATA ((TABLE(I,J),J=1,5),I=1,5)/6,6,1,6,6,6,1,6,OR )@@G@@2,6,6,1,2,3,6, @A@@@@ * 1,2,3,4,6,1,2,3,4,5/ @#@@@@ OS )@@G@@FIRST = 0 @#@@@@ L(1) = LY1 @#@@@@ L(2) = LY2 @#@@@@ OT )@@G@@L(3) = LY3 @#@@@@ L(4) = LY4 @[@@@@ @ @@@@C FIRST LINE OOU )@@G@@F CALENDAR @[@@@@ @#@@@@ PRINT 181 @]@@@@ P = PP@^@@@@OV )@@G@@ DO 1 I = 1,5 @^@@@@ DO 1 J = 1,5 @#@@@@ 1 F(I,J)OW )@@G@@ = 6H @#@@@@ WWW = WW + 1@^@@@@ GO TO (6,4,2), WWW@^@@@@ 2 OX )@@G@@DO 3 I = 1,P @^@@@@ DO 3 J = 1,5 @^@@@@ 3 F(I,J) = MSGOY )@@G@@(I,J) @#@@@@ GO TO 7 @]@@@@ 4 P = 2 @^@@@@ DO 5 I = 1,OZ )@@G@@5 @^@@@@ F(1,I) = F(7,I) @^@@@@ 5 F(2,I) = F(8,I) @#@@@@PA )@@G@@ GO TO 7 @]@@@@ 6 P = 5 @^@@@@ 7 DO 10 I = 1,9 @]@@@@PB )@@G@@ G = 0 @^@@@@ WWW = U(I,MO) @#@@@@ B(I) = 6H @^@@@@PC )@@G@@ DO 10 J = 0,24,6 @D@@@@ IF (FLD(G,1,A(WWW)) .EQ. 1) FLD(J,6,PD )@@G@@B(I)) = 40 @#@@@@ 10 G = G + 1 @^@@@@ DO 16 I = 1,4 @#@@@@PE )@@G@@ 16 CC(I) = 6H @^@@@@ DO 17 G = 1,4 @#@@@@ J = L(G) PF )@@G@@@^@@@@ DO 17 I = 0,4 @D@@@@ 17 IF (FLD(I,1,NU(J)) .EQ. 1) FLDPG )@@G@@(I*6,6,CC(G)) = 40@B@@@@ PRINT 144, B, (F(6,J),J=1,5), CC @^@@@@PH )@@G@@ DO 8 QQ = 2,6 @^@@@@ SM = TABLE(P,QQ-1)@^@@@@ DO 11 PI )@@G@@ I = 1,9 @^@@@@ G = QQ * 5 - 5 @^@@@@ WWW = U(I,MO) PJ )@@G@@@#@@@@ B(I) = 6H @^@@@@ DO 11 J = 0,4 @E@@@@ 11 IF (FLPK )@@G@@D(G+J,1,A(WWW)) .EQ. 1) FLD(J*6,6,B(I)) = 40 @^@@@@ DO 18 I = 1PL )@@G@@,4 @#@@@@ 18 CC(I) = 6H @^@@@@ G = QQ * 5 - 5 @^@@@@ PM )@@G@@DO 19 I = 1,4 @#@@@@ WWW = L(I) @^@@@@ DO 19 J = 0,4 PN )@@G@@@E@@@@ 19 IF (FLD(G+J,1,NU(WWW)) .EQ. 1) FLD(J*6,6,CC(I)) = 40 @B@@@@PO )@@G@@ 8 PRINT 144, B, (F(SM,Z),Z=1,5), CC @^@@@@ DO 12 I = 1,9 PP )@@G@@@]@@@@ G = 30@^@@@@ WWW = U(I,MO) @#@@@@ B(I) = 6H PQ )@@G@@@^@@@@ DO 12 J = 0,24,6 @D@@@@ IF (FLD(G,1,A(WWW)) .EQ. 1) FLPR )@@G@@D(J,6,B(I)) = 40 @#@@@@ 12 G = G + 1 @^@@@@ DO 20 I = 1,4 PS )@@G@@@#@@@@ 20 CC(I) = 6H @]@@@@ G = 30@^@@@@ DO 21 I = 1,4 PT )@@G@@@#@@@@ WWW = L(I) @^@@@@ DO 21 J = 0,4 @E@@@@ 21 IF (FLPU )@@G@@D(G+J,1,NU(WWW)) .EQ. 1) FLD(J*6,6,CC(I)) = 40 @B@@@@ PRINT 144, BPV )@@G@@, (F(6,J),J=1,5), CC @ @@@@ PRINT 171, LINE, LINE @]@@@@ PW )@@G@@RETURN@D@@@@ 144 FORMAT (1H ,9(A5,2X),5X,5A6,5X,3(A6,1X),A6) @G@@@@PX )@@G@@ 171 FORMAT (22A6,/,1H0' SUNDAY',14X,'MONDAY',13X,'TUESDAY',12X,'PY )@@G@@@G@@@@ 1WEDNESDAY',12X,'THURSDAY',14X,'FRIDAY',12X,'SATURDAY',/,22A6PZ )@@G@@) @#@@@@ 181 FORMAT (1H1)@]@@@@ END ___@@@ DATA (F(7,I)QA )@@G@@*[@@@@*SDFF*@ @@@@ SUBROUTINE SETUP ($,$,$)@#@@@@ INCLUDE COM QB )@@G@@@E@@@@ 17 READ (5,104,END=999) MON,ID,LY1,LY2,LY3,LY4,T,SM,P @]@@@@QC )@@G@@ TT = 0@]@@@@ WW = 0@E@@@@ LY = (1000 * LY1) + (100 * LY2QD )@@G@@) + (10 * LY3) + LY4 @G@@@@ IF ((MON .GT. 12) .OR. (MON .LT. 0) QE )@@G@@.OR. (ID .LT. 0)) GO TO 500 @ @@@@ IF (LY .EQ. 0) RETURN 2 @ @@@@QF )@@G@@ IF (T .EQ. 1HT) TT = 1 @ @@@@ IF (T .EQ. 1HN) TT = 2 @ @@@@QG )@@G@@ IF (T .EQ. 1HB) MODE = 1@ @@@@ IF (T .EQ. 1HD) MODE = 2@A@@@@QH )@@G@@ IF (SM .EQ. 4HUHMC) WW = 1 @A@@@@ IF (SM .EQ. 4HDUFF) GO TQI )@@G@@O 1135@#@@@@ GO TO 1004 @#@@@@ 1136 PRINT 1137 @#@@@@ RETURNQJ )@@G@@ 3 @]@@@@ 1135 WW = 2@^@@@@ DECODE (1138,P) PP@D@@@@ IF ((PQK )@@G@@P .LT. 1) .OR. (PP .GT. 5)) GO TO 1136 @^@@@@ DO 1140 P = 1,PP QL )@@G@@@A@@@@ 1140 READ 196, (MSG(P,T),T=1,5) @G@@@@ 1004 IF((MON .NE. 0) .AQM )@@G@@ND. (ID .NE. 0) .AND. (LY .NE. 0))FIRST=FIRST+1 @A@@@@ IF (FIRST .EQN )@@G@@Q. 1) PRINT 181 @E@@@@ IF ((LY .LT. 1753) .OR. (LY .GT. 9999)) GOQO )@@G@@ TO 770 @ @@@@ IF (LY1 .EQ. 0) LY1 = 10@ @@@@ IF (LY2 .EQ.QP )@@G@@ 0) LY2 = 10@ @@@@ IF (LY3 .EQ. 0) LY3 = 10@ @@@@ IF (LY4 .EQ.QQ )@@G@@ 0) LY4 = 10@A@@@@ MO = 1 - (MON + 15) / 16 + MON@#@@@@ RETURNQR )@@G@@ 1 @ @@@@ 500 PRINT 106, MON, ID, LY @#@@@@ GO TO 17 @ @@@@QS )@@G@@ 770 PRINT 179, MON, ID, LY @#@@@@ GO TO 17 @#@@@@ 999 RETURNQT )@@G@@ 3 @B@@@@ 104 FORMAT (I2,1X,I2,1X,4I1,A1,A4,A1) @G@@@@ 106 FORMATQU )@@G@@ (1H0I2,I3,I5,'? GO TO JAIL - DO NOT PASS GO, DO NOT COLLECT@#@@@@ *QV )@@G@@ $200') @E@@@@ 179 FORMAT (1H0I2,I3,I5,'? CALENDAR COVERS 1753-9999QW )@@G@@') @#@@@@ 181 FORMAT (1H1)@#@@@@ 196 FORMAT (5A6)@D@@@@ 1137 FORMATQX )@@G@@ ('0SORRY, ONLY 1-5 LINES FOR MESSAGE') @#@@@@ 1138 FORMAT (I1) @]@@@@QY )@@G@@ END ___D9I ))DD^ ))D-T@^@@@@^@)^@)^@)C9J^[OD8)AC7^@)@B@@@@^@)A87QZ )@@G@@A@)E[MDDIE))AC7BC?^[HD9I ))DD^ ))D-T@^@@@@^@)^@)*[@@@@*SDFF*@ @@@@C RA )@@G@@SECTION 4 - HOLIDAYS @[@@@@ @ @@@@ SUBROUTINE HOLS ($,$) RB )@@G@@@F@@@@ DIMENSION LIN(8,12), WORD(8,12), END(7), LETTER(92), Q(7,12)RC )@@G@@@#@@@@ INCLUDE COM @ @@@@ EQUIVALENCE (WORD, Q) @^@@@@ RD )@@G@@DATA BLANK/1H / @^@@@@ DO 1 Y = 71,74 @^@@@@ 1 LETTER(Y) = RE )@@G@@BLANK @C@@@@ READ (0,191) G, HDAY, (LETTER(Y), Y=1,70) @F@@@@ RF )@@G@@IF (LETTER(70) .EQ. 1H+) READ 196, (LETTER(Y), Y=70,92) @^@@@@ RG )@@G@@NUM = NUM + 2 @^@@@@ IRIS = IRIS + 1 @A@@@@ IF (IRIS .GTRH )@@G@@. 100) GO TO 598 @A@@@@ JOY = HDAY(1) * 10 + HDAY(2) @G@@@@ RI )@@G@@IF((JOY.LT.1).OR.(JOY.GT.31).OR.(G.LT.1).OR.(G.GT.12)) GO TO 500 @ @@@@RJ )@@G@@ HOLDAY(G,JOY) = IRIS @^@@@@ DO 87 SM = 1,8 @^@@@@ RK )@@G@@DO 87 TM = 1,12 @^@@@@ LIN(SM,TM) = BLANK@ @@@@ 87 WORD(SM,TM) RL )@@G@@= BLANK @B@@@@ HDAY(1) = (HDAY(1) + 48) * (2 ** 30)@B@@@@ RM )@@G@@HDAY(2) = (HDAY(2) + 48) * (2 ** 30)@A@@@@ IF (JOY .LT. 10) GO TO 9RN )@@G@@2 @#@@@@ GO TO 94 @^@@@@ 92 HDAY(1) = HDAY(2) @^@@@@ RO )@@G@@HDAY(2) = BLANK @#@@@@ 94 JOY = 1 @^@@@@ DO 42 Y = 1,91 RP )@@G@@@B@@@@ IF (LETTER(Y) .NE. BLANK) GO TO 42 @#@@@@ 49 END(JOY) = YRQ )@@G@@@B@@@@ IF (LETTER(Y+1).EQ.BLANK) GO TO 43 @^@@@@ JOY = JOY + RR )@@G@@1 @ @@@@ IF (JOY.GT.7) GO TO 800 @C@@@@ 42 IF (LETTER(Y) .EQ.RS )@@G@@ 1H@) LETTER(Y) = BLANK @]@@@@ 43 GO = 1@^@@@@ DO 44 SM = 1,JOY RT )@@G@@@ @@@@ HOWBIG = END(SM) - GO @A@@@@ IF (HOWBIG .GT. 12) GO TRU )@@G@@O 801 @^@@@@ LAST = END(SM) - 1@#@@@@ IRK = 1 @ @@@@ RV )@@G@@DO 45 Y = GO, LAST @ @@@@ WORD(SM,IRK) = LETTER(Y)@^@@@@ 45 RW )@@G@@IRK = IRK + 1 @A@@@@ SHIFT = (12 - HOWBIG) / 2 @ @@@@ RX )@@G@@DO 48 Y = 1,HOWBIG @A@@@@ 48 LIN(SM,Y+SHIFT) = WORD(SM,Y) @^@@@@RY )@@G@@ 44 GO = END(SM) + 1 @^@@@@ DO 84 QY = 1,7 @^@@@@ DO 84 RZ )@@G@@ QX = 1,12 @^@@@@ 84 Q(QY,QX) = BLANK @^@@@@ DO 46 QY = 1,7 SA )@@G@@@^@@@@ DO 46 QX = 1,12 @B@@@@ GO TO (51,54,54,54,55,56,57), SB )@@G@@JOY @ @@@@ 57 Q(QY,QX) = LIN(QY,QX) @#@@@@ GO TO 46 @^@@@@SC )@@G@@ 56 Q(1,6) = HDAY(1) @^@@@@ Q(1,7) = HDAY(2) @ @@@@ Q(QY+1SD )@@G@@,QX) = LIN(QY,QX) @#@@@@ GO TO 46 @^@@@@ 55 Q(1,6) = HDAY(1) SE )@@G@@@^@@@@ Q(1,7) = HDAY(2) @ @@@@ Q(QY+2,QX) = LIN(QY,QX) @#@@@@SF )@@G@@ GO TO 46 @^@@@@ 54 Q(2,6) = HDAY(1) @^@@@@ Q(2,7) = HDASG )@@G@@Y(2) @ @@@@ Q(QY+3,QX) = LIN(QY,QX) @#@@@@ GO TO 46 @^@@@@SH )@@G@@ 51 Q(3,6) = HDAY(1) @^@@@@ Q(3,7) = HDAY(2) @ @@@@ Q(QY+4SI )@@G@@,QX) = LIN(QY,QX) @#@@@@ 46 CONTINUE @^@@@@ DO 62 Y = 1,7 SJ )@@G@@@^@@@@ DO 62 S = 0,5 @C@@@@ FLD(S*6,6,C(NUM,Y)) = FLD(0,6,SK )@@G@@Q(Y,S+1)) @C@@@@ 62 FLD(S*6,6,C(NUM+1,Y)) = FLD(0,6,Q(Y,S+7)) @#@@@@SL )@@G@@ RETURN 1 @ @@@@ 500 PRINT 106, MON, ID, LY @#@@@@ RETURNSM )@@G@@ 1 @#@@@@ 598 PRINT 105 @#@@@@ RETURN 2 @^@@@@ 800 PRINT SN )@@G@@195, G, HDAY@#@@@@ RETURN 1 @^@@@@ 801 PRINT 193, G, HDAY@#@@@@SO )@@G@@ RETURN 1 @C@@@@ 105 FORMAT ('0TOO MANY HOLIDAYS -- I QUIT!') SP )@@G@@@G@@@@ 106 FORMAT (1H0I2,I3,I5,'? GO TO JAIL - DO NOT PASS GO, DO NOT CSQ )@@G@@OLLECT@#@@@@ * $200') @G@@@@ 193 FORMAT(1H0I2,1H/2A1,' HOLIDAY SR )@@G@@CONTAINS WORD EXCEEDING MAX LENGTH')@A@@@@ 191 FORMAT (I2,1X,2I1,5X,70ASS )@@G@@1) @G@@@@ 195 FORMAT (1H0,I2,'/',2A1,' HOLIDAY CONTAINS MORE THAN 7 ST )@@G@@WORDS') @^@@@@ 196 FORMAT (1X,23A1) @]@@@@ END ___).OR.(G.GSU )@@G@@T.12)) GO TO 500 @ @@@@*[@@@@*SDFF*@A@@@@C RANDOM DESIGNS (TRIANGULSV )@@G@@AR) @[@@@@ @^@@@@ SUBROUTINE SKECH2 @#@@@@ INCLUDE COM SW )@@G@@@F@@@@ DIMENSION F(36), B(3,36), E(108), MARK(10), PFORM(5), H(108)SX )@@G@@@^@@@@ EQUIVALENCE (H, E)@G@@@@ DATA H/126,226,227,228,229,230SY )@@G@@,231,232,233,234,235,236,336,128, @G@@@@ *127,117,217,218,219,220,SZ )@@G@@221,222,223,224,225,325,335,334,130,129, @G@@@@ *119,118,110,210,21TA )@@G@@1,212,213,214,215,216,316,324,323,333,332,132, @G@@@@ *131,121,120,TB )@@G@@112,111,105,205,206,207,208,209,309,315,314,322,321, @G@@@@ *331,33TC )@@G@@0,134,133,123,122,114,113,107,106,102,202,203,204,304,308, @G@@@@ *TD )@@G@@307,313,312,320,319,329,328,136,135,125,124,116,115,109,108,104, @F@@@@TE )@@G@@ *103,101,201,301,303,302,306,305,311,310,318,317,327,326/ @E@@@@TF )@@G@@ DATA MARK/1H ,1HX,1H/,1H ,1H-,1H\,1H ,1H\,1H-,1H// @B@@@@ TG )@@G@@DATA BORDER/4H** /,BORD2/4H **/ @D@@@@ DATA PFORM/'(1H , TH )@@G@@X,A4, A1,A4)'/ @^@@@@ DO 1 J = 1,36 @^@@@@ K = MITI )@@G@@NUS2(-1) @A@@@@ KN = MOD(MINUS2(-1),9) + 1 @^@@@@ F(J) =TJ )@@G@@ MARK(KN) @B@@@@ GO TO (7,7,3,7,2,4,7,4,2,3), KN @^@@@@ 7 TK )@@G@@B(1,J) = F(J) @^@@@@ B(2,J) = F(J) @^@@@@ B(3,J) = F(JTL )@@G@@) @#@@@@ GO TO 1 @#@@@@ 2 B(1,J) = 1H/@^@@@@ B(2,J)TM )@@G@@ = F(J) @#@@@@ B(3,J) = 1H\@#@@@@ GO TO 1 @#@@@@ 3 TN )@@G@@B(1,J) = 1H\@^@@@@ B(2,J) = B(1,J) @#@@@@ B(3,J) = 1H-@#@@@@TO )@@G@@ GO TO 1 @#@@@@ 4 B(1,J) = 1H-@#@@@@ B(2,J) = 1H/@^@@@@TP )@@G@@ B(3,J) = B(2,J) @#@@@@ 1 CONTINUE @^@@@@ DO 6 J = 1,TQ )@@G@@108 @^@@@@ CC = H(J)/100 @ @@@@ D = H(J) - CC * 100 TR )@@G@@@^@@@@ 6 E(J) = B(CC,D) @^@@@@ BORDER = 4H** @^@@@@ TS )@@G@@IF (KN - 5) ,,50 @#@@@@ PRINT 24 @F@@@@ 24 FORMAT (1H1,65X,'*TT )@@G@@',/,1H ,64X,'***',/,1H ,63X,'** **',/, @ @@@@ * 1H ,62X,'** TU )@@G@@ **') @]@@@@ K = 62@^@@@@ DO 9 L = 1,7,2 @#@@@@ K = K TV )@@G@@- 1 @ @@@@ ENCODE (5,PFORM(2)) K @ @@@@ ENCODE (5,PFORM(4)TW )@@G@@) L @C@@@@ 9 PRINT PFORM, (BORDER,(F(1),I=1,L),BORD2) @]@@@@ TX )@@G@@N = 2 @]@@@@ 8 C1 = 2@]@@@@ C2 = 6@]@@@@ C3 = 1@]@@@@ TY )@@G@@C4 = 7@]@@@@ C5 = 2@#@@@@ C6 = -1 @]@@@@ C7 = 7@#@@@@TZ )@@G@@ C8 = 12 @]@@@@ C9 = 1@#@@@@ C10 = 1 @^@@@@ UA )@@G@@IF (KN) 60,14,60 @#@@@@ 50 BLANK = 1H* @A@@@@ PRINT 51, (BLANK, UB )@@G@@I = 1,220) @G@@@@ 51 FORMAT (1H1,/,1H T13,109A1,/,1H T14,107A1,/,1H TUC )@@G@@15,2A1,T118,2A1) @]@@@@ K = 13@]@@@@ N = 86@#@@@@ C1 = 1UD )@@G@@2 @]@@@@ C2 = 7@]@@@@ C3 = 7@]@@@@ C4 = 1@#@@@@ UE )@@G@@C5 = -2 @]@@@@ C6 = 1@]@@@@ C7 = 6@]@@@@ C8 = 2@#@@@@UF )@@G@@ C9 = 36 @#@@@@ C10 = -1 @ @@@@ 60 DO 11 L = C1,C2,CUG )@@G@@10 @^@@@@ M = 2 * L - 1 @#@@@@ P = M - 2 @ @@@@ UH )@@G@@DO 10 J = C3,C4,C5 @#@@@@ JJ = 8 - J @ @@@@ S = L * J + UI )@@G@@(L-1) * JJ @#@@@@ K = K + C6 @ @@@@ ENCODE (5,PFORM(2)) K UJ )@@G@@@#@@@@ 5 FORMAT (I6) @ @@@@ ENCODE (5,PFORM(4)) S @#@@@@ UK )@@G@@PRINT PFORM,@G@@@@ * (BORDER,(F(N),U=1,J),((F(N+T),V=1,JJ),(F(N+T+1UL )@@G@@),W=1,J),T=1,P,2),@#@@@@ * BORD2) @#@@@@ 10 CONTINUE @#@@@@UM )@@G@@ MM = -M @B@@@@ IF (KN .GT. 5) MM = 2 * (L - 1) - 1 @#@@@@UN )@@G@@ N = N - MM @#@@@@ 11 CONTINUE @^@@@@ IF (KN - 8) 14,14,UO )@@G@@@]@@@@ KN = 0@]@@@@ K = 38@]@@@@ N = 86@#@@@@ GO TO UP )@@G@@8 @]@@@@ 14 N = C9@ @@@@ DO 13 L = C7,C8,C10 @^@@@@ UQ )@@G@@M = 2 * L - 1 @#@@@@ P = M - 2 @ @@@@ DO 12 J = C3,C4,CUR )@@G@@5 @#@@@@ JJ = 8 - J @ @@@@ S = L * J + (L-1) * JJ @#@@@@US )@@G@@ K = K + C6 @ @@@@ ENCODE (5,PFORM(2)) K @ @@@@ ENCODEUT )@@G@@ (5,PFORM(4)) S @#@@@@ PRINT PFORM,@G@@@@ * (BORDER,(E(N),U=UU )@@G@@1,J),((E(N+T),V=1,JJ),(E(N+T+1),W=1,J),T=1,P,2),@#@@@@ * BORD2) UV )@@G@@@#@@@@ 12 CONTINUE @#@@@@ MM = -M @B@@@@ IF (KN .GT. UW )@@G@@5) MM = 2 * (L - 1) - 1 @#@@@@ N = N - MM @#@@@@ 13 CONTINUE UX )@@G@@@^@@@@ IF (KN - 5) ,,70 @#@@@@ K = K - 1 @#@@@@ S = S UY )@@G@@+ 2 @ @@@@ ENCODE (5,PFORM(2)) K @ @@@@ ENCODE (5,PFORM(4)UZ )@@G@@) S @#@@@@ BLANK = 1H @C@@@@ PRINT PFORM, (BORDER,(BLANK,I=VA )@@G@@1,S),BORD2) @^@@@@ BORDER = 4H**** @#@@@@ BLANK = 1H* @^@@@@VB )@@G@@ DO 40 I = 1,2 @#@@@@ K = K - 1 @#@@@@ S = S + 2 VC )@@G@@@ @@@@ ENCODE (5,PFORM(2)) K @ @@@@ ENCODE (5,PFORM(4)) S VD )@@G@@@C@@@@ 40 PRINT PFORM, (BORDER,(BLANK,J=1,S),BORDER)@]@@@@ RETURNVE )@@G@@@^@@@@ 70 DO 56 L = 7,1,-2 @#@@@@ K = K + 1 @ @@@@ ENCODEVF )@@G@@ (5,PFORM(2)) K @ @@@@ ENCODE (5,PFORM(4)) L @C@@@@ 56 PRINT VG )@@G@@PFORM, (BORDER,(F(1),I=1,L),BORD2) @#@@@@ PRINT 57 @G@@@@ 57 VH )@@G@@FORMAT (1H ,62X,'** **',/,1H ,63X,'** **',/,1H ,64X,'***',/, @^@@@@VI )@@G@@ * 1H ,65X,'*') @]@@@@ RETURN@]@@@@ END ___= 6@]@@@@VJ )@@G@@ C3 = 1@]@@@@ C4 = 7@]@@@@ C5 = 2@#@@@@ C6 = -1 VK )@@G@@*[@@@@*SDFF*@#@@@@C CAL EXIT @[@@@@ @^@@@@ SUBROUTINE EVL )@@G@@ND @#@@@@ PRINT 1 @D@@_@ 1 FORMAT (1H0,///,' END N.Y.U. CVM )@@G@@AL 5.7 OF 3/3/72')@]@@@@ RETURN@]@@@@ END ___E(MD-[D1^^8(^@)VN )@@G@@@N_@_@^@)^@)AC)C1JELHCDO^@*ADCA@? 8\ 8?^8)C(IC))D0,FC,E*,^[#CDG^@5 07^[JVO )@@G@@C0)AK\BC\A82^[]FC)EK,^[^E(AC0)DTPELGCDIC)$ C)^@)@@@@$S@)J@C@^X^^@@@)J^X^VP )@@G@@@@@@MI@@@@@[@@@@@@@@@@[R@[O@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@30 @@@@@@VQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VR )@@G@@@@)^@@@@)^@-@]7^[D@[]^^I@[+^ *@@G^BS@ 3^B%0@M@@@@SK@C@@@@___@@@___@@@___VS )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___VT )@@G@@@@@___@@@___@@@___@@@___ NN: XX XX XX XX:NN NN:XX XX XX XX :NN VU )@@G@@ 29 25 21 17 13 9 5 132 28 24 20 16 12 8 4 [W@^@[[O@^@[[S@^@][W@^@#VV )@@G@@[O@^@^[S@^@ [W@^@A/K@@CTK MMK HH@@@@@@K BBK WW@@[@@@@[^^@@@[^^@^VW )@@G@@ VX )@@G@@ @@[@@@@@[@@[@]C^@-@[C^@(THE 1108 CHECKER BVY )@@G@@OARD READS: BL WT KING XXXXXX ++ +XXXXXX VZ )@@G@@XXXXXX XXXXXX XXXXXX + + XXXXXX XXXXXXWA )@@G@@ XXXXXX XXXXXX+ +++++++++++++++++++++++++++++++++++++WB )@@G@@+++++++++++++ @@@@@@@@@@@@@@@@@@@_ ^@6@[E^[Y@@[^[[0@ @[E^[E@[E^[@WC )@@G@@ MOVES JUMPS NN TO NN, TAKING WD )@@G@@ BLACK WHITE K@@@@@@@-@@ @]#^[1@@[@@@@@[@@ NN TO WE )@@G@@NN, TAAROUND TAERROR IN DATA C4?^^@C0?^^@C??^^@C*?^^@C=?^^@/,)^]PWF )@@G@@C)?=^@Q;K@@@/KE@@@=@@@32@@@@31[@@@30]@@@29#@@@28^@@@27 @@@26A@@@25B@@@00WG )@@G@@D@@@24E@@@23F@@@22G@@@21H@@@20I@@@19J@@@18K@@@17M@@@00N@@@16O@@@15P@@@14WH )@@G@@Q@@@13R@@@12S@@@11T@@@10V@@@ 9W@@@00X@@@ 8Y@@@ 7Z@@@ 6)@@@ 5-@@@ 4+@@@ 3WI )@@G@@<@@@ 2=@@@ 1@[]^#@@JH^^@@@@@@@@@G^#@@@%^^@YOUR MOVE - ILLEGAL MOVETHAT IWJ )@@G@@S NOT YOUR PIECE YOU MUST JUMP WHEN YOU CAN THE SQUARE YOU ARE MOVINWK )@@G@@G TO IS OCCUPIED ONLY KINGS MAY MOVE BACKWARD YOU MAY JUMP ONLY MY PIEWL )@@G@@CES YOUR MOVE ENDS WHEN YOU OBTAIN A KING YOU MUST TAKE ALL POSSIBWM )@@G@@LE JUMPS IN A SERIES ERROR IN READING VALUE CARDS @_____@@____@@@___WN )@@G@@@@@@__@@@@@_[5Z^^@[1Z^^@[!Z^^@[(Z^^@[>Z^^@/,)^#.[-Z=^@Q;K@@@/KE@@@@[#^]GWO )@@G@@@@[@@@@[]^#]@[^^#^@[ ^#C@[B^#H@[ ^#O@[ ^#T@[B^#Y@[C^#>@JH^^@@[C^A< WP )@@G@@K@@@@@ 1@@D^^<@K<^^<@K=^^?@K=^^5@K=^^"@] ^#!@@@@@@@#&@A8@#C@ Y@#&@ YWQ )@@G@@@]4@^?@#M@A8@#W@A(@#W@AK@#R@ 7@@@@@@@#W@A(@#-@B]@#-@A(@#W@ Y@#&@ Y@#:@B4WR )@@G@@@#0@B9@#&@AK@@@@@@@#:@AK@#0@B9@#0@B4@#:@ Y@#0@ Y@#'@A(@#'@B]@#0@A(@@@@@@WS )@@G@@@^^@ 7@^^@AK@^^@A(@#'@A8@@@@^?@@@@ Y@@@@ Y@@@@A8K@@@@@@@@@@@@@@@@@@@@@@@WT )@@G@@_____"@@@@@@@@@@@@@@@@@@@@@@@@TIME: MM:SS.TTT VALUE: -000000 WU )@@G@@ @@@@@@@@@@@@[?K^ ![0K^ ![4K^ ![)K^ ?[=K^ ?[*K^ ?[?K^ ?C)/)@@/\X@@@WV )@@G@@C4/@@@C0/@@@C?/@@@C*/@@@C=/@@@/\K^ 9SAM -- THE LSD/1108 CHECKER PLAYER WW )@@G@@THE 1108 CONCEDES SORRY, NO DEALS. @BRKPT PRINT$ . IT IS A DRAW, COMEWX )@@G@@ AGAIN, THANKS. WHICH COLOR WILL YOU PLAY (BLACK MOVES FIRST)? WY )@@G@@THE 1108 WINS, THANKS. GOODBYE AND THANKS FOR PLAYING 1108 CHECKERS. WZ )@@G@@NICE PLAYING- YOU WIN, COME AGAIN. UNRECOGNIZABLE KEY-IN. DO YOU WANT XA )@@G@@TO PLAY AGAIN NOW?THE 1108 EXPECTS TO WIN SOON -- TO CONCEDE, TYPE C. XB )@@G@@DEPTH: 000. BOARDS EVALUATED: NNNNNNNNN @@@@@@@@!^AQ@@A^BE@[C^AQ@JH^BEXC )@@G@@@@@@@@@@Y^A5@@#^BE@[ ^A5@JH^BE@@@@@ @@@@@E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XD )@@G@@@@@@@@@@@@@@@@@@@@@@@[;_Z;0@@@@@@@@@@@@@@[@[@@@@@@)@@@@@K@@@@[A^A[@[D^A'XE )@@G@@@[]^AK@[A^AK@[^^AZ@[A^A:@[#^AE@[^^A1@@#^AH@@[^ /@[]^ 0 @[C^A< . XF )@@G@@@[]^B# @[ ^B @]#^ABK@@@@@@@R^ L@@R^ K000 @[#^ *@@[@@@@[#^ :XG )@@G@@Z;_Z;_Y@@@@J@=,$.(@@@@@A@@@@@@;E)@@ ;E)@@^;%)@@ ;%)@@^@@@@@@@@@@@@@@@@@@XH )@@G@@@@@@@@@@@@@@;%)@@^;%)@@ ;E)@@^;E)@@ ;%)@@ ;%)@@^;E)@@ ;E)@@^@@@@@@@@@@@@XI )@@G@@@@@@@@@@@@@@@@@@@@;E)@@^;E)@@ ;%)@@^;%)@@ ;*@@@ ;*@@@^;C@@@ ;C@@@^@@@@@@XJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@;C@@@^;C@@@ ;*@@@^;*@@@ /K@@U\/K@@UV/K@@UF/KF@@@XK )@@G@@@ +9#@FFO_#@FE5/Z.FES:+^FD/_69FD+\ #FDD0O%FC1;.BFCVFR[FC S1]FB0ZBBFBWT;OXL )@@G@@FBD KBFA6X<*FA=Z:3FANC3AFA]QP6@@@@@ @@@@@^_____;_____'@@@@@ @@@@@^_____'XM )@@G@@_____;@@@@@^@@@@@ _____;_____'@@@@@^@@@@@ _____'_____;@@@@@ _____'@@@@@^XN )@@G@@_____;@@@@@ _____'_____;@@@@@^_____'@@@@@ @@@@@^_____;_____'@@@@@ _____;XO )@@G@@@@@@@^@@@@@^_____;@@@@@ _____'@@@@@^_____;_____'@@@@@ _____;@@@@@^@@@@@ XP )@@G@@_____'_____;@@@@@^_____'@@@@@ @@@@@ _____;_____'@@@@@^@@@@@ _____;@@@@@^XQ )@@G@@_____'_____;@@@@@ _____'@@@@@^_____;@@@@@ @@@@@^_____'K@@@@@C@@@@@^@@@@@XR )@@G@@]@@@@@[@@@@@@)@@@@@K@@@@@C@@@@@^@@@@@]@@@@@[@@@@@@)@@@@@K@@@@@C@@@@@^@@@XS )@@G@@@@]@@@@@[@@@@@@)@@@@@K@@@@@C@@@@@^@@@@@]@@@@@[@@@@@@)@@@@@K@@@@@C@@@@@^@XT )@@G@@@@@@]@@@@@[@@@@@@)@@@@@K@@@@@C@@@@@^@@@@@]@@@@@[@@@@@@@@@@@[@@@@@[@@@@@]XU )@@G@@@@@@@[@@@@@]@@@@@]@@@@@#@@@@@[@@@@@]@@@@@]@@@@@#@@@@@]@@@@@#@@@@@#@@@@@^XV )@@G@@@@@@@[@@@@@]@@@@@]@@@@@#@@@@@]@@@@@#@@@@@#@@@@@^@@@@@]@@@@@#@@@@@#@@@@@^XW )@@G@@@@@@@#@@@@@^@@@@@^@@@@@ @@@@@[@@@@@]@@@@@]@@@@@#@@@@@]@@@@@#@@@@@#@@@@@^XX )@@G@@@@@@@]@@@@@#@@@@@#@@@@@^@@@@@#@@@@@^@@@@@^@@@@@ @@@@@]@@@@@#@@@@@#@@@@@^XY )@@G@@@@@@@#@@@@@^@@@@@^@@@@@ @@@@@#@@@@@^@@@@@^@@@@@ @@@@@^@@@@@ @@@@@ @@@@@AXZ )@@G@@@@@@@@)@@@)@K@@@K@0@@@0@C@@@C@*@@@*@S@@@S@8@@@8@^@@@^@=@@@=@O@@@O@4@@@4@YA )@@G@@G@@@G@?@@@?@W@@@W@/@@@/@]@@@]@+@@@+@M@@@M@2@@@2@E@@@E@%@@@%@U@@@U@'@@@'@YB )@@G@@A@@@A@&@@@&@Q@@@Q@6@@@6@I@@@I@,@@@,@Y@@@Y@"@@@"@[@@@[@-@@@-@L@@@L@1@@@1@YC )@@G@@D@@@D@(@@@(@T@@@T@9@@@9@ @@@ @>@@@>@P@@@P@5@@@5@H@@@H@!@@@!@X@@@X@.@@@.@YD )@@G@@#@@@#@<@@@<@N@@@N@3@@@3@F@@@F@:@@@:@V@@@V@;@@@;@B@@@B@$@@@$@R@@@R@7@@@7@YE )@@G@@J@@@J@\@@@\@Z@@@Z@_@@@_@@@@@K)@@@@@K@@@@K0@@@@@K@@@@K[@@@@KL@@@Z_5@@@@K[YF )@@G@@@@@@C@@@@@S[@@@@C@@@@@KK@@@@SK@@@Z_7@@@@KK@@@]@@@@@]KK@@@]@@@@@C@K@@@E@KYG )@@G@@@@@Z_9@@B@@@^L^L@@]C+C+C@@L^L^C+C@@@L@@@@@K-]^CK[]^CK-CK-]@@@@CK-]^CK@@@YH )@@G@@]@@@@@@B0@@@@PPPPP@K@@@@Z____-__"@@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YJ )@@G@@A]0^@U9?@^@V0G]@@#;^@@@=9*@^@SC8K@@#C8)@@[R]K^@XC@H^@C[C@^@@;C@@@M[C@^@^YK )@@G@@C@H^@G[^@^@#;C@@@M[^@^@BC8@@**=@+@@@C@@^@S=@+@@[C@@^@T=@+@@];)@@@A')D=@KYL )@@G@@'C)@CK[O@^@AC@@^@Y/,0@TGC@@^@Z/,0@TG;*)@@]8#K@CBR]0^@U/KF@@@R#)^@2AA0^@)YM )@@G@@R#K^@3EK"^^=C@@^@-;G0@@=W80@@EG9@@@:G@@@@K;@@@@A/^0@C$/)K@C40KI^^=G8@@@WYN )@@G@@;@@@@A[@H=@-EG"^^=/K@@C&0GI=^=G8@@@W;@@@@A[@H^@*$;K@@C/K@@C>C@@^@4Q#0@@IYO )@@G@@;G0@@=W80@@D=9@@@CG8@@@[/,0@TGC@@^@5=9@@@CG8@@@[/,0@TG=9@@@C$;)@@[M@@]YS )@@G@@/K@@D0C@0^[%=[M@@@C@0^[([@/)@@;(K@@[8KK@D(/,)@EHC[K^[*/-0@D7[@W)@@C@0^@.YT )@@G@@=[M@@@C@0^[(=[M@@[C@0^[%[@/)@@;(K@@[8KK@D6/,)@EHC@@^[\/>0@E#Q;@^[O'=@@@IYU )@@G@@C[K^[*;(K@@^/>0@EC;(K@@[[[K^[*8^0@DPC@@^[?'=@@@I/KF@@@/>0@EJ[@W)@@C@@^[0YV )@@G@@'=@@@IC@@^[!N8K@@#/KE@@@C@@^][1G]@@#C@@^]][@@^[1[@@^[4C[#@@@-[]@@[;S@@@LYW )@@G@@C@<@@[%@+@@@/K@@E?C X^]S;(K@@MH@@^]#;S)@@GG@0@@HG Z^]S;(K@@A?[]@@[;[K@@MYX )@@G@@'LK^]^[[K^[3C@@^] /K@@TGR]@^]AR])^]B9!)^]C9()^[6-@+@@@/[K@F[CO!^]S[W)^[6YY )@@G@@[W)^[7H@@^]#;S)@@GG@0@@HCOJ^]S![]@@[/K@@E.[W@^[6/K@@E"[W@^[7C@<@@[-@+@@@YZ )@@G@@/K@@F#9?@^]E9*@^[6 @@@@I;S@@@JG@K@@IC H^]SG9@ @@')C)FOH@@^]#/@@@FIC@0@@GZA )@@G@@C@)@@H/K@@F^C9@ ')C)FOC8E@@@&;G@]@Q;@^[4/K@@TG[DE^[4/,K@FQ[ E=[4Q'@@@@ZB )@@G@@/KD@@@A]0@[[ @]@@]/,0@I7')H=]JC80@@[:8)@@WD@0@@J[G2@@#N8)@@[ @@@@N/,0@I"ZC )@@G@@)[)@@N:8)@@,/K@@F<*@@@[][[2@@@[[2@@[%8)@@;/K@@F/ @@@@N/,0@I")[)@@N:8)@@,ZD )@@G@@/K@@F!C[)@@N(@@@[]/K@@F8)[+@@@[[2@@@[[+@@]/K@@F/)[+@@[[[2@@[)[+@@][[2@@]ZE )@@G@@(@@@[]/K@@G] @@@[]/,0@I7')H=]J/K@@F+R]0@[[C@]@@[+@]@@@/@V@@@C@@^^I'=@@@IZF )@@G@@/K@@FTA]0@[J9?]@@@9?+@@]9*#@@@9*<@@]*0@^ C/K@@GNC8@^];'=@@[]/K@@GTC8@^].ZG )@@G@@'=@@@CC^@^].G8@@@ ;G@@@=W8@@@AC8K [CW^^@R'0@GEC8@^^@1@@^^@/K@@OJC@@^^JZH )@@G@@C@K@@G/,0@I"N@0@@MN[@@@J>[<@@@/K@@IE @@@[I=[<@@]N;)@@[/,0@I"L@0@[^E[@@@KZI )@@G@@%9@@@E:9@@@C/K@@HG?9@@@A?9@@@^/K@@IBN@N@@@/,0@IZ/B)@IH>[<@@@=[<@@[/K@@IKZJ )@@G@@L@0@[^TH#@@#(@@@[I/H@@INC@3@@@H@0@[#G@0@@M[@3@@@C@3@@](@@@[I/K@@HBH@0@[#ZK )@@G@@G@0@@M[@3@@]/K@@I@>[)^CO/K@@I@)@0@@M[[#@@]/K@@I@9*@@[B>[<@@@=[<@@[/K@@IKZL )@@G@@[@0@[DH@0@[^E[@@@J:9@@@C/K@@HR%9@@@E/K@@IBC[@@@JTH#@@#(@@@[I/H@@INC])@@MZM )@@G@@;@0@@[')J^C%>]<@@[/K@@IQD])@@Q+]<@@]G]<@@[(@@@[I/K@@H$H]0@[#G]0@@M9%<@@[ZN )@@G@@K[<@@@H[0@[#[[3@@@(@@@[I>[)^CO/K@@H4K[<@@][[3@@]%8)@@-:8)@@,/K@@IT/K@@I@ZO )@@G@@%8)@@-:8)@@,/K@@H;N@K@@M/,0@IZ/#)@I@/K@@IW[[)@[#N[@@[D9?@@[B/,0@I"/K@@HGZP )@@G@@9?#@@@[@#@@[[@N@@@DG#@@#[G#@@#R]0@[J/KF@@@C@@^^K/,0@TG/K@@GEC@@^^L/,0@TGZQ )@@G@@/K@@GEC@@^^M/,0@TG/K@@GEC@@^^N/,0@TG/K@@GEC@@^^O/,0@TG/K@@GEC@@^^P/,0@TGZR )@@G@@/K@@GEC@@^^Q/,0@TG/K@@GEC@@^^R/,0@TG/K@@GEC;)@@[D[#@@@H[#@@[+[@^CNC]N@@]ZS )@@G@@C8@@@^C])@[[/C@@I*+]K@@QKG#@@#')H^C:+]<@@[C])@@R')H^C:+])@@L/A;@@@G8@@@[ZT )@@G@@%8@@@ :/@__;/K@@I>H8@@@F:/@__'/K@@I>8A:@@@C@@^^S'=@@@HC8K [CW^^@C@@^^JZU )@@G@@C@K@@G/KF@@@ @@@@J')H=]J?8)@@'?8)@@0/K@@JBT80@@EH8)@@0G@0@@I/K@@I_!80@@-ZV )@@G@@ @@@@JC4_^]SC9)@@[;(\@@@/KF@@@C@@^^T/,0@TG'=@@@DA]0@[^N80@@[C9K@@W0G]@@#ZW )@@G@@C9K@@BC@K^^JC@0@@H')H=#7C[2@@@/,0@J0C9K@@;')H=#7C[+@@]+[+@@@(@@@[#+[+@@[ZX )@@G@@/,0@J0(8H@@@/K@@J$N@!^#1C@Z^^@<@K^^U[@\=^@C8@^^@&#@@@J'=@@[SR]0@[^(@@@[#ZY )@@G@@/KF@@@ @@@[#C[2@@[/K@@JT @@@@GC[@@@N;T@@@K:9K@@<8#K@J"G@@@@LC>W^]S')H=#7ZZ )@@G@@C-W^]S')H=#7H[@^^VC9K@@,')H=#7/K@@J21/H@@@/KF@@@G8K@@AH80@@[/KF@@@C@@^^WAA )@@G@@[@@^^R8)^B&N#0^CQC8@@@A[@@^CQ/,0@TRCK]@@#^#0^CQR]0^B=R@)^B>!/@)B_/KF@@@BR )@@G@@C@@^CF/,0@TG/K@@OB @@@@O/]%@@@;U)@@QG'@@@[H])^CG/K@@SGC@@^CH'=@@@4/KF@@@BS )@@G@@C@@^CI(4@^ C'=@@@4C@@^ &H@@^ $G8@@@#;G@@@=W8@@B4/KF@@@C@@^CI'=@@@4C@@^ &BT )@@G@@H@@^ $G8@@@#;G@@@=W8@@@ @@@@IN8K@@];G@@@=W8@@@E;GK@@A8KK@S&G@)^CJ[@)^ %BU )@@G@@;G@@@=W8@@@/;GK@@=W8K@@EG8)@@0[=)^ (G8K@@0[*K^ (;G@@@=W8@@@EG8K@@0[0K^ (BV )@@G@@G8@@@0[4@^ (C@@^CK'=@@@I/KF@@@9?@^ ,9*@^ ?EK]@@#C@)^CL;G@@@=W8@@@EG8K@@0BW )@@G@@')I= 2/^@@T[C8K@@-0K]@@#')I^ 2C@@^CM'=@@@I/KF@@@*0@^ C/K@@TK'=@@@I/KF@@@BX )@@G@@[@@^ IC?@^ IT8@@@A[C@^ IC8@^ H'=@@@C/KF@@@ @@@@[ @@@@V @@@@UA]1^H&C@#@@@BY )@@G@@G@#@@[/,0@VA!8@@@B/K@@T_C80@@#C@#@@@/,_^C_C[@@@GR])^HGN8K@@#2[E=G7/K@@T"BZ )@@G@@C@#@@[/,_^C_%@E^G1/K@@T&C@#@@]/,_^C_%@E^G2/K@@T&C@E^G3/,_^C_[@]@@@C@E^G4CA )@@G@@/,_^C_[@]@@[C@E^G5/,_^C_[@]@@]C@E^G6[K]@@#DG#@@#[G]@@#/K@@UD8#0@T-C')Z__CB )@@G@@[M<@@#9,<@@@9%+@@@9,<@@]9%+@@]/,0@V!CK]@@#/,0@VO[K]@@#R]1^H&/KF@@@+8@@@_CC )@@G@@[@@^CRCCH^F7C=K^CRC*)^CRG^H^F7G4I^F7;*@@@MC?K^CRC0)^CRGCH^F7C4K^CRG^I^F7CD )@@G@@G4H^F7;C@@@[/KF@@@+@@^HH;GK@@,+@@^HI)@K@@I+@@^HJ;*K@@E)@K@@I+@@^HK;CK@@OCE )@@G@@)@K@@I+8@]C+;*K@@O)@K@@I+@@^HL;CK@@Y)@K@@I+8@@@L;?@@[]G@@@@I/KF@@@+@@^HMCF )@@G@@;GK@@*+@@^HN;*K@@^)@K@@I+@@^HO;CK@@G)@K@@I+@@^HP;*K@@G)@K@@I+@@^HQ;CK@@OCG )@@G@@)@K@@I+8@[]^;*K@@O)@K@@I=@@^HRG8)@@C=8@@@CG@)^HRC@@@@I/KF@@@+8@@@_[@@^CRCH )@@G@@C)H^E7C=K^CRC*)^CRG)H^E7C?K^CRG)I^E7C0)^CRG)H^E7C4K^CRG)I^E7G)H^E7/KF@@@CI )@@G@@E@K@@G!8KZ8@/KF@@@;*K@@M"KK@@H+@)^HSL@0@@IG@)@@J;C0@@QC[K@@KY[@@@ID@)@@KCJ )@@G@@S[@@@KS[@^HTG[@^HUU[@@@IS@K^D#G@)@@KH@\^C4S8)@J*;O)@@V0@@@@GD@0@@JC/J@@@CK )@@G@@/KF@@@G;0@@[C"))@@[M+@@#A]1^H$O8K@@[/,0@V9CM+@@#:"))@@/,0@X@H;0@@[R]1^H&CL )@@G@@8@V@@@A]1^H$AD[^H$9*[^H*9*-^H%[[[^H?R9[^H!O8K@@ED@3@@@H@3@@[+@0^CNC8)@@^CM )@@G@@C@#@@@/C)@WC+@#@@]C@@@@HKG<@@#')J^C8+@#@@[C@@@@H')J^C8+@@@@K/@K@W4;U)@@HCN )@@G@@C@@@@RC@G^EOH@K@@GC])@@G')J^CYD]0@@Q')J^CY+]3@@]G]3@@[C#N@@#>]<@@]/K@@W*CO )@@G@@H#@@@QG#@@@GC]N@@@L]K@@QG])@@G9%=@@@9:^@@]/,0@YBCM+@@#!M<@@#/K@@W9/K@@WICP )@@G@@=@@^COG#@@@GC]N@@@L]K@@QG])@@G9%=@@@9:^@@]/,0@Y1CM+@@#!M<@@#/K@@W9/^K@WJCQ )@@G@@D@)@@I/G)@W^G8)@@[:8)@@ /K@@W^P8K@@EC[[^H?9?-^H%9?[^H*RD[^H$RA1^H$/KF@@@CR )@@G@@A]1^H$AD[^H$9*[^H*9*-^H%[[[^H?R9[^H!O8K@@ED@3@@@H@3@@[+@0^CNC@@^CPS8@@05CS )@@G@@W@@^HV[@K^CP+8K@@/&;)@@^C@#@@@C@"^DO/C0@XP+@#@@]C@@@@HGG3@@#')J^C8+@@@@KCT )@@G@@/@K@X.;U)@@HC@@@@RC@G^EOH@K@@GC])@@G')J^CYC##@@]>])@@S/K@@X>G#@@@GH#@@@QCU )@@G@@/K@@X$=@@^COG#@@@GC]3@@@H]0@@QG]0@@GC]<@@[DJN@@#9%=@@@9:^@@]DM+@@#[M=@@#CV )@@G@@/,0@Z2D@@@@G%K]@@#?K]@@#/K@@XS9,=@@@9%+@@@9,=@@]9%+@@][K]@@#!K#@@#/K@@Y@CW )@@G@@/^K@XT'K)^HW%8,@@@/K@@XKP8K@@EC[[^H?9?-^H%9?[^H*RD[^H$RA1^H$/KF@@@A]1^H$CX )@@G@@AC1^H$R@0@@^9*[^H*9*-^H%R9[^H?O8K@@D @@@@GD@<@@@H@<@@[+@)^CNC8K@@^KGN@@#CY )@@G@@C]-^HZ')I^C:>]<@@[/K@@Y%D]0@@Q')I^C:>])@@J/K@@Y%C@@@@Q+]3@@]G#@@@QH#[^HZCZ )@@G@@G]3@@[G]<@@@H]-^HZC#N@@#9%=@@@9:^@@]/,0@YBCM+@@#!M<@@#/K@@Z:D@K@@H/GK@YNDA )@@G@@G8K@@[:8K@@ /K@@YN/^@@Z:/K@@ZTA]1^H$AC1^H$R@0@@^9*[^H*9*-^H%R9[^H?O8K@@DDB )@@G@@=@@^CO/K@@ZTD@<@@@H@<@@[+@)^CN @@@@GC8K@@ KGN@@#C]-^HZ')I^C:>]<@@[/K@@ZQDC )@@G@@D]0@@Q')I^C:>])@@J/K@@ZQC@@@@Q+]3@@]=])^COG#@@@QG]3@@[G]<@@@H]-^HZC#N@@#DD )@@G@@9%=@@@9:^@@]/,0@Y1CM+@@#!M<@@#/K@@Z::8K@@ 8#K@Y_/^@@Z:C]<@@[C]3@@@C##@@]DE )@@G@@DJN@@#9%=@@@9:^@@]DM+@@#[M=@@#/,0@Z2D@@@@G%K]@@#?K]@@#/K@@Z:9,=@@@9%+@@@DF )@@G@@9,=@@]9%+@@][K]@@#P8K@@D9?-^H%9?[^H*R[@@@#RC1^H$RA1^H$/KF@@@A]1^H$AC1^H*DG )@@G@@R@0@@^A^-^H*R8-^H(O8K@@A(@^@@@/K@@)^?#0^CQ/K@@)BG;0@@[C"))@@[M+@@#/,0@V9DH )@@G@@H;0@@[CK]@@#%/@)@@/K@@)FG;)@@[/,0@K$/K@@)D/,0@V!CK]@@#:/@)@@G@@@@VR]1^H-DI )@@G@@RC1^H+R^-^H+P8K@@A/KF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MAIN @@5@@@@@@@@[DK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DM )@@G@@ERU$ K@@@@^D>L^X PSMALL @@]@@EJS7DK @@)^@@@@+@C@PVALS DN )@@G@@@@]@@KJS_DK @@Q^@)@@$@C+PRINT @@]@@QJS/DK @@;^@6@[F@DDPMOVE DO )@@G@@@@]@@WJS3DK @@V^[1@[ @EOREAD @@]@@+JS\DK @]R^]G@ I@FTSTRATEGY DP )@@G@@@@]@@*JSYDK @@>^^<@[$@K$MONITOR @@]@@,JS$DK @#F^ C@BD@MIPLAY DQ )@@G@@@@#@@@JSSDK @ E^CN@A9@TR@J*^HX@@@@@@@@@@@@@@@@@@@@@@V=@D8@C@^4]^@@@D8^4]DR )@@G@@@@@@D]@@@@@[@@@@@@@@@@@.@@8@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@67 @@@@@@DS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DT )@@G@@@[9@C@@@S^@@@@G^@4@R#^X@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___DU )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___DV )@@G@@@@@___@@@___@@@___@@@___9*@^@7A#)^@9;C)@@=R;@^@E'=@@@J0@@@@G'=@@@)R;@@W@DW )@@G@@A#@^@RR;@^@@'=@@@J0@@@@G'=@@@)R;@^@M'=@@@#*4@^@P'=@@@)RB@^@S;G@@@=W8@@@WDX )@@G@@O;@@W@A#@^@6R;@@W[A#@^@RR;@^@M'=@@@#*4@^@P'=@@@)R#@^@6R;K@W@A#@^@R/K@@C&DY )@@G@@9?@^@09/@^@4A#K^@R9?@^@29/@^@4A#K^@RR;@^@M'=@@@#*4@^@P'=@@@)R3@^@V+8@@@RDZ )@@G@@*@@@@I)8@@@CA3K^@VR;@@C;AB@^@TR;@@@CAZ@^@PR;@^@M'=@@@#*4@^@P'=@@@)R;@^@ EA )@@G@@'=@@@J0@@@@G'=@@@)R;@^@I'=@@@J0@@@@G'=@@@)9?@^@7R#)^@9/KF@@@/,0@C@/S@@@@EB )@@G@@ @@^X#'=@@[#*@@@[+/K@@D '?@@DD/S@@@@Q#@@[4;*@@@D&;@@@@N8)@]BR@K^4@R#L@@@EC )@@G@@O#K@@GA#L)@@8K)@DJ.V0@D,.Z0@@@N8)@^HC9K@]BR@K^4[.<0^18.:0@DT.N1)@@.V0@DVED )@@G@@R$@^17O;@@@[:8@@@JR;@@@@A$@^17:[K@[]R@K^4]N8K@ZKM@@@@@8K)@DS.<0^18.:0@D$EE )@@G@@*@@^X#/K@@D?.N0^19/K@@D2.R0^19/K@@D2N8K@@[^@K^X#.V0@D0/K@@DO.V0@D2/W@@D4EF )@@G@@/S@@@@/S@@@@R;@@@['=@@@5'=@@@D@CKPAR WEFOOLEM$$$.THING . @RSPAR WEFOEG )@@G@@OLEM$$$.THING . @ASG,T WEFOOLEM$$$. . @FREE WEFOOLEM$$$. . WEFOOLEH )@@G@@EM$$$ @@@@@@@K@@@@@@W^@S@@@@W@@@@___@@@___@@@@@@@@@@@@@@@@@@@@@@@@C$PT EI )@@G@@ @@@@@@@K@@@@@W@^[@@@@@@@@CKPT C$PT. . @@@@@@ EJ )@@G@@ @@@ EK )@@G@@ XXXXXXXXXXXXXXXX @@ XXXXXXXOOO EL )@@G@@ OOOXXXXXXX @@ XXXX OOO EM )@@G@@ OOO XXXX @@ XXXX O EN )@@G@@ O XXXX @@ XXX O ******** O EO )@@G@@ XXX @@ XXX O ************ O EP )@@G@@ XXX @@ XX * ********** * EQ )@@G@@ XX @@X O **************** O X@ER )@@G@@@ XX * ********** * XX @@ XXES )@@G@@X O ************ O XXX @@ XXX ET )@@G@@ O ******** O XXX @@ XXXX EU )@@G@@ O O XXXX @@ XXXX OOOEV )@@G@@ OOO XXXX @@ XXXXXXXOOO EW )@@G@@ OOOXXXXXXX @@ XXXXXXXXXXXEX )@@G@@XXXXX @@ XXXXXXXXXXXXXXXX EY )@@G@@ @@ XXXXXXX----------------XXXXXXXEZ )@@G@@ @@ XXXX------ ------XXXX FA )@@G@@ @@ XXXX--- O O ---XXXX FB )@@G@@ @@ XXX-- O ******** O --XXX @FC )@@G@@@ XXX- O ************ O -XXX @@ XX- FD )@@G@@ * ********** * -XX @@X FE )@@G@@ O **************** O X@@ XX- FF )@@G@@ * ********** * -XX @@ XXX- O FG )@@G@@ ************ O -XXX @@ XXX-- O *FH )@@G@@******* O --XXX @@ XXXX--- O FI )@@G@@ O ---XXXX @@ XXXX------ FJ )@@G@@------XXXX @@ XXXXXXX----------------XXXXXXXFK )@@G@@ @@ XXXXXXXXXXXXXXXX FL )@@G@@ @@ XXXXXXXXXXXXXXXX FM )@@G@@ @@ XXXXXXX XXXXXXX @FN )@@G@@@ XXXX -------------------- XXXX @@ FO )@@G@@ XXXX -------- -------- XXXX @@ XXX--FP )@@G@@--- O ******** O -----XXX @@ XXX--- FQ )@@G@@O ************ O ---XXX @@ XX-- FR )@@G@@ * ********** * --XX @@X O *****FS )@@G@@*********** O X@@ XX-- * ********FT )@@G@@** * --XX @@ XXX--- O ************ FU )@@G@@ O ---XXX @@ XXX----- O ******** O FV )@@G@@ -----XXX @@ XXXX -------- -------- XXFW )@@G@@XX @@ XXXX -------------------- XXXX FX )@@G@@ @@ XXXXXXX XXXXXXX @FY )@@G@@@ XXXXXXXXXXXXXXXX @@ FZ )@@G@@ XXXXXXXXXXXXXXXX @@ GA )@@G@@ XXXXXXX XXXXXXX @@ XXXXGB )@@G@@ XXXX @@ XXXX --GC )@@G@@-------------------- XXXX @@ XXX --------- *GD )@@G@@******* --------- XXX @@ XXX------ O *********GE )@@G@@*** O ------XXX @@ XX--- * ********** * GF )@@G@@ ---XX @@X- O **************** GG )@@G@@O -X@@ XX--- * ********** * GH )@@G@@ ---XX @@ XXX------ O ************ O ------XGI )@@G@@XX @@ XXX --------- ******** --------- XXX @GJ )@@G@@@ XXXX ---------------------- XXXX @@ GK )@@G@@ XXXX XXXX @@ GL )@@G@@ XXXXXXX XXXXXXX @@ GM )@@G@@ XXXXXXXXXXXXXXXX @@ GN )@@G@@ XXXXXXXXXXXXXXXX @@ XXXXXXX GO )@@G@@ XXXXXXX @@ XXXX GP )@@G@@ XXXX @@ XXXX GQ )@@G@@ XXXX @@ XXX -------------------------- GR )@@G@@ XXX @@ XXX ---------- ************ --------GS )@@G@@-- XXX @@ XX------ * ********** * ----GT )@@G@@--XX @@X- O **************** O -X@GU )@@G@@@ XX------ * ********** * ------XX @@ XXGV )@@G@@X ---------- ************ ---------- XXX @@ XXX GW )@@G@@ -------------------------- XXX @@ XXXX GX )@@G@@ XXXX @@ XXXX GY )@@G@@ XXXX @@ XXXXXXX GZ )@@G@@ XXXXXXX @@ XXXXXXXXXXXHA )@@G@@XXXXX @@ XXXXXXXXXXXXXXXX HB )@@G@@ @@ XXXXXXX XXXXXXXHC )@@G@@ @@ XXXX XXXX HD )@@G@@ @@ XXXX XXXX HE )@@G@@ @@ XXX XXX @HF )@@G@@@ XXX -------------------------------- XXX @@ XX -HG )@@G@@----------- * ********** * ------------ XX @@X--- HH )@@G@@ O **************** O ---X@@ XX ------------ HI )@@G@@ * ********** * ------------ XX @@ XXX -------HJ )@@G@@------------------------- XXX @@ XXX HK )@@G@@ XXX @@ XXXX HL )@@G@@ XXXX @@ XXXX HM )@@G@@ XXXX @@ XXXXXXX XXXXXXXHN )@@G@@ @@ XXXXXXXXXXXXXXXX HO )@@G@@ @@ XXXXXXXXXXXXXXXX HP )@@G@@ @@ XXXXXXX XXXXXXX @HQ )@@G@@@ XXXX XXXX @@ HR )@@G@@ XXXX XXXX @@ XXX HS )@@G@@ XXX @@ XXX HT )@@G@@ XXX @@ XX --------------HU )@@G@@-------------------------------- XX @@X-------- O *****HV )@@G@@*********** O --------X@@ XX --------------------------HW )@@G@@-------------------- XX @@ XXX HX )@@G@@ XXX @@ XXX HY )@@G@@ XXX @@ XXXX XXHZ )@@G@@XX @@ XXXX XXXX IA )@@G@@ @@ XXXXXXX XXXXXXX @IB )@@G@@@ XXXXXXXXXXXXXXXX @@ IC )@@G@@ XXXXXXXXXXXXXXXX @@ ID )@@G@@ XXXXXXX XXXXXXX @@ XXXXIE )@@G@@ XXXX @@ XXXX IF )@@G@@ XXXX @@ XXX IG )@@G@@ XXX @@ XXX IH )@@G@@ XXX @@ XX II )@@G@@ XX @@X----------------------------------------------IJ )@@G@@----------------X@@ XX IK )@@G@@ XX @@ XXX XIL )@@G@@XX @@ XXX XXX @IM )@@G@@@ XXXX XXXX @@ IN )@@G@@ XXXX XXXX @@ IO )@@G@@ XXXXXXX XXXXXXX @@ IP )@@G@@ XXXXXXXXXXXXXXXX @)@@@@@@@[^17@@F^X^@@F^X^IQ )@@G@@@@F^X^@@F^X^@@F^X^@@F^X^@@F^X^@@F^X^@@F^X^@@F^X^@@F^X^@@F^X^@@F^X^@@F^X^IR )@@G@@@@F^X^@@F^XJ@@F^XU@@F^X>@@F^X0@@F^X;@@F^YA@@F^YL@@F^YW@@F^Y$@@F^Y2@@F^Y.IS )@@G@@@@F^ZC@@F^ZN@@F^ZY@@F^Z(@@F^Z4@@F^Z_@@F^)E@@F^)P@@F^))@@F^):@@F^)6@@F^-[IT )@@G@@@@F^-G@@F^-R@@F^-+@@F^-!@@F^-8@@F^+#@@F^+I@@F^+T@@F^+=@@F^+\@@F^+'@@F^< IU )@@G@@@@F^DIV )@@G@@@@F^>O@@F^>Z@@F^>%@@F^>5@@F^&@@@F^&F@@F^&Q@@F^&-@@F^&?@@F^&7@@F^$]@@F^$HIW )@@G@@@@F^$S@@F^$<@@F^$,@@F^$9@@F^*^@@F^*J@@F^*U@@F^*>@@F^*0@@F^*;@@F^(A@@F^(LIX )@@G@@@@F^(W@@F^($@@F^(2@@F^(.@@F^%C@@F^%N@@F^%Y@@F^%(@@F^%4@@F^%_@@F^:E@@F^:PIY )@@G@@@@F^:)@@F^::@@F^:6@@F^?[@@F^?G@@F^?R@@F^?+@@F^?!@@F^?8@@F^!#@@F^!I@@F^!TIZ )@@G@@@@F^!=@@F^!\@@F^!'@@F^, @@F^,K@@F^,V@@F^,&@@F^,1@@F^,/@@F^\B@@F^\M@@F^\XJA )@@G@@@@F^\*@@F^\3@@F^\"@@F^0D@@F^0O@@F^0Z@@F^0%@@F^05@@F^1@@@F^1F@@F^1Q@@F^1-JB )@@G@@@@F^1?@@[^18@@[^19__"^3_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JD )@@G@@MAIN @@K@@@@@@@@[N#6E55^#0D8#N#6E6IR#0@@N/,0@FRE@[D!N^M=D8[G.0@@=JE )@@G@@^&=D8#E*[D!P^'=]+C/]0^L>/K@M*T/K@@@@/,0@FRR]@^MF^M=]?QEO[D?R^&=^VTR_S@@@JF )@@G@@^'=D'7E/[D!S I=D8K/K@^LZERU$ K@@@@^N=9GBBEXGET @@]@@EF+@]ECJG )@@G@@@@'^@@@[]@C@EYE @@]@@@F-5]EC@3D^@'@@7@D]KQ@@@#RF@^WL[@@D8[C@@@[GJH )@@G@@[@@D8#/,0@FR^EKD9YW@@D8[^V=)@[^?=)@]^.=)@# I=)@^@[@]&?[[G@C@ ]1^@@[[G ]1JI )@@G@@@@@@7T@@@@]Z@@H^@@@@@@ *@DG@@8@@@@@@@@@@@@@@@@@@@@@@@@@@H^@457 @@@@@@JJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JK )@@G@@@[G@8&@@L^/.@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___JL )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___JM )@@G@@@@@___@@@___@@@___@@@___C/@@@[[@@^ZWC/@@@^H@@^/3*@@@@G/K@@8,C/@@@][@@^ZWJN )@@G@@/,0@3'@@[^. @@@^/0@[E^.G@@K^/(@@K^/%'^@@2K/,0@3'@@[^.^@@@^/0@[I^.G@@K^/:JO )@@G@@@@K^/?@@K^/!@@K^/;@@K^//@@K^/3'^@@2KC/@@@[H@@^/?T@@^.AC/)@@[H@)^/:T@)^.BJP )@@G@@G@@@@IC@)^/;T/)@8KH@)@@GC@@^//T/@@@/G@@@@IG@@^/3[@@^/9C@)^/(T@)^/%[@)^/'JQ )@@G@@/,0@31@@@^/9@[S^.G/,0@3(@@@^.C@[T^.G[@@^/3C/)@X?G@)^/![@)^/!/,0@0N@@[^/.JR )@@G@@@[V^.GR@K^.DN.@@@[C/[=/\'^K@2H8L@@9-'^@@2KN@0@9$/K@@9*@[-^.GR]0^.HR@K^.JJS )@@G@@N[@^.K*4@O.E/K@O.E/K@@,]AA0^.HA@K^.J^[@^.K/K@@8&(017H N.Y.U. CAL 5.7 ,AJT )@@G@@6,004H AT ,A6) (6I2) (2I6) @@@PA@@@D84@_____"@@[@@[@@F@@[@@@@@@SUBA JU )@@G@@@[-@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9@8&@@'^_/@@J ]Q@@@___JW )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___JX )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___JY )@@G@@R@K ]QN.@@@#C@@^_/[@[="Z8L@@8*/,0@:*@@[ ]R@@@ @&@[J ]<@@K^_.R@K ]SN.@@@[JZ )@@G@@C/[=/\'^K@2H8L@@82R@K ]SN.@@[ C/[="Z'^K@2H8L@@87'^@@2KC@@^_>H@@ ]T*@@@@GKA )@@G@@/K@@9C/,0@4-@@[ @4@[V ]@!8LK@9'C/)@[Z'O)@@[]@)@@[8L@@99C@)^/0G/)@@0;@)@@A[@)^/0KG )@@G@@C[@^/1G.@@@0;[@@@A[[@^/1C@)^_"G/)__5/C)@'J*@@@@I/K@@'K/K@@'OC@@^/1[@@^/0KH )@@G@@C@)^_/[@)^/1C/@@@[[@@^_"R/K@@[N.@@[UA@K^/3R@)^_"A@) ]&C@[^"ZH@@^_/*@@@@GKI )@@G@@/K@@'!C@@^/3R@) ]&[@]^"SC@-^")H@)^_/(@@@@I/K@@'5C/)@@[G@)^_"[@)^_"G/)__8KJ )@@G@@/G)@'!*@@@@I/K@@.(C@[^"ZH@@ ]W*@@@@G/K@@'3C@@^_/[@[^"ZO/K@@[8L@@'SC/@@@[KK )@@G@@[@@ @[C/)__"G@)^_"C.@@#GG[@^/2R/)@@[[@)@[^[[@ ]&A@)^__C/@@@CG@@^__[@@ ]$KL )@@G@@C@]^"SH@@ @[[@@ @]G/@__3/G@@;D*@@@@G/K@@.7C@]^"SG/@__"[@@ @#C/)@@[[@) @^KM )@@G@@C.@__"G[@ @]H@@ @[R@K ]XQ@K @[[@@@[ [[@ ]*C@@ @^;@@@@-G@@^__C@-="Z[@? @!KN )@@G@@C/@@@[G@@ @^[@@ @^8LK@;PC.@@@GH[@ @];L@@@[[[@ @ ;[@@@-C.)@@CG[)^__G[@@@MKO )@@G@@R@K ]YQ@K ]$R@0 ]YQ@0@@KN[K ]*C@[>@![@#=/08LK@;:C@+^"SG/)@@[[@) @[O/)@@[KP )@@G@@8L@@'"R@K ]ZN.@@@AN.K@@FC@@^_/[@[>@,8LK@;6C/)@[N'O)@@[]@)@@[8L@@;5R/0@@DKQ )@@G@@R/)@@CN.@@@AN.K@@FRA0^_"$'0@@C8];@/^/K@@/G/K@@/&/K@@/Z/K@@/Z/K@@/Z/K@@/SKR )@@G@@/K@@/L/K@@/I'^@@!0@]\ ][ZKW )@@G@@C@2^LP )@@G@@[[) @!/,0@0N@@[ [N@[X [W'^@@2KC@@^Z$[@@ @1R@K [ON.@@@^N.K@@^C@@ [P[@[=_LLQ )@@G@@8LK@8/C/)@@$'O)@@[]@)@@[8L@@8;C/)@@[G@)^Z&[@) @2RA0 @2$'0@@^8];@9D/K@@9HLR )@@G@@/K@@9%/K@@9)/K@@9J'^@@!0@[% [WC/@__"G@@ @1R@K [OR@) [Q[@@@[^N.K@@^C@]=)]LS )@@G@@[@[=_L8LK@9PC/)@@$'O)@@[]@)@@[C/)@@S'O)@@]]@)@@]8L@@9O/K@@9?C/@@@][@@ @1LT )@@G@@R@K [RN.@@@^C@[^_S[@[^_MC@-^_T[@-=_N8L@@9=/K@@9?C/@@@ [@@ @1C/@@@EG@@ @1LU )@@G@@R/)@@[R/K@@[R@0 [ZN.@@@C[@@ [) @@ @3C@#^/\[@@ @2C@) [P[@-^"'R[@ @2C_)@@@LV )@@G@@N.K@@^[#) @0C/@@@AG@@ @0[@@ [-C@^^_#;)@P@3;C@@@@>8L@@'RR/K@@[R/)@@[N.@@@#C@] @(LY )@@G@@[@@ @0R@0 @0C_)@@@N.K@@^[#) @\C@@ @\T/@@@A[@@ [-G/@@@A[@@ [+C@# @U;)@P@\LZ )@@G@@;C@@@;)/@@@;G)@@A;@0P[-[@1 @>G_)@@[MA )@@G@@8LK@'+O/K@@[O/)@@[8L@@'X/,0@0N@@[ @7@]W [WR[@ [SN.@@@CC/^="''^K@2H8L@@'_MB )@@G@@R@0 [RN.@@@^C/#=_R'^K@2H8L@@;^R@K [SN.@@@#C/[>@>'^K@2H8L@@;D'^@@2KC_0@@]MC )@@G@@R@) [)N.@@@^[#0 @4C@@ @4T/@@@ G/@__'[@@ [)C@]^_7[@@ @5G/@@@CR.@@@[R/0@@[MD )@@G@@R@K [ZN.K@@C[@@ [-C@@ [)[@@ @3C@-^/\[@) @2C[@ [P[[^^"'R[K @2C_)@@@N.)@@^ME )@@G@@[#) @0C@@ @0T/@@@A[@@ [+G/@@@A[@@ [^_#;)?@@@;C)@@@>8LK@/#C@) @4T/)@@ G/)__'[@) @3MH )@@G@@R/K@@[R/0@@[N.K@@#C@# @([@@ @2R[@ @2C_)@@@N.)@@^[#) @0C@@ @0T/@@@A[@@ [+MI )@@G@@G/@@@A[@@ [;)/@@@;G)@@A;@0P[+[@1 @>G_)@@[8L)@/MO/K@@[O/0@@[8LK@/H/,0@0N@@[ @7MK )@@G@@@#G [WR[K [SN.K@@CC/ ="''^K@2H8LK@/1R[@ [TQ[@ [-N.K@@^C/^=_L'^K@2H8LK@/7ML )@@G@@R@K [SN.K@@#C/[>@>'^K@2H8LK@//'^@@2KO/)@@ G_0@@[8L@@;KR/0@@[R.K@@[R[@ [ZMM )@@G@@N.@@@CC/@@@Y[@@ @3C@=^/\[@) @2R@K @2C[@ [P[[ ^"'C_)@@@N.K@@^[#) @0C/@@@AMN )@@G@@G@@ @0[@@ [)C@[^_#;)@P@3;C@@@@>8L@@.?C/)@@Y[@) @3R/K@@[R/0@@[N.@@@#C@# @([@@ @2MQ )@@G@@R[@ @2C_)@@@N.K@@^[#) @0C@@ @0T/@@@A[@@ [)G/@@@A[@@ [+C@@ @3G@@ @0C@= @UMR )@@G@@;)?@@@;C)@@;)/@@@;G)@@A;@0P[)[@1 @>MS )@@G@@G_)@@[8LK@.9O/K@@[O/0@@[8L@@.4/,0@0N@@[ @7@#' [WR[K [SN.@@@CC/ ="''^K@2HMT )@@G@@8L@@"SR@) [RN.@@@^C/]=_R'^K@2H8L@@"XR[@ [SN.@@@#C/^>@>'^K@2H8L@@"+'^@@2KMU )@@G@@/,0@0N@@[ @.@^C [WR@K [SN.@@@PC/[="='^K@2H8L@@":R@0 [SN.@@@PC/#="='^K@2HMV )@@G@@8L@@"0'^@@2KN@0@"6/K@@"7@^M [WR]0 [X9!) [=9\) [&R@K [*R@) [(R@0 [%R[@ [:MW )@@G@@R[K [?N[@ [!N[K [,N[) [\*4@P[U/K@P[U/K@@,]AA0 [X9() [=9:) [&A@K [*A@) [(MX )@@G@@A@0 [%A[@ [:A[K [?^[@ [!^[K [,^[) [\/K@@8&@@@@@E@@@@@[@@@@@H@@@@@N@@@@@[MY )@@G@@@@@@@K@@@@@P@@@@@Q@@@@@Q@@@@@A@@@@@ @@@@@]@@@@@K@@@@@N@@@@@[@@@@@K@@@@@PMZ )@@G@@@@@@@Q@@@@@G@@@@@[@@@@@K@@@@@#@@@@@C@@@@@Q@@@@@Q@@@@@Q@@@@@Q@@@@@[@@@@@JNA )@@G@@@@@@@K@@@@@D@@@@@F@@@@@Q@@@@@Q@@@@@Q@@@@@Q@@@@@G@@@@@[@@@@@P@@@@@Q@@@@@QNB )@@G@@@@@@@Q@@@@@Q@@@@@Q@@@@@Q@@@@@E@@@@@N@@@@@H@@@@@ @@@@@Q@@@@@Q@@@@@Q@@@@@QNC )@@G@@@@@@@Q@@@@@E@@@@@N@@@@@F@@@@@P@@@@@Q@@@@@Q@@@@@Q@@@@@Q@@@@@Q@@@@@[@@@@@NND )@@G@@@@@@@B@@@@@N@@@@@L@@@@@M@@@@@Q@@@@@Q@@@@@Q@@@@@L@@@@@ @@@@@J@@@@@M@@@@@ NE )@@G@@@@@@@G@@@@@]@@@@@ @@@@@K@@@@@I@@@@@#@@@@@M@@@@@I@@@@@]@@@@@ @@@@@K@@@@@QNF )@@G@@@@@@@Q@@@@@H@@@@@I@@@@@O@@@@@ @@@@@G@@@@@]@@@@@ @@@@@K@@@@@Q@@@@@^@@@@@ NG )@@G@@@@@@@#@@@@@ @@@@@G@@@@@]@@@@@ @@@@@K@@@@@Q0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXNH )@@G@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNI )@@G@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NJ )@@G@@@@@@@@@@@@@@C%J81+.AJ*1/XA^CLW.AGS1/_]B*K"_]B*K)XA 81WN[K^.NC@@^.M[@[^/9[@[=/'8LK@9[C/@@@[H@@^.P*@@@@G/K@@9GC/@@@[OC )@@G@@G@@^.N[@@^.N @@^.RC/@@@AH@@^.NC@)^.N;@)@@@@K^/9PX )@@G@@@@K^/'@@K^/;'^@@2K @@^/, @@^Z&C@@^Z[@)^Z-C/@@@[D[@^ZY*@@@@K0@@@@K @@@@GC.@@@[C.)@@GH[)^ZY*@@@@MPZ )@@G@@1@@@@M @@@@K)@@@@KC.@@@[D[)^Z)*@@@@M0@@@@M @@@@K)[@@@H/>K@;%*@@^Z-/K@@9UQA )@@G@@C8)@@]N@0@9T/K@@;"@[R^.(C@@^/9H@@^.)*@@@@G/K@@9)C/@@@[[@@^/,C@@^/9H@@^.-QB )@@G@@*@@@@G/K@@9&C/@@@][@@^/,C@@^/9H@@^.+*@@@@G/K@@9?C/@@@[[@@^ZWC@@^/9H@@^.QD )@@G@@(@@@@G/K@@' /K@@':/,0@0N@@[^.R@[>^.('^@@2KC8)@@#N@0@'^/K@@;"@[$^.(C/@@@]QE )@@G@@[@@^Z&/,0@3'@@[^.Y@@@^/;@[(^.(@@K^Z$'^@@2KC/@@@[C/)@@ H@)^Z$*@@@@I1@@@@IQF )@@G@@ @@@@GC/)@@[C[@^Z$G.@__"*@@@@K1@@@@K @@@@I)@@@@I/=K@9.C/@__"G@@^Z$R@K^.&QG )@@G@@[@@@[^/,0@4-@@[^.Q@[1^.(N.K@@^C/[=)]'^K@2H8LK@'<'^@@2KC/@@@S'O@@@[]@@@@[QH )@@G@@8L@@'ZC/@@@[(@@^Z) @@@@GC/)@@[(@@^ZY @@@@I+@@@@IC/)@@[(@@^Z- @@@@I+@)@@HQI )@@G@@/)0@''C/@@@[G@@^ZV[@@^ZVC/@@@[H@@^ZV*@@@@G/K@@;]/,0@0N@@[^.P@[;^.('^@@2KQJ )@@G@@C/@@@[C/)]WJH@)^Z-*@@@@I1@@@@I @@@@GC/)@@[C[@^Z-G.@_=&*@@@@K1@@@@K @@@@IQK )@@G@@)@@@@I/=K@;2*@@^Z+/K@@;OC/@@@E[@@^Z+*@@^Z/K@@;)C/@@@E[@@^Z>C/@@@JG@@^ZY;K@@@^G/@__"H@@^ZY]@@^ZZQM )@@G@@C8)@@[N@0@;(/K@@;"@]C^.(/,0@0N@@[^.[@]D^.(@@K^ZY@@K^Z)@@K^Z-'^@@2K/K@@8&QN )@@G@@/,0@0N@@[^.H@]J^.(@@K^ZY@@K^Z)@@K^Z-'^@@2K/K@@8&C8)@@#N@0@;./K@@;"@]P^.(QO )@@G@@!^)^.$/K@@,DH8)@@[[^)^.$R]0^.%9!)^.?R@K^.,N[@^.\N[K^.0*4@O.$/K@O.$/K@@,]QP )@@G@@C8@@@^AA0^.%[^@^.$9()^.?A@K^.,^[@^.\^[K^.0/K@@8&(I2,1X,I2,1X,4I1,A1,A4,AQQ )@@G@@1) (1H0I2,I3,I5,050H? GO TO JAIL - DO NOT PASS GO, DO NOT COLLECT $20QR )@@G@@0) (1H0I2,I3,I5,027H? CALENDAR COVERS 1753-9999) (1H1) (5A6) (034H0QS )@@G@@SORRY, ONLY 1-5 LINES FOR MESSAGE) (I1) @@@@@ T N B D QT )@@G@@UHMC DUFF @@ @@A@@F@@@@@@@@@SETUP @]P@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#/@8&@[@^/"@@@___@@@___QW )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___QX )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___QY )@@G@@/,0@3(@@@^.9@[A^./[@@^/9;O@@@=W/@@@C[@K^ZXRA0^ZZ$'0@@H8];@80/K@@8./K@@8_QZ )@@G@@/K@@9 /K@@8_/K@@9]/K@@8_/K@@9]/K@@8_/K@@8_/K@@9]/K@@8_/K@@9]/K@@8_'^@@!0RA )@@G@@@[C^./C/@@@)[@@^)B/K@@9ZC/@@@Z[@@^)B/K@@9ZC/@@@X[@@^)BC@)^Z-;O)@@=W/)@[=RB )@@G@@C.@@@[*@@@@J @@@@KC@)^Z-;O)@@=W/)@AKC.)@@[(@@@@J @@@@M+[@@@M/>K@9TC@)^Z-RC )@@G@@;O)@@=W/)@@^/@0@9XC/@@@XH@@^Z)/@@@;\/K@@9ZC/@@@Y[@@^)BC@@^)BH@@^Z)/@@@/#RD )@@G@@/G@@/#C@@^ZZ[@@^/9C@)^Z-[@)^/'C@@^/9G/@__/*@@@@G1@@@@G/K@@9\C/@@@[H@@^Z-RE )@@G@@]@@^/'C@@^/';K@@@]C@)^/';O)@@=W/)@[=C[@^/';P@@@=W.@@AK[@@^._[@)^"@[[@^"[RF )@@G@@C@@^/9G/@__/*@@@@G1@@@@G/K@@']C/@@@GG@@^ZZ[@@^/9C/@@@[H@@^)B]@@^/;H/@__"RG )@@G@@C@)^/9;@)@@[@@^.7R@K^.7C@)^X&[@)^.8R@)^.8C[@^X$[[@^.9SO )@@G@@R@0^.9/,0@0N@@[^"C@]O^"=@@L^ZI@@K^Z-@@M^ZI@@K^Z-@@N^ZI@@K^Z-'^@@2KR/K@@[SP )@@G@@N.@@@]A@K^.;C@@^.;T/@@@BG/@@@[[@@^"$ @@^.6C@[^X$G/@__"(@@@@G/K@@;QC@[^X$SQ )@@G@@G/@__"[@@^.5G/@__"R@)^")Q@)^"$[@@@[ C/@@@[G@@^.6[@@^.6C@)^.Z[@+=.S8LK@;KSR )@@G@@C/@@@BH@@^.6[@@^.5C@)^.;T/)@@BG/@__"R@0^"Y[@@@[ [@)^"*C/@@@[G@@^.6[@@^.6SS )@@G@@R@)^.6O@)^"*C@<=/_[@+^.S8LK@;ZC[@^.5[[[^X=O/K@@[8L@@'_/,0@0N@@[^"R@]3^"=ST )@@G@@R@)^"YN.@@@OC/]=.Z'^K@2H8L@@;0'^@@2KN.@@@^R@0^"YR@K^"-R/)@@[N.K@@]C_)@@[SU )@@G@@N.)@@A[#)^.8C@]^X=G@@^.8[@@^.9[@@^.'C@@^.9H@]^Z^/C@@/ *@@@@G/K@@/BC/@@@)SV )@@G@@[@@^.'R[@^.'C@^^/_[@[=.SG_)@@[8L)@;;C@<^X=G/)@@B[@<=X=O/)@@[8LK@;9/,0@0NSW )@@G@@@@[^"R@#E^"=R[@^"YN.K@@OC/^=.Z'^K@2H8LK@/Q'^@@2K8L@@;5C/@@@GH@@^ZZ(@@@@GSX )@@G@@/K@@/&C/@@@[G@@^ZZ[@@^ZZC8)@@]N@0@/>/K@@/,@#Q^"=/,0@0N@@[^"X@#R^"='^@@2KSY )@@G@@C8)@@[N@0@/!/K@@/,@#U^"=!^)^"+/K@@,DH8)@@[[^)^"+R]0^">9\)^"(R@K^":R@)^"?SZ )@@G@@R@0^"!R[@^",N[@^"\N[K^"0N[)^"1*4@O"+/K@O"+/K@@,]C8@@@#AA0^">[^@^"+9:)^"(TA )@@G@@A@K^":A@)^"?A@0^"!A[@^",^[@^"\^[K^"0^[)^"1/K@@8& 1 2 3 4 TB )@@G@@ 5 6 7 8 9 10 11 12 13 14 15 16 TC )@@G@@17 18 19 20 21 22 23 24 25 26 27 28 TD )@@G@@29 30 31 (///,1H ,5X,A6,I4,//,1H ,020H S M T W T F TE )@@G@@S) (1H ,7(A2,1X)) (///,1H ,5X,A6,I4,2(15X,A6,I4),//,021H S M T TF )@@G@@ W T F S,2(6X,019HS M T W T F S))(1H ,6(A2,1X),A2,2(5X,6(A2,1X)TG )@@G@@,A2)) (1H0) @@[@@[@@#@@@@@[@@@@@[@@C@@F@@@@@@@@@TTY @#U@@#@@@@@@@@@@@@TH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TJ )@@G@@@#<@8&@@E^/9@@T [+@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___TK )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___TL )@@G@@@@@___@@@___@@@___@@@___C/@@@[H@@^/,(@@@@G/K@@8,/,0@0N@@[ [+@[E [9'^@@2KTM )@@G@@C/@@@[H@@^/,*@@@@G/K@@86/,0@0N@@[ [=@[H [9'^@@2KR/K@@IN.@@@GN.K@@DC_)@@@TN )@@G@@N.)@@[[#) [YC/@@@MG@@ [Y[@@ [//,0@3(@@@ [(@[S [9[@@ [Z;O@@@=W/@@@DG/K@@[TO )@@G@@[@K [ZR@) [ZE@) [/CD]^/8C[L^/5;-Y@@@;H@@@M;[KP[Y[[L^/5G_)@@M8L)@8;O/K@@HTP )@@G@@8LK@89P/K@][8L@@88C_@@@[R/)@]KN.@@@G[#@ [WC_0@@FN.K@@D[#0 [XC/@@@PH@@ [XTQ )@@G@@[@@ [/C_)@@@N.)@@[[#) [YC@@ [/[@@ [VT/@@@HG@@ [WC/)@@MH@) [Y[@) [)G/)@@MTR )@@G@@C[G^/5;-@P[Y;D@@@M[[@ [Z[@) [.C@@ [ZH@@ [%*@@@@G/K@@95C@@ [:[@@ [ZC@@ [ZTS )@@G@@H@@ [?*@@@@G/K@@9;C@@ [![@@ [ZC@@ [ZH@@ [:*@@@@G/K@@'[C@@ [,[@@ [ZE@@ [.TT )@@G@@C^) [ZC@2^/5;)/@@@;G)@@M;@0P[)[@2^/5G_)@@M8L)@9-O/)@@HG_0@@[8LK@9VP/)@][TU )@@G@@G_@@@[8L@@9SR@K [\N.@@@NC@@ [0[@[^/6C@) [1[@-=/78L@@'MR@) [2N.@@@FC@@ [3TV )@@G@@[C]^.]C@) [4[^+>@98L@@'T/,0@0N@@[ [&@]@ [9R@K [5R@) [5N.@@@GN.K@@NC/]=/5TW )@@G@@'^K@2H8LK@'>N.K@@NC/[=/5'^K@2H8LK@'(C.)@^#'P)@@[][)@@[C.)@^#'P)@@]][)@@]TX )@@G@@8L@@'='^@@2KR/K@@UN.@@@GR/)@@[N.K@@NC_)@@@N.)@@[[#) [)C/@@@MG@@ [)C@-^/5TY )@@G@@;))P[);C)@@M[@) [Z[@@ [.C@@ [ZH@@ [%*@@@@G/K@@;CC@@ [:[@@ [ZC@@ [ZH@@ [?TZ )@@G@@*@@@@G/K@@;IC@@ [![@@ [ZC@@ [ZH@@ [:*@@@@G/K@@;OC@@ [,[@@ [ZE@@ [.C^) [ZUA )@@G@@C@2 [A;)/@@@;G)@@M;@0P[)[@2 [AG_)@@M8L)@''O/)@@[O/K@@H8LK@'8/,0@0N@@[ [&UB )@@G@@@]) [9R@) [6N.K@@NC/]>[A'^K@2H8LK@;>R@) [6N.K@@NC/]>[A'^K@2H8LK@;%'^@@2KUC )@@G@@P/K@^ 8L@@'6N@0@;2/K@@;3@]: [9R]0 ['9!) ["9\@ ]@9\) ]]R@K ]^R@) ] N[@ ]AUD )@@G@@N[K ]BN[) ]C*4@P[7/K@P[7/K@@,]AA0 ['9() ["9:@ ]@9:) ]]A@K ]^A@) ] ^[@ ]AUE )@@G@@^[K ]B^[) ]C/K@@8& \\\ /// *** UF )@@G@@ (1H1,//////)(1H1,//) (1H ,5X,20A6) _____"@@@/// +++@@@\\\UG )@@G@@ /// \\\@@H@@H****** @@[@@] ** **@@H@@I@@[@@[@@F@@[@@@@@@UH )@@G@@SKETCH@]:@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C$@8&@@L^_D@]Y^_6@@@___UJ )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___UK )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___UL )@@G@@R/K@@#R/)@@[N.@@@@U8L@@9[@@^_&C"@__"UW )@@G@@[]@^_$[[)^_*C")@@G[])^_([[@^_%[[@^_:C#@^_W/#@@.D/K@@;NC@@ ]H[@@^_?/,0@0NUX )@@G@@@@[ @#@]U ]MN.@@#VC/@^_?'^K@2H8L@@'9'^@@2KC/@@@H[@@^_VC/)@[Q[@)^_-C.@@@GUY )@@G@@[[@^_+C.)@@B[[)^_<[[)^_=C"@@@[[]@^_>C")__.[])^_&[]@^_$C_@@@A[#@^_*C_)@@]UZ )@@G@@[#)^_(C/@@@=[@@^_%C/)__"[@)^_:C/@@@[C/)@@ H@)^_W*@@@@I1@@@@I @@@@GC@)^_>VA )@@G@@H@)^_=;O)@@=W@)^_&C[@^_C/)@@CH@)^_W/@)@.D/C)@.D @@^_WC/)@@&[@)^_VVJ )@@G@@C.@@[Q[[@^_-/K@@')C@@^_%[@@^_-C/)@@[C.@@@ H[@^_W*@@@@K1@@@@K @@@@IC[@^_>VK )@@G@@H[@^_=;P@@@=W[@^_&C[)^_(H[)^_*;P)@@=W[)^_:C#0^_*[[)@[^[@) ]P[[@ ]Q[#0^_ZVL )@@G@@C/@@@[H@@^_ZR@)^_-C/)@@[G@)^_-[@@ ]R[@) ]SA@) ]TC@@^_Z;@@@@@@@@#&@@@@#$WK )@@G@@@@@@#*@@@@#(@@@@#%@@@@#:@@@@#?@@@@ K@@@@]@@@@@[_@@@@[5@@@@#T@@@@#U@@@@#VWL )@@G@@@@@@#W@@@@#X@@@@#Y@@@@#Z@@@@#)@@@@#-@@@@ @@@@ J@@@@ I@@@@]]@@@@][@@@@[7WM )@@G@@@@@@[6@@@@[,@@@@#M@@@@#N@@@@#O@@@@#P@@@@#Q@@@@#R@@@@#S@@@@^/@@@@ ^@@@@ #WN )@@G@@@@@@ H@@@@ G@@@@]^@@@@]#@@@@[9@@@@[8@@@@[0@@@@[\@@@@[(@@@@#H@@@@#I@@@@#JWO )@@G@@@@@@#K@@@@#L@@@@^5@@@@^;@@@@^'@@@@ ]@@@@ [@@@@ F@@@@ E@@@@]A@@@@] @@@@[;WP )@@G@@@@@@['@@@@[2@@@@[1@@@@[:@@@@[%@@@@[&@@@@#E@@@@#F@@@@#G@@@@^0@@@@^4@@@@^3WQ )@@G@@@@@@^9@@@@^8@@@@ @@@@@^_@@@@ D@@@@ C@@@@]C@@@@]B@@@@[.@@@@[/@@@@[4@@@@[3WR )@@G@@@@@@[!@@@@[?@@@@[*@@@@[$@@@@[>@@@@#D@@@@^!@@@@^\@@@@^,@@@@^2@@@@^1@@@@^7WS )@@G@@@@@@^6@@@@^"@@@@^.@@@@ B@@@@ A_____"/ \ - @@[@@[** * WT )@@G@@ **** @@F@@[@@@@@@SKECH2@ J@@]@@@@@@@@@@@@@@&@8&@[0^/9@@@___@@@___WU )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___WV )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___WW )@@G@@/,0@3(@@@^"=@[D^"$[@@^"E/,0@3(@@@^"=@[E^"$[@@^"FC@)^"E;O)@@=W/)@@$G/0@@[WX )@@G@@[@0^"E;O@@@=W/@@@$G/K@@[[@K^"FR@K^"ER@)^"F/,0@0N@@[^"G@[H^"$@@L^/8@@M^.)WY )@@G@@'^@@2KN@0@9[/K@@9]@[M^"$R]0^"*R@K^"%R@)^":*4@O">/K@O">/K@@,]AA0^"*A@K^"%WZ )@@G@@A@)^":/K@@8&PRETTY MISTYUNIVAC COLD PAPER NYU MISSAT THE FLAT IN AXA )@@G@@ WEIRD RAWRUSTIC DARK MY NEW ONLY EARLYINDIAN CHEAP LOSTSPRINGXB )@@G@@IT'S A GOODJUST A USUALBROKEN TRUEMOSTLY SWIFT SUPER YOURSQUARE GLASSXC )@@G@@SELDOM FREEORANGERUBBERFUTUREFAMOUSSUBWAYDESIGNWINDOWTURKEYCIRCUSWIRE XD )@@G@@SCENE BALL FOOT FORESTIMAGE IDEA LIGHTSSHADOWCHILD (?) MONTH BIRD XE )@@G@@LIFE MOVIE FACE PLACE HOME BARRELPLANETBRANCHCENTERROBOT T.V. MATRIXXF )@@G@@DEVICESOUL DESERTTIME SCREENJUNGLEPROTONCAGE SYSTEMFISH @@@@@@@@@@@@XG )@@G@@@@@@@@(/,1H0,58X,015H...............,/,1H ,58X,001H.,13X,001H.,/,1H ,58XXH )@@G@@,001H.,A6,1X,A6,001H.,/,1H 58X,001H.,13X,001H.,/,1H 58X,015H............XI )@@G@@...) _____"@@F@@[@@@@@@TITLE @[M@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XK )@@G@@@@H@8&@@G^/9@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___XL )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___XM )@@G@@@@@___@@@___@@@___@@@___/,0@0N@@[^/9@[#^.#'^@@2KN@0@8?/K@@8!@[A^.#R]0^.^XN )@@G@@*4@O.[/K@O.[/K@@,]AA0^.^/K@@8&(1H0,///,029H END N.Y.U. CAL 5.7 OF 3/3/72XO )@@G@@) @@F@@[@@@@@@END @[A@@^@@@@@@@@@@@@@@@@@@@[9@C@@,V@EF@[V^@@@@E^NXXP )@@G@@@#I^N8@^&^RN@@5^W0@@O^ZC@WS^)-@@@___@@@___@@@___@@@___@@@___@@@___@@@___XQ )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___XR )@@G@@/K@@@@0@G@@#'=@@@AC1J^TL?9@@@K/K@KC@CC?@@^;*)@@P;C)@@P?9@@@S/K@@CI @@@@HXS )@@G@@W8K@@W;GK@@=C0W@@#:8K@@(D@)@@IG@?@@ [@?@@ CG@@^/C)KC@ @G@@ !9@@@ST8)@@WXT )@@G@@OB?@@#AB?@@#AB?@@C/K@KC@/K@@@@C@@^N8;GK@@=W8K@@E[@?=N-/^K@CY[@@^NYC @^NYXU )@@G@@/K@KCW ^@^N7>@0^N9")0@DD98;@@@"0@@@JH8@@K@/@F@@@S@@^NXAA0@D /^@@C1E@@@@GXV )@@G@@/K@@C5[^@^N7D@K@@G/,0@FLRJ@^N79?K@DA9=K@@J98K@D#/GK@C/"*0^N'H8@@@[/K@@C5XW )@@G@@9?K@DC9=K@@J98K@D@/CK@D^G8@@@["?0^N'/K@@C5G9@@@[[^@^N7/K@@@@J.3G3G3G3G3GXX )@@G@@K[)@@@@@@@@@@@@@@@980@D4"0K@@JP;K@J5;?!@@@[ K^N6?9K@@B @@@@J!9K@@OC9K@@NXY )@@G@@C@@^N8 ^@^NYC@K@@IU8K@@E/@0@DZ;C0@@[U80@@E;*0@@[[@0^N)9)K^NZC@0@@K[@W=N-XZ )@@G@@;C)@@[8^K@DQ @@^N)G8K@@ H@@^N//K@@D(C@W^N-G8K@@[[@W^N-?8K@@E/KF@@@H8K@@EYA )@@G@@[@W^N-8#@@D&C8K@@[[@K^N)G^K^N7[^K^N7[^@^NY/KF@@@[ K^N6C8K@@O[^K^NY/KF@@@YB )@@G@@/KI@D8/K@@@@ @@^O2 @@^O3 @@^O\/K@KEF/K@@@@*4@^O2/K@@E-+8)@@JR#)^O3T8)@@EYC )@@G@@O#0@@IA#0^O3R#)^O2(4@^O3/@)KEKT8)@@EO7)^O3 4@^O3R#0^O3A#)^O2/K@KEKR#)^O\YD )@@G@@O;)@@[A#)^O\9?)^O2/K@KEK/K@@@@9!@^O2'^@@E4/K@KE&/K@@@@9!@^O2'^@@E4/ KKE%YE )@@G@@C9K@@[/K@KE%/K@@@@9!@^O0'^@@E4/K@KE0/K@@@@/[@KE4!9@@@)/K@@E;;(K@@A;H@@@AYF )@@G@@/K@KE4RB)@E4:8)@E!/K@@@@R#)@2 &;)A@@A#)^XHD@@@%S/\K@XE 4@^V3/K@KE4/K@@@@YG )@@G@@ @@^O4'^@@EF'^@@FE/K@KF /K@@@@9?)^O29*)^O0R#)^O\A#)^O,'^@@EF/K@KFE @@@FTYH )@@G@@AA0@FQN@K^XP @@^XP/K@@F2/K@@@@ ^@@FT/K@@FU/K@@@@9!@^O2'^@@E4*?@^O4D[K@@LYI )@@G@@R#K@@LPJK^O4O#K^O,E[K@@H!9K@AK/K@@GQN@K^XP @@^XP9?0^O0980@F\;(@@@A;W0@@JYJ )@@G@@;G0@@[R;)@K7P#)@@L9)0^O["4)@@J*4@^O4900@@J980@G /@K@G R;@@@@/CK@F7R;@@@[YK )@@G@@E@K@@H;GK@@=!8)@@EW8K@@E/@)@G];*)@@[[@0^O!')G@G)%@0^O!/K@@G];G0@[C/K@@G YL )@@G@@/@K@G G8@@@]/K@@F7*^@@FT/K@@GD'^@@GM/K@KFQ980@GK"0)@@J9)0^N.0@@@@J9=0^N_YM )@@G@@"4)@@J"/0@@J'^@@GM/K@KFT/K@@@@C[K^XP^@K^XP/[K@GMR#@@2 &;@B@@A#@^XHD@@@GVYN )@@G@@/\K@XD@[^@GWINPUT EXPONENT TOO LARGE"*"^O["?"^O["*"^ON"?"^ON"*"^O>"?"^O>YO )@@G@@/K@@@@C@@^VCD@^Q(R;)@@H*@@@@HZE )@@G@@R;)@@#K[@@@IC8@^Q(C^K^Q(G8K@@[!@K@@L/K@@KACD@^Q%K[@@@IC8@^Q%C^K^Q%G8K@@[ZF )@@G@@!@K@@L/K@@KAC8K@@*P;K@@[C8)@@ ?C!^Q:/K@@K$8#K@J7'^@@M[^CX^Q:C8)@^@G@)@[[ZG )@@G@@H8)@@[[^!^Q:^@K@@KC8H^Q:K9@@@H @I@@@%@)@[[8#)@K#C@0^W@AB@@K<[ J^TL[DW@@@ZH )@@G@@[[@^V'=@@@J/^@@L(C@0^W@C9@@@T1@J^TL[1J^TLC@K^V< @H@@#R#Z^TLZN )@@G@@A#K^V[^)^Q(C@K^Q)G8)@@[ZT )@@G@@[^!=Q:[@K^Q)P;K@@[C[@^W[[DH^Q:N^X^Q:C@0^W@C^J^TL(@@^Q-/K@KL"/K@KM[C@0^W@ZU )@@G@@(@@^Q-/K@KL" @@^QN @@^QO @@^QP @@@@JC^J^TL/@@@N,(?G@@]0@J^TL/K@@N,(@G@@DZV )@@G@@/K@@N,*?G@@C/K@@N,N^W@@^'^@@O)CC!^Q:!8)@@ /K@@O*/KI@M;/K@@MX/K@@N]/K@@NNZW )@@G@@/K@@NQ[C0^QN[^K^QN/K@@N,*4G@@C/K@@NB[C0^QO[^K^QO/K@@N,0@G@@#'=@@@A*4G@@#ZX )@@G@@'^@@W='^@@C@'^@@@@N^W@@^C G@@D[ G@@^ 4G@@C'^@@O)/K@@MX[C0^QP[^K^QP/K@@N,ZY )@@G@@C1G@@#:9@@@(/K@@N)0@G@@#'=@@@A*4G@@#'^@@W= @G@@D ^G@@C/K@@MX[C0^QQ[^K^QQZZ )@@G@@C G@@C/[@@NXC0Z^TL?8K@@K/K@@N,[DG@@^C9@@@C[1G@@#'^@@C@CC0^QQC^K^QQ/K@@NXAA )@@G@@G80@@[?80@@Z/K@@M?C[@^QN/[@@OBCC0^QNC^J^TL0@G@@#'=@@@A*4G@@#'^@@W=C[@^W@AB )@@G@@[[@^W1[@0^W@'^@@@@C@0^W1[@0^W@0@G@@#'=@@@A*4G@@#'^@@W= @G@@D ^G@@CC^K^QNAC )@@G@@/K@@MXC[@^QO/ @@OJC[@^QP/[@@O*CC0^QPC^J^TLN^K^QP/K@@OMCC0^QOC^J^TLN^K^QOAD )@@G@@0@G@@#'=@@@A*4G@@#'^@@W=C1G@@#:9@@@(/K@@OV'^@@C@'^@@@@C9@@@[[!G@@CR#K@[[AE )@@G@@ @G@@D/K@@MX/K@@@@ @@@@HC H^Q::[@@[[/K@KO)G8K@@[?8K@@*/K@@O+C@@^QR'=@@@IAF )@@G@@/K@@,*/K@@@@N^W@@^'^@@O)C[K^W[[DX^Q:(4G@@C/K@KO:N^W@@D'^@@O)[DX^Q:/K@KO:AG )@@G@@/K@@@@C@K^Q$% H^Q:8#K@O8 CH^Q:/K@KO6/K@@@@9!@^R)R#)^R=N8)@@E9(I)@@8K)@P@AH )@@G@@/K@KO//K@@@@C4K^WU 4@^RN:8K@@ /K@@PI:8K@@0/K@@PK:8K@@1/K@@PM:8K@@+/K@@PPAI )@@G@@C8)@@[/K@@PQC8)@@]/K@@PQC8)@@_[4)^RN/K@@PQC8)@@@[0)^RNC8K@@ [4K^WU/K@KP#AJ )@@G@@/K@@R)/K@@R)/K@@T1/K@@RT/K@@Q,/K@@P0/K@@R]/K@@WE/K@@WX/K@@W-/K@@@@RFK^WTAK )@@G@@RB0^WT!80^W0/K@KP=')H@%^8#K@P,O;0@@[R;K@@ AB0^WTAFK^WT/K@KP=[[K^RZ%9K@@TAL )@@G@@/K@@Q]C K^TC*@@@@LH9K@@[[DK^TKC9@@@@W9@@@A;[@@@MD[K@@LG9K@@ ; @@@MG @^W0AM )@@G@@[[@^WT C@^TH'^@@%3/K@@P3'^@@%3C[K^RZ%9K@@L/K@@QJC9K^RXC^)^V=C@,@@@+8)@@[AN )@@G@@(@@@@JC9K^RY[ K^V=C9K@@]/K@@QKC9K@@B[[K^RWC K^TC?[K^RW/K@@QUH[K^RWR;)@@ AO )@@G@@'^@@P=8^K@QPC[K^RWH9K@@[C^)^V=C@,@@@C[@^RZ:[@^R>/K@@Q$/K@@Q-'^@@P=;@)@@YAP )@@G@@8^K@Q)R7)^TB:8)@@^/K@@RT/K@@Q]C@K@@LT8K@@A;@!@@@/K@@Q-R7K^TB:8K@@^/K@@RTAQ )@@G@@'^@@%3C^K^V=C@X@@@/CK@Q3D@K@@H'^@@CW[ @^N5H @^TC/[@@Q9D[@@@K/H@@R@C^)^V=AR )@@G@@(@I@@@/K@@Q"0@I@@@/[@@R@'^@@U:/K@@Q:'^@@W#/K@@Q:'^@@%3C K^TC?9K@@H/K@@RFAS )@@G@@H9K@@HR;)@@ '^@@P=8^K@RBC9K@@GR;K@@#T@K@@LC^)^V=C[I@@@;[H@@@H9K@@[R#)@@KAT )@@G@@;[@@@-;G)@@=R;)@@A;^)@[ '^@@P=8^K@RL/K@@R]'^@@%3R3K^V=:8K@@[/K@@Q\:8K@@ AU )@@G@@/K@@QA/K@@R-'^@@%3DHK^TK] K^N5/HK@R>C9K@@@HDK^TCH9K@@^ @@@@IR7K^TB:8K@@[AV )@@G@@R;)@@[%8K@@^/K@@R0R3K^V=:8K@@#R;)@@[H[K@@IG K^TC/HK@SSC^K^V=0@H@@@/[K@SSAW )@@G@@[DK^RUCDK^TCGHK^TK/HK@SS/[K@SS[ K^RU'^@@S?CD@^RU'^@@U+(G@^N6/K@@SZRJ)^N7AX )@@G@@PJ)^TK#^)^N7/@)@SA/G)@SXR;)@@+'^@@P=RJK^N7'^@@CW @G=N- @G=N-C9@@@]R7@^TBAY )@@G@@:8@@@[/K@@SP%8@@@^/K@@SQR3@^V=%8@@@#/K@@SQC9@@@#'^@@VO/K@@ST'^@@W#R7K^TBAZ )@@G@@%8K@@^/K@@R)/K@@RTR;)@@-/K@@SBR;)@@ C9K@@]R7K^TB:8K@@[/K@@S*%8K@@^/K@@S(BA )@@G@@R3K^V=:8K@@#C9K@@#'^@@P=8^K@S(/K@@ST/K@@@@RB)^V=R7K^TB:8K@@[/K@@TW%8K@@^BB )@@G@@/K@@S6R3K^V=:8K@@#/K@@TWR3K^V=%8K@@#/K@@T#94"@@@980@T:?@0^R&?@0^R$/K@@S_BC )@@G@@/K@@TAR7K^TB%8K@@#/K@@SS/K@@W[E@"@@@/@0@T:"80@@J/,0@C>9*0^R+R7@^TB/KG@TCBD )@@G@@/K@@T)/K@@T=DH@^N7/[@@TJ/D@@T)GD@^TC/H@@T)DH@^N7GD@^TCR#0^TCA#0^RSP;0@@#BE )@@G@@[D@^TCAB0^TCC9@@T3[ @@S?RJ0^N7/K@@T&94"@@@980@T:/,0@C>/K@@T-9?0^R+C K^RUBF )@@G@@/,0@DF/K@KS?RJ0^TKOJ0^N7AB0^N7OF0^TCAB0^RU @@^N)/C0@T) ^@^N6 @@^N7 @@^N)BG )@@G@@R;K@@OABK^NY/K@KS?'^@@%3'^@@S?CH@^N7/H@@UO/[@@T9DH@^N7] @^N5/K@@U[*C@^TCBH )@@G@@/K@@T_D9@@@[[ @^NY] @^N5/K@@U[[ @^N5D9@@@@H9@@@[HD@^TCG @^TC/H@@W[C^)^V=BI )@@G@@0@I@@@/[@@W['^@@U+C5@^TB:9@@@^/K@@UH/K@@T1C[@^RS[[@^TCR;)@@ C9K@@]'^@@P=BJ )@@G@@8^K@UL/K@@RT(@@^N)G9@@@[/H@@USD9@@@@[ @^N7(C@^TC/K@@T;DH@^N7!D@^TCCD@^TCBK )@@G@@] @^N5C9@@@[] @^NY/K@@U@/K@@@@'^@@U,0G@^N5/K@@U(R;)@@.'^@@P=CD@^TC'^@@V-BL )@@G@@/K@KU+/K@@@@ ^@@U,/K@@U\/K@@@@C)0^T]:80@@J/K@@V5/[@@VIH9@@@]R;)@@ /H@@U8BM )@@G@@'^@@P=8^@@U6C^K^V=1@H@@@/K@@VHR#X@@@R70^TB:80@@ /K@@VBR30^V=:80@@[/K@@VBBN )@@G@@:80@@#/K@@VE>@K^R*/K@@VH/K@@VG(@@@@H/K@@VH/K@@VG>@K^R(/K@@VHC8)@@-'^@@P=BO )@@G@@CH@^N5/H@@V?(^@@U,/K@@VQ'^@@V-/K@KU,/K@@@@ ^@@U:R#@@@K/K@@VXR#?^N-!@@^R%BP )@@G@@R;)@@@O;)@@0'^@@P=8#@@VS*^@@U:/K@KU:/K@KVO/K@@@@R#@^NY/K@@V(R#?=N-!@@^R:BQ )@@G@@R;)@@@O;)@@0'^@@P=8^@@V=AB@^NY/K@KV-D@@@@KGD@^TCR;)@@.'^@@P=R;)@@0/K@@V3BR )@@G@@'^@@P=8#@@V2/K@KU,C^K^V=C@X@@@/@K@V//CK@V/C8)@@-'^@@P=H9@@@[H9@@@[C8)@@0BS )@@G@@'^@@P=8^@@V"/K@@VI'^@@W#/K@@UD/K@@@@C K^TCR;)@@*/K@@WC'^@@P=8^K@WB/K@KW#BT )@@G@@%8)@@'/K@@WT/,0@(5:8)@@'/K@@WL'^@@P=/K@@WGR#K^TAA#K^RZ/,0@(5:8)@@'/K@@WJBU )@@G@@R#K^RZA#K^TA/K@@=7/,0@(5'^@@P=8^K@WT/K@@=7R;)@@ '^@@P=8^K@WY/K@@=7C9K^ROBV )@@G@@[ K^T^/K@@=>/K@@@@[@K^R?C4W@@# 4G@@#:8K@@ /K@@X[!8K@@ @@@@HR#H^R\R#)^W@BW )@@G@@&;)#@@(@@^V;/K@@W3&;,F@@Q#)^V'A#)^XH*@@@@H!8K@@#/\K@XDO;K@@OA7K^XHC9K@@]BX )@@G@@/K@@XFC@@^R4RB)^XIO#)^S?Q#,@@@A#)^XH/\K@XDRBW@@#AFW@@^(@G@@ /@K@W?C@K^R?BY )@@G@@/K@@W=R;K@@[/K@@W?A#K^R!C9K@@#R]0^XID8)@@]O\:)@@/G)@XN:DV@@[/K@@X1O'0@@[BZ )@@G@@8#)@XJ:9K@@]/K@@X,/C)@X(C[K@@GE@@@@G'=@@@I/DK@XYR#@^S!'=@@@IR#@^R,'=@@@ICA )@@G@@RB@^VDM )@@G@@ @@^TB @@^TKC9K@$H[ K@E.C[K^V*[[K^V:C[K^T#[DK^V3C9K@%E[ K@2JC[K^T^[[K^TADN )@@G@@/,0@(5%8)@@(/K@@=2C[K^TA[[K^TDR;@@@@ @@^TC *@^TB'^@@EFC9@@@@/,0@(5/KI@="DO )@@G@@/KG@&^/KG@&^/KG@&^/KG@&^/KG@&^/KG@&C/K@@>"/KG@&^/KG@&^/KG@&K/KG@&K/KG@&GDP )@@G@@/KG@&G/KG@&O/K@@&]/K@@&]/KG@&^/K@@>"/KG@&^/KG@&^/KG@&X/KG@&-/KG@&^/K@@>"DQ )@@G@@/KG@&^/K@@>"/KG@&^/KG@&^/KG@&^/KG@&>/KG@&^/KG@&^/KG@&(/KG@&!/KG@$[/KG@&^DR )@@G@@/KG@&^/KG@&^/KG@&^/KG@&^/KG@&^/KG@&1/KG@&^/KG@&^/KG@&^/KG@&^/KG@$ /KG@&^DS )@@G@@/KG@&5/KG@&5/KG@&5/KG@&5/KG@&5/KG@&5/KG@&5/KG@&5/KG@&5/KG@&5/KG@$D/KG@&^DT )@@G@@/KG@&9/KG@&./KG@&^/KG@&^A<)^T]%8@@@#R;)@@A/KG@&GA<)^T]/KG@&S/K@@$H/K@@$HDU )@@G@@/K@@$H/K@@EE/K@@=//K@@=//K@@=//K@@E#/K@@$Y/K@@$(/K@@$5/K@@EE/K@@$Y/K@@$(DV )@@G@@/K@@$5/K@@EB/K@@$//K@@*[/K@@*^/K@@EE/K@@$U/K@@$>/K@@$1/K@@EE/K@@&8/K@@$WDW )@@G@@/K@@$$/K@@$3/K@@EE/K@@*F/K@@*K/K@@*N/K@@EE/K@@*P/K@@*T/K@@*W/K@@EE/K@@*5DX )@@G@@/K@@*4/K@@(Y/K@@EE/K@@()/K@@$H/K@@$H/K@@E /K@@*Y/K@@*\/K@@*2/K@@EE/K@@$'DY )@@G@@/K@@$'/K@@$'/K@@EC/K@@(C/K@@(/K@@EE/K@@$H/K@@($/K@@$H/K@@EA/K@@=7DZ )@@G@@/K@@$Q/K@@$S/K@@E^/K@@=7/K@@$Q/K@@$S/K@@ED/K@@*B/K@@*A/K@@*D/K@@EER;Y@[@EA )@@G@@;*K@@SQ#K^TCA#K^XHD@@@%Q*0@^V3/\K@XE 0@^V3/K@@=//,0@(:/K@@=7'^@@(\/K@@=7EB )@@G@@R;0@@ /K@@$)R;0@@B/K@@$);G)@@#;C0@@-A70^TB'^@@E%[DK^THR;@@@[/K@@='R;0@@ EC )@@G@@/K@@$:R;0@@B/K@@$:;G)@@#;C0@@-A30^TB/,0@(:R30^TBA70^TBC9K@@[/K@@$+R;0@@ ED )@@G@@/K@@$7R;0@@B/K@@$7;G)@@#;C0@@-A30^TB'^@@(\/K@@$!'^@@EK/K@@=/'^@@E%/,0@:VEE )@@G@@H9K@@[R;)@@H/K@@E@/,0@(:C9K@@[/K@@$.'^@@(\/K@@*]/,0@(:R;)@@'/K@@E@'^@@(\EF )@@G@@/K@@*BC[K^O3**@^TBD[K@@L[ K^TK/K@@=7/,0@(:C9K@@[/K@@*I'^@@(\/K@@*L'^@@E%EG )@@G@@/,0@:VH9K@@[/K@@E[/,0@(:C9K@@[/K@@*Q'^@@(\/K@@*U'^@@E%R$)^TB!8)@@]R;)@@[EH )@@G@@R#0^TAH9K@@[A#"^TE[ Y^TGO;)@@[A$)^TB!8)@@]/K@@=7 4@^TBA<)^TBA#0^TD[DK^TGEI )@@G@@/K@@=7/,0@(:C9K@@[/K@@*Z'^@@(\/K@@*0/,0@(:R$)^TB/@)@*/C Y^TFP;)@@[8^K@(UEJ )@@G@@A$)^TB/K@@=7C4)^TB/@)@E]'^@^V%C@)^V=[@)^V>C[K^TD[[K^TAR<)^TBA$)^TB/@)@(CEK )@@G@@CDK^TG[ K^TG'^@@2AC @^TJ%9@@][/K@@=7C9@@@@C[K^TA/,0@(5%8)@@//K@@(NG9@@@[EL )@@G@@/K@@(H[[K^TA/[@@=7[1@@(TC@@@(T'=@@@I/K@@=7@@@@@@[ Y^TGC[Y^TE[[K^TA/K@@=7EM )@@G@@'^@@(\/K@@*5R;)@@[A:)^TB/K@@='/,0@(:/K@@(C'^@@(\/K@@(C'^@@E%[ K^TCR;@@@]EN )@@G@@/K@@='AA0@(\'^@@E%[ K^TC/K@@(2/K@@@@'^@@E&[DK^TCC-K^T]R7)^TB/K@@D8RFK^TAEO )@@G@@RB0^TA')H@("8#K@(/R;K@@ O;0@@[AB0^TAAFK^TA/KF@@@R<\@@@R$\@@@R:\@@@R\\@@@EP )@@G@@R3\@@@R7\@@@A<\@@@A$\@@@A:\@@@A\\@@@A3\@@@A7\@@@AB@^V=P;)@@[RFI@@@;@@@@CEQ )@@G@@;C@@@)A3@^V=:8@@@^A7@^V=/K@OV%'^@@2A/S@@@@/K@K2K@]D@%T@]C@%+@]D@%%ILLEGAER )@@G@@L FORMAT CHARACTERS WERE ACCEPTED AS BLANKS. RECORDS EXCEEDING MAXIMUES )@@G@@M LENGTH ARE FAULTY. THE INTERPRETATION OF MEANINGLESS INPUT WAS ATTEET )@@G@@MPTED./K@J__RF)^TH/@)K(\P;)@@[AF)^THC@)^V>/@)@%.[@)^V= @@^V>/K@@%"'^@^V%EU )@@G@@R3)^V=P;)@@[AB)^T R#)^W[%8)@@H/K@@:ERB)^W5AB)@:DRB)^TCO#)^W4A#)^W4A#)@@@EV )@@G@@RF)^TKOB)^TC?@)^TJ/K@@:TAF)^TKR;)@@]R#@^TJR#)@2 &;?]@@A#)^XHD@@@%R*?@^V3EW )@@G@@/\K@XERF)^TK ?@^V3AF)^TK/K@K%3C[@^W[%9@@@H/K@@:=C @^W5[ @@:A#@^T0R#@^VQ'=@@@I/K@@,P'^@@\LFL )@@G@@/\0@\]A#@^U!9?@^U,/K@@,M'^@@\L/\0@\]A#@^U!9?@^U09*@^U&R#@^VR'=@@@I(^@^T1FM )@@G@@/K@@!(R#@^VS'=@@@I'^@@,-R#@^UHA#@^U N80@#C*@@^T0/K@@,7RBK^T1/K@@!E/K@@@@FN )@@G@@RB@@,*/@@K,-AB@@,- ^@@,*'^@@\S/K@K,-/S@@@@'^@@\LRB@^XI(CG@@@P;@@@[OF@^XIFO )@@G@@R#K^VTN@/@@@/\0@\#/K@@,P/K@@,4N@0K,2'^@@\LR#K^VU/K@@,0R]0^T6 @@^T0*CF@@@FP )@@G@@*4F@@@/K@@\@R;V@@@RFF@@@A#K^T1/K@@?5O'0@@[/K@@,9R#K^VVA#K^U R#@^VW(^@@,*FQ )@@G@@'=@@@I^@0^T1RF@^T1'^@@\ZA#@^UFR#@^VNRBK^T1*@@@@HR#H@@@A#@^UH/KJ@@@/K@@@@FR )@@G@@A]0^T69*@^T79*)^T99(@^T;^@0^T./K@@\L/K@@@@R]0^T69?@^T79?)^T99!@^T;N@0^T.FS )@@G@@/K@@\S/K@@@@;G@@@MR;)@@ Q;K@@A;@K@@#;?@@@A8#)@\+/K@@\ZC80@@G/K@@0OC80@@HFT )@@G@@&'0@@#C^:@@@/K@@\.C80@@H&'0@@[C@@@@F(CG)@[/K@@\0H@@@@F&'/@@@C8K^W6[^K^W5FU )@@G@@%8@@@]/K@@0]C^:@@[*0F@@@C^:@@@N^:@@@*0F@@@N^:@@[C8K@] [^K@02[^)^VX/K@@0QFV )@@G@@C^V@@@N^:@@[C@X@@@C^:@@][CK^VY[^)^VX ^@^VY!8K@] C8K@]^G8K@@[[^K@02%8@@@^FW )@@G@@/K@@0QC^V@@# @@^W4[^K^W5/K@@0QC80@@FN^:@@@&'0@@[A]0^XIA#0^W[ @@^VZ@@@GD )@@G@@C(Z@@@C!Z@@@C1Z@@@C5Z@@@[-Y@@@[>Y@@@[(Y@@@[!Y@@@[1Y@@@[5Y@@@C8K@@PC@.^WUGE )@@G@@:@0^V-8#K@1!C8.@@[CCK^WT%8K@@ G80@@[N@K@@JC@K^V+C@)^VXM#!)@@G@0^VX[@0^VXGF )@@G@@C^K@1[/K@@0./K@@@@'^@@P#C@@^RN'=@@@IC^K@1//K@@0.R#@^XH @@^XH/KF@@]@@ @@@GG )@@G@@/K@@@@'^@@@@ C@^TK/K@K2A/K@@@@'^@@@@/K@K2E/K@@@@C^)@2H/K@@@@/K@@@@/K@J__GH )@@G@@R#)^V$AB)@2JR#)^V(A#)^V:/K@@2IR#)^V*A#)^V:/K@OV%RB@@2H*4G@@@/KG@@@R;?@@[GI )@@G@@R#G@@@+@@^W7O#K^W8A#K@2+R7@@@@AB)@2H/K@@2J/K@@@@[^@^V=P;)@@[C[I@@@;(@@@EGJ )@@G@@;D@@@)[1@^V=:9@@@^[5@^V=C9K@@[:9@@@^G9K@@[:9@@@#G9K@@[[[K^V_/K@K2>C@@^W;GK )@@G@@T@@^W"+@@^W.G/K@@[;^@@@=+@@^W.[@K^W;C@@^W/T@@^W_+@@^W.G/K@@ ;^@@@=+@@^W.GL )@@G@@[@K^W/(@@^W//K@@2/C@)^W;;@)@@K+@)^W.H@0^W/D@)@@J+@)^W.[@0^W'N@0@3I/K@@3ZGM )@@G@@@[F^X]R@K^X C@@^W;[@[@@@C@)^W/[@-@@[N@0@3Q/K@@3Z@[K^X]R@K^X C@[@@@[@@^W;GN )@@G@@C@-@@[[@)^W/N@0@3Y/K@@3Z@[P^X]R]0^X#R@K^XAC@@^W'*4@OX@/K@OX@/K@@,]AA0^X#GO )@@G@@[^@^X@A@K^XA/KH@@@C8@@@]/\K@3>/K@@25C8@@@]/\K@3>C8FK@@[@@^X /K@@3JC8@@@]GP )@@G@@/\K@3>C8FK@@[@@^X /K@@3RC80@@H&'0@@#C^:@@@/K@@4EC80@@H&'0@@[C@@@@F(CG)@[GQ )@@G@@/K@@3.H@@@@F&'/@@@C8K^W6[^K^W5%8@@@]/K@@4KC^:@@[*0F@@@C^:@@@N^:@@@*0F@@@GR )@@G@@N^:@@[C8K@] [^K@4/[^)^XB @@^XC/K@@4=C^V@@@N^:@@[C@X@@@C^:@@][CK^XD[^)^XBGS )@@G@@ ^@^XD!8K@] C8K@]^G8K@@[[^K@4/%8@@@^/K@@4=C^V@@# @@^W4[^K^W5/K@@4=C80@@EGT )@@G@@N^:@@@&'0@@[A]0^XIO,;@@@ @@^V<[@0^W[C9K@%P[ K@2L^^)^T^N8K@@MC@K^S1C@@^S3GU )@@G@@M#H)@@/SF)@@AA0@2HC9K^W#[ K^R,:80@@H/K@@4;C9K@4"N8K@[L[ K@2B^@K^TJ'^@@2AGV )@@G@@/K@@=RBK@6]RFH@@[AB@@6JRBH@@[;*@@@]1@G^@@/K@@6IRBH@@[R;K@6I'=@@[DHC )@@G@@9?@@6>/K@@@@@@@@@@9*@@6>A#)@6$RB@K6K;*@@@]1@G^@@/K@@6URB@K6KR;K@6U'=@@[DHD )@@G@@RB@@6KP;@@@]RBW@@@R#)@6*A#?@@@RFG@@]ABW@@@O;@@@[AB@@6JR#)@6$/K@@6I@@@@@@HE )@@G@@@@@@@@@@@@@@'^@@6]R#V@@@R;@^XLR#X@@@A#K^XK%@K^XO'=@@@C/S@@@@/S@@@@(^@@6\HF )@@G@@'=@@@D'=@@@6)8@@)@R#@@@H'=@@@5 @@@@G'=@@[[(@@@6,'^@@\S'=@@@Q@@@@@@@@@@@@HG )@@G@@A#@^XRR\@@6/P;@@@^%8@@@A/K@@7JR7@@6/'^@@\ZAF@^XWR3@@6/'^@@\ZAF@^XYRB@@6/HH )@@G@@'^@@\ZA#@^X-R#@^X+'=@@@I'^@@6\')G^XRRB@@6/O;@@@['=@@[@AB@@7PR#@^XR/K@@@@HI )@@G@@R#@^X<'=@@[[/KF@@[/,0@7Q/S@@@@/,0^@7@@@^/3@@@^/0@@@^/1@@@^/4@['@@@/,0^[MHJ )@@G@@@[;@@@/,0^[D/K@@7*/K@@7!/K@@8Z@[/@@@/,0^@4/K@@7@C@^/8^[V@@@@]ZHP )@@G@@)O@@@@@91@8&^.K^/9@@@@@[)O@@@@@"Y@8& ]1^/9@@@@@A)O@@@@@_K@8& [\^/9@@@@@SHQ )@@G@@)O@@@@@_H@8&^..^/9@@@@@3)O@@@@@87@8&^.S^/9@@@@[ )O@@@@@/L@8&^.0^/9@@@@[CHR )@@G@@)O@@@@@/-@8&^"C^/9@@@@[O)O@@@@@.D@8&^"1^/9@@@@[-)O@@@@@/C@8& ]C^/9@@@@[0HS )@@G@@)O@@@@[[G@8& ]0^/9@@@@[;)O@@@@@9F@8&^":^/9@@@@]Q)O@@@@@82@8&^. ^/9@@@@]XHT )@@G@@'^@@6]'^@@6K@/U@@B'^@@6]'^@@6K@8&@@ '^@@6]'^@@6K@_ @@#'^@@6]'^@@6K@"_@@^HU )@@G@@'^@@6]'^@@6K@81@@G'^@@6]'^@@6K@"O@@]'^@@6]'^@@6K@83@@ '^@@6]'^@@6K@/E@@AHV )@@G@@'^@@6]'^@@6K[@_@@E'^@@6]'^@@6K@;_@@D'^@@6]'^@@6K@9,@@['^@@6]'^@@6K@9C@@FHW )@@G@@'^@@6]'^@@6K@/"@@CNL[HPM@@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HX )@@G@@@@@@@@@@[@@@)@)@@@K^*@@@@@@@@@@@[@@[@@@@@@^@@@@@@@@@@@C@@@@@@@@@@@@@@@C@HY )@@G@@K^*@@@@@@@@@KB2@@@@@@@@@KE")@@@@@@@@KI$^@@@@@@@@KL05@@@@@@@@KO.]K@@@@@@@HZ )@@G@@KS&DU@@@@@@@KV\:0)@@@@@@KY;&?*@@@@@@K+>KF9@@@@@@L#:R<:1U1+@@L=2ZFD3KL$N,IA )@@G@@M '1>J<-:>D)M$+H-6E_G=3LNC$4/$D-YUC=N(,RRQ!,899#OE5"X'<8ZU"@O:"5-8MO:II&IB )@@G@@PH==5(FESV96UT(3\2B=K@I?7N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IC )@@G@@@@@@@@@@@@@@@[B^O6UNRECOGNIZABLE CONTROL WORD ENCOUNTERED ID )@@G@@_@@@@@*@@@@@@@@_@@@@@)@@@@ ^W#@@@^WS@@]^W#@I9^W#@[B^PH@_A^PO@_D^PU@_B^P@@F@@@@@@@@@MINUS2@[P]L(@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@@@@@ JP )@@G@@@6[^W#@@[^W#@@@@@@@@@@@@STOP @@@@@@@@G^XJ@@@@@@ @@@@@@#C@^XPJQ )@@G@@@@@@@@#^@^XPERROR MODE: TYPE= , CODE= , ERR.ADDRESS= @]D^XTJR )@@G@@CO@@6/@@@@@@ SUN MON TUESWEDNES THURS FRI SATUR JAN FEB MARCH JS )@@G@@APRIL MAY JUNE JULY AUG SEP OCT NOV DEC @@@@@@@@@@@@@@@@@@JT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ * KY )@@G@@ * KZ )@@G@@ LA )@@G@@ LB )@@G@@ LC )@@G@@ LD )@@G@@ LE )@@G@@ LF )@@G@@ LG )@@G@@ LH )@@G@@ LI )@@G@@ LJ )@@G@@ LK )@@G@@ LL )@@G@@ LM )@@G@@ LN )@@G@@ LO )@@G@@ * LP )@@G@@ * LQ )@@G@@ LR )@@G@@ LS )@@G@@ LT )@@G@@ LU )@@G@@ LV )@@G@@ LW )@@G@@ LX )@@G@@ LY )@@G@@ LZ )@@G@@ MA )@@G@@ MB )@@G@@ MC )@@G@@ MD )@@G@@ ME )@@G@@ MF )@@G@@ 23 * MG )@@G@@ 24 * MH )@@G@@ MI )@@G@@ MJ )@@G@@ MK )@@G@@ ML )@@G@@ MM )@@G@@ MN )@@G@@ MO )@@G@@ MP )@@G@@ MQ )@@G@@ MR )@@G@@ MS )@@G@@ MT )@@G@@ MU )@@G@@ MV )@@G@@ MW )@@G@@ * MX )@@G@@ * MY )@@G@@ MZ )@@G@@ NA )@@G@@ NB )@@G@@ NC )@@G@@ ND )@@G@@ NE )@@G@@ NF )@@G@@ NG )@@G@@ NH )@@G@@ NI )@@G@@ NJ )@@G@@ NK )@@G@@ NL )@@G@@ NM )@@G@@ NN )@@G@@ * 30 NO )@@G@@ * 31 NP )@@G@@ NQ )@@G@@ NR )@@G@@ NS )@@G@@ NT )@@G@@ NU )@@G@@ NV )@@G@@ NW )@@G@@ NX )@@G@@ NY )@@G@@ NZ )@@G@@ OA )@@G@@ OB )@@G@@ OC )@@G@@ OD )@@G@@ OE )@@G@@ * OF )@@G@@ * OG )@@G@@ OH )@@G@@ OI )@@G@@ OJ )@@G@@ OK )@@G@@ OL )@@G@@ OM )@@G@@ ON )@@G@@ OO )@@G@@ OP )@@G@@ OQ )@@G@@ OR )@@G@@ OS )@@G@@ OT )@@G@@ OU )@@G@@ OV )@@G@@ * OW )@@G@@ * OX )@@G@@ OY )@@G@@ OZ )@@G@@ PA )@@G@@ PB )@@G@@ PC )@@G@@ PD )@@G@@ PE )@@G@@ PF )@@G@@ PG )@@G@@ PH )@@G@@ PI )@@G@@ PJ )@@G@@ PK )@@G@@ PL )@@G@@ PM )@@G@@ @@@@@@@@@@@@PN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@1,0. ______6,3. PO )@@G@@______ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MAIN @]?@@@@@@@]ZPQ )@@G@@SUBA @@B@@B@@@@@[HOLS @@B@@C@@@@@ADSPLAY @@B@@D@@@@@SPR )@@G@@DSPLA2 @@B@@E@@@@@3ASM @@A@@F@@@@[ SETUP @@B@@G@@@@[CPS )@@G@@CFORM @@B@@H@@@@[OTTY @@C@@I@@@@[-SKETCH @@B@@J@@@@[0PT )@@G@@SKECH2 @@B@@K@@@@[;TITLES @@B@@L@@@@]QEND @@B@@M@@@@]XPU )@@G@@************@P@[@@@@@@@@NUPDA$ K@]@@AHR9FU @@@@@@@@W@C@NBF00$ PV )@@G@@K@#@@HH^BAO#@@@@@@@@@@@@@M]^[VNBDCV$ K@#@@OK\T]QB@@@@@@@[W@CW@@)^NXPW )@@G@@NFTV$ K@]@@UH *AO#@@@@@@@@N@D8NCNVT$ K@#@@-K\<]QB@@@@@@@]V@EFPX )@@G@@@@8^N.NININ$ K@#@@*D(6FTA@@@@@@@]O@G&@@M^O5NFCHK$ K@ @@1K0G]QBPY )@@G@@@@@@@@@A]@I'@[+^PB@@@@@@@@%^Q(NOUT$ K@#@@8G9*BZB@@@@@@@B*@O/@@T^RNPZ )@@G@@NIOER$ K@#@@_K04]QB@@@@@@@[J@W=@[#^R?NINPT$ K@#@[AK0\]QB@@@@@@QA )@@G@@@A0@X3@@N^S\NFMT$ K@#@[HK0X]QB@@@@@@@B @=<@@J^T]NTAB$ K@#@[OQB )@@G@@HB0AO#@@@@@@@@@@@@@@Z^TLERU$ K@@@[SK32]QBNIBUF$ K@]@[YE\.CIAQC )@@G@@@@@@@@@@+@:*NERR$ K@#@[>K\%]QB@@@@@@@#X@?E@[!^T0NOSYM$ K@#@[?QD )@@G@@K1H]QB@@@@@@@]V@\$@@A^VXNIER$ K@#@[3]TDAPB@@@@@@@@3@2]@[R^V^##C@[=^X=BLANK$COMMONC@[@]=J>^##C@X?^ZCQI )@@G@@MAIN @@^@@@JYA##C@@ ^/4@[H@7T)]Y@@@)]U@@@ /// **@P@[@@ QJ )@@G@@** \\\ *** \\\\\\*** /// \\\ /// QK )@@G@@ \\\ ***////// *** /// **SUBA @@#@@@JYM##CQL )@@G@@@@S^/9@[G@8&)]Y@@@\\\*** /// \\\ /// \\\ QM )@@G@@***////// *** /// **@P@[@@ ** *** QN )@@G@@HOLS @@#@@@JZL##C@ 9^/9@ 9@8&)]Y@@@ \\\*** QO )@@G@@ *** **@P@[@@ ** *** QP )@@G@@ ***/// *** D1 @@#@@@J-S##C@^7^/9@A:@8&)]Y@@@ QQ )@@G@@ **@P@[@@ ** /// /// ***/// \\\QR )@@G@@*** ///\\\ ***/// \\\*** D2 @@#@@@J+)##CQS )@@G@@@[ ^/9@A*@8&)]Y@@@/// /// ***/// \\\*** ///QT )@@G@@\\\ ***/// \\\*** \\\ \\\ **@P@[@@ QU )@@G@@NEWASM @@]@@@J+6##C@@)^/9@@M@8&\\\/// \\\ ///QV )@@G@@ \\\/// /// /// **@P@[@@ ** QW )@@G@@ \\\ \\\ SETUP @@#@@@JYX##C@@8^/9@#?@8&)]Y@@@\\\///QX )@@G@@ /// /// **@P@[@@ ** *** /// ***QY )@@G@@ *** \\\ CFORM @@#@@@JY,##CQZ )@@G@@@[K^/9@#/@8&)]Y@@@*** **@P@[@@ ** *** /// *** *** RA )@@G@@ \\\ /// *** *** \\\RB )@@G@@TTY @@^@@@J-D##C@[9^/9@^=@8&)]Y@@@)]U@@@/// ***/// RC )@@G@@*** *** \\\*** \\\*** ***/// **RD )@@G@@@P@[@@ ** \\\***SKETCH @@#@@@J=L##C@ K^/9@#<@8&)]Y@@@ RE )@@G@@ *** \\\*** \\\*** ***/// **@P@[@@ RF )@@G@@** *** *** SK2 @@#@@@J=:##CRG )@@G@@@ 8^/9@C$@8&)]Y@@@ **@P@[@@ ** RH )@@G@@ *** *** /// \\\ *** RI )@@G@@TITLES @@#@@@J=4##C@[3^/9@@&@8&)]Y@@@ ** *** RJ )@@G@@ ////// \\\*** \\\************/// ***/// \\\\\\ RK )@@G@@ *** **END @@#@@@J>@##C@@H^/9@@H@8&)]Y@@@/// RL )@@G@@ \\\*** \\\************/// ***/// \\\\\\ *** RM )@@G@@ **@P@[@@ ** *** *[S@@@*SDFF*@ @@@@ RN )@@G@@COMPILER(DATA=SHORT) @E@@@@ COMMON/A/ IDAT(30),IMP(80),L(60,26),RO )@@G@@LINE(30),NUM(11) @G@@@@ DATA (L(I),I= 1, 57)/ 1, 2,30, 1, 3,30,RP )@@G@@ 1, 6,30, 1,10,30, 1, 2,@G@@@@ 1 7,15,30, 7,10,12,21,30, 7,10,18,26,RQ )@@G@@30, 1, 2, 7,10,15, 1, 2, 7,27,@F@@@@ 230, 1,23,30, 1,17,30, 1,12,30,RR )@@G@@ 1, 7,30, 1, 3,30, 1, 2,30, 0/@G@@@@ DATA (L(I),I= 61, 110)/ 1, 2,RS )@@G@@28,30, 1, 3,27,30, 1,30, 1,30, 1,30,@G@@@@ 1 1,30, 1, 3,15,16,27, 1,RT )@@G@@ 3,14,17,27, 1, 4,13,18,26, 1,30, 2,15,17,@C@@@@ 229,30, 3,14,18,28,RU )@@G@@30, 5,12,20,26,30,-0/ @G@@@@ DATA (L(I),I= 121, 174)/13,17,30, 9,RV )@@G@@22,30, 6,25,30, 4,27,30, 3,28,@G@@@@ 130, 2, 4,26,29,30, 1, 3,27,30,RW )@@G@@ 1, 3,27,30, 1, 3,27,30, 2, 4,26,29,@E@@@@ 230, 3, 6,24,28,30, 4, 8,RX )@@G@@21,27,30, 7, 8,21,25,30,-0/ @G@@@@ DATA (L(I),I= 181, 225)/ 1, 2,RY )@@G@@29,30, 1, 3,28,30, 1,30, 1,30, 1,30,@G@@@@ 1 1,30, 1, 3,27,30, 1, 4,RZ )@@G@@26,30, 1, 5,25,30, 2,29,30, 3,28,30, 5,25,@ @@@@ 230, 8,22,30,12,18,SA )@@G@@30,-0/@G@@@@ DATA (L(I),I= 241, 290)/ 1, 2,29,30, 1, 3,29,30, 1,30,SB )@@G@@ 1,30, 1,30,@G@@@@ 1 1,30, 1, 2,15,16,28, 1, 2,14,17,28, 1, 3,13,18,SC )@@G@@28, 1, 4,13,18,27,@C@@@@ 2 1, 7,26,30, 1, 9,24,30, 1,10,23,30,-0/ SD )@@G@@@G@@@@ DATA (L(I),I= 301, 337)/ 1, 2,29,30, 1, 3,28,30, 1,30, 1,30,SE )@@G@@ 1,30,@G@@@@ 1 1,30, 1, 3,15,16,28,14,17,28,30,12,19,27,30,25,30,23,SF )@@G@@30,22,30,-0/@G@@@@ DATA (L(I),I= 361, 418)/13,17,30, 9,22,30, 6,25,SG )@@G@@30, 4,27,30, 3,28,@G@@@@ 130, 2, 4,26,29,30, 1, 3,27,30, 1, 3,27,30,SH )@@G@@ 1, 3,13,16,27, 1, 5,11,@G@@@@ 216,27, 2,16,26,30, 3,16,25,28,30, 1,SI )@@G@@16,24,29,30,13,16,23,30,-0/ @G@@@@ DATA (L(I),I= 421, 470)/ 1, 2,SJ )@@G@@29,30, 1, 3,28,30, 1,30, 1,30, 1,30,@G@@@@ 1 1,30, 1, 2,14,17,29,14,SK )@@G@@17,30,14,17,30, 1, 2,14,17,29, 1,30, 1,30,@C@@@@ 2 1,30, 1,30, 1, 3,SL )@@G@@28,30, 1, 2,29,30,-0/ @G@@@@ DATA (L(I),I= 481, 506)/ 1, 2,29,30,SM )@@G@@ 1, 3,28,30, 1,30, 1,30, 1,30,@B@@@@ 1 1,30, 1, 3,28,30, 1, 2,29,30,SN )@@G@@-0/ @G@@@@ DATA (L(I),I= 541, 578)/ 7, 9,30, 3,12,30, 2,13,30, 1,SO )@@G@@13,30, 1, 3,@G@@@@ 1 7,12,30, 1, 3,30, 1, 4,29,30, 1,30, 1,30, 2,30,SP )@@G@@ 4,30,29,30,29,30,@]@@@@ 2-0/ @G@@@@ DATA (L(I),I= 601, 657)/SQ )@@G@@ 1, 2,29,30, 1, 3,28,30, 1,30, 1,30, 1,30,@G@@@@ 1 1,30, 1, 2,14,16,SR )@@G@@29,13,17,30, 9,20,30, 1, 2, 6,23,29, 1,14,20,30,@F@@@@ 2 1,10,23,30,SS )@@G@@ 1, 7,26,30, 1, 4,29,30, 1, 2,29,30, 1, 2,30,-0/@G@@@@ DATA (L(I),IST )@@G@@= 661, 697)/ 1, 2,29,30, 1, 3,28,30, 1,30, 1,30, 1,30,@G@@@@ 1 1,30,SU )@@G@@ 1, 2,29,30, 1, 2,30, 1, 3,30, 1, 4,30, 1, 7,30, 1,10,30,-0/@G@@@@ SV )@@G@@DATA (L(I),I= 721, 771)/ 1, 2,29,30, 1,30, 1,30, 1,30, 1, 2,12,27,@G@@@@SW )@@G@@ 130, 8,23,30, 5,18,30, 7,16,30,11,20,30, 1, 2,15,24,30, 1, 3,19,28,SX )@@G@@@C@@@@ 230, 1,30, 1,30, 1,30, 1,30, 1, 2,29,30,-0/@G@@@@ DATA (SY )@@G@@L(I),I= 781, 817)/ 1, 2,29,30, 1,30, 1,30, 1,30, 1, 2,18,30,@G@@@@ 1SZ )@@G@@15,28,30,11,24,30, 7,20,30, 3,16,29,30, 1,30, 1,30, 1,30,29,30,-0/@G@@@@TA )@@G@@ DATA (L(I),I= 841, 890)/13,17,30, 9,22,30, 6,25,30, 4,27,30, 3,28,TB )@@G@@@G@@@@ 130, 2, 4,26,29,30, 1, 3,27,30, 1, 3,27,30, 2, 4,26,29,30, 3,TC )@@G@@28,30,@C@@@@ 2 4,27,30, 6,25,30, 9,22,30,13,17,30,-0/ @G@@@@ TD )@@G@@DATA (L(I),I= 901, 944)/ 1, 2,29,30, 1, 3,28,30, 1,30, 1,30, 1,30,@G@@@@TE )@@G@@ 1 1,30, 1, 2,14,16,29, 1, 2,14,16,28,14,18,25,30,14,29,30,15,27,30,TF )@@G@@@ @@@@ 217,25,30,20,22,30,-0/ @G@@@@ DATA (L(I),I= 961,1015)/TG )@@G@@13,17,30, 9,22,30, 6,25,30, 4,27,30, 3,28,@G@@@@ 130, 2, 4,26,29,30,TH )@@G@@ 1, 3,27,30, 1, 3, 7, 8,27, 1, 3, 5, 9,27, 2, 7,@E@@@@ 226,29,30, 3,TI )@@G@@28,30, 2,26,30, 1, 2, 9,23,30,13,18,30,-0/@G@@@@ DATA (L(I),I=1021,TJ )@@G@@1071)/ 1, 2,29,30, 1, 3,28,30, 1,30, 1,30, 1,30,@G@@@@ 1 1,30, 1, 2,TK )@@G@@14,16,29,13,16,28,30,11,30, 5,29,30, 2,28,30, 1,14,17,@C@@@@ 226,30,TL )@@G@@ 1, 6,20,23,30, 2, 5,30, 4, 5,30,-0/@G@@@@ DATA (L(I),I=1081,1140)/TM )@@G@@ 1,11,20,25,30, 1,10,18,27,30, 3, 8,16,28,@G@@@@ 130, 2, 6,15,29,30,TN )@@G@@ 1, 4,13,21,27, 1, 3,12,19,27, 1, 3,11,18,27, 1,@G@@@@ 2 4,10,17,26,TO )@@G@@ 1,16,25,29,30, 2,15,23,28,30, 3,13,21,30, 5,11,20,30,@]@@@@ 3-0/ TP )@@G@@@G@@@@ DATA (L(I),I=1141,1178)/20,30,21,30,25,30, 1, 2,29,30, 1, 3,TQ )@@G@@29,30,@G@@@@ 1 1,30, 1,30, 1,30, 1,30, 1, 3,29,30, 1, 2,29,30,25,30,TR )@@G@@21,30,20,30,@]@@@@ 2-0/ @G@@@@ DATA (L(I),I=1201,1240)/29,30,TS )@@G@@28,30, 4,30, 2,30, 1,30, 1,30, 1, 4,@G@@@@ 129,30, 1, 3,30, 1, 3,30,TT )@@G@@ 1, 3,29,30, 1, 4,29,30, 2,30, 4,30,28,30,@#@@@@ 229,30,-0/ @G@@@@TU )@@G@@ DATA (L(I),I=1261,1293)/29,30,28,30,24,30,18,30,12,30, 6,30, 1,20,TV )@@G@@@E@@@@ 129,30, 1,15,30, 8,20,29,30,15,30,25,30,28,30,29,30,-0/@G@@@@TW )@@G@@ DATA (L(I),I=1321,1366)/29,30,25,30,19,30,13,30, 7,25,30, 1,19,30,TX )@@G@@@G@@@@ 1 1,13,29,30, 1,18,24,30,13,30,15,30, 8,29,30, 1,20,30, 1,22,TY )@@G@@29,30,@A@@@@ 212,30,22,30,28,30,29,30,-0/ @G@@@@ DATA (L(I),ITZ )@@G@@=1381,1436)/ 1, 2,29,30, 1, 3,28,30, 1, 5,23,30, 1, 8,@G@@@@ 118,30,UA )@@G@@ 1, 2, 5,12,16,10,23,29,30, 9,20,30, 1, 2, 5,21,30, 1,14,19,@F@@@@ 2UB )@@G@@25,29, 1,10,21,30, 1, 7,25,30, 1, 3,28,30, 1, 2,29,30,-0/ @G@@@@ UC )@@G@@DATA (L(I),I=1441,1481)/29,30,29,30,28,30,23,30, 1, 2,19,30, 1,30,@G@@@@UD )@@G@@ 1 1,30, 1,20,29,30, 1,19,30, 1,22,30, 1, 2,18,25,29,21,30,25,30,29,UE )@@G@@@#@@@@ 230,29,30,-0/@G@@@@ DATA (L(I),I=1501,1542)/ 1, 2,22,30,UF )@@G@@ 1, 7,23,30, 1,12,25,30, 1,17,@G@@@@ 126,30, 1,22,27,30, 1, 2, 7,30,UG )@@G@@ 1, 3,12,30, 1, 4,17,30, 1, 8,22,30,@^@@@@ 2 1, 9,27,30,-0/ @E@@@@UH )@@G@@ DATA NUM/1H0,1H1,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9,1H / @ @@@@ 1009 UI )@@G@@FORMAT(1H ,50X,30A1) @^@@@@ 1008 FORMAT(1X,30A1) @G@@@@ DATA IUJ )@@G@@DAT/1HA,1HB,1HC,1HD,1HE,1HF,1HG,1HH,1HI,1HJ,1HK,1HL,1HM,1HN,@ @@@@C1009 UK )@@G@@FORMAT(1H=,93X,30A1) @G@@@@ 11HO,1HP,1HQ,1HR,1HS,1HT,1HU,1HV,1HW,UL )@@G@@1HX,1HY,1HZ,1H ,1H*,1HA,1HB/ @I@@@@ 1 FORMAT(80A1) UM )@@G@@ 5 @I@@@@ 69 FORMAT (1H1)UN )@@G@@ 6 @I@@@@UO )@@G@@ 8888 FORMAT(////) UP )@@G@@ 8 @I@@@@ 501 FORMAT(12(/)) UQ )@@G@@ 11 @^@@@@ CALL DEMAND(IDEM) @#@@@@ UR )@@G@@CALL OFF @#@@@@ CALL GLITCH @#@@@@ PRINT 69 @]@@@@ US )@@G@@BCD=0.@^@@@@ ASSIGN 6 TO LGO @#@@@@ 504 READ 1,IMP @^@@@@ UT )@@G@@DO 13 M = 1,77 @G@@@@ IF ((IMP(M) .EQ. IDAT(27)) .AND. (IMP(M+1)UU )@@G@@ .EQ. IDAT(27)) .AND. @G@@@@ *(IMP(M+2) .EQ. IDAT(27)) .AND. (IMP(UV )@@G@@M+3) .EQ. IDAT(27))) GO TO 14 @#@@@@ 13 CONTINUE @#@@@@ GO TO UW )@@G@@LGO @^@@@@ 14 IMP(M) = IDAT(28) @#@@@@ GO TO LGO @]@@@@ 6 UX )@@G@@KK=1 @ @@@@ 606 IF(KK.GT.80) GO TO 202 @A@@@@ IF(IMP(KK).NE.1H1)UY )@@G@@ GO TO 46 @#@@@@ 605 PRINT 69 @#@@@@ GO TO 2 @A@@@@ 46 UZ )@@G@@IF(IMP(KK).NE.1H,) GO TO 12 @^@@@@ IMP1=IMP(KK+1) @]@@@@ VA )@@G@@BCD=1.@ @@@@ IF(KK.NE.80) GO TO 32 @^@@@@ ASSIGN 32 TO LGO VB )@@G@@@]@@@@ KK=0 @#@@@@ GO TO 504 @^@@@@ 32 IMP1=IMP(KK+1) VC )@@G@@@#@@@@ DO 22 M=1,11@A@@@@ IF(IMP1.EQ.NUM(M)) GO TO 23 @#@@@@VD )@@G@@ 22 CONTINUE @^@@@@ NBCD=IMP(KK+1) @#@@@@ KK=KK+2 VE )@@G@@@#@@@@ GO TO 12 @A@@@@ 23 NBCD1=8*( MOD ((M-1),10)) @ @@@@VF )@@G@@ IF(KK.NE.79) GO TO 34 @^@@@@ ASSIGN 34 TO LGO @]@@@@ VG )@@G@@KK=-1 @#@@@@ GO TO 504 @#@@@@ 34 DO 25 M=1,11@B@@@@ IF(IMPVH )@@G@@(KK+2).EQ.NUM(M)) GO TO 26 @#@@@@ 25 CONTINUE @#@@@@ NBCD=IVI )@@G@@MP1 @#@@@@ KK=KK+2 @#@@@@ GO TO 12 @A@@@@ 26 NBCD2=VJ )@@G@@NBCD1+ MOD ((M-1),10) @#@@@@ KK=KK+3 @ @@@@ IF(NBCD2.NE.VK )@@G@@81) GO TO 28@]@@@@ BCD=0.@#@@@@ GO TO 12 @A@@@@ 28 FLD(0,VL )@@G@@6,NBCD)=FLD(30,6,NBCD2) @ @@@@C 28 ENCODE(8,99,NBCD)NBCD2 @#@@@@C 99 VM )@@G@@FORMAT(R1) @ @@@@ 12 IF(KK.NE.81) GO TO 113 @^@@@@ ASSIGN 113 TVN )@@G@@O LGO @]@@@@ KK=1 @#@@@@ GO TO 504 @A@@@@ 113 IF(IMP(KK).EVO )@@G@@Q.1H1) GO TO 605 @]@@@@ J=0 @^@@@@ DO 3JJ = 1, 29 @]@@@@VP )@@G@@ J=J+1 @ @@@@ IF(IMP(KK)-IDAT(J))3,4,3@I@@@@ 3 CONTINUE VQ )@@G@@ 20 @ @@@@VR )@@G@@ 4 IF(J - 28)5, 9009, 2 @ @@@@ 5 IF(IDEM.EQ.4) GO TO 9082@#@@@@VS )@@G@@ PRINT 8888 @#@@@@ GO TO 9083 @#@@@@ 9082 PRINT 8989 @^@@@@VT )@@G@@ 8989 FORMAT(2(/2H _)) @ @@@@ 9083 IF(J.NE.27) GO TO 506 @ @@@@ VU )@@G@@IF(IDEM.EQ.4) GO TO 4792@#@@@@ PRINT 501 @I@@@@ GO TO 2 VV )@@G@@ 24 @#@@@@VW )@@G@@ 4792 PRINT 5017 @#@@@@ GO TO 2 @^@@@@ 5017 FORMAT(6(/2H _)) VX )@@G@@@]@@@@ 506 N = 0 @I@@@@ I=0 VY )@@G@@ 26 @I@@@@ 10 DO 11 IS=1,30 VZ )@@G@@ 27 @I@@@@ 11 LINE(IWA )@@G@@S)=IDAT(27) 28 WB )@@G@@@]@@@@ 306 I=I+1 @I@@@@ N=N+1 WC )@@G@@ 30 @I@@@@ 308 I1=L(I,J) WD )@@G@@ 31 @ @@@@ IF(L(IWE )@@G@@,J))502,2,502 @ @@@@ 502 IF(I1 - 30)503,1005,503 @I@@@@ 503 IF(N -WF )@@G@@ 5)500, 307, 307 34 WG )@@G@@@I@@@@ 500 N = N + 1 WH )@@G@@ 35 @I@@@@ I=I+1 WI )@@G@@ 36 @ @@@@ IF(L(I,J)) 100,2,100 WJ )@@G@@@I@@@@ 100 I2=L(I,J) WK )@@G@@ 38 @I@@@@ IF(I2 - 30)505, 307, 307 WL )@@G@@ 39 @^@@@@ 505 IF(BCD)71,72,71 @#@@@@WM )@@G@@ 71 NURD=NBCD @#@@@@ GO TO 75 @#@@@@ 72 NURD=IDAT(J)@^@@@@WN )@@G@@ 75 DO 1003 K=I1,I2 @#@@@@ 1003 LINE(K)=NURD@I@@@@ GO TO 306 WO )@@G@@ 42 @^@@@@WP )@@G@@ 307 IF(BCD)61,62,61 @#@@@@ 61 NURD=NBCD @#@@@@ GO TO 65 WQ )@@G@@@#@@@@ 62 NURD=IDAT(J)@^@@@@ 65 DO 1004 K=I1,30 @#@@@@ 1004 LINE(KWR )@@G@@)=NURD@ @@@@ 1005 IF(IDEM.EQ.4) GO TO 583 @^@@@@ PRINT 1009,LINE WS )@@G@@@#@@@@ GO TO 582 @^@@@@ 583 PRINT 1008,LINE @I@@@@ 582 N=0 WT )@@G@@ 46 WU )@@G@@@I@@@@ GO TO 10 WV )@@G@@ 47 @#@@@@ 2 KK=KK+1 @#@@@@ GO TO 606 @#@@@@WW )@@G@@ 202 CONTINUE @^@@@@ ASSIGN 6 TO LGO @I@@@@ GO TO 504 WX )@@G@@ 49 @#@@@@WY )@@G@@ 9009 PRINT 69 @]@@@@ STOP @I@@@@ END WZ )@@G@@ 51 ___ @^@@@@ XA )@@G@@DO 3JJ = 1, 29 @]@@@@ J=J+1 @ @@@@ IF(IMP(KK)-IDAT(J))3,4,3XB )@@G@@@I@@@@ 3 CONTINUE *[@@@@*SDFF*@#@@@@ AXR$. @A@@@@PACKETXC )@@G@@ 'M,66,0,0. ' @]@@@@AREA + 0@#@@@@ RES 27 XD )@@G@@@[@@@@$(1) @A@@@@OFF* LA A0,(3,PACKET) .@B@@@@ ER XE )@@G@@ PRTCN$ . DO IT @A@@@@ J 1,X11 . RETURN XF )@@G@@@^@@@@DEMAND* SA A4,*0,X11 @^@@@@ J 2,X11 @]@@@@GLITCHXG )@@G@@* @ @@@@ L A0,(EXIT,AREA) @^@@@@ ER READ$ XH )@@G@@@^@@@@ SSL A0,35 @^@@@@ JB A0,$-3 @^@@@@ XI )@@G@@ J 1,X11 @]@@@@ END___@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[BO@11@C@^^L&XO )@@G@@@[)^M+@@2^OU@@=^PQ@@1^QM@@:^RI@[,^SE@[-^U]@@$^V'@@)^W6@@!^X2@[=^Y,@@(^)&XP )@@G@@@@F^+@@@T^+X@@]^@0^@W")0@C!98;@@@"0@@@JH8@@K@/@F@@@S@@^@@AA0@C(/^@@CPE@@@@GXR )@@G@@/K@@CT[^@^@UD@K@@G/,0@E5RJ@^@U9?K@C%9=K@@J98K@C$/GK@C)"*0^@XH8@@@[/K@@CTXS )@@G@@9?K@C?9=K@@J98K@C=/CK@C*G8@@@["?0^@X/K@@CTG9@@@[[^@^@U/K@@@@J.3G3G3G3G3GXT )@@G@@K[)@@@@@@@@@@@@@@@980@DS"0K@@JP;K@J5;?!@@@[ K^@T?9K@@B @@@@J!9K@@OC9K@@NXU )@@G@@C@@^@V ^@^@[C@K@@IU8K@@E/@0@D#;C0@@[U80@@E;*0@@[[@0^@#9)K^@]C@0@@K[@W=@^XV )@@G@@;C)@@[8^K@C' @@^@#G8K@@ H@@^@Z/K@@DHC@W^@^G8K@@[[@W^@^?8K@@E/KF@@@H8K@@EXW )@@G@@[@W^@^8#@@DEC8K@@[[@K^@#G^K^@U[^K^@U[^@^@[/KF@@@[ K^@TC8K@@O[^K^@[/KF@@@XX )@@G@@/KI@DW/K@@@@ @@^[P @@^[Q @@^[M/K@KD\/K@@@@*4@^[P/K@@E +8)@@JR#)^[QT8)@@EXY )@@G@@O#0@@IA#0^[QR#)^[P(4@^[Q/@)KD4T8)@@EO7)^[Q 4@^[QR#0^[QA#)^[P/K@KD4R#)^[MXZ )@@G@@O;)@@[A#)^[M9?)^[P/K@KD4/K@@@@9!@^[P'^@@ES/K@KEE/K@@@@9!@^[P'^@@ES/ KKEIYA )@@G@@C9K@@[/K@KEI/K@@@@9!@^[N'^@@ES/K@KEO/K@@@@/[@KES!9@@@)/K@@EZ;(K@@A;H@@@AYB )@@G@@/K@KESRB)@ES:8)@EL/K@@@@R#)@*+&;)A@@A#)^B D@@@-&/\K@N) 4@^ 8/K@KES/K@@@@YC )@@G@@ @@^[R'^@@D\'^@@E,/K@KE(/K@@@@9?)^[P9*)^[NR#)^[MA#)^[L'^@@D\/K@KE, @@@E.YD )@@G@@AA0@E'N@K^BH @@^BH/K@@FQ/K@@@@ ^@@E./K@@E"/K@@@@9!@^[P'^@@ES*?@^[RD[K@@LYE )@@G@@R#K@@LPJK^[RO#K^[LE[K@@H!9K@AK/K@@F'N@K^BH @@^BH9?0^[N980@FN;(@@@A;W0@@JYF )@@G@@;G0@@[R;)@K7P#)@@L9)0^@="4)@@J*4@^[R900@@J980@F(/@K@F(R;@@@@/CK@FVR;@@@[YG )@@G@@E@K@@H;GK@@=!8)@@EW8K@@E/@)@F&;*)@@[[@0^[K')G@G^%@0^[K/K@@F&;G0@[C/K@@F(YH )@@G@@/@K@F(G8@@@]/K@@FV*^@@E./K@@F!'^@@F6/K@KE'980@F4"0)@@J9)0^@)0@@@@J9=0^@+YI )@@G@@"4)@@J"/0@@J'^@@F6/K@KE./K@@@@C[K^BH^@K^BH/[K@F6R#@@*+&;@B@@A#@^B D@@@F_YJ )@@G@@/\K@NZ@[^@G@INPUT EXPONENT TOO LARGE"*"^@="?"^@="*"^@6"?"^@6"*"^[C"?"^[CYK )@@G@@/K@@I,/K@@I,/K@@I,/K@@I&/K@@H,/K@@G>/K@@I^/K@@L>/K@@MC/K@@MH/KH@K&/KH@K:YL )@@G@@/KH@K0/KH@K5/KH@K'/KH@K_/KH@L^/K@@J7RF@^ABRB0^AB')G@-G8#@@G:9K@@]ZY )@@G@@/K@@O^/C)@N_C[K@@GE@@@@G'=@@@I/DK@N4R#@^]?'=@@@IR#@^[!'=@@@IRB@^ */@@@N/ZZ )@@G@@0@@^ *R;G@@[RFG@@@AB@^]*R#@^]!'=@@@I(@@^[?/G)@O]/G)@>O @@^[? @@^A@/KI@@@AA )@@G@@'^@@>O/KH@@@/C)@O@'=@@@I/K@@>OR#:@@[/K@@N(/K@@@@9!@^];R#)^]_N8)@@E9(I)@@AB )@@G@@8K)@OH/K@KOD/K@@@@C4K^AZ 4@^],:8K@@ /K@@OV:8K@@0/K@@OX:8K@@1/K@@OZ:8K@@+AC )@@G@@/K@@O+C8)@@[/K@@OC^K^ (0@H@@@AQ )@@G@@/[K@R>[DK^]5CDK^#HGHK^#P/HK@R>/[K@R>[ K^]5'^@@R9CD@^]5'^@@T\(G@^@T/K@@R?AR )@@G@@RJ)^@UPJ)^#P#^)^@U/@)@RN/G)@R%R;)@@+'^@@O1RJK^@U'^@@C@ @G=@^ @G=@^C9@@@]AS )@@G@@R7@^#G:8@@@[/K@@R+%8@@@^/K@@R/K@@VIE@"@@@/@0@S8"80@@J/,0@CD9*0^].R7@^#GAX )@@G@@/KG@SP/K@@S!/K@@S1DH@^@U/[@@SW/D@@S!GD@^#H/H@@S!DH@^@UGD@^#HR#0^#HA#0^]3AY )@@G@@P;0@@#[D@^#HAB0^#HC9@@T@[ @@R9RJ0^@U/K@@S394"@@@980@S8/,0@CD/K@@S,9?0^].AZ )@@G@@C K^]5/,0@C\/K@KR9RJ0^#POJ0^@UAB0^@UOF0^#HAB0^]5 @@^@#/C0@S! ^@^@T @@^@UBA )@@G@@ @@^@#R;K@@OABK^@[/K@KR9'^@@+['^@@R9CH@^@U/H@@T-/[@@TADH@^@U] @^@S/K@@TIBB )@@G@@*C@^#H/K@@TGD9@@@[[ @^@[] @^@S/K@@TI[ @^@SD9@@@@H9@@@[HD@^#HG @^#H/H@@VIBC )@@G@@C^)^ (0@I@@@/[@@VI'^@@T\C5@^#G:9@@@^/K@@TU/K@@S"C[@^]3[[@^#HR;)@@ C9K@@]BD )@@G@@'^@@O18^K@TY/K@@Q&(@@^@#G9@@@[/H@@T>D9@@@@[ @^@U(C@^#H/K@@TCDH@^@U!D@^#HBE )@@G@@CD@^#H] @^@SC9@@@[] @^@[/K@@TH/K@@@@'^@@T;0G@^@S/K@@T6R;)@@.'^@@O1CD@^#HBF )@@G@@'^@@U,/K@KT\/K@@@@ ^@@T;/K@@T//K@@@@C)0^#B:80@@J/K@@V]/[@@UVH9@@@]R;)@@ BG )@@G@@/H@@U '^@@O18^@@U#C^K^ (1@H@@@/K@@UUR#X@@@R70^#G:80@@ /K@@UOR30^ (:80@@[BH )@@G@@/K@@UO:80@@#/K@@UR>@K^##/K@@UU/K@@UT(@@@@H/K@@UU/K@@UT>@K^#^/K@@UUC8)@@-BI )@@G@@'^@@O1CH@^@S/H@@U9(^@@T;/K@@U<'^@@U,/K@KT;/K@@@@ ^@@T8R#@@@K/K@@U%R#?^@^BJ )@@G@@!@@^# R;)@@@O;)@@0'^@@O18#@@U>*^@@T8/K@KT8/K@KU-/K@@@@R#@^@[/K@@U6R#?=@^BK )@@G@@!@@^#AR;)@@@O;)@@0'^@@O18^@@U1AB@^@[/K@KU,D@@@@KGD@^#HR;)@@.'^@@O1R;)@@0BL )@@G@@/K@@V@'^@@O18#@@U_/K@KT;C^K^ (C@X@@@/@K@VD/CK@VDC8)@@-'^@@O1H9@@@[H9@@@[BM )@@G@@C8)@@0'^@@O18^@@VF/K@@UV'^@@VK/K@@TQ/K@@@@C K^#HR;)@@*/K@@VP'^@@O18^K@VOBN )@@G@@/K@KVK%8)@@'/K@@V&/,0@-#:8)@@'/K@@VY'^@@O1/K@@VTR#K^#FA#K^]'/,0@-#:8)@@'BO )@@G@@/K@@VWR#K^]'A#K^#F/K@@W /,0@-#'^@@O18^K@V&/K@@W R;)@@ '^@@O18^K@V:/K@@W BP )@@G@@C9K^]\[ K^#D/K@@V3 4@^ ( 0@^ ( @@^ % @@^#G @@^#PC9K@YV[ K@E-C[K^ ![[K^ 0BQ )@@G@@C[K^#C[DK^ 8C9K@-S[ K@*?C[K^#D[[K^#F/,0@-#%8)@@(/K@@W@C[K^#F[[K^#IR;@@@@BR )@@G@@ @@^#H *@^#G'^@@D\C9@@@@/,0@-#/KI@WG/KG@XM/KG@XM/KG@XM/KG@XM/KG@XM/KG@XQBS )@@G@@/K@@XG/KG@XM/KG@XM/KG@XY/KG@XY/KG@XU/KG@XU/KG@X+/K@@XK/K@@XK/KG@XM/K@@XGBT )@@G@@/KG@XM/KG@XM/KG@X:/KG@X\/KG@XM/K@@XG/KG@XM/K@@XG/KG@XM/KG@XM/KG@XM/KG@X3BU )@@G@@/KG@XM/KG@XM/KG@X7/KG@X;/KG@YJ/KG@XM/KG@XM/KG@XM/KG@XM/KG@XM/KG@XM/KG@X_BV )@@G@@/KG@XM/KG@XM/KG@XM/KG@XM/KG@YN/KG@XM/KG@Y#/KG@Y#/KG@Y#/KG@Y#/KG@Y#/KG@Y#BW )@@G@@/KG@Y#/KG@Y#/KG@Y#/KG@Y#/KG@YR/KG@XM/KG@YB/KG@YF/KG@XM/KG@XMA<)^#B%8@@@#BX )@@G@@R;)@@A/KG@XUA<)^#B/KG@X&/K@@YV/K@@YV/K@@YV/K@@D,/K@@WE/K@@WE/K@@WE/K@@D$BY )@@G@@/K@@Y?/K@@Y7/K@@Z#/K@@D,/K@@Y?/K@@Y7/K@@Z#/K@@D:/K@@ZE/K@@ZJ/K@@ZM/K@@D,BZ )@@G@@/K@@Y*/K@@Y3/K@@Y_/K@@D,/K@@YA/K@@Y%/K@@Y5/K@@Z[/K@@D,/K@@ZT/K@@ZY/K@@Z-CA )@@G@@/K@@D,/K@@Z/,0@)9C9K@@[/K@@Z=CK )@@G@@'^@@)./K@@Z*'^@@EIR$)^#G!8)@@]R;)@@[R#0^#FH9K@@[A#"^#J[ Y^#LO;)@@[A$)^#GCL )@@G@@!8)@@]/K@@W 4@^#GA<)^#GA#0^#I[DK^#L/K@@W /,0@)9C9K@@[/K@@Z!'^@@)./K@@Z"CM )@@G@@/,0@)9R$)^#G/@)@)EC Y^#KP;)@@[8^K@)*A$)^#G/K@@W C4)^#G/@)@D&'^@^ \C@)^ (CN )@@G@@[@)^ %C[K^#I[[K^#FR<)^#GA$)^#G/@)@)QCDK^#L[ K^#L'^@@**?@^ 8/\K@N)RF)^#P ?@^ 8AF)^#P/K@K+[C[@^AADA )@@G@@%9@@@H/K@@+2C @^A'[ @@+1C[@@@LG[@^A9[[@^A9[[@@@@CD@^#PG[@@@L[D@^#P/KF@@@DB )@@G@@'^@@>.R;F@@@L8@@@[RB!@@@?@)^ K/K@@+"P#)^ KRB,@@@P;)@@[RB,@@@N@"@@@R#K@@GDC )@@G@@RF!@@@/^)@.C@@^ M/K@@.C@@^ N/K@@.C@@^ O'=@@@I/K@@+7/K@@+6'^@@>.R;V@@@OBKKH @@@:2'^@@:3/K@@@@'^@@>.RF@K=W'^@@&FA#@^^)R#@^ UDK )@@G@@RBKK=W/@K@=?'=@@@IL8K@@]N@.@@@RA.@@[RB,@@@P;)@@[AB)@+6/K@@./\0@>,A#@^^%A#@^#5R#@^ V'=@@@I/K@@>['^@@>./\0@>,A#@^^29?@^^3/K@@="DM )@@G@@'^@@>./\0@>,A#@^^29?@^^59*@^^:R#@^ W'=@@@I(^@^#6/K@@=PR#@^ X'=@@@I'^@@>HDN )@@G@@R#@^^MA#@^^EN80@#C*@@^#5/K@@>O/@@K>HAB@@>H ^@@>ODO )@@G@@'^@@&^/K@K>H/S@@@@'^@@>.RB@^BA(CG@@@P;@@@[OF@^BAR#K^ YN@/@@@/\0@>\/K@@>[DP )@@G@@/K@@>)N@0K>Y'^@@>.R#K^ Z/K@@>WR]0^#; @@^#5*CF@@@*4F@@@/K@@>?R;V@@@RFF@@@DQ )@@G@@A#K^#6/K@@<-O'0@@[/K@@>>R#K^ )A#K^^ER#@^ -(^@@>O'=@@@I^@0^#6RF@^#6'^@@&FDR )@@G@@A#@^^KR#@^ SRBK^#6*@@@@HR#H@@@A#@^^M/KJ@@@/K@@@@A]0^#;9*@^#/9*)^#"9(@^^@DS )@@G@@^@0^^]/K@@>./K@@@@R]0^#;9?@^#/9?)^#"9!@^^@N@0^^]/K@@&^/K@@@@;G@@@MR;)@@ DT )@@G@@Q;K@@A;@K@@#;?@@@A8#)@&I/K@@&FC80@@H&'0@@#C^:@@@/K@@&$C80@@H&'0@@[C@@@@FDU )@@G@@(CG)@[/K@@&UH@@@@F&'/@@@C8K^A;[^K^A'%8@@@]/K@@&!C^:@@[*0F@@@C^:@@@N^:@@@DV )@@G@@*0F@@@N^:@@[C8K@] [^K@$T[^)^ + @@^ C8K@@P[@H^AC8#K@$YC@@^ &'=@@@HEA )@@G@@C^K@$VC9K^AC[ K^AB[ K@*+[ K^ "C9K@@ [DK^AB/KH@@@/K@@@@C@@^ >C8K@@P[@H^ACEB )@@G@@8#K@$!CC@^BA:8@@@]/K@@*HC^@^BA(CG@@@/K@@*H @@@@JC @^ =W80@@AG^0^ +C8K@@ EC )@@G@@H@K@@KC @@$TH9@@@]C8@@@ C8)^AC')H@:F8#K@*#C8K@@ G80@@[')G@:L8#@@*BC8@@@ ED )@@G@@G8)@@[8^@@$_C^K^ =GCK^ =[^K^ =C^K@$%/K@@$Z@@@C(Z@@@C!Z@@@C1Z@@@C5Z@@@[-Y@@@EU )@@G@@[>Y@@@[(Y@@@[!Y@@@[1Y@@@[5Y@@@C8K@@PC@.^AZ:@0^B#8#K@:SC8.@@[CCK^AY%8K@@ EV )@@G@@G80@@[N@K@@JC@K^B^C@)^A_M#!)@@G@0^A_[@0^A_C^K@%?/K@@%*/K@@@@'^@@OKC@@^],EW )@@G@@'=@@@IC^K@:$/K@@%*R#V@@@R;@^BDR#X@@@A#K^BC%@K^BG'=@@@C/S@@@@/S@@@@(^@@:3EX )@@G@@'=@@@D'=@@@6)8@@)@R#@@@H'=@@@5 @@@@G'=@@[[(@@@:2'^@@&^'=@@@Q@@@@@@@@@@@@EY )@@G@@A#@^BJR\@@?@P;@@@^%8@@@A/K@@?NR7@@?@'^@@&FAF@^BOR3@@?@'^@@&FAF@^BQRB@@?@EZ )@@G@@'^@@&FA#@^BTR#@^BU'=@@@I'^@@:3')G^BJRB@@?@O;@@@['=@@[@AB@@?TR#@^BJ/K@@@@FA )@@G@@R#@^BV'=@@[[/KF@@[/,0@?U/S@@@@/,0@1:@@@^+G@]#@@@/,0@1*@]^@@@/,0@1!@] @@@FB )@@G@@/,0@("@@[^+<@]A@@@'^@@*! @@^+HN8K@!S^@K^+I/,0@&"@@[^++@]E@@@R@K^+:N.@@[JFC )@@G@@C/[=B9'^K@*%8L@@?2'^@@*!R/K@@[N.@@[GA@K^+JC/@@@[C@-^B'H@)^B6*@@@@I @@@@GFD )@@G@@C/)@@[C[[^B9H[@^B6*@@@@K @@@@I+@@@@IC/)@@[C[@^B6H[[^B;*@@@@K @@@@I+@)@@HFE )@@G@@C/@@@[C[@^B6H[[^B/*@@@@K @@@@G+@@@@J/=K@!OO/K@@[8L@@?8/K@O+IR@K^+JC@@^B7FF )@@G@@[@[^B9/K@O+IC/@@@[[@@^+KC/@@[KH@@^+K/C@@!Z*@@@@G/K@@1XR@K^+KC@[^B9H@@^+?FG )@@G@@*@@@@G/K@@!(/,0@("@@[^+<@]Z@@@'^@@*!/K@@1TR@K^+KC@[^B9H@@^+!*@@@@G/K@@,;FH )@@G@@C@[^B'[@@^+LC@)^+,[@)^+HC.@@[KH[@^+K*@@@@K/K@@!'N8K@!'^@K^+I @@^+K/K@@?!FI )@@G@@R@K^+KC@[^B'[@@^+LR/)@@[N.@@@EA@)^+JC@]^-_H@@^+L(@@@@G/K@@,GO/)@@[8L@@!_FJ )@@G@@C@[^B'[@@^+MC/)@@]G@)^+K[@)^+K/K@@,;C/@@@[H@@^+J;O@@@=W/@@@E;@K@@-]@K^+NFK )@@G@@C/)@[JH@)^+K*@@@@I/K@@,VN8K@,V^@K^+IC/)__"[@)^+K/K@@?!R@)^+KR/K@@[N.@@@EFL )@@G@@A@K^+JC@[^-_H@]^B;(@@@@G/K@@,:O/K@@[8L@@,YC@@^+L[@@^+MC/)@@]G@)^+K[@)^+KFM )@@G@@/K@@,;C/@@@[H@@^+J;O@@@=W/@@@EH@K^+N]@K^+OC/)@@#G@)^+K[@)^+KH/K_",*@@@@HFN )@@G@@/K@@,9 @@^+H/K@@,;C)@^+O[4@^+MC/@@[LH@@^+K*@@@@G/K@@\^N8K@\^^@K^+IC/@@@[FO )@@G@@[@@^+K/K@@?!R@K^+KC@[^B9H@@^+?(@@@@G/K@@!= @@^+PC_)@@[N.@@@W[#)^+QC/@@@[FP )@@G@@G@@^+P[@@^+PR@)^+PC@+^BVH@-^B9/@)@\QG_)@@[8L@@\GC/@@@WH@@^+P/@@@1)/G@@1TFQ )@@G@@C/@@@^H@@^+G(@@@@G/K@@\@#!@@@FS )@@G@@'^@@*!/K@@1T/,0@("@@[^+(@#0@@@'^@@*!/K@@1T @@^+R @@^+FR@)^+:N.@@@XC@@^B6FT )@@G@@[@]=--8L@@\.C/@@@[G@@^+F[@@^+FC/)@@[G@)^+R[@)^+RC[@^+PT.@@@/R@K^+FO@K@@KFU )@@G@@C[-^CH[[)^+T/[)@1TH.)@@Y/[)@1@H/)@@ /@)@00/C)@00C/)@@[G@)^+R[@)^+RG/@@@[FV )@@G@@[@@^+FR@)^+FO@)@@KC[]^CH/[@@1T[[@^+UH.@@@Y/[@@00/D@@00C[@^+H/[@@0=C[)^+MFW )@@G@@[[)^+V/K@@0$R@K^+PC@[^BV[@@^+VC@@^+UH@@^+TR@)^+\Q@)^+T[@@@[^C@@^+V[@]=--FX )@@G@@8L@@0?/K@@0@C@@^+H/@@@05C@)^+M[@)^+V/K@@08R@K^+PC@[^BV[@@^+VC/@@@YH@@^+TFY )@@G@@R@)^+\Q@)^+T[@@@[^C@@^+V[@]=--8L@@0.C/@@@^H@@^+G(@@@@G/K@@1I/,0@("@@[^+XFZ )@@G@@@^(@@@R@K^+:N.@@@XC/[=--'^K@*%8L@@1D'^@@*!/K@@1R/,0@("@@[^+)@^0@@@R@)^+:GA )@@G@@N.@@@XC/]=--'^K@*%8L@@1N'^@@*! @@^+R/K@@\;C/@@@[G@@^+K[@@^+K/K@@!UN8K@!SGB )@@G@@^@K^+I/K@@?!/,0@("@@[^+<@^.@@@'^@@*!/,0@:!@@@^+0/,0@:!@@@^+1C@@^KF9GG )@@G@@@@@@@@L#:R<:1U1+@@L=2ZFD3KL$N,M '1>J<-:>D)M$+H-6E_G=3LNC$4/$D-YUC=N(,RRQGH )@@G@@!,899#OE5"X'<8ZU"@O:"5-8MO:II&PH==5(FESV96UT(3\2B=K@I?7N@@@@@@GI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@GE/K@^[V@@[@DXGJ )@@G@@@@@@@@ERROR - TYPE IN FORMAT IS NOT THE SAME AS THE INTERNAL TYPE.@@@@@@GK )@@G@@@@@@@@@@EOF @@@@@@@@@@@@@[Q@@@@_A^]K@_F^[4@_D^[_@_F^[4@_C^]C@_#^]QEXECUTGL )@@G@@ION TERMINATED BY AN ATTEMPT TO READ PAST AN END-OF-FILE. EXECUTION TEGM )@@G@@RMINATED BY AN ATTEMPT TO PASS END-OF-TAPEA NON INTEGRAL BLOCK WAS READ GN )@@G@@FROM MAGNETIC TAPEABNORMAL I/O CONDITION DETECTED INAPPROPRIATE UNITGO )@@G@@THE FOLLOWING RECORD IS ERRONEOUS OR DOES NOT CORRESPOND TO FORMAT SPECIGP )@@G@@FICATIONS: I/O UNIT IS IN ERRORO@@@@@@[I^]T@[^^]$@@Q^AZ(1P6G13.5) GQ )@@G@@@@[@O$@@[@DX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@T F @@@@@@ GR )@@G@@@@@@@@@@@@@@@@]^AZ@@@@@RM@@@@@I@@@@@)^@@@@)@)@@@@@[@@O@@[@@P@@@@@@ GS )@@G@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NBMSG$@@@@@@GT )@@G@@@@@@@@@@[@@@@-@@@@@@@@@@@@@@@@@@@@@@@)@@@@@=@@@@@@@@@@@@@@@@@@@@@@@@@@@@GU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@@@@@ SEQUENCE NGW )@@G@@ LINE N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ERROR TERGX )@@G@@MINATION IN ROUTINE CALLED AT SEQUENCE NUMBER GY )@@G@@ OF ROGRAMA COMPUTED GO TO THAT WAS OUT OF RANGE WAS DETECTED ATGZ )@@G@@ SEQUENCE NUMBER OF MAIN PROGRAM. ILLEGAL OP AT SPECIFIED RETURNHA )@@G@@ FROM RETURN VARIABLE SPECIFIED IN OUT OF RANGEHB )@@G@@ NEGATIVEFORTRAN V ERROR TERMINATION: ARGUMENT UNNORMALIZED OR OUTSIHC )@@G@@DE ALLOWABLE RANGE CAUSING ARGUMENT OUTSIDE ALLOWABLE RANGE CAUSING HD )@@G@@OVERFLOW CAUSED @@@K@@@@@/K@@]E^^/@]B^ A@]#^ H@]B^^#@]D^^E@]B^^EMAIN PHE )@@G@@@[E^^E@]H^^O@]B^^=@]C^^:@[D^^E I/O RETN 0RETN K@] ^^7@@[@@@@@@@@@@@@@@@HF )@@G@@ @*Y^AC@@[^AC______@@@@@@@@@@@@@@@@@@@@@@@@/S@@@@/K@@*4/K@@@@/S@@@@HG )@@G@@(4@^ (/K@@*7RB@^ (O;@@@[AB@^ ( 4@^ (/K@O \ /K@@@@R#K^A"A#K^ 8'^@@>OHH )@@G@@/K@O 9@@ ^AZ@@@@@@@@@@@@@@@@@@@@@@@@^A;^A;@@@@@@@@J___C/@@@@ @@[@@@HI )@@G@@@@@@@@@@ ^AZ@@I^AZ @@[^AZ@@@@@@@@@@@@STOP @@@@@@@@G^BB@@@@@@HJ )@@G@@ @@@@@@#C@^BH@@@@@@#^@^BHERROR MODE: TYPE= , CODE= , ERR.ADDHK )@@G@@RESS= @]D^BLCO@@?@A B C D E F G H HL )@@G@@I J K L M N O P Q R S T HM )@@G@@U V W X Y Z * A B @@@@@[@@@@@]HN )@@G@@@@@@@Y@@@@@[@@@@@#@@@@@Y@@@@@[@@@@@A@@@@@Y@@@@@[@@@@@E@@@@@Y@@@@@[@@@@@]HO )@@G@@@@@@@B@@@@@J@@@@@Y@@@@@B@@@@@E@@@@@G@@@@@P@@@@@Y@@@@@B@@@@@E@@@@@M@@@@@UHP )@@G@@@@@@@Y@@@@@[@@@@@]@@@@@B@@@@@E@@@@@J@@@@@[@@@@@]@@@@@B@@@@@V@@@@@Y@@@@@[HQ )@@G@@@@@@@R@@@@@Y@@@@@[@@@@@L@@@@@Y@@@@@[@@@@@G@@@@@Y@@@@@[@@@@@B@@@@@Y@@@@@[HR )@@G@@@@@@@#@@@@@Y@@@@@[@@@@@]@@@@@Y@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@@@@@]HS )@@G@@@@@@@W@@@@@Y@@@@@[@@@@@#@@@@@V@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@YHT )@@G@@@@@@@[@@@@@Y@@@@@[@@@@@#@@@@@J@@@@@K@@@@@V@@@@@[@@@@@#@@@@@I@@@@@L@@@@@VHU )@@G@@@@@@@[@@@@@^@@@@@H@@@@@M@@@@@U@@@@@[@@@@@Y@@@@@]@@@@@J@@@@@L@@@@@X@@@@@YHV )@@G@@@@@@@#@@@@@I@@@@@M@@@@@W@@@@@Y@@@@@ @@@@@G@@@@@O@@@@@U@@@@@Y______@@@@@HHW )@@G@@@@@@@L@@@@@Y@@@@@D@@@@@Q@@@@@Y@@@@@A@@@@@T@@@@@Y@@@@@^@@@@@V@@@@@Y@@@@@#HX )@@G@@@@@@@W@@@@@Y@@@@@]@@@@@^@@@@@U@@@@@X@@@@@Y@@@@@[@@@@@#@@@@@V@@@@@Y@@@@@[HY )@@G@@@@@@@#@@@@@V@@@@@Y@@@@@[@@@@@#@@@@@V@@@@@Y@@@@@]@@@@@^@@@@@U@@@@@X@@@@@YHZ )@@G@@@@@@@#@@@@@A@@@@@S@@@@@W@@@@@Y@@@@@^@@@@@C@@@@@P@@@@@V@@@@@Y@@@@@B@@@@@CIA )@@G@@@@@@@P@@@@@T@@@@@Y______@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[IB )@@G@@@@@@@]@@@@@X@@@@@Y@@@@@[@@@@@#@@@@@W@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[IC )@@G@@@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@#@@@@@V@@@@@Y@@@@@[@@@@@^@@@@@U@@@@@Y@@@@@[ID )@@G@@@@@@@ @@@@@T@@@@@Y@@@@@]@@@@@X@@@@@Y@@@@@#@@@@@W@@@@@Y@@@@@ @@@@@T@@@@@YIE )@@G@@@@@@@C@@@@@Q@@@@@Y@@@@@G@@@@@M@@@@@Y______@@@@@[@@@@@]@@@@@X@@@@@Y@@@@@[IF )@@G@@@@@@@#@@@@@X@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[IG )@@G@@@@@@@]@@@@@J@@@@@K@@@@@W@@@@@[@@@@@]@@@@@I@@@@@L@@@@@W@@@@@[@@@@@#@@@@@HIH )@@G@@@@@@@M@@@@@W@@@@@[@@@@@^@@@@@H@@@@@M@@@@@V@@@@@[@@@@@B@@@@@U@@@@@Y@@@@@[II )@@G@@@@@@@D@@@@@S@@@@@Y@@@@@[@@@@@E@@@@@R@@@@@Y______@@@@@[@@@@@]@@@@@X@@@@@YIJ )@@G@@@@@@@[@@@@@#@@@@@W@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@YIK )@@G@@@@@@@[@@@@@#@@@@@J@@@@@K@@@@@W@@@@@I@@@@@L@@@@@W@@@@@Y@@@@@G@@@@@N@@@@@VIL )@@G@@@@@@@Y@@@@@T@@@@@Y@@@@@R@@@@@Y@@@@@Q@@@@@Y______@@@@@H@@@@@L@@@@@Y@@@@@DIM )@@G@@@@@@@Q@@@@@Y@@@@@A@@@@@T@@@@@Y@@@@@^@@@@@V@@@@@Y@@@@@#@@@@@W@@@@@Y@@@@@]IN )@@G@@@@@@@^@@@@@U@@@@@X@@@@@Y@@@@@[@@@@@#@@@@@V@@@@@Y@@@@@[@@@@@#@@@@@V@@@@@YIO )@@G@@@@@@@[@@@@@#@@@@@H@@@@@K@@@@@V@@@@@[@@@@@ @@@@@F@@@@@K@@@@@V@@@@@]@@@@@KIP )@@G@@@@@@@U@@@@@Y@@@@@#@@@@@K@@@@@T@@@@@W@@@@@Y@@@@@[@@@@@K@@@@@S@@@@@X@@@@@YIQ )@@G@@@@@@@H@@@@@K@@@@@R@@@@@Y______@@@@@@@@@@@@@@@@@@@@@@@[@@@@@]@@@@@X@@@@@YIR )@@G@@@@@@@[@@@@@#@@@@@W@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@YIS )@@G@@@@@@@[@@@@@]@@@@@I@@@@@L@@@@@X@@@@@I@@@@@L@@@@@Y@@@@@I@@@@@L@@@@@Y@@@@@[IT )@@G@@@@@@@]@@@@@I@@@@@L@@@@@X@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@YIU )@@G@@@@@@@[@@@@@#@@@@@W@@@@@Y@@@@@[@@@@@]@@@@@X@@@@@Y______@@@@@[@@@@@]@@@@@XIV )@@G@@@@@@@Y@@@@@[@@@@@#@@@@@W@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[IW )@@G@@@@@@@Y@@@@@[@@@@@#@@@@@W@@@@@Y@@@@@[@@@@@]@@@@@X@@@@@Y______@@@@@B@@@@@DIX )@@G@@@@@@@Y@@@@@#@@@@@G@@@@@Y@@@@@]@@@@@H@@@@@Y@@@@@[@@@@@H@@@@@Y@@@@@[@@@@@#IY )@@G@@@@@@@B@@@@@G@@@@@Y@@@@@[@@@@@#@@@@@Y@@@@@[@@@@@^@@@@@X@@@@@Y@@@@@[@@@@@YIZ )@@G@@@@@@@[@@@@@Y@@@@@]@@@@@Y@@@@@^@@@@@Y@@@@@X@@@@@Y@@@@@X@@@@@Y______@@@@@[JA )@@G@@@@@@@]@@@@@X@@@@@Y@@@@@[@@@@@#@@@@@W@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[JB )@@G@@@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@]@@@@@I@@@@@K@@@@@X@@@@@H@@@@@L@@@@@Y@@@@@DJC )@@G@@@@@@@O@@@@@Y@@@@@[@@@@@]@@@@@A@@@@@R@@@@@X@@@@@[@@@@@I@@@@@O@@@@@Y@@@@@[JD )@@G@@@@@@@E@@@@@R@@@@@Y@@@@@[@@@@@B@@@@@U@@@@@Y@@@@@[@@@@@^@@@@@X@@@@@Y@@@@@[JE )@@G@@@@@@@]@@@@@X@@@@@Y@@@@@[@@@@@]@@@@@Y______@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[JF )@@G@@@@@@@]@@@@@X@@@@@Y@@@@@[@@@@@#@@@@@W@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[JG )@@G@@@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@]@@@@@X@@@@@Y@@@@@[@@@@@]@@@@@Y@@@@@[@@@@@#JH )@@G@@@@@@@Y@@@@@[@@@@@^@@@@@Y@@@@@[@@@@@B@@@@@Y@@@@@[@@@@@E@@@@@Y______@@@@@[JI )@@G@@@@@@@]@@@@@X@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@]@@@@@GJJ )@@G@@@@@@@V@@@@@Y@@@@@C@@@@@R@@@@@Y@@@@@ @@@@@M@@@@@Y@@@@@B@@@@@K@@@@@Y@@@@@FJK )@@G@@@@@@@O@@@@@Y@@@@@[@@@@@]@@@@@J@@@@@S@@@@@Y@@@@@[@@@@@#@@@@@N@@@@@W@@@@@YJL )@@G@@@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@]@@@@@X@@@@@YJM )@@G@@______@@@@@[@@@@@]@@@@@X@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[JN )@@G@@@@@@@]@@@@@M@@@@@Y@@@@@J@@@@@W@@@@@Y@@@@@F@@@@@S@@@@@Y@@@@@B@@@@@O@@@@@YJO )@@G@@@@@@@#@@@@@K@@@@@X@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@X@@@@@YJP )@@G@@______@@@@@H@@@@@L@@@@@Y@@@@@D@@@@@Q@@@@@Y@@@@@A@@@@@T@@@@@Y@@@@@^@@@@@VJQ )@@G@@@@@@@Y@@@@@#@@@@@W@@@@@Y@@@@@]@@@@@^@@@@@U@@@@@X@@@@@Y@@@@@[@@@@@#@@@@@VJR )@@G@@@@@@@Y@@@@@[@@@@@#@@@@@V@@@@@Y@@@@@]@@@@@^@@@@@U@@@@@X@@@@@Y@@@@@#@@@@@WJS )@@G@@@@@@@Y@@@@@^@@@@@V@@@@@Y@@@@@A@@@@@T@@@@@Y@@@@@D@@@@@Q@@@@@Y@@@@@H@@@@@LJT )@@G@@@@@@@Y______@@@@@[@@@@@]@@@@@X@@@@@Y@@@@@[@@@@@#@@@@@W@@@@@Y@@@@@[@@@@@YJU )@@G@@@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@]@@@@@I@@@@@K@@@@@X@@@@@[JV )@@G@@@@@@@]@@@@@I@@@@@K@@@@@W@@@@@I@@@@@M@@@@@T@@@@@Y@@@@@I@@@@@X@@@@@Y@@@@@JJW )@@G@@@@@@@V@@@@@Y@@@@@L@@@@@T@@@@@Y@@@@@O@@@@@Q@@@@@Y______@@@@@H@@@@@L@@@@@YJX )@@G@@@@@@@D@@@@@Q@@@@@Y@@@@@A@@@@@T@@@@@Y@@@@@^@@@@@V@@@@@Y@@@@@#@@@@@W@@@@@YJY )@@G@@@@@@@]@@@@@^@@@@@U@@@@@X@@@@@Y@@@@@[@@@@@#@@@@@V@@@@@Y@@@@@[@@@@@#@@@@@BJZ )@@G@@@@@@@C@@@@@V@@@@@[@@@@@#@@@@@ @@@@@D@@@@@V@@@@@]@@@@@B@@@@@U@@@@@X@@@@@YKA )@@G@@@@@@@#@@@@@W@@@@@Y@@@@@]@@@@@U@@@@@Y@@@@@[@@@@@]@@@@@D@@@@@R@@@@@Y@@@@@HKB )@@G@@@@@@@M@@@@@Y______@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@@@@@]@@@@@XKC )@@G@@@@@@@Y@@@@@[@@@@@#@@@@@W@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[KD )@@G@@@@@@@Y@@@@@[@@@@@]@@@@@I@@@@@K@@@@@X@@@@@H@@@@@K@@@@@W@@@@@Y@@@@@F@@@@@YKE )@@G@@@@@@@ @@@@@X@@@@@Y@@@@@]@@@@@W@@@@@Y@@@@@[@@@@@I@@@@@L@@@@@U@@@@@Y@@@@@[KF )@@G@@@@@@@A@@@@@O@@@@@R@@@@@Y@@@@@]@@@@@ @@@@@Y@@@@@^@@@@@ @@@@@Y______@@@@@[KG )@@G@@@@@@@F@@@@@O@@@@@T@@@@@Y@@@@@[@@@@@E@@@@@M@@@@@V@@@@@Y@@@@@#@@@@@C@@@@@KKH )@@G@@@@@@@W@@@@@Y@@@@@]@@@@@A@@@@@J@@@@@X@@@@@Y@@@@@[@@@@@^@@@@@H@@@@@P@@@@@VKI )@@G@@@@@@@[@@@@@#@@@@@G@@@@@N@@@@@V@@@@@[@@@@@#@@@@@F@@@@@M@@@@@V@@@@@[@@@@@^KJ )@@G@@@@@@@E@@@@@L@@@@@U@@@@@[@@@@@K@@@@@T@@@@@X@@@@@Y@@@@@]@@@@@J@@@@@R@@@@@WKK )@@G@@@@@@@Y@@@@@#@@@@@H@@@@@P@@@@@Y@@@@@ @@@@@F@@@@@O@@@@@Y______@@@@@@@@@@@OKL )@@G@@@@@@@Y@@@@@P@@@@@Y@@@@@T@@@@@Y@@@@@[@@@@@]@@@@@X@@@@@Y@@@@@[@@@@@#@@@@@XKM )@@G@@@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@#@@@@@XKN )@@G@@@@@@@Y@@@@@[@@@@@]@@@@@X@@@@@Y@@@@@T@@@@@Y@@@@@P@@@@@Y@@@@@O@@@@@Y______KO )@@G@@@@@@@X@@@@@Y@@@@@W@@@@@Y@@@@@^@@@@@Y@@@@@]@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@YKP )@@G@@@@@@@[@@@@@^@@@@@X@@@@@Y@@@@@[@@@@@#@@@@@Y@@@@@[@@@@@#@@@@@Y@@@@@[@@@@@#KQ )@@G@@@@@@@X@@@@@Y@@@@@[@@@@@^@@@@@X@@@@@Y@@@@@]@@@@@Y@@@@@^@@@@@Y@@@@@W@@@@@YKR )@@G@@@@@@@X@@@@@Y______@@@@@X@@@@@Y@@@@@W@@@@@Y@@@@@S@@@@@Y@@@@@M@@@@@Y@@@@@GKS )@@G@@@@@@@Y@@@@@A@@@@@Y@@@@@[@@@@@O@@@@@X@@@@@Y@@@@@[@@@@@J@@@@@Y@@@@@C@@@@@OKT )@@G@@@@@@@X@@@@@Y@@@@@J@@@@@Y@@@@@T@@@@@Y@@@@@W@@@@@Y@@@@@X@@@@@Y______@@@@@XKU )@@G@@@@@@@Y@@@@@T@@@@@Y@@@@@N@@@@@Y@@@@@H@@@@@Y@@@@@B@@@@@T@@@@@Y@@@@@[@@@@@NKV )@@G@@@@@@@Y@@@@@[@@@@@H@@@@@X@@@@@Y@@@@@[@@@@@M@@@@@S@@@@@Y@@@@@H@@@@@Y@@@@@JKW )@@G@@@@@@@Y@@@@@C@@@@@X@@@@@Y@@@@@[@@@@@O@@@@@Y@@@@@[@@@@@Q@@@@@X@@@@@Y@@@@@GKX )@@G@@@@@@@Y@@@@@Q@@@@@Y@@@@@W@@@@@Y@@@@@X@@@@@Y______@@@@@[@@@@@]@@@@@X@@@@@YKY )@@G@@@@@@@[@@@@@#@@@@@W@@@@@Y@@@@@[@@@@@ @@@@@R@@@@@Y@@@@@[@@@@@C@@@@@M@@@@@YKZ )@@G@@@@@@@[@@@@@]@@@@@ @@@@@G@@@@@K@@@@@E@@@@@R@@@@@X@@@@@Y@@@@@D@@@@@O@@@@@YLA )@@G@@@@@@@[@@@@@]@@@@@ @@@@@P@@@@@Y@@@@@[@@@@@I@@@@@N@@@@@T@@@@@X@@@@@[@@@@@ELB )@@G@@@@@@@P@@@@@Y@@@@@[@@@@@B@@@@@T@@@@@Y@@@@@[@@@@@#@@@@@W@@@@@Y@@@@@[@@@@@]LC )@@G@@@@@@@X@@@@@Y______@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X@@@@@Y@@@@@X@@@@@YLD )@@G@@@@@@@W@@@@@Y@@@@@R@@@@@Y@@@@@[@@@@@]@@@@@N@@@@@Y@@@@@[@@@@@Y@@@@@[@@@@@YLE )@@G@@@@@@@[@@@@@O@@@@@X@@@@@Y@@@@@[@@@@@N@@@@@Y@@@@@[@@@@@Q@@@@@Y@@@@@[@@@@@]LF )@@G@@@@@@@M@@@@@T@@@@@X@@@@@P@@@@@Y@@@@@T@@@@@Y@@@@@X@@@@@Y@@@@@X@@@@@Y______LG )@@G@@@@@@@[@@@@@]@@@@@Q@@@@@Y@@@@@[@@@@@B@@@@@R@@@@@Y@@@@@[@@@@@G@@@@@T@@@@@YLH )@@G@@@@@@@[@@@@@L@@@@@U@@@@@Y@@@@@[@@@@@Q@@@@@V@@@@@Y@@@@@[@@@@@]@@@@@B@@@@@YLI )@@G@@@@@@@[@@@@@#@@@@@G@@@@@Y@@@@@[@@@@@^@@@@@L@@@@@Y@@@@@[@@@@@C@@@@@Q@@@@@YLJ )@@G@@@@@@@[@@@@@D@@@@@V@@@@@Y______0 1 2 3 4 5 6 LK )@@G@@7 8 9 (1H ,50X,30A1) (1X,30A1) (80A1)(1H1) (////)LL )@@G@@(12(/)) (2(/2H _)) (6(/2H _)) @@[@@[1 , KG@@@@@@[@@@ LM )@@G@@ M,66,0,0. @@@@@@@@#^+2@:3^+5@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LN )@@G@@MAIN @]]@@@@@@@@[@@@@@[@@@@@]@@@@@XR#0@@N@@@@@[@@@@@#@@@@@WG.0@@=LO )@@G@@@@@@@[@@@@@Y@@@@@[/]0^L*@@@@@[@@@@@Y@@@@@[R]@^MI@@@@@[@@@@@]@@@@@IR_S@@@LP )@@G@@@@@@@X@@@@@[@@@@@]/K@^L+NBDCV$ K@#@@BK\T]QB@@@@@@@[W@C@@@)^@@NFTV$ LQ )@@G@@ K@]@@HH *AO#@@@@@@@@N@DWNCNVT$ K@#@@OK\<]QB@@@@@@@]V@D\@@8^@)LR )@@G@@NINPT$ K@#@@VK0\]QB@@@@@@@A0@GE@@N^[SNIOER$ K@#@@+K04