@ SAFETY013.ANv SAFETY013.ANBACK/TRUNC/BLOCK=16384/GROUP=40 [...] DKC200:[VMSLT96B.SAFETY]SAFETY013.A/SAVE EVERHART 轢X6C7 _NORLMN::  _NORLMN$DKC200: V6.2 @(o *[EVERHART.JTDEMO]ACCFILT.OBJ_A;4+,7 ./ 4- 0123KPWO56,X7@_X89GHJBB.MAIN.V01H 4-NOV-1994 16:23AMAC V2.0-22 $LINKAGE8 $$$110_DATA $ABS$ . BLANK . . ABS .PORSGETJTUCBPOPOUT SCH$GL_PCBVECVCSTP15V15AEXE_STD$ABORTIO SMP$GL_FLAGS SMP$ACQUIRELFINDLDT EXE$DEANONPGDSIZEXE$ALONPAGVAR CTL$GL_PHDGCEABAGCEALAGCEACLGCETPL SMP$RELEASEL CTL$GA_CCB_TABLE CTL$GL_PCBSYS$QIODOWAITACLLITSTP2BAD SYS$SETEF OTS$MOVEMOTS$ZEROOTS$MOVE(JACCFILT0 07GCEACL OTS$MOVEM7GCEABA0  SYS$SETEF"  SMP$ACQUIRELSYS$QIO""" EXE_STD$ABORTIO""7V15A PORS=7ACLLIT=7GCETPL SMP$RELEASEL7 SMP$GL_FLAGSOTS$MOVEPOPOUT=0 ;= ="" (EXE$DEANONPGDSIZFINDLDT EXE$ALONPAGVAR GETJTUCBOTS$ZERO=x7VCSTP15= @7 SCH$GL_PCBVECDOWAIT=STP2BAD7 CTL$GL_PCB7 CTL$GL_PHD7CTL$GA_CCB_TABLE7GCEALA =>C~^^ ~(08޴@HP>X^`~hpx޵GGCCcCCp`Kp`GGNnG@ZkG^ ~(08ޤ@HP>X^`~hpxޥCkG$0A_HGJ?GvJLŢ&BFHJ`N>Chn @ZkCNCn@ZkG<C(e0`GNCn@ZkG0%/3.D%KX J8GC4YC GNCn@ZkG/E/ĢK[ EKGC4B /#.$KW JGC48Ce/E#/zKY KyGC4C/E/K[ EKGC4B."e/$J\ vKFC47C/.DKW JGC4XCf{`KgK45`C(%/_#+.%KX J8GC:Gx `/`KpG4JJ /4@KG4JJ`âF>C~^ >ް0E-3E/ >EI~[ EK [E C@.@I٠X@ޠ4WA Ȣ^4BCyGGޠ >^~nCuC#4YCi>C#<e#(.+/JV KFCF<<,?%/ HZ ;K<DCG4B CpNCxnCCCG@ZkC(/&+E/K[ EKGCG/>C ~^>x~ ,@9Hr y @e,C/_ eHV KvDCq`?#;DCw K Dw Hb@@ D>/^ ~KK_NCn@ZkG>Cn,(>$~ ^>ް ~^[N@GGFGG/@N>CHn@ZkC >C0N8n>4 >C@Zk>C PN>CXn>,? >C@Zk>C6Φ>CN4n@ZkCTGGGGN G,^~ޠ> ^$~(>04Cn@Zkb>^ ~C>CPNXn4@ZkCGGA(_!>CpN C@IG ~^>GG@Zk,?#^> ~ CC4"°>C~^,% D@H"@HCA@C^~C +? ˢPNGXnB ˲>C@ZkC 0NC4+>C8n@ZkC/C$KGⳑ"_# G < GG G@^G~@G @ޠG@> ^$~CXG@wG@Gذ@G@G@9GX@w>C$~ ^ C>x ް ~^C$K<%H+GxC@G@YG|@GC@YC@xCJ*+t */*KD@+TAA */ J/8KW XK7G + /AAK<N ! G0:N.) +벀)++#.0"  8G>CN ~^>@Zk ~+!>^Cx#6AG>CNIG ~G^>@Zk_#>^ ~CF0|,(+.J`7JGJ4wC /Gv+KX KG` ?>C k# ~^> + k , HNHGG@Zk>^ ~C. +>CNn4@ZkCTGGG#(e|GGGxGA&@0CĢFa_'0`CaG C$K_'Z#ע>C?',AC`K9# 0A EN CCC>C C~Gk# EjJ+# *>C,I >CJ C E CI C>C"޲>C^~>C$k>CaC~C>TG`NChnG>CG<ޢ0~48@޶DޢH޶LޢP ޶(@ZkTGGCG~CGGgN$Kn>C@ZkTGGCCG`N>ChnGHG>C@ZkCnCD[4C@N>CHn@Zk4 @C +0NC8n!4+>C@ZkC/^~ ޠC(>> ^$~,>C/@N>CHnG4G@ZkGC$+  GGGGN;G8.JF4JJ2 @/4@YKPG4JJ*>CiGNC$~(>^~ ޠ> =h` ^,>,~Cn@ZkTGGCG~>C`NGhn,~G(^G$> ް ~^>H>C@ZkCD+C47CC@NHn>C@Zk4 @C ˢC0N8n4+>C@ZkC/>^ ~ޠ $>(^,~C@N>CHn@Zk4 @CkPN CXn<? >C@ZkCcN C<?"GG@Zk<_#GG4IG0NG*C4+>C8n@ZkCN@N>CHn@Zk4 @CPN CXn<? >C@ZkCN C<?"GG@Zk<?#GG0NG4)G*C4+>C8n@ZkCC^C~ ޠ> ^$~C CC>>>C ~^> ްC~>C^>N>^ ~ޠ $>(^,~Cn@Zkj.X J8D .X J8G*/Z 7KG/V KF. +KW JF> , xGPORS, |n#PORS, @PORS4 G8GETJTUCB4(n#GETJTUCB44@8GETJTUCB,@GXPOPOUT,Pn#POPOUT,T@XPOPOUT,xGPOPOUT,n#POPOUT,@POPOUT,GPOPOUT,n#POPOUT,@POPOUT4 GEXE_STD$ABORTIO4 n#EXE_STD$ABORTIO4 @EXE_STD$ABORTIO,GPOPOUT,n#POPOUT,@POPOUT,GFINDLDT,n#FINDLDT, @FINDLDT<G<EXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ<8@<EXE$DEANONPGDSIZ4HGdEXE$ALONPAGVAR4Pn#EXE$ALONPAGVAR4`@dEXE$ALONPAGVAR4 G SMP$RELEASEL4n# SMP$RELEASEL4 @ SMP$RELEASEL,GPOPOUT,n#POPOUT,@POPOUT4G0 SMP$ACQUIREL4 n# SMP$ACQUIREL4,@0 SMP$ACQUIREL4XGOTS$ZERO4@OTS$ZERO4GEXE$ALONPAGVAR4n#EXE$ALONPAGVAR4@EXE$ALONPAGVAR< G<EXE$DEANONPGDSIZ<4n#EXE$DEANONPGDSIZ<8@<EXE$DEANONPGDSIZ4p G OTS$MOVE4 @ OTS$MOVE4 G OTS$MOVE4 @ OTS$MOVE4 G OTS$MOVE4 @ OTS$MOVE4  G SMP$RELEASEL4 n# SMP$RELEASEL4  @ SMP$RELEASEL, G SYS$QIO, n#SYS$QIO, @ SYS$QIO, G DOWAIT,n#DOWAIT,@ DOWAIT48G\GETJTUCB4@n#GETJTUCB` ` 4X@\GETJTUCB,|GFINDLDT,n#FINDLDT,@FINDLDT<GEXE$DEANONPGDSIZ<n#EXE$DEANONPGDSIZ<@EXE$DEANONPGDSIZ4G SYS$SETEF4n# SYS$SETEF4@ SYS$SETEF,GSTP2BAD, n#STP2BAD,@STP2BAD4 G\GETJTUCB4n#GETJTUCB4X@\GETJTUCB,|GFINDLDT,n#FINDLDT,@FINDLDT<GEXE$DEANONPGDSIZ<n#EXE$DEANONPGDSIZ<@EXE$DEANONPGDSIZ,GFINDLDT,n#FINDLDT,@FINDLDT4G,EXE$ALONPAGVAR4n#EXE$ALONPAGVAR4(@,EXE$ALONPAGVAR44GLOTS$MOVE4H@LOTS$MOVE<`GEXE$DEANONPGDSIZ<xn#EXE$DEANONPGDSIZ<|@EXE$DEANONPGDSIZ,GFINDLDT,n#FINDLDT,@FINDLDT4GEXE$ALONPAGVAR4n#EXE$ALONPAGVAR4@EXE$ALONPAGVAR4GOTS$MOVE4@OTS$MOVE<GEXE$DEANONPGDSIZ<n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ,GPOPOUT,n#POPOUT,@POPOUT  *[EVERHART.JTDEMO]ARMOR_VAX.ZIP;1+,y ./ 48- 0123 KPWO56+S7 X89GHJPKoSރ ރ$&#J"A"ߎjg 6g]NYٔѕWVԸ"Q9Zc ʚx5bc%=ԸMC+1D֡O83wlǛb)z汧VStˢW: .ʲ_6ٿuW%K^iN% ؑI!S~(Rф}ǫWV"Y*i$m=JVJKJO&}'|B4ʐ5-nHAʝPuѯ/Qp#A`]H4cD#d'qPa81γ㹾g 7jy(gMӼaFM152j!ߕ^ބk(J̀pX>ƇQbgl yneJ)|/W|(T&$.\I2*5++ uBրz-F) bv) $yFlV(#gXYme CEG$օH@6[2/%l4<0|#;jDFRINLg~öQQALڗ+J=bˆؓA_S&9xdfi7dAia6 ^RjoqdY3;<܄{E6/nx2|jij x ~gQ`f}B`%('.KM;݊M9̞NNcO43[)PA:YD͆.YNdFlMERI[6Gk;">G_QPA#=1@HN㺹N@^TpkB2_k4K Sdh&uPq+V?{JU=b^Fѥ随]Yp\Qm$aWErP=*$- I%K AGgG̿ Aa ;Jك5Shڭk9*ljŶL ֠S}M~U[PGWeH=9bqY1Ѹ 4Z#DS0 ^(-q% ψ3i8TquqҴCD7A:EHɯ-ۏ։=[Z Sk3CV!ELZol5$:TzbmaXVO!wPOŘȋazeXqj/{vYfK};~qTu3z8aa?gio0`쮶p]7 {CH W_7)zŒ]tȔ8=="t,/qή_Kv.N6 z)3Mܶo76o(x!MW!3r2%X2A!i$r*1E~ghE5D)x0IFªerB*[g2"'xi2ױ9IAT1g4d4dx+21 (t42r^,i/9^EUx sYC(79[4E ̂D~PЮU9~Uޚ\`Y>e삏^'(MɼE( }ӣ82nw4D#a04:g`\ĝD`lD@KW4C塔KZkH>3${KYA,DGzmqt#z-H)@t @$@o4hWw2cniM ya[/V㣖=m9lT[ǽ7eoga˾ h+.~iu؁A<9LHP7Eק+D}W F(sx~"|ts=pR=\#F?40ɐۻߔutwamfh:gF3y}?&w`k#5٫o+4@~ ьÿPK T armor_cld.cldIMVMSVV6.1IM%VFABPBA@m!ЦIMVFHC,; $QIM.VDAT<% |꒛dVY6p"FjIMVPROX'b10IMVRDT=R |꒛dHIMKU(K-JRp bbPP(,MLL-Rtq ttv AYbNiFQjaifQj&GgZjur2KtJ* Rmʂ5`n tfV(䥦'$&2PKR | armor_cld.objIMVMSVV6.1IM$VFABPBAm!ЦIMVFHC,;\WoIM.VDAT<%B?(웓?p"FjIMVPROX'b10IMVRDT=RB?mMJ@v-R`ps(xV \bA+Lcga>#ήY-|?VV٤]< t0UFj:D^דR|~ިiYkQ Xd[}o5oA/e6|\@8'Bkq6<3W`8?꧇= Il#afieϬI+[NL7.am# .ɗ{@Z8PK ձp#armor_cld_mar.marIMVMSVV6.1IM%VFABPBA @m!ЦIMVFHC,; IM.VDAT<%tTY6p"FjIMVPROX'b10IMVRDT=Rtmo0/CxZ& lQi /䶱ĝ:ɺ1jT>>a- gG}=ϕCOLKO8V;R3S*A:/G31 1`gy*]-dj ~]YKz|~ad^PnV)-fiNF(ˬRmnYE.s Vx%7bk5.Ś[QθУ5جTp\=m9ҔzuECGҦ9<I*$1ty~ 4~v'b6wB 2K΅_ǓKWXǁcNoY-짨T[?o@R ]9381sKpd7K4t)t91|"CqkDD4N'+SR;&b| vVY3tM6mK+SpӇbW;Z3ݻJUTUbھATvP}hM ̳݃TtVs[A'*ʝIh]tQ|IdwgsE.gM(TA5p_^m;[._j3>UD#PKRIjgWarmor_cld_mar.objIMVMSVV6.1IM%VFABPBAm!ЦIMVFHC,;SzIM.VDAT<%h?8V?p"FjIMVPROX'b10IMVRDT=Rh?]PNP= $d) "<G` |51P/I9wcNlhDf\K9CHR0=v A&glJ6<OďeU(AfjxVrH@  .); ` RܢT G rpj  l/ԇeb)ȁ"PA8Sᵬ^:=qJ XhOơkbC%N>MČGLek61<\c0DȞD:w2n HB!-k{67PK yRz build.comIMVMSVV6.1IM%VFABPBA@m!ЦIMVFHC,; QPIM.VDAT<% hF_6p"FjIMVPROX'b10IMVRDT=R hFaPML.WH,/gP)N-QHOʂ'0 &Y1deCR(+U$5 H$PK parameter p2,label=FNAM,prompt="file",value(type=$infile) qualifier ASSIGN qualifier DEASSIGN qualifier SEC64 qualifier SEC32 qualifier READONLY qualifier REPORT qualifier DEVICE/ qualifier LBN,value(required,type=$number)2 qualifier LENGTH,value(required,type=$number)0 qualifier GEOM,value(required,type=$infile) disallow lbn and report disallow length and report disallow sec64 and sec32 disallow device and lbn disallow device and sec64 disallow device and sec32>! Uses ASNVD image. Note that vddriverv3a.mar contains code toA! handle the assign function in the FORMAT code. For now we don't0! use this, but just let the priv'd image do it.+! Needs CMKRNL at least. Maybe some others.'! Usage: asnvdm6/switches vdn: dev:file! where /switches are:R! /report - Tell what file is associated with a virtual disk (omit dev:file arg)2! /assign - Assign a file to a virtual disk unitF! /Deassign - Deassign a virtual disk from a file (puts vdn: offline)>! /SEC64 - Make vdn: geometry 64 sect/trk, 1 trk/cyl, n cyl?! /SEC32 - make vdn: geometry 32 sect/trk, 32 trk/cyl, n cylD! (disks smaller than 65530 blks get 1 sect/trk, 1 trk/cyl, n cyl)J! default: Use /sec64 geometry unless disk is a "recognized" size in which4! case emulate geometry of the recognized disk type.*! Sizes recognized are of types following:$!; losiz hisiz blks cyl trk sect id(! Geotbl 800, 805, 800, 1, 80, 10 ;rx50+! Geotbl 4800, 4810, 4800, 200, 2, 12 ;RK05?! Geotbl 10240, 10250, 10240, 256, 2, 40 ;RL01 (sect=256 bytes)?! Geotbl 20480, 20500, 20480, 512, 2, 40 ;RL02 (Sect=256 bytes).! Geotbl 27126, 27150, 27126, 411, 3, 22 ;RK06.! GeoTbl 53790, 53830, 53790, 815, 3, 22 ;RK071! GeoTbl 131680, 131700, 131680, 823, 5, 32 ;RM032! GeoTbl 138672, 138690, 138672, 1024, 8, 17 ;RD532! GeoTbl 171798, 171850, 171798, 411, 19, 22 ;RP04<! GeoTbl 242606, 242650, 242606, 559, 14, 31 ;RM80 (or RB80)2! GeoTbl 340670, 340720, 340670, 815, 19, 22 ;RP062! GeoTbl 500384, 500420, 500384, 823, 19, 32 ;RM053! GeoTbl 891072, 891110, 891072, 1248, 14, 51 ;RA812! GeoTbl 1008000,1008500,1008000,630, 32, 50 ;RP073! GeoTbl 1216665,1216700,1216665,1423, 15, 57 ;RA82M! where losiz and hisiz are sizes of files recognized as being containers ofN! the device types, and the other columns are number of blocks, and geometry,I! for the devices. the id column is the device being emulated. Note thatF! the device type will still be dt$_FD1 or dt$_rp06 (in vddriver) but&! the geometry is determined as above.!G! If the /LBN=nnnnn and /LEN=mmmmm switches are used, a command of form4! asnvdm6/assign/lbn=nnnnn/len=mmmmm vdn: device:fooL! will assign the mmmmm blocks starting with logical block nnnnn on device:N! as the container for vdn: (e.g. vd2:) instead of requiring a container file.P! This allows use of foreign mounted or unmounted disks, or any other contiguousK! space. BE CAREFUL using it though; it can totally clobber file structures ! if misused.H! /DEVICE simply assigns the entire container device to the virtual disk4! and overrides file specifiers AND /LBN specifiers.O! When using INIT on emulated disks, use the /NOVERIFY switch to avoid losingO! a bunch of blocks at the end as "bad" (even though they're OK). Otherwise theH! failure to find hardware badblock info causes INIT to declare the last ! track bad.H! You can add new devices to the table by modifying the geotbl entriesB! in asnvdm6.mar. Be sure that losiz is at least as large as blks,E! that blks=trk*sect*cyl, and that hisiz>losiz. Also, enter the tableG! entries in order of size for sensibility. Hisiz can be equal to losizA! if that's what you want, but I suggest that it be larger by theD! value of sect anyway; you'd lose less space. Fictitious geometriesD! can be added, just so cyl fits into a 16 bit word and trk and sectB! fit into 8 bit bytes. Set the sign bit at your own risk, though.A! Things might break if the number of sectors/track or tracks/cylC! ever exceed 127. Cylinders of 65000 have been tried and do indeed! work however.*[EVERHART.JTDEMO]ASNVDM6.MAR;28+, .H/ 4MHB- 0123 KPWOC56m#27]$89GHJ7 .TITLE ADVD - VAX/VMS VIRT DISK DRIVER ASSIGN/DEASSIGN .IDENT 'V03-001'; ; FACILITY:; <; ASSIGN/DEASSIGN VIRTUAL DISK TASK THAT WORKS WITH VDDRIVER9; ESTABLISHES CONNECTION (OR BREAKS IT) BETWEEN A LUN OF; VD: AND A CONTIGUOUS FILE.;<; Also this version will save the container file spec in the=; UCB area ucb$vdcontfil as a null terminated string up to 79:; bytes long. Also it has an option to report the assigned; file so associated. (/report);B; ALSO, this version will recognize a couple container file sizes.A; Specifically: a file sized 500384 to 500400 blocks long will be=; treated as an RM05, with 823 cylinders, 19 tracks/cylinder,?; and 32 sectors per track. A file under 65530 blocks long will<; get geomtery n cylinders, 1 sector/track, 1 track/cyl, and@; a file of size 131680 to 131700 blocks long will be treated as?; an RM03 with 823 cylinders, 5 tracks/cylinder, and 32 sectors@; per track. This will facilitate use for some kinds of backups.@; Other disk t@ SAFETY013.A  [EVERHART.JTDEMO]ASNVDM6.MAR;28MH >ypes can be wedged in as needed. Note the physical@; structure for small disks thus generated is DIFFERENT from the>; "standard" driver set. A /sec64 switch will allow this to be); overridden where we need compatibility.B; Also added is RX50 recognition. The RX50 has an unusual physicalA; structure (1 cylinder, 80 trks/cyl and 10 sect/trk) consideringD; the actual layout. The geotbl entry reflects the structure as seenB; by show device/full on VMS. Other structures are added by GEOTBL@; macros in the table; most disk structures I could lay my hands;; on are included. The /sec32 structure is provided to give?; compatible handling with the Bear Systems virtual disk, which?; uses 32 tracks/cyl and 32 sector/track for large unrecognized>; disks. We used the Bear driver on our 750 and I needed to be=; able to get at the virtual disks compatibly using vddriver.;;>;With version 3 is added facility to use VD: with an arbitrary;; section of disk. The /LBN=number/LEN=number switches will:; allow one to force an LBN and length in blocks for a VD:9; assignment even if the file assigned is NOT contiguous.B; The motive for this is: I have noticed that my SYSDUMP.DMP fileC; (after backup/restore) exists as one contiguous area, even thoughB; it is not marked contiguous. Addition of these commands to ASNVD>; will allow use of such areas of disk for things like scratch>; space, where the volatility of scratch area is not an issue.B; This method will also allow entire physical disks to be assignedB; through the VD: driver, or permit partitioning of physical disksA; without the overhead of a Files-11 index structure on the disk.B; (the code added will probably be moved to ASNVQ also, where such'; disk assignment has other uses also.);; Command format:; ADVD/switches VDn: fileB; where a .CLD file is expected so that this can all be parsed by@; the CLI. The legal switches will just be /ASSIGN or /DEASSIGN;; to specify which operation is required. In the /DEASSIGN>; case no filename is needed of course; the virtual disk must=; however be dismounted before this utility will allow it to>; be deassigned. The ucb$w_refc field must be zero before the; deassign is thus permitted.B; We must set the UCB$L_MAXBLOCK longword to the size of the fileA; here also. This requires reading the statistics on the file to=; discover the size if contiguous; the statistics block will; show zero if noncontig...@; Device geometry is needed by INIT and MOUNT, though vddriverD; doesn't care. Therefore a "sensible" geometry is always generated,E; and device size is always an integral number of cylinders. VddriverA; doesn't support physical I/O really, but init and mount use theC; physical structure to figure where to put home blocks or look for; them.;6; Note: define VMS$V5 to build for Version 5.x of VMS.VMS$V5=1;; ; AUTHOR:; ; G. EVERHART;?; 04-Aug-1989 D. HITTNER Cleaned up definitions, added messagesI; 29-Aug-1989 G. Everhart Added more flexible device geometry selection;-- .PAGE& .SBTTL EXTERNAL AND LOCAL DEFINITIONS .LIBRARY /SYS$SHARE:LIB/; ; EXTERNAL SYMBOLS;  $dyndef) $ADPDEF ;DEFINE ADAPTER CONTROL BLOCK $ATRDEF) $CRBDEF ;DEFINE CHANNEL REQUEST BLOCK $DCDEF ;DEFINE DEVICE CLASS% $DDBDEF ;DEFINE DEVICE DATA BLOCK* $DEVDEF ;DEFINE DEVICE CHARACTERISTICS) $DPTDEF ;DEFINE DRIVER PROLOGUE TABLE) $DVIDEF ;Symbols for $GETDVI service.( $EMBDEF ;DEFINE ERROR MESSAGE BUFFER $FABDEF $FATDEF0 $FIBDEF ;Symbols for file information block.( $IDBDEF ;DEFINE INTERRUPT DATA BLOCK% $IODEF ;DEFINE I/O FUNCTION CODES& $IRPDEF ;DEFINE I/O REQUEST PACKET $NAMDEF& $PRDEF ;DEFINE PROCESSOR REGISTERS $RMSDEF $SBDEF $SCSDEF& $SSDEF ;DEFINE SYSTEM STATUS CODES) $STSDEF ;Symbols for returned status.* $TPADEF ;Symbols for LIB$TPARSE calls.& $UCBDEF ;DEFINE UNIT CONTROL BLOCK* $VECDEF ;DEFINE INTERRUPT VECTOR BLOCK $XABDEF; 2; UCB OFFSETS WHICH FOLLOW THE STANDARD UCB FIELDS=; DEFINE THESE SO WE KNOW WHERE IN THE UCB TO ACCESS. WE MUST.; SET THE ONLINE BIT OR CLEAR IT, AND ALSO SET9; UCB$HUCB (HOST UCB ADDRESS), UCB$HFSZ (HOST FILE SIZE),8; AND UCB$HLBN (HOST LOGICAL BLOCK NUMBER OF FILE START);;; Note: These MUST match the definitions in VDDRIVER. Don't6; change one without changing the other to match it!!!; G. Everhart 9/5/1986; A; Since I/O postprocessing on virtual or paging I/O makes lots of>; assumptions about location of window blocks, etc., which areG; not true here (wrong UCB mainly), we'll bash the function code status>; we send to the host driver to look like logical I/O is being>; done and save the real status code here. Later when VD: does@; I/O completion processing, we'll replace the original functionC; from here back in the IRP. This will be saved/restored along withD; ucb$ppid (irp$l_pid field) and so synchronization will be detected; with ucb$ppid usage.( $DEFINI UCB ;START OF UCB DEFINITIONS2;.=ucb$w_bcr+2 ;BEGIN DEFINITIONS AT END OF UCB;.=ucb$k_lcl_disk_length ;vms v4, right out of the book... ;LOCAL DATA FOR VIRT DISK.,$DEF UCB$W_DY_WPS .BLKW 1 ;Words per sector.1$DEF UCB$W_DY_CS .BLKW 1 ;CONTROL STATUS REGISTER4$DEF UCB$W_DY_DB .BLKW 1 ;UCB ADDRESS OF HOST DRIVER%$DEF UCB$W_DY_DPN .BLKW 1 ;(LONGWORD)8$DEF UCB$L_DY_DPR .BLKL 1 ;START LBN OF HOST CONTIG FILE$DEF UCB$L_DY_FMPR .BLKL 1 ;1$DEF UCB$L_DY_PMPR .BLKL 1 ;PREVIOUS MAP REGISTER0$DEF UCB$B_DY_ER .BLKB 1 ;SPECIAL ERROR REGISTER .BLKB 1 ;Reserved.'$DEF UCB$B_DY_LCT .BLKB 1 ;LOOP COUNTER5$DEF UCB$B_DY_XBA .BLKB 1 ;BUS ADDRESS EXTENSION BITS-$DEF UCB$W_DY_PWC .BLKW 1 ;PARTIAL WORD COUNT/$DEF UCB$W_DY_SBA .BLKW 1 ;SAVED BUFFER ADDRESS6$DEF UCB$L_DY_XFER .BLKL 1 ;TRANSFER FUNCTION CSR BITS3$DEF UCB$L_DY_LMEDIA .BLKL 1 ;LOGICAL MEDIA ADDRESS@$DEF UCB$Q_DY_EXTENDED_STATUS ; Area into which we do READ ERROR .BLKQ 1 ; REGISTER command.=$DEF UCB$Q_DY_SVAPTETMP ; Area in which we save UCB fields -% .BLKQ 1 ; SVAPTE, BOFF, and BCNT.=$DEF UCB$L_DY_MAPREGTMP ; Area in which we save CRB fields -+ .BLKL 1 ; MAPREG, NUMREG, and DATAPATH.D$DEF UCB$L_DY_SAVECS .BLKL 1 ; Area in which we save CS and DB regs.*$DEF UCB$HUCB .BLKL 1 ;ADDRESS OF HOST UCB'$DEF UCB$HLBN .BLKL 1 ;LBN OF HOST FILE.$DEF UCB$HFSZ .BLKL 1 ;SIZE OF HOST FILE, BLKS8$DEF UCB$PPID .BLKL 1 ;PID save area for active requests1$DEF UCB$STATS .BLKL 1 ;IRP STATUS CODE SAVE AREA0$DEF UCB$OBCT .BLKL 1 ;STORE FOR IRP$L_OBCNT too*$DEF UCB$LMEDIA .BLKL 1 ;irp$l_media store,$DEF UCB$OWIND .BLKL 1 ; store irp$l_wind...)$DEF UCB$OSEGV .BLKL 1 ; and irp$l_segvbn$DEF UCB$L_VD_HOST_DESCR .BLKL 2:$DEF UCB$VDCONTFIL .BLKB 80 ;container file spec, 0 term'd!$DEF UCB$K_VD_LEN .BLKW 1 ;length!;ucb$k_dy_len=. ;LENGTH OF UCB% $DEFEND UCB ;END OF UCB DEFINITONS; TO SET ONLINE::; BISW #UCB$M_ONLINE,UCB$W_STS(R5) ;SET UCB STATUS ONLINE/; Macro to check return status of system calls.; .MACRO ON_ERR THERE,?HERE BLBS R0,HERE BRW THEREHERE: .ENDM ON_ERR;;;$ .PSECT ADVDD_DATA,RD,WRT,NOEXE,LONGDEFAULT_DEVICE: .ASCID /SYS$DISK/ .ALIGN LONGEDFAB_BLK: $FAB FNM=,XAB=FNXAB,FAC=,DNM=BRDFAB_BLK: $FAB FNM=,XAB=FNXAB,FAC=,DNM=;+FNXAB: $XABFHC ; XAB STUFF TO GET LBN, SIZE .BLKL 20 ;SAFETYIOSTATUS: .BLKQ 1(DEV_BUF: ; Buffer to hold device name. .BLKB 40DEV_BUF_SIZ = . - DEV_BUF5DEV_BUF_DESC: ; Descriptor pointing to device name. .LONG DEV_BUF_SIZ .ADDRESS DEV_BUF#PID: ; Owner of device (if any). .BLKL 1+DEV_ITEM_LIST: ; Device list for $GETDVI.A .WORD DEV_BUF_SIZ ; Make sure we a have a physical device name. .WORD DVI$_DEVNAM .ADDRESS DEV_BUF .ADDRESS DEV_BUF_DESC6 .WORD 4 ; See if someone has this device allocated. .WORD DVI$_PID .ADDRESS PID .LONG 0 .WORD 4- .WORD DVI$_DEVCLASS ; Check for a terminal. .ADDRESS DEV_CLASS .LONG 0 .LONG 0 ; End if item list. DEV_CLASS: .LONG 1;**(VDV_BUF: ; Buffer to hold VDVice name. .BLKB 40VDV_BUF_SIZ = . - VDV_BUF5VDV_BUF_DESC: ; Descriptor pointing to VDVice name. .LONG VDV_BUF_SIZ .ADDRESS VDV_BUF$VPID: ; Owner of VDVice (if any). .BLKL 1+VDV_ITEM_LIST: ; VDVice list for $GETDVI.A .WORD VDV_BUF_SIZ ; Make sure we a have a physical device name. .WORD DVI$_DEVNAM .ADDRESS VDV_BUF .ADDRESS VDV_BUF_DESC6 .WORD 4 ; See if someone has this device allocated. .WORD DVI$_PID .ADDRESS VPID .LONG 0 .WORD 4- .WORD DVI$_DEVCLASS ; Check for a terminal. .ADDRESS VDV_CLASS .LONG 0 .LONG 0 ; End if item list. VDV_CLASS: .LONG 1;**DEFNAM:WRK: .BLKL 1 ;SCRATCH INTEGER ; DESCRIPTOR FOR VDn: "FILENAME" .ALIGN LONGVDFNM: .WORD 255. ;LENGTH%VDFTP: .BYTE DSC$K_DTYPE_T ;TEXT TYPE .BYTE 1 ; STATIC STRING .ADDRESS VDFNMDVDFNMD: .BLKB 256. ; DATA AREA .align longwrkstr: .word 20 ;length .byte dsc$k_dtype_t ;text .byte 1 ;static .address wrkdatwrkdat: .blkb 20 .byte 0,0,0,0 ;safety;&; DESCRIPTOR FOR DVn:DSKFIL "FILENAME" .ALIGN LONGDDFNM: .WORD 255. ;LENGTH%DDFTP: .BYTE DSC$K_DTYPE_T ;TEXT TYPE .BYTE 1 ; STATIC STRINGDDFNA: .ADDRESS DDFNMDDDFNMD: .BLKB 256. ; DATA AREADDCHN: .LONG 0VDCHN: .LONG 0 ;CHANNEL HOLDERS;?; FOR initial use, don't bother allocating the file. Assume theB; user can somehow allocate a contiguous file of the size he wants; for himself.;/repdsc: .ascid /REPORT/ ;report associated file-repflg: .long 0 ;1 if reporting, 0 otherwisereptxt: .word 80 ;80 byte long9 .byte dsc$k_dtype_t ;static, fixed length string of text .byte 12 .address repwrk ;data pointer is repwrk's address#repwrk: .blkb 80 ;copy of filespecDs64dsc: .ascid /SEC64/ ;flag this if 64 sectors/trk geometry needed2s32dsc: .ascid /SEC32/ ;md: type 32 sector forcerASDSC: .ASCID /ASSIGN/DASDSC: .ASCID /DEASSIGN/P1DSC: .ASCID /UNIT/P2DSC: .ASCID /FNAM/LBNDSC: .ASCID /LBN/LENDSC: .ASCID /LENGTH/Cgeodsc: .ascid /GEOM/ ; hex geometry override starting at longword# ;ucb$b_sectors (sect, trk, cyl)rodsc: .ascid /READONLY/dvcdsc: .ascid /DEVICE/ .EVENgeoflg: .long 0 ;flag saw /geomgeoval: .long 0 ;geometry valueroflg: .long 0 ;read-only flag"dvcflg: .long 0 ;/device seen if 1 ASDAS: .LONG 0 ;DEFAULT DEASSIGN+vSec64: .long 0 ;1 if using /sec64 geometry+vsec32: .long 0 ;1 if using /sec32 geometry+LBNn: .long 0 ;temp storage for /lbn=number+LENn: .long 0 ;temp storage for /len=number;; ucb data area!HSTUCB: .LONG 0 ;HOST UCB ADDRESS,HSTLBN: .LONG 0 ;LBN OF 1ST BLK OF HOST FILE.HSTFSZ: .LONG 0 ;LENGTH IN BLOCKS OF HOST FILE ; debug wordsvducb: .long 0vdsts: .long 0vdsts2: .long 0vdsts3: .long 0vdcyl: .long 0(vdprog: .long 0 ;counts where we've been;;ERROR: .LONG 2MESS: .LONG SS$_ABORT .LONG 0; Device geometry?; Use this table for "large" devices so that container files of=; sizes matching known geometry devices are made to appear toC; have exactly the known geometry. This will avoid a LOT of specialB; case testing and allow insertion of more device geometries as we; like. .macro Geotbl losz,hisz,blks,cyl,trk,sect,typ* .Long losz ;low limit file size this geom+ .Long hisz ;high limit file size this geom% .long blks ;Number of blks on device .word cyl ;number cylinders .byte trk ;number tracks/cyl! .byte sect ;number sectors/track* .long typ ;drive type (for ucb$b_devtype) .endm,; Geoms MUST be in increasing order of size.Geoms:'; losiz hisiz blks cyl trk sect typ id5; (can't do rx01...blks not 512 bytes long, but 128.)/; GeoTbl 494, 494, 494, 77, 1, 26 dt$_rx01;rx01. GeoTbl 512, 512, 512, 1, 4, 128 dt$_tu58;tu58< GeoTbl 576, 576, 576, 1, 4, 144 dt$_tu56;tu56 (old DECtape)/ Geotbl 800, 805, 800, 1, 80, 10 dt$_rx50;rx508 GeoTbl 1440, 1440, 1440, 80, 2, 9 dt$_rx23s;rx23s loden1 GeoTbl 1976, 1976, 1976, 76, 1, 26 dt$_rx04;rx04; GeoTbl 2880, 2880, 2880, 80, 2, 18 dt$_rx23s;rx23s hidens @ Geotbl 4800, 4810, 4800, 200, 2, 12 dt$_FD1;RK05 (no typedef'd)F Geotbl 10240, 10250, 10240, 256, 2, 40 dt$_rl01;RL01 (sect=256 bytes)= GeoTbl 15000, 15002, 15000, 15000, 1, 1 dt$_rd51;my virt dskF Geotbl 20480, 20500, 20480, 512, 2, 40 dt$_rl02;RL02 (Sect=256 bytes)5 Geotbl 27126, 27150, 27126, 411, 3, 22 dt$_rk06;RK065 GeoTbl 53790, 53830, 53790, 815, 3, 22 dt$_rk07;RK078 GeoTbl 131680, 131700, 131680, 823, 5, 32 dt$_rm03;RM039 GeoTbl 138672, 138690, 138672, 1024, 8, 17 dt$_rd53;RD539 GeoTbl 171798, 171850, 171798, 411, 19, 22 dt$_rp04;RP04C GeoTbl 242606, 242650, 242606, 559, 14, 31 dt$_rm80;RM80 (or RB80)9 GeoTbl 251328, 251330, 251328, 561, 14, 32 dt$_rb80;rb80: GeoTbl 311200, 311220, 311200, 1221, 15, 17 dt$_rd54;rd549 GeoTbl 340670, 340720, 340670, 815, 19, 22 dt$_rp06;RP06A GeoTbl 400176, 400200, 400176, 2382, 4, 42 dt$_ra60;ra60M GeoTbl 409792, 409850, 409792,1348, 8, 38 dt$_rz24;RZ249 GeoTbl 500384, 500420, 500384, 823, 19, 32 dt$_rm05;RM058 GeoTbl 832527, 832550, 832527,1492, 9, 62 dt$_rz25;rz25: GeoTbl 891072, 891110, 891072, 1248, 14, 51 dt$_ra81;RA819 GeoTbl 1008000,1008500,1008000,630, 32, 50 dt$_rp07;RP07: GeoTbl 1216665,1216700,1216665,1423, 15, 57 dt$_ra82;RA82= GeoTbl 1241848,1241860,1241848,51744, 6, 4 dt$_rrd42;RRD42M GeoTbl 1954050,1954100,1954050,1835, 15, 71 dt$_rz57;RZ579 GeoTbl 2050860,2050890,2050860,2570, 14, 57 dt$_fd1;rz26M GeoTbl 2376153,2376200,2376153,2649, 13, 69 dt$_ra90;RA90 .Long 0,0,0,0 ;list terminator;;;$ .PSECT ADVDD_CODE,RD,NOWRT,EXE,LONG1 .ENTRY ADVDD,^M& clrl geoflg ;initially no /geom seen* clrl repflg ;say not reporting initially clrl roflg- movab repwrk,r0 ;clear work string initially movl #80,r11$: clrb (r0)+" sobgtr r1,1$ ;zero the array out pushab geodsc ;/geom:nnn seen? calls #1,g^cli$present cmpl r0,#cli$_present ;see it? bneq 2$ ;if neq no incl geodsc pushab wrk ;area for ret len pushab wrkstr ;scratch string pushab geodsc ;/geom:nnnn val. calls #3,g^cli$get_value ;get value as string on_err advdd_exit pushl #17 ;ignore blanks pushl #4 ;4 bytes pushab geoval ;geom value pushab wrkstr ;where string is+ calls #4,g^ots$cvt_tu_l ;convert to binary on_err advdd_exit2$: pushab rodsc ;/readonly? calls #1,g^cli$present cmpl r0,#cli$_present bneq 42$ ;if neq no incl roflg42$: clrl dvcflg ;no /device yet. MOVL #1,ASDAS ;SET ASSIGN. PUSHAB WRK ;PUSH LONGWORD ADDR FOR RETLENGTH/ PUSHAB VDFNM ;ADDRESS OF DESCRIPTOR TO RETURN# PUSHAB P1DSC ; GET P1 (VDn: UNIT)5 CALLS #3,G^CLI$GET_VALUE ;GET VALUE OF NAME TO VDFNM ON_ERR ADVDD_EXIT clrl vsec64 ;zero s64 flag clrl vsec32 ;ditto s32 flag" pushab dvcdsc ;check for /device0 calls #1,g^cli$present ;see if /sec64 specified cmpl r0,#cli$_present bneq 525$ incl dvcflg ;say /device seen.); (note /device overrides lots of stuff!)525$: pushab s64dsc0 calls #1,g^cli$present ;see if /sec64 specified cmpl r0,#cli$_present bneq 503$ ;if neq not there incl vsec64503$: pushab s32dsc0 calls #1,g^cli$present ;see if /sec32 specified cmpl r0,#cli$_present bneq 1503$ ;if neq not there incl vsec321503$: pushab repdsc& calls #1,g^cli$present ;/report used? cmpl r0,#cli$_present# bneq 103$ ;if not there, skip... movl #1,repflg2 jmp das1 ;if there, no need for 2nd file either;/; IF "DEASSIGN" WE DON'T NEED 2ND ARG... SEE...;103$: PUSHA@ SAFETY013.A  [EVERHART.JTDEMO]ASNVDM6.MAR;28MH>"B DASDSC ; 'DEASSIGN', CALLS #1,G^CLI$PRESENT ; IS /DEASSIGN USED?" CMPL R0,#CLI$_PRESENT ; IF EQ YES BEQL DAS1( PUSHAB WRK ; GET 2ND FILE (REAL FILE)" PUSHAB DDFNM ; & ITS DESCRIPTOR' PUSHAB P2DSC ; & PARAMETER NAME 'P2'# CALLS #3,G^CLI$GET_VALUE ; GET FNM ON_ERR ADVDD_EXIT BRB DAS2DAS1: CLRL ASDAS ; FLAG /DEASDAS2:5 TSTL ASDAS ; IF 0, DEASSIGNING SO NO CHNL FOR HOST ; FILE BEQL 290$ tstl repflg. bneq 290$ ;/report doesn't need file either& $ASSIGN_S - ; Get a channel to the ( DEVNAM=DDFNM,- ; device for host file CHAN=DDCHN ON_ERR ADVDD_EXITA; LET ERRORS BY FOR THIS SINCE WE GET OUR INFO VIA OPEN ANYWAY SO*; CHANNEL REALLY DOESN'T HAVE TO BE THERE.D; Get the physical device name, and see if this device has an owner.6; (We must do this so we can get the host UCB address) $GETDVI_S -/ CHAN=ddchn,- ; Command line has device name. ITMLST=DEV_ITEM_LIST BLBS R0,40$ BRW advdd_EXIT40$:290$:/; MUST HAVE ASSIGNMENT TO VD: UNIT IN ANY CASE. $ASSIGN_S -( DEVNAM=VDFNM,- ; GET CHANNEL FOR VDn: CHAN=VDCHN' ON_ERR ADVDD_EXIT ; SKIP OUT IF ERROR $GETDVI_S -/ CHAN=vdchn,- ; Command line has device name. ITMLST=VDV_ITEM_LIST BLBS R0,140$ BRW advdd_EXIT140$: clrl lbnn' clrl lenn ;zero lbn and length flags. brb 1401$1400$: brw 1501$1401$:! clrl lbnn ;initially set lbn=0 tstl dvcflg ; /device spec'd?! beql 1525$ ; if not check /lbn- movl #10000,lenn ; (dummy length initially) ; (fixed up in bashucb)* brw 2525$ ; then set len, lbn initially1525$: PUSHAB LBNDSC ; 'lbn=', CALLS #1,G^CLI$PRESENT ; IS /DEASSIGN USED?" CMPL R0,#CLI$_PRESENT ; IF EQ YES Bneq 1400$ ; if neq no pushab lendsc ; /len=nnnn5 calls #1,g^cli$present ;see it too? (must have both) cmpl r0,#cli$_present Bneq 1400$A; have both /len and /lbn specified. Get values for them. If they.; look OK, bypass file open and replace logic.. PUSHAB WRK ;PUSH LONGWORD ADDR FOR RETLENGTH pushab wrkstr ;scratch string PUSHAB lbndsc ; GET lbn+ CALLS #3,G^CLI$GET_VALUE ;GET VALUE OF LBN ON_ERR ADVDD_EXIT; string in wrkdat! pushl #17 ;mask...ignore blanks pushl #4 ;4 bytes pushab lbnn ;where to store" pushab wrkstr ;string descriptor+ calls #4,g^ots$cvt_tu_l ;convert to binary on_err advdd_exit; lbnn now is start logical blk. PUSHAB WRK ;PUSH LONGWORD ADDR FOR RETLENGTH pushab wrkstr ;scratch string PUSHAB lendsc ; GET length. CALLS #3,G^CLI$GET_VALUE ;GET VALUE OF Length ON_ERR ADVDD_EXIT; string in wrkdat! pushl #17 ;mask...ignore blanks pushl #4 ;4 bytes pushab lenn ;where to store" pushab wrkstr ;string descriptor+ calls #4,g^ots$cvt_tu_l ;convert to binary on_err advdd_exit;len must be positive! tstl lenn ;so IS it positive?? blss 1501$ ;if lss then no, it's negative so try and probably2525$: ; fail to open file., movl lbnn,hstlbn ;looks ok so save host LBN movl lenn,hstfsz ;and start blk- brw 1785$ ;then merge common path in again.9525$: brw 296$1501$:;A; NOW LOCATE THE FILE AND VERIFY IT'S REALLY CONTIGUOUS, AND FIND;; OUT HOW BIG IT IS. STORE RESULTS IN HSTLBN AND HSTFSZ AND9; CALL KERNEL ROUTINE TO BASH THE VDn: UCB APPROPRIATELY.;;; DON'T NEED TO DO THIS FOR DEASSIGN SO CHECK THAT FIRST...# TSTL ASDAS ; IF ZERO WE DEASSIGN BEQL 9525$ tstl repflg/ bneq 9525$ ;forget file open if /report only&; OPEN THE FILE, CHECK ITS INITIAL LBN!; IF ERROR OR NOT CONTIG, EXIT...4; DO VIA OPENING FILE AND READING ITS' STATBLOCK VIA; QIO.../; SET UP FOR FILENAME WE REALLY FOUND IN FAB...4 MOVL DDFNA,DFAB_BLK+FAB$L_FNA ;SET UP FILENAME ADDR* MOVB DDFNM,DFAB_BLK+FAB$B_FNS ;AND LENGTH5 MOVL DDFNA,RDFAB_BLK+FAB$L_FNA ;SET UP FILENAME ADDR+ MOVB DDFNM,RDFAB_BLK+FAB$B_FNS ;AND LENGTH tstl roflg ;read-only mode? bneq 3521$ ;if yes branch $OPEN FAB=DFAB_BLK brb 3522$3521$: $open fab=rdfab_blk3522$:, BLBC R0,300$ ; FAILURE IF FILE WON'T OPEN; FNXAB HAS INFO ON LBN, SIZE- MOVL FNXAB+XAB$L_SBN,HSTLBN ; GET HOST'S LBN( BEQL 301$ ;;; RESTRICTION FOR NOW ... ;;; IF ZERO, FILE NONCONTIG ;;; SO FORGET IT...@ MOVL FNXAB+XAB$L_HBK,HSTFSZ ; GET FILE SIZE. (CHECK THAT BELOW)1785$: .if ndf,phy$io tstl vsec64 beql 784$0 BICL2 #63,HSTFSZ ;;;MAKE A MULTIPLE OF 64 BLKSE;;; As long as the driver doesn't do physical I/O we can omit this...";;; except INIT seems unhappy then brb 785$784$: cmpl hstfsz,#65530 ;big disk?& blss 785$ ;if not leave size alone.<; bicl2 #31,hstfsz ;else make granular to 32 sectors anyhow785$: .endcB;;;HAS TO BE A MULTIPLE OF 64 BLKS DUE TO FAKED-OUT PHYSICAL DRIVE@;;; STRUCTURE OF 64 SECTORS/TRACK, 1 TRACK/CYL, NNN CYLINDERS...# TSTL HSTFSZ ; HOST SIZE POSITIVE0 BLSS 301$ ; IF <0 OR =0 THEN ILLEGAL; BUG OUT) ; ELSE ISSUE THE REQUESTS TO GET THE ; DEVICES...296$: $CMKRNL_S - ROUTIN=BASHUCB,ARGLST=K_ARG$ CMPL R0,#SS$_NORMAL ;Any errors?& BEQL 300$ ;No, skip error routine( MOVL R0,MESS ;Move error to message ;;; BRW 300$301$:$; ERROR RETURN ... CLOSE FAB & LEAVE1 $PUTMSG_S MSGVEC=ERROR ;Pump out error message $CLOSE FAB=DFAB_BLK300$:=; BE SURE WE DON'T LEAVE THE CHANNELS ASSIGNED TO THE DEVICES ; EITHER... $DASSGN_S CHAN=VDCHN tstl repflg bneq 550$$ TSTL ASDAS ; IF ZERO WE DEASSIGN. beql 540$ ; if zero, no file chnl to deass. $DASSGN_S CHAN=DDCHN ;CLEAN UP I/O CHANNELS0540$: ; skip deassign file chnl on advd/deassign ; to avoid final error msg RET550$:; print out the filespec' tstb repwrk ;got any file assigned?& beql 552$ ;if not, don't emit name* pushab reptxt ;text descr. of filename& calls #1,g^lib$put_output ;emit same552$: ret advdd_exit: RET;; KERNEL ARG LISTK_ARG:. .LONG 2 ;2 ARGS: HOST-DVC NAME, VD DVC NAME .ADDRESS DEV_BUF_DESC .ADDRESS VDV_BUF_DESC; .ADDRESS DDFNM; .ADDRESS VDFNM2; BASHUCB - AREA TO MESS UP UCB WITH OUR FILE DATA; BEWARE BEWARE BEWARE+; runs in KERNEL mode ... HAS to be right.3 .ENTRY BASHUCB,^M; TAKEN LOOSELY FROM ZERO.MAR .if ndf,vms$v5) MOVL G^SCH$GL_CURPCB,R4 ;;; NEED OUR PCB .iff0 MOVL G^CTL$GL_PCB,R4 ;;; NEED OUR PCB (VMS V5) .endc) JSB G^SCH$IOLOCKW ;;; LOCK I/O DATABASE" CLRL HSTUCB ;;; ZERO "HOST" UCB! movl #1,vdprog ;;; got to start tstl repflg( bneq 90$ ;;;no host lookup on /report# TSTL ASDAS ;;; IF DEASSIGN, ZERO0 BEQL 90$ ;;; SO IF EQUAL SKIP LOCATE HOST UCB0 MOVL 4(AP),R1 ;;; ADDRESS DVC NAME DESCRIPTORS1 JSB G^IOC$SEARCHDEV ;;; GET UCB ADDRESS INTO R1 BLBS R0,60$ BRW BSH_XIT60$:2; TSTL UCB$L_PID(R1) ;;; ENSURE DVC NOT ALLOCATED ; BEQL 80$; MOVL #SS$_DEVALLOC,R0 ; BRW BSH_XIT6; ALLOCATED OK SINCE IT COULD JUST BE PRIVATE MOUNT...;80$:$ movl #2,vdprog ;;; got host ucb ok/ movl r1,r11 ; keep a copy of host ucb in r11* MOVL R1,HSTUCB ;;; SAVE HOST UCB ADDRESS6 BEQL 167$ ;;; ... BUT ZERO UCB ADDRESS LOOKS BAAAAD90$:0 MOVL 8(AP),R1 ;;; ADDRESS VDn NAME DESCRIPTORS( movl #3,vdprog ;;; got vdn: descriptor1 JSB G^IOC$SEARCHDEV ;;; GET UCB ADDRESS INTO R1 BLBS R0,160$ BRW BSH_XIT160$: movl r1,vducb ;;; store vd ucb movl #4,vdprog ;;; got vd ucb tstl repflg, bneq 168$ ;;;on /report don't mess ucb up1 TSTL UCB$L_PID(R1) ;;; ENSURE DVC NOT ALLOCATED BEQL 180$165$: MOVL #SS$_DEVALLOC,R0167$: BRW BSH_XIT168$: brw 455$180$:& movl #5,vdprog ;;; not allocated yet; BUGGER THE UCB,; ASSUMES FILE LBN AND SIZE ALREADY RECORDEDC; ALSO ASSUMES THAT ZERO LBN OR SIZE MEANS THIS ENTRY NEVER CALLED.A; (REALLY ONLY WORRY ABOUT ZERO SIZE; IF WE OVERMAP A REAL DEVICE%; THEN ZERO INITIAL LBN COULD BE OK.);@; CHECK REF COUNT FIRST... ONLY CAN GET AWAY WITH THIS ON DEVICE; NOBODY'S USING...A; .. fake this since device may have count messed by advd somehow#; but will be allocated if mounted.; ... for now ...554$:8 movzwl ucb$w_refc(r1),vdsts2 ;;; save status for debug5 CMPW UCB$W_REFC(R1),#1 ;;; CHECK COUNT VS 1 FOR THIS BGTRU 165$1; TSTW UCB$W_REFC(R1) ;;; IF MOUNTED DON'T TOUCH); BNEQ 165$ ;;; IF NEQ IT'S ACCESSED...' movl #6,vdprog ;;; not mounted either0 MOVL HSTUCB,UCB$HUCB(R1) ;;; SAVE HOST UCB OR 0 BNEQ 184$ ;;; IF NE, OK NOW,;;; ZERO -- DEASSIGNING. FLAG VOLUME INVALID2 BICW #UCB$M_ONLINE,UCB$W_STS(R1) ;;; FLAG OFFLINE0 BICW #UCB$M_VALID,UCB$W_STS(R1) ;;; AND INVALID2 clrb ucb$vdcontfil(r1) ;;;clr container file name BRW 200$@; /device switch gives an exact copy of the host device geometryD; and size, and also device type, fork level IPL (which for disks is1; always 8 anyhow), and maxbcnt (which can vary).#184$: tstl dvcflg ; See /device?? bneq 5525$ brw 3525$ ;if eql no...$5525$: movl ucb$l_maxblock(r11),lenn movl lenn,hstfsz ;store size7 movl ucb$l_maxblock(r11),ucb$l_maxblock(r1) ;copy size clrl ucb$hlbn(r1) ;start lbn=0;copy geom next. movw ucb$w_cylinders(r11),ucb$w_cylinders(r1)( movb ucb$b_tracks(r11),ucb$b_tracks(r1)* movb ucb$b_sectors(r11),ucb$b_sectors(r1)9 movb ucb$b_devtype(r11),ucb$b_devtype(r1) ;set type too.G movl ucb$l_maxbcnt(r11),ucb$l_maxbcnt(r1) ;;;store max bytes as a word@ movb ucb$b_fipl(r11),ucb$b_fipl(r1) ;;;ensure fork levels match brw 4525$3525$: tstl geoflg ;/geom:nnn there? beql 7526$ ;if 0, no= movl geoval,ucb$b_sectors(r1) ;fill in long with sec/trk/cyl- MOVL HSTLBN,UCB$HLBN(R1) ;;; SAVE HOST'S LBN+ MOVL HSTFSZ,UCB$HFSZ(R1) ;;; AND FILE SIZE= MOVL HSTFSZ,UCB$L_MAXBLOCK(R1) ;;; (SAVE SIZE TWICE, FOR RMS( clrl ucb$ppid(r1) ;;;zero original PID&;;;must make maxbcnt and fipl match!!!@ movb ucb$b_fipl(r11),ucb$b_fipl(r1) ;;;ensure fork levels matchG movl ucb$l_maxbcnt(r11),ucb$l_maxbcnt(r1) ;;;store max bytes as a word brw 4525$7526$:- MOVL HSTLBN,UCB$HLBN(R1) ;;; SAVE HOST'S LBN+ MOVL HSTFSZ,UCB$HFSZ(R1) ;;; AND FILE SIZE= MOVL HSTFSZ,UCB$L_MAXBLOCK(R1) ;;; (SAVE SIZE TWICE, FOR RMS( clrl ucb$ppid(r1) ;;;zero original PID&;;;must make maxbcnt and fipl match!!!@ movb ucb$b_fipl(r11),ucb$b_fipl(r1) ;;;ensure fork levels matchG movl ucb$l_maxbcnt(r11),ucb$l_maxbcnt(r1) ;;;store max bytes as a word$ movl #7,vdprog ;;; filled in stuff' ;;; AND QIO CHECKS, AND OUR SAFETY ;;; ONES)" MOVL HSTFSZ,R0 ;;; GET HOST SIZE0 ASHL #-6,R0,R0 ;;; GET # CYLINDERS IN SIZE NOW@;Set default geometry as 1 track/cylinder, 64 sectors/track, andA; as many cylinders as needed for device size. We use this if theD; /SEC64 switch is given. Otherwise we check to see if the containerB; file is size same as some known disk and adopt its' geometry, or>; if that fails use either a 1 sector/trk 1 trk/cyl n cylinderA; geometry for small disks (under 65000 blocks), or a 32 sect/trk1; 32 trk/cyl n cylinder geometry for large disks.;A; *** Where one gets over 2 billion blocks and sets the sign bit;; *** in the blocks count, this code will break due to notA; *** ensuring sign extension is avoided. Since this correspondsA; *** to a single disk of 1 terabyte, it seems unlikely to causeC; *** difficulties for a while. The 64 sector geometry breaks down@; *** at 64*65536 blocks (2 GB) and the 32*32*n geometry breaksB; *** down at 1024 * 65536 blocks. These seem high enough not to ?; *** worry about for now. If they become a problem, play with; *** geometry!!!;< MOVW R0,UCB$W_CYLINDERS(R1) ;;; SAVE IN UCB FOR REST OF VMS- movl r0,vdcyl ;;; store cylinders for debug8 movb #64,ucb$b_sectors(r1) ;;;init sectors to 64 always1 movb #1,ucb$b_tracks(r1) ;number of tracks/cyl=1: tstl vsec64 ;;;did user say he needs 64 sector geometry?$ beql 6843$ ;;;if eql no, do tests/ brw 6841$ ;;;if neql leave geometry alone...6843$:5 tstl vsec32 ;;;did he ask for 32 sect/32 trk geom?$; get md: geometry if /sec32 spec'd.; was bneq 685$- bneq 3687$ ;;;if so (neq) skip geom table.4 movl r2,-(sp) ;;;Need a register to point to geoms( movab geoms,r2 ;;;so we can test sizes?; Check for file sizes of known disks and set geometry of those; disks IF we match."686$: tstl (r2) ;;;end of table?$ beql 687$ ;;;if eql yes, skip out4 cmpl hstfsz,(r2) ;;;above min size this disk type?9 blss 688$ ;;;if too small, we're done so exit the loop% cmpl hstfsz,4(r2) ;;;see if too big( bgtr 688$ ;;;if too big, look at next#; got a match. Now fill in geometry>; The geotbl table in this file contains a set of known deviceG; geometries sorted by device size. Use device size to pick the closest=; geometry (so that, for instance, a container file/device ofB; 1008000 blocks, up to 1008500 blocks in this case, is treated asK; the 1008000 block RP07 device. This table is not exhaustive unfortunatelyM; even of DEC devices, but covers many of them and can be extended as desiredC; to handle more. If the geometry is not found in the geotbl table,H; and if the disk has <65530 blocks, it is given a "small disk" geometryF; of 1 trk by 1 sector by n cylinders (n=#blks). Otherwise it is given>; a geometry of either 64 sectors, 1 track, n cylinders, or 32E; sectors, 32 tracks, n cylinders, where n is set to be such that theK; total size is less than or equal to the container file/device. The /sec32J; and /sec64 switches control this; default is /sec64 if the disk is small; enough, /sec32 otherwise.;; GEOTBL FORMAT:6; (r2) = lo size (must be at LEAST as large as device); 4(r4) = hi size lim; 8(r2) = # blks on device; 12(r2) = cyl; 14(r2) = trk; 15(r2) = cyl; 16(r2) = type4 movl 8(r2),ucb$l_maxblock(r1) ;Set up maximum block5 movw 12(r2),ucb$w_cylinders(r1) ;number of cylinders4 movb 14(r2),ucb$b_tracks(r1) ;number of tracks/cyl4 movb 15(r2),ucb$b_sectors(r1) ;number sectors/track- movb 16(r2),ucb$b_devtype(r1) ;set type too.& movl (sp)+,r2 ;restore our register% brb 684$ ;exit, we got our deviceE; Notice we must pass the "small device" test since some devices haveH; less than 65000 blocks. We won't emulate device TYPE exactly, but will*; emulate device GEOMETRY with this logic.9688$:; addl2 #20,r2 ;pass to next entry of geoms table cmpl (r2)+,(r2)+ cmpl (r2)+,(r2)+ tstl (r2)+- brb 686$ ;go check for next device or end687$: movl (sp)+,r2 ;;;restore reg3687$:; test for small files$ cmpl hstfsz,#65530 ;"small" disks? bgtr 685$8 movw hstfsz,ucb$w_cylinders(r1) ;yep...save size in cyl1 movb #1,ucb$b_sectors(r1) ;and set 1 sector/trkB movb #1,ucb$b_tracks(r1) ;and 1 track/cyl (should be ok already) brw 684$ ;done with geometry685$:; Add other checks hereH; Make geometry like mdan: disks, that is, 32 sectors and 32 tracks/cyl.G; unless /sec64 switch was set. This facilitates random use as a switch/; over from md: type disks. Note 32 * 32 = 1024" MOVL HSTFSZ,R0 ;;; GET HOST SIZE; ASHL #-10,R0,R0 ;;; GET # CYLINDERS IN SIZE NOW as #/1024< MOVW R0,UCB$W_CYLINDERS(R1) ;;; SAVE IN UCB FOR REST OF VMS@ bicl2 #1023,ucb$l_maxblock(r1) ;ensure even number of cylinders1 movb #32,ucb$b_sectors(r1) ;set 32 sectors/track2 movb #32,ucb$b_tracks(r1) ;and 32 tracks/cylinder. brb 684$ ;This is the "large disk" default(; ;unless /sec64 sets 64 sect geom.6841$:4; If here, we are using the 64 sector/track geometryE bicl2 #63,ucb$l_maxblock(r1) ;make disk size a multiple of sect/trk684$: movl #8,vdprog4525$: pushl r0 pushl r1 pushl r27; Fill in filename as 1st 79 chars of what user sent us movab ddfnmd,r0 ;data address movl #79,r2 ;copy 79 bytes, addl #ucb$vdcontfil,r1 ;point at ucb offset457$: movb (r0)+,(r1)+ sobgtr r2,457$ ;copy the data clrb (r@ SAFETY013.A  [EVERHART.JTDEMO]ASNVDM6.MAR;28MHUA0)+ ;null terminate popl r2 popl r1 popl r0 tstl roflg ;user say readonly?? beql 5455$0 bisl #dev$m_swl,ucb$l_devchar(r1) ;set readonly5455$:5 BISW #UCB$M_ONLINE,UCB$W_STS(R1) ;;; FLAG ONLINE NOW2 BISW #UCB$M_VALID,UCB$W_STS(R1) ;;; AND VOL VALID. movzwl ucb$w_sts(r1),vdsts ;;; save VD status";;; THAT'S IT... SHOULD BE OK NOW. brb 200$455$:%; copy vd: stored name into prog area pushl r1 pushl r2$ movab repwrk,r0 ;;;get report area movl #80,r2 ;;;80 bytes max, addl2 #ucb$vdcontfil,r1 ;;;point at in area456$: movb (r1)+,(r0)+, beql 458$ ;;;on null terminator stop copy. ;;;(keeps old name junk from reappearing)" sobgtr r2,456$ ;;;copy the data458$: popl r2 popl r1200$: MOVL #SS$_NORMAL,R0BSH_XIT: PUSHL R07 JSB G^SCH$IOUNLOCK ;;; UNLOCK I/O DATABASE (DROP IPL) POPL R0 ;;; REMEMBER R0 RET ;;; BACK TO USER MODE NOW .END ADVDD*[EVERHART.JTDEMO]CLRREF.OBJ;1+, . / 4  - 0123KPWO56 )GE789GHJ4CLRREF002-014-APR-1992 19:07 VAX MACRO T5.2V-4MACRO CLRREF'- Clear Device Reference count CLRREFCTL$GL_CCBBASE CTL$GL_PCB DEV$M_ALL DEV$M_MNTLIB$GET_FOREIGN SMP$ACQUIRE SMP$GL_FLAGS SMP$RELEASE SYS$ASSIGN SYS$CMKRNL SYS$DASSGNSYS$EXIT SYS$SETPRVsys$system:sys.stb . ABS .I . BLANK .P$ABS$PPPPPPQ3$all$ddcuuuu:Q &QQ%3Device: Q&QQ1 =CLRREF& ߯߯߯LIB$GET_FOREIGNP PSYS$EXITЏ@  SYS$SETPRVP PSYS$EXIT|~yy SYS$ASSIGNP PSYS$EXITCTL$GL_CCBBASEP$ %s ?Y/N [N]$%.70s~ ?Y/N [N]Y------------------------------ SWING DCL SUBPROCESS -------------------------------------------------------------- SWING DCL SUBPROCESS --------------------------------$ %s$ %s %sPress any key Press any key Press any key Really execute %s ?Y/N [N]Y------------------------------ SWING DCL SUBPROCESS -------------------------------------------------------------- SWING DCL SUBPROCESS --------------------------------Logout when finished.EXE;.EXE;$foreign_command_tempforeign_command_temp$ foreign_command_temp.COM;.COM;$ @%sExecute %s as a command file ?Y/N [N]$ @%sPress any key Press any key Press any key SWING > disable broadcast trappingdisable broadcastsset broadcast trappingenable broadcastsFunction disabled for captive accountscan't spawn a child processscroll display areadisplay lineerase linedisplay linedrawing a linedisplay lineput chars nodedisplay linechange renditiondisplay linedraw chardisplay lineChange-value Restore-original-value Exit(& save changes) Quit Help ?!SWING_OPTIONS.INITIAL%sSWING_OPTIONS.INITIALerase displayuser options USER-DEFINABLE OPTIONS USER-DEFINABLE OPTIONS label border displayfuser optionspasteuser optionsunpasteuser optionserase displayuser optionsSWING COMMANDS FILEReally QUIT and lose any changes Y/N [N] ?Y%s%s %cFile format must be in the range 0 to 9SWING$SAVE:%sSWING_OPTIONS.INITIALwalq=3mbc=3sys$login:%sSWING_OPTIONS.INITIALwalq=3mbc=3cannot create file %sSaving definitions ...! ! SWING definitions file - this file contains the ! user definable options used by ! %s C SWING v3.7.41 (S.J.Brown, M.Akerberg, H.Flowers, F.Macrides & others)! , a directory manager tool. ! ! User %s ! ! The file should NOT be deleted ! ! ! %s %s%c %s Saved definitions ...SWING$SAVE:%sSWING_OPTIONS.INITIALrmbc=3sys$login:%sSWING_OPTIONS.INITIALrmbc=3Creating user definitions file ...Loading definitions ...SWING$SAVE:%srmbc=8mbf=2_000000_____000000__rmbc=8mbf=2000000]000000rmbc=8mbf=2rmbc=8mbf=2Unable to access saved directory information...%s %d %d %d %d %d %dLoading directory information...Save file is out of date...%s %d %d %d %d %d %dSaving %s directory information...SWING$SAVE:%swfop=cbtalq=8mbc=8mbf=2wfop=cbtalq=8mbc=8mbf=2wfop=cbtalq=8mbc=8mbf=2Unable to save directory information! ! SWING save file - this file contains the ! directory structure information used by ! %s, C SWING v3.7.41 (S.J.Brown, M.Akerberg, H.Flowers, F.Macrides & others)! a directory manager tool. ! ! User %s ! ! Root %s ! ! The file may be deleted if required. ! m %s %d %d %d %d %d %d c %s %d %d %d %d %d %d c %s %d %d %d %d %d %d s %s %d %d %d %d %d %d n %s%s]%s%s.%s[[000000[000000]SYS$DISKSYS$DISKsys$crelnmset defJanFebMarAprMayJunJulAugSepOctNovDeccreate virtual display displayfbig message init%.*s %02d %.3s %02d:%02d%sFunction disabled for captive accountsCreate Rename Delete Move pUrge Quit Help Files Locate ?!mark setmark setmark setmark setmark not setMark not foundRemove this structure from the display Y/N [N] ?YYou can't remove the only structure being displayedFunction disabled for captive accountsInput structure to insert [NONE] Directory %c%s%c not foundFunction disabled for captive accountsTwo options, N for a narrow listing, W for a wide listing [Narrow] ?WFunction disabled for captive accounts Input filename to edit ? [NONE]*.**.*SWINGRebuild this structure ? [Y=yes, A=rebuild all structures] [N] Invalid input - try againRebuild this directory structure Y/N [N] ?Y0 00:00:010 00:00:01sys$bintimset timersys$setimrset timersys$cantimcancel timer? PANIC - FAULTY GOODS ?? PANIC - FAULTY GOODS ?Error %d - %08xPress any key to continue...Press any key to continue...!! panic !!error code %d C SWING v3.7.41 (S.J.Brown, M.Akerberg, H.Flowers, F.Macrides & others)Please wait ...Please wait ... files so far %dTravel to new parent directory and select by pressing RETURN,or Q to QuitTravel to new parent, press RETURN to start copying, > to export,or Q to QuitContinual update mode ...No files matching [%s] in this [%c%s] directoryNo files not matching [%s] in this [%c%s] directoryNo files in this directory [%s]No directory files in this directory ... %s Non-ExistentChange protection on these directories Y/N [N] YChange ownership of these directories Y/N [N] YFailed to change %d filesSYS$DISKSYS$DISKsys$asignprotect a dir*.*;**.*;*io$_access directory lookupprotect a dirchanging protection on %schanging ownership on %sNo files selectedchange protection on the selected file Y/N [N] ? change protection on the %d selected files Y/N [N] ? change ownership of the selected file Y/N [N] ? change ownership of the %d selected files Y/N [N] ? YChanging protection on %sChanging ownership of %sFailed to change %d files? New file protection: Invalid inputReally change protection to %s Y/N [N] ?Y:,WREDOGSNew file owner ? [NO CHANGE] Change ownership to %s - [%o,%o] Y/N [N] ?Yput line of option dataput scroll line %sput dir info charsput scroll lineput filename charsput scroll lineDirect Indexed Relative Sequential* undefined * - ctg best try - contiguous.DIRext %-5d bkt %-3d gbc %-5d vlm %-5d dvl %-5dext %-5d bkt %-3d gbc %-5d vlm %-5dFixed-length, Variable-length, Fixed control, Undefined formatRMS stream formatStream with LFStream with CRmax %-3d bytes -FORTRAN carriage controlImplied carriage controlPrint file carriage controlNo spanned recordshdrs %d ptrs %-3d EXACT CYLDR LBNRVN %d/%d ??-???-?? %.7s%c%c ??-???-???? ??:?? %.17s (%c,%c,%c,%c)[%s] [???] [%05o,%05o] (%d,%d,%d)(S:%c,O:%c,G:%c,W:%c)Can't delete main directoryDelete these directories Y/N [N] ?YLAST CHANCE - Really delete these directories Y/N [N] ?Y[-]%s%s.dir;1*.*;*some files were not deleted - searching ...SYS$DISKSYS$DISKsys$asignsearch nodessys$dassgnsearch nodessome files were not deleted ...Directories and contents deletedNew directory name ? [NONE] .You can only create one directory at a time%c%s%c%s - can't create directory %s%s%s[.]directory %s%s%s already exists[.]Created %s%s%s[.]Not possibleNew directory name ? [NONE] [-]%s%s.dir;1[-]%s%s.dir;1%s - failed to rename %s%s%s[.]Cannot rename main directory%s%s.dir;1%s%s%s.dir;1%s - failed to move %s%s%s[.]abortedCannot move main directoryPurge these directories Y/N [N] ?YLAST CHANCE - Really purge these directories Y/N [N] ?Y*.*;*purgedGetting this_node via sys$getsyiwremote_initLNM$SYSTEM_TABLELNM$SYSTEM_TABLESYS$NODESYS$NODE::create virtual display display_remoteremote_initSYS$DISK: Function disabled for captive accountsNo files selectederase displayremote_files FILE EXPORT FILE EXPORT FILE IMPORT FILE IMPORT label border display_remoteremote_init NODE : DEVICE : DIRECTORY : FILENAME : * UNCHANGED * FILENAME : STATUS : pasteremote_files What now - C(opy), M(odify), Q(uit) ?No filename specified%s%s%s - failed to copy %sInvalid input%s%s%s%s%s - failed to copy %s Continue - Y(es), N(o) ? read keystrokeremote get optionSYS$DISKSYS$DISKsys$assignswing_filesEdit eXecute Copy Rename Delete Move pUrge Quit Help List ?!Quit ^D = user definable options Help ? = quick help screen $ = DCL!erase displayswing fileslabel border displayfswing filespasteswing filesCreate Rename Delete Move pUrge Quit Help Files Locate ?!sys$dassgnget_dir_files[ FILE MANAGER %s QUOTA %d USED %d FILE MANAGER excluding %s QUOTA %d USED %d FILE MANAGER %s FILE MANAGER excluding %s FILE MANAGER (DIRECTORIES ONLY) No files selectedDEFRAGMENT the selected files ? Y/N [N]YLAST CHANCE - really DEFRAGMENT the selected files ? Y/N [N]Ysys$dassgnnext_file_command[sys$assignnext_file_command*.*Function disabled for captive accountsEdit eXecute Copy Rename Delete Move pUrge Quit Help List ?!SWING COMMANDS FILEFunction disabled for captive accountsInput filename to edit ? [NONE]%s is not accessableFunction disabled for captive accounts%sParameters to pass? [NONE] Function disabled for captive accountsFunction disabled for captive accountsAt top of listFunction disabled for captive accountsAt bottom of listAt bottom of listAt bottom of listAt top of listAt top of listNo function to this key !key not definied]cannot allocate any more memorygrab_fileAll files selectedNo files selectedrename all %d selected files Y/N [N]YNew name for %s [NO CHANGE] %s - failed to rename %sNo files selectedd@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE;7>elete the selected file Y/N [N]delete the %d selected files Y/N [N]YLAST CHANCE - Really delete these files? Y/N [N]YLAST CHANCE - Really delete this file? Y/N [N]Y DELETING * STARTING * DELETING SYS$DISK DELETING DELETING * FINISHED * DELETING Press any key to continue...No files selectedCreate Quit [RETURN] Top Bottom Next page Previous page! %s%s%s%s%s - failed to move %s%s - failed to copy %smoved %sStay here? Y/N [N]YabortedEdit eXecute Copy Rename Delete Move pUrge Quit Help List ?!pastemove filesSorry, purges while files are excluded are not supported.Purge these files? Y/N [N]YLAST CHANCE - Really purge these files? Y/N [N]Y;*purgedSelective file specification [NONE]*.*;*%s - Invalid file specification%.*smatch against %s Y/N [N]Y%d additional files matching %s have been selected%d files matching %s have been deselected ;;New file specification to include [*.*] *.*New file specification to exclude [none] *.**.*;*%s - Invalid specification%.*s%.*s%c%spasteshow_broadcastsget_broadcast_messageshow_broadcastsgettimshow_broadcastsasctimshow_broadcasts----------------------------%s--------------------------------Press RETURN to continue, M for mail, P for phone Press RETURN to continue, M for mail, P for phone mail phone put_chars 1clear curor->->put_chars 1set cursorscroll display areaput file topscroll display areaput file bottomcurrent file no %-5d total files %-5d files selected %-5ddisplay format %d%-*.*sput charsrefresh filescreate virtual blank displayinit quota displaycreate virtual displayinit quota display DISK SUMMARY AND QUOTA DISK SUMMARY AND QUOTA label border displayfinit quota display[ USED : %-6d blocks (%4.2f%c) USED : %-6d blocks PERMANENT : %-6d blocks OVERDRAFT : %-6d blocks DEVICE : %s VOLUME : %s ACCESSES : %d ERRORS : %d Size : %4.2fmb Used : %4.2fmb (%4.2f%c) Free : %4.2fmb (%4.2f%c)Press any key to continue...Press any key to continue...SYS$DISKSYS$DISK%.*s SWING$SAVE:SNAPSHOT_XXXXXX.LISwfop=cbtmbc=3SYS$LOGIN:SNAPSHOT__XXXXXX.LISwfop=cbtmbc=3Cannot create snapshot file %sSYS$LOGIN:SNAPSHOT__XXXXXX.LIS SNAPSHOT SNAPSHOT Print the current file Y/N [N]Print the selected file Y/N [N]Print the %d selected files Y/N [N]Submit/Noprint the selected file Y/N [N]Submit/Noprint the %d selected files Y/N [N]YSYS$PRINTSYS$BATCHPrinter Queue [%s] ?Not a printer queue - print cancelledBatch Queue [%s] ?Notify user when completed Y/N [N] ?Y%s, FILE %s aborted%s, FILE %s%s has been queued for printing%s has been submitted Press RETURN to continue ... SWING$HLP:CSWING.HLBSWING$HLP:CSWING.HLBSYS$HELP:CSWING.HLBSYS$HELP:CSWING.HLBgetjpiinit helpCSWING.HLBHelp file CSWING.HLB not found in SWING$HLP, SYS$HELP or SWING image directoryhelpswing helpLNM$FILE_DEVSYS$DISKSYS$DISK%.*screate virtual display (blank)init copy windowcreate virtual displayinit copy window FILE COPY QUOTA %d USED %d label border disp_copyinit copy windowerase displaycopy windowFILES REMAINING: %dCURRENT FILE : %s[%s] %3.3d%cPress any key to continue...SWING$SAVE:%s_XXXXXX.LISSWING_LISTING_FILEwfop=cbtalq=8mbc=8SYS$LOGIN:%s_XXXXXX.LISSWING_LISTING_FILEwfop=cbtalq=8mbc=8Cannot create file %sCreating wide listing ...Creating narrow listing ...Directory Structure generated by %s Date of listing %s Statistics codes ================ A - blocks allocated to files in this directory C - count of files in this directory I - file fragmentation index, the average number of fragments per file M - maximum file size in blocks U - blocks used by files in this directory Root directory : %s %-*.*s%s%s %-*.*s%-*.*s%s%s A %d%-*.*s%s U %d%-*.*s%s C %d%-*.*s%s M %d%-*.*s%s I %.2f%-*.*s%s Structure written to %s @ change file protection ~ change file ownership C create a new directory D delete selected directories ! show directory statistics H help E,Q exit to current default dir O show broadcast messages^E edit a new file ^G create a listing of the current F,[CR] file manager (non-directories) directory structure^F file manager (directories only) K remove current directory I introduce another dir structure structure from the display L locate a file M move a directory R rename selected directory S rebuild directory structure U purge selected directories W show current default directory V show current SWING version ^D user definable options^W,^R repaint the screen < import files from another struc & show disk quota and summary * snapshot the screen=/# include/exclude files shown, /[{( set mark \]}) return to mark e.g. *.c, *.obj or test*.* % defragment selected directories N next page P previous page $ spawn DCL T top of display B bottom of display ? this menu Select option or to continue A - blocks allocated to files in directory C - count of files in directory D - the directory name G - grand statistical summary F - file manager = - file manager with partial file specification I - fragmentation index L - list the directory structure together with the statistical information M - the maximum file size Q - quit (see comment below) S - re-construct the statistical information U - blocks used by files in directory You can optionally quit and leave the stats on display, thus allowing cursor movement. To re-set the display back to the display of directory names, type `!' again. You can use the arrow keys, T(op), B(ottom), Next Screen or Prev Screen. This is the standard SWING cursor control. Select option or to continue @ change file protection ~ change file ownership +/- select/deselect files based on D delete selected files a partial file specification E edit current file^D user definable options ^E edit a new file A/Z select/deselect all files C copy selected files F reconstruct file list H help G - op on sel'd files L list (print) selected files M move selected files to another O show broadcast messages directory structure Q quit the file manager [CR],Y type current/selected file(s) S submit selected files to batch R rename selected files * snapshot the screen U purge this directory^W,^R repaint the screen X execute current file import/export files from <- -> change directory info format another file structure [SPACE_BAR] select/deselect current file =/# include/exclude files shown, % defragment selected files e.g. *.c, *.obj or test*.* [SELECT] next directory on the stack & show disk quota and summary [FIND] previous directory on the stack N next page P previous page $ spawn DCL T top file B last file ? this menu Select option or to continue ^D user definable options F reconstruct file list H help O show broadcast messages Q quit the file manager ^W,^R repaint the screen $ DCL & show disk quota and summary @ change file protection * snapshot the screen <- -> change directory info format N next page P previous page T top file B last file Select option or to continue C change the current definition R restore original value of the current entry Q quit and lose any changes E exit and save changes [SPACE_BAR] same as C * snapshot the screen T top of display B bottom of display N next screen P previous screen up-arrow up a line down-arrow down a line N.B. terminate the line with ! if you don't want the current file name (where appropriate) to be appended to the command N.B. you can then add an ^ if you don't want to be prompted to confirm the execution of the command you've defined for this key Select option or to continuecreate virtual displayinit menulabel border displayfmenu optionserase displaymenu optionsput line of menu optionmenu optionspaste virtual displaymenu optionsunpaste virtual displaymenu options FILE MANAGER OPTIONS FILE MANAGER (DIRECTORIES) OPTIONS DIRECTORY MANAGER OPTIONS USER-DEFINABLE OPTIONS DIRECTORY STATISTICS OPTIONS DEFRAGMENT these directories Y/N [N] ?YLAST CHANCE - Really DEFRAGMENT these directories Y/N [N] ?YSearching for fragmented filesSYS$DISKSYS$DISKsys$asigndefragment directoriesDEFRAGMENTATION finishedDEFRAGMENTATION finished - no fragmented files foundSearching %sCannot defragment files in the master file directoryAbort DEFRAGMENTATION Y/N [N] ?no fragmented files selected%s not accessible %s is empty %s is not fragmented %s has a version limit of %dFile not defragmented %s%s%s%sProcessing %sCreating backup copy%s - failed to copy %sSYS$DISKAbort DEFRAGMENTATION Y/N [N] ?Failure to assign channel1 to %sFailure to assign channel2 to %sCannot read %s - %sCannot read %s - %sCannot access file - %sCannot access file - %sCannot open %s for write - %sCannot open %s for write - %schannels assignedCannot truncate %s - %sCannot truncate %s - %struncatedCannot extend %s CBT - %sCannot extend %s CBT - %sextendedrestoring contentsCannot read file %s - %sCannot read file %s - %sCannot write to %s - %sCannot write to %s - %scopied %d blocksCannot deaccess %s - %sCannot deaccess %s - %sCannot mark %s for deletion - %sCannot mark %s for deletion - %sbackup deletedCannot deaccess file %s - %sCannot deaccess file %s - %sfile defragmentated create virtual displayinit log file window FILE DEFRAGMENTATION - PRESS ANY KEY TO HALT FILE DEFRAGMENTATION - PRESS ANY KEY TO HALT label border disp_log_fileinit log file windowDefragmentation finished%d files defragmentedFailed to defragment %d filesPress any key to continue...read keystroke, timeout 0check_inputcreate virtual displaydelete_screen_initcreate virtual blank displaydelete_screen_initSYS$DISKerase displaydelete_screen_on* STARTING UP *SYS$DISK QUOTA %d USED %d label border display_deletelabel_delete_screenFILE FILE %s Current Device: %s %sSize: %4.2fmb Used: %4.2fmb Free: %4.2fmb (%3.2f%c)Total files examined %dPurged successfully %dDeleted successfully %dFailed to purge %d filesFailed to delete %d filesSYS$DISKSYS$DISKsys$asigndelete_many_files PURGING [...]*.*;* PURGING %s DELETING [...]*.*;* DELETING SYS$DISK* FINISHED *Press any key to continue...;io$_access directory lookupdelete many more files;;SYS$DISKSYS$DISK%c%sDisplay statistics for these directories Y/N [N] ?YAlloc Count Dir-name Files Grand-total Idx List Max Quit Stats Used ?!SYS$DISKSYS$DISKsys$assigndirectory statisticsRe-construct any existing statistical information Y/N [N] ? YStatistics already enabled. To display statistics for a new sub-structure you must first of all quit from this option (Q to quit), then select the new node for the start of the statistics display. PRESS ANY KEY TO CONTINUETwo options, N for a narrow listing, W for a wide listing [Narrow] ?WDisplaying file countDisplaying total blocks allocatedDisplaying total blocks used*.*Alloc Count Dir-name Files Grand-total Idx List Max Quit Stats Used ?!SYS$DISKSYS$DISKsys$assigndirectory statisticsDisplaying fragmentation indexDisplaying maximum file sizeDisplaying directory namesRe-construct the statistical information Y/N [N] ? Y%s - statistics option [? for menu] Create Rename Delete Move pUrge Quit Help Files Locate ?!C %dM %dA %dU %dI %5.2fSearching %sSearching %s %d/%dSTATISTICS GRAND TOTALS: file count = %d, maximum file size = %d blocks, blocks allocated = %d, blocks used = %d, fragmentation index = %.2f PRESS ANY KEY TO CONTINUEDIRECTORY MANAGER - EDITOR OPTIONSYou have not defined an editor via ^D, so you maynow select either EDT, TPU or the editor of your choice[H]elp[E]dt [T]pu [O]therSelect Option [Return to previous screen]Edit %s Y/N [N]YEDTTPU%*.*s%sSWING COMMANDS FILE EDITEDTTPUFunction disabled for captive accountsFunction disabled for captive accountsInput name of editor to be used [None] ? Input name of editor to be used [None] ? sys$login:edtini.edtsys$login:edtini.edtsys$login:edtini.edt%s %s%s %s;*%.*s;%d.DIR;.DIR;[::::::::creating - - copying - - copying - - copying - - closingFile to locate [NONE] *.*;*%s - Invalid file specification%.*sLocate %s Y/N [N]YLocating %s ...Failed to locate %s ...;sys$asignsearch for the fileio$_access directory lookupsearch for the fileFound %s What now ? [See directory, Next file, Remain here, Quit]Locating %s ...Invalid Input ...%s is not accessabletype the selected file via most Y/N [N]type the %d selected files via most Y/N [N]Ytype the current file via most Y/N [N]Y%s is not accessable%s is not accessableCSWING$USERCOMMANDSWING$SAVE:MUNG_XXXXXX.LIS.wfop=cbtalq=8mbc=8SYS$LOGIN:MUNG_XXXXXX.LIS.wfop=cbtalq=8mbc=8Cannot create file %s%s %s is not accessableoperate on the selected file Y/N [N]operate on the %d selected files Y/N [N]Yoperate on the current file Y/N [N]Y%s %s is not accessable%s %s is not accessable$%s %s3.2.1FM%dswitch '+%s' not valid. MOST_HELPmost.doc_fmmostMOST_SWITCHES %s Set the environment variable 'MOST_HELP' to point to the most.doc_fm file. *%%MOST-W-NOFILES, File %s not found Failed to get terminal info.Failed to initialize the terminal.LNM$JOBLNM$JOBEMACS_PID%XMOST > Spawning MOST DCL SUBPROCESS (Logout when finished)...Failed to spawn. Spawn to execute system command failed. Press RETURN to resume MOST SYS$ERRORUnable to assign input channel. Unable to initialize input channel. Unable to set nowrap. Unable to get screen dimensions.Unable to restore terminal characteristics. ==Unable to save current terminal characteristics.Unable to restore starting terminal characteristics.Unable to restore wrap state.SYS$ERROR[%d;%drM  [%dM[%dL[%dC[%dD[%dA[%dB[%d;%dH[%dm [?3l[?3h MOST(%.*s)MOST_PROMPT Press ? or h for help if needed.MOST_PROMPTMOST - Press H for Help, Q to Quit(Standard Input)ctx=recmbf=8mbc=16rop=RAHshr=upi,get,putFile could not be o@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE;7y>9pened.File could Not be opened.File inserted.File already in window.File not found.File exists but not readable.Next file: Next file: cd: CWD: Unable to change directory.Find File: New file fetch cancelled. not found.         Top of Buffer.End of Buffer.Entire Buffer is in the window.End of buffer.Top of buffer.[?6h[?6l(%d,%d) %d%%[?6h%02X%02X[%dCUse Verbose mode to search for this string.Use Verbose and explicit Tab mode to search for this string.Search string not specified.%s NOT FOUND.MOST.DOC_FM Press H for command summary, Q to quit.MOST_PROMPTMOST - Press H for Help, Q to Quit%dYou are in wrap mode.You are in wrap mode.Function disabled for captive accounts.Sorry, you are not allowed to spawn in secure mode. Error re-initializing the terminal!!! Line: %d%: %dMark Set.Mark Set.Mark Set. Toggled to previous mark.Search disabled when Selective Indentation Display is setSearch disabled when Selective Indentation Display is setSearch /Search cancelledSearch disabled when Selective Indentation Display is setSearch \Search cancelledSorry, this command is disabled in secure mode.%dDisplay Width toggled to 132.Display Width toggled to 80.Width can only be toggled for 80 or 132 column windowsTPU %ssys$login:edtini.edtsys$login:edtini.edt%dEMACS_FILE_LINEEMACS_FILE_NAMEEMACS_FILE_NAMEEMACS_FILE_LINE$ SEDT %.*s -%d$ %.*s %.*sSorry, editing is disabled. Edit %.*s Y/N [N]MOST_EDITORMOST_EDITOREditor not defined.EMACSEDTTPUSEDT Error re-initializing the terminal!!! Unable to edit.File ring is empty.File ring has only one file.File fetch cancelledSearches now respect case.Searches no longer respect case.elete %s? [n]:File could not be deleted.File deleted.File not deleted.File deletion (+d) is not enabled. Toggle option (b i s t v w): Forced Binary Display mode on.Forced Binary Display mode off.Selective Indentation Display set at column %u. Disable Wrap to implement.Selective Indentation Display off. Precede the :O with a number to set.Squeeze Multiple Blank Lines on.Squeeze Multiple Blank Lines off.Display Tabs as ^I off.Display Tabs as ^I on. Toggle Verbose mode to implement.Verbose (display control chars) mode on.Verbose (display control chars) mode off.Wrapping on. Selective Identation Display suppressed.Wrapping off. Selective Identation Display implemented.Options not modified.Cmd: Extended (system) command cancelled.Extended (system) command cancelled.cdSorry, you cannot change the default directory in secure mode.quitexitSorry, this function is disabled. Error re-initializing the terminal!!! Starred commands may be repeated 'n' times by preceding the command with a number. EDT-style commands may be substituted. GOLD (Gd) is PF1 or ^X (numbers after Gd may be entered on the keypad or keyboard).N,NEXT *Next page DOWN,D,J *Down one line T Top of fileP,PREV *Previous page UP,U,K *Up one line B Bottom of file>,RIGHT *59 columns Right [#]G Go to line # W toggle Width<,LEFT *59 columns Left [#]% go to percent # E invoke EditorQ,X,^Z Quit from MOST PF2,H,? quick Help $ spawn to VMS ^R,^W Redraw the screen GdPF1,GdH full Help GdRETURN system command / *search FORWARD for a string PF3,R *Repeat current search \ *search REVERSE for a string KP4 set FORWARD:C toggle Case-sensitive search KP5 set REVERSE^G abandon prompt (cancel) SELECT,M set Mark^U erase prompt string INSERT,. set mark and go to previous mark:D Delete file (if +d set) (if present, for toggling pages)Gd2 split this window in half O,GdO *move to Other window :N skip to Next file in the file ring Gd0 delete this window (UP/DOWN arrow keys cycle ring) Gd1 delete all other windowsGdG Get a new file (if not SecureMode) L toggle window Lock[#]:O toggle Options: b Binary<->ASCII i skip lines Indented > # columns, s Squeeze multiple blank lines t show Tabs as ^I v show ^chars, w Wrapping for current window (v must be set for t to be set)Press RETURN for more...Press RETURN to continue.Set the environment variable 'MOST_HELP' to point to the most.doc_fm file.You are reading the Full Help file!mostmost -hFull Help fetch failed. Error re-initializing the terminal!!! MOST.DOC_FM Use GOLD 0 to delete this window, H for Quick Help You are reading the Full Help file!Too many windows. Cannot insert Full Help.   "$&(*,.02468:<>@BDFHJLNPRTVXfile manager initial display format (0-9) : Zprinter queue: \batch queue : fswing editor : pkeypad PF1 : qkeypad PF2 : rkeypad PF3 : skeypad PF4 : t keypad 9 : u keypad 8 : v keypad 7 : w keypad 6 : x keypad 5 : ykeypad 4 : zkeypad 3 : {keypad 2 : |keypad 1 : }keypad 0 : ~keypad minus : keypad comma : keypad enter : keypad period: func. key F7 :  func. key F8 : !func. key F9 : "func. key F10: #func. key F11: $func. key @ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE;7N>XF12: %func. key F13: &func. key F14: 'func. key F15: (func. key F16: )func. key F17: *func. key F18: +func. key F19: ,func. key F20: $(,048<@DHLP*A " * " p z{Y{{{{7|||}j}k}}} ~V~~~~9} Z 4D ,0D ,nnnn ooooonnnnnD ,RS3StSSSSTTTZTTTTTT8U{U|UUVVVVsPtPuPPPPQMQxQQQQ#R$RYRZR[RRRRRRnXXXXXXXXXXLL,p<`XlJJ9K}KKK=LLLMcMMM-NxNN OUOOOO8P9P @ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE;7`>wn/nAAA'BZBBB0CwCCCIDDD)EkEEFFRFFFkn0LL@tL@tRWEDRWEDRWEDRWEDnnpt(X0tXXXXXXXXXX,p<`<,,8P,\`<,,8P,n<<eeeeeefKfLfMfTf[fbfjfkfffFGHGqGGGH1HmHHHH>IvIwIII4J5JvJJJn @ @^)Y TWVk'PĒư <i ޭޭԩ ||~?i|~ PRRRvѭRvˏ:n|:;ެUe1Se1ެWg[ XZCkPCP1hhhAߦ|: Mߦ|: Sߦ|; Yߦ|_ߦ|ߦ|qhth:Ģhh h:<hph;ĉhĽhhh8hihěhhCkPCP h-CkP0CP6nSSPPe!RЭQP@bAb֭PPeeZ3CkP6CP7:SSPPe RЭQP@bAb֭PPeeZ9CkP<CP7:SSPPe RЭQP@bAb֭PPeeZ?CkPBCP7;SSPPe RЭQP@bAb֭PPeeZZSSSe1X<~9$WެUe1e/SRЭP@cbEb֭ѭeXXP1W1UPHxWSCRbԭbeѭP3PSP@,xWPP@֭xWP@eѭPxWRBePWXXeXPW1{W',PG! fFQĸQѬ$1 ԭW1$\J[ZvXxUE[199kPSxRBkPS/"xRB"ĺߦ|jߦ|hk[ PG""ߦ|jߦ|h-PE P"xRB"ߦ|jߦ|h֭ѭW1-ƨ  nR\ \ P^WXUݬjScc<[cc>]cScSݬ8$ԭ|~|~߭P PeePT߭}TT TJ1VPfP@ݬc.c[ s.c[c.`]SPS`*^ԭ|~|~߭fP fPeePR߭RR1`R1TRJ1HRRSRTc!dPPP@hP d~Pd0ЬTTPR2BdPSSBd RR~CΨ^?XdYWVZ(@@ꞭЬS!͸;4;%ͪihXͪ\X?;Pf;f|~2ݬ PX<PTnѭ0 Pѭ ֭1rPѭ խ1bݭ,PrЭP2RBͪ i1:ư9 Ʋ91'ZЬTͪͪFaͪ@ͪͪKPPS!ZS#S'ݬSK1 ^W:U{RµSPµRµdЬPµPR{ {R߲l2m m{mzS>TdScm~PS1õdԠ,õS`P|^UVݬ1PP eP1ߥ lSެT[RSPS@b[SRЬTBdllTߥ }T1R T0Φp ݬߦp-[yRK\P1ߥ& l k8]f1)PµR<~PPRPʼnߥi@XRxxR\ScxR\cc ߥLEP@xRcxR\\\, fx{'P,UxRR\\CP9xPߥNߦpP1ߥVxR\Pq|Sߥ^CpP(TRTSPS@pBjߥ^CpPSߥ`DjzRbTCpDpjbgjߦpbwP PPP kwbw P Zwj jj2wR@ScPQRbi~QCR-µcԠ,µR1$'D.Pp:2P ^i yi6divR=MScRbDi~PRa-µcԠ,µR2P^]\<~P̉߬i}U ^Spݬ#PRߣph-NRPP^VTTޭޭ蛏dޭޭޭ|ЏYݬ+RRP3B:B#B[BRRPSެRbSP,UCe[CSUSPP8P1|Y1wԭmR蟭bP ƙbPdƦd߭P5խ0, 'ЭP@ŏP@Uխ1WXPŏUSCgPRR@RPSP@.RPSP@] RSRB:ݬ>PeYaPŏURBScgPRP@:cgPRP@] ƳchŏUP@Rbhb|PYUU1>խݬPYYP ^QЬP A0РRЬSC SQA0SQA0S ^ެSЬQcP@ cP@0cP@0СRcSC SQA0SQA0S^nTeRԭ&nbR֭ѭn߭߭mV\ѭ\TPm\\\d|~ݭR bR߭߭mP\\ m}m*P߭߭Qmf8m ^mSfdRQެPQ` PbRQQ`$mPP PP խ1cPѭP1Ѭ ЬQAP'bP A l߬ ߭߭߭߭lPP,ߣcP8P䚏P߭߭[lpBlP ^P߭߭*l?$^ޭ|~߭|~<%߭PRP R|~߭<߭PRP R{|~?֭߭jPRP RSP2PRRP<L^(Pͬ(`LͬPͭЏͰLЬUUUhPL`MPNXVͬ0PЬTԤdU&UPЬTvdxz^TЬP`QA+A. A]]AQP@QAݬdݬߤ ݬQA)PAPP: P[P]_AQAЬRR=ScߤRcߤRcЬ RR$ߤ%Rc'R|^#USԭX\X߭PPߥ?ߥ3PUMЭRBmߥHFmߥQެVffnPRխfTBd~qPBdRR|L^_V(Puͬ(`mLЬݬPͬPͭЏͰLTL`MPNXVͬ0P+P PߦV__PP͇͘S͈RRS͉RRS~ߦjݬxP^ެRbNPQТPA`!QPA PQP|^S Uݬ nnRnPQPA!QPA PQPPR!VBc^1PVݬߣ^Td^RbPOWߣ0ߣo^df^bPO2ߣ7M^dD^bPOߣE+^dլ ߣV^LPP߭ffߣXPeíef^fpfV]Pݬo]pW]ERbPeD]ef+]լ kbPP߭Fe|~e߭|~bPe-e Xޭ\Xse zeNe`e߭8eP<0^SfRЬP`,P<Q\RW@\KPP߭d)d߭YPbîbdA[߭[Pb[bud߭߭BdTdЬTd1:`UeP ߭߭TePbTbP$1["$[PPPT[߭ZePZ &ePb;bMPZ1gePm ߭߭TePbTbPTs|Z}1PTydZe|~c߭|~߭^q\a#PPME^AR2`aP  PEP ^ R.aPPDݬݬDʫ`P  PDP^ݬݬ< P^TRԭЬS(|~|~߭|~|~SPbSb &P&2H;PݬPbЬb|~|~߭|~|~ P YHխ ѭP ߭ ^1TWլ 3߬|~߭߭_PߤdPyC_߭߬_Pߤ,ߤ!PACެYiRբ,=߭߬߭߬O_P1RߤHߤ9SB1@PSiUBX0V SPPC1iRbPCCP' P߭|~߭߬iRCPYPgCPYg^P ߤdߤUPh߭ ߭߭߭߬v^P ĂߤqPhC0bSP PfUԭfffffԭ|~߭߬߭^LP ęďPhVS]U^RԭpXޢp\X߭ݬPԭЭP@ppP^ﱒRԭpXޢp\X߭ݬPԭЭP@pޢpP ^1RғS﯈T﬈UVWX|Ydf\EbeQTP `P'QߢkߢhߢRPP(P@SSm\PPB@߭ԭ߭œPcµcW\PP?լ7߭߭ \\\PP?+ݬDՕլ,[[PD Pc?1[P(P=?ݬ ݬ}TՆU҆VÆWstXצּY^WYP6PXX? PXXX 1XPP V?PP 1P ,~?PPB1PB2<<?PP1P*pH1P?P1P5m1PIu1~P 1q&PPPPل着1;P1*PפּPﮄP1ﳉQQPP!QQyQsD151PIPJP1 UP6P0P) 1PPP1lPƩ1WP1I QQ΃߈PQPPPﺃﱃ1P1`1YuJ>P1PPYPYJDYP1*?PRVŏVP@aTd@haScƼª│UedcVcP–e*ªe1 ݬXP1W?1 ^SŏS\L`RbWS߭L߭RPRŏS\L\`P`¦L`P–SŏS\L2`\l^|TŏRBS`ScPU|VcB_w߭B_P`߭ݬ|WPŏQA_P`WUA_PVV|߭)WĄ߭߭PP߭|^VЬPŏRBc_߭B_P`)B_Rb^~Ɗ߭@ެUŏeSC^TdkPR߭^RPPP RORBP~߭d^<߭C^)eSŏRB^0 B^96ƍE=B^B^ЬPݥPЬTŏTP@^RbSvŏTUE=^E]QaPROPRUP@^^%ŏTP@]QaRP@]SPŏTPRP@] RެRbЬSSŏbRB]PÖ ê|^ެVŏfP@]Td@b]ScЬRªﵤUedcfcP–e ªe<^ RµWP ķPUp P   yPU%II:P.EUDScHUc}Uc©¡UcUcUcUc$Uc'UcKUcSŏS\Ll[\l1ƶTNUdŏS\LL[QUdL4[P`#L,[P`^~L\[XUdLI[^UdŏS\L1[L{[SŏS\LZ\l1jUb[[|C'^\[-K\e|\x\|']\\\r|ֵ&]|õUZ\\0\9 \\0\݀PΤ^CVƆxͫƞƜͫPXTƱƤͫdͫPX)Ѭ#s8PPtWŏWP@FYRbXP~߭P X1!R߭RP"B  BPR߭RP߭ŏWRBYzWUŏUP@XRbSwPŏUTDXBDXRbPQOPQTP@X^%ŏUP@nXRbQP@XSPŏUPQP@X Q߭ŏWRBXγW1DYZz+WRR0R9 RR0RE~^X{X7y(PY^XղX y²(Y YCy'YYYy~YXykV\\0\9 \\0\}^ŏP@VP`PެTŏdSCVCeVScPRUŏdSRSP@V^"ŏP@5VQaRP@gVPŏdPRP@QV PR^[UЬR\eߥߥߥ%PW1+ߥ\3P1}1 |Rߥ%B*P*PSQSRPR@Aߥ%BPRߥ(CSߥ1BְPPRߥ1BPBCߥ<ߥ6ߥ4TPW]TެScR\[QTPT@\[ߥBЬSD\hVfTRB\ߥJ\fb\fWBߥYߥSߥQЬR\ׯPW&ߥgߥaߥ_\PW ߥmG3PW~PP!ԭഭ߭ЬS\|ԭ|ԭ߭߭߭߭߭߭ŝ 3PP1PP|PPrŲ |PcPRcRcR!cRcRcRWc0W PW02P ^Rݬ~zPP!5|ԭ|ԭ߭߭߭߭߭߭ "SS!ScJPQ!ЬPQ#ݬQC1PSsH7PQ!ЬPQ'ݬQSnPP<^wSլ/ЬP\?? 2ЬP\({P LF@86PU1ЬR\P \hb\TRЬR\PU=\Ä~xpn\iPUÊ/PïUVRbòUbUb Ub^Ub}UbwÀUbÍUbЬT\ÐUbÝUbàUbUbdQ2~2~2~2!~2~2~U bUdUլ SP ^}SЬR+Q>2~2~2~2!~2~2~ݬ Aݬ+ЬR#Q>2~2~2~2!~2~2~ݬ ݬ#bЬR'QG2~2~2~2!~2~2~ݬ ݬ''.ݬP^TЬRݬdb'P'RЬSSdb' S'# Sߤj#ЬR#lݬߤ?#Rݮdb"' ݮ'8#"ݮߤ#P ^SЬRߣ bRnݮcb' n'Ͼ#"ݮߣ{#ϖ<^?U{Tݬ9ߥPaߥPOR[PRPR@[RSCBRSRC]PRPR@]P-PݬSSP1PC[1CGGFP1ERbPrsG0bP ߥ!bPdޥ*dyP1P1(ߥ>ߥ3Px&PSӧSP1K2P^yBЬRЬSЬ TR3S#3S73TS')B ^ЬP1#RЬSTR3S#S73TS'ݬЬR73լ C'RЬSTR3S#uS73TTS'Q^qSլSQQTTQRPRT^AaASPUAPFAP S^8SPqQ-AQQPAPUARP AP9Q#80@@RP@PNqP@PP7P@Q@Q;QTP@P$Q @@TP@P@:PP^R2x\XPXB߭\߭߭yPߢPߢ0P#^qRw\rpX:XB߭\߭߭PߢPߢ0Px#\եT߭߭?\ԥ\T^EwRR\TE?\ ,^SwRЬP`1v[CPJPP1oX:X蚏B߭\߭߭-PߣPߣ0P"\T߭߭>\\T>߭߭\{߭|~ݬ~PbЬb\YPT >\R>y߭߭=ݬPbЬb=z=!A=ͣPT~=\ãP ^QuR߭߭`=qݬPbЬ<=U^2^^t\ p<`^OUtTޭSP߭ݠݠРRB$ݠ ߥuSߤpݬP ߭PP߭RbЬ ݬߤpblqbݬP~ߥa߭v߭XPQQP AQQPSq,PSPC CSqPSPRqRPPBqBRqߠRP ߥfP ߭t;hhdde;v߬hh߭yPdޭd9;R; ^SrR؟P߭ΟݠݠРQA$ݠ ߣuݬ^WtV@DEz:S:RC:S:RCRbPզp119cPf:R,R\mSm1R bR'SgFPP(RBD1E71լ լԬ1 PYY? 4PYY1.2YRR1RPP{ T  ` XH Xl@ H p  tXl@ H p  tx P?PP1P H <  P?PP71tP7P 1]~?PլE8 1PF8SG8RC71լ8 1wP8S8RCﷸ1Xլ7~ 1CPiߧz1+P7S7RCߧ*Dߧ+1P7S7RC1z7S{7RC;1^7S_7RCRb<f<ߧ}1P7S7RCRbu>&c>dž1BP6S6RCRb9?'?pǏQ1P6S6RCRb<<0ǘ1P;Xhq;l^P=XhQ=L>P>Xh1>,Pb1PBd91P51Pլ6 b;լ1Ѭ U1Pi1Pլ21PK81pլ11[P1Lլ1r17P_1(լ1N1P1Pլ1&1PX~ P1;P1R1SS1RCRb401S11RCOc\1n@1S 1RCR¼1Iլ0n13P2YR0R%a1Pլ0F1 P0S0RCR0S0RCvPt1լU01PV0SW0RCR>0S?0RCvP$1լ01kPլ P/S/RCRcRN'[12D/S/RCR¼ؔ1 լ/21PH/S/RC-N1PլU/1PI1Pլ-/1P<1Pլ /1oP1:1bPլ.1KP>3Rµ1TOy PRR 1%1RA1RPPA8                                                    >?PPs1j2RR%P\R\\@µRrDyǏZ1 P8PǐE1PǑ1PǫmP1{i-RТ,R\S-RТ,RR\\ʺѾ1cPt,R1P,TRU,R,Rբ4,SP,,RТ,ТRC,RբU,T, z,p,1P 1PtZ,Rb1RT=,U8,.,۾-,Rb0,S,,Rb ,bRC+RbU+T+I ++t1t+Sc+RB1++;+ |+Pr+h+n+Rbf+X+0N+PO+R@ -.+(++!+Rb++ +*1L*w1< 12P*T!RTRtTtѦt1*TJ *!R*RRw*q*Po*PRբ,U*O*|PM*?*P6*S7*RC$ * *ﺼ1cP)1U)T ))))P)PRբ,))ӮP))P)S)RC$ o)e)1PU)1tD):)9)RbEb-))!)RbR,բ,'P)Rb)((RbRբ,((S(RC 3( ((T1t((7XRRt(n(f(`(RR`(RV(P(H(RkP<(PRբ, *(((CP((P'S'RC 凉1BP'15t'Rբ1!''`'RТ'''RТR0բ,+'RТ'o'u'Rբ ТRբ,X' G'='1PլP/լPլ>Pլ&1WP2Y~_P1?&j1/P ^ﭵS_R֢|€&P€/Ѣ|)*\ P̹d&mP̵\Ѣ|*>&GPaPbbXPP <~< PP 2P ^S^RPbbXPPO <~ PP P^E\<~hP%PP,^TN^SPЬÀԣ|yUXrUPccXPP<~ PPQ߭߭z$|~|~?^$sPWW0 1ÀVУ|UÀ*t(nÀ)ѣ|#}(RP¹ RkµRVÀU|X ѣ|^PPccXP @ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE;7>Pn<~ P1P<1R#1* 1<~hP%PV' 2WP2P^-\Rt"\1"T\S"\"\լ4"PP""\Ь"Ь\@"\լS"T" v"l"^[RtZ"\l1\T="S8"."۴-"\l0"P""\l "l\@!\lS!T!I !!tP ^ZRt!SwS!F!!P!\@*v!Pv!\Ьm![!a!\@ A!7!P&!1S!ij !! !\Ь! . P \@ C-  \Ь  ?Pr  P^YRtn P`Z \L1H > 5  , P"   \l  0P\@ W-\l SP'P^XRt\լ1i_ ^\ЬUCI\Ь\0լ,+6\Ь-!\լ Ь\լ,k ^XRto\lEl\l\,լ,'P\l|\l\լ,hbPc\@ B 9/ܰP^IWRtﳰhN\\\\\PP\լ,QNPP\\Q\\P\\Q\\PP\\x\oiaQPUGP>P?\@!P^=VRt璘\M\\\\\\ۡPP\լ, ﳡPvPnPo\@Q|^]TUSk P_ Ь+j߭߭(߭ ߭7P1߭߭ځRdPcޤc߭Á R߭P1G߭߭i߭P1!߭߭߭gߤvRbPcޤc߭OUeЬVVVߤ4VWIbPc=c߭e߭|~ݬ bPcЬ c߭e߭|~ݬbPcЬc߭e߭|~VPbPcVPc߭eߤDbPcޤEc߭eߤFbPcޤcc߭e+VbĀwѬݬČgݬ YݬO~ݬ0^!TSݬTdPԭ߭߭߭߭Џ߭|~߭߭ݬdPЬ  Xޭأ\X[ l" ЭP@R߭dRP$PB~|~PBR߭O~RPݬ߭A~R߭1~RP"B~<~PBR߭~RP߭~P߭}P߭߭}PPP^dURT ߥ:߭߭j~ԭެWgSS}VfPS9߭|~Џ߭߬ ݬfPЬ QXޭ\X ~ЭRBߥ߭S}RSfRP%SBc~ }PBcRS|RPᕭPP^ЬP`ݬ P^,j >|^߭}^\^\K^ѩRݬ[56|(^\{^\c^a\E ^ISЬR.¼- {.¼] {s P^RPG H{: z^\̱^Rݬ z S2ez ^E\\ \}\\sme߭4{CSDRSRE\R\\S\ ݦ1PSRc|EPRP\\S\FP \R\9]EQQPP\\\Q\\ \\s/SR)RPBԭ߭Zz ^ SNTԤpPWMVWsFUUլߣ0cPRPߣaߣ2PRRUS1լ?)PR ߭PRRUMUݭݬ<~U^WVﳘP kaդp!ݤpߣcy zxl wߣ}Π^ﻧWMVԭ|~߭ߧ~xPfLJfPPǚǐP(@\d͢@͢ЬSͬͮ!Ͱԭԭ|~X\X߭ǨwPfǮf|~2ݭ PǴPѭ0 ݭPѭ  Ͳ1vPѭ*Ͳ1eݭ;PݭPЭRBլ vPv2լ %?<~ͦݭ~P1֦p1PݬͦݭP1֦p1^ЬR3*7%HPx 73泥ݬݬ<~R73# 'PЬP#ݬݬ ~<~#_լ "ЬP'ݬݬݬ <~'8P| ^ TJS;RuPլ 0R#YZuCRUDEu.PRċ)*uRļuPPլ ?PP߭YPP:RԣpR1tV,UPªvլ =fe?<~t?|P<֣p7P WfNeݭt{?<}P֣pbR1|գp#ݣp&t B sR/2P^TR?X߭<~@߭sP~߭CPP?߭VPYP߭<~߭gXYsGPPP ^WUЬTVT sPXSX?PCd~ sP?,߭ǒqrP VRVBdSSXĔFdRެSB1XRPR@hPPG7KKKKKKK?KKKGKKK/'P?P VPVPV PVPPk|^T@UЬPPߥpkߥpݬjЬQ<~~<|~İHjHݬjЬQ\ݬh.mݬhݬrhŎݬbhЬRmRR RR7ЬRŠShU<ĀQ2ePQQQPQf~Ǎñd@ñdVURǐñedR<ЬT<ĀQ2BhPQQQPQBi~ǒñ?d@ñGdRRǕñdR <ЬT<ĀQ2BhPQQQPQBi~Ǘñc@ñcRR ǚñcR<ЬT<ĀQ2BhPQQQPQBi~ǜñc@ñcRRǟñucñnnUTnicPRRTNݮJcRRTñP|(^凌T9U|~Xޭܥ\X?ЬVƢPSS2RB߭ġbCS!+VQ<~~<|~İHbHbĨbbP9nnVSnybPRRS+NݮZbRRSMbPP ^S8RЬQ<~~<|~ðH&bHP|^mS7UЬQhT2dPPPPWPe~ЬRRLa@bVaUTSݬ#aS9<T2ChPPPPTPCi~ЬRR`@baSSݬ`S 9<T2ChPPPPTPCi~ЬRR`@b`SS ݬ`S9<T2ChPPPPTPCi~ЬRRf`@bp`SSݬ?`^ެSЬQcP@R'TcP@PT#)УQЬPРЬPAЬQЬPAPT'' ^ЬQЬPAR#PЬ #Ь S_P #'S##R'P;y_P('R'Ь P'PQ_PЬ P''P'<^Ь RЬP@URPЬRBS'TRQAQ T#PРPBBQT''Uݬݬ^3SD6X cPPR@ߣ?ߣmPߣyߣA\P3\P]R@略 A7PÃ'P(R@Rߣ{<^Êe~PR@APР,R¹PR@W#VYh]P1Ð#|~߭ü]PhhPPPݭWlݭPP￸1ﱸ PRBT'URQAQ U#PРPBBQU''PR@,QPPРPAWaAW`\bV_YVLYIkFQV:P`2QQVPR@RŲ<Π^cSt3U1X~߭>P1[߭p[P]PP\@Tdͣ[]~߭.Éͣ[P@ͣ[ͣq[Peͣe[PRR@R7ö߭óRjPÐ:;[-fPR,߭ø  [5P߭ZE\Ь,\̹߭kP\ͣlZͣ̉!\GIr0R-\R\2 PR&P\lPPRPE<Μ^?T1X~߭P1 \RLS#ͣYRb2߭*ͣbͣͣͣ_P4YVPP9ZbQP\Ь,\̹RͣYRP#Bͣ.BͣRͣXRPͣ߭X߭SkRP@Q'UP\L\ U#PТR@@\U''rl\mRL,XRPV\ЬM;A\BS*,Uﲀ8[PP\@S@\l[ ^T1KPPWsXX\LRolP1yGPH\@VbQWBWPQ A.]AQ\LPQ}xW@WScfVċfĄc\P6İĭPٓPĒc1Pj\Ь,\̹Ч,\̹W\XQAS'UQP@PU#Ь\AAPU''R 7!~IJ Pij5QPPP\@R|}\luc]||WECPĻ^RP\@_PA1P.3~P\@9WP\@ -^$Se,Rϰޭ߭ޭԭ۰ޭ߭ޭԭ˔|~|~0Pߣ"cPF߭ߣPTPޣY ߣ.TPbޣ?bЏ߭߭SPT0TP@: ߣb߭STP@: ߣd߭S߭ݬS^%Rf+TL߭ߤt߭߭TPŒߢfPߤxߤx|>Sog˜XV#¡ЬSSRP@c8Rp| ^yT*R߬߬ ߢtSݬRUePbЬbߢtSVf߬߬ߢtSЬSSeP$߭ԭ߭SePbSbߢtfPԭ߭ԭ߭ģePbĥbt<^NJT*SħPѬ eլP߭Rգp1ЬRLߣt߭߭RPČߤfP'ߣxߣx}QĘWġR/QP@b{=Qpߣt'RPPѬ e;PPc cߣtQPU9PPPc%cߣtQPUUO3U[|RbjbybѬ eėĈbPMĥbĴߣtPPPLUߣtxPߣtݮOPЮ ?0EPPČ}PRRRhPPR* J1uߣtO2PPC.l444444444444l44444444444444444l444444444444l1P?PNbNQNѬ eݬ51Pq\ߣtNݮMPcЮcߣtN O1! MݬMd~益PUU1U`PxyMk ߣt)Nݮ,MPcЮcߣtN;NU2PE_PUPUߣtMULPcUcߣtMkM\1FߣtM߭3MP0ߣt.Mݮ1LPcЮcߣt M@MARb-b bѬ d1b1 1ߣtLݮ KPcЮ cߣtiL?L1 ^9#R߭߭ߢt,L߭ݬ1KPbЬbt L=L^S"RԭЏ߬  @ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE;7<>ߢtKݬJTdPЬ ߢt߭|~߭?dPb@bX\XQ bKЭP@dPP@  @P߬ ߬ߢt7K3JPbbߢtKJ^T!S)Y*V1IXnJ[IJJZƪ1sݬAhݬFhIPRB;BRe~YYdPWWPWPUߣtkUPcUcߣtj1PWЅPKh ߣtkݮPcЮcߣt\WPbUߣtT\P1/cTݬ1ݬJ11PѬ1PjPlPRЬRc>ԭ> [=ZaYѮ:BЬUTޣpQaU#TPP TP@pУpRP@pR QTУpRRWQVUpTdV2U UP@pR.Qա ЭP@pRQTUУpRRWW  PԼ ޮRgݮ)=PѭP~~ݮO~ ݮ( 0PԭP `P'ݮ íPRRB dխ W1(P ȸȭPkgjc<@|~vc<PcfcPP Pk/cWiTǼj/cWi-W߼JZhO;WVUpTdV'UQQPQP@pApQQüRTUѭ1PѬE1P1PՖ1PvPxݬЬTTiRxVRTݬr( T5P2s&1Ѭ)1PЬR¼͉:RP1ЬT/PUTЬVV~1T͉ļ9:TV4/TV81WTBPѬ[14ЬR¼͉9RP1ЬT/PUTЬVV1T͉ļm9TVh/TVl1TvPwЬT/MbTݬs) T6PѮ^111'Pi Rݬݬ&1ݬP11ѬD1P U8ЬR-ÓTrPȂgPTXȴȄPT@¼͉7ȶ͉7͉~RpȹPTTݬݬ 1ݬ߻Pf;1z1P Y7ȡlݬݬ_1~ݬhPZRªbRO)0"1:PѬI1"PЬTT; P1 / 6Tݬ1TコPѬ5ֹ1P E6ЬRRPTT(Rݬ@1_RJPT1JPѬW10# 5ЬRRPTT(Rݬ1RιPT1PѬ:۸1߼31Ѭﵸ1PX~ȢUP1nfP1\ЬRb}Rݬ[10RPѬ41  PRA4PZ z4RЬRb7}Rݬu1RPuR/04"[1\Ѭm1FP"7 P$ЬRRKP1 3Rݬ1RѷPPЬRRhP1J3Rݬ\1{RfPѬ1X}1BP32PPR2X~ǵP |2k2gݬݬ}1ݬPѬ1xVk2ЬRRP1IRݬY1.RP R ªbR1PѬh 1P1PPe~߼P1RݬݬX1wݬaPѬz1SP~Eu1:P+Pd~߼P1 Rݬݬ1ݬѴPE&RRRRZ1P|~K1l﹋1qѬ1ZP{}1BP߼,.11#PPRªªPª1PRRKTTRR TTTW1|~K1Ȣ﹊1qERFR/ TR5R/R(11ȴ]<1RRR|~1[18 TTRTRRRU1P1yVN|~1^Ph1A3P PRЬRc-P  1 1P0\1zP|PRЮWޮYUŏURBoRbxPŏURBYTdWKB,P*VBPŏURB%TdݮBX_PVUŏUP@RbVVRݬݬ 1P3ԯ1 ^gRSŏSP@P`rPŏSP@QaD@,PQPŏSP@OQaݬ@^SŏSP@%P`P^fR~+PQlQQPQQ#ݬE+ݬPQ+PPE%ゥ ^ЬScRS*RSP^=\ P̪l\!^fR\̪l\OE^RQެPQ` bRQQ`RPP<H^eSRbPR+RtQR*Ù@PPJYR1!*U *Tª1}ÛeX~߭PU߭JdJJ/P*PfPø僚e֬ JdbR1r2P<^dTe߼P)R?)RP$PB[BR)RPDY;R}PR(PRغ()ǺPP\+iPPč^SPPďXħyĚ[R1[UP^$(ª1IJЬPtdP`Ļ eբbbbbPТbSR'SR/bRePbRR12rZ(_ۜ\ZP^KbTdZ=R4wPn[ЬWVѬ 着o}'ЬXXPUjUPSQRCYX1U>1iWH&Js5&R5"&RP1PB:2RP@>@1%e~gR%RP1XU XU>X1U 1RbbRPѬ6R1%Uª1gleiqe<%P@;@PѬE+PSe~VV~PSSXѬ"SbPvҶ$ SaPčﰶ$ܧ.PѬĤe|ТR1$Ѭ \4[ n"ĭPPVľ=%վ˾xQgz8BmP 奄LQYg$PP)"P$P ^w^SЬP-~PÂgPPôÄأPPЬR¼"ö"~R[ùE~P^]WVX~ͣPP(P"S(`"X͈̓SPTЏW{ͣͣ-"P͇`S0P,P_P!ڳP?.S/RRS0RRS~ ! !( IPPSn_!TPdP dPff!P$,լê êJլê ê4cSլ"X~*  )PX~U P] イ ﰲ%| ^>e|ЬSSnPT/TT/Sݬ`PYekУݬݬn N@Zݬ dP@ PU1W[XYT_ttMvvFxx?ĪŪXdhPdYdTVVSPcRSgRST PTXdTT cP@kP"kPZ2 ZeU1P)  ﲵkY1߭{߭}Rx1g_\P^[\I^m[\H ^m\RS+P߭bPcޢcPߢߢP<P ^ \RSЬԭ߭߭ߢjPcޢ!c.GPߢ0ߢ$PӓP|^[Sެ Vf m aެUeRRROPRTe[P߭K߭߭߭߭PߣOߣ;PGfRТRTTeP|^ZRެ Vf  SެUeS~PTSeZ߭K߭߭߭߭Pߢpߢ\PfTݭydTSSeP0^YZTYլ !W PWRRRWRRR߭4;A߭dBPiޤiPߤߤP𣏕E<1ԭWR*RP&P-%P֭ RPPЭRլ1Rլݬx1RUXЬV  XURRRPRSU1߭蚏K߭߭߭߭ PߤOߤ;P﯐VRТRSSU1;*WP&P1ԭWRRP P?WPP.P֭RPPWPPЭRլ1Rլ ݬK1RUXЬV  XRUR~PSRUmP߭蚏K߭߭߭߭ޫPߤpߤ\PVSݭYcSRRUլ ݬRRRԭ߭߭ߤPiޤ!iUnPߤ0ߤ$PW߭߭߭߭Dլ1yN֭߭߭߭߭߭߭ʪ~ĀRbĖϡSc@ᄀbĨ﫡c@bļc@b߭rcPifi$9xԭ߭y|^UR"TެVf RU PEU";P(߭߭朗SUPSPNSESPPfݭP`SUPSP SUPSP1P~SPPK~K~=>߭߭&PddԨPPwS UPSP ^%UR:SÐ0È߭߭PߢbP ߭Ì(߭߭PߢGߢ0P߭ԭ߭ߢZ? PcޢscÌJP¢ŒP廓P\^cTVxS߼r Ƶ @ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE;7>r @rÐ1Ð0È߭߭ PߦfP3hhÌ(dd`` PߦGߦ0PhhddߦZH PcަscÌS PƢƌPﱊצP Ì ߭߭ﱦÈ hhdd { n Ì |ԭ߭߭߭rPWhh ddÌJ W1BխIŏdPNPR@PRVRTNR@PRVRPfPTvTP%VP~ݭƷ!" ݭ  ѭ5hh PcܜcÌ 2Phh︜ Pc靖cÌ} ݭ l PcocÌD ݭST F3 Pc6cÌ =hh|~W2GP PcWGPcÌ hhddÌ ߭߭߭߭߭߭߭߭r PWW1r) Rbm UePclcÌB Td߭8MbDePc8cÌdݭG bePc cÌdݭVbխ+hhښePcΚcÌd(hhﰚePc駱cÌdV~eUe{iTdPchcÌ> Rb<%c~V~V~y?e6dPc*cÌb<%c~V~V~ƘedPccÌbGPhhddWDPPcWDPcÌhhddÌ^hhƷcPccÌ=x5ԭhh߭ЭRRRǡ4PR*  PR d1% Ìta^Vέ BW|~?ݬVPfЬfPPƄ9Ƅޭ|ԭ|~?|~ PPWTP( bBƄF(&ΰ |~߭|~82~ PPW P2W2~PPWJN RWP^LTV|~|~^Pff|~PZZ1ЬXNthVhPd;PvPhЬWNxgVgPd;PvPgЬYVhRVgPbPRvRiSh޼$UVgRdCRVhPfPRvReԼ$Sh޼ UViRdCRVhPfPRvReԼ Цpƀ ƑݬƄݬZP^RЬPݠ<`~Mp! ^MR\SߢAPߢ/ߢ'ߢ%PPpգp]ߢ5 Pߢ^ߢVߢTPPpգp%ƒߢdڕ͕P|~&hݣp'$ݣp6%/ߣtu ^LSbRݬCPբtQ߭ߢt߭߭EPP߭ԭ߭âPbíbߢt ߭߭ߢtԭ߭ݬPbЬbߢtíPPPP߭߭Eߢtݢt^u\ ߬t[,^ݬPԛMЬԭܰE➭|||~|~߭ʏPPPQQQPQP|^KVnͬRѬISfbPSߦ~HSߦ?ij3ߦcNOjƌ45ƹ#PPѬD/ƻ8PwkѬ1メ~禍ƃPPoݮ[P͈M͊Ю͔͌͐Ë͖́͘|͜|ͤ|~|~͈ʏPPTP͇SSS͆PPSTTdh[Pp ّ~đP@P'BLP[P[PUUU1n1.YWh^TT!ݭjPXghѬdgPƄgޏheUͬRUn1P^[IRPߢ )Pߢ5tmPߢJPߢ^PIPܰޭԭԭP|~?߭ PߢyߢrP{Э\LPQPA] Q\LQƒLPPP^1HRo-߭ mݬ[߭WPŽ}^ݬݬ< P ^uRbPNQPQPb`PPQYJ5Pt tzbЏH&PbPbP߭߭<b^S T!dݣЬRݢdbPdݬЬRRPdbQhd P ^FSRߢt(Ь TߣXdB߭߭߭T"P)ݭݭߣdﲄ@滑Pd߭ԭ߭nPbqbߢtwPÑߣzPp߭߭ߢtݬü)* Pb bߢt߭߭ߢtݬك̃Pb#bߢt߭<߭ߢtrt ^A>XzRЬ Q3NS@PSVSTdCTnQV `PVfVTjTSdSŒ!ߢt[߭߭ߢt%SŒPb܂bߢtS%߭߭߭߭߭ߢtЬS߭߭ߢt^SmPS ߢtH߭<߭ߢt(tq ^9R߭߭ߢtݬPЬ t ^P ծ dߥZߥB;;Pߥ}ߥwߥoߥmPP ծ &;ŃAB4mqPլřIPųIԭ|~(; ߭HЭRB;ݮ|Rbݮb;ݮb ݮbլZ ݮbݮb0ݮbaݮbŇݮbżݮbݮbݮb!ݮbԮ6V1[' զ,WѦ,Pծ#ݮ%ݮЦ,R\'ݮ<ݮծ >ݮЦ,nn1sS0RGZZ@sk@s0bP@Hsk@s(RSs8ޮ8Tݮ8 PRB8  RP@8SR蔾8sKݮsWլ"SRbbPSW PRST0SRbdbYZZOc0kPZ ZP*@ccPZ@c -@cPPZcsk@s]ZZVsk@s0cP@^sk@s(SRTSs4ޮ4Tݮ4 PRB4  RP@4SR蔾4saݮW1}sTަR0ScbbY?ec(cZZjsk@s0cP@ׄsk@sRSTs0ޮ0Tݮ0 PRPB0  RP@0SR蔾0sqݮsTަR0ScbbYCuc(cZZzsk@s0cP@+sk@sRSTs,ޮ,Tݮ, PRPB,  RP@,SR蔾,sŁݮsTަR0ScbbY;Ņc(cZZŊsk@s0cP@sk@sRSTs(ޮ(Tݮ( PRPB(  RP@(SR蔾(sőݮsTަR0ScbbYGŕc(cZZŚsk@s0cP@ӂsk@sRSTs$ޮ$Tݮ$ PRPB$  RP@$SR蔾$sšݮsԮަW0Xcg1NOT;PVTRnPPfPRvRTPPTgYVT~ťc,cZZŬsk@s0hP@sk@sWXs ޮ Tݮ  PRB  RP@ SR蔾 sųݮfVnV1V;ݮ ;9y:,yej^ެTdPRФSBc RP޼Q@aPR甼P^7R \p߭߬tN߭߭P²P#eP|^17USգp:p߭ߣtN߭߭tPŲPd߭ԭ߭ݬ!PcЬcߣt-PPdߣtPPkdRެVBWfTR߭߭ߣtBdPcBdcߣtP)PdRBd߭߭ ߣtrPL6PcZPRߣt4PqYPcR PRPP^5RѬ~Q=^m5\^M5\D^-5\ ^KRS+Q,PAt<ߢ'beP1ߢeߢ)dP1ߢg?I|~A†PccPP¢˜PZb|üݬgP¹? P?S~QT~PA; 7~-~| ^IUTgmcIެVfScu un߭|~ݮPdЮdĸS1jR3Sªnp!rR5bR│R>ݬPR4RP=ЬS#~#PPլЬR'ݬ'PPP^R|¼ݬ¼PPT^HUtSЬRdPۧRPª¦ R4’1bbRլ1͔͔?|+PRRR,`FR_R,RRRdK͔͔͐͐ݮPcЮcøørVPY PyPլ kcPϦY ɦT1wXvV_WhZQ[Ī1mYĦ T2Ħoլjň1rh(r8͔͔|~ݮHfPcЮHcøgŚ4͔͔|~ݮDfPcЮDcøg1ĒnլiŞqhq0͔͔|~ݮ@fPcЮ@cøgŪ,͔͔|~ݮ<fPcЮ<cøgsĒkլfŮGqh>q(͔͔|~ݮ8fPcЮ8cøg$͔͔|~ݮ4fPcЮ4cøgĪ1Ē1<ĈR1R1Rphp ͔͔|~ݮ0fPcЮ0cøg͔͔|~ݮ,fPcЮ,cøg͔͔|~ݮ(fPcЮ(cøg1߭߭ P@; @PP쟤ЬRb͟h߭b͟h͟oho͔͔|~ݮ$fPcЮ$cøg͔͔|~ݮ fPcЮ cøg<~e~Y͟͟d6P[PkP+;oh2o ͔͔͐͐ݮjPcЮcøkø1ĚBЬP߭Pü͔͔?nwPRRR,`FR[R,RRRYK͔͔͐͐ݮjPcЮcøkøQPY PyPdT1PL^BV諾Y|n|[ (@p(@p\@䞭曏@ܞ\ߐ|~߭ЬSSPiSiPP&Skmym 1P|~߭ЬSSNPiSiPP%Sƌ9m:,m 1PЏ \Ь Tdfhj|~|~ЬSSPiSi|~욏r~ݭ P/PPSƭll0 122~Pݬ|l}ol1(@pЬ Td|~ݬ&PiЬi|~2ݭ P-P(Pkkt1D.2~Pkk?1(@pЏ(Ь Td|~|~ЬSSmPiSi|~욏r~ݭ P/PnPSwMߣpߢZzxxiЬTT|߭߭߭’P!ݭݭ›|@|xxtt|WPc|cfm_P±PLCmPߢqߢcPL&m(m&m#mh"ݬmll‚T߭߭lh xxttGhl4h ^:RٯSݬ߭O߭߭߭’Pݭݭ›߭@'߭ԭ߭߭Pcޭc lP±PaK^A\zgmgkZgIg4g|^9UخTЬRR͌J߭߭߭ŒP!ݭݭś͌@͌ ͈͈̈́̈́͌Pd͌djPűPTJլ1$ެVffPR)SBc]RP޼Q@a{R͈͈̈́̈́xj:BWgPddMj$]&  |~|~]gPd]d jiѬj17Ьi|~|~ߤpgPdޤpd|~P1N|PVPPd;PvPSNxPVPPd;PvPRVSZVRXcXZPvPVSSeCXPfZPvPRR͈͈̈́̈́NiĀߤp%\\gPd\dḯ͈͈̈́h<%c~VR~pX~VV~pZ~[ ,[gPd[dḧ͈͈́̈́h]ݬ>t[vScd[QPdT[d^h'ЬRլ v͈͈̈́̈́4h/hRV[cPRmZcZPdZdgЬ R~͈͈ ̈́̈́gygRŅZPRŞlZm_ZLPdOZdYg"<͈͈ ̈́8g ^R߭ ߭g|~ݬPbЬf<^4S0U߼MPPԭ|~߭øPeePPPEѬ -լY>PݬB'լP Ь TT"fݬTݬݭЬRTe,)P eeeeee2 e? ne/|~ݮ ;PeЮ eKe;`N`"e ```ݭ2PΤ^2WpYZV\(@ͨn@ͨЬTdͲʹͶͼԭݬ3jԭiX\X߭ Pff|~2ݬ Pz^PeCѭ0 Pѭ  ͸1nPѭ!͸1]ݭPGЭPЭRB j6ͬﳏ ͮ摒 լ ݬݬݬ ݬͬpcXѬ1 j1ǑPTǓPSTRBPUSRBoPRTSZTPEUR@XǕͲͬP[%PѬeXǞͲͬpP[X[ n͸bbXzbP{2PQPP"ݬXubkb]b#͸n1P|H^30V(PA(`:HЏHЬUelnpЬTdrtvЬ SSSPƧ\P8?US%P?2~USPP^﹤Rݬ.PbЬb^1SﱦT\P\R@(Wgߣ3cBP1ߣ5\P\R@g \\-ߌ|~׌ÇPdÐdPPäÙP?դp'ФpUùBPݬCUUVU? PUU1UPP  P?PP!1P!?PP=1P=8L$,0xTtL$,0xTt&?PP1P P?PP;1P;1?P1P߼7l^FQ0QRbeQbØQbQbxQ+ZBZ^4J^1 P 71PI81P71Pu91P;1P:1P<1P1:1PݬL1"?P1P1{PUVUp$߭ݬQ1SPUVUp:߭_ݬ)1+PUVUp\߭7ݬ1P!]yXQXPAPXQXPA5P1\zLXQXPAPXQXPAP1mΈWXQXXPAPcPv"{+XQ,XPAP7xj|~bPddPP1Px;1UVUp߭ϼݬ1PUVUp"߭ݬqtPUVUp?߭ݬILPÎZ-=P6ݬ#&ݬ1PPV?US Us VU1P߭ÐNMkZVQVPAP`iVQVPAP`UH1PU1nPֆ _VUVsZõö*VP+VR@ VV<^*UѬ  ЬPS ݬHЬ PPTp81P?PЬP;պ1PЬPG 1PЬP?sPЬPCWPЬQNOTKPVTRnPPfPRvRTPTVT~HPЬP!PPݬЬR#ݬ ~#լЬP'ݬ ݬ'լ Ѭ SP^)VެWgRK|;|COb$yKzlKRt1}U1gT;=gSz;P{PQPP*@;c1KKxŪUb ;Ś?ŚgRKŖCŚG gRŚGŒOeU1m~lЬRS2P|^Q(URլԢ||„€|tЬQ?tCx;„K|O€GˆGˆ#~#լЬP'ݬ'sլ1N€VТ|PVVSnPPfPSvSVPV„DIҷTdˆrISc@IdݢxݢtœIc@IdVV~zIc@pIdbVUIDV,4V|X^+SLVATݬ I H7PP}1}gȶRgRP'PBg~PBgRgRP߭BQg^PgݬXGPg7Pgݬ Pg!PgݬW߭PPP\\XXPRBflµUBfePBfPP(PPPG\\GePdGdBPSRBf\\XXPPP*PE/kk1?P߭oO߭TO1VPZOw߭2Oݬ]߭Oe1PO7߭N?ݬ ߭N%1Pԭ2\\#PdJdN1PN߭|~(\\qPÛ )Xޭˤ\XJN [խ1C1;ЭP@9NV߭N^߭ݬ߭MEMM*^ݬݬ< P<^'T"SԭЬRRѲUePDhP4߭eP ݬePcЬc8P#P;߭cP ݬJPcЬc߭|~ݬ'PcЬŲ ^&S6RݬݬCCбPbC%^}&Rcݬݬ CC^߭ݬ6PTPxRSQR AdSQQRTSPl^ (U8SmU߭ݬPVPЬR¼͙e͙nխ1kެ[̰$4 p(g4xnTnRxRRTR1td t 2P^!%WXGVߧ (Pާ ߭߭ݬ PfЬfPr(@]h@hЬTd|~|~2x PRRЭRRP qPP^!YXS[$ZmV(@￙iЬT@PƨƬƫƪ@itvxn p rߦp|~ƨ|~2*x PPĦPѭ ЬRЭ¦PЬTĦ<SʏS<RxRRʏRRSĚhRxRRR,< SʏS<RxRRʏRRSĖ< R ĖĚĖެWgTTxkRR|k~kĢUgSjTaRdbTRUЬT'ĀhRxRRRjޱĞĂĄlĆ,ĈhmĊČk$^]Y[ǦWЬS|Îztvxn1(@i@iⰭ|~|~|~r~v PPPPc.PPQ+1PgRxRRR< S<RxRRSRY< RYP<S<RxRRSRYx YRRCPZ|~RZ|~<1@~ݭ PPP*PR0 R9SPSR@֬RR0R9Ckߦ߭RARZ RaRzPPPPvRARZ Ra RzPPPePRDRddPRSRse֬RRARZ Ra RzPPPݬߦ I^突[ZYXaWVVKU@T穀SR1ЬP֬`PPB5v~v~S?PbFPc>Pd6Pe.Pf&PgPhPiPjPk1%|8^ﵓTSS}Vߣ$PU+fݬߣ.ffPfUU{UV {ǒͷ{:P{TTSTSSP6C~PCݑSՑfSP Pムc|D "P1PSc1PPB5yyrP?PibPjZPNPkFP}:Pu.P"P}Py Pqc1WUW1MެTVGfRb-1WRWBRb1PPPB5y@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE;7>1yrP?PibPjZPaNPkFPU:PM.PY"PUPQ PIb1#dSGcRb+WRWBc5PUU W1hԭ͏M9ʏP"(pﺔ1. KWnެW1ЬrTS`VUGRb. pd PpRbWRWB Pp߭pcP@PhRfPPePBׁhPh@ǁd߭pcPխ ߭[W1Vhp P޼RnWGb 7}YhSRRROP SP 1pN  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^ݬPЬݬ֌PЬw|~^URݬPЬޢ^ \߬P%߭߬PӋ߭uPPPPP^\ެe߬%c|~߭|~|~ BP߬\yP߬mj2P^YXﺈR;TWuVݬPߨo"Pլ1ŌȗŠd&|~f|~߭{~2g~ UbSdQdQP@bAbQQdSUUSS ]S Xd(|~f|~߭욏{~2g~ S!PbUdQdQP@bAbQQdUSSPP P ȴK2P^ԭݬUPЬS߭|~ݬ ĊPSS9SRެTSS dSBQRPRQ@cQ R޼SBcPP^\XƉV+Yﴉ[ʼnZW ̶梅1|~?jPPgP|~|~ f|~'2j~ PgPˏ8( fʏ|~|~ |~#2j~ PgiP1iT?S ěSԭ̰аT||~ğ|~PRRR4P2RiR:RiRьiP ki kPk|~|~ h|~#2j~ P>PXkUP| ^RƇS+TﴇUŇVnEr4|~|~ ۆ|~'2f~ Pq"P2\d\<\d\ᅨdP ePd ePezsr|~|~ c|~#2f~ P,qP¢IP}Pdqȁ2f~PPP^|~p|~߭<{~2~ P ^RSc-|~Yp|~߭{~2G~ PbQcPcP\Lb@bPPcQP ^RSQcPQPAb@bQQcb֣0^R ЛЬԭذܰЬ||~П|~PPP^̄P<^TެUSެRSbSeQTPT@aSSbSSTPP^!oT[ޮVЬSUcRRRPUPU@cRRRRURPRRЬP/ޮVЬUSeRRRSPS@eRRRRSRPRRЬP:nnVЬUSeRRnRSPS@eRRnRRnSPPPVRV$ެWBQRVgURPRQ@BeQRVRSެWgVVPRBfUU/RPRPЧQBaUU/ RPRPެVU/ ]BXPXSPSRS[BSRS.BYPRPUBW1RWQQ.1QPP.j?PP]11X SPS.@X1UPU@QQ.YSSPS-@1Q/1Q]XSP@.SSPS]@kSPS.@^Y SPS.@NYUUP@: SPS.@/S*XSP@.SSPS]@ PSPSW@UPU@bW1P<^kRЬPЬT`UTSTQcSEbCbPSP`TSDbCb`SCbTqSCbSSTP<^Ь S3RЬQЬPaUTEbDbEbUpTDbTTUPTSPP^rP߭<^ݬ* a^ݬrnA^ ܀P^ݬ6n̂ ^ݬn^ݬnՀ^ݬmx^e7`P^IGoDP^-3n(P^%n LP^լݬn(P^с mP^Rݬߢz^lP ^eSrRЬP׬PPbcaЬP׬P|^lVTЬS֬cRЬS֬cPRP&R"PTЬP֬`RЬP֬`PRPRRfwPUTTfݬ "SQRЬP֬`RЬP֬`PRP.R*PQPQR@ЬP֬`RЬP֬`PRPRQTQPQR@ЬP֬`RЬP֬`PRP/R+SQPQR@ЬP֬`RЬP֬`PRPR֔AQU0Dݬ ~RS1/Sfݬ C~1ݬ }R1 P ^!\‚SÂRcb{PPbPbccbc~èĵg̃b̄j̅؃̆~̇z̈YkSkBk̉j̊jP^e\ }^E\~|< ^%ShTѬPP~Ë|P~Ñ|ЬRRR|~|~ d|~'2}~ PUR|~|~ d|~#2|~ PUլk(|^TiVUFgScXfifv|ԭݬ]ݬSSi0i΀P`%߭iHPRRSPiReQ}iRPPСhePhePЭ Р h{{{Pdp{{${ߤ {Pߤp{pD!lc VccfB{P K{8^VgYgZЬSc:X{ fzPRަ RRߺzJߦ/ߺz;STzPRSXUSWUUiyPiPSTRTSU~TXyPRjPTjPiXtyPP^TvhU[fVfW5ySݬTPSݬP/ߤmw gPćgRˆyˆPŒġG gPfec;dy3fQ fRQR'Qe" RaP PcQQRQeefOPiyfff2e^~S~RbTУݬbP߰,xP b PbPР0bbcTP|^IU~T~RЬSbVdbSbP߰,yxPb( QPbPР0bbdVbQQŰ ЬSSwяP PSwяP P!"SbPdbPReРdbP d^t^7V |SvXwZoj[xWwTty \c P Lh\\cTjTDkYt+wYtwgtvg ~vgwLt P\Lt\cP\R\ Bt\cLttvaPUU1OPOP[g\rPPrPLreg\gLbesrr^]SsUìv[[ݬ@rPVZqWqYjPXXQQ1QPPtXTTv?PP`11SP 1P18V ecgV1'ei1PeqPV1PeߣgV1RV[/eߣgeXP@P~ieߣ gVPV޼QX@aRjPXXPPO %51?PV[eVPVЬQO@aO~iRjPXXQQM1QPPMVbbbb PJ?PPl1Pl TTTTTTTTTTTTT1[?PRV X1PRVR eߣgRei1PRVR eߣgRV['eVQVЬTXPPPXXAdX~i1Pei1}P1V[eVPVЬQ[@a[~iRjPXXPP1MMMMMMM55551P2?PXD6RVRPeߣgRVeߣgV1Pei1PRVR eߣ!gRei1PV[eVPVЬQX@aX~iRXTjPXX~!RVRPeߣ%gRei1qPXPPP@SpP1T1T21V[eVPVЬQX@aX~iRjPXX~1RVRPeߣ)gRei1P1[1WV[ ei1jPXVPV޼RX@bX X6X?XPXP@PPXeߣ-geX~ieߣ2g1eX~i1V[ eiyPX XMX HX CVPV޼RX@bX?XPXP@PPXeߣ6geX~ieߣ;g X X eVPVЬRX@bX~iemX X 1CVݬ]mPelPRFVP^ݬk+mݬmPqqP@vkլ bYZY^Qk2Ek?q .q-nl^ kkr\ ml^iUlkWkVЬScTT T:ЬRRߥ?gcRcP@P~f PR?fݬߥDg PݬT~f֬P^UNjYSmXi*i9p(phkX hkWi\l\{innWhSijVjTPRR R9Sߥ?fS\@\~d PS?dSߥDf PSR~dngiip\ݬ ݬ)hjPp^WY9ޥHRݮfhݮhPggP@fRhPhPZkGЬP`U:Y`ޥW Rݮ fFhݮ 8hPggP@fRhhPkS;ޥfRݮfhݮgPggP@fRhhPYTZkQЬPY`RMQRHQRRY`R1ņSݮfgݮgPggP@fShNPhGRCTRP=TR3ŕnSnfbgnUgPggP@fShhRYRP^SVmXTYSZS[~hWhPf1fffwjSSTkURhPРCT`i.kRHhPݠ ݠgfhPSjShPTkSThPUkU ߬~PRhPà TRePTSݬ>=ShPРS`ij`ShPݠ ݠGgfRMRd:ihPOSR5SR=hPà PRPP~ RTTT:S{RkijRRRuRRPRP'P9g dRPRPShPàRPPRkijhP`iРRRРR`iui@RhPݠ ݠ'gdgd|^jR:RUeVݬ~bPՠ<TbPPSР0bbS/bPՠ<TP0 eVݬAbPР0bbSSbT b ^AjWQXeTg\ЬSSVV1SUS RUhS \\\iASU\\\OBR\R\d Ac$R\R\g\ìU\\\ dcg\ì RhR\\cRc~i:g\Pll@Plg\hg\ Pg\P g\PV |R\R\6d ubV Sn7P_R\R\g\lLP^ЬPԠ8b8a8b8b8b8bg$^UhP`\OO`\O`\N,Ag`\Ԭ8Mb8ma8-b8-b8 b8-bf$<^IcTg\ЬRRUR SU &fR \\\7BRU\\\S\S\d `S\S\Cg\ìU\\\dMa^g\ˏ8Caˏ8b`ˏ8!aˏ8 aˏ8`"a$e ^=eS@~E`PR~7`P(Qc A(cQVMЬЬ ԢW8>W8W8>W\$ЬQ"QPQP4PbPР4bЬP֬PQPQPbPР0bЬP׬PbM|^\Vf\ЬRЬ0PРUР SЬ4\P0f\Ь0PЬ44SRTdRU~f\RfPUS\R\ f\ì S~*Rf\ЬClCpZdRf\ݬ ݬd\WU^[STcRТ0ccR+T'߲,c\߼,UPTc\Ь0ccRTRcT c\ݬ,VU|^Y[Vb[Td\\UѬ0\SdRТ0ddR+S'߲,d\߼,,UPSd\Ь0ddRSRdS d\ݬ,Td\Ѭ0f"\f ]dfQUTd\SЬ R~HSR~ݥ(d\ݬ(Td\Х00d\Ь0R\4UmTRd\ЬBlBXRd\ݬ UeT^5ZWA[SYpTZUVfS{XFgRԢ8T8i8S8S8S8jX$ЧX' SSU(Tg\Ь0gg\ЬRRg\l@ЬkЬ-@ݬ,G-g\ˏ8{Sˏ8iˏ8]Sˏ8\Sˏ8;SЬjЬ$'Xì RcR\R\f edPcR\R\@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE;7d,>Pg\ЬklV@igX1-XlP ^XSc\Pլ<PPPDTRTWB*Pծ[DTRTWBPWDTRTBi1M1M1MRѬR1PѬP1cSRXRPnPPѬZ\ZVhPPP P XRRRX9MPPѬZXMPnPPѬZZT PP P P TTЬP`WPWPP P1jծ TЬUU1Q1L1SeRR URR LSHЬQaPP QѬ:-ЬQaPP QP%QSPP SS"RЬ US.DeTPT @cRPRP RDTPΠ^ݮKRbP }ݮbtYYbP(iZZbPX^ݮbPnUS| Ԯ0O8RR[Ԯ޼REbWެ,U,1W1W 1ծ 1[[70[1.K1޼ REbTT hծ [7Zծ0|Qծ uPTbSPSA@'PTuSPSA@PSPSAi@QQ -PT &ծ!Ԯծ0QXSPSAj@QQXW W~WW  W W[W 1TS$U,7URU޼PB` (Tծ0 SPS @U,UPU޼Q@a U, U[VTPP[ծ09[6006[TTTPPRPQRSPS @QPQP[  VTծ0PTnK[EЮ$STݮIbIPRQR1PSPSA@QQR1[1T$1Pծ01W"W W WW W~}#IuQծ(PSPSAi@QQ(WSRS?BSRSWP@PPB[ 3PQX*PSPSAj@QQXPծ0 SRSWBU޼REbWU,W W ծ 1/ծ6ЮSPծ(PSRS@iBPP(SRSBbPծ0[[USծ0!ծPXPSRS@jBPPXQծ(PSRSAiBQQ(SRSBCS!IGծ0ծIZG^GVGWURFa߭߭PrG\TP>TíSSSfYgXfgЭU1RUݭݭ'PS1$TQm4d4ѭ^5V5ѭQPQЭ\֭l@ѭQPQ\QLQ9PSQQ\Q LbQT~RSUSYfXgP^aLZnFY[FX3WgSЬ[[gzPPVSgRЬP`TPQPQ[1tFSKUSTPPR1:R15PSTPP R1R1PSTTPPLЬQVPQP?aPP[3QaPP1P4 P7P0P`PPm R1PS8TPP0ЬQVPQP#aPP[QaPPm R1PTPP HhS@i(j$RUR`PRPPPxPPPUPRIPRPPPxPPPR3TPP  P~SPP  P P RPRЬP`TPQPQ[1RPh^DZC[kݬ tYDݬ KDPXPPXެ VHRRS>ЦUkSzSaSR R3RSSTSTTSXRXSBtHeRRSìRRXe2PXRXtԮIUkUzUaUR R3RUUSPUSSTThѬ 2PBjC  T 4֬SkSzSaSP P3PSSRSRRTT֬{B1j1[CЬSSRbRR3SRbRRm#cRR01R11 R41R71mFЬSSRbRR6SRbRR[&ScRR01R11R41R7101 47/ЬSSRbRRSRbRR[cRRm1i[ЬSSRbRRcRRm1Cm!RbRRRbRR[1e/U[/PTA5PSTRRS*PbPP ARARRSmA.AU.A1U.AЬ@ծ ׬TPT@1ЬR֬bSkSzSaSR R3RSSUSUUSTRTBtRSR1TX1PЬP֬`RkRzRaRP P3PRRSPRSSRTPT@tPRP1TX1PЬR֬bSkSzSaSR R3RSSUPSUUVTRTBtWVW6j V_,V'j ]@1(V 1 W 1TX1YW_RV_LЬQaPP1QaRkRzRaRP P3PRRSRSSPPW11;P?jЬQaPPQ1>1j1~VyЬRbPP[iRP`PPmYRbPP0P1 P4P7@P`RkRzRaRP P3PRRSRSSPPW1 1P^>hjdV_ЬRbPP[ORP`PPm?RbSkSzSaSP P3PSSRSRRPPW11PV 1W 1TЬPPUծPP`PP 1]P 1UЬRbPP P ֬ЬP`PP P ) UP ݬiPS>N>$F>ݬiPRUiPRS->PݬiPRUiPRSS!Dt TXTS Dt TXծ$PUPRDtPRP S|CPծS TXXTyЬP֬`RkRzRaRP P3PRRSPRSSVTPT@tWVW1+jV_1V1jD=V  W TX1TX1;RX1& TB<ЬP֬`B1jP`PPj<OЬP`SS CBt ;S S ֬ЬP`PP P BPP dQRBaPP R ЬP֬`BjJЬScPP>SP`PP[.SP`PPmScPP0P1 P4P7j1ЬScPP%SP`PP[SP`PPmSRRX1PЮ1`^;[;Z ;Yi ݬ t;ݬ ;PZPԮެ WЮRBRRSCgUiSzSaSR R3RSSTSTTSЮR֮SBtЮRBeRRSìVV)P®VRBtԮ @UiUzUaUR R3RUUSPUSSTThѬ7)P:j:  T  4׬SiSzSaSP P3PSSRSRRTT׬91j1[BЬScRR6SRbRRm&ScRR01R11R41R71mCЬSSRbRR3SRbRR[#cRR01R11R41R7101 47.ЬSSRbRRcRR[ScRRm1n[ЬScRRScRRm1ImЬSSRbRRcRR[1#&T&Pk4PSЮRRS(bPP 9R9RRS 87&8T)&81T&8Ьn7ծ  ֬TT71ЬR׬bSiSzSaSR R3RSSUPSUUSDtRSR1T1TЬP׬`RiRzRaRP P3PRRSRSSRDtPRP1GT1@ЬR׬bSiSzSaSR R3RSSUPSUUVDtWVWGjV>jiVM0iVm&j 71V 1W 1T1XTWEV@P`RiRzRaRP P3PRRSRSSPPW1q1Pj1iVM iVmyЬRRP`PPiRP`PP[YbPP0P1 P4P7BP`RiRzRaRP P3PRRSPRSSPPW11OPjpiVM ibVm\ЬRRP`PPLbPP[@RbSiSzSaSP P3PSSRPSRRPPW1i1PV 1W 1TЬPPU`PP P ׬ЬP`PP P U:$ݬhP+$R5kkUhPSݬhPSSRkUhPSݬhPSSRѬRR Dt TPTR Dt TT R;ծ R TT1PЬP׬`RiRzRaRP P3PRRSPRSSVDtWVW1jV1ji VM1wi Vm1jj4V  W T1MT1GnЮS13ެ T3SQЬP׬`A1 jЬQaPPQji4[ЬRbRR OSP@t CR R ׬ЬP`PP P SP@PP dQSSP@aPP SSQЬP׬`AjGЬRbPPm7RP`PP+RP`PP[rPP0P1 P4P7j1ЬRbPPm!RP`PPRP`PP[RS1Pn1Hd^#V!X[7T7Z@3WѬkѬhPU21g 31d2PURU1g1BdPPjP eP;RPPU2RP@d['RP@dmRP@dPP04P1/P4*P7%Bd.RPPU%RP@d[RP@dmfPge2Bd ߦ,PRRU1KnhYԼ ЬSd|Rլ ShSkRRPdPjdhS^PSdSkPSSh׬SYjd1PSPSQլ ShSkQQPլ9Լ dߦi6dƆls1l߭߭Yq Э 7ЮnխYЭP^qQzaaPmPPiP`\\  P\l\\ `\\  PaaPP\Pl\\ ?`\\ 70,Pa\ PPa`\\ Pa `\\ aPPPPa`\\ PPPa`\\ PaPPa `\\ P^QRPPaaP`\\ Pa\ PPPa`\\ 0Pb P\\ Pa`\\ PPPa`\\ P\P\aPbbP ^! [v5X5WTVZpPY/YP/ghk"PP/t/(YPP`\\ Pe/Z/PPYRR1}3SRnYP/1b\\  \~1|\ TT1P\ YP\vR\\lR\l\\[\R\l\\1\4 \7\0AR\l\\m1R\l\\1Z\4ZP\7ZPZT1b\\0RPP&R\l\\[`\\m ZT1PbUU \T\\x\\T\\P\QP1TSV\\T\&R\l\\ RYgS\\x\\S\\hVZkQ\Q\uPUU  U U_TSV\\T\RR\l\\ FRYgS\\x\\S\\hVZk*PTSV\\T\RYgS\\x\\S\\hVZkRR1'YPP^13Y:-WRPU+-UPJPSSU1c2XN1Vg14c\\  \~1 \ RR1!P\ UP\JS\\UAS\l\\[1S\l\\1\4 \7\0S\l\\mR1c\\,SPPU#S\l\\[`\\mR1cTT Xi RXP%PR\\x\\R\X\PR\\x\\R\PP\P\OVQRRQSPP\P\4PTT  T TRV\R\SPRV\R\SPSSU1UP^0W+ZTXVЬYY[Y1*"hfRRYRRЬSxSRRhSdSPYRYR1`UPPhPffRPR`PP ì[PPdhgLjHhRSbPP :S6PbPP RRf%bPP  RePgSd֬bPP SЬR׬R1v1P)&hRRYRRЬSxSRRhSdSPYRYR1YUiPhh[PPhdgQjMiPhPRSbPP 9S5bPP RRf%bPP  RePgSd׬bPP SЬR֬R[P^ST XЬWdVcU(ìQQRxRPPQRPRPЬccЬdRPRPPP RRRUVWXRP|^uUrV3)TլѬdd)(PxPP0PfЬeЬQeQRdQSQR+RPQPefQPRPR#RSP RdefS ^S޼RPbЬRPbbPPެQбPPc `PP Pױѱc бP`PP P^]TZSCV$' fPPPcYdXЬRcRQ/RUfRQQPRPdfcW,PW$PQUQWP'dcWWb7PcެRcbPcdPccb_'Xc&cPFݬ,PP{+,d(QPcެRbcdc9PcbcdRYcXdRP^9V6WѬ  fTgU޼RЬSSPb%SPxPPPS)S мfЬgЬ Sݬ 3,Pc{&*"PRRPc* *PPcTfUg^RbQЬbbPitQP^Rb%ЬbТP6A^1T~1%PSÐ%dc%5% ߤ6Z%PRޤBRRcj% ݬc\%SP ^ RR#S#\6SS+\ì \\S\\SRv) n)R PRRRSBT&$hPR/#\ﭻR#R\L'\^0P"P\L\^ P"P\L\^-TUV8$W"RSRンPRR0 R9\\\,PS\SRLPRR0 R9\\\֑R~1S\SL߭d߭a#խ1iЭPPa5e P>?PP1@P15"?PR\lRS)\ì \\R\\e~tPRS\lR#)\ì \\R\e\~DP f\e̐ﻵPf\̐Re̐R f\R̐PRvqяPoE ﺚP g/g&P&ﭠgP#!#!^Sz UWY"TVk#XPePPPO %1f?PQPeP\\Q1\PPQ$ P2?PPn1pPn hlt|hh1Q?P \̐Ri̐R \R̐PR߹ʳ}=*! PPяP1j ߘP dTd$$՞dPeяP18 P dd$$udPa hmPePPPA+Cw1?PRf\lRR8PRf\lRR PR ߣQf\lR;R\\giPR ߣf\lR;R\\gilPhh^︘PuP\LO\^m \P^R \lR$\ \\R\2 \~ݹ^R \lR$\ \\R\\ ~凉 ^QRS ߢf \lS;S\\ \P ^RSC ߢͰ \lS;S\\ c P^R \lR> R~^R \lRR ~Ÿ^ﶸ^^M\fR ߬/R" ߬W`P1bc"hяPMP bb,!P!bĒPE̋,P b識b 祥P bP^P ^R~S  \l(Pcc³ P߭ºcxc ^RS \l(Pcc½ﱰP߭c cխԭѭdd \ĭ\Əd\\~GPݭU^!\ яPM.P l4lH5P8!lP^\ яPMM’P l7ȺlɘPﵘlP^I\ яPMVP l\lp]P`IlP^{R\C̐} ^SZ\̐R̐RA\R̐<PR7"^P^ P^P^R6\lRRP<^UTS參\lS߭SdH~xPRdS\R P¬PRP R^SR\\fI|^MTBVk7qPPzڪfUﺪ\lU߭Uf\~PRBfS\R P¬PRP RsSfRR}Эa|^eTZVċ(iPU5ک&\lU߭Uf|~PRBfS\R P¬PRP RSf6RRЭ^P^\яPM-P l喝l穀PlP^ \*ӨP^Pﱨ^\P lwl P <^iTUSePRR0%R9 PS\SRLPRR0R9Se-S#Cq߭](ReR\Lo\^Ֆ\^P@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE;7o~j6P~B0eMU^^^3Rj\lR:\ì \\R\\~WPR7\lR\ì \\R\v\~!^aR\lRRI~R\lR+R~֮^ P^aWUOVeeTd V\lT߭Tfe~PRBfS\R P¬PRP RǫSfjRRЭ^~ݬ ^'SԭѬAݬcppPhplkjh1Pݬpjp[PhplkjЬRR4P#P!PߣPߣ<P߭haP߭|~hJ2P ,^Sݬߣ1߭߭ߣ4kݬߣD^PRߣTﮄߣd滑RP`^RݬݬݬPߢtj"jPbjfed|~|~߭|~|~b OPPP `^SݬݬRbPݬݬbPÄjjbPbjfed|~|~߭|~|~b PPP|^SUV.ÐϢPR߲,߲,PìeenPRRy RYPÿPrP߭,h`߭pPPR߭LRP%PB~TPBR߭'RPR߲,C6P1De߭˞TdPTC\fߣ1ߣ4﵁\ߣD敏NPRߣTߣdR\1W߭dPfC߭P\1.߭dPfC߭nP\1߭dPxCfTTݮ ݮ Pߣtͅͅ Pͅ|~|~߭|~|~ =PRPRR\~ޭnCݮݮ RbPݮݮ bPÄ bP}́̀|~|~߭|~|~} PRRR\\7>P ￸#~w P(犯Pt^sRZ [" T X Y!U|Vﯟe: e $eP\\ e \PPC,         f                            f1?P6 bﭞW1P ߢW1PWW1jWߢ1d1Y\d\\dߢFG1<ߢa81-Z x\l‚e ea PyPY6\lナP‘ٝ1P¬ǝ1º﷝1利1eS e cPPPB5x\@x\@1mb?P\h\\hvPihҜ1<P-ᅵ1) \SPlw PSjSSjN4Pij.SMt 3}t Všt ½tf Vt%1P\l \\a PiE 1LPϛ19\ \\ '瀞1P?tkVtVVtr1P\k\\kzR1P£?1\\\Piu7t<jtVVtٚDPtjtVVt ?ii 1\%\P \y \φ XWPeeSWP t^Ì\SttU1P[ﻙPtP̀P̥tRbP% ̨l11PtPtbPtqPtbPS1P^ ea~PYr1tezPS|P PS[TSPT^W4XVnԮYU ۃ nAY 1W[hZ~TEfR1RSU\ULf-PR\߭RS<>\SR~߭4h iYY` U\LfY1YE 1Ef1kh1:khjdP P PdP P dYpP3hJht}P P P}P P ծЮVnnG̯hjYw1^ՍRZPd1!P¯1Pr{P1 \wP *yP 1P \\!PaPfP…ŕPdN׈\\lZgﲤP@@ht ;$t$d4t,\LLtLl<d|| |tDL $"   x ( HP08 s$( @8 `XxxphXP t 8 ,  @VAXCRTLLIBRTLMTHRTLEDTSHRLBRSHRSCRSHRSMGSHRTPUSHR\`d*[EVERHART.JTDEMO]CSWING.EXE_A;1+, ./ 4- 0123KPWO5 6!27@89GHJ"h_ 0@! T%t CSWING_TVSWING V3.7.4 HFV1.1$ $$ $ $P~$ $&J7VAXCRTL_TV_0016 LIBRTL_TV_0016 EDTSHR_TV_0016  LBRSHR_TV_0016T  SCRSHR_TV_0016f SMGSHR_TV_0016 TPUSHR_TV_0016 TIE$SHARE_001 ` x m tq w * | + +- + | | | 0SYS$PRINTSYS$BATCHSorry, This is not a supported terminal type! SYS$DISKgetjpiuaf flagsgetjpiuaf flags-h/h Usage: swing -h Show this Help. swing -v Show Version of this program. swing[ -f][ -0][ -s][ -c][ dir][,dir...] %s -f Start up directly in the File manager. -0 Look for and use a device__000000__SWSVE.DAT file if a device__directory__SWSVE.DAT file is not found in the SWING$SAVE directory. -s Exits in SYS$SPECIFIC restore SYS$SYSROOT as the default dir. -c Exits in SYS$COMMON restore SYS$SYSROOT as the default dir. dir Use VMS syntax including brackets (e.g., [topdir.subdir] or device:[topdir.subdir] or [.subdir]). You can also use logical dir names (e.g., SYS$EXAMPLES). If a dir is not specified, your current default is assumed. -v/vC SWING v3.7.41 (S.J.Brown, M.Akerberg, H.Flowers, F.Macrides & others)-f/f-0/0-s/s-c/c,Cannot change directory to %s Create Rename Delete Move pUrge Quit Help Files Locate ?! Cannot access directory %c%s%cFailed to find directory %c%s%cFailed to find directory %c%s%csys$login:*.*;**.*;*[]*.dir;*io$_access directory lookupget dirs.SWING_EXCLUDE_FILES*.*SWING_EXCLUDE_FILEScannot allocate any more memorygrab-node%-*.*scannot allocate any more memorygrab_line%c(B%c(B%c(BSYS$SPECIFICSYS$SYSROOT:SYS$COMMONSYS$SYSROOT:Current directory is %sSYS$OUTPUTSYS$OUTPUTerror assigning op_channeliniterror setting modeinit sys$dassgniniterror disabling ctrl_t and ctrl_ydisable ctrlSYS$INPUTSYS$INPUTerror assigning channelinitSYS$OUTPUTSYS$OUTPUTerror assigning op_channeliniterror sensing modeinitPage length is only %d lines Must be at least %d lines sys$dassgninitcreate pasteboardinit_smugserase pasteboardinit_smugscreate virtual keyboardinit_smugserror declaring an exit handlerinitcreate virtual display displaytinit_smugsTERMERROR - this terminal does not support the SMG$ routines - this current terminal type is [%s] - a DEC vt terminal or workstation is required - SWING exiting pasting display tinit_smugscreate virtual display display1init_smugspasting display 1init_smugsallow escapeinit_smugscreate virtual display displaybinit_smugspasting display binit_smugscreate virtual display display_dclinit_smugscreate virtual display displayfinit_smugscreate virtual display display_msginit BROADCAST MESSAGES for %s label border display_msginiterror catching ctrl cinitdirectory %s not foundSYS$DISKSYS$DISKsys$asignsearch nodesSearching, root = %s sys$dassgnsearch nodeschange pbd charsmodify pbd[%s,%s]USERUSERSYS$SYSROOTSYS$SPECIFIC:SYS$COMMON:Directory structure %s already loaded:[000000[000000[[000000.cannot allocate any more memorygrab_dstructureLNM$FILE_DEVLNM$FILE_DEV:changing renditionrenderSWSVE.DAT;1sys$login:_SWSVE.DAT;1_SWSVE.DAT;1sys$setddirshow defSYS$DISK%s%s%s Invalid filename%.*s$ %s ?Y/N [N]$ %s %s ?Y/N [N]$ %s %s ?Y/N [N]$ %s ?Y/N [N]$%.70s~ ?Y/N [N]Y------------------------------ SWING DCL SUBPROCESS -------------------------------------------------------------- SWING DCL SUBPROCESS --------------------------------$ %s$ %s %sPress any key Press any key Press any key Really execute %s ?Y/N [N]Y------------------------------ SWING DCL SUBPROCESS -------------------------------------------------------------- SWING DCL SUBPROCESS --------------------------------Logout when finished.EXE;.EXE;$foreign_command_tempforeign_command_temp$ foreign_command_temp.COM;.COM;$ @%sExecute %s as a command file ?Y/N [N]$ @%sPress any key Press any key Press any key SWING > disable broadcast trappingdisable broadcastsset broadcast trappingenable broadcastsFunction disabled for captive accountscan't spawn a child processscroll display areadisplay lineerase linedisplay linedrawing a linedisplay lineput chars nodedisplay linechange renditiondisplay linedraw chardisplay lineChange-value Restore-original-value Exit(& save changes) Quit Help ?!SWING_OPTIONS.INITIAL%sSWING_OPTIONS.INITIALerase displayuser options USER-DEFINABLE OPTIONS USER-DEFINABLE OPTIONS label border displayfuser optionspasteuser optionsunpasteuser optionserase displayuser optionsSWING COMMANDS FILEReally QUIT and lose any changes Y/N [N] ?Y%s%s %cFile format must be in the range 0 to 9SWING$SAVE:%sSWING_OPTIONS.INITIALwalq=3mbc=3sys$login:%sSWING_OPTIONS.INITIALwalq=3mbc=3cannot create file %sSaving definitions ...! ! SWING definitions file - this file contains the ! user definable options used by ! %s C SWING v3.7.41 (S.J.Brown, M.Akerberg, H.Flowers, F.Macrides & others)! , a directory manager tool. ! ! User %s ! ! The file should NOT be deleted ! ! ! %s %s%c %s Saved definitions ...SWING$SAVE:%sSWING_OPTIONS.INITIALrmbc=3sys$login:%sSWING_OPTIONS.INITIALrmbc=3Creating user definitions file ...Loading definitions ...SWING$SAVE:%srmbc=8mbf=2_000000_____000000__rmbc=8mbf=2000000]000000rmbc=8mbf=2rmbc=8mbf=2Unable to access saved directory information...%s %d %d %d %d %d %dLoading directory information...Save file is out of date...%s %d %d %d %d %d %dSaving %s directory information...SWING$SAVE:%swfop=cbtalq=8mbc=8mbf=2wfop=cbtalq=8mbc=8mbf=2wfop=cbtalq=8mbc=8mbf=2Unable to save directory information! ! SWING save file - this file contains the ! directory structure information used by ! %s, C SWING v3.7.41 (S.J.Brown, M.Akerberg, H.Flowers, F.Macrides & others)! a directory manager tool. ! ! User %s ! ! Root %s ! ! The file may be deleted if required. ! m %s %d %d %d %d %d %d c %s %d %d %d %d %d %d c %s %d %d %d %d %d %d s %s %d %d %d %d %d %d n %s%s]%s%s.%s[[000000[000000]SYS$DISKSYS$DISKsys$crelnmset defJanFebMarAprMayJunJulAugSepOctNovDeccreate virtual display displayfbig message init%.*s %02d %.3s %02d:%02d%sFunction disabled for captive accountsCreate Rename Delete Move pUrge Quit Help Files Locate ?!mark setmark setmark setmark setmark not setMark not foundRemove this structure from the display Y/N [N] ?YYou can't remove the only structure being displayedFunction disabled for captive accountsInput structure to insert [NONE] Directory %c%s%c not foundFunction disabled for captive accountsTwo options, N for a narrow listing, W for a wide listing [Narrow] ?WFunction disabled for captive accounts Input filename to edit ? [NONE]*.**.*SWINGRebuild this structure ? [Y=yes, A=rebuild all structures] [N] Invalid input - try againRebuild this directory structure Y/N [N] ?Y0 00:00:010 00:00:01sys$bintimset timersys$setimrset timersys$cantimcancel timer? PANIC - FAULTY GOODS ??@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1` PANIC - FAULTY GOODS ?Error %d - %08xPress any key to continue...Press any key to continue...!! panic !!error code %d C SWING v3.7.41 (S.J.Brown, M.Akerberg, H.Flowers, F.Macrides & others)Please wait ...Please wait ... files so far %dTravel to new parent directory and select by pressing RETURN,or Q to QuitTravel to new parent, press RETURN to start copying, > to export,or Q to QuitContinual update mode ...No files matching [%s] in this [%c%s] directoryNo files not matching [%s] in this <[%c%s] directoryNo files in this directory [%s]No directory files in this directory ... %s Non-ExistentChange protection on these directories Y/N [N] YChange ownership of these directories Y/N [N] YFailed to change %d filesSYS$DISKSYS$DISKsys$asignprotect a dir*.*;**.*;*io$_access directory lookupprotect a dirchanging protection on %schanging ownership on %sNo files selectedchange protection on the selected file Y/N [N] ? change protection on the %d selected files Y/N [N] ? change ownership of the selected file Y/N [N] ? change ownership of the %d selected files Y/N [N] ? YChanging protection on %sChanging ownership of %sFailed to change %d files? New file protection: Invalid inputReally change protection to %s Y/N [N] ?Y:,WREDOGSNew file owner ? [NO CHANGE] Change ownership to %s - [%o,%o] Y/N [N] ?Yput line of option dataput scroll line %sput dir info charsput scroll lineput filename charsput scroll lineDirect Indexed Relative Sequential* undefined * - ctg best try - contiguous.DIRext %-5d bkt %-3d gbc %-5d vlm %-5d dvl %-5dext %-5d bkt %-3d gbc %-5d vlm %-5dFixed-length, Variable-length, Fixed control, Undefined formatRMS stream formatStream with LFStream with CRmax %-3d bytes -FORTRAN carriage controlImplied carriage controlPrint file carriage controlNo spanned recordshdrs %d ptrs %-3d EXACT CYLDR LBNRVN %d/%d ??-???-?? %.7s%c%c ??-???-???? ??:?? %.17s (%c,%c,%c,%c)[%s] [???] [%05o,%05o] (%d,%d,%d)(S:%c,O:%c,G:%c,W:%c)Can't delete main directoryDelete these directories Y/N [N] ?YLAST CHANCE - Really delete these directories Y/N [N] ?Y[-]%s%s.dir;1*.*;*some files were not deleted - searching ...SYS$DISKSYS$DISKsys$asignsearch nodessys$dassgnsearch nodessome files were not deleted ...Directories and contents deletedNew directory name ? [NONE] .You can only create one directory at a time%c%s%c%s - can't create directory %s%s%s[.]directory %s%s%s already exists[.]Created %s%s%s[.]Not possibleNew directory name ? [NONE] [-]%s%s.dir;1[-]%s%s.dir;1%s - failed to rename %s%s%s[.]Cannot rename main directory%s%s.dir;1%s%s%s.dir;1%s - failed to move %s%s%s[.]abortedCannot move main directoryPurge these directories Y/N [N] ?YLAST CHANCE - Really purge these directories Y/N [N] ?Y*.*;*purgedGetting this_node via sys$getsyiwremote_initLNM$SYSTEM_TABLELNM$SYSTEM_TABLESYS$NODESYS$NODE::create virtual display display_remoteremote_initSYS$DISK: Function disabled for captive accountsNo files selectederase displayremote_files FILE EXPORT FILE EXPORT FILE IMPORT FILE IMPORT label border display_remoteremote_init NODE : DEVICE : DIRECTORY : FILENAME : * UNCHANGED * FILENAME : STATUS : pasteremote_files What now - C(opy), M(odify), Q(uit) ?No filename specified%s%s%s - failed to copy %sInvalid input%s%s%s%s%s - failed to copy %s Continue - Y(es), N(o) ? read keystrokeremote get optionSYS$DISKSYS$DISKsys$assignswing_filesEdit eXecute Copy Rename Delete Move pUrge Quit Help List ?!Quit ^D = user definable options Help ? = quick help screen $ = DCL!erase displayswing fileslabel border displayfswing filespasteswing filesCreate Rename Delete Move pUrge Quit Help Files Locate ?!sys$dassgnget_dir_files[ FILE MANAGER %s QUOTA %d USED %d FILE MANAGER excluding %s QUOTA %d USED %d FILE MANAGER %s FILE MANAGER excluding %s FILE MANAGER (DIRECTORIES ONLY) No files selectedDEFRAGMENT the selected files ? Y/N [N]YLAST CHANCE - really DEFRAGMENT the selected files ? Y/N [N]Ysys$dassgnnext_file_command[sys$assignnext_file_command*.*Function disabled for captive accountsEdit eXecute Copy Rename Delete Move pUrge Quit Help List ?!SWING COMMANDS FILEFunction disabled for captive accountsInput filename to edit ? [NONE]%s is not accessableFunction disabled for captive accounts%sParameters to pass? [NONE] Function disabled for captive accountsFunction disabled for captive accountsAt top of listFunction disabled for captive accountsAt bottom of listAt bottom of listAt bottom of listAt top of listAt top of listNo function to this key !key not definied]cannot allocate any more memorygrab_fileAll files selectedNo files selectedrename all %d selected files Y/N [N]YNew name for %s [NO CHANGE] %s - failed to rename %sNo files selecteddelete the selected file Y/N [N]delete the %d selected files Y/N [N]YLAST CHANCE - Really delete these files? Y/N [N]YLAST CHANCE - Really delete this file? Y/N [N]Y DELETING * STARTING * DELETING SYS$DISK DELETING DELETING * FINISHED * DELETING Press any key to continue...No files selectedCreate Quit [RETURN] Top Bottom Next page Previous page! %s%s%s%s%s - failed to move %s%s - failed to copy %smoved %sStay here? Y/N [N]YabortedEdit eXecute Copy Rename Delete Move pUrge Quit Help List ?!pastemove filesSorry, purges while files are excluded are not supported.Purge these files? Y/N [N]YLAST CHANCE - Really purge these files? Y/N [N]Y;*purgedSelective file specification [NONE]*.*;*%s - Invalid file specification%.*smatch against %s Y/N [N]Y%d additional files matching %s have been selected%d files matching %s have been deselected ;;New file specification to include [*.*] *.*New file specification to exclude [none] *.**.*;*%s - Invalid specification%.*s%.*s%c%spasteshow_broadcastsget_broadcast_messageshow_broadcastsgettimshow_broadcastsasctimshow_broadcasts----------------------------%s--------------------------------Press RETURN to continue, M for mail, P for phone Press RETURN to continue, M for mail, P for phone mail phone put_chars 1clear curor->->put_chars 1set cursorscroll display areaput file topscroll display areaput file bottomcurrent file no %-5d total files %-5d files selected %-5ddisplay format %d%-*.*sput charsrefresh filescreate virtual blank displayinit quota displaycreate virtual displayinit quota display DISK SUMMARY AND QUOTA DISK SUMMARY AND QUOTA label border displayfinit quota display[ USED : %-6d blocks (%4.2f%c) USED : %-6d blocks PERMANENT : %-6d blocks OVERDRAFT : %-6d blocks DEVICE : %s VOLUME : %s ACCESSES : %d ERRORS : %d Size : %4.2fmb Used : %4.2fmb (%4.2f%c) Free : %4.2fmb (%4.2f%c)Press any key to continue...Press any key to continue...SYS$DISKSYS$DISK%.*s SWING$SAVE:SNAPSHOT_XXXXXX.LISwfop=cbtmbc=3SYS$LOGIN:SNAPSHOT__XXXXXX.LISwfop=cbtmbc=3Cannot create snapshot file %sSYS$LOGIN:SNAPSHOT__XXXXXX.LIS SNAPSHOT SNAPSHOT Print the current file Y/N [N]Print the selected file Y/N [N]Print the %d selected files Y/N [N]Submit/Noprint the selected file Y/N [N]Submit/Noprint the %d selected files Y/N [N]YSYS$PRINTSYS$BATCHPrinter Queue [%s] ?Not a printer queue - print cancelledBatch Queue [%s] ?Notify user when completed Y/N [N] ?Y%s, FILE %s aborted%s, FILE %s%s has been queued for printing%s has been submitted Press RETURN to continue ... SWING$HLP:CSWING.HLBSWING$HLP:CSWING.HLBSYS$HELP:CSWING.HLBSYS$HELP:CSWING.HLBgetjpiinit helpCSWING.HLBHelp file CSWING.HLB not found in SWING$HLP, SYS$HELP or SWING image directoryhelpswing helpLNM$FILE_DEVSYS$DISKSYS$DISK%.*screate virtual display (blank)init copy windowcreate virtual displayinit copy window FILE COPY QUOTA %d USED %d label border disp_copyinit copy windowerase displaycopy windowFILES REMAINING: %dCURRENT FILE : %s[%s] %3.3d%cPress any key to continue...SWING$SAVE:%s_XXXXXX.LISSWING_LISTING_FILEwfop=cbtalq=8mbc=8SYS$LOGIN:%s_XXXXXX.LISSWING_LISTING_FILEwfop=cbtalq=8mbc=8Cannot create file %sCreating wide listing ...Creating narrow listing ...Directory Structure generated by %s Date of listing %s Statistics codes ================ A - blocks allocated to files in this directory C - count of files in this directory I - file fragmentation index, the average number of fragments per file M - maximum file size in blocks U - blocks used by files in this directory Root directory : %s %-*.*s%s%s %-*.*s%-*.*s%s%s A %d%-*.*s%s U %d%-*.*s%s C %d%-*.*s%s M %d%-*.*s%s I %.2f%-*.*s%s Structure written to %s @ change file protection ~ change file ownership C create a new directory D delete selected directories ! show directory statistics H help E,Q exit to current default dir O show broadcast messages^E edit a new file ^G create a listing of the current F,[CR] file manager (non-directories) directory structure^F file manager (directories only) K remove current directory I introduce another dir structure structure from the display L locate a file M move a directory R rename selected directory S rebuild directory structure U purge selected directories W show current default directory V show current SWING version ^D user definable options^W,^R repaint the screen < import files from another struc & show disk quota and summary * snapshot the screen=/# include/exclude files shown, /[{( set mark \]}) return to mark e.g. *.c, *.obj or test*.* % defragment selected directories N next page P previous page $ spawn DCL T top of display B bottom of display ? this menu Select option or to continue A - blocks allocated to files in directory C - count of files in directory D - the directory name G - grand statistical summary F - file manager = - file manager with partial file specification I - fragmentation index L - list the directory structure together with the statistical information M - the maximum file size Q - quit (see comment below) S - re-construct the statistical information U - blocks used by files in directory You can optionally quit and leave the stats on display, thus allowing cursor movement. To re-set the display back to the display of directory names, type `!' again. You can use the arrow keys, T(op), B(ottom), Next Screen or Prev Screen. This is the standard SWING cursor control. Select option or to continue @ change file protection ~ change file ownership +/- select/deselect files based on D delete selected files a partial file specification E edit current file^D user definable options ^E edit a new file A/Z select/deselect all files C copy selected files F reconstruct file list H help G - op on sel'd files L list (print) selected files M move selected files to another O show broadcast messages directory structure Q quit the file manager [CR],Y type current/selected file(s) S submit selected files to batch R rename selected files * snapshot the screen U purge this directory^W,^R repaint the screen X execute current file import/export files from <- -> change directory info format another file structure [SPACE_BAR] select/deselect current file =/# include/exclude files shown, % defragment selected files e.g. *.c, *.obj or test*.* [SELECT] next directory on the stack & show disk quota and summary [FIND] previous directory on the stack N next page P previous page $ spawn DCL T top file B last file ? this menu Select option or to continue ^D user definable options F reconstruct file list H help O show broadcast messages Q quit the file manager ^W,^R repaint the screen $ DCL & show disk quota and summary @ change file protection * snapshot the screen <- -> change directory info format N next page P previous page T top file B last file Select option or to continue C change the current definition R restore original value of the current entry Q quit and lose any changes E exit and save changes [SPACE_BAR] same as C * snapshot the screen T top of display B bottom of display N next screen P previous screen up-arrow up a line down-arrow down a line N.B. terminate the line with ! if you don't want the current file name (where appropriate) to be appended to the command N.B. you can then add an ^ if you don't want to be prompted to confirm the execution of the command you've defined for this key Select option or to continuecreate virtual displayinit menulabel border displayfmenu optionserase displaymenu optionsput line of menu optionmenu optionspaste virtual displaymenu optionsunpaste virtual displaymenu options FILE MANAGER OPTIONS FILE MANAGER (DIRECTORIES) OPTIONS DIRECTORY MANAGER OPTIONS USER-DEFINABLE OPTIONS DIRECTORY STATISTICS OPTIONS DEFRAGMENT these directories Y/N [N] ?YLAST CHANCE - Really DEFRAGMENT these directories Y/N [N] ?YSearching for fragmented filesSYS$DISKSYS$DISKsys$asigndefragment directoriesDEFRAGMENTATION finishedDEFRAGMENTATION finished - no fragmented files foundSearching %sCannot defragment files in the master file directoryAbort DEFRAGMENTATION Y/N [N] ?no fragmented files selected%s not accessible %s is empty %s is not fragmented %s has a version limit of %dFile not defragmented %s%s%s%sProcessing %sCreating backup copy%s - failed to copy %sSYS$DISKAbort DEFRAGMENTATION Y/N [N] ?Failure to assign channel1 to %sFailure to assign channel2 to %sCannot read %s - %sCannot read %s - %sCannot access file - %sCannot access file - %sCannot open %s for write - %sCannot open %s for write - %schannels assignedCannot truncate %s - %sCannot truncate %s - %struncatedCannot extend %s CBT - %sCannot extend %s CBT - %sextendedrestoring contentsCannot read file %s - %sCannot read file %s - %sCannot write to %s - %sCannot write to %s - %scopied %d blocksCannot d@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1l>1eaccess %s - %sCannot deaccess %s - %sCannot mark %s for deletion - %sCannot mark %s for deletion - %sbackup deletedCannot deaccess file %s - %sCannot deaccess file %s - %sfile defragmentated create virtual displayinit log file window FILE DEFRAGMENTATION - PRESS ANY KEY TO HALT FILE DEFRAGMENTATION - PRESS ANY KEY TO HALT label border disp_log_fileinit log file windowDefragmentation finished%d files defragmentedFailed to defragment %d filesPress any key to continue...read keystroke, timeout 0check_inputcreate virtual displaydelete_screen_initcreate virtual blank displaydelete_screen_initSYS$DISKerase displaydelete_screen_on* STARTING UP *SYS$DISK QUOTA %d USED %d label border display_deletelabel_delete_screenFILE FILE %s Current Device: %s %sSize: %4.2fmb Used: %4.2fmb Free: %4.2fmb (%3.2f%c)Total files examined %dPurged successfully %dDeleted successfully %dFailed to purge %d filesFailed to delete %d filesSYS$DISKSYS$DISKsys$asigndelete_many_files PURGING [...]*.*;* PURGING %s DELETING [...]*.*;* DELETING SYS$DISK* FINISHED *Press any key to continue...;io$_access directory lookupdelete many more files;;SYS$DISKSYS$DISK%c%sDisplay statistics for these directories Y/N [N] ?YAlloc Count Dir-name Files Grand-total Idx List Max Quit Stats Used ?!SYS$DISKSYS$DISKsys$assigndirectory statisticsRe-construct any existing statistical information Y/N [N] ? YStatistics already enabled. To display statistics for a new sub-structure you must first of all quit from this option (Q to quit), then select the new node for the start of the statistics display. PRESS ANY KEY TO CONTINUETwo options, N for a narrow listing, W for a wide listing [Narrow] ?WDisplaying file countDisplaying total blocks allocatedDisplaying total blocks used*.*Alloc Count Dir-name Files Grand-total Idx List Max Quit Stats Used ?!SYS$DISKSYS$DISKsys$assigndirectory statisticsDisplaying fragmentation indexDisplaying maximum file sizeDisplaying directory namesRe-construct the statistical information Y/N [N] ? Y%s - statistics option [? for menu] Create Rename Delete Move pUrge Quit Help Files Locate ?!C %dM %dA %dU %dI %5.2fSearching %sSearching %s %d/%dSTATISTICS GRAND TOTALS: file count = %d, maximum file size = %d blocks, blocks allocated = %d, blocks used = %d, fragmentation index = %.2f PRESS ANY KEY TO CONTINUEDIRECTORY MANAGER - EDITOR OPTIONSYou have not defined an editor via ^D, so you maynow select either EDT, TPU or the editor of your choice[H]elp[E]dt [T]pu [O]therSelect Option [Return to previous screen]Edit %s Y/N [N]YEDTTPU%*.*s%sSWING COMMANDS FILE EDITEDTTPUFunction disabled for captive accountsFunction disabled for captive accountsInput name of editor to be used [None] ? Input name of editor to be used [None] ? sys$login:edtini.edtsys$login:edtini.edtsys$login:edtini.edt%s %s%s %s;*%.*s;%d.DIR;.DIR;[::::::::creating - - copying - - copying - - copying - - closingFile to locate [NONE] *.*;*%s - Invalid file specification%.*sLocate %s Y/N [N]YLocating %s ...Failed to locate %s ...;sys$asignsearch for the fileio$_access directory lookupsearch for the fileFound %s What now ? [See directory, Next file, Remain here, Quit]Locating %s ...Invalid Input ...%s is not accessabletype the selected file via most Y/N [N]type the %d selected files via most Y/N [N]Ytype the current file via most Y/N [N]Y%s is not accessable%s is not accessableCSWING$USERCOMMANDSWING$SAVE:MUNG_XXXXXX.LIS.wfop=cbtalq=8mbc=8SYS$LOGIN:MUNG_XXXXXX.LIS.wfop=cbtalq=8mbc=8Cannot create file %s%s %s is not accessableoperate on the selected file Y/N [N]operate on the %d selected files Y/N [N]Yoperate on the current file Y/N [N]Y%s %s is not accessable%s %s is not accessable$%s %s3.2.1FM%dswitch '+%s' not valid. MOST_HELPmost.doc_fmmostMOST_SWITCHES %s Set the environment variable 'MOST_HELP' to point to the most.doc_fm file. *%%MOST-W-NOFILES, File %s not found Failed to get terminal info.Failed to initialize the terminal.LNM$JOBLNM$JOBEMACS_PID%XMOST > Spawning MOST DCL SUBPROCESS (Logout when finished)...Failed to spawn. Spawn to execute system command failed. Press RETURN to resume MOST SYS$ERRORUnable to assign input channel. Unable to initialize input channel. Unable to set nowrap. Unable to get screen dimensions.Unable to restore terminal characteristics. ==Unable to save current terminal characteristics.Unable to restore starting terminal characteristics.Unable to restore wrap state.SYS$ERROR[%d;%drM  [%dM[%dL[%dC[%dD[%dA[%dB[%d;%dH[%dm [?3l[?3h MOST(%.*s)MOST_PROMPT Press ? or h for help if needed.MOST_PROMPTMOST - Press H for Help, Q to Quit(Standard Input)ctx=recmbf=8mbc=16rop=RAHshr=upi,get,putFile could not be opened.File could Not be opened.File inserted.File already in window.File not found.File exists but not readable.Next file: Next file: cd: CWD: Unable to change directory.Find File: New file fetch cancelled. not found.         Top of Buffer.End of Buffer.Entire Buffer is in the window.End of buffer.Top of buffer.[?6h[?6l(%d,%d) %d%%[?6h%02X%02X[%dCUse Verbose mode to search for this string.Use Verbose and explicit Tab mode to search for this string.Search string not specified.%s NOT FOUND.MOST.DOC_FM Press H for command summary, Q to quit.MOST_PROMPTMOST - Press H for Help, Q to Quit%dYou are in wrap mode.You are in wrap mode.Function disabled for captive accounts.Sorry, you are not allowed to spawn in secure mode. Error re-initializing the terminal!!! Line: %d%: %dMark Set.Mark Set.Mark Set. Toggled to previous mark.Search disabled when Selective Indentation Display is setSearch disabled when Selective Indentation Display is setSearch /Search cancelledSearch disabled when Selective Indentation Display is setSearch \Search cancelledSorry, this command is disabled in secure mode.%dDisplay Width toggled to 132.Display Width toggled to 80.Width can only be toggled for 80 or 132 column windowsTPU %ssys$login:edtini.edtsys$login:edtini.edt%dEMACS_FILE_LINEEMACS_FILE_NAMEEMACS_FILE_NAMEEMACS_FILE_LINE$ SEDT %.*s -%d$ %.*s %.*sSorry, editing is disabled. Edit %.*s Y/N [N]MOST_EDITORMOST_EDITOREditor not defined.EMACSEDTTPUSEDT Error re-initializing the terminal!!! Unable to edit.File ring is empty.File ring has only one file.File fetch cancelledSearches now respect case.Searches no longer respect case.elete %s? [n]:File could not be deleted.File deleted.File not deleted.File deletion (+d) is not enabled. Toggle option (b i s t v w): Forced Binary Display mode on.Forced Binary Display mode off.Selective Indentation Display set at column %u. Disable Wrap to implement.Selective Indentation Display off. Precede the :O with a number to set.Squeeze Multiple Blank Lines on.Squeeze Multiple Blank Lines off.Display Tabs as ^I off.Display Tabs as ^I on. Toggle Verbose mode to implement.Verbose (display control chars) mode on.Verbose (display control chars) mode off.Wrapping on. Selective Identation Display suppressed.Wrapping off. Selective Identation Display implemented.Options not modified.Cmd: Extended (system) command cancelled.Extended (system) command cancelled.cdSorry, you cannot change the default directory in secure mode.quitexitSorry, this function is disabled. Error re-initializing the terminal!!! Starred commands may be repeated 'n' times by preceding the command with a number. EDT-style commands may be substituted. GOLD (Gd) is PF1 or ^X (numbers after Gd may be entered on the keypad or keyboard).N,NEXT *Next page DOWN,D,J *Down one line T Top of fileP,PREV *Previous page UP,U,K *Up one line B Bottom of file>,RIGHT *59 columns Right [#]G Go to line # W toggle Width<,LEFT *59 columns Left [#]% go to percent # E invoke EditorQ,X,^Z Quit from MOST PF2,H,? quick Help $ spawn to VMS ^R,^W Redraw the screen GdPF1,GdH full Help GdRETURN system command / *search FORWARD for a string PF3,R *Repeat current search \ *search REVERSE for a string KP4 set FORWARD:C toggle Case-sensitive search KP5 set REVERSE^G abandon prompt (cancel) SELECT,M set Mark^U erase prompt string INSERT,. set mark and go to previous mark:D Delete file (if +d set) (if present, for toggling pages)Gd2 split this window in half O,GdO *move to Other window :N skip to Next file in the file ring Gd0 delete this window (UP/DOWN arrow keys cycle ring) Gd1 delete all other windowsGdG Get a new file (if not SecureMode) L toggle window Lock[#]:O toggle Options: b Binary<->ASCII i skip lines Indented > # columns, s Squeeze multiple blank lines t show Tabs as ^I v show ^chars, w Wrapping for current window (v must be set for t to be set)Press RETURN for more...Press RETURN to continue.Set the environment variable 'MOST_HELP' to point to the most.doc_fm file.You are reading the Full Help file!mostmost -hFull Help fetch failed. Error re-initializing the terminal!!! MOST.DOC_FM Use GOLD 0 to delete this window, H for Quick Help You are reading the Full Help file!Too many windows. Cannot insert Full Help.   "$&(*,.02468:<>@BDFHJLNPRTVXfile manager initial display format (0-9) : Zprinter queue: \batch queue : fswing editor : pkeypad PF1 : qkeypad PF2 : @ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1>Prkeypad PF3 : skeypad PF4 : t keypad 9 : u keypad 8 : v keypad 7 : w keypad 6 : x keypad 5 : ykeypad 4 : zkeypad 3 : {keypad 2 : |keypad 1 : }keypad 0 : ~keypad minus : keypad comma : keypad enter : keypad period: func. key F7 :  func. key F8 : !func. key F9 : "func. key F10: #func. key F11: $func. key F12: %func. key F13: &func. key F14: 'func. key F15: (func. key F16: )func. key F17: *func. key F18: +func. key F19: ,func. key F20: $(,048<@DHLP*A " * " p @ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1'l>oz{Y{{{{7|||}j}k}}} ~V~~~~9} Z 4D ,0D ,nnnn ooooonnnnnD ,RS3StSSSSTTTZTTTTTT8U{U|UUVVVVsPtPuPPPPQMQxQQQQ#R$RYRZR[RRRRRRnXXXXXXXXXXLL,p<`XlJJ9K}KKK=LLLMcMMM-NxNN OUOOOO8P9Pn/nAAA'BZBBB0CwCCCIDDD)EkEEFFRFFFkn0LL@tL@tRWEDRWEDRWEDRWEDnnpt(X0tXXXXXXXXXX,p<`<,,8P,\`<,,8P,n<<eeeeeefKfLfMfTf[fbfjfkfffFGHGqGGGH1HmHHHH>IvIwIII4J5JvJJJn @ @^)Y TWVk'PĒư <i ޭޭԩ ||~?i|~ PRRRvѭRvˏ:n|:;ެUe1Se1ެWg[ XZCkPCP1hhhAߦ|: Mߦ|: Sߦ|; Yߦ|_ߦ|ߦ|qhth:Ģhh h:<hph;ĉhĽhhh8hihěhhCkPCP h-CkP0CP6nSSPPe!RЭQP@bAb֭PPeeZ3CkP6CP7:SSPPe RЭQP@bAb֭PPeeZ9CkP<CP7:SSPPe RЭQP@bAb֭PPeeZ?CkPBCP7;SSPPe RЭQP@bAb֭PPeeZZSSSe1X<~9$WެUe1e/SRЭP@cbEb֭ѭeXXP1W1UPHxWSCRbԭbeѭP3PSP@,xWPP@֭xWP@eѭPxWRBePWXXeXPW1{W',PG! fFQĸQѬ$1 ԭW1$\J[ZvXxUE[199kPSxRBkPS/"xRB"ĺߦ|jߦ|hk[ PG""ߦ|jߦ|h-PE P"xRB"ߦ|jߦ|h֭ѭW1-ƨ  nR\ \ P^WXUݬjScc<[cc>]cScSݬ8$ԭ|~|~߭P PeePT߭}TT TJ1VPfP@ݬc.c[ s.c[c.`]SPS`*^ԭ|~|~߭fP fPeePR߭RR1`R1TRJ1HRRSRTc!dPPP@hP d~Pd0ЬTTPR2BdPSSBd RR~CΨ^?XdYWVZ(@@ꞭЬS!͸;4;%ͪihXͪ\X?;Pf;f|~2ݬ PX<PTnѭ0 Pѭ ֭1rPѭ խ1bݭ,PrЭP2RBͪ i1:ư9 Ʋ91'ZЬTͪͪFaͪ@ͪͪKPPS!ZS#S'ݬSK1 ^W:U{RµSPµRµdЬPµPR{ {R߲l2m m{mzS>TdScm~PS1õdԠ,õS`P|^UVݬ1PP eP1ߥ l@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1>SެT[RSPS@b[SRЬTBdllTߥ }T1R T0Φp ݬߦp-[yRK\P1ߥ& l k8]f1)PµR<~PPRPʼnߥi@XRxxR\ScxR\cc ߥLEP@xRcxR\\\, fx{'P,UxRR\\CP9xPߥNߦpP1ߥVxR\Pq|Sߥ^CpP(TRTSPS@pBjߥ^CpPSߥ`DjzRbTCpDpjbgjߦpbwP PPP kwbw P Zwj jj2wR@ScPQRbi~QCR-µcԠ,µR1$'D.Pp:2P ^i yi6divR=MScRbDi~PRa-µcԠ,µR2P^]\<~P̉߬i}U ^Spݬ#PRߣph-NRPP^VTTޭޭ蛏dޭޭޭ|ЏYݬ+RRP3B:B#B[BRRPSެRbSP,UCe[CSUSPP8P1|Y1wԭmR蟭bP ƙbPdƦd߭P5խ0, 'ЭP@ŏP@Uխ1WXPŏUSCgPRR@RPSP@.RPSP@] RSRB:ݬ>PeYaPŏURBScgPRP@:cgPRP@] ƳchŏUP@Rbhb|PYUU1>խݬPYYP ^QЬP A0РRЬSC SQA0SQA0S ^ެSЬQcP@ cP@0cP@0СRcSC SQA0SQA0S^nTeRԭ&nbR֭ѭn߭߭mV\ѭ\TPm\\\d|~ݭR bR߭߭mP\\ m}m*P߭߭Qmf8m ^mSfdRQެPQ` PbRQQ`$mPP PP խ1cPѭP1Ѭ ЬQAP'bP A l߬ ߭߭߭߭lPP,ߣcP8P䚏P߭߭[lpBlP ^P߭߭*l?$^ޭ|~߭|~<%߭PRP R|~߭<߭PRP R{|~?֭߭jPRP RSP2PRRP<L^(Pͬ(`LͬPͭЏͰLЬUUUhPL`MPNXVͬ0PЬTԤdU&UPЬTvdxz^TЬP`QA+A. A]]AQP@QAݬdݬߤ ݬQA)PAPP: P[P]_AQAЬRR=ScߤRcߤRcЬ RR$ߤ%Rc'R|^#USԭX\X߭PPߥ?ߥ3PUMЭRBmߥHFmߥQެVffnPRխfTBd~qPBdRR|L^_V(Puͬ(`mLЬݬPͬPͭЏͰLTL`MPNXVͬ0P+P PߦV__PP͇͘S͈RRS͉RRS~ߦjݬxP^ެRbNPQТPA`!QPA PQP|^S Uݬ nnRnPQPA!QPA PQPPR!VBc^1PVݬߣ^Td^RbPOWߣ0ߣo^df^bPO2ߣ7M^dD^bPOߣE+^dլ ߣV^LPP߭ffߣXPeíef^fpfV]Pݬo]pW]ERbPeD]ef+]լ kbPP߭Fe|~e߭|~bPe-e Xޭ\Xse zeNe`e߭8eP<0^SfRЬP`,P<Q\RW@\KPP߭d)d߭YPbîbdA[߭[Pb[bud߭߭BdTdЬTd1:`UeP ߭߭TePbTbP$1["$[PPPT[߭ZePZ &ePb;bMPZ1gePm ߭߭TePbTbPTs|Z}1PTydZe|~c߭|~߭P1PPYPYJDYP1*?PRVŏVP@aTd@haScƼª│UedcVcP–e*ªe1 ݬXP1W?1 ^SŏS\L`RbWS߭L߭RPRŏS\L\`P`¦L`P–SŏS\L2`\l^|TŏRBS`ScPU|VcB_w߭B_P`߭ݬ|WPŏQA_P`WUA_PVV|߭)WĄ߭߭PP߭|^VЬPŏRBc_߭B_P`)B_Rb^~Ɗ߭@ެUŏeSC^TdkPR߭^RPPP RORBP~߭d^<߭C^)eSŏRB^0 B^96ƍE=B^B^ЬPݥPЬTŏTP@^RbSvŏTUE=^E]QaPROPRUP@^^%ŏTP@]QaRP@]SPŏTPRP@] RެRbЬSSŏbRB]PÖ ê|^ެVŏfP@]Td@b]ScЬRªﵤUedcfcP–e ªe<^ RµWP ķPUp P   yPU%II:P.EUDScHUc}Uc©¡UcUcUcUc$Uc'UcKUcSŏS\Ll[\l1ƶTNUdŏS\LL[QUdL4[P`#L,[P`^~L\[XUdLI[^UdŏS\L1[L{[SŏS\LZ\l1jUb[[|C'^\[-K\e|\x\|']\\\r|ֵ&]|õUZ\\0\9 \\0\݀PΤ^CVƆxͫƞƜͫPXTƱƤͫdͫPX)Ѭ#s8PPtWŏWP@FYRbXP~߭P X1!R߭RP"B  BPR߭RP߭ŏWRBYzWUŏUP@XRbSwPŏUTDXBDXRbPQOPQTP@X^%ŏUP@nXRbQP@XSPŏUPQP@X Q߭ŏWRBXγW1DYZz+WRR0R9 RR0RE~^X{X7y(PY^XղX y²(Y YCy'YYYy~YXykV\\0\9 \\0\}^ŏP@VP`PެTŏdSCVCeVScPRUŏdSRSP@V^"ŏP@5VQaRP@gVPŏdPRP@QV PR^[UЬR\eߥߥߥ%PW1+ߥ\3P1}1 |Rߥ%B*P*PSQSRPR@Aߥ%BPRߥ(CSߥ1BְPPRߥ1BPBCߥ<ߥ6ߥ4TPW]TެScR\[QTPT@\[ߥBЬSD\hVfTRB\ߥJ\fb\fWBߥYߥSߥQЬR\ׯPW&ߥgߥaߥ_\PW ߥmG3PW~PP!ԭഭ߭ЬS\|ԭ|ԭ߭߭߭߭߭߭ŝ 3PP1PP|PPrŲ |PcPRcRcR!cRcRcRWc0W PW02P ^Rݬ~zPP!5|ԭ|ԭ߭߭߭߭߭߭ "SS!ScJPQ!ЬPQ#ݬQC1PSsH7PQ!ЬPQ'ݬQSnPP<^wSլ/ЬP\?? 2ЬP\({P LF@86PU1ЬR\P \hb\TRЬR\PU=\Ä~xpn\iPUÊ/PïUVRbòUbUb Ub^Ub}UbwÀUbÍUbЬT\ÐUbÝUbàUbUbdQ2~2~2~2!~2~2~U bUdUլ SP ^}SЬR+Q>2~2~2~2!~2~2~ݬ Aݬ+ЬR#Q>2~2~2~2!~2~2~ݬ ݬ#bЬR'QG2~2~2~2!~2~2~ݬ ݬ''.ݬP^TЬRݬdb'P'RЬSSdb' S'# Sߤj#ЬR#lݬߤ?#Rݮdb"' ݮ'8#"ݮߤ#P ^SЬRߣ bRnݮcb' n'Ͼ#"ݮߣ{#ϖ<^?U{Tݬ9ߥPaߥPOR[PRPR@[RSCBRSRC]PRPR@]P-PݬSSP1PC[1CGGFP1ERbPrsG0bP ߥ!bPdޥ*dyP1P1(ߥ>ߥ3Px&PSӧSP1K2P^yBЬRЬSЬ TR3S#3S73TS')B ^ЬP1#RЬSTR3S#S73TS'ݬЬR73լ C'RЬSTR3S#uS73TTS'Q^qSլSQQTTQRPRT^AaASPUAPFAP S^8SPqQ-AQQPAPUARP AP9Q#80@@RP@PNqP@PP7P@Q@Q;QTP@P$Q @@TP@P@:PP^R2x\XPXB߭\߭߭yPߢPߢ0P#^qRw\rpX:XB߭\߭߭PߢPߢ0Px#\եT߭߭?\ԥ\T^EwRR\TE?\ ,^SwRЬP`1v[CPJPP1oX:X蚏B߭\߭߭-PߣPߣ0P"\T߭߭>\\T>߭߭\{߭|~ݬ~PbЬb\YPT >\R>y߭߭=ݬPbЬb=z=!A=ͣPT~=\ãP ^QuR߭߭`=qݬPbЬ<=U^2^^t\ p<`^OUtTޭSP߭ݠݠРRB$ݠ ߥuSߤpݬP ߭PP߭RbЬ ݬߤpblqbݬP~ߥa߭v߭XPQQP AQQPSq,PSPC CSqPSPRqRPPBqBRqߠRP ߥfP ߭t;hhdde;v߬hh߭yPdޭd9;R; ^SrR؟P߭ΟݠݠРQA$ݠ ߣuݬ^WtV@DEz:S:RC:S:RCRbPզp119cPf:R,R\mSm1R bR'SgFPP(RBD1E71լ լԬ1 PYY? 4PYY1.2YRR1RPP{ T  ` XH Xl@ H p  tXl@ H p  tx P?PP1P H <  P?PP71tP7P 1]~?PլE8 1PF8SG8RC71լ8 1wP8S8RCﷸ1Xլ7~ 1CPiߧz1+P@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1>7S7RCߧ*Dߧ+1P7S7RC1z7S{7RC;1^7S_7RCRb<f<ߧ}1P7S7RCRbu>&c>dž1BP6S6RCRb9?'?pǏQ1P6S6RCRb<<0ǘ1P;Xhq;l^P=XhQ=L>P>Xh1>,Pb1PBd91P51Pլ6 b;լ1Ѭ U1Pi1Pլ21PK81pլ11[P1Lլ1r17P_1(լ1N1P1Pլ1&1PX~ P1;P1R1SS1RCRb401S11RCOc\1n@1S 1RCR¼1Iլ0n13P2YR0R%a1Pլ0F1 P0S0RCR0S0RCvPt1լU01PV0SW0RCR>0S?0RCvP$1լ01kPլ P/S/RCRcRN'[12D/S/RCR¼ؔ1 լ/21PH/S/RC-N1PլU/1PI1Pլ-/1P<1Pլ /1oP1:1bPլ.1KP>3Rµ1TOy PRR 1%1RA1RPPA8                                                    >?PPs1j2RR%P\R\\@µRrDyǏZ1 P8PǐE1PǑ1PǫmP1{i-RТ,R\S-RТ,RR\\ʺѾ1cPt,R1P,TRU,R,Rբ4,SP,,RТ,ТRC,RբU,T, z,p,1P 1PtZ,Rb1RT=,U8,.,۾-,Rb0,S,,Rb ,bRC+RbU+T+I ++t1t+Sc+RB1++;+ |+Pr+h+n+Rbf+X+0N+PO+R@ -.+(++!+Rb++ +*1L*w1< 12P*T!RTRtTtѦt1*TJ *!R*RRw*q*Po*PRբ,U*O*|PM*?*P6*S7*RC$ * *ﺼ1cP)1U)T ))))P)PRբ,))ӮP))P)S)RC$ o)e)1PU)1tD):)9)RbEb-))!)RbR,բ,'P)Rb)((RbRբ,((S(RC 3( ((T1t((7XRRt(n(f(`(RR`(RV(P(H(RkP<(PRբ, *(((CP((P'S'RC 凉1BP'15t'Rբ1!''`'RТ'''RТR0բ,+'RТ'o'u'Rբ ТRբ,X' G'='1PլP/լPլ>Pլ&1WP2Y~_P1?&j1/P ^ﭵS_R֢|€&P€/Ѣ|)*\ P̹d&mP̵\Ѣ|*>&GPaPbbXPP <~< PP 2P ^S^RPbbXPPO <~ PP P^E\<~hP%PP,^TN^SPЬÀԣ|yUXrUPccXPP<~ PPQ߭߭z$|~|~?^$sPWW0 1ÀVУ|UÀ*t(nÀ)ѣ|#}(RP¹ RkµRVÀU|X ѣ|^PPccXPPn<~ P1P<1R#1* 1<~hP%PV' 2WP2P^-\Rt"\1"T\S"\"\լ4"PP""\Ь"Ь\@"\լS"T" v"l"^[RtZ"\l1\T="S8"."۴-"\l0"P""\l "l\@!\lS!T!I !!tP ^ZRt!SwS!F!!P!\@*v!Pv!\Ьm![!a!\@ A!7!P&!1S!ij !! !\Ь! . P \@ C-  \Ь  ?Pr  P^YRtn P`Z \L1H > 5  , P"   \l  0P\@ W-\l SP'P^XRt\լ1i_ ^\ЬUCI\Ь\0լ,+6\Ь-!\լ Ь\լ,k ^XRto\lEl\l\,լ,'P\l|\l\լ,hbPc\@ B 9/ܰP^IWRtﳰhN\\\\\PP\լ,QNPP\\Q\\P\\Q\\PP\\x\oiaQPUGP>P?\@!P^=VRt璘\M\\\\\\ۡPP\լ, ﳡPvPnPo\@Q|^]TUSk P_ Ь+j߭߭(߭ ߭7P1߭߭ځRdPcޤc߭Á R߭P1G߭߭i߭P1!߭߭߭gߤvRbPcޤc߭OUeЬVVVߤ4VWIbPc=c߭e߭|~ݬ bPcЬ c߭e߭|~ݬbPcЬc߭e߭|~VPbPcVPc߭eߤDbPcޤEc߭eߤFbPcޤcc߭e+VbĀwѬݬČgݬ YݬO~ݬ0^!TSݬTdPԭ߭߭߭߭Џ߭|~߭߭ݬdPЬ  Xޭأ\X[ l" ЭP@R߭dRP$PB~|~PBR߭O~RPݬ߭A~R߭1~RP"B~<~PBR߭~RP߭~P߭}P߭߭}PPP^dURT ߥ:߭߭j~ԭެWgSS}VfPS9߭|~Џ߭߬ ݬfPЬ QXޭ\X ~ЭRBߥ߭S}RSfRP%SBc~ }PBcRS|RPᕭPP^ЬP`ݬ P^,j >|^߭}^\^\K^ѩRݬ[56|(^\{^\c^a\E ^ISЬR.¼- {.¼] {s P^RPG H{: z^\̱^Rݬ z S2ez ^E\\ \}\\sme߭4{CSDRSRE\R\\S\ ݦ1PSRc|EPRP\\S\FP \R\9]EQQPP\\\Q\\ \\s/SR)RPBԭ߭Zz ^ SNTԤpPWMVWsFUUլߣ0cPRPߣaߣ2PRRUS1լ?)PR ߭PRRUMUݭݬ<~U^WVﳘP kaդp!ݤpߣcy zxl wߣ}Π^ﻧWMVԭ|~߭ߧ~xPfLJfPPǚǐP(@\d͢@͢ЬSͬͮ!Ͱԭԭ|~X\X߭ǨwPfǮf|~2ݭ PǴPѭ0 ݭPѭ  Ͳ1vPѭ*Ͳ1eݭ;PݭPЭRBլ vPv2լ %?<~ͦݭ~P1֦p1PݬͦݭP1֦p1^ЬR3*7%HPx 73泥ݬݬ<~R73# 'PЬP#ݬݬ ~<~#_լ "ЬP'ݬݬݬ <~'8P| ^ TJS;RuPլ 0R#YZuCRUDEu.PRċ)*uRļuPPլ ?PP߭YPP:RԣpR1tV,UPªvլ =fe?<~t?|P<֣p7P WfNeݭt{?<}P֣pbR1|գp#ݣp&t B sR/2P^TR?X߭<~@߭sP~߭CPP?߭VPYP߭<~߭gXYsGPPP ^WUЬTVT sPXSX?PCd~ sP?,߭ǒqrP VRVBdSSXĔFdRެSB1XRPR@hPPG7KKKKKKK?KKKGKKK/'P?P VPVPV PVPPk|^T@UЬPPߥpkߥpݬjЬQ<~~<|~İHjHݬjЬQ\ݬh.mݬhݬrhŎݬbhЬRmRR RR7ЬRŠShU<ĀQ2ePQQQPQf~Ǎñd@ñdVURǐñedR<ЬT<ĀQ2BhPQQQPQBi~ǒñ?d@ñGdRRǕñdR <ЬT<ĀQ2BhPQQQPQBi~Ǘñc@ñcRR ǚñcR<ЬT<ĀQ2BhPQQQPQBi~ǜñc@ñcRRǟñucñnnUTnicPRRTNݮJcRRTñP|(^凌T9U|~Xޭܥ\X?ЬVƢPSS2RB߭ġbCS!+VQ<~~<|~İHbHbĨbbP9nnVSnybPRRS+NݮZbRRSMbPP ^S8RЬQ<~~<|~ðH&bHP|^mS7UЬQhT2dPPPPWPe~ЬRRLa@bVaUTSݬ#aS9<T2ChPPPPTPCi~ЬRR`@baSSݬ`S 9<T2ChPPPPTPCi~ЬRR`@b`SS ݬ`S9<T2ChPPPPTPCi~ЬRRf`@bp`SSݬ?`^ެSЬQcP@R'TcP@PT#)УQЬPРЬPAЬQЬPAPT'' ^ЬQЬPAR#PЬ #Ь S_P #'S##R'P;y_P('R'Ь P'PQ_PЬ P''P'<^Ь RЬP@URPЬRBS'TRQAQ T#PРPBBQT''Uݬݬ@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1/>^3SD6X cPPR@ߣ?ߣmPߣyߣA\P3\P]R@略 A7PÃ'P(R@Rߣ{<^Êe~PR@APР,R¹PR@W#VYh]P1Ð#|~߭ü]PhhPPPݭWlݭPP￸1ﱸ PRBT'URQAQ U#PРPBBQU''PR@,QPPРPAWaAW`\bV_YVLYIkFQV:P`2QQVPR@RŲ<Π^cSt3U1X~߭>P1[߭p[P]PP\@Tdͣ[]~߭.Éͣ[P@ͣ[ͣq[Peͣe[PRR@R7ö߭óRjPÐ:;[-fPR,߭ø  [5P߭ZE\Ь,\̹߭kP\ͣlZͣ̉!\GIr0R-\R\2 PR&P\lPPRPE<Μ^?T1X~߭P1 \RLS#ͣYRb2߭*ͣbͣͣͣ_P4YVPP9ZbQP\Ь,\̹RͣYRP#Bͣ.BͣRͣXRPͣ߭X߭SkRP@Q'UP\L\ U#PТR@@\U''rl\mRL,XRPV\ЬM;A\BS*,Uﲀ8[PP\@S@\l[ ^T1KPPWsXX\LRolP1yGPH\@VbQWBWPQ A.]AQ\LPQ}xW@WScfVċfĄc\P6İĭPٓPĒc1Pj\Ь,\̹Ч,\̹W\XQAS'UQP@PU#Ь\AAPU''R 7!~IJ Pij5QPPP\@R|}\luc]||WECPĻ^RP\@_PA1P.3~P\@9WP\@ -^$Se,Rϰޭ߭ޭԭ۰ޭ߭ޭԭ˔|~|~0Pߣ"cPF߭ߣPTPޣY ߣ.TPbޣ?bЏ߭߭SPT0TP@: ߣb߭STP@: ߣd߭S߭ݬS^%Rf+TL߭ߤt߭߭TPŒߢfPߤxߤx|>Sog˜XV#¡ЬSSRP@c8Rp| ^yT*R߬߬ ߢtSݬRUePbЬbߢtSVf߬߬ߢtSЬSSeP$߭ԭ߭SePbSbߢtfPԭ߭ԭ߭ģePbĥbt<^NJT*SħPѬ eլP߭Rգp1ЬRLߣt߭߭RPČߤfP'ߣxߣx}QĘWġR/QP@b{=Qpߣt'RPPѬ e;PPc cߣtQPU9PPPc%cߣtQPUUO3U[|RbjbybѬ eėĈbPMĥbĴߣtPPPLUߣtxPߣtݮOPЮ ?0EPPČ}PRRRhPPR* J1uߣtO2PPC.l444444444444l44444444444444444l444444444444l1P?PNbNQNѬ eݬ51Pq\ߣtNݮMPcЮcߣtN O1! MݬMd~益PUU1U`PxyMk ߣt)Nݮ,MPcЮcߣtN;NU2PE_PUPUߣtMULPcUcߣtMkM\1FߣtM߭3MP0ߣt.Mݮ1LPcЮcߣt M@MARb-b bѬ d1b1 1ߣtLݮ KPcЮ cߣtiL?L1 ^9#R߭߭ߢt,L߭ݬ1KPbЬbt L=L^S"RԭЏ߬ ߬ߢtKݬJTdPЬ ߢt߭|~߭?dPb@bX\XQ bKЭP@dPP@  @P߬ ߬ߢt7K3JPbbߢtKJ^T!S)Y*V1IXnJ[IJJZƪ1sݬAhݬFhIPRB;BRe~YYdPWWPWPUߣtkUPcUcߣtj1PWЅPKh ߣtkݮPcЮcߣt\WPbUߣtT\P1/cTݬ1ݬJ11PѬ1PjPlPRЬRc>ԭ> [=ZaYѮ:BЬUTޣpQaU#TPP TP@pУpRP@pR QTУpRRWQVUpTdV2U UP@pR.Qա ЭP@pRQTUУpRRWW  PԼ ޮRgݮ)=PѭP~~ݮO~ ݮ( 0PԭP `P'ݮ íPRRB dխ W1(P ȸȭPkgjc<@|~vc<PcfcPP Pk/cWiTǼj/cWi-W߼JZhO;WVUpTdV'UQQPQP@pApQQüRTUѭ1PѬE1P1PՖ1PvPxݬЬTTiRxVRTݬr( T5P2s&1Ѭ)1PЬR¼͉:RP1ЬT/PUTЬVV~1T͉ļ9:TV4/TV81WTBPѬ[14ЬR¼͉9RP1ЬT/PUTЬVV1T͉ļm9TVh/TVl1TvPwЬT/MbTݬs) T6PѮ^111'Pi Rݬݬ&1ݬP11ѬD1P U8ЬR-ÓTrPȂgPTXȴȄPT@¼͉7ȶ͉7͉~RpȹPTTݬݬ 1ݬ߻Pf;1z1P Y7ȡlݬݬ_1~ݬhPZRªbRO)0"1:PѬI1"PЬTT; P1 / 6Tݬ1TコPѬ5ֹ1P E6ЬRRPTT(Rݬ@1_RJPT1JPѬW10# 5ЬRRPTT(Rݬ1RιPT1PѬ:۸1߼31Ѭﵸ1PX~ȢUP1nfP1\ЬRb}Rݬ[10RPѬ41  PRA4PZ z4RЬRb7}Rݬu1RPuR/04"[1\Ѭm1FP"7 P$ЬRRKP1 3Rݬ1RѷPPЬRRhP1J3Rݬ\1{RfPѬ1X}1BP32PPR2X~ǵP |2k2gݬݬ}1ݬPѬ1xVk2ЬRRP1IRݬY1.RP R ªbR1PѬh 1P1PPe~߼P1RݬݬX1wݬaPѬz1SP~Eu1:P+Pd~߼P1 Rݬݬ1ݬѴPE&RRRRZ1P|~K1l﹋1qѬ1ZP{}1BP߼,.11#PPRªªPª1PRRKTTRR TTTW1|~K1Ȣ﹊1qERFR/ TR5R/R(11ȴ]<1RRR|~1[18 TTRTRRRU1P1yVN|~1^Ph1A3P PRЬRc-P  1 1P0\1zP|PRЮWޮYUŏURBoRbxPŏURBYTdWKB,P*VBPŏURB%TdݮBX_PVUŏUP@RbVVRݬݬ 1P3ԯ1 ^gRSŏSP@P`rPŏSP@QaD@,PQPŏSP@OQaݬ@^SŏSP@%P`P^fR~+PQlQQPQQ#ݬE+ݬPQ+PPE%ゥ ^ЬScRS*RSP^=\ P̪l\!^fR\̪l\OE^RQެPQ` bRQQ`RPP<H^eSRbPR+RtQR*Ù@PPJYR1!*U *Tª1}ÛeX~߭PU߭JdJJ/P*PfPø僚e֬ JdbR1r2P<^dTe߼P)R?)RP$PB[BR)RPDY;R}PR(PRغ()ǺPP\+iPPč^SPPďXħyĚ[R1[UP^$(ª1IJЬPtdP`Ļ eբbbbbPТbSR'SR/bRePbRR12rZ(_ۜ\ZP^KbTdZ=R4wPn[ЬWVѬ 着o}'ЬXXPUjUPSQRCYX1U>1iWH&Js5&R5"&RP1PB:2RP@>@1%e~gR%RP1XU XU>X1U 1RbbRPѬ6R1%Uª1gleiqe<%P@;@PѬE+PSe~VV~PSSXѬ"SbPvҶ$ SaPčﰶ$ܧ.PѬĤe|ТR1$Ѭ \4[ n"ĭPPVľ=%վ˾xQgz8BmP 奄LQYg$PP)"P$P ^w^SЬP-~PÂgPPôÄأPPЬR¼"ö"~R[ùE~P^]WVX~ͣPP(P"S(`"X͈̓SPTЏW{ͣͣ-"P͇`S0P,P_P!ڳP?.S/RRS0RRS~ ! !( IPPSn_!TPdP dPff!P$,լê êJլê ê4cSլ"X@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1>~*  )PX~U P] イ ﰲ%| ^>e|ЬSSnPT/TT/Sݬ`PYekУݬݬn N@Zݬ dP@ PU1W[XYT_ttMvvFxx?ĪŪXdhPdYdTVVSPcRSgRST PTXdTT cP@kP"kPZ2 ZeU1P)  ﲵkY1߭{߭}Rx1g_\P^[\I^m[\H ^m\RS+P߭bPcޢcPߢߢP<P ^ \RSЬԭ߭߭ߢjPcޢ!c.GPߢ0ߢ$PӓP|^[Sެ Vf m aެUeRRROPRTe[P߭K߭߭߭߭PߣOߣ;PGfRТRTTeP|^ZRެ Vf  SެUeS~PTSeZ߭K߭߭߭߭Pߢpߢ\PfTݭydTSSeP0^YZTYլ !W PWRRRWRRR߭4;A߭dBPiޤiPߤߤP𣏕E<1ԭWR*RP&P-%P֭ RPPЭRլ1Rլݬx1RUXЬV  XURRRPRSU1߭蚏K߭߭߭߭ PߤOߤ;P﯐VRТRSSU1;*WP&P1ԭWRRP P?WPP.P֭RPPWPPЭRլ1Rլ ݬK1RUXЬV  XRUR~PSRUmP߭蚏K߭߭߭߭ޫPߤpߤ\PVSݭYcSRRUլ ݬRRRԭ߭߭ߤPiޤ!iUnPߤ0ߤ$PW߭߭߭߭Dլ1yN֭߭߭߭߭߭߭ʪ~ĀRbĖϡSc@ᄀbĨ﫡c@bļc@b߭rcPifi$9xԭ߭y|^UR"TެVf RU PEU";P(߭߭朗SUPSPNSESPPfݭP`SUPSP SUPSP1P~SPPK~K~=>߭߭&PddԨPPwS UPSP ^%UR:SÐ0È߭߭PߢbP ߭Ì(߭߭PߢGߢ0P߭ԭ߭ߢZ? PcޢscÌJP¢ŒP廓P\^cTVxS߼r Ƶr @rÐ1Ð0È߭߭ PߦfP3hhÌ(dd`` PߦGߦ0PhhddߦZH PcަscÌS PƢƌPﱊצP Ì ߭߭ﱦÈ hhdd { n Ì |ԭ߭߭߭rPWhh ddÌJ W1BխIŏdPNPR@PRVRTNR@PRVRPfPTvTP%VP~ݭƷ!" ݭ  ѭ5hh PcܜcÌ 2Phh︜ Pc靖cÌ} ݭ l PcocÌD ݭST F3 Pc6cÌ =hh|~W2GP PcWGPcÌ hhddÌ ߭߭߭߭߭߭߭߭r PWW1r) Rbm UePclcÌB Td߭8MbDePc8cÌdݭG bePc cÌdݭVbխ+hhښePcΚcÌd(hhﰚePc駱cÌdV~eUe{iTdPchcÌ> Rb<%c~V~V~y?e6dPc*cÌb<%c~V~V~ƘedPccÌbGPhhddWDPPcWDPcÌhhddÌ^hhƷcPccÌ=x5ԭhh߭ЭRRRǡ4PR*  PR d1% Ìta^Vέ BW|~?ݬVPfЬfPPƄ9Ƅޭ|ԭ|~?|~ PPWTP( bBƄF(&ΰ |~߭|~82~ PPW P2W2~PPWJN RWP^LTV|~|~^Pff|~PZZ1ЬXNthVhPd;PvPhЬWNxgVgPd;PvPgЬYVhRVgPbPRvRiSh޼$UVgRdCRVhPfPRvReԼ$Sh޼ UViRdCRVhPfPRvReԼ Цpƀ ƑݬƄݬZP^RЬPݠ<`~Mp! ^MR\SߢAPߢ/ߢ'ߢ%PPpգp]ߢ5 Pߢ^ߢVߢTPPpգp%ƒߢdڕ͕P|~&hݣp'$ݣp6%/ߣtu ^LSbRݬCPբtQ߭ߢt߭߭EPP߭ԭ߭âPbíbߢt ߭߭ߢtԭ߭ݬPbЬbߢtíPPPP߭߭Eߢtݢt^u\ ߬t[,^ݬPԛMЬԭܰE➭|||~|~߭ʏPPPQQQPQP|^KVnͬRѬISfbPSߦ~HSߦ?ij3ߦcNOjƌ45ƹ#PPѬD/ƻ8PwkѬ1メ~禍ƃPPoݮ[P͈M͊Ю͔͌͐Ë͖́͘|͜|ͤ|~|~͈ʏPPTP͇SSS͆PPSTTdh[Pp ّ~đP@P'BLP[P[PUUU1n1.YWh^TT!ݭjPXghѬdgPƄgޏheUͬRUn1P^[IRPߢ )Pߢ5tmPߢJPߢ^PIPܰޭԭԭP|~?߭ PߢyߢrP{Э\LPQPA] Q\LQƒLPPP^1HRo-߭ mݬ[߭WPŽ}^ݬݬ< P ^uRbPNQPQPb`PPQYJ5Pt tzbЏH&PbPbP߭߭<b^S T!dݣЬRݢdbPdݬЬRRPdbQhd P ^FSRߢt(Ь TߣXdB߭߭߭T"P)ݭݭߣdﲄ@滑Pd߭ԭ߭nPbqbߢtwPÑߣzPp߭߭ߢtݬü)* Pb bߢt߭߭ߢtݬك̃Pb#bߢt߭<߭ߢtrt ^A>XzRЬ Q3NS@PSVSTdCTnQV `PVfVTjTSdSŒ!ߢt[߭߭ߢt%SŒPb܂bߢtS%߭߭߭߭߭ߢtЬS߭߭ߢt^SmPS ߢtH߭<߭ߢt(tq ^9R߭߭ߢtݬPЬ t ^P ծ dߥZߥB;;Pߥ}ߥwߥoߥmPP ծ &;ŃAB4mqPլřIPųIԭ|~(; ߭HЭRB;ݮ|Rbݮb;ݮb ݮbլZ ݮbݮb0ݮbaݮbŇݮbżݮbݮbݮb!ݮbԮ6V1[' զ,WѦ,Pծ#ݮ%ݮЦ,R\'ݮ<ݮծ >ݮЦ,nn1sS0RGZZ@sk@s0bP@Hsk@s(RSs8ޮ8Tݮ8 PRB8  RP@8SR蔾8sKݮsWլ"SRbbPSW PRST0SRbdbYZZOc0kPZ ZP*@ccPZ@c -@cPPZcsk@s]ZZVsk@s0cP@^sk@s(SRTSs4ޮ4Tݮ4 PRB4  RP@4SR蔾4saݮW1}sTަR0ScbbY?ec(cZZjsk@s0cP@ׄsk@sRSTs0ޮ0Tݮ0 PRPB0  RP@0SR蔾0sqݮsTަR0ScbbYCuc(cZZzsk@s0cP@+sk@sRSTs,ޮ,Tݮ, PRPB,  RP@,SR蔾,sŁݮsTަR0ScbbY;Ņc(cZZŊsk@s0cP@sk@sRSTs(ޮ(Tݮ( PRPB(  RP@(SR蔾(sőݮsTަR0ScbbYGŕc(cZZŚsk@s0cP@ӂsk@sRSTs$ޮ$Tݮ$ PRPB$  RP@$SR蔾$sšݮsԮަW0Xcg1NOT;PVTRnPPfPRvRTPPTgYVT~ťc,cZZŬsk@s0hP@sk@sWXs ޮ Tݮ  PRB  RP@ SR蔾 sųݮfVnV1V;ݮ ;9y:,yej^ެTdPRФSBc RP޼Q@aPR甼P^7R \p߭߬tN߭߭P²P#eP|^17USգp:p߭ߣtN߭߭tPŲPd߭ԭ߭ݬ!PcЬcߣt-PPdߣtPPkdRެVBWfTR߭߭ߣtBdPcBdcߣtP)PdRBd߭߭ ߣtrPL6PcZPRߣt4PqYPcR PRPP^5RѬ~Q=^m5\^M5\D^-5\ ^KRS+Q,PAt<ߢ'beP1ߢeߢ)dP1ߢg?I|~A†PccPP¢˜PZb|üݬgP¹? P?S~QT~PA; 7~-~| ^IUTgmcIެVfScu un߭|~ݮ@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1> PdЮdĸS1jR3Sªnp!rR5bR│R>ݬPR4RP=ЬS#~#PPլЬR'ݬ'PPP^R|¼ݬ¼PPT^HUtSЬRdPۧRPª¦ R4’1bbRլ1͔͔?|+PRRR,`FR_R,RRRdK͔͔͐͐ݮPcЮcøørVPY PyPլ kcPϦY ɦT1wXvV_WhZQ[Ī1mYĦ T2Ħoլjň1rh(r8͔͔|~ݮHfPcЮHcøgŚ4͔͔|~ݮDfPcЮDcøg1ĒnլiŞqhq0͔͔|~ݮ@fPcЮ@cøgŪ,͔͔|~ݮ<fPcЮ<cøgsĒkլfŮGqh>q(͔͔|~ݮ8fPcЮ8cøg$͔͔|~ݮ4fPcЮ4cøgĪ1Ē1<ĈR1R1Rphp ͔͔|~ݮ0fPcЮ0cøg͔͔|~ݮ,fPcЮ,cøg͔͔|~ݮ(fPcЮ(cøg1߭߭ P@; @PP쟤ЬRb͟h߭b͟h͟oho͔͔|~ݮ$fPcЮ$cøg͔͔|~ݮ fPcЮ cøg<~e~Y͟͟d6P[PkP+;oh2o ͔͔͐͐ݮjPcЮcøkø1ĚBЬP߭Pü͔͔?nwPRRR,`FR[R,RRRYK͔͔͐͐ݮjPcЮcøkøQPY PyPdT1PL^BV諾Y|n|[ (@p(@p\@䞭曏@ܞ\ߐ|~߭ЬSSPiSiPP&Skmym 1P|~߭ЬSSNPiSiPP%Sƌ9m:,m 1PЏ \Ь Tdfhj|~|~ЬSSPiSi|~욏r~ݭ P/PPSƭll0 122~Pݬ|l}ol1(@pЬ Td|~ݬ&PiЬi|~2ݭ P-P(Pkkt1D.2~Pkk?1(@pЏ(Ь Td|~|~ЬSSmPiSi|~욏r~ݭ P/PnPSt[vScd[QPdT[d^h'ЬRլ v͈͈̈́̈́4h/hRV[cPRmZcZPdZdgЬ R~͈͈ ̈́̈́gygRŅZPRŞlZm_ZLPdOZdYg"<͈͈ ̈́8g ^R߭ ߭g|~ݬPbЬf<^4S0U߼MPPԭ|~߭øPeePPPEѬ -լY>PݬB'լP Ь TT"fݬTݬݭЬRTe,)P eeeeee2 e? ne/|~ݮ ;PeЮ eKe;`N`"e ```ݭ2PΤ^2WpYZV\(@ͨn@ͨЬTdͲʹͶͼԭݬ3jԭiX\X߭ Pff|~2ݬ Pz^PeCѭ0 Pѭ  ͸1nPѭ!͸1]ݭPGЭPЭRB j6ͬﳏ ͮ摒 լ ݬݬݬ ݬͬpcXѬ1 j1ǑPTǓPSTRBPUSRBoPRTSZTPEUR@XǕͲͬP[%PѬeXǞͲͬpP[X[ n͸bbXzbP{2PQPP"ݬXubkb]b#͸n1P|H^30V(PA(`:HЏHЬUelnpЬTdrtvЬ SSSPƧ\P8?US%P?2~USPP^﹤Rݬ.PbЬb^1SﱦT\P\R@(Wgߣ3cBP1ߣ5\P\R@g \\-ߌ|~׌ÇPdÐdPPäÙP?դp'ФpUùBPݬCUUVU? PUU1UPP  P?PP!1P!?PP=1P=8L$,0xTtL$,0xTt&?PP1P P?PP;1P;1?P1P߼7l^FQ0QRbeQbØQbQbxQ+ZBZ^4J^1 P 71PI81P71Pu91P;1P:1P<1P1:1PݬL1"?P1P1{PUVUp$߭ݬQ1SPUVUp:߭_ݬ)1+PUVUp\߭7ݬ1P!]yXQXPAPXQXPA5P1\zLXQXPAPXQXPAP1mΈWXQXXPAPcPv"{+XQ,XPAP7xj|~bPddPP1Px;1UVUp߭ϼݬ1PUVUp"߭ݬqtPUVUp?߭ݬILPÎZ-=P6ݬ#&ݬ1PPV?US Us VU1P߭ÐNMkZVQVPAP`iVQVPAP`UH1PU1nPֆ _VUVsZõö*VP+VR@ VV<^*UѬ  ЬPS ݬHЬ PPTp81P?PЬP;պ1PЬPG 1PЬP?sPЬPCWPЬQNOTKPVTRnPPfPRvRTPTVT~HPЬP!PPݬЬR#ݬ ~#լЬP'ݬ ݬ'լ Ѭ SP^)VެWgRK|;|COb$yKzlKRt1}U1gT;=gSz;P{PQPP*@;c1KKxŪUb ;Ś?ŚgRKŖCŚG gRŚGŒOeU1m~lЬRS2P|^Q(URլԢ||„€|tЬQ?tCx;„K|O€GˆGˆ#~#լЬP'ݬ'sլ1N€VТ|PVVSnPPfPSvSVPV„DIҷTdˆrISc@IdݢxݢtœIc@IdVV~zIc@pIdbVUIDV,4V|X^+SLVATݬ I H7PP}1}gȶRgRP'PBg~PBgRgRP߭BQg^PgݬXGPg7Pgݬ Pg!PgݬW߭PPP\\XXPRBflµUBfePBfPP(PPPG\\GePdGdBPSRBf\\XXPPP*PE/kk1?P߭oO߭TO1VPZOw߭2Oݬ]߭Oe1PO7߭N?ݬ ߭N%1Pԭ2\\#PdJdN1PN߭|~(\\qPÛ )Xޭˤ\XJN [խ1C1;ЭP@9NV߭N^߭ݬ߭MEMM*^ݬݬ< P<^'T"SԭЬRRѲUePDhP4߭eP ݬePcЬc8P#P;߭cP ݬJPcЬc߭|~ݬ'PcЬŲ ^&S6RݬݬCCбPbC%^}&Rcݬݬ CC^߭ݬ6PTPxRSQR AdSQQRTSPl^ (U8SmU߭ݬPVPЬR¼͙e͙nխ1kެ[̰$4 p(g4xnTnRxRRTR1td t 2P^!%WXGVߧ (Pާ ߭߭ݬ PfЬfPr(@]h@hЬTd|~|~2x PRRЭRRP qPP^!YXS[$ZmV(@￙iЬT@PƨƬƫƪ@itvxn p rߦp|~ƨ|~2*x PPĦPѭ ЬRЭ¦PЬTĦ<SʏS<RxRRʏRRSĚhRxRRR,< SʏS<RxRRʏRRSĖ< R ĖĚĖެWgTTxkRR|k~kĢUgSjTaRdbTRUЬT'ĀhRxRRRjޱĞĂĄlĆ,ĈhmĊČk$^]Y[ǦWЬS|Îztvxn1(@i@iⰭ|~|~|~r~v PPPPc.PPQ+1PgRxRRR< S<RxRRSRY< RYP<S<RxRRSRYx YRRCPZ|~RZ|~<1@~ݭ PPP*P)h|bXh|h|bV!jЬݬPXtxTl}͚lx}ͬ̀լpҬRRx ZTPRRRPPSS <XTSPѬe ѬdߧePSSzߧ.@1S <XTSP2PSS <XTSP<2RRXѬd Ѭe1Ql|ZXߧC13l|kߧX}TP|^C\VߦpͣX~ͣl%PP(PS(`آެ͈̓SPTЏW{ͣͣQP͇`S0P+PP߬ 4 38%P?.S/RRS0RRS~߬=ߦp֡ߦp߬B3á߬T3s"PPߦp߬V33NR0 R9SPSR@֬RR0R9Ckߦ߭RARZ RaRzPPPPvRARZ Ra RzPPPePRDRddPRSRse֬RRARZ Ra RzPPPݬߦ I^突[ZYXaWVVKU@T穀SR1ЬP֬`PPB5v~v~S?PbFPc>Pd6Pe.Pf&PgPhPiPjPk1%|8^ﵓTSS}Vߣ$PU+fݬߣ.ffPfUU{UV {ǒͷ{:P{TTSTSSP6C~PCݑSՑfSP Pムc|D "P1PSc1PPB5yyrP?PibPjZPNPkFP}:Pu.P"P}Py Pqc1WUW1MެTVGfRb-1WRWBRb1PPPB5yyrP?PibPjZPaNPkFPU:PM.PY"PUPQ PIb1#dSGcRb+WRWBc5PUU W1hԭ͏M9ʏP"(pﺔ1. KWnެW1ЬrTS`VUGRb. pd PpRbWRWB Pp߭pcP@PhRfPPePBׁhPh@ǁd߭pcPխ ߭[W1Vhp P޼RnWGb 7}YhSRRROP SP 1pN  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^ݬPЬݬ֌PЬw|~^URݬPЬޢ^ \߬P%߭߬PӋ߭uPPPPP^\ެe߬%c|~߭|~|~ BP߬\yP߬mj2P^YXﺈR;TWuVݬPߨo"Pլ1ŌȗŠd&|~f|~߭{~2g~ UbSdQdQP@bAbQQdSUUSS ]S Xd(|~f|~߭욏{~2g~ S!PbUdQdQP@bAbQQdUSSPP P ȴK2P^ԭݬUPЬS߭|~ݬ ĊPSS9SRެTSS dSBQRPRQ@cQ R޼SBcPP^\XƉV+Yﴉ[ʼnZW ̶梅1|~?jPPgP|~|~ f|~'2j~ PgPˏ8( fʏ|~|~ |~#2j~ PgiP1iT?S ěSԭ̰аT||~ğ|~PRRR4P2RiR:RiRьiP ki kPk|~|~ h|~#2j~ P>PXkUP| ^RƇS+TﴇUŇVnEr4|~|~ ۆ|~'2f~ Pq"P2\d\<\d\ᅨdP ePd ePezsr|~|~ c|~#2f~ P,qP¢IP}Pdqȁ2f~PPP^|~p|~߭<{~2~ P ^RSc-|~Yp|~߭{~2G~ PbQcPcP\Lb@bPPcQP ^RSQcPQPAb@bQQcb֣0^R ЛЬԭذܰЬ||~П|~PPP^̄P<^TެUSެRSbSeQTPT@aSSbSSTPP^!oT[ޮVЬSUcRRRPUPU@cRRRRURPRRЬP/ޮVЬUSeRRRSPS@eRRRRSRPRRЬP:nnVЬUSeRRnRSPS@eRRnRRnSPPPVRV$ެWBQRVgURPRQ@BeQRVRSެWgVVPRBfUU/RPRPЧQBaUU/ RPRPެVU/ ]BXPXSPSRS[BSRS.BYPRPUBW1RWQQ.1QPP.j?PP]11X SPS.@X1UPU@QQ.YSSPS-@1Q/1Q]XSP@.SSPS]@kSPS.@^Y SPS.@NYUUP@: SPS.@/S*XSP@.SSPS]@ PSPSW@UPU@bW1P<^kRЬPЬT`UTSTQcSEbCbPSP`TSDbCb`SCbTqSCbSSTP<^Ь S3RЬQЬPaUTEbDbEbUpTDbTTUPTSPP^rP߭<^ݬ* a^ݬrnA^ ܀P^ݬ6n̂ ^ݬn^ݬnՀ^ݬmx^e7`P^IGoDP^-3n(P^%n LP^լݬn(P^с mP^Rݬߢz^lP ^eSrRЬP׬PPbcaЬP׬P|^lVTЬS֬cRЬS֬cPRP&R"PTЬP֬`RЬP֬`PRPRRfwPUTTfݬ "SQRЬP֬`RЬP֬`PRP.R*PQPQR@ЬP֬`RЬP֬`PRPRQTQPQR@ЬP֬`RЬP֬`PRP/R+SQPQR@ЬP֬`RЬP֬`PRPR֔AQU0Dݬ ~RS1/Sfݬ C~1ݬ }R1 P ^!\‚SÂRcb{PPbPbccbc~èĵg̃b̄j̅؃̆~̇z̈YkSkBk̉j̊jP^e\ }^E\~|< ^%ShTѬPP~Ë|P~Ñ|ЬRRR|~|~ d|~'2}~ PUR|~|~ d|~#2|~ PUլk(|^TiVUFgScXfifv|ԭݬ]ݬSSi0i΀P`%߭iHPRRSPiReQ}iRPPСhePhePЭ Р h{{{Pdp{{${ߤ {Pߤp{pD!lc VccfB{P K{8^VgYgZЬSc:X{ fzPRަ RRߺzJߦ/ߺz;STzPRSXUSWUUiyPiPSTRTSU~TXyPRjPTjPiXtyPP^TvhU[fVfW5ySݬTPSݬP/ߤmw gPćgRˆyˆPŒġG gPfec;dy3fQ fRQR'Qe" RaP PcQQRQeefOPiyfff2e^~S~RbTУݬbP߰,xP b PbPР0bbcTP|^IU~T~RЬSbVdbSbP߰,yxPb( QPbPР0bbdVbQQŰ ЬSSwяP PSwяP P!"SbPdbPReРdbP d^t^7V |SvXwZoj[xWwTty \c P Lh\\cTjTDkYt+wYtwgtvg ~vgwLt P\Lt\cP\R\ Bt\cLttvaPUU1OPOP[g\rPPrPLreg\gLbesrr^]SsUìv[[ݬ@rPVZqWqYjPXXQQ1QPPtXTTv?PP`11SP 1P18V ecgV1'ei1PeqPV1PeߣgV1RV[/eߣgeXP@P~ieߣ gVPV޼QX@aRjPXXPPO %51?PV[eVPVЬQO@aO~iRjPXXQQM1QPPMVbbbb PJ?PPl1Pl TTTTTTTTTTTTT1[?PRV X1PRVR eߣgRei1PRVR eߣgRV['eVQVЬTXPPPXXAdX~i1Pei1}P1V[eVPVЬQ[@a[~iRjPXXPP1MMMMMMM55551P2?PXD6RVRPeߣgRVeߣgV1Pei1PRVR eߣ!gRei1PV[eVPVЬQX@aX~iRXTjPXX~!RVRPeߣ%gRei1qPXPPP@SpP1T1T21V[eVPVЬQX@aX~iRjPXX~1RVRPeߣ)gRei1P1[1WV[ ei1jPXVPV޼RX@bX X6X?XPXP@PPXeߣ-geX~ieߣ2g1eX~i1V[ eiyPX XMX HX CVPV޼RX@bX?XPXP@PPXeߣ6geX~ieߣ;g X X eVPVЬRX@bX~iemX X 1CVݬ]mPelPRFVP^ݬk+mݬmPqqP@vkլ bYZY^Qk2Ek?q .q-nl^ kkr\ ml^iUlkWkVЬScTT T:ЬRRߥ?gcRcP@P~f PR?fݬߥDg PݬT~f֬P^UNjYSmXi*i9p(phkX hkWi\l\{innWhSijVjTPRR R9Sߥ?fS\@\~d PS?dSߥDf PSR~dngiip\ݬ ݬ)hjPp^WY9ޥHRݮfhݮhPggP@fRhPhPZkGЬP`U:Y`ޥW Rݮ fFhݮ 8hPggP@fRhhPkS;ޥfRݮfhݮgPggP@fRhhPYTZkQЬPY`RMQRHQRRY`R1ņSݮfgݮgPggP@fShNPhGRCTRP=TR3ŕnSnfbgnUgPggP@fShhRYRP^SVmXTYSZS[~hWhPf1fffwjS@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1]y>HSTkURhPРCT`i.kRHhPݠ ݠgfhPSjShPTkSThPUkU ߬~PRhPà TRePTSݬ>=ShPРS`ij`ShPݠ ݠGgfRMRd:ihPOSR5SR=hPà PRPP~ RTTT:S{RkijRRRuRRPRP'P9g dRPRPShPàRPPRkijhP`iРRRРR`iui@RhPݠ ݠ'gdgd|^jR:RUeVݬ~bPՠ<TbPPSР0bbS/bPՠ<TP0 eVݬAbPР0bbSSbT b ^AjWQXeTg\ЬSSVV1SUS RUhS \\\iASU\\\OBR\R\d Ac$R\R\g\ìU\\\ dcg\ì RhR\\cRc~i:g\Pll@Plg\hg\ Pg\P g\PV |R\R\6d ubV Sn7P_R\R\g\lLP^ЬPԠ8b8a8b8b8b8bg$^UhP`\OO`\O`\N,Ag`\Ԭ8Mb8ma8-b8-b8 b8-bf$<^IcTg\ЬRRUR SU &fR \\\7BRU\\\S\S\d `S\S\Cg\ìU\\\dMa^g\ˏ8Caˏ8b`ˏ8!aˏ8 aˏ8`"a$e ^=eS@~E`PR~7`P(Qc A(cQVMЬЬ ԢW8>W8W8>W\$ЬQ"QPQP4PbPР4bЬP֬PQPQPbPР0bЬP׬PbM|^\Vf\ЬRЬ0PРUР SЬ4\P0f\Ь0PЬ44SRTdRU~f\RfPUS\R\ f\ì S~*Rf\ЬClCpZdRf\ݬ ݬd\WU^[STcRТ0ccR+T'߲,c\߼,UPTc\Ь0ccRTRcT c\ݬ,VU|^Y[Vb[Td\\UѬ0\SdRТ0ddR+S'߲,d\߼,,UPSd\Ь0ddRSRdS d\ݬ,Td\Ѭ0f"\f ]dfQUTd\SЬ R~HSR~ݥ(d\ݬ(Td\Х00d\Ь0R\4UmTRd\ЬBlBXRd\ݬ UeT^5ZWA[SYpTZUVfS{XFgRԢ8T8i8S8S8S8jX$ЧX' SSU(Tg\Ь0gg\ЬRRg\l@ЬkЬ-@ݬ,G-g\ˏ8{Sˏ8iˏ8]Sˏ8\Sˏ8;SЬjЬ$'Xì RcR\R\f edPcR\R\g\ЬklV@igX1-XlP ^XSc\Pլ<PPPDTRTWB*Pծ[DTRTWBPWDTRTBi1M1M1MRѬR1PѬP1cSRXRPnPPѬZ\ZVhPPP P XRRRX9MPPѬZXMPnPPѬZZT PP P P TTЬP`WPWPP P1jծ TЬUU1Q1L1SeRR URR LSHЬQaPP QѬ:-ЬQaPP QP%QSPP SS"RЬ US.DeTPT @cRPRP RDTPΠ^ݮKRbP }ݮbtYYbP(iZZbPX^ݮbPnUS| Ԯ0O8RR[Ԯ޼REbWެ,U,1W1W 1ծ 1[[70[1.K1޼ REbTT hծ [7Zծ0|Qծ uPTbSPSA@'PTuSPSA@PSPSAi@QQ -PT &ծ!Ԯծ0QXSPSAj@QQXW W~WW  W W[W 1TS$U,7URU޼PB` (Tծ0 SPS @U,UPU޼Q@a U, U[VTPP[ծ09[6006[TTTPPRPQRSPS @QPQP[  VTծ0PTnK[EЮ$STݮIbIPRQR1PSPSA@QQR1[1T$1Pծ01W"W W WW W~}#IuQծ(PSPSAi@QQ(WSRS?BSRSWP@PPB[ 3PQX*PSPSAj@QQXPծ0 SRSWBU޼REbWU,W W ծ 1/ծ6ЮSPծ(PSRS@iBPP(SRSBbPծ0[[USծ0!ծPXPSRS@jBPPXQծ(PSRSAiBQQ(SRSBCS!IGծ0ծIZG^GVGWURFa߭߭PrG\TP>TíSSSfYgXfgЭU1RUݭݭ'PS1$TQm4d4ѭ^5V5ѭQPQЭ\֭l@ѭQPQ\QLQ9PSQQ\Q LbQT~RSUSYfXgP^aLZnFY[FX3WgSЬ[[gzPPVSgRЬP`TPQPQ[1tFSKUSTPPR1:R15PSTPP R1R1PSTTPPLЬQVPQP?aPP[3QaPP1P4 P7P0P`PPm R1PS8TPP0ЬQVPQP#aPP[QaPPm R1PTPP HhS@i(j$RUR`PRPPPxPPPUPRIPRPPPxPPPR3TPP  P~SPP  P P RPRЬP`TPQPQ[1RPh^DZC[kݬ tYDݬ KDPXPPXެ VHRRS>ЦUkSzSaSR R3RSSTSTTSXRXSBtHeRRSìRRXe2PXRXtԮIUkUzUaUR R3RUUSPUSSTThѬ 2PBjC  T 4֬SkSzSaSP P3PSSRSRRTT֬{B1j1[CЬSSRbRR3SRbRRm#cRR01R11 R41R71mFЬSSRbRR6SRbRR[&ScRR01R11R41R7101 47/ЬSSRbRRSRbRR[cRRm1i[ЬSSRbRRcRRm1Cm!RbRRRbRR[1e/U[/PTA5PSTRRS*PbPP ARARRSmA.AU.A1U.AЬ@ծ ׬TPT@1ЬR֬bSkSzSaSR R3RSSUSUUSTRTBtRSR1TX1PЬP֬`RkRzRaRP P3PRRSPRSSRTPT@tPRP1TX1PЬR֬bSkSzSaSR R3RSSUPSUUVTRTBtWVW6j V_,V'j ]@1(V 1 W 1TX1YW_RV_LЬQaPP1QaRkRzRaRP P3PRRSRSSPPW11;P?jЬQaPPQ1>1j1~VyЬRbPP[iRP`PPmYRbPP0P1 P4P7@P`RkRzRaRP P3PRRSRSSPPW1 1P^>hjdV_ЬRbPP[ORP`PPm?RbSkSzSaSP P3PSSRSRRPPW11PV 1W 1TЬPPUծPP`PP 1]P 1UЬRbPP P ֬ЬP`PP P ) UP ݬiPS>N>$F>ݬiPRUiPRS->PݬiPRUiPRSS!Dt TXTS Dt TXծ$PUPRDtPRP S|CPծS TXXTyЬP֬`RkRzRaRP P3PRRSPRSSVTPT@tWVW1+jV_1V1jD=V  W TX1TX1;RX1& TB<ЬP֬`B1jP`PPj<OЬP`SS CBt ;S S ֬ЬP`PP P BPP dQRBaPP R ЬP֬`BjJЬScPP>SP`PP[.SP`PPmScPP0P1 P4P7j1ЬScPP%SP`PP[SP`PPmSRRX1PЮ1`^;[;Z ;Yi ݬ t;ݬ ;PZPԮެ WЮRBRRSCgUiSzSaSR R3RSSTSTTSЮR֮SBtЮRBeRRSìVV)P®VRBtԮ @UiUzUaUR R3RUUSPUSSTThѬ7)P:j:  T  4׬SiSzSaSP P3PSSRSRRTT׬91j1[BЬScRR6SRbRRm&ScRR01R11R41R71mCЬSSRbRR3SRbRR[#cRR01R11R41R7101 47.ЬSSRbRRcRR[ScRRm1n[ЬScRRScRRm1ImЬSSRbRRcRR[1#&T&Pk4PSЮRRS(bPP 9R9RRS 87&8T)&81T&8Ьn7ծ  ֬TT71ЬR׬bSiSzSaSR R3RSSUPSUUSDtRSR1T1TЬP׬`RiRzRaRP P3PRRSRSSRDtPRP1GT1@ЬR׬bSiSzSaSR R3RSSUPSUUVDtWVWGjV>jiVM0iVm&j 71V 1W 1T1XTWEV@P`RiRzRaRP P3PRRSRSSPPW1q1Pj1iVM iVmyЬRRP`PPiRP`PP[YbPP0P1 P4P7BP`RiRzRaRP P3PRRSPRSSPPW11OPjpiVM ibVm\ЬRRP`PPLbPP[@RbSiSzSaSP P3PSSRPSRRPPW1i1PV 1W 1TЬPPU`PP P ׬ЬP`PP P U:$ݬhP+$R5kkUhPSݬhPSSRkUhPSݬhPSSRѬRR Dt TPTR Dt TT R;ծ R TT1PЬP׬`RiRzRaRP P3PRRSPRSSVDtWVW1jV1ji VM1wi Vm1jj4V  W T1MT1GnЮS13ެ T3SQЬP׬`A1 jЬQaPPQji4[ЬRbRR OSP@t CR R ׬ЬP`PP P SP@PP dQSSP@aPP SSQЬP׬`AjGЬRbPPm7RP`PP+RP`PP[rPP0P1 P4P7j1ЬRbPPm!RP`PPRP`PP[RS1Pn1Hd^#V!X[7T7Z@3WѬkѬhPU21g 31d2PURU1g1BdPPjP eP;RPPU2RP@d['RP@dmRP@dPP04P1/P4*P7%Bd.RPPU%RP@d[RP@dmfPge2Bd ߦ,PRRU1KnhYԼ ЬSd|Rլ ShSkRRPdPjdhS^PSdSkPSSh׬SYjd1PSPSQլ ShSkQQPլ9Լ dߦi6dƆls1l߭߭Yq Э 7ЮnխYЭP^qQzaaPmPPiP`\\  P\l\\ `\\  PaaPP\Pl\\ ?`\\ 70,Pa\ PPa`\\ Pa `\\ aPPPPa`\\ PPPa`\\ PaPPa `\\ P^QRPPaaP`\\ Pa\ PPPa`\\ 0Pb P\\ Pa`\\ PPPa`\\ P\P\aPbbP ^! [v5X5WTVZpPY/YP/ghk"PP/t/(YPP`\\ Pe/Z/PPYRR1}3SRnYP/1b\\  \~1|\ TT1P\ YP\vR\\lR\l\\[\R\l\\1\4 \7\0AR\l\\m1R\l\\1Z\4ZP\7ZPZT1b\\0RPP&R\l\\[`\\m ZT1PbUU \T\\x\\T\\P\QP1TSV\\T\&R\l\\ RYgS\\x\\S\\hVZkQ\Q\uPUU  U U_TSV\\T\RR\l\\ FRYgS\\x\\S\\hVZk*PTSV\\T\RYgS\\x\\S\\hVZkRR1'YPP^13Y:-WRPU+-UPJPSSU1c2XN1Vg14c\\  \~1 \ RR1!P\ UP\JS\\UAS\l\\[1S\l\\1\4 \7\0S\l\\mR1c\\,SPPU#S\l\\[`\\mR1cTT Xi RXP%PR\\x\\R\X\PR\\x\\R\PP\P\OVQRRQSPP\P\4PTT  T TRV\R\SPRV\R\SPSSU1UP^0W+ZTXVЬYY[Y1*"hfRRYRRЬSxSRRhSdSPYRYR1`UPPhPffRPR`PP ì[PPdhgLjHhRSbPP :S6PbPP RRf%bPP  RePgSd֬bPP SЬR׬R1v1P)&hRRYRRЬSxSRRhSdSPYRYR1YUiPhh[PPhdgQjMiPhPRSbPP 9S5bPP RRf%bPP  RePgSd׬bPP SЬR֬R[P^ST XЬWdVcU(ìQQRxRPPQRPRPЬccЬdRPRPPP RRRUVWXRP|^uUrV3)Tլ@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1>gѬdd)(PxPP0PfЬeЬQeQRdQSQR+RPQPefQPRPR#RSP RdefS ^S޼RPbЬRPbbPPެQбPPc `PP Pױѱc бP`PP P^]TZSCV$' fPPPcYdXЬRcRQ/RUfRQQPRPdfcW,PW$PQUQWP'dcWWb7PcެRcbPcdPccb_'Xc&cPFݬ,PP{+,d(QPcެRbcdc9PcbcdRYcXdRP^9V6WѬ  fTgU޼RЬSSPb%SPxPPPS)S мfЬgЬ Sݬ 3,Pc{&*"PRRPc* *PPcTfUg^RbQЬbbPitQP^Rb%ЬbТP6A^1T~1%PSÐ%dc%5% ߤ6Z%PRޤBRRcj% ݬc\%SP ^ RR#S#\6SS+\ì \\S\\SRv) n)R PRRRSBT&$hPR/#\ﭻR#R\L'\^0P"P\L\^ P"P\L\^-TUV8$W"RSRンPRR0 R9\\\,PS\SRLPRR0 R9\\\֑R~1S\SL߭d߭a#խ1iЭPPa5e P>?PP1@P15"?PR\lRS)\ì \\R\\e~tPRS\lR#)\ì \\R\e\~DP f\e̐ﻵPf\̐Re̐R f\R̐PRvqяPoE ﺚP g/g&P&ﭠgP#!#!^Sz UWY"TVk#XPePPPO %1f?PQPeP\\Q1\PPQ$ P2?PPn1pPn hlt|hh1Q?P \̐Ri̐R \R̐PR߹ʳ}=*! PPяP1j ߘP dTd$$՞dPeяP18 P dd$$udPa hmPePPPA+Cw1?PRf\lRR8PRf\lRR PR ߣQf\lR;R\\giPR ߣf\lR;R\\gilPhh^︘PuP\LO\^m \P^R \lR$\ \\R\2 \~ݹ^R \lR$\ \\R\\ ~凉 ^QRS ߢf \lS;S\\ \P ^RSC ߢͰ \lS;S\\ c P^R \lR> R~^R \lRR ~Ÿ^ﶸ^^M\fR ߬/R" ߬W`P1bc"hяPMP bb,!P!bĒPE̋,P b識b 祥P bP^P ^R~S  \l(Pcc³ P߭ºcxc ^RS \l(Pcc½ﱰP߭c cխԭѭdd \ĭ\Əd\\~GPݭU^!\ яPM.P l4lH5P8!lP^\ яPMM’P l7ȺlɘPﵘlP^I\ яPMVP l\lp]P`IlP^{R\C̐} ^SZ\̐R̐RA\R̐<PR7"^P^ P^P^R6\lRRP<^UTS參\lS߭SdH~xPRdS\R P¬PRP R^SR\\fI|^MTBVk7qPPzڪfUﺪ\lU߭Uf\~PRBfS\R P¬PRP RsSfRR}Эa|^eTZVċ(iPU5ک&\lU߭Uf|~PRBfS\R P¬PRP RSf6RRЭ^P^\яPM-P l喝l穀PlP^ \*ӨP^Pﱨ^\P lwl P <^iTUSePRR0%R9 PS\SRLPRR0R9Se-S#Cq߭](ReR\Lo\^Ֆ\^P~j6P~B0eMU^^^3Rj\lR:\ì \\R\\~WPR7\lR\ì \\R\v\~!^aR\lRRI~R\lR+R~֮^ P^aWUOVeeTd V\lT߭Tfe~PRBfS\R P¬PRP RǫSfjRRЭ^~ݬ ^'SԭѬAݬcppPhplkjh1Pݬpjp[PhplkjЬRR4P#P!PߣPߣ<P߭haP߭|~hJ2P ,^Sݬߣ1߭߭ߣ4kݬߣD^PRߣTﮄߣd滑RP`^RݬݬݬPߢtj"jPbjfed|~|~߭|~|~b OPPP `^SݬݬRbPݬݬbPÄjjbPbjfed|~|~߭|~|~b PPP|^SUV.ÐϢPR߲,߲,PìeenPRRy RYPÿPrP߭,h`߭pPPR߭LRP%PB~TPBR߭'RPR߲,C6P1De߭˞TdPTC\fߣ1ߣ4﵁\ߣD敏NPRߣTߣdR\1W߭dPfC߭P\1.߭dPfC߭nP\1߭dPxCfTTݮ ݮ Pߣtͅͅ Pͅ|~|~߭|~|~ =PRPRR\~ޭnCݮݮ RbPݮݮ bPÄ bP}́̀|~|~߭|~|~} PRRR\\7>P ￸#~w P(犯Pt^sRZ [" T X Y!U|Vﯟe: e $eP\\ e \PPC,         f                            f1?P6 bﭞW1P ߢW1PWW1jWߢ1d1Y\d\\dߢFG1<ߢa81-Z x\l‚e ea PyPY6\lナP‘ٝ1P¬ǝ1º﷝1利1eS e cPPPB5x\@x\@1mb?P\h\\hvPihҜ1<P-ᅵ1) \SPlw PSjSSjN4Pij.SMt 3}t Všt ½tf Vt%1P\l \\a PiE 1LPϛ19\ \\ '瀞1P?tkVtVVtr1P\k\\kzR1P£?1\\\Piu7t<jtVVtٚDPtjtVVt ?ii 1\%\P \y \φ XWPeeSWP t^Ì\SttU1P[ﻙPtP̀P̥tRbP% ̨l11PtPtbPtqPtbPS1P^ ea~PYr1tezPS|P PS[TSPT^W4XVnԮYU ۃ nAY 1W[hZ~TEfR1RSU\ULf-PR\߭RS<>\SR~߭4h iYY` U\LfY1YE 1Ef1kh1:khjdP P PdP P dYpP3hJht}P P P}P P ծЮVnnG̯hjYw1^ՍRZPd1!P¯1Pr{P1 \wP *yP 1P \\!PaPfP…ŕPdN׈\\lZgﲤP@@ht ; $t 8 ,  @VAXCRTLLIBRTLMTHRTLEDTSHRLBRSHRSCRSHRSMGSHRTPUSHR\`d#N"AF^B%!F O' o'@Z*o"H{@Zk ' O' o'@ZH{@Zk O' o'@Z]_o"H{@Zk O' o'@Ze_o"H{@Zk/A#a/?#\ KzKG@CZ_a.!"A."S qJQJrF B1?!/"/"Y 5KK8GB.a#/_#P JKF`C{.A"a.?"T JrJF@BR_A/#!/"Z XK8KYGC!.#.#Q p\J<.Q O' o'@Z`o"H{@Zk O' o'@Z`o"H{@Zk!//""Y 5KK8GB./a#_#P JKF`C{.a.A"?"T JrJF@BR_A/!/#"Z XK8KYGC!..##Q  ##.l#,"TJ>",/Y8K,?,#/\K?#L.RQJL>L".UJ>"L/ZYKL?A# .PJ >l.SrJl> /XK ?/a/\ KzKG@CZ@ O' o'@ZEbo"H{@Zk O' o'@ZMbo"H{@Zk O' o'@ZUbo"H{@Zka.!"A."S qJQJrF B1?!/"/"Y 5KK8GB.a#/_#P JKF`C{W`/".b#/PGX KJKGB "@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1d >4/ T/4KZ TK.YGL/T J,#F`CYK./JX Kl/G[ yKzG O' o'Z`B{@Zk O' o' Z({@Zk O' o'@Z}bo"H{@ZkA."!.#R PJ0JQFB/"."X KJGB/A#a/?#\ KzKG@CZ_" O' o'@Zbo"H{@Zk O' o'@Z?"H{bo"@Zk_" O' o'@Zbo"H{@Zk O' o'@Zbo"H{@Zk O' o'@Zbo"H{@Zk/.""X KJGB/a/A#?#\ KzKG@CZ_a.A.!""S qJQJrF B1?!//""Y 5KK8GB./a#_#P JKF`C{.a.A"?"T JrJF@BR_A/!/#"Z XK8KYGC!..##Q a/A/[ yKYKzG C9? O' o'@ZQco"H{@ZkA.!."#R PJ0JQFB/.""X KJGB O' o'@Zqco"H{@Zk O' o'@Zpo"H{@Zk O' o'@Z!qo"H{@Zk O' o'@Z)qo"H{@Zk/a/A#?#\ KzKG@CZ_a.A.!""S qJQJrF B1?!//""Y 5KK8GB./a#_#P JKF`C{.a.A"?"T JrJF@BR_ O' o'@ZYqo"H{@Zk" O' o'@Z`qo"H{@Zkf/&#F/(&1"[ yKYKQ.#zG C#.R QJYJ'K 1KrFQ>r1Kq.SqJSFq> O' o'@Zeqo"H{@Zk!//""Y 5KK8GB./a#_#P JKF`C{.a.A"?"T JrJF@BR_A/!/#"Z XK8KYGC!..##Q GL>! O' o'@Zqo"H{@Zk/a/A#?#\ KzKG@CZ_a.A.!""S qJQJrF B1?!//""Y 5KK8GB./a#_#P JKF`C{.a.A"?"T JrJF@BR_A/!/#"Z XK8KYGCr O' o'@Z-ro"H{@Zk./a#P JKF`C{.A"a.?"T JrJF@BR_A/#!/"Z XK8KYGC!.#.#Q sJ.TJtF>a/A/[ yKYKzG C9? O' o'@Z#H{@Zk O' o'@Zro"H{@Zk O' o'@Zro"H{@ZkM. "-."PGR PJ0JQFBp0V/. X KJGB/A#a/?#\ KzKG@CZ_" O' o'@Zso"H{@Zk.a.A"?"T JrJF@BR_A/!/#"Z XK8KYGC!..##Q r1Kq.SqJSFq>H'#/Z#/"/"z/Y 5KKPK8GBzKF\KW=[zK"PGW48WW } ]ZJ|F?sZJ{Fz?H'%/Z#/.Y 5K/K[ J8GBKqGP JuC ZJ\KpFsZJ>uC|F? O' o'@Zqto"H{@ZkC/#/#PG/Z XK.8K '#YGX/k#8/U JKZ XK8KF.YG/ O'a#U JKZ o'(&Fȃ{@B1"BB`B@ZkA/#!/Z XK8KYGC O' o'@Zto"H{@Zk O' o'@Zto"H{@Zkn#aG~CG%N!Y! O' o' Z({@Zka.!"A."S qJQJrF B1% !/"/PGY 5KK8GBPG O' o'@Zto"H{@Zk# O' o'@Zto"H{@Zk# O' o'@Z0uo"H{@Zk O' o'@Z5uo"H{@Zka.A.!""S qJQJrF B1?!//""Y 5KK8GB./a#_#P JKF`C{` O' o'@ZUuo"H{@Zk#N"AF^B%X!F #GC8G!GEFVGEo'VG O'p{ o' Z?"E({@Zk%W!#GCFo&xis""BQF& O'd"n"pu o'Z"!{?"@Zk%W!#GC8G' &#p|"n o'AxO#!{?"@k%V!"FB0Fd"no&s"" F"N"!?"@Sk%V!"FBGI/?# )K #Z IK "zGI?z)K K"i/m""#[iK[Gi? O' o').Q 0JQF)>qKI.RPJ"2FI>?"i& s".Z!{@Zk%U!D5@@ N#AG^CzGo&s"N"#_"N"!?"@Sk%HU!m5`B"FBGo&s"N$#.D#N#n"?"!@Sk%T! '# F:&:;E=@B`"G BBAGBF6Gٔ@G"G B6GB4G 6Go' p{'g/&np&O& p1p.pRNn"aF~BFXk@"GFn#n:K o'AG"{6G@G O'CZ!?" G6G@Zk%S!GDFGDDG*"FB0Fd"n_"N O'G nFTt@?#. o'"8J!GZ{?"FGBF@Zk% S!GDFVGDDVG!n#aG~CG O'_""N o'Zh""{!?"@Zk%R!n"aF~BF O'#"Z o'h""{!?"@Zk%PR!.#!G>CYG O'#d#n o'Zh""{!?"@Zk%R!"FB0F& O'AD"|f"Nn"pu o'"Z!?"{@Zk%Q!:GFGG6GG6GN#AG^CzG|" O'nGFFM#_"N6FZF o'F"{6F!?"@Zk%Q!:fGFaFsFF`FF"FBG|F#GNAGnFvG@GZG O'#S$#.vGZ o'"?"!{@Zk%P!;GFFF6FF6FN"AF^BrF|" O'nGFY"?#.FZGF o'"F{!G?"@Zk%O!N#AG^CzG|" O'nGFF_#_"N6FZF o'F"{6F!?"@Zk%O!n"aF~BF O'q#?#|". o'Zh""{!?"@Zk%,O!N#AG^CzG O'_"Nt#Z o'h""{!?"@Zk%N!:f9`"FBF O'?##. o'Zh""{!?"@Zk%N!N#AG^CzG O'_"N#Z o'h""{!?"@Zk%@N!n"aF~BF O'# " o'Zh""{!?"@Zk%M!:&& N#AG^CzG O'_"N<#Z o'h""{!?"@Zk%M!n"aF~BF O'#p" o'Zh""{!?"@Zk%TM!;&GF!G9GVG GVG&n#aG~CG O'_""N o'Zh""{!?"@Zk%L!n"aF~BF O'#"Z o'h""{!?"@Zk%L!.#!G>CYG O'#d#n o'Zh""{!?"@Zk%LL!"FB0F O'"D"NZ o'h""{!?"@Zk%L!"FBG O'#8$#.n o'Zh""{!?"@Zk%K!#GCF O'_"Ni$".Z o'h""{!?"@Zk%hK!n"aF~BF O'#" o'Zh""{!?"@Zk%K!.#!G>CYG O'#d#nZ o'h""{!?"@Zk%J!"FB0F_"N4DJGFFvF O'F"vFZ o'n"{?"!@B@Zk%dJ!#GC8G[k@D#N{ O'GnF0dK_"NFnZ`CGF o'"?"{G!@Zk%I!GDFvFDDvF)"FBF$##.GGF_" n"Zz@?"ZN<DKN@CG O'vGGZ!vG o'{@Zk%HI!GDFvFDDvF."FBF O'?##. o'Zh""{!?"@Zk%H!N#AG^CzG#1KGn O'!FF_"NFZ F o'F"{?"!C@Zk%pH!n"aF~BFXk@n-"GF#:Kn o'AG"6G{@G O'CZ!?"6G@Zk%G!GDFGDDG)"FB0F0d"n_"N O'G nFTt@?#. o'"8J!GZ{?"FGBF@Zk%TG!GDFVGDDVG&#n0`@m @G--0 BR@S"@RS0B% 0C @_eGF_!<1`CG|GFGFX FF|CFN"AF^BrFUk@3" O'GnF9J#!GnZ o'G G"{B!?"G@Zk%$F!GDFGDDG)"FB0F6d"_"Nn O'GF n?#Tt@ o'."?"8J!GZ{BFGF@Zk%E!GDFVGDDVG&#:fm0`@ @G--0 BR@S"@RS0B% 0C @_eGF<1`CG|GFG_!FX FF|CFN"AF^BrFUk@n9" O'GF9J#n!GZ o'G G{"B!?"G@Zk%PD!GDFGDDG)"FB0F<d"n_"N O'G nFTt@?#. o'"8J!GZ{?"FGBF@Zk%C!GDFVGDDVG&#:f0`@m @G--0 BR@S"@RS0B% 0C @_eGF_!<1`CG|GFGFX FF|CFN"AF^BrFUk@?" O'GnF9J#!GnZ o'G G"{B!?"G@Zk%|B!GDFGDDG""FB0FBd"_"Nn O'GF n?#Tt@ o'."?"8J!GZ{BFGF@Zk%A!_#;F0`@me @G -0BQ@R"@12m0`B0B @?E_!;1@Ce@#1`@0`@GF |@|@AF|@6Fє@F"F |@6F|@4F6F:n"aF~BFo' O'"9#?#p{ o'."Z!?"{@Zk%@! . #PJ >EG=@B`"" B6 O'lpZn#aG~CG O'_"-"P@ o'b"N."Z?"!{@Zk%@!n"aF~BF O' #?#.E"Z o'b""!{?"@Zk%?!M0@Cm C?N"AF^BrF' O'""px o'"Z!G{?"@Zk%P?! A ú@@o'p#GCF#H&@A O'A1".B N_"ptN o'Z"{!?"@Zk%>!"FBG O'?#N. o'Ze""{!?"@Zk%|>!M @C/`,_"|@A"0.0JB ` H@@A"/XK?N#AG^CzG H O'@A0C 1"._"NZ o'e""!{?"@Zk%=!m `B"FBG"H O'_@A9##n. o'Ze""{?"!@Zk%\=!0@#GCF O'-M""N o'ZAe"{"!?"0A@Zk%CYGO& O'm#n#pr o'"Z!?"{@Zk%CYGo&:s"fd#n#"?"!@Sk%p;!"FB0Fo&CYGo&8us"m##n"?"!@Sk%:!"FB0Fo&Rs"M""N"?"!@Sk%:!/'O''&o'%ܡ"#{#py4!pZnGF"%K@A0""P.PQJJy Bu BFu BFԔF`F} BFs B4`FFA#GC8GM#NGnAGFvGZG@G O'#ZvG o'"{?"!@Zk%9!"FB0F9F"NGAFFvF O'@F"ZvFn o'"{?"!RF@Zk% 9!"FBG O'#9&#.n o'Zk""{!?"@Zk%8!#GCF-GF"!J O'_@ADAHVFA@D""3FZVFT`F o'k""{!?"DVF@Zk%L8!DGaDFG`DcDGg.#!G>CYG"#nGF O'"K#_@ADAHF@DAG|""""nR"NFZT F o'j"F"{!?"@Zk%7!.#!G>CYGo&ps"|f##n"?"!@Sk%D7!"FB0FM"GNAFFvF O'@F"vFZ o'n"{?"!RF@Zk%6!"FBG O'#n-#.Z o'k""{!?"@Zk%6!#GCF-" O'.Gn!F"FZVF F o'1F"{?"!VF@Zk%$6!"FBG-#G.!GnFVG G#VGn O' o'Z"{?"!9G@Zk%5!GDFGDDG"FB0F O'?#.|#m"n""""_"NZ o'j""{?"!@Zk%05!N#AG^CzGo&ps"|#_"N"?"!@Sk%4!Un"aF~BFA" O'nGF?#.FZG o'F"{?"!FG@Zk%4!9N#AG^CzG"#G F O'?#"J.|#_@ADAH6F@DA"""s"nFZ6FT@F o'j""{6F!?"@Zk%3!N#AG^CzGo&ps"|#_"N"?"!@Sk%3!m0`B BIè & N#AG^CzGo&Rs"#_"N"?"!@Sk%43!n"aF~BFo&Hs"#?#."!?"@Sk%2!N#AG^CzG#\ & &_"\  o'?"S~O#"ptN!{@k%2! Mm<!, _FCJ8mF4M6@J0-MFpF$͠B(m `7J@AFNBSk O' o'Z@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1>{@Zk##GC%1!8GN#AG^CzG '!& O'\r-"._"pt o'N"Z {!?"x @Zk%t1!m /K5JC/<#CK;C#.["rJQ#JQF#>.>"JuBC/]?#{#KZCKzGC?0`@.J<K."!F>BQFm"n' O'" o'"px#1`@!Z?"{@Zk%0!.#!G>CYG& O'$g#n#_"ptN o'Z"!{?"@Zk%@0!"FBGM#'N O'-##".?"p|nZ o'!{@Zk%/!"FB0F E. Ho'R EJ O'rF E>rH"e. #"?#SeJ"SFe> ?"p{ o'.!Z{@Zk%L/!#GCF%. H&Q %J O'QF%>qHm"E." o'"REJ2FE>?"equZ!{@Zk%.!#GC8GM#N' O'#q|n o'Z"!{D?"@Zk%|.! &"@ _&JR"@`&pԠ"FBG O'#n-#.Z o'f""{!?"@Zk%.!#GCF @A"Q./' O'RQJQ># o'"?"py!Z{@Zk%-!c/.#cK\CC.["CJ3B /".?#Kc B@/["KpC?c.."cJTB#GC8Gc/]_#|CK [cK'Gc? . O'"*g"Q J >n" o'px"#1BZ"?"{!@Zk%,!.#!G>CYG O'#m#_"Nn o'f""?"Z!{@Zk%8,!n"aF~BF . H-#E#U Jm#G >uH#/f""?"XKF? %N O'nZ o'!{@Zk%+!"FB0FE. H'R EJ O'rFE>rH"e." o'"SeJ?"SFe>qxZ!{@Zk%8+!.#!G>CYGO& O'm#n#qr o'Z"!{D?"@Zk%*!G@"&s"S@&J"U@,"1 CBD0@@c/cK:GK4@$.#D$J"F_F`F HHAD/KF7'K?G@Gn#aG~CGD."& O'QPJ"'J.qu o'"Z!?"{@Zk%)!/yHXK8G?d/dK :GK_#GCF0'".& O'_" o'"pt?"N!Z{@Zk%d)!"FBG0@@N' O'2'#.#p|n o'Z"!{?"@Zk%)!"FB0F@NDn L& O'"N o'pu"?"Z!{@Zk%(!C@8/Y8K8?M0!m, _F(CJF 6@JmFp`G$͠nCM `n7J@AGNnCSk O' o'Z{@Zk##GC%(!\FҨn"aF~BF O' o'Z&X]/"{M"\!"! Gx v/!@Zk-/ #@"Y 8K Jm#YG-?yJ# |KM/_"m"uSJZXKM#:GM?-#R@J .P J0F >p|K{K-.Q.TJF>M/ZYK-#zGM?l.#.#"JQ ZYKM?_" FJ-.";F#Q'-#X#Yf.#"?"S fJFYf>sFJX.TJtFX>\N O'.p|n o'Z!{@Zk% %!"FB0FF. H;" #R FJ"rFF>rH2?#f. #"?"SfJSFf>&s".ΰLn o'N O'!{Z@Zk%x$!5@"FB0F<g"no&s"XG""N"!?"@Sk%$$!0 #B#  M8!m4M_F0-CJ, FM6@J$͠(Fp`GnCm `n7J@AGNnCSk O' o'Z{@Zk "C .M".S JJU JxF0`B 2KTJUG>z2KTG>=m5`C*M.-. "R PJ0JQFB1n"aF~BFo&CYGo&ps"#n"?"!@Sk%"! _M.-. "R PJ0JQF"FHFHAs".TJ>I/)#YK Kï .m#/9f.9F.P JKS fJFJFrFqC 9F/9&/9#Z XK8K5vJYGB`#GCF& O'-"M".N"pu o'"Z?" 0@A{!@Zk%x!!#GC8GaG#NO& O'm#n#pr o'Z"!{?"@Zk% !!n"aF~BFA"o&/Ls"M#XK?#Nn"?"!@Sk% ! -.D .#c.C"Q sKm#.!#"TJtF> #/ JY 8KYG #?yJ"C/ZXK:GC?M#/ ."C.KP JR QJF qKrF"C>rqK!c.SqJSF!c>/ JX K8G?xJ#/Y5KG#?/m/\ K#.zK"GQ 0J PK"QF#>qPK5@AC.RPJ2FC>m. tJU JG>utJ/XKF? &d/#D# zH[ zKG&d?{zH#/\K|G#? *$.'" pHQ 0JQF*$>qpH'D.RPJ2F'D>n"aF~BFo&ns"#"?"!@Sk%!#.#!G>C%!yG##GCF/&.A& O'\rW_"N"n"pu o'Z"{ !?"@Zk%4!D-#GC8Gl' O'#n"p|Dn o'Z!?"{@Zk%!!1@G!DFF DDF8DFGX F!DF3@F<a@_".Dh"JrFFG HH@Y#y/vHYzK'K"FBF.$/'##d#&Y8K.$?c'"_"'D/ZXK'D? O'&/\ K&?#.PJ#>. o'pt"N?"Z!{@Zk%!#"FBGD#'N O'w'#.#p|"n o'Z!?"{@Zk%!D."$"R QJ JrFD>rJd.SqJSFd>5"FBFo' O'{#?#p{. o'Z"!{?"@Zk%!#GCF& O'$"._"pt o'N"Z!?"{@Zk%!$/"#Y 8K JYG$?yJD/ZXK:GD?D7_#GCF"no&s"G""N'"."?"!@Sk%$!"_##GC%!8GN#AG^CzG '.A&\r O'_"ptN o'Z"{ !?"@Zk%!"1@GADFF@DDF8DFGXGBDF3@F>eb@?#z/Dh"zKYGGF HH@Q"q.vHQrJ'J4v JFD9vKvH7K G0@@,GDFVGD@DVG9@D @GX`G.VG@PJVG>BD"1@@GADFvF@DBFvFXFBDvFBBvF"FBG,'#".?"LB#N O'p|nZ o'!{@Zk%!"FB0Fl/' O'Y"n _" "n"N#py o'"Z?"{!@Zk%!N#AG^CzGO& O'n#pr o'Z"{!?"@Zk%H!=@`a/*"a"yJXK8Ga?Mm(!$͠_FCJF6@Jm Fp`GMnC `7Jn@AGNnCSk O' o'Z{@Zk##GC%!\Fvn"aF~BFE.ALGEFNGEo " # #nGLFF&G O'GX GY"".pt_"NGZ o'B"!{?"G@Zk%!"FBG,' O'.#p|"n o'Z!?"{@Zk%!=@ab.*?"aB"SrJt2JFab>M!m_FMCJmF 6@JFpFB`7J@AFNBSk O' o'Z{@Zk##GC%!8GN#AG^CzG.A& O'9#"pt_"N o'Z"{ !?"xO @Zk%p!D6 pX ";;"9x"pB;"G 0@Cpb0!/0`@`@\K? 0A@?!DM !m_FMCJFm6@J FpFB`7J@AFNBSk O' o'Z{@Zk"FBGo&s"D#N#n#$#."?"!@Sk%@!_#N"AF^B%4!F#GC8G L , .A,@x aL[`@3"[7"+"#6". KQ 0JQF6">qK3B.RPJ2F3B>a:. tJU JG:>utJ7/XKF7?+B/.b/YK[ yKzG C .".+#+.#B"&b.+"Q sK#.TJtF#>./X K.?+"/Y5K+"?&/#B##b/\ KzKG@CF@0B!@ &.#B"#b.+"./#B#T JrJX KF UJ@8G.?xUJ"+"/sJY5KG+"?&b/[ zK&b?#/\K#?0Q.RQJrF0Q>""FBF@ #0Y/{K#""ZYKzG0Y?&B.#"..R PJ0JQFl"?"no&s"!@Sk%!L*"/'/'"Y 5KK8GBwN#AG^CzG& O'9#"_"ptN o'Z"!{?"@Zk%H!D@pX D;;$YxDpD;DG" 0@Cpd0 /0`@`@\K?0@ @?BDN"AF^BrFo&s""#?#"."?"!@Sk%!N#AG^CzGcD#L*B.'"'".R PJ0JQF" l?"no&ps"51B!@Sk%!.#!G>CYG lo&4`s"#n"?"!@Sk% !_."!F>BQF&"n"pu & o'O'"{Z#!?"@k%h ! O' o'@ZH{@Zk#GC8GxO !O&_# B O'0 b#n#rr o'"Zu {!?"o @Zk% !n"aF~BF9P# M#O&N O'H "#m#.n# rr o'"Z?"{! D@Zk%x !n"aF~BFo' O'"0 #?#8r{ o'."Z?" D{!@Zk% !#GCF& O'0 ""._" rtN o'Z"!{?"@Zk% !"FBGo&\s""?"!@Sk% ! !l/L/,#[ yKYKzG C #GCFo&<s"?"._"N"?"!@Sk%( !.l".U JJ F A#GC8G'H B#N O'#q|n o'Z"!{?"@Zk% !"FB0F' O'_"Mm"n"0 #H "#."#r|n o'Z"!{?"@Zk%@ !"FB0F/' O'""n"_"N#py o'Z"{!?"@Zk% !N#AG^CzG'&`r O'_" o'"?"qtNZ!{@Zk% !"FBGD/$# vI#YYK''K O';v Km" lGE1vJ vI0 " ,F2I"FJM o'"?"nrxZ!{@Zk%! "; N#AG^CzG' O'# "?"-0 b"n| "M"N"rx o'Z"!{?"@Zk%X!.#!G>CYG& O'#m#" -".H B"N"qu o'Z"{?"!@Zk%!#GC8G_#&M O'm#n# "H ""._"qt o'N"Z?"{!@Zk%t! / " vIUKJ9vJ ,GI@n#aG~CG& O' "4 ""._"qt o'N"Z!?"{@Zk%!"FBGo&8us"-##.n"?"!@Sk%!t="FB0F& O'C"m"Nn"pu o'"Z!?"{@Zk%T!q:o.#!G>CYG& O'c#n|#_"ptN o'Z"!{?"@Zk%! GAZ#[#0B z/8BzK\C -[#A"0 BM.8 BJB?N#AG^CzG& O',1CA1".|B"Npu" o'Z09C"{!?"@Zk%$!#GC8G|B#O&N O'm#n#pr o'"Z!?"{@Zk%!n"aF~BFo&l s""#"?"!@Sk%!x=/GF!G9GVG GVGn#aG~CG& O'"-"._"ptN o'Z"!{?"@Zk%!GDFFDDF:GFGG6GG6G}N#AG^CzG& O'#|"_"pt o'N"Z!?"{@Zk%t! GAZ#[#0B 8Bz/zK\C [#-A"0 BM8 B.JB?N#AG^CzGGF',1CEGFE O'F8GFGAX F|"s"n"pxFZ3C o'F"{29C!?"@Zk%p!.#!G>CYG& O'|b#n#_"ptN o'Z"!{?"@Zk%!"FBGo&l s"-#.#n"?"!@Sk%!#GCF& O')C"N|b"n-".pu" o'Z"?"{!@Zk%x!#GC8G_#M& O'm#|#n_"pt o'N"Z?"!{@Zk% !"FBG"/ H;HY "KfKYG"?`CyHB/ G&;gKZBK|#:GB? O'H "N_"qt {CN o'Z"!{?"@Zk%p!"FBG?#t"` B#N' O'#q|n o'Z"!{?"@Zk%!"FB0F& O'M"NAc"npu" o'Z"?"{!@Zk%!#GC8GB/ H<H&Z BKKzGB?zHCb/L"_" G[bKCYGW#rc#no& s"_"N?""!@Sk%!n"aF~BF "## O' #&s""?"-n o'.Z!{@Zk%@! 5C."!F>BQFw"c"no&s"#"?"!@Sk%!.#!G>CYGO& O'c#n#pr o'Z"!{?"@Zk%!n"aF~BF O'# o'Z&s"{"!?"@Zk%@! -5 C@n#aG~CG#"."Mo&s""N"?"!@Sk%!"FBG\ "' &#.O'p|"n o'*Z#!{?"@k%! O' o'@ZH{@Zk#N"AF^B%l!F#GC8Gx!.AO&_#tL O'` l#n#qr o'"Z?"!{@Zk%!Mm!_FCJ F6@JFpFB`7J@AFNBSk O' o'Z{@Zk#"FB%!G.#!G>CYGx!.A&t O''` #m "_"qt o'N"ZO {?"!@Zk%!5@#GC8Go&s"B#b#N#"n?"!@Sk%!Mm!_FCJMF 6@JFpFB`7J@AFNBSk O' o'Z{@Zk#N"AF^B%uH#/&Ps""XK?"F?#nn o'Z!{@Zk%8!5@"FB0Fd"no&s"D""N"!?"@Sk%!"FBG'D#N O'-#.#p|"n o'Z?"!{@Zk%!"FB0FC. H O'R CJ "rFC>rH"c. o'"?"ScJSFc>&Ps"nZ!{@Zk%!5@.#!G>CYGo&s"2d##n_"N"?"!@Sk%!n"aF~BF "'# O' #&s""?"-n o'.Z!{@Zk%0!5@"FB0F7d"no&s"JD""N"!?"@Sk%!/"UKJ99##CB@n#aG~CG9& O'O$"._"pt o'N"Z!?"{@Zk%d!"FBGmD#'N O'?#.#p|"n o'Z!?"{@Zk% !"FB0F&_"Npu &" o'O'"zZ#{!?"@k%!#GC8G'D#N O'p|#nZ o'"!?"{@Zk%d!"FB0FM O'"N o'&Zs""{!?"@Zk%!5@#GC8Go&s"D#Nd#n#"?"!@Sk%!"FB0F't O'_&M` c""n"qx o'"Z?"!{@Zk%\!5@ N#AG^CzGo&s""#_"N"!?"@Sk%! @ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1>n"aF~BF& O'pu o'"Z?"!{@Zk%!#GC8G)# cK"HY/_'_@Z#\ KZ@FY?|cK O'X.-"XC"m"PJ"GX>\# o'N"n&ΰs"!Z?"{@Zk%!9@G!G5@5@FG"ؔ GF=@G3@4FG4N#AG^CzGM& O'+ D"A#". o'?"PJ>N"puZ!{@Zk%h!#GC8G&M#N O'# d#9#n_"pt o'N"Z?"!{@Zk%!)"FBG' O'0 $#.#p|n o'Z"!{?"@Zk%!"FB0F& O'9C"N"pu o'"Z!?"{@Zk%\!#GC8G'0 C#N O'r|#nZ o'"!?"{@Zk% !5@?&11"@@n"aF~BFo&s""#?#."?"!@Sk%!N#AG^CzG& O'0 #_"4rtN o'Z"!{?"@Zk%X!5@#GC8Go&s"D#d#N#"n?"!@Sk%!"FB0F& O'4 C"N"qu o'"Z!?"{@Zk%!5@.#!G>CYGo&s"d#n#_"N"?"!@Sk%`!n"aF~BFP"'0 C#N O'-#.l ##"r|?"n o'Z!{@Zk%!5@."!F>BQF d"no&s" """?"!@Sk%!#GC8GO'&;㳤Z# ;C O'$;h c#(;c;#t_"N o'Z"?"{!@Zk%(!5@#GC8Go&s"D#d#N#"n?"!@Sk%!"FB0Fo' O'P"_"m #M"@ "?#"?" r{ o'.!Z{@Zk%\!5@"FB0Fd"no&s";D"N""!?"@Sk%!"FBG_#M& O'?#-0 "@ #".#m#n_"rtN o'Z"!{?"@Zk%!&DI"U@.#!G>CYGO& O'Fd#n#pr o'"Z!?"{@Zk%,!n"aF~BF/' O'|"#py o'Z"!{?"@Zk%!N#AG^CzG& O'|#_"ptN o'Z"!{G?"@Zk%! @@7#GC8Gb@}z#|Z#&/_""ZK o'GKN O'qtN?"Z!{@Zk%!"FBGb@|9#{HY/&|#ZYK_"zGY? O'pt o'N"Z?"{!0@@@Zk%! @@#GC8Go'KD#N O'p# o'Z"l"{!?"@Zk%L!"FB0F O'd"n"|C"NZ o'l""!{?"@Zk%!"FBG O'#$#.n o'Zl""{!?"@Zk%!#GCF O'_"N$".Z o'l""{!?"@Zk%`!n"aF~BF/'" &#py o'O'"{Z#!?"@k%!5@@@n#aG~CGo&Ns" "$"_"N".?"!@Sk%!n"aF~BF9P?#-8 C#8qB &N O'#m#n_" rtN o'Z"{?"!@Zk%@!5@#GC8Go&s"; D# d#N#"n?"!@Sk%!"FB0F' O'"_"m8 ##M0 #"".#r|"n o'Z!?"{@Zk%t!5@."!F>BQFX d"no&s"F """?"!@Sk% !#GC8G&_#M O'm#n8 #Hrt_"N o'Z"?"{!@Zk%!5@#GC8Go&s"p D#c d#N#"n?"!@Sk%l!"FB0Fo' O'P"_"m #M"< "?#"?" r{ o'.!Z{@Zk%!5@"FB0F{ d"no&s" D"N""!?"@Sk%!"FBG9#_#&M O'0 "< #"-#m#n_". o'rt"N!Z?"{@Zk%(!5@#GC8Go&s" D# d#N#"n?"!@Sk%!"FB0F9Co' O'P"MmH "" #?# r{ o'."Z?"{!@Zk%d!5@"FB0F d"no&s" D"N""!?"@Sk%!"FBG9#&N#m#: CM O'm" "nD #".M"N" ru o'"Z!{?"@Zk%!5@.#!G>CYGo&s" d#n #_"N"?"!@Sk%8!n"aF~BF"N# ?#-M#N& O'| c#n# " rt_"N o'Z"?"{!@Zk%!9@G!G5@5@FG"ؔ GF=@G3@4FGN#AG^CzGo&s" "? #_"N"!?"@Sk%,!n"aF~BF' O'D #|##9".#p|"n o'Z?"!{@Zk%!"FB0F/' O'_"Mm"n"|"# o'"py?"!Z{@Zk%\!N#AG^CzG/ H&\ K O'F?|H|#".| C"" o'PJG>"#?"NnruZ!{@Zk%!5@.#!G>CYGo&s"y d#` #n_"N"?"!@Sk%!n"aF~BF&#" O' #&s""?"d #n o'.!Z{@Zk%!9@G!F5@5@FF"Д FG=@F3@4GFN"AF^BrFo&s" "~ "#"?"!@Sk%p!.#!G>CYGo&,s""?"!@Sk%CYGo&!8us"m##"n !?"xo @Sk%!"FB0F& O'M"m"Nn"pu o'"Z!?"{@Zk%4!#GC8Go& ms"M#m#N#"n!?"@Sk%!"FB0F& O'M"N"pu o'"Z! G{?"@Zk%! A$A9#[#Y/YK;CA"0.Q0J0>n"aF~BF/' O'"#py o'"Z! 0A{?"@Zk%! A_pcGFxCL 㳜aG{GG`GG_&pP P QA=.M"m." /,/rJT JY 5KKF8GUB/@ ,.# .mQ CYGo&l s"m#n#"?"!@Sk%! L #T C 2B`9T L "qBU@"1@@ C 9CL #"q@C0CBDPD@@7`K0CG2"BT C9cT p$q`B@ U@p#:$CT CT c`T L xG0@@ L@X M$!m_FMCJ F6@Jm FpFB`7J@AFNBSk O' o'Z{@Zk#N"AF^B%d!F&#GC8G, x AGx`.A Z@`0@@c \@cD_#N"AF^B%!F]#GC8G.AM#No&l ms"#"n ?"!x @Sk%! GMm,!$͠_FCJ(F6@JmFpF BM `7J@AFNBSk O' o'Z{@Zk."!F>BQF' O'm"n "px" o'Z"?"{!@Zk%!.#!G>CYGd/ H O' "[ dK_"Gd?{H&/Ps"?"\K|G? o'N"!Z{@Zk%,!9@GF5@5@FF"ԔF`F=@F3@4`FF#GC8Go&s" G#N g#n#"?"!@Sk%!"FB0FL' O' g"|"Nn" o'px"?"Z!{@Zk%@!.#!G>CYGo&2s"|d#n#"?"!@Sk%! Pg@."!F>BQF*B/&.#b"+/+b#'"/'#..Z XK#.KU JNP JJ8Ko&Us"FYGF_"N"!`@?"@@@Sk%d!n"aF~BF' O'N"px o'Z"{!?"@Zk%!`.#!G>CYGo&1s"n#n"?"!@Sk%!#GCFo&1s"_"N"?"!@Sk%!n"aF~BFo&1s"ΰ""?"!@Sk%X!#GC8GLo&Ls" L#nN"?"!@Sk%!#GCFM.-"m.". "QJS qJU JrF 4JG>u4J/XKF?- `/@# :K[ zKG `?{:K/\K|G?-.M.0J".R PJ!`"QFT J JF">tJ!.UJF!> /#Y 8K ?@/ZXK@?/`#\ K?.PJ>#"@. "R QJ@>`.SqJ`>o&s"?"!@Sk%!.#!G>CYG.## |KP Jo&0F>p|K<s""."_"QN"?"N!@Sk%4!"FBG-' O'.#L|"n o'Z!?"{@Zk%!5@."!F>BQF g"no&s" """?"!@Sk%! A_#.#!G>C%!yG#GCF.A' O'x!P?"-l L"0 "m"" o'n"NO rx?"!Z{@Zk%!5@ N#AG^CzGo&s" " #_"N"!?"@Sk%!8_#"FB%!G.#!G>CYGl.A`n#aG~CG&C O'n_"ptN o'Z"!{?"@Zk%!BD_##GC%!8GN#AG^CzG.A _."!F>BQFL_"?"*B/..+b#&.#b"#.'#+/P J'"/U JZ XKNJN8KKo&Us"FFYG"!`@@@@Sk%!n"aF~BF' O'N"px o'Z"{!?"@Zk%!i`cDg@.#!G>CYG'B.*b.'""&.+"+.QJ./S qJ#/#b#JNP JKrFX Ko&Us"FG?#."@?"!`@@@Sk%4!N#AG^CzGO& O'N#pr o'Z"{!?"@Zk%!`n"aF~BFo&1s"n""?"!@Sk%!#GC8Go&1s"#n"?"!@Sk%h!#GCFo&1s"_"N"?"!@Sk%(!iDg@n"aF~BF*/&"/#"+".+"'b/'B#.B.\ K#/0JY 5KNR PJKzKo&Us"QFG8G""!`@?"@@@Sk%!"FBGo' O'N?#p{. o'Z"{!?"@Zk%@!`#GCFo&1s"n_"N"?"!@Sk%!n"aF~BFo&1s"""?"!@Sk%!#GC8Go&1s"#n"?"!@Sk%!iDg@#GCF&b.#B.#""*/+"#+B/S qJ'.QJ.b/'"YKNrFX KJ[ yKo&Us"zGG#"!`@?"@@@Sk%!"FB0F& O'N_"ptN o'Z"{!?"@Zk%!`"FBGo&1s"n?#."?"!@Sk%X!N#AG^CzGo&1s"#"?"!@Sk%!"FB0Fo&1s"_"N"?"!@Sk%!T_"FBGEo'.A:&Cp{ O' o'Z"{?"xO !o @Zk%|!#GCF)" J,HY.-# AIU JDGY>uJXB#X/_&?BR"XKAFX?\"#N O'm#8 Fn1'JZ o'A&s"{" 1B!?"@Zk%!9@GAF5@5@F6F"є@FF=@6F3@4F6F8n"aF~BF'+ C#A"#/"?"XK?N O'p|nZ o'!{@Zk%!"FB0F' O'M"N# c"n9"px" o'Z"?"{!@Zk%! O' o'@ZH{@Zk.#!G>CYGO& O'0 c#n#pr o'"Z!?"{@Zk%qPK O'B.RPJ"2FB>?"pu!Z{@Zk%\!$O#GC8G$Oo&l s"#B"n?"N!@Sk%!"FB0FOo&|0s""N"?"!@Sk%! o``$ "FBGo&s""?"!@Sk%!.#!G>CYGncGFo&ns""01CFG6FF"6F8G2FGX@F!6F3C6F?"@Sk%!"FBGo&s"n?#."?"!@Sk%!/C#c/\ KzKG@C@"FB0Fo&s""?"!@Sk%d!,೸.C"c.T JrJF`@"FBGo&!s""?"!@Sk% !.#!G>CYGo&s""?"!@Sk%! t_##GC%!\F{n"aF~BF!" #o&,s"#n".8 !?"= @Sk%T!#GCFo&l s"-"_".N"?"!@Sk%!Gy_"FBGo&8us"-#.#n"?"!@Sk%ȿ!#GCF& O'-"._"pt o'N"Z!?"{@Zk%t!"FBGO#'N O' %#.#p|"n o'Z!?"{@Zk%! [_" 0.0JB `DcD@@[#.0`@JB?N#AG^CzG& O'"1`@@"pt_"N o'Z"?"{!@Zk%p!"FBG' O'/#.#p|"n o'Z!?"{@Zk%!"FB0F& O'E"m"Nn"pu o'"Z!?"{@Zk%Ľ!#GC8G D#O&N O'm#n#pr o'"Z!?"{@Zk%l!n"aF~BFo&s"" #?#."?"!@Sk% !N#AG^CzGo&l s"#_"N"?"!@Sk%!n"aF~BFo&8us""#"?"!@Sk%!.#!G>CYGo&l s"#n"?"!@Sk%d!#h="FB0Fm"no&s"""M"N"?"!@Sk% !p&/&K8KN#AG^CzG& O'p"_"pt o'N"Z!?"{@Zk%! OT@"FBG\B#'N O'-#.#p|"n o'Z!?"{@Zk%D!GDFFDDF.."!F>BQF/' O'&""m"n#py o'"Z?"!{@Zk%ĺ!N#AG^CzGo&ps"#_"N"?"!@Sk%!h=o5`B_ _øB/"/#Z XK8KYG@@_n#aG~CG& O'"?"._"pt o'N"Z!?"{@Zk%!D"FBGo&s"iE#N#n#%#."?"!@Sk%!"FB0FM"$ON&$O O'" o'\b"npt"!Z?"c"{@Zk%4!#GC8GM#N O'$O#c""\b#n o'Z?"!{@Zk%ܸ!"FB0Fo&8us"M""N"?"!@Sk%!"FBGM#'N O'L%#.#p|"n o'Z!?"{@Zk%D!"FB0FD0@A"G/DFvFDXKM#?ND$OvFXF O'b#n#vFZ@ o'vFc""{?"!@Zk%!"FB0F$O""\b"no&lps"\B"\"N?"!@Sk%P!#GC8G$Oo&s"#N"n?"!@Sk%!+#GCF$Oo&(s"\""N\B"."N"?"!@Sk%!"FBG$/' O'#."p|?"n o'Z!{@Zk%h!G_."!F>BQF' O'Ne"np""px o'Z"!{?"@Zk%!!@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1`>.#!G>CYGVe#n$O& O'_"\#pt o'N"Z!?"{@Zk%!"FBGGO&^E#N@ O'p{#n?#.#pr o'Z"{G!?"@Zk%4!(n"aF~BFcD@DA9#p/0`@Y/K&ZYK{J@zGY? O'p1".#^"_"ptN o'Z"{0@!?"@Zk%!"FBGAo'Z#N O'`%#.#p[ o'"Z!b"{0`@?"@Zk%,!"FB0F@ O'@ApR"s"N"n o'Zb""{!?"@Zk%̳!"FBGpF#N O'#n/#.Z o'b""!{?"@Zk%x!  .#.Q p|K .QO@n"aF~BFo&|0s"#"?"!@Sk%! Oa@o$c .#!G>CYGo&s""?"!@Sk%@!n#aG~CGNGFD"/".21 BNAF2FvF@F!vF8 FtFGXFvF3 B?"vFo&s"@Sk%!#GC8Go&s"N#n"?"!@Sk%p!".#.Q "FBGo&8?s"-##.n"?"!@Sk%T! _#N"AF^B%D!F߁#GC8GO.A@n#aG~CGo&|0s"_""N?"!@Sk%Я! O`@o$c n"aF~BFo&s""?"!@Sk%!"FBGNG"Fo&s".O_"?"N;1@CaGn[GG`GG8@GGGXF"G3@C!G@Sk%!n"aF~BFo&Ns"""?"!@Sk%!B/"/#Z XK8KYGCn#aG~CGo&s""?"!@Sk%h!,೸B."."R PJ0JQF@@_ w_"FBGE.A&: C O'#n#pt_"N o'Z"8!{!?"@Zk%ԭ! O' o'@ZH{@Zk"FBGo&s"iL##N#n,#."?"!@Sk%l! O' o'@ZH{@Zk#N"AF^B%P!Faށ#GC8G=o o&pC/.ASs"_"ZCKpC?"N?"!@Sk%!D*@n"aF~BFo&l s"p"#"?"!@Sk%!.#!G>CYGo&!s""?"!@Sk%h!n#aG~CGo&bs""?"!@Sk%4!BD_#N"AF^B%$!FށҼ#GC8G/_#m#\ K [K?"F?|[Ks J" ." JM#PJm#G > [Kd?"M8 != R@JrFMM" /X K8G ?xJ 2J-/Y5K"G-?yJ/\ KF?|[KM# .PJG >m.S rJFm>s2J.TJtF> XK8G /m# [K\ K-"F?|[KM" . 2J" #PJ JG >#p`Km.S rJFm>s2J-".TJM"tF> 2J-/Y 8KYG-?yJ"M/ZXK #:GM? J荣\KF荳m.S rJFm>s2J.TJtF>-/Y 8KYG-?yJM/ZXK:GM?m#-/-"/" #\K?/Y8KzJ .YG-?&PJ >m#\KM./'? O'"R QJM>#M. o'"m. GSqJ-"m>RQJM>?"pyZ!{@Zk%0!N#AG^CzG& O'#_"ptN o'Z"!{G?"@Zk%ܨ! @@1A#:_#8/8KC`A#.PJ>$AR"["r.rJTBA#8/Y8K8?n#aG~CG& O' "_"pt o'N"Z!0@@{?"@Zk%! @@#GC8GL 'B#"GN O'p|?"n o'Z!{@Zk%! `@4@["Q.QJ3B"FBG"M#N' O'#C.#p|n o'Z"!{?"@Zk%8!"FB0F& O'_"pt o'N"Z!0`@{?"@Zk%! `@#GC8G'M#N O'#p|n o'Z"!{?"@Zk%!"FB0Fo&8?s"M""N"?"!@Sk%L!z 0 Ax&pU#GC8Gm/M#"[zKm? O'M"N-". "Z o'b""{?"!@Zk%!"FBG $/ Hm#_"Y $K"YG $?yH#D/b"?"ZDK:GD? O' d o'N"!Z{@Zk%uH#/&s""XK?"F?$N O'n o'Z!{@Zk%!5@4 2m.-"M.S qJQJrF+ /"K6J&.#!G>CYG -"/' O'A{##/"\K? o'.?"M4AJ3B`BA"py!Z{@Zk%!M0@CM}BCmG&/&ppN"AF^BrF5H O'4BBA#?#. o'Zg""{?"!@Zk%d!D]@@.@ Q@@@A{#."/KpC 1@@@AR"]"r.rJTB "1@@C@A#:_#8/8KC`#GCF,o&8?s"_".N"?"!@Sk%!z 0 Axn"aF~BF8H O'5CBAc ?#.n o'Zg""{?"!@Zk%D! 1@@AZ#:#z/zK\C/."!F>BQF O'n"Z o'g""{!?"@Zk%ء! 1@@A"]?#/KB@n#aG~CG O'_"n"N o'Zh""{!?"@Zk%d!n"aF~BF9H O'8%CCAB N#n"Z o'h""!{?"@Zk%!#GCFo&NSs"_"N"?"!@Sk%Ġ! Am0@ @;#GC8GLo&8?s"#Nn"?"!@Sk%d! 0 A)EM4!m(_F0-CJ, F6@J FpGmC$͠M `7J@AGNCSk O' o'Z{@Zk#N"AF^B%̟!Fہ#GC8GL #.A!1@C@0<.@lTb@ !1`@A@"0X/XKZXK5G|xKG0X?_."!F>BQF!1`@A@"0/#"KXKFz4Ko&XG0?Has"n?"bn!@Sk%Ğ!_#N"AF^B%!Fځ#GC8Gl ,.AZ@Z @c# 1`C @0P.PJRPJy_?# 1C @0/K\KyGqJHas"n?""n.!@Sk%l!B_#N"AF^B%`!FSځ#GC8G.A O#'N O'#(r|"n o'Z!?"{@Zk%!O -B0 BM m tB#GC8G_#&M O'm#n# " /"._"qt o'N"Z?"{!@Zk%T!"4<-,qC ,C>@ o C,1A A N"AF^BrFo&xs"""N?"!@Sk%Л!B#GC8G_#M& O'# "m#n_"qtN o'Z"!{?"@Zk%`!4< ,qB0C C?N#AG^CzG # o&es"_"" /N.?"!@Sk%!n"aF~BF"P# M#NO& O'-#. o#n#qr o'Z"{?"!@Zk%!n"aF~BF/' O' "# ry o'Z"!{?"@Zk%0!_##GC%$!\Fفn"aF~BF GO.Ao 5@ 0 @B 9@_" o # C0@ ,-S1B sB@B0@ 4CYG .## |KP J_"0F >p|KtMJ-. #"zJQ# |Km..AM""SmJFm>%""-/Y8K'YG-? O' .P J0F >p|K o'-.Q"?"NmxqxZ!{@Zk%h!D.#!G>CYG'N O'#tq|"n o'Z!{?"@Zk%! O' o'0Zo&8{Пs"?"@Zk"FB0F/' O'M"Nm""n"# o'xqy"?"Z!{@Zk%!DN#AG^CzGO&N O'#tqr o'"Z!{?"@Zk%,! O' o'0Zo&8{s"?"@Zkn"aF~BF" #?#'M##-"N O'|q|?"n o'Z!{@Zk%!D"FB0F&N O'_"tqt o'N"Z!{?"@Zk%D! O' o'0Zo&8{!s"?"@ZkM/-/ #"Z XK8KvHYGG-#{KM/#PJ >L " ZYK'zGM?& O'_" o'"?"ptNZ!{@Zk%ȑ!"FBGL .#L#-/q|KPJ`_"0FL >Mm"uSJY-KM.z HN #YGTJ-?m#XmFM>P#V "1CO-/s0J""Y 8KO-? o'?"NM/ZXKNM? O'VM.RPJ"rFVM>&0s"!Z{@Zk%!'#@ N#AG^CzG".#P J>"$.Q?"D.R DJD>d.SdJd>o&s"!@Sk%`!G_v #wM/z"v-/d/Z XK8K[ dKYG K$"Gd?{K$#/\K|G?x D. JR QJrFD>rJd.SqJSFd>{ /z.D/X KJZ YKG JzGD?zJd/[yK[Gd?_#N"AF^B%!Fׁ#GC8Go&!8us"M#N#n" !?"@Sk%4! GA/"\K?,Q.RQJQ>.J4J#A#._#8/8KC`A#]?".JC@A"0 @.]"AUJxtJ9#G>Y/ZYKY?0 @A#.J<K."!F>BQFm"n' O'" o'"px?"!Z{@Zk%!.#!G>CYGlO& O'#n o'pr"!Z?"{@Zk%!n"aF~BF " o' O'?#"p{ o'.!Z?"{@Zk%h!GA#.J<K!A1"DQ.:"QJ FDtBD[?#C@D]#|CAR"_?"r.t2JSrJFr>0 @A"/K5J.#!G>CYGm#nL' O'_"N o'p|"N!Z?"c"{@Zk%l!n"aF~BF O'#N" o'Zc""{!?"@Zk%!.#!G>CYG O'#Nd#n o'Zc""{!?"@Zk%̋!"FB0FM"N& L O'" o'N"pu?"!Z{@Zk%t!#GC8G%D#N O'#Nn o'Zc""{!?"@Zk%$!#GCF O'_"N'$".N o'Zc""{!?"@Zk%Ԋ!_#"FB%Ȋ!GՁ.#!G>CYG?o #Xp`K!\K O'FX-"\#m""XC"Nn o'Z&Ps"{" !?"@Zk%$!&"@.#!G>CYGo&s"?e#n3#_"N"?"!@Sk%ȉ!MGFA.TJ>(///K8KGGVGGVGn#aG~CGo&s" "H%"._"N"!?"@Sk%@!n"aF~BFo' O'(" #?#p{ o'."Z!?"{@Zk%!#GCF -".M"NQe"n' O'" o'px"?"Z!{@Zk%x!.#!G>CYGfO& O'#n o'pr"!Z?"{@Zk%(! Gm#`"FBF@8#X/'#XYK O'Kq|"n o'Z?"!{@Zk%!@rH0.0@@Q0JQF0>m S@Y_##GC%!8G)ՁDN#AG^CzG O''Z o'&,q< {L!M""@Zk O' o'Zo&&{"0q3LM"@Zk."'#UJ>,"?"-LN O'p|n o'Z!{@Zk%!"FB0F /"M."s HXKRMJyJT.rF8G ?"M>T"xtJUJ/m#GT>P_#\Kp[KLm/?#LM#F?[zK|:KLM"GLm?M?&-`"MM.M-"sJN"RQJ-#rFMM>P_#X-<CVm#O.qKM"U JO>N /XKN ?V .PJ0FV >N O'" o'Z&0s"{"?"!@Zk%`!&" @GAG@@F6Gٔ@G"G @6G@4G6G8n#aG~CGo&Ps"_"N"?"!@Sk%܄!n"aF~BFo' O'V"#?#p{. o'Z"!{?"@Zk%!#GCFo&ps"/"._"N"?"!@Sk%@!G_"FBG-M# "G.Fm/j"/?#-.zKKo'b@0J O'b@NAF rDvF@F"vF bDtFGXF?"vFCBvFp{ o'.!Z{@Zk%t! R_#N"AF^B%d!FӁ#GC8GL .AB'#N O'p|"n o'Z!?"{@Zk%!!1@ @!_"0.0JB`!D_ ?#B/KB@G_!1 @?G_#N"AF^B%!FӁ#GC8GL!O&N O'm#npr# o'Z"{|o !?"? @Zk%!n"aF~BF"o' O'?#"N ?"p{ o'.!Z{@Zk%!!1@G!DFG DDG8DGGXF!DG3@G?.GF"!BQ"q.QrJ'J9$B5$BG5$BFՔGF=$BF3$B4FF!D(.GF"!CY#y/YzK'K$C$C!F$CFД FG$CF$C4GFG!D!1 @G!DFvF DAFvFXF!DvFABvFGDGADFF@DBDF#GC8GAZ#&z/ "/"_"[zKz? O'n o'."pt?"N!Z {@Zk%!"FBG,&M#N O'c#.#n_"p o'N"Z?"d"{!G@Zk%d!n"aF~BF' O'"?#pX o'."Z!b"{?"@Zk%! @GG @ @FvG"۔G@G @vG @4@GvG"FB0F O'm""n"#0C"N o'Zd""{!?"@Zk%l~!.#!G>CYG O'#o#nZ o'b""{!?"@Zk% ~! @GAF @ @F6F"є@FF @6F @4F6FQn"aF~BF O'#7#n/#." o'Zd""{?"!@Zk%}!#GCF O'_"N/".Z o'b""{!?"@Zk%8}! @GF @ @FF"ԔF`F @F @4`FF#GC8GM#N O'_"Ec#N#n o'Zd""{?"!@Zk%|! l`"FBFo&Ps"V#/##n".!?"@Sk%L|!G_"FB0F& O'M"N o"n"qu o'Z"!{?"@Zk%{!#GC8G' O#N O'#q|n o'Z"!{?"@Zk%{!"FB0F' O'_"Mm"X"n"px o'"Z?"!{@Zk%4{!.#!G>CYGe/ H&[ eK O'Ge?{H"/ /"_"\K|G? o'."?"qtNZ!{@Zk%z!"FBG?#-&M#N O'#m " /".#_"rtN o'Z"!{?"@Zk%8z!GDFFDDF#GC8G&M#N O'c#n#pt_"N o'Z"?"{!@Zk%y!"FBG,&M#N O'c#.#n_"pt o'N"Z?"!{@Zk%Ly!"FBG?#-'M#N O'o#np\_"N o'Z"b"{?"!@Zk%x!n"aF~BF. H/#U J'G>uH O#/#"?"XKF?%N O'q|n o'Z!{@Zk%`x!"FB0Fo&s"O""N"?"!@Sk%x! #GC"@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1>8GC#N O'#nZ o'b""{!?"@Zk%w!#GCF/'P?" O'2 B4<"M "m"n#qy o'"Z!?"{@Zk%\w!N#AG^CzG O' # "?""c"M" o'"-?"nb"NZ!{@Zk%v!"FBG%/ H-c# #Y %K KYG%?yH'E/M"Xe" "ZEK ":GE?e O' o'Y.P J0FY>pKX%.Q%JFX%>"\E?"nqxZ!{@Zk%v!.#!G>CYGO& O' o#n#qr o'Z"!{?"@Zk%u!n"aF~BFo&/s""?"!@Sk%u!"FBG O#'N O' /#.#q|"n o'Z!?"{@Zk%C%t!yGiЁ#GCF GF@.|o .A?O @J1'J!F1FvF FvF,"FBF' O'<#/#.#p|"n o'Z!?"{@Zk%t!"FB0Fo"no&Ps""WC"N"!?"@Sk%s! _#GC8GM#NO& O' o#n#qr o'Z"!{?"@Zk%hs!n"aF~BF/' O' "#qy o'Z"!{?"@Zk%s!N#AG^CzG& O'# "Y#"._"pt o'N"Z?"!{@Zk%r!"FBG"/ H&Y "Kc#YG"?yH #B/_""?"ZBK:GB? O'b o'NqtNZ!{@Zk%0r!GF/K5JFF6GF6GPN#AG^CzG& O'#"_"ptN o'Z"!{?"@Zk%q!"FBG?#O&-M#N O'o#n#pr o'"Z?"!{@Zk%Dq!n"aF~BF. H/#U J'G>uH O#/#"?"XKF?"N O'Nq|n o'Z!{@Zk%p!"FB0F' O'_"Mm"n" # /#."#r|n o'Z"!{?"@Zk%Hp!$.$J0JN"AF^BrF& O'"p# o'Z"e"{!?"@Zk%o!.#!G>CYG b/ H O'[ bK"G b?{H""/M""m"\K|G? o' "Nn.e"Z?"!{@Zk%Lo!"FBG"/ H'Y "K#YG"?yH"B/?"ZBK:GB? O'Nlq|nZ o'!{@Zk%n!5@."!F>BQF' O'$c""n"px o'"Z!?"{@Zk%tn!.#!G>CYGo&8us" 0@#n"?"!@Sk%0n!#GCF& O'/"._"pt o'N"Z!?"{@Zk%m!"FBG?#-M#N O'o#n#Z o'e""?"{!@Zk%m!"FB0F B. H O'"R BJ?#rF B>rH&#b." o'"SbJ?"SFb> e".!Z{@Zk%l!N#AG^CzG/ H2H\ KGF?AFF.|H6F@FPJFJ& O'G>;c"bN@Fpqu"6FZT@F o'6F"{?"!@Zk%Tl!#GC8GPC#O&N O'o#n#pr o'"Z!?"{@Zk%k!(n"aF~BF O'#g" o'Ze""{!?"@Zk%k!.#!G>CYG b/ H O'[ bKm"G b?{H""/M""m"\K|G? o' "Nn.e"Z?"!{@Zk%k!"FBG"/ H'Y "K#YG"?yH"B/?"ZBK:GB? O'Nlq|nZ o'!{@Zk%j!9@GAF5@5@F6F"є@FF=@6F3@4F6Fn"aF~BFo' O's"#?#p{. o'Z"!{?"@Zk%j!#GCF& O'y#".O"N"pu o'Z"!{?"@Zk%i!#GC8Gm/M#-" "[zKm? O'_"."m"" o'"?"Mne"!Z{@Zk%i!#GC8GB/ H#Z BK "zGB?zH Jb//'m"`"[bK "[Gb? O'N #a". o'Q "JQFa">qJ"`B.RBJ2F`B>?"dbqy!Z{@Zk%Th!N#AG^CzG .#&\J O'K_"qtN o'Z"!{?"@Zk%g!9 @G!G5 @5 @FG"ؔ GF= @G3 @4FGN#AG^CzG& O'#"_"ptN o'Z"!{?"@Zk%Xg!"FBG?#'-M#N O'o#n_"p o'N"Z?"d"{!@Zk%f!n"aF~BF. H/#'U J O#G>uH#/"?"XKF?"N O'Nq|nZ o'!{@Zk%lf!"FB0Fo&s"O"N""?"!@Sk%(f!"FBG O'###.n o'Zd""{!?"@Zk%e!#GCF/'P?" O'2 BM4<" "m"n#qy o'Z"!{?"@Zk%pe!N#AG^CzG O' # "?""c"M" o'-"nd"?"N!Z{@Zk%d!"FBG"/ Hc#Y "K #YG"?yH KB/'M"Xb"ZBK ":GB?b O'N "Y. o'P J0FY>pKX".Q"JFX">\B"n?"qx!Z{@Zk%,d!.#!G>CYGo&s"c##n"?"!@Sk%c!"FB0F& O' O"N"qu o'"Z!?"{@Zk%c!#GC8Go&/s""?"!@Sk%`c!N#AG^CzG& O' # "_"qtN o'Z"!{?"@Zk%c!"FBG O#N' O'-#.#r|n o'Z"!{?"@Zk%b!s_#N"AF^B%b!Fˁ#GC8G.A O#'N O'#BQFl"no&s""""?"!@Sk%a!z_#.#!G>C%a!yGpˁ#GCF.A& O'/&tV1" O".N"Dru o'"Z|O {!?"@Zk%Xa!5@.#!G>CYGo&s" b# #n_"N"?"!@Sk%a!_#"FB%`!G9ˁ.#!G>CYG.AO& O' o#n#BQF b"no&s" """?"!@Sk%<_!#_#.#!G>C%0_!yGʁ#GCF,.A& O'."L o'"?"Nhqu!Z{@Zk%^!  _#.#!G>C%^!yGʁ#GCF.A& O'/&Ъ1"._"pt o'N"Z| {!?"?O @Zk%4^!"FBGo&s""?"!@Sk%]!l=`.#!G>CYGO& O'm#n#"n o'?"pr!Z{@Zk%|]!n"aF~BF. Ho'U J O'G>uH ?#/"?"XKF?bNdq{ o'.!Z{@Zk%]!cl="FB0Fo&ps"2D"N""?"!@Sk%\!P"FBG,' O'.#p|"n o'Z!?"{@Zk%d\!"FB0FB. H/'R BJ O'rFB>rH"b. # o'"SbJ?"SFb>Ndqy!Z{@Zk%[!5@@n#aG~CGo&ps"Y"_"N"?"!@Sk%t[!n"aF~BFo&xs""?"!@Sk%@[!)#GC8Go' O'p{ o'"Z?"!{@Zk%Z!C."!F>BQF O'm"n"Z o'&s""{!?"@Zk%Z!_##GC%Z!8G0ʁN#AG^CzG .A d@ 4"FB0F'L"N O'"m"" # /#.#q|"n o'Z?"!{@Zk%Y!5@."!F>BQFd"no&s"""?"!@Sk%|Y!"FBG' O' /#.#,r|"n o'Z!?"{@Zk%,Y!"FB0F/' O'_" "Mm""n#qy o'"Z!?"{@Zk%X!5@@n#aG~CGo&s","!$"._"N"?"!@Sk%pX!,!I,b7`"FBF?#-# M#N& O' /".l#n# "_"qtN o'Z"{!?"@Zk%W!5@2#GC8Go&s"nHD#N9d#n#"?"!@Sk%W!%G|!0 Qc@1BSe@B0@Ms`IT`@ Ub@*@/' /'#Z XK8KYGC #m#"FB0F_"M""m"'n O'#I"?"Xb@Y #.p|n o'Z!{@Zk%pV!"FB0FG. HTb@o'R GJ O'rFG>rH #g.?#"?"SgJSFg>Y"q{ o'.!Z{@Zk%U!5@"FB0FUd"no&s"dD"N""!?"@Sk%U!"FBG-#. _#M& O'm#n#L"N o"n-". ""qu o'Z"!{?"@Zk%U!5@.#!G>CYGo&s"d#q#n_"N"?"!@Sk%T!@0.J3gJ``0`@Y@9CCf/fK:GKW@&.&Jm_"rF&/&K6Km_#zGF.FJV J"FF/FKv K#G F."FJ3B"FBGL#&N O'-#m#n #._"qt o'N"Z?"{!@Zk%tS!5@#GC8Go&s"D#Nd#n#"?"!@Sk% S!"0`@ p@0@?N"AF^BrF' O' ""$rx o'"Z!?"{@Zk%R!_#n#aG~C%R!Gǁ"FB0F@O .ApB.""RBJpB>yJpB#X#\BXb#&XK O'8GX_"n o'?" t"N!Z{@Zk%Q!5@ @@p p8/Y8Kp8?_##GC%Q!\Flǁn"aF~BF@O .Ap.?#_#|@KUJp>p".M"XbX""\& O'[`K"GXb o'."N?"lnDuZ!{@Zk%Q!5@ @@p pY/ZYKpY?_#N"AF^B%P!Fǁ#GC8Go&7/.A,7\s"$7Ϡ7:1C7"7ﳜO 7?",7DBo 7$7O(7!@Sk%PP!n#aG~CGo&s""?"!@Sk%P!"FB0Fo&:s"N_"N"?"!@Sk%O!G . "u`J0 @TJ$@F>0@.#!G>CYG& O'h#R"kb#npt_"N o'Z"?"{!@Zk%PO!"FBG;CDD@7 K(#;C[GGD CDF6FDG6FG2F&AG O'X@Fs"n"pu6FZC o'"6F{!?"@Zk%N!#GC8Go&L#"N?"nru!Z{@Zk%L!5@.#!G>CYGo&s"b#n#_"N"?"!@Sk%pL!l3`"FBF# -#._#M& O' # "m#n_"rtN o'Z"!{?"@Zk%K!5@#GC8Go&s"B#b#N#"n?"!@Sk%K!"FB0F"no&@rs""_"N"!?"@Sk%TK!"FBGo&2s""##.n"?"!@Sk%K!#GCF,o&4s"_".N"?"!@Sk%J!n"aF~BF(7o&s"#"?"!@Sk%J!,, N#AG^CzG& O' # "_"qt o'N"Z!?"{@Zk%4J!5@O#GC8Go&s" B#Nb#n#"?"!@Sk%I!;"FB0F& O' O"N"qu o'"Z!?"{@Zk%I!5@.#!G>CYGo&s"(b#n#_"N"?"!@Sk%8I!n"aF~BF o&кs"?#" ?".!@Sk%H!(7,7$7ϰ777/_##GC%H!\FŁn"aF~BF.A G"FBGo&s"?#.#n"?"!@Sk%XH!DA"FB0Fo&8Ts""?"!@Sk%H!DYA@ E3Q@7`B 3aJ3W`JAs&8sAs&8s"k O' o'@Zo&H{s"@Zk@8@C 8K8WKA'A'#k  N#AG^CzG O' o'@Zo&H{ݰs"@ZkY@0Q@WB< 0J0WJA&A&"k8<   4     | $             8<   4     | $ O' o'@Zo&H{as"@Zk_" @`"4@WB44J4WJA&LA&L"k  lN O' o'@Zo&H{ٱs"@Zk.#!G>CYGo&Xs""?"!@Sk%D!n#aG~CGo&s"5"_"N"?"!@Sk%xD!n"aF~BFo&,s"I"#"?"!@Sk%4D!7/ 7O7;1@C7o7 C! N"AF^BrF4<o&7o@rs"" Bu@B:CDD@WK?":C:G_"<`C7."N?"!@Sk%C!n"aF~BFo&@rs""#"?"!@Sk%@C!7/7O 1 C @C`74BQF7"no&@rs"""!?"@Sk%t@! "FBGo&Ps"u'#JG#.#n"N!?"@Sk%$@! _ _G!EF6F E)E6F N"AF^BrFo&8s""?"!@Sk%?! _"FBG7/o&\s"#."7O?!n?"N!@Sk%d?!#GCFo&Ts"_"N"?"!@Sk%(?!n"aF~BF7o&\s"#"?"!@Sk%>!.#!G>CYG7ϠD&s@RBFBP?BBC`CA O'A c n"pu o'Z"?"{!@Zk%`>!#GC8G/_#b# [K\ Ko&F?|[K@rs".$?"_"PJ"G>".?"N!\ @Sk%=!"FBGo'n O'?#p{. o'Z"!{?"@Zk%=!#GCFo&ΰs"""_".N"?"!@Sk%L=!n"aF~BF' O'n"px o'Z"{!?"@Zk%=!.#!G>CYG/b# Ho&\ K@rs"F?|H?"._""PJG>".?"N!@Sk%o&@rs".#?#"TJ>?".!@Sk%;!N#AG^CzGo&s"_""N?"!@Sk%;!n"aF~BF o&hs"#"?"!@Sk%H;!#.#!G>C%<;!yGҨ#GCFGxc@UCBSBcBRB  BA@B !"c N#AG^CzGo&ns"#_"N"?"!@Sk%:!n"aF~BFo&s""#"?"!@Sk%\:!.#!G>CYGsc@RBCBP?BBC `CDA@ /"X KA J'#@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1;>!8G?xJZ#"/#"?"Y5KG"?N O'p|n o'Z!{@Zk%9!"."0`@ HQ 0Jzc@Y_CQF">#CUCBB.B `B ARPJqH@!2FB>l<_#N"AF^B%H9!FҐ#GC8GLG!FsZCRBZBP?BBC`CAD/' O'AF@Dc n#py[DFZ o'TF"{ !?"F@Zk%8!N#AG^CzG&nA O'H#w"-"._"ptN o'Z"{G?"!DG@Zk%8!A@ #GC8GM#NO&l O'#"n o'pr?"!Z{@Zk%7!Ol{sBZCSCX?CCBBAD  "FB0Fo&|s"AR""N"?"!@Sk%47! "FBGM#N' O'|$#.#p|n o'Z"!{?"@Zk%6!"FB0F& O'D"m"Nn"pu o'"Z!?"{@Zk%t6!#GC8G'M#N O'p|#nZ o'"!?"{@Zk%$6! @-.Q-J->n"aF~BF" o' O'?#"p{ o'.!Z?"{@Zk%5!_#N"AF^B%5!FҜ#GC8G _#o&/`# [K!\ K@rs"F?|[K"._"?" PJG>"N.!?"@Sk%5!"FBG,'""r9CQ_B9B\BC{C@CA O's"npx o'"Z!?"{@Zk%4!A@ 8 ADB GBFAGZGvG@GvG-#GCF& O'F"Nm"n^?".pu" o'Z"?"{!@Zk%3!#GC8GAZ#'N O'#p|"n o'Z!?"{@Zk%3!"FB0F 'E#"zRBY_C2CUCBB`BA O'H ?"p|nZ o'!{@Zk%,3!"FB0F& O'M"N"pu o'"Z!D{?"@Zk%2!@ @O?#""CAZ#z/[zKz?"FB0Fm"no&s"P_""N"!?"@Sk%d2!"FBGAZ#N' O'-#.#p|n o'Z"!{?"@Zk%2!\,y1BX?CCTBBsB@BAz#Z#/ZKGKFCAQ"1"q.QrJ'J='BD"FBGo&ps"&#.#n"?"!@Sk%`1!#GCF&A O'A1".R"Npu" o'Z"?"{!@Zk%1!#GC8G o&@rs""`/@#?"_"[ zK`?/\K?N".?"!@Sk%0!G_|@[CdCY_C$CCBA@B  M."!F>BQFz@Y_C$CUCBB`BO&A O'{#n#pr o'Z"{?"!@Zk%/!AD! "1@,@@As"^".JuBq@P?BB[CdCZC CA@AD! s"_"A .TJ>p@\BCZCDC9CC@A1" "Q.QJ3B"1@@_"FBGL o&"s"#."l?"nC#N!@Sk%.!#GCF"'#y1BX?CCTBBsB@BAZ#N O'p|n o'Z"{?"!@Zk%`.!"FB0Fc.C" H"S rJ#Fc>sH?#."?"TJtF>o&@rs".!@Sk%-!N#AG^CzG& O'#_"pt o'N"Z!?"{@Zk%-!"FBGC/##o&Z YKC?@rs""c/_"#?"[yKc?"N!@Sk%8-!_"FBG GfFEt{CSB{BQ_B;BBCDDFD.AFTG': C O'AAF c n#p|nPFZ9'K o'"?"{ 9C!@Zk%t,!"FB0FL_"$.b" SJ#T J?#F>tSJ#."?"\ UJo&@rs"F>n.!@Sk%+!#GCF&n O'_"ptN o'Z"!{?"@Zk%+!"FBG&o&s"B##.n"N!?"@Sk%X+!#GCF&n O'_"pt o'N"Z!{?"@Zk% +!"FBGB/"# HZ YKo&zGB?zH@rs"b/"#_"[yK?"[Gb?"N!@Sk%*!n"aF~BF/' O'"#py o'Z"!{?"@Zk%H*!N#AG^CzG.#"_"P J>""".Q?"no&@rs"N!@Sk%)! O' o'@ZH{@Zk#"FB%)!G.#!G>CYG!& O'O # "b#n_"ptN o'Z"!{?"@Zk%H)!"FBG' O'-#.#p|"n o'Z!?"{@Zk%(!GDFFDDF."!F>BQFm"no&s"""?"!@Sk%(!"FBG& &B#b#N#n"#._"pt o'NO'"?"{!ظZ#@k%$(!DGDFFDDF#GC8G&B#N O'b#n#pt_"N o'Z"?"{!@Zk%'!"FBG' O'-#.#p|"n o'Z!?"{@Zk%L'!GDFFDDF."!F>BQFm"no&s"""?"!@Sk%&!"FBG& & B# b#N#n"#._"pt o'NO'"?"{!#Z#@k%|&!DGDFFDDF*#GC8G&M#N O'b#n#pt_"N o'Z"?"{!@Zk%%!"FBGo&ps"/#.#n"?"!@Sk%%!G4_"FB0Fo&2s".B"N""?"!@Sk%p%!"FBGO'E"#.pz O'#nZ o'c""!{?"@Zk%%!#GCF O'_"NH"".Z o'c""!{?"@Zk%$!n"aF~BF O'#}"Z o'c""!{?"@Zk%x$!.#!G>CYG O'_"N#b#nZ o'c""?"{!@Zk% $!n"aF~BF O'#"Z o'c""!{?"@Zk%#!.#!G>CYG O'#b#nZ o'c""!{?"@Zk%#!"FB0F O'"b"n<CYG' O'#p|"n o'Z!{?"@Zk%T!"FB0Fo&2s"bB""N"?"!@Sk%!n/n"K5J.#!G>CYG& O'no#n07#_"ptN o'Z"!{?"@Zk%!,"FBG/nO#N' O'.#p|"n o'Z!?"{@Zk%L!"FB0FO& O'07o"Nn"pu o'"Z!?"{@Zk%!X///K8KN#AG^CzG& O'X#7"_"pt o'N"Z!?"{@Zk%!6"FBGo//#O/&X#[ yKYK_"zG O'.pt o'N"Z!?"{@Zk%!"FBGo/O//#&[ yKYK7#zG O'._"ptN o'Z"!{?"@Zk%!"FBG7O#N' O'B/#.#p|n o'Z"!{?"@Zk%X!/." E0J7J  F 2IGJFB`4IJ=B,II8A$< _#n#aG~C%!GuҔ"FB0F!' O' xf""nF"N"px o'"Z!?"{@Zk%|!.#!G>CYG& &f##n "_"pt o'NO'"!{?"Z#@k%!DGEFFEEF|#GC8G&F#N O'f#n#pt_"N o'Z"?"{!@Zk%!"FBGO& &&#.F#Nm#n#pr o'O'"{!?"Z#@k%(!DHlGF"9`B5`BG5`BFՔGF=`BF3`B4FF7.#!G>CYGo&ps"f##n"?"!@Sk%!"FB0Fo&8s""?"!@Sk%h!GDFVFDDVFG*_"FBGo&s"?#."?"!@Sk%!_#GCFo&2s"&"._"N"?"!@Sk%!Gp@\B.CZCGC9CCA@B m"TJ>" N"AF^BrF/' O'P""#py o'"Z!?"{@Zk%$!N#AG^CzGO& O'#pr o'"Z!{?"@Zk%!ë.m"!"JuB.#!G>CYGO& O'm#n#pr o'Z"!{G?"@Zk%d! @@$`A" #.JB AZ#z/[zKz?"FB0F& O'M"N"pu o'Z"!{0@@?"@Zk%! @@.#!G>CYGt@SBgBQ_B'BBC/' O'A"m#n#py o'"Z!?"{@Zk%T!Dr@Q_B%B\BC{C@CA@B b` M"FBFp@\BCZCEC9CC&A O'1"._"pt o'N"Z?"{!@Zk%!ADB !1@, @A"^?#/KB@s@RBEBP?BBC`CA@ADB ""/ XK?r@Q_B%B\BC{C@C@As" ".JuB!1 @?.#!G>CYGt@SBgBQ_B'BBC/' O'A"m#n#py o'Z"!{?"@Zk%p!0@no/nO#zK:GK@#GCF& O'n/"07O".N"pu o'"Z!?"{@Zk%!,#GC8GOO&no#n#N O'pr o'Z"!{?"@Zk%!n"aF~BFo' O'07#?#"p{ o'.!Z?"{@Zk%H!X.J<K."!F>BQF' O'Xo"n7""px o'Z"!{?"@Zk%!6.#!G>CYG./o#&P JK O'X/".Fn_"ptN o'Z"!{?"@Zk%p!"FBGo//#O/&7#[ yKYK_"zG O'.pt o'N"Z!?"{@Zk%!"FBG7O#'N O'B/#.#p|"n o'Z!?"{@Zk%!/."_D0J7JF 2GHGJFB`4GHJ=B"GHGH8F@$<1_N#AG^CzGnO.n/"EQJ.A1'J0C n"aF~BFo' O'n"07#?#p{ o'."Z!?"{@Zk%!,#GCF/& O'nO"."N o'pu"!Z?"{@Zk%x!#GC8GOO&07o#n#N O'pr o'Z"!{?"@Zk% !X.J3gJ`"FBG7O#N' O'X/#.#p|n o'Z"!{?"@Zk%!6"FB0F.o.O"/'T JrJ O'X"FN#py o'Z"!{?"@Zk%H!N#AG^CzG/.#.& O'Q @Z o'0J BBH{ B@Zk$GFr9CQ_B9B\BC{C@CDDvFDD@AZ#vFTFz/ #vFPFzK5קJ\C BC O' o'@ZGH{@ZkBD"1@@29 B_ O' o'@ZH{@Zk#"FB% !G .#!G>CYGL!& O'# \b#n_"pt o'N"Z!?"{@Zk% !"FBG& &E#e#N#n%#._"pt o'NO'"?"{!wZ#@k% !DD"FBG\B#N' O'%#.#p|n o'Z"!{?"@Zk% !,p=)."!F>BQFG/'A O'%"""n#py o'"ZG{!?"@Zk%0 !)N#AG^CzGBDA#cDA.1"0@@Q.Jo'RQJsK O'ArFQ>#"%"?#p{. o'Z"{0`@!?"@Zk%!#GCF&A O'(%"R".N"pu o'"Z?"P@@{!@Zk%(!#GC8G_#N&A O'1e##n_"pt o'N"Za@?"{!@Zk%!"FBG0@@O&1E#N O'A?#{#n.#pr o'"Z!{?"@Zk%T!n"aF~BFo'A O'A"#p{?#. o'Z"?"{!@Zk%!#GCF'6E"4e"N"n<%"."px o' &O'{"!?"HZ#@k%!D`l [#C \B/\"#YK;C #D @\"[_"0.0@0JB"FBFB#O'l#"?"d@\9#.pڠ O'n o'Zf"{!@Zk%!#GCF@b@\1" O'Q.#\"J"RQJQ> o'f""Z?"{!@Zk%\!.#!G>CYGb/ O'bc#\Kb?-".\C"N"Z o'f""!{?"@Zk%!O"FBGSE#Qe#NY%#.n&L &_" o'\#ptO'N"?"!{Z#@k%!D0"FBG& &aE#N_e#n\#g%#.pt_"N o'O'"{?"!Z#@k%!D"FBGo&ps"m%#.#n"?"!@Sk%!G _"FB0F& O'_"m"Nn"pu o'"Z!?"{@Zk%\! _M/-#!#YK;C"FB0FM""?#m."?"S rJm>o& ms".TJ>l.\#!@Sk%!N#AG^CzG .#"PJM##e# >-#&N O'm" #M"N".n _""n o'pt?"N!Z{@Zk%!m/vHM/-#8vJ[ yKGYKs2J.TJtF>C "/# JY 8KYG "?yJB/ZXK:GB?Cm".!# |KP J0F">p|K!".QCM.b" SJT JF>tSJ.UJF>C B/"# KZ YKzGB?zKb/[yK[Gb?"C"." KQ 0JQF">qKB.RPJ"2FB>?"cno&s"!@Sk%!"FBGo' O'?#p{. o'Z"{!?"@Zk%8!#GCFo&2s"%"._"N"?"!@Sk%! _"FBGo' O'?#p{ o'."Z!{?"@Zk%!#GCFo&ps"%"_".N"?"!@Sk%d!G_#"FB%T!G.#!G>CYG!O n#aG~CG & O'?"M".N"pu o'"Z?"!{@Zk%! V_M/-#!#YK;C."FB0Fm.M""M#SrJM""" "m>#&N O'-#m#n #N ". o'.?""puZ!{@Zk%!-/ #D!#8KGD[CDc?"Bw@n"aF~BFo&Ls""#"?"!@Sk%t!.#!G>CYGDm#.a"!!# |KP J0F>p|K!.QM" . SJT JF >tSJ$@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1>@.UJF> ""A/ KZ YKzG"A?zK!a/[yK[G!a?A#!. KQ 0JQF!>qKA.RPJ2FA>m. tJU JG>utJ/XKF?-a/[ zK :K"Ga?{:K/\K|G? & .#" 0HQ 0JQF& >q0H#@.RPJ"2F#@>l?".no&s"!@Sk%!-Ds#Bw N#AG^CzGo&Ls"#_"N"?"!@Sk%!n"aF~BFD#!/ J#Y 8K!a"YG!?yJA/ZXK:GA?!#m . |KP J0F >p|K!.Q"M". SJT JF">tSJ!.UJF!>" A/ KZ YKzGA?zKa/[yK[Ga?!. KQ 0JQF!>qKA.RPJ2FA>m.U J tJ_"G>utJo&s"/"?"XKF? *@/' # 9HZ YKzG*@?z9H'`/[yK[G'`?.N!@Sk%!#_Dn#B  _G_#N"AF^B%!Fe#GC8GLGFAGZGvG@G!o vG=#GCF & O'C"\ ".o"Nn"pu o'"Z?"!{@Zk% !#GC8Go&2s"O##Nn"?"!@Sk%!#GCF& O'?"._"pt o'N"Z!?"{@Zk%|!"FBG &("@/ #\#-"Z YK@? O'_"`/[yK`? o'.?""ptN!Z{@Zk%!"FBG' O'-#.#p|n o'Z"!{?"@Zk%!"FB0Fo&s"M""N"?"!@Sk%d!"FBG& &-"FC#.@c#n8#L##.6"N_"pt o'NO'"Z#{?"!@k%!D"FBG'L O'#"\"#.p|?"n o'Z!{@Zk%!"FB0Fo&s"\B""N"?"!@Sk%CYG O'_"N #c#nZ o'b""?"{!@Zk%P!n"aF~BF O'#^"Z o'b""!{?"@Zk%!.#!G>CYG O'#}c#nZ o'b""!{?"@Zk%!"FB0F O'"c"n<CYG$.a#/!""P JK!!#F;fK#fKna.A.S qJQJrF1&JA"&J./.X KJG4J#J""a/!A/[ yKYKzG9&K&K.. ?# !.JQ CYGL.Ao ..+b#+/P JKF @e ."!F>BQF.a".#a#U JJ!!"F3fJ"fJnA/!/Z XK8KYG8K!#K./P JKF;fK"fKn#"a.!A.S qJQJrF1&J _"&J.. /JX KG4JJ&A/a/YK[ yKzG9&K&K.,.?"pt O'N o'Z"{!@Zk%!"FBG,+B#o&\s"._"./"+b/?"N\ KzKGN!@Sk%!L&.#b"#.U JJF @e #GC8G/A#a/"a"\ KzK!#G:FKa#FKNA.!.R PJ0JQF0J!"J..U JJF3fJ"fJn""A/!!/Z XK8KYG8K ?#K/ .KP JF;fKfKno'A.a.QJS qJrF1&J&J. ?"p{ O'. o'Z"{!@Zk%`!#GCF,#B""".?"&.#b.T JrJFo&N\s"!@Sk%!L*B/'#'"/Z XK8KYG @m n#aG~CGA."!.a"#R PJ0J!a#QF0J!"J..U JJF3fJ"fJnA/!/Z XK8KYG8KC#K!#".!/P JKF;fK #fKnA. a.QJS qJrF1&JO&&J..?"/.JNX KG4JJlnpr O' o'Z"{!@Zk%!n"aF~BF'#o&\s"#*B/"'"/?"nZ XK8KYG!@Sk%L!*".'.'#Q CYGn'#o&n<s"*"._"'.NQ CYG& O'-"."b#n_"pt o'N"Z!{?"@Zk%!"FBG-#.#B#&/o&#b/<s"_"N\ KzK"GN?"!@Sk%!ϲ_#"FB%!G.#!G>CYGl!& O'n#pt_"N o'Z"{ܙ !?"$C @Zk%!"FBGM#N' O'%#.#p|n o'Z"!{?"@Zk%!R"FB0F& O'E"m"Nn"pu o'"Z!?"{@Zk%d!;-/ #[_#_ 8KC `BDA#[?".0@@JC_n"aF~BF@@o'AA O'"#?#p{ o'."Z?"!{@Zk%!BDA#]?".0@@JC @BDAs"]".0@@JuB.#!G>CYGO& O'm#n#pr o'"Z!?"{@Zk%$!n"aF~BFo&s""#"?"!@Sk%!G_N#AG^CzG& O' "_" o'pt"N!Z?"{@Zk%!"FBG' O'-#.#p|n o'Z"!{G?"@Zk%,! `@A1"["Q.QJ3BA"/XK?(o/oK:GK@#GCF& O'-"(O".N"pu o'"Z!?"{@Zk%!#GC8Go'M#N O'p[#Z o'b""!{?"@Zk%(!"FB0F& O'M"(o"Nn"pu o'"Z!?"{@Zk%!#GC8GM#N O'#nZ o'b""{!?"@Zk%!#GCF $. H O'm"Q $J#QF $>qH!"D." o'"RDJ2FD>?" db"!Z{@Zk%!.#!G>CYGd/ H&[ dK O'Gd?{H*"/_"?"\K|G? o'"`qtNZ!{@Zk%!5@/1#@, N#AG^CzGo&s"3">#_"N"!?"@Sk% !n"aF~BF/' O'"#py o'"Z!0`@{?"@Zk%! `@@' _##GC%!\FKn"aF~BF.A/' O' "#(ry o'Z"!{?"@Zk%@!Ll N@N#AG^CzG#n#"&B.o&#".d)s""R PJ0JQF"!?"@Sk%!"FBGn7"#:b/3#7B/o&es"[ yKYK_"zG.6".3.NQ BQFo&bs""?"!@Sk%! _ / B /@ C @ o /<1`C @ B@ o"FBFo&bs""?"!@Sk%! _.#!G>CYGC!EX .A<bC$O  O' o'@Z H{@Zk."!F>BQF"Xl"B"# &\L#N O'#-#.m#n_" rtN o'Z"!{?"@Zk%@!5@#GC8Go&s"PB#0b#N#"n?"!@Sk%! O' o'@ZH{@Zk"FB0F4BQF' O'"m\,#."" ##r|n o'Z"{?"!@Zk%!"FB0F& O'\L"N"$ru o'Z"!{?"@Zk%! O'#T o'@ZH{@Zk.#!G>CYG& O'T⳨ o#n\#_"qtN o'Z"!{?"@Zk%0! O' o'@ZH{@Zk#"FB%!GR.#!G>CYG .A$o /CO K;gK`"FB0F& O'_"O"pu o'"Z!?"{@Zk%t! @4BQFPc"no&s"0"""?"!@Sk%x!#GC8G'\B#N O'#q|n o'Z"!{?"@Zk%(!T."!F>BQF' O'"m\"#."" ##r|n o'Z"{?"!@Zk%!"FB0F& O'\B"N"$ru o'Z"!{?"@Zk%`!#GC8G_#TBO& O' o#n#qr o'Z"!{?"@Zk%!n"aF~BF" #?#-M#NO& O'\b#n#qr o'Z"{?"!@Zk%!n"aF~BF" #' O'#,"?".p|nZ o'!{@Zk%,!"FB0FB. H/'R BJ O'rFB>rH\"b.# o'"SbJ?"SFb>NqyZ!{@Zk%!N#AG^CzGo&hs""?"!@Sk%t!_$ "FB0F& O'T⳨ O"N\b"n"qu o'Z"!{?"@Zk%!#GC8G' O#N O'#,r|n o'Z"!{?"@Zk%!"FB0Fo' O'_"Mm"n"" #?#q{. o'Z"{?"!@Zk%H!#GCF,& O'_". o'pt"N!Z?"{@Zk%!"FBG"/ H& #Y "K_"YG"?yH"B/?"ZBK:GB? O'lb o'NqtN!Z{@Zk%t!"FBGo&hs""?"!@Sk%@!.#!G>CYGO& O' o#n#$rr o'Z"!{?"@Zk%!c_"FBG' O'ﳴ /#.#q|n o'Z"!{?"@Zk%!$ "FB0F& O'T⳨ O"N\b"n"qu o'Z"!{?"@Zk%0!3_#.#!G>C%$!yGD#GCF.A/' O'?"-M"N"m" "qy# o'Z"{CO !?"@Zk%!N#AG^CzG& O'_"pt o'N"Z!?"{@Zk%D!"FBG"/ H&Y "K #YG"?yH_"B/"?"ZBK:GB?l O'b o'NqtNZ!{@Zk%!D_##GC%!8GأN#AG^CzGE.AGEFLFEGNFGFGX Fo&FCP>s""F"?"!@Sk%!ȱ_##GC% !8GN#AG^CzGE.AGEFFEGFG_"NFlGX F"nFo&CP>s"F"?"!@Sk%l!_##GC%`!8GN#AG^CzGE.AGEFFEGFGFC!GX F Lpl"nFo&CP>s"NF""?"!@Sk%!q_##GC%!8GXN#AG^CzG`!O& O'#pr o'Z"{$ !?"m C @Zk%CYG& O'm##n_"pP o'N"Z!b"{?"@Zk%о!n"aF~BF O'#p$# b" "n o'.?"!Z{@Zk%t!#GCF O'qM"N"<_P_#N O'ae##._"n o'pt"N?"Z!{@Zk%!"FBG' O'-#.#p|n o'Z"!{?"@Zk%h!D*@ AR" ?"r.t2J0 @*@SrJFr>#GC8Gm/M#&q "[zKm? O'pt_"N o'Z"?"{!G@Zk%̼!P@ `@A# _#8/8KCQ`#GCF& O'q-"._"pt o'N"Z!0`@{?"@Zk%P!P@ `@#GC8GqM#'N O'#p|"n o'Z!G{?"@Zk%! @@"."!F>BQFAqs"A."'/JqM#yuJXK#8G?N O'p|"n o'Z?"{!0@@@Zk%h! @@."!F>BQF/' O'"f" "npy# o'Z"?"{!@Zk%!N#AG^CzG& O'# "_"pt o'N"Z!?"{@Zk%!"FBG' O' /#.#(r|"n o'Z!?"{@Zk%T!"FB0Fo' O'_"hMhm"n"dd" #?#q{ o'."Z?"{!@Zk%!#GCF& O',".hM"hm"N"n o'pu"?"Z!{@Zk%!#GC8GD/ H&#Z DK "zGD?zH_"d/?"[dK[G O'd? o'"qtN!Z{@Zk%!"FBG' O' /#.# r|"n o'Z!?"{@Zk%!_."!F>BQFE.AGEFFEnFFaFFGXFo' O'F8aBaBp{?#.Z o'"{$o !CO F?"@Zk%!#GCF& O'-"._"pt o'N"Z!?"{@Zk%!"FBG u"&._"@N O'["@${n o' ",.pt?"N!Z{@Zk%CYGo&!!s"#<o" !?"D @Sk%!#GCFo&bs""?"!@Sk%!."!F>BQF O o""?"Sb@sno&8Ts"!@Sk%@!"FBG oo& Ol s"#"Yb@?"YnN!@Sk%!p!"FB0Fo&8us"O""N"?"!@Sk%!"FBGo&BQF"no&s"""?"!@Sk%4!5vH v I??# F8v IC@n#aG~CGo&Ss""?"!@Sk%!0vH v I  F1&I #"&IFH@@@ BD3@woB3aJ3W`JAs&MsAs&Ms"k`D*-(|*+|666666666666D66666666Pl 6D 6666666p66$61D606 6d@ -<3D6 !!4D 666t 66661D606 6d@ -<3D6 !!4D 6666 6" @3 _#9@w C `9!K9W KA9'O9A9'O9#k&H(()7# @ 7_"1@ B`1!J1W JA1& P1A1& P1"k  0,+ "FBF O' o'@Zo&]s"H{@Zk .#!G>CYG oo&hs"#n"?"!@Sk%l!J"FB0F oo& Os"""Rb@?"RN!@Sk%!6#GC8G Oo&hs"#N"n?"!@Sk%Ю!##GCF o Oo& Us"_"Qb@"1N.!?"@Sk%!l`"FBF o&hs"?#."?"!@Sk%4!l=O@n#aG~CGo&2s""_"N"?"!@Sk%!n"aF~BF"o& o(s" O*'##"Xb@?"n.!@Sk%!#GCFo&:s"+'"_".N"?"!@Sk%D!n"aF~BF oo& O0Qs"#"Ub@?"!@Sk%!.#!G>CYG oo& OOs"#"[b@?"{n!@Sk%!"FB0F O& o O',o""Rb@ o'R"n?"Npu!Z{@Zk%BQF' O'4o""n"px o'"Z!?"{@Zk%D!34!(0 N#AG^CzG& O'8# "_"pt o'N"Z!?"{@Zk%ܧ!,!#GC8G0O#O&N O'm#n#pr o'"Z!?"{@Zk%t!h`"FBFo&2s"#?#."?"!@Sk%,!eN#AG^CzG# o&es"_"" /N.?"!@Sk%ئ!oGxf;&pGxX`@X*@.#!G>CYG O'Nm#n#Z o'e""!{?"@Zk%X!"FB0FxF " o" O"no&,s"?"!@Sk%!0`@`@x0@x/ @_n#aG~CGo&ps""_"N"?"!@Sk%!n"aF~BF "o& es"#"?" /n.!@Sk%D!"FB0F Oo&hs""N"?"!@Sk%!"FBGo&s""?"!@Sk%!, N#AG^CzG o&hs"_"N"?"!@Sk%t!n"aF~BF oo& Os"#"Ub@?"!@Sk%$!x, N#AG^CzG o&hs"_""N?"!@Sk%أ!e O.b".U JJF`Bd`#GC8G_#No& OT's"#",b?"{n!@Sk%\!"FB0Fg"no&Ps""G"N"!?"@Sk%!"FBG Oo&4:s"#,""n?".!@Sk%̢!"#GCF?".o& OT's""",B?"RN!@Sk%t!"FBG ?#.o& Oes"#"N?" on!@Sk%$!"FB0Fo&ps"G"N""?"!@Sk%!#GC8G Oo&hs"#Nn"?"!@Sk%!l="FB0Fo&2s"$G"N""?"!@Sk%H!"FBGM/o&-#s"ZYKM? "X#K'"._"N"!?"@Sk%!n"aF~BFo&Rs""#"?"!@Sk%!GDF6GDD6GN#AG^CzG& O'o"n ""?".mG"N"#"pu o'Z"{?"!@Zk%!#GC8Go&ps"O#N#n"?"!@Sk%ȟ!a"FB0F Oo&hs""N"?"!@Sk%|!Nl=#GC8Go&2s"G#N#n"?"!@Sk%0!;#GCFd?".o&xs" o" O"?"Rb@RN!@Sk%Ԟ!$pp #p.#!G>CYGo&Xs""?"!@Sk%!l`#GCF /o&hs"_".N"?"!@Sk%4!n"aF~BFo&is""?"!@Sk%!#GC8G Oo&hs"#N"n?"!@Sk%!#GCFo&Ps"'"G".""N!?"@Sk%d!"FBGo&s"?##.n"?"!@Sk%!#GCFo&s"_"N"?"!@Sk%؜!l`"FBF o&hs"?#."?"!@Sk%!l=O@n#aG~CGo&2s""_"N"?"!@Sk%@!n"aF~BFo&,s""#"?"!@Sk%!n, N#AG^CzGo&2s"#"_"N"!?"@Sk%!n"aF~BFo&DOs""?"!@Sk%t!J 5C N#AG^CzGo&s""?"!@Sk%(!9#GCFo&@s""?"!@Sk%!+, N"AF^BrF o&hs"""?"!@Sk%!#GC8Go&Es"#n"?"!@Sk%d!"FB0F Oo&hs""N"?"!@Sk%!"FBGo&s"?##.n"?"!@Sk%ԙ!"FB0F Oo&hs""N"?"!@Sk%!"FBGo&s"?#."?"!@Sk%H!L@n#aG~CG o&hs"_"N"?"!@Sk%!n"aF~BF o&ts""#"?"!@Sk%!, N#AG^CzG o&hs"_"N"?"!@Sk%l!n"aF~BF /o&s""XK ?X_#Nm#n #_"N"?"!@Sk%!pn"aF~BFo&xs""#"?"!@Sk%!GDF6GDD6GWN#AG^CzG#o& o$s" O_"?"Pb@P"NN!@Sk%H!n"aF~BF #" oo& Os"#"Yb@?"9n.!@Sk%!7("FB0F@G"N o' O O'" o'Sb@"S?""pxZ!{@Zk%x! , N#AG^CzG o&hs"_"N"?"!@Sk%,!"&IFH3F@$tSJ.UJo&F> oHs" OXb@.!@Sk%CYGo&(s"N\b#n\#_"N"?"!@Sk%!.b".U JJF@@_#GC8Go&Os""?"!@Sk%L!N#AG^CzGo&l s"#_"N"?"!@Sk% !n"aF~BFo&!s""?"!@Sk%،!"FBGo&bs""?"!@Sk%!.#!G>CYGo&2s"g##n"?"!@Sk%d!6"FB0Fo&2s"G""N"?"!@Sk%!v"FBGo&ps"'#.#n"?"!@Sk%؋!#GCFo&Ps"'"G".""N!?"@Sk%!Q"FBGo&8us"-##.n"?"!@Sk%D!#GCF Oo&l s",B_"N"\"".!?"@Sk%!n"aF~BF Oo&(s",B?#."?"\"\#N!@Sk%!N#AG^CzGo&Os""?"!@Sk%t!#GCFo&l s"-"_".N"?"!@Sk%4!n"aF~BFo&!s""?"!@Sk%!"FBGo&bs""?"!@Sk%̉!.#!G>CYGo&2s"g##n"?"!@Sk%!"t O@."!F>BQF" "no& es"N"BD?"!@Sk% ! O o / O:1 C Ob oB\b@ O ."!F>BQF"no&,s"""?"!@Sk%!"FBG ?#.o& Oes"#"N?" on!@Sk%D!"FB0Fo&s""?"!@Sk% !r_"tF Ob`l"FBF #o& /es"#".?" OBDnN!@Sk%! O o  O0B /B OBSb@s` O "FBGo&,s"?##.n"?"!@Sk% !#GCF ?"." O"?"N ono&es"!@Sk%!"t o /0 CZC@Z@^n#aG~CG"o& /es""".?" ON!@Sk%~ O o O[b@{`#GCFo&,s"?"._"N"?"!@Sk%! o31`B o"FBF #o& /es"#".?" OnN!@Sk%L!B#GCF?"t&_"N o""?"no& es"!@Sk%~!4< /"C:"C O o` O \@1Q@@ / O@ n"aF~BFo&'s"N""?"!@Sk%p~!D , / o:1 C O<1`C "FB0F Oo&'s""N"?"!@Sk%~!  o OUb@#GC8Go&bs""?"!@Sk%}! O0@C O@C#t O."!F>BQF"no& es"#"?" !@Sk%4}! O O";1@C o / OB@, O /21 B O  Ob`B,"FBGo& ,s"?##.n"?"!@Sk%|!#GCF ?"." O"?"N ono&es"!@Sk%D|!G_.#!G>CYGO& &#n#pr o'O'"{Z#!?"@k%{!l` ܶ_> ض_, N#AG^CzG o&hs"_""N?"!@Sk%p{!Kn"aF~BFo&8&Is""K?#."!?"@Sk% {!6N#AG^CzG o&hs"_""N?"!@Sk%z!%#"FB%z!G.#!G>CYGDO .A|bo 0`C|B.BJ6 Jn"aF~BF/' O' "#qy o'"Z!?"{@Zk%,z! q_À"."J+|B@B(` & /."X KJGB.#!G>CYGO& O' o#n#qr o'"Z!?"{@Zk%y! K_ø,/ /"Y 5KK 8G A|BY@C`"FB0F& O' O"N"qu o'Z"!{?"@Zk%y! (_.#!G>CYG& O'm#n#_"ptN o'Z"!{?"@Zk%x!"FBG"/ Hc##Y "K&YG"?yHXs"B/"?"ZBK:GB? O'b o'N!Z{@Zk%,x!5@."!F>BQFc"no&s""""?"!@Sk%w!#GC8G_#N&o' O'{##n_"t o'N"Z?"!{@Zk%lw!5@#GC8Go&s"C#Nc#n#"?"!@Sk%w! _."!F>BQFE.Ao' O'o "#4aB?#p{. o'Z"{DO !?"@Zk%v!#GCF". H3HQ "JfJQF">`BqHB. O' F3gJRBJ"2FB>"N o' sBZ&Xs"{"!?"@Zk%v!5@.#!G>CYGo&s"c##n_"N"?"!@Sk%u!n"aF~BF O''"#-#.#n o'Z& s"{"!?"@Zk%Pu!5@"FB0Fc"no&s"C""N"!?"@Sk%t! O' o'@ZH{@Zk"FBGE.A: C O'##n o'Z&hs"{"!?"!@Zk%t!5@."!F>BQF%l"no&s""""?"!@Sk%0t! O' o'@ZH{@Zk##GC%t!8G{N#AG^CzG#P" Do ,.A&|㳰 O'#d"8<M"8<"n o'N"pu?"!Z{@Zk%ts!#GC8GC/ H#Z CK_"zGC?zH&c/Xs""?"[cK[G O'c? o'NnZ!{@Zk%r!5@`"FBFo&s"#$##n".?"!@Sk%r!#GCF O'O&?"."m"nR"N o'Z& s"{"!?"@Zk%8r!5@#GC8Go&s"D#d#N#"n?"!@Sk%q!"FB0Fm.M"'S rJm> O' #. /#"#TJ>"?".q|n o'Z!{@Zk%hq!"FB0F& O' o"nM"N" o'qu"!Z?"{@Zk%q!D0#@ /M#m/"\ KzKGPC Àà|.J6`J @"FBGo&=s""?"!@Sk%|p!/ N#AG^CzGo&Xs""?"!@Sk%@p!#.#J%|C@B"` O @/".X KJGB.#!G>CYGo&<s"N#n"?"!@Sk%o!".#.Q rH"c. o'"?"ScJSFc>nx!Z{@Zk%n!5@ N#AG^CzGo&s""#_"N"!?"@Sk%Xn!n"aF~BF O''"#n-#.#Z o'& s""{!?"@Zk%m!5@"FB0Fd"no&s"D""N"!?"@Sk%m!-/" /_#Y 5KK8GB `-. .#_"Q BQF"no&nes" ""?"!@Sk%f! /# :1 C Ol o   P @."!F>BQF"no&,s"""?"!@Sk%f! 81B  /? _# O l01C  o."!F>BQF "n o&es"#" ?"!@Sk%e!K_N#AG^CzG o&hs"_"N"?"!@Sk%Le!:_#"FB%@e!GK.#!G>CYGDO #tb.A   0BQA1 ^N"AF^BrF"o& es"?#"?" .!@Sk%d! O@C` 0C  / 0 B Ol o B  X @.#!G>CYGo&,s"##n"?"!@Sk%c! 0B / OAB 0B  .#!G>CYG #n o&es"_"?" N"!@Sk%pc!0_"FBG /o&hs"#.n"?"!@Sk%,c!_#N"AF^B% c!FË#GC8GDO _#tB.A l`P#GCF?". O""?"N ono&es"!@Sk%b! 91C / ,L @ l01C  o , ,L_n"aF~BFo&,s" "#"?"!@Sk%a!.#!G>CYG #n o&es"_"?" N"!@Sk%a!_#"FB%a!G^.#!G>CYGDO .A#tb#o& es"_" /"N.!?"@Sk%a! l` 0B  ,, oL0`C O , ?" /  R @R@n"aF~BFo&,s""#"?"!@Sk%X`! /91 C /?N#AG^CzG #o& es"_" /"N.?"!@Sk%_!Q_#"FB%_!G.#!G>CYGDO .A#tb# o&es"_"" /N.!?"@Sk%p_!4CYG#o& O' "_" o'" rt?"N!Z{@Zk%l[!"FBG?#&-M#N O'm#(#n " ?"-M"N" ru o'"Z?"!{@Zk%Z!5@.#!G>CYG& O'#m#" -".M"N"qu o'Z"{?"!@Zk%pZ!G#GC8G' O'#p|n o'Z"{!?"@Zk% Z!"FB0FC. H/' O'R CJ"rFC>rH"c.# o'"ScJ?"SFc>nqy!Z{@Zk%Y!0@@]A@_n#aG~CG& O' "_"qtN o'Z"!{?"@Zk%@Y!5@#GC8G&_#M O'm##n /"M". "N"ru o'"Z!?"{@Zk%X!5@.#!G>CYG& O'#m#" -".M"N"qu o'Z"{?"!@Zk%@X!#GC8Go'D#N O'p[# o'Z"b"{!?"@Zk%W!"FB0FC. H5HR CJGrFC>rHFc.O'F#ScJ-#SFc>F.FnJq O'#nFZFTF o'e""{F!?"@Zk%8W!#GCF̠& O'4$"O"ΰΰ". o'N"pu?"!Z{@Zk%V!#GC8GO#N O'#nZ o'b""{!?"@Zk%V!#GCF#. H O'o"Q #J"QF#>qH"C. o'"RCJ2FC>ce"n?"Z!{@Zk%V!#GC8G_#Mm#n O'_" o' b"N"?"Z!{@Zk%U!n"aF~BF. HM##U Je"G>uH"/?"XKF? ,#N O'nn o'Z!{@Zk% U!#GCF?"-M"N O'" o'l"?"nb"Z!{@Zk%T!"FBG#/ H_"#Y #Ke"YG#?yH"C/?"ZCK:GC? O'lcn o'NZ!{@Zk%8T!n"aF~BFo&rHc.ScJSFc>o&uH#/e""?"XKF?#N O'n o'n!Z{@Zk%R!#GCF O'_"NF$".Z o'b""{!?"@Zk%Q!n"aF~BF. Hc$#M#U J#G>uHe"/"?"XKF?#N O'nn o'Z!{@Zk%HQ!#GCFo&s"_"N"?"!@Sk% Q!n"aF~BF'ΰ"px o' &O'{"!?"rZ#@k%P!.#!G>CYGO& O'd#n#pr o'Z"!{?"@Zk%hP!l5`B"FBG,D#N' O'.#p|"n o'Z!?"{@Zk%P!"FB0F L& O'N"pu o'"Z!?"{@Zk%O!#GC8GL'#N O'p|"n o'Z!?"{@Zk%dO!"FB0F& O'_"N"pu o'"Z!?"{@Zk%O!#GC8GL' &N#p|O'n o'"Z#{!?"@k%N!%_#N"AF^B%N!F̆#GC8GL.Ao'#N O'p o'"ZEo d"{!?"@Zk%r#J?"Xc.ScJSFXc>\q{. o'Z!{@Zk%L!#GCFo&2s"/"._"N"?"!@Sk%K!n"aF~BF M##d"A"/?"GXK?N O'n o'Z!{@Zk%lK! @@5"FB0FAr".' O'RJ"GJNqx o'"Z?"!{@Zk%K!.#!G>CYGApH/& O'\K-"F?._"pt o'N"Z0@@{!?"@Zk%J! @@#GC8GLO&m#n#N O'pr o'Z"!{?"@Zk%8J!n"aF~BF/' O'"#py o'Z"!{G?"@Zk%I! @@7@n#aG~CGA0""&P. O'"PQJ o'Jqu"?"Z!{@Zk%xI!#GC8GAZ#|Hz/& "[zK_"Gz? O'pt o'N"Z?"{!0@@@Zk%I! @@#GC8G'M#N O'#p|n o'Z"!{?"@Zk%H!,"FB0F& O'M"N"pu o'"Z!?"{@Zk%\H!#GC8GM#O&N O'm#n#pr o'Z"!{?"@Zk%H!G=_ ;_##GC%G!8GXҘN#AG^CzG! E "FB0Fo&2s"E"N""?"!@Sk%hG!"FBG?#-M#N& O'#m# "_"qtN o'Z"{?"!@Zk%F!"FBGM/ -#'ZYKM? O'g_" o'"n?"pܠNZ!f"{@Zk%F!n"aF~BF. Hm#U J$#G>uH O#/' " ,"XK"F?df"n o'N. O'."L?"NZ!{@Zk%E!"FBG $/ H#Q"Y $K JYG $?yHm"D/X" " #ZDK:GD?/'l O' d o'Y$.Q $JQFY$>qJ"XD.RDJ2FXD>?"\dqy!Z{@Zk%E!N#AG^CzGMo&2s"A#".E"?"PJ>N"!@Sk%D!"FBG' O'n-#.#p|n o'Z"!{?"@Zk%hD!"FB0F O'n_"NZ o'f""{!G?"@Zk%D! @@5`g"FBFb@8#X/'#"XYK O'Kq|?"n o'Z!{@Zk%C!"FB0Fb@tHr.' O'"SrJ o'Fr>n"px0@@!Z?"{@Zk%HC! @@?m/M#zK:GK@G_ _#N"AF^B%C!F#GC8G .Ao&@/s"_"?"Z@K@?  N"!@Sk%B!_#"FB%B!G.#!G>CYGlo&.A2s"#n"?"!@Sk%4B!"FB0F Oo&hs""N"'@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1I>?"!@Sk%A!"FBG' O'?#.#p|"n o'Z!?"{@Zk%A!k_#N"AF^B%A!FQ#GC8G.A&_#M O'm##n_"rt o'N"Z?"!{@Zk%A!I_##GC%A!8G/N#AG^CzGo&.A2s"!#_"N"!?"@Sk%@!._#"FB%@!G.#!G>CYGo&.A2s"!Kl##"n!?"@Sk%D@!_#N"AF^B%8@!F #GC8GE .AGEFvGENGvG@G|GGXG&vG@C O'O O"N[""."puvGZ o'"{!?"@Zk%|?!#GC8Go&2s"O##Nn"?"!@Sk%!ﳵ_#N"AF^B%>!F#GC8Go&.A2s"!L#N#n"!?"@Sk%`>!ﳙ_#N"AF^B%P>!F#GC8Go&.A2s"!L#N#n"!?"@Sk%=!~_#N"AF^B%=!F#GC8GLGF/B#b/"o \ KzK.AG:FKFK9@C5@CAF5@C6Fє@FF=@C6F3@C4F6Fn"aF~BFO&-C#N O'".#"#.o#n#pr o'Z"{?"!@Zk%CYGE,.AGE.FGEnGGaGG&G O'O XFo"nB"N"puGZaC o'"{G!?"@Zk%\9!#GC8Go&2s"O##Nn"?"!@Sk%9!#GCF /o&hs"_".N"?"!@Sk%8!n"aF~BF/' O'"#py o'"Z!?"{@Zk%8!w_##GC%8!\F-n"aF~BF4<.A /,qB, C ,C@ o` #GCF& O'?"-M"N o"n8ru" o'Z"?"{!@Zk%7! o O b@4BQF0c"no&Ps"n""?"!@Sk%4!D"FBGo&Ps"a##.2C#N#n"!?"@Sk%4!D@#GCFo&T's"?"._"N"?"!@Sk%H4!l`"FBFo&s" #?#."?"!@Sk%3!DN#AG^CzGo&s"#_"N"?"!@Sk%3!D@n"aF~BFo&T's""#"?"!@Sk%d3!O.#!G>CYGo&T's"#n#"?"!@Sk%3!"FB0FM"?#"N?"lno&. s" /.JX KG!@Sk%2!N#AG^CzG o& ϰ's" _"N"!?"@Sk%d2!n"aF~BFo&,s" ""?"!@Sk%$2!#GC8G _#No& oes"_""n?" N!@Sk%1!pdGFaFsFF`FF)"FBGp$O&cC#N O'o#.#n o'pr"?"Z!{@Zk%P1!n"aF~BFo&ps""#"?"!@Sk%1!b_N#AG^CzG& O'#_"pt o'N"Z!?"{@Zk%0!"FBGo&2s"}###.n"?"!@Sk%|0!=_#N"AF^B%p0!F{Ҍ#GC8G!M#O&Nl O'~g#n#pr o'"Z?"{!\F @Zk%/!n"aF~BF. H O''#U J#G>uH&/Ps""?"XKF?&n o'ΰ!Z{@Zk%l/!5@"FB0Fg"no&s"G"N""!?"@Sk%/! O' o'Z&"{M"X]/"@Zk-/ #@"Y 8K Jm#YG-?yJ# |KM/_"m"uSJZXKM#:GM?-#R@J .P J0F >p|K{K-.Q.TJF>M/ZYK-#zGM?l.#.#"JQ FJ"Yf.G#'-#S fJX#FYf>sFJ#X."?"TJtFX>\N O'.p|n o'Z!{@Zk%,!"FB0FF. H" #R FJ"rFF>rH2?#f. #"?"SfJSFf>&s".ΰMn o'N O'!{Z@Zk%0,!5@"FB0Fg"no&s"G""N"!?"@Sk%+!0 #B N#AG^CzG O'_" o'N&Zs""{!?"@Zk%|+! _ #B ./M#[ JKP JqG0`C ZJ\KpFsZJ>|F?f5B>M/ #-/Z XK8KYGCZn#aG~CG o& FFFFF#GC8G&M#N O'g##n_"pt o'N"Z?"!{@Zk%)!"FBGO&G#N O'o#n-#.pr# o'Z"?"{!@Zk% )!n"aF~BFo&2s""#"?"!@Sk%(! ,! N#AG^CzG# L.m",."no&R LJ,Js"QF"?"!@Sk%p(!5@p&0 CpFn#aG~CG -".o&Ms"""N?"!@Sk%(!5@p0Cp&#n#aG~C%'!G|"FB0FL.A#"6.3B"3b.7"?"T JrJF Oo&:"/'s"7/ OY 5KK8G nN!@Sk%H'!#GCFo& ,s"_"N"?"!@Sk%'!n"aF~BF ":B/7#7"/3b#o&Z XK8Kes"YG6._"3/?"NP JKFn"!@Sk%&!n"aF~BFo&s"#" ?" l/L/N[ lKLKzG.!@Sk%,&!"FB0F_"N7b":.3#7.#"U JJ?"Fn6B/o&3"/es"nZ XK8KYG!@Sk%%!&".#.##Q ú9@@GAG5@@5@@F6G"ٔ@GG=@@6G3@@4G6Gn#aG~CG& O'"/"._"ptN o'Z"!{?"@Zk%!!"FBGO#'N O'N$#.#p|n o'Z"!{?"@Zk%0!!"FB0Fo"no&Ps""D"N"!?"@Sk% !G_ .#!G>CYGo&s"m##n"?"!@Sk% !G_."!F>BQFm"no&s"""?"!@Sk%H !G_(7Op@'$pؠp̥ b/B/"#[ yKYKzG C GFGGFGFH."!F>BQF O'#""b"n o'Zf""{?"!@Zk%|!.#!G>CYGo&2s"o##n"?"!@Sk%<!"FB0FM"Nm".t#.#"U JJ?"Fno&0/B.RPJ/B>_#"FB%d!GzҜ.#!G>CYG!O& O'm#n#$r o'"ZlO {!?"@Zk%!n"aF~BF"M/ #-/o&L9s"Z XK8K#YGn"?"!@Sk%!#GCF& O'@""M".N"pu o'"Z!?"{@Zk%<!#GC8Go&s"m#C#n_"P_#NN"?"!@Sk%!G _"FBGo&4s"-#.M#N#n"!?"@Sk%!GDFGDDG"FB0Fo&ps"YB"N""?"!@Sk%8!G_#GC8GM#N .m#/o&L9s"P JK_"FN"n?"!@Sk%!n"aF~BF-/ /"L "Y 5KKz/g""8G J[ zKO"Gz?{J&/"\K|G? O' o'N".?"puZ!{@Zk%0!#GC8Go&Ps"B#No#n#"!?"@Sk%! _G_#N"AF^B%!Fy#GC8G.A' O'p|#n o'Z"{l !?"GvH@Zk%T!-. "DQ0J->GPn"aF~BF@#5/' O'#U8K"Jq|?"n o'Z!{@Zk%!-. "rHm"Q0J?"QF->.JuBm/,?#M#|:K[zKGm?"FB0F& O'M"g"Nn"pu o'"Z!?"{@Zk%4! D-/@ #z/8K0@|K[zKGz?0`@ h@@l Q.GRQJQ>B.J4JyBDA8#X/0@@@YKH;@bC;aK;W`KA{'{A{'{#kPhhhhhhhXhhh`hhhH   GG[{_D1H!vH'J_" 1C#BcFQJó#B`cFG QJ@ D8vJv H"DGD0@;H:v KvHgKEG!vH#`;CcCFKðcCFG K@ D3v@Jv H?"DaFDP@8H5vJvHKF!vH?#8CCCG8KúC@CGG 8K@ D0vKv H#DFDp@3H2v JvHgJEF!vH"`3CcBFJõcBFG J@ D:v KBv H0.#DAG0JDvHqJ\.R\J2F\>z_"FBGl Ec.AO&:!Cn O'pr#Z o'"{l !G?"@Zk%<!.m"DTJ>G\à#GC8G@z#/&_"ZK o'GKN O'qtN"Z?"!{@Zk%! /"yHXK:H8G ?GKm#/@C?" _GK:GKpC ZC .,_"m"TJuSJF>#GC8GM#NO& O'd#n#pr o'Z"!{?"@Zk%!#D /" CKY/{JDZYK8`BzGY?0@BD0@@ G@8C?L O' o'E@r.SrJr>@ZH{@Zk#"FB%!GvҨ.#!G>CYG!l \Fo n#aG~CGo&s"P"-"D"."N"?"!@Sk% !G~_#GC8GO&Lm#n# o'N O'pr"Z!?"{@Zk% !n"aF~BF. H O'U J-#G>uH#/&s""XK?"F?#nn o'Z!{@Zk% !5@"FB0Fo&BQFA"s"/'. O'# o'SJ"gJnqy?"!Z{@Zk% !N#AG^CzGA#qH.& O'M"PJ"0F>N o'pu"?"Z!{0@@@Zk%d ! @@.#!G>CYG'?&1"3dHGLRQF@HF5dJD#JNO&N O'GADo#-#n.Fpr#GZ@D o'"?"{!G@Zk% !n"aF~BFo&Ps""#?#."!?"@Sk%\ ! }_##GC%D !\Fun"aF~BF !T 5BF k.#!G>CYG& O'# /"m#. "_"qt o'N"Z!?"{@Zk% !"FBGLO&M#"#.b#N O'n#pr o'"Z!?"{@Zk%4 !n"aF~BF. H"#U J'G>uH O#/#"?"XKF?&N O'ΰq|n o'Z!{@Zk%!5@."!F>BQFd"no&s"""?"!@Sk%`! |_LB/"/#Z XK8KYGCn#aG~CGo&Ss"N_"N"?"!@Sk%!LGF".b".U JJF@@9@@5@@AG5@@6Gٔ@GG=@@6G3@@4G6G\n#aG~CGo&NPs"_"N"?"!@Sk%\!n"aF~BFo' O'(" #?#p{. o'Z"!{?"@Zk%!#GCF-".& O'N" o'"N pu?"# Z!{@Zk%!D C@.#!G>CYG& O'Nd#n_" o'pt"N!Z?"{@Zk%8!0@@ C@$<8@7C 8K8WKA'A'#kH,x\ O' o'@Zo&us"H{@ZkN#AG^CzGo&s" "_"N"!?"@Sk%d!n"aF~BFo&|s" #?#."!?"@Sk%!N#AG^CzGo&s" "_"N"!?"@Sk%!n"aF~BFo& s" #?#."!?"@Sk%!uN#AG^CzGo&s" "_"N"!?"@Sk%4!bn"aF~BFo&s" #?#(@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1xu>."!?"@Sk%!ON#AG^CzGo&ps" "_"N"!?"@Sk%!<n"aF~BFo&s" #?#."!?"@Sk%P!)N#AG^CzGo&s" "_"N"!?"@Sk%!n"aF~BF/' O'M NL"#py o'Z"!{?"@Zk%!N#AG^CzG& O'#p_"N o'Z"e"{!?"@Zk%T!n"aF~BF O'O"8B -##n. o'Ze""{?"!@Zk%!#GCFL& O'B"N"m"npu" o'ZJ?"# B{"!?"@Zk%!#GC8G"M#N O'#n o'Ze""{!?"@Zk%L! @"1`@A"1"~"Q.AsJRQJ""rFQ>.UJ>.#!G>CYG O'#m,"."M"N "#Z o'e""{?"!@Zk%!"FBG&/ H&m#Y &K #YG&?yH_"F/"?"ZFK:GF? O'f o'ΰqtN!Z{@Zk%!5@#GC8Go&s"?D#N,d#n#"?"!@Sk%!"FB0FLo' O'"B"N"m" #"?#"p{ o'.!Z?"{@Zk%P!#GCF&. H' O'Q &J"m"QF&>qH "F." o'"RFJ2FF>?"fΰqx!Z{@Zk%!5@ N#AG^CzGo&s"O"b#_"N"!?"@Sk%x!z_#"FB%l!GrҼ.#!G>CYGE.A GEF@.G`.E "GfGnGQJS qJGGXFrF./G.fC"FO X KJGpB#'N O'To GP##.#p|n o'Z"!{?"@Zk%x!"FB0FpB"Nl& O'"n o'pu"!Z?"{@Zk% !#GC8G(# bK&aD#NY/ O'-"XB"\ Km"FY?|bK"X. o'PJGX>"\"?"nNXuZ!{@Zk%!5@.#!G>CYG& O'Xc#n#_"ptN o'Z"!{?"@Zk% !("FBGM/-#m#YYK&'K./G O'dC"[KNFgKb"naGn-"."puFZ`G o'F"{!?"@Zk%|!#GC8GB#NO&l O'#"n o'pr?"!Z{@Zk%$!n"aF~BFo&*s"#"?"!@Sk%!.#!G>CYGlO& O'#n o'pr"!Z?"{@Zk%!y_#"FB%!Gq.#!G>CYGE.A GEF@.G`.E "G`GnGQJS qJGGXFrF./G.`C"FO X KJGpB#'N O'To GP##.#p|n o'Z"!{?"@Zk%!"FB0FpB"N& O'" o'pu"!Z?"{@Zk%8!#GC8GLo&1s"#N"n?"!@Sk%!#GCF& O'_"ptN o'Z"!{?"@Zk%!"FBG,o&*s"#."n?"!@Sk%h!#GCF& O'_"ptN o'Z"!{?"@Zk%!Ey_##GC% !8G#qҼN#AG^CzG E.A.G`.@"ET JrJFFEFN/F /GGF"To GX FY 5KKO&PC#N O'FO pb#Fn8GCpr#Z o'F"{!?"@Zk%!n"aF~BFp" o' O'?#"p{ o'.!Z?"{@Zk%!#GCF(_" BJ'a$".Yb. O'"X#S bJ-#FYb>sBJ#X."?"TJtFX>\.t|n o'Z!{@Zk% !9@GAF5@5@F6F"є@FF=@6F3@4F6Fn"aF~BFo' O'o"#?#p{. o'Z"!{?"@Zk%!#GCF& O'C"b"N-".n"pu o'"Z?"!{@Zk%$!#GC8GB#NO&l O'#"n o'pr?"!Z{@Zk%!n"aF~BFo&*s"#"?"!@Sk%!.#!G>CYGlO& O'#n o'pr"!Z?"{@Zk%8!Mx_#"FB%,!GTp.#!G>CYGE.A GEF@.G`.E "GaGnGQJS qJGGXFrF./G.aC"F X KJGpE#'N O'T GP$#.#p|n o'Z"!{?"@Zk%8!"FB0FpE"Nl& O'"n o'pu"!Z?"{@Zk%!#GC8G,'d"H"/~A#~a/|""\ KzKGN O'|!. o'}A.n0JR PJQF"px?"!Z{@Zk%L!.#!G>CYGHe#n& O'_" o'"pt?"N!Z{@Zk%!"FBG,f#"ya/v#xA/tA"[ aKAKzG.w!.o'v. O'?#Q CYG& O'Nd#n_"pt o'N"Z!?"{@Zk%!0@@ C@#GC8GfE#NlO& O'#n o'pr"!Z?"{@Zk% !~v_#"FB%!G9o.#!G>CYGL.AT j/jb#K0@wB 0J0WJA&dA&d"k(p\N"AF^BrFr"/' O'# o'py"!Z?"{@Zk%8![N#AG^CzG}#& O'_" o'"pt?"N!Z{@Zk%!D"FBG%#.L'#"N O'p|?"n o'Z!{@Zk%!-"FB0FE"N&l O'" o'n"pu?"!Z{@Zk%$!#GC8GE#NlO& O'#n o'pr"!Z?"{@Zk%!L."JJ`#GC8GE#NlO& O'#n o'pr"!Z?"{@Zk%X!L."JJ`#GC8GE#NlO& O'#n o'pr"!Z?"{@Zk%!n"aF~BF' O'" o'px"# Z!{?"@Zk%!D C@ N#AG^CzG& O'N#_"pt o'N"Z!?"{@Zk%4!0@@ C@ф_#.#!G>C%!yG;n#GCFL".AB.To ".R BJ"JQF@G"FBGB#'N O'##.#p|"n o'Z!?"{@Zk%l!GDFFDDFCb.B."""S qJQJGrF @@!G@FGؔ G"F @G@4FGGN#AG^CzG#".lB"."##Q BQFb".l#.B#"JU J_"Fnl"/&8K/b/"\ KzKGN, O' o'.pt?"N!Z{@Zk%!._##GC%!8GmN#AG^CzGL.AT m.m#J1@ B@1!J1W JA1&1A1&1"kP<d O' o'@Zo&s"H{@Zkn"aF~BF "o' O'?#"?"p{ o'.!Z{@Zk%!#GCF4%".L& O'"N o'pu"!Z?"{@Zk%0!r#GC8GHE#NO&l O'#"n o'pr?"!Z{@Zk%![n"aF~BF\" o' O'?#"p{ o'.!Z?"{@Zk%x!D#GCFm%".&L O'" o'N"pu?"!Z{@Zk%!-#GC8GE#NlO& O'#n o'pr"!Z?"{@Zk%!n"aF~BF"o' O'?#"?"p{ o'.!Z{@Zk%d!LGFm.m#"J9@@5@@aF5@@VFҔ`F F=@@VF3@@4 FVF Y@@GGU@@U@@FF"ՔGF]@@FS@@4FFy@@GaGu@@u@@FVG"ڔ`G G}@@VGs@@4 GVGSLv`HG".#.FQ BQF& O'Ne"n"pu o'"Z!?"{@Zk%!0@@ C@_#n#aG~C%|!GSk"FB0FE.A/GEFXK? vFENF`/vF/@FtF@#G\ KzKXFGNvF .@B@."0JR PJ' O'Fo T vFQFPd"np"px" o'Z"?"{!@Zk%x!.#!G>CYGpc#nO& O'# o'pr"!Z?"{@Zk% !n"aF~BFL&"_""/"/B#?"Y 5KK8Gb//zK\ K"GN O'ptN o'Z!{@Zk%!"FBG' O'@.#p|n o'Z"!{?"@Zk%@!{B.z"z".R PJ0JQF@n"aF~BF/' O'+"#py o'Z"!{?"@Zk%!-Ú6@H@n#aG~CG& O'2"_"ptN o'Z"!{?"@Zk%p!"FBG' O'9$#.#p|n o'Z"!{?"@Zk%! {@.z .z"R PJ0JQFAH`"FBF@#', O'#".?"p|nZ o'!{@Zk%!_ÑAH N"AF^BrFD"/' O'# o'py"!Z?"{@Zk%8!Հ_#GCFH$".&L O'" o'N"pu?"!Z{@Zk%!_.#!G>CYGE.ATO L"&, O'_"<`C. o'pt"N!Z?"{@Zk%p! O' o'@ZH{@Zk"FBG ^'% O'#".To p|?"n o'Z!{@Zk%! D P@ N"AF^BrFN"/' O'# o'"py?"!Z{@Zk%!BD0@@ \@8@C O' o'@ZH{@Zk."!F>BQF E.AGE`/@/F #FEYK[ yKFnF`FzG..F .GXF#JFQ CYG.A& O'T Fo g##n_"pt o'N"Zv!?"{!0s/!@Zk%t!G E/%/./Z EK%KJYGX K HGH DD6 n#aG~CGF."GFQPJ/''J. O'!F"vF F"vFpy#Z o'"{!?"@Zk%!N#AG^CzG& O'`@#_"ptN o'Z"!{?"@Zk%P!0@@}@@0@P@#GC8GG#O&N O'c#n#pr o'"Z!?"{@Zk%!A@L`97@H..AU Jx/X/J[ xKXKFzG H DHD7 #GCF"AQ"q.o' O'QrJG'J."!F#?#Fp{.FZ o' F"!{F?"@Zk% !#GCF& O'`@1"._"ptN o'Z"!{?"@Zk%!0@@A@#GC8GG#O&N O'c#n#pr o'"Z!?"{@Zk%T!A@L`97@H..AU Jx/X/J[ xKXKFzG H DHD7 #GCF"AQ"q.o' O'QrJG'J."!F#?#Fp{.FZ o' F"!{F?"@Zk%|!#GCF& O'`@1"._"ptN o'Z"!{?"@Zk%(!0@@A@#GC8GG#O&N O'c#n#pr o'"Z!?"{@Zk%!B@L`97@H..AU Jx/X/J[ xKXKFzG H DHD7 #GCF"AQ"q.o' O'QrJG'J."!F#?#Fp{.FZ o' F"!{F?"@Zk%!#GCF& O'`@1"._"ptN o'Z"!{?"@Zk%!0@@B@#GC8GG#O&N O'c#n#pr o'"Z!?"{@Zk%4!n"aF~BF"o' O'?#" ?" p{ o'.!Z{@Zk%!D D@"FB0Fn& O'NG"N"n o'pu"!Z?"{@Zk%p!0@@ D@ _#n#aG~C%T!GfҼ"FB0Fm.M".AS rJm>F ".yJM#Xe#TJ>#&"XT \E O'XK8GXn o'̠&.F."0JR PJQF u"!Z?"{@Zk%p!D5`@,.#!G>CYG ./m# O'P JKGF"FH'FH#AR"ADr.%#"FSrJr>.#6F@Dp|"n o'Z6F?"{!@Zk%!c!" p@GaFp@p@FVFҔ`F" F p@VFp@4 FVF<"FBFD~#A/|a#~!/&$"Z XK8KHE"YG|/ O'}.".?"KNP JFn o'pu"!Z{@Zk%!#GC8GHE#O&N O'e#n#pr o'"Z!?"{@Zk%!n"aF~BFo' O'"#?#p{. o'Z"!{?"@Zk%(!#GCF& O'%"._"ptN o'Z"!{?"@Zk%!8 @5.#!G>CYGe#n& O'8o_" o'" pt?"N!Z{@Zk%l!D C@/#GC8GnND#O&N O'n#pr o'Z"!{?"@Zk%!0@@ C@"FBFo' O'#?#p{. o'Z"!{?"@Zk%!8 l_"FB0F,E.AGA/E~!/F~#vFE8KZ XKvFNF@FYGtF}.G|/XF|a#P JvFK5@B@B&FO To O'HB"N#".FnvFpu"Z o'"!?"{@Zk%! O' o'@ZH H{@Zk#GC8G,E.AGxA.ya.EFvGEAJS aJvGNGAGrF.w/|Gv.GXGv"vGX KJACGvGua/0ACtA/t!#[ yKYK&zG. O'To F #f"_"pt o'N"Z!?"{@Zk%!"FBGf%#.'#"N ?" N O'p|nZ o'!{@Zk%L!D D@."!F>BQF' O'Nc"n" o'px"!Z?"{@Zk%!BD0@@ D@8 C O' o'@Zf H{@Zk##GC%!\F;en"aF~BF.AT "o' O'?#"v!p{ o'.!Z0s/!?"{@Zk%4!,. .#GQ !Kє& O JCȆ3Bb#ձPNw#HK+<Wє3=DvrJNl~P5:VacBP?D“ {eű)q"kzFZzYg`8(;aNhslnV/+E#09 1Oߙ`Q |1-TW_h%]۶]\ZTUZ}W_L_7 l `܈Q[\!BuLi H}%茔tRI@KPWIG KCS+&!-A~k;ATT }ϭr)z,?UHZ5Vw__|.bcL wvf6+okk(ii?&Kb5bf{*P&FLm~CxD" " 99}誢_X2"=Qq8;/ѿhB+7hY??ؼ{5%lDf)56ɰf(SKن"#ǀl ࣸkN, ܙ^:S 0[PN}e: Îys<"k.S'Z XӔ4)Cc.2.6틺ߍhmN^C q)ПΔ$K|:E*eqɼ)]~ Z.XZ&ˤu,AIdRd,-CU%Úi>FڴFp=ʐFŘLq 0]2SXP7gQF/MkpٺNﺾ?׷7N#gľTu[z/uF;_oC &#myq|wtMʙV(S{Vnt\M55+B|(02wm[_0PbruV"8&wx1q'OAL "m>lnSκɶW]#$W1፾o)OߣCfi Nkׯ欒R[YY2spsTѯźꋀ|nnB >]Ij?\N{ g_CxMjwEHW 13߱ t.s.y- |ey5DY:1~U.g=ӖQJb[c)}gS{NQWQerp %Pi9#d>H0l,0}IEɊ;~aȀHA*VYp(Sa'&(ȫT8bD@%rӌB> ̻9h\ulIqL3vr?XpKՖݿ v>9 .>S{'oaeS\yh?* eK@DP|`P #T/^Jwꌨ# ܲo@yL&"`}R\VIPB  5HsO3wJvՙD L:DBSU(g ,h;L^,l>6={8^d߀ XiKUO /+b1:}][ ',PAi_}[؇!}&/OS,%T@Z/4(yJ>nڨ-xEڼ!B>0.`  9?!9qӷV5#4,b()O;$: <-b̸Lwb%je9.tn9s+w nIJ̈́?OH/>pBsTEBw?/B*49( #GA )(cI?+qCgD'V+}tT%c`*Zid}5*+7sjK<)<=CHYN (EnlKZًؠ- CK,||SL J ('] 2{,Jyvp 7D>3n59v#;|+ߩM^ݼgp T1FO\[Wy@",UpEQ 09PQrTp5 lJ;$u&1wReDyЀ}L-@$in]]U-LpqOv9 !|,!堖(BAV wxIf{2Qe|sURC)颅j$u1'[$ `,X@)&W|nOh r" ׏yk~@u:%jNYXMM8!E9iBDd8^ȬNֵ;^6q)p=מ-}uj2r橑sCk,ChL"FC|^ȩUN4P԰}<,bu'(WW38#=SS$W>RT'?,0/!WKJ$aTzV痾ZOlC*[FN(Ԭu$"~xG6ՇR\7_MǡwMvSIuI[,_(f_ĢVHgqs`5tB^3!bO#ϛ(q,^9M-XӲi^9 yf pWּbo[֦l7. e;^Eݚ$$Fp@)齍pXIREf0>zPEQ`-[2™-B@ NV.{T fb/Ċ"}wxc]]WpH|cNwSV$<Y~ڗ9,30RBpưi؇sʇ3'@S:x!BR~<ްӭ[Ը#@+{S`KE&I.{ך }Ю)#P=g1\SᇘX¼*$νO1oLu<'_n2W>^W獌 {u%sP&o>4~-Rpe ﯠMA2 C\>5PP΋Yt=ՠg0Wq 6^YwMI,i7蝢DZK}&M(% `эtȽREQ+h?U7p7WH-q!QPqg+Sj3MA囨Ka:}حA0FI2O)Íּѻ=g5wJHko!{8Y\F zjMnnw !@7~SĶd9Bv6ڮQ+meוP5 g>[-|rpQ8G'[8B_e(r%EP暰^|e YoA g1Pg /WgcA[^ilYp7H}u^gY GFGYƾ铗-+ EhDo?7ʋ>cojYrA=g 33dL6-hSգsK C [XĎ$ (SS6Syq$}.^RL뽳<}+-Ӄb eDw4iŔ#}NhR?_'1&Ys}yxu#]!8l&&0Ka)rHQ˲e%7]B*W]QdP[y Sc:MՕ!;djͻy i14<ׯTѢ b,M#SF$YDVxl L6H@2,u?Sdck>\Z 2WA͔3-DFt-Pc}B(G*9_b0@N*]jf<7˕0;!o|f:\N'286D@ @wHR LpN'R-ma^94=D.",@%մmsKG3tb%PU-^qwo_*Jn3a|Cdx־o Pc,.BzA->Rxዺ 5UyA+-*1I}XcU\㳒Yyߟt'A{I¦kӜ2sJ3.J GoVa?|M{.&<3'QTָH=Xxހ£}ZPD<}_ uє>foT{nxjD4W :ߋhc(B 4I!+4!s!eօ#~[kS -HEƛ}zb_86!ş'R |Xvyp9GQ3H?"dӞ%MyX"A|ILZaRK 'ɓz6º/<55/Q}u?$뇭(y>H4\Ԁmg (-'9 e/]x6[;| wC 1vS“ (h6m{#d/cIlY!L/9mryU:|}Ѵ(N2pmvI3C$4At@h1-Y;" LG R>0qlħ3Ԉ@W.cLZ+' uhkűNmc .G0Lx PT78GpTօVb/9#9y ~e:&b̸ Q=e:;JnmFX&yP z-tqN%@Q6٦'5 ὦ:,MKӔCw7'(ۡk)CBILؒ$>m@a8(N7OR- ի4bҿ$vD93v euļyO0$loxRO`8E<9te9|f<]w3GDZ}X(w20ķ~X9jK; NOO =후>%_&?X! _^.68K flfyMSqLS#N%3 0='v< f"?FB`Tv/Q?v,ol\Nwc:;]B0jܞ&葙!y:R2ej739k[_ztqiD4Zձ&\diĊ.{ qz&b\DBX3X> ԯBWڲZ#-7"CcIÅ96o Kdsz\$HagpJLXHHl |bok;`UHRױfKJl@ }Gm)<:C1XC|8=S9_yH1= @x&MW.̗)c{W^='5+|jѸC~IRi X*t UF!fU &儉C-!;aZ\wiο\ }* Lu?{i/v"NwzE/QxkSC `( >˞P-`=%5iRߔ5#͊)QaefThַ|y5榡#'1KDfr:4ʰ;lh֡IgVI*_nf.8mƷ^`ZBjBm[Jf[OeX &uoVBN vw~UI6UzVހ ecc y9ظ M41olBV#|(~ CxR[7\FDPOz[,s*TL/UR RZLmڞf zL4uåFdQQY}Idq n-׼բ;ߺ>hA<\Oh> ʼf %tT]e4\)NV}+ FFW`HV *א~ BmKN%2^ѺHk,OL4پLeDX[THO46pWK>XqAzם0Mhp{+W;?6pEcJI}2u(]=Lsf | >H+2c ,Nj^\1v?3kJh%æ ap$Ph;^z`41O׍;8` z-^d0쳚m!mp!3v$ #n'hkw=`W6k6(`&N{kBR'SvDc`H7nӺDݤ {^21 yX乲rBG}7*I}n/\9o[ 6>`$]Ǵ@%Fi] -VZNyi(צRF |5< ֖T .c7+F\IrQд'{a|YBy}MdC\a2^R+= /=Ou K";yqiƇCvp A'$ڟTLw~1ro)x%/}xOc6H`zpHӈM M{iXg8:i;uTE\Eu`YϝQ8GE<ʙ1|PL ;\=.xM }os6Kp.g#E/{N1@O6m8#$5ף`XF%->2ﴠ3}xO'wW=V_|J:hF}JG"f59O_A纜ַmtX]%49PFd#`#"MC~5TfH%2R8nAa哧w)k4[!ͲLEG7eԓB< E谬]Yr?A a%r`2ɯ59$@x96Da*gn?neYT. >Dx P UpSmDg\5ric]v@#7 _Ǧ~>S+y~ rO) G,)eTN8{ȕs1jA5۰ݢfS_7u;۠>)=4*O+T%!.6z.,l`gVj8Y\윎[E$W} RX?3} 4 kk'6PiP\msz|*u諓h|ɓ^91PG=-F#@c(MN.(v-?}czͺ v'VOb%9aGR\9CG}:=6LC8x5$]_~~0P6Q =>—efЪ\w<LEA X]$g\xϥ%*iRYg=g$i22~V6! {,3QHQ"=%nXsԳ)ø"i<̵\V۶sJB5ſ$xQN̫3vcj'ent—c:E%5^e·8 Z)" <1VwHP5ܲ9Elӵ;\*Ha2^z#: -.eZTd@[֫_KKՏWG(mmQ9 'i.J -j,g5Y Iz5%o8+ZzV[hn17i:Mj0 @_9Fp>osew;`\*tpN\Dur!ί n+T5['̜'aGI#?IGř"#/]%v{:eEJ z/?bBùvIK*Qn'ŊXʟab7je9UQ1mαJ۶WTP@EiN:,qIy$٣c5ˆBgk+kJX‚U"2 ^`DUbS֨=>"!PZ]f;ڛQBĮ-+_8DH+L8BXc25cE|%v9#b( Gb0y[W oA\Y NgX`])a8R^@%9L_CBuUǽ zl_2wrNM$>K}x{6&ZNy9Pb8-?hPe#%c`B?Q"jj#ФH*B `{+=¹c |6L`[c-ຣ@FwuOޙ wKK;qhr}N!g\q8rQ'zӭtC41WE ߬N >,]_:0] Wl*$XTN餖)Va?0\i)$#ry!嬳'{ux]Zo˯e͜gkl?!tҤNP߁L[L%'+ﶇ[BKKA)΋Y4]ȭQװ? lNt\-׼1j uYnT8_Ҫ2JO# ['At3Nΐ~xSYe{ ڌ4s[gC璥Rَ̋wP$B]"e&?]'8ԉ0k{oZP?Z+O2n|ّM]h!I=9PD}KAO\Kb!x\ %\X: [k R+itaj=p=/h׺,F ˆU Pف%:?Or-zc{H>u݉ Zb >d!WSRxF"ͻj RP*UtZZ9$Rh9- {r3%PD֍}J@0f5A7zFlae=7#xQ?2Hg_wrBe` Ef>S+C(Gilګ%$uqzE?ֳum[?t-<(b ֦'\w/ ϖqkEl]w..F(8#ܭ3)jxph7!7ݼE|AazMw ,jav.=ՕgK#LlT8f:ݢc}}Jm}ı}3YmY-a-TGByCK'/ew8K_ԛ wAΎ<^zBIsqLlVDmZ-{tOI WaKx bIrd"milN%Niær'@O-{c-`-GQh6u_aNx)!$5',I]1%X,ðkKtΦYi¾oy"eq!eQl[=|^H_@Ϝ*N6-s95Dv~٬̙4$K2@ )k1p_w`XX1|Qg3մ'"ExN* !vzyyiTpԃyf쑢 :~&M2Bqtu:-^~N+I(|wa=!ɊF].&^>UΑ1D18T2hKuWmI#' ߕsʛ6, {M b/%}̒8jAN[ Lx#ÑYR#aaFd,Wޑ߹2LCY +h,`b0m*݅p3ՓflNOjY,' i\ĦPyĩ=P@bGMS@JXہB4b6퇝4FUxjڈ}w1 `u!|~)-wkn4e2Iż{22\"ٿz2#S+`*V_zys(KQJs9ʧ$ iXc(n&jtMD (vJS dJDJrF HHDD5"FBFE/##GYXKF'K.&L!G O'vG GN_"ptNvGZ o'"?"!{@Zk%d!"FBG' O'@@.#p|"n o'Z!?"{@Zk%!0`@}`@0@P@."!F>BQFf"n' O'" o'px"!Z?"{@Zk%!a@K /L#l/\ KzKG17`HAp.P.S pJPJrF HHDD6"FBF#A8#X/#GFXYK&K O'LG_"vGGNpt"NvGZ o'!?"{@Zk%!"FBG' O'@@.#p|n o'Z"!{?"@Zk%!0`@a@."!F>BQFf"n' O'" o'"px?"!Z{@Zk%!a@K /l/L#\ KzKG17`HAp.P.S pJPJrF HHDD6"FBF#A8#X/#GXYKFK&LG O'vGGNpt_"NvGZ o'"!?"{@Zk%D!"FBG' O'@@.#p|"n o'Z!?"{@Zk%!0`@a@."!F>BQFf"n' O'" o'px"!Z?"{@Zk%!b@K /L#l/\ KzKG17`HAp.P.S pJPJrF HHDD6"FBF#A8#X/#GFXYK&K O'LG_"vGGNpt"NvGZ o'!?"{@Zk%!"FBG' O'@@.#p|n o'Z"!{?"@Zk%h!0`@b@."!F>BQFf"n' O'" o'"px?"!Z{@Zk%!_N#AG^CzGl ,E.A0CQ@ 1BQY@89B*.'B"'b.T JrJF@ &`/#@# H[ zKG&`?{H#/\K|G#?#   Q @1?, R @*.'`" HT JF*>tH'.UJF'>*"/'# o'Y 8K*"?'B/ZXK'B? O'H{@Z@Zk#n#aG~C%ؾ!Gb"FB0F,.A R @R&.#.#b"U JJF@ &B/#"# KZ YKzG&B?zK#b/[yK[G#b?zj_"FB0F l& O'`"C"Nn"pu o'"Z!?"{@Zk%!&B/###"/'c#*/#""Z XK8K\ KYG K qHF*?|K'.PJG'>&B.R QJrF&B>rqH#b.SqJSF#b>Ej_&"/#/#"Y 5KK8G@@'B#'b/*/zK\ KG@E"FB0F& O'C"N`"n"pu o'Z"!{?"@Zk%!.*B/'"/'#Z XK8KYG@@'b#'/*.KP JF`C`."!F>BQF '"' O'`"n*/#'."?"X KJG@ #.p|n o'Z!{@Zk%(!*B.'".'" '#R PJ0J*.'`"QF JT J HF*>tJ'.UJF'>*"/Y 8KYG*"?yH'B/ZXK:G'B?i_^ L \@BDLP@@!1@@pU @49@@5'C.'#"*c.QJS qJrF@ &!/## HY 8KYG&!?yH#A/ZXK:G#A?[@@{\@@<*!.'" HQ 0JQF*!>qH'A.RPJ2F'A>n"aF~BF*/'"o&X K*?(As"#'#/"?"Y5K'#?LNln!@Sk%|! O' o'@ZH{@Zk#N"AF^B%`!F&b#GC8G O!BQFc"n ' O O'{#-#T@#T"?"."p|n o'Z!{@Zk%!"FB0Fe"n"C"N o& O(s"#"U@?"!@Sk%L!.#!G>CYG ##,@.# |KP J0F>p|K".Q " O?"R@&.#g"#.U JJFno&1s"!@Sk%!.#!G>CYGO& Ϡ O' /m#n#pr o'"Z!?"{@Zk%T!n"aF~BFo&ps""#"?"!@Sk% !.#!G>CYG&/#g#&\ K&? O'-"#.C""PJ#> o'".?"NpuZ!{@Zk%!#GC8GH/ H&#Z HK_"zGH?zH"h/?"[hK[G O'h? o'`tN!Z{@Zk%!5@#GC8Go&s"C#Nc#n#"?"!@Sk%!"FB0FMo&s""N"?"!@Sk%|!"FBG-' O'.#|"n o'Z!?"{@Zk%,!5@."!F>BQFc"no&s""""?"!@Sk%س!#GC8Go&2s"C#N#n"?"!@Sk%!z#GCFo&2s"#"_".N"?"!@Sk%T! O !1@@S@@Y @9*/'"'.X KJG@ &a/#A# H[ zKG&a?{H#/\K|G#?P@@Q@@1*a.'A" HS rJF*a>sH'.TJtF'>*/'"X K*?'$/Y5K'$? O O;1@C o \@ /  /21 B O  S @s"FBFo&Us"#"?"!@Sk%!.#!G>CYG' O'#p|"n o'Z!{?"@Zk%! Ϡ /"FB0Fo&Os""?"!@Sk%x!OG ϰ / O 0 @ &@` o"FBGo&s""?"!@Sk%!.#!G>CYG  Oo&l s"#[@"[?"N!@Sk%Ȱ!_#N"AF^B%!Fc_Ҡ#GC8G O!c"no&s"M"N"X?"."?"!@Sk%(!4"FBGM#N' O'[##.#p|n o'Z"!{?"@Zk%ȯ!"FB0Fo&ps"]C""N"?"!@Sk%!Gu_#GC8G O&m##Z @" O'n o'?"prZ!{@Zk%!n"aF~BFO&C#N O']" #.?#.m#n#pr o'Z"{?"!@Zk%!n"aF~BFD 1@GDFGDA'Z#FN O'p|GX G#nZG o'B"{!?"G@Zk% !"FB0F& O'M"N"pu o'Z"!{?"@Zk%Э!#GC8GE/ H&#Z EK_"zGE?zH"e/?"[eK[G O'e? o'\qtN!Z{@Zk%T!D5@@O# X@GaGX@X@FVGڔ`G" G X@VGX@4 GVG>#GCFc"no&CYGo&ps"o##n"?"!@Sk%!Gt_."!F>BQF' O'/#"."#c"n#p|"n o'Z?"{!@Zk%!"FB0Fo&2s"O""N"?"!@Sk%d!"FBG ?#o&,Ls" "_"l/L# :K?"[ zKGl?{:K/\K|G?"N!@Sk%!n"aF~BF/' O' D"#py o'"Z!?"{@Zk%!N#AG^CzGo& ms" "_"#N"!?"@Sk%L!n"aF~BF$//"l/L#Y 5KK[ zK8G J"Gl?{Jl"/!#\K|G?l# D.$..R PJ0JT JQF JF>tJ.UJo&F>"D/(As"!$/"/Z XK8K\ KYG KF?|K .PJG >" /.?" ON!@Sk%4!"FBGo&Os" O "?"!@Sk%!.#!G>CYGo&s""?"!@Sk%ħ!o OG o@ 0@ @ s_N"AF^BrFo&ps""""?"!@Sk%P!s_#.#!G>C%D!yG]Ҝ#GCF /!<  N"AF^BrFo&s""#?#.X""?"!@Sk%!GDFVGDDVGn#aG~CG O & O'#$"PAd"p".#n o'C"N"pU?"!Zb"{@Zk%!.#!G>CYG O'#*"-"_".2d#nN o'Zb""{!?"@Zk%!n"aF~BFo&s" #-##."n"?"!@Sk%d!9@G!F5@5@FF"Д FG=@F3@4GF=N"AF^BrFo&qKL.RPJ"2FL>?"npu!Z{@Zk%! @@$A9#.#Y/YK;CA"0.Q0J0>n"aF~BF/' O'"#py o'Z"!{0@@?"@Zk%! @@_n#aG~CG& O' "-"._"pt o'N"Z!?"{@Zk%!"FBGo&s"n-#.#n"?"!@Sk%p!  O,1@\@SA<*A.'!.'"R PJ0JQF@ &.#" HU JG&>uH# /XKF# ?BY@9?Z@*/'l# H\ KF*?|H' .PJG' >*A.'!"R QJ*A>'a.SqJ'a> O51B XA O O,;1@C o / \L@"FB0Fn" O"?"N ono&(As"!@Sk% !"FBGo&Os""?"!@Sk%ؠ! o/ O / [C5  P @B N"AF^BrFo&s""?"!@Sk%l!q_ 0BB  O,0@C o / C?q_"FBGo&ps"[$#.#n"?"!@Sk%!q_#N"AF^B%ܟ!Fm[#GC8G O!< @Sn#aG~CG o& s"?" EPADP"!@Sk%T!."!F>BQFo&Hs"""?"!@Sk%!"FBG 'M##Y @"٠?"N O'Np|n o'Z!{@Zk%!"FB0F& O'M"N"pu o'Z"!{?"@Zk%X!!1@G!DFG DDG8DGGX G!DG3@G3AZ#.#z/zK\CA 0 @GR"EFr.FE]?"FA9 D,Dt2JSrJF9#GXGFr>Y/FAZYKFY?!D!1 @G!DFF DGFX F!DFCFN"AF^BrF' O'-#."x#}"#p|n o'Z"{!?"@Zk%!"FB0Fo&A O'R"N"ps o'"Z!c"{?"@Zk%!"FBG'ΰ O'-#.#p|"n o'Z!?"{@Zk%4!"FB0F O'#b"ΰ"D"N"n o'Zc""{?"!@Zk%̛!.#!G>CYGo&s"m#n#_"N"?"!@Sk%!9@GF5@5@FF"ԔF`F=@F3@4`FF<#GC8Go&utJ /XKF ?,l/L# :K[ zKGl?{:K/\K|G? DP,@T @p*c.'#"'C.S qJQJrF@ &/#" HX K8G&?xH# /Y5KG# ?Z,@Z_[,@*.'# HP J0F*>pH' .QN"AF^BrF*.'"o&U J*>(As"#'/"?"XK'?N /. OnN!@Sk%̘!&..#b.B"Q sKB#.!"TJtF>b" &//b/Y 5KK[ zK8G JGb?{J/\K|G?"F.!&..R PJ0JT JQF JF>tJ.UJF>#GC8Go&Os""?"!@Sk%̗!N#AG^CzGo&2s"#_"N"?"!@Sk%!n"aF~BFo&ps""#"?"!@Sk%H! o/ O / [C$  P @B N"AF^BrFo&s""?"!@Sk%ܖ![_ 0BB  O,0@C o / C?N"AF^BrFo& ﳀs" "?"!@Sk%X!o[_#GC8Go&ps"D##Nn"?"!@Sk%!^[_#N"AF^B%!F}X#GC8G.A_#o&NT's" # "#m#m.|o !HO S rJFm>s2J |K.TJM"tF>-/Y 8KYG-?yJ"M/ZXK #:GM? J-/ .Y 8KP JYG0F >p|K-.Qm.S rJm>.TJ>-?yJ##M/ |KM"m"ZXK SJ:GM?-# # .P J0F >p|K K-.Q.T JF>tSJM".UJm.F>SrJm>"M/&Z YKzGM?zK#m/[yK[Gm? .P J >-.Q?" O' o'Z0s"{"!@Zk%L!5@ N#AG^CzGo&s""#_"N"n?"!@Sk%!.m"J3gJ_`"FBG?#-&M#N O'm#nP#_"ptN o'Z"!{?"@Zk%!"FBG "/ H&Yc#Y "K."YG "?yH#B/_"?"ZBK:GB? O' b o'"ptNZ!{@Zk%!"FBG"/ H?c#'Y "K_"YG"?yH "B/&s"?"ZBK:GB? O'b o'NNZ"!{@Zk%l!n"aF~BF/' O'"#py o'"Z!?"{@Zk%!D< Q@AZ#:#z/zK\C."!F>BQF' O'bc""n"px o'"Z!?"{@Zk%! 1@A9#:#Y/YK;C"FB0F& O'dC"m"Nn"pu o'"Z!?"{@Zk%$!#GC8GM#NO&l O'#"n o'pr?"!Z{@Zk%̍!^_"FBGE.A':"C O'H " L##m"-".tD"Nm"n" rx o'Z"{!|O ?"@Zk%4!5@ N#AG^CzGo&s"f"#_"N"!?"@Sk%!n"aF~BFo&`ls"x"#"?"!@Sk%!.#!G>CYG& O'xd#n#8#_"ptN o'Z"!{?"@Zk%H!#9/#9"K5J.#!G>CYGo&s"#9o##n_"N"!?"@Sk%!#:.#:o"J3gJ/`"FBG"#.l' O'#n"p|?"n o'Z!{@Zk%!"FB0F/'D0@ O'`@#:"8@Bpy#Z o'"?"!{@Zk%!_#pD O' o'@ZH{@Zk#n#aG~C%!GV"FB0F.A' O'HO L"N l"nt"qx" o'Z"{| !?"@Zk%t!.#!G>CYGl' O'n_"p o'N"Z!e"{?"@Zk% !n"aF~BF. Ho'tB#U J#G>uH"/?"XKF?,"N O'Nq۠ o'!Zf"{@Zk%!"FB0F' O'l"nt"L"Nqx" o'Z"?"{!@Zk%8!.#!G>CYGl O'#n o'nZe""{!?"@Zk%!9#GCF O'?"-M"Nm""n o'ne""Z!?"{@Zk%!"FBG"/ Htb#Y "K#YG"?yHf"B/"?"ZBK:GB? O'bnN o'Z!{@Zk%!+@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1ܟ>x\_."!F>BQF O'm"n""# o'e"Z"!{?"@Zk%!.#!G>CYGb/ H O'"[ bK_"Gb?{Ht""/f"\K|G? o'"NN.!Z?"{@Zk% !>\_#"FB%!GT.#!G>CYGl=o!| Ho `#GCFo&2s"$"._"N"?"!@Sk%!Glk_ B, N#AG^CzGo&2s"#_"N"?"!@Sk%CYGo&s"d#nf#_"N"?"!@Sk%؄!n"aF~BFo&`ls"x"#"?"!@Sk%!.#!G>CYG& O'xc#n#8#_"ptN o'Z"!{?"@Zk%@!#9/#9"K5J.#!G>CYGo&s"#9o##n_"N"!?"@Sk%!#:.#:o"J3gJ,`"FBG'N O'$#.#p|"n o'Z!?"{@Zk%|!"FB0F&0@ O'@@N#:o"n"pu o'Z"!{?"@Zk% !#p.#!G>CYGO& O'tc#n#qr o'Z"!{?"@Zk%Ȃ!5@`"FBFo&s"#$##n".?"!@Sk%t! C?."!F>BQFo' O'"m""#?#"p{ o'.?"Z!{@Zk%!#GCF#. H' O'Q #J d"QF#>qHt"C." o'"RCJ2FC>?"cnrx!Z{@Zk%t!D>.#!G>CYG& O'#m# "$"_". o'"pt?"N!Z{@Zk%!"FBG#/ H&Y #K%d#YG#?yHt#C/_""?"ZCK:GC? O'c o'nrtNZ!{@Zk%x!D5@#GC8Go&s"OD#N3d#n#"?"!@Sk% !"FB0F"no&us"O$_""N#8"#n#[$#."?"B !@Sk%!#GCF#9o"no&us"?#.j#_"N""?"."?"!@Sk%H!N#AG^CzG"no&us""y"#:/"._"N#""?"!@Sk%~! C N#AG^CzG"no&us"""$"_"N#"".?"!@Sk%l~!#GC8Go&us"""D"N#n#;#?"._#N"?"!@Sk%~!"FBGo&us""_"N$"._#Nd#n#?#."?"!@Sk%}!n"aF~BF" #?#-M#N& O' o#nt#_"rtN o'Z"!{?"@Zk% }!5@#GC8Go&s"D#d#N#"n?"!@Sk%|!" ."!F>BQF' O'"m"" #t##.#q|n o'Z"{?"!@Zk%P|!"FB0Fn& O'tC"Nn"pu o'"Z!?"{@Zk%{!#GC8G C/ H&Z CK"zG C?zH-"c/ O""[cK[Gc? O' o' .?"Nqu"!Z{@Zk%d{!5@.#!G>CYGo&s"d#n}#_"N"?"!@Sk%{!.m".v@H?#U JJFbF8v@HC@;v@H#|C."!F>BQF& O' o"n"ru o'Z"!{?"@Zk%z!o8v@H*?#C@n#aG~CGo&سs""?"!@Sk%8z!]"FB0Fo' O'_"Mm"n""t#?#q{ o'."Z?"{!@Zk%y!-. .#Q rHt"c.# o'"ScJ?"SFc>nqyZ!{@Zk%u!N#AG^CzG& O' #_"rtN o'Z"!{?"@Zk%Xu!""FBGM#'N O'#;/#.#p|"n o'Z!?"{@Zk%t!"FB0F#;O"N/'l O'""n#py o'"Z!?"{@Zk%t!N#AG^CzGo&ts"#;""d#-".M"N"?"!@Sk%4t!D9@G!G5@5@FGؔ G"F=@G3@4FGN#AG^CzGo&Ps"#;#_"N"?"!@Sk%s!n"aF~BFo' O'"#?#p{ o'."Z!?"{@Zk%Ls!#GCFo' O'/" ._"m"Mn""t#?#q{ o'."Z!?"{@Zk%r!#GCF?"&- O' nM"N" o'npu"?"Z!{@Zk%pr!#GC8GC/ H&t"Z CK_"zGC?zH?"c/[cK[Gc? O' o'"nqtN!Z{@Zk%q!"FBG' O' /#.#r|"n o'Z!?"{@Zk%q!"FB0Fo&CYG& O'0d#n# "?"-M"tc"Nn"qu o'"Z!?"{@Zk%m!#GC8G_#&M O'm#n_" o'pt"N?"Z!{@Zk%hm!"FBG#/ H&t#Y #K_"YG#?yH"C/?"ZCK:GC? O'nc o'nqtN!Z{@Zk%l!"FBG' O' /#.#r|"n o'Z!?"{@Zk%l!"FB0F"no&hs"O$"#8"_"N"?"!%B @Sk%BQF"no&hs""#;"#"?"!@Sk%CYG& O'1d#n# "?"-M"Ntc"n"qu o'Z"!{?"@Zk%j!#GC8G_#M& O'm#n_"pt o'N"Z?"!{@Zk%\j!"FBG#/ H&Y #Kt#YG#?yH_"C/"?"ZCK:GC? n O'c o'nqtNZ!{@Zk%i!"FBG' O' /#.#r|n o'Z"!{?"@Zk%i!."FB0FE.AHO ""# tB#N' O'-#.3ABq|#nZ o'"!?"{@Zk%i!"FB0F_"m"M'n O'" o'"?"pxZ!{@Zk%h!.#!G>CYGb/ H0H&[ bKJGb?{HB/ O'tB" F\K"|G?,0J o' B""N?"Nqu!Z{@Zk%h!#GC8G' O#N O'r|#nZ o'"!?"{@Zk%g! O' o'@ZH{@Zk#N"AF^B%g!FM#GC8G_'!Z#&M O'HO t" l#n#qt_"N o'Z"{|o !?"@Zk%g!"FBG,O'#."p O'n o'Z!d"{?"@Zk%f!#GCF ". H?C#"Q "Jt"QF ">qH#B. #-#"RBJ2FB>?"l bN O'n o'd".!Z{@Zk%f!#GCF". H@c"Q "J"QF">qH JB.-#XB# o#RBJ #2FB>bO&N"Y.?"U JGY>uJX/XKFX?\"N O'nqr o'!Z{@Zk%De!n"aF~BF M##A"d"/"?"XK?N O'n o'Z!{@Zk%d! 1@A# ?".JC@As" 1@.TJ>#GC8G& L#N O'l#nt#qt_"N o'Z"?"{!@Zk%@d!"FBG?#-&M#N O'm##n_"pt o'N"Z?"!{@Zk%c!"FBG"/ H&Y "Km#YG"?yHt#B/_""?"ZBK:GB? O'b o'NqtNZ!{@Zk%Pc!"FBG-#.L'#"N O'p|?"n o'Z!{@Zk%b!S_#N"AF^B%b!F|L#GC8G(7Ϡ! 7/| Ho ,O'&o'p{#np'/&q|O&q1.rR..f"GU JJFF`BaFsFG`FG .#!G>CYGf#n O'A"-"_". o'Nh"Z"!{?"@Zk%a!n"aF~BF" M#N O'F$#.#n o'Zh""{!?"@Zk%da!#GCF& O'-"._"pt o'N"Z!?"{@Zk%a!"1@@A";?#/KB@A{#/\K?"1@@_."!F>BQFe"no&ts"?#)1 A."" #".?"!@Sk%l`!D9@GG5@5@FvG۔G"@G=@vG3@4@GvG"FB0F3HGaF O'F"VFZ`Fn o'"{?"!@VF@Zk%_!"FBG?#-M#N O'#t"m_"#N o'Zk""{!?"D@Zk%P_!n"aF~BF:HGAGF6G@G O'" ##n o'Z"n@{!?"6G@Zk%^!#GCF#. H4HQ #JGQF#>FFvFC.FJvFFTFqHRCJt" O'GFvF2FC>F?#.nGFZ o' n"F{!G?"@Zk%^!N#AG^CzG O'_" #N o'Zj""{!?"@Zk%]!n"aF~BFo&Ps""#"?"!@Sk%|]!.#!G>CYG O'_"Kd#N#n o'Zh""{?"!@Zk%$]!n"aF~BF" # -#._#M O'_"Nt#m#nZ o'k""{!?"@Zk%\!n"aF~BF"G .F ##;$K.n"aG!VG`G o'VG O'{?"Z C@Zk%0\!"FB0FC.5H HGR CJFFrFC>FFJc.FFTFt##GF!GrHScJFVG GSFc>VG O'#"9G.?"n o'nZ n!{@Zk%h[!#GCF O'_" /".N o'Zj""{!?"@Zk%[!n"aF~BF8H O'GnG?#F.ZF o'G"{?"!@F@Zk%Z!N#AG^CzGo&ps"#"?"!@Sk%xZ!b" ."!F>BQF' O'"m"" #t##.#q|"n o'Z?"{!@Zk%Y!"FB0Fn& O'tC"N"n o'pu"!Z?"{@Zk%Y!#GC8G C/ H&"Z CK-"zG C?zH O"c/"[cK[Gc? O' o' .N?""quZ!{@Zk%Y!5@.#!G>CYGo&s"d#}#n_"N"?"!@Sk%X!..m"v@HU JJ?#FbF8v@HC@;v@H#|C."!F>BQF& O' o"n"ru o'"Z!?"{@Zk%,X!o8v@H*?#C@n#aG~CGo&سs""?"!@Sk%W!]"FB0Fo' O'_"Mm"n""t#?#q{. o'Z"{?"!@Zk%pW!-.# .Q BQF"no&s"""?"!@Sk%U!H_#GC8GE.A;BC| Ho #GCF/' O'?"-M"N"m"t"#qy o'Z"{?"!@Zk% U!N#AG^CzGt#& O'_" o'"pt?"N!Z{@Zk%T!"FBG #/ H;HY #KfKYG #?yH`CC/& G;gKZCK O":GC? O'"-" ". {C o'N"qu?"!Z{@Zk%T!5@.#!G>CYGo&s"d#n}#_"N"?"!@Sk%S!.m".v@H?#U JJFbF8v@HC@;v@H#|C."!F>BQF& O' o"n"ru o'Z"!{?"@Zk%8S!i8v@H*?#C@n#aG~CGo&سs""?"!@Sk%R!W"FB0Fo' O'_"Mm"n""t#?#q{ o'."Z?"{!@Zk%|R!-. .# O'Q "/".Q?"0tH/.UJF/> 5C N#AG^CzGo&:s")#_"N"?"!@Sk%L!n"aF~BFo&:s"{"#"?"!@Sk%L!.#!G>CYGo&LCYGo&s"Ng#n#_"N"?"!@Sk%K!n"aF~BFo&кs"?#" ?".!@Sk%PK!5@@@n#aG~CGo&Ns""'"_"N".?"!@Sk%J!n"aF~BF" #?#M#-&N O' o# #n_"rt o'N"Z!?"{@Zk%J!5@#GC8Go&s"G#N g#n#"?"!@Sk%0J! 0.0J0JN(7OGK@N",@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1 >AF^BrF"/' O'# o'"py?"!Z{@Zk%I!72N#AG^CzG& O'_" o'pt"N!Z?"{@Zk%XI!"FBG"#.'E#"?"N O'p|nZ o'!{@Zk%H!7BB0@_"FB0Fo&@rs"_""N"?"!@Sk%H!"FBGo&2s"'##.n"?"!@Sk%\H!#GCF-"." L"?"Nlno&s"!@Sk% H!(7D"FBGo'D O'?#p{. o'Z"!{?"@Zk%G!BD#GCFo&BQF' O' o"n ""qx o'Z"!{?"@Zk%`F!ù5@A N#AG^CzGo&s"n#"?"!@Sk%F! "FB0Fo&|s""?"!@Sk%E!N"AF^BrF0<' O'" o'-x"!Z?"{@Zk%E!5@ N#AG^CzGo&s"o"z#_"N"!?"@Sk%CYGl!o BQF/' O'""b"n#py o'"Z?"!{@Zk%A!/N#AG^CzG& O'"/".#pt_"N o'Z"?"{!@Zk%`A!"FBGO#'N O'##.#p|"n o'Z!?"{@Zk%A!"FB0F/' O'_"Mm"n""# o'"py?"!Z{@Zk%@!N#AG^CzG/ H&\ K O'F?|H/". O"" o'PJG>"$?"NruZ!{@Zk%@!CK_#.#!G>C%@!yGCl#GCF,l!!CYG7oo&\s"#n"?"!@Sk%:!"FB0F& O'@"Nm"n"pu o'Z"!{?"@Zk%P:!#GC8G_#Nlo&s"_"n"?"N!@Sk%:!n"aF~BF" o&?s"#",?"n.!@Sk%9!y#GCF7/o&\s"_".N"?"!@Sk%l9!n"aF~BFo' O'" #?#p{ o'."Z!?"{@Zk%9!#GCF,o&s""."L?"N!@Sk%8!"FBG-#.Lo&?s"#N"l?"n!@Sk%x8!+ UB N"AF^BrF o&hs"""?"!@Sk%(8! 7.#!G>CYGo&2s"2h##n"?"!@Sk%7!"FB0FDh"no&Ps""lH"N"!?"@Sk%7!"FBGo&Ps"(#.nH#N#n"!?"@Sk%@7!#GCF7/o&\s"_"."N?"!@Sk%6!n"aF~BFD,7"o' O'?#c#p{ o'."Z?"!{@Zk%6!#GCFo&_s"_"N"?"!@Sk%X6!n"aF~BF2//"cD#o&X K2??s"#/$/"?"Y5K/$?Nln!@Sk%5!"FB0FLo&s""N"?"!@Sk%5!vUB.#!G>CYG oo&hs"#n"?"!@Sk%T5!b"FB0F7Oo&\s""N"?"!@Sk%5!"FBGD,7"#.L'#"cB#N O'p|n o'Z?"!{@Zk%4!&/&po%/%|k! XP)!pQN:"SBGp# B 0@@ 0@Z@pZ@pC[@p[0@}@ @pCBD̠Gp B  1@R@pR"m#  U@pU ! @81C 0@}@@?pCBDM@` # ,N"AF^BrF/' O'"# o'"pyN ?"Z!{@Zk%3! GF"MJCJCFJCGܔF`GJCGJC4`GG."!F>BQF. O'#O"n #.~"n o'"?"Z n{!@Zk%\2!=. #qKPJ0F>M0@0@BMDB"FBF (#.P#GnFMG""zC1CBDQD@@7K O'1CF o'ADbBVFn@DZaF{VFFFsF`F n"?"!F@Zk%d1!#GC8Go&LCYGo&s"h#n#_"N"?"!@Sk%h0!n"aF~BF O'"#Z o'j""!{?"@Zk%0!.#!G>CYG& O'h#n#_"ptN o'Z"!{?"@Zk%/!"FBGA9#&Y/"0<#ZYKY? O'_" o'"pt?"N!Z{@Zk%L/!"FBG#/ Ho#Y #K#YG#?yH&C/Ps""?"ZCK:GC? O'c o'nZ!{@Zk%.!5@."!F>BQFh"no&s""""?"!@Sk%|.!#GC8G2g//G#o&[ zK2g??s"c"//_"?"\K/?."N?"!@Sk%.!7o;`"FBF O''#.#n#Z o'j""!{?"@Zk%-!#GCFg.?"G"2/ 2JS rJ/"Fg>X K2?s2J#./'/#cG#TJY5K/'?tF>o&?s"nN"?"!@Sk% -!7,."!F>BQF""?"lno&l s"!@Sk%,!"FBGo&!s""?"!@Sk%,!.#!G>CYGo&bs""?"!@Sk%l,!2n#aG~CG& O'"_"ptN o'Z"!{?"@Zk%,!DGp BDy"@ 0 @Z@[#@pZ0 @y"@p[_ 0@}@@M?"0@BM QBB ?>_,U C@n#aG~CG o&hs"_"N"?"!@Sk%<+!n"aF~BFo&s""?"!@Sk%+!l=#GC8Go&2s"H#N#n"?"!@Sk%*!#GCF7/o&\s"_".N"?"!@Sk%t*!n"aF~BF,7o&(s"?##"?",7O.n#!@Sk%*!#GCF,7Oo&?s"""."L"?"N!@Sk%)!7#GC8Go&s"#n"?"!@Sk%)! =_"FB0Fo&:s"H"N""?"!@Sk%8)!"FBGo&LqPK"M. tJ?#RPJ"2FM>?".U JG>utJo&/Hs"XKF?.N!@Sk%T'!N#AG^CzGo&\s"2./#"P J2>"/$.Q?"7ON!@Sk%&!"FBGD%#.o&̠?s"#n"ΰ?"!@Sk%&!7"FB0Fo&s"_"N"?"!@Sk%T&!n"aF~BFo' O'"#?#p{ o'."Z!?"{@Zk%%!#GCFm.M.-"."S qJQJU JrF 4Jo&G>u4Jкs"/?#"?"XKF?.ΰ!@Sk%x%!N#AG^CzG2./#o&?s"P J2>E""/$."Qΰ?"N!@Sk%%!7P#GC8Go&s"#n"?"!@Sk%$! <_ UB N"AF^BrF o&hs"""?"!@Sk%x$!+#GC8GLO&m#B#N O'n#pr o'Z"!{?"@Zk%$!n"aF~BF"/"/M#m/""Y 5KK[ zK8G J"Gm?{J J/"\K|G?B.R QJrFB>rJ"b.SqJ?"SFb>o&NHs"!@Sk%h#!"FBGo&\s"_"2D//$#"?"Z YK2D?/d/[yK/d?7N!@Sk%#!n"aF~BFD"̠o&?s"#ΰ"?"!@Sk%"!7/ N#AG^CzGo&s"#"?"!@Sk%h"!"FB0F& O'M"Nd"n"pu o'Z"!{?"@Zk%"!#GC8G/M#m/"$.o&\ KzKQ 0JG PKкs"QF$>qPK"D.RPJ"2FD>?"ΰ!@Sk%!!"FBG2D//$#o&Z YK2D??s"#/d/_""?"[yK/d?ΰN!@Sk%(!!7o`U"FBFo&s"#"?"!@Sk% ! ;__#8?"/D.RPJ/D>7o"no&\s"!@Sk%p !"FBG #.o&L?s"#n"N!?"@Sk%$ !7"FB0Fo&s"_"N"?"!@Sk%! S;_իB.#!G>CYGo&s""?"!@Sk%!n#aG~CGo&Xs""?"!@Sk%\!"FB0F,7O""B"Nl?"no&?s"!@Sk%!7.#!G>CYGlo&s"#n"?"!@Sk%! ;_."!F>BQF"no& 5s"""?"!@Sk%t!"FBGo& 5s"?#."?"!@Sk%4!LU@C`#GCF /o&hs"_".N"?"!@Sk%!n"aF~BF7o&\s"#"?"!@Sk%!.#!G>CYG& O'`#n#_"ptN o'Z"!{?"@Zk%H!L_#"/"/Y 5KK8GB`#GCFo&2s"-("._"N"?"!@Sk%!G{n"aF~BFo&Ps""g#?#."!?"@Sk%!GfN#AG^CzGo&Ps""_"#N"!?"@Sk%<!GQn"aF~BFo' O'" #?#p{. o'Z"!{?"@Zk%!#GCF& O'(".M"N"pu o'Z"!{?"@Zk%!#GC8Go&(s"N#n#M#N"?"!@Sk%0!"FB0Fo&2s"H"N""?"!@Sk%! "FBG-#.Lo&?s"#N"l?"n!@Sk%!7."!F>BQFl""no&s"?"!@Sk%L! 9_#GC8Go&s"fH##Nn"?"!@Sk%!l="FB0Fo&2s"zH"N""?"!@Sk%!{"FBG7/o&\s"#.n"?"!@Sk%t!#GCF& O' "M".N"pu o'"Z!?"{@Zk%!#GC8Go&,s"H##Nn"?"!@Sk%!#GCF-"."L"?"Nlno&?s"!@Sk%!7.#GC8GLo&s"#N"n?"!@Sk%@! k9_(7OB."""R QJ JrFB>rJb.SqJSFb>B_"FBFo&2s"O#?#."?"!@Sk%!N#AG^CzG7o&@rs" 7"_"N"!?"@Sk%p!lU`B"FBG /o&hs"#."n?"!@Sk% !#GCFo&s"_"N"?"!@Sk%!n"aF~BF2//"o&X K2?\s"#/$/"?"Y5K/$?7OnN!@Sk%x!#GCF& O' ".M"N"pu o'Z"!{?"@Zk% !#GC8GM#No&l?s"#"n!?"@Sk%!7."!F>BQFo&s"""?"!@Sk%! 8_ UC N#AG^CzG o&hs"_""N?"!@Sk%8![n"aF~BF7o&\s"#"?"!@Sk%!.#!G>CYG& O'`##n_"pt o'N"Z!?"{@Zk%!"FBG?#.o&L(#s"#n"N!?"@Sk%T!D5@'"FB0FM"NN"l"?"no&?s"!@Sk%!7 #GC8Go&Ns"#n"?"!@Sk%! H8_ðU@ C8_LU@B`"FBF o&hs"?#."?"!@Sk%L!N#AG^CzG7o&\s"_""N?"!@Sk%!n"aF~BFo' O'" #?#p{. o'Z"!{?"@Zk%!#GCF?".Lo&(#s"_"N"N!?"@Sk%h!D5@'`"FBF #o&N?s",#n"?".!@Sk%!7"FB0Fo&s"N_"N"?"!@Sk%! 7_õU@{ 7_,U C@n#aG~CG o&hs"_""N?"!@Sk%`!en"aF~BFo&Xs"#?#."!?"@Sk%!RLU@C`#GCF /o&hs"_".N"?"!@Sk%!>n"aF~BF /o&s""XK ?X_#Nm#n#_"N"?"!@Sk%`!$n"aF~BFo&xs""#"?"!@Sk%!GDF6GDD6G N#AG^CzG#o&L$s"_"N"N!?"@Sk%!n"aF~BF"o&N?s" ?#."?"!@Sk%`!7O@n#aG~CGo&s"N_"N"?"!@Sk%! !7_UB.#!G>CYG oo&hs"#n"?"!@Sk%!"FB0F7Oo&\s""N"?"!@Sk%!"FBG,7' O'#,7O"?""#.p|nZ o'!{@Zk%$!GDFFDDF`."!F>BQF7o""no&\s"?"!@Sk% !"FBGM#'N O' #.#p|"n o'Z!?"{@Zk%l !"FB0F,7Oo&$s"B"NL""?"N!@Sk% !"FBG-#.No&L?s"#n"N!?"@Sk% !7@"FB0Fo&Ns"_"N"?"!@Sk% ! ~6_"FBG,7OO&H#N O'"#.o#npr# o'Z"?"{!@Zk% !n"aF~BFo&ps"-@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1 >8"#"?"!@Sk% !,U C@n#aG~CG o&hs"_""N?"!@Sk% !n"aF~BF7o&\s"#"?"!@Sk%L !.#!G>CYG,7L o&s"#N"n?"!@Sk% !#GCF7/o&\s"_"."N?"!@Sk% !n"aF~BFo' O'" #?#p{. o'Z"!{?"@Zk%h !#GCF-".No&L?s"""N!?"@Sk% !7#GC8Go&Ns"#n"?"!@Sk% ! 5_"FB0F7Oo&\s""N"?"!@Sk% !"FBG,7L o&ls"?#N".?"!@Sk%H !^N#AG^CzG7o&\s"_""N?"!@Sk% !n"aF~BFo' O'" #?#p{. o'Z"!{?"@Zk%!#GCF-".No&L?s"""N!?"@Sk%\!7"#GC8Go&Ns"#n"?"!@Sk%! `5_ UB N"AF^BrF o&hs"""?"!@Sk%!l=GFGG6GG6GN#AG^CzGo&2s"#_"N"?"!@Sk%X!n"aF~BF7o&\s"#"?"!@Sk%!.#!G>CYG& O'`##n_"pt o'N"Z!?"{@Zk%!"FBG7/o&\s"#.n"?"!@Sk%|!#GCF& O',7DH"m"N"".n"pu o'"Z!?"{@Zk%!#GC8Go&s"o##n_"X_#NN"?"!@Sk%!,n"aF~BFo' O'" #?#p{. o'Z"!{?"@Zk%h!#GCF& O'/".M"N"pu o'Z"!{?"@Zk%!#GC8Go&,s"M#N#n"?"!@Sk%!#GCF-".L""?"Nlno&?s"!@Sk%!7+#GC8GLo&s"#Nn"?"!@Sk%4! h4_ UB N"AF^BrF o&hs"""?"!@Sk%!#GC8G7Oo&\s"#Nn"?"!@Sk%!#GCF& O' "M".N"pu o'"Z!?"{@Zk%D!#GC8GLo&s"#Nn"?"!@Sk%!#GCF-".o&N?s"L""?"N!@Sk%!7#GC8Go&s"N#n"?"!@Sk%h! 3_(7O @"."Q 0J">B.RPJB>B_n"aF~BFo&@rs" 7"#"!?"@Sk%!,U C@n#aG~CG o&hs"_"N"?"!@Sk%!tl=o`"FBFo&2s"#?#."?"!@Sk%P!aN#AG^CzG7o&\s"_"N"?"!@Sk% !n"aF~BFe",7o&xs" 7#"?",n.!@Sk%!:#GCF,7O"""".?"LNlno&?s"!@Sk%\!7"#GC8GLo&s"#N"n?"!@Sk%! _3_ UB N"AF^BrF o&hs"""?"!@Sk%!l=.#!G>CYGo&2s"Eh#n#"?"!@Sk%p!"FB0F7Oo&\s""N"?"!@Sk%,!"FBGd?#,7o&.xs" 7O#"?"Nln!@Sk%!"FB0F,7O""?"B"Nlno&?s"!@Sk%|!7.#!G>CYGlo&s"#n"?"!@Sk%0! 2_7/8 7O731@B7o7 B .#!G>CYG4CYGo&@rs"#n"?"!@Sk%D!^#GCFo&2s"l("._"N"?"!@Sk%!n"aF~BF o&hs"#"?"!@Sk%!=,U C@n#aG~CG o&hs"_""N?"!@Sk%p!)l=o`"FBFo&2s"{#?#."?"!@Sk%$!N#AG^CzGo&Xs""_""N!?"@Sk%!n"aF~BF7o&\s"#"?"!@Sk%!D,7"#b/B/[ yKYKzG C 7""01C 7B.R QJB>b.SqJb> 7#"# K0B 7B/Z YKzGB?zKb/[yK[Gb?#GCFo&@rs"?"._"N"?"!@Sk%!7o7"1`B B974BQFs@7/`B8CDD@WJo&8CF@rs"@7O##"n!?"@Sk% !"FB0Fo&@rs"_"N"?"!@Sk%!n"aF~BFo&2s""#"?"!@Sk%!.#!G>CYG oo&hs"#n"?"!@Sk%D!^77/"1B "B@n"aF~BF4<7o&@rs""QBX@7/#_"7O"?";BC7oN!@Sk%!?n"aF~BFo&2s""#"?"!@Sk%!.#!G>CYG oo&hs"#n"?"!@Sk%D!77/"1B "B@n"aF~BFo&@rs"7O""?"!@Sk%!#GC8Go&2s"H##Nn"?"!@Sk%!#GCF /o&hs"_".N"?"!@Sk%d!7o`"FBF4<o&7/@rs"4CYG oo&hs"#n"?"!@Sk%`!7."!F>BQFo&@rs"7""?"!@Sk%!"FBGo&2s"(##.n"?"!@Sk%!#GCF /o&hs"_".N"?"!@Sk%!pn"aF~BF7o&\s"#"?"!@Sk%H!.#!G>CYGD,7b#nL& O'_"c#pt o'N"Z?"!{@Zk%! 0_$<0C$BQF,7O#"?"b"no&?s"!@Sk%!D.#!G>CYGo&2s"h#n#"?"!@Sk%!"FB0F Oo&hs""N"?"!@Sk%X!##"FB%L!G /.#!G>CYGGsc@RBCBP?BBC`CA@ O .A`|c@[C,cCY_C#CCBA@! BG@n"aF~BF/' O'A"#py o'"Z!?"{@Zk%d!N#AG^CzGo&ps"#_"N"?"!@Sk% !G6_"FBGqc@P?BB[CcCZC CAD! AA"""N?"lno&t}s"!@Sk%!6_0`@qc@P?BB[CcCZC CA@ @_G6_#"FB%\!G..#!G>CYG.A& O'#n#_"ptN o'Z"{O !?"@Zk%!DK /"X K?!/Y5K!?7O@(7/,7/,7oa<,7/"FB0F7O#"/' O'0@B7o# o'"?"py!Z{@Zk%4!N#AG^CzG& O'_",7 o'?"""ptNZ!{@Zk%!,7/"X K? /Y5K ?,7<_#GCF"no&s"%B"N"E""."?"!@Sk%`!l<_##GC%T!8G".N#AG^CzGl.A`#GCF&C O'n_"ptN o'Z"!{?"@Zk%!BD5_#GC8G(7E.A;@C .#P J >,.Q O' 7 o'@ZH{@ZkN"AF^BrFE.A(75BO L/#,# KZ YKzGL?zKl/[yK[Gl?#GCFo&2s"O""._"N"?"!@Sk%!7o O' o' 7o@ZH{@Zk#"FB%!G-.#!G>CYG G(7O`.A ;@0 @B 0@?BD;_#"FB%CYG7oo&H!\s"#"no !?"@Sk%! 7O@"FB0Fo&2s"bC""N"?"!@Sk%!G+D_ú9@@GAG5@@5@@F6G"ٔ@GG=@@6G3@@4G6G,n#aG~CG& O'Nt"/"._"ptN o'Z"!{?"@Zk%!"FBGo&Ps"##.O#N#n"!?"@Sk%!GC_ã-.J. "Jm"Q0JTJ->J>(7O@'/'pp/B#b/GF\ KzKG@CAGZGF@GF."!F>BQF O'#""b"n o'Ze""{?"!@Zk%!.#!G>CYGo&s""#_"X#nN"?"!@Sk%t!n"aF~BF O'J #?#". o'Zd""{!?"@Zk%!N#AG^CzGo&s"J """_".J#N"?"!@Sk%!9@GF5@5@FF"ԔF`F=@F3@4`FF8#GC8Go&CYGo&s"#n"?"!@Sk%!#GCFo&s""?"!@Sk%! A_#N"AF^B%!F*#GC8G7Oo&!\s"#n"N !?"BQFo&@s""?"!@Sk%!n"aF~BFo' O' " #?#q{. o'Z"!{?"@Zk%8!#GCFo&:s"$"._"N"?"!@Sk%!n"aF~BF o&Hs"""?"!@Sk%!#GC8Go&2s"jD##Nn"D?"!@Sk%p! o O\b@CYG& O'o#n#9#_"ptN o'Z"!{?"@Zk%!"FBG' O'/#.#p|n o'Z"!{G?"@Zk%D! @@A1":"Q.QJ3B0"FBG0@@A#99#&Y/A#:"ZYKY? O'#_"ptN o'Z"{?"!@Zk%!"FBGe?#. 7Oo&xs"#n"N?"!@Sk%\!#GCF& O'/"._"pt o'N"Z!0@@{?"@Zk%! @@ø5A繵@ 5A@է@`UAð@(7O" BLU@B `"FBFo&s""?"!@Sk%p!@I'pb/"#B/GF[ yKYKzG C!G9GG GG4"FB0F O'ld"n""B"NZ o'e""!{?"@Zk%!#GC8GB#N O'.qd#n#_"NZ o'e""!{?"@Zk%`!n"aF~BF/' O'"#py o'Z"!{?"@Zk%! 1@AZ#;#z/zK\CA1"Q.RQJQ> 1@5B#GC8Go&s"M#m#n#"N?"!@Sk%t!D"FB0Fb"no&ts"#e_"N&1@ΰ"""?"!@Sk%!D5`@s LGF9@C5@CF5@CGܔF"`G=@CG3@C4`GG)."!F>BQFb"no&nCYGo&s"#n"?"!@Sk%! C /N2B` B%.#!G>CYGo&Ps"d#n#_"N"!?"@Sk%8! '_"FBGo&ps"$##.n"?"!@Sk%!#GCF& O' /"._"(rt o'N"Z!?"{@Zk%!"FBG?#.o& Oes"#"N?" on!@Sk%L!"FB0Fo&l s"_"N"?"!@Sk%!n"aF~BFo&!s""?"!@Sk%!"FBGo&bs""?"!@Sk%!.#!G>CYG #n o&es"_"?" N"!@Sk%X!n"aF~BFo&:s""#"?"!@Sk%!.#!G>CYG& O'#m#" O"N o"n-"."ru o'Z"!{?"@Zk%!5@?')9#@@n#aG~CGo&s"""$"_"N".?"!@Sk%W@Sk%!.#!G>CYGO& O' o#n# rr o'"Z!?"{@Zk%! &_"FBG #!`/ #@/o [ yKYKzGBQF-c"no&2s"""?"!@Sk%$! O' o'@ZGH{@Zk"FBGo&Ps"##gC#.#n"N!?"@Sk%! O' o'@ZGH{@Zk#GCFo&Ps"#".C"N""!?"@Sk%`! O' o'@ZGH{@Zk"FBGLM#N' O'"#.#p|n o'Z"!{?"@Zk%!"FB0F& O'C"Nm"n"pu o'Z"!{?"@Zk%!#GC8Go&(s"N#n#M#N"?"!@Sk%@!"FB0Fo&2s"C"N""?"!@Sk%! O' o'@Z H{@Zk#"FB%!G.&.#!G>CYGo&! s""_"N#X#n"?"!s2JS/Sm#p[K.\K"TJFtF>S?yJTM" /Tm.P?"t2JX KSrJ8G ?FTm>m#{#~ . |KZ-/W #P J&0F~ >Y 8K Jp|KYGZ-?{-.yJM"WM/QZXK:GWM?.T J SJo'F>tSJ O' #.?#"?"UJF>p{ o'.!Z{@Zk%!#GCF /"M."XKyJm#8G ?_#p[K/-"sHRQJ\KrFF?M>M"`?"m.t2J"SrJM#Fm> "-" / J"X K ?8C-/Y5K-?"m/[ zKm?Sm#/\K?zK#M.R QJrFM>rJm.SqJSFm>-/Y5KYG-?n O' o'Z&0s"{"?"!@Zk%X!&" @GaF@@FVFҔ`F" F @VF@4 FVF8"FBFo&CYG& O'g#n#_"ptN o'Z"!{?"@Zk%x!"FBGo&ps"/#.#n"?"!@Sk%8!Gf'_"FB0FB.?M"?m./-#."T JrJGFN/M/F. / G"0m/m"YKNKn&b@mK O'b@Gpu|DFG"F bDZFGX F o'FC{?"F"!@Zk%X!#GC8G&M#N O' g#n#pt_"N o'Z"?"{!@Zk%!"FBGo&Ps"( '#.O#N#n"!?"@Sk%!G'_(7o`&p."!F>BQF O'"m"nZ o'd""{!?"@Zk%H!"FBG &/ Hm#_"Y &K"YG &?yH#F/d"?"ZFK:GF? O' f o'N"!Z{@Zk%!n"aF~BF. H'U J O'G>uH##/#"?"XKF?&ΰXq|n o'Z!{@Zk%H!%&"@. L@.c".U JJF`B`C/### KZ YKzGC?zKc/[yK[Gc? 70C 7, .c.C"T JrJF@BU@B #/#Y 8K#?C/ZXKC? 7o<1`C 7cy *."!F>BQFm"n 7GFO&5BFFGF* G#NGFG O'GX Go#npr#GZB o'"{G!?"@Zk%!<n"aF~BF" 7GFO&9C.!GprGVG G#VGGGX`G o'VGC{"VG O'!Z?"@Zk%4!n"aF~BFo' O'] "#?#p{. o'Z"!{?"@Zk%!#GCFo&2s"/"._"N"?"!@Sk%!n"aF~BFo&@rs""#"?"!@Sk%T!%_#n#aG~C%H!G#"FB0Fo&!2s"O""N"?"!@Sk%!"FBGlo&`?s"?#n."?"!@Sk%!D(2//c//C#\ KzKG@CDC 2C./#" HR QJrF2C>rH/c.SqJSF/c>"FBFno& кs"?#."?"!@Sk% ! #_#GCFo&\s"(7/(7"7?" 7!@Sk%!."!F>BQFl""?"no&`@s"!@Sk%x!#GC8Go&js""?"!@Sk%D!N#AG^CzG$77# .& O'm"PJ > L"n o'"Npu?"!Z G{@Zk%н!#GC8GO#NO& O'm#n#pr o'Z"!{?"@Zk%x!0@As"G.FTJ>7GG6GG6G7 "_(7GFDDGDG/&&p1O&p.pr)EGDFvFDDGvFhu/t.t"tE/t%#ue/X KJYK[ yKGzGBPwD.v$.v"v.ve"w.R PJ0JJU JQFFBByd/xD/y%.x.[ dKDKQ %JJzG0FBQF O'C"n o'Zg""{!?"@Zk%\!BDGDGDFFDDF#GC8Gm#E#N O'nGnaGF_"NZG{G`G o'"{G!?"@Zk%!n"aF~BFo' O'" #?#p{ o'."Z!?"{@Zk%\!#GCF0@A1" O'Q.#"RQJQ>" o'k"Z"{?"!@Zk%!:.#!G>CYG O'#_"Nm#nZ o'k""!{?"@Zk%!GDFvFDDvF"FBF-#7OG.!GnFVG G #VG O'#n o'Z"{!9G?"@Zk%!JE 0@AGAEFF@E\EFX FGF\ADFFVFDDVF)ED`n"aF~BF' O'Cn"px o'"Z!?"{@Zk%L!BD.#!G>CYGlo&кs"n_""N?"!@Sk%!n"aF~BFo&@rs""#"?"!@Sk%!.#!G>CYGo&2s"o#n#"?"!@Sk%x!:!_#N"AF^B%l!F$!#GC8GL"!/B#b/ \ KzKGPC, N"AF^BrFo&s"" #?#X"."?"!@Sk%Ķ!NN#AG^CzG& O' # "_"ptN o'Z"!{?"@Zk%h!7"FBGo&s"M# f#N#nX?#."?"!@Sk%!""FB0F& O' F"Nm"n"pu o'Z"!{?"@Zk%!B/#"# KZ YKzGB?zKb/[yK[Gb?#GCF O'o&Z o'&,q3R"{SM"@Zk O'&Z o'&0q4R"{M"@Zk/ F#m# / [K\ K"F?|[KXK ?S /" .S"yJXKPJ?"G >8GS ?s-JM.T/Tm#P_#RMJ\KrFM>p[K{ #"~-/FT? JWM"Y 8KZm.?&YG~-? 2JS rJ{M/yJFZm>s2JZXKW.#:G{M?m#TJ .tFW>P J |K&0F >p|K O'-.M"" o'Q"N?"puZ!{@Zk%ȳ!#GC8GM."-"m/sJRQJ"rFM>"yJM# /|H[zK`_#XKG8G ?m?m#p[K/-""\K-#F?M# :KM."R QJM>2Cm.SqJm>-".U J>S" /XK ?tQJ#m/[ zKGm?{:K/\K|G?m.SqJFm>/' O',Sy o'"Z?"!{@Zk%!_'Z# @GF@@FGܔF"`G @G@4`GG8."!F>BQFo&C%$!yG=#GCFCYGqs&pѠl"qO'n/'qo%$9#rZ#N8o .|  G GK \k!n#aG~CG "YD.?" $Jo'R DJ O'rFYD>r$J"Xd.X" #?#SdJ"SFXd>\?"@r{ o'.!Z{@Zk% !'D#\@_!A @@."!F>BQF"m""O#N' O' /#. ##r|n o'Z"!{?"@Zk%p!5@."!F>BQF&c"ng"n|"B""?"!o&s"@Sk% ! O' o'Z{@Zk%!?!'A#X@ û5@@_#O G `#GCF&Ng"|"BC"",#"."N?"!o&s"@Sk%`! O' o'Z{@Zk%@!#GC8GM#N O'#n o'Z&xs"{"!?"@Zk%!5@ "FB0F&<c"n|"g"BCC""N"?"!o&s"@Sk%! O' o'Z{@Zk%h!#GC8GM##N dKY/ O'-""\ KXD"FY?|dKm"X. o'PJGX>"\$?"n&NHs"!Z{@Zk%̢!9@G!G5@5@FG"ؔ GF=@G3@4FG N#AG^CzG&|"g"S"BZ#_"N"?"!o&s"@Sk%,! O' o'Z{@Zk% !"FBG&/"Aj"Y/#_" o'ZYKY? O'."?"ptNZ!{@Zk%!"FBGBO/B/##/"ZYKBO? O'_" ".N o'f"Z"{!?"@Zk%(!n"aF~BF. H/#O#U J#G>uHh"/"?"XKF?$N O'n o'Z!{@Zk%!-.# .GGQ .m.M"0@T JrJ F @#GC8GAZ#"z/_"f"[zKz? O'N o'Z"!{?"@Zk%0!.,1@m" IT J vIF>tI.UJF>A# _#8/8KC` 0@A#.PJ> 1@N"AF^BrF O'"#"?#. o'f""?"Z!{@Zk%P!N#AG^CzG/ H O'/"\ K"F?|HO". o'h"PJG>$"?"NZ!{@Zk%Н! "FBG?#-'nl#O#N#nC"?"!o&سs"@Sk%h! O' o'Z{@Zk%H!"FB0F O'" M"c"nN o'Zf""{?"!@Zk%!"FBG$/ H<HY $KGYG$?GFD/vGGyHZDKK:GD?G O'vGTG"_"N/".vGZ o'h""?"{!@Zk%@!n"aF~BF O#GAGF"vGZGN@G O'n-#. ##ZvG o'"!{?"@Zk%!-!B@ GF3@cBcB!GcBGؔ GcB"FcBGF4FG'3aJ3W`JAs&dsAs&ds"kXXXXXXXXXXXXXXXXXXXXXXXXXX @@; @y`CG!Fu`CFFД Fw`CFGF ;aK;W`KA{'e{A{'e{#k|| @@3 @y`BGGu`BFFՔGw`BFFF 3aJ3W`JAs&(fsAs&(fs"k   O' o'@Zo&H{Ys"@Zk?#@"@G @4@Gp#@l"FB0F O'n o'Z"?"{!@Zk%@!wxN"AF^BrF " O'nGF#FZF o'F"{?"!FF@Zk%И![.#!G>CYG" O'G nFF#_"N#nZ6FF o'F"6F{!?"@Zk%T!<n"aF~BF##.Gn!GFVG G#VG O'"#nZ o'"{9G!?"@Zk%ؗ!#GCF/&\"k".B_""N!?"o&hs"@Sk%! O' o'Z{@Zk%`! e"FBG?#-&M#N O'm#n#_"qtN o'Z"!{?"@Zk%!"FBG?#-&M#N O'm#n#_"qtN o'Z"!{?"@Zk%!#GC8G O#O&N O'o#n#qr o'"Z!?"{@Zk%$!_"FBGo&E.At}s"8! "_"##nN"?"!: C@Sk%! O' o'@ZH{@Zkn"aF~BFo&E.At}s"8!?#.L#Nl#n#"?"!8B@Sk%L! O' o'@ZH{@Zk#N"AF^B%0!FY#GC8G$7O.AXO Ko @ # _#GCF& O'?"-M"$7o"Nn"N o'pu"?"Z!{@Zk%!#GC8GC/ H&#Z CK "zGC?zH_"c/?"[cK[G O'c? o'"nqtN!Z{@Zk%!5@#GC8Go&s"B#Nb#n#"?"!@Sk%!_."!F>BQFE.A$7 #?#4aB&-M#N O'XO $7o##n_"pt o'N"Z?"{!Ko @Zk%!"FBG#/ H;H&Y #KfKYG#?`CyHC/ G;gK!#ZCK ":GC? O'_"n {Cqt o'N"Z!?"{@Zk%|!5@#GC8Go&s"0B#N$b#n#"?"!@Sk%(! O' o'@ZH{@Zk"FB0F E.A3CBXo 4<8B 9B4v_ O' o'@ZH{@Zkn#aG~CG EF.A1BXO @4BQFpb"no&s"\"""?"!@Sk%D!#GC8GFo&s"Nm#"?"n!@Sk%!EcD0`@8B r@ O' o'@ZH{@Zk#"FB%!G.#!G>CYGl.AX K/!`4<'C4<'B7O7/ "B@31@@7o777"G@ B7O7/ 7N#AG^CzG& O'# " /"._"8rt o'N"Z?"!{@Zk%̌!"FBG' O' /#.#,r|"n o'Z!?"{@Zk%|!$7O."!F>BQF/' O'"m"$7"# o'py"?"Z!{@Zk%!N#AG^CzG/ H& O'\ K$"F?| H O" ." o'P JG >)"N?".qu!Z{@Zk%!5@.#!G>CYGo&s"d#n#_"N"?"!@Sk%8!7o7 tB:CDD7o@77K:C:G[@ C7/ M0@Bm77/51B77X@ C@7oM@MðA@, N"AF^BrFo&܁s"""?"!@Sk%P!8̠BD74<9C-4CYGo&s"Od#n;#_"N"?"!@Sk%!n"aF~BFo&Ns"ΰ"#"!?"@Sk%!0`@B e@?7O7o@ `C2CDD7o@77J2C2FS@ B77/ C C@m0`C77o0B7/7OR@ `B77 B C?M@L@ûA@`"FB0FLo&܁s""N"?"!@Sk%!̠BD74<8B 4CYGo&s"pd#n\#_"N"?"!@Sk%!n"aF~BFΰo&ns"#"?"!@Sk%ȅ!0@@c E@?L@n#aG~CG o&܁s"_"N"?"!@Sk%l!n"aF~BF77-#_#&"C0@@$7O"m#.$7#_"M O'"n o'?"ptNZ!{@Zk%!"FBG)/ H&!d#Y )K #YG)?y H_"I/"?"ZIK:GI? O'i o'.qtN!Z{@Zk%\!5@#GC8Go&s"0D#N$d#n#"?"!@Sk%!"FB0F"m0@M""# -#.&_#M O'm#n #_"qtN o'Z"?"{!@Zk%x!$#GC8G4CYG7oGF0`CG|GFG&F9`GFG O'X Fo"D"Nn"pTFCZ o'b"F"{?"!@Zk%́!#GC8G7O&d#N O'#n_"pp o'N"Z!c"{?"@Zk%h!n"aF~BF O'A"#Z o'b""!{?"@Zk%!.#!G>CYG 7o O'_"N#"n o'Zc""{?"!@Zk%!n"aF~BF O'A"# o'Zb""{!?"@Zk%l!.#!G>CYG$CYG O'#m#"_"NZ o'c""!{?"@Zk%`!n"aF~BF. H/#'U J O#G>u H# /"?"X KF ?)N O'.q|nZ o'!{@Zk%~!"FB0F& O' O"N"$ru o'"Z!?"{@Zk%~!#GC8GM#NO& O' o#n#8rr o'Z"!{?"@Zk%0~!u7_#"FB%$~!G.#!G>CYG .AfXO K `4<%C4<%B."!F>BQF7o""?"no&\s"!@Sk%}!"FBG,7?#-M#&N O'# "m#_"qt o'N"Z?"{!@Zk%}!77o@ `@&7/ y@#@n#aG~CG7" p@0@-F"?"N,7ono&s"!@Sk%|!,77/0`@@ `@,7@7o {@7@ `@ N"AF^BrF7GF t@0@FDGF&G9DGB#N O'GX G"/".K#nK#pt_"NGZ o'B"?"{!G@Zk%{!"FBG?#-&M#N O'm##n_"pt o'N"Z!?"{@Zk%<{!"FBG$/ H&Y $Ko#YG$?yH #D/_""?"ZDK:GD? O'd o'qtNZ!{@Zk%z!5@#GC8Go&s"B#b#N#"n?"!@Sk%dz!70`@@ `@}? _"FBGdLo E.A&:#C O'#c#0" M"m"N#"n." ru o'"Z?"!{HO @Zk%y!5@.#!G>CYGo&s"Nb#n#"?"!@Sk%py!"FB0F_"M"m"n(" #?#-'M#N O'# r|n o'Z"?"{!@Zk%x!5@."!F>BQFGb"no&s"0"""?"!@Sk%x!#GC8G_#&M O'm#n#Z"_"pt o'N"Z?"{!@Zk%,x!"FBG#/ H;HY #KfKYG#?`CyHC/ G&;gKZCKs#:GC? O'"n_"rt {CN o'Z"!{?"@Zk%w!5@#GC8Go&s"B#b#N#"n?"!@Sk%C@n"aF~BF"#0?#-& C#N O'm##n_" rt o'N"Z!?"{@Zk%u!5@#GC8Go&s"F#N#n"ΰ?"!@Sk%du!#GCF'?"h- O'c"hM"n("Nd"d#` `-#.# r|"n o'Z?"!{@Zk%t!5@."!F>BQFGf"no&s"0"""?"!@Sk%t!#GC8G_#hM& O'hm#nd#dZ"_" o'pt"N?"Z!{@Zk% t!"FBG#/ H&sf#Y #K#YG#?yH_"C/"?"ZCK:GC? O'c o'nrtN!Z{@Zk%s!5@#GC8Go&s"F#Nf#n#"?"!@Sk%Hs!"FB0F& O' O"N"(ru o'Z"!{?"@Zk%r!#GC8G'C#N O'#q|n o'Z"!{?"@Zk%r!"FB0F' O'"m_"M##. #""#r|n o'Z"!{?"@Zk%0r!"FB0F' O'_"hMhm"n"d ###.d"#r|n o'Z"!{?"@Zk%q!"FB0F& O' O"N" ru o'Z"!{?"@Zk%hq!#GC8G' O#N O'#(r|n o'Z"!{?"@Zk%q!"FB0F& O'C"N"qu o'Z"!{?"@Zk%p!#GC8Go&8s"r "_"#m#nM#N"N?"!@Sk%dp!n"aF~BF"hh # ?#O&d-dM#N O'c#n#qr o'"Z?"{!D@Zk%o!5@`GFFFFFFb |C[CxCY_C C]W]]@ &(]]\T ] ]]-=W]W ] $]@ O&$2]]QT]]n"aF~BF $%"]GF &"WW/"_"]dT =WWW}=.]."AGpt?"vGN@G O' ZvG o'!  {@Zk%FrHc.F'FScJJ O'SFc>###n#.Fq|Fn o'ZTF"{!?"F@Zk%k!"FB0FM' O'f""Nn" o'px"?"Z!{@Zk%@k!.#!G>CYGO& O'o#n#pr o'Z"!{?"@Zk%j!n"aF~BF. H:HGU JAGG>F6G/@GFKuHXK@G6G&T@G O'F?o#c#n_"qt o'N"Z6G{!?"@Zk%@j!"FBG-O&F#N O'o#.#n o'pr"?"Z!{@Zk%i!n"aF~BF/' O'"#py o'Z"!{?"@Zk%i!N#AG^CzG/ H& O'\ K/"F?|HC"." o'PJG>#"N?"nqu!Z{@Zk% i!X#GC8Go&FqHC.vFFJRCJ/' O'2F"C>#nF#qvFnTFZ o'vFd""{!?"@Zk%e!#GCF O'"8F"No"n-".Z o'b""?"{!@Zk%d!"FBG O'#/#.n o'Ze""{!?"@Zk%\d!#GCF#. H4HQ #JGQF#>FFC.vFFqHRCJJ O'2FFC>"#n?#.vFZTF o'vFd"{"!?"@Zk%c!N#AG^CzG O'_"NG"/". o'Zb""{?"!@Zk%Tc!n"aF~BF O'#"Z o'e""{!?"@Zk%c!.#!G>CYGc/ H1HG[ cK!FGc?FF/ F{H&J\K O'|G?O"C Fnc"n"FZT F o'd"F"{!?"@Zk%\b!"FBG-VF#N O'o##.b"n o'Z"?"{!@Zk%b! 9."!F>BQF O'"hmh""# o'e"Z"!{?"@Zk%a!.#!G>CYGc/ H O'"[ cK_"Gc?{H#"/d"\K|G? o'"nN.!Z?"{@Zk%a!7n"aF~BF O'?#hh".# o'e"Z"?"{!@Zk%`!N#AG^CzG/ H O'/"\ K"F?|HC". o'd"PJG>#"n?"NZ!{@Zk%8`!"FBGO&G/"We"F"=].N O'}.?""aGp!ZG`G o'e"G{@Zk%_!"FBGO'/#.#p O'n o'Z"d"{!?"@Zk%L_!#GCF#. H&Q #J O'QF#>qHo"C."# o'RCJ"2FC>c?"nqUZ!b"{@Zk%^!.#!G>CYG%c#n O'-GFy"W#?# o' ] $"mW= ].N?"}}aF.Z!F{`Fe"F@Zk%^!N#AG^CzG O'_"#N o'Zd""{!?"@Zk%]!n"aF~BF. H/#U JC#G>uH#/b""?"XKF?#N O'n o'n!Z{@Zk%D]!#GCF%c?".F# GFo#W#"?"=]}Nne"MW } $]N O'GnZ o'6GG!{6G@Zk%\!"FB0F O'"O"N o'Zd""{!?"@Zk%D\!"FBG#/ Ho#Y #K_"YG#?yH#C/b""?"ZCK:GC? O'c o'nN!Z{@Zk%[![n"aF~BFo&rH"c.# o'"ScJ?"SFc>nqy!Z{@Zk%Y!N#AG^CzG& O' #_" rt o'N"Z!?"{@Zk%X!"FBGo&hs""?"!@Sk%X!.#!G>CYG& O'# /"hmh#. "_" o'qt"N?"Z!{@Zk%X!MB@UB@.#!G>CYGO& O' o#n#rr o'"Z!?"{@Zk%W!óUE@`"FBFo&سs""?"!@Sk%lW!#X@ N#AG^CzGo&=s""?"!@Sk%(W!o#GCF& O' /"._"(rt o'N"Z!?"{@Zk%V!"FBGC#'N O' /#.#q|"n o'Z!?"{@Zk%|V!"FB0F& O' O"c"Nn"qu o'"Z!?"{@Zk%$V!#GC8G' O#N O' r|#nZ o'"!?"{@Zk%U!_#N"AF^B%U!FҐ#GC8G/_#m# [K\ KM"F?|[K-" . 2J" #PJzJG >#pmKm.dL B"!S rJ#Fm>s2J ?".TJM"tF> 2J-/Y8K #YG-? J/\KF?m.S rJFm>s2J.TJtF>-/Y 8KYG-?yJM/ZXK:GM? .#q|K_"PJtMJ0F >"o'm. O'?#"SmJ?"Fm>  p{ o'.!Z{@Zk%T!#GCF&. H O'Q &J"QF&>qH o'F."RFJ2FF>?"lf&ΰPs"Z!{@Zk%S!5@_Ä&V N#AG^CzG-.# "Q 0J K"QF->qKu`J#M.-# K#RPJ "2FM> Km"TJFM/Z YKzGM?zK #m/[yK[Gm?m#-.Q 0JQF->qKM.RPJ2FM>.TJ>.UJ>-/Y 8K-?M/ZXKM?nO& O'jr#Z o'"?"!{@Zk%DR!5@`Dc"FBF O' o'Zb&"{"BF"0@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1R>@ZkIF/F&#M" KZ YK&&"zGIF?zK"Ff/[yK[GFf? O' o'Z{@Zk #qKPJm"0F #""n8?#.M"M#&N _""?"m//zK\ KG:FK o'FKN O' ktN!Z{@Zk%P!5@DM/-/ ##Z XK8KYGCM. "-.R PJ0JQF'HHn"aF~BF-/" / O'#nY 5KK o'8G5J&JZs""{!?"@Zk%uH#/&s""XK?"F?&n o'ΰZ!{@Zk%N! D5@Apt /& o&WW@TWxF]=W'SW@TWgH,"@TW &Gk4$WBQTb@TWE$h ` 'I WBTTb@TW ,N#AG^CzGpf" ' O'" o'&" L2n?"pxZ!{@Zk%8M!.#!G>CYGf#n& O'_" o'pt"N!Z?"{@Zk%L!JE2 _##GC%L!8G/N#AG^CzG .AMO Lo"' O'" o'@. .nR @J JQF"p?"px!Z{@Zk%4L!a_#n#aG~C%(L!G"FB0F!&LO O'B"Nm"npu" o'Z"?"{!Mo @Zk%K!#GC8G'M#N O'xp|#nZ o'"!?"{@Zk%\K!"FB0F''b"n%"/B"Npx" & o'O'{"?"!lZ#@k%J!pp#z N#AG^CzG& O'5# "_"ptN o'Z"!{?"@Zk%J!"FBG' O'-#.#xp|n o'Z"!{?"@Zk%8J!"FB0F'Vb"nT"^B"N"px o' &O'{"?"!mZ#@k%I!pp#GF!G9GVG GVG*n#aG~CG& O'd"".O"N"pu" o'Z"?"{!@Zk%@I!#GC8Go&ps"O#N#n"?"!@Sk%I! & _"FB0F&O& O'`lR" o"Nn"0ru o'"Z?"!{@Zk%H!#GC8GM#NO&pc O'#"n o'|pr?"!Z{@Zk%CYGpcO& O'n#pr o'"Z!?"{@Zk%G!n"aF~BF/' O'"#py o'"Z!?"{@Zk%\G!N#AG^CzG& O' #t"_"qt o'N"Z!?"{@Zk%G! _##GC%F!8GN#AG^CzG# .A& O'_"pt o'N"ZLo {!?"MO @Zk%|F! t^#GC8G_#&M O' "-"t#m#.n_" rt o'N"Z?"{!@Zk%E!5@ c _.#!G>CYG& O'#m# "#"_". o'"pt?"N!Z{@Zk%|E!"FBG"/ H&Y "Kc#YG"?yHt#B/_""?"ZBK:GB? O'b o'NrtNZ!{@Zk%D!"FBG?#-M#N& O'#m#t"_"qtN o'Z"{?"!@Zk%D!"FBG-#.'L#"?"N O'p|nZ o'!{@Zk%,D!"FB0FB. H/'R BJ O'rFB>rHt"b.# o'"SbJ?"SFb>NqyZ!{@Zk%C!N#AG^CzGMP"4CYG& O' o#nt#_"qtN o'Z"!{?"@Zk%A! O' o'@ZH{@Zk"FBGlE.AO&:%C O'n#pr o'Z"!{?"@Zk%A!n"aF~BFxHM_#mm#UJ [KG9H_"&K/t@JS`J C\ KFF?|[K ?G .9'KE" 9CPJ #G >, Jm&m#-#"-/_"?"Y 8KYG-?yJM/ZXK:GM?mot O'N o'Z"{!@Zk%H@!"D5@ O' o'@Z H{@Zkm/M#?#?DzKYGGF?DM"SR@B.gF0`BhBJ`r.SrJtF O'1J@Z o''JH{D@Zk#"FB%?!G|.#!G>CYG|!GFl" M 9`C5`C!F5`CFД FG=`CF3`C4GF^ 7oGFaDcDVF`DVFn"aF~BF/'ΰ O'"#py o'"Z!?"{@Zk%>!ü9`@GG5`@5`@FvG"۔G@G=`@vG3`@4@GvG"FB0F& O'F"No"n"pu o'Z"!{?"@Zk%>!X#GC8G?F#O&N O'no#n#pr o'Z"!{?"@Zk%=!@ 7oGF9`B5`BG5`BFՔG"F=`BF3`B4FF.#!G>CYG& O'cf#n#_"ptN o'Z"!{?"@Zk%=!"FBG 7/O&F#N O'o#.n#pr o'"Z?"!{@Zk%BQF' O'f"7"n"px o'"Z!?"{@Zk%|;!,GF9 C5 CG5 CvG۔G"@G= CvG3 C4@GvG"FB0F' O'f""n07O"N"px o'"Z?"!{@Zk%:!.#!G>CYGo&s""#_"#nN"?"!@Sk%:!n"aF~BFo' O'07" #?#p{. o'Z"!{?"@Zk%(:!#GCF& O'-"07O".N"pu o'"Z!?"{@Zk%9!#GC8GM#NO& O'#n"?"npr o'!Z{@Zk%t9!n"aF~BFxHMM#UJM?#G :K?"R@Jm/s JE"rF[ zK"Gm?{:K J/&?"s"\KM#|G?m##M_" " /X K8G ?xJ-/Y5KG-?M O'Nn o'!Z{@Zk%T8!"D5@ Ç-/ #"8KDG_GcGD "QRBP.'F0 B(BPJ 0.Q0J2FCYGb/ H""*"[ bK JGb?{H O'/"#"\K|G? o'B.R QJrFB>rJ"b.SqJ?"SFb>i"A@!Z{@Zk%3!"/ H#Y "K#YG"?yH |KB/M"ZBK:GB?.P J0F>p|K".QBA@`b.l"# JS bJb>.TJ>"/Y 8KYG"?yJB/ZXK:GB?A@lU`CB"FB0FB."e" JR BJB>#"b.?"SbJb>i"/X K8G?xJ"/Y5KG"?LA@n o'N O'!{Z@Zk%p2!/ HB"b?"\ K 2JF?|H.PJG>b.S rJFb>s2J.TJtF>A@#GC8Gb/B#_" "[ zKb?"-"/ o'&8s"\K? O'N."?"!Z{@Zk%|1!D5`@-#8GU@@@I`9`@G!F5`@5`@FF"Д FG=`@F3`@4GFmN"AF^BrFo&nCYG O'_"Nd#"e#nZ o'g""?"{!@Zk%P.!n"aF~BF O'#n#/#."Z o'g""?"{!@Zk%-!#GCFo&2s"/"._"N"?"!@Sk%-! 7o`M  ^##GC%-!8G[N#AG^CzG!O  _."!F>BQF.'" O'"oUJ> "#.#p|"n o'Z!?"{@Zk%,!"FB0F& O'5B"No"n"pu o'Z"!{?"@Zk%x,! q _.#!G>CYGO& O'Jb#n#pr o'"Z!?"{@Zk%,!n"aF~BFo' O'^"#?#p{. o'Z"!{?"@Zk%+! C _"FB0Fm_"t@J"S`J #Fm JO&-/m##"Y 8K?"YG-?yJM/ZXK:GM? O'm o'pr!Z{@Zk%+!n"aF~BF' O' -#" #.#"?"s|n o'Z!{@Zk%*!5@."!F>BQFyb"no&s"r"""?"!@Sk%L*!#GC8G& "AZ#_"z/?"[zKz? O' o'pt"N!Z{@Zk%)!D A"]?#/KB@ 0 @A{#/\K?!1 @?."!F>BQF' O'b""n"px o'"Z!?"{@Zk%D)!.#!G>CYGO& O'm#n#pr o'Z"!{?"@Zk%(!n"aF~BFo' O'"#?#p{ o'."Z!?"{@Zk%(! x _Gv _#N"AF^B%|(!F#GC8Go&.As""O ?"!@Sk%((!o/O#zK:GK=@#GCF& O'-" O".N"qu o'"Z!?"{@Zk%'!#GC8GLo&s"#Nn"?"!@Sk%|'!#GCF& O'-" O".N"ru o'"Z!?"{@Zk%$'! _.#!G>CYGo&ps"b#n#"?"!@Sk%&! _#N"AF^B%&!F#GC8GL.AO&N O'l#"?"n o'hqrZ!{@Zk%`&!  _#"FB%P&!G.#!G>CYGPoO 4CYG& O'v#0o"no#nTqt_"N o'Z"?"{!@Zk%H%!nnn?'z9#C @n.#n#q|KPJ'$0Fn>H _4<8qB4CYGlO& O'n#Pqr o'"Z!?"{@Zk%$$!] _#"FB%$!G&.#!G>CYGn/no#.A0oo Kn ;gK-`"FB0FD' O'"N o'c"?"nLpx!Z{@Zk%l#!d/D/n/"/[ dKDK\ KzG "KF?|"K.PJG>nO.RQJnO>'"FBF o' O'?#"L?"NTq{. o'Z!{@Zk%"!n$..B.Q $JJR BJ0F KrFB>rKb.SbJSFb>4<5qBPo n_#n#aG~C%\"!G"FB0F.A& O'O&tR"N"pu o'"Zo {!?"NO @Zk%!!#GC8Gno/nO#&[zKno?/& O'!" Poﳄu1"M"No"n."pu o'"Z?"!{@Zk%d!!#GC8G B/ H#Z BK"zG B?zH&b/_"[bK[Gb? O' o'",.pt?"N!Z{@Zk% !"FBG"/ H&Y "K/&YG"?yHP#B/ "t1"_"ZBK:GB? O'lbN o'."qt?"N!Z{@Zk%D !5@#GC8Go&s"C#Nc#n#"?"!@Sk%!_#N"AF^B%!F#GC8Gl.A&_"C/ o'"O ZCKC? O'?"ptNZ!{@Zk%`!"FBG-zH "#Y KrKYG-l""xtJmo' O'?#-.Q0J"QF->?".UJG>Np{. o'Z!{@Zk%!#GCF-rHMd""Q J"QF--rJxtJ.Q J"QF-UJ"G>. tJM#m/U J?#G>utJ|:K /[zK_'MGm?XK#F ?m#q|K-# .""-m"PJM"0F > #?"?#No'n O'w{. o'Z"!{@Zk%!D5 @ `@0.Q0J0>!D?_#"FB%T!G҈.#!G>CYG O'o'Z,q; o'&! {0w"M"@Zk O''Z o',q<&m# |KP J-/ #0F >" JY 8K-.p|K^m/YG-?QyJ4CM.ZXK.:GM?m"?#[M#-" "UJxJR QJ[ zK :K JGrF^m?M>rJ{:K[/m.G">\KSqJ|G[?SFm> O'"Z o'c""?"{!@Zk%!#GC8Gm/M#|H-"[zK O'Gm? " o'M. JR QJrFM>rJ"m.SqJ?"SFm>c"!Z{@Zk%D!#GC8Gm/ /M#""[zK|H JX KGm?8G ?-"M.-/ " JR QJxJY5KrFM>G-?rJm. ._#<Cm#SqJPJqKSF0F >m>M"m". SJ#T J-#F>tSJ:C.|YKW "-"UJF>m/[yKGm?. O'_"NZ o'&@s""{?"!@Zk%!&s"@P"FBGo&Hs"M#N#ΰ-#.n"?"!@Sk%!#GCF O'M""W-".N o'&Z@s""{!?"@Zk%<!"FBG-#.M#/o&m/Hs" "\ KzK &".G:FK_"NFKN"D!?"@Sk%!&s"s@cD"_ 7.#!G>CYG ./m#-"P JKm"FnM.".G /FQJJ#b@K&b@!G.yD VG G_"VGpt bDNGX`G o'VG#C"{VG O'?"Z!@Zk%! ^##GC%!8G{N#AG^CzG!& O' "_"pt o'N"ZOo {!?"@Zk%@!"FBG' O'-#.#p|n o'Z"!{?"@Zk%!DG@A[_"0.0JB`A.UJ>0@ @?N#AG^CzG& O'# "_" o'pt"N?"Z!{@Zk%H!"FBG#/ HO&m#Y #K#YG#?yH"C/?"1@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;19>ZCK:GC? O'c o'nyr!Z{@Zk%!n"aF~BF #o&s" L/_" ,/"?"Z XK8KYGlnN!@Sk%`!n"aF~BF O'# o'Z&s"{"!?"@Zk%!^#n#aG~C%!G Ҹ"FB0F O' o'ZO {&&"F"6y".A@Zkm@_"t@J"S`J-#Fm#{K#M/ "rKZYKzGM?-.Q0J"QF->..XKD#U JJFy`Jd"8G/d/&.\ KzKQ 0JG PKQF&>qPK\O#F.RPJ2FF>..U JJXKFy`J8GN#m#2"& O'n _" o'",.?"ytNZ!{@Zk%@!L #q&/p/B/Y &KKZ BK8G JzGB?zJb/[bK[Gb? ,. ..b.Q CYG O' o'Z&{y"&"F"@Zk&"F.&#."/R QJP JKF qK#rFF>rqKf.SqJSFf>/.F/X KJZ YKG J "zGF?zJ"f/[yK[Gf?$..F.Q rKf.SfJSFf> ,/ /Y 5KK8G JzGqF?pf/zJ[fK\#[Gpf?6_"-" ". O'N " o'"?"ln&Zs"!{@Zk%!D5@@MBD2^#.#!G>C%!yGҸ#GCF O' o'ZO {&&"xF"z".A@ZkM@?"s Jx"R@J #rFM"zJ#-/#q|KY8KYG-? .PJ~#0F >|.d.UJ$#T JdJFx@JD"G|d/D/.[ yKYKP JzG p.d.T JrJUJFx@JG.m#M#n2#& _"N O' o'?" "PztNZ!{@Zk% !t B  ^#GCF O' o'Z&az"{&"xF"@ZkM@?"s JR@Jx"rFM" #zJ-/##q|KY8K|"YG-? .PJ0F >~"}/.d.X KD#T JdJF UJd"8G}?xUJ|&/Y5KG|&?/d/&.\ KzKQ 0JG PKQF&>qPK~F.RPJ2F~F>../U JJX KF fJ_#8G?xfJ\#6_"&/-" " "Y&KG&?xF l O'tf o'N.?""lnZ&s"{!@Zk%( !D5@@MBD;^.#!G>CYGP!Ep .A<cCO  O' o'@Z H{@Zk."!F>BQF"pl "D"M#'N O'-#x #.# r|"n o'Z!?"{@Zk%T !5@."!F>BQFb"no&s"""N?"!@Sk% !"FBG?#&-M#N O'tl#<#n "?"-M"N" ru o'"Z?"!{@Zk% !5@.#!G>CYGo&s"Gb#n0#_"N"?"!@Sk%0 ! O' o'@ZH{@Zk#"FB% !Ge.#!G>CYG.A&O O'Xb##n_"pt o'N"Z?"!{Po @Zk%!/K5JX.#!G>CYGo&8s" "#_"Nm#n"?"!@Sk%0!9@GF5@5@FF"ԔF`F=@F3@4`FF0#GC8GM&d#"N O'm_"?""n o'ptNZ!{@Zk%!"FBG' O'A9#.#p|"n o'Z!?"{@Zk%4!.PJ>N"AF^BrF' O'"" #/##."?"p|nZ o'!{@Zk%!"FB0FC. H/'R CJ O'rFC>rH"c.t"# o'ScJ"SFc>?"nryZ!{@Zk%0!5@@n#aG~CGo&s""z""_"N".?"!@Sk%!^#"FB%!G.#!G>CYGPO !pbo g`#GCFo' O'?"p"D" _"mM" #x"?# r{ o'."Z!?"{@Zk%!5@"FB0Fo&s"C"N""n?"!@Sk%!"FBG?#&-M#N O'tb#<#n "?"-M"N" ru o'"Z?"!{@Zk%L!5@.#!G>CYGo&s"Gc#n0#_"N"?"!@Sk%!n"aF~BFo' O'X"#?#p{ o'."Z!?"{@Zk%!.J<KX."!F>BQFm"no&8s"""#"?"!@Sk%8!9@GaG5@5@FVG"ڔ`G G=@VG3@4 GVG0#GCF-' O'dc"."M"n o'"N?"pxZ!{@Zk%!.#!G>CYGO& O'A{#n#pr o'"Z!?"{@Zk%<!d.SdJd>"FBG?#-M#&N O'm##n_"pt o'N"Z?"{!@Zk%!"FBG"/ H&Y "Ko#YG"?yHt#B/_""?"ZBK:GB? O'b o'NrtNZ!{@Zk%8!5@#GC8Go&s"C#zc#N#"n?"!@Sk%!."!F>BQF' O'"bt""qx o'Z"!{?"@Zk%!5@ N#AG^CzGo&s""#_"N"!?"@Sk%,!by`"FBF#|&4CYGo&8s" "#_"Nm#n"?"!@Sk%X!9@GF5@5@FF"ԔF`F=@F3@4`FF0#GC8GM&d#"N O'm_"?""n o'ptNZ!{@Zk%!"FBG' O'A9#.#p|"n o'Z!?"{@Zk%\!.PJ>N"AF^BrF' O'"" #/##."?"p|nZ o'!{@Zk%!"FB0FB. H/'R BJ O'rFB>rH"b.t"# o'SbJ"SFb>?"NryZ!{@Zk%X!9@GG5@5@FvG"۔G@G=@vG3@4@GvG"FB0Fzc"no&s"C""N"!?"@Sk%!"FBG?#-M#&N O'#m#t"_"qt o'N"Z?"{!@Zk%\!"FBG,O&C#N O'o#.n#pr o'"Z?"!{@Zk%!n"aF~BF/' O'"#py o'"Z!?"{@Zk%!N#AG^CzG/ H2H\ KGF?AFF.|H6F@FPJ'FJ O'G>o"bt"N"qx@F6FZT@F o'"6F{!?"@Zk%!.#!G>CYG& O'#m#" -"tB"N."qu o'"Z?"{!@Zk%!#GC8GL&c#N O'#n_"pt o'N"Z?"!{@Zk%,!"FBG' O'/#.#p|"n o'Z!?"{@Zk%!"FB0FB. H/'R BJ O'rFB>rH"b.t"# o'SbJ"SFb>?"NqyZ!{@Zk%X!N#AG^CzG& O'# "<?"-M"Ntb"n"qu o'Z"{?"!@Zk%!#GC8G'tB#N O'#$r|n o'Z"!{?"@Zk%!^#N"AF^B%!F#GC8GE.A ,GEFvGENGvGDG|GGXGGvGDC!DvGFF D!D!PO FS, = }W}}` O& }}xT}} o& }3= W݌WDTWW}]ݠ & ݰ$W ݄WTWݠ ݰ /' O'GF݄WWdTWW =Yz }WW8dHGTTFG]}F}TGT`GFd #GCF& O'""._"ptN o'Z"!{?"@Zk%X!"FBG' O't"#.#,r|n o'Z"!{?"@Zk%!"FB0Fo' O'_"Mm"n""t#?#q{. o'Z"{?"!@Zk%!#GCF'n O'"B"%?".h"Nn"px o'"Z!{?"@Zk%,!.#!G>CYGO& O'o#n#pr o'"Z!?"{@Zk%!n"aF~BF. H/#U J'G>uHtB#/#"?"XKF?"N O'Nq|n o'Z!{@Zk%X!3CcDsD`@7 J"3C SF-$ "FBF# &M#N O'm#-#n.# "?"-M"tb"Nn"qu o'"Z?"!{@Zk%!#GC8Gl_#M& O'm#n#t"". "_"qtN o'Z"{?"!@Zk%(!"FBGo'n O'?#p{ o'."Z!{?"@Zk%!#GCF ". H'Q "J O'QF ">qHb"B.t"" o'RBJ"2FB> b?"nqxZ!{@Zk%X!.#!G>CYG& O'#m#<" -".tB"N"qu o'Z"{?"!@Zk%!#GC8G'tB#N O'#$r|n o'Z"!{?"@Zk%!^."!F>BQFE.A" #?#O&-M#N O'PO tb#n4aBqr#Z o'"?"!{@Zk%!n"aF~BF/' O'#py o'"Z!?"{@Zk%!N#AG^CzG / H1H\ K&JF ?|H B.' O't"PJb"G>L ?F"1'J B o'n" 1Bqx?"!Z{@Zk%$! O' o'@ZH{@Zk#.#!G>C%!yGO#GCFPO .A⳸o ,x N"AF^BrF"" #?#-O&M#N O'tb#n#qr o'Z"!{?"@Zk%P!n"aF~BF/' O'# o'py"!Z?"{@Zk%!N#AG^CzG / H& O'\ Ktb"F ?|HB"." o'PJG>." "?"nNquZ!{@Zk%x!#GC8G' O#N O'#r|n o'Z"!{?"@Zk%(!"FB0Fo&s"_"N""?"!@Sk%!|#GC8G' O#N O'#(r|n o'Z"!{?"@Zk%!"FB0F& O' O"Ntb"n"qu o'Z"!{?"@Zk%8!|+.#!G>CYG&| O' o#x#n_"qt o'N"Z!?"{@Zk%!"FBG' O' /#.# r|"n o'Z!?"{@Zk%!."!F>BQF' O'm" "n"8rx o'"Z!?"{@Zk%!.^N#AG^CzGE.A/' O'P!?"-M"N<"m"t"#qy o'0CZ"?"{!@Zk%! O' o'@ZH{@Zk#n#aG~C%|!G "FB0FP!_".AL^#"FB%8!G.#!G>CYGlGF!aG{GG`GȾ G_! _!"FB0F& O' E"N;m"npu" o'Z"?"{!@Zk%x!#GC8G';M#N O'#xp|n o'Z"!{?"@Zk%(!"FB0F/'," &6e"n."<E"Npy# o'O'"{?"!^Z#@k%!  NGFAGZGvG@GvG~#GCF& O'BE"N;m"nZ%".pu" o'Z"?"{!@Zk%(!#GC8G';M#N O'#xp|n o'Z"!{?"@Zk%!"FB0F/'m" &we"no"}E"Npy# o'O'"{?"!Z#@k%`!  NGFAGZGvG@GvG*#GCF& O'E"No"n;-".pu" o'Z"?"{!@Zk%!#GC8Go&ps"O#N#n"?"!@Sk%! ^ ."!F>BQFe"no&2s"""?"!@Sk%H!"FBGo&2s"%##.n"?"!@Sk%!#GCF(?"s JROo' O';"R@JRR"rFRO #?#" { o'.?"Z!{@Zk%!#GCFM/' O'"A;1"<<"Q.#"RQJQ> ?"pYn o'Z!b"{@Zk%!#GCF N O'"%".N o'b"Z"!{?"@Zk%!"FBG nE#N O';-#.#n o'Zb""{?"!@Zk%T!"FB0F n O'" E"Nn o'b"Z"!{?"@Zk%!GFFFGFG.#!G>CYG O'_" e#n o'Nb"Z"!{?"@Zk%!n"aF~BF  O'?#." o'Zb""{!?"@Zk%4!N#AG^CzG  O'_"0# o'Nb"Z"!{?"@Zk%!n"aF~BF  O'?#.a" o'Zb""{!?"@Zk%!N#AG^CzG  O'_"# o'Nb"Z"!{?"@Zk%8!n"aF~BF  O'?#." o'Zb""{!?"@Zk%!N#AG^CzG  O'_"# o'Nb"Z"!{?"@Zk%!n"aF~BF  O'?#." o'Zb""{!?"@Zk%CYG G,F O'Fn2J"AF\b#'#n6FZ@F o'B6F{"!?"@Zk%!"FBG NGFn_"N<DKN@CG O'vGG<%#.vGZ o'"?"!{@Zk%l!nGFaFsFF`FF"FBG NGFn_"N<DKN@CG O'vGG>%#.vGZ o'"?"!{@Zk%!,fnGFFFFFFs-/s #G0F Y8Ks-?n#aG~CG O'N@%"NsM"."NG" o'Zk""{!?"@Zk%$!"FBGAs9#.G,n!GFVG G#nVG O' o'Z"{?"!9G@Zk%!#GCFB.""G O'@QJFHs #T@Dl ?#H".vFD o'ZvFk"{"!?"@Zk%0!N#AG^CzGA$ns#GG O'F_"NFZG o'F"{?"!G@Zk%!BD0@@GADFF@DSDFXF0`@FS@`@F.#!G>CYGsm#8nG O'nF8_"N o'1K8 !FZ{CF F?"F"!@Zk% !"1@GADFvF@DDvF8DtFGXFBDvF3@vF,8 ?#B/KB@0@@G8DFvGD@DvG9@D|GBGXG0. vG@Q0JvG0>BD"1@@GADFF@DbFFXFBDFbBF88/Y8K8?n#aG~CG NGF O'4DJNK%".Fs "vFF"vFZ o'n"{@B!?"@Zk%!s-/s #GY8Ks-?l`GF V@.S .S"R PJ0JQFB 0`@`@@@G0f F GFFFFFF#GC8G"c#GNI#NGN O'nFOe#_"nNFZG o'F"{!?"G@Zk%p!n"aF~BF O'#" o'Zk""{!?"@Zk%$! @ 1@AAc{#*_#/2@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1k>p[K\KF?C.GFCJ1'J!F1FvF FvF)GAEFF@EJEGF Ac" ?#/KB@Ac#-#.q|KPJ0F>0@ @GF @ @FvFӔF"@F @vF @4@FvF"FBGsM#N O'#c-#.n o'Zk""{!?"@Zk%!#GCFAs1". O'nG!FF"VFZ o' F1F"{?"!VF@Zk%h!4"FBGVE#N O'sm#N#N]%#.n o'k"Z"!{?"@Zk%!"FB0FAsR"GNAFFvF O'@F"vFZ o',n"{?"!RF@Zk%!"FBGC/##G@YKFH O'\@D0 ^"vGD_"s-"N.vG o'Zk""{?"!@Zk% !n"aF~BFAs" O'$nGF?#.FZG o'F"{?"!FG@Zk%!BD@@GADFvG@DBGvG@G|GGXG"vGZ@0@ @0`@vG?N"AF^BrFs"4 O'GnF4#n o'9J4 !GZ"{G GB!?"G@Zk%!"1@GADFG@DDG8DGGXFBDG3@G,4. ""BQ.QJ3B0@@G4.DFFD@DF9@DF CGXGY/ F@ZYKFY?BD"1@@GADFF@DGFX FBDFCF4Nr.SrJr>"FBG naE#N O'Gn0dKn_"NFs-#F.Z`CGF o'"?"{G!@Zk%T!Cs.sm"GTJs>F 0f c-/c #GFY8Kc-?baG{GG`GG$"FB0F"c # O'B.?I"?i.GGT JrJF#e"nFN6GZGn o'"?"G{!6G@Zk%l!#GCF O'jE"Nsm"N"Nc-".n o'k"Z"!{?"@Zk%!"FBGA,ns9#.G!GFVG G#VGn O' o'Z"{?"!9G@Zk%!#GCFC.#"G@QJ O'HFT@D0 #s"vFDZ o'vFk""{!?"@Zk%!.#!G>CYGAs{#nGn O'aGF_"NGZ`G{G o'"{?"!G@Zk%!cD0`@GaDFF`DsDFXF0@Fs@@@@FO.#!G>CYGsm#0nG O'nF0_"N o'1K0 !FZ{CF F?"F"!@Zk%!"1@GADFvF@DDvF8DtFGXFBDvF3@vF,0 ?#B/KB@0@@G0DFvGD@DvG9@D|GBGXG0. vG@Q0JvG0>BD"1@@GADFF@DbFFXFBDFbBF08/Y8K8?n#aG~CG NGF O'4DJNq%".Fs "vFF"vFZ o'n"{@B!?"@Zk%t!s-/s #GY8Ks-?F 0f c/cm#GF\Kc?"!F1FVF FVF$n"aF~BF"cm#nuE#F)/C /C"NGY 5KnK O'aGF8G_"NZG{G`G o'"?"{!G@Zk%!n"aF~BF O'z#Ns-#N#c".k"n o'Z"!{?"@Zk%0!#GCFA,ns1". O'G!FF"ZVF o' F1F{"?"!VF@Zk%!"FBGC/##G@YKFH O'\@D0 _"vGNDs "vG o'Zk""{!?"@Zk%D!n"aF~BFAs" O'nGF?#.FZG o'F"{?"!FG@Zk%!cD0`@GaDFvG`DzDvGXG0@vGz@@@@vGO."!F>BQFsm",n O'GnF,?#. o'8J, GZ"{FGB!?"F@Zk%!"1@GADFVG@DDVG8DGX`GBDVG3@VG,, ?"C.JC@0@@G,DFvFD@DvF9@DtFBGXF/ vF@XKvF?BD"1@@GADFvG@DBGvGXGBDvGBCvG,0.Q0J0>n"aF~BF .GFn#;$K.s"aG#VG`G o'VG O'"{Z C!?"@Zk%!s-.s "GQ0Js->F 0f c.cm"GFTJc>GG6GG6G$N#AG^CzG"cm"G>).;#; .aF O'nQ "FBG nE#N O'Gn0dKn_"NFs-#F.Z`CGF o'"?"{G!@Zk%!s.sm"GTJs>F 0f c-/c #GFY8Kc-?baG{GG`GG$"FB0F"c # O'J.GI"Gi.GGT JrJF#"nFN6GZGn o'"?"G{!6G@Zk%!#GCF O'E"Nsm"N"Nc-".n o'k"Z"!{?"@Zk%!"FBGA,ns9#.G!GFVG G#VGn O' o'Z"{?"!9G@Zk%!#GCFC.#"G@QJ O'HFT@D0 #s"vFDZ o'vFk""{!?"@Zk%!.#!G>CYGAs{#nGn O'aGF_"NGZ`G{G o'"{?"!G@Zk%(!cD0`@GaDFF`DsDFXF0@Fs@@@@FO.#!G>CYGsm#$nG O'nF$_"N o'1K$ !FZ{CF F?"F"!@Zk%l!"1@GADFvF@DDvF8DtFGXFBDvF3@vF,$ ?#B/KB@0@@G$DFvGD@DvG9@D|GBGXG0. vG@Q0JvG0>BD"1@@GADFF@DbFFXFBDFbBF$8/Y8K8?n#aG~CG NGF O'4DJN%".Fs "vFF"vFZ o'n"{@B!?"@Zk%!s-/s # Y8Ks-?0!c/cm#GF\Kc?'!F1FVF FVFWR.O.Oi"; #U JJF`B }>I/;)/ Z XK8KWYG@]Wb@TW $= WW] } o'𤛄#GCF' GFc # O'GGW#""G== ].?"N}n o'aFZF`Fn{!FF6GG6G@Zk%@!#GCF O'NE"Nsm"N"nc-". o'Zk""{!?"@Zk%ܺ!"FBGAs9#.G,n!GFVG G#nVG O' o'Z"{?"!9G@Zk%p!#GCFH.("G O'@QJFH#T@D0 s"vFD o'ZvFk"{"!?"@Zk%!.#!G>CYGAns{#nG O'aGF_"NZG`G{G o'"{?"!G@Zk%!E0AGEFFEEFXF0CFAC@F?N#AG^CzGs# O'nG F"2J o'AFZB{6F@F"6F !?"@Zk%!"1@GADFF@DDF8DFGXGBDF3@F, . #"CY/YK;C0@@ NGDFFD@DF9@DF@BGX Fr. F@SrJr>FBD"1@@GADFG@DFGX GBDGBG Nz/[zKz?"FB0F O'G8JsM"NGe"?#.FnZFnG o'"{B!?"F@Zk%@!ƠGNFDDGD0@CnG""FB0F n& O';M"Nn"|pu o'"Z!?"{@Zk%!#GC8G N'#N O'p|"n o'Z!?"{@Zk%d!"FB0F' O'e""n;M"N"px o'"Z?"!{@Zk%!.#!G>CYGo&ps"o##n"?"!@Sk%ĵ!^."!F>BQF E.A/' O'4`Bpy# o'Z"?"{!@Zk%`!"1@:9@@db@ "/KpC ,0@@ O' o' @8@@. TJ>@ZH{@ZkBD"1@@99C_L z/[zKz? O' o'@ZH{@Zk"FB0F(R!E.A"p" #t,#.&N_#M O'm#n# "3BB rt_"NZ o'"O !{?"@Zk%0!5@#GC8Go&s"B#b#N#"n?"!@Sk%ܳ! O' o'@ZH{@Zk#N"AF^B%!F9#GC8G(Ro .ApC 7@n#aG~CG'"p?"-M"Ntc"n O'N""#-# .# r|"n o'Z?"!{@Zk%!5@."!F>BQFe"no&s""""?"!@Sk%!#GC8G_#Mm#n#& O' _" o'?""ptNZ!{@Zk%8!"FBG#/ H&t#Y #K_"YG#?yH"C/?"ZCK:GC? O'lc o'nrtN!Z{@Zk%!5@#GC8Go&s"E#Ne#n#"?"!@Sk%`!"FB0F& O'tC"N"qu o'Z"!{?"@Zk%!5@.#!G>CYGo&s"e##n_"N"?"!@Sk%! GfSS@sm`"FBF0@@ ?#-M#N& O'm#nt#_"qtN o'Z"{?"!@Zk%0!"FBGYD@'9 O'#".?"p|nZ o'!{@Zk%ܯ!"FB0FC. HTD@R CJ/'rFC>rH O'c.t"# o'ScJ"SFc>?"nqy!Z{@Zk%T!5@@n#aG~CGo&s")"%"._"N"?"!@Sk%!0@@SD@s"FBF# -#._#M& O' #t"m#n_"rtN o'Z"!{?"@Zk%x!5@#GC8Go&s"LE#6e#N#"n?"!@Sk%$!"FB0Fo&s"_"N"?"!@Sk%!n"aF~BFo' O' "t#q{?#. o'Z"D{!?"@Zk%!5@"FB0FYe"no&s"qE"N""!?"@Sk%8!A@G^BD^#n#aG~C%!GAހ"FB0FL.AO 5@B`"FBFo&@Ls"~#k/##n".!?"@Sk%!y^"FB0F_o"no&@Ls""B"N"!?"@Sk%H!f^##GC%CYGo&.A@Ls"!l#n^#_"N"?"!@Sk%`!^#"FB%T!G݀.#!G>CYGo&.A@Ls"!l#hv#n_"N"?"!@Sk%!^#"FB%!G݀.#!G>CYG.A#o&nT's" /_" "O ?"\ @Ro N!@Sk%d!n"aF~BFo&Ps"N'"#"?"!@Sk% !.#!G>CYGo&Ps"eb#n)#_"N"!?"@Sk%Щ!n"aF~BFo&2s"g"#"?"!@Sk%!.#!G>CYG&0< O'0BQF"l"?"no&Ys"!@Sk%ԧ!"FBG0BQFb"no&2s"""?"!@Sk% !"FBGo&2s""#.#n"?"!@Sk%Ȧ!#GCF?".o& /T's" ""?"R @RN!@Sk%p!"FBG ?#. Oo&es"#N" o?"n!@Sk% !o^#N"AF^B%!F܀#GC8GE.A 7G(7ﳛE,7F7vGENGvGAG |GGXGf&vGACnׯ O'"/"._"ptNvGZ o'"{?"!R @Zk%@!"FBG/#._#M& O'm#n_" o'"pt?"N!Z{@Zk%̤!"FBG$/ H&Y $K#YG$?yH_"D/"?"ZDK:GD?n O'd o'qtNZ!{@Zk%H!"FBGo&n`@s"?##.n"?"!@Sk%!7(7OS@f"FB0F._"b"o/ SJT J#F>tSJnb#\ K.#"UJF>#/C/8KZ XKYG KFo?|K!#n.PJrb#Gn>C. c.q.QJS qJT JrF "J_"Fq>t"Jp.UJFp>!#/"C/s/8KZ XK\ KYG KFs?|Kr.PJGr>No&NSs""?"!@Sk%! 7oB0`B 7_"FBGo&2s"%#.#n"?"!@Sk%h!#GCFo&,d`s"_"N".?"!@Sk%$!n"aF~BF(7o&s"#"D?"!@Sk%!@G^N#AG^CzGo&2s"#_"N"?"!@Sk%!l&.#c"#.U JJF`B`#GC8GL##o&Ys"0@Cn&#._"#.NQ C%`!yGۀ#GCFRO .A?"o&.d`s"L""?"N!@Sk%!"FBGo&s""?"!@Sk%!"  @^G>^#N"AF^B%!FۀT#GC8GL"T!/B#b/ׯ Ro \ KzKGPC N"AF^BrFo&ps""""?"!@Sk%! ^(7Ob/B/"#[ yKYKzG C! "..#Q O' /#". ##"TJ>.?"q|n o'Z!{@Zk%!D5@@,?"Q@@n"aF~BFo&Ns"`"F#?#."?"!@Sk%L!,_#Z@`G_ j@#GCFK%"._"Mm"n"o' O'"?#"p{ o'.?"Z!{@Zk%!#GCF#. H' O'Q #J"QF#>qH"C. o'"RCJ2FC>n?"cnqx!Z{@Zk%,!.#!G>CYGO& O'c#n#rr o'"Z!?"{@Zk%ܛ!n"aF~BFo&s"""?"!@Sk%!5 @5@ G?^"FB0Fo&ps"kE"N""?"!@Sk%@! +^#GC8Go& 7/,s""?"!@Sk%!(7O&O'rRo'p'&/&p۠qpPqqN.d".U JJF`B`éD/$/#)1 AZ XK8KYGCn#aG~CGo&Ss"_"N"?"!@Sk%uH"/?"XKF?H.#N O'nn o'Z!{@Zk%!#GCF%"4._"M O'4"m"n o'f""!Z?"{@Zk%8!#GC8GC/ H_""Z CKg"zGC?3@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1J>zH?"c/[cK[Gc?D O' o'nN"Z!{@Zk%!BÕ..d"U JJF`B` GFGG6GG6GN#AG^CzG O'_""N/".# o'Zh""{?"!@Zk%!n"aF~BF"0# #-#0Nf"".?"N O'n o'!Z{@Zk%!#GCF#. H O'Q #J"QF#>qH"C. o'"RCJ2FC>@n?"cg"n!Z{@Zk%$!#GC8GE#,N#m O'_",# o'f""N?"!Z{@Zk%!n"aF~BF. HC#U J#G>uHg"/"?"XKF?<.#N O'n o'n!Z{@Zk%4!Õ$.#.Q CYGc/ H O'[ cK_"Gc?{H#"/g"\K|G? o'8n"N.Z!{?"@Zk%!n"aF~BF"$# #-#$Nf"".?"N O'n o'!Z{@Zk%,!#GCF#. H O'Q #J"QF#>qH"C. o'"RCJ2FC>4n?"cg"n!Z{@Zk%!D/$/#Z XK8KYGCÕ.d#/P JKF`C7`C Éd.D.S dJDJrF@" T@GGT@FFՔGFT@F.#!G>CYG O'Nd#n#"_"NZ o'h""!{?"@Zk%!n"aF~BF" # # N-#f"."N O'n o'!Z?"{@Zk%@!#GCF#. H O'"Q #J"QF#>qH o'C."RCJ2FC>?"0ncng"Z!{@Zk%!#GC8GE#N#m O'_"# o'f"N"!Z?"{@Zk%P!n"aF~BF. HC##U Jg"G>uH"/?"XKF?,.#N O'nn o'Z!{@Zk%Џ!#GCF%"._"M O'"m"n o'f""!Z?"{@Zk%`!#GC8GC/ H_""Z CKg"zGC?zH?"c/[cK[Gc?( O' o'nN"Z!{@Zk%!n"aF~BFo' O'" #?#p{ o'."Z!?"{@Zk%!#GCF& O'-"._"pt o'N"Z!?"{@Zk%4!D 1@GDFGDFGX GDGBG+Az#Z#G/F"ZKGKyGCuGCAFuGC6Fє@FF}GC6FsGC4F6FAs".TJ>D 1@GDF6GDG6GX@GD6GC6Gn#aG~CG" O'L%"M"."NN o'h"Z"!{?"@Zk%!"FBGE#N O'Nm#n#-#.Z o'h""!{?"@Zk%!"FB0F O'"e""M"Nn o'Zh""{?"!@Zk%,!#GC8GO#N#m O'_"# o'f""N?"!Z{@Zk%!n"aF~BF. HC#U J#G>uHg"/"?"XKF?$.#N O'n o'n!Z{@Zk%CYG O'_"N+e#n#Z o'h""?"{!@Zk%!n"aF~BF" # -#._#M O' _"m#Nj""n o'Z?"!{@Zk%!n"aF~BF. H:HU JGG>AGF/uH6G@GXKFKF?n@G6GT@G O'c_"N#n o'Zk""{?"6G!@Zk%!n"aF~BF" O'nGF?#.FZG o'F"{?"!FG@Zk%x!N#AG^CzG$..#BE"NQ CYGc/ H1H[ cKGGc?{H!F/FF F\K&J|G?N O' Fc"C"FnT Fn o'Zk"F{"!?"@Zk%!"FBG##.Gn!GFVG G#nVG O' o'Z"{?"!9G@Zk%X!#GCFo&s"_"N"?"!@Sk%!5 @`5@G^^N Y^#.#!G>C%!yGԀ'8#GCF%L! O'?" o' .R/!&Zp)"{" G M"@Zk O' o'Z&{"\M"p)"@Zkm@_"t@JS`J"Fm-##{KM/# "rKZYK@"zGM?u`J\ #-.M#?#|:KQ0J"QF-> -"sJ'"TJF""m/[zK O'Gm? o'M.RQJ?"rFM>lnpx!Z{@Zk%D!.#!G>CYGi/ H O'[ iK_"Gi?{ H&/Ps""?"\K|G? o'iN.!Z{@Zk%́!9@GF5@5@FF"ԔF`F=@F3@4`FF(#GC8GkF#O&N O'no#n#pr o'Z"!{?"@Zk%0!n"aF~BFo&xs""#"?"!@Sk%!.#!G>CYGm#O&n O'#l o'"?"npr!Z{@Zk%!n"aF~BF. H O'U J?#G>u H o' /&Ps""X K?"F ?i..!Z{@Zk%!9@GG5@5@FvG"۔G@G=@vG3@4@GvG("FB0F& O'nF"No"n"pu o'Z"!{?"@Zk%x!#GC8Go&xs"O#N#n"?"!@Sk%8!<#GCF ?&1"\- f"g /.d.X KD#T JdJF UJ8Gg ?xUJD"f-/Y5Kj"Gf-?/d/h \ KzKPJGq@K'0Fh O'd.#."k /?"rJT JX KF UJ8Gk ?xUJj-/Y5KGj-?lnp|n!Z o'{@Zk%~!"FB0FI. H"R IJr#rFI>r H"i.' O' #SiJ"SFi>i?".-. |n o'Z!{@Zk%p}!9@GAF5@5@F6F"є@FF=@6F3@4F6F8n"aF~BFo&CYG O'#nZ o'&"p)"{M"@Zk M"m.$..S rJ"Q $JJ0F KFm>sK#.TJM"tF>/$/MKY 5KZ@K8G{J|^"zGMo'$. O'.?#m.Q sK?".TJtF> p{. o'Z!{@Zk%y!#GCF). H""Q )J2#QF)>q H O'I. #"RIJ2FI>l?"i&s".-n. o'Z!{@Zk%Hy!9@G!F5@5@FF"Д FG=@F3@4GF7N"AF^BrFo&d.D.S qJQJTJrFu J_"F&$/?"D//8KZ XK\ KYG K O'F?|K .PJ o'G >"lnptN!Z{@Zk%u!"FBG)/ H#Y )Kr"YG)?y Hm#I/& _"ZIK:GI?i O'n o'."-.?"tNZ!{@Zk%0u!9@G!G5@5@FG"ؔ GF=@G3@4FG8N#AG^CzGo&CYGl& O'##"n_" o'pt"N?"Z!{@Zk%8s!"FBGo&xs"/#.#n"?"!@Sk%r!,#GCFo&\s"?"AF".""N!?"@Sk%r!"FBG O' o'Z&{"M"p)"@Zkm/?#M# :K[ zK"Gm?{:K"/\K|G? .D.d.U J$#DJS dJrF 4JG>u4J$" /XK"F ?D/d/YK[ yK\KzGp KFd.D..S qJQJU JrF 4JG>u4J /XKF ?lo'n O'?#p{ o'."Z!{?"@Zk%q Hm"I. O' ?# o'RIJ"2FI>i?"n&s". .Z!{@Zk%p!9@GG5@5@FvG"۔G@G=@vG3@4@GvG8"FB0Fo& /.#X KJG JzGM?zJ"m/[yK-#[Gm?$..MQ u H _" /&s""X K?"F ?i..Nn O' o'N!Z{@Zk%k!9@GF5@5@FF"ԔF`F=@F3@4`FF8#GC8Go&CYG&n O'f#n#pt_"N o'Z"?"{!@Zk%i!"FBGo&xs"/#.#n"?"!@Sk%i!#GCFo&\s"&"_".N"?"!@Sk%li!n"aF~BFo&\s""#"?"!@Sk%,i!  '0 C b@@g%! 0`C "CA @0B%@."!F>BQFm$7H&S`Jm@ #\"n1@?#. #h""?"Mn o'N O'!{Z@Zk%Hh!9@G!F5@5@FF"Д FG=@F3@4GF9N"AF^BrFo&CYGm'\{#0@"#n O' _" o'nh"-"N.!Z?"{@Zk%e!9@GF5@5@FF"ԔF`F=@F3@4`FF9#GC8Go&CYG&l O''#"n_"pt o'N"Z?"!{@Zk%c!"FBGo&xs"/##.n"?"!@Sk%Dc!?#GCF@BD"1@@NGADFVF@D"F/' O'VFX`F"?"#pyVFZ"B o'"{VF!?"@Zk%b!N#AG^CzGo&\s"#_"N"?"!@Sk%lb!"s@0B b@T#!. N#AG^CzGs .r#M"\4"P Js >m" O' #r-. o'"Q?"xtn&s"NZ!{@Zk%a!9@GaG5@5@FVG"ڔ`G G=@VG3@4 GVG9#GCFo&r H"i. O' #"SiJ?"SFi>i&s".-n o'.Z!{@Zk%8^!9@G!F5@5@FF"Д FG=@F3@4GF8N"AF^BrFo&sK#.TJM"tF>/$/MKY 5KZ@K8G{J|^"zGM$./'. O'm.#Q sK".?"TJtF>lnpy!Z{@Zk%|Z!N#AG^CzG/ HM"\ K4"F?| H-" . O' " o'P JG >"i.?".Nn4@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1 F>&s"Z!{@Zk%Y!9@GAG5@5@F6G"ٔ@GG=@6G3@4G6G7n#aG~CGo&CYGo&xs"o##n"?"!@Sk%W!"FB0Fo&\s" F""N"?"!@Sk%dW!"FBGo&\s"&##.n"?"!@Sk%$W!#GCF- O'_". o'N&Zs""{!?"@Zk%V!n"aF~BF/' O'#y o'"Z!?"{@Zk%V!^#GCFRO Eb.A2"Bo ` O' o'@Z H{@Zk"4<8B 9BM=CC`#"FB0F/' O'N_""Mb""n# ry o'"Z!?"{@Zk%U!5@@n#aG~CGo&s"9""#"._"N"?"!@Sk%PU!n"aF~BF" #NC#'N O'-#.#p|n o'Z"{?"!@Zk%T!"FB0FB. H4Ho'R BJJrFB>rHBb. O'}"#SbJ?#SFb> F4JN"r{ o'. BZ!{?"@Zk%DT!5@"FB0Fc"no&s"C"N""!?"@Sk%S! O' o'@ZH{@Zk#"FB%S!GȀ.#!G>CYGRO .Abo ` ^"FB0F' O'_"Bb"n "qx" o'Z"?"{!@Zk%0S!" _#B4BQF9c"no&s"""""?"!@Sk%@R!#GC8G_#M& O'm#n#N"_" o'pt"N?"Z!{@Zk%Q!"FBG"/ H&}c#Y "K#YG"?yH_"B/"?"ZBK:GB? O'b o'NrtN!Z{@Zk%LQ!5@#GC8Go&s"C#Nc#n#"?"!@Sk%P!"FB0F& O'B"N"qu o'Z"!{?"@Zk%P!#GC8G&_#M O'm#n # /".B"N ""ru o'Z"!{?"@Zk%0P!^.#!G>CYGR!E.A& O' ","._"qt<`CN o'Z"!{?"@Zk%O! O' o'@ZH{@Zk#"FB%O!Gƀ.#!G>CYG.A#m#& O'_" o'RO ?""ptNZ!{@Zk%O!"FBG"/ H&#Y "K_"YG"?yH"B/?"ZBK:GB? O'lb o'NqtN!Z{@Zk%N!^##GC%N!8GƀN#AG^CzG.A# "?"M"-&N O'"l o'"RO n?"puZ!{@Zk%M!#GC8GB/ H&"Z BK_"zGB?zH?"b/[bK[Gb? O' o'"NqtN!Z{@Zk%lM!"FBG' O'"#.#r|"n o'Z!?"{@Zk%M!^#N"AF^B%M!F?ƀ#GC8GR!.ALO @G^#GCFo&\s"""_".N"?"!@Sk%L!lGFaFsFF`FF("FBG,O&B#N O'o#.#n o'pr"?"Z!{@Zk%L!n"aF~BFo&\s""#"?"!@Sk%K!,GF!G9GVG GVG(n#aG~CG & O' ""O".N"pu o'"Z?"!{@Zk%DK!#GC8Go&\s"O##Nn"?"!@Sk%K!#GCFo&xs")""_".N"?"!@Sk%J!n"aF~BFo&s"""?"!@Sk%J!#GC8Go&s"#n"?"!@Sk%LJ!#GCF& O'쳨 /".L"N"qu o'Z"!{?"@Zk%I!#GC8GL#NO& O' o#n#rr o'Z"!{?"@Zk%I! ^"FBG/m#E.A\ K?&:"C . O' o"-"PJ >M"n"N o'."O qu?"!Z{@Zk%H! D5A,?#A@n#aG~CGo&s"`"F""._"N"?"!@Sk%H!,"A O' o'@ZGH{@Zk O' o'@Z H{@Zk"FBGoE.A:#Cޏ!hSO ` O' o'@Z H{@Zk#GCF?"/_"M"m"n<" # ?#-'M#N O'# r|n o'Z"{!?"@Zk%G!5@."!F>BQFl"no&s"""?"!@Sk%@G!"FBGD_#M& O'?#-b#n# "_" rtN o'Z"{?"!@Zk%F!5@#GC8Go&s"GL#*l#N#"n?"!@Sk%|F! O' o'@ZH{@Zk#N"AF^B%`F!FĀl#GC8GOl!O hSo g@n#aG~CG'"?"x-xM"No"n O'<"tt" #p-#p .# r|"n o'Z?"!{@Zk%E!5@."!F>BQFb"no&s"""N?"!@Sk%LE!"FBGD_#&M O'?#-c## "n_" rt o'N"Z?"{!@Zk%D!5@#GC8Go&s"GB#N*b#n#"?"!@Sk%D!"FB0FZb"no&s""pC"N"!?"@Sk%@D!"FBG?#x-O&xM#N O' o#n8rr# o'Z"?"{!@Zk%C!n"aF~BF/' O'|"# o'py"!Z?"{@Zk%C!N#AG^CzGo&8s" ""-".B"N#"?"!@Sk%0C!9@G!G5@5@FG"ؔ GF=@G3@4FG/N#AG^CzG& O'""|M" ". o'N?""puZ!{@Zk%B!#GC8GA|Z#'N O'#p|"n o'Z!?"{@Zk%4B!"FB0F/' O'_"xMxm"nt"|"t# o'"py?"!Z{@Zk%A!N#AG^CzG/ H&\ K O'F?|H|-".O"" o'PJG>"#?"NnruZ!{@Zk%@A!5@.#!G>CYGo&s"b##n_"N"?"!@Sk%@!n"aF~BF/' O'"#qy o'"Z!?"{@Zk%@!5@@n#aG~CGo&s"q"c""._"N"?"!@Sk%H@!n"aF~BFo' O'51C # ?#(r{ o'."Z?"!{@Zk%?!#GCF,_"N#.o?#"?"no&s" .!@Sk%|?!N#AG^CzG' O'"# " o"nM"N-"."rx o'"Z!?"{@Zk%?!.#!G>CYG& O' #xmx#"t O"o"Nt-".n"ru o'"Z!?"{@Zk%>!#GC8G' O#N O' r|#nZ o'"!?"{@Zk%<>!^x."!F>BQFl!' O'"n"px o'"ZO {!?"hSo @Zk%=!.#!G>CYGo&8s" "_"#N"".m#n"?"!@Sk%|=!9@GF5@5@FF"ԔF`F=@F3@4`FF/#GC8GM&#N O'm "_""n o'pt?"N!Z{@Zk%C"n1'Jn o'ru 1B"Z!?"{@Zk%t;!5@.#!G>CYGo&s"b#n#_"N"?"!@Sk% ;! O' o'@ZH{@Zk#"FB%;!G.#!G>CYG.AO& O' o#n#(rr o'Z"{hS!!?"@Zk%:!n"aF~BFo' O' "#?#q{ o'."Z!?"{@Zk%<:!#GCF& O' /"L".N"qu o'"Z!?"{@Zk%9!#GC8G' O#N O' r|#nZ o'"!?"{@Zk%9!"FB0F& O'M"N o"n"8ru o'Z"!{?"@Zk%89!P^#.#!G>C%,9!yG €p#GCFL|!& O'N-".pt_"N o'Z"{ޯ !?"hS @Zk%8!"FBGo&8s"_"NM#Nm#n#-#."?"!@Sk%X8!9@GF5@5@FF"ԔF`F=@F3@4`FF/#GC8GM&# "N O'm_"?""n o'ptNZ!{@Zk%7!"FBG' O'A9#.#p|"n o'Z!?"{@Zk%\7!"FB0F/' O'_"Mm"n""# o'"py?"!Z{@Zk%6!N#AG^CzG/ H&\ K O'F?|H-".O"" o'PJG>"$?"NruZ!{@Zk%h6!5@.#!G>CYGo&s"e##n_"N"?"!@Sk%6!lGFaFsFF`FF""FBG M#&'N O'.#p|n o'Z"!{?"@Zk%5!"FB0FF& O'"N o'pu"!Z?"{@Zk%@5!D"@fb@]_#8/8KC`#GCF,& O'0@@ @M".N"pu o'"Z?"!{@Zk%4!"1@@_#GC8GO&_#Mm#n# "/". O'qR" o'"NZ?"{n!@Zk%84!"FBGO'%#.#p O'n o'Z"g"{!?"@Zk%3!#GCF$. H4HQ $JGQF$>FFD.vFFJqHFRDJvFTFo' O'2F"D>#vF?#q{ o'."Z!?"{@Zk%43!#GCF&-".E"No"np O'" o'Z"{?"n!@Zk%2!#GC8GO#N O'#g"n o'"?"Z!{@Zk%p2!#GCF$. H3H/'Q $JfJQF$>`BqHD. F3gJ O'RDJ"2FD>" sB#qy o'"Z!{?"@Zk%1! O' o'@Zo&s"H{@ZkN#AG^CzG& O'#_"qt o'N"Z!?"{@Zk%d1!GF" BBaGBVGڔ`G G BVGB4 GVG#GCF,pd" O'GaF/"FD"NF o'`FnsFZg""{!?"F@Zk%0!#GC8GD/ H<Hp"Z DKKzGD?zHCd/_" GE#N O'o#.n_"p| o'N"Z!c"{?"@Zk%(!n"aF~BF/' O'"#py o'Z"!{?"@Zk%@(!N#AG^CzG/ H1H&\ K&JF?|H B. O'O"o"PJ ?FG>D"n1'J o'qu 1B"Z!?"{@Zk%'!L@ .#!G>CYG& O'#m#" -"O"N."qu o'"Z?"{!@Zk%$'!GFYCUCaGUCVGڔ`G" G]CVGSC4 GVG#GCF O'N"V%".O"NZ o'c""?"{!@Zk%&!"FBGO#N O'm%#N#n. o'Zc""{?"!@Zk%,&!#GCF& O'/"._"pt o'N"Z!?"{@Zk%%!"FBG$/ H;HY $KfKYG$?`CyHD/ G&;gKZDK#:GD? O'"_"qt {CN o'Z"!{?"@Zk%@%! L@"FBG?#-M#N& O' #m#"_"qtN o'Z"{?"!@Zk%$!GF"YBUBAGUB6Gٔ@GG]B6GSB4G6Gn#aG~CG& O'N"/"._"ptN o'Z"!{?"@Zk%($!"FBGO#'N O'N%#.#p|n o'Z"!{?"@Zk%#!"FB0F& O'O"N"pu o'Z"!{?"@Zk%x#!#GC8GD/ H<H&Z DKKzGD?zHCd/"/"_"[dK G[Gd? O'.CYG.A& O'#m# " -"O".N"qu o'"ZhSO {!?"@Zk%!!#GC8G'#L"?"N O'p|n o'Z!{@Zk%h!!"FB0FB. H/' O'R BJ"rFB>rH#b. o'"?"SbJSFb>Nqy!Z{@Zk% !^##GC% !\Fjn"aF~BFo&!l s"#"o !?"hS @Sk%t !G^N#AG^CzG& O'#"_"pt o'N"Z?"!{@Zk% !"FBG%/ Hc#Y %K#YG%?yH&E/Ps""?"ZEK:GE? O'e o'Z!{@Zk%!5@."!F>BQFc"no&s""""?"!@Sk%4! UC9 LGFAGZGvG@GvG#GCF& O'#"M".N"pu o'"Z!?"{@Zk%!H#GC8GL&c#n#N O'pt_"N o'Z"?"{!@Zk%H!/#GC8GC#O&N O'm#n#pr o'"Z!?"{@Zk%!n"aF~BFo' O'" #?#p{. o'Z"!{?"@Zk%!#GCF o&s"-"_"N".!?"@Sk%@!n"aF~BF" o&s"#,"?".MNLb#n!@Sk%!@."!F>BQF)c"no&s"""#"?"!@Sk%! /0 C Oo0`C0B/N"AF^BrF""o&s"2c##"/?". O5@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1>0nN!@Sk%!"FB0F& O'O"N"ru o'"Z!?"{@Zk%!#GC8G&?C#N O'##m " -"O".N"qu o'"Z!?"{@Zk%$!#GC8GN'#N O'p|"n o'Z!?"{@Zk%!"FB0FE. H/'R EJ O'rFE>rH"e.# o'"SeJ?"SFe> qyZ!{@Zk%H!N#AG^CzGo&s"#_"N"?"!@Sk%!n"aF~BF/' O' "#(ry o'Z"!{?"@Zk%!N#AG^CzG& O' #"_"qtN o'Z"!{?"@Zk%`!"FBGE#N' O' /#.#q|n o'Z"!{?"@Zk%!"FB0F& O' O"N" ru o'Z"!{?"@Zk%!#GC8GM#O&N O' o#n#8rr o'"Z!?"{@Zk%\!n"aF~BF O'# o'&Zs""{!?"@Zk% ! ^#n#aG~C%!GҘ"FB0F!& O' \G"m"Nn"pu o'"ZvO!?"{hS !\/!@Zk%x! O' o'Z&{M"X]/"d"@Zk-@#zKm#Y Km#YG- "rK"-."xtJ#Q0J .QF->P J.UJG>d/D"D/[ dKDKzG p.d.T JrJUJFx@JGd/D/ .[ yKYKP JzG -.Qt@JmS`JFm"FBG-/& O'Y-K-?#l_""?"npt o'N!Z{@Zk%!"FBG?# &K.&YF/#X"-"Z FKM"zGYF?z&K"Xf/[fK[GXf? O'\ o'N".?"puZ!{@Zk% !#GC8GF/ H#-"Z FK "zGF?zH2_"f/ "[fK[Gf? O' o'N.?""ΰlnZ&s"{!@Zk%x!5@#GC8Go&s"zG#^g#N#"n?"!@Sk%$! 0 ?"B@ `^ #B M0@Cmp5C$- jN"AF^BrFo&."JJ0` (BQF' O'g"n""px o'Z"!{?"@Zk%!.#!G>CYG& O'g#n#pt_"N o'Z"D{!?"@Zk%|!"FBG0@'A O'9#.#tp|"n o'ZD!{?"@Zk% !"FB0F0`@&A O'R"Ntpu" o'Z"D{!?"@Zk%!@DJ.#!G>CYG& O'm##n_"pt o'N"Z!?"{@Zk%\!2 @0#GC8Go&s"G#Nm#n#_"N"?"!!@Sk%! DllB"FBGo&s"'#.M#Nm#n#"?"!!@Sk%! D ` /0 B Oo0`B O' o'ZB{J"?"_""@Zk.#!G>CYGlo&s"nM"" /"N.!?"@Sk%!"FBGM#N' O'-#.#p|n o'Z"!{?"@Zk%p! #N"AF^B%\!F඀<#GC8GO' o',q: O'{&Z H!M""@Zk O'o'Z0q; o'&"HM"{@Zk .#l-Hm"mPJ >_&MY Kn-"/.e#X KJGzJ"YGl-./oM.P JKR QJF qKrFoM>rqKnm.SqJr-"SFnm>/.p-X KJY KGzJYGp-sM../R QJP JKF qKrFsM>rqKrm.SqJSFrm>/."t-d#X KJY KGzJv-"YGt-.&/ O'wM."P JKR QJF qK"rFwM>rqK o'vm.SqJ?"SFvm> lnnpuZ!{@Zk%( !#GC8GF#NO& O'\m#n#pr o'"Z!?"{@Zk% !n"aF~BF O'#"Z o'&s""{!?"@Zk%| !?'9#@H@n#aG~CGo&Hs"n "_"N"?"!@Sk% !n"aF~BF O'#" o'Z&s"{"!?"@Zk% !?'9#@@n#aG~CG "m.-"M.""S qJQJnrFo&1&JHs"&J.?"!@Sk%T !G ^ ^#.#!G>C%< !yG#GCF,.A& O'._"ptN o'Z"{hSO !?"@Zk% !"FBG"/ HO&Y "K#YG"?yH"B/?"ZBK:GB? O'lbN o'LqrZ!{@Zk%P !^#"FB%D !GҘ.#!G>CYG!#no& OT's" $_""\@o ?"N$ U !@Sk%!n"aF~BFo&nPs"3"#"?"!@Sk%|!<.#!G>CYGo&:s"5c##n"?"!@Sk%4!"FB0F_"N"" ?" OS@sno&T's"!@Sk%!"FBG ?#.o& Oes"#"N?" on!@Sk%!"FB0F& O'0<0CYGo&bs""?"!@Sk%!n#aG~CGo&2s""#"_"N".!?"@Sk%!n"aF~BFo' O'"#?#p{ o'."Z!?"{@Zk%,!#GCFo& O'0#"O".N"pS o'"Z!b"{?"@Zk%!"FBGO#N O'#e##.n o'Zb""{!?"@Zk%|!#GCF O'O"N"#".Z o'b""!{?"@Zk%(!"FBGO#N O'###.n o'Zb""{!?"@Zk%!#GCFo&2s"/"_".N"?"!@Sk%!n"aF~BF o&hs"#"?"!@Sk%T!.#!G>CYGo&s"#n"?"!@Sk%!#""FB0Fo&s""?"!@Sk%!N"AF^BrFo&s""?"!@Sk%!"FBFo&s""?"!@Sk%d!#GC8Go&s""?"!@Sk%,!N#AG^CzGo&s""?"!@Sk%!#GCFo&ts""?"!@Sk%!."!F>BQFo&s""?"!@Sk%!n"aF~BFo&s""?"!@Sk%L!"FBGo&,s"#n".?"!@Sk%!#GCFo&Ps""#".C"N""!?"@Sk%!"FBGo&s"?#_#.#n"N!?"@Sk%l!z#GCFo&s"?"_".N"?"!@Sk%$!hn"aF~BFo'p O'$" #?#p{ o'."Z?"D{!@Zk%!#GCF?".o&L0s"""N!?"@Sk%t!<"FBG'pM#N O':##.#p|"n o'Z?"D{!@Zk%!"FB0F_"N"l"?"no&0s"!@Sk%!"FBG'pM#N O'\##.#p|"n o'Z?"D{!@Zk%`!"FB0F_"N"l"?"no&0s"!@Sk%!"FBGo&2s"?#/yC#N#n"!?"@Sk%!#GCF /_" ?#"Q @?".`" SJT JF>tSJ.UJo&F> /Hs" X @.!@Sk%CYG#n /o& s"_"?"\ @Nc""!@Sk%!7o`"FBF{#' /# "?"Y @@#N O'p|nZ o'!{@Zk%rH o'd."?"SdJSFd>&Ps"!Z{@Zk%!5@.#!G>CYGo&s"c##n_"N"?"!@Sk%!n"aF~BFo'p O'" #?#p{ o'."Z?"D{!@Zk%`!#GCF?".o&L0s"""N!?"@Sk%!"FBG'pM#N O'"##.#p|"n o'Z?"D{!@Zk%!"FB0F_"N"l"?"no&0s"!@Sk%d!x"FBG'pM#N O'?##.#p|"n o'Z?"D{!@Zk%!"FB0F_"N"l"?"no&0s"!@Sk%!L"FBGo&Ps"##.ZC#N#n"!?"@Sk%h!9#GCF?".o&0s"L""?"N!@Sk%!%"FBG?#.o&0s"L#n"?"N!@Sk%!#GCF /o&hs"_"."N?"!@Sk%!u@`y@GGu@u@FF"ՔGF}@Fs@4FFD".#!G>CYG& O'#"m#npt_"N o'Z"?"{!@Zk%!"FBGo&2s"/#.#n"?"!@Sk%!#GCF /o& l s"_""Q @?"N!@Sk%@!n"aF~BF /o& CYGo&s"#n"?"!@Sk%!D#GCF0`.; ";@.""S qJQJ#rF.py o'"Z!?"{@Zk%CYG l'"o&n0s""*@.' .R PJ0JQF"!?"@Sk%! C N#AG^CzGo&bs""?"!@Sk%x!^#N"AF^B%l!Fz#GC8G ,7E(7.A7G 7ﳛEGFvGEN".K";b"vGQ 0JN">NG@GKB.C#|GGRPJKB>XG B.vG@CO"TJB>vGOb#;.$&"J"/"UJ;>Y8KJ"?&CB/R/ZXK\ KCB?R? O'O.PJO>".?"NNpu!Z o'{@Zk%,!#GC8Go&2s"O##Nn"?"!@Sk%!#GCFo&`@s"N?"._"N"?"!@Sk%!7o`(7>/;.;"X KJGB9BK g"_"?";c/;C#>/"zK\ KG@CDK@C O' o'Z{@ZkGDF6FDD6F0N"AF^BrF7;"O&1F#>#/o#;/#N O'Y 5KnKn o'8G"pr?"!Z{@Zk%|!n"aF~BFo&2s""#"?"!@Sk%CYG.##P J |Ko&0F>p|KSs"_"%.QN"?"!@Sk%!>/;d";.?D"#T KJX KF0B SKUJxG?{SKuG>e#?.%..B.Q z2KTG>./P JKF`C`GN.Kb.K""R JqJT JUF0@B KSqJ4GyK>3Gq>CD.C"/E#Fd.%#e/PJ\ KQ pJzK4FG:BS pJ JRPJGxJp>G#GP>e/E/G.J$.[ yKYKJQ 3Gq>N#AG^CzG(7o&s"_"N"?"!@Sk%d!L" V.S" tJU JGV>utJS/XKFS?^#n#aG~C% !Gѫ"FB0FL.A UO @|ⳄⳈⳀtx,tx?.?a"B.CA#;A"JU JFCt"F/K!#Ca/\ KzKG|Bx">.O!";a.T JrJFBNa/G#KA/[ yKYKzGbC|Ra.OA.S qJQJrFBG!/JA/8KZ XKYGC CJA.G!.G"R PJ0JQF&.#a"#.U JJF`B`#GC8GL##o&s"0@Cn&!._"#.NQ CYGl'#o&ns"* ._"'.NQ O o'Zd""{!?"@Zk%!.#!G>CYGxb O'"n/"t_" o'.c""N!Z?"{@Zk%x!n"aF~BF O'A"#Z o'd""!{?"@Zk%(!.#!G>CYGݰG O'F݀"o"E"W}}n o' ݜ nc"FNZ6FF{"6F!?"@Zk%!"FBG O'A9##.n o'Zd""{!?"@Zk%D!#GCFo&2s"?"/E"""N!?"@Sk%!"FBGo&2s"/##.n"?"!@Sk%!#GCFo&s"_"N"?"!@Sk%|!"oS^#"FB%h!G#H.#!G>CYGlX!& O'o n"#_"ptN o'Z"{?"!V v @Zk%!"FBGo&Ps"##.O#N#n"!?"@Sk%!G^7/.7"0J0JN"AF^BrF/' O'7"g"#py o'"Z!?"{@Zk%!N#AG^CzG& O'g#_"pt o'N"Z!G{?"@Zk%! @@7#GC8GAhz#gZ#&/_""?"ZK o'GKN O'qtN!Z{@Zk%\!"FBGAg9#{HY/&g#_"ZYK"zGY? O'pt o'N?"Z!{0@@@Zk%! @@#GC8GM#O&N O' o#n#qr o'"Z!?"{@Zk%!n"aF~BF' O'#g-#".#p|"n o'Z?"!{@Zk%,!"FB0FgM"Nl""?"no&6s"!@Sk%!S"FBGO&C#N O'gm#?#.n#pr o'"Z?"!{@Zk%|!n"aF~BFg" o&CYGO& O' o#n#qr o'Z"!{?"@Zk%!n"aF~BF"\\ #?#X-XM#NO& O' o#n#qr o'Z"{?"!@Zk%p!GSF@s`&p"FBGYF@ O'9#n o'e".Z"!{?"@Zk%!#GCFQF@ C"1N(#G.mF"#5C`BuF_"7`J"5CF&D CDGptVGND?"VGGGX`G o'VGC{!VG O'Z@Zk%0!"FBG?#\-\M#N O'o#n#Z o'e""!{?"@Zk%!"FB0FD. H/' O'R DJ"rFD>rH "d.# o'"SdJ?"SFd>qy!Z{@Zk%L!0@@ZF@Zy_n#aG~CG/' O'"\ \-"_".XM " "Xm"n#ry o'"Z!?"{@Zk%!N#AG^CzGo&s"#"?"!@Sk%!0@B9 0J0WJA&-A&-"k88888888l8888 888888888888888888888888l8888  O' o'@Zo&H{)s"@ZkN"AF^BrF/' O'" "#qy o'Z"!{?"@Zk% !N#AG^CzGo&s"#_"N"?"!@Sk%!n"aF~BFo' O'" #?#r{. o'Z"!{?"@Zk%!p#GCF& O' /"._"qt o'N"Z!?"{@Zk%4!"FBG O#'N O'-#.#q|"n o'Z!?"{@Zk%!"FB0FC"N"l"?"no&6s"!@Sk%!"FBG O#'N O'-#.#r|"n o'Z!?"{@Zk%qJ"XD.RDJ2FXD>?"\dqy!Z{@Zk%!M@5/m#K;gK`/"FB0F /' O' "AR"#r. o'"SrJr>?"qyZ!{@Zk%!N#AG^CzG& O'# "_"qtN o'Z"!{?"@Zk%!"FBG-#.Lo&=s"#n"N!?"@Sk%x!#GCF& O'-". O"N"ru o'Z"!{?"@Zk% !#GC8G O#NO& O' o#n#qr o'Z"!{?"@Zk%!^#"FB%!GZ.#!G>CYGl.A&n O'_" o'"?"hqtNZ!{@Zk%H!  S^##GC%8!8GN#AG^CzG.A& O''н#pt_"N o'Z"{ !?"Vo @Zk%!"FBG/'L O'#"N?"pnZ o'e"!{@Zk%h!@n"FB0F& O'B"N"pu o'"Z!?"{@Zk% !X#GC8GM#N O'#b#nZ o'e""?"{!@Zk%!"FB0F C. H""R CJ O'rF C>rH?#c. o'"?"ScJSFc>e"  .Z!{@Zk%(!N#AG^CzG/ H& O'\ K_"F?|H o'.PJG>,"#?"nqtN!Z{@Zk%!r^#GC8GD#N' O'#p|"n o'Z!?"{@Zk%T!Z"FB0F& O'M"d"Nn"pu o'"Z!?"{@Zk%!#GC8G C/ H#Z CK"zG C?zH&c/_"[cK[Gc? O' o'",.?"ptNZ!{@Zk%h!"FBG#/ HO&#Y #K"YG#?yH?"C/ZCK:GC?l O'c o'nqr!Z{@Zk%!^"FBG-#.'#"L?"N O'p|nZ o'!{@Zk%!"FB0FC. H'R CJ O'rFC>rH"c. o'"?"ScJSFc>nqxZ!{@Zk%!ɺ^#n#aG~C%!G "FB0FE.AGEFvFENFvF@FtFGXF/'vF@B O'&н"vF#py o'Z"{VO !?"o @Zk%H!N#AG^CzG& O'#"O" ". o'N?""puZ!{@Zk%!#GC8G'O#N O'#p|n o'Z"!{?"@Zk%!"FB0FB. H' O'R BJ"rFB>rH"b. o'"?"SbJSFb>NTrx!Z{@Zk%!l^#n#aG~C%!G}"FB0FE.AGEFvFENFvF@FtFGXF/'vF@B O'&н"vFpy#Z o'"{O !?"@Zk%X!N#AG^CzG& O' ""O" ". o'N?""puZ!{@Zk%!#GC8Go&s"O##Nn"?"!@Sk%!^#N"AF^B%!FH#GC8G.AM#No&ljs"#"n!?"@Sk%tSH.UJF>"N/./Z XK8KYG8KK  ndK`C0$HH0F4CFFB7@J0@F4CtF9C$HyFG0CGFF @!"H NN.."FH "@@"Z@0CBDPD@@w`KR QJ0CG8C QHBrFN>FrQH7Jn.8CFSqJ@@SFn>@ "H ."FH.. n"@@"Y@<CBD\D@@w@KQ 0J<C|G5C PH`BQF.>uFqPH7`JN.5CFRPJp@@2FN>@N/./#GZ XK8KYG8KKn @+17H."@U Jp.P.0@:7HS pJPJ@rF JP@G>uJ "/XK47HF?/@y/p@-.\ KyKQ 0JG 0K<7HQF->q0K@M.RPJ2FM>M"/.-X KJY KGz`JYG-;..m.Q ;JJS rJ0F rKFm>.srK"_#TJtF> /-/KY 5K8GD@L# /""".!#!.v@HX KQ FFFc.JFFTFM#ScJrHGFAGFSFc> # vG@GNZG$n O'###.vGZ o'"?"!{@Zk%!"FB0FC. H5HR CJGrFC>FFFc.FJFFTFrHScJ O'GFaDSF #c>#Fnn6GZ`Dn o'"?"cD{6G!@Zk%Ķ! Dy AG!Fu Au AFF"Д FG} AFs A4GFK5@B^`%&"TALGFB/#"/"Z XK8KYG8KK9C5CF5CGܔF`G=CG3C4`GG%?&1"QA=@LGF".b".U JJF3fJfJY`BU`BAGU`B6Gٔ@GG]`B6GS`B4G6G$n#aG~CG-" O'.G(n!F ""FZVF F o'1F"{!VF?"@Zk%!GDFFDDF7 GFYCUCaGUCVGڔ`G" G]CVGSC4 GVG#GCFM"GNAFFvF O'@F-"".vFZ o'(n"RF{?"!@Zk%D!GDFFDDF#GC8GM#NGnAGFvGZG@G O'#ZvG o'"{?"!@Zk%!,7m" ."Q 0J >@.RPJ@>M",7O..u"/U JJt#FY 8K xJYGu"?yxJtB/ZXK:GtB?,7Omw.v# |KP J0Fw>p|Kv".Q,7O.m.y.T JrJU JF BJGy>uBJx/XKFx? ,7O`/ #@/[ yKYKzGo.n# p .`.,7OT JrJq.F BJU J"Gq>uBJp/XKFp?"`/!@/,7O[ yKYKs.zGr# p&7O?"Z:"{DJ@B_"@ZkGDFFDDF"FBG7/GnF;$K#aG."VG`G o'VG O'{?"Z! C@Zk%@!0@ @ mN0@B"AH_@ @`0B- C@n#aG~CG&ΰ O'_"pt o'N"Z!{?"@Zk%!7B.#!G>CYG7oo&ȿs"#n"?"!@Sk%X!r^."!F>BQF^&”" o&/'. O'ؤ X KJ '#GB#.p|"n o'Z!V {c!?"@Zk%̯!"FB0F F. H4HR FJ"rF F>rHM#f.-#J#SfJBSFf> O&N O'.# Fl4J" Bn o'pr?"!Z{@Zk%!n"aF~BF. H9HU J&KG>uH'/ C# ?GXK9'KF?L"?" 9CF O'ΰlq|n o'Z!{@Zk%!5@."!F>BQF O' o'Z&{"H"X]/"@Zk@" u`JTJ#F-#{K "M/#rK#ZYKzGM?-.Q0JQF->("(/.d#.Y 8KJU JF xJ"YG(?yxJH/ZXK:GH?/.H.KP JR QJF qKrFH>rqKh.SqJSFh>./ (/JX KY (KG JYG (?yJ2?" "H/]o##&ZHK ":GH?. O'?""n o'0rHzJf.##q|KSfJ"SFf>@_"t@Jm#&/Y8K #YG&?zJ.PJ0F>mt$"-S`JFm"-/Y8KYG-?v$#/\K?ud.tD..S qJQJU JrF 4JG>u4J /XKF ?wd/vD/[ yK .YK#zG py.xd. .T JdJU JF IJG >uIJ /X KF ? "nD/od/ .YK[ yKP JzG pq.pd. /T JdJX KF UJ8G ?xUJ )/Y5KG )?s/rd/\ K). "pf"zKQ 0JG PK2?#QF)>qPK #I."" #RPJ"2FI>.?"n&0qHGD.RPJ2FD>^5BL-Gb/B# :K[ zKGb?{:K/\K|G?m^?"h#"d.D" 2J_'S rJFd>s2J?&1".TJD"tF>/./K(/P J.KF"BHY 5K_@8GzDQDb@T J rJ#F>trJ.UJF>(/B8KGH@H5@ H. H#(.& /s"R HJ h/(J/\ KQFzK"BHG_@&pDSD"b@X K J H#8G?xJ$/Y4KG$? / h/\ KzKG!@d.D."Q pJPJS pJ4F51 B JRPJGxJp>GP>Ýd/D/$#.#[ yKYKP JzG pN"AF^BrF o&P]s"""?"!@Sk%!}$/|#~#.JY 8K XHd"YG}$?yXHT J|D/GZXK:G|D?k. |KP J0F>p|K~$.QK SJF>tSJ.UJF> gaC $/0@B/@$KZBK{K0@zGB?0@@h"l$. Jj/j"/Q $JXKQF$>qJd#D.\ KRDJ2FD>(".BJ"GH@HyUH.8Gj?(#vOU J [KF?|[K.PJG>h.#H.S qJQJrF 4JG>u4J/XKF?h/H/.[ yKYKP JzG $.p(#h.#.rJxTJP JGl>H/,I"h/YK[ yKzG p,i.-..rJT Jm$.U JF DJQuDJh"/XKF?h/#hKYGrJQFm$>..U JJF$/ xJ$""Y 8KYG$?yxJD/ZXKk#:GD?./D.P Jk$/KR QJF qKY8KrFD>rqKd.SqJSFd>.JzJYGk$? ^##GC%!\Fmn"aF~BFlm".Ac/!{c/zC#/"t"[ zK{c?XK?v# l z/#/\o!\Kz?Y5K#?.t#.uC.T J0JR PJQF JF>tJ.UJm"F>wC/v#/mZ XK8K[`KYG|KGmyC.x#..R CJ#JT JQF JF>tJ.UJF>'/#8K8Kg/G#zK:GK@#GCF O' o'Z&{q"I"X]/"@ZkM@?"s J-"R@J"rFMyJm#_# /p[K-""XKI#8G ?/\KF?. "M.m.U JQJS qJrF 4JG>u4J /XKF ?-i/ :K[ zKGi?{:K/\K|G?M.-. i.R PJ0JS iJQF JF i>s J.TJtF>r?# #"7@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1>n #&s""?".0t{JF>/:G/KB@YK!DB@@ d@j`@vI./P JKFAH1v@H(F vI2@w@B `2AJ2W@JAR&hbRAR&hbR"k0hK O' o'@Zo&H{Is"@ZkFP`@{.z" IU JG{>uIz/XKFz?7F`@/"#b/Z KyK\ KPG0@C 9J[yK\F?r9J[Fy?%F`@/b".T KJX KF0B SKUJxG?{SKuG>Fa@B.#".P \JuJF<>e@ d@g/G/'#"[ yKYK\KzGp K'#Fg.G..S gJGJU JrF 4JG>u4J /XKF ?g/G/[ yK-YK\KzGp K1&JF N"AF^BrF@"-xJUJ?#GM#|:K"m/-"sJ&[zK O'Gm? o'"M.RQJX]/"rFM>I"Z{@Zk /"M#X K J "8G ?xJ)/Y5KG)?-#/ #m/).\ KzKQ 0JG PK #QF)>qPK2_#I.RPJ"2FI>?"m . iJT JF >tiJ&.s"UJF>N. O'n0BQFo& /-"m..X KrJT JF UJ8G ?xUJ)/Y5KG)?M/ [K\ KF?|[K .PJG >m.M. .S qJQJT JrF )JF >t)J.UJF>4_#-# # #&s"".?"N0BQFo&C%!yG'#GCF,!& O'M".N"pu o'"Zc {!?"V!pc @Zk%!#GC8GM#N' O'#p|n o'Z"!{G?"@Zk%,! `@#A:"Q.QJ3B0`@A/XK?N#AG^CzG& O'#_"pt o'N"Z!0`@{?"@Zk%! `@#GC8GM#O&N O'm#n#pr o'"Z G{!?" G@Zk%,!n"aF~BF. H O'U J-#G>uH#/&Ps""XK?"F?(n o'Z!{@Zk%!5@ "FB0Fo&CYG O' o'Z&{]"F"X]/"@Zk@#Ͱp`K\KM"F?"t2J"m. #zJ&"SrJFm>-/Y8KYG-?&#lF./c#.R QJ"KP JF qK!#rFF>rqKf.SqJSFf> /.F/X KJZ YKG JzGF?zJf/[yK[Gf?"#.!. F.Q rK #p"f." #"SfJ?"SFf>.&s"Mn o'N O'!{Z@Zk%X!5@"FB0Fo&CYGo&BQFo&CYGo&ps"#n"?"!@Sk%!"M"v@H5@@"FB0Fo&N"{M"@Zk O'/'Z o'M"q9{"@ZkO' o'q: O'{tM"Z"@Zk O'o'Z&q; o'^"{M"@Zk O''Z o'&quHF#/_"d""XK?"F? &n o'N O'lNn!Z{@Zk%ć!n"aF~BF. Ho'U J O'G>uH?#/"?"XKF?fΰlq{ o'.!Z{@Zk%L!5@?!"FB0F O'"G"N o'Zd""{!?"@Zk%!"FBG &/ H g#Y &K#YG &?yH "F/_"-"d"ZFK:GF? O' f o'N".?"!Z{@Zk%d!n"aF~BF. Ho'U J O'G>uH?#/"?"XKF?ΰlq{ o'.!Z{@Zk%!5@ &l|"?!0.Q0J0>n"aF~BF&l|" o&0s"#",?"n.!@Sk%x!#GCFm.M""?"mt2JSrJ O'Fm>" o'nd"Z"{?"!@Zk%! /y H0 q I'HX KPJ8G ?m#LmM"Ml}#4M#M0F0 l`""FBGo&t s"?#G#.#n"N?"!@Sk%d!#GCF O'_"N-".Z o'&s""{!?"@Zk%!&s"@^#GC8GM#N O'#n o'Z&s"{"!?"@Zk%!'D#\@."!F>BQF O'"m"nZ o'&s""{!?"@Zk%L!BD͗^#GC8G &O&TM#N-& O'm#nP#h|h|1"."HqR o'"Z!b"{?"@Zk%Ђ!"FBGM#N' O' &t-#.,#_"h||h|"N o'Zb""{?"!@Zk%d!n"aF~BFM'" #X?#h|: O'm'h|{#n#Z o'b""{?"!@Zk%!"FB0FWm.VM"j-/j #!"S rJWm>Y8KzJ"V.YGj-? O'?"TJV>&l_"m o'ptNZ!{@Zk%h!.x HXMM"m.?#UJYG-G S rJm>9$K>KXm.-&8G KMt#xl"xT " l}1"-TJ>l `#p -FQ Jr@HQF-n"aF~BFo' O'T #?#{. o'Z*7J"{!?" _A@Zk%X!'D#\@."!F>BQF O'"m"nZ o'&s""{!?"@Zk%!BD^#GC8GM#N O'#nZ o'&s""{!?"@Zk%!'D#|@-."!F>BQF O'"m"n o'Z&s"{"!?"@Zk%8!"FBG?'9#X-TM#N O'#nZ o'&s""{!?"@Zk%~!cD^ B LLB`"FBFo&t s"#'#.#n"?"!@Sk%p~!#GCF O'_"-".N o'Z&s"{"!?"@Zk% ~!&Dzs"s@"FBGo&t s"_#.g#N#n?#."?"!@Sk%}!&"p@- N"AF^BrF O'"" o'Z&s"{"!?"@Zk%X}!#GC8G_'Z#XM O'Tm#n#Z o'&s""{?"!@Zk%|!cD9^."!F>BQF3.2.2m"-/ #U JJY 8KF xJ#YG-?yxJm#M/&s""ZXK?":GM? O'n o'Z!{@Zk%`|!&D"p@- N"AF^BrF O'""Z o'&s""{!?"@Zk%{!#GC8G_'Z#XM O'Tm##n o'Z&s"{"?"!@Zk%{!cD^3m.2-"2M.S qJQJBrFA C CYGo&s"m'l|{##n"?"!@Sk%z!"FB0F"no&t s"X""_"N"?"!@Sk%8GS ?s-JM.T/Tm#P_#RMJ\KrFM>p[K{ #"~-/FT? JWM"Y 8KZm.?&YG~-? 2JS rJ{M/yJFZm>s2JZXKW.#:G{M?m#TJ .tFW>P J |K&0F >p|K O'-.M"" o'Q"N?"puZ!{@Zk%v!#GC8GM."-"m/sJRQJ"rFM>"yJM# /|H[zK`_#XKG8G ?m?m#p[K/-""\K-#F?M# :KM."R QJM>2Cm.SqJm>-".U J>S" /XK ?tQJ#m/[ zKGm?{:K/\K|G?m.SqJFm> O' o'Z&{0s""?"!@Zk%u!?'9# @GG@@FvG۔G"@G @vG@4@GvG8"FB0Fo&Ps"_"N"?"!@Sk%0u!n"aF~BFo' O'"#?#p{ o'."Z!?"{@Zk%t!#GCFo&ps"/"_".N"?"!@Sk%t!G^"FBGBm/?M/?-#/-"[ yKYK.#zG./M.G. .F0m.pF#QJNJ'b@mJ O'b@FtDFF=,#F. bDp|FGXG#nFZB o'"{?"!F@Zk%s!"FB0F' O'Bl""npF"N"px o'"Z?"!{@Zk%Ts!.#!G>CYGo&Ps"Tl##n_"N"!?"@Sk% s!GDFvFDDvFG0^"FBGO&VL#N O'o#p&#.n#pr o'"Z?"!{@Zk%r!n"aF~BFo&2s""#"?"!@Sk%Dr!.#!G>CYG o& o's"#"n?"!@Sk%r!#GCFQ`@_"Q"N" o?"no& es"!@Sk%q!#GC8G o&s"Npf#n#M#N"?"!@Sk%Xq!Du@@Z."!F>BQF o"" o?"no&'s"!@Sk%q!"FBGo&,s" ?#."?"!@Sk%p!9@@GG5@@5@@FvG"۔G@G=@@vG3@@4@GvG("FB0F' O'fl""npF"N"px o'"Z?"!{@Zk%$p!.#!G>CYGo&ps"o##n"?"!@Sk%o!"FB0F _"N" o"?"n o&es"!@Sk%o!#GC8Go&2s"~L##Nn"?"!@Sk%To!K^#N"AF^B%Ho!F#GC8Gl.A"6/3c/3C#7"\ KzKG O:C.7#. oR PJ0JQF no&'s""!?"@Sk%n!"FBGo& ,s"?#."?"!@Sk%pn!N#AG^CzG #:C.7"7#.3c"$R PJ0J#QF6."3.?"x U JJFno&es"!@Sk%m!.#!G>CYGo&nl s"#n"?"!@Sk%m!t#GCF,"".L?"nN ,`"n o&Ls"!@Sk%Tm!"FBG?#.7C#:/3"7c/o&es"\ KzK"GN6C.D3#.R PJ0JQF"?"!@Sk%l!5@@BDr^ &`/#@/# #[ yKYKzG C * .'.'#Q # o'"?"pyZ!{@Zk%hi!N#AG^CzG/ H O'_"\ K o'F?|H&.Ps"PJG>",'N?"!Z{@Zk%h!5@`"FBFo&s"#&#.#n"?"!@Sk%h! O' o'Z&"{M"X]/"@Zk3-.2 "@#Q 0J Km"QF3->qK6" tJ2M.?#5M#|:KRPJ-"2F2M>4-"Y K9.U JG9>utJsJ6 /XKF6 ?5m/[zKG5m?4M.RQJ-"rF4M>l./"c#JX KGzJYG- ./M.P JKR QJF qKrFM>m.SqJrqK!"SFm>#"/#!. |K-X KJY KGzJYG- .P J0F >p|K-.QN"AF^BrF."?#UJ> 'K#YG/-"X"&Z GK"zGYG?z'KXg/[gK[GXg? O'\ o'".?" LNpuZ!{@Zk%Xf!#GC8GG/ H-"2 "Z GK2_"zGG?zH "g/[gK[Gg? O' o'N.?""mnZ&s"{!@Zk%e!5@#GC8Go&s"F#f#N#"n?"!@Sk%\e! 0 ?"B@n"aF~BF O'# o'&Zs""{!?"@Zk%d! \^M #[Cm.M. "Q pJPJS pJ4F0 B JRPJGxJp>GP>f-GF9 C5 CG5 CvG۔G"@G= CvG3 C4@GvG>M. "-.R PJ0JQFBLn"aF~BFo&CYGo&2s"#n"?"!@Sk%c!#GCF-& O'_". o't"N!Z?"{@Zk%pc! ^#GC8Go&2s"F#N#n"?"!@Sk%(c!MA#.PJ>N"AF^BrFo' O'"#"p{?#. o'Z"?"{!@Zk%b!#GCFo&2s"/"._"N"?"!@Sk%pb!n"aF~BFo&s"""?"!@Sk%4b!DI@GAGI@I@F6Gٔ@G"G8@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1,>I@6GI@4G6GBD; @`CG!F`CFFД F`CFGF;aK;W`KA {'x{A {'x{#kd``  O' o'@Zo&H{s"@Zk @GF @ @FvF"ӔF@F @vF @4@FvFy5 @BGAGBF6Gٔ@GB6GG6G5J5WJA &LA &L"k48\n#aG~CGL?#6B.3"3".7b"R PJ0JQF :."7.?" U JJ F oo&'s" o.!@Sk%`!N#AG^CzGo&l s" #N"?"!@Sk%_!"FB0F& O'B"m"Nn"pu o'"Z!?"{@Zk%_!#GC8G/b/B#vH\ KzK&GEG O': """._"pt o'N"Z!?"{@Zk% _!"FBGb/?#B#[ zK :Ko&Gb?{:Ks""/_"-"\K|G?"NN.?"!@Sk%^! oGF" cBcBGcBFՔGF cBFcB4FF /GF $C$CG$CvG۔G"@G $CvG$C4@GvG>"FB0Fo&'s"_"N"?"!@Sk%]!n"aF~BFDUb@ o&l s"?#"?" .!@Sk%x]!N#AG^CzGo&!s""?"!@Sk%D]!#GCFo&bs""?"!@Sk%]!."!F>BQFm"nL' O'""px o'"Z!?"{@Zk%\!B/"# HZ YKzGB?zHb/[yK[Gb?]#GCF- O'_". o'N&Zs""{!?"@Zk%4\! *^"FBG ,O&F#N O'o#.n#pr o'"Z?"!{@Zk%[!n"aF~BFo&2s""#"?"!@Sk%[!.#!G>CYGm O'#&nZ o's""!{?"@Zk%8[! ^."!F>BQF#f"no&ps"""?"!@Sk%Z!#"FB%Z!G퉀(.#!G>CYG 7(! Gn#aG~CG,7O& O'_""pt o'N"Z!?"{@Zk%LZ!GDFFDDFU#GC8G7Oo&\s"#Nn"?"!@Sk%Y!#GCF& O'D""._"ptN o'Z"!{?"@Zk%Y!"FBGo' O'0@?#pp{. o'Z"!{?"@Zk%HY!#GCFB"cDQm@SM@,&N O',s" o'"n0`@pu?"!Z{@Zk%X!#GC8G,7OO&o#n#B#N O'pr o'Z"?"{!@Zk%xX!n"aF~BFo&ps""#"?"!@Sk%8X!Gԟ^ü9@GG5@5@FvG"۔G@G=@vG3@4@GvG"FB0F& O'D"No"n"pu o'Z"!{?"@Zk%W!#GC8G=D#O&N O'o#n#pr o'Z"!{?"@Zk%8W!n"aF~BFo&Ps"i"#?#."!?"@Sk%V!GDFVGDDVGn#aG~CG& O'k"/"._"pt o'N"Z!?"{@Zk%tV!"FBGo&Ps"$#O#.#n"N!?"@Sk%,V!GP^"FB0F&,7O O'" o'B"Npu"!Z?"{@Zk%U!GDFGDDGU.#!G>CYG7oo&\s"#n"?"!@Sk%hU!"FB0F& O'DB"N"pu o'"Z!?"{@Zk%U!#GC8G' O'0@#pp|"n o'Z!?"{@Zk%T!"FB0Fb"cDRm@TM@,n', O'" o'"px0`@!Z?"{@Zk%XT!.#!G>CYG,7O& O'b#n#"pt_"N o'Z"?"{!@Zk%S!"FBGo&ps"/#.#n"?"!@Sk%S!G^(7O@B."".R PJ0JQFBn"aF~BF/' O'"#py o'"Z!?"{@Zk%,S!GDFVGDDVGDn#aG~CG& O'"_"pt o'N"Z!?"{@Zk%R!"FBGo' O'0@?#pp{ o'."Z!?"{@Zk%lR!#GCFQm@B",cDNS @&,s O'" o'n"pu0`@!Z?"{@Zk%R!(#GC8G&B#N O'd##n_"pt o'N"Z?"!{@Zk%Q!"FBGo&ps"/##.n"?"!@Sk%\Q!Bm_`G^"FB0F& O'(M"N o"n"qu o'Z"!{?"@Zk%P!#GC8Go&\s""?"!@Sk%P!N#AG^CzG o&s"n,#_"N"?"!@Sk%xP!n"aF~BFo&,s""?"!@Sk%DP!"FBG O#'N O'(-#.#r|"n o'Z!?"{@Zk%O! ^#N"AF^B%O!Fↀ#GC8GL.AO&N O'l#"?"n o'hqrZ!{@Zk%hO!  ۔^#"FB%XO!G.#!G>CYG.AO&o' O'{#n#pr o'Z"!{?"@Zk%N!n"aF~BF o&s"?#" ?".!@Sk%N!^##GC%N!\Fn"aF~BF "yJXKm#8G _#p[K/M"?"#\Kt2JF?zK#-#m.q|K Y KSrJYGF-m>_"m"" .!uSJ #PJ'0F >M#$##."?"GTJGF> N O'.p|nZ o'!{@Zk%dM!"FB0F& O'M"N"xpu o'"Z!?"{@Zk%M!D#GC8G& &d#n#"D#Npt_"N o'O'"{?"!_Z#@k%L!DGDFFDDF|#GC8GD#O&N O'm#n#pr o'"Z!?"{@Zk%L!n"aF~BF/' O'"#xpy o'"Z!?"{@Zk%K!DN#AG^CzG&(" $".D"N.#"pu & o'O'"{!?"Z#@k%PK!DGDFGDDG*.#!G>CYG& O'4#"m#n_"pt o'N"Z?"!{@Zk%J!"FBGo&ps"/##.n"?"!@Sk%J! ^ 7r"FB0F,7O& O'"B"Npu o'"Z!?"{@Zk%$J!GDFGDDG).#!G>CYG7oo&\s"#n"?"!@Sk%I!"FB0F& O'ΰ@"NJd"n"pu o'Z"!{?"@Zk%hI!0`@#GC8G,7O&Nd#n#B#N O'pt_"NZ o'"?"!{@Zk%H!"FBGo&ps"/##.n"?"!@Sk%H!GL^ò9@GAF5@5@F6F"є@FF=@6F3@4F6Fn"aF~BFo' O'c"#?#p{ o'."Z!?"{@Zk%H!#GCF& O'$"O".N"pu o'"Z!?"{@Zk%G!#GC8Go&Ps"D#o#N#"n!?"@Sk%tG!GDFFDDF."!F>BQF' O'd"n""px o'Z"!{?"@Zk%F!.#!G>CYGo&Ps"d#n#_"N"!?"@Sk%F!Gț^"FBG,7O' O'#"#.p|"n o'Z!?"{@Zk%LF!GDFFDDF)."!F>BQF7o""no&\s"?"!@Sk%E!"FBGD#'N O'ΰ #.#p|n o'Z"!{?"@Zk%E!0`@"FB0F,7O' O'd"B"N"n"px o'"Z?"!{@Zk%$E!.#!G>CYGo&ps"o##n"?"!@Sk%D!GV^(7Oh@b.B.""S qJQJrF B^ "FBFo' O'#?#p{. o'Z"!{?"@Zk%`D!GDFGDDG"FB0F&ΰ O'B"d"Nn"pu o'"Z!?"{@Zk%C!0`@(#GC8G&B#N O'd##n_"pt o'N"Z?"!{@Zk%|C!"FBGo&ps"/##.n"?"!@Sk%BQFA'.M# #TJ>N O' $##."p|?"n o'Z!{@Zk%@!"FB0F& O'M"N"lpu o'Z"!{?"@Zk%x@!#GC8Go&s"#n"?"!@Sk%<@!#GCFo&,s""?"!@Sk%@!."!F>BQF' O'm"n ""rx o'Z"!{?"@Zk%?! ^#n#aG~C%?!G1"FB0FL_D/?#u 0@Bl.AG p .JF_DC@n#aG~CG0@ & O'luO","N o'".pu?"!Z{@Zk%>!+^9GH'K&CC@;GHgK=gC?0GHJB 2GHGJ=GB`cDA"xTH._D0`@UJG>,0 CLl/KbG0GHJB 2GHGJ=GB"FBFA#&8/ O' "#Y8K8? vo#_"n o'pt"N?"Z!{@Zk%=!^8GHK9C :GHGK]KC`<GHK9C1GH'J]/B@"D`FD4HL5GHJ9B9GH'K]+C@;GHgK9lC0GHJ]B _"D@FD3HO`_DD"B_Dd_#:C`# _DS?"B@_Ds"tB#,_D0 CLl/KbG0GHJ9B 2GHGJ]KB`4GHJ9B8GHK]C _#D@GD;H^"FB0FL& f"n'Ndr O'" o'"?"pxZ!{@Zk%;!f^Þn&Xs"%N'YZ#. .z//JU JQ.zK\ KF`BG@C3/QJ.N&1'J3KJ8K:GKCGKY3K|sKWR"G3?.&r.V" C%T J/rJ5/'Fe@BKY 5KWU#8G;BW<.U/UK4W5JW.Q qJ O'|. o'  S|JB 3F|>/.X KJGB4/Y4K4? }@ZH{$ ݠ@Zkl 0`C "@.8`C@QJH3Q@fB?3aJ3W`JA s&0sA s&0s"kllllll(l4llll@LlXdllllllllllllllll(l4llll@LlXd$ O' o'@Zo&H{5s"@Zk"#?#$_#E#f# "?")_"J"k.J4J O' o'@ZH{@Zk#GC8GE.A&;GCo O'$#_"ptN o'Z"?"{Pp !Y @Zk%6!D="FBGΰ o&,;s"#n".?"!@Sk%6!#GCF& O'ΰ.#"._"ptN o'Z"!{?"@Zk%86!"FBG'ΰ O'-#.#dp|"n o'Z!?"{@Zk%5! k"FB0F& O'_"ptN o'Z"!{?"@Zk%5!"FBGo' O'?#p{ o'."Z!G{?"@Zk%85! @@D"FB0F@r".' O'"RJ o'GJNqx"?"Z!{@Zk%4!.#!G>CYG@1H/pH'J&\K B O'BDF?8@B ?Fpu"Z1'J o' 1B"{!0@@?"@Zk%H4! @@ O' o'@ZH{@Zk$/Y$K$? O' o'@ZH{@Zk#n#aG~C%4!G€Ҩ"FB0F

CYG&o##n&dr O'_" o'?""ptNZ!{@Zk%)!}^ #.9 @@l'&/&no$phc pРppN."R@R.JuB.#!G>CYG O'p#_"NBo#nZ o'd""!{?"@Zk%(!pM b.SbJb>"FBG.D o&YY@s"9#n"0@.?"!@Sk%(!#GCF& O'p-"._"ptN o'Z"!{?"@Zk%8(!"FBG o&s"M#Npm#n#-#."?"!@Sk%'!X"FB0F O'M"H"N o'Zf""{!?"@Zk%'!"FBG O'?#.0@Z o'e""{!?"@Zk%H'!N#AG^CzG\O@ "c O'" o'("S@0 BH?"csnd"Z!{@Zk%&!"FBG o&s"M#Npm#n#-#."?"!@Sk%&! ."!F>BQF& O'm"n"qu o'"Z!?"{@Zk%,&! @ -H@n#aG~CGc& O'p-"_". o'pt"N!Z?"{@Zk%%!"FBGLo'DO#O&Y@#9"N O'?".dr{{n o'prZ!{@Zk%@%!uo`ppG_ `@#GC8G o&ls""?"!@Sk%$!N#AG^CzG'&dr O'i"_" o'"hpt?"N!Z{@Zk%|$!{|^#GC8G o&s""?"!@Sk%D$!N#AG^CzG'&dr O'"_" o'"9@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1(>?"hptNZ!{@Zk%#!T|^#GC8G vO o&s"pm#N#"n!?"@Sk%#!A|^."!F>BQFá.#Á.a"D/d/JU JY xKXKF`C". G;gK?"UJ {CG>,#-LN O'p|nZ o'!{@Zk%!"FB0FMsH4HR@JJrFM" #-/zJB#Y8K FYG-?4J# . B"q|KPJTJu`J0F >FL#-#{KM/# "MrKZYKo"zGM?o' #"-."?#Q0J"QF->?"m`q{.! O' o'Z{@Zk%! O' o'@ZH{@Zk##GC%l!\Fzn"aF~BF,E.A' O'.#p|"n o'Z?"O {!8B@Zk%!"FB0FMsH4HR@JJrFM" #-/zJB#Y8K FYG-?4J# . B"q|KPJTJu`J0F >FL#-#{KM/# "MrKZYK/'zGM? o' O'b"-.""#Q0J"QF->m?"@qy!Z{@Zk%! O' o'@ZH{@Zk#n#aG~C%!Gz"FB0FE.A'! O'"3ABpx"Z o'"?"!{@Zk%D!9.#!G>CYG& O'm##n_"pt o'N"Z!?"{@Zk%!"FBG' O'-#.#{K&M/!#.AZYK&zGM? O'`r%,"_" o'.?"hpt"N!Z{@Zk%\!"FBGO&M#N O'-#.vo# #"?"n o'dqr!Z{@Zk%!5@`"FBF o&fs"#\,##n".!?"@Sk%! O' o'@ZGH{@Zk#GCF o&fs"m,"._"N"?"!@Sk%0! O' o'@Z H{@Zk#"FB%!Gy.#!G>CYG E.A& O'lpt_"N<cCZ o'"{!?"[ q n nO !@Zk%!"FBG o&fs"?#oH#.#n"N!?"@Sk%<! O' o'@ZGH{@Zk"FB0FO&&`rR O'h""R o'n"?"NhpuZ!{@Zk%!/.#!G>CYG{?"##. " O' ""n o'?"ΰ.g.T JgJF2FJ&FJNZs"!{@Zk% !-/ #D8KGb/DG01CbK19CCGD@0 @@@A@.8/8 @!DJY8KzJ0 @YG8?8`C 0@?DDEFDDcFD "B_D _#:C[`/"FB0F{"_"m""' #"n?"NΰG/'/Z GK'KYG8K O'K|n o'Z!{@Zk%!-. "D0JFDb.G51BbJ89B$EF 0 @@@A@/8 @0.!D0 @KQ0JrpK8`BQF0> 5@DD#GDD@GD #|CD _"2B"FBF o&fs"#?#."?"!@Sk%! O' o'@Z H{@Zk#n#aG~C%|!G?x"FB0F._"m"T J SJ#F>tSJ-#.{K# "UJrKF>m""M/ tJ!'ZYKzGM? O'#-.Q0J"QF->?".U JG>utJ /XKF ?,.p|nZ o'!{@Zk%t!"FB0Fm.M" HS rJ #Fm>sH#.#q|Km#TJ_"tF>m" -/ JY 8KYG-?yJuSJM/O&ZXK #:GM?M# .PJ#0F >"?".TJF> ,N O'n. o'qrZ!{@Zk%h!&Ds"s@8-/ /" Y 5KKdD8GB/ _"U/\K_ UKFp{HD2BF?`d /."BDX KJ`@GBBz/?D4/[zK ?"4K0@@F|:H?DBGz?_l"1@@ b@.TJ>^,GY/ZYKY?^#N"AF^B%T!FxҴ#GC8G #p`KO'\Kdr?"FM"t2Jm." #zJSrJ!Fm>l#!-/qO!po!\u/!Y8Kp YG-?m@p!l"FB0F O'"M" o'N&NPs"Z"?"{!@Zk%H!5@#GC8GGO&l#n#N O'hpr o'Z"!{?"@Zk%!GUw^"FBG'# ?#M#nN O' _" o'ΰ&.s"*. .NQ *J J0F<K"K?"Z!{@Zk%@!5@`"FBF' O',##."hp|?"n o'Z!{@Zk%!Gw^."!F>BQF O'" o'FpZM"&"{"@Zk-##?" "8GM ##. O'n " o'"?".j.T JjJF2FJ&FJNZs"!{@Zk% !5@.#!G>CYGg& O'#n_"hpt o'N"Z!?"{@Zk% !Gv^#l.#!G>CYG #p`K?"\KM"Ft2J"m. #zJ#SrJqKFm>l#m"-/_" SJ#Y8K#YG-?mzK-# Tuo Y KPJYG0F - |K.T JF>tSJ.UJF>m .P J0F >p|K-.Q O'"M"m"" o'n&Ns""!Z?"{@Zk% !G_ @#GC8G o&fs"_#l#N#"n!?"@Sk% !GFv^h.H.("S qJQJrF"FHFHB*I81@@`u)*C@n#aG~CG o&s""?"!@Sk%, !" )0B@n"aF~BF o&s""?"!@Sk% !"#GC8Gh/H##"M"zKTuO ?" O'Tu ?# o'01CXu"N.?"n&.s" /J.X KG4JJ!Z{@Zk% !5@@n#aG~CG o&fs"">,"_"N".!?"@Sk% !Gu^"FBG/''`r9kL##9"N O'?".hp|nZ o'!{@Zk%\ ! u^#N"AF^B%L !Fu#GC8G'E`r.A&;ACO O'n"_"hpt o'N"Zpo {q !\u ?"p @Zk%![C#GC8G'" _#@po##& ""n o'N O'f.F.S fJFJrF1&J&J.?"tuZ!{@Zk%!5@.#!G>CYG o&fs"#nq#_"N"!?"@Sk%! O' o'@ZGH{@Zk.c".U JJ F,II C+ :1A`uO;9AC."!F>BQF o&s""?"!@Sk%$!"eB#GC8G o&s""?"!@Sk%!_#En#aG~CG#."#?# #0JTu ""TuO?"31@BXuo49@B _"&s"n.f//fK\ KNG:FK o'FKN O'!{Z@Zk%!5@8`["FBG/''dr9B##"9?"N O'.hp|n o'Z!{@Zk%! O' o'@ZGH{@Zk"FB0Fb"n o&fs""_"N"!?"@Sk%8! O' o'@ZGH{@Zk["#GC8Gl_"/&f/s"N"\ KfK?"G:FK o'FKN O'{!Z@Zk%! O' o'@ZGH{@Zk O' o'@Z H{@Zkn"aF~BFE.Am##_#[/#.{"N O' _"n o'&s""8Bq/N1&J&J.Z?"{!@Zk%!. O'm"@Z@J o'HH{@Zk#"FB%!Gs.#!G>CYGno .AcnO +`#GCFm"[/"{"_"" O'n ?# o'N&s"."q?".8KK!Z{@Zk%!m/M#@zKH{^C?D".G31@Bc"JF 0@L@@@/Y/0@KZYK{JzGY? @ 'HH}{^N"AF^BrFno E.A5BnO GA@0 @z/@@8 @.zK!Dq\KPJ0 @0F>8@B 4@,/ #B/8KZBK{KzGB? O' o'0C8C@ZH{@Zk#N"AF^B%!F`sҬ#GC8Gm _#|@K[`K"Gm-"#sJM.\Kp`K"FRQJ"rFm.M>?"M"yJ 2J /S rJO Fm>XKB#.8G-s2J ?#TJMzKY KtF>YG-## |K.A .P J0F >p|K-.QL O'"#m"M" o'"?"n&s"!Z{@Zk%!GQ^ O^##GC%!\Frn"aF~BF,E.A' O'.\p|#n o'Z"?"{!8B@Zk%l! O' o'@ZDH{0@8B@Zk ^L ED/ r.KrJCFDB :gH@%D. @D0.JD8`C0J0@FDSB8gHl/L#DzK:C O' o'@ZDH{@Zk O' o'@ZGH{@Zk#N"AF^B%x!F,s#GC8G.A[_#N_Dl[  N./ NJKbG_DB`4GHDn/`@_D/nK0@KF_D:C0GHn._DnJ2BDG@ S^/##_D .E/ JEK"G_D|C 2GH@cD./@_D.#8K0`@JbF_DB@;GH.."_D0JC@cDG@ '^:"_D /%/K%KG_D[C1GH cD@/_Dr.K0`@rJBF_DB :GH_._DJ|C cDGDG ?DG F@BBr.rJAFBD@0@@/y5H@XK?D8G?z/ F@zKAG"FB0F &Ǡ O'_"ΰ o'pt"NBDZ!?"{@Zk%!"1@@D//_#KFD:C`BD"1@@ '"@D./_"JGD2B`BD"1@@D/"B F]?#GBC|:Kz/[zKGz?!cD@cDQ.0`@["cDRQJsJ@rFQ>."/yJDDXK0`@8G?F0@ GBCz/zK7GKGGF!H'H%@!D0@7B 0J0WJA &A &"k8` O' o'@Zo&ys"H{@Zk @@m cD@.".xtJ0`@UJG>{&D?D C.#Y/0@YK!G?D|C  #1`@cD@-?"r.t2J0`@SrJFr>c?D/#B ^?D]#[C 1`@@._"0.!0JB`#1`@cD@]"/yJ0`@XK8G?GcD@._#/p[K0`@\KF?= cD@.?"r.t2J0`@SrJFr>2õ5@?! Q@:_#C8/8KC `cD@.#0.rK0`@Q0JQF0>#1`@ 1`@@.".!JuB#1`@cD@]?#z/|:K0`@[zKGz?cD@rH0.0`@Q0JQF0>D@@D.0@J7gJgFO ҕ^^O$B  D/8@C/0@KCKE@C@/0.K0JpC@`.`J ` O' o'@ZGH{@Zk..JJD@C@8/! z/8KzKC..a" O'J@Z o'C@JQ.! C@H{/QJK @9 @@Zk#n#aG~C%!Gp^ l1` O' o'@Zo&H{s"@ZkO$,B  . .J JE@D@r. .rJJTB/E@`#KY/ o'D@YKH{0. O'@Z0J @2 @@Zka.aJ! cD#1`@59B O' o'@ZGH{@Zk##GC%!8GPpN#AG^CzGE.A& O'pt_"N o'Z0C"{?"!@Zk%$!"FBG' O' -#.#`p|n o'Z"!{?"@Zk%!. O' o'PJ>@ZH{@Zk#N"AF^B%!Fp#GC8GL.A&&N O'l_"?"ndu o'`rpt"N!Z{@Zk%! ~^##GC%!8GoN#AG^CzG.AO&& O' " o']/".?"`rRRNpu!Z{@Zk%!}^.#!G>CYG&E`r.A& O' ?"._"<`CXpt o'N"Z!?"{@Zk%! O' o'@ZH{@Zk"FBGlE.A&n&]: C O'_" o'`r?"pt"N!Z{@Zk%! O' o'@ZH{@Zk"FBGlE.A&n&]: C O'_" o'`r?"pt"N!Z{@Zk%! O' o'@ZH{@Zk"FBGlE.A&n&]: C O'_" o'`r?"pt"N!Z{@Zk%|! O' o'@ZH{@Zk"FBGlE.A&n&]: C O'_" o'`r?"pt"N!Z{@Zk%! O' o'@ZH{@Zk"FBGo'E`r{.A&: C{ O'_""n o'8o?"hptN!Z{@Zk%t! O' o'@ZH{@Zk"FBGo'E`r{.A&: C{ O'_""n o'd_?"hptN!Z{@Zk%! O' o'@ZH{@Zk"FBGo'E`r{.A&: C{ O'_""n o'l^?"hptN!Z{@Zk%t! O' o'@ZH{@Zk#"FB%X!Gn.#!G>CYGt^o.A'&n O'`r_" o'"?"ptN!Z{@Zk%!|^##GC%!8GnN#AG^CzG.A"FB0FL&'N O'x^o" o'"n?"`rpx!Z{@Zk%4! O' o'@ZH{@Zk#.#!G>C%!yGqn#GCF/&.A`r1& O'"1 o'".]O?"Nhpu!Z{@Zk%!i|^#.#!G>C%!yG_n#GCF,.Ao&O zB".N&`rs O'" o's"?"npuZ!{@Zk%!|^#.#!G>C%!yG*n#GCF/&.A`r1& O'1" o'".?"]ONhpuZ!{@Zk%!"|^#.#!G>C%t!yG*n#GCFL /&.A`rQ31@BlLso "FBF' O'#"#?".hp|n o'Z!{@Zk%!  11B,29B O' o'@ZH{@Zk#"FB%!G0n.#!G>CYGllDL_D0`C#.] 0@B!#JllGF._DJFDC@;GH`_D 0@l0C @.0`B@J "F/_DKDFD:C`<GH0GH!u^N"AF^BrF' O'" o'px"!Z?"{@Zk%X!D.#!G>CYG&f O'_""n o' ?"ptN!Z{@Zk%! /"yUHXK_D8G ?L?   ,0@Cl.0 BJ LG._DJD`FDB! :GH@!DA{#p[H/_D0 @\KF?, 0 BL.0BJ  bF@/_D@KD GD|C1GH?!DAR"tRHr._D!D0 @SrJFr> l0B @/0`C@K "G ._D JDFDSB"5GH !DA#zXH8/_D0`@0 @Y8KYG8?l L0`C .0@B J lF._DJDFDC@;GHA# %@.PJ>8@n"aF~BFA"O&/m##"XK? L?"n o'N O'hprZ!{@Zk%x!3GH`Rt^`\"FBGn&'#".?" LN O'p|n o'Z!{@Zk%!D"FB0F L& O'm"Nn"hpu o'"Z!?"{@Zk%!8GH+t^#n#aG~C%!Gl"FB0F o&.Als"Tuo n\uO N_"N"!?"!@Sk%,!Gpt^P## :@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1_>_#CbpO<1`C`u11BXu/@#t^l#nol"]ot^,# #v/,"]/"h^L"]"PsL#$qOLs]O Ht^#"FB%x!GIl.#!G>CYGo'.A`r{& O'!{#_""nhpt o'N!Z?"{@Zk%!@z^##GC%!8G&lN#AG^CzG'.A`r& O'! "_"hpt o'N"Z!{?"@Zk%l!z^##GC%`!8GLl ^Lo [ JC#` O' o'@Zo&~s"H{@Zk#GCFO&P?",`rR& O'c"R"n o'"Nhpu?"!Z{@Zk%!#GC8Go'_#L&`r{ O'#_"{"?"n o'hptNZ!{@Zk%8!"FBGL ##'"91@@\uO`u/&:9@@ O' _""n o'q/1&J&J.t?"N!Z{@Zk%!"FBGD/$# YHZ YK<FHzGD?zYH "d/#_"-"K[yKC[Gd?N O'. " GBQF o&s""?"!@Sk%!n"aF~BF`^%GF U@0@G]D6GGa&6G9D]o:GGX@G O'6GC" o'6G qO" ]/N?" qonpuZ!{@Zk%(!#GC8GpM#N' O'#p|n o'Z"!{?"@Zk%!p-p/ N"AF^BrF' O' ""px o'Z"!{?"@Zk%p!.#!G>CYG& O'd#p#n_"pt o'N"Z!?"{@Zk%!"FBG o&fs"p-#.#n"?"!@Sk%!#GCF o&s""?"!@Sk%!."!F>BQF"n o&Hs"""?"!@Sk%\!#GC8G o&7s""?"!@Sk% !C_n#aG~CG& O'ΰ "_"ptN o'Z"!{?"@Zk%!"FBG' O'-#.#p|"n o'Z!?"{@Zk%l!Qq^#N"AF^B%`!Fj#GC8Gl.A T]/!c/]O!cK:GKF@pG,"FB0F&ΰ O'_"pt o'N"Z!{?"@Zk%!D@ F "FBGN'* O'#".?"p|nZ o'!{@Zk%\!^"FB0F/F"Nj& O'"n o'pu"!Z?"{@Zk%!G#GC8G'M#N O'n#dp|n o'Z"!{?"@Zk%!M. "-.R PJ0JQFH` \m^"FBGm/-#M/HF"]#N[ yKYK@f"nU"N&".'zG O'"Tpx o'"Z!@{?"B@Zk%!DE@ .#!G>CYG' O'J#pp|"n o'Z!?"{@Zk%|!"FB0F & O'G2@"N o'"?"PpuD!Z{@Zk% !D6@b@@.#!G>CYG@O&i O'#"n o'Hpr?"!Z{@Zk%! `@@n"aF~BF/' O'5@#Ppy o'"Z!?"{@Zk%4!D_N#AG^CzG & O'_" o'"?"LptN!Z{@Zk%! l^Gl^#.#!G>C%!yG i#GCF, o&.A5s"_"N".! ?"CYGv lvO E .A<`C ."!F>BQFn& O'" o',`"?"npuZ!{@Zk%!#GC8GB o&4s"#Nn"?"!@Sk%!? 0$B_°G n"aF~BF o&fs""#?#."!?"@Sk%4! O' o'@ZH{@ZkN#AG^CzGO&l O'# o'n"pr?"!Z{@Zk%!"`B"FBG o&fs"?#.E#N#n"!?"@Sk%x! O' o'@ZH{@Zk#GCF& O'n?"._"ptN o'Z"!{?"@Zk%!"B.#!G>CYG o&fs"##n_"N"!?"@Sk%! O' o'@ZH{@Zkn"aF~BF o&s""?"!@Sk%t!"FBG o&L)s"n?#."?"!@Sk%8!N#AG^CzG o&s""?"!@Sk%!#GCF?"_" "]O#"d^o?"` o&s"] ]!@Sk%!.#!G>CYG o&Hs"#n"?"!@Sk%X! O' o'@ZH{@Zk##GC% o'"px?"!Z{@Zk%!.#!G>CYG o&Xs""?"!@Sk%X!DDeGD"C N"AF^BrF o&Xs""?"!@Sk%!DO"BD[_#:C#GCF o&Xs""?"!@Sk%!DA_"2B`DB"BDB_#:C`D$1@09CjD0@8 B@G"FBGtm/Y@tM#&9[zKtm? O'"t-"._"pt o'N"Z?"{!@Zk%!"FBG' O'.t-#.#p|n o'Z"!{?"@Zk%!GAt"0.0J0J BD0@@At"8@B.J4J X@ BDAt" #0.rKBDQ0J0@@QF0>c8@C S@"FBGAt9# o&Y/ds"t "ZYKY?_""N?"!@Sk%!n"aF~BFo' O' #?#"Xp{ o'.!Z?"{@Zk%H!#GCF& O't-"._"pt o'N"Z!?"{@Zk%!"FBG'' O'.#q|"n o'Z!?"{@Zk%!"FB0F o&s"_"N""?"!@Sk%`!"FBG o&$is""?"!@Sk%,!(/DQ?"DBY(K(?0@8`C@Dq"tBD?#C @D#|C."!F>BQFg' O'"n"Xpx o'"Z!?"{@Zk%|! O' o'@Z 1CH{@Zk* @@ q qn#aG~CG o&.h-s"_"N"?"!@Sk% ! O' o'@ZGH{@Zk#"FB%!G6d.#!G>CYGL.AO&N O'l#"?"n o'prZ!{@Zk%x!n"aF~BF'N O'"px o'"Z!{?"@Zk%,!!1@ A@]#Y/YK;CA@:_"0.0JB`!1 @  ]#@.JB @:#z/zK\C 0 @@!DQ.RQJQ>;r^"FBGLE.A': CN O'p|#nZ o'"!?"{@Zk%CYG'N O'#p|"n o'Z!{?"@Zk%!c"FB0F o&Ns"_"N"?"!@Sk%!n"aF~BF' O'N"px o'Z"{!?"@Zk%h!.#!G>CYG& O'l#nt#_"ptN o'Z"!{?"@Zk%!"FBG'N O't-#.#p|"n o'Z!?"{@Zk%!"FB0F o&fs"tM"N""?"!@Sk%x! O' o'@ZH{@Zk"FBG' O'Nt-#.#p|n o'Z"!{?"@Zk%!"FB0F&N O'_"pt o'N"Z!{?"@Zk%Ľ!"FBG o&fs"?#L#.#n"N!?"@Sk%|! O' o'@ZH{@Zk##GC%`!\Fbn"aF~BFvO !p #',#n "N ?".N O'(q .p|v n o'Z!{@Zk%!"FB0FN& O'"N o'pu"!Z?"{@Zk%p!,1@89@ .]#,CY/YK;C:_" B0.0JB`E,1A59B]_# C8/8KC`:?"C.JC_E 0AB8`B/XK?pO@n#aG~CG& O']"p-"._"ptN o'Z"!{?"@Zk%`!"FBG o&Dqs"p-#.5D#N#n"!?"@Sk%!#@."!F>BQFAd"n o&fs"""?"!@Sk%Ⱥ! O' o'@ZH{@Zk"FBG o&s"M#pm#N#n-#."?"!@Sk%d!"FB0F o&h-s"M"N""?"!@Sk% !("FBGpM#'N O'[$#.#p|"n o'Z!?"{@Zk%Ĺ!"FB0Fpm"n o&fs""_"N"!?"@Sk%|!#GC8G'M#N O'q|#nZ o'"!?"{@Zk%$! " &b"N"AF^BrF/' O'# o'"?",pyZ!{@Zk%!N#AG^CzG o&4s"_"N"?"!@Sk%l! 0lbBbGK.#!G>CYGO& O'm#n#pr o'Z"!{?"@Zk%!n"aF~BFo' O'D0@?#pp{ o'."Z?"!{8B@Zk%!#GCFQAM"co'N! O'g?#"XA0`Bc8`B?"p{ o'.!Z{@Zk%! q O' o'@ZH{@Zk##GC%!\F~an"aF~BF \u/GF &+8CkE`r+1`AaEKGvG`E.AvGXG&vGKC O'pt_"NZvG o'"{o !?"@Zk%BQFe O'""n o'g"Z"!{?"@Zk%@!&1@%ú @GAG@@F6Gٔ@G"G @6G@4GG6Gun#aG~CG#" O'.G!F"FZVF F o'g"1F"{!VF?"@Zk%!"FBG I%GHF.@NAGDvG@GZGvGD|GGXG_"NvG@C O'vGZ o'i""?"{!@Zk%!n"aF~BF # O'GG#nFZ6GG o'g""G{!6G?"@Zk%x!,BD0@@GADDF @vF@D.RDvFXFqIPJvFR@0F>vF0@BD"FBG O' o'Zj""{?"!@Zk%ܰ!DE(G IH: @AC`:AK:W@KA Z'pOZA Z'pOZ#k8ñ @G!F@@FF"Д FG @F@4GF4N"AF^BrFDO"O#G,aGF_" @zJ8/G`G{GY8Ki"YG8? O'Nn o'Z"!{0@?"G@Zk%!BD0@@GADFF@DSDFXFBDFS@F#GC8G O' o'Zj"{"?"!@Zk%!DEHG!I'H)@`N!D< @׀Ci""Z?"!{0@FF@Zk%!BD0@@GADFVG@DYDVGX`GBDVGY@VG#GCF O' o'Zj"{"?"!@Zk%h!DE(F IH21@wBB`2AJ2W@JA R&URA R&UR"kpppp O' o'@Zo&Is"H{@ZkED"Bw&@1@GDF6GD6GN#AG^CzG" O'GFF_"N6FZF o'Fg"{"6F!?"@Zk%!BD"1@@GADFF@DbFFXFBDFbBFGDFGDDG.#!G>CYGe#G O'GFn_"NFZG o'g"F"{G!?"@Zk%H!&1@hn"aF~BF#:KGAGF6G@G;@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1> O'#n o'Zi""{C?"6G!@Zk%̧!JGADFG@DBD&@G+"FB0FE!c"n O'GaFN"FZF`F o'sFg"{"!F?"@Zk%4!BD"1@@GADF6G@DG6GX@GBD6GC6Gn#aG~CG?"3$J. O'GaF"FZVF`F o'i" B{"!VF?"@Zk%!ù @G!G@@FG"ؔ GF @G@4FG,N#AG^CzGD3I O'gJ," o'0@ @rI0.Q0JQF0>"ni"Z?"!{@Zk%ĥ!BD0@@GADFG@DUDGX GGU@GN#AG^CzG1IG O'!FFZF F7I o'ED{Fj""J!?"G@Zk% !DEHFE~"tB/&@@#GC8GE%c#n#N O' o'Zg"{"!?"@Zk%!"1@@_"FB0FE O'"n"N o'Zi""{!?"@Zk%L!jÀ"EGDo' G H\r{_#H`CD/KzG7JF FD1"SBD2#B ú @ @n#aG~CGD4I O',J" o' @sIQ."0@RQJrFQ>i"?"Z!{@Zk%P!0@@#GC8Go'j"{#sC"!?"` o&Xs"@Sk%! O' o'Z{@Zk%!DEGE~?"B@C&@@n"aF~BF O')#?# o'.g"Z"!{?"@Zk%h!"1@@_N#AG^CzG O'"_"N o'Zi""{!?"@Zk% !õ @GF@@FF"ԔF`F @F@4`FF#GC8GE#0dKnGN O'F_"NFZ`CGF o'i""!{?"G@Zk%L!n"aF~BF O' o'Zj"{"?"!@Zk%!LDDE@@F8/;IzIgKY8KdCYG8?0@E?"B}@3IGgJFoBoBGoBFՔG"FoBFoB4FF??#E(G IGHF@<HEGDvGGKvGGTGHGvG"FB0FE-c"n O'GaFN"FZF`F o'sFg"{"!F?"@Zk%!#GC8G;IEGgKnFN O'aG_"NZG{G`G o'i""{G!?"@Zk%8!n"aF~BF2# O'GG#nFZ6GG o'g""G{!6G?"@Zk%Ȟ! #GCF2I%GGJN O'AFF."vFZ@F o'vFi""{RF!?"@Zk%P!ù @G!G@@FG"ؔ GF @G@4FGN#AG^CzG"2J O'GAFF"Z6F@F o'Bi""{6F!?"@Zk%!5IJBE_#:C`E "C E "SB:ILDGKGOC@@FOCOC/FGܔF"`GOCyIXKGOC4`G8GG?0@??"E(F IGHF@4HEFDvFFJvFFTFHFvF"FBG6C#G%AGNFvG@G.ZG O'#ZvG o'g""{?"!@Zk%$!"FB0F3IE O'gJnGaF"FNZF`F o'sFi""{!F?"@Zk%!#GC8GE;c#GnaGN O'F_"NZG{G`G o'g""{G!?"@Zk%@!'E "tB#E ?#C@n#aG~CGD4I O'LJ" o'@@sIQ."0@RQJrFQ>i"?"Z!{@Zk%!#GC8GE'#"N O'q|?"n o'Z!{@Zk%P!E ?"B@3IGgJFaBaBGaBFՔG"FaBFaB4FF-.#!G>CYGlO& O'#n o'pr"!Z?"{@Zk%!n"aF~BFo' O'#?#Xp{ o'."Z!?"{@Zk%D! 1CY^LDF@0.Q0J0>Y^#"FB%!G1Y.#!G>CYGl.A& O'Xo#n_"pt o'N"Z!?"{@Zk%!"FBG,' O'.#p|"n o'Z!?"{@Zk%T!\u @ \uAXor.SrJXor>#P] g^P] g^##GC%!\FXn"aF~BFTo.Af^.#!G>CYGTu o&X s"#Too"_""N?"!@Sk%!n"aF~BF"Tu o& s"?#."!?"@Sk%@!N#AG^CzG'&`r O'_" o'"?"qtNZ!{@Zk%!f^##GC%ܖ!8GXN#AG^CzGTo.Af^."!F>BQFvTo"" l?"n o&X s"!@Sk%T!#GC8GO''`rZ#"Z?"N O'q|nZ o'!{@Zk%!f^/&O&hpXpҠlD.JdF5HJBD_#:C_`#GCFL O'?%"_"N. o'Ng"Z"!{?"@Zk%`!."JuB.#!G>CYGN/c# O'_"@K o'Hf"@!"N@Z?"{!@Zk%!n"aF~BF O'N?"#Z o'f""!{?"@Zk%!.#!G>CYGl O'D#_"Nn o'Zg""{!?"@Zk%CYGn O'n_"d".#N o'LJ"IA.Z!?"{@Zk%!n"aF~BF O'n?"#Z o'd""!{?"@Zk%8!.#!G>CYG O'nDe#n#Z o'f""!{?"@Zk%!"FB0F2GH O'nGJN"Z o'd""!{?"@Zk%!0B.Y/YK9'Ky?i(`#GCF o&vX s""" ,.L?"N!@Sk%!"FBG(' O'#."q|?"n o'Z!{@Zk%Ȏ!{^#N"AF^B%!FpWp#GC8Gt/O'tm#`r:\Kt?p!To/ \uo!: N"AF^BrFTu o&X s""To#?#".?"!@Sk%!N#AG^CzG#Tu o& s"_""N!?"@Sk%Ѝ!n"aF~BF/' O'# o'qy"!Z?"{@Zk%!N#AG^CzG & O'_" o'"pt?"N!Z{@Zk%,!D#QB A.#!G>CYGi& O'_"n o'"?"hptNZ!{@Zk%!!cDGd"FBG)b@z#.&/_""?"ZK o'GKN O'XptN!Z{@Zk%D!0@@ H@ #.Yb/bK:GK@#GCF& O'N_"ptN o'Z"{!?"@Zk%ȋ!@*1B @B/BK9'K o''hp۠Xp".D"JF2gHGJDB`D"B[.#!G>CYG O'?g#n#Z o'f""!{?"@Zk%!"._""JB`"FBF"/##n o'@8Ke"H"@N O'!{Z?"@Zk%!#GCF O'??"._"NZ o'e""!{?"@Zk%H!n"aF~BF O'D"#Z o'f""!{?"@Zk%!.#!G>CYG;gH O'gKn#Z o'e""!{?"@Zk%!0@@"."J0JN"AF^BrF/' O't"#py o'"Z!?"{@Zk%4!5G*HA J@,@n{#GCF)b@r"'. O'." o'"RJ?"GJNXpxZ!{@Zk%!b@AY/t{#0@@/YKp;K\KF?+ 1 B @ @@_Ats".TJ>#GC8GI'#N O'q|"n o'Z!?"{@Zk% !"FB0F o& Is"tM"N""?"!@Sk%ȇ!D`"FBGt-#.L'#"N O'p|?"n o'Z!{@Zk%h!"FB0F o&s"_"N""?"!@Sk%(!To(#GC8GvO o&ToX s"# B"?"Nbn!@Sk%І!"FB0FI& O'"N o'qu"!Z?"{@Zk%!cDT^#.#!G>C%p!yGT#GCFXo/. o&.AP]`ls"Q/JXo/>"!?"@Sk%!b^^ '# &X/Xo 8/,qo!Ф\u Z XK8KP]!YGC vL` R #C5@B i@i@0 CQ`#"FB%!G%U O' o'@Zo&s"H{@Zk5 A? N#AG^CzGH#& O'ΰ_" o'?""pt_ N!Z{@Zk%!"FBG.' O'.#p|"n o'Z!?"{@Zk%! @ @r.SrJr>@" O' o'@ZGH{@Zk XAE  `^o@ [C@"FB0FWE" N& O'ΰ" n o'"n?"pu_ !Z{@Zk%ԃ!#GC8G N'#N O'p|"n o'Z!?"{@Zk%! @ @r.SrJr>@" O' o'@ZGH{@Zk CB N#AG^CzG #f%"&. O'ΰ" o'N"_ N?"puZ!{@Zk%!#GC8GN'#"N O'p|?"n o'Z!{@Zk%p! @ @r.SrJr>@" O' o'@ZGH{@Zk +$1 A89 A`!*C: *C"iC< iCB@ "@@!D"A "A@~n"aF~BF"o' O'ΰ?#"?" p{ o'.!Z{@Zk%|!#GCF.& O'._"pt o'N"Z!?"{@Zk%,! @@Y/ZYKY?`#FDC@D@D@@"C1 C9@N"AF^BrF"/'ΰ O'# o'"py?"!Z {@Zk%x!N#AG^CzG& O'_" o'pt"N!Z?"{@Zk%(! @@Y/ZYKY?`# "A"A0 O' o'@ZBDH{@Zk#"FB%!GS.#!G>CYGv!] &&E@.A`r]o!2B]O!d^/!<`C`t" Cg@n#aG~CG o&s"j]"?"!@Sk%~!"FB0F"#@"?"G`^O`i o&TuX s"!@Sk%~!.#!G>CYG o&ls"N#n"?"!@Sk%`~!#GCF o&X s"" ".?"@N!@Sk%~!"FBG'' O'.#q|"n o'Z!?"{@Zk%}!j`] O' o'@ZH{@Zk"FB0F o&pzs"L""N"?"!@Sk%L}! O' o'0Zo&8{~ s"?"@Zk"FBGDO&#" ?" @Npr$YC; YC O' o'Z!{@Zk%|! @p`"FBF o&<,s"?#".?"!@Sk%|!N#AG^CzG o&s""?"!@Sk%L|!#GCF"" "G`^/@?"ITuon o&X s"!@Sk%{!#GC8G o&ls"n#n"?"!@Sk%{!#GCF o&X s"" ".?"@N!@Sk%d{!"FBG'' O'.#q|"n o'Z!?"{@Zk%{! O' o'@ZH{@Zk@ O' o'@ZH{@Zk"FB0F"n o& s""_"N"!?"@Sk%z!"FBG o&N&s"?#."?"!@Sk%dz!Ih[`^C@"FB0F o&N0s"_"N" ?"!@Sk%z!n"aF~BF"! o& s"_" 8CD @P@!X@N"< bC?"!: 8C@Sk%y!n"aF~BF o&D$@&s"D0@#n"?"!8 C8 B@Sk%@y!#GCF?"]/_"KBDi"C#"j o&s"N?"!G5 C@Sk%x!.#!G>CYG o&Xs"BD""1@@<9`C?"!@Sk%x!BDBD"1@@19B8N"AF^BrF o&&s""""?"!@Sk%Dx!#GC8GGO& #N O'n#Xpr o'"Z!?"{@Zk%w!n"aF~BF o&Xs""?"!@Sk%w!BDBD"1@@89B `?"`^O YC0@]; YC+8@IJn"aF~BF o&X s"#_""?"G`^ `^/@ITuoNn!@Sk%w!n"aF~BF o&Nls"""?"!@Sk%v!#GC8G o&X s" @#"?"N`n!@Sk%xv!"FB0FG& O'"N o'qu"!Z?"{@Zk%(v!#GC8GG'#"N O'q|?"n o'Z!{@Zk%u! O' o'@ZH{@Zk#N"AF^B%u!FP#GC8G`^  o&EL.ACYGd& O' #n_" o'Xpt"N!Z?"{@Zk%r!"FBG o&s"?#.#n"?"!@Sk%q! BD"1@@#GCF?". o& s"""L?",@ 0A!@Sk%hq!"FBG$' O'#."q|?"n o'Z!{@Zk%q!"FB0F"n o& s""_"N"!?"@Sk%p!(,qO "C Y@ A`#GCF,q/ o&<,s"2"BN""?"!@Sk%hp!#d^"5@?"_" ],,HL]ol] ]/L`"FBF o&s"#?#."?"!@Sk%o!N#AG^CzG o&Xs""?"!@Sk%o! BD"1@@I#GCF$& O' _".N"Xpu o'"Z!?"{@Zk%,o!5@.#!G>CYG o&s"##n"?"!@Sk%n!"FB0F o&&s"_""N"?"!@Sk%n! "FBG o&Xs""?"!@Sk%ln! BD"1@@,d^/LHlQ^##GC%@n!\F{Nn"aF~BF E.A8B8q/ 8`_#zG8C%`m!yGCN#GCFv `^/.A,d^O`S]],u8q8L?#YG8lBQFd' O' "n"Xpx o'"Z!?"{@Zk%j!.#!G>CYG o&s"##n"?"!@Sk%\j!cD cD#1`@19BN"AF^BrF"v o&! s"#"n?",@<@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1> E 0A!8 C8 @@Sk%i!#GCF$& O'._"qt o'N"Z!?"{@Zk%i! O' o'@ZH{@Zk"FBGv#?""8E: C?#Gq8L#.AQFCYG.AO& O'@#n#ppr o'Z"{\uo !?"@Zk%th!n"aF~BF/' O'"#ppy o'"Z!D{?"@Zk% h!(GC @(baC0 @/\K?# 1@_]oBDb< 8q8@?#YG8`C%0g!yGL#GCF/&.A`r1& O'O 1B"N" o'.hpu"vo Z!?"{@Zk%f!#GC8GTuO o&s";Q@Cn#_"N"?"!@Sk%`f!n"aF~BF o& Dvs"04"!?"@Sk%f!"FBG o&X s"# ,"?".LnN!@Sk%e!#GCF o& s"?"_".""N!?"@Sk%e!"FBG/''`r9 O'#9"?".q|nZ o'!{@Zk%,e!2T^#N"AF^B% e!F3L#GC8G'E`r.A&;@C! O' "_" o'hpt"N?"Z!{@Zk%d!"FBGTu/ o&X s"_##.n"N!?"@Sk%Pd!#GCF?".TuO o& s"""N!?"@Sk%d!"FBG/''`r9 O'#"9?".q|n o'Z!{@Zk%c! O' o'@ZH{@Zk#N"AF^B%c!FsL#GC8Gv o&.A s" @##n"0@CN!/!?"[ \u!@Sk%c!GG< cD@*?"r.t2J0`@SrJFr> cD@ "8/zJ0`@Y8KYG8?GDD0@,b`C/K7gKdGcD@rH0.DD0`@Q0J0@QF0>,`aB.J7gJdFg@ cD@ #Y/{K0`@ZYKg@zGY?`^ O' o' @pZ0Bx{"R@xB@UCBSB_"?",q"`B@Zk@GaG@@FVG"ڔ`G G@VG@4 GVGd #GCF]/' O'i"."`^O"n o'"N?"pxZ!{@Zk%a!M/-#?D_ YK7'K!GcD@BD/Ap;H\K1"F?Q.?D0`@0@@QJ7'J!Fh s@ cD@-"8/zJ0`@Y8KYG8?h {@"FB0FH"#@"r.?"SrJr> o&ps"!@Sk%`!, N#AG^CzG'&`r O'_" o'"ΰ?"hptN!Z{@Zk%_!"FBG/' o&`r9ds"#"9?".(@nΰN!@Sk%X_!#GCF o&ps"_"N"?"!@Sk%_!n"aF~BFΰ/' O'#( o'"?"py!Z{@Zk%^!o^##GC%^!\FJn"aF~BFv o&Tu/.AX s"_##`^"?"d^Nn.!@Sk%@^!#GCF, o&ls"_"."N?"!@Sk%^!n"aF~BFv o&X s"?# "?".!@Sk%]!N#AG^CzG'&`r O'_" o'"?"qtN!Z{@Zk%\]!YX^##GC%P]!8GtJN#AG^CzGv E0C.AL , LQB8CDD@7JQB8CFD 1@@X@P@:9 C"@ O' o'@ZGH{@ZkN"AF^BrF o&s"# " ?"4@ncD.N: 8C!#x@4@@Sk%@\!#GCF/' O'#0 o'"4 0,0 ?"D4@0 `]o,`((pyZ!{@Zk%[! O' o'@Z H{@Zk#n#aG~C%[!GJ"FB0FE3@B o&&.As"`rt",qO!d^!?"!`^/!v @Sk% [! O' o'@ZH{@Zk0LE " @E,A A@; YCF."!F>BQF"n o&s"""?"!@Sk%Z! B",YCE 0A @; YC8Ce N"AF^BrF"" o&]s""?" "(!@Sk%Y!N#AG^CzG o&X s"_""G "Tu/N.?"!@Sk%Y!"FBG o&ls"n?#."?"!@Sk%`Y!N#AG^CzG o&X s"_" ?" N"!@Sk%Y!n"aF~BF/' O'#qy o'"Z!?"{@Zk%X!ú @y@n#aG~CG Db#$@@@ o&!<,s"2 0B"!?"@Sk%\X!.#!G>CYGh o&s"?"|  "!@Sk%X!."!F>BQF#?#"l?"Gi o&X s"Tu.!@Sk%W!N#AG^CzG o&nls"#"?"!@Sk%tW!"FB0F"" L?"Nln o&X s"!@Sk%(W!"FBG+' O'#."q|?"n o'Z!{@Zk%V!,"FB0F o&<,s"_"N"?"!@Sk%V!n"aF~BF o&BQF"n o&! s"#"n?" @D0@!8C5 @@Sk%DO!#GCF$& O'._"qt o'N"Z!?"{@Zk%N!$"FBG o&H<,s"i?#ΰ."?"!@Sk%N!N#AG^CzG o&s""?"!@Sk%xN!H@i`#GCF o&X s""@" .?"@N!@Sk% N! O' o'@ZH{@Zk#"FB%M!GF.#!G>CYGv .ADTu!v 0bbCCI^D0"BD$DFB`z&pD 0C `N#AG^CzG, O'_" o'e"?", NZ"!{@Zk%M!G0ldBD`#GC8G'#",L?"N O'p|nZ o'!{@Zk%L!0lp@ N"AF^BrF(/' O'# o'("?"pyZ!{@Zk%L!N#AG^CzG& O'_"4 o'?"44L0b"ptNZ!{@Zk%K!dBDİ"#1 C:9 C@`n#aG~CG""1QB.!2YBn o&X s""?"!@Sk%0K!"FBG o& s"?#._#N#n"!?"@Sk%J!#GCF o&n0s"_"N"?"!@Sk%J!D"bD 5B $8 B'N#AG^CzGD" "#QC0YC3 q@ o&2q@N!Ts""!?"@Sk%(J!"FBGD o&X s"#"_""?"`^/GBd^OhNn!@Sk%I!n"aF~BF o&nls"""?"!@Sk%I!#GC8GD o&X s" B#"?"Nbn!@Sk%@I!"FB0FO&&`rR O'" o'R"?"NquZ!{@Zk%H! O' o'@ZH{@Zk##GC%H!8G.EN#AG^CzGvO .A#]" ]/@?"]O``^o o&4s"d^],]]/n.!@Sk%(H!#GCF o&X s"" ".?"@N!@Sk%G!"FBG?##8@_""YGqo_#8F

C%G!yGD#GCF,.AvO  S^d^]/ ]O@]o ``^8q8@?"QF8`CYGv o&E.ALX s"0 $4_"( `?"0 <`C4 0 4N"Nn!@Sk%D!n"aF~BF o& s""#?#."!?"@Sk%pD!N#AG^CzG o&<@!0s"0 @_"N"!?"@Sk%(D!n"aF~BF o&s""#"?"!@Sk%C!.#!G>CYG"; e@L,e@AA ,3 q@ o&2q@N!Ts""?"!@Sk%xC!"FBG o&TuoX s"#,_""`^/?"LGd^ONn!@Sk%C!n"aF~BF o&Nls"""?"!@Sk%B!#GC8G o&X s" L#"?"Nln!@Sk%B!"FB0FO&&`rR O'" o'R"?"NquZ!{@Zk%8B! O' o'@ZH{@Zk##GC%B!8GCN#AG^CzGvo .AC 0B! N"AF^BrF,/' O'# o'"?",pyZ!{@Zk%pA!G0LCcbCC"FB0F& O',L" o'"N?"puZ!{@Zk%@!{K^#.#!G>C%@!yGC#GCFv .Av 0,E,B@J^D 0C! `N#AG^CzG,& O'_" o'?", pt"N!Z{@Zk%@!G0C D`N#AG^CzG& O'_", o'"?"ptN!Z{@Zk%?!0B8 FA`#GCF o&s""?"!@Sk%H?!$& N"AF^BrF o&s""?"!@Sk%?!"FBF/' O'#py o'"Z!{?"@Zk%>! O' o'@ZH{@ZkN#AG^CzG?" o&1'Js"_" L'J.0YCN"?"!#QC@Sk%L>!n"aF~BF5C@ o&!Ts"?#."!?"8 C@@Sk%>!N#AG^CzG(& O'_" o'?"( "ptNZ!{@Zk%=!"FBG0%' O'#"0,?"0L4p|nZ o'!{@Zk%D=!"FB0FTu"#L"?"`^OGld^o o&X s"!@Sk%CYG o&ls"N#n"?"!@Sk%CYG o&4s"l_"d^o ]",,N.!?"@Sk%9!n"aF~BF"_#"8 "Gq/8l#zG8,0FqO8Fq8, o&Xs"8GqOlj$u ,"0B"!?"@Sk%8! BD"1@@6N"AF^BrF O' "# o'Ze""{!?"@Zk%|8!.#!G>CYG o&&s"##n"?"!@Sk%<8! "FB0F o&Xs""?"!@Sk%8! BD"1@@N"AF^BrF o&ls"#?#"?"d^.!@Sk%7!GHC`X#GCF o&4s"_"N"?"!@Sk%X7!2A^"FBGvo E.A: C<lG`D0@8C."!F>BQF< #?#Tu"Gl?"`^o o&X s"d^.!@Sk%6!N#AG^CzG o&ls"N#"?"!@Sk%x6!"FB0F""?" LNln o&X s"!@Sk%,6!"FBG/''`r9 O'#9"?".q|nZ o'!{@Zk%5! O' o'@ZH{@Zk#N"AF^B%5!F/A#GC8G(!#_# HC.A q/!G# `l#C . #qKPJ0@ @0F>0@@_l &npt G9WK?C . Nn)JCdC#.CJgH òd@@`o@(`FD^"o@@@yJ/0@XK8G? @D@@?#.q|K0@PJ0F> DA@h@r.tH0@SrJFr>A@@."8/zJY8KYG8?E`n#aG~CG"cDp@nGaDFVF`D#FVF 0FSF O'GX`F""ZVFq@ o'k""{VF!?"@Zk%3!&D-/0@ @-Kz/|KD[zK @Gz?-. "r.A @0JSrJtJ."Fr>zJ8/0@Y8KYG8?yFD0@ #@@D.q|K@@DPJ?D0F>.AFAu3HTJ@@F>8/z8H0@Y8KYG8?\ûd@``#|@AfGDFFD`BFE E.FGX F._"FTJuSJ@F>F<gH@GGCFvGG8/KzxHGY8KvGTGYG8?vG"FB0F O'"nG"m"nN o'Zk""{?"!@Zk%1!&D /0@ @ KY/{JDZYK @zGY? .#Q.0@JRQJsKrFQ>" 0@A TA.D #"C{KY/#0@ZYKzGY?0B B?LAEH@r.SrJr>?^##GC%0!8G?N#AG^CzG.A # E q/! GqG:w/ _"NlaO5@@`b" E F õ@@u# E  Gù@@ r_# E KGqo `#GCF, o&s"."L?"N!@Sk%/!n"aF~BF o&`s""D?"!@Sk%x/! DL,D/Y@KF@DUA@`@  0C . @@. ""UJxtJG>) ED@@Al|CA N?". @`41@ D_#/KFD:C`D "C D "SB Gq#w (/(K@ @u@ `@q. B@0@Lqo hB@  C 0@ALi`D@"$1@) ;Du@8@,a.aJu @30 @.J@5@ @@@(`PC.J @" L"0@Bl .J5F@b?# E +GúF@@u# E kG üF@r" E  F ?" E +FLP@BlDu@L/Ku @ 0@@@/@K @` " EP@@  FD5@ >qO@i:`qwv/:CDvoD@wK:C=@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1ZS>(:G0@ wH@ @@ 1CDD@wK1CF0@ wH@!@!D!1 @{eFd@ _".DuSJ@@TJ #F>Y/{K!D0@ZYK!1 @zGY?e;D%$BQ"q.@rJH@@./b"#zJY8KYG.?e_"dC/KpC .u_"n"TJuSJF>D@ 0@:n/N#DCzK.q\K0@PJ0F>EBBtHr.SrJFr>&DCzxI8/0@Y8KYG8?ebCpH/\KF?%D"$BsHQ.0@RQJrFQ>.CJ8/zJY8KYG8?i`[qXqUqO,"B@Pl0`BBJw 0@@, H@N@0@lC&L$(.(J@ @u@`@"H@U@0@@ q/N (C@lC,0 BL qo hB@0@  C L_#;1@N nD_".JGD2B`D "BD _#:C` G ,D.@JG@DU@`: 0B @ SuO@Pqo`M/ KUA@0@,Lr.rJD@*)`,.JU@0 @,Lh_o[C,.JU@ N"AF^BrF o&.Ps"""?"!@Sk%,'!u @G,Y/YK@``_ l@.#0.DrKQ0J`@QF0>. "xtJBDUJ0@G>"1@@ LDD@Y/ZYKY?=^#N"AF^B%&!Fb=Ҙ#GC8G!O#N' O'n_""?"n o'p\NZ!b"{@Zk% &!n"aF~BF" O'?# . o'b""?"!Z{@Zk%%!N#AG^CzG O'#/!.Z o'b""{!?"@Zk%h%!"FB0F O'(O!N_"NZ o'b""!{?"@Zk%%!n"aF~BF" O'?# o'.b""Z?"D{!@Zk%$!G L"D0 G\uOG]ozC<1@@LE@0.,N0J,nFs @5HD ?#C@ n`è] 0`A |A?"0.N rA`q~ LD _#E@/KFD:CA`]pA< 0n_"NR` GODb#B NcDA#AC.z/0`@PJzKq\K0F>Du"SBcDA9#BY//0`@ZYKK{JzGY? cD!AA.1"0`@Q.JsKRQJrFQ> 0 @ 4@D ?#C@n`0GAAcDA0.R"0 @r.0J (@tJSrJ0`@Fr>8HKC :HGKOC`D"C D "SB D #B D#[C+1`AD ?"B@,n$nGs @# D ?#@0@/KB@0n0@ `cDA" #0.rK0`@Q0JQF0>,ns @ ,D ?# @0@/KB_,n{ @" 0. 1@kE%Q@ `A ]O rA`"0]$uA0@DD!1@ @cDA9# #Y/{K!D0`@ZYK!1 @zGY? |AN?" .$FB0nU` @RGF xAxAaGxAVGڔ`G" G xAVGxA4 GVGA#GCF.& O'M"N."pu o'"Z?"$n!{@Zk%!#GC8G'M#N O'#p|n o'Z"!{?"@Zk%!DG@A"cDAR"0.0 @r.0J "@SrJtJ0`@Fr>v xA r$NDCnn0`D?"B@D "tBD ?#C@D#|C 1H'J$B@3HgJoBHqF(G!AcDA{#Y/0 @/YK0`@\Kp;KF?(. 1@_D"tB cDA9#?#Y/{K0`@ZYKzGY? cDA H#H.@qHPJ0`@0F>NrA`"GAAcDA/9#0 @Y/K (@{JZYK0`@zGY? 0 cDA1"sHQ.0`@RQJrFQ>L0@,DE@. @JF :H@D #|C . :N"@("nnG AcDA9#/0@Y/K0`@ZYK{JzGY?( @cDAL.s"0`@.LJu3JTJF>;09. yA6@0n#1`@`G@AcDA0.R"0@r.0J @SrJtJ0`@Fr>(.#G !AcDA#z/0 @.zK0`@PJq\K0F>(N 2@cDA.#0`@8/JzJY8KYG8?A{#/\K?`."!F>BQFo&'`rs O'""s o'"?"nhpxZ!{@Zk% !0. N@n#aG~CG&&`r O'_" o'?"Nhpt"N!Z{@Zk%! :^##GC%!8G8:N#AG^CzG?#D$GMm##zC0`@ |@&?"_"&Gfn"aF~BF o&NLs"?#"?" .!@Sk%h!DPd^o$_#DDGmGd^C h_O-2B`h_ B M!DA0@Cm1" .0 @Q. JRQJsKrFQ>B!@ !DAZ#0 @z/!@[zKz?."!F>BQFm"n o&Hs""""!?"@Sk%T!DG !DL@ #Y/{K0 @0@ZYKzGY?"FB0F o&N2Hn|s"GJN""?"!@Sk%!" u@&]^#n#aG~C%!G9"FB0Fl o&d^ .As"gg"wO!?"!q!q/!@Sk%D!N"AF^BrF o&(#s" "?"!@Sk% !DgD _ .D+@0@J F qov`D@@=@@`w"1@@u`D@=@@n_ l`Du@ , Q@ @@a.aJu @0 @.J5@@ @@@`PC.J @ "q@@M`Du@@, 1@ @ `.Ju @0 @/K @ "Q@@:D5@&@h`#` 5@@ E@, 1@@4CDD@w@J4CtF0@ wH@0@@ 1@@9CDD@wJ9CG0@ wH@0@D@@@ ``@u@@ u@@0@@0@@ D.D+@J0@dFwBD8^#n#aG~C%!G8h"FB0FLpo!h!KqO!,@n"aF~BF o' O't #?#p{ o'."Z!?"{@Zk%!#GCF ,& O'._"pt o'N"Z!?"{@Zk%!D> GDB/K7GH_D#G3K@;gHgK]oC0gHJ9 B 2gHv@HGJ "3v@JDbFTDv@H8vJDG_D#GDDGDDdGEAt"D0.DG0ArpHQ0J@QF0>.DJ7GH_DF ,"8C H@@h_8^t-"n""H@0C tM..QJTJu3JF>vD K8/8KG@;HgK]oC0HJ9 B 2Hv@HGJ "3v@JDbFTDv@H8vJDG_D%GDCGDDcGN.DD."GQJDBH`Bh_7^BQFld^"?"41`B o&d^s"!@Sk% !qD#GC8G o&`s""?"!@Sk% !DDC@@b/bK@"qqO0@@C@? N"AF^BrF o&(#s""?"!@Sk%H !qd^qB d^qﳰd^qLNBQF o&s""?"!@Sk%!@`"FBF o&Ps"?#."?"!@Sk%<!#1@HqO%@n#aG~CGq o&Ps"_""N?"!@Sk%!n"aF~BF o&Ps"""D?"!@Sk%!#q#@@!.#!G>CYGl o&Ps"#n"?"!@Sk%X!"FB0F o&Ps"_"N"D?"!@Sk%!#@@`Ats" ".JuB @ #1`@0@ `AtZ# #z/zK\C @?N@n 1`B@ AuY#t9#y//@zKKH@@vo` @ EQL _D0@Bl. JF9GH'K]/C@;GHgK9lC0GHvHJ _"1vJ_D FDvH4v`JDFDF_DG_DD#GDAt{#D/DDKFGgGDDB0@@,j `D_"B%D_#:C` q D _"2B`D "B @ ú @@nG<1`C vD,iY/YK%G`<HK]C1H'J9,B@3Hv@HgJ "4v`JDFUDv@H9vKD"G_DEGDcGDDGn.DDN"FrJD2BH B h_x2^BQFl"d^?"0`Bd^ o&s"!@Sk%!#GC8G o&`s""?"!@Sk%!NDC@@b/bK@"qqO0@@C@? N"AF^BrF o&(#s""?"!@Sk%,!qd^qB d^qﳳd^qLN@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1>GY* D#[CR ) DM"SBIDm?#C@Bj`q D ?"B@D "tB40C,n` z,/K@ :Q @Lj`q,L.J5A@' 1`@AtR" "r.rJTB5A@D@ L;1@Cl /K5@@?D 1`@@Br.rJ@$#1`@ 1`@ @/K@?0`@L !1`@;1@Cl$.!BJQ.sKRQJrFQ>L.J @ q@@ / Ku@@ Q@@`/`Ku @"."B 0J@@5@`@@ 9C,J@Lb/bK @ Q@@.Ju@ 1@@@.@Ju @`4q@@#1`@`r0B.^.,p#n#aG~C%!G~.d"FB0FT]o!Ld!k h_!lu SBhuO!q B 1C-^CYG o&fs"#i#n_"N"!?"@Sk%!)n"aF~BFo' O'"l #?#p{ o'."Z!?"{@Zk%4!#GCF o&fs"?"lM".""N!?"@Sk%!51C#GC8G o&.2s"M#m#N#"n?"!@Sk%! ,vNd^On`^o]/ u,^##GC%X!8G,N#AG^CzGT]/ d^.AC :^d^h_@ 1@ / KUA@,1@l/lKUA9^ . JUA@a@9^ D 1@ / KUA @/@KUA`q@ UA@a 1@@.JUA!@@`/`KUA9^0@0@9^A@ `.JUA 1@@ @/@KUA@0@!@@`.`JUA0@9^##GC%!8G+N#AG^CzGh_/ d^.AT]O @9^@.@JUA`@ UA!0@@@`/`KUA9^q/ 9^@ 1@ / K UA@9^@ . JUA@a0@@.JUA! D 1@A@9^@9^#N"AF^B%h!F,#GC8G o&.As""lao!!?" G Gw v!@Sk%!qO D@)E+^#GCF o&`s"q"?"!@Sk%!0@qOq/@n)E@ .JA?#qq/N0@@d^)E\@.21 BN`uonS@)Ee+^q"/"KA@׏A`üA$1@ðA)ER+^òuA+@n p@@A' 0@@.JuA" P@@,/,K5A@A`AA p@@,.,JA@ P@@l.lJ5A_! õA_!øA_! G$q@"/"KuA@nP@@@ 0@@ . JuA @.@JA` G$Q@u.J5@1:CDD@wK:C:G 0A,wI A,AE!1Ab L0@ 0A@` 0@@/KA5CcD'uD`@w`J0 B5CGF BD 0A,wI0@ A,A C(K !D!1 @@ú@@u@`@u@8 L0@ 0A@3 0@@L.LJA.`:CcDzD`@wK0B:C:Gh BD 0A,wI0@ A,AlCK L0@ 0A@5CcD'uD`@w`J0 B5CGF BD 0A,wI0@ A,A C(Kd^O0@@Z@`-)E*^#N"AF^B%!F*#GC8G o&.A`s""w/!q G?"!@Sk%|!qOD@DO^#GCF o&s""?"!@Sk%4!De@ v\uϠG@zc.cJA׏AsøA@"1@@tùA DN^üuA p`@A 0`@,.,JuA@ P`@l.lJ5AAAA p`@L/LKA`"q@@T/KuAP`@@ 0`@L.LJuA`.JA"Q@@B/K5@* I@@E0CBDPD@@w`K0CG 0A,wI A,AA 3CBDSD@@w J3CSF 0A,wI A A D 1@0@0@@A@cDN^ D 1@ø@u@ @@u@ `0@@ 0@L@cDtN^0@@ 0@L@ cDnN^0`@e@yDhN^#.#!G>C%!yG=*#GCF,.Au qO!`^ d^!h_ )E

CYGCYGl o&&s"c_"?"_ T] ."N?"!@Sk%P!n"aF~BF o&&s""#"0@@?"!@Sk%!,Y/YKU@`"1@@@_ İBDT]`^*^#N"AF^B%!F:(#GC8GL.A`^ d^ ,q @#l C DLBQF o&N&s"""?"!@Sk%4!/^#GC8GD o&&s"#E"h_o?"fn!@Sk%!.^#N"AF^B%!F'#GC8G o&L.As""T]o ?"!@Sk%!N#AG^CzG o&(#s"L"?"!@Sk%D!#GCF o&`s""?"!@Sk% !" B@ &/^, @ @/@KU@`11B<AcRSB/KU@?G /^##GC%!\F'n"aF~BFCYGl]O .A"bT]!Dh_4^N"AF^BrF]O E.Ao' O'?#p{ o'."Z?"!{5B@Zk%! O' o'T] h_/@ZH{@Zk#N"AF^B%h!F%#GC8G.A_#'N O'#pp|"n o'Zd {!?"@Zk%!Dp."!F>BQF&n O'"pu o'Z"!{?"@Zk%!Cp,.#!G>CYGO& O'6d#n#pr o'"Z!?"{@Zk%CYGlO&n O'n#pr o'Z"!{?"@Zk%!cD`-^#"FB%x!G+%.#!G>CYGXo..A]o]J]o"C0@@ ."!F>BQF o&`ls""?"!@Sk%!` vl ,B 0A l@E\u X@ \uO@_ N#AG^CzG o&N s"n#"?"!@Sk%p!"FB0FO&&`rR O'" o'R"?"NquZ!{@Zk%!#GC8G o&_Xs""?"!@Sk%!Xoo/D_DBGoK #GCF o&ys""?"!@Sk%!."!F>BQF,GHLo.Loo"IGuSHTJEYAFFGLo>ETsGGEFVGE o'VG O'l"{Z"?"!E@Zk%!e,^#GCF o&E.AXs"2 B"?"!@Sk%!n"aF~BF,HLo/Lo"IGXKyHE[AFVG8GLo?EpaGVG O'EFZGE o'l""!{?"EG@Zk%! O' o'@ZH{@Zk"FB0FE3@B o&.AXs""?"!@Sk%!"FBF,HLo//Lo#IGzHY8KE\AFYGvGLo/?El_GvGE O'FFZE o'l"F"{E!?"@Zk%(! O' o'@ZH{@Zk."!F>BQFLo/Lo"M/_DKE-#F4bB o&{YHZYK.AXs"zGM?" !p  ?"`^ ] @Sk%!D_DG0GHJB 2GHGJ=GB`" E F E5I*#GC8G cDA# o&.q\HXs"PJcD0F>"?"!8@C0`@@Sk%!D_DBF3GHgJfB5GHJ=B?# E ,G E:I__D~#|C."!F>BQF cDA"O&/M#cDm#XK?N O'n8`B#pr o'"Z!{0`@?"@Zk%!m` 41@B4J4WJA &8>A &8>"k4|h O' o'@Zo&H{QMs"@Zk@f9@7 C @9!K9W KA 9'>9A 9'>9#k|W O' o'@Zo&mMs"H{@Zk__ Ln#aG~CGvGeF ,,0BE 0AE M8`B o&Ds"2 0B_"?"NE<lCGE!G0 lCN"!ET GGPF:GK ZC@Sk%|! O' o'@ZH{@Zk__ Ln"aF~BFvGFe ,CE 0AE M9 C#8@COEAFEAF o&!Ds"ET F?"FPF2GJ"! RB@Sk%! O' o'@ZH{@Zk.#!G>CYG o&ms""?"!@Sk%h! O' o'@ZH{@Zkn#aG~CG o&fs"$" _"".?"N!@Sk%! O' o'@ZH{@ZkeLl@T@#GC8G o&fs"D#N#n"?"!@Sk%! O' o'@ZH{@Zk#GCF o&CYG o&s""?"!@Sk%! O' o'@ZH{@Zkn#aG~CG o&s""?"!@Sk%d!"B N"AF^BrF o&s""["?"!@Sk%! #GC8G o&s""?"!@Sk%ܼ!N#AG^CzG o&s""?"!@Sk%!"FB0F_"NTuo""?"n o& s"!@Sk%X!"FBG?#. o&XuO s"#n"N!?"@Sk% ! O' o'@ZH{@Zk#GCF/&&`r1 O'_"1"N o'".Xpu?"!Z{@Zk%! O' o'@ZH{@Zk#GC8GO'O&`rZ##"Z?"n o'N O'XprZ!{@Zk% ! O' o'@ZH{@Zkn"aF~BF o&E/'.AXs"`r"] 8B!?"Lo o _ p `^/!@Sk%!{H HE/HZEK< @CzGE?BQF o&Xs""?"!@Sk%ع!e.,HtHISeJ9AFe>E81 @7C 8K8WKA 'FA 'F#k O' o'@Zo&]Os"H{@Zk @@; @7aC;aK;W`KA {'F{A {'F{#kHpXp0p O' o'@Zo&H{Os"@Zk] L @],Q@@n"aF~BF o&fs""#"?"!@Sk%h! O' o'@ZH{@Zk.#!G>CYG o&CYG o&ps""?"!@Sk%! O' o'@ZH{@Zkn#aG~CG,q o&Ds"_""N?"!@Sk%! O' o'@ZH{@Zkn"aF~BF o&Ds""#"?"!@Sk%T! O' o'@ZH{@Zk.#!G>CYG o&s""?"!@Sk% !#`C "FB0F o&s"_"[O"?"!@Sk%!d `"FBF o&s""?"!@Sk%!#GC8G o&s""?"!@Sk%L!D@n#aG~CG" o&Tu/ s"_"N".!?"@Sk%!n"aF~BF"Xu o& s"?#."!?"@Sk%! O' o'@ZH{@ZkN#AG^CzG o&s""?"!@Sk%d!#C."!F>BQF"[o o&s""?"!@Sk%! "FBG o&s""?"!@Sk%س!.#!G>CYG o&s""?"!@Sk%!d`#GCF?". o&TuO s"""N!?"@Sk%T!"FBG?#.XuO o& s"#n"N!?"@Sk%! O' o'@ZH{@Zk#GCF o&ps""?"!@Sk%! O' o'@ZH{@Zk."!F>BQFh' O'"n" o'Xpx"!Z?"{@Zk%P! O' o'@ZH{@Zk.#!G>CYG o&Xs""?"!@Sk%!|He/ HH[eK01@wBGe? 0J0WJA &LNA &LN"k0  O' o'@Zo& Qs"H{@Zk_ LN"AF^BrF o&s"N""?"!@Sk%@! O' o'@ZH{@Zk_ L"FBG o&s"N?#."?"!@Sk%! O' o'@ZH{@ZkqO_ @n#aG~CG o&fs""#"._"N"!?"@Sk%x! O' o'@ZH{@ZkLn"aF~BFyB@uB@X?CB BGEFVGEE1 B'VGi?@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1c >fT`G2 BVGnPF o&<ׇKDs""" C!?"@Sk%į! O' o'@ZH{@Zkq_ #GC8G o&fs"_#c#N#"n!?"@Sk%\! O' o'@ZH{@ZkL"FB0FtB@rB@GSBSB @BGEFFEEFTGLCFg PF o&9'KDs"_"N" 9C!?"LC@Sk%! O' o'@ZH{@Zkn"aF~BFo' O'#?#Xp{ o'."Z!?"{@Zk%E0q O'GEFZFGE o'l""E{!G?"@Zk%! O' o'@ZH{@Zk.#!G>CYG&E`r.A& O'?"._"Xpt<`CN o'Z"!{?"@Zk%`! O' o'@ZH{@Zk"FBG_E.A: C_ Ln#aG~CGvGF`^o ,,0BE 0AE M8`B o&Ds"2 0B_"?"NEAGE!GAN"!ET GGPF:GK ZC@Sk%x! O' o'@ZH{@Zkn"aF~BF_E.A8B_ L.#!G>CYGvGF`^/l ,CE 0AE M0 C#8 B?"bN o&E:,CNFE!FDs""; ,C!ETFFPF8K C@Sk%! O' o'@ZH{@Zk"FB0FqE.A3@BO  "FBG o&fs"?#.B#N#n"!?"@Sk%! O' o'@ZH{@Zk_l#GCFsc@]/qc@`^RB2B  BGEFFEEFTF o&FPF8KDs",C]O_""N C!?",C@Sk%T! O' o'@ZH{@Zkn"aF~BFq/E.A8BO   N#AG^CzG o&fs""_"#N"!?"@Sk%̨! O' o'@ZH{@Zk_ln"aF~BFyc@X?C]uc@`^oB BGEFVGEEVGT`G1 B]/VGnPF o&<ׇKDs"2 B"" C!?"@Sk%! O' o'@ZH{@Zk"FBG_E.A: C_ Ln#aG~CG`^ o&Ds""P@.!P@"!?"@Sk%! O' o'@ZH{@Zk"FBG_E.A: C_ Ln#aG~CG`^ o&Ds"1B.!2 B""!?"@Sk%! O' o'@ZH{@Zk"FBG o&E.ADs"##"n?"!: C@Sk%! O' o'@ZH{@Zk"FB0FE,q3@B o&.ADs"""!?"@Sk%@! O' o'@ZH{@Zk#GC8Gl=E.A;@C!pO "FB0F/l"n o&fs""_"N"!?"@Sk%! O' o'@ZH{@Zku#GC8G o&fs"_#Wl#N#"n!?"@Sk%T! O' o'@ZH{@Zk"FB0F o&s""?"!@Sk% !-B @n"aF~BF o&s""?"!@Sk%Ȥ!"FBG o&s""?"!@Sk%!.#!G>CYGo'O&`r{ O'#{"?"nqr o'!Z{@Zk%CYG o&s""?"!@Sk%ܣ!#`CT"FB0F o&s"_"[O"?"!@Sk%!b `"FBF o&s""?"!@Sk%T!#GC8G o&s""?"!@Sk% !B@n#aG~CG"Tu/ o& s"_"N".!?"@Sk%Т!n"aF~BF" o&Xu s"?#."!?"@Sk%!N#AG^CzG o&s""?"!@Sk%L!#GCF o&s""?"!@Sk%! O' o'@ZH{@Zk."!F>BQFo&'drs O'""s o'"?"nhpxZ!{@Zk%!.#!G>CYG o&s"#[o"?"!@Sk%d! "FB0F o&s""?"!@Sk%$!N"AF^BrF o&s""?"!@Sk%!"FBG?#.TuO o& s"#n"N!?"@Sk%!#GCF?". o&XuO s"""N!?"@Sk%T! O' o'@ZH{@Zk"FBG o&E.As"": C?"!@Sk%! O' o'@ZH{@Zkn#aG~CG`^OE.A1BMO _Xoo lm4"FBF/ o&Dqs"B#XK?#nN"n?"!@Sk%X! O' o'@ZH{@Zk#GCF&n O'-"B".N"pu o'"Z!?"{@Zk%!/XK?N#AG^CzG o&Ds"_""N?"!@Sk%! O' o'@ZH{@Zkn"aF~BF_E.A8BO Xoo ,-4N#AG^CzG/ o&Dqs"\K?""n_".N"?"!@Sk%! O' o'@ZH{@Zkn"aF~BFo' O'n"#?#p{. o'Z"!{?"@Zk%!/\K?- MLB`d""FBGh_OGT]/F,YCE M; YC O' o'`Zh{N&EU"6FE6FET@F6FPF3gJ?" sB1F@ZkT] o&|/s"A!?#."!?"A@Sk%!N#AG^CzG o&Ds"_""N?"!@Sk%T! O' o'@ZH{@Zkn"aF~BF o&E.Aԏs""8Bp!?"!@Sk%!?# CT@n#aG~CG o&s""["?"!@Sk%!, N"AF^BrF o&s""?"!@Sk%t!"FBF o&s""?"!@Sk%@! .#!G>CYG#nTu o& s"_"N"!?"@Sk%!n"aF~BF" o&Xu s"?#."!?"@Sk%! O' o'@ZH{@ZkN#AG^CzG o&E.As"0C"p!?"!@Sk%H!?" BT@n"aF~BF o&s""["?"!@Sk%! .#!G>CYG o&s""?"!@Sk%!n#aG~CG o&s""?"!@Sk%! ."!F>BQF"n o&Tu s"""!?"@Sk%BQF o&s""?"!@Sk%ؗ!l`"FBF#Tu/ o& s"#n".!?"@Sk%!#GCF?". o&XuO s"""N!?"@Sk%CYG o&E.As""<`C?"!@Sk%! O' o'@ZH{@Zk"FB0F_E.A3@B_ L"FBF o&Ns"#"?"!@Sk%! O' o'@ZH{@Zk^ u/]   N#AG^CzG o&fs""_"N#"!?"@Sk%! O' o'@ZH{@Zk_ln"aF~BF"n o& s"hu/#?"8CN!"!8C@Sk%,!D@ O' o'@ZH{@Zkvd P@ L lrBD @ @@rB9 C@n#aG~CG o&CYG o&fs"#n#_"N"!?"@Sk%Ȑ!^_"FBG-#. o&F s"huo_"N"?"zC!@Sk%d!D"@vfl S@ ,C @ @@@n#aG~CG o&C%ȏ!yG;#GCFu/.A ]  N"AF^BrF o&fs"""#"!?"@Sk%D!G^N#AG^CzG o&`_Dqs"<1Chulu"$"_".N"?"!@Sk%!"@"FBG o&fs"$##.n"?"!@Sk%!^u ."!F>BQF"n o&fs""""!?"@Sk%D!^_.#!G>CYGm#n o& s"_"huNB."?"!@Sk%!D"@vfl S@ ,C @ @@@n#aG~CG o&NCYG o&E.As""<`C?"!@Sk% ! O' o'@ZH{@Zk"FB0FE3@B o&.As""p!?"!@Sk%!"BT#GC8G o&s"_#[O"?"!@Sk%l!l `#GCF o&s""?"!@Sk%,!."!F>BQF o&s""?"!@Sk%!l`"FBF#Tu/ o& s"#n".!?"@Sk%!#GCF?". o&XuO s"""N!?"@Sk%\! O' o'@ZH{@Zk"FBGuoE.A: C!`#GCF o&fs"?"L".""N!?"@Sk%Ԋ! O' o'@ZH{@Zk"FBG o&Bs""?"!@Sk%! O' o'@ZH{@Zk.#!G>CYG o&E.Al s""<`C?"!@Sk%4!"FB0F o&fs"_"N"?"!@Sk%! O' o'@ZH{@Zkn"aF~BF o&E.As"?#[/"?"!p!8B@Sk%!L @n#aG~CG o&s""?"!@Sk%X!"FB0F o&s""?"!@Sk%$!L@n"aF~BF" o&Tu s"?#."!?"@Sk%Ԉ!N#AG^CzG#Xu o& s"_""N!?"@Sk%! O' o'@ZH{@Zkn"aF~BFLo ^M/-#/ o&Xs"ZYKK"{J zGM?!?" @Sk% !D_DG0GHJB' 2GHGJ=GB#`"FBF cDAZ# o&z/|ZHXs"cD[zK"Gz??"!8C0`@@Sk%!D_DF1GH'J&B@3GHgJ=gB5`@%/-_#%KC`=`@"FB0FAR"'r. O'-#SrJr>#0\".#p|"n o'Z?"{!@Zk%!0\"_."!F>BQF,GHe.GItEHSeJEXAFFFe>ETs O'GFZEF6GE o'l""{E!6G?"@Zk%! O' o'@ZH{@ZkN#AG^CzG\u/E.A0C*B!4@n"aF~BF O'#?#."Z o'o&|s""{!?"@Zk%! O' o'0Zo&8{\s"?"@ZkN#AG^CzG o&fs"#_"N"?"!@Sk% ! O' o'@ZH{@Zk\uopB4"FBGP_#N O'#?#n. o'Zo&|s"{"!?"@Zk%! O' o'0Zo&:\s"8{?"@Zk#GCF o&fs"0,"_".N"?"!@Sk%D! O' o'@ZH{@Zkn"aF~BF o&fs""M #?#."!?"@Sk%! O' o'@ZH{@ZkN#AG^CzG O'?"`_/_"huO@Z o'E.A0CH{@Zkn"aF~BF O'91C`_hu/ o'@ZE.AH{8B@ZkN#AG^CzG`_/E.A0C3 __ LN"AF^BrFvG`^OF ,BE 0AE M8 B"8 CbOE3LBGnE o&G!Ds"4 LBETF"GPF1'J! 1B?"@Sk%|! O' o'@ZH{@Zk__ L#GC8GvGF`^L l,zCE 0AE M< zC8B#?"BNEAvF.E!vF"nA!ETFvFPF o&5קJDs" B@Sk%! O' o'@ZH{@Zk#GCF`_oE.A2 B`__ L"FBF`^ o&Ds"#9C.!"n!?": C@Sk%! O' o'@ZH{@Zk__ L#GCF`^/"Q@ o&Q@N!Ds""!?"@Sk%! O' o'@ZH{@Zk#"FB%!G.#!G>CYG`_o.A`#GCF o&8ps""?"!@Sk%(! !^N"AF^BrF o&ms""?"!@Sk%! ^"FBG`_oE.A:!C hu ] `<1C"u/  N"AF^BrF o&fs"""#"!?"@Sk%T! O' o'@ZH{@Zk_.#!G>CYGm#n o& s""B.!B"!?"@Sk%~!D(@vf U@ , LYCD @ @@YC1 B@n"aF~BF o&CYGlGF"9`C5`C!F5`CFД FG=`CF3`C4GFPo !UN"AF^BrF/'n O'p"# o'py"!Z?"{@Zk%|!N#AG^CzG& O'p#_"ptN o'Z"!{?"@Zk%p|!"FBGh-zHpm#lmk "Y K#YGh-rK"j"k-.xtJ' O'Q0Jh-#QFk->#"j.?"UJGj>.Tr|nZ o'!{@Zk%{!"FB0FL& O'pm"N"n o'pu"!Z?"{@Zk%p{!#GC8G'pM#N O'#p|n o'Z"!{?"@Zk% {!"FB0FhMsHp"l"R@Jk #rFhMzJ#M.j#k-/q|KRMJY8KM>&YGk-? O'" o'j .PJ0Fj >L"?"NpuZ!{@Zk%pz!@-.#!G>CYGO& O'b#n#pr o'"Z!?"{@Zk%z!n"aF~BFo' O'" #?#p{. o'Z"!{?"@Zk%y!3#GCF& O'#"._"ptN o'Z"!{?"@Zk%`y!GDFFDDF#GC8GC#NO& O'm#n#pr o'Z"!{?"@Zk%x!.J3gJD`"FBG' O'-#.#p|n o'Z"!{?"@Zk%x!"FB0FMsH""R@J #rFMzJ##-/q|Kh"M"Y8K'YG-? O'm" ." o'PJ0F >n"?"Nqx!Z{@Zk%w!.#!G>CYG& O'h#m#n_"qt o'N"Z?"!{@Zk%dw! ^#GC8GE.A,GEF.vGENGvGEG|GGXG&vG0ECECPo O'm"n1C"N"puvGZ o'"{?"!@Zk%v!#GC8G o&s"4c#M#N#n"!?"@Sk%lv! O' o'0Zo&8{}_s"?"@Zk"FB0F o&Ds""?"!@Sk%v!N"AF^BrF o&s"T"""D?"!@Sk%u!#GC8G o&s"dC##Nn"?"!@Sk%u! O' o'@ZBDH{@ZkP#GCF,`!&. O'L" o'"NPO l?"npu!Z{@Zk%u!#GC8GtB#O&N O'jm#n#pr o'Z"!{?"@Zk%t!n"aF~BF/' O'j"#py o'Z"!{?"@Zk%ht!N#AG^CzGc .b# Hjm"P Jf"0Fc >pH tJb-.2H?#FJQ@B|:Ki. _F2GJd-"U J RBGi>utJ"f /sJ/'"XK"Ff ?b" #em/[zKGem?dM.RQJ?"rFdM>dqy! O' o'Z{@Zk%Z"!{?"@Zk%q!#GC8GjM#N O'#n o'Zb""{!?"@Zk%q!#GCFcM.b-" HR QJj"rFcM>rHf #bm. J4H#SqJJSFbm>e#Bi-/q|K F4JY 8K BYGi-?yJdm"fM/_"uSJ #ZXK #:GfM?b-#e .PJ'0Fe >"?"d.TJFd>.dq|n! O' o'Z{@Zk%pp!  O' o'@ZGH{@Zk O' o'@Z H{@Zk#N"AF^B%,p!FT#GC8GuoO'!Po `r`^ `p"FB0Fc"n o&fs""_"N"!?"@Sk%o!G[^#GC8G o&gs""?"!@Sk%\o!N#AG^CzGvO& O',_" o'?","ptNZ!{@Zk%o!"FBG##.'E#"?"N O'p|nZ o'!{@Zk%n!"FB0FE& O'N"qu o'"Z!?"{@Zk%Tn!#GC8G o&Xs""?"!@Sk% n!N#AG^CzG o&s"D_D"_"N"!?"G@Sk%m!n"aF~BF o&$is""?"!@Sk%m!_Dy#B _DY#[CG^."!F>BQF& O'c"n"pu o'Z"!{?"@Zk%(m!*#GC8G'C#N O'p|#nZ o'"!?"{@Zk%l!"FB0F& O'M"N"pu o'Z"!{?"@Zk%l!07//7#8K8KN#AG^CzG& O'7# "_"ptN o'Z"!{?"@Zk%l!"FBG o&fs"?#C#.#n"N!?"@Sk%k!Gf^"FB0F& O'M"N"pu o'"Z!G{?"@Zk%hk! @@7.#!G>CYGA#{#&. O'_"?"[J"gKnqt o'N!Z{@Zk%j!"FBGA9#{HY/&#_"ZYK"zGY? O'pt o'N?"Z!{0@@@Zk%j! @@#GC8GvOO&Cm#,B#n o'"N O'pr!Z?"{@Zk%(j!n"aF~BF o&s""?"!@Sk%i!"FBG o&s""?"!@Sk%i!.#!G>CYGeO& O'#n o'qr"!Z?"{@Zk%hi!n"aF~BFO'#-#".#p O'n o'Z"d"{!?"@Zk%i!GDFGDDGc"FB0FF' O'1c"N"n"px o'"Z?"C!{!@Zk%h!.#!G>CYG o&s"4#m#n_"N"!?"@Sk%8h! O' o'0Zo&3bs"8{?"@Zkn"aF~BF o&Ds""?"!@Sk%g!"FBG o&s"T###.n"D?"!@Sk%g!#GCF o&s"d#"._"N"?"!@Sk%`g! BDn"aF~BF O'##n-#." o'Zd""{?"!@Zk%f!#GCFm"&CM"n o&ls"N"."?"!@Sk%f! D"FBGC#N O'?#.m#n#Z o'd""?"{!@Zk%@f!"FB0F_"N#f"C""n o&ls"?"!@Sk%e! DW.#!G>CYG O'_"N# "#nZ o'd""?"{!@Zk%e!GDFvFDDvF"FBFC #'#N."?"N O'.p|n o'Z!{@Zk%d!"FB0F& O'tC"m"Nn"pu o'"Z!?"{@Zk%d!#GC8G'M#N O'p|#nZ o'"!?"{@Zk%Ld!"FB0Fm.M" HS rJ"Fm>sH #. J##TJq|KtF>m"_"-/ #Y 8KYG-?yJuSJM/ZXK #:GM? O'-# .PJ'0F >"?".TJF>.dq|n o'Z!{@Zk%8c! G_ BD."!F>BQFC"/' O'm"#n"?"pYn o'Z!b"{@Zk%b!#GCF.N O'" o'Nb"."Z?"!{@Zk%Tb!"FBGM#'N O'##.#p|n o'Z"!{?"@Zk%a!"FB0F O'"M"N o'Zb""{!?"@Zk%a!"FBG~M/}-# HZ YK#zG~M?zH "}m/ K"umJ[yK#[G}m?-#{K-.Q 0JQF->qK#M.RPJ} "2FM> _"?".TJF>&M/ZYKzGM? O' o'"dqtN!Z{@Zk%`!G_ BDK#GC8G o&fs"C#N#n"?"!@Sk%8`!#GCF o&s""?"!@Sk%`!."!F>BQF o&s""?"!@Sk%_!0n"aF~BF&o'dr O'#?#"?"hp{. o'Z!{@Zk%h_! O' o'@Z 1CH{@Zk#GCF o&fs"?".(C"N""!?"@Sk%_! O' o'@ZGH{@Zk#"FB%^!G{ p.#!G>CYG o&o't!gs"`r"?"O !GG,q/!CYGeO& O'#n o'qr"!Z?"{@Zk%\!E3q@eB63aJ3W`JA s&TsA s&Ts"k,,,,,,,,,$,,,,,,,,,,,,,,,,,,,,,,,,,,,,$](q#GC8G o&fs"N_#N#n"?"!@Sk%[! n(q5C."!F>BQF"n o&fs""""!?"@Sk%T[! W#GC8G o&1s""?"!@Sk%[!D_#@`E#GCF o&fs"1""._"N"G!?"@Sk%Z!2d G` 0A7I"FBF o&fs"F#?#."?"!@Sk%XZ!N#AG^CzG o&fs"a#_"N"?"!@Sk%Z!po`"FBF]#'% O'#".?"p|nZ o'!{@Zk%Y!"FB0FE& O'N"qu o'"Z!?"{@Zk%TY!#GC8G o&Xs""?"!@Sk% Y!Dy#[CDY?"B6@n"aF~BF] o& s"""?"!@Sk%X!#GC8G o&fs"_#b#N#"n!?"@Sk%tX!"FB0F o&fs"B""N"?"!@Sk%,X!"FBG o&fs"?#.B#N#n"!?"@Sk%W!{#GCF o&fs"?"B".""N!?"@Sk%W!h"FBG%B#'N O'.#hp|n o'Z"!{?"@Zk%8W!"FB0FE& O'"N o'qu"!Z?"{@Zk%V!#GC8G o&Xs""?"!@Sk%V! HH:Q@FC?`:AK:W@KA Z'ZA Z'Z#k      L O' o'@Zo&fs"H{@Zk G 0A"FB0Fh_O""?"NT]on o&*s"!@Sk%(U! #GC8G o&fs"B#N#n"?"!@Sk%T!+#GCF o&fs"-""._"N"?"!@Sk%T!_Gn"aF~BF/' O'#py o'"Z!?"{@Zk%,T!DJCC`#GCFjh_/ o&*s""."T]O?"N!@Sk%S! GFFFGFG1.#!G>CYG&n O'Mb#t#n_"pt o'N"Z!?"{@Zk%LS!qD#GC8G}B#O&N O'tm#n#pr o'"Z!?"{@Zk%R! ,n"aF~BFo' O'"t #?#p{ o'."Z!?"{@Zk%R!#GCF& O'""tM".N"pu o'"Z!?"{@Zk%4R!#GC8G o&fs"ΰtM#N#n"?"!@Sk%Q!qq G 0A"FB0Fh_Oq""NT]o?"n o&*s"!@Sk%Q! q#GC8G o&fs"B#N#n"?"!@Sk%@Q!E#GCF o&fs"""._"N"?"!@Sk%P!3qo G` 0A7Iq"FBF o&fs"'#?#."?"!@Sk%P!N#AG^CzG& O'?#t "_"ptN o'Z"!{?"@Zk%8P!#GC8GVB#NO& O'tm#n#pr o'Z"!{?"@Zk%O! n"aF~BF o&fs"ΰt"#"?"!@Sk%O!+ G 0A7IN#AG^CzG o&fs"z#_"N"?"!@Sk%,O!n"aF~BF o&fs""#"?"!@Sk%N!q/ G 0AN#AG^CzGh_ o&q*s"_"T]?"N"!@Sk%N! qoA`"FBF' O'#t-#.#p|n o'Z"!{?"@Zk% N! ."!F>BQF' O'b"nt""px o'Z"!{?"@Zk%M! .#!G>CYG o&fs"ΰtm#n#"?"!@Sk%xM!S"FB0F& O'B"tm"Nn"pu o'"Z!?"{@Zk%M! .#!G>CYG& O'b#t#n_"pt o'N"Z!?"{@Zk%L! "FBG o&ΰfs"t-##.n"?"!@Sk%tL!#GCF o&fs"?".?B"N""!?"@Sk%(L!# .#!G>CYGvo o&s"#n"?"!@Sk%K!"FB0FT]O"d^"`^o o&|/s"d^O"?"!@Sk%K!"FBG`^ o&d^s"v_#`^/#"?",Nn!@Sk%4K!#GCF o&$is""?"!@Sk%K!."!F>BQF o&s""?"!@Sk%J!n"aF~BF o&Hs"""?"!@Sk%J!D^.#!G>CYGe& O'#n_" o'Xpt"N!Z?"{@Zk%0J!"FBG o&s"?#.#n"?"!@Sk%I!#GCF%& O'_". o'qt"N!Z?"{@Zk%I!"FBG o&$is""?"!@Sk%lI!D^#n#aG~C%\I!Gdh"FB0Ftm.tM"t!SrJtm> o&Dqs"!t"U #?#."?"!G@Sk%H!_#@`#GCF o&fs"[,"._"N"?"!@Sk%H!G ^"FBG' O't-#.#p|n o'Z"!{?"@Zk%8H!"FB0Fl"n o&fs""_"N"!?"@Sk%G!G ^#GC8G_#N O't#l#n_"NZO$ o'B b"{"?"!@Zk%G! O' o'0Zo&'js"8{?"@Zkuo`"FBF o&fs"#,#.#n"!?"@Sk%G!#GCF o&>s""?"!@Sk%F!."!F>BQFGDFvFD' O't"vFpx"Z o'"!?"{@Zk%lF!.#!G>CYGt#G O'GFl#n_"NZFG o'b"F"{?"G!@Zk%E!GDFvFDDvF2"FBFo' O't #?#p{. o'Z"!{?"@Zk%E!#GCFtM"GNAF O'F,"".vF@FZ o'vFb"{"RF?"!@Zk%E!#1Cul=.#!G>CYG o&fs"#n#_"N"!?"@Sk%D!n"aF~BF o&s""?"!@Sk%xD!y"FBG o&s""?"!@Sk%@D!.#!G>CYGo'O&`r{ O'#"{?"n o'qrZ!{@Zk%C!n"aF~BF o&s""?"!@Sk%C!"FBG o&s"?#tM#.#n"N!?"@Sk%lC!#1C#GCF o&s""?"!@Sk%0C!."!F>BQF o&s""?"!@Sk%B!n"aF~BF&o'dr O' #?#"?"hp{ o'.#1CZ!{@Zk%B! O' o'@ZcDH{@Zk##GC%pB!\F]Hn"aF~BF&T!`r o&X s"#Tu?#."n !?"G?!4\ @Sk%A!qqqq/ qONqn"aF~BF o&s""?"!@Sk%A!Tu 5A/'o%$qYk! Z@Z@n#aG~CG DPA& O'_" o'pt"N?"ZBD!{0@@Zk%@!"FBG o&nLs"\-#M#.#N@@Nn"?"!@Sk%@!#GCF3C@n o&|s""\M"">?"."N?"!@Sk%L@!#GC8GHO& #N O'n#Xpr o'"Z!?"{@Zk%?!Xuo 0 A3A 0@UA 0 ATu8A Z@Z@n#aG~CG o&ps""_"N"?"!@Sk%l?!n"aF~BFo' O'1#?#hp{ o'."Z!?"{@Zk%?!#GCF o&ps"_"N"?"!@Sk%>!n"aF~BF O'# o'Zj""{!?"@Zk%>!.#!G>CYG o&Xs""?"!@Sk%X>!D #|C&D _"2B"`"FBF'd"#C"!?" o&Xs"@Sk%=! O' o'Z{@Zk%=!D _#:C`D "C?N"AF^BrF o&s""?"!@Sk%|=!?!"FBF o&ps"#?#."?"!@Sk%4=!N#AG^CzG& O'J"_"hpt o'N"Z!?"{@Zk%CYG o&s"b#n#"?"!@Sk%@8!"FB0Fb"n o&fs""_"N"!?"@Sk%7!"FBG o&s""?"!@Sk%7!.#!G>CYG o&s""?"!@Sk%7!n#aG~CG&&dr O'""_". o'?"hpt"N!Z{@Zk%$7! 1C^#GC8G o&(,s" !#n"?"!@Sk%6!#GCF o&fs"?".aB"N""!?"@Sk%6!G^#GC8G o&s""?"!@Sk%T6!N#AG^CzG o&fs""_"N#"!?"@Sk%6!G^"FBG o&Hs"?#.#n"?"!@Sk%5!#GCF o&s"?"._"N"?"!@Sk%5!n"aF~BF o&L)s"Pp"#"?"!@Sk%@5!.#!G>CYG'] O'#"?"p|nZ o'!{@Zk%4!"FB0F o&s""?"!@Sk%4!N"AF^BrF o&s""?"!@Sk%4!"FBF o&Hs"#?#."?"!@Sk%D4!Gd^pE<7KqE! EkpE57JqE5F!5J &N"N4G F EkpE97 KqE9F!9#K 9'"N E F.4GNnkpE<7KqEf  %. -V 5~ = E M U ]F en m u }  & N v     > f     . V ~    %-F]Zemu.Jf6^ &Nv%-5=IManiq!)19FAnIQY]amu}6^>f~ 6%^-5=EMVauyN>fJ  r   % -!E"!M:!UR!]z!e!m!u!}"B"^""""" #2#Z##<#Yv$v%J&&e&&&&'-"'=V'E~'M'U''( ^()(-(8(AB)P){j*v***+J+N++++Z,z,',+-."-5n-<-C.Q^.W.b.h/s/y/000*121~1122j222&3r33 4V444 :556">60646;.7A7L8P28^8b8r8x829n99:::::;B;;; ^<~<#<(<C<H=S=W=e2>i6>{R>V>>>>>>>N?r?v????J@ f@@@@$@'@0@HBAPAVAXAeAtAJBVBBBBCCC"C&CvCzCC&DZDDDD&EfEjE#rE&vETEbFeFmFuF|6GGGHH.IzI~IINJnJJKKKK2LrL$L'L-L8LCMSzMXNZ*NNNNNNNOOrOO6PP:QQQQ$Q'Q0Q7 RMvRRRXR]RcRhRjSSVTT&U*U.U2U6UFUJUZU^U~UU&V:VNV*V<WRbWXWZXYZZ[[([2[6\@\H\N\S\V]`B]i~]n]{]~]^.^2^^^>_``a JaLana1a6a9aI6bOzbPzbdbp.ctjcc2d~ddd*e.eee f^fffff g0ng6g<gPh`nhdhviviiii\j~j6kkkkl6lll ll l4lAmEzmVmXmZmn o*o:ooBpfpjpppppp, q9.q@6qQqpr|FrJrrrsssBtvt~t ~t&t1t8uCRuduu2vv2w:ww"x&x xx$y/Vy7^yFyJyPy^zoNzpNz~zz>{~{{{|>|||||}"}-2~?~V~kzRFʁځ*z ʂ ڂ ** , . G H xJ t  y  ^ ą  V ҆ چ &     V2 ڈ7 H .U Nd q z V    J    F  : 2 4  ? ZL W \ e v b    V ^  " * v  " 6> C B@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1 >T q z}  ޓ 2     b j   ^     V, ʗ1 җB _ d u  J R    j  6 %6Z~_pҜRޝ>2:$N5<ΠEHJ2h~w֡rzz 6>BRB FZ5?ZSmt*jrҦ&$&*D~HK[bmީrjʪ 26rv6bF֮P&U.fzln&.z| 6RZ: >F(ֲ1"5&>bBfKOX\ay~ʴδ JN&rv26A^FYmjp~{ι"4VҺ&ֻֻ $,9>HJPRSjsRyr|ʾ28ZB :8GUFct*jfnF !%,"<r\n.ynfNR  f"j48\v`zv> :B^$'*1:LfPjSv^dfq~:FNNn6:N&.(n/6<>.66RjRZ ^'v6A"F*QzU~`dgl|JRZb~*6: J$3CPZ^^bdjw2V FJZ^f4V +F,H.jBLbl2&F :B',9Njwxz..B F(-6D`mprvx r z! 0  2 B B & 6   l  !!!.!!J1!:!H!T!Ja!j!l!w!}!!!&!B!!!>!!!6!8!Z""'"B8"F"H"Y"&q"z""""V"~"""b)#2#;#.M#Z#]#######"#:#B#^#f#n#t###V##$$$R$Z$$$:$2@$6\$l$u$:$$$*$$$$n$v$$$$"%r%2%ZW%[%p%Rt%V%%&%%%%B%&2 @& M&B T&v g& w&& |&, ~&N & & &> &B &J & & &V  ' ' "'b8'R'Js'{'~''.''6'>'''.'(#(4(8(?(^W(g(fl((((b((((R(V )$)>)M)T).s)))))&)v)))Z*\*~**/**0*,2*NO*T*e*h*j****** *z * * * * *N!*T!*v!+!+"+".+">+#@+ #H+#S+R#X+V#b+#+N$+V$+$+$+$+%+"%+v%+x%+%+%+>&+F&,&,&',F',,N';,'G,'h,*(m,2(p,6(,(,(,(,(,(,(,(,(, ),),) -&*-.*-z*A-+F- +R-V+X-j+e-+l-+p-+t-+x-+|-+-+-+-,-",-&,-,-,-,-,-N--P--r-....."..<..^.H./M. /P./`.(/b.J/././.*0.20.Z0.0 /n1/1$/1)/2:/R2T/2l/F3q/N3/3/3/4/"4/n4/4/4/65/v5/~505050*60.6)0~6.06?06L07x047z0V70r7070707070708080B80F80b80j80n80808080808^19a19h1 :q1:t1:1:1:1;1N;1R;1;1;2; 2;2;2;*2<J2<P2<[2<`2<q2<t2<2=2=2=2=2=2=2=3R>3V>3j>3n>.3>43><3>?3>r3>?x3B?3J?3N?3?3?3?3?3?3?3?3?3@3R@3Z@3@3@3@3&A&4A94*BD4zBP4BY4 Ce4~Cn4Cy42D|46D4zD4~D4D4D4D4D4*E4nE4E4ZF5F5F5F;5zGW5Gc5Gp5VHt5ZH5H5H5H5H5H5H5H5:I5>I5I5I5I5I5RJ5TJ5vJ6J+6vK76KC6KU6L`6fL}6L62M6>M6ZM6M6N6 N6JN6jN6N7 O7rO7zO27O87ON7"P^76P`76Po7VP7P7P7P76Q7Q7R7nR7R8R,8SC8TN8jTZ8Tc8To8rUx8U8&V88V8ZV8V8W86W8vW8W8 X8jX8X9X 9Y#9Y(9Y=9ZJ9RZM9ZZX9Zh9Zq9B[z9[9[9:\9\9\92]9]9]9^9^9^9^^:^:^:^1:Z_4:^_D:_a:6`w:f`z:j`:`:`: a:ba:fa:a:b:&b:~b:b;b;Zc);c2;c7;c<;cG;cL;dN;&dm;d;d;e;ze;e;e;.f;nf;f;f;f;g; g;Jg;Ng;g<g<g<6h <:h&<Rh2<h7<h8<h?<hH<hT<6iY<>ir<i<i<i<^j<rj<rj<j<j=k="k=k$=k,=k?=lD=lW=jlj=lr=l=*m=.m=m=n=^n=zn=n=n=n=n=n>6o>:o>o*>o2>oE>RpH>Vp[>pn>.q>q>q>q>q>q>q>fr>~r>&s>>s>s>s!?Jt6?t9?t=?t@?tB?uc?uw?u|?u?v?Zv?^v?bv?jv?nv?v?v?v?~w?w?w@Jx @Nx @Nx@x#@x4@yH@yM@y_@yd@yr@y@Bz@z@{@{@{@{@|@ |@J|@R|A|A| A|A|(A>}]A}gA*~jA.~tAR~~A~A~AAAҀAAAfBB B΁B*BF.BJ2BR9BjnB"xBF~BVBB.B2BBBCCC. C6$C<&C^7CPC]C>fCCCbCfCC&C.C2CCCΊDR DZD3D8D"CDbFDjVDŒ_DhDbuD~D DZDDD^DDDNDEƑ EEEZ E\"E~7EgEuENErEEE*EbFFޗF6$F<&F^HFʘNFhFnFxF~FRFFFRFF>FzF֜FGzG֝G؝G;GfUGҞ[GfGjlGGGjGlGGGJGNGGGơGơGHNHrHr&H1H5H@H*CH2QH^HޣcHfHhHqHtH H.HHHHHH>HHHHHIIIBIJIN$IT&Iv6IʧFIڧUI:fIjIyIIbIdIIIIΩI.IIIIIJJ$J(J7J8J:JIJ.\Jv`J~mJJJJJޭJJJJJ:JnKvKK#K$K;KCK®JKMKRKiK*mKBKʯKүKK2KnKKLJLL0L;LbYL~nLڲpLrLL>LBLLLLL>LFLLMMZ*MOJOfOOOO"O" PPP !P.Pf;PZP&oPPP^PbPPNPPPQJ Q~$Q@QEQRQ^_QdQQQ Q2QQ>Q~QQQQQQ&Q2Q:Q>QNRRSvSvSS,S8SASDSXS&]S*dSViS^vS|SSSSS:S>SSSSSSS"S&T&T,TETHTaTfdTjTT TJTNTTT.T2UUU$UFUzTU_UdUoUU^UbUnUUUU.U2U>UUUU V2VF$VN(VR3Vb\WBqWWWW*W.W6WvWzWWWW&W*W.WnWWX"XB(XF-XN:X@XHXSXXXzX6X:XBXJXVXXXXXXXXXZX^XXXY Y2 Y6Y>Y~$Y,Y7Y[BM[Q[T[Y[f[l["[[[[[[[ [[n[v[z\\\*\.0\2O\T\Y\f\l\w\|\"\*\j\n\\\\\\&\*\2\r\v\\\]]6 ]: ]>]B]J]N]f]j]]]]]]]]j]]]^2 ^f^^ ^+^0^;^2@^6O^~S^V^a^w^^b^^^ ^>^~^^^^^_#_"/_.=_6F_v[_`_g_l_{_~__r_~_____`N`R`f%`z(`~=`F`P`j`s`t``&`f`j`````6`:`n`ra aaaaa.aFaMaZaZiajoav|aaaaabafaza~aaab"b2b>%b~4bHbQbfb*lb.tbBxbFbbbbbbbbbcZc^cn$c(cAcXc6^c:ncJvcR~cZc^ccccc ccRcVcjcnddd:d?d@dad&jd2ydvddddd2d:dBdJdRdZdddddd2d4dVe!e%e+e1e:elgB{gZgggggggg gJgjgvgggg^gfh'h,h&/h*@hvDhzJhPh]h`hfh:mhnphr~hhhh"hbhrhzhhhhh>hJiN'iv3iAiJi_i`ibi>{ij~iniiiii iiRjj j!j2j:LjZTj^vjjjjj"j&jrjjjjC@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1>jk$k*9kz!BnN!Vnf!]nj!enr!knv!tn!n!n!n"n"n"n"n>"n"n"n"n"o"o"o"o#,o.#8oF#Eo#To#ho#oo#po#xo#|o#~o$o6$o>$o$o%o&%o*%o%o%p%pn&pz&#p&(p&+p&IpN'NpV'QpZ'ip'vp(p(p6)p)p*pj*p*pR+q+q*,qr,(q,4q*-:qv-Jq-PqB.`q.iq.rqR/}q/q/q0qV0q0q0qN1qP1qr1q1qF2r23r63Xr3er:4ur4zr4|r4r5rr5rz5r5r&6r.6r6r7r 7rZ7r^7r7s 8 s8 s8s8s>8,sb86s8Qs9js~9s2:s:sN;s;s;s;s;sZ<t< t<t<t<t<t=3tn=4tp=6t=Dt=Qt>Ztf>\th>^t>st>tt>vt?tZ?t\?t~?t?t?t?t@t@t@t@t:At@AtbA uAuAuA+uB,uB.u>BCuB^u*C`u.C{uCuCuCuDuDuDu*EuzEu|EuEuEuEu FvFvF*v.G3v~G4vG6vGRvGYvGavGgvG{vBHvRHvjHvHvHvHvHvHvHvH wIwJIwNIwVIwZI wZI3wvI;w~IBwIUwJXwJZw2JwJwJwJw"Kw*KwrKwvKwzKwKwKwKwLwLwVLwZLw^LxLxLxL*x^MExMUxMjx6NoxZNxNxNxNxNOxOxOxOx"PxPxPxP8y~Ray2SySySy.Ty>TyTyTyTyTyTyUyUyVUyUyUyUz&VzVzV1zV>z*WCz2WXzW]zW`zWhzWyzX~zXzXz XzBXzXzYzzYzYzVZzvZ{Z{Z{Z){J[.{R[8{v[P{[T{\V{"\p{F\{{\{\{\{\{&]{~]{]{]{]{"^{z^{~^{^{"_{&_{._|6_|v_|z_|_|_#|_&|_4|_7|_H|_N|`S|2`c|`l|`|:a|Ba|Ra|a|a|>b|Fb|Rb|Zb|^b|b|b|"c|&c|vc }c}c(}d6}vdD}dV}eZ}"e]}*ej}ren}ey}e|}e}6f}f}"g}&g}.g}4g}Vg}g}g}g}2h~bh~~h~h~h!~i(~i7~Bi:~Fi@~Jis~i~i~i~i~i~i~j kkl l"l&>l-Zl6vl8zl=l@lFlIlLlNmRmm nfnnnnnoo&o*ofoo+o0o;NpEpIpW q[qfFqmZqxqzqqrrrvrŀrʀrӀ6s܀rsvssss6tttCfuTuXu[u`ubu{vnvvŁZwʁbw؁w܁wwxrxx y+jy3vy6zy8zyFyMyPyo>zuBz|^zzzzz>{B{{{ɂ{̂{ق"|܂&|n|r||| }  }b}*}9~Sr~Z~_~o~jBЃ>F-:\apt&z|z҆bIVJx}*>~DžҋȅԋʅҌ*+JŽ^"f.h.v}vzņҐȆ֐Ն.؆2BZ(ʒ6"FvNP]֓dhjBFʇƕ̇ʕnp &*~,:ڗ<ޗJ6L:Z\jlzJ|N6vΈr؈›"v "-;rGUaoR{jž""vzʡ&3:8><FILYesntrxzң֣.2͊ ي܊v"*]:bBqt>Vɋ΋6݋*(4EWfclΫ{&.2vR^ˌЌԌ­ F N$R6IUr\~kְ6BBα܍RV #.24CN2W>owxbfn֎Nގf^"*ʸ,ʸ:"A6HLJnpֹ|" bjȏՏ: !>6ƽ@G"UzZ`mʾR ɐnАԐ(J 37"DP_*c.d.oj^ʑԑޑ&""%*BOS`d6ZZ,03>RzdizJ2rv"2f(JS \Vj^q˔B̔DΔfBF#&F^blw:ZΕѕ֕>f+EUvdFɖ^̖^vz Rr"vOaVty:ʗfϗnЗnؗV /8BLJjt2ИNؘRj +",$.FBfEjetx{bș̙*>%*?Nv[`bɚ>ޚ >~ (=D.E2MFnnśzԛ؛v6K^L`N"͜ &n1>K>NB*jǝϝ2*(?rOX\"n}jŞ2ОrӞzݞNVZ@EU2_row&:BŸJӟݟ6KNSdZ*6Ǡ̠ r0><JXg*:ġȡFNRUV\rm~"z ֢z  b    ! 9v V ^ a pb  6  Уݣn&0CzPY \lf|>ˤ&ؤvnz~ $FJ[o2|jΥۥVܥhޥ Z;br*v2x2Nj6ʦۦܦަ6^b069JB[flt|2:J ŧ ֧6!!F"J"""/Z#A#R$\$cV%l%x%&j&&Ĩ'ըN'ި~'''''&(*( (-(0(S*)Y.)`J)iR)lV)))))****R*©V*ԩz**F+++-B,6r,;,H,L,Q,X-\-t-|-~-ݪ.//f/+/70P0T0\0e0^11111112ȫ2ͫ2ի*2ث*2J2V2f2r222'223<F3@J3J3U3b4j&4{r44455Ĭ5լ5ެ555V6Z6b667#7073"79*7Dn7O7_7k 8l 8xZ8}b88889R9999ʭ9̭9ӭ*:z:::::;;'v;6;O6<T><[<v=x====F>J>ͮ>Ю>?v???@8B@A@K@U@Y@^@d@g@q@{AA&A2A>AJAJAjAįvA˯AܯAAAAADD2D >DBD D%D,D5D8DLEQEX"EebEsE FZF^FFF±BGӱGرGޱGGGG.H2HzH~HH-H1H4HAI]vIfIjImI"J&JfJjJvJJJJղ^KKK KKK$K,K4K;K?KDKPLULYLd&Lp2Lu:LJL^LnLrLvLLLLLͳBMMMMMN N%N+N.N;NO@VOMOXOiJPP:QBQQQ´QʹRRRR6SjSSSSS! T)T,T>6THBTORTVjT\vT_zTcTiTvT|TU UURUVUUеUFVNVVVVWVW ZW&fW3W8WKX_XcXfX{YnYvYzYYZĶZֶZ޶Z[>[F[R[[[[+\/\2\G ]\Z]db]gf]p]]~^^^^*_2_:_ַ___*`2`>`B`v`z``2a: a=aGNaKVaTaXaaadajaw&b|*bjbbb*c2cøzcǸ~c̸c۸c߸cc2ddd e#e'"e8re@zeC~eMeQe\f` fhfsRfxVfff.g~gggĹgȹgйgڹhNhhhhhh%.i)2i,6i=iKi[6jc>jfBjo~jsjyjjjknkkkκlֺlٺlVl^lfljlrl~lllm#Zm2m:mJmRnUn^BnbJngRnjVnn^ntjnnnnnoFoJoûoǻoʻoջoٻpܻp^ppppppq(Fq,Jq9qSqWrdFrrrr6s>sBs~ss̼sټ*tܼ.t:tzt~ttuu u)Ju7uGuOuRu[6v_>vl~vvvv wbwwwwƽwʽwн xݽJxNxrxxxxNy y<yQFzUJzdzuz:{{{{{{{*|.|;n|۾|} }}Z}b} f}}} })}:~@"~F.~Sn~Xr~`z~k~p~}~RVZ˿ϿտNRZ ހ(2,6/:FNQ[ځ_gzƂʂ JNZ26v%4ʄ?JJPNabBFƆʆކBF Ƈ$ʇ5އE"H&Sf`dl&*j>~Š!&%.4F:JEP΋Tҋbit2rvƌʌ RR֍ڍ "38NҎP֎Tڎk.p2{r֏R j n $&Ƒ=&B.NR`^sr֒2ZΓ:BFjjʔ+B8\:~OPZ`ĕb{.6v~bfnF1>6~B™Q^Z`^jorxĚzNƛޛ2:zœʜ  bf#4 8;D"SjWnZvimžpʞ{ rzD@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1@>~ bjޠ#'/;bLtx{ r"(Jޣ#*B,F3zFҤQ`Vnr¥ƥrƦΦҦҦb   $).3&8.=6@:EBHFPJTR\Zbfimpx~J6>J R),8:KX֬\ڬbrz­ƭ"^jzҮ֮ޮn .b,7\jarj{α^fFJbƳ" z ʴ+ 0 2BX\_n6!ҹ$ڹMbsZw^zfnv»F¼Ҽڼ6>b>B+־>2KrVXZڿly^~fJ:#&<CFDFK~RYb2h>lBtNwRbbVr^bn'2R?@BYkFoJ}RB09B Ufbez".:JR^nr *0R(v-1<DIPV]ajnw"~V"BZ " 8"Z1z68KO\ail~2>n &.";B<VHbQqBtTvvfj#(,0"UZdg"p2s6J">~r "b/0FX*\.iVtz.JR:>BFF 8R@ZC^IjLnVV^b:>Zvz :>*,:2<6EILe~J^,1@ZF^~"6F!J&R5BMRdFpZyjrz.@b  08@FRYag{>~""N&V,^1f4j9r>zHL\hq.:>*r%(BS&Y.^6a:fBkJuxBRV^#W*ns*>/9LNVisJ.~&2:z3<[nxfRZIJNR\|"nz f     6V ;^ I o& t. z  n v   b  'R4ALBf"&Jz2B'V,ZC[jo|*zZ  b)LRTWoRbZ  r14GR[sj  F!!F""z## F$J$/$8$D^%U%r&&&'V'''((^(b(j(((( ((6).)A)N6*P8*RZ*+j,r,v,~,---$/)/0/6B/:b/E/J/M/d@0fb00Z1f1j11 2&2.20Z23b2L2Z*3`03bR3333^4445"5*5555B6F6 j6!6. 727Gv7U7`8j^8s899*999::::;;';;b<m=w^=zb==>.>> ???0X@2z@K@TAcVAhZAmA}AARBVBBBBVCCCCCCD"D 6DD#D&D=6EREVEgElE}>FFGGG*H.HnH vH"H7&I;*ILIPIaIp&Jt*J|2J~6J>J~JJJJJJJJJJK"K*K.KzK .L#L0L6LIM\NuN}NNNNN>OOOOO:PPPQ^QQQRZR!bR)jR-nR1vR4zR8R:RNRRRk6So:SSSSSJTRTTjUrUU &V.V.VJV(fV,nV;VHWLW]vWa~WdWfWwWWNXXXX*Y,YNYYYYY ZZbZZ.Z;ZJ [R[_*[t[v[[[ \:\\\J]]]]&^<^U._t_y_``>``Ja bbb b"blcwd*dFd^djdd2ffh$h6nhGh_FihVil^iqfiBjHjjjjk&k>kRk^kk>ll'l(l*mn>oFoqqqq>qTr[r_stttt&u>uu uv7v<vKvLvNworwwwwxxxxxVyyy.z0zRzvz6z;zI>{h{m{||n|~||}z}}}}N~ ~~&$.'26;LRsjڀvƁʁBN^.3IZW\^z.>^~"ވ/.F^"krltn.J‹^brލ.&1ގVnr{."rvFB5> S`i"n*{zҕڕ6r ȗ&$.'2:EI^Zb^gx26Қ2rz›ƛ0:ZHR W.ak֞u*~ҟ&zΠ"JN¡6"*-2£=6DBHfKjXktRڥFBB^~Ψ֨/6;EI>ObPbX~^ep6y| vj6z*: گ 3FOn`iZrZZvγ vڵF ƶ2v/5282?NLPSbnpxN NƼ  &~ʽFb$7&JSdvmv&V:n  .! 2 ; E V J\ c p t >w N    V   F J       >C H Y .\ @^ bt    b  V ^    N f j9 C .W \ m  t     " ~        . v z  " ? 6@ 8B Z_ ` b }    B     : > B   b j" - 9 6F M Q \ ` k B     >!)28XNebp|*.6v2 NV^d8C GPV6\Velosx}ZfrZ."j+r4z7<GKY beJjnrb R V&v+;VfgV"~n^ ~ #,/AZ\mJ:*.j")DNUn>&f~*$"(.EMVgptw{"J:M]>b~u~6$)2GvTX^i.>%R8EH{6   V     n    ^ LkrpyNf#B&GfPerBxF~ZZ^ & %.>DQTZeZ{j"1^>NQW\_b ~      .!/!4"=N"R"_"d"j#uf##$F$N$R$%2&r&&'*N'0b';'Q&(^f(i(t(~6)))))))f*n***++"+3,4,,6N,Mr,Qz,g,m,p,--v-~--:.../b/'/*/KJ0L\0N~0m0v1x112222363>3~33 4 B4% f4: 4G 5R F5[ 5d 5y 6 r6 z6 7 7 &7 r7 ~7 7 7!7 !74!z89!8G!8a!:9f!B9u!9x!9z!9!9!n:!v:!:!.;!6;";";("*<9"<M"<R"=g"=s"="F>">">"?"n?"v?"?#&@(#@G#An#~A{#A~#A#6B#B#B#6C#C#C$D $D$D$D$E5$vEH$EY$&Ff$vF{$F|$F~$F$ZG$G$G$ZH$H$I%I%I(%I-%J0%JA%zJJ%JO%JT%J[%Jq%NKt%RKx%ZK%K%&L%L%>M%M&VN&N&N&N3&zOF&PK&VPN&ZP&2Q&Q&Q&2R&R&S&S'jT1'U:'UT'Vs'W'zW'W'fX'nX'vX'X'*Y'Y'Y (Y(.Z2(Z8(ZW(B[d([w([|([(B\(\(.](](](](J^ )^#)&_$)(_&)J_C)_G)_J)_])`o)`t)`)`)`)a)^a)ba)a)a)a)&b)*b)b)b*2c *:c3*c7*c@*cF*cL*co*d|*nd*d*>e*e*f*Rf*f*g +Rg +g*+g0+h2+&hb+h+i+Fj+j,k,k,k!,k%,k/,l8,l>,*lD,2lG,6lQ,vlZ,l_,ll,lw,l,2m,:m,m,m,m,m,m,2n,n,n-Fo -Ro-o"-o'-o=-pD-pN-"pd-vpg-zpk-~po-p|-p-p-p-p-Bq-q-q-qC.sT.>t^.tg.tw.t.:u.Ju.u.u.uE@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1> .u.>v.v.v.v/Jw /w/w/w/w6/.xK/~xd/xv/^y{/fy/y/y/z/ z/Vz/Zz/^z/bz/jz/z/z/z/z/{0{ 0{ 0{0Z{ 0Z{%0b{(0f{0z|0~|0|0|0|0|0|0}0}0}0Z}0^}0}1} 1}1 ~1>~*1~;1~O1:\1i1v161v111161:1n1r111ށ1111N1R122 2‚22 +2R/2V:2@2K2P2e2Js2x222F2J2222B 3Ά3҆3ֆ$3U3Y3\3i33^3f3Έ33r3334F4J4+404E4ZS4X4m4 {4V4Z44444B4F4J444ҍ4ڍ4:5z'5ʎC5L5RT5Za5v55B555ސ5.505R5v55ڑ6R6V'6Β,6ҒC6JH6N_6Ɠd6ʓ{6B6F6666~66ޕ666.6R67–77J$7R*7^1747677ޘ77b7j7n7v7z7~7777Κ8:88*.888D8bG8fT8d8f8|8&8>88:8Z88Ÿ88B8J8N999.9zF9ޡP9.c9m9}9v9ƣ99N99999*:r:v:~::$:1:B6:J8:JE:X:]:&m:~~:ާ::*:.:::ڨ:ި:.:2:z:ҩ:ک:*; ;(;.;W;ګk;:;;ά;F;%<r)<v0<@<K<*[<`<m<֯}<.<v<ΰ<Ұ<"<z<±<<<:== ="C=i=fn=nq=rv=y===J===B=D=f=¶=ȶ=>J> >,>0>;>ZO>`>^d>bq>u>>>>>">>>>&>¼ ?*?z/?0?2?I?`?o?^p?`r??ο?ֿ?޿????Z?`?????F@@ @@@Q@T@a@Jd@N@R@@V@@@A&A2>ACARKA`AoAFrAJwA|AAA AA~AAARAVAAAAREB^OBWBZBgBjBrBuB~BfBrBBB>BBBDCVLCbPCfUCnXC`CdChCjCCzDFDND"D/DdDD&DfDDDD,EP.ErgElEoEEbEjEEEEE6ErEzEEFF(FFFzIF~PF\FhFtFbFFFFZF^FFFBG~G GG!G$G-G*0G.4G68G>GGG6GrGvGGGGG"GGGGHHjHr/HAHZFHbOHXH[HHHHH2H6HFHHHH I.I6 Ir-IPIRUIZ^IgIlIuI~I"I^III*IfIjIzIIIBIJIIJJJJ>JJFJJJJK%K*K&5K>HKUKKRKZKKKK KZKnKKK:L!L9LtL2LVLLL L Ln L L L. L6 LB LN M M M ,MN 0MR 9Mb CM UM YM kM wM M Mj Mr M M M M M6 M: M~ M M Nn Nt N +N " S" S" S" TV# T# T# T# .T>$ ;T~$ @T$ JT$ NT$ YT% `T% bT>% yTb% |Tf% T% T% T& Tr& T& T.' T2' T' T' U' U( Ur( Uv( *U( :U) >U:) AU>) QU) bU) fU) iU) |UB* Ub* U* U* UF+ U+ U+ U, UZ, Ub, Uj, U, V, V, VN- #V- =V . @V. TVn. aV. fV. jV. mV. ~V/ VN/ V/ V/ V0 V$0 VF0 V0 V0 V0 V"1 Vj1 Vl1 V1 6W2 AW2 FW2 _Wr3 bWv3 fW3 uW3 W>4 WF4 W4 W4 W4 W>5 W~5 W5 W5 W5 W6 WF6 X6 X6 +X7 8XN7 ;XV7 @X7 QX7 TX7 gXN8 xX8 |X8 X8 X9 XZ9 X^9 Xf9 X9 X9 X: Xz: X: X: Y&; Y.; Y6; YV; *Y; .Y; >Y&< DY.< XY< eY< jY< sY"= wY&= Yb= Yj= Y= Y= YR> YV> Y^> Yz> Y> Y> Y> Y> YB? Y? Z? Z@ ZZ@ $Z`@ &Z@ OZ@ dZ6A hZ:A mZJA rZZA wZjA |ZzA ZA ZA ZRB ZVB ZfB ZvB ZB ZB ZB ZB ZB ZB ZB ZB ZB ZC ZC ZC ZC [C [.C [:C [JC [ZC [bC ,[C 2[C 8[C >[C D[C F[C J[C L[C _[JD v[ND [F 2\ H 5\H <\*H D\6H L\BH T\NH \\ZH d\fH l\rH t\~H |\H \H \H \H \H \H \2I \:I \~I \I \&J \*J \.J \2J \J \J ]J ]J ]:K ]K #]K $]K &]K (]K *]L ]L ]L ]M ] M ]M ]2M ]JM ]^M ]M ]M ^M ^VN *^N .^N 5^N 9^N H^O W^bO \^jO k^O ^6P ^>P ^BP ^NP ^VP ^P ^P ^P ^P ^P ^P /_Q 5_Q <_R D_R L_R X_&R `_2R l_>R x_JR _VR _bR _nR _vR _R _R _R _R _R _R _R _R _R _R W`T d`T l`T t`*T `6T `BT `NT `ZT `fT `rT `~T `T `T `T `T `T ` U `U `U `U a"U a&U a6U aU "aU 3aU DaU ]aZV ^a^V lazV oa~V aV aV aW aW a.W a~W aW a"X a&X a&X avX aX b2Y bY "bY 'bY 1bY 7bY :bY >bY ObRZ TbVZ qbZ ybZ bZ bZ bZ bZ bZ bZ b*[ b.[ b[ b[ b[ b[ b*\ b.\ bv\ cz\ cR^ c_ cB_ cJ_ c_ dV` Kda Lda Nda bdb d2c dDc dfc dc dc d&d dvd d~d dd dd dd dd ee "e.f 'e6f 3e~f 6ef Bef Hef Jeg zeg ~eg eg eg eg eg eRh eZh eh ei eBi eBi ei ei ei ei fi fjj (fj 3fj 4fj Dfj Gfj Ofk Tf*k afnk hfk jfk fl fm fm fn fn fvn gn gn gn agbo dgfo rgo wgo g"p g*p gp gp g*q g2q gr gr gvr h~r hr ]ht `ht dht ght kht xh^t {hft ht ht ht ht ht h*u h6u h:u hu hu hFv iNv iv iv iv QiVw Yi^w xix }i x iRx ijx ix ix ix ix ix i2y i>y iBy jz j z jz jrz "jz /jz 2jz :jz Jj^{ Mjb{ Pjz{ Vj{ j6| jX| jz| j| j6} jJ} jr} jr} j} j} k} k} k*~ kl~ "k~ uk xk {k k kB k k k k k k: kB kZ kr k k k k l l2 l: lN lV "lZ &l^ +lf Cl Gl Hl Wlނ [l al hl jl nl sl lN lV l l l l l l lރ l l lv l m m m҄ mބ m ,m /m Wm Zm `m hm km vm ym m m m m m" mF mJ mN m~ m m m m m† m҆ m m m nF nJ nr n~ #n 0nƇ 4n· Bn Dn Tn ^n: in^ lnb tnj n n nʈ n n n` n n n‰ n n6 nF oV ol o o $o: (oX *oz Go Ho Jo go jo |o o o~ o o o o o o o* p p $p *p* @p Dp Fpʐ \p. `p0 bpR jpn p֑ p p pn pp p p p p& p p p p p q: qR qd q =q Aq Dq _qN cqV gq^ hqb qq xq q q q q q q q r r *r .r 8r& Kr Or Pr Tr Wr er hr vr^ zrf }rj rl r rޙ r r r r r r r* 8s s [s \s ^s6 {s |sƛ |s s sf sj sҜ sv "tN *tZ 1t 4t 6tž `t itJ vt t t" t> t t tҠ t֠ t t u /u: 7uB ?uJ Iu Mu [u hu: oun xu |u u u uJ uN u u u¤ u u uN uV uZ u u v v vb v v ;v& >v* Bv2 Ev6 Gv: Lv> Xv |v v v v v vn vz v~ v֨ vި v> vF vL vn wƩ w %wB )wF 5w Mw Xw ewB vw^ ~wf wz w w w w w w w« w w( wJ wz x֬ xڬ x x2 %xN ,xh .x Px­ _x cx lx^ txf x x x x֮ x x> xJ x x x x xN xb x xҰ x 2yv ;y y yN y y y yβ yڲ y޲ y> y y yB y y y yδ yڴ yڴ z z~ 'z /zε 2zҵ 9z ?z Ez& LzZ Rzj Xzz ^z bz ez lz sz uz z. z z z z· zη zη z zj z¸ z zf zj { {޹ { { !{& &{6 1{ 5{ :{ >{ H{ O{º X{ \{ ^{6 q{ z{޻ { { { { { {: {R {r {μ {ڼ { { { { {6 {N | | | !|* $|B -|~ :|ξ @| B| b|f o| x| y|ʿ | | |V | | |N | | | |F | | | ,}J 6} <} D} K} L} P} X} _}& i}J q}R } } } }B }V } } } } }F } } } ~ ~Z ~^ %~ ,~ 8~ =~ A~ O~" Z~z y~ ~ ~ ~. ~ ~ ~F ~R ~b ~f       & , 0" 4B ; @ G L Wf [n _r bv dv l p t {  "   .         ,j 1n 8 A D h m t 2 : :       J R Z ۀ  J N R  * b  C6 I: PV Vf ]n ` h l2 pR x  > B f f      ƁF ȁz ΁ ׁ ށ  b j     " 2 6 !> 6 8 ;& DB GF NN PN X \ c h l p uJ |   B R    ^ ɂ тB ԂF ܂   r v     " 2 -v 5 =Z E H M R gj p u z }  j n     f ˃ ԃ      . 2  - :" <$ >F Ib Jf f s  " F V   Ȅ& ̄* ӄz ܄  * N `   $ 3F < E M X6 jJ |n ~     ~  Dž υ" ԅ& ܅z    B D f 4 J Y: b o { J N Z ^     B ̆V ӆj z     n r  # ( 0j 6~ D H R X eZ z   B J    Ӈ: ܇     p ? D X bf gr m q x z }   6     Ĉ ƈ Ɉ Έ J          +* .. C M R X \ d h l r& w2   F@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1y>?     & < ^       /n 8 H QF sj t~ ~ B J   Ȋ ъZ      " j   # <v J L g2 pr y |   R f j   F   2 D f 6 > ? P X dV s     : r v Ɍ ߌ   ^     B )N > G R: h^ w  ȍF ύz ؍   & f j    " 4 8 @& D6 L> PN XV \f dn h~ | ~ Ŏ Ɏ. ю6 ՎF ݎN ^ f v ~   0 F. Mb Pf a j s t n   & v   > + 9 C D L oJ sZ {b r z        ܐ^   > & 3 4 6 Sr b q ~Z l    ̑. ՑR ~     : > Z c d yb ~n n    V Z ɒ Ғ F! H! j! !  " .V" ;" <" >" dF# iN# lf# # “Z$ ȓp$ ʓ$ $ $ % :% >% $~% ;% X& sn& |& & F' J' R' ' ' ڔZ( ( ( 2) 6) r) %) IR* LV* [* .+ j+ + ,  , Εj, ו, , B- T- v- F>. OJ. RN. fn. |. / / b/ / / / 0 N0 ɖb0 ޖ0 1 1 ^1 1 1 /1 02 222 Sb2 Tf2 c2 f2 p2 2 2 2 3  3 3 &3 *3 23 3 Ɨ3 ӗ3 Z4 j4 n4 4 4 "5 (^5 95 L5 kB6 t~6 6 "7 47 V7 7 .8 _8 `8 b9 q.9 r29 ~9 9 9 ę9 ̙9 Й9 ؙ9 ܙ9 9 9 : : : 6: :: ,J: >j: G: H: J: R; ; ; "< ʚ< < .= z= = = > ':> +>> ,>> <> @> B> N> R> Y> f? h? j>? n? r? ? ? ? ? ? ? @ ›@ ɛ@ ֛n@ ߛ@ @ @ @ A NA bA A #B 3bB OB r&C {bC C D D :D ӜD D *E :E JE RE bE jE zE E E #E 'E LE e.F F ڝ.G :G :G G G G H H fH rH vH (H .H BH DH kVI tI I 6J HJ jJ J J ŞJ ܞJ K *K .K 6K :K BK rK (K 9K DK HK Y~L |L nM vM zM M M ğ.N ϟN N N .O LO nO 1O 9O IO PO UO \O aO h P kP sP ZP P P P P P P P P P ŠP ȠP РQ ӠQ ۠*Q ޠ.Q >Q BQ VQ ^Q Q Q Q Q Q Q Q %Q (Q 0Q 5Q :Q PR ^R d"R g&R p2R t:R |FR JR ZR bR fR rR R R R R ġR աR R S  S S "S 2S BS RS ZS $fS 4zS DS TS \S _S gS kS sS {S S S T JT VT ZT bT ֢T ܢT T T T  U &U BU JU VU ^U 4U 9U LU \FV `NV cRV kZV n^V vfV yjV zV ~V V V V V V ģV ɣV ΣV ܣW W &W 6W ZW ^W $W )W .W 4W 6W CW KW OW RW WW \X fX iX qX t"X |*X .X BX JX ^X bX vX ~X X äX ̤X դX פX Y Y  Y Y bY |Y Y 4Y FVZ RZ bZ sJ[ [ [ [ [ [ [ [ å[ ĥ[ ϥ[ ӥ[ ٥\ ܥ\ \ \ :\ B\ N\ ^\ j\ j\ z\ ,\ 2\ D\ P*] X:] \>] aN] fV] nb] tj] ] ] ] ] ] ] ^  ^ ^ ^ 6^ ˦Z^ ̦Z^ Ӧf^ ަ^ ^ ^ ^ ^ ^ ^ 4"_ HV_ Nb_ Wr_ \z_ a_ g_ {*` z` ` ` ` ` ` ` ` ` ŧ` ȧ` ͧ a ҧa ק*a ܧ:a Ja Za ba na na a a a 5b ;&b D2b J:b L:b _vb dzb ib tb b b b b b b c c Vc Шc ըc ۨc c c c c c d d $Fd 0rd 9d Jd Od Td cVe dXe fze e e e e  f f 2f ԩRf f f f f f f 4Bg 9Jg <Jg Jng [g `g rg :h Fh Nh Ph rh ƪh Ѫh 2i 6i >i Bi Ni Vi Zi bi fi (ri -zi 0~i 8i <i Di Qi ]i gi li qi vi i j j j "j 2j ëFj ̫Nj ԫZj ثbj ܫfj nj vj ~j j j j $j -k 1 k 6k ;k @"k E*k L2k N6k b^k ebk lhk nk k l Vl ^l l l l ¬l Ȭl جl ۬m Vm jm rm m %m +m 1m D.n G:n P^n Wnn _vn g~n kn sn yn ~n n n n  o No Zo ~o ío ƭo ʭo ͭo ԭo o o o o p p p p p p 6p .Np >bp Ivp Lzp Qp Tp Yp \p ap dp jp pp vp |p q *q :q >q Vq ®nq ή~q Ѯq خq q q q r r "Rr -br 0br 8rr F~r Mr Pr Wr _r lr |r r r s s s &s *s Rs Ưbs ̯rs ܯs ߯s s t  t t t 6t Ft Vt ,t /t Bt Et Jt Pt ^u d*u j:u |~u u u u u u u u v v v &v *v Ű2v Ȱ6v а>v ְNv ܰ^v rv vv v v v v w w "w (2w 0:w 4Bw @Vw Hbw Pjw Snw Wvw Zzw _w ow w w w w w w x x bx ñnx ˱x αx رx x x x x x y y "y 0fy 3ry ;y >y Hy My Py Uy Xy gy my xy {z  z z "z *z Jz Rz z z z z Ȳz Բ"{ ܲb{ r{ { { { { | | | *| F| #N| (V| 2f| A| L| Q| U| Z| `| n| t| z| B} N} } } } } } } } } Ƴ} ˳} г} ճ} س} ݳ~ ~ ~ ~ "~ *~ b~ j~ ~ !~ %~ -~ 9~ A~ F~ K~ Z~ _ i l" w: |B v ~    ô ȴ ʹ Ҵ ִ ڴ  " 6 > J N Z $d & D R \V d^ y |      f ȵ~ е ΂    V b $ + 3 ; ? G M΃ Rރ X c i" o2 v     Ƅ ʄ   Ķ ϶ Ҷ" ׶* ڶ. ߶6 : B F ^ v    ! $ ) , 1 4… :څ @ F L" \: hJ w^ zb z     ֆ · ŷ ܷ. : n ~ ~     އ ' 4 D Q ] b" l: qB yJ |N v   ڈ    " ø& ĸ& ԸR ڸb r  ‰     * : &J 8 ; IΊ M֊ R V Z ` d j n& v. y2 ~B F V Z ^ b j ~    ΋ ̹ Ϲ ׹: ڹ> N V Z b r z    'ƌ ,Ό 1֌ 6ތ B H N `b cn k n x |   ƍ ֍    * º: Ժ~ ׺ ߺ   ʎ Ύ ގ    "& '. 0: 6z @ D KΏ T `& eb n u | ~ Ɛ         & * . Ļ6 һ^ ػn ޻~ ‘ Α     " * 2 B !F %N +^ .b 2j :r ? D H K O R ] ` d lƒ    & . 6 J j r üz Ҽ ׼  “ ޓ   & : ,N <b Dz I N S W [ k wΔ       . ׽j ݽz            . %> *N 3Z >v I V [ʖ `ږ e k t * F        ¾ ž J V b n ~    ޘ  !. $2 )> 4Z = D F M Rʙ W֙ Y ^ c j. vv xz ֚  * v  ʿ ѿ ؿ ڿʛ      2 6 F %R )Z 6r > F K P W _ dʜ lڜ p r u z    * 6 > J Z ^ `    Ɲ ҝ ڝ ڝ       . 2 > N N #^ +n 5 6 ; > @ B h s w b v      Ÿ Ɵ ֟          & !. %6 *> 4N Db Pv U~ Z _ o {  Ơ Π ֠ ޠ      . : J      / 8 < A F K& P. ]B iV     " ( J    ֣       ( + 0 4" <* A2 E: JB SN cb ov t~ y ~    Ƥ ڤ       J v     $ ( - 2 7¥ <ʥ Gڥ K V Z a d h j2 f j r   Ҧ    " 2 B R b   " & ( 0 2 7Ƨ ?֧ D I P: XJ \N gb jf pj xr   Ҩ    ^ r    ީ       . j v  ( , 7 < > h {N V ^        " & < ^      +֬ = E XJ \N e h l r {֭ |ڭ & ( J  Ʈ    * : : ^ v |  Ư % B J* XB `J dN iV p^ r z  ư ư  & . > r ~  ұ   . . z   ² 9 B YV db u   : r z    ʴ  j ( * ? N" Yr \v d~ nζ sֶ wڶ * .    ޷    : > J R V Z   * ,B 3v J N XV o r |F   v        : J Z ^ f v z / 4 7 KR QV Xr ]z `~ h m t־       Z n     . >   ) 6 8* ?^ @r G P ^ b f m. tb xj     v    ^ % ) 0 72 FV IZ X ] d m p   : N ^    6 J ~     " b v    ( + 9J =N AV H O S b d sZ xr       2 f n     N b    ^ b ~   ( , 4 7 @* D> OJ [ \ a d tF xZ f     b v   : N  * >     7 : I L oz r G@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1a>^    "    > R Z ^   . 2 +~ . = @ O R ^j b~ r v  R f n       B v    . : v z     /: 4> C E L P W X ij w {    " j n     " V b    & 2 'r * D L [ _ `& p r w |   r     V Z b      'f )j .~ ? H V Z ^ eJ l~ p     2 v      2 :      /F 2Z U c p t }2 v     2 r       b v ~  ( - . > M6 Vr t v  6 :      B F N R   ) 8 A [6 \8 ^Z w~    * n r ~     * 2 F b ! ; > H N _V hb v z ~    b f     6 J ~    & r v ~ % , 0 ?6 D: S X y  * *       N V   .    - : G H W" Z6 nv         Z n      , / >^ @p B M T X _ b N Z b n     2 : N v     j l  3 CJ N o> tB       R V   " 2  7> <B N V pV   6 v   R      & Bn M ^" en       " * r z    f   &6 -j 3z 9 < G K V6 b d l |  F N     ~      R   & % ? F& Sj ] d p t f n   & .    n  ' * . 4 7 < V^ a r y^ n r z        > B   ! ! :! I! T! ]B" dv" r" {"#  $ $ $ Z$ b$ n$ $ $$ +$ 7% :% HN% LR% R^% Tb% Yn% e% h% t% x% & f& & & &  ' J' N' ' ' ' ' *( .( v( z( ( ") %V) f* j* * * * * * 2+ 6+ z+ ~+ + + + + + ':, *>, .b, ?, G, V- \&- k~- z- . . *. .. z. . . . / / "/ &/ 2/ v/ z/ / / *20 -60 :z0 @~0 F0 H0 M0 Z0 `0 m&1 p*1 z61 |:1 1 1 1 1 J2 N2 2 2 2 2 N3 R3 3 3 3 3 3 -24 O4 u4 | 5 >5 z5 5 5 6 j6 6 6 6 *7 67 z7 7 7 7 8 &8 +8 38 @8 D8 K29 N69 [9 h: l2: w: : : ;  ; ; Z; ^; ; ; ; "< V< < < < < < = = z= = = M> U&> b2> j:> xF> z> > > > > > ? f? ? @ &@ 6@ >@ J@ N@ Z@ ^@ !@ .@ 32A 8~A ;A @A EA HA K:B PJB UZB \B dB mB z.C jC C C C D D BD RD bD jD rD zD D D D E E E E :E E E E E E )2F ,6F 7F ;F BF FF IF PF ]RG dG qG uG H JH NH H H H H .I 2I zI I I I J  J JJ J J K "RK )K 2K AB 0 0 0 0 0 0  0 0 0 ```` ``````FDDDD 0 ````a 0 ` `````!`` 0 ``@ @ `0 0 0 ```` xPP@Vj@X@ TPP B @( (@`(@ (@ P@P { v/RP@ TEj @ {*\L*$a_ph !%JZ T @>0 @PH @@ @@ @ *` V,( P,Th >@AB`p@` P@j0rP0B W@(@` `@@ xU  -8P` B X ^yT@v@  lC`eBXUW@hPU@U@ V0TUU  `PAH (P@`@ HTUhTU ,T@,T@ | 5h0 C P ( `*jl@  B,jP0`@UC fC *jPUX @C(@C R 5`@ 5`@UC UU5+Z05/*Xp0 U\ @R+P@@@@`  T  @x> ! aaa@ 0`rT@ `(@!0 0 `(` B0 P`!\4 @@*  @P[Z `@CC B | ,p` pP 0@ X `8`*`x@@Q,8CX0\RC@(?*@UZC |E~A(Cp46  p,'P,@T@@)] :* UV V0 0" <  `b  C@ 3h |P j#P Z pD @ `^ `xxp@ZV@ T(BU*CPhTUUX  *Z4U*  *CPh@B @U3T`,*@U*jaaVhBVXPTZ@P@`S0C *HP+j5 V5   | CUjoZP TUC ` (ςcxT> T$u@ PUP ``pt@ PTSBXCI t* `@0`@@T,@*(@P@ @:l*h`@ P@ T U `@XB@@@}0PÁa @*(@2@@@\  B@( U0 5@4@ 0ЋJ@H` B (@Tʬ** TTB@ ` `(`@>P *@ @ PfD T$T( B%@ (0@Cx *P*T $TAh 0T UC +x- ` `0  BUU! @@@ @P0  `|8 ((*0TUPC P4@ hh @ `0@x  @U @@BPP @`x!@  0U  U `u*W $8x B  (@U\<4  @@ B_ \*xw`PU 59`@PUX@CU@PU`aPUP@@XPX@ *?PS 0@ pT*@U8aaC @-,*@8 `((p-@@( >t`(p8@8 P -@[ n  *x`(Pл&  p l , B P! UP8@  8@p(C8T! Pap(UCnP'CWp(u(ppx(ppx(]8tu8@(Cp`((XB(*W @(| B=\~(khzP [C 5 UCP(/T *.*P@v'P_0 ` >?@( C@K0 PP @Wh0`i0 PPlC@KC `P0  Py@5C@@>U@e P[B@(p 9^B@(pU_~XP / 0 \@>[C*0O`CU@@-*8T@ @ P-@-@ .@h @ 0 W jUT# X0T @C@(|PPU`Tpx *@@*p @x T(p@@@@@*PC}|r+ `hC0l `50 T@(_@   @UPH(8  B@ p PpP T0( 0P < P@XT P U U*PP``**C0TT`A("("2p~x@< <!/ 0p8h0   xx*h<0@|TB*P T@PRV*@-jUT @ * `@x PtPpT @B (XT@@ ' T* BT0@ࡡ `8 @*OP@ T* &00p@0u &T0AT0A T@@h0*T*Y@ܨ @TP@ *U0C  Hp!!* HpQT!U0 * BPPG* @Gy`p@*8pPACt B^ @ 0 w[ aNP :@UT'8.`(T`@ [`pn UC[U@ @* (* =@PU0 `6r/ +|BaP`P0P@ jXB5X 0.+@(P' T v*@@@ ZP@U(x* `@@*@*(*@UP a+@-p*8D"4C PW`+Zp@UTUPU*PU@UU 5BU @@&L @P@PUP* ``hV(`Up@ X@ *hU*Z! `@@ P  `( C@hT` P`8* BPP*@UPȄ BU@< rT@ *jP0!@*h0` T<@ߏޅ@B@@P P+*PPC@Po* @*U B h@xP ߏc:PPT@@(VPPP 0Z {tPUx0@%n(j@P@ `h @P~   ` @ `(8 *0 V`@aP8t  U `B@B 8T@Pp( **C<B@ 0  *8 _(PPtaB `BT :hpB @ 0a@,@(xC@8 `(xC@8 B  *BPT B a.8@(X088@(X08'YB@,B &`B,PV(YVXB@@((Pp NB =@ B *  Z00T! P @XTxC T*@h@*CX0PBaPP*C@U"VCU*ɰJCU `(ۅ!TaT !P!C+@+@ `U V `@0fBp((*PUPP`P@ *C( P V0TU/ @ y`䀁<PV ,8 ,@QT0|0q*@ @B T@A @   @P`޹a a yv  |}hϏ,UATn*IFPUyC @Pp@U @ ( t>`0p-Z@@pC @ T UT BV*@ @mU-j1`dUU 5hLc@ |TUU00 }(I?x`ZZC T \([@-jPUUpHU@P U$*@-X@*؅n *Z0vU TUPhP p` @-jPPUTUPЪ`UI UP l@@@@P PUUU00T PT Z* *@@ @ B0 `@ ZC*  *|  h  0 x@@ha}>nT / (CPB@ *( +8*x+ZU@(P@@AT= |` TV0 T*7*BB4B~(C_u] z-@6x>04X `` T@@@C T0, AV 5  `@* B PBU #@  *Z @@(@ > *CT  A *Hh*!L@@xX@(P@@8@P 0X !U ~8@P 0X ( ֪?` @W0@ T`hP*:+HU$+Z0 5@U BUPP+HU$+Z5**-(ZUP  PPU(ZP@*U0VUP PU@UPCT0 +YU[jPP UP`APT* P*@T NI΀P @P @@8P|vP+@H h `0Tx @Rh `0T a  0@ @G@(@  `@ +@H@@8Px r @W   L` Bt2UUP*jPW`@P8CU$`,TU0` T \+ P C @(PT@~@P` ` $pB<0[ 5>Tk(C U @ P00 T jh`PZZ0T-@-@T-@- @ PZZH P-@l/P-@?@ @X@ V2 H@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1>}@ `U 0 VЪ0X+2 @ `U* @:j+! PPU apP#\@(({}T 0XP#(S5`@@ (zժ0XP#(:j+!  :j+@ P4 @@ @?TK`@]PU@Z \k((PP `0XT0d`+xaUU@UP*:*jP@P@ T  5(j  (@]`* V~TU$C `X<+8T   U pĀBUUP @P@ @@   a( UaaP-W@@  C P Bp@0T*( PP@P+W`P 0  P@j0 a8TU!T+ +8 e&@hUP@@ @(H@@B@N@ v*X@0B C@@@ @T P  B BB*@ \@ Tpp*8 5+U48@ \@ TZC8T 0@TPa'w * @H9!%\@ (h+@  @ $@TH P(|@*G P*@(T0@U 0\ `@@* *PTP1\Z@ P@@` P @ @P  P@ LU,< `g$@d`Hx@T  6@(@  C00p$@ z2 *C` 0 @Z0`P  DVU @J(8 @?1@ @Ԫ`7 pf@|>h @nUa0 0 @@j0 a0 0   `j0 a0q< `j0 a0U 6 ` z@ `T C H@h  CT@!Z\R0`(P)LP)L(lC $(^PA  @ `$ * @Up  U C@*W@X@   @UPH(8@PT `8@ @08 `(P0@@(XP'[p TV@`*PNV@(*P`P@A `0*j@( *8*+ 0T@( >B *aCZXPP3`f恄LU033lf P @ @m۶8@^0,h pp@b8FX04*8,C@ #m۶-ضmE8 B #XUcPU D@ @*0=x{ÿGa`<>>y?|V` $ (Ir `@"B @*" @ @ @ " (W`QP0`b"?01?01?01!Ta?%WUUQ^( BQZV18XPMpVpC@ 08,AC ~8.x`x`P-HXwP@ <@~p@( B@`ox mX@P&B 2!@fi(*ÄBh@ B@$3*0^ax 9h0L  0( `4 P, o@@ @PXB  :h@(Ԑ`K(X P@* >*|  @P HB@<yT*<*!T0 CpU0X@nUUQm8wnBDP2WDha@}-x=,00#`* |q vUxT + ߃|!`'|p8 8y* p:ϵ_.O޻o Gzfdҋ8B2 ?&B2 {{awû8Ci83dOB2 gLD  a @d3Lh a$#@]X @ 8C* @_P @]X @P @@ p TP@C¡Q*P@ @HH  #@ ** Tk @P@QP** @X@@*!@F+{!@W O*`n(@& *@Ȍw :\*C B!D` !  TC@@TTP" 9 @r ;HLP0TX\0`0dhlPptx@|` ` P@0  p  p$`(P,00@<`@pDp H L`P TPXp \ `dhlptx| P$P@ Pp@0 `@  $(,0 4@8<@pD`HT \`d  0 @ P ` p    0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p          0 @ P ` p  0 @ P ` p  0 @ P ` p  0 @ P ` p  0 @ P ` p    0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p       I@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.EXE_A;1Hx   0 @ P ` p @ TIE$SHARE@ VAXCRTL_TV@ LIBRTL_TV@ EDTSHR_TV@ LBRSHR_TV@ SCRSHR_TV@ SMGSHR_TV@ TPUSHR_TV@ TPUSHR_TV*[EVERHART.JTDEMO]CSWING.HLB;1+, ./ 4- 0123 KPWO56x?76TcĘ89GHJ6% VAX-11 Librarian V04-00 C :o& "5 SWING :o& 1 SWINGF SWING is a powerful utility for the graphic display and manipulationF of VMS directory structures on any terminal which supports the SMGF (Screen Management) routines, e.g., the VTxxx series of terminals or' any PC terminal emulation of a VTxxx.F SWING is designed to make life easy for a user who frequentlyF performs file or directory operations. It is designed with theF philosophy of PC file management packages such as XTREE-GOLD and F PCTOOLS, where the user need not know operating system commands to manage directories and files.F SWING displays the top eight directory levels of the user'sF directory structure. If there are more than eight levels a diamondF is displayed in the right-most column indicating that there are non-displayed directories.F You can optionally specify the starting directories. These are theF directory structures you wish to display and manipulate. The6 sp ecifications may be separated by commas or spaces. e.g. $ Swing or $ Swing [.subdir] or $ Swing SYS$LOGIN3 or $ Swing SYS$LOGIN,SYS$EXAMPLES,SYS$LIBRARY3 or $ Swing SYS$LOGIN SYS$EXAMPLES SYS$LIBRARYF There is a two level help facility within SWING. Quick menus areF available via the ? option. Standard VMS help is available via3 hitting H (or the [Help] key on LK201 keyboards).F Each SWING command description will have its equivalent DCL comma ndF (ie. the command you type at the '$' prompt), so that any existingF VAX users can identify with the SWING command set. This is> identified in the text as a line starting with 'DCL equiv:'.2 CAPTIVE_ACCOUNTS D If you are using Swing from a Captive Account, then a number ofD functions are disabled for security reasons. In particular, theD goal was to prevent doing anything outside the current directory< structure and disable execution of arbitrary DCL commands. D If you see the following message, then this means that you are in a captive environment:B The following functions have been disabled for Captive Accounts:/ Opt Description DirMgr FilMgr/ --- ----------- ------ ------- I Introduce dir structure Yes N/A: ^D User-defined Options Yes Yes (See note)- $ Spawn Yes Yes- S Submit to batch N/A Yes- < Import files Yes Yes- > Export files N/A Yes- X Execute file N/A YesD Note that SWING$SAVE should point to a writable directory outsideD the user's directory structure. This allows the systemD administrator to configure the user's options file for choice ofD editor, queues, and key definitions. The user could change themD if SWING$SAVE is accessible under their structure and compromiseD the setup by editing in key defi nitions. Disabling ^D whileD retaining the ability for the administrator to customize the key? definitions is seen as a feature that must be used carefully.2 COMMANDS D Commands are invoked by entering the single keystroke associatedD with the command. Some of the commands use the LK201 keyboardD keys found above the `arrow keys' on the LK201 keyboard. Typical+ examples are PREV SCREEN and NEXT SCREEN.3 DIRECTORY_MANAGER4 BROADCAST_MESSAGES ' Enter O or o (Old Broadcast Messages)@ BROADCAST MESSAGES are trapped by SWING and displayed in a@ separate window. This window can be recalled at any time if@ required. Broadcast messages are issued when new mail is@ received (for example). This window is automatically@ displayed when there are outstanding messages and the user is@ in the directory manager or file manager and is also currently being prompted for input.4 CHANGE_FILE_OWNERSHIP  Enter ~ (Tilde)@ This option allows the user to change the ownership of the@ files contained in the selected directories. Sub-directories@ are also changed. The user is able specify the new file owner.1 DCL equiv: SET FILE/OWNER=new-owner [...]*.*;*4 CHANGE_FILE_PROTECTION Enter @@ This option allows the user to change the protection on the@ files contained in the selected directories. Sub-directories@ are also changed. The user is able specify the new file@ protection, being initially prompted with the current default file protection.9 DCL equiv: SET PROTECTION=(protection-mask) [...]*.*;*4 CREATE  Enter C or c@ Create allows the user to create a new sub-directory. The@ user is prompted for the new directory name. It is not6 possible to create more than eight directory levels.@ The name of the directory must be valid. Invalid names are" automatically rejected by SWING.0 DCL equiv: CREATE/DIRECTORY [.directory-name]4 DCL($) Enter $@ DCL spawns a sub-process in the user's current directory (as@ shown by the main SWING display). All symbols are inherited@ from the parent process, however the DCL tables will be taken@ from sys$system, hence any additions made to the DCL tables* will not be present in this sub-process. LOGOUT when finished.4 DEFRAGMENT_FILES Enter %@ Defragmentation allows the user to defragment the files in a @ directory structure. The directories that will be@ (potentially) defragmented are displayed with a different@ rendition. The user is twice prompted to confirm that the@ directories selected and their contents are to be defragmented.@ The contents of the files that are processed will be made as@ contiguous as possible. No header information (other than the* pointers in the header) will be changed.@ The file fragmentation is shown in t he FILE MANAGER via@ directory format 8. If pointers are greater than 1 then the@ file is unnecessarily fragmented, and potentially degrading' the system performance when accessed.; DCL equiv: COPY/CONTIGUOUS/REPLACE [...]*.*;* [...]*.*;*4 DELETE  Enter D or d@ Delete allows the user to delete a directory structure. The@ directories that will be (potentially) deleted are displayed@ with a different rendition. The user is twice prompted to@ confirm that the directories selected and their contents are to be deleted.@ This command may not be entered from the top (root) directory.@ DCL equiv: DELETE/LOG [...]*.*;* repeatedly until all files! and subdirectories are removed.# NOTE8 SWING will only delete files that the user8 could otherwise delete via the DCL commands$ SET PROTECTION and DELETE.4 DIRECTORY_STATISTICS Enter !@ SWING can display statistics relating to the contents of files@ in a series of directories. The statistical information available is@ 1. Count of the blocks allocated to files in a directory (option A).@ 2. Count of the blocks used by files in a directory (option U).= 3. Count of the number of files in a directory (option C).? 4. Maximum file-size of the files in a directory (option M).@ 5. Fragmentation index for a directory (option I). This is@  the ratio of fragments to files. A ratio of 1.0 is+ perfect - only one fragment per file.@ A grand statistical total can be shown by using option G.8 This information is shown at the bottom of the screen.@ The statistics can be updated via the S option. This is@ necessary after new files have been added to directories, for example.@ The statistical display can be printed via the L option. All@ statistics are grouped together with the directory n ame. This@ is an extremely useful option if you want to manage directories.@ The resulting file is written to SWING$SAVE if this is@ defined. If not, then it is written to SYS$LOGIN. Screen@ snapshot filenames are of the form:@ SWING_LISTING_FILE_xxxxxx.LIS, where xxxxxx is a selection of@ unique letters and numbers chosen by SWING to make the snapshot file unique.@ The user can select between a Narrow (80 columns) or Wide (132 columns) report.@ DCL equiv: DIRECTORY/SIZE=ALL [...]*.*;* and a number of other qualifiers4 EDIT_NEW_FILE  Enter ^E (Ctrl/E)* This allows the user to edit a new file.@ The user may define the default editor as per the EDIT option. DCL equiv: EDIT4 HELP + Enter H, h (or [Help] on LK201 keyboards)@ Help allows the user access to this information. The full VAX help features are available.4 IMPORT Enter <@ Import is like copy, except that the user is able to specify a@ full DECnet file specification for the file to be copied into the current directory, e.g. NODE"user password"::filespec@ The percentage file transfer is displayed while the transfer7 is in progress to bolster the confidence of the user.& DCL equiv: COPY/LOG full-filespec *4 INSERT_STRUCTURE . Enter I, i or [Insert Here] (LK201 keyboard)@ The user can add another structure to the display.  The user@ is prompted for the device and directory specification of the@ structure to be added. There is no restriction to the number7 of structures that may be displayed at the same time., Each structure may only be displayed once.4 LIST_STRUCTURE  Enter ^G (Ctrl/G)@ This creates a file which graphically displays the directory@ structure as you see it on the DIRECTORY MANAGER screen. The@ resulting file is written to SWING$SAVE if this is defined.@ If no t, then it is written to SYS$LOGIN. Screen snapshot@ filenames are of the form: SWING_LISTING_FILE_xxxxxx.LIS,@ where xxxxxx is a selection of unique letters and numbers3 chosen by SWING to make the snapshot file unique.@ The user can select between a Narrow (80 columns) or Wide (132 columns) report.@ Since the special characters used to draw lines cannot always@ be displayed in a file, the device-independent characters! (+,-,|) are used to draw lines.@ J@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.HLB;1t> The files may subsequently be printed via the list files option in the file manager.: DCL equiv: none really (perhaps a DIRECTORY/LIST [...])4 LOCATE_FILE Enter L@ This allows the user to find a file based on a partial file@ specification. The current structure is searched from the@ current directory downwards. When a match has been found the@ user is prompted for further action - for example it is@ possible to enter the file manager, find the next file or quit from this option.@ The option is designed to make finding of files as painless as possible.% DCL equiv: DIRECTORY [...]filename4 MENU Enter ?@ A quick one page menu is displayed. The user may make a@ selection from this menu if required or press [Return] if no option is desired.4 MOVE  Enter M or m@ Move allows the user to move part of a directory structure to@ a new parent directory. Move i nitiates the move operation by@ asking the user to move to the a new parent directory. When@ [Return] is pressed the move takes place. Both the new parent@ and the directory being moved can have other sub-directories@ attached to them as well. While moving to the new parent@ directory the operation can be cancelled by entering any key* other than those used for moving around.7 You cannot move a directory to another physical disk.7 DCL equiv: RENAME directory.dir [ne w-directory-path]4 PURGE  Enter U or u@ Purge allows the user to purge the current directory and all sub-directories." DCL equiv: PURGE/LOG [...]*.*;*4 QUIT_SWING ; Enter Q, q, E, e, ^Z, ^C or ^Y (Ctrl/Z, Ctrl/C or Ctrl/Y)< Quit allows the user to exit from SWING and return to DCL.@ Your system manager may have also enabled [Return] to quit@ SWING. Hit '?' to see if it is allowed. See item 3 of the% v3.5.1 release notes for more !info.@ Your system manager may have also enabled Q and q to return to@ the original directory instead of the current one. See item 3, of the v3.5.3 release notes for more info.@ The save file is updated if changes have been made to the directory structure.4 REMOVE_STRUCTURE * Enter K, k or [Remove] (LK201 keyboards)@ This option allows the user to remove the current structure from the display.# NOTE8 There must be" at least two structures on8 display, otherwise an error message will be8 displayed - if there's only one structure then it can't be removed.4 RENAME  Enter R or r; Rename allows the user to change the name of a directory.4 DCL equiv: RENAME directory.dir new-directory.dir4 REPAINT_SCREEN # Enter ^W or ^R (Ctrl/W or Ctrl/R) Refreshes the screen.4 RETURN_TO_MARK  Enter \, ], } or )> The user can ret#urn to a marked directory with \, ], } or ). e.g.) \ returns to the directory marked by /,) ] returns to the directory marked by [,- ) returns to the directory marked by (, and) } returns to the directory marked by {.4 RE-SEARCH Enter S@ SEARCH re-searches the directory structure, builds a new save@ file and updates the display accordingly. It is necessary to@ use this feature if the directory structure has been changed@ other than by SWING $. (e.g. via the BACKUP utility, or DCL6 commands which create, delete or rename directories)@ If there are more than one structure on display then the user@ is prompted to re-search either all structures or just the current structure.@ It is recommended that you use swing for creating, deleting,@ renaming and moving directories. If this is not possible (eg.@ when using the BACKUP utility) then hit 'S' immediately after@ starting SWING, to bring SWING's understandi%ng of your structure up-to-date.4 SET_MARK  Enter /, [, { or (.@ The user can mark a directory with /, [, { or (. Each of@ these four keys marks an individual directory, so up to four, directories may be marked at any one time.@ It is possible to return to the respective marked directory with \, ], } or ).4 SHOW_DISK_QUOTA Enter &@ This will show the current device usage - device size, space@ used, and free space in megabytes. & Additionally the user's$ quota on that device is displayed. DCL equiv: SHOW QUOTA4 SNAPSHOT_SCREEN Enter *@ Throughout SWING a snapshot of the screen may be taken. The@ resulting file is written to SWING$SAVE if this is defined.@ If not, then it is written to SYS$LOGIN. Screen snapshot@ filenames are of the form: SNAPSHOT_xxxxxx.LIS, where xxxxxx@ is a selection of unique letters and numbers chosen by SWING,# to make the snapshot file unique.@ Si'nce the special characters used to draw lines cannot always@ be displayed in a file, the device-independent characters! (+,-,|) are used to draw lines.4 USER_DEFINABLE_OPTIONS Enter ^D (Ctrl/D), This will display the USER-OPTIONS window. The user is able to define:@ 1. The initial display format when the FILE MANAGER is! invoked for the first time.< 2. The default printer queue for files printed via SWING.; 3. The default batch queue for files su(bmitted by SWING.2 4. The editor used by SWING when editing files.@ 5. The LK201 function keys F7 through F20 (top of the@ keyboard) and all the keys on the LK201 numeric keypad (right-hand side).@ To change an entry in the USER-OPTIONS window move the cursor@ opposite the entry to be changed and press the [Space Bar].@ The entry being changed is highlighted. When the next@ definition is complete press [Return]. The original value can$ be ) restored by using the R option.@ When a user-definable key is entered in the File Manager the@ name of the current file will be added to the command to be@ executed. If this is not desirable for the specific command@ (e.g. the key has been defined as SHOW USERS, and no filename@ is required) the definition of the key should terminate with an ! (exclamation mark).# NOTE8 No file name is added when a user-definable2 *key is entered in the Directory Manager.@ Normally, the user will be prompted to confirm that the@ command is to be processed. If this extra confirmation is not@ felt necessary a ^ ([Shift] 6) can be appended to the key@ definition. When a key defined in this manner is pressed the@ command will execute IMMEDIATELY. So be careful with this option.# NOTE8 The ! and ^ should not be used with the& editor o+r queue definitions." The settings are saved in either$ SYS$LOGIN:SWING_OPTIONS.INITIAL or< SWING$SAVE:SWING_OPTIONS.INITIAL if SWING$SAVE is defined.4 WHERE  Enter W or w@ WHERE switches on or off the dynamic display of the current5 default device and directory on top of the display.@ If it is switched on, the full directory name is displayed on@ the left-hand side of the 2nd row, and changes each time you move to a different directory.3 FILE ,_MANAGERB Enter F or f, (^F (Ctrl/F) to see ONLY the directory files via the FILE_MANAGER).B Your system manager may have also enabled [Return] to move fromB Directory to File manager. Hit '?' to see if it is allowed.1 See the Release Notes for v3.5.1 for more info.B FILES allows the user to manipulate the files in the selected1 directory. Only non-directory files are shown.B The user selects / deselects files by pressing the [Space Bar].B The status of the -file next to the cursor will be toggled" between selected and deselected.B The user can SELECT ALL the files via 'A' (all), and DESELECT ALL files via 'Z' (zap).B Also the user can SELECT SPECIFIC files based on a (partial)B file specification via '+', and DESELECT in a similar way via '-', using wildcards.B At least one file must be selected for the Copy, Delete, Move, Rename and List options.B If you select a series of files before entering the tYpe optio .n,B their names will all be passed to MOST. You can then use itsB multiple windowing feature to examine the files simultaneously.B Use MOST's Full Help for information on its multiple windowing feature.B If the user entered ^F a subset of the FILE MANAGERB functionality is invoked. Only the SUB-DIRECTORIES areB displayed. This option is included to allow the user to obtain0 directory information for the sub-directories.$ / NOTE: SWING reads the list of files in a directory by: actually opening the directory file. This: approach has been taken to improve the: performance in situations where there may be1 many thousands of files in a directory.B SWING allows the use of the = key (EQUALS) to specify a searchB criteria for files in the file manager. This key may be used inB both the directory manager and the file manager. When = 0 isB pressed SWING prompts for the search specification the responseB to which is a file specification (name.type) including wildcardsB as required. This specification becomes the basis of the searchB by the file manager when building up lists of files. This is3 similar to the DCL command DIR *.C (for example).B Conversely, files can be excluded from the display by hittingB the # key (HASH). A logical SWING_EXCLUDE_FILES can also be9 defined in your LOGIN.COM to permane1ntly exclude files.B The = and # keys are mutually exclusive, so one cancels the actions of the other.$ NOTE: These operations (= and #) may also be performed: in the directory manager as an alternative to5 entering F or f to invoke the file manager.< e.g. of responses are *.c, *.exe, test.*, *junk*.*, etc..$ NOTE2 Any version number specified is ignored.4 BROADCAS 2T_MESSAGES ' Enter O or o (Old Broadcast Messages)@ BROADCAST MESSAGES are trapped by SWING and displayed in a@ separate window. This window can be recalled at any time if@ required. Broadcast messages are issued when new mail is@ received (for example). This window is automatically@ displayed when there are outstanding messages and the user is@ in the directory manager or file manager and is also currently being prompted for input.4 CHANGE_FILE_OWNERS3HIP Enter ~@ This option allows the user to change the ownership of the@ selected files or directories as desired. The user is able specify the new file owner.2 DCL equiv: SET FILE/OWNER=new-owner filespec(s)4 CHANGE_FILE_PROTECTION Enter @@ This option allows the user to change the protection on the@ selected files and / or directories as desired. The user is' able specify the new file protection.4 DCL equiv: SET PROT=(protection-mask) filespec(s) 44 COPY  Enter C or c@ Copy allows the selected files to be copied to a new@ directory, which may be the current directory, in which case@ duplicate copies of these files are made. This option ensures@ that the new file always has the higher version number in the@ situation where a file with the same name and version number already exists.@ Additionally, files are copied in reverse order to ensure that@ lower versions of the same file ar 5e copied before higher@ versions, and hence these higher versions still have the higher version number.@ If desired the user can enter the EXPORT option by typing >@ instead of [Return] when selecting the destination directory.@ Copy is thus being used as a way of specifying the destination@ directory for EXPORT prior to actually entering export. This@ can be very useful when copying files into a directory for7 which the user must specify a user name and password.62 DCL equiv: COPY/LOG filespec(s) [new-directory]4 DCL($) Enter $@ DCL spawns a sub-process in the user's current directory (as@ shown by the main SWING display). All symbols are inherited@ from the parent process, however the DCL tables will be taken@ from sys$system, hence any additions made to the DCL tables* will not be present in this sub-process. LOGOUT when finished.4 DEFRAGMENT_FILES Enter %@ Defragmentation allows the user t 7o defragment the selected@ files. The user is twice prompted to confirm that the files5 selected and their contents are to be defragmented.@ The contents of the the files that are processed will be made@ as contiguous as possible. No header information (other than. the pointers in the header) will be changed.@ The file fragmentation is shown in the FILE MANAGER via@ directory format 8. If pointers is greater than 1 then the@ file is unnecessarily fragmented, a8nd potentially degrading' the system performance when accessed.= DCL equiv: COPY/CONTIGUOUS/REPLACE filespec(s) filespec(s)4 DELETE  Enter D or d@ Delete allows the user to delete the selected files. The user4 is prompted twice to confirm the intent to delete.# NOTE8 SWING will only delete files that the user8 could otherwise delete via the DCL commands* SET FILE /PROTECTION and DELETE.$9 DCL equiv: DELETE/LOG filespec(s)4 DIRECTORY_DISPLAY_FORMAT@ There are ten (yes, ten!) different formats of directory. information display within the file manager.@ To select the desired format just press any key 0 through key@ 9. The selected format is shown on the bottom right-hand side of the display.@ You can permanently set the preferred display format in the9 first line of the USER DEFINED OPTIONS screen (Ctrl/D).@ Also, the left-arrow and right-arrow k:eys allow the user to@ cycle through the displays. (Just keep pressing left-arrow or right-arrow).1 The display formats should be self-explanatory.@ DCL equiv: DIRECTORY/all-sorts-of-qualifiers [current-directory]4 EDIT_EXISTING_FILE  Enter E or e@ Edit allows the user to edit the current file (indicated by the cursors).@ The user may define the default editor via the user defined@ options (Ctrl/D). If the user selects EDT or; TPU the@ activation of the editor will be much faster as SWING uses the" EDT and TPU shareable libraries.5 EDT> This is DEC's EDT, invoked via the EDT$EDIT interface.> SWING will use SYS$LOGIN:EDTINI.EDT as a startup file if> accessible - for further information see "VAX/VMS Utility* Routines Reference Manual, section EDT".> Set the default editor to EDT for the most efficient startup of EDT." NOTE: There is a problem witK@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.HLB;1w>;<h this approach - If the user: is in a directory to which he doesn't have write: access, the EDT editor will not start up. A: solution is to define a key as "EDIT/EDT/READONLY".$ This problem only affects EDT.5 OTHER> This is any other editor of the user's choice. For example,> if the user has defined a symbol `MYED' to invoke their> personal editor, then it is necessary only to enter `MYED' as the required editor.> This will be somew =hat slower than using EDT or TPU, as SWING7 will set up a sub-process in which to do the editing.5 TPU> This is DEC's TPU, invoked via the TPU$TPU interface - for> further information see "VAX/VMS Utility Routines Reference+ Manual, section TPU, subsection TPU$TPU".> The EVE editor will be used by default, unless you (or your> system manager) have defined a personal (or site-specific)> TPU$SECTION logical name. This then tells SWING to use a "different flavour" of T>PU.> If you want to use a tailored version of TPU, then add the following to your LOGIN.COM:9 $ define/nolog TPU$SECTION my-tpu-initialisation-file4 EDIT_NEW_FILE  Enter ^E (Ctrl/E)* This allows the user to edit a new file.@ The user may define the default editor as per the EDIT option. DCL equiv: EDIT4 EXECUTE  Enter X or x@ Execute allows the user to execute the current file either as7 a command file (.COM) or as a executable (.EXE ?) file.@ If the file has a filetype of .COM, then it will be4 automatically executed as a DCL command procedure. DCL equiv: @filename.COM@ If the file has a filetype of .EXE, then it will be0 automatically executed as an executable image. DCL equiv: RUN filename.EXE@ If the file is neither of the above, the the user is asked if@ the file is a DCL command file. If the user answers 'Y', then@ it is executed as such. If the response is 'N', then the @file@ is not executed at all and the user is returned to the File Manager screen.4 EXPORT Enter >@ Export is like copy, except that the user is able to specify a/ full DECnet path for the selected files, e.g. NODE"user password"::@ The percentage file transfer is displayed while the transfer7 is in progress to bolster the confidence of the user.5 DCL equiv: COPY/LOG filename(s) remote-filespec(s)4 HELP + Enter H, h (or [HeAlp] on LK201 keyboards)@ Help allows the user access to this information. The full VAX help features are available.4 IMPORT Enter <@ Import is like copy, except that the user is able to specify a@ full DECnet file specification for the file to be copied into the current directory, e.g. NODE"user password"::filespec@ The percentage file transfer is displayed while the transfer7 is in progress to bolster the confidence of the user.& DCL equiv:B COPY/LOG full-filespec *4 LIST (Print)  Enter L or l@ List allows the user to print the selected files to the< printer queue defined by the user defined options (Ctrl/D)@ The user may, if desired, change the printer queue for the" duration of the current session.4 MENU Enter ?@ A quick one page menu is displayed. The user may make a@ selection from this menu if required or press [Return] if no option is desired.4 MOVE C  Enter M or m@ Move allows the user to move the selected files to a new@ directory on the same device. The files are moved in such a@ way that the new file always has the higher version number in@ the situation where a file with the same name and version number already exists.# NOTE8 Files can only be moved on the same physical device.0 DCL equiv: RENAME filespec(s) [new-directory]4 PRINDT  Enter L or l@ List allows the user to print the selected files to the< printer queue defined by the user defined options (Ctrl/D)@ The user may, if desired, change the printer queue for the" duration of the current session.4 PURGE  Enter U or u7 Purge allows the user to purge the current directory.# NOTE) Sub-directories are not purged. DCL equiv: PURGE/LOG *.*4 QUIT_FILE_MAENAGER  Enter Q, q or ^Z (Ctrl/Z)@ Quit will leave the file manager option and return to the directory manager screen.@ Your system manager may have also enabled [Return] to move@ from File back to Directory manager. Hit '?' to see if it is@ allowed. See item 2 of the Release Notes for v3.5.3 for more info.4 RENAME  Enter R or r@ Rename allows the user to rename the selected files one at a time.0 DCL equiv: RENAME filename(s) nFew-filename(s)4 REPAINT_SCREEN # Enter ^W or ^R (Ctrl/W or Ctrl/R) Refreshes the screen.4 RE-SEARCH  Enter F, f or =@ The files in the current directory are re-searched. The! display is updated accordingly.@ If '=' is entered, then a search specification can be entered, using Wildcards. e.g. *.C .4 SELECT_FILES @ The user selects / deselects files by pressing the [Space@ Bar]. The status of the file next to thGe cursor will be* toggled between selected and deselected.@ The user can SELECT ALL the files via 'A' (all), and DESELECT ALL files via 'Z' (zap).@ Also the user can SELECT SPECIFIC files based on a (partial)@ file specification via '+', and DESELECT in a similar way via '-', using wildcards.@ At least one file must be selected for the Copy, Delete, Move, Rename and List options.@ If you select a series of files before entering the tYpe@ option, their names wHill all be passed to MOST. You can then@ use its multiple windowing feature to examine the files@ simultaneously. Use MOST's Full Help for information on its multiple windowing feature.4 SHOW_DISK_QUOTA Enter &@ This will show the current device usage - device size, space@ used, and free space in megabytes. Additionally the user's$ quota on that device is displayed. DCL equiv: SHOW QUOTA4 SNAPSHOT_SCREEN Enter *@ Throughout SWING a s Inapshot of the screen may be taken. The@ resulting file is written to SWING$SAVE if this is defined.@ If not, then it is written to SYS$LOGIN. Screen snapshot@ filenames are of the form: SNAPSHOT_xxxxxx.LIS, where xxxxxx@ is a selection of unique letters and numbers chosen by SWING,# to make the snapshot file unique.@ Since the special characters used to draw lines cannot always@ be displayed in a file, the device-independent characters! (+,-,|) are used to drawJ lines.4 SUBMIT  Enter S or s@ Submit allows the user to submit the selected files to the< batch queue defined by the "User Defined Options" (Ctrl/D)@ The user may, if desired, change the batch queue for the" duration of the current session.4 TYPE @ Enter Y or y. Your system manager may have also allowed [Return].@ Type allows the user to display the current file or a selected@ set of files on the terminal via a modif Kied version of the@ freely-available "MOST" Utility. Its version number is shown$ when it displays its first screen.@ At the end of each screen, it displays (in reverse video) the@ filename, percentage of the file displayed so far, line number@ at the top of the screen and total number of lines in the file.@ To get a Quick Help summary of commands while using the MOST@ utility, hit [Help], 'H' or 'h', '?' or PF2. To access its@ Full Help (documentation file), hit LGOLD PF2 or GOLD H, where GOLD is PF1 or CTRL-X.; To quit from MOST, hit 'Q' or 'q', 'X' or 'x', or CTRL-Z.# NOTE8 If the standalone version of MOST supplied8 with SWING has been installed on your system,8 you also can access its Full Help at the3 system prompt via the command: $ most -h4 USER_DEFINABLE_OPTIONS Enter ^D (Ctrl/D), This will display the USER-OPTIONS window. The user is ableM to define:@ 1. The initial display format when the FILE MANAGER is! invoked for the first time.< 2. The default printer queue for files printed via SWING.; 3. The default batch queue for files submitted by SWING.2 4. The editor used by SWING when editing files.@ 5. The LK201 function keys F7 through F20 (top of the@ keyboard) and all the keys on the LK201 numeric keypad (right-hand side).@ To change an entry in the USER-OPTIONS w Nindow move the cursor@ opposite the entry to be changed and press the [Space Bar].@ The entry being changed is highlighted. When the next@ definition is complete press [Return]. The original value can$ be restored by using the R option.@ When a user-definable key is entered in the File Manager the@ name of the current file will be added to the command to be@ executed. If this is not desirable for the specific command@ (e.g. the key has been defined as SHOW USEROS, and no filename@ is required) the definition of the key should terminate with an ! (exclamation mark).# NOTE8 No file name is added when a user-definable2 key is entered in the Directory Manager.@ Normally, the user will be prompted to confirm that the@ command is to be processed. If this extra confirmation is not@ felt necessary a ^ ([Shift] 6) can be appended to the key@ definition. When a key defined iPn this manner is pressed the@ command will execute IMMEDIATELY. So be careful with this option.# NOTE8 The ! and ^ should not be used with the& editor or queue definitions." The settings are saved in either$ SYS$LOGIN:SWING_OPTIONS.INITIAL or< SWING$SAVE:SWING_OPTIONS.INITIAL if SWING$SAVE is defined.2 Command_Qualifiers D The following Swing qualifiers (or switches) can be used from DCL: /HELP Q D This qualifier displays help for the Swing command line (from DCL)( and then returns the user back to DCL. e.g. $ SW /H or $ SW -H* It may return the following information. Usage:! swing -h Show this Help./ swing -v Show Version of this program.0 swing[ -f][ -0][ -s][ -c][ dir][,dir...] 3 -f Start up directly in the File manager.7 -0 Look for and use a device_000000_SWSVE.DAT7 R file if a device_directory_SWSVE.DAT file7 is not found in the SWING$SAVE directory.9 -s Exits in SYS$SPECIFIC restore SYS$SYSROOT as the default dir.9 -c Exits in SYS$COMMON restore SYS$SYSROOT as the default dir.5 dir Use VMS syntax including brackets (e.g.,7 [topdir.subdir] or device:[topdir.subdir]6 or [.subdir]). You can also use logical7 dir names (e.g., SYS$EXAMPLES). ISf a dir7 is not specified, your current default is assumed.D However, if any of the command line qualifiers have been installedC as defaults for Swing, they are not included in the help display. /VERSION D This qualifier displays the current version of Swing, and then returns the user to DCL. e.g. $ SW /V or $ SW -V" It returns the following string:D C SWING v3.7.4 (S.J.Brown, M.Akerberg, H.Flowers, F.Macrides T & others) /FILEMANAGERD This command qualifier takes the user directly into the File4 Manager Screen and bypasses the Directory Manager. e.g. $ SW /F or $ SW -F /0 D This command qualifier directs Swing to look for a master (totalD device) SAVE_FILE if it does not find an SWSVE.DAT file for the root directory structure. e.g. $ SW /0 or $ SW -0D It is of relevance only to system managers, who would havUe the4 privileges required to access a total device tree. /C D This command qualifier directs Swing to make SYS$SYSROOT theD default device if you exit in a SYS$COMMON tree, and such a treeD has been put up via an argument or logical translation that had SYS$SYSROOT as the device. e.g. $ SW /C or $ SW -CD When you use a logical such as SYS$EXAMPLES as a directory= specification on the DCL command line, it is translated toV:% $ SW SYS$SYSROOT:[SYSHLP.EXAMPLES]D The SYS$SYSROOT device name is, in turn, a logical for twoD devices, SYS$SPECIFIC and SYS$COMMON. In effect, you have entered a command equivalent to:C $ SW SYS$SPECIFIC:[SYSHLP.EXAMPLES],SYS$COMMON:[SYSHLP.EXAMPLES]D so that two directory trees are created. The files of interest toD general users are in the SYS$COMMON tree, whereas most of those inD the SYS$SPECIFIC tree are privileged, for use by the systemD mana Wger. If you enter the SYS$COMMON tree to examine or use itsD files, and subsequently exit from Swing in that tree, your default* device normally would become SYS$COMMON.D Note that the /C or -C qualifier will apply for all SYS$COMMOND trees if any have been put up via a SYS$$SYSROOT argument orD translation, but not if all were put up via explicit# SYS$COMMON:[directory] arguments. /S D This command qualifier directs Swing to maXke SYS$SYSROOT theD default device when you exit in a SYS$SPECIFIC tree, and such aD tree had been put up via an argument or logical translation that had SYS$SYSROOT as the device. e.g. $ SW /S or $ SW -SD See the description of the /C or -C qualifier for more information.D Note that the /S or -S qualifier will apply for all SYS$SPECIFICD trees if any have been put up via a SYS$$SYSROOT argument orD translation, but not if all we Yre put up via explicit% SYS$SPECIFIC:[directory] arguments.2 DOCUMENTATION D A full User Manual and Tutorial, SWING_MANUAL.MEM, can be found inD the SWING directory. Your system manager should have defined itD as the logical SWING_MANUAL, so that it can be printed via the command: $ print swing_manualD When using the TYPE utility (MOST), for displaying files withD paging, searching, and multiple-windowing facilities, use its FullD Help option (GOLD PF2 Zor GOLD H, where GOLD is PF1 or CTRL-X) toD access complete documentation of its functions and commands. IfD the standalone version of MOST is installed on your system, itsD Full Help can be accessed at the system prompt by entering its help qualifier: $ most -hD SWING_MANUAL.MEM also can be viewed with the standalone MOST utility: $ most swing_manual2 LOGICAL_NAMES / The following logical names are used by SWINGD SWING$SAVE - see also SWING SAVL@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.HLB;1?{>Z [E_FILE. This specifies the- destination for the files created by SWING.D It is recommended you define this logical if you want SWING'sD working files kept in a separate directory to your loginD directory. See the manual's section 2.1 (Setting up LOGIN.COM) for more details.D SWING$HLP - defined when the system boots to point to the SWING" help files. Do not change this.D MOSTHELP - defined when the system boots to point to the MOST Full! Help file.\ Do not change this.2 MOVING_AROUND D The user may move around the displayed directory structure using the four `arrow-keys', or: ^J to move up, ^K to move down, ^H to move left, ^L to move right,1 N, n or [Next Screen] to advance by one screen,3 P, p or [Prev Screen] to move back by one screen,D T, t to move to Top of the current structure, or if already at theB top then to the top of the previous structure (if there is one),D B, b to move to ]Bottom of the current structure, or if already atD the bottom then to the bottom of the next structure (if there is one) andD [Select] and [Find] (LK201 keyboard) can be used to move around anD internally held stack of `visited' directories. A directoryD becomes `visited' when the user invokes the FILE MANAGER in this2 directory. SELECT moves forward, FIND backward.2 PANIC D PANIC - Control-C or Control-Y gets you out of SWING in a hurry,D saving the c^urrent directory structure if necessary as it does so.2 QUICK_MENUS Enter ?D Quick menus are available throughout SWING whenever the top lineD of the display shows a ?. The user can select the required option directly from this menu.2 RELEASE_NOTES 3 V3.7.4 B This release of Swing implemented the following new features and bug fixes:B 1. Fixed problem where Swing wouldn't purge a large number of files. (Harry Flowers)B 2. Fixed problem wh _ere sometimes a renamed file didn't show@ being renamed in the file manager window. (Harry Flowers)B 3. Fixed problem with DEC C where some versions can't findB fcbdef.h by defining DECC$TEXT_LIBRARY to point to the lib# definitions. (Harry Flowers) 3 V3.7.3 B This release of Swing implemented the following new features and bug fixes:B 1. Replaced SWING-STARTUP.COM with a totally newB SWING_STARTUP.COM. [Actually, this made it `out in some of+ the V3.7.2 releases.] (Harry Flowers)B 2. Performance enhancements using multiblock and multibuffer< counts in file opens to reduce I/O's. (Harry Flowers) 3 V3.7.2 B This release of Swing implemented the following new features and bug fixes:B 1. Changed default behavior of [Return] in the file managerB from a no-op to the same as "Y" to view files. This meansB that [Return] always has a function in the file manager; itB eithaer views the file(s) or returns to the directory managerB depending on whether or not CR_RETURNS_FROM_FILE_TO_DIR_MGR" is defined. (Harry Flowers)B 2. Fixed problem with Listing a file, and specifing the queueB as a batch queue, allowed a captive user to submit a command! procedure. (Richard Hardy) 3 V3.7.1 B This release of Swing implemented the following new features and bug fixes:B 1. (Enabled by PRINTMENU) The addition of a print menu if a ?B b is typed for the queue name. The menu includes those queuesB which have a description field formatted as specified in' PRINTMENU.README. (Butch Walker)B 2. The Print command can now print the current file, ratherA than requiring that the user select a file. (Butch Walker)B 3. (Changes to SWING.MMS) Added a DEBUG macro which compilesB and links with debug and places the .OBJ files in a [.dbg]B directory. This allows switching between debug an cd nodebugB versions with minimal recompilation. Added a USESCA macroB which creates an SCA library in [.scalib], compiles withB /ana and loads the .ANA modules into the library. ThisB allows users with SCA and LSE to make use of the utilities0 for maximum effectiveness. (Butch Walker)B 4. Added debug changes to command files; the BUILD command fileB will now accept "DEBUG" as a parameter and work with either0 MMS or the command files. (dHarry Flowers)B 5. Better handling of iosb status block in swing29.c (dealsB more intelligently with WARNING or INFO versus ERROR or SEVERE). (Nissim Etrog)B 6. Enabled passing of parameters to executeDCL(). (Nissim Etrog)B 7. Added informational messages for presses of undefined# command keys. (Nissim Etrog)B 8. Changed headers of the MATSHACK andB CRRETURNSFROMFILETODIRMGR logicals in swing.h to m eake moreB clear what they do and how they interact, and modified theB quick help menu for the Directory manager along the linesB submitted by Jeff Dykzeul (jd@mass.dnet.hac.com) so thatB it's correct, based on how they were defined. Also got theB quick help menu to be correct no matter what combinations ofB these two logicals and the QEXITSTOORIGINALDIR logical are! defined. (Foteos Macrides)B 9. Sleep for only one second after warning messfages to bottom# of screen. (Foteos Macrides)B 10. Improved MOST's spawning behavior and updated its doc file. (Foteos Macrides)A 11. Updated C Swing manual and help library. (Foteos Macrides)3 V3.7 B This release of Swing implemented the following new features and bug fixes:B 1. Upgraded MOST to 3.2.0FM. Added lots of new features andB switches as described in the header of its main.c and inB most.doc_fm. Most notably, now has both Quick g Help (summaryB of commands) and Full Help (display of doc file), GOLD andB EDT style commands, -h qualifier for showing Full Help fromB the DCL command line, -n Naive Prompt qualifer and logicalB for replacing the dev:[dir]filename string in the status@ line with other information or a title. (Foteos Macrides)B 2. Ported everything to DECC/Alpha, with tests for VAXC versusB DECC in the code and build procedures. Thanks to BillB Forbes, h BFORBES@MR4DEC.ENET.DEC.COM, for help with VAXCB versus DECC differences. Thanks to Ross Smith,B SMITH@MCCLB0.MED.NYU.EDU, for letting me use NYU Med's field$ test Alpha. (Foteos Macrides)B 3. Updated the SWING Help Library and SWING Manual. (Foteos Macrides)B 4. Fixed captive account editor selection (where there is noB user profile) to not allow selection of "Other" editorB commands, as any DCL command could be entiered. (Harry Flowers)3 V3.6.5B Release 3.6.5 of Swing implemented the following features and bug fixes:B 1. Changed file view option when files are selected to promptB for viewing the current file if selected files are not viewed. (Harry Flowers)B 2. Fixed bug in showing broadcast messages; sometimes messagesB would fail to display, though the time banner would. ThisB was caused by an incorrect declaration of the messageB j length, which would sometimes be corrupted as a result. (Harry Flowers)B 3. Upgraded MOST to 3.04FM. Added SecureMode extended switchB (+s) for use with gopher client, and otherB fixes/enhancements described in the header of MOST's main.c. (Foteos Macrides)3 V3.6.4; Release 3.6.4 of Swing implemented the following upgrade:B 1. Upgraded MOST to 3.03FM, as described in the header of its main.c. (Foteos Macrides)3 V3.6 k.3B Release 3.6.3 of Swing implemented the following new features and bug fixes:B 1. Fixed more bugs in code for searching for directories underB a 000000 directory if the device_000000SWSVE.DAT file existsB and the device_directory_SWSVE.DAT file doesn't. Made thisB behavior an option via a -0 or /0 qualifier. It can be madeB the default (i.e., regardless of whether -0 or /0 is enteredB on the command line) by defining ALWAYS_TRY_000000 in! lSWING.H. (Foteos Macrides)B 2. Enhanced or debugged aspects of logical device nameB handling. However, earlier modifications to respectB terminal and concealed device logicals have broken some ofB CSWING's capacity to deal with search lists, and it can'tA all be restored without a major rewrite. (Foteos Macrides)B 3. Added code such that arguments or logicals which translateB to SYS$SYSROOT:[directory] will cau mseB SYS$SPECIFIC:[directory] and SYS$COMMON:[directory] trees toB be displayed (SYS$SPECIFIC is not in the SYS$SYSROOT searchB list, so it must be treated as a special case). OptionalB defines (SPECIFIC_EXITS_TO_SYSROOT andB COMMON_EXITS_TO_SYSROOT) in SWING.H enable setting theB default device to SYS$SYSROOT on exit in SYS$SPECIFIC orB SYS$COMMON if an original call was for SYS$SYSROOT. Added aB -s or /s and a -c o nr /c qualifier to evoke this behavior ifB SPECIFIC_EXITS_TO_SYSROOT and COMMON_EXITS_TO_SYSROOT,B respectively, are not defined in SWING.H. For all otherB search lists that can be handled, the default directory onB exit is always that of the particular tree you were in at* the time of exit. (Foteos Macrides)B 4. Modified the command line (-h) help module to describe theB -0, -s and -c qualifiers if they were not made defaults viaB logi ocals in SWING.H or by including them in the foreign7 command definition for CSWING. (Foteos Macrides)B 5. Added capacity to handle relative directory specs (e.g.,B [.foo] or [-.-.foo]). An argument with such a spec isB handled relative to the directory from which CSWING wasB called, regardless of its position in an argument listB (e.g., the list SYS$MANAGER,[] will put up trees forB SYS$SPECIFIC:[SYSMGR], SYS$COMMON:[SYSMGR] p, and your calling1 default, in that order). (Foteos Macrides)B 6. Added pause and prompt features for displays of CSWING.HLBB (like those when reading help libraries via DCL). The helpB page length is determined by the value of page_length,9 determined at startup of CSWING. (Foteos Macrides)B 7. Modified swing_8.c and swing_38.c to enable calling MOSTB with a set of selected files, and thereby use MOST'sB windowing features for qmultiple files (and appropriatelyB modified the quick help list in swing_22.c). Made numerousB modifications/enhancements of MOST for maximum compatibilityB with CSWING, as described in the header of MOST's main.c.B Most noteably, command keys are now the same as orB homologous to those of CSWING wherever possible. MOSTB called from CSWING will read and use MOST_SWITCHES andB MOST_EDITOR if defined, can spawn editors and will us re thatB defined for CSWING if its own logical is not defined, andB can spawn to DCL in a manner analogous to spawns from CSWINGB (or will respect the 'captive' restriction if set). AlsoB modified main.c so that a standalone MOST can be built withB the same code at that for CSWING. Added confirmation ofB intent to edit in swing_16.c and MOST (our users too oftenB hit E with intent to exit, not edit). Provided aB MOST.DOC_FM for sthis version of MOST (Note that the originalB copyright applies to it, and to any programs derived fromB it: You must freely distribute the source code.). (Foteos Macrides)3 V3.6.2B Release 3.6.2 of Swing implemented the following new features and bug fixes:B 1. Consistent build procedures. Corrected documentation. (Harry Flowers)B 2. Supplied SWING-STARTUP.COM as documented in AAAREADME.1ST. (Chris Butler)B 3. Changed behav tior when Swing is invoked in an unknownB subdirectory in a known structure. It used to just placeB you back at the top and give an unknown directory error.B Now, it rebuilds the dir structure and places you where you' wanted to start. (Harry Flowers)B 4. Made code for Q_EXITS_TO_ORIGINAL_DIR more efficient. (Foteos Macrides)B 5. Fixed bugs when getting the version limits of files forB display with format_5. If directory fil ues are listed, theirB default version limits (for files created within the9 directories) are also displayed. (Foteos Macrides)B 6. Modified to skip defragmentation of any files which have aB version limit set (otherwise, such files would be trashed;B the proper fix would be to eliminate the version limit,B defragment the file, then restore its version limit, butB since many sites now run defrag software this doesn't seem+ worth thve bother). (Foteos Macrides)B 7. Fixed a bug in the code I submitted a while ago forB searching for directories under a 000000 directory. ItB didn't work for directories that have a _ in their name.0 From: Mark London (MRL@NERUS.PFC.MIT.EDU)3 V3.6.13 Release 3.6.1 of Swing had the following bug fix:? 1. Bug fix with large screen size for MOST. (Harry Flowers)3 V3.6 B This release of Swing contains no new features, only a fix forB VM wS v5.5, some bug fixes and improvements in the MOST UtilityB (v3.02), which has been totally rewritten. MOST is run when you select 'Y' (for TYPE a file)B It was also decided to make this version 3.6 as there wereB becoming too many minor releases, and new sites would haveB otherwise needed to apply 6 sets of patches to the 3.5 kit. It6 will be available as a "whole" kit at archive sites. Modifications and bug fixes:B 1. A small patch to SWING29.C for VMS v5.x5, making use of the $SNDJBC call.< 2. The latest version of MOST was incorporated into SWINGB 3. Major improvement in MOST performance, especially when viewing large files.8 4. The online help screen in MOST has been rewritten.B 5. Fixed the annoying 80 column problem (showing up as a line( too long if it's exactly 80 cols).@ 6. MOST now displays files which have more than 20,000 lines.3 V3.5.4B Two new features have been added to this minyor release of Swing:B 1. Added file exclude "#" option (opposite to the include "="B function) and SWING_EXCLUDE_FILES logical name to work like DIR/EXCLUDE.B Note: The include "=" option is exclusive; also file purgeB would have to have been extensively re-worked, so purge is) not supported if files are excluded/ 2. Added a check for supported terminal type Bug fixes:B 1. Bug with negative percentages on large file copies$ M@ SAFETY013.A  [EVERHART.JTDEMO]CSWING.HLB;1:yzoccassionally appearing fixed.B 2. File creation dates on copy are now preserved (just like DCL copy does)B 3. Fixed memory leak; variables were being trashed when theB starting directory was more than 40 characters in length;" caused many bad side-effects> 4. Fixed bug when Swing is started up on an empty directory> 5. Change to volume set patch to handle very large file ids3 V3.5.3B Three new features have been added to this minor release of { Swing:B 1. The 'TYPE a file' command in File Manager now has a commandB 'W', 'w' or Ctrl/W to toggle between wide (132 columns) andB narrow (80 columns) while viewing the file on the screen.2 (This is a new feature of the MOST utility).B 2. For those who wish to use [Return] to toggle between theB File and Directory manager screens, the SWING.H file has aB 'macro directive identifier' calledB CR_RETURNS_FROM_FILE_TO_DI |R_MGR. If you prefer this optionB and currently don't have it, see your system manager toB define this in SWING.H and then rebuild swing. From Chris$ Butler (C.Butler@mof.govt.nz).B 3. For those who want the option of returning to the originalB directory (instead of the current one) when exiting Swing,B the SWING.H file has another 'macro directive identifier'B called Q_EXITS_TO_ORIGINAL_DIR. This allows 'Q' and 'q' toB perform this fun }ction, while all the other "exit" commandsB return the user to the CURRENT directory. If you preferB this option and currently don't have it, see your system? manager to define this in SWING.H and then rebuild swing. Bug fixes:B 1. Modified to ignore the non-displayable broadcast messagesB sent to VWS terminal windows. Otherwise whenever the VWSB window running swing is selected, the broadcast paste bufferB would pop up and try to dis ~play the message and fail with aB SMG$_NONBRDMSG status. From Carl Karcher (KARCHER@WAISMAN.WISC.EDU)B 2. A small bug in the add_dstructure() part of SWING_24.C nowB repsects device logical names which have the concealed and terminal attributes.B Screen refresh after file manager @ and ~ leaves pointer atB current file after command executes. Both from Charles. Bailey (BAILEY@hmivax.humgen.upenn.edu).% So far, one kn own bug still exists:B There is a the problem with deleting a file when you've setB default to a search list like SYS$MANAGER. There's a bug inB RMS$ERASE that causes process termination (via executive modeB bugcheck). It has been reported to DEC and it has beenB escalated to the VMS engineering group. The workaround is toB set default to the individual directories (in this case, SYS$SPECIFIC:[SYSMGR]).3 V3.5.2B This release fixes all known bugs and provides the following New features:A 1. Replaces MORE with MOST in the TYPE option of File Manager.B 2. A /Help or -h command line option (eg. $ SWING /HELP) to( display help for the command line.B 3. A /Version or -v command line option (eg. $ SWING /VERSION)B to display the current version of Swing, and then return to DCL.3 V3.5.1B It contains fixes to some bugs reported after V3.5 was released,< as well as some nice new features. A descript ion follows: New features:B 1. A /file_manager or -f command line option (eg.B $ SWING /FILE). This option specified on the command lineB will act just as if "F" were entered as soon as you get the directory manager screen.B 2. For those who wish to have the option of hitting [Return] toB exit SWING, instead of [Return] to go to File Manager theB SWING.H file has a 'macro directive identifier' calledB MATS_HACK. If you prefer this option and currently don'tB have it, see your system manager to define this in SWING.H and then rebuild swing.B If MATS_HACK is defined some commands (such as copy andB move) are terminated with [Delete] instead of [Return].+ From Mats Akerberg (mats@efd.lth.se).B 3. When you don't have read access to your top directory, SWINGB will start with the directory it can read. Seems to beB common practice as most sites use concealed logicals to hideB the real top level directory. From Bernd Onasch (ONASCH@ira.uka.de). Bug fixes:B 1. Old problem with change protection only changing world protection has been fixed.B 2. Terminal characteristics (like numeric keypad) are now& restored on exiting from CSWING.B 3. Problem with long lines in configuration files (also from Mats).3 V3.5 B The following new feature has been added between version 3.4 andB 3.5. This feature has always been in the code, but never worked.B 1. When exiting SWING, all Broadcast messages received duringB the SWING session and the current default directory are displayed.3 V3.4 B The following bugs were fixed between version 3.2 and 3.4 by+ Harry Flowers (flowers@msuvx1.memst.edu).0 1. Did not handle disks in bound volume sets.6 2. Couldn't exit from "@ - change file protection".B 3. Disk quota ("&") option did not stay on screen until key pressed.B 4. Quit option did not work on copy or move files or directory options.B 5. More ("Y") option failed after invoking it a fixed number of times.B 6. More ("Y") option W did not reset internally to normal from wide.B 7. More ("Y") option searching did not work in case-insensitiveB mode unless a lower-case string was used for the search pattern.B 8. More ("Y") option spacing problem with form feeds; nowB treated just like a non-printable character (replaces it with a "^" character).B 9. More ("Y") option caused the file manager to display the2 file in lower case after it had been viewed.3 V3.2.1B The following changes have been made since version 3.2 by Mats Akerberg (mats@efd.lth.se) DIRECTORY MANAGER:B 1. The 'E' key has been added to allow you to exit out ofB swing. So you can use the following keys to exit: E, e, Q,! q, Ctrl/C, Ctrl/Y or Ctrl/Z FILE MANAGER:B 1. The [Return] key has been added to allow you to exit fromB file manager back to directory manager. So you can use theB following keys to return to directory manager: Q, q, [Return] or Ctrl/ZB 2. You can now DISPLAY files on the the screen using the 'Y'! command in file management.B It makes use of the 'More' Utility and has some veryB powerful comman ds in it, such as edit the file you areB viewing, search for strings, skip pages and switch From 80B to 132 columns (and back again), which allows you to look at wide reports.8 Hit 'H' when you are in the type utility for help.2 SAVE_FILE D SWING only searches the directory structure if a save file cannot be found. SWING looks 1) first in SWING$SAVE:,D 2) second in the top directory of the structure being examined, 3) third in SYS$LOGIN:.D If no save file is found SWING searches the directory structureD and creates a save file, attempting to store the save file asD above. SWING automatically attempts to purge old save files. All# save file names end in SWSVE.DAT.% NOTE< It is recommended that you make use of SWING$SAVE,< as this way you can keep all the files created by SWING in one place.2 SNAPSHOT_SCREEN Enter *D Th roughout SWING a snapshot of the screen may be taken. TheD resulting file is written to SWING$SAVE if this is defined. IfD not, then it is written to SYS$LOGIN. Screen snapshot filenamesD are of the form: SNAPSHOT_xxxxxx.LIS, where xxxxxx is a selectionD of unique letters and numbers chosen by SWING, to make the snapshot file unique.D Since the special characters used to draw lines cannot always beD displayed in a file, the device-independent characters (+,-,|) are used to draw lines.2 USER_DEFINABLE_OPTIONS Enter ^D (Ctrl/D), This will display the USER-OPTIONS window. The user is able to define:D 1. The initial display format when the FILE MANAGER is invoked for the first time.< 2. The default printer queue for files printed via SWING.; 3. The default batch queue for files submitted by SWING.2 4. The editor used by SWING when editing files.D 5. The LK201 function keys F7 through F20 (top of the k eyboard)D and all the keys on the LK201 numeric keypad (right-hand side).D To change an entry in the USER-OPTIONS window move the cursorD opposite the entry to be changed and press the [Space Bar]. TheD entry being changed is highlighted. When the next definition isD complete press [Return]. The original value can be restored by using the R option.D When a user-definable key is entered in the File Manager the nameD of the current file will be added to the command to be executed.D If this is not desirable for the specific command (e.g. the keyD has been defined as SHOW USERS, and no filename is required) theD definition of the key should terminate with an ! (exclamation mark).% NOTE< No file name is added when a user-definable key is+ entered in the Directory Manager.D Normally, the user will be prompted to confirm that the command isD to be processed. If this extra confirmation is not felt necessaryD a ^ ([Shift] 6) can be appended to the key definition. When a keyD defined in this manner is pressed the command will execute/ IMMEDIATELY. So be careful with this option.% NOTE< The ! and ^ should not be used with the editor or queue definitions." The settings are saved in either$ SYS$LOGIN:SWING_OPTIONS.INITIAL or< SWING$SAVE:SWING_OPTIONS.INITIAL if SWING$SAVE is defined.2 VERSION  Enter V or vD Entering V causes the current version of SWING to be displayed on! the bottom line of the display.2 WORKSTATION_SUPPORTD SWING supports workstations to a limited extent. On a workstationD it is possible to have windows with up to 64 lines. This is set via $ set term/page=64D SWING will support terminals of any size with the proviso that theD terminal is set to at least 24 lines (the default for a VT100, VT20 0 ...).2 BUG_REPORTS D CSwing was originally developed by Simon Brown from the BritishD Isles during late 1989 from a previous FORTRAN version. He made> substantial changes and produced about 95% of the C version.D Since then, it has been maintained by a small group of people,3 scattered from one end of the earth to the other.D If you have any bug reports, new feature requests, or have madeD changes to the software and wish it to be added into the next; release, then please contact one of the following people: Harry Flowers Memphis State University Tennessee Phone: +1 (901)678-2663; email: FLOWERS@MSUVX1.MEMST.EDU (on INTERNET)9 FLOWERS@MEMSTVX1 (on BITNET) Foteos Macrides3 Worcester Foundation for Experimental Biology Massachussetts Phone: +1 (508)842-8921; email: MACRIDES@SCI.WFEB.EDU (on INTERNET)9 MACRIDES@WFEB2 (on BITNET) Mats Akerberg" Lund Institute of Technology< School of Electrical Engineering and Computer Sciences Lund SWEDENB Phone: +46 (46)109-847 Fax: +46 (46)129-948; email: mats@efd.lth.se (on INTERNET)9 MATS@SELDC52 (on BITNET) Chris Butler Forest Research Institute Rotorua NEW ZEALANDB Phone: +64 (7)347-5604 Fax: +64 (7)347-9380; email: C.Butler@MoF.Govt.NZ (on INTERNET)D Acknowledgements to the following people who developed andD maintained the FORTRAN-version (from which intellectual content of the C-version was gained):1 Eric Andresen of General Research Corporation* Craig Young of Hughes Aircraft Company Frank Nagy of Fermilab1 Walter Lamia of DIGITAL Equipment CorporationD Thanks also to the following people who have contributed to the= development of the C-version over the last couple of years:5 Charles Bailey (BAILEY@HMIVAX.HUMGEN.UPENN.EDU). Peter Chen (PETECHEN@CS.RUTGERS.EDU)2 Bill Forbes (BFORBES@MR4DEC.ENET.DEC.COM)/ Carl Karcher (KARCHER@WAISMAN.WISC.EDU), Mark London (MRL@NERUS.PFC.MIT.EDU)1 Tony McGrath (TMCG@PHYSICS.MONASH.EDU.AU)( Bernd Onasch (ONASCH@IRA.UKA.DE)/ V. Phaniraj (PHANIRAJ@VTVM1.CC.VT.EDU)$ Terry Poot (TP@MCCALL.COM)0 Holger Teutsch (TEUTSCH@FFM-IW.DEGUSSA.DE)D and finally, to John E. Davis (DAVIS@PACIFIC.MS.OHIO-STATE.EDU),> the author of MOST (from which our TYPE utility is derived).ww2'  EVERHART SWING)*[EVERHART.JTDEMO]DCL_LOCK_INTERFACE.ZIP;1+,./ 4~- 0123 KPWO56i7`>QA89GHJPKrJ,lt` lock011.aIMVMSVV6.1IM&VFABPBAa  m!ІIMVFHC,;c IM.VDAT< %#Wޏp"Fj IMVPROX'b10IMVRDT=R#Wޏ\[lWz(([|Ol9eٖ%91E-JbHJvΈ3C] 5} vbE.[4EyCA)@ t{%Yldtn?ߌm?mmmpO nGəx"p32 {T214쓳;='H5Yw›DWo%|:MNJ7 ?Qދ(kPVF}{I-  dvn;ĉ9 srJ;z:Kp ?mO/NSRv!mzyTz.[)uK%W4Ouk0V װ-\3ՄaFٰ*0jV]Q}CK%IXQ/k.<gbC4<4XL^Eɬ;vIw]ݥU:eUhDH sE.Ut'&D;@4Q3,^ZF ,U5gXj꭛( ^%V75rL}ˆU&Z 3$F ^Uh^([g2$0fx,9K)ϒMPukK)P "yu]wffPQMa,#bpiŰ.4jt՗ )Vqh1h_F*i阛T6^eXvH"a\M tl~mr_T#ca׈{䚆qDT4Eߛ5y1Nj<̲$2iaZ300f/EpȠXyK(L{o+]з9:_F5%Qyb&ZG9lSWcj%])׷ګD2 þkP&e˵3>u@E|hөLb4AȤ +W]|]Y@c5IZ)꥔mU^Y&L_ڒI[y XGGchmgҊh9ȜСit.# J)֠*'QȒ*: PoY F4[ /x@shr<pusTO4cI-& pe2NzyuN( XDfUBdEx"[OC;Oz 8ćCqqݶ%J"2SDFjX]8UѠcH{xldh<qf@Eޭwx>ewz>Nf3t~ǒf-~_jeJfZ U !k+G K9Br>Iq}>S\4ɉl@sFEJ4;JdvYLG}brѹl793txFrÌ$aJt,ȎC$3KGIr!YϿ1F'I\"M%rq8b"ge>-T3ؗ抗Oub'WD6s5+7ג=.Z71@xױ[( tFES yOQKe lv:#}H`]G < ߿]p:al*vṅ n-FT>fl7ʇo`1vc+oԏ~u~9)x6Po6gawW/bX}]a'rB (10l6&}ܰJTk{\j 3g*&iI9*o=z 棗,x+[.ỸF ĜJƈָj;J3j=ȵC!MAZONíJdFI3XNr^$%p im27$eY$NRwL) UzʓQbJLrʶr_߮'S"r+ӹGK-&n .ΊA&$E,NE*!TȣJ5zeE;87L%LU[!DbaoSr2<f EUJ 7*OpSDIAV/QV\2 H X;I_Gb >Ψ Z£4Pi3sIcþ-FmB%Yx8VBP&HHB,K;#C#oTgn :c(`$w|1:>MҜ- ,M\T W\x>BGBϨa5J,*A"!/h<[Yo Lf\ćE$*c@i) @AC![ p4u8xGDBtщAi@#82a`eP^{%>$SN= T yh$sm؀Yx0*ZMP>?#Q G0mDHP$(!>f[ #@gfl$M!ȃ!(Pa{u'oD6!@Yf3C^P[ú@G?7 G} [#, 4" ħ:wѾ 6@"5a ͙e^c'5:屘8PdB~霽ЪKթM`&dcҼUt`HV!o4yДS<2؄05р.V2a:_ t <iFE.Bvd\ dt ɠ,挏 Qi…k3_6zd?: >2 ܝb!9?KKy/۽ ~/VЪfx~ ݗ?k٭3 pkRCAS>BdcDnš00 c~a~ŏ]i=lGڿugvr-N ֺl6V,? ;5o5U d#Kxʿ!@Ӭ ')׊5; Ie3P|t63Hgs1Q@},P+?hBfYLŤ{aܰX.\ $@1tiűΫxx#C]~%.c5޷U8>ߧvH7y޾U;on;p>,χO߁2rwa:=s;rOUz]y_`{/C<>zR|wY#qQ(<;;=SCy׏s<~E{ ^ ;BG/q퓼zv;jUWϻ^y/7O+fy/+^/+ΰQ|qDtϿY^YxH=Ey(7ÌqA᠒gC^U?>84898>aճWyy}|A~zQEG.K>7m1g>+O󲊇\=Wy}9ծ=H=r\\a_Qv?+ wʟY_Y*~?^a+F<&19Z:?q7.:/2;"0W%X4jSNEV6Yv#7nxrM]FQuSuȽu:[ m] ºۭ-lʯ J{z0s]c cWkov۱զ`TqŧfuIva RzS0OS UDg #5Rrycxr2!AYs#Y0ܣ”m0 `sReƵ->xg;SnEm1ՊB.7EEo*73&F4`\EHilyn'p1?!?.7[\@8enLVdg֟B>&!4i.O/zɂE.X9iG>o΂PQ6ŻT8x;5ḯv5-3B3XPw^]  &~[41@aFp~`dtMy%babJ6hl\lE١.B>/#t[&U.{mcΒ#(!}/xp`RmMgx2Neo)i~_k˞ʴ6?gn`L>b`elĐAc&J_~qul< ؼyg_G50BFqfB&K!i[4A[OЉxA=ڻqby6sVdTl_ڭiF&CLޭ&QLL=JQ5/%mfd!+?fs1ȄxgZw3tW'aom٘ cGƘ'4r0$ }Oh  i`,OT9SϦrr4/0(co\tN3`8b7wnPmʺ]=/s~U;xbH_l st502Hxs}>3D֢oh[SO͋Hs-cj< f0}\Nsю!KoNjDoIׂt /u}4v+NY -+~59W_$6FtGO |~gF:sP̕w鱶&j33lfq5gO܋aZ~Q=} eL'hv)EZOJDJFiOE+>֕:亜yp?KN#\MeE@`|k4tؑ`F6Ji܏غ_6SĞKU]&ѭaי d|}>51T)rP{?ocf!B&ݳ!a mw)յqrgT]vh.v4=Cʷ#PvKN~Şs &c]2GT p1@gCp; lg1Vx]k:sQp<-y=8r?H s<&%/,ɴ$Ϙ*hccFC\IeMN`XEڎ?A1]1u~?oZ :٩6ViRE62iO1"ӫrPNbtHQK|oHϖS4K Ţ*O(<JJ [,&N񊯏u ;U~W`zq+B+]_ObK/PC/Hpo6|&G}H5i_72. d86ީac}!/c{b ['Yz0Z)ice{mXF8Z|z}u)@rcbf0NDr"Ge\ս캀!M^uf'_q{IEզ*OdăEjà6OBPZX`XA%zI~/74od74~G H/*eebh]@g NmN";K#)mk,×ͰK7.].xx=([˰D$ڱ>+ س Ò-A(IɛX6\* t"v3W,Zͤ֞peo>ocr(nQ4vVGR#\G);b{zIum Wd;{6Fvǔ-uSbt][ORZ@9߿N]3*H::Y/d gKH:䝖 K0}aqьcn–{U`k}e?Oȳ399aҶ\ [r?o}qq84i1t퍊ֿ4GR Y`ٯrƉ+#eg(_[n ]cM.]HuQ4;*'c<TC#W_DZ1 iݮZhc*L5;ľmzHftZ8֪u7}IZh9/oM ~?nJ5b*L6qg<1neϛ4} >_n NJ_vKKaPG꡻aZOmِZU^MCϡ܃ oc/Rז8UUknG]C)#َ)Qm2t&(w;&/r6zMzF*/owgۍ+wܽ]w3s;W,Q98HKXbwƒ/ex\ݫr[ai r])=_XƬex3W*#S:l7ߓ7[g}|J)Ԝ9ЎSe:sԝ\Rc.qM}BhYnxh6ՠris5`ZbO,3}2EÊQ~1^վ%w]w;r-8@1n'Ӹ\}ㄈSfiI>h=?8!n$vKa!z|!BFI;Z@MoK'{В"hOXӂրhk9z${ qq/^S1=^ESQO1?˛KW4ucb`f:Z+YL\ S,zXpJZ X Uqx7So &>rN3r__ݫwE! na15@3X(Wk+::23f<2}3X*4\^rr[:/;[LjU _OїvqA'6EݮAn5)E)qVj,Uj1HZ8 ]~;J4 2GzfLYAj`*͕ղ%t-E]wl/2Ö\gw0Ic1JMQ̋䞳l=XuDfNɽ?-i#u=+ZXЗtIyͿi.m6B>q!4Wo=HW86J'z+$ʂ*tU0=C~秖}`2+ޙHsJ0_<Փ!+0/ݛG矣EY"d# l]H.Tq_9u템1/-zV51.ww C/Qwolj<7=vՙ v?u׼aV,=I-C@Ys[gm5m(=(,7׎s-o%b5>ͱ}Yio`B/  q$L;9gYI.̣^|X?gfls1e9"<:rwlVu`KUyDFR!dtao<2>iw҈-ݦ9vr9CWquo`.L]< l';Ks,UvgoINjNKXJoػ3nPSTg4cϴ\>%OWvr M OBr#l"ѻUc7ՅK{lѪWh^\u!2 [bM}H5L~nrA=Ë.`1v)iX7')?˧Eh\3FŹdnUUß~}{$$I-h.(?Ykcn%!tݛ:my6j]o+KDޠ2Slq&Y[?Iq3d5v)ƙ#}$"ߖO{'<+ޥ]?jwY2JtDR)ޔ/{4?lw4a}Ea)]\|Byx } T_m\49}>hŇ+s^hh'U`wʶ8Rm~M?j=s6`11U8.(/luH;ШNJ{lYIb.ῂL0׍F,}#~L~q_$&# h:hHݏg-n0s$\ڱ?A;nVw|~FM8KE!*/tIka9= U+[uæ"vdh P*!WRW~BMJ -Q|dؒm+yDv%2>Os|1"?tC3Gޅb SJ=K2eMlv;2|9~@!QcHT[2/"e`V,'j+݂Gփt=HAjA&qt;'rE]T|\5H~a{l>lX_r]-J_{gRp3ϒ Ost )Ǿ)˻JmNtZ,NKM775mèv&Q!:oXlBsTanHAy\/Ae>Ot2ml9OcMq'c?d=ven=S86ξ;Tx~ou82!j00mjx4Vmlq4S"2ڂа $[YzI7+`AfmP̷$5# Re3JėaKywB]8 'RX(}cfE/{<=!:W!'_G[cgS Y :L孀 .3em;7 f~&3nwu|x9*X#KހmcJ 2gS=dɝe˻wyXEEvU؎[*ǬtLfQ]MۀJA2N̩3:OՈ@tyޖ7՝3TCs \fK>"ޏۘOw4jJe/CkT%*XԃMeʸ>d kpDit`A<|K*Y& ]>n ?." $dnG?'[X'|7%{}y$l9JȪ^"vE,rI4~KR/p"UDIpY6Jh7i^dO2VZtP*٢jh>[t$7)0ň*!+'L`in~ni5t>`l0h =)[ACSz?Bէw.^ e"'Kl T;L5:%֪OxҴ8ɉ~"_Bgͺ㟑õأ9}iO3iϦYs-w:׷ӹ>ٝmӠoANSVls4T̞=3;vfȖ\zu?w}twoTmAC\bT3>=1hFoz2czmkی5Me\u0 Սa6 iJH6Iemh>n*.}&{H%Iy\ug3~L^Ui|Ўe5߻nF ^6ۄf^kfH!ܐg|Ϊ|7k-rKrK\E[:[`y}w̧{2|{g'zz"O1wMJI}[BZڂ󕍕\8vize}d!}"Ѽzzľ~nh/3*Y~wcڝ @ZiJS}՗=î>1/&Wbq/ƋX7}1OmŖ"[/e3qAv}#c(o>?\2=ue*+m<CJ-V_׽M[QGǧzO͢KƿeͿ,Y֞JX#k-pMmF{;lΐ[/M?ZVNXb ٪D<%Ǭ6NN{)gŴc0;+y/Hdd` l!Xɲ;a&M3;cǎ\ؾUu8rNg&\-?h]ɵ(nhع^Ɩ빻)1Ӹ؇X»bdO$"&K?qWcPe퇲~)V𓑎پ]8GiTYɞN4Y^G :Xo~&`@_.[0<{^ %HTS Z8pfS$ڠLdA~1Go-#/^G(͓x)􇚴LH6OlaVJ:_9;Hw_dVUneTn(>+A<=V[TyxmWWlTwgyRCP󏯟Yqzנ: $>1`90UW)" %VU)ZD8z{#XxCN!_$w9߾)ⱹ9[EC2D캛g^h?((J{jOD7.=2!_\zt"R9}ܹ3X00VPῩ0 +E9ܘjTC8KGW^\Z}GW.Uή=tl۾ÕəK\gp<8>Tbӻķ1ŷ*Pl+zz'.] f,=Y;Nc:AIؙoCrkzri塳d h29 GOA LWpvGsf]8Q3+\] G(DޚKP@O( E]ڀг k%=̏Ėb"=ތhT 2^̛lE? %>}tZ:6vq67vna7l'к"=m _Ip|;8)Lp&/ep.?|n͟J@3ȯpuC1ޅ{;e!ѻP]'r8l ׭Q'Ch-}nO(>ޖF+Qn `)R 5(f2wrւIjgv<^ܸYS ~ 9֫ΠM#lz 9dGr ; 6zHesX/rV"yavteh!äh׵+O^H'n/|A E  |[]M']x%\V|],]y`W/ b'7û~Ѕ@maZ:tp~+JiW_LGMa\4υGe4}`eLyqfG3axr+rOm4-T W&{#c4vHsuccC/?Ǻ8q bO? 4ÇX)%@ aLg ^;vIؙ s;䩈D#o'†TK"8̾ycY&S4گrG%=c2YЄ7|x"'b0) U]Ě#HoBO3pߣ-@0#Sǰ#`Zy.RК Q&zaBƘxkՁ0ԭy~_o81 @X*l WLmb`ؿo>_6f`QsW z#G~zw#Ǐޕ){ G+kU::z/yz{ݑ=߽˺x5'8) ?ZSc86?0_zvv݆#{M'j6!=H\}mX{-B^$VWK ?$ϓ zᏟ ~kRIlM*ʇ^zK/_cxQ彯w}Vf2O 7|}>D[?ym;~yx0H%}q~7*%{z$zȞx]rMHN<A#4Qb@R n3{~g9/ROH|g8ns o?)/TyOuݓXOY_H qB" !VvW~|Q^uEytW_[ц䗤ߑxtTS\,oߔ`;ݏß}ޝ~o}";$' da q%hl6zO>Pf*2y.Qlc+[H-1z*!(>֫}L&yݭױpZo+ M݃Z~YnX4'>q;&*8uK(B-Q- 0ʩl8È` i&Rwա`˴?FZ RVJ{)o،F<H 97'@AU.o5G)i-1XEICҮџ_Tӧk+12Gu( ).TfYfKʀQF,X^%Q}w ak=ыz,'a ZZØL OM‹8N>_m~SyC@`dح9Ik%0g-:d’k8ٌ?zVFt:06@yT *Ӂ bË9̝].IHC g8L$=K'̶%[Ԕ#ZYV!CC!zBW9I1X|UhJНj^E5#ߖS-~Q4*^"ov C}#hl|;F)'烢|5)WgҺ_ں u0 @hk9Y+"AJ=ti?w1HEswaz&zYFqKʣ&t,mhŶwj3Y56KYic,uc.m ?%hWXcܯK61GDcMƀ5rTw{5 S㈇^k2dlo"KYLQ,כ-\ zU߂R@A0pPlDJkr,~%l/ g\(9=ݒz>(lpbWn'H%h:X0|Ϯz>Pg: xY[ :[KL}&6V#\f:Bi("P hG3PU“Y8JA4;Bf-Q>ܜ4[cP4[QIFw-M"bvW@Uよfݑ/<8Goy!Op9<+{E^(^(rc/ 03s]8\u5y R6 j/Mj{$a-kgHb0ttosg0 [e\Y̓m6߅j/yO5(! 0ీ[I0B,.R"qyA; LK.'P/,+FmljDgFpf Fh(.-`jf9л,dЁhRM'̙|Nd6]A7_~_BV}5g K(,PNq6S37Ѱ q6CTMϦb3~˪yIeLO $'' 3\Z=ڈtM*6"R*,GBA"nca(ƞJ¨.4 А" BS/M۴էdMv mi ]| $cJ&uFhTZ}!xC!0VA*4c`a’MCyBP ^k?!O}y vҴa645MuzAP̨#`(*-Xr-cUZ5`*Q\ѴNM疹IH_9Ӊ},6Xƃ} %EZ&+E/:đ~#6AI畧t.ᢤC%_ *<2hx JgZhkdB2G9[kVs1~&.g.XUK9Ez1o4 ad:s;/ePܾ>dvR 6(a ɂ|ո +¦Ӝ$UlM֖V-o0 M]xqMyYmԣ5ݽY~ZGHʔtLGՏjy fpE6|_!?GB\v àI1)c,]:A^E+V;|5ͥpwyT=g66L)x-$V(ADtEm_c;'pM=kW.M}մ K.S0CiYE(IAZLOؾ\jtNt>pAZ 9zB;\ jt?lQSxuo Yٔjg1@=4~U#bΩQ$w@AlN׌xb3$F,t7X&ںvDta((-A3DdS ŧrE, 6>IN&rVh)7w~qݜ'hEDR֣1ՠCA_Lw >juwo&m#',/*./fq f'ƥVC{㕺Kc#-J{/Tm:T^ӫHM síށ힊]ߎOWrZ#a/;T_?ԝ|>ž<\Qt5d;Һyw}gc9rz,ad~mطr>6Ǟ喒?0&_(O9nwJ/‰~ޝ]H̱oh{-뎍2~o vn-8EN@ueˀ}vEGe:?yNkʩޢyrFIV۴sʊPi]p@I=Ҵ9/mn(<9#u|qg1oҙVƯ=Z:+͞8poU2OO玽rCCEƤS?}U*S;o/>w`↏Zo%xzZ/,hx<^5qإSd%55%ѥo6X\j?;eay(ي^qVLK#ӝO NNt B䒳~a!KHt[}[JnltvvObúrֶ=vzߞcVI*;:7]]SSә? exJ=5 E8DyM{੪ҩ3-ɡs綜y{V]|cŵ?~eEM-r,ٖdKU*Kڦ. @Pv7 IXfayxd [h{\IH~c{gΜ;s3{S)IεnF"Vc6"*lJ֤/Z܌la{ߕ<=)`Ն>.{;W8[2^Y- e:dnlr h!Ӝ㒾/DTb17۰<#jԥe9 G\ 6o/|ɜjkO  M%Wu[bj AvJ-6iׇ&VVdw Iaym6ӶmAeO$̷5CCmmպy8Jh\颰q8VW>=Cy ~$k*۔^40{8N7r[i\b6XDTLABk*S߾Cea**{6|„(q}!a_rj4=j NAk״UHhgYHYu@7VQd;DuW%]sY!|Bզ&t5 O9*07gbdT/%ok8U.mJ^kL0YbSӘ)0z!ݓkjo䌡uWLnw903қ"j-IOEk |APT[˰]ԋ⌮+ҭIe֡أYr;+LN(5ڵ)CQƂܸFL`قMO /,;ve"&#;Wq#ʜ-*O~o?Ù(pU|Skm+ K6Vݭ e:1㴸١P}x΁5r3a[a6ٍm=N,=7~節k\ZKNf8^R5TչȺ*j-Ff3-/%Wccc/QVS9sU*d#o| )0W/'S| 㜎]%or;E9iD^&jE0.= e1m+~Ҽk/79g&wo\n|{W>(KpE|E]i_:&u !٨ˢU_k)7, >3  6ܕ)׹/!Pi^{7'ߍ i[X[nhN`%׺UO_ԇvM?֯‚b&S*np䦙IUvŹuOU#*v(Ӯ+M޷|+$rʕXns|dUᶾ##WFKo:K>>bJ4䭾3%"*{&/ܾXh9ԿoƗԭN E N{-o[#o,uMg#ד/M֫һ -9sRoKOr]3ǯYX:8 '{IiOGM+蓕+'^ĶvjwX^лwǗKܵa_^; 5C+?f Vs>ְ;Ƙu_[ǂ_5!N {sEλk")zo+vbLܙy%/׳q?;ڭ}`wNFG<_eWh[/~31 G{֝VV7L%5^3ZUI仯ľHjZD 5#+BL;Nb ~DQ3W?sf`Otz׋{홫U|zG.ugUҝEiw^a8{I%_$D՝db!ײDUWDZKoxGg_x{Wrv#{陝#SeREn\]Dժ;o/>i*-o>P<8~d]fԭkc.b!+y.INKz5Gw&5-KF| F#u(m*D ͠ #X";[v3e2Ve,85Ffʂ7E1^E6mnJ@Dv̾Z!XYu׭I5a 5q=ål@)kP+2ϓ8Ikr'e󴵥~r8',6aGG ĞΡ'D~#u17sG2̀Lp)p2W".*pćfOrrzOȎX-IM8dg~_Sl#|H}napfL2>81RUJapWt]Q1ihw̄ܮ5K=7sqJ^f쯂8KfGVLm{* eϗ? w]­G_/h:;̹JtN&Toodh2Cz"s 9:,Ί+Aq-˺?~gjRǣZvϭY%el:#kl\ިNw~[msI +Sis+UUֽrޯ/JhɛQވWL\ɏ e [.1{99mgXF${ڹ,Sտ4xI(3‘fN\7mljh*[6X4d(w17<ݜ-s\ⶼlFB',j́kΧ E|k$. *X1m6,i)m5;vİT`qxZRIRVqv<1g_1Mg$Aڒ~sr_+K$SK֔սVyLpCX,d)VK2-$>6K3Ե$6 *npVZSZ4$`qDsS159 dNV]eUZC\fYuIEpPLWwư9,m3$e[u͚BuSʞeW5@foK!lZ:u3{.ڶ:]$h1GƆBWNR?cYiFpєZ7Ne@Tzhn9lZN+ ޏGC0G9?T֕1;<(nu\;ZʪQ.8Ύ}pwTx:sD]|mWO<Ko,ȑ)U.d6N_fY*dP;FK~Qr 9KzC/OxjnNu|Ӹά9e> jѨƞ;"o`<-ޠj Wܗg]ڟjGraqה,?_н|\h_Lc,C;򚢖Y.AAm[iK>vv&';77XXh̅ʙ#2B7fB796E&Q Dغy\z̞,En Hqf P[W\be&< #)<>)^pZ;E蔶zUU 1<1v"5'+z87bFjnHx'b:.UɑLֆS Zuɪex(?RtMӏK㻕ĘQ; &v˝tfo6=Big&Ԕ&~MMo[?dj'棛ɒfˇBcFӗV?*D-j0CY͊=Xg;FC ElefZ) :?^z{ɚutTU\SچkWɓ[ʐJk]L=-gde&եThhN-;#k{`Bb80I†\~pj9=]5Uac-cXuKyHbXǎxܳ?f1k::ʹՓA1NS? -Y>=5%Q]K٫&ncM]ȷW 58q 唡 <76g45EJn*sEBG7ͷFu6"GorFs̬ծΌ~KqTڪC՝0O[! 6sI{If,kn*oeLpie-4(c2u_ Eね%C kPWxj5V28%u b¸Q<5HXrcwwT8kд ^G5dv(g_>8)Ɍ[]OKY*N01q/Lwc.ۿ lVyN]JӞ>"Ui"Ne"V[Wu;}UNT];I]>|.DWk6Y :MzVJ,HMȉXbiz.@&0a7_.D:(Z1͓q6n>ř ngܼ@skfX $μ&~k$ō#ʀMAk\X& H¢xQQ$$(?VB[ Pp:s-0"} x&La Ơs@>(;[=+q+VJҵ٥ f^~fKhtM.GsX,Ko+%jihSo\rD'}۾7:glInvKp4#9N059VlxqN6oq8Gޜ6荳tW)9tqqkV -!,Xh׸}.l8,pxmvt=M :D'O+(E ;mubi5k{hM|L(i.' ~מ BO6`dr#f]=R*( _c8-T3$la3@I0M( ē daY}p?Pk($F>$l9XBrf́TlJMZFD/vC6nY}7f۪S< F# qCCgnG#^9[#3ʵdcOhF0dK%[^H*K8^XIKh!?O8Ǹ,/O념>g(YozJ#x<4Qqԯ/po@; j+bNp +u2uAXC ? ˍ4D u`yL`bݼv!\ RA"c)T*?ƒ8WMV!"nB޿s$-[q)/of4S鸝DyUB"8yɃ w#gD$JtӺ`=-hLgh`⃺LbA_|z>jׁi p345^. ]׎py 4|wD~?o>9 (x=n/Wbo9\r6hKFgDj!Hl.Q:ĻdyC(8["!RŖ\D׉XHFR`=XV4g-;l~>m t?\b{$lxع%!<$- ?D~T`h!"<NuBF8Lj>JSᆚ5 $ O^4>9O6&VZxUQ L. ⇏dg&vB_(T,<;0P `L_)[tkbsn"6A4xh$-waM$avpF-1g `~'56<1xa+5G$ 6g&Am5n;Q w:* F,'. }]DSc|eY0<>n~ t6~t @B<~ ^6D "%+?O446m?t]?  ,ՠ/pGxB_QA6cWpn}:ص^OǏ{8Î{13m.ھrXߎG~Fk`vk{"˜ ٿHDl8ܮ́; {9x;[^Cݽ{OYٵW |kxk\5Vzvk{bc p{& ,𞈽 a$1{_c ʎ}mOB|_ݓ@F7 4 6dA_mOO9{vS1ιw:Nw^VoBvTp3_=Oăn=(?8in]|ޢwgt ?| /1m;!p-LχC[ 7Cp?IQ3\pIpO~Bs9'.Q,i ׁ h [}蝄AZ0t%'i K#<yGm=+ߣyY:Ыk=+ Ϗ^a O.9=Iࢧ"ƅ~y>=;<nW<ejyl[{u g3]sUy dh@P6φW='Ϟ}OVgφlHǞcS#=vj̃ioz W|sٳ=>뷯BD)X`1z:'H9$vmg?>IVtm ' nyxع0v' YxS}͓w:<49C4S"?\؇=P~-?-Sz6@'N/;IȖNo||6.(< xI'p1baA;j+Ӌ- _: > ;_;PK0 ?\>\ .4O \kaN6~ L'8>2$lEC7uN_~ؓ vf4臃<' 0_ALe3#a`\@ׂn@eOs+W9MR1/ӫA$IuH҄-z ze3w \C3/K~ E3Yj.i^zJo ʉ/`AOfoLLHɨ(=2iyࢺdPRlj|H6}ϩJ!G,$F 96Zw20Ӳ~a>I5A?1t\*arl zUȖ1 01E<r[&&^R/b{ȻיFun 8tm=c|O/}p/ZH @Xu2)/*yBFgNgPK" n7EL~<"APhҴ}:e{)_"6X JМ )S<~-:uG3&b0ICB4)DD\Qklְ mL.jXٙ(HUŕL67bP/dVF) CO2 q"0 0&^`t@KnפR'h$-B(Re0+k^j!6B S>UV{zrّE$N xsU'819:ArvF?ًJ5Og)yS#:NԈ^kR$"4KFڪ JG-! QR\dy3=ы5m[p/Ajxv r#$R9B̷7HޒGH):M;RFiKq>%%AՆIϰxO.E!@ڹLGgOqP-l[dRX/G׹Ndrx"IL7˩Vrj@Yۮrq_.zܗ7H D!2u(Ekr|<ޖo6>Ov>O|Ӵf|x/OȒ!&IGڝ*QfrϤL0UB;ES^:I$É6Ѣ44qDD8l7 8T<qM-Ddٞ`ܿ~KdT61Y6AP1ͺz<Gg!C6%a]U䛨HT7AkuHCbpk" 4<?_[ljꜩ7(MmXI'-ÃDZXɯ<8Ԓ›R o |juA{vCn6=i"] fS DK6V͇C)7FeffBP#;_Ff?@}!50bLjHձ/ jk"!qd\"*J@bƠI$MdSPœX2H⋐=>Jѣَ2:w2Izݦ+$y537zP;E)Ьv|#J&=-ZmU0md F%#_iժz>^Њp|g6Y"/-Q(>D)Rù1Y'|MREb >&Z90%qNxѪIl{15f)rt :S輽a"\܉zPm;-FB?ZX -N-XR 4DBD/0)f7k//z2ԏ?z"H"%PH+Mc8qRJyoÏ ^ /q0Y_s:T+EAĘw`0k)GRx+ZJߗ 6ҏЊeefb)Oʙ~pf%G+S9)Gs.HGR_>Po? yHPbd9ߜ6R6eׇrކ'ZoUMJL:=m35J{ceKMPkmBvZA; %LB!T JrBmɯ;`Ὰ)nbQԻ € EBd(͙l;B'7b >؄qFB % @ aL *)\J#PI+EY  y{=ʷDq}&}LBIH~-ZJn\IdWh -(nLԚ6N15f4iՕdÁqmB vqjAM:t |9:v.޶q!AoV-d-{x),LC P#W>2l|>0 "g)@l^6s7 Hf8f8| 'Gp׳s};$gL^M* Bխp0Iv3M#`C:WjNk61.}]s[Gرwܛ^,$-:XA @, "!1EhAZJU*UyJ^ 1/5/I9)Tq3=====.Um:˝A &OyKUSAU SP ({tY'8J_I";gCnpCFАVu_5% MKȴ- #Re|UZxQ?ݮڃϣ1D'ԣ>>żCl`8C^5nfCNI Om.W虆EiމSLJOZָQ;Zy0ɄVLUY-4 }Ҵ8}I3p2'M127jbi޺:w|If KNA]b S5aSr76Eըn+8>R5ū#4wl4B+Rvt|ȱꞰfUyńq־ ͻ7U!monǴkkS-KsږW\Iܷ,-$; zhDھi} +e38`0Ikʸ:mywV/y SDBMnZCAG 5k uAQhuwk׹DP'!<3d-9dFsf)2re2#2s &As%%$921k׍#?` u|*O\W91Č?sq 'w<_J),1(qkYZ9@AIE6| DZ]R{瞁.1 2nٿyÇ36vp Z^10=F٪X]Lq|2Rcp>> bsӬJi[XF5,8:=={=0U«UǼDc5ztJKl kf~&/rB>K"[:_.I, RJJG0I#s=g,e+ۜfG0` 'B~bfӣ1ickeWZWi;[j45;)IKU }:_,Å[cAUnj WPB:bx0~U5wG C\ΧL(Mxv|=;.px#34 <&V7;} #=^Fтk6۠gu Yleb~^ګ[({"*ӁG#3 F,vGi7)O/QW\6@Evc[RsX-{ekЗm+РNK#fgO]\Xktw*~?܈͌xxkG@%n~c eמ*\,'z2@eH*d~vUhPVf&`&&_4{b2jOR~%} d:r$4H%e+TKx[y fCL@40?À:;VSE k_{Awȉ$ Fk<(:oR8y\S%,QRsعg),eձOholmq^Thz϶f[daTN`n7̀xBja2ez ŵ|]JaiZSPJ':Yظgrp5:8ɼޘV4E0DNuT}  /Itĭ/щ(<߄S Png}XK`- =_޸'ATf3O"05Ld3ox%$~f%Y.1GY,<S5f8y{g$+:??:#: k>]`aV#_#:xgWUÛ;X\FZ(3>/ ߛ_5E!w譞8i|Y;y Hiw+ *˞|m)OBnHH38"5L9*&>wx hΦgRۋUBXMm'HYTBbZEGigNm3\5>}L=.ci["o>__R&`Lf{OOy'v' mŃCRxֵvvnۛa<L'hstDK:e=v^?B2~]9K%O,zzU\_j iX v3 ܚ8P 0O'?~ME& דƋRW_mHnY`HΦzHiX0 N;-/Q[FG с] -R)W.^zrK +OU7h-Cq|z¤Bo?7p͍M#ٳ(Je,JjSWr U'_ɢʿ"$jB(Dѽ-P&[:GJ- kDwqZbjZ'^tbЈ?MM^KHɥJɱ|);87ס{''giuxq?JcRGtt38Jcx4_&\d1~qL4_|e>Uˈhx[[LS,7AtKsf_RPgCbpm/8rA1hl :௤_I=~{ۧ>wP!&Sr mȮX0c(A[W҇GeiJySBv7/Ml "RN(xT}bW=]8|V$2"#`XY/vrSŭ- I^aY()pOeв, a,L$!t y\B~2BftE:c2CiV'$ch; ζeK%Yf,b'(wbp2zp2tp wC+Vʁ]! :!HaH7~fq9!?G۱ҖS9X:5˰I΁8ny?7i r`׬Ipz*[ܞy:5;+u+XZkrв8jV'1"Ϩ$8b7ns 7)riZi'cxr } iZ%/FbE _R|WQ7eXyZ5s' sxQl\|KD[nBx5򱑅z+ZgTOy 5S$b+Ƌ aRۙ;iٚ D!RTH}+`>~ %^cN+[].}c^XA޷]d=Tbj2?)nJf_L~Tq})uoQP#cıCa, a,C!!!!F=$W$WDK_>}H;Op|hx"T= SD0E4  CSyOۻT$$$$$$$$$$${N>eQ#Hm\V9"VdX^Մ.i=W%m͘+#vh)MK5q,Y IM*4UKg^86~#5ȿ9?߼ !hEV{RwRxI,4 ^rUHN~/AۗPI|p4J̉d9$fMze>fL 4˭UUr**#- ~h6/0TL|g˴V:zm7rv2_pqb)9< 0}hR'ǚ߷ܣsc*Nmj(b&L5s>]8H`Eq+f rpXa{7rV `V8!lF}2c6f\4 aPpq-%A-/jܶmJmb~OuVIHpr.i K>L'EŸhd/Fͼb[3˸8IHYU99C$y$s5KadO#/󲣼XIvJ))zpF;u+ iV I>I!}]ɚO"&1GqBi; c0>U gy؊S9YK\P<ˌ|aL)A]8qXs6NJN 瑁} ̙|B,U^8_p%8/ǝšn}`wXhc>͛K@טYQ5ͻÅTJF {bnݝP.Ӛ K_6np_غխ/&+),9K1Njsk?K) ,v^t]x0sqi?]Lx/+i< X1[jc؟`~dc`@p aaOʓ?Pg= u.c;4"2*+-GeX6 ~V}X_ DsHaDZȞ˽Թ\/].8iӢ`+h͒P4njEK'&=#;&Ph "n( 7y(ʬTQ@ SAFETY013.A )[EVERHART.JTDEMO]DCL_LOCK_INTERFACE.ZIP;1p>_LC0q/@`pWJP~P]AJ6Gl_8^R=-\BB͏onH~w0C {V,/Ӌ'}tPCno2akn'+rPhmk {:Gfo5Đ&qПEpTdP{h[{b'7_c;*fȇẆVr=9bF[K3ɡ+!tS#D;*Z7?R8=R+ӑ  6gXE=OR=Bѵ깻F10K}898{,-hAMt*[Gݸ]vB+wƂ*Ꭿ GF8S--W8~7Ai 7U$HUs[N[c D4W ;N_om!z!ؤ avsk~anunwR5d)TdV d{,3q~f#NQ{iD'觢:È=y_߳WA?wEЧM٩MGu.eJͥ)&8yZN߹,XD:{YtQ>:0+bc#!u74lQH¼)jw%_`9x6/7~Ε氹f} p7;[m8;^w𜸷6nKn-no^?.zwxl>?#+Jl:r]z\]lsnݽE$;XO,v5R+rڻvAs/^ykeHu^6^</itVoxvw+eco3;/]JA|sb߸ 0{_Ja0.=-a[zc<2Vo8BESlԪF9pQH3`U8)z)埳InA B3}44̃[+ O:e[Qd\GUs#aB)RjpeȱǗ1!g#K1/[s~h䓳w1vrXV5FvmXVF>92,[|':7㶮=:fOnn>|ϘTR~Lj0KXr*UVv(oոUT.;T>*TT>FKRZ;| Ep4dޕ$A]IfWdjU.6TJW^{ݶ^IuѤ*UxFg:iJuXqhDGDp_i.?e]jܗ.p۔.K%xVtW qGy4dr>/Tyzw9/<\Q0vwGdՂ+oKW8%?2& ' E0|_٫V{a\ YxZrkAݐ[^ ^n-5EkA{:M0V${}W<;{0;M [ Ee98,Iƿ8滈aiK%ҪC,f6@ /NUgm1STxd_QFgʦ}NT\qzn&@~JPȖ9ᜒ MeJP-x:PQ>K˳5F܀GZ:khV>llsVX1u.#a<Tx)Hǹ5+EI:a r8;f *RCNQ4d~{;u* 9E?'Rl%oy8]>9V46Ku-q4Vy+116+Fϱ҇⊏UNwhDrx̕Jq79\iMe#Z}N3"v&O˂AdY>fԧ3N(lyx\8uԒ`9Ƃ+ UBtB-kӳѾCmfgP>:.xMp49;=~f5gU\xbRkYX]T&zdɪR{iv9XCyϣ 1اc oF7+4pdy{qoEϬmiBV9a vkDÈln ܳӊjxxjc?O=51!|^e$79%Hȹ!-u3~8 !~ؿkgQۮvR>[A?TTq\`g,wͻͲmZ qܳ~aպ=wd]Hl{UP#M򝡓Ypnon<믬̈bz]% V}ͪ5k,W:@UM@k,=I=A=Û {7;l+lj?jkC!׭ %0;l|?k,V Z !O:Kc7+QbeaD_NP}`UO˯Kd̯Y߄BE˼T9<,9b|P-#CTy GJ<ˣio Y2NK2RJ"e /-+c|r]k㧶eN*-.oO+4MQ#[ѠFg041؃}M>zz}s6j Zs9?nl8JLR;1ٟ#-.TPuF52/!m>X,g^A7zHm(kv#׫@;YЫsRvf=Nqnk6kт^.[T]Zmr7T.[=\φFMfw*E}hz *yۄLVipsDŽ4E\nͽmis!ɏȝ/+wN} 3y++oEwff;=,~>nجln^h- hS!bZJk`Z5Ĵ$iJkaJi^*mTZӂT-L SiLK+ 349*cBdZ PP4h-FA6@{&l ZǦ:譕2C4S,ROBz m/yU=齓&=Lf&LzO I&L*)^@D:x-(bAEQQZh}朓I[.k={d}'=>J p 32G(eƪř`YG jŜq'I3I)rz*bA$10 {P]hpat+r΀zrqS؆R@! CS2ۡ%ԙ`y3E\ʕ)g a_JV-ܗ|&G`A1zgY 9K^ЍI'U6r#B@{ B|V\iŅZq!ey#ƭQuې^=(ZM)' Bw9&r'ce1"u]-jdNKEc>hƒ ؠK| :F+O 6do·Bv[Ȁs ΅&BBߊ ƭʷB|V\Ȁ(cťTq/-:eBe3f$eF3,, ,Ɯ-s^6,P9"lUwhs8{i}!"߁mDbƍm6-cV2b n ceS𭁌G<(~ $: UId4Xdq27P>dmN(Y)&Tҽ7p *w:':q㥎%;3Ɂ,gSmO7-,jJ?353BS v_fL9%I! ͽ芆zEY[tQcVpڡ@c%'Lj?}^BqoPFjƒ2uegwJ|hyR`yxr;PsaEXwSGYzI) K*tTEEX%Eх6gEMuih}iWH. [uRlGe 7۫["ufƷ;LoJZKv,.4ЙM zrqO62YoQk(A$u1tt/Ι0)kMMTIM w(id">ӳ=`QCu@cE:ܱ`:&'e tBbv_`̮a"16 8ǴVXT ѥ89z5wEVj3GE-HwFdaMzG}bQUH4'MB˔!gT/VX?i6`~_}+_-w*x%M 8FC#?e~(3N7 n_0Ko$l-ֿď=ċ$85iu|TryO_?7zȡ InxXcv6yrQqKgnZ}5q}O7k,H~{iy #", #/ﺉH]GOZk^[Zw>xJL-_#tO?T#5,K'ܺ]a?Yyzo&NC/._G |mƏ8Ԛ˗5T_TaV͇|}g%@ݸꤕf,_ʧ?=qr;)ԺzݛO59\bv7?<ž}1ہL?|TqG@Ca/}UKd/߯o׼vcYm g2S#zSSz]%5Hǡw;>Y:RU7G'W\y;k69w<w{3{,q-_z2Ron_KO\zzTOVƍϣv9#v#Es7=}?sy"裀|K'ZnUxFPRsdya}oNDZ:9vm[qWםb]?[uS%OS}~iEƤ:?kf0^:Q+Knri0F캸+&HtSvW6GNpoT[9V벼Eps@R g&{B'S-#^Vm%a.ȴ\"uה7y"̵,z|Rn50MN+(/+2( v + .uаo>ˁ̜j7YgpK@i9.צIBKJJu=qii-˭{tu?zNomF?7w*Z❇}mǶ~~޴CcUO+-L=ndbX}> _Yg.l5ywA ݑ6{ow2s{,w%Wz/+ݷ+<`?y-dulx_{6O\ H1zum>q+}+Wd{+#uwߑ~ ;N6}uG8ܪ,[8wƋDEkKH<|m"k~w짓?Wܿyϝ=~}O޼t~ˏ.J|3ݘGoן*Oz[wtꡓ9.L_wkJ^|r[?}Ӵ;1o]evcy'x.a۪z趷7eЍ zy]3lu$K~zݦçʏ(<ޞU;RNݟ7{~_lRӳ&~(iuF\Ktt'Vԩ _+/Զ?: \s۷|sٿ:On[^<}2ԵU۲⣭ߟ[uΆ?屓n=+=>u>wg_徯^Gٸ?ݱy3.tヮ:ϧW߉<^u׶f?u _n/֖+Տ?{ҹo%7=!Ƿw? y޾ }Bs~~;8'6~&Wŵ(=כ]?p_.}>-?wIWy:fݙ??ygzP/~SfnަWv??mKHۆGu?-9kk_%;..;zc+nr!wmiZ_Spu| ohCoh.|WC濿;c v>ݿ->O=qs'^xwJl=4~L<'^Skw,w >?s.nҷtMk]R䏏bU\zlj];sܸ>C^|S?|ړw~=뷯}79ۿWn04Wyz￟v碁U?>Onp>X]>o]^r_u?7O?LJK7_okEGT{ϝ\釥Ww䬰z[7:K^V/W|zVǓn~y+36+|Ծ/ܖcXUؓ/rߣrv]|?_5kS~ɍ?.?/هo52MKW~ąƗz+n:s솛k_o?}'+#2|}쾛/ݽ`7Rmzx,eg]dy.m_}3voc~?y_={_╾OxS8ǝo;w/=;w3niuSwssɮ*EصO_Cu |Od*C}}}FPQB|gYSUCuϴ[e"DĶEKjmHiĎ4ID?Q':/Rw/7 **)B3&M:L,4J)lVXj_b89()=2PW{K3's<]q G/F), [0ʌAePҤr40rc[:e(z>sq*>4pBol@:aNH̯*uwu)Ji- %lʱZ,[E7ۦGc0&?M3>il (˪bsZl͒>L<\Q*UeYDG7ڈ͵%1^9AB.yܨ]~*8K\Zfiޞ+PyD9[G8ygy5]̚KO)Z H\i3"+SQBmZ/+CD:x[a9b'x Y.]Z361V2SŪh1j+xFkb:b=^Waee8L燇uVH Ȓda/FW5f"*ܢ:T/YYvп8L82xZ^HchI)Sp8¦NQ*b"RVGH~O|NԀ{JPxXTobF6>.o/1z7L^lYLbGB,F[sַ;XfC-#SGOWYJR1o)3LҴ5|iG|۝u Khr_g{+fE m9VK$WnDP5PCnc)כw+`qS&Kk:^xߦѮ[l/vŕ "6xv?ΨzXVdwmTd%w6ͼ{ *BۢZ,MvcCһFc4ݭ/`=4h;,z՘$Uu:˛-ّ+;M?xtwkr=^uE cR~Z&cR'Ul/3VňR#1s'zTU U͵K;)J%&/QC&V=UNh]WM^+ +rmv{Tw{NN 7zuis)kl nWXrW5י/n EvZ(zo'&*;k1k.vD4ZM*-d$A?1}ă=E^!櫐HCeUYK:Mn)6^Q&9Cf*P:6EF9$& [4+dnZ?_fQU),/jFZҝK*+}4YC`mcp})maDZ1Y;b,pZ%ʲnn98yGx8O5 &;.Oӣ>QPVEngt9Gr=Б-uίsY,nAU%)~)0]R$Z'Jw!\;`>Wѩ{&6bq-pQkFы}lEݓ n{3cK/ܔ|&J.V'6%H+lKhwWM.K֙kt)ml- 5S=UaK}L@az[pÄS%^䛧,Gcr|W(4k :~lk5*iVZO K$.Q~(emN.jkĶXT=QXz[c&1cuCV1ESV~ڒΊӇLK,RN@rww; 4{6h`6T6/ImuK.t-/q).VGD{:O5dcjTԠhO{oM9}Ҷqa9x%Bm˧ZF1oҶq'=M4Py9iqNmg6n>?me[cscXG<W;֝صr]:v|x/^<߼qƋ"PEjZ7| ,"KғZ"Bql 5@L5"X?riOmzckF?Cd`l >z4pAРQ0^^\2s")$} ʪb}zb2ZM+5̕@HrECNCE13W!53&>CdvJy3 1! 3w&)22h2\_Fޙ0 3w&,aVBJY1v1(ie@x 3"h  %œGfrcMɀMLL-qPqC ;t^ȧM[|X:7 dVf[ )KRưT` X*,H_G"d"%"18S > 2 JP8XEB벬0 d *L5O"]DY ZcFG6,l@D(3#J*48}aG JPOAVҀRC9a3_l@  t=Z@5P U`V8l AGTK# Hi+KK(6| bfudtRUYajA"CN>s+:0rZ̀JJ-.4Rjl/c1>[Wc|2<{gwO$# D$B C:B9|tݯM{I_fxm xVqT4"Rח3y{+5LjY˓_f oq7nAj|Xbo_qZL7/Ħcw!IT_݉y = ueGOm d\ ođʏ m å36(pUM,]و'b[pjIY6d3;;sM8#6%#>{-8흞kU>L1TnTx-RZɴ+86&l59wAD'@!4C')OsJx@1@$~Hf n<7E1TSrVN$VR ̓+vKBmARPJ dѤ Veݥ"L DMn>2kBbT`m*}DEzͫ&dl)\hB!/X*J/4<1#@GT^V..霼3zdP@D%oDoy65"Qs Ipͫehw6VȔKAS#gEw@jBRSvXE/{ Ͻqg8c1gZ- \ERm+}}u`-~ٽx$~T-XŞAo)M%6Y2=om!Y+u"\4Z?j$8nx"":=EϨs;zZ|wU_@_)ȍ/9 T]<,iЬAZO\~x )e?2BrE%S2cʯa=FHҕBA3F|H# VX'R~s:"0|Fbb£Ws+k8n%UX<¾] Dbj"P?&X45a{3!$0/`(xXoFD\[GaTQ$.A&n9F c~JHE: T?LOvID.55.x>{GU0y4vOXyxpb; s\7=R̴62ӈ48WwJY'*1Sg8Ô_,>#; zZMhSpkep)v.HL`#x%;R Yc-(Pxܛ- Nl0yN89E*5yuZ{y.aMmB!R=LR Zň,~UTӷ/χк!yi=^;52Q٦/0s[I^Xz#:uczߵ;,) Op*PqP6R5xM4BԭHt bN:ʊły5qRc^}/̴ 6ċῼ^ZfZ}[_۴f5ku5>3s`").vY (В,ӜFx^!℺s1&_;3b١^U(ПI#G(mZkhC[&G>}~!daޕ 20ޥ_?DŇ[,zI -!fHga- rvG3 2|]:'S\qȆ" U+4Q{ʻnWƳK&)?uILp "Pڮՠ*hZE&׻&^ qH$L@G{B:^$ZFZT4=5Puk5R39W8ulSfv=8B8z;NE9 JxAߤDvBGNaQ!egUD)0]߬mEoƤttxVqbz+sgihڶ0:Ϧ[ĂpeZ;);\A(7V 澊Jqs_fl`=T KӈsMcR:[tƞ[2I{7j>8"#ɘ{o!_ѱ*-mM~-[7/1Cx{ 0۟Ia~8#GF9h+djԑ@ukv+%)\u5qMٿJC3BIS:1n^63nмH BfU@njSHX[.}7G{/Bz 1x[_7hgHVrTGpqf$ٶZh%J ہ OC|r]\)DKVJ*˳er: sC3C3QAiiՏ%uMjUijVqu~,GUu\H$o;Ow\m?~XB t5 `I"WGL̚^_; z 6=aƄ'H6?d[b?]K)/o;'e((VI Ʒ {e*`"=$b6e|sQQAi)  xU7InH9 9vW?Cj1J߹&:]]zH?(=(kͩlˉT>i\HC%,B=.V y/{JTFWC&Ė 7 QZ H. { ˩q۞9loV6XoOZ]P( e|FmX)ӝotqAߡr{5m9%ҟTôdd|T\[n7DGxR^ȟ6 I$(GL~MX[W.3$2Yf i|o|HlZ [@;OAwJfB%{ƛ_:l!!X+aNmԌ~5x n-xx#t٧alClhE%U~~r0k0~(}Ei2 Tp nFXؕt}p p'RTTmŚ}(>KZTr~6 (y}k[4C,3+jЩ}J=Npy< yyb2QkPJi=2MWW{03mfIͬe6>\rU*j} *@(b[I;pY@û%EK$#B7Lw4$49tw ej_frIluvIoK/2&pB! VqGOg/yy3#t{ZQW_2Y )Zwa@N!o]_gSdZ9-[xQ'PgU*džae5aLHӲ|RD(/YMSӚAkֺ! fig]nᘤƆv]O)x"*gHlw<' s&of>R ep$6|1|Ӷ )!V!IRL\]{rq X̹N>gBLte%+ lWdၫO҉LN-$%|y Eޏ͈ O I[SL&i5e!u/jH-6vn~lݨG}9#*r{\㲦fOn2u*-" g4w^Q^~vn/S SHX6ZV5(xw AuܛnKmkLEHTYmR%j/^ r# 蒂0Q_e<#éF'LxE?@}D1ŠA5&k7d*K,l))!94>NZڱ[Vix*chWK{@8G':w'1 pLy83 zR_"^q!z!hxw ƥyWW#0'p8Cm&%N i}d;ݡ 8ڴqsfp8O@[ ˯]m^KT'H9^A  Eyl 蔹ғ'J'_jV,8q{e~% Wm6=yR{xb ^]7 ~> {``ZGͭ y%Φ :| /^֓yLvXǸZ׺xKc]l$s /}^̣I? 9s"Ҩ ^h7+Ey4[zOj~-NE]Ym!ᅏ@Qф`ihgO5_^( 5}sИY7K' )`d̐妏RQTjr0w8w=@s<"a(7I{IPT֠ ߑ@T'C^GV/H_Y QࠝE|\tJ ={K\{]GP)?qM_0G7_4u{!\DtgpV. cY0=SWq|qv;,,㼲ƛs-t9Xܘ5/;eY'ZJ\rrLh1v]{Y'Fo&,tkQu?;PJէNxYTBo UFŠCX0Ҕ^ >dZ!>IWWt;./ QjRhNʯ%l!D'h>Xї}~Ž9q9li:{҂.",}f6_mh#Z5_fpW 8B+AܥżERg@YQ![ڃ^. +Z}-E="4]YmPw>\:;KӭJf[Ip} =Z{D-Vh^ DmsO4{r|H2=+9yWvC isMsL]J]s %p j|fJ2!طtB=@G:qəgyltgC; \F->p8oϗǮU9<h{{"쫶s o^j;%2T<\RA%-v$^;_}'njg@`c7Etϓj;ˇjRl?X;Z⻫NL}t]K ,4kZ@pE>`@#*5HCN6S)yL+ !Fۚ@˪`!wIIA]H~IT ]*%!l_LΈ-`E%נGxv)s[qdE^¤2,? xԪwj&I?B4 )S܂sOTJں3YK.`?TN+-5:L,¥88prQ~YX0©XFq?afty.[A3#a0؝ΎǻVByqfZQA>YgSk0ؕ%-Y# w A%XSSi YtC'P!ع΂/t^b8*O(!ge C'ƹ:4KgP*z=rfDqȠm d"zzWF+hhj|"~2$: H致y-uOgkpNU> T]9ϳ2ɓ5{2KQ=t۪Kߚ 5+gAD3/dsWu(Z[ފZlu@:pL)&o4WN5;j.diY*|uJ<`@gvE~fo>VC.rS^f@z1Gl{=1!I]MU~$YVåo@qHR` KbIDwg)Ək[sO{2!LI-i,|mG,ً*e |l`@+XdRgos;ڜ ELN_]BMoɽ|T!WVJVʻ[gqE-Q }FY5~Q>9^@6Nf_'Z=cr+HmPoDiwҾhKd>!$@i Ejv]֝hu8IN͔`ȓDS"-9tm@25QsReg:hzĶ˵Ƈ_TNr*Jru.6?IiH^B ZH\Wve) - N<<+! CCՌ1 qO~+R(`qؚ#\tXJJ}J~Q!M X2Jcx]NZ~`MdBa7dF8~JS'϶w3cƴ^LRL}8Q OOy;dڀٺRBx/؉~}x`-P%ɱaR"׆bR/RpRY(lTV2unG@N "bōv \29/֧~6Z֧⒥x^S6#lʶSM;Lģ$AbS5"X0"Ѿ4y $pϷbC< EƾvX#Paq A$A<~gR,Fof1o*q4pr!5 #/-կ @F8kQ/-P./ Y>[Ya)2fS@<\U\O"ʐ ī{0J}TiATF G`aE:)Lrܦ6L.k\mxcr.AbbղBr)*G.[-<o~QT9;RNCiGylXTi][UNftا'om877W6V-SiNSNqBl{$` _MY²xJkA S5~Ru'dT۪?h9`@E`S-[/[#cUku*рZqPȔJ殦aw| G*Zpogiž}?qSp6tAHi& ! ! /6K m{$7~ګЎo"q1r %~hJd.Hݩ5S')DW\ Enw "KC.3VR֠ B {xߥ&eźF^`DO]'# RژŎ\;PZ ,U}oZ-:\UK+O庺 1u>3 ?j[3_)~Uy3a|SVvRs< -7ҕJmX5E)SACn\;oK(5/tl֐;e*'$<2_Ȇqiz8TO&_tu/Rw.>[O1! QXv\~|r婢 ;N]1[RgD]lҋAd Vt\PG2PX"=xI·EDOj!o\Ӫ@46.hU^L5oHCNljL߅yznхZD<&ԉf.4bX\<&`?ύ;, D.B5vdAgZB|~F䦤%ĪT%.7Utݮl\EЅTLT!54x:TcB퉪aJtB)iYYxz. p)b}}"LbĆ@zbFNv{pz92=&Nfg>*[5W5jl`b;GkydT~YwQtB/jLg*4%2G3  A8ɟ#m8-YeSieVn_xE%_^dEn{,`./\lG8hwJ[5?rB!S܁+t-VCm+A5WDĔ?}>@mnx/٦9ӲotzKILga{kGAJBq7Ӿ/DH^>IYP/Cyd~j/Ϗi ;6=p\Xե 8>䅐ON?Ɲn֔@T8e3uNW7R%Cޮ, '=0)8r΂JuKV_ESוe MA:9vWZ?<$),^Ruݞ~×FjO%9%N%fto{:Tcяc!^JV U缭`柾^u*+/ZvuC@Iԯ0lzųR oqܝ2wjk#sq~"^40jLqUű6 L "va``.o9Ŀg['Ŷhկ?S6-$Փ@/ T|;nHYNA xe]8LV(qmxtFdw_Kࢯm))؂*'[XPJt ܍}̎xLQ{IThQg[`jG:80C%-t1PYbEfU*z^! mAW?^A 12 waf 1;#g D&ߴ~Asr!H9"թ~27 dh 2T1&!Op;9#?!n,c=fcd7SZiyl1}R?cCPA25GМg5untCUi#!Q[@=iPy`qj#xBkTTZ~HQWdRվZ(e*PsMh.  _Acme`Xz1U'2*r:Y*V@[kw!tnVd'?A -+ gqx\q`m,HjӏzT4/FϚYg)mȂ)c!24$N:|LoФS wC2;NA`EZkć߄ *ر=Ei6ˊD9vY @Z}C9v1/Mơ2ejV=_2dS@ SAFETY013.A )[EVERHART.JTDEMO]DCL_LOCK_INTERFACE.ZIP;1<>~_I\\6ܩaLijĒFf0N$!n@8cW*,D+ecBWYEZ>QfwjN"*b6?+09-bYcG̍qvl,XڴIbZ3R\b|=QէtMR1UH"8r'zkd`*K!ne(]AE-,f3@u[ +`*ځsKrV_)8ߝ+|싼0 NRib$AHk[e2D!1y/J3f#ãH@$3<6<OA5"^yh*VjjGR\ԡ/\6I|>}شkh0BbA6qX,3f>0z٥!Ġ% ?MQ:N6!19bF,Su21`+Հ On1Է,V"G 4akhקO0Mg JNTjTwDӝ zٽJ*9maE8S5 oqk08b캜ffhJT@l,,XqKLbː`J4?$!MOp}@F:h C2JA#8WUg #q)@~"n،$Na$[Olg- lIDvZS釙!rDR=hR d#|֤wAWX>̐{D$6 ?F@`UzW@)`jϭ"es%7Ad mfqܚ e/FJEJk92lF]l6]emxCR%xd3vʮO&mGM2ɠ͘|^͘|͘/hF5cz;-Gd!A)5*RCZ`OF ^tpr A(UJmr:]ש"l)Ŀp&K3܂S4p+ r5ѠEPM{f ꉼ|Q#(aJMD& "!?@&i]ҥ`O(ނYa8q b1S.z)yJPDxPR[ z=SX`0{`PJn<7zdx{!"jG UjȽѩW=AM9Ys)/6TT 2ꢄag%N^ZEy"PKjq{.Lgߨ?T/; JUaY-d%2G ZvpP-(ܡtmƒf8|L%ku-jIctbTʹE:uZG\X0").qzvhAQcG1iE(C'P)llR=2=ȉЄ5z|>ǩDž 9j% 2TQIwd^MOAsoR3q{/lhmھan1}313gZJ3(;JͤX"JK?MbM1`u:fz`4B,O;ʓ.gq 'A D7pepp0$~Yyz[`qiQI%licZĴeGO ˊU53e%Ij!:ef+aPY)ya$ۃ(h /*,{-%vk̶O"֞d Z,YHL 4t7L2.h7_(N&Uj{Х· H1Kt(l8-,Pmǥra$7c"8"5=!\~$57 ƌacL2#-@Ca:07\4˺痣3`lN9wV9%ИFRaE_ pSAsH"` X~2 V^XPΚ̚ȌP8U! R,3XfД5UԆL59 ? Hr(*1 ј >`ܨt!&Y*K/? B 7DlH&7C6a t43(n(H~20(=vHߝkDY BYDF"*爦L{]a0JCP£Fكp 3fivdft&qZC-AMC/˔3i?i6 xtS5PۇM7i^eeşu28R@H}n#ׄ3,B19W S!n @Wʤr >^ yYdlyYd:EE՗E`Nكy4/[.cݟjPyB!eWUąoJ-@QJ~6VWzrzY62TK؆#bpb}`I6b=cAPvt}B  bA_37`! Kk NOW8{yS"|z ((rB(LY,pѠtC`h<# ԇg:.~_8;@0(`9vsP% -`OR> X#d ?>~Cq)5*=,c蹢/ a5 ٔR2Ђ2gD AN8-d)\ ; }$:j*CPN0Nxq14H^}za$" aWpVAFd:ˠɭFkAHuH=Δ0 yT@= ? D1("#Q e@HDD ^N' YBJrVoZCUfDcp0c&B)!4T,#!H`H3#bčP.f1Cg4 ?Af B9Q> sbBH/6Jssvpf!s ,k u(ku 7wH !ѭn4p0 $ "Xuќ1`(Hf Bd0w$ќ% !9f ƌ\ ͂xÖ1u>g0oy#伈+dΈ+WҶp?qUɟ-zT"f|l*d܌D\T%EBytqé\]XJ=*!̆pb ((Ikhj)&q@L8lxp(g;>3Zy.s~$acfrSsJJ4;EsjəU{ siJʹ^^Cg  TK!dHט9lcϰKQ2A(,9e+̔ùG!xߔ M~t4 KbQ^BC0>uy\ φڋ@0· .FcCB)X a_DNFآX$`G>-iete(CRcoB{R3W%;0]ᐣ8o3Q}Fdق$i,$3*p%26 >ْkFܺ;tY`k)JUB)NML-q:̒GaesMT;^B:|RC2L8"s@Je Lq2!gh:U&:cxJA>WaƟk<wϩƑ+'>wKځ\ۑk~kO_P YY[:e„qskV+peLsmXN΃b#ȫ!<8L:ݎh~g9-͐1œ#CNR8gj3ICJAQ%lH'c!Pq^ Wtw atE>2f5ٝcUqm?ow=coyzZ}xf%( CR`N͏&Og֍ &i=wLN}b2ou'~urcYU*?BslcYѩ'HǧgNA:><7̺u~ X;8lǬ\~G] ulex&NOݯN $~;>0iEb9{60q [Vsr2Ol_:7gm}s+'왠uSo-c,.݆fv%\ƏoO>@jCkޞ ug5ǟ={=AZdB֭$+_k'TZdV&~J yؚ [^cdMpP<+Zuڱok汥)ȶ3:1ae1Mu1PlL7qQLǦ"3u&V8\XfSfpV:PߒMuvݫy{22 n&#ѧ^k/ߠԂv7|.}b}m={]9\4t2(klz TN˗&s&?% ^a+t OQ(Q[Pm,QEz\U"ʌ]g\XR G'KܔO %rI(:K'S/E뀮'gyC_hh n0 Xqn&kXI>xOn9S"4$oҀt/T2s\ -;X*\jJWm髌{z;G.IXY,,π52$CCSA Mj4iT\qa$S*?2ٯȮ({1/G :’kP}E|uTl.,6QqJK.7xQIeq9YEy5mT<(a*jB橒mlBTų:Q!Yg3xuNe|(ûaNgJDK/bTz̓k ֝,/nA^K@xu.*R[)/])lFq!*}[e]W[N.奋ƫYԠF4KDWKK`W;7-ZPRyH2FLl*JMtA/NيQgR*5OMecXi;GbԈXQcKӱN^SyPJ vw}:]yaz?hbGvK?KqHB{ymT|EM ^XĿ%pY%x9{>J%sT_X#tA "hV,(3UXu_ X"c/=o= V}6eMc׺4w6?nR|o` (@cLz3w:+޹V"Bq?})M`k p'fm_bNO{%Y|]|OY*XndZ4mѾ8Ec!7e7LQE|Xk} FP,RZo4גݱ״M:(c G#j-ݱ4@=4,Qy)Z|L'U34?0@P H6M2N}D<@;>:MRx{HG0\#/"]`)euHq ߸#'JT5|-Jʰ求hݛ1'F5@t 7ZD>pz|sRE#q$wVMr4f p'yX Ib*|F#h=M$c7v'81h$Ik<CØ/CŖcRO a$UCbT! RHc@i&4s!є$Q>ܡ>4Bx>_U4ί h Vc8 I{a)yn7q<6#P AC"DbCoQ>`thDKGb@lH 1BDEBi}Si=iw|'}MFqr(6Þ/pfTl`HzJb睻0ekb/BAM%͸C7Jh+5*ڎ < ƯMK͐#C>xiDjN)͖Ѥdu-Ud0R><ƢsԙS>1_ts4Qƅi2Vd/Ŋb${u|HIGÄ;-ewXR٧QJALz aRPcy,P" Fd0%A5Z3&KadŲR\ycℓAژ7L+V_ ul}>64s)%Gk`X?2L|L ϓ$:Z"J a,Iٌ|E&7NISL<cβpiLu^HTy%OPKXQQ< ;F'*2=鏂&PBn)9*ym|_^>--p-:6O b՜ < nֺ]_[xfJ5?M-SUۙyk@xȵ k5Б@VR4J$G@^Qhx>(mzZM~aDx.T8GFlH%%- 恜~Jda7ދN>WtQ Zj&RKTo2N,i>Sנ1%mKKq@F*mfI$ŔIICG_Z?1b{M̧(Ƣ%,w48%f\Uy`@1n t &L'G-R;9"Dh~ܹSEdTd)FUr@;=(Lm,P2ma&1njSwwi!/ *柤:|#C1qyfG %2l\|T?;hpqX"Jl$sH\&QXQljN PP~=b3zlXZ\a_7<<,i0g>ţ%/sZ{MmJUs222x7{SOF4EzЯ[š&t9Jnc&lkahx 0Y+pMcX,ĺ%\1?9ZXeF@2 aT τ̅itq'v+/MJ$=n J#ܬ" ɰAo|E,= /A3?VreE46e/ ILO@zp.[:$O@Mw@ ;V:.͠r7:>?AqO&^iYѷۘ 2`6d75 ¸P"i?[I) dl`L3--٢Q2<7̛0X+ ZxtC(8dD ".1"~gK|-b($HAQ Fߥ"=U|8ރpL <7xp' g|VX]V۠WA9\ci0x0ƍ pX ɘ[/܍;wco]LFB-knmYba-l^E.m`5la\E)e *;dx;l4GtCwan88ޡc /_G??;uxb;\lXFhzU-:䛠clI(enz`.=[x'`{ټ_Gؿwv@ vbL؉vL_ݶecsO.PK7,. ^ٿCdO yUCK \r@Sϻ}cQ1NVB8ߝU1|!Nck:#b/Ό~EB d tzqTYL_Vx,P>Ҿt+yϦMh]+}PV2ܹvcǻ8bI'j_ xkuo2@<)IB&Fh|~$2_h:W5)Cu 9 *m@sX0 A.?Q#ӿLP]XեC7 =nȨC^|c:ma_|qak>A/O5>i#\/Bb)IHtl~F^/W2ܝ_'k")ƥ.@@rFԑGPoցWbVIj rC[wy@>~tovIX L&nȬ>HzԹ k=W(/*]uz젹Fh泀 $S\UJ@vq+ReCH<ԭw0 T&-.`V>̇<0W"zM/LO,>9w{ᚉ1^-@@ioC*Cg/zH6G6ngT\zGYYA]ڃfꝝgvkvE5Bx̀04`y$Aȩ)Q+IMfen$mXW B|_3d޺A2ܬ0N>PrH\1[L mi-Y)K\* +TJT,Z&7ĘjR\$"D@huc|2mrOVYnSC d JmRugJԍc:)  (^ufhuyqapXvA ܫlM8v jK7^ ".= eZakĤ0i6CWOZ0g]=u3Pe vL ԣzj""!Xy;[\ ~$sJVJԫr(dAWA2;ay >鿿$zRxᙩ( $\r4‚b{(b| \&WZ$`j+g1-#?/b!)q{1n_(&VRG˗7pEf~˞ 6i d iNf7+hg(gd:blvP& qKOȢcWs{F}mq*/_VAA#42:"ߌ}AO@KY0#!a7*~coX" _c:nt [FS=?ߐvb8[Q&}屒SA+4$-9''a=2"X> |l$2dQLLF'K$AF/V7cbF8w֛ ;j t[bnaL(0 G/ut^4c7?eocgD^g3ia KȄ+Ɨ&ueJi! Ơ PGVs A.frh.ۏ}GfpjFKhѧ^sc.dD0K*rjs%na|ۑgFt괽~ C VyJ9CzGyqh seyf'vT^*@Џ Z6'C.ͬV{OhЊֺ'¬"6?VWW@+^ *H'-ﵸFe.b2tiS*ǪEͧ^rRz+Z~Jm_.,D3. Qȱf"Q*g:{-86~c}Td+(fVҍ:>ZZT5biRzxS%;LVZюEW2>\r3h@\x犷KN$4sT>WLWl.t \|nܕ>S [(V%͸k`x]v*m fFsBzZVJ+5]߾\ AZY`i@mKqeD J&d@pfp򹃳>FV2]dmU *|qЦZ@&Rg^aM*X<>ˣ.cG%T5goo~gL5SÐzSkŕ,EMORa0q}6IKX|{}Q}(*RTer 1 Vʰa%z]UE~@}9@:) _Sn=>I@UO.˽lφcKVY6}se)#04. 4Y(­Cl]k72;wiNM<C}t{ 7o12JP9EgI~[o} 5FM j6S)IdU/,Ccl&%/70Lt~J(( ث0INg?\GB}GTZZ骂oo-u1rÛ̝V)>‘re' UHEs-rU/Xn X4PUNv/Y"1I!M&@!8QqK߯j{1G[|J>A7ҽԎ )t9:v'薴BU0PҰ{W7žý vsZj+JcjZJXR@]mYz~wv:jn˷tVGͭ>ilKt S-\-d뤑j|#K LvX ^25?,jNьM&Ę:7: yՁAGNmq= o =@C@ } &P ,@1[ƫZjz]=O[ÖwCvZpƌP\nM!0Ran>ƚ]TL6zߣvS} +zx5>y )4YI,Towh$,?+uzXS3 JM~6 tU=6ˉJs @1&iG2b"Hn,m*Q:X.+rT-ulwsM=jNC үC~W(W?Rq|b+_*t p\ qf| ?l/ U2 օqQG ت ޱ#Iݦ=/ =:0^VVΥ|ipV@:MoY?zXIWɼ2^xj8\@+'I#޹n-)~o/zɊUt;7#+*HZm @iroV*J~ ʃT@ SAFETY013.A )[EVERHART.JTDEMO]DCL_LOCK_INTERFACE.ZIP;1>7@x$c b:>A u "Dځa^-6̘a]mΤvq'P4q3qm>h[Dͮu$$H^{p.k =glY` xx/֛=u'/p#K3|==;^Q@kH.6TEM3ܒPV3R2wuJ7MJl5SC]tj#-&OGp@-O H2:}7#Fm~)˕l?D!Ţj$654`toܫAXTx^@u Ho{ j%gR4!yx圭FZ(#ls ڷT hHڽYPXWIM;jULJ8D!G\IBڏLfwAe"h'f L~;WZ7əA%hO$Kf D]WF#L2 R9'XʤKxI 4ي-SplkIxll,O'm fkky&42zX(Sٰ;T&6PF?!N쇠b:s%Q_zX>PDDv[vڇd%i`uoʖ`0(- 5=, P 座*Xfν: ͇m:ާh=(6&x4N鄥*0_Pu`3eCNݟ8lČjib Ct >P//rò:PHf խ/. tq׿Z˅F[Uh>1tTLꡜciy,xANPq4#g7 -hN/HNM,eu/X6"qsQҟK(L:6`}bx`Z b/o PrY)P"q,qCu>- m9 lsXQnidN8Ļ%WsM>Psz!8檮Q@ߪo2f( F%h[SCOhTre-W $~E%C1Aה 863죹1c\GGCY;y!I-޹ VEz ұX~'wNiԻZSp% 0@  Hg;ʱ >T}ipa>Kd{u 3(liC2!tϒd]ZQ! pGRVȲfD"|jǔŞlC_8WҥwJwOUi?Otki{?'boyEuTQW'c ш5$Axj6Lt)K tT/k\[%˙{AȒptEġP([gt~-=o5KDē}XfF?:?F8Sf1X,yJ#Kz@C*1guٰ*+^)]5u:%RnsF|h˺ݘnY}j Yזt{sg5+4)Nhxsz` b8=_:%jqϮqFSj{|yMyr@4U}|?u4t^)w4ARljܦ{zZC7lJk89l./]Si5g{Ц.ٔ6sAgLL1O7)7|Mgh&zW̨9kGjڌǃ!3CuA?iSkSfRYh^,rAdMô,xrŒZ~p[koÕ1:šCM~h4vպyй\uhZsMt=Yg/3{n#^Yd7kr3h&z,sf7nyNg_ޔ6%|5FEM!~f<39!;7kv7e!;7?~(̇ݽG{׫f|M@[4R38گԛax|UpNiL9Nk]il#unuQ)nJ$E))xW(lE+"bG OWU=k1u%%8׏J7"I@!.w"pEg ,քqB"4b"\ H׿#8PFF]H@H"m![E{7 92J!:>HCha_:DrIy<~BR$A)4E,G{7Edq; EGT|-vG ik_dwBe#d}Y(rzظb$=9jX;hEJDAD)bw wGV*ӣTN|:C$$qY Tf*}Y>_p%YhoUB|cη\rR[$7C<ˆop!\&"cu=VU(A)nU4&$YVH7CPem ɀ|N_UWlf4qo:\ܟ`:h1a/W@bso~ k@B)92( 3Oy&$:-rgBS$ c</a֨pq%pEVyL|rI"k=D IEm̈Yd Lr" ID i2ѐѳ.uqsC\d I=*ZHkBxT-xҌ<6 eQ IZ(oc6jEd(B'QNѯh~Z串L`l|9,te"@pRX_ HݶX|,Qɬ&D[i5\9+3TA#ȳx d8p\ҵ?Smh?m5y`Omp˱#Y鮸t#֨Bշg[ca㥍Q8vh/-kxOF b&>/r|nL@>BOOZ@#C̆#mGq*HJop@w-&?E@d0 ' b(\nۗBY܍B`? Vcۡ`=7PF`y8[wt_w{PO䆏P1f>}}:$w@FTLN1F5@2~ B!k@ظҭ @\hAt;}&(-KрcsTNDrgA"y^_jBEAH.vݽd$~wK 8YyNՏ-Kv'с9JϭMxI^ؙyxɻVR6 4!9S|kh*eHHѵI ZMzB8#n@5NoK XGL_L`ͼ-`#_٘( r,f M`o=ƭ/c<.+v] iD=KqnIn̨l%ecT$fXox!bH;^lm{95"2oqY r$;=$.ί}W?Y{6;>-C4T14A|X8W<ɗX} %Gfq[*CpU}UN?a9tO>INǘc!^.t=b~iog||^Fa.[}Z7,YSaĒ#^vt]GOٛى(]p J=[Sܚr!yh&90LN hXȯg$A,33Gh܇6/ӂn'&kh0^C`fyɈq܂qǤX>O l'vMNX#;LJVlg[Ecex*."JcsIIw.@ b(Ѭblb$s?gN|Pt -,tpN Xm:#"c=GvF"q3yyF1()ha"H!Nf]&8\)(,%G&w^%؁`[nBGRpHYőY#˔gGIGcQ׷߉sQiqqc-Gǹ""NM_/?I9(F Ps?S]C7n1*/`YUeaAwL|JGKӫJ0aO$Œ9gf*mOј^m=C_]Z1wg%g75\CP&UӓSa,] _r=/ϜlJS{{˒WF_~` ʍo/NȟbAJʋUz_1e|vˬ gnf֙^%T[^Zf,+{;aTv gٯ|7Ç߮-f'ӇϿz҅-y;K+cu+Zv6W%_)o/tM݆%FOަזWҤ=mܳ-{w̱੢lϹt2_,[\"+W6R2asؼ߼Rg mm ڦ*9 v|A3LY^*it-TygGuU끴6IQ6 ?><5wu9C>u{6w*٦i~YT[} ?Qݳ;K'6m痹=]R;\mCڪv7ȷ/3Kz|CVx6Ȭu+bagG>7ݱVZᡋ”1TYoBmF=ҴK=y6:Xm5mh֖T(Jgy*ZO.#c :tU*I7 s'SVHA`Un|55>[m-ޫÕ<W>_ 2?dQ\ٛ4XZΣuهVkzxs܆guWOү O^cτ9uUyZ0s9$)w3~bU̳l ?LJ]$mR֔LclXZw18G&.t*Yn]ƾ1)6̑L[z[E[ /zCAgvrF:h{'˓XCm*eEr~kq,g5#+)+UZbxl͘fS77<Ɓן~ݼX־Z'|io-;qO;Zow|g g͆6ۍbQ_YSk:mNͩHbC~{([R3 ^PFY<4,=Xd1:׍ݴ}jPnyZ4Mx;k>U?*50pΏNjግB-*t\OmMP5^দ}GũѺAgQ1$] msjV#gˆ=]Tm-\׶P3 \*)y~^5g wWmcsˆ́v4&=W3/qʻ4THvMPk tWM bv~ntx&{2d ?K I.og@ɳeOqPejt{_3Kq\~U#^n/G*ɗ-!IfwѾ7{V5 З˻/ /գG2ʢڛ|kAwX99 Rc`+cjVfk73'eZAN][sWnݽh_Ѭ>]дT셞nnՙ3KM?[Vd} rjK62 {g".t&綽ƃ -+4{gs]0vy> /hMrYޜzSwvrtѠ^7Y5Ͳp<2-ab(tYOK5CIJV>2;wн]'EOg7IGCP*Fw۸c0_Sɩlyqɛc4iV,Ը(f'']K')p3GI\:rrF=3{^w8U`7`2]a@(-|O`_`ܵuwQUgZʚ]Qi䟫YZӉQdJCM mb 3}띬ɶoo{WpM>i̯rum tEJEJ3^L47d_19IѡXK?_4wcƊ?j;8Ϡ Wv.GޗUf߬$$Y ,!@@BBk,$!a ukVEhZuVmSZk;nVq~ZMX-͙mUN_-o g~B[AK8ͭIܜ8/4%Yx֖ɾ~f3ɮ<)BTeԝr;> jz[Grj1W HlQ˓wTAXluPdS Y**笡zFn@icnH s1/kdZ9mt_6QלGeύ8>D:#M֣*%nG*eMԒXA44Cyi+2uf 45OjDmcwQ;f2]dREqfcus0RPoϱM;jb-N\z6EQvrnN0#e)|;1ThrkBU3La.Jm'>o> :ۃF;7y>uHUʭ&4ÿ#ì.5j4614nj#ҁARwɕ 2_Nٯ M5yDPLsRpTכ>a&&.em?_ɕ"[#s"t-Ru&e"3V1nB?U Av9k͕n3Qf]{#y'5S&햎[S? |p-U*gV1yPb\Yu'ZS h~pVv00(:ʛJ*u=iJ͹fں?{t#t~6܊xv=onnSuUQ~!)H$ߕ$|dd=ep#Y;!i" 2 ߳m4uU8_X67vP.f,+ok!:[햻*y묓Ҥ;]C75[?H+ۇ;巙Jǝ3U9_P;!\Oԁ*m m 6y!O~ޜC"|J8hdd,KLBBOo/ pP4zNރz:HUx8s̯{4~v_F~?1b?PWVmѾj;x8-8J?\O;G>ܷc~zKjPAtUbh#OݸW.aS?|z̪GD"@`Ɉw1ҩbb<(QcYJ ?joGQ .Ig퇥x'y?tV$ĭMGPwL>.,H՞>㴿g&>>ۛʲGFzqƢĵ}!bix|ggC'-h֜M~:El٭[_ƫ,ookrU[OhŦ5Btŗ.:=tҜeksskP0>m/y|6lᩛ_@l{|-ynNmkml֬cՆˬZnW3T*x}˜P]J#J"\(jsҘϳ)ga\ګEʸ92)˃wimSus;uZ@vޱ!a}6NwڔVi&Y$d#~,fѱ CIdoƵk*FG3${8Q8)լۊΆRs>?ނKi"``[:hgyMNmS)m`UvRpRwA]t&.Ϩvڙ5($c)35 C'~t z~zjD?p20uM=> sG܊t]!㽟}ttƉOxw'~ZKiGo{ã'|z8O /#Z$?[k|˷nmgϯ}dݺ|)\l0MV❼ړ׼J'ԏ/>c6 KOl[|IAFq7޽ !Fǫi;w'^=?vաUPk$33)_5'߻<ſ}"׸ǎtD;xP{pCԗ}+PpEbz<}inL/}|=N~vV;[]?η99A}% I$6]#ȓN1oB]]0Xknv~@UA  ȉmumٟvn͠w{6S'>#& @H:޺nן >qMK5?%Q5d|rb槪kI?z6;X'QTQly"86ꃵw{n\T>j]u4ZŞT9+_ ]x6Wx7rӍnMΥXoL,?.7DKYڂmP9jci/b2Bmfc̮fƵP5$Vpuv5kz2-=N9 Uvn;GӮ:N\Ώ((KT[&j[S\ʔH\ N SqWJ!9Wp]*QvFõ e\(䣳{ia?o*{ nq3fv;*AnW3갡uZ9fO8,zH(.YeJi)vLwM֩ZR2ٸt-KhsBC#0#jwi ) uu Z;#d~փ 7Y[n P_`>ם7=VmIxUJj[tdLB_Drq&JHe;$^Bpq@!S%\q ]j"$6[T4 2ٲ)rPchu' *(\~(o m,5e,FUw$Ly ۗEFe$v_Sb~uDX#8d670zt]5ef8+tGaT.L:u"T O>M$EAt~z;U^2!v1ST?x*b2}A^ij}T>W[n6mV/61+ɬ3hQa+2Wξy_|⡧=Xu?=QdYtC-s*'sƜnXƮ;v+*k[zG#WOv 3R?K:S\ϕxܬA@kգ[iJEosxޔ*\O TeWvfYޮ` ]C\Uf,6 5Q 6K5sL;iJ)1V'~I"WX&vv' מJعADCV6M,07I&iw:ϦERVJ+<5иX¡X̊%;TbJi}%ɠ22jh]Ĥ&63 uQ,FJk1s AjPbdLd_2/V k #/JҠ[KRXw Po?CcE17ǍgreMqϭg*cƉuqúESVr.fQ`4-@ */}9@<<ɯ@fŹr@EzURŠ2K=3N ,?[<--ZA ?%)F ST̂ \{T4.U+e͝fQlA(IQfI 4@Y`sb%!0cn2ػ؃(p, @caʔ/ua8xeP 99; 捆N\St<=TT5,_Lʚؚz2Ÿ P`:0Zhβ >Y`G^;qo ܩ1ʉ_wñRb>Ύ{a*pJo_p |AzLf7<3=Ƿc+O=O >>,acas$UXj 5jb6cŊM1^`b\oV~jq.62v᭾!°/V(ݡ,lE,IQ@P#*aniIXpbBTfᤪʋ xOṊr=\3`䄯R+ZPZBl;cq}tY:fցQѨVZ/Y jE X:+>=T5&Wʹخ!Ҥӫ[=糬: Pf szF7ʑq5^s`j݀_j1>Kʅ*m%YK_S8xZ/o_&ZTՠ?[,DٲBP~XhX;bsMtZde([^%Xjc Cxg Q d}1(oeSPR5|+sVV/XGEYrJᴲʊr1V<xp A[@s} /k?-` &Eh&ܽ.;v⎣nX=/`݋p7W{凉΋ĥ ]{/t-5m([Zedڰ-i6h)(Vi,&LI`r Tk5-[vt]t)iH?U䧃3|Y,ra\}  F3| IBMEq h )pk$L$N5—I]C+@/F0U(1T.`.A`/500Ep298LQ e1.R.N)1 Lʝ?OXC'AఞM{7#p)LB$8z`c0 )@10I[rPSؘNޡW#W@/,-dȉ$,e\|Ẏ\wN,ߞged=;|dźg q35Ľt# 赈y~ߚ1?RB;Ć`/O kۢ7HL89GHJ4'Extended Access Control Facility (EACF) USER MANUALEThis manual is intended for use by those who will set up EACF and use&it to control file access on a system. Introduction:CEACF introduces a number of new capabilities to VMS. This manual is designed to:? * explain what these are and what their intended use is, andI * give information on how to mark files to achieve added capabilities.Overview, or, Why EACF:HWork any length of time in a computer facility and you hear the stories:Bsomeone reading another person's mail, some clerk telling a friendFhow much the boss makes, some systems programmer typing out a documentBthat contains long range company plans and was for Vice PresidentsJonly. People are often curious and occasionally malicious. Regardless, theDinformation loss can create serious problems, especially if it fallsEinto the wrong hands, or lands you in court because of some breach of privacy. BTechnical means to control this are often lacking. If you can onlyCallow or disallow read/write access to a file by someone, as is theCVMS norm, then (for example) the payroll clerk can edit the payroll@database. Doing this with the normal payroll application, at his?terminal during the day, might be perfectly OK. However, should@he be permitted to access it with, say, COPY? Someone developing=new software might need access to system areas to install hisFlatest versions. Should he, however, have access also to the technicalplans? @As these questions make clear, it is desirable for the system toElimit access to sensitive files. By doing so, it gives useful warning>when someone's curiousity gets out of bounds, prevents loss ofAinformation, and reduces organizational exposure to anyone givingAin to temptation to sell company secrets, by making those secrets*inaccessible outside of authorized limits.GExtended Access Control Facility is designed to prevent loss, damage orFunauthorized disclosure of data by controlling disk file access. Most Hsecurity breaches ultimately involve tampering with disk storage. OthersGsuch as login breakins are already dealt with fairly well by VMS if setGup properly. However, VMS doesn't make it possible to regulate what can2be done with highly sensitive data at all closely.BThe difficulty of allowing access with certain programs to certainAfiles, for certain people and times, has led to many incidents ofAVMS users browsing areas where they are not authorized by policy,@but in which they have access because their privileges work in aBcoarse grained way. Often these are innocent curiousity. SometimesDthey are industrial espionage. With most (some estimates are as highCas 98%) of security breaches coming from "insiders" exceeding theirAauthority, this exposure is a problem in any organization keeping/data online which competitors shouldn't get at.EA number of products claim they prevent unauthorized file accesses inKVMS. Unfortunately, all of them currently on the market, with the exceptionDof this one, work by accessing data from the VMS AUDIT facility. TheBproblem with this is that anyone even moderately familiar with VMSEknows that the Audit facility keeps track of security violations, andBthere are numerous ways to shut it off tracelessly, including codeGfrom public domain sources. This renders the strategy of these packages ineffective.FWhat is just as bad, these products find out that an unauthorized fileBaccess has happened from Audit only after the fact. At that point,Dall they can do is (attempt to) stop the image or its process, sinceBthe file access has already happened, and often already succeeded.GAs a result, they require that a policy be in place to punish offendersGafter the fact, since they may have already done some damage. It's hard,to be relaxed about a breach in such a case.BEACF, on the other hand, lives in the VMS file system and preventsCunauthorized file accesses from happening in the first place. It isCnot circumvented by privileges, works whether the Audit facility isEup or not, and can ensure that a protected file is NOT accessed whereCthis is not authorized. Thus, the innocent browser cannot have doneDany harm, and may be treated with less rigor than might be needed ifFdamage or data loss may have occurred. Also, while other packages haveAto use obtrusive measures like process deletion to stop accesses,GEACF can silently hide files if that is desired. Where a real violationDIS happening, this can be much more effective in finding out what isEbeing attempted than stopping a process. EACF of course does generateDlogs of any detected violations so that notice of them is preserved.DEACF is uniquely valuable in controlling access by privileged users.CMany sites have people who have elevated privileges, but who should@not be able to access payroll, grade files, company plans, etc.,Dand who are not prevented from this by VMS. EACF can protect againstFexactly such access (and even discriminate AGAINST people with variousDprivileges if you like) and gives extensive controls over privileges#and their uses above those VMS has.CFinally, EACF is simple to use. You mark files for various accessesGwith a menu oriented utility which selects how a file (or set of files)@should be marked, or which will display what markings exist on aAfile. All security relevant information is present at one time in@an easily understood format; you do NOT need to hunt through allHdisk file ACLs to find it, if it exists at all. No normal VMS facilitiesBare lost, either; VMS security controls continue to work normally,Cthough EACF may in various ways alter the outcome of their tests inDunderstandable ways. (An example of this might be that if you attachAan identifier TWIT to a script, that script may fail to open some=files which have ACLs prohibiting access to identifier TWIT.)AIf your business depends on any data on your VMS systems and your8operation is more than a VERY few people, you NEED EACF. Capabilities:$EACF offers the following abilities:K* You can specify a password for file access. This password must be enteredC before access is attempted, using an EACF utility for the purpose.B Then if the file password has been entered, and other EACF checksB satisfied, the file may be opened (or deleted). Otherwise, accessD is denied. The password can be anything at all, and the tokens left@ in user space to indicate the entered password are also processB dependent, so others cannot use them. The password can be changedC at any time using EACF, but allows control via a separate piece ofB knowledge if this is preferred to control by time, username, etc.A This facility has long existed in the mainframe world. Now it isE available for VMS. While it is less secure than encrypting the file,C this method also cannot cause a file to be lost forever if the one? who knows the key dies or forgets it. Also, changing the file D password is quick and easy, unlike changing its encryption, so that3 temporary access can be given and revoked at need.I* You can control access by time of day (in one hour increments). You canD use this facility to prevent file access during "after hours" times: where there is no reason to allow them to be accessed, or@ "open up" files during periods where normal controls are deemed1 adequate. The access modes for each hour can be:> Y - Access permitted provided all other security" checks pass.< N - No access (except to users on backup list)B U - No CHECKS, let everything by EACF checks on thisB file during this hour. (DEC security remains! in effect.)9 P - Check privileges against max privs only@ R - Readonly access only, by anyone; r/w opens are< rejected. Other checks may deny access& totally as well.8 X - Allow r/o opens, test others normally.E D - Disallow access by ANYone (even the backup account)o@ (Note that provision for a backup account exists, and it can be? forced to permit only read-only file access, but this facilityc2 allows further restrictions, operating per file.)> Notice that this means that writing to a file can be disabledB whenever one likes even if reading is left permitted. If there is@ a suspicion that some databases may be tampered with off hours,= this gives a simple way to protect them. The privilege checkt? mode is also of particular value, since it can disallow use ofdC elevated privileges which might otherwise be used to bypass normalb< system protections by industrial spies or other evil doers.J* You can control WHO can access a file (with both permitted and forbidden? usernames), WHERE they can access the file (with permitted andoB forbidden terminal names), and WITH WHAT they can access the file2 (with both permitted and forbidden image names). > This is the major advantage of EACF. You have, for usernames,A terminal names, and image names, two lists each. You can specifyc? username strings that are acceptable or that must be rejected,)? or can use * to indicate all, or & to indicate to skip a test.t? Likewise you can specify permitted or forbidden terminal names,A (access port names are tried also if they exist), or image names C that are permitted or forbidden. These are handled with the normals@ VMS wildcard conventions (except that in addition a string with@ & in it means to skip the test). Thus, to say that a given file? cannot be accessed with the COPY image one could add "*COPY.*"t> to the forbidden image list. (Note: "Access" as used for EACF= means either open OR delete access. Renaming a file does notm! have any effect on the controls.x: The beauty of this is that all the EACF parameters can be; controlled in one spot, without huge ACLs and unmanageabler? machinery to fiddle with system logicals or identifiers on ther= hour. This permits really fine grained access to your files.r: If you have an accounting person who works on the payroll> file, you can authorize access to PAYROLL.DATA during working> hours, from that person's normal terminals, but forbid access< after hours, or from terminals like RT* or NT*, and you can; ensure that the file cannot be accessed with, for example, D COPY or BACKUP, or perhaps can only be accessed from *PAYROLL*.EXE*< if only a given suite of programs with such names should be; used for access. The access lists are all variable length,iA comma-separated lists, so considerable flexibility is available.n< Finally, you can prevent access using privilege (see below); to this data, so that people who have privileged access tom: your system, yet have no physical access to the computer,< cannot simply turn on privileges and read the data to their heart's content.tB* You can prevent files from being accessed with more than a given@ set of privileges. You do this by attaching a maximum privilege; mask to a file and if the process trying to open or deletetC the file has any privileges not in this mask, access is forbidden.D@ The default mask forbids access using BYPASS privilege. This isB highly useful against curious privileged users (and any intrudersD who gain privilege) since it means that files can be protected evenC where local conditions force operation with many privileged users,rD or where there is concern that intruders may gain privileged accessD to the machine. The tags that cause files to be checked in this way@ can be kept in kernel space as well, so that they are safe from% being seen even by privileged users.s; NOTE: This and other checks are applied in addition to theu< normal VMS checking. Hence even a file owner is affected by this checking.rC Many sites have people who must do development and need to be ablehC to use INSTALL or other privileged functions, and whose privilegeshD cannot be revoked without impairing their ability to work. However,A most of these people have no need to be authorized to see, e.g.,dA the payroll file. Conventional VMS offers NO way to prevent suchd@ access, and other file "security" packages work by watching theC output of the AUDIT utility, which can be silently and untraceablym> shut off by publically available programs whatever someone isD running to listen to AUDIT. As a result, there has been, until now,A NO way to block access by these people to sensitive data left onD normal disk files, whatever file protection is attempted. EACF, due@ to its residence within the file system, works whether AUDIT is? turned on or not, and prevents these folks from using the fileoD system to access such data. EACF offers the ability to either block@ access altogether, or to block write access only, and cannot be> confused by command obfuscation, nor does it care whether theA access is by program or by console command. Someone who has usedsD privilege to change his username can be blocked by finding that theB privilege he needs to continue to access his system tables denies? file access. Thus even common trickW@ SAFETY013.A  [EVERHART.JTDEMO]EACFMAN.TXT;3OV>s one might play to fool ane> access system into permitting access can be thwarted readily.H* You can hide files. That is, if access is denied, you can arrange thatA instead of giving the user a "privilege violation" message, EACFfB can arrange that another file (on ANY disk) can be opened insteadB wth no indication to a user exceeding his authority that anything? unusual has happened. EACF will of course generate logs of thehA denied access, as it does in all cases of such, but the intruder A will not know that his access attempt has failed. Therefore, youkC can arrange that he will open FAKE_SYUSUAF.DAT or FAKE_PAYROLL.DATrB instead of the real SYSUAF.DAT or PAYROLL.DAT. This allows you toC safely allow him to leave evidence of his intentions (e.g. let him C try to enter system accounts, or see whose pay records he wants toI@ see or tamper with) without exposing your real business data to@ tampering. In effect, the unauthorized user CANNOT SEE the real@ files, but "sees" other files which pose as them. In some cases@ this can be FAR safer than an error message, which will alert aB person exceeding his authority or an intruder that he has trippedC some protection barrier. Rather, it seems to pose no resistance toCD tampering, but gives complete resistance, while permitting evidenceE of what is attempted to be accumulated. (Incidentally, if you "hide" C a file by pointing back at itself, it can be opened, but EACF wills: generate an alarm when unauthorized access is attempted.)H* You can attach a cryptographic checksum to the file. At any attempt toA open the file, this checksum is compared with that of the actualtD data, and the file will not open if they do not match. This is usedA for detection of file tampering and means that if someone shouldi= tamper with a file, it cannot be used in such a state. Thisi? tamper-proofing works for any file type, and is not limited to C executables. However, it does require that the file be read in itsoC entirety to compute the checksum before an open can be done, so it > is most effective for relatively short files. The most commonA examples of such are DCL scripts used by privileged users, whichoB are frequent targets of attacks on system integrity. Certain fileD types (with very long maximum record sizes) cannot be fully checked? in this way, but these are quite rare; the system provides for 9 checks of files with records far larger than the longest @ permissible DCL line. If only a partial check is possible, EACF@ will check what it can. This facility can be used to guard manyB critical files against tampering which might otherwise be a firstD step in breaking into a system. Note too that the file size is usedA in the checksum, and this is tested first, so that anything that < has changed the file size will fail the check very quickly.J* You can attach a replacement privilege mask to a file which will replaceC all process privilege masks when the file is executed. This can beB attached to any file, no matter how executed (so that interpretedD scripts can be tagged too). This is normally used to ensure that aD script or image never runs with elevated privilege. If you attach a; privilege mask to, say, a DCL script or image you got fromh> somewhere, and the mask contains no privileges except perhaps? TMPMBX (and maybe NETMBX), then whenever it runs, the process'iC current and authorized privilege masks will be replaced with masks D having only these privileges. (The privileges are restored on exit? or when the file is otherwise closed.) Thus if any Trojan codegC would normally be triggered by the script finding that it had somen@ elevated privileges, it would never find such, even if run fromC privileged accounts. Also, since the process lacks privilege whileW@ the script or image is running, it cannot abuse privileges that$ might otherwise be available to it.D You should note that the UIC is not altered, so that implied systemA access via a low UIC would not be affected by this. Also, if youaD use this facility to raise privileges, be sure to allow E (execute)B access to the file only and check the file carefully. (See below? for a fuller explanation.) This facility can be used to attacho@ privileges to DCL command files, but can open security holes ifB this is not done very carefully. Remember: if the file is opened,B the opening process' privileges are affected. When used to reduceB privileges, the facility provides a pro-active measure to inhibit, viruses and other covert code from running. Usage Note:@ Privilege, base priority, and identifier modification poses few= if any risks where these facilities are used to LOWER accesst; privileges. In this case, someone opening a file which hasn= these side effects only reduces his access. (This might evenh? be handy for privileged people wanting temporarily to assume aC@ nonprivileged identity without using another account.) However,? any RAISING of privileges or access rights should be done thiseA way only with great care. Anyone permitted to open a file markedtA in this way can in principle gain these added privileges/rights.wA In this case, other facilities of EACF should be used to prevente@ access to the file in undesired ways. For instance, by allowing@ E (execute) access but not read access, and enforcing this with? a max-privileges mask that prohibits it from being overridden,> and perhaps further limiting username and image allowed to do> the opens (prohibit *DCL*, for example). In this way security< needs can be served while privileges can be more completely$ controlled than vanilla VMS allows.H* You can attach identifiers to a file. These identifiers are granted on; file open, revoked on file close. This can be used for anycB convenient purpose, though again they tend to make sense most forD files which are executed. If used for data files, it is wise to use@ other EACF facilities to narrow the exposure these have. If for> example you have an identifier BUS_PLAN that grants access toA certain files, you can "attach" that identifier to an executable,C or script and allow it to access them. (DEC has something similar, = but it won't work on interpreted code such as DCL scripts ors< interpreted languages of any kind. With EACF, you can apply, protections regardless of language choice.)I* You can set the base priority of a process so that when a file is open,nD the base priority is replaced by the one attached to the file. (TheA priority returns to its old state at close.) This can be used tonD ensure that known "CPU hog" programs run with lowered base priorityA even if run interactively, or that some programs run with higheriD priority where this is desired. The first case is likely to be more= useful. In some shops, elaborate systems to ensure that longeC compilations (e.g., large Ada programs) run in batch have been setcD up. This facility means that the CPU intensive programs do not gainB extra priority from running interactively if they are set up withD a base priority lower than normal. Likewise, some editors or screenB intensive applications may benefit from higher priority, and willA not cause problems so long as they don't go into a compute loop.e NOTE0 The three above modifications are flagged with2 cryptographic authenticators so that the tags on/ the files cannot be altered or moved to othera/ files. A key that is used on loading EACF fort/ each disk is also used in the computation, sot1 such keys cannot be entered successfully unlessi/ one also knows this value. It is essential tor/ system security that these key values be keptg3 secret, and is desirable that the tagging programt/ be available only to systems personnel. Theser1 modifications do not require any user-mode codee( to run, so impose negligible overhead.G* You can set EACF to have a set of "exempt" images which are permitteduE full system access. Access to these images can however be controlledt> by EACF. This permits EACF to avoid causing problems for disk= defragmenter programs and the like, which must have a global ? view of the disk, without imposing large user burdens. Becausee> access to these exempt images is still controllable, they can* be prevented from causing security holes.< It is also possible, for example, it is possible to have aC copy of BACKUP which is allowed to have global file access, BUT it @ can be specified that this BACKUP image can be accessed only byD certain users, at certain terminals, at certain times, with certainD privileges etc., and perhaps accessed only with certain identifiersB which might be granted by attaching them to a backup script which= grants the identifiers. The full panoply of EACF controls isl@ available to screen who can use this copy of BACKUP. Meanwhile,C another copy of BACKUP.EXE might be the one most users can access.tB The specially privileged copy would typically be accessed using a= different verb, and could be used for making system backups.n9 This facility is essential to permit programs like diskuD defragmentgers to have global system access without interference or@ to allow system wide applications like backup to be run withoutB interference when done by authorized people at appropriate places5 or times. Up to 32 image pathnames can be exempted. : In addition, an image is provided which can be used by aA process to exempt itself from EACF checking or reenable it. ThisyE image must be treated with extreme care, but can be used for complexA) jobs where system maintenance is needed.zJ* There is provision for a "privileged user" list (empty by default) which? can be used to give certain users broader file access, limitedi= only by certain time codes and privilege mask tests (and DECe@ access controls), should such be desired. A supplied privileged@ utility can also be used to exempt a process from EACF controlsA where this is wanted for whatever reason. This is referred to iny? the menus as the Backup Account. It can also be prevented frome2 write access to files while allowing read access. DISCUSSIONGEACF is useful in relatively friendly environments, where it allows the B limits of authority to be defined in the machine, so a privilegedC person who may be inclined to browse in public directories will betC prevented from thoughtlessly printing private files with a messagenB that he has exceeded his privileges, or in much more hostile ones> where tampering or industrial espionage (which often uses theD services of insiders who have been paid off to make a quiet copy ofA the payroll, or business plan, files) might be a risk. In eitheruB case, it is rather easy to limit access to sensitive files (or toC directory files holding sensitive files) to certain people, and toeD remove the opportunity, and temptation, to disclose other data from? people who might otherwise do so for whatever reasons. If, forlB example, your system manager should be curious about a file namedA "NEW_PRODUCT_PLANS.DOC" and tries to look at it, isn't it betterd; that he be unable to do so (even though he may have BYPASS C privilege) if company policy means he really shouldn't have accessu@ to it? Isn't HE safer with a system that will just block accessD rather than an alternative system that can't block access, but willC get him in trouble after he DOES access it? Conventional VMS lackseC the ability to do a detailed job of limiting access to such areas,o= so inadvertently this kind of thing happens a lot. With EACFdC installed, it is easy to have the machine understand, and enforce,tB the limitations of access company policy and safety demand. Thus,B inadvertent as well as intentional access is controlled, and data3 access can be managed properly for the first time.n>can individual users mark their files? Controls within groups.BDEC access controls are left in. Those with readall can be handledGby letting programs grant readall instead of the process. You must haves@access from the DEC controls for EACF to mark files. Thus groupsDcan mark files. Give readall to a few images, not to users. (care ifBusing spawn). The file mark utility must be able to open the file.!WHAT IS HAPPENING TO FILES MARKED 8JYou mark files in EACF using a menu-oriented file marking script, althoughKa command line interface exists if it is essential to use one. This markingpDresults in a special ACE being attached to the file (of variable andIspecial format) and in the EACF database being updated to reflect desiredrEactions on the file. In addition, EACF startup can be set so that theiFserver is passed a list of file IDs which will be inspected. This listEmay contain any number of IDs per disk and can be created from simplef$ DIR /FILE_ID eEcommands. The list is a sequential file each line of which contains a Ifile ID in the form (n,s,r) where n is file number, s is sequence number, 5and r is relative volume number. For example the lineo LOGIN.COM;85 (9493,12,0) will do fine.wKWhen a file is marked like this, one uses a /FILENUM:sequentialfilespec.typcGswitch to tell the server where the list of IDs is, and the server willrJthen check extended access even if the file ID has been damaged or removedHfrom the file. It must have been created in the first place, so that theMEACF database will have been filled in, but if the ACE has been deleted, thisnKwill prevent such deletion from interfering with EACF checks. (The ACEs areoJmarked hidden and protected, but intercepting file header operations whichCcould alter them represents a probable performance hit which seemedvHexcessive. Providing the opportunity to add a kernel marking solves theHproblem, and the database contains the ACE information so that a pass to,locate deleted ACEs is quick and efficient.)DThere is an option in the menu system which checks that all files inFthe EACF database are marked with the correct ACEs and will regenerateFthese ACEs if any are missing. It also warns the operator of any filesEwhose ACEs have been deleted, since this may represent someone havingeDattempted to get around the EACF system's protection by deleting theAfile's ACLs. Any unexplained cases of ACEs disappearing should bepFinvestigated as security breaches. If this happens, also, it indicatesBwhich files should be in the kernel-based lists, so that they willEremain protected even if their ACLs are deleted entirely. There is noyHmechanism for removing files from the kernel based lists except a rebootCand restart of EACF with a different, or no, /FILENUM switch on the command to start the daemon.KThe EACF setup script asks, for each disk selected, a security key (used aseEpart of the authentication for all ACEs that change identifiers, baseeFpriority, or privileges) and a file containing these file IDs. Either,Jboth, or neither may be selected. Note too that directories are files too,Jand can be protected, with the usual caveats (about open by file ID and/orHfile ID guessing). However, if the file [000000]000000.dir is protected,GEACF protection criteria can prevent a volume from being mounted. This +allows a superset of DEC volume protection.c( B(The intercept driver is also able to be set to prevent file opensHwhere a volume is allocated or mounted privately. Normally such volumes'Ffiles are private but the privacy can be overridden in normal VMS withEthe SHARE privilege. This option allows the volumes to remain privateFeven so. Note however that this can mean a print spooler will not haveEfile access, and mX@ SAFETY013.A  [EVERHART.JTDEMO]EACFMAN.TXT;3Og>:ay inhibit other actions, so that this is desirableeIonly some of the time. Access to disks mounted /system or /cluster is noteMaffected. This operation mode is not currently supported by the setup scriptseJhowever, as it is somewhat esoteric. One sets the 2048 bit of the functionKmask to enable this. One also can enable fragmentation reduction by setting Jthe 2 bit. By setting the 262144 bit, one tells the driver to only examineLopens of files that have had their file numbers loaded into memory. This mayOsometimes be wanted for performance reasons. These and some other more esoterice@functions are built into the driver and may be used as needed.) HOW TO SET EACF UPEEACF comes with a setup script which is to be run after the VMSINSTALe<script has installed the package. This script (JT_SETUP.COM)Egenerates a startup script which should be run from SYSTARTUP_VMS.COMeEor SYSTARTUP_V5.COM at boot time. The script generated will start oneiDaccess server which will be attached to all disks in the system, andBenough intercept driver units to control all disks selected. It isHperfectly legal and permissible to have many EACF servers, each handling2one or more disks, however.(what's the advantage?)I The script offers an option to select the starting intercept driver unit Hnumber, so that it can be run more than once, and will arrange to load aKserver for all disks in each run. Normally it starts with intercept unit 0,fFbut if you connect three disks, you can run the setup script again andKstart at intercept unit 3 (since the prior run will have used 0, 1, and 2).cFThen with this run, another server will be started. It is up to you to*ensure that disks allocated don't overlap.HJT_SETUP is fairly easy to understand. Its initial menu looks like this: EACF SETUP 18:11:55, --> *Set area to hold EACF database files6 Set start intercept driver unit number (now 0)+ *Set area for EACF executable images . Done this menu, process disk selection9 Remove a disk from an existing EACF configurationl? Set images which are exempt from EACF (e.g. defraggers)  Quit, do nothing5(Asterisk means a value already exists for the item.)o@It allows you to specify where EACF database files are kept (for>the series of EACF intercept driver units you configure). Each>run of JT_SETUP will let you configure one or more disk units,<each of which uses a JT intercept driver, with its necessary:data areas. Normally this starts with JTA0: and goes up in<units, but if you want multiple servers you can run JT_SETUPEonce for each server and set the "start intercept driver unit number" Bitem to the start unit number, which should be one higher than the?maximum number of disk units configured so far. One JT unit canl@control only one disk unit. Asterisk implies that values already4exist (perhaps from kitinstal) for these selections.BThe "Set images which are exempt from EACF (e.g. defraggers)" item?allows image device:[directory]filename.type;version strings toiFbe specified for images which are exempt from EACF controls. Note thatCany such images can bypass all EACF actions, BUT you can and shoulds+use EACF to control access to these images.oCWhen you select the "Done..." item, you enter a menu to select disk <units to configure for this EACF server. It looks like this: EACF Configurationb Disk SelectionE: Use arrows to move to selection. Use RETURN to select. End disk selectiont _ARISIA$DKA700: _ARISIA$DKB0: _ARISIA$DKB400: _ARISIA$DCA0: _ARISIA$DCA2: _ARISIA$DCA3: _ARISIA$DCA4: _ARISIA$DCA5: _ARISIA$VDB0: _ARISIA$VDB1: _ARISIA$DKB200: _ARISIA$DKB300: _ARISIA$DCA1: _ARISIA$DCA6: _ARISIA$DCA7: _ARISIA$FQA0: _ARISIA$FQA1: _ARISIA$FQA2:I Type H for help. Currently on item 1 of 151tCwhere mounted disks appear first on the list, followed by all otherEGdisk-class devices on the system. The display will scroll if more diskst&are there than will fit on a terminal.5(can I get volume name on each line? Space? Mounted?)eAOnce you select a disk, you must enter a number of parameters forlBthat disk. This is done in another sub-menu which looks like this: EACF DISK SETUP 18:19:45c# --> Enter security key for disk 9 Enter file of file IDs to load for kernel markingf9 Examine only kernel-marked files for access testsf: Set to automatically kernel-mark all files on load> (This requires generating the file list at boot)4 Generate filelist database and set to use it@ Act as if ALL files were kernel-marked (use if most are) Quit, do nothing.  Done this menuEThe security key for the disk is the secret string (of any reasonablehDlength) which is used to validate EACF actions that alter privilege,Bidentifiers, or base priority. It must match the marking on a file?or these will not be altered (which prevents random people fromdEcreating such markings). Therefore this key should be well chosen andnBthe EACF startup file carefully protected from browsers. elaborateAon this. Key is asked again on marking for a file...must match ordprivs aren't changed.m<DThe other options are pretty self-explanatory. If you can afford the@time to create a file of IDs to load at EACF start, it makes theCsystem MUCH harder to avoid and allows the option of only examiningiHmarked files, which reduces overhead on nonmarked files and is thereforeEa good idea too. Whether to use item 4 or item 5 depends on how often Dyour files that need to be examined change. unclear. Explain better.>Once you finish with the menu, it will create EACF_STARTUP.COMBand EACF_LOGIN.COM which are used to start EACF and to define someAsymbols needed for convenient use. EACF_STARTUP.COM should be runeCfrom systartup_v5.com or systartup_vms.com (depending on version ofeVMS) at boot time. WHAT TO MARKEYou will want to mark files (and perhaps directories, though remembernFthat files can be opened by file ID without going through directories)Fwhich are important to your business with EACF. Transient files shouldordinarily not be marked. ACritical system files should be marked. These include SYSUAF.DAT,hDSYS$SYSTEM:NET*.DAT, and the startup scripts (so people can't easily<find out what nonstandard things you're running), as well asFany other .COM files usually run by SYSTEM. Be sure, however, to allow&access BY the SYSTEM account to these.HYou should also use EACF to regulate the access to the files in the areaIyou choose for your EACF data files. The files in JTD$DB and GCY$CM areasbChold your security database and must be protected against access bycCunauthorized people. It is also often a good idea to access protectiEthe file marking utility also (filename JTAUTHMAINT.EXE) so that onlynDauthorized people may mark files. Limiting access to the *.GDB filesEto the image JTAUTHMAINT.EXE (and including the whole path) is a good Aidea. Also, the scripts used to start EACF up, which will containoCthe volume access keys, should be protected against access too, so aBthat users cannot enter file markings that alter identifiers, etc.3If you use the SETUP script, the file to protect isSYS$MANAGER:EACF_STARTUP.COMFand it should be treated and protected at least as well as SYSUAF.DAT.HOW TO MARK FILESnGYou mark files in EACF by using the mark_files script JTMARK_FILES.COM.dJ(This presumes EACF has been installed and generally presumes a privileged:account to assure the ability to tag files appropriately.)0 [programmer data that str$match_wild is used]CA brief note first: permitted and prohibited usernames, imagenames, Dand terminal names are matched with STR$MATCH_WILD, so that to allow>access by BACKUP.EXE, for example, you would use a string likeG*]BACKUP.EXE;*, since otherwise it won't match the full path name whichDis available for matching. Therefore most of the time your selectionFstrings will contain the * character, and the file marking script willBissue a warning message if this is not present. If your selection,Cfor example, IS the complete pathname for an image, or the completebIterminal name (or access port name) for an image or terminal respectively8Fthis is not a problem. In any case, your selection is used. If howeverGyou want to (dis)allow access by, say, COPY, you can do so by excludinglC*COPY* more compactly. There is a limit in total size available for ;this information, so conserving space is often a good idea. Now to actual use of the script.(symbol runs this)DIn fact there are two scripts. One is named JT_SEL_MARK.COM and uses@a fullscreen selection front end. With this script, you set your@default directory to the tree where you want to select files andDrun the script, using the arrow keys and spacebar to select/deselectEfiles. When you are satisfied with the selections, type G to mark thegGselected set of files. The selection menu is the same for both scripts.kAThe other script (jtmark_files.com) asks for a file specifications(explicitly, which may contain wildcards.)The start of that script looks like this:d$ @jtmark_filesiFile(s) to mark (? for dir):EAt this point you select a file (or a wildcard file specification, invGwhich case you will be marking each in succession). The selection couldtfor example be:f$ @jtmark_filesh2File(s) to mark (? for dir): VDB0:[EVERHART]ND.TXTFAt this point, if the file exists, you are presented with a menu whichlooks like this:5 Extended Access Control Facility - File Markingh( File VDB0:[EVERHART]ND.TXT;7@ --> Edit max-privs-to-open mask (current: DFFFFFFFFFFFFFFF)3 Set base priority override (current: None)i% Edit permitted user list (*)S( Edit forbidden user list (None)& Edit permitted term. list (*)) Edit forbidden term. list (None) & Edit permitted image list (*)) Edit forbidden image list (None)i( Edit backup account list (None)9 Edit time-use profile (YYYYYYYYYYYYYYYYYYYYYYYY)r9 Edit replacement priv mask (when file open) Nonet: Set backup user access [Readonly/Read-Write] R/W Set file tamper check Set file password= Enter security key (after marking & selected done?)/ (explain when selected when this is needed)e( Set conditional softlink (None)5 Grant identifier on open/revoke on close ( )t Quit, make no changes' Done, update file controls nowv. Perform database maintenance commands. Apply selected mods to all wild filesGIn the above case, the settings are the defaults. The max-privs-to-open Amask excludes access with BYPASS privilege but allows all others.nCIf we select the first item (by pressing (the RETURN key)) thefDsystem shows another menu which looks like this (showing all but theBYPASS privilege selected:> Privileges Permitted For Opening File Privilege Set Up6 --> Done setup * MOUNT * U05 * U256 Set all priv * OPER * SECURITY * U266 Clr all priv * EXQUOTA * U07 * U276 * CMKRNL * NETMBX * U08 * U286 * CMEXEC * VOLPRO * ACNT * U296 * SYSNAM * PHY_IO * U10 * U306 * GRPNAM * BUGCHK * U11 * U31> * ALLSPOOL * PRMGBL * U12 Set NO mask? * DETACH * SYSGBL * ALTPRI Make no changes:) * DIAGNOSE * PFNMAP * U14D) * LOG_IO * SHMEM * U15S) * GROUP * SYSPRV * U16) * NOACNT BYPASS * U17D) * PRMCEB * SYSLCK * U18S) * PRMMBX * SHARE * U19 ) * PSWAPM * UPGRADE * U20t) * SETPRI * DOWNGRADE * U21r) * SETPRV * GRPPRV * U22) * TMPMBX * READALL * U23a) * WORLD * U04 * U24nAAt this point we can toggle any privilege setting by selecting it +and when done select the "Done setup" item.t=The "Set base priority override" item, when selected asks theo question:n4Enter base priority for process with this file open:Ewhich can be answered by a priority between 0 and 31. If outside thiss=range, or if nothing is entered, the priority setting is leftd/unset, which means that EACF does not alter it.cThe next 7 items:f% Edit permitted user list (*)s( Edit forbidden user list (None)& Edit permitted term. list (*)) Edit forbidden term. list (None)r& Edit permitted image list (*)) Edit forbidden image list (None)( Edit backup account list (None)Fall lead to similar menus. If we select the "Edit forbidden user list"(item, for example, we get the following:# Edit Forbidden User Listr Current user list: None . * is wild card, & means omit this test --> Add users to list Remove users from listn Replace listl$ Quit, leave user list alone Done with this menu@(Note that if an & is present in the list, the test is skipped.)HNow if I select "Replace list" and add the value GUEST, the question andresponse look like this:Enter user list: GUESTCWhen we select the "Done..." item, we return to the top level whichsnow looks like this:5 Extended Access Control Facility - File Markingk( File VDB0:[EVERHART]ND.TXT;7@ Edit max-privs-to-open mask (current: DFFFFFFFFFFFFFFF)3 Set base priority override (current: None)d% Edit permitted user list (*)n) --> Edit forbidden user list (GUEST)i& Edit permitted term. list (*)) Edit forbidden term. list (None) & Edit permitted image list (*)) Edit forbidden image list (None)( Edit backup account list (None)9 Edit time-use profile (YYYYYYYYYYYYYYYYYYYYYYYY) 9 Edit replacement priv mask (when file open) Nones: Set backup user access [Readonly/Read-Write] R/W Set file tamper check Set file password Enter security key ( Set conditional softlink (None)5 Grant identifier on open/revoke on close ( )  Quit, make no changes' Done, update file controls now'. Perform database maintenance commands. Apply selected mods to all wild filesGIf we now want to control when this file may be accessed, we select thet:"Edit time-use profile" item and get the screen following:. Time Usage Permission Editing (by hour).0 Current Profile YYYYYYYYYYYYYYYYYYYYYYYY0 0 111111111122220 012345678901234567890123J Key: Y - checked acc. N - Access only by backup D - no access at allN U - Unchecked acc P - Priv checks only R - Readonly access only X - R/W chks only> --> 0-1AM 12N-1PM Quit this menu, no changes7 1-2AM 1-2PM Exit, apply changesi 2-3AM 2-3PM 3-4AM 3-4PM 4-5AM 4-5PM 5-6AM 5-6PM 6-7AM 6-7PM 7-8AM 7-8PM 8-9AM 8-9PM 9-10AM 9-10PM 10-11AM 10-11PM 11-12AM 11-12M FIf I want to disallow use (except backup account use) of the file from@2-3AM, I select that hour and enter N. The selection questY@ SAFETY013.A  [EVERHART.JTDEMO]EACFMAN.TXT;3O(Yion is as follows: "Give code for this hour access:: NGIf I know that between 9AM and 3PM the file should be open to all users Jwith no added checks for reading, but I want to prevent writing except forHusers allowed by the rest of EACF, I can use the X code for those hours.*When I have done so the screen looks like:. Time Usage Permission Editing (by hour).0 Current Profile YYNYYYYYYXXXXXXYYYYYYYYY0 0 111111111122220 012345678901234567890123J Key: Y - checked acc. N - No access except bkp D - no access at allN U - Unchecked acc P - Priv checks onlt R - Readonly access only X - R/W chks only> 0-1AM 12N-1PM Quit this menu, no changes7 1-2AM 1-2PM --> Exit, apply changesd 2-3AM 2-3PM 3-4AM 3-4PM 4-5AM 4-5PM 5-6AM 5-6PM 6-7AM 6-7PM 7-8AM 7-8PM 8-9AM 8-9PM 9-10AM 9-10PMs 10-11AM 10-11PM 11-12AM 11-12MLGNotice the Current Profile now shows X access codes between 9AM and 3PMeD(and the cursor has been moved by hand to the exit item.) Now we can;exit this menu and see that the time access profile is set.cGWhere the file is not executable, a replacement privilege mask makes norDsense for it, but if we wanted to set one the screen would look likethis:sA Privilege Mask to Replace all priv masks Privilege Set Upo6 --> Done setup MOUNT U05 U256 Set all priv OPER SECURITY U266 Clr all priv EXQUOTA U07 U276 CMKRNL NETMBX U08 U286 CMEXEC VOLPRO ACNT U296 SYSNAM PHY_IO U10 U306 GRPNAM BUGCHK U11 u31> ALLSPOOL PRMGBL U12 Set NO maskB DETACH SYSGBL ALTPRI Make no changes) DIAGNOSE PFNMAP U147) LOG_IO SHMEM U15r) GROUP SYSPRV U16r) NOACNT BYPASS U17E) PRMCEB SYSLCK U18 ) PRMMBX SHARE U19e) PSWAPM UPGRADE U20d) SETPRI DOWNGRADE U21t) SETPRV GRPPRV U22 ) TMPMBX READALL U23c) WORLD U04 U24oDThe privileges selected will replace all a process' privileges which@has the file open, until the file closes. Note the "Set NO mask"Aitem means that you don't want privileges to be modified when theaCfile is open. Note that both current and authorized privilege masks@are replaced. This prevents anything from setting privs with the@$setprv service, since the authorized privilege mask is replacedalso.lBIf we want to set a file password, we select the menu item and geta prompt thus:.Enter file password: Thisisaprettylongpassword (noecho, verify it...)KWe can enter a security key; this will allow privilege, identifier, or base-Ipriority changes to work if the security key matches the one used for thenBdisk in the setup script. This prevents random people from marking$their files and altering privileges.% The question asked looks like this:YEnter security key:: (noecho, verify it...) Hiding FilesIAlso we can arrange that another file be opened if the access is refused.5Hsuppose we want EACF to force an open of VDB2:[EVERHART]LOGIN.COM in theDcase access is denied. We select the "Set conditional softlink" item4and get a prompt. With our reply it looks like this:AEnter filespec to open if access denied: VDB2:[EVERHART]LOGIN.COM Automatic IdentifiersMFIf we want an identifier on the file while it is open we can grant one>with the menu item. Suppose we enter the identifier FIELD. Theprompt and response look like:.Enter identifier to associate with file: FIELDCWhen done with all changes so far (including setting a priv mask on Fopen that has TMPMBX and NETMBX in it and nothing else) the menu lookslike:Y5 Extended Access Control Facility - File Marking1( File VDB0:[EVERHART]ND.TXT;7@ Edit max-privs-to-open mask (current: DFFFFFFFFFFFFFFF)3 Set base priority override (current: None)E% Edit permitted user list (*) ) Edit forbidden user list (GUEST)c& Edit permitted term. list (*)) Edit forbidden term. list (None)t& Edit permitted image list (*)) Edit forbidden image list (None)i( Edit backup account list (None)9 Edit time-use profile (YYNYYYYYYXXXXXXYYYYYYYYY)eE Edit replacement priv mask (when file open) 0010800000000000p: Set backup user access [Readonly/Read-Write] R/W *Set file tamper check Set file password *Enter security keyE< Set conditional softlink (VDB2:[EVERHART]LOGIN.COM)9 --> Grant identifier on open/revoke on close (FIELD)  Quit, make no changes' Done, update file controls nowe. Perform database maintenance commands. Apply selected mods to all wild filesEIf we select Quit (to abandon the marking) or Done (to perform it) we eventually get another prompt: File(s) to mark (? for dir): ?and can either enter a filename or a return to exit the script.sBNote that if you have not entered a security key, the selection of?base priority, replacement priv mask, or identifier will not be@effective. The security key must be entered, and must match thatCentered for the volume at EACF startup to be effective. This is thei3main protection against unauthorized file markings.GGThe "Apply selected mods to all wild files" is used only where the filesKspecification given is a wildcard one, and means that the markings just setnBup for the first file will be applied to all files in the wildcardJspecification. If this is a huge number of files it may take some time. IfIyou have marked files in the fullscreen front end, this option will apply Gthe selected controls to all files you selected. Thus you select files, Fthen set up access controls, and then apply the access controls to thewhole list for simplest use.BThe "Perform database maintenance commands" option selects variousDEACF maintenance operations. The menu it brings up is the following:+ Extended Access Control Facility $ MAINTENANCE COMMANDS Delete this entryt9 Remove all database entries for now-deleted filest* Create listing of all files marked< Repair deleted ACEs (ANY such are a security issue!). Change or delete a string in all lists Done with this menu B"Delete this entry" means delete the currently selected file's ACE5and database entry, removing it from EACF protection.t?"Remove all database entries for now-deleted files" means to gopAover the whole database and delete any entries referring to filesiCwhich have been deleted. This should be done periodically to ensureYCthat the database file is not cluttered with old information. It is Bhandled in this way so it will work even if files are deleted withEACF disabled.B"Create listing of all files marked" will create a sequential list6file of all marked files in the database in the formatFilename (fileid)>Csuitable for the /FILENUM command's input. This can be used for any Adesired purpose and is created as JTD$CM:OP.GDB_LIST. The3HDCL symbol JTA_LISTFILE also is set to the filename value. The intent isAthat this file is used to set up the map of all marked files used #in the /FILENUM switch (see above).M@"Repair deleted ACEs" goes over the database and checks that the?correct EACF ACE is in place on each file. Any files whose ACEsoDhave been deleted are possible evidence someone was trying to access>a file EACF denied access to. Since the ACEs are marked hidden@and privileged, this generally means a privileged user. WarningsBare output to the OPCOM log and the user terminal if this is seen.@The ACEs are then reconsituted. Running this item is a good ideaCalso; it should be done periodically to ensure that protected filesBSTAY protected. Files attacked in this way are protected anyway if@they are in the list supplied to the /FILENUM:file-list-name.typDcommand. If they were not, they may have been compromised and shouldEbe checked carefully. If they were, EACF protection was not lost, but 9it is likely someone tried to break the EACF protection. c4****************************************************FThese kinds of events represent security related attacks by privilegedJusers. They must be taken VERY seriously. EACF output to the operator logDwill give more information about any denied accesses if the /FILENUMIfeature was used so that protection was not actually lost. Also this will Jshow potential earlier attempts to access the file from before the ACE wasdeleted. reword above...less about ace.PA"Change or delete a string in all lists" is used, for example, toAremove a username from all lists in the system requiring only one Ccommand per disk. It globally replaces one string in the lists withoAanother. It should be recalled that since this is literal, if yout>are, for example, renaming a terminal server, you must replace@the selection strings actually in the database, which are likelyAto be of form ",*name*" rather than plain strings. The menu frontp?end is such that the "`" character (accent grave) cannot appear Hin either string. The underlying utility can use any delimiter. However,Cthis character is illegal in all the selections likely to be there.MCThe string changed cannot be null. However, it is possible to add a Cuser to a group by replacing, for example "USER1" by "USER1,USER2". This can be useful. 1> Note: it'd be good to have a /confirm in this. PERFORMANCE ISSUESRCHighest performance at runmtime is obtained by using the maintenance Bcommands to create a list of all files in the database and loadingEthis into the EACF database in kernel mode, selecting the option that @tells EACF only to inspect files marked in kernel. In this mode,Iessentially the only files which incur more than a few extra instructionsRFoverhead at runtime are those known to have markings on them; the restAare quickly passed over. If however the number of files so marked Cexceeds around 10,000, it is probably best just to let EACF inspect Call files for markings. As long as there is any header cache at allaDin the system in that case, the extra header access done to read theEACL will only use the cache, and not cause another disk access. Also, @the disk containing the EACF databases should ideally be as fastAas practicable (and remember: EACF should also be used to protecteCthose database files from tampering). Finally, the EACF daemons can Dprofitably be given higher than normal priority, and should be. TheyGare I/O intensive when used, and system responsiveness will be improvediHif the EACF daemons are run at software priority greater than the normal4.@ Installation process..mark eacf index file..system access only, + current user? Acc only by eacf images?BEven if EACF is checking all files, system access time will not beDnoticeably affected save for those files which have extended checks,Fand in those cases the checking may add time. The longest operation isEthe file integrity check. This check requires, if the file length hastCnot changed, that the file be read completely before opening by the:Fuser, to ensure that it has not been tampered with. This is reasonableBfor short scripts and the like. It should be done with caution forF30000 block images. (If file length changed, this is noticed at once.) (are you sure? if file is long?)&Other operations take negligible time.DEACF can be set up with as many daemons as desired, from one for allFdisks in the system to one per disk. Basically, the more daemons thereEare, the more opens with EACF checks can run in parallel. The daemonsaCare however activated only where it is known there is a file marked Awhich needs daemon access. ACEs are read from a kernel thread, ofcEwhich there can be many active at a time. Accordingly one EACF daemonD&is likely to suffice for most systems. USAGE NOTESETo show some of the uses of these capabilities, let's take an example situation.ELet's say we have several files whose contents are confidential (say, Aa business' general ledger) which need to be manipulated by a fewiCprograms which we'll call GL, AP, AR, IN, and PR for short. What web0want to avoid is that anyone browse these files.COne way to do this is to create an identifier (call it GLG) and setYCup ACLs on all the files which grant access to the files to holders0Aof identifier GLG, but deny access to all others. Then we arrangeCthat each of the 5 images has the GLG identifier granted when it isEBrun (the programs are set for E (execute) access only) and now the*programs in question can get to the files.IIF nothing else in the system ever gets the identifier GLG, and IF nobodyuuses privilege, we're done. .Note however that there are two disadvantages:B1. The control is scattered around, so you need to do considerable> poking to find that nobody else might have the GLG identifier: normally, and you must set the ACLs on all files that the GL, AP, AR, IN, and PR access.t42. Anyone with privileges can override the controls.GNote that you can fix objection #2 by prohibiting access to any processaFholding READALL or BYPASS privileges. Ensuring that nobody has the GLG2identifier requires separate examination, however.DIf it is now decided that access at night to these records should beBprohibited, EACF can simply be set to disallow access during thoseAhours to the files, or possibly to the GL, AP, etc. programs that Baccess them. Notice that with pure ACLs this is quite awkward, and8blocking privileges is impossible. With EACF, it's easy.2However, there is a neater way to accomplish this.BOn each file to be accessed by the GL, AP, AR, IN, or PR programs,> have a permitted image list containing these image names, and< a forbidden image list of * (everything) so that only thoseB images can access the files in question, regardless of privilege.CNote that now no identifier needs to be created, and the files usedmCby the programs are clearly marked so that it is obvious by looking Cat them using the marking script that only the selected images have <access. Moreover, this cannot be overridden with privileges.BNotice too that preventing access at night to this data is done inBthe same records, and in these cases, you protect the confidentialBdata, not necessarily the programs (which might be run at night onAtest data). All the security relevant controls are visible in thelfile marking display.a? It may occur to some to ask how the data gets backed up now.aBOne can of course set certain times of day for uncontrolled accessAto the files in question. A simpler way is to have a special copye4of BACKUP that is permitted unlimited system access.CThe CLD for such a copy, assuming it is called "SYSBACKUP" would bedAas follows (using the VERB utility to extract the original BACKUPFcommand language definitions):define type ENCRYP_VAL keyword NAME  value (type=$outlog) keyword ALGORITHM+ value (default="DESCBC",type=$outlog)f keyword VALUE value (list)defineZ@ SAFETY013.A  [EVERHART.JTDEMO]EACFMAN.TXT;3O^bx syntax BACKUP_LISTe. parameter P1 , label=INPUTS , prompt="From" value (list,type=$infile)F- parameter P2 , label=OUTPUTS , prompt="To"n value (list,type=$outfile)define type MEDIA_FORMAT_TYPEs keyword COMPACTION  negatable)define verb SYSBACKUPC image SYSBACKUP. parameter P1 , label=INPUTS , prompt="From"( value (required,list,type=$infile)- parameter P2 , label=OUTPUTS , prompt="To"e) value (required,list,type=$outfile)d qualifier ANALYZE nonnegatable qualifier ASSISTh defaulta qualifier BACKUP  qualifier BEFOREt value (required) qualifier BLOCK_SIZEs value (required) qualifier BRIEF nonnegatable qualifier BUFFER_COUNTd value (required) qualifier BY_OWNER value (type=$uic)t placement=localp qualifier COMMENT value (required) qualifier COMPARE qualifier CONFIRM qualifier CRC defaulta qualifier CREATED qualifier DELETEc qualifier DENSITY value (required) qualifier ENCRYPT" value (list,type=ENCRYP_VAL) qualifier EXCLUDE( value (required,list,type=$infile) qualifier EXPIRED qualifier FASTu qualifier FILEMERGE nonnegatable qualifier FULLV qualifier GROUP_SIZEt value (required) qualifier IGNOREi( value (required,list,type=$infile) qualifier IMAGE qualifier INCREMENTAL qualifier INITIALIZEs qualifier INTERCHANGE qualifier JOURNAL value (type=$outfile)E qualifier LABEL value (required,list)P& qualifier LIST , syntax=BACKUP_LIST nonnegatable value qualifier LOG qualifier MEDIA_FORMATm- value (required,type=MEDIA_FORMAT_TYPE)a qualifier MODIFIED  qualifier NEW_VERSION qualifier OVERLAY qualifier OWNER_UIC value (type=$uic)e placement=locali qualifier PHYSICALp qualifier PROTECTIONg value (list) placement=positional qualifier RECORD  qualifier RELEASE_TAPET nonnegatable qualifier REPLACE qualifier REWINDe qualifier SAVE_SETt placement=locali qualifier SELECTy( value (required,list,type=$infile) qualifier SINCE value (default="TODAY")h qualifier TAPE_EXPIRATION% value (required,type=$datetime)s placement=locali qualifier TRUNCATE  qualifier VERIFYh qualifier VOLUME  value (required), disallow (ENCRYPT.NAME and ENCRYPT.VALUE) disallow (DELETE and RECORD)n& disallow (DENSITY and MEDIA_FORMAT)JNow one adds the path to this copy of SYSBACKUP.EXE (a copy of BACKUP.EXE)Eto the list of exempt images in EACF. (The correct full path is shown Iin SHOW PROCESS/CONTINUOUS when the image is active for the process being shown.)sBIn so doing, now, the SYSBACKUP verb can be added to DCLTABLES andCused for making system wide backups. Note too that EACF can be useddBto control access to the SYSBACKUP.EXE image, permitting access toDknown people at known places and times. It is possible, too, to denyDaccess to anyone with privileges to the SYSBACKUP.EXE image and haveDEACF grant the privileges itself (so that the "maximum privileges toAopen" mask would have only a few privileges, and the "replacementaFprivilege" mask might have all privileges set). [One can also just useJa VMS INSTALL to install the image with privileges.] In this way it can be?made exceedingly difficult for anyone to use this system backuphHutility for unauthorized access. It also makes it fairly simple to allowBan otherwise unprivileged operator account to perform these backup>duties without granting the account privilege. By limiting theDability to use the program to a NONprivileged user, you make it much+harder for anyone to gain "spoofed" access. EThe security model supported here is much richer than the default VMSfEmodel, and while it can be enhanced, it covers a great deal of grounds,in controlling who has access to what files.HHopefully the above discussion is helpful in describing some of the ways%in which EACF facilities can be used.d*[EVERHART.JTDEMO]EACFSPD.PS;5+, .-/ 4-)- 0123 KPWO*56M97l989GHJ*%!PS-Adobe-2.1 %%Creator: DECwrite V3.0-2 %%+Copyright (c) 1990,1994 DIGITAL EQUIPMENT CORPORATION. %%+All Rights Reserved. %%DocumentFonts: (atend) %%EndComments %%BeginProcSet DEC_WRITE 1.10 save/DEC_WRITE_dict 150 dict def DEC_WRITE_dict begin/$D exch def/$I 0 def/$S 0 def/$C matrix def/$R matrix def/$L matrix def/$E matrix def/pat1{/px exch def/pa 8 array def 0 1 7{/py exch def/pw 4 string def 0 1 3{pw exch px py 1 getinterval putinterval}for pa py pw put}for}def/pat2{/pi exch def/cflag exch def save cflag 1 eq{eoclip}{clip}ifelse newpath{clippath pathbbox}stopped not{/ph exch def/pw exch def/py exch def/px exch def/px px 3072 div floor 3072 mul def/py py 3072 div floor 3072 mul def px py translate/pw pw px sub 3072 div floor 1 add cvi def/ph ph py sub 3072 div floor 1 add cvi def pw 3072 mul ph 3072 mul scale/pw pw 32 mul def/ph ph 32 mul def/px 0 def/py 0 def pw ph pi[pw 0 0 ph 0 0]{pa py get/px px 32 add def px pw ge{/px 0 def/py py 1 add 8 mod def}if}pi type/booleantype eq{imagemask}{image}ifelse}if restore}def/PS{/_op exch def/_np 8 string def 0 1 7{/_ii exch def/num _op _ii get def _np 7 _ii sub num -4 bitshift PX num 15 and 4 bitshift -4 bitshift PX 4 bitshift or put}for _np}def/PX{[15 7 11 3 13 5 9 1 14 6 10 2 12 4 8 0]exch get}def/FR{0.7200 0 $E defaultmatrix dtransform/yres exch def/xres exch def xres dup mul yres dup mul add sqrt}def/SU{/_sf exch def/_sa exch def/_cs exch def/_mm $C currentmatrix def/rm _sa $R rotate def/sm _cs dup $L scale def sm rm _mm _mm concatmatrix _mm concatmatrix pop 1 0 _mm dtransform/y1 exch def/x1 exch def/_vl x1 dup mul y1 dup mul add sqrt def/_fq FR _vl div def/_na y1 x1 atan def _mm 2 get _mm 1 get mul _mm 0 get _mm 3 get mul sub 0 gt{{neg}/_sf load concatprocs/_sf exch def}if _fq _na/_sf load setscreen}def/BO{/_yb exch def/_xb exch def/_bv _bs _yb _bw mul _xb 8 idiv add get def/_mk 1 7 _xb 8 mod sub bitshift def _bv _mk and 0 ne $I 1 eq xor}def/BF{DEC_WRITE_dict begin/_yy exch def/_xx exch def/_xi _xx 1 add 2 div _bp mul cvi def/_yi _yy 1 add 2 div _bp mul cvi def _xi _yi BO{/_nb _nb 1 add def 1}{/_fb _fb 1 add def 0}ifelse end}def/setpattern{/_cz exch def/_bw exch def/_bp exch def/_bs exch PS def/_nb 0 def/_fb 0 def _cz 0/BF load SU{}settransfer _fb _fb _nb add div setgray/$S 1 def}def/invertpattern{$S 0 eq{{1 exch sub}currenttransfer concatprocs settransfer}if}def/invertscreen{/$I 1 def/$S 0 def}def/revertscreen{/$I 0 def}def/setrect{/$h exch def/$w exch def/$y exch def/$x exch def newpath $x $y moveto $w $x add $y lineto $w $x add $h $y add lineto $x $h $y add lineto closepath}def/concatprocs{/_p2 exch cvlit def/_p1 exch cvlit def/_pn _p1 length _p2 length add array def _pn 0 _p1 putinterval _pn _p1 length _p2 putinterval _pn cvx}def/OF/findfont load def/findfont{dup DEC_WRITE_dict exch known{DEC_WRITE_dict exch get}if DEC_WRITE_dict/OF get exec}def mark/ISOLatin1Encoding 8#000 1 8#001{StandardEncoding exch get}for /emdash/endash 8#004 1 8#025{StandardEncoding exch get}for /quotedblleft/quotedblright 8#030 1 8#054{StandardEncoding exch get}for /minus 8#056 1 8#217 {StandardEncoding exch get}for/dotlessi 8#301 1 8#317{StandardEncoding exch get}for/space/exclamdown/cent/sterling/currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered /macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph /periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter /onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave /Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde /Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn /germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave /uacute/ucircumflex/udieresis/yacute/thorn/ydieresis 256 array astore def cleartomark /encodefont{findfont dup maxlength dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding exch def dup/FontName exch def currentdict definefont end}def/loads{/$/ISOLatin1Encoding load def/&/encodefont load def/*/invertpattern load def/+/revertscreen load def/-/invertscreen load def/:/concatprocs load def/^/setpattern load def/~/pat1 load def/_/pat2 load def/@/setrect load def/A/arcn load def/B/ashow load def/C/curveto load def/D/def load def/E/eofill load def/F/findfont load def/G/setgray load def/H/closepath load def/I/clip load def/J/fill load def/K/kshow load def/L/lineto load def/M/moveto load def/N/newpath load def/O/rotate load def/P/pop load def/R/grestore load def/S/gsave load def/T/translate load def/U/sub load def/V/div load def/W/widthshow load def/X/exch load def/Y/awidthshow load def/a/save load def/c/setlinecap load def/d/setdash load def/e/restore load def/f/setfont load def/g/initclip load def/h/show load def/i/setmiterlimit load def/j/setlinejoin load def/k/stroke load def/l/rlineto load def/m/rmoveto load def/n/currentfont load def/o/scalefont load def/p/currentpoint load def/q/setrgbcolor load def/r/currenttransfer load def/s/scale load def/t/setmatrix load def/u/settransfer load def/w/setlinewidth load def/x/matrix load def/y/currentmatrix load def}def end %%EndProcSet %%EndProlog %%BeginSetup DEC_WRITE_dict begin loads version cvi 23.0 gt { currentdict {dup type /arraytype eq {bind def} {pop pop} ifelse} forall} if 0.0100 0.0100 s %%EndSetup %%Page: 1 1 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (1) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1638 M n 1.500 o f 0.000000 0.000000 0.000000 q (Software Product Description) h 288 -4538 M n 0.778 o f (Extended Access Control Facility \(EACF\)) h 288 -7188 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f (Executive Summary:) h 288 -9788 M /Times-Roman-ISOLatin1 F 1200 o f 128.7 0 32 (Managing access to data critical to your business using ACL facilities in native VMS can be) W 288 -11188 M (cumbersome and still is vulnerable to intruders or people acting in excess of their authority.) h 288 -13788 M 151.3 0 32 (Want to be sure your critical records can't be accessed save at authorized places, times, and) W 288 -15188 M (with the programs that are supposed to access them \(instead of, say, COPY.EXE\)?) h 288 -17788 M (Want to have protection against privileged users bypasssing access controls?) h 288 -20388 M (Want to be able to password protect individual files?) h 288 -22988 M (Want to be able to invisibly hide selected files from unauthorized intruders?) h 288 -25588 M 59.5 0 32 (EACF builds in facilities permitting all of these, and is not vulnerable to intruders who disable) W 288 -26988 M (the AUDIT facility as all other commercial packages which purport to monitor access are.) h 288 -29588 M /Times-Bold-ISOLatin1 F 1200 o f 68.8 0 32 (Description:) W /Times-Roman-ISOLatin1 F 1200 o f 68.8 0 32 ( When your business depends on critical files, or when you are obliged by law or) W 288 -30988 M 66.3 0 32 (contract to maintain confidentiality of data on your system, in most cases the options provided) W 288 -32388 M (by VMS for securing this data can be cumbersome and far too coarse\255grained.) h 288 -34988 M 122.2 0 32 (The problem is that certain kinds of access to data are often needed by people in a shop, but) W 288 -36388 M 40.6 0 32 (other access should be prevented and audited. Moreover, the wide system access that can come) W 288 -37788 M 60.9 0 32 (as a result of having system privileges often does not mean that it should be used to browse or) W 288 -39188 M 4.1 0 32 (disclose data stored on the system. A system manager will in general not, for example, have any) W 288 -40588 M 54.8 0 32 (valid reason to browse the customer contact file, the payroll database, or a contract negotiation) W 288 -41988 M 74.8 0 32 (file, save in a few cases where these files need to be repaired or reloaded from backups. Like\255) W 288 -43388 M 53.7 0 32 (wise, a payroll clerk may need read and write access to the payroll file, but not in general with) W 288 -44788 M 117.2 0 32 (the COPY utility, nor from a modem, nor in most cases at 4AM. Finally, a person who must) W 288 -46188 M 5.3 0 32 (have privileges to design a driver and test it should ordinarily not have the run of the file system) W 288 -47588 M (as well.) h 288 -50188 M 107.6 0 32 (Given examples like these, it is easy to see that simple authorization of user access to files is) W 288 -51588 M 170.9 0 32 (inadequate. While it is possible to build systems that grant identifiers to attempt some extra) W 288 -52988 M 50.1 0 32 (control, these can be circumvented by privilege, and create very long ACLs which become im\255) W 288 -54388 M (possible to administer over a long period as users come and go.) h 288 -56988 M 26.5 0 32 (What is needed is a mechanism that is secure, cannot be circumvented by turning on privileges,) W 288 -58388 M 119.7 0 32 (and which provides a simple to administer and fine grained control that lets you specify who) W 288 -59788 M 58.3 0 32 (can get at your critical files, with what images, when, from where, and with what privileges. It) W 288 -61188 M 155.4 0 32 (is also desirable to be able to control what privileges the images ever see, and to be able to) W 288 -62588 M 25.1 0 32 (check critical command files or images for tampering before use, so that they cannot be used as) W 288 -63988 M 99.8 0 32 (back doors to your system. It should be possible to demand extra authentication for particular) W -7200 7200 T showpage $P e %%Page: 2 2 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (2) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 54.1 0 32 (files as well, and to prevent a malicious user from even seeing a particularly critical file unless) W 288 -2588 M (he can be permitted access.) h 288 -5188 M 81.7 0 32 (EACF[@ SAFETY013.A  [EVERHART.JTDEMO]EACFSPD.PS;5-L}( is a VMS add\255in security package which provides abilities to control security problems) W 288 -6588 M 5.6 0 32 (due to intruders, to damage or loss by system "insiders" \(users exceeding their authority\), and to) W 288 -7988 M 38.3 0 32 (covert code \(worms and viruses\). It provides a much easier management interface to handle se\255) W 288 -9388 M 158.0 0 32 (curity permissions than bare VMS and provides facilities permitting control over even privi\255) W 288 -10788 M 88.4 0 32 (leged file accesses, for cases where there are privileged users whose access should be limited.) W 288 -12188 M 156.1 0 32 (Unlike systems which only intercept the AUDIT output, EACF can and does protect against) W 288 -13588 M 19.1 0 32 (ANY file accesses, and can protect files against deletion by unauthorized people or programs in) W 288 -14988 M (real time as well as against access.) h 288 -17588 M (EACF offers the following capabilities:) h 288 -20188 M 68.5 0 32 (* ) W /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 68.5 0 32 (Files) W /Times-Roman-ISOLatin1 F 1200 o f 68.5 0 32 ( can be ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 68.5 0 32 (password protected individually.) W /Times-Roman-ISOLatin1 F 1200 o f 68.5 0 32 ( If a file open or delete is attempted for such a) W 288 -21588 M (file and no password has been entered, the open or delete fails.) h 288 -24188 M 33.2 0 32 (* Access can be controlled by ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 33.2 0 32 (time of day.) W /Times-Roman-ISOLatin1 F 1200 o f 33.2 0 32 ( Added EACF protections can be in place only some) W 288 -25588 M 137.4 0 32 (of the time, access can be denied some times of day, write accesses can be denied at certain) W 288 -26988 M (times, or various other modalities of access can be allowed.) h 288 -29588 M 3.2 0 32 (* You can control ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 3.2 0 32 (who ) W /Times-Roman-ISOLatin1 F 1200 o f 3.2 0 32 (may access a file, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 3.2 0 32 (where ) W /Times-Roman-ISOLatin1 F 1200 o f 3.2 0 32 (they may be \(or may not be\), ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 3.2 0 32 (with what images) W 288 -30988 M /Times-Roman-ISOLatin1 F 1200 o f 88.0 0 32 (they may or may not access the file, and ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 88.0 0 32 (with what privileges ) W /Times-Roman-ISOLatin1 F 1200 o f 88.0 0 32 (the file may be accessed. Thus,) W 288 -32388 M 27.6 0 32 (for instance, it is trivial to allow a clerk access to the payroll file with the payroll programs, but) W 288 -33788 M 104.0 0 32 (not with COPY or BACKUP, not on dialup lines, and not if they have unexpected privileges.) W 288 -35188 M 88.1 0 32 (The privilege checks are helpful where there are consultants working on a system who should) W 288 -36588 M 174.3 0 32 (be denied access to sensitive corporate information but who need privileges to develop pro\255) W 288 -37988 M 94.0 0 32 (grams. With this system you can be sure your proprietary plans or data stay in house, and are) W 288 -39388 M 171.1 0 32 (available only to those with business reasons to need them, not to everyone needing system) W 288 -40788 M 33.1 0 32 (privileges for unrelated reasons. Unlike packages using the VMS Audit facility's output \(which) W 288 -42188 M 237.9 0 32 (can be silently turned off by public domain code\), ) W /Times-Italic-ISOLatin1 $ /Times-Italic & P /Times-Italic-ISOLatin1 F 1200 o f 237.9 0 32 (EACF) W /Times-BoldItalic-ISOLatin1 F 1200 o f 237.9 0 32 ( cannot ) W /Times-Italic-ISOLatin1 F 1200 o f 237.9 0 32 (be circumvented by well) W 288 -43588 M (known means.) h 288 -46188 M /Times-Roman-ISOLatin1 F 1200 o f 66.8 0 32 (* You can) W /Times-BoldItalic-ISOLatin1 F 1200 o f 66.8 0 32 ( hide files) W /Times-Roman-ISOLatin1 F 1200 o f 66.8 0 32 ( from unauthorized access. If someone not authorized to access a file tries) W 288 -47588 M 44.9 0 32 (to open it, they can be set to open instead some other file anywhere on the system. Meanwhile,) W 288 -48988 M 131.1 0 32 (EACF generates alarms and can execute site specific commands to react to the illegal access) W 288 -50388 M 11.1 0 32 (before it can happen. This can be helpful in gathering evidence of what a saboteur is up to with\255) W 288 -51788 M (out exposing real sensitive files to danger. Normal access goes through transparently.) h 288 -54388 M 144.9 0 32 (* You can arrange that opening a file) W /Times-BoldItalic-ISOLatin1 F 1200 o f 144.9 0 32 ( grants identifiers) W /Times-Roman-ISOLatin1 F 1200 o f 144.9 0 32 ( to the process that opens it and that) W 288 -55788 M 107.6 0 32 (closing it revokes these identifiers. Set an interpretive file to do this and set it to be openable) W 288 -57188 M 207.0 0 32 (only by the interpreter and you have a protected subsystem capability that works for 4GLs) W 288 -58588 M 99.8 0 32 (which are interpretive. \(EACF identifier granting, privilege modification, and base priority al\255) W 288 -59988 M (teration is protected by a cryptographic authenticator preventing forging or duplication.\)) h 288 -62588 M 39.7 0 32 (* You can actively) W /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f 39.7 0 32 ( prevent) W /Times-Roman-ISOLatin1 F 1200 o f 39.7 0 32 ( ) W /Times-Bold-ISOLatin1 F 1200 o f 39.7 0 32 (covert code \() W /Times-BoldItalic-ISOLatin1 F 1200 o f 39.7 0 32 (viruses) W /Times-Bold-ISOLatin1 F 1200 o f 39.7 0 32 ( and) W /Times-BoldItalic-ISOLatin1 F 1200 o f 39.7 0 32 ( worms) W /Times-Bold-ISOLatin1 F 1200 o f 39.7 0 32 (\) ) W /Times-Roman-ISOLatin1 F 1200 o f 39.7 0 32 (from running in two ways. First,) W 288 -63988 M 131.3 0 32 (EACF can attach a cryptographic checksum to a file such that the file will not open if it has) W -7200 7200 T showpage $P e %%Page: 3 3 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (3) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 56.2 0 32 (been tampered with. Second, EACF can attach a privilege mask to a file which will replace ) W /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 56.2 0 32 (all) W 288 -2588 M /Times-Roman-ISOLatin1 F 1200 o f 30.8 0 32 (privilege masks for the process that opens it. By setting such a mask to minimal privileges, you) W 288 -3988 M 68.8 0 32 (can ensure that an untrusted image will never see a very privileged environment, and thus will) W 288 -5388 M 73.6 0 32 (be unable to perform privilege\255based intrusions into your system even if run from a privileged) W 288 -6788 M (user's account.) h 288 -9388 M 159.7 0 32 (* You can ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 159.7 0 32 (control base priority ) W /Times-Roman-ISOLatin1 F 1200 o f 159.7 0 32 (by image. Thus, a particularly CPU intensive image can be) W 288 -10788 M (made to run at lower than normal base priority even if it is run interactively.) h 288 -13388 M 55.6 0 32 (* You can run a site\255chosen script to further refine selection criteria. \(Some facilities for doing) W 288 -14788 M (additional checking while an image runs exist also.\)) h 288 -17388 M 61.5 0 32 (EACF allows you to exempt certain images \(e.g., disk defragmenters\) from access checks, and) W 288 -18788 M 56.6 0 32 (it is possible to put a process into a temporary override mode also where this is needed. EACF) W 288 -20188 M 74.8 0 32 (facilities are controllable per disk, and impose generally negligible overhead. EACF will work) W 288 -21588 M 71.5 0 32 (with any VMS file structure using the normal driver interfaces. Also, EACF marking informa\255) W 288 -22988 M 28.9 0 32 (tion resides sufficiently in kernel space that it cannot be removed from lower access modes, yet) W 288 -24388 M (it uses a limited amount of memory regardless of volume size.) h 288 -26988 M 52.5 0 32 (Best of all, the EACF protection is provided ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 52.5 0 32 (within the file system ) W /Times-Roman-ISOLatin1 F 1200 o f 52.5 0 32 (and does not depend on the) W 288 -28388 M 50.8 0 32 (audit facility. Thus it prevents file access or loss BEFORE it happens, and does not have to re\255) W 288 -29788 M 29.2 0 32 (act to it afterwards. EACF allows all of its security provisions to be managed together in a sim\255) W 288 -31188 M 47.9 0 32 (ple screen\255oriented display in which files, or groups of files, can be tagged with the desired se\255) W 288 -32588 M 62.3 0 32 (curity profiles or edited as desired. EACF protections are in addition to normal VMS file pro\255) W 288 -33988 M 212.8 0 32 (tections, which are left completely intact. Therefore, no existing security is broken or even) W 288 -35388 M 22.0 0 32 (altered. EACF simply adds additional checking which finally provides a usable machine encod\255) W 288 -36788 M (ing of "need to know" for the files where it matters.) h 288 -39388 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f (Supported systems:) h 288 -41988 M /Times-Roman-ISOLatin1 F 1200 o f 89.2 0 32 (EACF runs on VAX based VMS systems running VMS 5.5 or later, or AXP based VMS sys\255) W 288 -43388 M (tems running VMS 6.1 or later.) h 288 -45988 M (EACF is brought to you by) h 288 -48588 M (General Cybernetic Engineering) h 288 -49988 M (18 Colburn Lane) h 288 -51388 M (Hollis, NH 03049) h 288 -52788 M (603 465 9517) h 288 -54188 M ( Everhart@GCE.Com \(or Everhart@gce.mv.com\)) h 288 -55588 M 288 -57026 M -7200 7200 T showpage $P e %%Trailer $D end restore % DEC_WRITE_dict %%Pages: 3 %%DocumentFonts: Times-Roman %%+ Times-Bold %%+ Times-BoldItalic %%+ Times-Italic *[EVERHART.JTDEMO]EACFSPD.TXT;5+, ./ 4MF- 0123 KPWO5697989GHJ& Software Product Description1 Extended Access Control Facility (EACF) Executive Summary:E Managing access to data critical to your business using ACLA facilities in native VMS can be cumbersome and still isE vulnerable to intruders or people acting in excess of their authority.I Want to be sure your critical records can't be accessed save atB authorized places, times, and with the programs that are> supposed to access them (instead of, say, COPY.EXE)?E Want to have protection against privileged users bypasssing access controls?? Want to be able to password protect individual files?? Want to be able to invisibly hide selected files from! unauthorized intruders?G EACF builds in facilities permitting all of these, and is notG vulnerable to intruders who disable the AUDIT facility as allH other commercial packages which purport to monitor access are.G Description: When your business depends on critical files, or= when you are obliged by law or contract to maintainC confidentiality of data on your system, in most cases theJ options provided by VMS for securing this data can be cumbersome% and far too coarse-grained.G The problem is that certain kinds of access to data are oftenJ needed by people in a shop, but other access should be preventedJ and audited. Moreover, the wide system access that can come as aH result of having system privileges often does not mean that itI should be used to browse or disclose data stored on the system.E A system manager will in general not, for example, have anyG valid reason to browse the customer contact file, the payrollG database, or a contract negotiation file, save in a few casesI where these files need to be repaired or reloaded from backups.I Likewise, a payroll clerk may need read and write access to theJ payroll file, but not in general with the COPY utility, nor fromG a modem, nor in most cases at 4AM. Finally, a person who mustJ have privileges to design a driver and test it should ordinarily6 not have the run of the file system as well.B Given examples like these, it is easy to see that simpleJ authorization of user access to files is inadequate. While it isJ possible to build systems that grant identifiers to attempt someD extra control, these can be circumvented by privilege, andJ create very long ACLs which become impossible to administer over- a long period as users come and go.A What is needed is a mechanism that is secure, cannot beE circumvented by turning on privileges, and which provides aE simple to administer and fine grained control that lets youG specify who can get at your critical files, with what images,J when, from where, and with what privileges. It is also desirableH to be able to control what privileges the images ever see, andB to be able to check critical command files or images forI tampering before use, so that they cannot be used as back doors? to your system. It should be possible to demand extraG authentication for particular files as well, and to prevent aF malicious user from even seeing a particularly critical file, unless he can be permitted access.H EACF is a VMS add-in security package which provides abilitiesJ to control security problems due to intruders, to damage or lossH by system "insiders" (users exceeding their authority), and toD covert code (worms and viruses). It provides a much easierG management interface to handle security permissions than bareM VMS and provides facilities permitting control over even privilegedI file accesses, for cases where there are privileged users whoseG access should be limited. Unlike systems which only interceptF the AUDIT output, EACF can and does protect against ANY fileJ accesses, and can protect files against deletion by unauthorizedD people or programs in real time as well as against access.1 EACF offers the following capabilities:I * Files can be password protected individually. If a file openI or delete is attempted for such a file and no password has been, entered, the open or delete fails.H * Access can be controlled by time of day. Added EACFJ protections can be in place only some of the time, access can beC denied some times of day, write accesses can be denied atE certain times, or various other modalities of access can be allowed.J * You can control who may access a \@ SAFETY013.A  [EVERHART.JTDEMO]EACFSPD.TXT;5M` file, where they may be (orH may not be), with what images they may or may not access theI file, and with what privileges the file may be accessed. Thus,D for instance, it is trivial to allow a clerk access to theF payroll file with the payroll programs, but not with COPY orF BACKUP, not on dialup lines, and not if they have unexpectedF privileges. The privilege checks are helpful where there areH consultants working on a system who should be denied access toD sensitive corporate information but who need privileges toA develop programs. With this system you can be sure yourI proprietary plans or data stay in house, and are available onlyF to those with business reasons to need them, not to everyoneJ needing system privileges for unrelated reasons. Unlike packagesF using the VMS Audit facility's output (which can be silentlyJ turned off by public domain code), EACF cannot be circumvented by well known means.H * You can hide files from unauthorized access. If someone notJ authorized to access a file tries to open it, they can be set toI open instead some other file anywhere on the system. Meanwhile,I EACF generates alarms and can execute site specific commands toG react to the illegal access before it can happen. This can beK helpful in gathering evidence of what a saboteur is up to withoutE exposing real sensitive files to danger. Normal access goes through transparently.J * You can arrange that opening a file grants identifiers to theA process that opens it and that closing it revokes theseH identifiers. Set an interpretive file to do this and set it toF be openable only by the interpreter and you have a protectedJ subsystem capability that works for 4GLs which are interpretive.E (EACF identifier granting, privilege modification, and base= priority alteration is protected by a cryptographic; authenticator preventing forging or duplication.)J * You can actively prevent covert code ( viruses and worms) fromE running in two ways. First, EACF can attach a cryptographicG checksum to a file such that the file will not open if it hasI been tampered with. Second, EACF can attach a privilege mask toI a file which will replace all privilege masks for the processJ that opens it. By setting such a mask to minimal privileges, youB can ensure that an untrusted image will never see a veryD privileged environment, and thus will be unable to performH privilege-based intrusions into your system even if run from a$ privileged user's account.I * You can control base priority by image. Thus, a particularlyJ CPU intensive image can be made to run at lower than normal base3 priority even if it is run interactively.H * You can run a site-chosen script to further refine selectionH criteria. (Some facilities for doing additional checking while$ an image runs exist also.)> EACF allows you to exempt certain images (e.g., diskH defragmenters) from access checks, and it is possible to put aC process into a temporary override mode also where this isG needed. EACF facilities are controllable per disk, and imposeI generally negligible overhead. EACF will work with any VMS fileJ structure using the normal driver interfaces. Also, EACF markingI information resides sufficiently in kernel space that it cannotJ be removed from lower access modes, yet it uses a limited amount. of memory regardless of volume size.I Best of all, the EACF protection is provided within the fileD system and does not depend on the audit facility. Thus itF prevents file access or loss BEFORE it happens, and does notI have to react to it afterwards. EACF allows all of its securityG provisions to be managed together in a simple screen-orientedH display in which files, or groups of files, can be tagged withC the desired security profiles or edited as desired. EACFE protections are in addition to normal VMS file protections,B which are left completely intact. Therefore, no existingI security is broken or even altered. EACF simply adds additionalF checking which finally provides a usable machine encoding of8 "need to know" for the files where it matters. Supported systems:I EACF runs on VAX based VMS systems running VMS 5.5 or later, or9 AXP based VMS systems running VMS 6.1 or later.# EACF is brought to you by( General Cybernetic Engineering 18 Colburn Lane Hollis, NH 03049 603 465 95174 Everhart@GCE.Com (or Everhart@gce.mv.com)#*[EVERHART.JTDEMO]EACF_USER_MAN.PS;6+, ./ 4- 0123 KPWO56a97?989GHJ&%!PS-Adobe-2.1 %%Creator: DECwrite V3.0-2 %%+Copyright (c) 1990,1994 DIGITAL EQUIPMENT CORPORATION. %%+All Rights Reserved. %%DocumentFonts: (atend) %%EndComments %%BeginProcSet DEC_WRITE 1.10 save/DEC_WRITE_dict 150 dict def DEC_WRITE_dict begin/$D exch def/$I 0 def/$S 0 def/$C matrix def/$R matrix def/$L matrix def/$E matrix def/pat1{/px exch def/pa 8 array def 0 1 7{/py exch def/pw 4 string def 0 1 3{pw exch px py 1 getinterval putinterval}for pa py pw put}for}def/pat2{/pi exch def/cflag exch def save cflag 1 eq{eoclip}{clip}ifelse newpath{clippath pathbbox}stopped not{/ph exch def/pw exch def/py exch def/px exch def/px px 3072 div floor 3072 mul def/py py 3072 div floor 3072 mul def px py translate/pw pw px sub 3072 div floor 1 add cvi def/ph ph py sub 3072 div floor 1 add cvi def pw 3072 mul ph 3072 mul scale/pw pw 32 mul def/ph ph 32 mul def/px 0 def/py 0 def pw ph pi[pw 0 0 ph 0 0]{pa py get/px px 32 add def px pw ge{/px 0 def/py py 1 add 8 mod def}if}pi type/booleantype eq{imagemask}{image}ifelse}if restore}def/PS{/_op exch def/_np 8 string def 0 1 7{/_ii exch def/num _op _ii get def _np 7 _ii sub num -4 bitshift PX num 15 and 4 bitshift -4 bitshift PX 4 bitshift or put}for _np}def/PX{[15 7 11 3 13 5 9 1 14 6 10 2 12 4 8 0]exch get}def/FR{0.7200 0 $E defaultmatrix dtransform/yres exch def/xres exch def xres dup mul yres dup mul add sqrt}def/SU{/_sf exch def/_sa exch def/_cs exch def/_mm $C currentmatrix def/rm _sa $R rotate def/sm _cs dup $L scale def sm rm _mm _mm concatmatrix _mm concatmatrix pop 1 0 _mm dtransform/y1 exch def/x1 exch def/_vl x1 dup mul y1 dup mul add sqrt def/_fq FR _vl div def/_na y1 x1 atan def _mm 2 get _mm 1 get mul _mm 0 get _mm 3 get mul sub 0 gt{{neg}/_sf load concatprocs/_sf exch def}if _fq _na/_sf load setscreen}def/BO{/_yb exch def/_xb exch def/_bv _bs _yb _bw mul _xb 8 idiv add get def/_mk 1 7 _xb 8 mod sub bitshift def _bv _mk and 0 ne $I 1 eq xor}def/BF{DEC_WRITE_dict begin/_yy exch def/_xx exch def/_xi _xx 1 add 2 div _bp mul cvi def/_yi _yy 1 add 2 div _bp mul cvi def _xi _yi BO{/_nb _nb 1 add def 1}{/_fb _fb 1 add def 0}ifelse end}def/setpattern{/_cz exch def/_bw exch def/_bp exch def/_bs exch PS def/_nb 0 def/_fb 0 def _cz 0/BF load SU{}settransfer _fb _fb _nb add div setgray/$S 1 def}def/invertpattern{$S 0 eq{{1 exch sub}currenttransfer concatprocs settransfer}if}def/invertscreen{/$I 1 def/$S 0 def}def/revertscreen{/$I 0 def}def/setrect{/$h exch def/$w exch def/$y exch def/$x exch def newpath $x $y moveto $w $x add $y lineto $w $x add $h $y add lineto $x $h $y add lineto closepath}def/concatprocs{/_p2 exch cvlit def/_p1 exch cvlit def/_pn _p1 length _p2 length add array def _pn 0 _p1 putinterval _pn _p1 length _p2 putinterval _pn cvx}def/OF/findfont load def/findfont{dup DEC_WRITE_dict exch known{DEC_WRITE_dict exch get}if DEC_WRITE_dict/OF get exec}def mark/ISOLatin1Encoding 8#000 1 8#001{StandardEncoding exch get}for /emdash/endash 8#004 1 8#025{StandardEncoding exch get}for /quotedblleft/quotedblright 8#030 1 8#054{StandardEncoding exch get}for /minus 8#056 1 8#217 {StandardEncoding exch get}for/dotlessi 8#301 1 8#317{StandardEncoding exch get}for/space/exclamdown/cent/sterling/currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered /macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph /periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter /onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave /Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde /Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn /germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave /uacute/ucircumflex/udieresis/yacute/thorn/ydieresis 256 array astore def cleartomark /encodefont{findfont dup maxlength dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding exch def dup/FontName exch def currentdict definefont end}def/loads{/$/ISOLatin1Encoding load def/&/encodefont load def/*/invertpattern load def/+/revertscreen load def/-/invertscreen load def/:/concatprocs load def/^/setpattern load def/~/pat1 load def/_/pat2 load def/@/setrect load def/A/arcn load def/B/ashow load def/C/curveto load def/D/def load def/E/eofill load def/F/findfont load def/G/setgray load def/H/closepath load def/I/clip load def/J/fill load def/K/kshow load def/L/lineto load def/M/moveto load def/N/newpath load def/O/rotate load def/P/pop load def/R/grestore load def/S/gsave load def/T/translate load def/U/sub load def/V/div load def/W/widthshow load def/X/exch load def/Y/awidthshow load def/a/save load def/c/setlinecap load def/d/setdash load def/e/restore load def/f/setfont load def/g/initclip load def/h/show load def/i/setmiterlimit load def/j/setlinejoin load def/k/stroke load def/l/rlineto load def/m/rmoveto load def/n/currentfont load def/o/scalefont load def/p/currentpoint load def/q/setrgbcolor load def/r/currenttransfer load def/s/scale load def/t/setmatrix load def/u/settransfer load def/w/setlinewidth load def/x/matrix load def/y/currentmatrix load def}def end %%EndProcSet %%EndProlog %%BeginSetup DEC_WRITE_dict begin loads version cvi 23.0 gt { currentdict {dup type /arraytype eq {bind def} {pop pop} ifelse} forall} if 0.0100 0.0100 s %%EndSetup %%Page: 1 1 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (1) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 5377 -1338 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1400 o f 0.000000 0.000000 0.000000 q (Extended Access Control Facility \(EACF\) USER MANUAL) h 288 -3988 M /Times-Roman-ISOLatin1 F 1200 o f 34.8 0 32 (This manual is intended for use by those who will set up EACF and use it to control file access) W 288 -5388 M (on a system.) h 288 -7988 M (Introduction:) h 288 -10588 M 45.4 0 32 (EACF introduces a number of new capabilities to VMS. This manual is designed to: * explain) W 288 -11988 M 75.3 0 32 (what these are and what their intended use is, and * give information on how to mark files to) W 288 -13388 M (achieve added capabilities.) h 288 -15988 M (Overview, or, Why EACF:) h 288 -18588 M 93.7 0 32 (Work any length of time in a computer facility and you hear the stories: someone reading an\255) W 288 -19988 M 88.7 0 32 (other person's mail, some clerk telling a friend how much the boss makes, some systems pro\255) W 288 -21388 M 216.5 0 32 (grammer typing out a document that contains long range company plans and was for Vice) W 288 -22788 M 81.6 0 32 (Presidents only. People are often curious and occasionally malicious. Regardless, the informa\255) W 288 -24188 M 38.9 0 32 (tion loss can create serious problems, especially if it falls into the wrong hands, or lands you in) W 288 -25588 M (court because of some breach of privacy. ) h 288 -28188 M 73.3 0 32 (Technical means to control this are often lacking. If you can only allow or disallow read/write) W 288 -29588 M 64.8 0 32 (access to a file by someone, as is the VMS norm, then \(for example\) the payroll clerk can edit) W 288 -30988 M 78.1 0 32 (the payroll database. Doing this with the normal payroll application, at his terminal during the) W 288 -32388 M 130.9 0 32 (day, might be perfectly OK. However, should he be permitted to access it with, say, COPY?) W 288 -33788 M 107.0 0 32 (Someone developing new software might need access to system areas to install his latest ver\255) W 288 -35188 M (sions. Should he, however, have access also to the technical plans? ) h 288 -37788 M 23.2 0 32 (As these questions make clear, it is desirable for the system to limit access to sensitive files. By) W 288 -39188 M 82.9 0 32 (doing so, it gives useful warning when someone's curiousity gets out of bounds, prevents loss) W 288 -40588 M 130.5 0 32 (of information, and reduces organizational exposure to anyone giving in to temptation to sell) W 288 -41988 M (company secrets, by making those secrets inaccessible outside of authorized limits.) h 288 -44588 M 110.8 0 32 (Extended Access Control Facility is designed to prevent loss, damage or unauthorized disclo\255) W 288 -45988 M 66.5 0 32 (sure of data by controlling disk file access. Most security breaches ultimately involve tamper\255) W 288 -47388 M 5.7 0 32 (ing with disk storage. Others such as login breakins are already dealt with fairly well by VMS if) W 288 -48788 M 159.9 0 32 (set up properly. However, VMS doesn't make it possible to regulate what can be done with) W 288 -50188 M (highly sensitive data at all closely.) h 288 -52788 M 95.3 0 32 (The difficulty of allowing access with certain programs to certain files, for certain people and) W 288 -54188 M 16.6 0 32 (times, has led to many incidents of VMS users browsing areas where they are not authorized by) W 288 -55588 M 133.5 0 32 (policy, but in which they have access because their privileges work in a coarse grained way.) W 288 -56988 M 46.9 0 32 (Often these are innocent curiousity. Sometimes they are industrial espionage. With most \(some) W 288 -58388 M 227.2 0 32 (estimates are as high as 98%\) of security breaches coming from "insiders" exceeding t]@ SAFETY013.A  #[EVERHART.JTDEMO]EACF_USER_MAN.PS;6z>heir) W 288 -59788 M 17.6 0 32 (authority, this exposure is a problem in any organization keeping data online which competitors) W 288 -61188 M (shouldn't get at.) h 288 -63788 M 25.5 0 32 (A number of products claim they prevent unauthorized file accesses in VMS. Unfortunately, all) W -7200 7200 T showpage $P e %%Page: 2 2 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (2) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 110.3 0 32 (of them currently on the market, with the exception of this one, work by accessing data from) W 288 -2588 M 80.6 0 32 (the VMS AUDIT facility. The problem with this is that anyone even moderately familiar with) W 288 -3988 M 114.1 0 32 (VMS knows that the Audit facility keeps track of security violations, and there are numerous) W 288 -5388 M 173.6 0 32 (ways to shut it off tracelessly, including code from public domain sources. This renders the) W 288 -6788 M (strategy of these packages ineffective.) h 288 -9388 M 49.9 0 32 (What is just as bad, these products find out that an unauthorized file access has happened from) W 288 -10788 M 24.8 0 32 (Audit only after the fact. At that point, all they can do is \(attempt to\) stop the image or its proc\255) W 288 -12188 M 38.6 0 32 (ess, since the file access has already happened, and often already succeeded. \(Where the access) W 288 -13588 M 46.6 0 32 (is a delete, the file is already gone.\) As a result, they require that a policy be in place to punish) W 288 -14988 M 31.6 0 32 (offenders after the fact, since they may have already done some damage. It's hard to be relaxed) W 288 -16388 M (about a breach in such a case.) h 288 -18988 M 44.3 0 32 (EACF, on the other hand, lives in the VMS file system and prevents unauthorized file accesses) W 288 -20388 M 26.5 0 32 (from happening in the first place. It is not circumvented by privileges, works whether the Audit) W 288 -21788 M 177.7 0 32 (facility is up or not, and can ensure that a protected file is NOT accessed where this is not) W 288 -23188 M 133.4 0 32 (authorized. Thus, the innocent browser cannot have done any harm, and may be treated with) W 288 -24588 M 127.1 0 32 (less rigor than might be needed if damage or data loss may have occurred. Also, while other) W 288 -25988 M 99.9 0 32 (packages have to use obtrusive measures like process deletion to stop accesses, EACF can si\255) W 288 -27388 M 78.3 0 32 (lently hide files if that is desired. Where a real violation IS happening, this can be much more) W 288 -28788 M 68.7 0 32 (effective in finding out what is being attempted than stopping a process. EACF of course does) W 288 -30188 M (generate logs of any detected violations so that notice of them is preserved.) h 288 -32788 M 130.5 0 32 (EACF is uniquely valuable in controlling access by privileged users. Many sites have people) W 288 -34188 M 113.3 0 32 (who have elevated privileges, but who should not be able to access payroll, grade files, com\255) W 288 -35588 M 97.8 0 32 (pany plans, etc., and who are not prevented from this by VMS. EACF can protect against ex\255) W 288 -36988 M 61.5 0 32 (actly such access \(and even discriminate AGAINST people with various privileges if you like\)) W 288 -38388 M (and gives extensive controls over privileges and their uses above those VMS has.) h 288 -40988 M 5.9 0 32 (Finally, EACF is simple to use. You mark files for various accesses with a menu oriented utility) W 288 -42388 M 17.5 0 32 (which selects how a file \(or set of files\) should be marked, or which will display what markings) W 288 -43788 M 91.4 0 32 (exist on a file. All security relevant information is present at one time in an easily understood) W 288 -45188 M 134.6 0 32 (format; you do NOT need to hunt through all disk file ACLs to find it, if it exists at all. No) W 288 -46588 M 291.2 0 32 (normal VMS facilities are lost, either; VMS security controls continue to work normally,) W 288 -47988 M 28.7 0 32 (though EACF may in various ways alter the outcome of their tests in understandable ways. \(An) W 288 -49388 M 29.6 0 32 (example of this might be that if you attach an identifier TWIT to a script, that script may fail to) W 288 -50788 M (open some files which have ACLs prohibiting access to identifier TWIT.\)) h 288 -53388 M 62.5 0 32 (If your business depends on any data on your VMS systems and your operation is more than a) W 288 -54788 M (VERY few people, you NEED EACF.) h 288 -57388 M (Capabilities:) h 288 -59988 M (EACF offers the following abilities:) h 288 -62588 M 76.6 0 32 (* You can specify a password for file access. This password must be entered before access is) W 288 -63988 M 104.3 0 32 (attempted, using an EACF utility for the purpose. Then if the file password has been entered,) W -7200 7200 T showpage $P e %%Page: 3 3 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (3) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 64.5 0 32 (and other EACF checks satisfied, the file may be opened \(or deleted\). Otherwise, access is de\255) W 288 -2588 M 79.6 0 32 (nied. The password can be anything at all, and the tokens left in user space to indicate the en\255) W 288 -3988 M 154.9 0 32 (tered password are also process dependent, so others cannot use them. The password can be) W 288 -5388 M 21.4 0 32 (changed at any time using EACF, but allows control via a separate piece of knowledge if this is) W 288 -6788 M 199.9 0 32 (preferred to control by time, username, etc. This facility has long existed in the mainframe) W 288 -8188 M 25.2 0 32 (world. Now it is available for VMS. While it is less secure than encrypting the file, this method) W 288 -9588 M 45.0 0 32 (also cannot cause a file to be lost forever if the one who knows the key dies or forgets it. Also,) W 288 -10988 M 45.0 0 32 (changing the file password is quick and easy, unlike changing its encryption, so that temporary) W 288 -12388 M (access can be given and revoked at need.) h 288 -14988 M 74.0 0 32 (* You can control access by time of day \(in one hour increments\). You can use this facility to) W 288 -16388 M (prevent file access during "after hours" times ) h 23088 -16388 M 43.0 0 32 (where there is no reason to allow them to be ac\255) W 288 -17788 M 75.5 0 32 (cessed, or "open up" files during periods where normal controls are deemed adequate. The ac\255) W 288 -19188 M (cess modes for each hour can be:) h 288 -21788 M 5988 -21788 M (Y \255 Access permitted provided all other security checks pass.) h 288 -23188 M 5988 -23188 M (N \255 No access \(except to users on backup list\)) h 288 -24588 M 5988 -24588 M (U \255 No CHECKS, let everything by EACF checks on this) h 288 -25988 M 5988 -25988 M ( file during this hour. \(DEC security remains in effect.\)) h 288 -27388 M 5988 -27388 M (P \255 Check privileges against max privs only) h 288 -28788 M 5988 -28788 M (R \255 Readonly access only, by anyone; r/w opens are) h 288 -30188 M 5988 -30188 M (rejected. Other checks may deny access totally as well.) h 288 -31588 M 5988 -31588 M (X \255 Allow r/o opens, test others normally.) h 288 -32988 M 5988 -32988 M (D \255 Disallow access by ANYone \(even the backup account\)) h 288 -35588 M 5988 -35588 M (\(Note that provision for a backup account exists, and it can be) h 288 -36988 M 5988 -36988 M (forced to permit only read\255only file access, but this facility) h 288 -38388 M 5988 -38388 M (allows further restrictions, operating per file.\)) h 288 -40988 M 5988 -40988 M (Notice that this means that writing to a file can be disabled) h 288 -42388 M 5988 -42388 M (whenever one likes even if reading is left permitted. If there is) h 288 -43788 M 5988 -43788 M (a suspicion that some databases may be tampered with off hours,) h 288 -45188 M 5988 -45188 M (this gives a simple way to protect them. The privilege check) h 288 -46588 M 5988 -46588 M (mode is also of particular value, since it can disallow use of) h 288 -47988 M 5988 -47988 M (elevated privileges which might otherwise be used to bypass normal) h 288 -49388 M 5988 -49388 M (system protections by industrial spies or other evil doers.) h 288 -51988 M 223.9 0 32 (* You can control WHO can access a file \(with both permitted and forbidden usernames\),) W 288 -53388 M 156.5 0 32 (WHERE they can access the file \(with permitted and forbidden terminal names\), and WITH) W 288 -54788 M 74.9 0 32 (WHAT they can access the file \(with both permitted and forbidden image names\). This is the) W 288 -56188 M 130.7 0 32 (major advantage of EACF. You have, for usernames, terminal names, and image names, two) W 288 -57588 M 62.4 0 32 (lists each. You can specify username strings that are acceptable or that must be rejected,or can) W 288 -58988 M 66.5 0 32 (use * to indicate all, or & to indicate to skip a test. Likewise you can specify permitted or for\255) W 288 -60388 M 62.6 0 32 (bidden terminal names \(access port names are tried also if they exist\), or image names that are) W 288 -61788 M 66.6 0 32 (permitted or forbidden. These are handled with the normal VMS wildcard conventions \(except) W 288 -63188 M 21.8 0 32 (that in addition a string with & in it means to skip the test\). Thus, to say that a given file cannot) W -7200 7200 T showpage $P e %%Page: 4 4 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (4) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 1.1 0 32 (be accessed with the COPY image one could add "*COPY.*" to the forbidden image list. \(Note:) W 288 -2588 M 18.0 0 32 ("Access" as used for EACF means either open OR delete access. Renaming a file does not have) W 288 -3988 M (any effect on the controls.) h 288 -6588 M 64.5 0 32 (The beauty of this is that all the EACF parameters can be controlled in one spot, without huge) W 288 -7988 M 135.6 0 32 (ACLs and unmanageable machinery to fiddle with system logicals or identifiers on the hour.) W 288 -9388 M 180.0 0 32 (This permits really fine grained access to your files. If you have an accounting person who) W 288 -10788 M 17.8 0 32 (works on the payroll file, you can authorize access to PAYROLL.DATA during working hours,) W 288 -12188 M 87.9 0 32 (from that person's normal terminals, but forbid access after hours, or from terminals like RT*) W 288 -13588 M 237.5 0 32 (or NT*, and you can ensure that the file cannot be accessed with, for example, COPY or) W 288 -14988 M 97.4 0 32 (BACKUP, or perhaps can only be accessed from *PAYROLL*.EXE* if only a given suite of) W 288 -16388 M 120.0 0 32 (programs with such names should be used for access. The access lists are all variable length,) W 288 -17788 M 99.8 0 32 (comma\255separated lists, so considerable flexibility is available. Finally, you can prevent access) W 288 -19188 M 58.2 0 32 (using privilege \(see below\) to this data, so that people who have privileged access to your sys\255) W 288 -20588 M 31.1 0 32 (tem, yet have no physical access to the computer, cannot simply turn on privileges and read the) W 288 -21988 M (data to their heart's content.) h 288 -24588 M 84.3 0 32 (* You can prevent files from being accessed with more than a given set of privileges. You do) W 288 -25988 M 38.7 0 32 (this by attaching a maximum privilege mask to a file and if the process trying to open or delete) W 288 -27388 M 14.5 0 32 (the file has any privileges not in this mask, access is forbidden. The default mask forbids access) W 288 -28788 M 22.5 0 32 (using BYPASS privilege. This is highly useful against curious privileged users \(and any intrud\255) W 288 -30188 M 111.1 0 32 (ers who gain privilege\) since it means that files can be protected even where local conditions) W 288 -31588 M 104.9 0 32 (force operation with many privileged users, or where there is concern that intruders may gain) W 288 -32988 M 14.9 0 32 (privileged access to the machine. The tags that cause files to be checked in this way can be kept) W 288 -34388 M (in kernel space as well, so that they are safe from being seen even by privileged users.) h 288 -36988 M 5988 -36988 M (NOTE: This and other checks are applied in addition to the) h 288 -38388 M 5988 -38388 M (normal VMS checking. Hence even a file owner is affected by) h 288 -39788 M 5988 -39788 M (this checking.) h 288 -42388 M 164.4 0 32 (Many sites have people who must do development and need to be able to use INSTALL or) W 288 -43788 M 5.3 0 32 (other privileged functions, and whose privileges cannot be revoked without impairing their abil\255) W 288 -45188 M 50.0 0 32 (ity to work. However, most of these people have no need to be authorized to see, e.g., the pay\255) W 288 -46588 M 156.1 0 32 (roll file. Conventional VMS offers NO way to prevent such access, and other file "security") W 288 -47988 M 28.8 0 32 (packages work by watching the output of the AUDIT utility, which can be silently and untrace\255) W 288 -49388 M 332.9 0 32 (ably shut off by publically available programs whatever someone is running to listen to) W 288 -50788 M 17.6 0 32 (AUDIT. As a result, there has been, until now, NO way to block access by these people to sen\255) W 288 -52188 M 16.4 0 32 (sitive data left on normal disk files, whatever file protection is attempted. EACF, due to its resi\255) W 288 -53588 M 164.3 0 32 (dence within the file system, works whether AUDIT is turned on or not, and prevents these) W 288 -54988 M 41.0 0 32 (folks from using the file system to access such data. EACF offers the ability to either block ac\255) W 288 -56388 M 9.5 0 32 (cess altogether, or to block write access only, and cannot be confused by command obfuscation,) W 288 -57788 M 91.6 0 32 (nor does it care whether the access is by program or by console command. Someone who has) W 288 -59188 M 64.5 0 32 (used privilege to change his username can be blocked by finding that the privilege he needs to) W 288 -60588 M 161.6 0 32 (continue to access his system tables denies file access. Thus even common tricks one might) W 288 -61988 M (play to fool an access system into permitting access can be thwarted readily.) h -7200 7200 T showpage $P e %%Page: 5 5 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (5) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 29.8 0 32 (* You can hide files. That is, if access is denied, you can arrange that instead of giving th^@ SAFETY013.A  #[EVERHART.JTDEMO]EACF_USER_MAN.PS;6>3e user) W 288 -2588 M 206.2 0 32 (a "privilege violation" message, EACF can arrange that another file \(on ANY disk\) can be) W 288 -3988 M 140.1 0 32 (opened instead wth no indication to a user exceeding his authority that anything unusual has) W 288 -5388 M 149.0 0 32 (happened. EACF will of course generate logs of the denied access, as it does in all cases of) W 288 -6788 M 108.3 0 32 (such, but the intruder will not know that his access attempt has failed. Therefore, you can ar\255) W 288 -8188 M 42.1 0 32 (range that he will open FAKE_SYUSUAF.DAT or FAKE_PAYROLL.DAT instead of the real) W 288 -9588 M 94.5 0 32 (SYSUAF.DAT or PAYROLL.DAT. This allows you to safely allow him to leave evidence of) W 288 -10988 M 92.0 0 32 (his intentions \(e.g. let him try to enter system accounts, or see whose pay records he wants to) W 288 -12388 M 137.7 0 32 (see or tamper with\) without exposing your real business data to tampering. In effect, the un\255) W 288 -13788 M 11.6 0 32 (authorized user CANNOT SEE the real files, but "sees" other files which pose as them. In some) W 288 -15188 M 179.3 0 32 (cases this can be FAR safer than an error message, which will alert a person exceeding his) W 288 -16588 M 56.1 0 32 (authority or an intruder that he has tripped some protection barrier. Rather, it seems to pose no) W 288 -17988 M 51.2 0 32 (resistance to tampering, but gives complete resistance, while permitting evidence of what is at\255) W 288 -19388 M (tempted to be accumulated.) h 288 -21988 M 160.6 0 32 (* You can attach a cryptographic checksum to the file. At any attempt to open the file, this) W 288 -23388 M 159.1 0 32 (checksum is compared with that of the actual data, and the file will not open if they do not) W 288 -24788 M 130.9 0 32 (match. This is used for detection of file tampering and means that if someone should tamper) W 288 -26188 M 1.6 0 32 (with a file, it cannot be used in such a state. This tamper\255proofing works for any file type, and is) W 288 -27588 M 70.5 0 32 (not limited to executables. However, it does require that the file be read in its entirety to com\255) W 288 -28988 M 62.8 0 32 (pute the checksum before an open can be done, so it is most effective for relatively short files.) W 288 -30388 M 95.5 0 32 (The most common examples of such are DCL scripts used by privileged users, which are fre\255) W 288 -31788 M 37.8 0 32 (quent targets of attacks on system integrity. Certain file types \(with very long maximum record) W 288 -33188 M 175.0 0 32 (sizes\) cannot be fully checked in this way, but these are quite rare; the system provides for) W 288 -34588 M 108.3 0 32 (checks of files with records far larger than the longest permissible DCL line. If only a partial) W 288 -35988 M 23.4 0 32 (check is possible, EACF will check what it can. This facility can be used to guard many critical) W 288 -37388 M 8.0 0 32 (files against tampering which might otherwise be a first step in breaking into a system. Note too) W 288 -38788 M 212.6 0 32 (that the file size is used in the checksum, and this is tested first, so that anything that has) W 288 -40188 M 38.6 0 32 (changed the file size will fail the check very quickly. Where a file is over 100 blocks long, the) W 288 -41588 M (script asks for confirmation before marking it for this check.) h 288 -44188 M 39.7 0 32 (* You can attach a replacement privilege mask to a file which will replace all process privilege) W 288 -45588 M 90.2 0 32 (masks when the file is executed. This can be attached to any file, no matter how executed \(so) W 288 -46988 M 17.5 0 32 (that interpreted scripts can be tagged too\). This is normally used to ensure that a script or image) W 288 -48388 M 13.7 0 32 (never runs with elevated privilege. If you attach a privilege mask to, say, a DCL script or image) W 288 -49788 M 79.3 0 32 (you got from somewhere, and the mask contains no privileges except perhaps TMPMBX \(and) W 288 -51188 M 80.6 0 32 (maybe NETMBX\), then whenever it runs, the process' current and authorized privilege masks) W 288 -52588 M 19.9 0 32 (will be replaced with masks having only these privileges. \(The privileges are restored on exit or) W 288 -53988 M 45.8 0 32 (when the file is otherwise closed.\) Thus if any Trojan code would normally be triggered by the) W 288 -55388 M 114.4 0 32 (script finding that it had some elevated privileges, it would never find such, even if run from) W 288 -56788 M 18.9 0 32 (privileged accounts. Also, since the process lacks privilege while the script or image is running,) W 288 -58188 M 55.3 0 32 (it cannot abuse privileges that might otherwise be available to it. \(The authorized mask is reset) W 288 -59588 M (to keep Trojan horse applications from using $setprv to negate the privilege lowering.\)) h 288 -62188 M 5988 -62188 M (You should note that the UIC is not altered, so that implied system) h 288 -63588 M 5988 -63588 M (access via a low UIC would not be affected by this. Also, if you) h -7200 7200 T showpage $P e %%Page: 6 6 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (6) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 5988 -1188 M 0.000000 0.000000 0.000000 q (use this facility to raise privileges, be sure to allow E \(execute\)) h 288 -2588 M 5988 -2588 M (access to the file only and check the file carefully. \(See below) h 288 -3988 M 5988 -3988 M (for a fuller explanation.\) This facility can be used to attach) h 288 -5388 M 5988 -5388 M (privileges to DCL command files, but can open security holes if) h 288 -6788 M 5988 -6788 M (this is not done very carefully. Remember: if the file is opened,) h 288 -8188 M 5988 -8188 M (the opening process' privileges are affected. When used to reduce) h 288 -9588 M 5988 -9588 M (privileges, the facility provides a pro\255active measure to inhibit) h 288 -10988 M 5988 -10988 M (viruses and other covert code from running.) h 288 -13588 M 5988 -13588 M (Usage Note:) h 288 -16188 M 5988 -16188 M (Privilege, base priority, and identifier modification poses few) h 288 -17588 M 5988 -17588 M (if any risks where these facilities are used to LOWER access) h 288 -18988 M 5988 -18988 M (privileges. In this case, someone opening a file which has) h 288 -20388 M 5988 -20388 M (these side effects only reduces his access. \(This might even) h 288 -21788 M 5988 -21788 M (be handy for privileged people wanting temporarily to assume a) h 288 -23188 M 5988 -23188 M (nonprivileged identity without using another account.\) However,) h 288 -24588 M 5988 -24588 M (any RAISING of privileges or access rights should be done this) h 288 -25988 M 5988 -25988 M (way only with great care. Anyone permitted to open a file marked) h 288 -27388 M 5988 -27388 M (in this way can in principle gain these added privileges/rights.) h 288 -28788 M 5988 -28788 M (In this case, other facilities of EACF should be used to prevent) h 288 -30188 M 5988 -30188 M (access to the file in undesired ways. For instance, by allowing) h 288 -31588 M 5988 -31588 M (E \(execute\) access but not read access, and enforcing this with) h 288 -32988 M 5988 -32988 M (a max\255privileges mask that prohibits it from being overridden,) h 288 -34388 M 5988 -34388 M (and perhaps further limiting username and image allowed to do) h 288 -35788 M 5988 -35788 M (the opens \(prohibit *DCL*, for example\). In this way security) h 288 -37188 M 5988 -37188 M (needs can be served while privileges can be more completely) h 288 -38588 M 5988 -38588 M (controlled than vanilla VMS allows.) h 288 -41188 M 47.2 0 32 (* You can attach identifiers to a file. These identifiers are granted on file open, revoked on file) W 288 -42588 M 31.1 0 32 (close. This can be used for any convenient purpose, though again they tend to make sense most) W 288 -43988 M 31.6 0 32 (for files which are executed. If used for data files, it is wise to use other EACF facilities to nar\255) W 288 -45388 M 37.6 0 32 (row the exposure these have. If for example you have an identifier BUS_PLAN that grants ac\255) W 288 -46788 M 128.6 0 32 (cess to certain files, you can "attach" that identifier to an executable or script and allow it to) W 288 -48188 M 79.7 0 32 (access them. \(DEC has something similar, but it won't work on interpreted code such as DCL) W 288 -49588 M 71.6 0 32 (scripts or interpreted languages of any kind. With EACF, you can apply protections regardless) W 288 -50988 M (of language choice.\)) h 288 -53588 M 138.0 0 32 (* You can set the base priority of a process so that when a file is open, the base priority is) W 288 -54988 M 68.4 0 32 (replaced by the one attached to the file. \(The priority returns to its old state at close.\) This can) W 288 -56388 M 86.6 0 32 (be used to ensure that known "CPU hog" programs run with lowered base priority even if run) W 288 -57788 M 4.3 0 32 (interactively, or that some programs run with higher priority where this is desired. The first case) W 288 -59188 M 97.3 0 32 (is likely to be more useful. In some shops, elaborate systems to ensure that long compilations) W 288 -60588 M 78.4 0 32 (\(e.g., large Ada programs\) run in batch have been set up. This facility means that the CPU in\255) W 288 -61988 M 72.8 0 32 (tensive programs do not gain extra priority from running interactively if they are set up with a) W 288 -63388 M 135.9 0 32 (base priority lower than normal. Likewise, some editors or screen intensive applications may) W -7200 7200 T showpage $P e %%Page: 7 7 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (7) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 80.1 0 32 (benefit from higher priority, and will not cause problems so long as they don't go into a com\255) W 288 -2588 M (pute loop.) h 288 -5188 M 5988 -5188 M 11688 -5188 M 17388 -5188 M 23088 -5188 M (NOTE) h 288 -7788 M 5988 -7788 M 11688 -7788 M (The three above modifications are flagged with) h 288 -9188 M 5988 -9188 M 11688 -9188 M (cryptographic authenticators so that the tags on) h 288 -10588 M 5988 -10588 M 11688 -10588 M (the files cannot be altered or moved to other) h 288 -11988 M 5988 -11988 M 11688 -11988 M (files. A key that is used on loading EACF for) h 288 -13388 M 5988 -13388 M 11688 -13388 M (each disk is also used in the computation, so) h 288 -14788 M 5988 -14788 M 11688 -14788 M (such keys cannot be entered successfully unless) h 288 -16188 M 5988 -16188 M 11688 -16188 M (one also knows this value. It is essential to) h 288 -17588 M 5988 -17588 M 11688 -17588 M (system security that these key values be kept) h 288 -18988 M 5988 -18988 M 11688 -18988 M (secret, and is desirable that the tagging program) h 288 -20388 M 5988 -20388 M 11688 -20388 M (be available only to systems personnel. These) h 288 -21788 M 5988 -21788 M 11688 -21788 M (modifications do not require any user\255mode code) h 288 -23188 M 5988 -23188 M 11688 -23188 M (to run, so impose negligible overhead.) h 288 -25788 M 61.9 0 32 (* You can set EACF to have a set of "exempt" images which are permitted full system access.) W 288 -27188 M 15.3 0 32 (Access to these images can however be controlled by EACF. This permits EACF to avoid caus\255) W 288 -28588 M 113.2 0 32 (ing problems for disk defragmenter programs and the like, which must have a global view of) W 288 -29988 M 116.3 0 32 (the disk, without imposing large user burdens. Because access to these exempt images is still) W 288 -31388 M (controllable, they can be prevented from causing security holes.) h 288 -33988 M 5.3 0 32 (It is also possible, for example, to have a copy of BACKUP which is allowed to have global file) W 288 -35388 M 68.6 0 32 (access, BUT it can be specified that this BACKUP image can be accessed only by certain us\255) W 288 -36788 M 33.4 0 32 (ers, at certain terminals, at certain times, with certain privileges etc., and perhaps accessed only) W 288 -38188 M (with certain identifiers ) h 11688 -38188 M 229.8 0 32 (which might be granted by attaching them to a backup script which) W 288 -39588 M 20.6 0 32 (grants the identifiers. The full panoply of EACF controls is available to screen who can use this) W 288 -40988 M 135.5 0 32 (copy of BACKUP. Meanwhile, another copy of BACKUP.EXE might be the one most users) W 288 -42388 M 102.5 0 32 (can access. The specially privileged copy would typically be accessed using a different verb,) W 288 -43788 M (and could be used for making system backups.) h 288 -46388 M 5988 -46388 M 11688 -46388 M (This facility is essential to permit programs like disk) h 288 -47788 M 5988 -47788 M (defragmentgers to have global system access without interference or) h 288 -49188 M 5988 -49188 M (to allow system wide applications like backup to be run without) h 288 -50588 M 5988 -50588 M (interference when done by authorized people at appropriate places) h 288 -51988 M 5988 -51988 M (or times. Up to 32 image pathnames can be exempted. ) h 288 -54588 M 5988 -54588 M 11688 -54588 M (In addition, an image is provided which can be used by a) h 288 -55988 M 5988 -55988 M (process to exempt itself from EACF checking or reenable it. This) h 288 -57388 M 5988 -57388 M (image must be treated with extreme care, but can be used for complex) h 288 -58788 M 5988 -58788 M (jobs where system maintenance is needed. When it is used, it logs its use) h 288 -60188 M 5988 -60188 M (so that such use can be audited.) h 288 -62788 M 110.9 0 32 (* There is provision for a "privileged user" list \(empty by default\) which can be used to give) W 288 -64188 M 152.3 0 32 (certain users broader file access, limited only by certain time codes and privilege mask tests) W -7200 7200 T showpage $P e %%Page: 8 8 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (8) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 154.6 0 32 (\(and DEC access controls\), should such be desired. A supplied privileged utility can also be) W 288 -2588 M 16.6 0 32 (used to exempt a process from EACF controls where this is wanted for whatever reason. This is) W 288 -3988 M 80.5 0 32 (referred to in the menus as the Backup Account. It can also be prevented from write access to) W 288 -5388 M (files while allowing read access.) h 288 -7988 M 31.6 0 32 (* You can arrange for EACF to execute an arbitrary set of commands whenever access to a file) W 288 -9388 M 66.7 0 32 (is denied. The username, PID, terminal, and file ID are available to the commands \(plus what\255) W 288 -10788 M 22.3 0 32 (ever else you care to make available\). This can be used for mail or pager notice to systems peo\255) W 288 -12188 M 31.1 0 32 (ple, for suspending the process, or for starting a keystroke monitor like SPY to record the proc\255) W 288 -13588 M 52.1 0 32 (ess' activities, or for ANY other desi_@ SAFETY013.A  #[EVERHART.JTDEMO]EACF_USER_MAN.PS;6 >Rred purpose. This takes place BEFORE the file can be ac\255) W 288 -14988 M 402.6 0 32 (cessed. \(There is an additional capability, controlled by the command line language as) W 288 -16388 M 222.9 0 32 (described in) W /Times-Italic-ISOLatin1 $ /Times-Italic & P /Times-Italic-ISOLatin1 F 1200 o f 222.9 0 32 ( jtcommand.doc ) W /Times-Roman-ISOLatin1 F 1200 o f 222.9 0 32 (which allows you to force execution of a site command script) W 288 -17788 M 36.9 0 32 (whenever an image tagged for this function is in use and opens a file. This is provided where it) W 288 -19188 M 10.4 0 32 (is needed to have additional controls over files which may be opened by a program whose secu\255) W 288 -20588 M 161.0 0 32 (rity properties may be especially untrustworthy. The script runs whenever the untrusted pro\255) W 288 -21988 M 39.6 0 32 (gram tries to open a file and it can veto the open. An application of this could be to alert a user) W 288 -23388 M 85.8 0 32 (of opens of files not in a permitted list. In this mode, or if in "check all opens" mode \(see be\255) W 288 -24788 M 88.7 0 32 (low\) EACF will check the file's parent directory permissions if the file has no EACF security) W 288 -26188 M (record.\)) h 288 -28788 M (DISCUSSION) h 288 -31388 M 32.9 0 32 (EACF is useful in relatively friendly environments, where it allows the limits of authority to be) W 288 -32788 M 12.4 0 32 (defined in the machine, so a privileged person who may be inclined to browse in public directo\255) W 288 -34188 M 102.0 0 32 (ries will be prevented from thoughtlessly printing private files with a message that he has ex\255) W 288 -35588 M 151.1 0 32 (ceeded his privileges, or in much more hostile ones where tampering or industrial espionage) W 288 -36988 M 19.8 0 32 (\(which often uses the services of insiders who have been paid off to make \(or have been tricked) W 288 -38388 M 53.6 0 32 (into making\) a quiet copy of the payroll, or business plan, files\) might be a risk. In either case,) W 288 -39788 M 74.2 0 32 (it is rather easy to limit access to sensitive files \(or to directory files holding sensitive files\) to) W 288 -41188 M 52.2 0 32 (certain people, and to remove the opportunity, and temptation, to disclose other data from peo\255) W 288 -42588 M 180.9 0 32 (ple who might otherwise do so for whatever reasons. If, for example, your system manager) W 288 -43988 M 47.2 0 32 (should be curious about a file named "NEW_PRODUCT_PLANS.DOC" and tries to look at it,) W 288 -45388 M 53.4 0 32 (isn't it better that he be unable to do so \(even though he may have BYPASS privilege\) if com\255) W 288 -46788 M 62.6 0 32 (pany policy means he really shouldn't have access to it? Isn't HE safer with a system that will) W 288 -48188 M 104.0 0 32 (just block access rather than an alternative system that can't block access, but will get him in) W 288 -49588 M 139.4 0 32 (trouble after he DOES access it? Conventional VMS lacks the ability to do a detailed job of) W 288 -50988 M 68.3 0 32 (limiting access to such areas, so inadvertently this kind of thing happens a lot. With EACF in\255) W 288 -52388 M 108.8 0 32 (stalled, it is easy to have the machine understand, and enforce, the limitations of access com\255) W 288 -53788 M 151.1 0 32 (pany policy and safety demand. Thus, inadvertent as well as intentional access is controlled,) W 288 -55188 M (and data access can be managed properly for the first time.) h 288 -57788 M 5988 -57788 M (EACF protections are in addition to normal VMS ones, and a person) h 288 -59188 M 5988 -59188 M (must be able to open a file to mark it for security. Henca all) h 288 -60588 M 5988 -60588 M (normal VMS group access provisions can be used to control which) h 288 -61988 M 5988 -61988 M (files a given group can mark.) h -7200 7200 T showpage $P e %%Page: 9 9 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (9) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q (WHAT IS HAPPENING TO FILES MARKED) h 288 -3788 M 46.3 0 32 (You mark files in EACF using a menu\255oriented file marking script, though a command line in\255) W 288 -5188 M 174.8 0 32 (terface exists if it essential to use one. This marking results in an application ACE \(the file) W 288 -6588 M 73.0 0 32 (mark\) being attached to the file and in the EACF database being updated to reflect desired ac\255) W 288 -7988 M 88.1 0 32 (tions on the file. In addition, EACF startup can be set so that the server is passed a list of file) W 288 -9388 M 59.2 0 32 (IDs which will be inspected. This list may contain any number of IDs per disk and can be cre\255) W 288 -10788 M (ated from simple) h 288 -13388 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f ($ DIR /FILE_ID ) h 288 -15988 M /Times-Roman-ISOLatin1 F 1200 o f 70.3 0 32 (commands. The list is a sequential file each line of which contains a file ID in the form \(n,s,r\)) W 288 -17388 M 17.6 0 32 (where n is file number, s is sequence number, and r is relative volume number. For example the) W 288 -18788 M (line) h 288 -21388 M /Courier-ISOLatin1 F 1200 o f (LOGIN.COM;85) h 11688 -21388 M (\(9493,12,0\)) h 288 -23988 M /Times-Roman-ISOLatin1 F 1200 o f (will do fine.) h 288 -26588 M 68.7 0 32 (When a file is marked like this, one uses a /FILENUM:sequentialfilespec.typ switch to tell the) W 288 -27988 M 103.9 0 32 (server where the list of IDs is, and the server will then check extended access even if the file) W 288 -29388 M 111.9 0 32 (mark has been damaged or removed from the file. A file mark must have been created in the) W 288 -30788 M 81.4 0 32 (first place, so that the EACF database will have been filled in, but if a mark has been deleted,) W 288 -32188 M (this will prevent such deletion from interfering with EACF checks.) h 288 -34788 M 70.5 0 32 (There is an option in the menu system which checks that all files in the EACF database corre\255) W 288 -36188 M 37.2 0 32 (spond to files with correct file marks and will regenerate these marks if any are missing. It also) W 288 -37588 M 46.8 0 32 (warns the operator of any files whose marks have been deleted, since this may represent some\255) W 288 -38988 M 115.1 0 32 (one having attempted to get around the EACF system's protection. Any unexplained cases of) W 288 -40388 M 145.9 0 32 (marks disappearing should be investigated as security breaches. If this happens, also, it indi\255) W 288 -41788 M 83.2 0 32 (cates which files should be in the kernel\255based lists, so that they will remain protected even if) W 288 -43188 M 204.8 0 32 (their marks are deleted entirely. There is no mechanism for removing files from the kernel) W 288 -44588 M 101.9 0 32 (based lists except a reboot and restart of EACF with a different, or no, /FILENUM switch on) W 288 -45988 M (the command to start the server process.) h 288 -48588 M 35.3 0 32 (The EACF setup script asks, for each disk selected, a security key \(used as part of the authenti\255) W 288 -49988 M 154.6 0 32 (cation for all ACEs that change identifiers, base priority, or privileges\) and a file containing) W 288 -51388 M 116.6 0 32 (these file IDs. Either, both, or neither may be selected. Note too that directories are files too,) W 288 -52788 M 131.0 0 32 (and can be protected, with the usual caveats. However, if the file [000000]000000.dir is pro\255) W 288 -54188 M (tected, EACF protection criteria can prevent a volume from being mounted. ) h 288 -56788 M (HOW TO SET EACF UP) h 288 -59388 M (Pre\255Installation:) h 288 -61988 M 166.3 0 32 (Before installing EACF, you should prepare for the installation by making sure that there is) W 288 -63388 M 9.4 0 32 (enough nonpaged pool available for the dynamic needs of the system. These vary somewhat but) W -7200 7200 T showpage $P e %%Page: 10 10 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (10) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 181.8 0 32 (can be adequately approximated by increasing the SYSGEN parameter NPAGEDYN by the) W 288 -2588 M 2.8 0 32 (quantity \(10000 * \(number of EACF daemons you will set up + 1\)\). Insert a line something like) W 288 -3988 M (the following) h 288 -6588 M (ADD_NPAGEDYN=30000) h 288 -9188 M 8.3 0 32 (in your MODPARAMS.DAT and run AUTOGEN. You may of course have adequate nonpaged) W 288 -10588 M 449.8 0 32 (pool already \(many systems will\) in which case no modifications are needed. SHOW) W 288 -11988 M (MEM/POOL will show this.) h 288 -14588 M 41.2 0 32 (Your system disk must have about 5000 blocks free to install EACF, though if the EACF com\255) W 288 -15988 M 60.1 0 32 (ponents are placed on a separate disk, system disk space required for the final resident compo\255) W 288 -17388 M (nents is under 500 blocks.) h 288 -19988 M (Installation:) h 288 -22588 M (EACF is installed by VMSINSTAL. From the system account, use a command) h 288 -25188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f ($ @SYS$UPDATE:VMSINSTAL EACF010) h /Times-Roman-ISOLatin1 F 1200 o f ( distribution_medium:) h 288 -27788 M 101.9 0 32 (to do the installation. The script will ask where EACF programs and scripts should be stored,) W 288 -29188 M 137.6 0 32 (and most EACF components will be placed there. This can be anywhere on the system, pro\255) W 288 -30588 M 41.9 0 32 (vided that the disk is mounted in your startup script before EACF is started. These components) W 288 -31988 M 70.4 0 32 (will occupy around 2000 blocks on a VAX, double that on an AXP, so ensure the disk chosen) W 288 -33388 M 235.6 0 32 (has room enough. When running the setup script after installation, the area chosen for the) W 288 -34788 M (EACF components should be specified as the area for EACF executable images.) h 288 -37388 M (Post Installation:) h 288 -39988 M 72.6 0 32 (EACF comes with a setup script which is to be run after the VMSINSTAL script has installed) W 288 -41388 M 14.8 0 32 (the package. This script \() W /Courier-ISOLatin1 F 1200 o f 14.8 0 32 (JT_SETUP.COM) W /Times-Roman-ISOLatin1 F 1200 o f 14.8 0 32 (\) generates a startup script which should be run from) W 288 -42788 M /Courier-ISOLatin1 F 1200 o f 205.1 0 32 (SYSTARTUP_VMS.COM) W /Times-Roman-ISOLatin1 F 1200 o f 205.1 0 32 ( or ) W /Courier-ISOLatin1 F 1200 o f 205.1 0 32 (SYSTARTUP_V5.COM ) W /Times-Roman-ISOLatin1 F 1200 o f 205.1 0 32 (at boot time. The script generated will) W 288 -44188 M 99.9 0 32 (start one access server which will be attached to all disks in the system, and enough intercept) W 288 -45588 M 206.4 0 32 (driver units to control all disks selected. It is perfectly legal and permissible to have many) W 288 -46988 M 71.4 0 32 (EACF servers, each handling one or more disks, however. This allows faster processing of se\255) W 288 -48388 M 55.5 0 32 (curity markings in some cases. The script offers an option to select the starting intercept driver) W 288 -49788 M 31.6 0 32 (unit number, so that it can be run more than once, and will arrange to load a server for all disks) W 288 -51188 M 47.9 0 32 (in each run. Normally it starts with intercept unit 0, but if you connect three disks, you can run) W 288 -52588 M 9.9 0 32 (the setup script again and start at intercept unit 3 \(since the prior run will have used 0, 1, and 2\).) W 288 -53988 M 79.4 0 32 (Then with this run, another server will be started. It is up to you to ensure that disks allocated) W 288 -55388 M (don't overlap.) h 288 -57988 M -7200 7200 T showpage $P e %%Page: 11 11 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (11) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q (JT_SETUP is fairly easy to understand. Its initial menu looks like this:) h 288 -3788 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f ( EACF SETUP 18:11:55) h 288 -6388 M ( \255\255> *Set area to hold EACF database files) h 288 -7788 M ( ) h 5988 -7788 M (Set start intercept driver unit number \(now 0\)) h 288 -9188 M ( *Set area for EACF executable images ) h 288 -10588 M 5988 -10588 M (Done this menu, process disk selection) h 288 -11988 M 5988 -11988 M (Remove a disk from an existing EACF configuration) h 288 -13388 M 5988 -13388 M (Set images which are exempt from EACF \(e.g. defraggers\)) h 288 -14788 M 5988 -14788 M (Quit, do nothing) h 288 -17388 M ( \( Asterisk means that a value already exists for the item.\)) h 288 -19988 M /Times-Roman-ISOLatin1 F 1200 o f 85.4 0 32 (It allows you to specify where EACF database files are kept \(for the series of EACF intercept) W 288 -21388 M 153.1 0 32 (driver units you configure\). Each run of JT_SETUP will let you configure one or more disk) W 288 -22788 M 184.4 0 32 (units, each of which uses a JT intercept driver, with its necessary data areas. Normally this) W 288 -24188 M 25.1 0 32 (starts with JTA0: and goes up in units, but if you want multiple servers you can run JT_SETUP) W 288 -25588 M 67.8 0 32 (once for each server and set the "start intercept driver unit number" item to the start unit num\255) W 288 -26988 M 14.4 0 32 (ber, which should be one higher than the maximum number of disk units configured so far. One) W 288 -28388 M 59.7 0 32 (JT unit can control only one disk unit. Asterisk implies that values already exist \(perhaps from) W 288 -29788 M (kitinstal\) for these selections.) h 288 -32388 M 299.0 0 32 (The "Set images which are exempt from EACF \(e.g. defraggers\)" item allows image de\255) W 288 -33788 M 66.7 0 32 (vice:[directory]filename.type;version strings to be specified for images which are exempt from) W 288 -35188 M 168.5 0 32 (EACF controls. Note that any such images can bypass all EACF actions, BUT you can and) W 288 -36588 M (should use EACF to control access to these images.) h 288 -39188 M 75.5 0 32 (When you select the "Done..." item, you enter a menu to select disk units to configure for this) W 288 -40588 M (EACF server. It looks like this:) h 288 -43188 M -7200 7200 T showpage $P e %%Page: 12 12 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (12) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( EACF Configuration ) h 23088 -1188 M (Disk Selection) h 288 -2588 M ( Use arrows to move to selection. Use RETURN to select.) h 288 -5188 M ( `@ SAFETY013.A  #[EVERHART.JTDEMO]EACF_USER_MAN.PS;6c>q End disk selection ) h 288 -6588 M ( _ARISIA$DKA700: VMSSYS) h 288 -7988 M ( _ARISIA$DKB0: USRBAK) h 288 -9388 M ( _ARISIA$DKB400: DWU) h 288 -10788 M ( _ARISIA$DCA0: XRP07) h 288 -12188 M ( _ARISIA$DCA2: XRP06) h 288 -13588 M ( _ARISIA$DCA3: CDI) h 288 -14988 M ( _ARISIA$DCA4: XTRA) h 288 -16388 M ( _ARISIA$DCA5: CDTPL) h 288 -17788 M ( _ARISIA$VDB0: TEST1) h 288 -19188 M ( _ARISIA$VDB1: TEST2) h 288 -20588 M ( _ARISIA$DKB200: ) h 288 -21988 M ( _ARISIA$DKB300: ) h 288 -23388 M ( _ARISIA$DCA1: ) h 288 -24788 M ( _ARISIA$DCA6: ) h 288 -26188 M ( _ARISIA$DCA7: ) h 288 -27588 M ( _ARISIA$FQA0: ) h 288 -28988 M ( _ARISIA$FQA1: ) h 288 -30388 M ( _ARISIA$FQA2: ) h 288 -31788 M ( Type H for help.) h 17388 -31788 M (Currently on item 1 of 151) h 288 -34388 M /Times-Roman-ISOLatin1 F 1200 o f 12.3 0 32 (where mounted disks appear first on the list, followed by all other disk\255class devices on the sys\255) W 288 -35788 M (tem. The display will scroll if more disks are there than will fit on a terminal.) h 288 -38388 M 123.9 0 32 (Once you select a disk, you must enter a number of parameters for that disk. This is done in) W 288 -39788 M (another sub\255menu which looks like this:) h 288 -42388 M 288 -44988 M /Courier-ISOLatin1 F 1200 o f ( EACF DISK SETUP 18:19:45) h 288 -47588 M ( \255\255> Enter security key for disk) h 288 -48988 M ( ) h 5988 -48988 M (Enter file of file IDs to load for kernel marking) h 288 -50388 M 5988 -50388 M (Examine only kernel\255marked files for access tests) h 288 -51788 M 5988 -51788 M (Set to automatically kernel\255mark all files on load) h 288 -53188 M 5988 -53188 M (\(This requires generating the file list at boot\)) h 288 -54588 M 5988 -54588 M (Generate filelist database and set to use it) h 288 -55988 M 5988 -55988 M (Act as if ALL files were kernel\255marked \(use if most are\)) h 288 -57388 M 5988 -57388 M (Quit, do nothing.) h 288 -58788 M 5988 -58788 M (Done this menu) h 288 -61388 M /Times-Roman-ISOLatin1 F 1200 o f 1.8 0 32 (The security key for the disk is the secret string \(of any reasonable length\) which is used to vali\255) W 288 -62788 M 99.7 0 32 (date EACF actions that alter privilege, identifiers, or base priority. It must match the marking) W 288 -64188 M 81.3 0 32 (on a file or these will not be altered \(which prevents random people from creating such mark\255) W -7200 7200 T showpage $P e %%Page: 13 13 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (13) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 109.4 0 32 (ings\). Therefore this key should be well chosen and the EACF startup file carefully protected) W 288 -2588 M 81.3 0 32 (from browsers. Note that when a marking on a file is created which resets privilege, grants an) W 288 -3988 M 18.4 0 32 (identifier, or resets base priority while that file is open, a file security key is asked for. That key) W 288 -5388 M 31.1 0 32 (must match the volume key entered here or the changes to process priority, identifiers, or privi\255) W 288 -6788 M 123.9 0 32 (lege are not made. This prevents unauthorized people from gaining privilege even if they are) W 288 -8188 M (permitted to mark their own files with EACF.) h 288 -10788 M 11.3 0 32 (The other options are pretty self\255explanatory. If you can afford the time to create a file of IDs to) W 288 -12188 M 83.9 0 32 (load at EACF start, it makes the system MUCH harder to avoid and allows the option of only) W 288 -13588 M 141.2 0 32 (examining marked files, which reduces overhead on nonmarked files and is therefore a good) W 288 -14988 M 9.9 0 32 (idea too. Whether to use item 4 or item 5 depends on how often your files that need to be exam\255) W 288 -16388 M 25.0 0 32 (ined change. Item 4 \(automatically kernel mark all files on load\) generates a complete list of all) W 288 -17788 M 161.1 0 32 (files that are marked at every boot. Item 5 generates a list when you select it and uses that,) W 288 -19188 M 162.6 0 32 (rather than generating the list at every boot. This can suffice for fairly static lists of files to) W 288 -20588 M (mark.) h 288 -23188 M 1042.6 0 32 (Once you finish with the menu, it will create EACF_STARTUP.COM and) W 288 -24588 M 171.5 0 32 (EACF_LOGIN.COM which are used to start EACF and to define some symbols needed for) W 288 -25988 M 857.4 0 32 (convenient use. EACF_STARTUP.COM should be run from systartup_v5.com or) W 288 -27388 M (systartup_vms.com \(depending on version of VMS\) at boot time.) h 288 -29988 M (WHAT TO MARK) h 288 -32588 M 28.9 0 32 (You will want to mark files \(and perhaps directories, though remember that files can be opened) W 288 -33988 M 42.4 0 32 (by file ID without going through directories\) which are important to your business with EACF.) W 288 -35388 M (Transient files should ordinarily not be marked. ) h 288 -37988 M 1565.9 0 32 (Critical system files should be marked. These include SYSUAF.DAT,) W 288 -39388 M 107.9 0 32 (SYS$SYSTEM:NET*.DAT, and the startup scripts \(so people can't easily find out what non\255) W 288 -40788 M 77.5 0 32 (standard things you're running\), as well as any other .COM files usually run by SYSTEM. Be) W 288 -42188 M (sure, however, to allow access BY the SYSTEM account to these.) h 288 -44788 M 112.9 0 32 (You should also use EACF to regulate the access to the files in the area you choose for your) W 288 -46188 M 156.9 0 32 (EACF data files. The files in JTD$DB and GCY$CM areas hold your security database and) W 288 -47588 M 75.0 0 32 (must be protected against access by unauthorized people. It is also often a good idea to access) W 288 -48988 M 142.2 0 32 (protect the file marking utility also \(filename JTAUTHMAINT.EXE\) so that only authorized) W 288 -50388 M 48.5 0 32 (people may mark files. Limiting access to the *.GDB files to the image JTAUTHMAINT.EXE) W 288 -51788 M 99.6 0 32 (\(and including the whole path\) is a good idea. Also, the scripts used to start EACF up, which) W 288 -53188 M 56.2 0 32 (will contain the volume access keys, should be protected against access too, so that users can\255) W 288 -54588 M 41.0 0 32 (not enter file markings that alter identifiers, etc. If you use the SETUP script, the file to protect) W 288 -55988 M (is) h 288 -58588 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f (SYS$MANAGER:EACF_STARTUP.COM) h 288 -61188 M /Times-Roman-ISOLatin1 F 1200 o f 110.2 0 32 (and it should be treated and protected at least as well as SYSUAF.DAT. Note that the EACF) W 288 -62588 M 45.1 0 32 (setup script will, by default, protect the EACF databases against access from images other than) W 288 -63988 M (EACF's images and BACKUP. It is recommended additional tailoring be done however.) h -7200 7200 T showpage $P e %%Page: 14 14 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (14) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q (HOW TO MARK FILES) h 288 -3788 M 96.6 0 32 (You mark files in EACF by using the mark_files script JTMARK_FILES.COM. The MARK\255) W 288 -5188 M 115.1 0 32 (FILE command does this. \(This presumes EACF has been installed and generally presumes a) W 288 -6588 M (privileged account to assure the ability to tag files appropriately.\)) h 288 -9188 M 163.8 0 32 (A brief note first: permitted and prohibited usernames, imagenames, and terminal names are) W 288 -10588 M 194.5 0 32 (matched with string matching, so that to allow access by BACKUP.EXE, for example, you) W 288 -11988 M 92.5 0 32 (would use a string like *]BACKUP.EXE;*, since otherwise it won't match the full path name) W 288 -13388 M 75.9 0 32 (which is available for matching. Therefore most of the time your selection strings will contain) W 288 -14788 M 24.0 0 32 (the * character, and the file marking script will issue a warning message if this is not present. If) W 288 -16188 M 90.4 0 32 (your selection, for example, IS the complete pathname for an image, or the complete terminal) W 288 -17588 M 72.6 0 32 (name \(or access port name\) for an image or terminal respectively this is not a problem. In any) W 288 -18988 M 62.5 0 32 (case, your selection is used. If however you want to \(dis\)allow access by, say, COPY, you can) W 288 -20388 M 36.9 0 32 (do so by excluding *COPY* more compactly. There is a limit in total size available for this in\255) W 288 -21788 M (formation, so conserving space is often a good idea.) h 288 -24388 M 711.1 0 32 (Now to actual use of the script. In fact there are two scripts. One is named) W 288 -25788 M 58.7 0 32 (JT_SEL_MARK.COM and uses a fullscreen frontend as a selection front end. With this script,) W 288 -27188 M 25.9 0 32 (you set your default directory to the tree where you want to select files and run the script, using) W 288 -28588 M 45.4 0 32 (the arrow keys and spacebar to select/deselect files. When you are satisfied with the selections,) W 288 -29988 M 116.6 0 32 (type G to mark the selected set of files. The selection menu is the same for both scripts. The) W 288 -31388 M (MARKEACF command runs the fullscreen \255 selection markup script.) h 288 -33988 M 130.4 0 32 (The other script \(jtmark_files.com\) asks for a file specification explicitly, which may contain) W 288 -35388 M (wildcards.) h 288 -37988 M (The start of that script looks like this:) h 288 -40588 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f ($ MARKFILE) h /Times-Roman-ISOLatin1 F 1200 o f ( File\(s\) to mark \(? for dir\):) h 288 -43188 M 55.4 0 32 (At this point you select a file \(or a wildcard file specification, in which case you will be mark\255) W 288 -44588 M (ing each in succession\). The selection could for example be:) h 288 -47188 M /Courier-ISOLatin1 F 1200 o f ($ MARKFILE) h 288 -48588 M ( File\(s\) to mark \(? for dir\): VDB0:[EVERHART]ND.TXT) h 288 -51188 M /Times-Roman-ISOLatin1 F 1200 o f ([Alternatively one can just use a command like) h 288 -53788 M /Courier-ISOLatin1 F 1200 o f ( $ Markfile vdb0:[everhart]nd.txt) h 288 -56388 M /Times-Roman-ISOLatin1 F 1200 o f (to accomplish exactly the same thing.]) h 288 -58988 M (At this point, if the file exists, you are presented with a menu which looks like this:) h 288 -61588 M /Courier-ISOLatin1 F 1200 o f ( Extended Access Control Facility \255 File Marking) h 288 -62988 M ( ) h 5988 -62988 M (File VDB0:[EVERHART]ND.TXT;7) h -7200 7200 T showpage $P e %%Page: 15 15 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (15) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( \255\255> Edit max\255privs\255to\255open mask \(current: DFFFFFFFFFFFFFFF\) ) h 45888 -1188 M 288 -2588 M ( Set base priority override \(current: None\)) h 288 -3988 M 5988 -3988 M (Edit permitted user list \(*\)) h 288 -5388 M 5988 -5388 M (Edit forbidden user list \(None\)) h 288 -6788 M 5988 -6788 M (Edit permitted term. list \(*\)) h 288 -8188 M 5988 -8188 M (Edit forbidden term. list \(None\)) h 288 -9588 M 5988 -9588 M (Edit permitted image list \(*\)) h 288 -10988 M 5988 -10988 M (Edit forbidden image list \(None\)) h 288 -12388 M 5988 -12388 M (Edit backup account list \(None\)) h 288 -13788 M 5988 -13788 M (Edit time\255use profile \(YYYYYYYYYYYYYYYYYYYYYYYY\)) h 288 -15188 M 5988 -15188 M (Edit replacement priv mask \(when file open\) None) h 288 -16588 M 5988 -16588 M (Set backup user access [Readonly/Read\255Write] R/W) h 288 -17988 M 5988 -17988 M (Set file tamper check) h 288 -19388 M 5988 -19388 M (Set file password Set AccFail\255action cmd @GCY$CM:JTACTN) h 288 -20788 M 5988 -20788 M (Enter security key) h 288 -22188 M 5988 -22188 M (Set conditional softlink \(None\)) h 288 -23588 M 5988 -23588 M (Grant identifier on open/revoke on close \( \)) h 288 -24988 M 5988 -24988 M (Quit, make no changes) h 288 -26388 M 5988 -26388 M (Done, update file controls now) h 288 -27788 M 5988 -27788 M (Perform database maintenance commands) h 288 -29188 M 5988 -29188 M (Apply selected mods to all wild files) h 288 -31788 M /Times-Roman-ISOLatin1 F 1200 o f 143.7 0 32 (In the above case, the settings are the defaults. The max\255privs\255to\255open mask excludes access) W 288 -33188 M (with BYPASS privilege but allows all others.) h 288 -35788 M 185.2 0 32 (If we select the first item \(by pressing \(the RETURN key\)\) the system shows another) W 288 -37188 M (menu which looks like this \(showing all but the BYPASS privilege selected:) h 288 -39788 M -7200 7200 T showpage $P e %%Page: 16 16 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (16) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( Privileges Permitted For Opening File Privilege Set Up) h 288 -3788 M ( \255\255> Done setup * MOUNT * U05) h 28788 -3788 M ( * U25) h 288 -5188 M ( Set all priv * OPER * SECURITY * U26) h 288 -6588 M ( Clr all priv * EXQUOTA * U07) h 28788 -6588 M ( * U27) h 288 -7988 M ( * CMKRNL) h 11688 -7988 M ( * NETMBX * U08) h 28788 -7988 M ( * U28) h 288 -9388 M ( * CMEXEC ) h 11688 -9388 M ( * VOLPRO * ACNT * U29) h 288 -10788 M ( * SYSNAM) h 11688 -10788 M ( * PHY_IO * U10) h 28788 -10788 M ( * U30) h 288 -12188 M ( * GRPNAM) h 11688 -12188 M ( * BUGCHK * U11) h 28788 -12188 M ( * U31) h 288 -13588 M ( * ALLSPOOL * PRMGBL * U12) h 28788 -13588 M ( Set NO mask) h 288 -14988 M ( * DETACH) h 11688 -14988 M ( * SYSGBL * ALTPRI Make no changes) h 288 -16388 M ( * DIAGNOSE * PFNMAP * U14 ) h 288 -17788 M ( * LOG_IO) h 11688 -17788 M ( * SHMEM * U15) h 288 -19188 M ( * GROUP) h 11688 -19188 M ( * SYSPRV * U16) h 288 -20588 M ( * NOACNT) h 11688 -20588 M ( BYPASS * U17) h 288 -21988 M ( * PRMCEB) h 11688 -21988 M ( * SYSLCK * U18) h 288 -23388 M ( * PRMMBX) h 11688 -23388 M ( * SHARE * U19) h 288 -24788 M ( * PSWAPM) h 11688 -24788 M ( * UPGRADE * U20) h 288 -26188 M ( * SETPRI) h 11688 -26188 M ( * DOWNGRADE * U21) h 288 -27588 M ( * SETPRV) h 11688 -27588 M ( * GRPPRV * U22) h 288 -28988 M ( * TMPMBX) h 11688 -28988 M ( * READALL * U23) h 288 -303a@ SAFETY013.A  #[EVERHART.JTDEMO]EACF_USER_MAN.PS;6r>88 M ( * WORLD) h 11688 -30388 M ( * U04) h 17388 -30388 M ( * U24) h 288 -32988 M /Times-Roman-ISOLatin1 F 1200 o f 21.9 0 32 (At this point we can toggle any privilege setting by selecting it and when done select the "Done) W 288 -34388 M (setup" item.) h 288 -36988 M (The "Set base priority override" item, when selected asks the question:) h 288 -39588 M (Enter base priority for process with this file open:) h 288 -42188 M 124.0 0 32 (which can be answered by a priority between 0 and 31. If outside this range, or if nothing is) W 288 -43588 M (entered, the priority setting is left unset, which means that EACF does not alter it.) h 288 -46188 M (The next 7 items:) h 288 -48788 M 5988 -48788 M /Courier-ISOLatin1 F 1200 o f (Edit permitted user list \(*\)) h 288 -50188 M 5988 -50188 M (Edit forbidden user list \(None\)) h 288 -51588 M 5988 -51588 M (Edit permitted term. list \(*\)) h 288 -52988 M 5988 -52988 M (Edit forbidden term. list \(None\)) h 288 -54388 M 5988 -54388 M (Edit permitted image list \(*\)) h 288 -55788 M 5988 -55788 M (Edit forbidden image list \(None\)) h 288 -57188 M 5988 -57188 M (Edit backup account list \(None\)) h 288 -59788 M /Times-Roman-ISOLatin1 F 1200 o f 97.1 0 32 (all lead to similar menus. If we select the "Edit forbidden user list" item, for example, we get) W 288 -61188 M (the following:) h 288 -63788 M -7200 7200 T showpage $P e %%Page: 17 17 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (17) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 5988 -1188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q (Edit Forbidden User List) h 288 -2588 M 5988 -2588 M (Current user list: None) h 288 -5188 M 5988 -5188 M (* is wild card, & means omit this test) h 288 -7788 M ( \255\255> Add users to list) h 288 -9188 M ( ) h 5988 -9188 M (Remove users from list) h 288 -10588 M 5988 -10588 M (Replace list) h 288 -11988 M 5988 -11988 M (Quit, leave user list alone) h 288 -13388 M 5988 -13388 M (Done with this menu) h 288 -15988 M /Times-Roman-ISOLatin1 F 1200 o f 45.1 0 32 (If the string when you are done contains a '&' character, the test corresponding to that menu is) W 288 -17388 M 33.3 0 32 (skipped. * on the other hand is a wildcard character. In several lists, a message is issued if no *) W 288 -18788 M 48.0 0 32 (is seen, since image paths or terminal lists will often contain them if they are to perform as ex\255) W 288 -20188 M (pected.) h 288 -22788 M 97.5 0 32 (NOTE:) W /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 97.5 0 32 ( The permitted lists have priority.) W /Times-Roman-ISOLatin1 F 1200 o f 97.5 0 32 ( Thus if the permitted user list is *, everyone is per\255) W 288 -24188 M 96.1 0 32 (mitted access to the file regardless of the forbidden list. If the permitted user list is & \(or just) W 288 -25588 M 10.3 0 32 (something you won't get like "="\) the forbidden user list controls who is denied access. If a few) W 288 -26988 M 103.7 0 32 (names are on the permitted list and the forbidden list contains *, then only the few named on) W 288 -28388 M 79.1 0 32 (the permitted list can access the file. Similar rules hold for image names and terminal \(or acc\255) W 288 -29788 M (port\) names.) h 288 -31188 M 288 -32588 M (Now if I select "Replace list" and add the value GUEST, the question and response look like:) h 288 -35188 M (Enter user list: GUEST) h 288 -37788 M (When we select the "Done..." item, we return to the top level which now looks like this:) h 288 -40388 M -7200 7200 T showpage $P e %%Page: 18 18 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (18) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( Extended Access Control Facility \255 File Marking) h 288 -2588 M ( ) h 5988 -2588 M (File VDB0:[EVERHART]ND.TXT;7) h 288 -3988 M 5988 -3988 M (Edit max\255privs\255to\255open mask \(current: DFFFFFFFFFFFFFFF\)) h 288 -5388 M 5988 -5388 M (Set base priority override \(current: None\)) h 288 -6788 M 5988 -6788 M (Edit permitted user list \(*\)) h 288 -8188 M ( \255\255> Edit forbidden user list \(GUEST\)) h 288 -9588 M ( ) h 5988 -9588 M (Edit permitted term. list \(*\)) h 288 -10988 M 5988 -10988 M (Edit forbidden term. list \(None\)) h 288 -12388 M 5988 -12388 M (Edit permitted image list \(*\)) h 288 -13788 M 5988 -13788 M (Edit forbidden image list \(None\)) h 288 -15188 M 5988 -15188 M (Edit backup account list \(None\)) h 288 -16588 M 5988 -16588 M (Edit time\255use profile \(YYYYYYYYYYYYYYYYYYYYYYYY\)) h 288 -17988 M 5988 -17988 M (Edit replacement priv mask \(when file open\) None) h 288 -19388 M 5988 -19388 M (Set backup user access [Readonly/Read\255Write] R/W) h 288 -20788 M 5988 -20788 M (Set file tamper check) h 288 -22188 M 5988 -22188 M (Set file password Set AccFail\255action cmd @GCY$CM:JTACTN) h 288 -23588 M 5988 -23588 M (Enter security key) h 288 -24988 M 5988 -24988 M (Set conditional softlink \(None\)) h 288 -26388 M 5988 -26388 M (Grant identifier on open/revoke on close \( \)) h 288 -27788 M 5988 -27788 M (Quit, make no changes) h 288 -29188 M 5988 -29188 M (Done, update file controls now) h 288 -30588 M 5988 -30588 M (Perform database maintenance commands) h 288 -31988 M 5988 -31988 M (Apply selected mods to all wild files) h 288 -34588 M /Times-Roman-ISOLatin1 F 1200 o f 38.5 0 32 (If we now want to control when this file may be accessed, we select the "Edit time\255use profile") W 288 -35988 M (item and get the screen following:) h 288 -38588 M -7200 7200 T showpage $P e %%Page: 19 19 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (19) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( Time Usage Permission Editing \(by hour\)) h 288 -2588 M (. Current Profile YYYYYYYYYYYYYYYYYYYYYYYY) h 34488 -2588 M ( ) h 45888 -2588 M 288 -3988 M ( 11111111112222) h 288 -5388 M ( 012345678901234567890123) h 288 -6788 M ( Key: ) h 288 -8188 M 54.0 0 32 (Y \255 checked acc. N \255 No access except bkp D \255 no access at all ) W 288 -9588 M (U \255 Unchecked acc P \255 Priv checks onlt R \255 Readonly access only) h 288 -10988 M 5988 -10988 M (X \255 R/W chks only) h 288 -13588 M ( \255\255> 0\2551AM) h 11688 -13588 M (12N\2551PM Quit this menu, no changes) h 288 -14988 M 5988 -14988 M (1\2552AM) h 11688 -14988 M (1\2552PM Exit, apply changes) h 288 -16388 M 5988 -16388 M (2\2553AM) h 11688 -16388 M (2\2553PM) h 288 -17788 M 5988 -17788 M (3\2554AM) h 11688 -17788 M (3\2554PM) h 288 -19188 M 5988 -19188 M (4\2555AM) h 11688 -19188 M (4\2555PM) h 288 -20588 M 5988 -20588 M (5\2556AM) h 11688 -20588 M (5\2556PM) h 288 -21988 M 5988 -21988 M (6\2557AM) h 11688 -21988 M (6\2557PM) h 288 -23388 M 5988 -23388 M (7\2558AM) h 11688 -23388 M (7\2558PM) h 288 -24788 M 5988 -24788 M (8\2559AM) h 11688 -24788 M (8\2559PM) h 288 -26188 M 5988 -26188 M (9\25510AM) h 11688 -26188 M (9\25510PM) h 288 -27588 M 5988 -27588 M (10\25511AM 10\25511PM) h 288 -28988 M 5988 -28988 M (11\25512AM 11\25512M) h 288 -31588 M /Times-Roman-ISOLatin1 F 1200 o f 89.7 0 32 (To explain the key: Y means normal checked access, checking all security criteria. N means) W 288 -32988 M 101.4 0 32 (No access, except that the "backup" account may access the file. D means no access at all, to) W 288 -34388 M 41.2 0 32 (anyone. U means Unchecked access. The extra EACF tests are skipped. P means only the test) W 288 -35788 M 12.1 0 32 (that allows open if the process has only privileges also in the "Max\255privs\255to\255open" list. R means) W 288 -37188 M 37.8 0 32 (Read\255only access. Opens for r/w access are denied. X means no tests for readonly opens, extra) W 288 -38588 M (EACF checks only for ) h 11688 -38588 M (R/W opens to a file.) h 288 -41188 M (Each letter selects an access code for one hour of every day.) h 288 -43788 M 33.4 0 32 (If I want to disallow use \(except backup account use\) of the file from 2\2553AM, I select that hour) W 288 -45188 M (and enter N. The selection question is as follows:) h 288 -47788 M (Give code for this hour access:: N) h 288 -50388 M 28.0 0 32 (If I know that between 9AM and 3PM the file should be open to all there with no added checks) W 288 -51788 M 90.7 0 32 (for reading, but I want to prevent writing except for users allowed by the rest of EACF, I can) W 288 -53188 M (use the X code for those hours. When I have done so the screen looks like:) h 288 -55788 M -7200 7200 T showpage $P e %%Page: 20 20 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (20) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( Time Usage Permission Editing \(by hour\).) h 288 -2588 M ( Current Profile YYNYYYYYYXXXXXXYYYYYYYYY) h 288 -3988 M ( 11111111112222) h 288 -5388 M ( 012345678901234567890123) h 288 -6788 M ( Key:) h 288 -8188 M 8.5 0 32 ( Y \255 checked acc. N \255 No access except bkp D \255 no access at all ) W 288 -9588 M (U \255 Unchecked acc P \255 Priv checks onlt R \255 Readonly access only) h 288 -10988 M 5988 -10988 M (X \255 R/W chks only) h 288 -13588 M 5988 -13588 M (0\2551AM) h 11688 -13588 M (12N\2551PM Quit this menu, no changes) h 288 -14988 M 5988 -14988 M (1\2552AM) h 11688 -14988 M (1\2552PM \255\255> Exit, apply changes) h 288 -16388 M 5988 -16388 M (2\2553AM) h 11688 -16388 M (2\2553PM) h 288 -17788 M 5988 -17788 M (3\2554AM) h 11688 -17788 M (3\2554PM) h 288 -19188 M 5988 -19188 M (4\2555AM) h 11688 -19188 M (4\2555PM) h 288 -20588 M 5988 -20588 M (5\2556AM) h 11688 -20588 M (5\2556PM) h 288 -21988 M 5988 -21988 M (6\2557AM) h 11688 -21988 M (6\2557PM) h 288 -23388 M 5988 -23388 M (7\2558AM) h 11688 -23388 M (7\2558PM) h 288 -24788 M 5988 -24788 M (8\2559AM) h 11688 -24788 M (8\2559PM) h 288 -26188 M 5988 -26188 M (9\25510AM) h 11688 -26188 M (9\25510PM) h 288 -27588 M 5988 -27588 M (10\25511AM 10\25511PM) h 288 -28988 M 5988 -28988 M (11\25512AM 11\25512M) h 288 -31588 M /Times-Roman-ISOLatin1 F 1200 o f 80.0 0 32 (Notice the Current Profile now shows X access codes between 9AM and 3PM \(and the cursor) W 288 -32988 M 134.9 0 32 (has been moved by hand to the exit item.\) Now we can exit this menu and see that the time) W 288 -34388 M (access profile is set.) h 288 -36988 M 58.9 0 32 (Where the file is not executable, a replacement privilege mask makes no sense for it, but if we) W 288 -38388 M (wanted to set one the screen would look like this:) h 288 -40988 M -7200 7200 T showpage $P e %%Page: 21 21 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (21) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( Privilege Mask to Replace all priv masks) h 288 -2588 M ( Privilege Set Up) h 288 -5188 M ( \255\255> Done setup MOUNT) h 23088 -5188 M (U05) h 28788 -5188 M ( U25) h 288 -6588 M 5988 -6588 M (Set all priv OPER) h 23088 -6588 M (SECURITY U26) h 288 -7988 M 5988 -7988 M (Clr all priv EXQUOTA U07) h 28788 -7988 M ( U27) h 288 -9388 M 5988 -9388 M (CMKRNL) h 11688 -9388 M ( NETMBX) h 23088 -9388 M (U08) h 28788 -9388 M ( U28) h 288 -10788 M 5988 -10788 M (CMEXEC) h 11688 -10788 M ( VOLPRO) h 23088 -10788 M (ACNT) h 28788 -10788 M ( U29) h 288 -12188 M 5988 -12188 M (SYSNAM) h 11688 -12188 M ( PHY_IO) h 23088 -12188 M (U10) h 28788 -12188 M ( U30) h 288 -13588 M 5988 -13588 M (GRPNAM) h 11688 -13588 M ( BUGCHK) h 23088 -13588 M (U11) h 28788 -13588 M ( U31) h 288 -14988 M 5988 -14988 M (ALLSPOOL PRMGBL) h 23088 -14988 M (U12) h 28788 -14988 M ( Set NO mask) h 288 -16388 M 5988 -16388 M (DETACH) h 11688 -16388 M ( SYSGBL) h 23088 -16388 M (ALTPRI Make no changes) h 288 -17788 M 5988 -17788 M (DIAGNOSE PFNMAP) h 23088 -17788 M (U14) h 288 -19188 M 5988 -19188 M (LOG_IO) h 11688 -19188 M ( SHMEM) h 23088 -19188 M (U15) h 288 -20588 M 5988 -20588 M (GROUP) h 11688 -20588 M ( SYSPRV) h 23088 -20588 M (U16) h 288 -21988 M 5988 -21988 M (NOACNT) h 11688 -21988 M ( BYPASS) h 23088 -21988 M (U17) h 288 -23388 M 5988 -23388 M (PRMCEB) h 11688 -23388 M ( SYSLCK) h 23088 -23388 M (U18) h 288 -24788 M 5988 -24788 M (PRMMBX) h 11688 -24788 M ( SHARE) h 23088 -24788 M (U19) h 288 -26188 M 5988 -26188 M (PSWAPM) h 11688 -26188 M ( UPGRADE U20) h 288 -27588 M 5988 -27588 M (SETPRI) h 11688 -27588 M ( DOWNGRADE U21) h 288 -28988 M 5988 -28988 M (SETPRV) h 11688 -28988 M ( GRPPRV) h 23088 -28988 M (U22) h 288 -30388 M 5988 -30388 M (TMPMBX) h 11688 -30388 M ( READALL U23) h 288 -31788 M 5988 -31788 M (WORLD) h 11688 -31788 M ( U04) h 23088 -31788 M (U24) h 288 -34388 M /Times-Roman-ISOLatin1 F 1200 o f 104.4 0 32 (The privileges selected will replace all a process' privileges which has the file open, until the) W 288 -35788 M 76.0 0 32 (file closes. Note the "Set NO mask" item means that you don't want privileges to be modified) W 288 -37188 M 20.9 0 32 (when the file is open. . Note that both current and authorized privilege masks are replaced. This) W 288 -38588 M 194.2 0 32 (prevents anything from setting privs with the $setprv service, since the authorized privilege) W 288 -39988 M (mask is replaced also.) h 288 -42588 M (If we want to set a file password, we select the menu item and get a prompt thus:) h 288 -45188 M /Courier-ISOLatin1 F 1200 o f (Enter file password: Thisisaprettylongpassword) h 288 -47788 M /Times-Roman-ISOLatin1 F 1200 o f 114.7 0 32 (The password will not echo, and you are asked for it twice to ensure you had no typing mis\255) W 288 -49188 M (takes.) h 288 -51788 M 168.8 0 32 (We can enter a security key; tb@ SAFETY013.A  #[EVERHART.JTDEMO]EACF_USER_MAN.PS;6>his will allow privilege, identifier, or base priority changes to) W 288 -53188 M 123.3 0 32 (work if it matches the one used for the disk in the setup script. This prevents random people) W 288 -54588 M (from marking their files and altering privileges. The question asked looks like this:) h 288 -57188 M /Courier-ISOLatin1 F 1200 o f (Enter security key:) h 288 -59788 M /Times-Roman-ISOLatin1 F 1200 o f (Again, the security key does not echo and is asked for twice to ensure it is read properly.) h 288 -62388 M -7200 7200 T showpage $P e %%Page: 22 22 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (22) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 5988 -1188 M 0.000000 0.000000 0.000000 q (Hiding Files) h 288 -3788 M 2.1 0 32 (Also we can arrange that another file be opened if the access is refused. suppose we want EACF) W 288 -5188 M 61.7 0 32 (to force an open of VDB2:[EVERHART]LOGIN.COM in the case access is denied. We select) W 288 -6588 M 123.8 0 32 (the ") W /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f 123.8 0 32 (Set conditional softlink) W /Times-Roman-ISOLatin1 F 1200 o f 123.8 0 32 (" item and get a prompt. With our reply it looks like) W 288 -7988 M (this:) h 288 -10438 M /Courier-ISOLatin1 F 1000 o f (Enter device:file to open if access denied: VDB2:[EVERHART]LOGIN.COM) h 288 -12988 M 5988 -12988 M /Times-Roman-ISOLatin1 F 1200 o f (Action Commands) h 288 -15588 M 17.8 0 32 (You will notice the menu item "Set AccFail\255action cmd" here. This is a command which can be) W 288 -16988 M 206.7 0 32 (executed whenever someone tries to open the file and is rejected. This command runs in a) W 288 -18388 M 134.6 0 32 (spawned procedure and can be any command at all. If the command is terminated with a "\\") W 288 -19788 M 46.5 0 32 (character, it is executed with no arguments. Otherwise it is passed 5 arguments, namely the us\255) W 288 -21188 M 9.8 0 32 (ername of the rejected accessor, the terminal name, the file ID \(as two hexadecimal longwords\),) W 288 -22588 M 38.0 0 32 (and the PID \(Process ID\) of the process whose access was rejected. An example routine named) W 288 -23988 M 85.4 0 32 (JTACTION.COM is furnished which just sends email to SYSTEM when such an access is at\255) W 288 -25388 M 88.0 0 32 (tempted. Any desired commands are permitted, though you should be aware that access is de\255) W 288 -26788 M 6.4 0 32 (layed till the command finishes. Hence any long actions may be best placed into SUBMIT com\255) W 288 -28188 M 113.2 0 32 (mands. This mechanism can be used to provide for prompt notice of attempted file access by) W 288 -29588 M 161.3 0 32 (whatever means are convenient, to suspend offending processes, or whatever else is desired.) W 288 -30988 M 126.3 0 32 (Note that the commands can be different for each file, permitting tailored responses. The de\255) W 288 -32388 M 91.6 0 32 (fault is no such commands are executed unless you enter one. The current selection, if any, is) W 288 -33788 M 103.8 0 32 (displayed on the menu. It is suggested that options such as turning on session recording via a) W 288 -35188 M (SPY type program could be one useful action to enter here.) h 288 -37788 M 5988 -37788 M (Automatic Identifiers) h 288 -40388 M 59.9 0 32 (If we want an identifier on the file while it is open we can grant one with the menu item. Sup\255) W 288 -41788 M (pose we enter the identifier FIELD. The prompt and response look like:) h 288 -44388 M /Courier-ISOLatin1 F 1200 o f (Enter identifier to associate with file: FIELD) h 288 -46988 M /Times-Roman-ISOLatin1 F 1200 o f 85.1 0 32 (When done with all changes so far \(including setting a priv mask on open that has TMPMBX) W 288 -48388 M (and NETMBX in it and nothing else\) the menu looks like:) h 288 -50988 M -7200 7200 T showpage $P e %%Page: 23 23 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (23) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1038 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1000 o f 0.000000 0.000000 0.000000 q ( Extended Access Control Facility \255 File Marking) h 288 -2238 M ( ) h 5988 -2238 M (File VDB0:[EVERHART]ND.TXT;7) h 288 -3438 M 5988 -3438 M (Edit max\255privs\255to\255open mask \(current: DFFFFFFFFFFFFFFF\)) h 288 -4638 M 5988 -4638 M (Set base priority override \(current: None\)) h 288 -5838 M 5988 -5838 M (Edit permitted user list \(*\)) h 288 -7038 M 5988 -7038 M (Edit forbidden user list \(GUEST\)) h 288 -8238 M 5988 -8238 M (Edit permitted term. list \(*\)) h 288 -9438 M 5988 -9438 M (Edit forbidden term. list \(None\)) h 288 -10638 M 5988 -10638 M (Edit permitted image list \(*\)) h 288 -11838 M 5988 -11838 M (Edit forbidden image list \(None\)) h 288 -13038 M 5988 -13038 M (Edit backup account list \(None\)) h 288 -14238 M 5988 -14238 M (Edit time\255use profile \(YYNYYYYYYXXXXXXYYYYYYYYY\)) h 288 -15438 M 5988 -15438 M (Edit replacement priv mask \(when file open\) 0010800000000000) h 288 -16638 M 5988 -16638 M (Set backup user access [Readonly/Read\255Write] R/W) h 288 -17838 M 5988 -17838 M (*Set file tamper check) h 288 -19038 M 5988 -19038 M (Set file password Set AccFail\255action cmd @GCY$CM:JTACTN) h 288 -20238 M 5988 -20238 M (*Enter security key) h 288 -21438 M 5988 -21438 M (Set conditional softlink \(VDB2:[EVERHART]LOGIN.COM\)) h 288 -22638 M ( \255\255> Grant identifier on open/revoke on close \(FIELD\)) h 288 -23838 M ( ) h 5988 -23838 M (Quit, make no changes) h 288 -25038 M 5988 -25038 M (Done, update file controls now) h 288 -26238 M 5988 -26238 M (Perform database maintenance commands) h 288 -27438 M 5988 -27438 M (Apply selected mods to all wild files) h 288 -29988 M /Times-Roman-ISOLatin1 F 1200 o f 110.5 0 32 (If we select Quit \(to abandon the marking\) or Done \(to perform it\) we eventually get another) W 288 -31388 M (prompt:) h 288 -33988 M /Courier-ISOLatin1 F 1200 o f (File\(s\) to mark \(? for dir\):) h 288 -36588 M /Times-Roman-ISOLatin1 F 1200 o f (and can either enter a filename or a return to exit the script.) h 288 -39188 M 31.3 0 32 (Note that if you have not entered a security key, the selection of base priority, replacement priv) W 288 -40588 M 41.6 0 32 (mask, or identifier will not be effective. The security key must be entered, and must match that) W 288 -41988 M 119.0 0 32 (entered for the volume at EACF startup to be effective. This protects against unautorized file) W 288 -43388 M 62.3 0 32 (markings causing security problems. If any of these are entered and no security key is entered,) W 288 -44788 M (you will be warned and given the chance to go back.) h 288 -47388 M 71.6 0 32 (The "Apply selected mods to all wild files" is used only where the file specification given is a) W 288 -48788 M 19.1 0 32 (wildcard one, and means that the markings just set up for the first file will be applied to all files) W 288 -50188 M 142.4 0 32 (in the wildcard specification. If this is a huge number of files it may take some time. If you) W 288 -51588 M 83.1 0 32 (have marked files in the fullscreen front end, this option will apply the selected controls to all) W 288 -52988 M 79.1 0 32 (files you selected. Thus you select files, then set up access controls, and then apply the access) W 288 -54388 M (controls to the whole list for simplest use.) h 288 -56988 M 52.0 0 32 (The "Perform database maintenance commands" option selects various EACF maintenance op\255) W 288 -58388 M (erations. The menu it brings up is the following:) h 288 -60988 M -7200 7200 T showpage $P e %%Page: 24 24 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (24) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 5988 -1188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q (Extended Access Control Facility) h 288 -2588 M 5988 -2588 M (MAINTENANCE COMMANDS) h 288 -5188 M 5988 -5188 M (Delete this entry) h 288 -6588 M 5988 -6588 M (Remove all database entries for now\255deleted files) h 288 -7988 M 5988 -7988 M (Create listing of all files marked) h 288 -9388 M 5988 -9388 M (Repair deleted ACEs \(ANY such are a security issue!\)) h 288 -10788 M 5988 -10788 M (Change or delete a string in all lists) h 288 -12188 M 5988 -12188 M (Done with this menu) h 288 -14788 M /Times-Roman-ISOLatin1 F 1200 o f 24.8 0 32 ("Delete this entry" means delete the currently selected file's ACE and database entry, removing) W 288 -16188 M (it from EACF protection.) h 288 -18788 M 108.7 0 32 ("Remove all database entries for now\255deleted files" means to go over the whole database and) W 288 -20188 M 2.3 0 32 (delete any entries referring to files which have been deleted. This should be done periodically to) W 288 -21588 M 44.1 0 32 (ensure that the database file is not cluttered with old information. It is handled in this way so it) W 288 -22988 M 56.9 0 32 (will work even if files are deleted with EACF disabled. \(If the system logical GCY$DELMNT) W 288 -24388 M 63.8 0 32 (is defined to be "OK", then EACF will delete database entries when files are deleted to reduce) W 288 -25788 M (the need for this maintenance.\)) h 288 -28388 M 47.3 0 32 ("Create listing of all files marked" will create a sequential list file of all marked files in the da\255) W 288 -29788 M (tabase in the format) h 288 -32388 M (Filename \(fileid\)) h 288 -34988 M 68.7 0 32 (suitable for the /FILENUM command's input. This can be used for any desired purpose and is) W 288 -36388 M 107.4 0 32 (created as JTD$CM:OP.GDB_LIST. The DCL symbol JTA_LISTFILE also is set to) W 288 -37788 M 53.1 0 32 (the filename value. The intent is that this file is used to set up the map of all marked files used) W 288 -39188 M (in the /FILENUM switch \(see above\).) h 288 -41788 M 180.1 0 32 ("Repair deleted ACEs" goes over the database and checks that the correct EACF ACE \(file) W 288 -43188 M 79.3 0 32 (mark\) is in place on each file. Any files whose ACEs have been deleted are possible evidence) W 288 -44588 M 25.0 0 32 (someone was trying to access a file EACF denied access to. Since the ACEs are marked hidden) W 288 -45988 M 54.5 0 32 (and privileged, this generally means a privileged user. Warnings are output to the OPCOM log) W 288 -47388 M 125.2 0 32 (and the user terminal if this is seen. The ACEs are then reconstituted. Running this item is a) W 288 -48788 M 142.6 0 32 (good idea also; it should be done periodically to ensure that protected files STAY protected.) W 288 -50188 M 152.8 0 32 (Files attacked in this way are protected anyway if they are in the list supplied to the /FILE\255) W 288 -51588 M 227.1 0 32 (NUM:file\255list\255name.typ command. If they were not, they may have been compromised and) W 288 -52988 M 66.4 0 32 (should be checked carefully. If they were, EACF protection was not lost, but it is likely some\255) W 288 -54388 M (one tried to break the EACF protection.) h 288 -56988 M ( ************************************************************ ) h 288 -59588 M 23.9 0 32 (These kinds of events represent security related attacks by privileged users. They must be taken) W 288 -60988 M 28.1 0 32 (VERY seriously. EACF output to the operator log will give more information about any denied) W 288 -62388 M 51.9 0 32 (accesses if the /FILENUM feature was used so that prot, ection was not actually lost. Also this) W 288 -63788 M (will show potential earlier attempts to access the file from before the ACE was deleted.) h -7200 7200 T showpage $P e %%Page: 25 25 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (25) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 43.6 0 32 ("Change or delete a string in all lists" is used, for example, to remove a username from all lists) W 288 -2588 M 91.3 0 32 (in the system requiring only one command per disk. It globally replaces one string in the lists) W 288 -3988 M 70.5 0 32 (with another. It should be recalled that since this is literal, if you are, for example, renaming a) W 288 -5388 M 35.6 0 32 (terminal server, you must replace the selection strings actually in the database, which are likely) W 288 -6788 M 48.6 0 32 (to be of form ",*name*" rather than plain strings. The menu front end is such that the "`" char\255) W 288 -8188 M 35.9 0 32 (acter \(accent grave\) cannot appear in either string. The underlying utility can use any delimiter.) W 288 -9588 M 18.8 0 32 (However, this character is illegal in all the selections likely to be there. The string changed can\255) W 288 -10988 M 19.4 0 32 (not be null. However, it is possible to add a user to a group by replacing, for example "USER1") W 288 -12388 M (by "USER1,USER2". This can be useful.) h 288 -14988 M 5988 -14988 M (COMMAND \255 LINE USAGE) h 288 -17588 M 72.4 0 32 (EACF defines several commands discussed more fully in the file JTCOMMAND.DOC, which) W 288 -18988 M 77.5 0 32 (permit use of and control of EACF from DCL command lines. Among them are the following) W 288 -20388 M (commands, mentioned briefly here.) h 288 -22988 M 104.1 0 32 (* MARKFILE \255 Set EACF security markings on files as discussed above. This uses the com\255) W 288 -24388 M 143.2 0 32 (mand file JTMARK_FILES.COM and allows marking one or a collection of files, or editing) W 288 -25788 M (their security profiles.) h 288 -28388 M 12.3 0 32 (* MARKSDH \255 Enter or edit security markings on files. This differs from MARKFILE in that a) W 288 -29788 M 73.3 0 32 (fullscreen file display is presented first to allow easy graphical selection of files to operate on,) W 288 -31188 M (with the assumption that the files are in the current default directory tree.) h 288 -33788 M 86.9 0 32 (*FILEPASSWORD \255 This allows one to enter passwords for files protected by password con\255) W 288 -35188 M 101.9 0 32 (trols. It should be used by a process before attempting to open such files. If the password en\255) W 288 -36588 M (tered for a file is correct, this will permit access to the file.) h 288 -39188 M (* JTEXEMPT \255 This command has two forms:) h 288 -40588 M ( JTEXEMPT JTAn: and) h 288 -41988 M ( JTEXEMPT/DEAS JTAn:) h 288 -44588 M 114.3 0 32 (and serves to exempt the current process from filtering by EACF, DPS, and HSM in the first) W 288 -45988 M 133.3 0 32 (form, or to re\255enable such filtering by the second form of the command. The disk associated) W 288 -47388 M c@ SAFETY013.A  #[EVERHART.JTDEMO]EACF_USER_MAN.PS;6K>51.1 0 32 (with the intercept driver JTAn: is the one to which access is affected. Whenever this command) W 288 -48788 M 16.4 0 32 (is used \(and it should be used very sparingly, and protected against unauthorized use\) it will log) W 288 -50188 M 149.8 0 32 (the fact of its use and who used it so that it cannot be readily used silently. Note that if the) W 288 -51588 M 204.4 0 32 (JTEXEMPT image is access controlled by EACF, additional controls on its use can be en\255) W 288 -52988 M (forced.) h 288 -55588 M 90.9 0 32 (The system also defines the verb JXSET which can exempt a process from controls. It should) W 288 -56988 M (be made available only to trusted individuals, however. Its use is logged.) h 288 -59588 M 5988 -59588 M (PERFORMANCE ISSUES) h 288 -62188 M 26.1 0 32 (Highest performance at runtime is obtained by using the maintenance commands to create a list) W 288 -63588 M 5.6 0 32 (of all files in the database and loading this into the EACF database in kernel mode, selecting the) W -7200 7200 T showpage $P e %%Page: 26 26 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (26) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 47.4 0 32 (option that tells EACF only to inspect files marked in kernel. In this mode, essentially the only) W 288 -2588 M 146.7 0 32 (files which incur more than a few extra instructions overhead at runtime are those known to) W 288 -3988 M 166.6 0 32 (have markings on them; the rest are quickly passed over. If however the number of files so) W 288 -5388 M 97.6 0 32 (marked exceeds around 10,000, it is probably best just to let EACF inspect all files for mark\255) W 288 -6788 M 58.5 0 32 (ings. As long as there is any header cache at all in the system in that case, the extra header ac\255) W 288 -8188 M 33.3 0 32 (cess done to read the ACL will only use the cache, and not cause another disk access. Also, the) W 288 -9588 M 169.1 0 32 (disk containing the EACF databases should ideally be as fast as practicable \(and remember:) W 288 -10988 M 97.2 0 32 (EACF should also be used to protect those database files from tampering\). Finally, the EACF) W 288 -12388 M 66.7 0 32 (servers can profitably be given higher than normal priority, and should be. They are I/O inten\255) W 288 -13788 M 148.7 0 32 (sive when used, and system responsiveness will be improved if the EACF servers are run at) W 288 -15188 M (software priority greater than the normal 4.) h 288 -17788 M 62.4 0 32 (Even if EACF is checking all files, system access time will not be noticeably affected save for) W 288 -19188 M 160.0 0 32 (those files which have extended checks, and in those cases the checking may add time. The) W 288 -20588 M 244.3 0 32 (longest operation is the file integrity check. This check requires, if the file length has not) W 288 -21988 M 109.8 0 32 (changed, that the file be read completely before opening by the user, to ensure that it has not) W 288 -23388 M 3.8 0 32 (been tampered with. This is reasonable for short scripts and the like. It should be done with cau\255) W 288 -24788 M (tion for 30000 block images. \(If file length changed, this is noticed at once.\)) h 288 -27388 M (Other operations take negligible time.) h 288 -29988 M 16.5 0 32 (EACF can be set up with as many servers as desired, from one for all disks in the system to one) W 288 -31388 M 120.8 0 32 (per disk. Basically, the more servers there are, the more opens with EACF checks can run in) W 288 -32788 M 41.9 0 32 (parallel. The servers are however activated only where it is known there is a file marked which) W 288 -34188 M 9.7 0 32 (needs server access. ACEs are read from a kernel thread, of which there can be many active at a) W 288 -35588 M (time. Accordingly one EACF server is likely to suffice for most systems.) h 288 -38188 M 5988 -38188 M (USAGE NOTES) h 288 -40788 M (To show some of the uses of these capabilities, let's take an example situation.) h 288 -43388 M 24.1 0 32 (Let's say we have several files whose contents are confidential \(say, a business' general ledger\)) W 288 -44788 M 31.4 0 32 (which need to be manipulated by a few programs which we'll call GL, AP, AR, IN, and PR for) W 288 -46188 M (short. What we want to avoid is that anyone browse these files.) h 288 -48788 M 12.6 0 32 (One way to do this is to create an identifier \(call it GLG\) and set up ACLs on all the files which) W 288 -50188 M 137.2 0 32 (grant access to the files to holders of identifier GLG, but deny access to all others. Then we) W 288 -51588 M 86.4 0 32 (arrange that each of the 5 images has the GLG identifier granted when it is run \(the programs) W 288 -52988 M (are set for E \(execute\) access only\) and now the programs in question can get to the files.) h 288 -55588 M 43.6 0 32 (IF nothing else in the system ever gets the identifier GLG, and IF nobody uses privilege, we're) W 288 -56988 M (done.) h 288 -59588 M (Note however that there are two disadvantages:) h 288 -62188 M 101.9 0 32 (1. The control is scattered around, so you need to do considerable poking to find that nobody) W 288 -63588 M 115.4 0 32 (else might have the GLG identifier normally, and you must set the ACLs on all files that the) W -7200 7200 T showpage $P e %%Page: 27 27 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (27) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q (GL, AP, AR, IN, and PR access.) h 288 -2588 M (2. Anyone with privileges can override the controls.) h 288 -5188 M 66.4 0 32 (Note that you can fix objection #2 by prohibiting access to any process holding READALL or) W 288 -6588 M 130.0 0 32 (BYPASS privileges. Ensuring that nobody has the GLG identifier requires separate examina\255) W 288 -7988 M (tion, however.) h 288 -10588 M 21.3 0 32 (If it is now decided that access at night to these records should be prohibited, EACF can simply) W 288 -11988 M 131.2 0 32 (be set to disallow access during those hours to the files, or possibly to the GL, AP, etc. pro\255) W 288 -13388 M 57.5 0 32 (grams that access them. Notice that with pure ACLs this is quite awkward, and blocking privi\255) W 288 -14788 M (leges is impossible. With EACF, it's easy.) h 288 -17388 M (However, there is a neater way to accomplish this.) h 288 -19988 M 96.3 0 32 (On each file to be accessed by the GL, AP, AR, IN, or PR programs, have a permitted image) W 288 -21388 M 170.8 0 32 (list containing these image names, and a forbidden image list of * \(everything\) so that only) W 288 -22788 M (those images can access the files in question, regardless of privilege.) h 288 -25388 M 80.5 0 32 (Note that now no identifier needs to be created, and the files used by the programs are clearly) W 288 -26788 M 74.1 0 32 (marked so that it is obvious by looking at them using the marking script that only the selected) W 288 -28188 M (images have access. Moreover, this cannot be overridden with privileges.) h 288 -30788 M 62.8 0 32 (Notice too that preventing access at night to this data is done in the same records, and in these) W 288 -32188 M 140.4 0 32 (cases, you protect the confidential data, not necessarily the programs \(which might be run at) W 288 -33588 M (night on test data\). All the security relevant controls are visible in the file marking display.) h 288 -36188 M 96.7 0 32 ( It may occur to some to ask how the data gets backed up now. One can of course set certain) W 288 -37588 M 48.0 0 32 (times of day for uncontrolled access to the files in question. A simpler way is to have a special) W 288 -38988 M (copy of BACKUP that is permitted unlimited system access.) h 288 -41588 M 17.6 0 32 (The CLD for such a copy, assuming it is called "SYSBACKUP" would be as follows \(using the) W 288 -42988 M (VERB utility to extract the original BACKUP command language definitions\):) h 288 -45288 M n 0.667 o f (define type ENCRYP_VAL) h 288 -46288 M ( keyword NAME value \(type=$outlog\)) h 288 -47288 M ( keyword ALGORITHM value \(default="DESCBC",type=$outlog\)) h 288 -48288 M ( keyword VALUE value \(list\)) h 288 -49288 M ( define syntax BACKUP_LIST) h 288 -50288 M ( parameter P1 , label=INPUTS , prompt="From" value \(list,type=$infile\)) h 288 -51288 M ( parameter P2 , label=OUTPUTS , prompt="To" value \(list,type=$outfile\)) h 288 -52288 M ( define type MEDIA_FORMAT_TYPE keyword COMPACTION negatable) h 288 -53288 M ( define verb SYSBACKUP image SYSBACKUP parameter P1 , label=INPUTS , prompt="From" value \(required,list,type=$infile\)) h 288 -54288 M ( parameter P2 , label=OUTPUTS , prompt="To" value \(required,list,type=$outfile\)) h 288 -55288 M ( qualifier ANALYZE nonnegatable) h 288 -56288 M ( qualifier ASSIST default) h 288 -57288 M ( qualifier BACKUP) h 288 -58288 M ( qualifier BEFORE value \(required\)) h 288 -59288 M ( qualifier BLOCK_SIZE value \(required\)) h 288 -60288 M ( qualifier BRIEF nonnegatable) h 288 -61288 M ( qualifier BUFFER_COUNT value \(required\)) h 288 -62288 M ( qualifier BY_OWNER value \(type=$uic\) placement=local) h 288 -63288 M ( qualifier COMMENT value \(required\)) h 288 -64288 M ( qualifier COMPARE) h -7200 7200 T showpage $P e %%Page: 28 28 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (28) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -888 M n 0.667 o f 0.000000 0.000000 0.000000 q ( qualifier CONFIRM) h 288 -1888 M ( qualifier CRC default) h 288 -2888 M ( qualifier CREATED) h 288 -3888 M ( qualifier DELETE) h 288 -4888 M ( qualifier DENSITY value \(required\)) h 288 -5888 M ( qualifier ENCRYPT value \(list,type=ENCRYP_VAL\)) h 288 -6888 M ( qualifier EXCLUDE value \(required,list,type=$infile\)) h 288 -7888 M ( qualifier EXPIRED) h 288 -8888 M ( qualifier FAST) h 288 -9888 M ( qualifier FILEMERGE nonnegatable) h 288 -10888 M ( qualifier FULL) h 288 -11888 M ( qualifier GROUP_SIZE value \(required\)) h 288 -12888 M ( qualifier IGNORE value \(required,list,type=$infile\)) h 288 -13888 M ( qualifier IMAGE qualifier INCREMENTAL) h 288 -14888 M ( qualifier INITIALIZE) h 288 -15888 M ( qualifier INTERCHANGE) h 288 -16888 M ( qualifier JOURNAL value \(type=$outfile\)) h 288 -17888 M ( qualifier LABEL value \(required,list\)) h 288 -18888 M ( qualifier LIST , syntax=BACKUP_LIST nonnegatable value) h 288 -19888 M ( qualifier LOG) h 288 -20888 M ( qualifier MEDIA_FORMAT value \(required,type=MEDIA_FORMAT_TYPE\)) h 288 -21888 M ( qualifier MODIFIED) h 288 -22888 M ( qualifier NEW_VERSION) h 288 -23888 M ( qualifier OVERLAY) h 288 -24888 M ( qualifier OWNER_UIC value \(type=$uic\) placement=local) h 288 -25888 M ( qualifier PHYSICAL) h 288 -26888 M ( qualifier PROTECTION value \(list\) placement=positional) h 288 -27888 M ( qualifier RECORD) h 288 -28888 M ( qualifier RELEASE_TAPE nonnegatable) h 288 -29888 M ( qualifier REPLACE qualifier REWIND) h 288 -30888 M ( qualifier SAVE_SET placement=local) h 288 -31888 M ( qualifier SELECT value \(required,list,type=$infile\)) h 288 -32888 M ( qualifier SINCE value \(default="TODAY"\)) h 288 -33888 M ( qualifier TAPE_EXPIRATION value \(required,type=$datetime\) placement=local) h 288 -34888 M ( qualifier TRUNCATE) h 288 -35888 M ( qualifier VERIFY) h 288 -36888 M ( qualifier VOLUME value \(required\)) h 288 -37888 M ( disallow \(ENCRYPT.NAME and ENCRYPT.VALUE\)) h 288 -38888 M ( disallow \(DELETE and RECORD\)) h 288 -39888 M ( disallow \(DENSITY and MEDIA_FORMAT\)) h 288 -42388 M n 1.500 o f 110.7 0 32 (Now one adds the path to this copy of SYSBACKUP.EXE \(a copy of BACKUP.EXE\) to the) W 288 -43788 M 504.3 0 32 (list of exempt images in EACF. \(The correct full path is shown in SHOW PROC\255) W 288 -45188 M (ESS/CONTINUOUS when the image is active for the process being shown.\)) h 288 -47788 M 75.2 0 32 (In so doing, now, the SYSBACKUP verb can be added to DCLTABLES and used for making) W 288 -49188 M 379.7 0 32 (system wide backups. Note too that EACF can be used to control access to the SYS\255) W 288 -50588 M 33.0 0 32 (BACKUP.EXE image, permitting access to known people at known places and times. It is pos\255) W 288 -51988 M 71.1 0 32 (sible, too, to deny access to anyone with privileges to the SYSBACKUP.EXE image and have) W 288 -53388 M 108.1 0 32 (EACF grant the privileges itself \(so that the "maximum privileges to open" mask would have) W 288 -54788 M 18.1 0 32 (only a few privileges, and the "replacement privilege" mask might have all privileges set\). [One) W 288 -56188 M 96.0 0 32 (can also just use a VMS INSTALL to install the image with privileges.] In this way it can be) W 288 -57588 M 17.8 0 32 (made exceedingly difficult for anyone to use this system backup utility for unauthorized access.) W 288 -58988 M 130.8 0 32 (It also makes it fairly simple to allow an otherwise unprivileged operator account to perform) W 288 -60388 M 147.1 0 32 (these backup duties without granting the account privilege. By limiting the ability to use the) W 288 -61788 M 101.5 0 32 (program to a NONprivileged user, you make it much harder for anyone to gain "spoofed" ac\255) W 288 -63188 M (cess.) h -7200 7200 T showpage $P e %%Page: 29 29 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9170 -1188 M 0.000000 0.000000 0.000000 q (29) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 12.4 0 32 (The security model supported here is much richer than the default VMS model, and while it can) W 288 -2588 M (be enhanced, it covers a great deal of ground in controlling who has access to what files.) h 288 -5188 M 8.5 0 32 (Hopefully the above discussion is helpful in describing some of the ways in which EACF facili\255) W 288 -6588 M (ties can be used.) h 288 -9188 M (Appendix \255 Extra Odds and Ends) h 288 -11788 M 68.6 0 32 (\(The intercept driver is also able to be set to prevent file opens where a volume is allocated or) W 288 -13188 M 64.1 0 32 (mounted privately. Normally such volumes' files are private but the privacy can be overridden) W 288 -14588 M 108.9 0 32 (in normal VMS with the SHARE privilege. This option allows the volumes to remain private) W 288 -15988 M 46.3 0 32 (even so. Note however that this can mean a print spooler will not have file access, and may in\255) W 288 -17388 M 11.3 0 32 (hibit other actions, so that this is desirable only some of the time. Access to disks mounted /sys\255) W 288 -18788 M 197d@ SAFETY013.A  #[EVERHART.JTDEMO]EACF_USER_MAN.PS;6.5 0 32 (tem or /cluster is not affected. This operation mode is not currently supported by the setup) W 288 -20188 M 11.6 0 32 (scripts however, as it is somewhat esoteric. One sets the 2048 bit of the function mask to enable) W 288 -21588 M 7.9 0 32 (this. One also can enable fragmentation reduction by setting the 2 bit. By setting the 262144 bit,) W 288 -22988 M 74.4 0 32 (one tells the driver to only examine opens of files that have had their file numbers loaded into) W 288 -24388 M 51.3 0 32 (memory. This may sometimes be wanted for performance reasons. These and some other more) W 288 -25788 M 66.6 0 32 (esoteric functions are built into the driver and may be used as needed. The file) W /Times-Italic-ISOLatin1 $ /Times-Italic & P /Times-Italic-ISOLatin1 F 1200 o f 66.6 0 32 ( jtcommand.doc) W 288 -27188 M /Times-Roman-ISOLatin1 F 1200 o f 50.9 0 32 (gives information on the command language available in EACF and on some other capabilities) W 288 -28588 M (not shown via the menu interface in V1.\) ) h 288 -30026 M -7200 7200 T showpage $P e %%Trailer $D end restore % DEC_WRITE_dict %%Pages: 29 %%DocumentFonts: Times-Roman %%+ Times-Bold %%+ Times-Italic %%+ Courier %%+ Times-BoldItalic $*[EVERHART.JTDEMO]EACF_USER_MAN.RTF;1+,A ./ 4- 0123 KPWO56`7 89GHJ6{\rtf1\ansi \deflang1024 {\fonttbl {\f0\fswiss AvantGarde;}{\f1\froman Bookman;}{\f2\fmodern Courier;}{ \f3\fswiss Helvetica;}{\f4\fswiss Helvetica Condensed;}{\f5 \fswiss Helvetica-Narrow;}{\f6\froman Lubalin Graph;}{\f7 \froman NewCenturySchlbk;}{\f8\froman Palatino;}{\f9\froman Souvenir;}{\f10 \ftech Symbol;}{\f11\froman Times-New-Roman;}{\f12\fscript ZapfChancery;}{\f13 \fdecor Zapf Dingbats;}{\f14\ftech DECtech;}{\f15\fswiss Arial;}{\f16 \fnil Arial Narrow;}{\f17\fnil Baskerville Old Face;}{\f18\fnil Bell MT;}{\f19 \froman Book Antiqua;}{\f20\froman Bookman Old Style;}{\f21\fnil Braquadocio;}{ \f22\fnil BriemScript;}{\f23\fnil Britannic;}{\f24\fnil Castellar;}{\f25 \fnil Centaur;}{\f26\fswiss Century Gothic;}{\f27\fnil Century Schoolbook;}{\f28 \fnil Contemporary;}{\f29\fnil Contemporary Brush;}{\f30\fmodern Courier New;}{ \f31\fnil Desdemona;}{\f32\fnil Eckmann;}{\f33\fnil Edda;}{\f34\fnil Elephant;}{ \f35\fnil Eurostile;}{\f36\fnil Fences;}{\f37\fnil Futura;}{\f38 \fnil Gill Sans Ultra Bold;}{\f39\fnil Lucida Blackletter;}{\f40 \froman Lucida Bright;}{\f41\fnil Lucida Bright Math Extension;}{\f42 \fnil Lucida Bright Math Italic;}{\f43\fnil Lucida Bright Math Symbol;}{\f44 \fscript Lucida Calligraphy;}{\f45\fnil Lucida Fax;}{\f46 \fnil Lucida Handwriting;}{\f47\fnil Lucida Sans;}{\f48 \fnil Lucida Sans Typewriter;}{\f49\fnil Monotype Corsiva;}{\f50 \fnil Monotype Sorts;}{\f51\fmodern Modern;}{\f52\fmodern Ms LineDraw;}{\f53 \fnil MT Extra;}{\f54\froman Roman;}{\f55\fscript Script;}{\f56\froman Times;}{ \f57\fnil WingDings;}{\f58\fnil WingDings;}{\f59\fdecor Zapf Dingbats;}{\f60 \fnil Albertus (W1);}{\f61\fnil Albertus Xb (W1);}{\f62\fnil Antique Olv (W1);}{ \f63\fnil CG Omega (W1);}{\f64\fnil CG Times (W1);}{\f65\fnil Clarendon Cd (W1) ;}{\f66\fnil Coronet (W1);}{\f67\fnil Courier (W1);}{\f68\fnil Garmond (W1);}{ \f69\fnil Letter Gothic (W1);}{\f70\fnil Line Printer (W1);}{\f71 \fnil Marigold (W1);}{\f72\fnil Univers (W1);}{\f73\fnil Univers Cd (W1);} } {\info {\title }{\author }{\revtim \yr1996\mo11\dy17}{\subject }}\paperw12240 \paperh15840\margl1440\margr1440\margt1498\margb1440\linemod0\sectd\sbkpage \footery720\headery720\endnhere \headery540 {\header \pard\plain \qj\fi0\li58\ri3663\sb0\sa120\sl-280\b0\i0\f56\fs24 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \par }\footery660 {\footer \pard\plain \qr\fi0\li7287\ri58\sb0\sa120\sl-280\b0\i0\f56\fs24 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {{\b0\i0\f56\fs24 {\field{\fldinst{page\* arabic}}} } }\par } \pard\plain \qc \fi0\li58\ri58\sb0\sa240\sl-320 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs28 Extended Access Control Facility (EACF) USER MANUAL\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 This manual is intended for use by those who will set up EACF and use it to cont rol file access on a system.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Introduction:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 EACF introduces a number of new capabilities to VMS. This manual is designed to: * explain what these are and what their intended use is, and * give information on how to mark files to achieve added capabilities.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Overview, or, Why EACF:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Work any length of time in a computer facility and you hear the stories: someone reading an other person's mail, some clerk telling a friend how much the boss makes, some s ystems pro grammer typing out a document that contains long range company plans and was for Vice Presidents only. People are often curious and occasionally malicious. Regardless , the informa tion loss can create serious problems, especially if it falls into the wrong han ds, or lands you in court because of some breach of privacy. \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Technical means to control this are often lacking. If you can only allow or disa llow read/write access to a file by someone, as is the VMS norm, then (for example) the payroll clerk can edit the payroll database. Doing this with the normal payroll application, at his ter minal during the day, might be perfectly OK. However, should he be permitted to access it with, s ay, COPY? Someone developing new software might need access to system areas to install his latest ver sions. Should he, however, have access also to the technical plans? \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 As these questions make clear, it is desirable for the system to limit access to sensitive files. By doing so, it gives useful warning when someone's curiousity gets out of bounds, prevents loss of information, and reduces organizational exposure to anyone giving in to tempt ation to sell company secrets, by making those secrets inaccessible outside of authorized limi ts.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Extended Access Control Facility is designed to prevent loss, damage or unauthor ized disclo sure of data by controlling disk file access. Most security breaches ultimately involve tamper ing with disk storage. Others such as login breakins are already dealt with fair ly well by VMS if set up properly. However, VMS doesn't make it possible to regulate what can be d one with highly sensitive data at all closely.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The difficulty of allowing access with certain programs to certain files, for ce rtain people and times, has led to many incidents of VMS users browsing areas where they are not authorized by policy, but in which they have access because their privileges work in a coarse grained way. Often these are innocent curiousity. Sometimes they are industrial espionage. Wi th most (some estimates are as high as 98%) of security breaches coming from "insiders" exceed ing their authority, this exposure is a problem in any organization keeping data online wh ich competitors shouldn't get at.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 A number of products claim they prevent unauthorized file accesses in VMS. Unfor tunately, all \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 of them currently on the market, with the exception of this one, work by accessi ng data from the VMS AUDIT facility. The problem with this is that anyone even moderately fam iliar with VMS knows that the Audit facility keeps track of security violations, and there are numerous ways to shut it off tracelessly, including code from public domain sources. This renders the strategy of these packages ineffective.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 What is just as bad, these products find out that an unauthorized file access ha s happened from Audit only after the fact. At that point, all they can do is (attempt to) stop t he image or its proc ess, since the file access has already happened, and often already succeeded. (W here the access is a delete, the file is already gone.) As a result, they require that a policy be in place to punish offenders after the fact, since they may have already done some damage. It's har d to be relaxed about a breach in such a case.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 EACF, on the other hand, lives in the VMS file system and prevents unauthorized file accesses from happening in the first place. It is not circumvented by privileges, works w hether the Audit facility is up or not, and can ensure that a protected file is NOT accessed wher e this is not authorized. Thus, the innocent browser cannot have done any harm, and may be tre ated with less rigor than might be needed if damage or data loss may have occurred. Also, while other packages have to use obtrusive measures like process deletion to stop accesses, EACF can si lently hide files if that is desired. Where a real violation IS happening, this can be much more effective in finding out what is being attempted than stopping a process. EACF o f course does generate logs of any detected violations so that notice of them is preserved. \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 EACF is uniquely valuable in controlling access by privileged users. Many sites have people who have elevated privileges, but who should not be able to access payroll, grad e files, com pany plans, etc., and who are not prevented from this by VMS. EACF can protect a gainst ex actly such access (and even discriminate AGAINST people with various privileges if you like) and gives extensive controls over privileges and their uses above those VMS has. \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Finally, EACF is simple to use. You mark files for various accesses with a menu oriented utility which selects how a file (or set of files) should be marked, or which will displ ay what markings exist on a file. All security relevant information is present at one time in an easily understood format; you do NOT need to hunt through all disk file ACLs to find it, if it exi sts at all. No normal VMS facilities are lost, either; VMS security controls continue to work n ormally, though EACF may in various ways alter the outcome of their tests in understandab le ways. (An example of this might be that if you attach an identifier TWIT to a script, that script may fail to open some files which have ACLs prohibiting access to identifier TWIT.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 If your business depends on any data on your VMS systems and your operation is m ore than a VERY few people, you NEED EACF.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Capabilities:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 EACF offers the following abilities:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can specify a password for file access. This password must be entered bef ore access is attempted, using an EACF utility for the purpose. Then if the file password has been entered, \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 and other EACF checks satisfied, the file may be opened (or deleted). Otherwise, access is de nied. The password can be anything at all, and the tokens left in user space to indicate the en tered password are also process dependent, so others cannot use them. The passwo rd can be changed at any time using EACF, but allows control via a separate piece of knowl edge if this is preferred to control by time, username, etc. This facility has long existed in t he mainframe world. Now it is available for VMS. While it is less secure than encrypting the file, this mee@ SAFETY013.AA  $[EVERHART.JTDEMO]EACF_USER_MAN.RTF;1/M>thod also cannot cause a file to be lost forever if the one who knows the key dies or forgets it. Also, changing the file password is quick and easy, unlike changing its encryption, so that temporary access can be given and revoked at need.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can control access by time of day (in one hour increments). You can use th is facility to prevent file access during "after hours" times \tab where there is no reason to allow them to be ac cessed, or "open up" files during periods where normal controls are deemed adequ ate. The ac cess modes for each hour can be:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab Y - Access permitted provided all other security checks pass.\line \tab N - No access (except to users on backup list)\line \tab U - No CHECKS, let everything by EACF checks on this\line \tab file during this hour. (DEC security remains in effect.)\line \tab P - Check privileges against max privs only\line \tab R - Readonly access only, by anyone; r/w opens are\line \tab rejected. Other checks may deny access totally as well.\line \tab X - Allow r/o opens, test others normally.\line \tab D - Disallow access by ANYone (even the backup account)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab (Note that provision for a backup account exists, and it can be\line \tab forced to permit only read-only file access, but this facility\line \tab allows further restrictions, operating per file.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab Notice that this means that writing to a file can be disabled\line \tab whenever one likes even if reading is left permitted. If there is\line \tab a suspicion that some databases may be tampered with off hours,\line \tab this gives a simple way to protect them. The privilege check\line \tab mode is also of particular value, since it can disallow use of\line \tab elevated privileges which might otherwise be used to bypass normal\line \tab system protections by industrial spies or other evil doers.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can control WHO can access a file (with both permitted and forbidden usern ames), WHERE they can access the file (with permitted and forbidden terminal names), an d WITH WHAT they can access the file (with both permitted and forbidden image names). This is the major advantage of EACF. You have, for usernames, terminal names, and image name s, two lists each. You can specify username strings that are acceptable or that must be rejected,or can use * to indicate all, or & to indicate to skip a test. Likewise you can specify permitted or for bidden terminal names (access port names are tried also if they exist), or image names that are permitted or forbidden. These are handled with the normal VMS wildcard conventio ns (except that in addition a string with & in it means to skip the test). Thus, to say tha t a given file cannot \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 be accessed with the COPY image one could add "*COPY.*" to the forbidden image l ist. (Note: "Access" as used for EACF means either open OR delete access. Renaming a file do es not have any effect on the controls.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The beauty of this is that all the EACF parameters can be controlled in one spot , without huge ACLs and unmanageable machinery to fiddle with system logicals or identifiers on the hour. This permits really fine grained access to your files. If you have an accounting person who works on the payroll file, you can authorize access to PAYROLL.DATA during worki ng hours, from that person's normal terminals, but forbid access after hours, or from term inals like RT* or NT*, and you can ensure that the file cannot be accessed with, for example, C OPY or BACKUP, or perhaps can only be accessed from *PAYROLL*.EXE* if only a given suit e of programs with such names should be used for access. The access lists are all var iable length, comma-separated lists, so considerable flexibility is available. Finally, you ca n prevent access using privilege (see below) to this data, so that people who have privileged acc ess to your sys tem, yet have no physical access to the computer, cannot simply turn on privileg es and read the data to their heart's content.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can prevent files from being accessed with more than a given set of privil eges. You do this by attaching a maximum privilege mask to a file and if the process trying t o open or delete the file has any privileges not in this mask, access is forbidden. The default m ask forbids access using BYPASS privilege. This is highly useful against curious privileged users ( and any intrud ers who gain privilege) since it means that files can be protected even where lo cal conditions force operation with many privileged users, or where there is concern that intru ders may gain privileged access to the machine. The tags that cause files to be checked in thi s way can be kept in kernel space as well, so that they are safe from being seen even by privilege d users.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab NOTE: This and other checks are applied in addition to the\line \tab normal VMS checking. Hence even a file owner is affected by\line \tab this checking.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Many sites have people who must do development and need to be able to use INSTAL L or other privileged functions, and whose privileges cannot be revoked without impai ring their abil ity to work. However, most of these people have no need to be authorized to see, e.g., the pay roll file. Conventional VMS offers NO way to prevent such access, and other file "security" packages work by watching the output of the AUDIT utility, which can be silently and untrace ably shut off by publically available programs whatever someone is running to li sten to AUDIT. As a result, there has been, until now, NO way to block access by these people to sen sitive data left on normal disk files, whatever file protection is attempted. EA CF, due to its resi dence within the file system, works whether AUDIT is turned on or not, and preve nts these folks from using the file system to access such data. EACF offers the ability to either block ac cess altogether, or to block write access only, and cannot be confused by comman d obfuscation, nor does it care whether the access is by program or by console command. Someone who has used privilege to change his username can be blocked by finding that the privile ge he needs to continue to access his system tables denies file access. Thus even common tricks one might play to fool an access system into permitting access can be thwarted readily. \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can hide files. That is, if access is denied, you can arrange that instead of giving the user a "privilege violation" message, EACF can arrange that another file (on ANY disk ) can be opened instead wth no indication to a user exceeding his authority that anything unusual has happened. EACF will of course generate logs of the denied access, as it does in all cases of such, but the intruder will not know that his access attempt has failed. Therefo re, you can ar range that he will open FAKE_SYUSUAF.DAT or FAKE_PAYROLL.DAT instead of the real SYSUAF.DAT or PAYROLL.DAT. This allows you to safely allow him to leave evidence of his intentions (e.g. let him try to enter system accounts, or see whose pay reco rds he wants to see or tamper with) without exposing your real business data to tampering. In ef fect, the un authorized user CANNOT SEE the real files, but "sees" other files which pose as them. In some cases this can be FAR safer than an error message, which will alert a person exc eeding his authority or an intruder that he has tripped some protection barrier. Rather, it seems to pose no resistance to tampering, but gives complete resistance, while permitting evidenc e of what is at tempted to be accumulated.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can attach a cryptographic checksum to the file. At any attempt to open th e file, this checksum is compared with that of the actual data, and the file will not open if they do not match. This is used for detection of file tampering and means that if someone sh ould tamper with a file, it cannot be used in such a state. This tamper-proofing works for a ny file type, and is not limited to executables. However, it does require that the file be read in it s entirety to com pute the checksum before an open can be done, so it is most effective for relati vely short files. The most common examples of such are DCL scripts used by privileged users, which are fre quent targets of attacks on system integrity. Certain file types (with very long maximum record sizes) cannot be fully checked in this way, but these are quite rare; the system provides for checks of files with records far larger than the longest permissible DCL line. I f only a partial check is possible, EACF will check what it can. This facility can be used to gua rd many critical files against tampering which might otherwise be a first step in breaking into a system. Note too that the file size is used in the checksum, and this is tested first, so that an ything that has changed the file size will fail the check very quickly. Where a file is over 10 0 blocks long, the script asks for confirmation before marking it for this check.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can attach a replacement privilege mask to a file which will replace all p rocess privilege masks when the file is executed. This can be attached to any file, no matter how executed (so that interpreted scripts can be tagged too). This is normally used to ensure tha t a script or image never runs with elevated privilege. If you attach a privilege mask to, say, a DC L script or image you got from somewhere, and the mask contains no privileges except perhaps TMPMB X (and maybe NETMBX), then whenever it runs, the process' current and authorized privil ege masks will be replaced with masks having only these privileges. (The privileges are re stored on exit or when the file is otherwise closed.) Thus if any Trojan code would normally be tr iggered by the script finding that it had some elevated privileges, it would never find such, e ven if run from privileged accounts. Also, since the process lacks privilege while the script or image is running, it cannot abuse privileges that might otherwise be available to it. (The authori zed mask is reset to keep Trojan horse applications from using $setprv to negate the privilege low ering.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab You should note that the UIC is not altered, so that implied system\line \tab access via a low UIC would not be affected by this. Also, if you\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab use this facility to raise privileges, be sure to allow E (execute)\line \tab access to the file only and check the file carefully. (See below\line \tab for a fuller explanation.) This facility can be used to attach\line \tab privileges to DCL command files, but can open security holes if\line \tab this is not done very carefully. Remember: if the file is opened,\line \tab the opening process' privileges are affected. When used to reduce\line \tab privileges, the facility provides a pro-active measure to inhibit\line \tab viruses and other covert code from running.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab Usage Note:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab Privilege, base priority, and identifier modification poses few\line \tab if any risks where these facilities are used to LOWER access\line \tab privileges. In this case, someone opening a file which has\line \tab these side effects only reduces his access. (This might even\line \tab be handy for privileged people wanting temporarily to assume a\line \tab nonprivileged identity without using another account.) However,\line \tab any RAISING of privileges or access rights should be done this\line \tab way only with great care. Anyone permitted to open a file marked\line \tab in this way can in principle gain these added privileges/rights.\line \tab In this case, other facilities of EACF should be used to prevent\line \tab access to the file in undesired ways. For instance, by allowing\line \tab E (execute) access but not read access, and enforcing this with\line \tab a max-privileges mask that prohibits it from being overridden,\line \tab and perhaps further limiting username and image allowed to do\line \tab the opens (prohibit *DCL*, for example). In this way security\line \tab needs can be served while privileges can be more completely\line \tab controlled than vanilla VMS allows.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx803f@ SAFETY013.AA  $[EVERHART.JTDEMO]EACF_USER_MAN.RTF;1>;8\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can attach identifiers to a file. These identifiers are granted on file op en, revoked on file close. This can be used for any convenient purpose, though again they tend to ma ke sense most for files which are executed. If used for data files, it is wise to use other EA CF facilities to nar row the exposure these have. If for example you have an identifier BUS_PLAN tha t grants ac cess to certain files, you can "attach" that identifier to an executable or scri pt and allow it to access them. (DEC has something similar, but it won't work on interpreted code s uch as DCL scripts or interpreted languages of any kind. With EACF, you can apply protectio ns regardless of language choice.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can set the base priority of a process so that when a file is open, the b ase priority is replaced by the one attached to the file. (The priority returns to its old state at close.) This can be used to ensure that known "CPU hog" programs run with lowered base priority e ven if run interactively, or that some programs run with higher priority where this is desi red. The first case is likely to be more useful. In some shops, elaborate systems to ensure that lon g compilations (e.g., large Ada programs) run in batch have been set up. This facility means th at the CPU in tensive programs do not gain extra priority from running interactively if they a re set up with a base priority lower than normal. Likewise, some editors or screen intensive appl ications may \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 benefit from higher priority, and will not cause problems so long as they don't go into a com pute loop.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab \tab \tab \tab NOTE\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab \tab The three above modifications are flagged with\line \tab \tab cryptographic authenticators so that the tags on\line \tab \tab the files cannot be altered or moved to other\line \tab \tab files. A key that is used on loading EACF for\line \tab \tab each disk is also used in the computation, so\line \tab \tab such keys cannot be entered successfully unless\line \tab \tab one also knows this value. It is essential to\line \tab \tab system security that these key values be kept\line \tab \tab secret, and is desirable that the tagging program\line \tab \tab be available only to systems personnel. These\line \tab \tab modifications do not require any user-mode code\line \tab \tab to run, so impose negligible overhead.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can set EACF to have a set of "exempt" images which are permitted full sys tem access. Access to these images can however be controlled by EACF. This permits EACF to a void caus ing problems for disk defragmenter programs and the like, which must have a glob al view of the disk, without imposing large user burdens. Because access to these exempt im ages is still controllable, they can be prevented from causing security holes.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 It is also possible, for example, to have a copy of BACKUP which is allowed to h ave global file access, BUT it can be specified that this BACKUP image can be accessed only by certain us ers, at certain terminals, at certain times, with certain privileges etc., and p erhaps accessed only with certain identifiers \tab which might be granted by attaching them to a backup script which grants the identifiers. The full panoply of EACF controls is available to screen who can use this copy of BACKUP. Meanwhile, another copy of BACKUP.EXE might be the one most user s can access. The specially privileged copy would typically be accessed using a d ifferent verb, and could be used for making system backups.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab \tab This facility is essential to permit programs like disk\line \tab defragmentgers to have global system access without interference or\line \tab to allow system wide applications like backup to be run without\line \tab interference when done by authorized people at appropriate places\line \tab or times. Up to 32 image pathnames can be exempted. \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab \tab In addition, an image is provided which can be used by a\line \tab process to exempt itself from EACF checking or reenable it. This\line \tab image must be treated with extreme care, but can be used for complex\line \tab jobs where system maintenance is needed. When it is used, it logs its use\line \tab so that such use can be audited.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * There is provision for a "privileged user" list (empty by default) which can b e used to give certain users broader file access, limited only by certain time codes and privil ege mask tests \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 (and DEC access controls), should such be desired. A supplied privileged utility can also be used to exempt a process from EACF controls where this is wanted for whatever re ason. This is referred to in the menus as the Backup Account. It can also be prevented from wr ite access to files while allowing read access.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can arrange for EACF to execute an arbitrary set of commands whenever acce ss to a file is denied. The username, PID, terminal, and file ID are available to the command s (plus what ever else you care to make available). This can be used for mail or pager notice to systems peo ple, for suspending the process, or for starting a keystroke monitor like SPY to record the proc ess' activities, or for ANY other desired purpose. This takes place BEFORE the f ile can be ac cessed. (There is an additional capability, controlled by the command line langu age as described in{\b0\i \f56\fs24 jtcommand.doc } which allows you to force execution of a site command script whenever an image tagged for this function is in use and opens a file. This is p rovided where it is needed to have additional controls over files which may be opened by a progra m whose secu rity properties may be especially untrustworthy. The script runs whenever the un trusted pro gram tries to open a file and it can veto the open. An application of this could be to alert a user of opens of files not in a permitted list. In this mode, or if in "check all ope ns" mode (see be low) EACF will check the file's parent directory permissions if the file has no EACF security record.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 DISCUSSION\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 EACF is useful in relatively friendly environments, where it allows the limits o f authority to be defined in the machine, so a privileged person who may be inclined to browse in public directo ries will be prevented from thoughtlessly printing private files with a message that he has ex ceeded his privileges, or in much more hostile ones where tampering or industria l espionage (which often uses the services of insiders who have been paid off to make (or ha ve been tricked into making) a quiet copy of the payroll, or business plan, files) might be a ri sk. In either case, it is rather easy to limit access to sensitive files (or to directory files hold ing sensitive files) to certain people, and to remove the opportunity, and temptation, to disclose other data from peo ple who might otherwise do so for whatever reasons. If, for example, your system manager should be curious about a file named "NEW_PRODUCT_PLANS.DOC" and tries to look a t it, isn't it better that he be unable to do so (even though he may have BYPASS privi lege) if com pany policy means he really shouldn't have access to it? Isn't HE safer with a s ystem that will just block access rather than an alternative system that can't block access, but will get him in trouble after he DOES access it? Conventional VMS lacks the ability to do a deta iled job of limiting access to such areas, so inadvertently this kind of thing happens a lot . With EACF in stalled, it is easy to have the machine understand, and enforce, the limitations of access com pany policy and safety demand. Thus, inadvertent as well as intentional access i s controlled, and data access can be managed properly for the first time.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab EACF protections are in addition to normal VMS ones, and a person\line \tab must be able to open a file to mark it for security. Henca all\line \tab normal VMS group access provisions can be used to control which\line \tab files a given group can mark.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 WHAT IS HAPPENING TO FILES MARKED\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 You mark files in EACF using a menu-oriented file marking script, though a comma nd line in terface exists if it essential to use one. This marking results in an applicatio n ACE (the file mark) being attached to the file and in the EACF database being updated to refle ct desired ac tions on the file. In addition, EACF startup can be set so that the server is pa ssed a list of file IDs which will be inspected. This list may contain any number of IDs per disk an d can be cre ated from simple\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 $ DIR /FILE_ID \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 commands. The list is a sequential file each line of which contains a file ID in the form (n,s,r) where n is file number, s is sequence number, and r is relative volume number. F or example the line\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 LOGIN.COM;85\tab (9493,12,0)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 will do fine.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 When a file is marked like this, one uses a /FILENUM:sequentialfilespec.typ swit ch to tell the server where the list of IDs is, and the server will then check extended access even if the file mark has been damaged or removed from the file. A file mark must have been creat ed in the first place, so that the EACF database will have been filled in, but if a mark h as been deleted, this will prevent such deletion from interfering with EACF checks.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 There is an option in the menu system which checks that all files in the EACF da tabase corre spond to files with correct file marks and will regenerate these marks if any ar e missing. It also warns the operator of any files whose marks have been deleted, since this may re present some one having attempted to get around the EACF system's protection. Any unexplained cases of marks disappearing should be investigated as security breaches. If this happens, also, it indi cates which files should be in the kernel-based lists, so that they will remain protected even if their marks are deleted entirely. There is no mechanism for removing files from the kernel based lists except a reboot and restart of EACF with a different, or no, /FILENU M switch on the command to start the server process.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The EACF setup script asks, for each disk selected, a security key (used as part of the authenti cation for all ACEs that change identifiers, base priority, or privileges) and a file containing these file IDs. Either, both, or neither may be selected. Note too that director ies are files too, and can be protected, with the usual caveats. However, if the file [000000]00000 0.dir is pro tected, EACF protection criteria can prevent a volume from being mounted. \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 HOW TO SET EACF UP\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dg@ SAFETY013.AA  $[EVERHART.JTDEMO]EACF_USER_MAN.RTF;1>>Zn0\strike0 \b0\i0\f56\fs24 Pre-Installation:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Before installing EACF, you should prepare for the installation by making sure t hat there is enough nonpaged pool available for the dynamic needs of the system. These vary s omewhat but \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 can be adequately approximated by increasing the SYSGEN parameter NPAGEDYN by th e quantity (10000 * (number of EACF daemons you will set up + 1)). Insert a line something like the following\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 ADD_NPAGEDYN=30000\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 in your MODPARAMS.DAT and run AUTOGEN. You may of course have adequate nonpaged pool already (many systems will) in which case no modifications are needed. SHOW MEM/POOL will show this.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Your system disk must have about 5000 blocks free to install EACF, though if the EACF com ponents are placed on a separate disk, system disk space required for the final resident compo nents is under 500 blocks.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Installation:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 EACF is installed by VMSINSTAL. From the system account, use a command\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b0\i0\f2\fs24 $ @SYS$UPDATE:VMSINSTAL EACF010 } distribution_medium:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 to do the installation. The script will ask where EACF programs and scripts shou ld be stored, and most EACF components will be placed there. This can be anywhere on the syste m, pro vided that the disk is mounted in your startup script before EACF is started. Th ese components will occupy around 2000 blocks on a VAX, double that on an AXP, so ensure the di sk chosen has room enough. When running the setup script after installation, the area chos en for the EACF components should be specified as the area for EACF executable images.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Post Installation:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 EACF comes with a setup script which is to be run after the VMSINSTAL script has installed the package. This script ({\b0\i0\f2\fs24 JT_SETUP.COM } ) generates a startup script which should be run from {\b0\i0\f2\fs24 SYSTARTUP_VMS.COM } or {\b0\i0\f2\fs24 SYSTARTUP_V5.COM } at boot time. The script generated will start one access server which will be attached to all disks in the system, and e nough intercept driver units to control all disks selected. It is perfectly legal and permissibl e to have many EACF servers, each handling one or more disks, however. This allows faster proce ssing of se curity markings in some cases. The script offers an option to select the startin g intercept driver unit number, so that it can be run more than once, and will arrange to load a se rver for all disks in each run. Normally it starts with intercept unit 0, but if you connect three disks, you can run the setup script again and start at intercept unit 3 (since the prior run will h ave used 0, 1, and 2). Then with this run, another server will be started. It is up to you to ensure th at disks allocated don't overlap.\par\page \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 JT_SETUP is fairly easy to understand. Its initial menu looks like this:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 EACF SETUP 18:11:55\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 --> *Set area to hold EACF database files\line \tab Set start intercept driver unit number (now 0)\line *Set area for EACF executable images \line \tab Done this menu, process disk selection\line \tab Remove a disk from an existing EACF configuration\line \tab Set images which are exempt from EACF (e.g. defraggers)\line \tab Quit, do nothing\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 ( Asterisk means that a value already exists for the item.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 It allows you to specify where EACF database files are kept (for the series of E ACF intercept driver units you configure). Each run of JT_SETUP will let you configure one or more disk units, each of which uses a JT intercept driver, with its necessary data areas. Normally this starts with JTA0: and goes up in units, but if you want multiple servers you can run JT_SETUP once for each server and set the "start intercept driver unit number" item to th e start unit num ber, which should be one higher than the maximum number of disk units configured so far. One JT unit can control only one disk unit. Asterisk implies that values already exi st (perhaps from kitinstal) for these selections.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The "Set images which are exempt from EACF (e.g. defraggers)" item allows image de vice:[directory]filename.type;version strings to be specified for images which a re exempt from EACF controls. Note that any such images can bypass all EACF actions, BUT you ca n and should use EACF to control access to these images.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 When you select the "Done..." item, you enter a menu to select disk units to con figure for this EACF server. It looks like this:\par\page \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 EACF Configuration \tab Disk Selection\line Use arrows to move to selection. Use RETURN to select.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 End disk selection \line _ARISIA$DKA700: VMSSYS\line _ARISIA$DKB0: USRBAK\line _ARISIA$DKB400: DWU\line _ARISIA$DCA0: XRP07\line _ARISIA$DCA2: XRP06\line _ARISIA$DCA3: CDI\line _ARISIA$DCA4: XTRA\line _ARISIA$DCA5: CDTPL\line _ARISIA$VDB0: TEST1\line _ARISIA$VDB1: TEST2\line _ARISIA$DKB200: \line _ARISIA$DKB300: \line _ARISIA$DCA1: \line _ARISIA$DCA6: \line _ARISIA$DCA7: \line _ARISIA$FQA0: \line _ARISIA$FQA1: \line _ARISIA$FQA2: \line Type H for help.\tab Currently on item 1 of 151\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 where mounted disks appear first on the list, followed by all other disk-class d evices on the sys tem. The display will scroll if more disks are there than will fit on a terminal .\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Once you select a disk, you must enter a number of parameters for that disk. Thi s is done in another sub-menu which looks like this:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 EACF DISK SETUP 18:19:45\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 --> Enter security key for disk\line \tab Enter file of file IDs to load for kernel marking\line \tab Examine only kernel-marked files for access tests\line \tab Set to automatically kernel-mark all files on load\line \tab (This requires generating the file list at boot)\line \tab Generate filelist database and set to use it\line \tab Act as if ALL files were kernel-marked (use if most are)\line \tab Quit, do nothing.\line \tab Done this menu\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The security key for the disk is the secret string (of any reasonable length) wh ich is used to vali date EACF actions that alter privilege, identifiers, or base priority. It must m atch the marking on a file or these will not be altered (which prevents random people from creati ng such mark\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 ings). Therefore this key should be well chosen and the EACF startup file carefu lly protected from browsers. Note that when a marking on a file is created which resets privil ege, grants an identifier, or resets base priority while that file is open, a file security key is asked for. That key must match the volume key entered here or the changes to process priority, ident ifiers, or privi lege are not made. This prevents unauthorized people from gaining privilege even if they are permitted to mark their own files with EACF.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The other options are pretty self-explanatory. If you can afford the time to cre ate a file of IDs to load at EACF start, it makes the system MUCH harder to avoid and allows the opti on of only examining marked files, which reduces overhead on nonmarked files and is therefo re a good idea too. Whether to use item 4 or item 5 depends on how often your files that n eed to be exam ined change. Item 4 (automatically kernel mark all files on load) generates a co mplete list of all files that are marked at every boot. Item 5 generates a list when you select it and uses that, rather than generating the list at every boot. This can suffice for fairly stati c lists of files to mark.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Once you finish with the menu, it will create EACF_STARTUP.COM and EACF_LOGIN.COM which are used to start EACF and to define some symbols needed fo r convenient use. EACF_STARTUP.COM should be run from systartup_v5.com or systartup_vms.com (depending on version of VMS) at boot time.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 WHAT TO MARK\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 You will want to mark files (and perhaps directories, though remember that files can be opened by file ID without going through directories) which are important to your busine ss with EACF. Transient files should ordinarily not be marked. \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Critical system files should be marked. These include SYSUAF.DAT, SYS$SYSTEM:NET*.DAT, and the startup scripts (so people can't easily find out wh at non standard things you're running), as well as any other .COM files usually run by SYSTEM. Be sure, however, to allow access BY the SYSTEM account to these.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 You should also use EACF to regulate the access to the files in the area you cho ose for your EACF data files. The files in JTD$DB and GCY$CM areas hold your security databas e and must be protected against access by unauthorized people. It is also often a good idea to access protect the file marking utility also (filename JTAUTHMAINT.EXE) so that only au thorized people may mark files. Limiting access to the *.GDB files to the image JTAUTHMAI NT.EXE (and including the whole path) is a good idea. Also, the scripts used to start E ACF up, which will contain the volume ah@ SAFETY013.AA  $[EVERHART.JTDEMO]EACF_USER_MAN.RTF;1'>yccess keys, should be protected against access too, so that users can not enter file markings that alter identifiers, etc. If you use the SETUP script , the file to protect is\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 SYS$MANAGER:EACF_STARTUP.COM\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 and it should be treated and protected at least as well as SYSUAF.DAT. Note that the EACF setup script will, by default, protect the EACF databases against access from im ages other than EACF's images and BACKUP. It is recommended additional tailoring be done however .\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 HOW TO MARK FILES\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 You mark files in EACF by using the mark_files script JTMARK_FILES.COM. The MARK FILE command does this. (This presumes EACF has been installed and generally pre sumes a privileged account to assure the ability to tag files appropriately.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 A brief note first: permitted and prohibited usernames, imagenames, and terminal names are matched with string matching, so that to allow access by BACKUP.EXE, for example , you would use a string like *]BACKUP.EXE;*, since otherwise it won't match the full path name which is available for matching. Therefore most of the time your selection strin gs will contain the * character, and the file marking script will issue a warning message if thi s is not present. If your selection, for example, IS the complete pathname for an image, or the compl ete terminal name (or access port name) for an image or terminal respectively this is not a p roblem. In any case, your selection is used. If however you want to (dis)allow access by, say, COPY, you can do so by excluding *COPY* more compactly. There is a limit in total size availab le for this in formation, so conserving space is often a good idea.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Now to actual use of the script. In fact there are two scripts. One is named JT_SEL_MARK.COM and uses a fullscreen frontend as a selection front end. With th is script, you set your default directory to the tree where you want to select files and ru n the script, using the arrow keys and spacebar to select/deselect files. When you are satisfied wit h the selections, type G to mark the selected set of files. The selection menu is the same for bot h scripts. The MARKEACF command runs the fullscreen - selection markup script.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The other script (jtmark_files.com) asks for a file specification explicitly, wh ich may contain wildcards.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The start of that script looks like this:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b0\i0\f2\fs24 $ MARKFILE } File(s) to mark (? for dir):\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 At this point you select a file (or a wildcard file specification, in which case you will be mark ing each in succession). The selection could for example be:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 $ MARKFILE\line File(s) to mark (? for dir): VDB0:[EVERHART]ND.TXT\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 [Alternatively one can just use a command like\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 $ Markfile vdb0:[everhart]nd.txt\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 to accomplish exactly the same thing.]\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 At this point, if the file exists, you are presented with a menu which looks lik e this:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 Extended Access Control Facility - File Marking\line \tab File VDB0:[EVERHART]ND.TXT;7\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 --> Edit max-privs-to-open mask (current: DFFFFFFFFFFFFFFF) \tab Set base priority override (current: None)\line \tab Edit permitted user list (*)\line \tab Edit forbidden user list (None)\line \tab Edit permitted term. list (*)\line \tab Edit forbidden term. list (None)\line \tab Edit permitted image list (*)\line \tab Edit forbidden image list (None)\line \tab Edit backup account list (None)\line \tab Edit time-use profile (YYYYYYYYYYYYYYYYYYYYYYYY)\line \tab Edit replacement priv mask (when file open) None\line \tab Set backup user access [Readonly/Read-Write] R/W\line \tab Set file tamper check\line \tab Set file password Set AccFail-action cmd @GCY$CM:JTACTN\line \tab Enter security key\line \tab Set conditional softlink (None)\line \tab Grant identifier on open/revoke on close ( )\line \tab Quit, make no changes\line \tab Done, update file controls now\line \tab Perform database maintenance commands\line \tab Apply selected mods to all wild files\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 In the above case, the settings are the defaults. The max-privs-to-open mask exc ludes access with BYPASS privilege but allows all others.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 If we select the first item (by pressing (the RETURN key)) the system shows another menu which looks like this (showing all but the BYPASS privilege selected:\par \page \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 Privileges Permitted For Opening File Privilege Set Up\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 --> Done setup * MOUNT * U05\tab * U25\line Set all priv * OPER * SECURITY * U26\line Clr all priv * EXQUOTA * U07\tab * U27\line * CMKRNL\tab * NETMBX * U08\tab * U28\line * CMEXEC \tab * VOLPRO * ACNT * U29\line * SYSNAM\tab * PHY_IO * U10\tab * U30\line * GRPNAM\tab * BUGCHK * U11\tab * U31\line * ALLSPOOL * PRMGBL * U12\tab Set NO mask\line * DETACH\tab * SYSGBL * ALTPRI Make no changes\line * DIAGNOSE * PFNMAP * U14 \line * LOG_IO\tab * SHMEM * U15\line * GROUP\tab * SYSPRV * U16\line * NOACNT\tab BYPASS * U17\line * PRMCEB\tab * SYSLCK * U18\line * PRMMBX\tab * SHARE * U19\line * PSWAPM\tab * UPGRADE * U20\line * SETPRI\tab * DOWNGRADE * U21\line * SETPRV\tab * GRPPRV * U22\line * TMPMBX\tab * READALL * U23\line * WORLD\tab * U04\tab * U24\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 At this point we can toggle any privilege setting by selecting it and when done select the "Done setup" item.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The "Set base priority override" item, when selected asks the question:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Enter base priority for process with this file open:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 which can be answered by a priority between 0 and 31. If outside this range, or if nothing is entered, the priority setting is left unset, which means that EACF does not alte r it.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The next 7 items:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 \tab Edit permitted user list (*)\line \tab Edit forbidden user list (None)\line \tab Edit permitted term. list (*)\line \tab Edit forbidden term. list (None)\line \tab Edit permitted image list (*)\line \tab Edit forbidden image list (None)\line \tab Edit backup account list (None)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 all lead to similar menus. If we select the "Edit forbidden user list" item, for example, we get the following:\par\page \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 \tab Edit Forbidden User List\line \tab Current user list: None\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 \tab * is wild card, & means omit this test\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 --> Add users to list\line \tab Remove users from list\line \tab Replace list\line \tab Quit, leave user list alone\line \tab Done with this menu\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 If the string when you are done contains a '&' character, the test corresponding to that menu is skipped. * on the other hand is a wildcard character. In several lists, a messag e is issued if no * is seen, since image paths or terminal lists will often contain them if they are to perform as ex pected.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 NOTE:{\b\i \f56\fs24 The permitted lists have priority. } Thus if the permitted user list is *, everyone is per mitted access to the file regardless of the forbidden list. If the permitted use r list is & (or just something you won't get like "=") the forbidden user list controls who is denied access. If a few names are on the permitted list and the forbidden list contains *, then only the few named on the permitted list can access the file. Similar rules hold for image names and t erminal (or acc port) names.\line \line Now if I select "Replace list" and add the value GUEST, the question and respons e look like:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Enter user list: GUEST\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 When we select the "Done..." item, we return to the top level which now looks li ke this:\par\page \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 Extended Access Control Facility - File Marking\line \tab File VDB0:[EVERHART]ND.TXT;7\line \tab Edit max-privs-to-open mask (current: DFFFFFFFFFFFFFFF)\line \tab Set base priority override (current: None)\line \tab Edit permitted user list (*)\line --> Edit forbidden user list (GUEST)\line \tab Edit permitted term. list (*)\line \tab Edit forbidden term. list (None)\line \tab Edit permitted image list (*)\line \tab Edit forbidden image list (None)\line \tab Edit backup account list (None)\line \tab Edit time-use profile (YYYYYYYYYYYYYYYYYYYYYYYY)\line \tab Edit replacement priv mask (when file open) None\line \tab Set backup user access [Readonly/Read-Write] R/W\line \tab Set file tamper check\line \tab Set file password Set AccFail-action cmd @GCY$CM:JTACTN\i@ SAFETY013.AA  $[EVERHART.JTDEMO]EACF_USER_MAN.RTF;1'>line \tab Enter security key\line \tab Set conditional softlink (None)\line \tab Grant identifier on open/revoke on close ( )\line \tab Quit, make no changes\line \tab Done, update file controls now\line \tab Perform database maintenance commands\line \tab Apply selected mods to all wild files\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 If we now want to control when this file may be accessed, we select the "Edit ti me-use profile" item and get the screen following:\par\page \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 Time Usage Permission Editing (by hour)\line . Current Profile YYYYYYYYYYYYYYYYYYYYYYYY\tab \tab 11111111112222\line 012345678901234567890123\line Key: \line Y - checked acc. N - No access except bkp D - no access at all \tab U - Unchecked acc P - Priv checks onlt R - Readonly access only\line \tab X - R/W chks only\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 --> 0-1AM\tab 12N-1PM Quit this menu, no changes\line \tab 1-2AM\tab 1-2PM Exit, apply changes\line \tab 2-3AM\tab 2-3PM\line \tab 3-4AM\tab 3-4PM\line \tab 4-5AM\tab 4-5PM\line \tab 5-6AM\tab 5-6PM\line \tab 6-7AM\tab 6-7PM\line \tab 7-8AM\tab 7-8PM\line \tab 8-9AM\tab 8-9PM\line \tab 9-10AM\tab 9-10PM\line \tab 10-11AM 10-11PM\line \tab 11-12AM 11-12M\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 To explain the key: Y means normal checked access, checking all security criter ia. N means No access, except that the "backup" account may access the file. D means no acce ss at all, to anyone. U means Unchecked access. The extra EACF tests are skipped. P means on ly the test that allows open if the process has only privileges also in the "Max-privs-to-op en" list. R means Read-only access. Opens for r/w access are denied. X means no tests for readonl y opens, extra EACF checks only for \tab R/W opens to a file.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Each letter selects an access code for one hour of every day.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 If I want to disallow use (except backup account use) of the file from 2-3AM, I select that hour and enter N. The selection question is as follows:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Give code for this hour access:: N\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 If I know that between 9AM and 3PM the file should be open to all there with no added checks for reading, but I want to prevent writing except for users allowed by the rest of EACF, I can use the X code for those hours. When I have done so the screen looks like:\par \page \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 Time Usage Permission Editing (by hour).\line Current Profile YYNYYYYYYXXXXXXYYYYYYYYY\line 11111111112222\line 012345678901234567890123\line Key:\line Y - checked acc. N - No access except bkp D - no access at all \tab U - Unchecked acc P - Priv checks onlt R - Readonly access only\line \tab X - R/W chks only\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 \tab 0-1AM\tab 12N-1PM Quit this menu, no changes\line \tab 1-2AM\tab 1-2PM --> Exit, apply changes\line \tab 2-3AM\tab 2-3PM\line \tab 3-4AM\tab 3-4PM\line \tab 4-5AM\tab 4-5PM\line \tab 5-6AM\tab 5-6PM\line \tab 6-7AM\tab 6-7PM\line \tab 7-8AM\tab 7-8PM\line \tab 8-9AM\tab 8-9PM\line \tab 9-10AM\tab 9-10PM\line \tab 10-11AM 10-11PM\line \tab 11-12AM 11-12M\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Notice the Current Profile now shows X access codes between 9AM and 3PM (and the cursor has been moved by hand to the exit item.) Now we can exit this menu and see that the time access profile is set.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Where the file is not executable, a replacement privilege mask makes no sense fo r it, but if we wanted to set one the screen would look like this:\par\page \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 Privilege Mask to Replace all priv masks\line Privilege Set Up\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 --> Done setup MOUNT\tab U05\tab U25\line \tab Set all priv OPER\tab SECURITY U26\line \tab Clr all priv EXQUOTA U07\tab U27\line \tab CMKRNL\tab NETMBX\tab U08\tab U28\line \tab CMEXEC\tab VOLPRO\tab ACNT\tab U29\line \tab SYSNAM\tab PHY_IO\tab U10\tab U30\line \tab GRPNAM\tab BUGCHK\tab U11\tab U31\line \tab ALLSPOOL PRMGBL\tab U12\tab Set NO mask\line \tab DETACH\tab SYSGBL\tab ALTPRI Make no changes\line \tab DIAGNOSE PFNMAP\tab U14\line \tab LOG_IO\tab SHMEM\tab U15\line \tab GROUP\tab SYSPRV\tab U16\line \tab NOACNT\tab BYPASS\tab U17\line \tab PRMCEB\tab SYSLCK\tab U18\line \tab PRMMBX\tab SHARE\tab U19\line \tab PSWAPM\tab UPGRADE U20\line \tab SETPRI\tab DOWNGRADE U21\line \tab SETPRV\tab GRPPRV\tab U22\line \tab TMPMBX\tab READALL U23\line \tab WORLD\tab U04\tab U24\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The privileges selected will replace all a process' privileges which has the fil e open, until the file closes. Note the "Set NO mask" item means that you don't want privileges to be modified when the file is open. . Note that both current and authorized privilege masks a re replaced. This prevents anything from setting privs with the $setprv service, since the authori zed privilege mask is replaced also.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 If we want to set a file password, we select the menu item and get a prompt thus :\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 Enter file password: Thisisaprettylongpassword\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The password will not echo, and you are asked for it twice to ensure you had no typing mis takes.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 We can enter a security key; this will allow privilege, identifier, or base prio rity changes to work if it matches the one used for the disk in the setup script. This prevents random people from marking their files and altering privileges. The question asked looks like this:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 Enter security key:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Again, the security key does not echo and is asked for twice to ensure it is rea d properly.\par\page \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab Hiding Files\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Also we can arrange that another file be opened if the access is refused. suppos e we want EACF to force an open of VDB2:[EVERHART]LOGIN.COM in the case access is denied. We se lect the "{\b0\i0\f2\fs24 Set conditional softlink } " item and get a prompt. With our reply it looks like this:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-240 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs20 Enter device:file to open if access denied: VDB2:[EVERHART]LOGIN.COM\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab Action Commands\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 You will notice the menu item "Set AccFail-action cmd" here. This is a command w hich can be executed whenever someone tries to open the file and is rejected. This command r uns in a spawned procedure and can be any command at all. If the command is terminated wi th a "\'5c" character, it is executed with no arguments. Otherwise it is passed 5 arguments, namely the us ername of the rejected accessor, the terminal name, the file ID (as two hexadeci mal longwords), and the PID (Process ID) of the process whose access was rejected. An example ro utine named JTACTION.COM is furnished which just sends email to SYSTEM when such an access i s at tempted. Any desired commands are permitted, though you should be aware that acc ess is de layed till the command finishes. Hence any long actions may be best placed into SUBMIT com mands. This mechanism can be used to provide for prompt notice of attempted file access by whatever means are convenient, to suspend offending processes, or whatever else is desired. Note that the commands can be different for each file, permitting tailored respo nses. The de fault is no such commands are executed unless you enter one. The current selecti on, if any, is displayed on the menu. It is suggested that options such as turning on session r ecording via a SPY type program could be one useful action to enter here.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab Automatic Identifiers\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 If we want an identifier on the file while it is open we can grant one with the menu item. Sup pose we enter the identifier FIELD. The prompt and response look like:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 Enter identifier to associate with file: FIELD\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 When done with all changes so far (including setting a priv mask on open that ha s TMPMBX and NETMBX in it and nothing else) the menu looks like:\par\page \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-240 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs20 Extended Access Control Facility - File Marking\line \tab File VDB0:[EVERHART]ND.TXT;7\line \tab Edit max-privs-to-open mask (current: DFFFFFFFFFFFFFFF)\line \tab Set base priority override (current: None)\line \tab Edit permitted user list (*)\line \tab Edit forbidden user list (GUEST)\line \tab Edit permitted term. list (*)\line \tab Edit forbidden term. list (None)\line \tab Edit permitted image list (*)\line \tab Edit forbidden image list (None)\line \tab Edit backup account list (None)\line \tab Edit time-use profile (YYNYYYYYYXXXXXXYYYYYYYYY)\line \tab Edit replacement priv mask (when file open) 0010800000000000\line \tab Set backup user access [Readonly/Read-Write] R/W\line \tab *Set file tamper check\line \tab Set file password Set AccFail-action cmd @GCY$CM:JTACTN\line \tab *Enter security key\line \tab Set conditional softlink (VDB2:[EVERHART]LOGIN.COM)\line --> Grant identifier on open/revoke on close (FIELD)\line \tab Quit, make no changes\line \tab Done, update file controls now\line \tab Perform database maintenance commands\line \tab Apply selected mods to all wild files\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 If we select Quit (to abandon the marking) or Done (to perform it) we eventually get another prompt:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \j@ SAFETY013.AA  $[EVERHART.JTDEMO]EACF_USER_MAN.RTF;1>b0\i0\f2\fs24 File(s) to mark (? for dir):\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 and can either enter a filename or a return to exit the script.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Note that if you have not entered a security key, the selection of base priority , replacement priv mask, or identifier will not be effective. The security key must be entered, and must match that entered for the volume at EACF startup to be effective. This protects against un autorized file markings causing security problems. If any of these are entered and no security key is entered, you will be warned and given the chance to go back.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The "Apply selected mods to all wild files" is used only where the file specific ation given is a wildcard one, and means that the markings just set up for the first file will be applied to all files in the wildcard specification. If this is a huge number of files it may take som e time. If you have marked files in the fullscreen front end, this option will apply the select ed controls to all files you selected. Thus you select files, then set up access controls, and then apply the access controls to the whole list for simplest use.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The "Perform database maintenance commands" option selects various EACF maintena nce op erations. The menu it brings up is the following:\par\page \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 \tab Extended Access Control Facility\line \tab MAINTENANCE COMMANDS\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 \tab Delete this entry\line \tab Remove all database entries for now-deleted files\line \tab Create listing of all files marked\line \tab Repair deleted ACEs (ANY such are a security issue!)\line \tab Change or delete a string in all lists\line \tab Done with this menu\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 "Delete this entry" means delete the currently selected file's ACE and database entry, removing it from EACF protection.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 "Remove all database entries for now-deleted files" means to go over the whole d atabase and delete any entries referring to files which have been deleted. This should be do ne periodically to ensure that the database file is not cluttered with old information. It is handl ed in this way so it will work even if files are deleted with EACF disabled. (If the system logical G CY$DELMNT is defined to be "OK", then EACF will delete database entries when files are del eted to reduce the need for this maintenance.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 "Create listing of all files marked" will create a sequential list file of all m arked files in the da tabase in the format\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Filename (fileid)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 suitable for the /FILENUM command's input. This can be used for any desired purp ose and is created as JTD$CM:OP.GDB_LIST. The DCL symbol JTA_LISTFILE also is set t o the filename value. The intent is that this file is used to set up the map of al l marked files used in the /FILENUM switch (see above).\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 "Repair deleted ACEs" goes over the database and checks that the correct EACF AC E (file mark) is in place on each file. Any files whose ACEs have been deleted are possi ble evidence someone was trying to access a file EACF denied access to. Since the ACEs are ma rked hidden and privileged, this generally means a privileged user. Warnings are output to t he OPCOM log and the user terminal if this is seen. The ACEs are then reconstituted. Running this item is a good idea also; it should be done periodically to ensure that protected files ST AY protected. Files attacked in this way are protected anyway if they are in the list supplied to the /FILE NUM:file-list-name.typ command. If they were not, they may have been compromised and should be checked carefully. If they were, EACF protection was not lost, but it is likely some one tried to break the EACF protection.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 ************************************************************ \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 These kinds of events represent security related attacks by privileged users. Th ey must be taken VERY seriously. EACF output to the operator log will give more information about any denied accesses if the /FILENUM feature was used so that prot, ection was not actually lost. Also this will show potential earlier attempts to access the file from before the ACE was deleted.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 "Change or delete a string in all lists" is used, for example, to remove a usern ame from all lists in the system requiring only one command per disk. It globally replaces one stri ng in the lists with another. It should be recalled that since this is literal, if you are, for example, renaming a terminal server, you must replace the selection strings actually in the database , which are likely to be of form ",*name*" rather than plain strings. The menu front end is such th at the "`" char acter (accent grave) cannot appear in either string. The underlying utility can use any delimiter. However, this character is illegal in all the selections likely to be there. The string changed can not be null. However, it is possible to add a user to a group by replacing, for example "USER1" by "USER1,USER2". This can be useful.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab COMMAND - LINE USAGE\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 EACF defines several commands discussed more fully in the file JTCOMMAND.DOC, wh ich permit use of and control of EACF from DCL command lines. Among them are the fol lowing commands, mentioned briefly here.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * MARKFILE - Set EACF security markings on files as discussed above. This uses t he com mand file JTMARK_FILES.COM and allows marking one or a collection of files, or e diting their security profiles.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * MARKSDH - Enter or edit security markings on files. This differs from MARKFILE in that a fullscreen file display is presented first to allow easy graphical selection of files to operate on, with the assumption that the files are in the current default directory tree. \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 *FILEPASSWORD - This allows one to enter passwords for files protected by passwo rd con trols. It should be used by a process before attempting to open such files. If t he password en tered for a file is correct, this will permit access to the file.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * JTEXEMPT - This command has two forms:\line JTEXEMPT JTAn: and\line JTEXEMPT/DEAS JTAn:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 and serves to exempt the current process from filtering by EACF, DPS, and HSM in the first form, or to re-enable such filtering by the second form of the command. The disk associated with the intercept driver JTAn: is the one to which access is affected. Whenever this command is used (and it should be used very sparingly, and protected against unauthorize d use) it will log the fact of its use and who used it so that it cannot be readily used silently. Note that if the JTEXEMPT image is access controlled by EACF, additional controls on its use can be en forced.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The system also defines the verb JXSET which can exempt a process from controls. It should be made available only to trusted individuals, however. Its use is logged.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab PERFORMANCE ISSUES\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Highest performance at runtime is obtained by using the maintenance commands to create a list of all files in the database and loading this into the EACF database in kernel m ode, selecting the \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 option that tells EACF only to inspect files marked in kernel. In this mode, ess entially the only files which incur more than a few extra instructions overhead at runtime are tho se known to have markings on them; the rest are quickly passed over. If however the number o f files so marked exceeds around 10,000, it is probably best just to let EACF inspect all f iles for mark ings. As long as there is any header cache at all in the system in that case, th e extra header ac cess done to read the ACL will only use the cache, and not cause another disk ac cess. Also, the disk containing the EACF databases should ideally be as fast as practicable (and remember: EACF should also be used to protect those database files from tampering). Finall y, the EACF servers can profitably be given higher than normal priority, and should be. They are I/O inten sive when used, and system responsiveness will be improved if the EACF servers a re run at software priority greater than the normal 4.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Even if EACF is checking all files, system access time will not be noticeably af fected save for those files which have extended checks, and in those cases the checking may add time. The longest operation is the file integrity check. This check requires, if the file length has not changed, that the file be read completely before opening by the user, to ensure that it has not been tampered with. This is reasonable for short scripts and the like. It should be done with cau tion for 30000 block images. (If file length changed, this is noticed at once.) \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Other operations take negligible time.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 EACF can be set up with as many servers as desired, from one for all disks in th e system to one per disk. Basically, the more servers there are, the more opens with EACF checks can run in parallel. The servers are however activated only where it is known there is a fi le marked which needs server access. ACEs are read from a kernel thread, of which there can be m any active at a time. Accordingly one EACF server is likely to suffice for most systems.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab USAGE NOTES\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 To show some of the uses of these capabilities, let's take an example situation. \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Let's say we have several files whose contents are confidential (say, a business ' general ledk@ SAFETY013.AA  $[EVERHART.JTDEMO]EACF_USER_MAN.RTF;1T2ger) which need to be manipulated by a few programs which we'll call GL, AP, AR, IN, and PR for short. What we want to avoid is that anyone browse these files.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 One way to do this is to create an identifier (call it GLG) and set up ACLs on a ll the files which grant access to the files to holders of identifier GLG, but deny access to all o thers. Then we arrange that each of the 5 images has the GLG identifier granted when it is run (the programs are set for E (execute) access only) and now the programs in question can get to the files.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 IF nothing else in the system ever gets the identifier GLG, and IF nobody uses p rivilege, we're done.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Note however that there are two disadvantages:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 1. The control is scattered around, so you need to do considerable poking to fin d that nobody else might have the GLG identifier normally, and you must set the ACLs on all fi les that the \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 GL, AP, AR, IN, and PR access.\line 2. Anyone with privileges can override the controls.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Note that you can fix objection #2 by prohibiting access to any process holding READALL or BYPASS privileges. Ensuring that nobody has the GLG identifier requires separate examina tion, however.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 If it is now decided that access at night to these records should be prohibited, EACF can simply be set to disallow access during those hours to the files, or possibly to the GL , AP, etc. pro grams that access them. Notice that with pure ACLs this is quite awkward, and bl ocking privi leges is impossible. With EACF, it's easy.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 However, there is a neater way to accomplish this.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 On each file to be accessed by the GL, AP, AR, IN, or PR programs, have a permit ted image list containing these image names, and a forbidden image list of * (everything) so that only those images can access the files in question, regardless of privilege.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Note that now no identifier needs to be created, and the files used by the progr ams are clearly marked so that it is obvious by looking at them using the marking script that on ly the selected images have access. Moreover, this cannot be overridden with privileges.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Notice too that preventing access at night to this data is done in the same reco rds, and in these cases, you protect the confidential data, not necessarily the programs (which mi ght be run at night on test data). All the security relevant controls are visible in the file marking display.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 It may occur to some to ask how the data gets backed up now. One can of course set certain times of day for uncontrolled access to the files in question. A simpler way is to have a special copy of BACKUP that is permitted unlimited system access.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The CLD for such a copy, assuming it is called "SYSBACKUP" would be as follows ( using the VERB utility to extract the original BACKUP command language definitions):\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-200 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs16 define type ENCRYP_VAL\line keyword NAME value (type=$outlog)\line keyword ALGORITHM value (default="DESCBC",type=$outlog)\line keyword VALUE value (list)\line define syntax BACKUP_LIST\line parameter P1 , label=INPUTS , prompt="From" value (list,type=$infile)\line parameter P2 , label=OUTPUTS , prompt="To" value (list,type=$outfile)\line define type MEDIA_FORMAT_TYPE keyword COMPACTION negatable\line define verb SYSBACKUP image SYSBACKUP parameter P1 , label=INPUTS , prompt="F rom" value (required,list,type=$infile)\line parameter P2 , label=OUTPUTS , prompt="To" value (required,list,type=$outfile )\line qualifier ANALYZE nonnegatable\line qualifier ASSIST default\line qualifier BACKUP\line qualifier BEFORE value (required)\line qualifier BLOCK_SIZE value (required)\line qualifier BRIEF nonnegatable\line qualifier BUFFER_COUNT value (required)\line qualifier BY_OWNER value (type=$uic) placement=local\line qualifier COMMENT value (required)\line qualifier COMPARE\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-200 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs16 qualifier CONFIRM\line qualifier CRC default\line qualifier CREATED\line qualifier DELETE\line qualifier DENSITY value (required)\line qualifier ENCRYPT value (list,type=ENCRYP_VAL)\line qualifier EXCLUDE value (required,list,type=$infile)\line qualifier EXPIRED\line qualifier FAST\line qualifier FILEMERGE nonnegatable\line qualifier FULL\line qualifier GROUP_SIZE value (required)\line qualifier IGNORE value (required,list,type=$infile)\line qualifier IMAGE qualifier INCREMENTAL\line qualifier INITIALIZE\line qualifier INTERCHANGE\line qualifier JOURNAL value (type=$outfile)\line qualifier LABEL value (required,list)\line qualifier LIST , syntax=BACKUP_LIST nonnegatable value\line qualifier LOG\line qualifier MEDIA_FORMAT value (required,type=MEDIA_FORMAT_TYPE)\line qualifier MODIFIED\line qualifier NEW_VERSION\line qualifier OVERLAY\line qualifier OWNER_UIC value (type=$uic) placement=local\line qualifier PHYSICAL\line qualifier PROTECTION value (list) placement=positional\line qualifier RECORD\line qualifier RELEASE_TAPE nonnegatable\line qualifier REPLACE qualifier REWIND\line qualifier SAVE_SET placement=local\line qualifier SELECT value (required,list,type=$infile)\line qualifier SINCE value (default="TODAY")\line qualifier TAPE_EXPIRATION value (required,type=$datetime) placement=local \line qualifier TRUNCATE\line qualifier VERIFY\line qualifier VOLUME value (required)\line disallow (ENCRYPT.NAME and ENCRYPT.VALUE)\line disallow (DELETE and RECORD)\line disallow (DENSITY and MEDIA_FORMAT)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Now one adds the path to this copy of SYSBACKUP.EXE (a copy of BACKUP.EXE) to th e list of exempt images in EACF. (The correct full path is shown in SHOW PROC ESS/CONTINUOUS when the image is active for the process being shown.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 In so doing, now, the SYSBACKUP verb can be added to DCLTABLES and used for maki ng system wide backups. Note too that EACF can be used to control access to the SYS BACKUP.EXE image, permitting access to known people at known places and times. I t is pos sible, too, to deny access to anyone with privileges to the SYSBACKUP.EXE image and have EACF grant the privileges itself (so that the "maximum privileges to open" mask would have only a few privileges, and the "replacement privilege" mask might have all privi leges set). [One can also just use a VMS INSTALL to install the image with privileges.] In this w ay it can be made exceedingly difficult for anyone to use this system backup utility for unau thorized access. It also makes it fairly simple to allow an otherwise unprivileged operator accou nt to perform these backup duties without granting the account privilege. By limiting the abil ity to use the program to a NONprivileged user, you make it much harder for anyone to gain "spo ofed" ac cess.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The security model supported here is much richer than the default VMS model, and while it can be enhanced, it covers a great deal of ground in controlling who has access to w hat files.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Hopefully the above discussion is helpful in describing some of the ways in whic h EACF facili ties can be used.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Appendix - Extra Odds and Ends\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 (The intercept driver is also able to be set to prevent file opens where a volum e is allocated or mounted privately. Normally such volumes' files are private but the privacy can be overridden in normal VMS with the SHARE privilege. This option allows the volumes to remain private even so. Note however that this can mean a print spooler will not have file acce ss, and may in hibit other actions, so that this is desirable only some of the time. Access to disks mounted /sys tem or /cluster is not affected. This operation mode is not currently supported by the setup scripts however, as it is somewhat esoteric. One sets the 2048 bit of the functi on mask to enable this. One also can enable fragmentation reduction by setting the 2 bit. By setti ng the 262144 bit, one tells the driver to only examine opens of files that have had their file num bers loaded into memory. This may sometimes be wanted for performance reasons. These and some oth er more esoteric functions are built into the driver and may be used as needed. The file {\b0\i \f56\fs24 jtcommand.doc } gives information on the command language available in EACF and on some other ca pabilities not shown via the menu interface in V1.) \par }%*[EVERHART.JTDEMO]EACF_USER_MAN.SGML;1+,B ./ 4P- 0123 KPWO56~e7K89GHJ SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 9 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127BASESET "ISO 646-1983//CHARSET< International Reference Version (IRV)//ESC 2/5 4/0"DESCSET 0 128 0FUNCTION RE 10 RS 13 SPACE 32 TAB SEPCHAR 9 FORM SEPCHAR 12NAMING LCNMSTRT "-._$" UCNMSTRT "-._$" LCNMCHAR "" UCNMCHAR "" NAMECASE GENERAL NO ENTITY NODELIM GENERAL SGMLREF SHORTREF SGMLREFNAMES SGMLREFQUANTITY SGMLREF NAMELEN 31! FEATURESBMINIMIZE DATATAG YES OMITTAG YES RANK YES SHORTTAG YES3LINK SIMPLE NO IMPLICIT NO EXPLICIT NO3OTHER CONCUR NO SUBDOC YES 4 FORMAL NO APPINFO NONE>F>Extended Access Control Facility (EACF) USER MANUAL&NEW-LINE;KThis manual is intended for use by those who will set up EACF and use it to*control file access on a system.&NEW-LINE;Introduction:&NEW-LINE;LEACF introduces a number of new capabilities to VMS. This manual is designedIto: * explain what these are and what their intended use is, and * giveIinformation on how to mark files to achieve added capabilities.&NEW-LINE;!Overview, or, Why EACF:&NEW-LINE;HWork any length of time in a computer facility and you hear the stories:Osomeone reading another person's mail, some clerk telling a friend how much theLboss makes, some systems programmer typing out a docl@ SAFETY013.AB  %[EVERHART.JTDEMO]EACF_USER_MAN.SGML;1PO>ument that contains longNrange company plans and was for Vice Presidents only. People are often curiousOand occasionally malicious. Regardless, the information loss can create seriousLproblems, especially if it falls into the wrong hands, or lands you in court-because of some breach of privacy. &NEW-LINE;KTechnical means to control this are often lacking. If you can only allow orNdisallow read/write access to a file by someone, as is the VMS norm, then (forMexample) the payroll clerk can edit the payroll database. Doing this with theNnormal payroll application, at his terminal during the day, might be perfectlyIOK. However, should he be permitted to access it with, say, COPY? SomeoneOdeveloping new software might need access to system areas to install his latestGversions. Should he, however, have access also to the technical plans? &NEW-LINE;MAs these questions make clear, it is desirable for the system to limit accessGto sensitive files. By doing so, it gives useful warning when someone'sHcuriousity gets out of bounds, prevents loss of information, and reducesIorganizational exposure to anyone giving in to temptation to sell companyKsecrets, by making those secrets inaccessible outside of authorized limits. &NEW-LINE;GExtended Access Control Facility is designed to prevent loss, damage orOunauthorized disclosure of data by controlling disk file access. Most securityMbreaches ultimately involve tampering with disk storage. Others such as loginObreakins are already dealt with fairly well by VMS if set up properly. However,OVMS doesn't make it possible to regulate what can be done with highly sensitivedata at all closely.&NEW-LINE;MThe difficulty of allowing access with certain programs to certain files, forOcertain people and times, has led to many incidents of VMS users browsing areasNwhere they are not authorized by policy, but in which they have access becauseGtheir privileges work in a coarse grained way. Often these are innocentNcuriousity. Sometimes they are industrial espionage. With most (some estimatesOare as high as 98%) of security breaches coming from "insiders" exceeding theirN authority, this exposure is a problem in any organization keeping data online-which competitors shouldn't get at.&NEW-LINE;JA number of products claim they prevent unauthorized file accesses in VMS.NUnfortunately, all of them currently on the market, with the exception of thisNone, work by accessing data from the VMS AUDIT facility. The problem with thisNis that anyone even moderately familiar with VMS knows that the Audit facilityNkeeps track of security violations, and there are numerous ways to shut it offHtracelessly, including code from public domain sources. This renders the1strategy of these packages ineffective.&NEW-LINE;MWhat is just as bad, these products find out that an unauthorized file accessNhas happened from Audit only after the fact. At that point, all they can do isM(attempt to) stop the image or its process, since the file access has alreadyNhappened, and often already succeeded. (Where the access is a delete, the fileOis already gone.) As a result, they require that a policy be in place to punishM offenders after the fact, since they may have already done some damage. It's;hard to be relaxed about a breach in such a case.&NEW-LINE;OEACF, on the other hand, lives in the VMS file system and prevents unauthorizedJfile accesses from happening in the first place. It is not circumvented byNprivileges, works whether the Audit facility is up or not, and can ensure thatHa protected file is NOT accessed where this is not authorized. Thus, theNinnocent browser cannot have done any harm, and may be treated with less rigorJthan might be needed if damage or data loss may have occurred. Also, whileKother packages have to use obtrusive measures like process deletion to stopGaccesses, EACF can silently hide files if that is desired. Where a realNviolation IS happening, this can be much more effective in finding out what isMbeing attempted than stopping a process. EACF of course does generate logs ofFany detected violations so that notice of them is preserved.&NEW-LINE;OEACF is uniquely valuable in controlling access by privileged users. Many sitesNhave people who have elevated privileges, but who should not be able to accessNpayroll, grade files, company plans, etc., and who are not prevented from thisKby VMS. EACF can protect against exactly such access (and even discriminateGAGAINST people with various privileges if you like) and gives extensiveFcontrols over privileges and their uses above those VMS has.&NEW-LINE;OFinally, EACF is simple to use. You mark files for various accesses with a menuMoriented utility which selects how a file (or set of files) should be marked,Jor which will display what markings exist on a file. All security relevantMinformation is present at one time in an easily understood format; you do NOTKneed to hunt through all disk file ACLs to find it, if it exists at all. NoNnormal VMS facilities are lost, either; VMS security controls continue to workMnormally, though EACF may in various ways alter the outcome of their tests inGunderstandable ways. (An example of this might be that if you attach anOidentifier TWIT to a script, that script may fail to open some files which have6ACLs prohibiting access to identifier TWIT.)&NEW-LINE;NIf your business depends on any data on your VMS systems and your operation is5more than a VERY few people, you NEED EACF.&NEW-LINE;Capabilities:&NEW-LINE;.EACF offers the following abilities:&NEW-LINE;L* You can specify a password for file access. This password must be entered Nbefore access is attempted, using an EACF utility for the purpose. Then if theMfile password has been entered, and other EACF checks satisfied, the file mayHbe opened (or deleted). Otherwise, access is denied. The password can beJanything at all, and the tokens left in user space to indicate the enteredLpassword are also process dependent, so others cannot use them. The passwordNcan be changed at any time using EACF, but allows control via a separate pieceIof knowledge if this is preferred to control by time, username, etc. ThisNfacility has long existed in the mainframe world. Now it is available for VMS.OWhile it is less secure than encrypting the file, this method also cannot causeJa file to be lost forever if the one who knows the key dies or forgets it.GAlso, changing the file password is quick and easy, unlike changing itsFencryption, so that temporary access can be given and revoked at need. &NEW-LINE;M* You can control access by time of day (in one hour increments). You can useJthis facility to prevent file access during "after hours" times &TAB;whereJthere is no reason to allow them to be accessed, or "open up" files duringLperiods where normal controls are deemed adequate. The access modes for eachhour can be:&NEW-LINE;L&TAB;Y - Access permitted provided all other security checks pass.&NEW-LINE;H&TAB;N - No access (except to users on backup list)&NEW-LINE;&TAB;U - NoOCHECKS, let everything by EACF checks on this&NEW-LINE;&TAB; fileKduring this hour. (DEC security remains in effect.)&NEW-LINE;&TAB;P - CheckLprivileges against max privs only&NEW-LINE;&TAB;R - Readonly access only, byLanyone; r/w opens are&NEW-LINE;&TAB;rejected. Other checks may deny accessItotally as well.&NEW-LINE;&TAB;X - Allow r/o opens, test others normally.F&NEW-LINE;&TAB;D - Disallow access by ANYone (even the backup account) &NEW-LINE;N&TAB;(Note that provision for a backup account exists, and it can be&NEW-LINE;M&TAB;forced to permit only read-only file access, but this facility&NEW-LINE;@&TAB;allows further restrictions, operating per file.)&NEW-LINE;L&TAB;Notice that this means that writing to a file can be disabled&NEW-LINE;F&TAB;whenever one likes even if reading is left permitted. If there isN&NEW-LINE;&TAB;a suspicion that some databases may be tampered with off hours,K&NEW-LINE;&TAB;this gives a simple way to protect them. The privilege checkM&NEW-LINE;&TAB;mode is also of particular value, since it can disallow use ofJ&NEW-LINE;&TAB;elevated privileges which might otherwise be used to bypassInormal&NEW-LINE;&TAB;system protections by industrial spies or other evildoers.&NEW-LINE;J* You can control WHO can access a file (with both permitted and forbiddenHusernames), WHERE they can access the file (with permitted and forbiddenLterminal names), and WITH WHAT they can access the file (with both permittedOand forbidden image names). This is the major advantage of EACF. You have, forKusernames, terminal names, and image names, two lists each. You can specifyMusername strings that are acceptable or that must be rejected,or can use * toKindicate all, or & to indicate to skip a test. Likewise you can specifyOpermitted or forbidden terminal names (access port names are tried also if theyNexist), or image names that are permitted or forbidden. These are handled withJthe normal VMS wildcard conventions (except that in addition a string withM& in it means to skip the test). Thus, to say that a given file cannot beKaccessed with the COPY image one could add "*COPY.*" to the forbidden imageJlist. (Note: "Access" as used for EACF means either open OR delete access.CRenaming a file does not have any effect on the controls.&NEW-LINE;KThe beauty of this is that all the EACF parameters can be controlled in oneHspot, without huge ACLs and unmanageable machinery to fiddle with systemOlogicals or identifiers on the hour. This permits really fine grained access toOyour files. If you have an accounting person who works on the payroll file, youMcan authorize access to PAYROLL.DATA during working hours, from that person'sNnormal terminals, but forbid access after hours, or from terminals like RT* orKNT*, and you can ensure that the file cannot be accessed with, for example,MCOPY or BACKUP, or perhaps can only be accessed from *PAYROLL*.EXE* if only aMgiven suite of programs with such names should be used for access. The accessElists are all variable length, comma-separated lists, so considerableNflexibility is available. Finally, you can prevent access using privilege (seeNbelow) to this data, so that people who have privileged access to your system,Myet have no physical access to the computer, cannot simply turn on privileges5and read the data to their heart's content.&NEW-LINE;I* You can prevent files from being accessed with more than a given set ofNprivileges. You do this by attaching a maximum privilege mask to a file and ifLthe process trying to open or delete the file has any privileges not in thisGmask, access is forbidden. The default mask forbids access using BYPASSJprivilege. This is highly useful against curious privileged users (and anyMintruders who gain privilege) since it means that files can be protected evenKwhere local conditions force operation with many privileged users, or whereNthere is concern that intruders may gain privileged access to the machine. TheNtags that cause files to be checked in this way can be kept in kernel space asOwell, so that they are safe from being seen even by privileged users.&NEW-LINE;;&TAB;NOTE: This and other checks are applied in addition toMthe&NEW-LINE;&TAB;normal VMS checking. Hence even a file owner is affected by'&NEW-LINE;&TAB;this checking.&NEW-LINE;IMany sites have people who must do development and need to be able to useMINSTALL or other privileged functions, and whose privileges cannot be revokedNwithout impairing their ability to work. However, most of these people have noMneed to be authorized to see, e.g., the payroll file. Conventional VMS offersINO way to prevent such access, and other file "security" packages work byOwatching the output of the AUDIT utility, which can be silently and untraceablyOshut off by publically available programs whatever someone is running to listenLto AUDIT. As a result, there has been, until now, NO way to block access byGthese people to sensitive data left on normal disk files, whatever fileKprotection is attempted. EACF, due to its residence within the file system,Lworks whether AUDIT is turned on or not, and prevents these folks from usingLthe file system to access such data. EACF offers the ability to either blockKaccess altogether, or to block write access only, and cannot be confused byLcommand obfuscation, nor does it care whether the access is by program or byMconsole command. Someone who has used privilege to change his username can beOblocked by finding that the privilege he needs to continue to access his systemLtables denies file access. Thus even common tricks one might play to fool anGaccess system into permitting access can be thwarted readily.&NEW-LINE;H* You can hide files. That is, if access is denied, you can arrange thatLinstead of giving the user a "privilege violation" message, EACF can arrangeLthat another file (on ANY disk) can be opened instead wth no indication to aMuser exceeding his authority that anything unusual has happened. EACF will ofOcourse generate logs of the denied access, as it does in all cases of such, butMthe intruder will not know that his access attempt has failed. Therefore, youMcan arrange that he will open FAKE_SYUSUAF.DAT or FAKE_PAYROLL.DAT instead ofJthe real SYSUAF.DAT or PAYROLL.DAT. This allows you to safely allow him toOleave evidence of his intentions (e.g. let him try to enter system accounts, orKsee whose pay records he wants to see or tamper with) without exposing yourLreal business data to tampering. In effect, the unauthorized user CANNOT SEEMthe real files, but "sees" other files which pose as them. In some cases thisOcan be FAR safer than an error message, which will alert a person exceeding hisN authority or an intruder that he has tripped some protection barrier. Rather,Kit seems to pose no resistance to tampering, but gives complete resistance,Kwhile permitting evidence of what is attempted to be accumulated.&NEW-LINE;M* You can attach a cryptographic checksum to the file. At any attempt to openNthe file, this checksum is compared with that of the actual data, and the fileFwill not open if they do not match. This is used for detection of fileKtampering and means that if someone should tamper with a file, it cannot beNused im@ SAFETY013.AB  %[EVERHART.JTDEMO]EACF_USER_MAN.SGML;1P`>%n such a state. This tamper-proofing works for any file type, and is notMlimited to executables. However, it does require that the file be read in itsJentirety to compute the checksum before an open can be done, so it is mostNeffective for relatively short files. The most common examples of such are DCLJscripts used by privileged users, which are frequent targets of attacks onJsystem integrity. Certain file types (with very long maximum record sizes)Icannot be fully checked in this way, but these are quite rare; the systemEprovides for checks of files with records far larger than the longestOpermissible DCL line. If only a partial check is possible, EACF will check whatFit can. This facility can be used to guard many critical files againstOtampering which might otherwise be a first step in breaking into a system. NoteLtoo that the file size is used in the checksum, and this is tested first, soOthat anything that has changed the file size will fail the check very quickly. MWhere a file is over 100 blocks long, the script asks for confirmation before$marking it for this check.&NEW-LINE;N* You can attach a replacement privilege mask to a file which will replace allNprocess privilege masks when the file is executed. This can be attached to anyMfile, no matter how executed (so that interpreted scripts can be tagged too).OThis is normally used to ensure that a script or image never runs with elevatedLprivilege. If you attach a privilege mask to, say, a DCL script or image youMgot from somewhere, and the mask contains no privileges except perhaps TMPMBXN(and maybe NETMBX), then whenever it runs, the process' current and authorizedNprivilege masks will be replaced with masks having only these privileges. (TheNprivileges are restored on exit or when the file is otherwise closed.) Thus ifMany Trojan code would normally be triggered by the script finding that it hadOsome elevated privileges, it would never find such, even if run from privilegedNaccounts. Also, since the process lacks privilege while the script or image isLrunning, it cannot abuse privileges that might otherwise be available to it.J(The authorized mask is reset to keep Trojan horse applications from using4$setprv to negate the privilege lowering.)&NEW-LINE;H&TAB;You should note that the UIC is not altered, so that implied systemO&NEW-LINE;&TAB;access via a low UIC would not be affected by this. Also, if youH&NEW-LINE;&TAB;use this facility to raise privileges, be sure to allow EM(execute)&NEW-LINE;&TAB;access to the file only and check the file carefully.M(See below&NEW-LINE;&TAB;for a fuller explanation.) This facility can be usedNto attach&NEW-LINE;&TAB;privileges to DCL command files, but can open securityMholes if&NEW-LINE;&TAB;this is not done very carefully. Remember: if the fileKis opened,&NEW-LINE;&TAB;the opening process' privileges are affected. WhenKused to reduce&NEW-LINE;&TAB;privileges, the facility provides a pro-activeLmeasure to inhibit&NEW-LINE;&TAB;viruses and other covert code from running. &NEW-LINE;&TAB;Usage Note:&NEW-LINE;N&TAB;Privilege, base priority, and identifier modification poses few&NEW-LINE;K&TAB;if any risks where these facilities are used to LOWER access&NEW-LINE;;&TAB;privileges. In this case, someone opening a file whichNhas&NEW-LINE;&TAB;these side effects only reduces his access. (This might evenM&NEW-LINE;&TAB;be handy for privileged people wanting temporarily to assume aN&NEW-LINE;&TAB;nonprivileged identity without using another account.) However,M&NEW-LINE;&TAB;any RAISING of privileges or access rights should be done thisO&NEW-LINE;&TAB;way only with great care. Anyone permitted to open a file markedO&NEW-LINE;&TAB;in this way can in principle gain these added privileges/rights.O&NEW-LINE;&TAB;In this case, other facilities of EACF should be used to preventN&NEW-LINE;&TAB;access to the file in undesired ways. For instance, by allowingN&NEW-LINE;&TAB;E (execute) access but not read access, and enforcing this withM&NEW-LINE;&TAB;a max-privileges mask that prohibits it from being overridden,L&NEW-LINE;&TAB;and perhaps further limiting username and image allowed to doL&NEW-LINE;&TAB;the opens (prohibit *DCL*, for example). In this way securityJ&NEW-LINE;&TAB;needs can be served while privileges can be more completely<&NEW-LINE;&TAB;controlled than vanilla VMS allows.&NEW-LINE;M* You can attach identifiers to a file. These identifiers are granted on fileIopen, revoked on file close. This can be used for any convenient purpose,Othough again they tend to make sense most for files which are executed. If usedNfor data files, it is wise to use other EACF facilities to narrow the exposureNthese have. If for example you have an identifier BUS_PLAN that grants accessMto certain files, you can "attach" that identifier to an executable or scriptMand allow it to access them. (DEC has something similar, but it won't work onOinterpreted code such as DCL scripts or interpreted languages of any kind. WithIEACF, you can apply protections regardless of language choice.)&NEW-LINE;N* You can set the base priority of a process so that when a file is open, theHbase priority is replaced by the one attached to the file. (The priorityNreturns to its old state at close.) This can be used to ensure that known "CPUOhog" programs run with lowered base priority even if run interactively, or thatOsome programs run with higher priority where this is desired. The first case isNlikely to be more useful. In some shops, elaborate systems to ensure that longKcompilations (e.g., large Ada programs) run in batch have been set up. ThisNfacility means that the CPU intensive programs do not gain extra priority fromHrunning interactively if they are set up with a base priority lower thanKnormal. Likewise, some editors or screen intensive applications may benefitOfrom higher priority, and will not cause problems so long as they don't go intoa compute loop.&NEW-LINE;"&TAB;&TAB;&TAB;&TAB;NOTE&NEW-LINE;3&TAB;&TAB;The three above modifications are flaggedHwith&NEW-LINE;&TAB;&TAB;cryptographic authenticators so that the tags onK&NEW-LINE;&TAB;&TAB;the files cannot be altered or moved to other&NEW-LINE;O&TAB;&TAB;files. A key that is used on loading EACF for&NEW-LINE;&TAB;&TAB;eachOdisk is also used in the computation, so&NEW-LINE;&TAB;&TAB;such keys cannot beOentered successfully unless&NEW-LINE;&TAB;&TAB;one also knows this value. It isMessential to&NEW-LINE;&TAB;&TAB;system security that these key values be keptO&NEW-LINE;&TAB;&TAB;secret, and is desirable that the tagging program&NEW-LINE;1&TAB;&TAB;be available only to systems personnel.HThese&NEW-LINE;&TAB;&TAB;modifications do not require any user-mode codeD&NEW-LINE;&TAB;&TAB;to run, so impose negligible overhead.&NEW-LINE;L* You can set EACF to have a set of "exempt" images which are permitted fullMsystem access. Access to these images can however be controlled by EACF. ThisMpermits EACF to avoid causing problems for disk defragmenter programs and theLlike, which must have a global view of the disk, without imposing large userNburdens. Because access to these exempt images is still controllable, they can3be prevented from causing security holes.&NEW-LINE;NIt is also possible, for example, to have a copy of BACKUP which is allowed toNhave global file access, BUT it can be specified that this BACKUP image can beMaccessed only by certain users, at certain terminals, at certain times, withLcertain privileges etc., and perhaps accessed only with certain identifiers M&TAB;which might be granted by attaching them to a backup script which grantsMthe identifiers. The full panoply of EACF controls is available to screen whoOcan use this copy of BACKUP. Meanwhile, another copy of BACKUP.EXE might be theLone most users can access. The specially privileged copy would typically beMaccessed using a different verb, and could be used for making system backups. &NEW-LINE;K&TAB;&TAB;This facility is essential to permit programs like disk&NEW-LINE;H&TAB;defragmentgers to have global system access without interference orN&NEW-LINE;&TAB;to allow system wide applications like backup to be run withoutI&NEW-LINE;&TAB;interference when done by authorized people at appropriateIplaces&NEW-LINE;&TAB;or times. Up to 32 image pathnames can be exempted. &NEW-LINE;L&TAB;&TAB;In addition, an image is provided which can be used by a&NEW-LINE;O&TAB;process to exempt itself from EACF checking or reenable it. This&NEW-LINE;I&TAB;image must be treated with extreme care, but can be used for complexK&NEW-LINE;&TAB;jobs where system maintenance is needed. When it is used, itElogs its use&NEW-LINE;&TAB;so that such use can be audited.&NEW-LINE;N* There is provision for a "privileged user" list (empty by default) which canObe used to give certain users broader file access, limited only by certain timeHcodes and privilege mask tests (and DEC access controls), should such beKdesired. A supplied privileged utility can also be used to exempt a processMfrom EACF controls where this is wanted for whatever reason. This is referredJto in the menus as the Backup Account. It can also be prevented from write5access to files while allowing read access.&NEW-LINE;K* You can arrange for EACF to execute an arbitrary set of commands wheneverHaccess to a file is denied. The username, PID, terminal, and file ID areOavailable to the commands (plus whatever else you care to make available). ThisJcan be used for mail or pager notice to systems people, for suspending theLprocess, or for starting a keystroke monitor like SPY to record the process'Nactivities, or for ANY other desired purpose. This takes place BEFORE the fileNcan be accessed. (There is an additional capability, controlled by the commandline language as described inK jtcommand.doc which allows you to force execution of a site command scriptNwhenever an image tagged for this function is in use and opens a file. This isOprovided where it is needed to have additional controls over files which may beNopened by a program whose security properties may be especially untrustworthy.NThe script runs whenever the untrusted program tries to open a file and it canJveto the open. An application of this could be to alert a user of opens ofLfiles not in a permitted list. In this mode, or if in "check all opens" modeO(see below) EACF will check the file's parent directory permissions if the file'has no EACF security record.)&NEW-LINE;DISCUSSION&NEW-LINE;NEACF is useful in relatively friendly environments, where it allows the limitsLof authority to be defined in the machine, so a privileged person who may beMinclined to browse in public directories will be prevented from thoughtlesslyMprinting private files with a message that he has exceeded his privileges, orNin much more hostile ones where tampering or industrial espionage (which oftenJuses the services of insiders who have been paid off to make (or have beenJtricked into making) a quiet copy of the payroll, or business plan, files)Omight be a risk. In either case, it is rather easy to limit access to sensitiveOfiles (or to directory files holding sensitive files) to certain people, and toNremove the opportunity, and temptation, to disclose other data from people whoHmight otherwise do so for whatever reasons. If, for example, your systemNmanager should be curious about a file named "NEW_PRODUCT_PLANS.DOC" and triesMto look at it, isn't it better that he be unable to do so (even though he mayNhave BYPASS privilege) if company policy means he really shouldn't have accessNto it? Isn't HE safer with a system that will just block access rather than anMalternative system that can't block access, but will get him in trouble afterMhe DOES access it? Conventional VMS lacks the ability to do a detailed job ofLlimiting access to such areas, so inadvertently this kind of thing happens aHlot. With EACF installed, it is easy to have the machine understand, andJenforce, the limitations of access company policy and safety demand. Thus,Oinadvertent as well as intentional access is controlled, and data access can be.managed properly for the first time.&NEW-LINE;F&TAB;EACF protections are in addition to normal VMS ones, and a personM&NEW-LINE;&TAB;must be able to open a file to mark it for security. Henca allN&NEW-LINE;&TAB;normal VMS group access provisions can be used to control which6&NEW-LINE;&TAB;files a given group can mark.&NEW-LINE;+WHAT IS HAPPENING TO FILES MARKED&NEW-LINE;JYou mark files in EACF using a menu-oriented file marking script, though aNcommand line interface exists if it essential to use one. This marking resultsKin an application ACE (the file mark) being attached to the file and in theFEACF database being updated to reflect desired actions on the file. InMaddition, EACF startup can be set so that the server is passed a list of fileMIDs which will be inspected. This list may contain any number of IDs per disk(and can be created from simple&NEW-LINE;$ DIR /FILE_ID &NEW-LINE;Mcommands. The list is a sequential file each line of which contains a file IDJin the form (n,s,r) where n is file number, s is sequence number, and r is6relative volume number. For example the line&NEW-LINE;&LOGIN.COM;85&TAB;(9493,12,0)&NEW-LINE;will do fine.&NEW-LINE;KWhen a file is marked like this, one uses a /FILENUM:sequentialfilespec.typLswitch to tell the server where the list of IDs is, and the server will thenLcheck extended access even if the file mark has been damaged or removed fromLthe file. A file mark must have been created in the first place, so that theLEACF database will have been filled in, but if a mark has been deleted, thisGwill prevent such deletion from interfering with EACF checks.&NEW-LINE;MThere is an option in the menu system which checks that all files in the EACFNdatabase correspond to files with correct file marks and will regenerate theseMmarks if any are missing. It also warns the operator of any files whose marksKhave been deleted, since this may represent someone having attempted to getCaround the EACF system's protection. Any unexplained cases of marksJdisappearing should be investigated as security breaches. If this happens,Kalso, it indicates which files should be in the kerneln@ SAFETY013.AB  %[EVERHART.JTDEMO]EACF_USER_MAN.SGML;1Pv>D-based lists, so thatMthey will remain protected even if their marks are deleted entirely. There isOno mechanism for removing files from the kernel based lists except a reboot andJrestart of EACF with a different, or no, /FILENUM switch on the command to#start the server process.&NEW-LINE;KThe EACF setup script asks, for each disk selected, a security key (used asOpart of the authentication for all ACEs that change identifiers, base priority,Mor privileges) and a file containing these file IDs. Either, both, or neitherOmay be selected. Note too that directories are files too, and can be protected,Mwith the usual caveats. However, if the file [000000]000000.dir is protected,LEACF protection criteria can prevent a volume from being mounted. &NEW-LINE;HOW TO SET EACF UP&NEW-LINE;Pre-Installation:&NEW-LINE;NBefore installing EACF, you should prepare for the installation by making sureIthat there is enough nonpaged pool available for the dynamic needs of theLsystem. These vary somewhat but can be adequately approximated by increasingNthe SYSGEN parameter NPAGEDYN by the quantity (10000 * (number of EACF daemonsLyou will set up + 1)). Insert a line something like the following&NEW-LINE;ADD_NPAGEDYN=30000&NEW-LINE;Oin your MODPARAMS.DAT and run AUTOGEN. You may of course have adequate nonpagedL pool already (many systems will) in which case no modifications are needed.'SHOW MEM/POOL will show this.&NEW-LINE;LYour system disk must have about 5000 blocks free to install EACF, though ifMthe EACF components are placed on a separate disk, system disk space required@for the final resident components is under 500 blocks.&NEW-LINE;Installation:&NEW-LINE;FEACF is installed by VMSINSTAL. From the system account, use a command &NEW-LINE;>$ @SYS$UPDATE:VMSINSTAL EACF010 distribution_medium:&NEW-LINE;Kto do the installation. The script will ask where EACF programs and scriptsLshould be stored, and most EACF components will be placed there. This can beIanywhere on the system, provided that the disk is mounted in your startupNscript before EACF is started. These components will occupy around 2000 blocksKon a VAX, double that on an AXP, so ensure the disk chosen has room enough.NWhen running the setup script after installation, the area chosen for the EACFFcomponents should be specified as the area for EACF executable images. &NEW-LINE;Post Installation:&NEW-LINE;LEACF comes with a setup script which is to be run after the VMSINSTAL script(has installed the package. This script (BJT_SETUP.COM) generates a startup script which should be run from SYSTARTUP_VMS.COM or ISYSTARTUP_V5.COM at boot time. The script generated will start one accessNserver which will be attached to all disks in the system, and enough interceptEdriver units to control all disks selected. It is perfectly legal andGpermissible to have many EACF servers, each handling one or more disks,Nhowever. This allows faster processing of security markings in some cases. TheOscript offers an option to select the starting intercept driver unit number, soLthat it can be run more than once, and will arrange to load a server for allOdisks in each run. Normally it starts with intercept unit 0, but if you connectMthree disks, you can run the setup script again and start at intercept unit 3M(since the prior run will have used 0, 1, and 2). Then with this run, anotherLserver will be started. It is up to you to ensure that disks allocated don'toverlap.&NEW-LINE; &NEW-PAGE;HJT_SETUP is fairly easy to understand. Its initial menu looks like this: &NEW-LINE;0 EACF SETUP 18:11:55&NEW-LINE;O --> *Set area to hold EACF database files&NEW-LINE; &TAB;Set start interceptOdriver unit number (now 0)&NEW-LINE; *Set area for EACF executable imagesL&NEW-LINE;&TAB;Done this menu, process disk selection&NEW-LINE;&TAB;Remove aKdisk from an existing EACF configuration&NEW-LINE;&TAB;Set images which areKexempt from EACF (e.g. defraggers)&NEW-LINE;&TAB;Quit, do nothing&NEW-LINE;F ( Asterisk means that a value already exists for the item.)&NEW-LINE;NIt allows you to specify where EACF database files are kept (for the series ofMEACF intercept driver units you configure). Each run of JT_SETUP will let youKconfigure one or more disk units, each of which uses a JT intercept driver,Mwith its necessary data areas. Normally this starts with JTA0: and goes up inJunits, but if you want multiple servers you can run JT_SETUP once for eachNserver and set the "start intercept driver unit number" item to the start unitHnumber, which should be one higher than the maximum number of disk unitsOconfigured so far. One JT unit can control only one disk unit. Asterisk impliesHthat values already exist (perhaps from kitinstal) for these selections. &NEW-LINE;OThe "Set images which are exempt from EACF (e.g. defraggers)" item allows imageJdevice:[directory]filename.type;version strings to be specified for imagesMwhich are exempt from EACF controls. Note that any such images can bypass allHEACF actions, BUT you can and should use EACF to control access to theseimages.&NEW-LINE;LWhen you select the "Done..." item, you enter a menu to select disk units to=configure for this EACF server. It looks like this:&NEW-LINE; &NEW-PAGE;O EACF Configuration &TAB;Disk Selection&NEW-LINE; Use arrows to move to*selection. Use RETURN to select.&NEW-LINE;D End disk selection &NEW-LINE; _ARISIA$DKA700: VMSSYS&NEW-LINE; L_ARISIA$DKB0: USRBAK&NEW-LINE; _ARISIA$DKB400: DWU&NEW-LINE; _ARISIA$DCA0:LXRP07&NEW-LINE; _ARISIA$DCA2: XRP06&NEW-LINE; _ARISIA$DCA3: CDI&NEW-LINE; J_ARISIA$DCA4: XTRA&NEW-LINE; _ARISIA$DCA5: CDTPL&NEW-LINE; _ARISIA$VDB0:OTEST1&NEW-LINE; _ARISIA$VDB1: TEST2&NEW-LINE; _ARISIA$DKB200: <unmounted>D&NEW-LINE; _ARISIA$DKB300: <unmounted>&NEW-LINE; _ARISIA$DCA1:C<unmounted>&NEW-LINE; _ARISIA$DCA6: <unmounted>&NEW-LINE; F_ARISIA$DCA7: <unmounted>&NEW-LINE; _ARISIA$FQA0: <unmounted>B&NEW-LINE; _ARISIA$FQA1: <unmounted>&NEW-LINE; _ARISIA$FQA2:J<unmounted>&NEW-LINE; Type H for help.&TAB;Currently on item 1 of 151 &NEW-LINE;Nwhere mounted disks appear first on the list, followed by all other disk-classKdevices on the system. The display will scroll if more disks are there than!will fit on a terminal.&NEW-LINE;LOnce you select a disk, you must enter a number of parameters for that disk.AThis is done in another sub-menu which looks like this:&NEW-LINE; &NEW-LINE;# EACF DISK SETUP 18:19:45&NEW-LINE;L --> Enter security key for disk&NEW-LINE; &TAB;Enter file of file IDs toJload for kernel marking&NEW-LINE;&TAB;Examine only kernel-marked files forMaccess tests&NEW-LINE;&TAB;Set to automatically kernel-mark all files on load9&NEW-LINE;&TAB;(This requires generating the file list at=boot)&NEW-LINE;&TAB;Generate filelist database and set to useIit&NEW-LINE;&TAB;Act as if ALL files were kernel-marked (use if most are)G&NEW-LINE;&TAB;Quit, do nothing.&NEW-LINE;&TAB;Done this menu&NEW-LINE;MThe security key for the disk is the secret string (of any reasonable length)Lwhich is used to validate EACF actions that alter privilege, identifiers, orObase priority. It must match the marking on a file or these will not be alteredN(which prevents random people from creating such markings). Therefore this keyHshould be well chosen and the EACF startup file carefully protected fromObrowsers. Note that when a marking on a file is created which resets privilege,Mgrants an identifier, or resets base priority while that file is open, a fileMsecurity key is asked for. That key must match the volume key entered here orMthe changes to process priority, identifiers, or privilege are not made. ThisNprevents unauthorized people from gaining privilege even if they are permitted,to mark their own files with EACF.&NEW-LINE;LThe other options are pretty self-explanatory. If you can afford the time toNcreate a file of IDs to load at EACF start, it makes the system MUCH harder toIavoid and allows the option of only examining marked files, which reducesLoverhead on nonmarked files and is therefore a good idea too. Whether to useIitem 4 or item 5 depends on how often your files that need to be examinedHchange. Item 4 (automatically kernel mark all files on load) generates aLcomplete list of all files that are marked at every boot. Item 5 generates aOlist when you select it and uses that, rather than generating the list at everyJboot. This can suffice for fairly static lists of files to mark.&NEW-LINE;BOnce you finish with the menu, it will create EACF_STARTUP.COM andMEACF_LOGIN.COM which are used to start EACF and to define some symbols neededKfor convenient use. EACF_STARTUP.COM should be run from systartup_v5.com orGsystartup_vms.com (depending on version of VMS) at boot time.&NEW-LINE;WHAT TO MARK&NEW-LINE;JYou will want to mark files (and perhaps directories, though remember thatKfiles can be opened by file ID without going through directories) which areNimportant to your business with EACF. Transient files should ordinarily not bemarked. &NEW-LINE;ACritical system files should be marked. These include SYSUAF.DAT,MSYS$SYSTEM:NET*.DAT, and the startup scripts (so people can't easily find outHwhat nonstandard things you're running), as well as any other .COM filesNusually run by SYSTEM. Be sure, however, to allow access BY the SYSTEM accountto these.&NEW-LINE;LYou should also use EACF to regulate the access to the files in the area youOchoose for your EACF data files. The files in JTD$DB and GCY$CM areas hold yourNsecurity database and must be protected against access by unauthorized people.LIt is also often a good idea to access protect the file marking utility alsoI(filename JTAUTHMAINT.EXE) so that only authorized people may mark files.NLimiting access to the *.GDB files to the image JTAUTHMAINT.EXE (and includingNthe whole path) is a good idea. Also, the scripts used to start EACF up, whichOwill contain the volume access keys, should be protected against access too, soN that users cannot enter file markings that alter identifiers, etc. If you use2the SETUP script, the file to protect is&NEW-LINE;&SYS$MANAGER:EACF_STARTUP.COM&NEW-LINE;Kand it should be treated and protected at least as well as SYSUAF.DAT. NoteOthat the EACF setup script will, by default, protect the EACF databases againstIaccess from images other than EACF's images and BACKUP. It is recommended/additional tailoring be done however.&NEW-LINE;HOW TO MARK FILES&NEW-LINE;KYou mark files in EACF by using the mark_files script JTMARK_FILES.COM. TheFMARKFILE command does this. (This presumes EACF has been installed andJgenerally presumes a privileged account to assure the ability to tag filesappropriately.)&NEW-LINE;GA brief note first: permitted and prohibited usernames, imagenames, andKterminal names are matched with string matching, so that to allow access byJBACKUP.EXE, for example, you would use a string like *]BACKUP.EXE;*, sinceLotherwise it won't match the full path name which is available for matching.OTherefore most of the time your selection strings will contain the * character,Gand the file marking script will issue a warning message if this is notOpresent. If your selection, for example, IS the complete pathname for an image,Lor the complete terminal name (or access port name) for an image or terminalKrespectively this is not a problem. In any case, your selection is used. IfOhowever you want to (dis)allow access by, say, COPY, you can do so by excludingH*COPY* more compactly. There is a limit in total size available for this@information, so conserving space is often a good idea.&NEW-LINE;LNow to actual use of the script. In fact there are two scripts. One is namedMJT_SEL_MARK.COM and uses a fullscreen frontend as a selection front end. WithIthis script, you set your default directory to the tree where you want toEselect files and run the script, using the arrow keys and spacebar toLselect/deselect files. When you are satisfied with the selections, type G toGmark the selected set of files. The selection menu is the same for bothLscripts. The MARKEACF command runs the fullscreen - selection markup script. &NEW-LINE;MThe other script (jtmark_files.com) asks for a file specification explicitly,&which may contain wildcards.&NEW-LINE;3The start of that script looks like this:&NEW-LINE;1$ MARKFILE File(s) to mark (? for dir):&NEW-LINE;KAt this point you select a file (or a wildcard file specification, in whichMcase you will be marking each in succession). The selection could for example be:&NEW-LINE;G$ MARKFILE&NEW-LINE; File(s) to mark (? for dir): VDB0:[EVERHART]ND.TXT &NEW-LINE;8[Alternatively one can just use a command like&NEW-LINE;+ $ Markfile vdb0:[everhart]nd.txt&NEW-LINE;0to accomplish exactly the same thing.]&NEW-LINE;LAt this point, if the file exists, you are presented with a menu which lookslike this:&NEW-LINE;H Extended Access Control Facility - File Marking&NEW-LINE; &TAB;FileMVDB0:[EVERHART]ND.TXT;7&NEW-LINE; --> Edit max-privs-to-open mask (current:IDFFFFFFFFFFFFFo@ SAFETY013.AB  %[EVERHART.JTDEMO]EACF_USER_MAN.SGML;1P>cFF) &TAB; Set base priority override (current: None)M&NEW-LINE;&TAB;Edit permitted user list (*)&NEW-LINE;&TAB;Edit forbidden userJlist (None)&NEW-LINE;&TAB;Edit permitted term. list (*)&NEW-LINE;&TAB;EditGforbidden term. list (None)&NEW-LINE;&TAB;Edit permitted image list (*)I&NEW-LINE;&TAB;Edit forbidden image list (None)&NEW-LINE;&TAB;Edit backup7account list (None)&NEW-LINE;&TAB;Edit time-use profileN(YYYYYYYYYYYYYYYYYYYYYYYY)&NEW-LINE;&TAB;Edit replacement priv mask (when fileIopen) None&NEW-LINE;&TAB;Set backup user access [Readonly/Read-Write] R/WH&NEW-LINE;&TAB;Set file tamper check&NEW-LINE;&TAB;Set file password SetLAccFail-action cmd @GCY$CM:JTACTN&NEW-LINE;&TAB;Enter security key&NEW-LINE;F&TAB;Set conditional softlink (None)&NEW-LINE;&TAB;Grant identifier on4open/revoke on close ( )&NEW-LINE;&TAB;Quit, make noJchanges&NEW-LINE;&TAB;Done, update file controls now&NEW-LINE;&TAB;PerformKdatabase maintenance commands&NEW-LINE;&TAB;Apply selected mods to all wildfiles&NEW-LINE;LIn the above case, the settings are the defaults. The max-privs-to-open maskFexcludes access with BYPASS privilege but allows all others.&NEW-LINE;NIf we select the first item (by pressing <cr> (the RETURN key)) the systemNshows another menu which looks like this (showing all but the BYPASS privilegeselected:&NEW-LINE; &NEW-PAGE;A Privileges Permitted For Opening File Privilege Set Up&NEW-LINE;M --> Done setup * MOUNT * U05&TAB; * U25&NEW-LINE; Set all priv *OOPER * SECURITY * U26&NEW-LINE; Clr all priv * EXQUOTA * U07&TAB; M* U27&NEW-LINE; * CMKRNL&TAB; * NETMBX * U08&TAB; * U28&NEW-LINE; *JCMEXEC &TAB; * VOLPRO * ACNT * U29&NEW-LINE; * SYSNAM&TAB; *OPHY_IO * U10&TAB; * U30&NEW-LINE; * GRPNAM&TAB; * BUGCHK * U11&TAB; F * U31&NEW-LINE; * ALLSPOOL * PRMGBL * U12&TAB; Set NO maskO&NEW-LINE; * DETACH&TAB; * SYSGBL * ALTPRI Make no changes&NEW-LINE; O* DIAGNOSE * PFNMAP * U14 &NEW-LINE; * LOG_IO&TAB; * SHMEM * U15I&NEW-LINE; * GROUP&TAB; * SYSPRV * U16&NEW-LINE; * NOACNT&TAB; JBYPASS * U17&NEW-LINE; * PRMCEB&TAB; * SYSLCK * U18&NEW-LINE; *KPRMMBX&TAB; * SHARE * U19&NEW-LINE; * PSWAPM&TAB; * UPGRADE * U20J&NEW-LINE; * SETPRI&TAB; * DOWNGRADE * U21&NEW-LINE; * SETPRV&TAB; *JGRPPRV * U22&NEW-LINE; * TMPMBX&TAB; * READALL * U23&NEW-LINE; *+WORLD&TAB; * U04&TAB; * U24&NEW-LINE;OAt this point we can toggle any privilege setting by selecting it and when done'select the "Done setup" item.&NEW-LINE;GThe "Set base priority override" item, when selected asks the question: &NEW-LINE;>Enter base priority for process with this file open:&NEW-LINE;Owhich can be answered by a priority between 0 and 31. If outside this range, orKif nothing is entered, the priority setting is left unset, which means that!EACF does not alter it.&NEW-LINE;The next 7 items:&NEW-LINE;O&TAB;Edit permitted user list (*)&NEW-LINE;&TAB;Edit forbidden user list (None)O&NEW-LINE;&TAB;Edit permitted term. list (*)&NEW-LINE;&TAB;Edit forbidden term.Jlist (None)&NEW-LINE;&TAB;Edit permitted image list (*)&NEW-LINE;&TAB;EditIforbidden image list (None)&NEW-LINE;&TAB;Edit backup account list (None) &NEW-LINE;Lall lead to similar menus. If we select the "Edit forbidden user list" item,,for example, we get the following:&NEW-LINE; &NEW-PAGE;M&TAB;Edit Forbidden User List&NEW-LINE;&TAB;Current user list: None&NEW-LINE;9&TAB;* is wild card, & means omit this test&NEW-LINE;: --> Add users to list&NEW-LINE; &TAB;Remove users fromIlist&NEW-LINE;&TAB;Replace list&NEW-LINE;&TAB;Quit, leave user list alone,&NEW-LINE;&TAB;Done with this menu&NEW-LINE;FIf the string when you are done contains a '&' character, the testHcorresponding to that menu is skipped. * on the other hand is a wildcardMcharacter. In several lists, a message is issued if no * is seen, since imageIpaths or terminal lists will often contain them if they are to perform asexpected.&NEW-LINE;NOTE:I The permitted lists have priority. Thus if the permitted user list is *,Meveryone is permitted access to the file regardless of the forbidden list. IfOthe permitted user list is & (or just something you won't get like "=") theLforbidden user list controls who is denied access. If a few names are on theLpermitted list and the forbidden list contains *, then only the few named onNthe permitted list can access the file. Similar rules hold for image names andNterminal (or accport) names.&NEW-LINE;&NEW-LINE;Now if I select "Replace list"Gand add the value GUEST, the question and response look like:&NEW-LINE; Enter user list: GUEST&NEW-LINE;MWhen we select the "Done..." item, we return to the top level which now lookslike this:&NEW-LINE; &NEW-PAGE;G Extended Access Control Facility - File Marking&NEW-LINE; &TAB;FileKVDB0:[EVERHART]ND.TXT;7&NEW-LINE;&TAB;Edit max-privs-to-open mask (current:JDFFFFFFFFFFFFFFF)&NEW-LINE;&TAB;Set base priority override (current: None)K&NEW-LINE;&TAB;Edit permitted user list (*)&NEW-LINE; --> Edit forbidden:user list (GUEST)&NEW-LINE; &TAB;Edit permitted term. listO(*)&NEW-LINE;&TAB;Edit forbidden term. list (None)&NEW-LINE;&TAB;Edit permitted6image list (*)&NEW-LINE;&TAB;Edit forbidden image listG(None)&NEW-LINE;&TAB;Edit backup account list (None)&NEW-LINE;&TAB;EditOtime-use profile (YYYYYYYYYYYYYYYYYYYYYYYY)&NEW-LINE;&TAB;Edit replacement priv?mask (when file open) None&NEW-LINE;&TAB;Set backup user accessO[Readonly/Read-Write] R/W&NEW-LINE;&TAB;Set file tamper check&NEW-LINE;&TAB;SetGfile password Set AccFail-action cmd @GCY$CM:JTACTN&NEW-LINE;&TAB;EnterNsecurity key&NEW-LINE;&TAB;Set conditional softlink (None)&NEW-LINE;&TAB;GrantJidentifier on open/revoke on close ( )&NEW-LINE;&TAB;Quit, make no changesL&NEW-LINE;&TAB;Done, update file controls now&NEW-LINE;&TAB;Perform databaseHmaintenance commands&NEW-LINE;&TAB;Apply selected mods to all wild files &NEW-LINE;MIf we now want to control when this file may be accessed, we select the "Edit>time-use profile" item and get the screen following:&NEW-LINE; &NEW-PAGE;D Time Usage Permission Editing (by hour)&NEW-LINE;. Current ProfileHYYYYYYYYYYYYYYYYYYYYYYYY&TAB; &TAB; M11111111112222&NEW-LINE; 012345678901234567890123&NEW-LINE;NKey: &NEW-LINE;Y - checked acc. N - No access except bkp D - no access at all O&TAB; U - Unchecked acc P - Priv checks onlt R - Readonly access only&NEW-LINE; &TAB;X - R/W chks only&NEW-LINE;N --> 0-1AM&TAB;12N-1PM Quit this menu, no changes&NEW-LINE;&TAB;1-2AMN&TAB;1-2PM Exit, apply changes&NEW-LINE;&TAB;2-3AM&TAB;2-3PM&NEW-LINE;&TAB;3-4AM&TAB;3-4PM&NEW-LINE;OTAB;4-5AM&TAB;4-5PM&NEW-LINE;&TAB;5-6AM&TAB;5-6PM&NEW-LINE;&TAB;6-7AM&TAB;6-7PMP&NEW-LINE;&TAB;7-8AM&TAB;7-8PM&NEW-LINE;&TAB;8-9AM&TAB;8-9PM&NEW-LINE;&TAB;9-10AGM&TAB;9-10PM&NEW-LINE;&TAB;10-11AM 10-11PM&NEW-LINE;&TAB;11-12AM 11-12M &NEW-LINE;ITo explain the key: Y means normal checked access, checking all securityMcriteria. N means No access, except that the "backup" account may access theOfile. D means no access at all, to anyone. U means Unchecked access. The extraNEACF tests are skipped. P means only the test that allows open if the processKhas only privileges also in the "Max-privs-to-open" list. R means Read-onlyNaccess. Opens for r/w access are denied. X means no tests for readonly opens,>extra EACF checks only for &TAB;R/W opens to a file.&NEW-LINE;GEach letter selects an access code for one hour of every day.&NEW-LINE;OIf I want to disallow use (except backup account use) of the file from 2-3AM, IMselect that hour and enter N. The selection question is as follows:&NEW-LINE;,Give code for this hour access:: N&NEW-LINE;OIf I know that between 9AM and 3PM the file should be open to all there with noHadded checks for reading, but I want to prevent writing except for usersNallowed by the rest of EACF, I can use the X code for those hours. When I have(done so the screen looks like:&NEW-LINE; &NEW-PAGE;D Time Usage Permission Editing (by hour).&NEW-LINE; Current ProfileLYYNYYYYYYXXXXXXYYYYYYYYY&NEW-LINE; 11111111112222O&NEW-LINE; 012345678901234567890123&NEW-LINE; Key:&NEW-LINE; YF- checked acc. N - No access except bkp D - no access at all &TAB; U -MUnchecked acc P - Priv checks onlt R - Readonly access only&NEW-LINE;&TAB;X -R/W chks only&NEW-LINE;M&TAB;0-1AM&TAB;12N-1PM Quit this menu, no changes&NEW-LINE;&TAB;1-2AMF&TAB;1-2PM --> Exit, apply changes&NEW-LINE;&TAB;2-3AM&TAB;2-3PM &NEW-LINE;&TAB;3-4AM&TAB;3-4PM&NMW-LINE;&TAB;4-5AM&TAB;4-5PM&NEW-LINE;&TAB;5-6AM&TAB;5-6PM&NEW-LINE;&TAB;6-7AMF&TAB;6-7PM&NEW-LINE;&TAB;7-8AM&TAB;7-8PM&NEW-LINE;&TAB;8-9AM&TAB;8-9PM6&NEW-LINE;&TAB;9-10AM&TAB;9-10PM&NEW-LINE;&TAB;10-11AM.10-11PM&NEW-LINE;&TAB;11-12AM 11-12M&NEW-LINE;LNotice the Current Profile now shows X access codes between 9AM and 3PM (andNthe cursor has been moved by hand to the exit item.) Now we can exit this menu6and see that the time access profile is set.&NEW-LINE;MWhere the file is not executable, a replacement privilege mask makes no senseNfor it, but if we wanted to set one the screen would look like this:&NEW-LINE; &NEW-PAGE;N Privilege Mask to Replace all priv masks&NEW-LINE; Privilege Set Up&NEW-LINE;K --> Done setup MOUNT&TAB;U05&TAB; U25&NEW-LINE;&TAB;Set all priv OPERN&TAB;SECURITY U26&NEW-LINE;&TAB;Clr all priv EXQUOTA U07&TAB; U27&NEW-LINE;J&TAB;CMKRNL&TAB; NETMBX&TAB;U08&TAB; U28&NEW-LINE;&TAB;CMEXEC&TAB; NVOLPRO&TAB;ACNT&TAB; U29&NEW-LINE;&TAB;SYSNAM&TAB; PHY_IO&TAB;U10&TAB; U30O&NEW-LINE;&TAB;GRPNAM&TAB; BUGCHK&TAB;U11&TAB; U31&NEW-LINE;&TAB;ALLSPOOL ? PRMGBL&TAB;U12&TAB; Set NO mask&NEW-LINE;&TAB;DETACH&TAB; MSYSGBL&TAB;ALTPRI Make no changes&NEW-LINE;&TAB;DIAGNOSE PFNMAP&TAB;U14I&NEW-LINE;&TAB;LOG_IO&TAB; SHMEM&TAB;U15&NEW-LINE;&TAB;GROUP&TAB; ,SYSPRV&TAB;U16&NEW-LINE;&TAB;NOACNT&TAB; ,BYPASS&TAB;U17&NEW-LINE;&TAB;PRMCEB&TAB; OSYSLCK&TAB;U18&NEW-LINE;&TAB;PRMMBX&TAB; SHARE&TAB;U19&NEW-LINE;&TAB;PSWAPMO&TAB; UPGRADE U20&NEW-LINE;&TAB;SETPRI&TAB; DOWNGRADE U21&NEW-LINE;L&TAB;SETPRV&TAB; GRPPRV&TAB;U22&NEW-LINE;&TAB;TMPMBX&TAB; READALL 6U23&NEW-LINE;&TAB;WORLD&TAB; U04&TAB;U24&NEW-LINE;LThe privileges selected will replace all a process' privileges which has theLfile open, until the file closes. Note the "Set NO mask" item means that youLdon't want privileges to be modified when the file is open. . Note that bothKcurrent and authorized privilege masks are replaced. This prevents anythingKfrom setting privs with the $setprv service, since the authorized privilege mask is replaced also.&NEW-LINE;KIf we want to set a file password, we select the menu item and get a promptthus:&NEW-LINE;8Enter file password: Thisisaprettylongpassword&NEW-LINE;OThe password will not echo, and you are asked for it twice to ensure you had notyping mistakes.&NEW-LINE;KWe can enter a security key; this will allow privilege, identifier, or baseMpriority changes to work if it matches the one used for the disk in the setupIscript. This prevents random people from marking their files and altering:privileges. The question asked looks like this:&NEW-LINE;Enter security key:&NEW-LINE;LAgain, the security key does not echo and is asked for twice to ensure it isread properly.&NEW-LINE; &NEW-PAGE;&TAB;Hiding Files&NEW-LINE;IAlso we can arrange that another file be opened if the access is refused.Msuppose we want EACF to force an open of VDB2:[EVERHART]LOGIN.COM in the case!access is denied. We select the "MSet conditional softlink" item and get a prompt. With our reply it looks likethis:&NEW-LINE;NEnter device:file to open if access denied: VDB2:[EVERHART]LOGIN.COM&NEW-LINE;&TAB;Action Commands&NEW-LINE;NYou will notice the menu item "Set AccFail-action cmd" here. This is a commandNwhich can be executed whenever someone tries to open the file and is rejected.NThis command runs in a spawned procedure and can be any command at all. If theMcommand is terminated with a "\" character, it is executed with no arguments.GOtherwise it is passed 5 arguments, namely the username of the rejectedLaccessor, the terminal name, the file ID (as two hexadecimal longwords), andIthe PID (Process ID) of the process whose access was rejected. An exampleMroutine named JTACTION.COM is furnished which just sends email to SYSTEM whenKsuch an access is attempted. Any desired commands are permitted, though youKshould be aware that access is delayed till the command finishes. Hence anyKlong actions may be best placed into SUBMIT commands. This mechanism can beLused to provide for prompt notice of attempted file access by whatever meansLare convenient, to suspend offending processes, or whatever else is desired.JNote that the commands can be different for each file, permitting tailoredMresponses. The default is no such commands are executed unless you enter one.EMThe current selection, if any, is displayed on the menu. It is suggested that Loptions such as turning on session recording via a SPY type program could be*one useful action to enter here.&NEW-LINE; 1$&TAB;Automatic Identifiers&NEW-LINE;OIfp@ SAFETY013.AB  %[EVERHART.JTDEMO]EACF_USER_MAN.SGML;1P> we want an identifier on the file while it is open we can grant one with theNNmenu item. Suppose we enter the identifier FIELD. The prompt and response looklike:&NEW-LINE;228Enter identifier to associate with file: FIELD&NEW-LINE;8MWhen done with all changes so far (including setting a priv mask on open that Lhas TMPMBX and NETMBX in it and nothing else) the menu looks like:&NEW-LINE; &NEW-PAGE;H Extended Access Control Facility - File Marking&NEW-LINE;K&TAB;File VDB0:[EVERHART]ND.TXT;7&NEW-LINE;&TAB;Edit max-privs-to-open maskRN(current: DFFFFFFFFFFFFFFF)&NEW-LINE;&TAB;Set base priority override (current:MNone)&NEW-LINE;&TAB;Edit permitted user list (*)&NEW-LINE;&TAB;Edit forbidden 9user list (GUEST)&NEW-LINE;&TAB;Edit permitted term. listMO(*)&NEW-LINE;&TAB;Edit forbidden term. list (None)&NEW-LINE;&TAB;Edit permittedE6image list (*)&NEW-LINE;&TAB;Edit forbidden image listG(None)&NEW-LINE;&TAB;Edit backup account list (None)&NEW-LINE;&TAB;EditLOtime-use profile (YYNYYYYYYXXXXXXYYYYYYYYY)&NEW-LINE;&TAB;Edit replacement priveKmask (when file open) 0010800000000000&NEW-LINE;&TAB;Set backup user accessn8[Readonly/Read-Write] R/W&NEW-LINE;&TAB;*Set file tamperKcheck&NEW-LINE;&TAB;Set file password Set AccFail-action cmd @GCY$CM:JTACTNuI&NEW-LINE;&TAB;*Enter security key&NEW-LINE;&TAB;Set conditional softlinkiG(VDB2:[EVERHART]LOGIN.COM)&NEW-LINE; --> Grant identifier oneKopen/revoke on close (FIELD)&NEW-LINE; &TAB;Quit, make no changes&NEW-LINE;aN&TAB;Done, update file controls now&NEW-LINE;&TAB;Perform database maintenanceFcommands&NEW-LINE;&TAB;Apply selected mods to all wild files&NEW-LINE;tEIf we select Quit (to abandon the marking) or Done (to perform it) we,(eventually get another prompt:&NEW-LINE;p&File(s) to mark (? for dir):&NEW-LINE;iIand can either enter a filename or a return to exit the script.&NEW-LINE;n GNote that if you have not entered a security key, the selection of basecIpriority, replacement priv mask, or identifier will not be effective. TheiKsecurity key must be entered, and must match that entered for the volume atlMEACF startup to be effective. This protects against unautorized file markingslMcausing security problems. If any of these are entered and no security key islFentered, you will be warned and given the chance to go back.&NEW-LINE; GThe "Apply selected mods to all wild files" is used only where the fileeNspecification given is a wildcard one, and means that the markings just set upNfor the first file will be applied to all files in the wildcard specification.KIf this is a huge number of files it may take some time. If you have markedlOfiles in the fullscreen front end, this option will apply the selected controlsnNto all files you selected. Thus you select files, then set up access controls,Fand then apply the access controls to the whole list for simplest use. &NEW-LINE;aGThe "Perform database maintenance commands" option selects various EACFhImaintenance operations. The menu it brings up is the following:&NEW-LINE;er &NEW-PAGE;sH&TAB;Extended Access Control Facility&NEW-LINE;&TAB;MAINTENANCE COMMANDS &NEW-LINE;lD&TAB;Delete this entry&NEW-LINE;&TAB;Remove all database entries forLnow-deleted files&NEW-LINE;&TAB;Create listing of all files marked&NEW-LINE;N&TAB;Repair deleted ACEs (ANY such are a security issue!)&NEW-LINE;&TAB;ChangeKor delete a string in all lists&NEW-LINE;&TAB;Done with this menu&NEW-LINE;dO"Delete this entry" means delete the currently selected file's ACE and databaseb2entry, removing it from EACF protection.&NEW-LINE;N"Remove all database entries for now-deleted files" means to go over the wholeKdatabase and delete any entries referring to files which have been deleted.pHThis should be done periodically to ensure that the database file is notNcluttered with old information. It is handled in this way so it will work evenMif files are deleted with EACF disabled. (If the system logical GCY$DELMNT isMIdefined to be "OK", then EACF will delete database entries when files areo;deleted to reduce the need for this maintenance.)&NEW-LINE;tsN"Create listing of all files marked" will create a sequential list file of all4marked files in the database in the format&NEW-LINE;rFilename (fileid)&NEW-LINE; &Ksuitable for the /FILENUM command's input. This can be used for any desirediHpurpose and is created as JTD$CM:OP<device>.GDB_LIST. The DCL symbolOJTA_LISTFILE also is set to the filename value. The intent is that this file issKused to set up the map of all marked files used in the /FILENUM switch (seecabove).&NEW-LINE;cM"Repair deleted ACEs" goes over the database and checks that the correct EACFcHACE (file mark) is in place on each file. Any files whose ACEs have beenMdeleted are possible evidence someone was trying to access a file EACF deniedeJaccess to. Since the ACEs are marked hidden and privileged, this generallyJmeans a privileged user. Warnings are output to the OPCOM log and the userOterminal if this is seen. The ACEs are then reconstituted. Running this item is,Oa good idea also; it should be done periodically to ensure that protected fileseNSTAY protected. Files attacked in this way are protected anyway if they are inOthe list supplied to the /FILENUM:file-list-name.typ command. If they were not,,Mthey may have been compromised and should be checked carefully. If they were,sNEACF protection was not lost, but it is likely someone tried to break the EACFprotection.&NEW-LINE; tH ************************************************************ &NEW-LINE;iMThese kinds of events represent security related attacks by privileged users.LThey must be taken VERY seriously. EACF output to the operator log will giveNmore information about any denied accesses if the /FILENUM feature was used soNthat prot, ection was not actually lost. Also this will show potential earlierFattempts to access the file from before the ACE was deleted.&NEW-LINE;tJ"Change or delete a string in all lists" is used, for example, to remove aMusername from all lists in the system requiring only one command per disk. ItMglobally replaces one string in the lists with another. It should be recalledHthat since this is literal, if you are, for example, renaming a terminalNserver, you must replace the selection strings actually in the database, whichLare likely to be of form ",*name*" rather than plain strings. The menu frontIend is such that the "`" character (accent grave) cannot appear in eitherlMstring. The underlying utility can use any delimiter. However, this charactertNis illegal in all the selections likely to be there. The string changed cannotKbe null. However, it is possible to add a user to a group by replacing, fora?example "USER1" by "USER1,USER2". This can be useful.&NEW-LINE;eo#&TAB;COMMAND - LINE USAGE&NEW-LINE;raMEACF defines several commands discussed more fully in the file JTCOMMAND.DOC,YNwhich permit use of and control of EACF from DCL command lines. Among them are9the following commands, mentioned briefly here.&NEW-LINE;_TN* MARKFILE - Set EACF security markings on files as discussed above. This usesKthe command file JTMARK_FILES.COM and allows marking one or a collection of 4files, or editing their security profiles.&NEW-LINE;G* MARKSDH - Enter or edit security markings on files. This differs fromeKMARKFILE in that a fullscreen file display is presented first to allow easyeNgraphical selection of files to operate on, with the assumption that the files4are in the current default directory tree.&NEW-LINE;gI*FILEPASSWORD - This allows one to enter passwords for files protected by Kpassword controls. It should be used by a process before attempting to opentKsuch files. If the password entered for a file is correct, this will permitsaccess to the file.&NEW-LINE;ieK* JTEXEMPT - This command has two forms:&NEW-LINE; JTEXEMPT JTAn: andc+&NEW-LINE; JTEXEMPT/DEAS JTAn:&NEW-LINE;ceMand serves to exempt the current process from filtering by EACF, DPS, and HSM Kin the first form, or to re-enable such filtering by the second form of thefJcommand. The disk associated with the intercept driver JTAn: is the one toNwhich access is affected. Whenever this command is used (and it should be usedOvery sparingly, and protected against unauthorized use) it will log the fact of_Mits use and who used it so that it cannot be readily used silently. Note thatdNif the JTEXEMPT image is access controlled by EACF, additional controls on itsuse can be enforced.&NEW-LINE;gFThe system also defines the verb JXSET which can exempt a process fromOcontrols. It should be made available only to trusted individuals, however. ItsEuse is logged.&NEW-LINE;  !&TAB;PERFORMANCE ISSUES&NEW-LINE;aOHighest performance at runtime is obtained by using the maintenance commands tocIcreate a list of all files in the database and loading this into the EACFMdatabase in kernel mode, selecting the option that tells EACF only to inspectLfiles marked in kernel. In this mode, essentially the only files which incurNmore than a few extra instructions overhead at runtime are those known to haveLmarkings on them; the rest are quickly passed over. If however the number ofKfiles so marked exceeds around 10,000, it is probably best just to let EACFeNinspect all files for markings. As long as there is any header cache at all inOthe system in that case, the extra header access done to read the ACL will onlyrOuse the cache, and not cause another disk access. Also, the disk containing the,KEACF databases should ideally be as fast as practicable (and remember: EACFtMshould also be used to protect those database files from tampering). Finally,rIthe EACF servers can profitably be given higher than normal priority, andcNshould be. They are I/O intensive when used, and system responsiveness will beJimproved if the EACF servers are run at software priority greater than thenormal 4.&NEW-LINE;neMEven if EACF is checking all files, system access time will not be noticeablyALaffected save for those files which have extended checks, and in those casesMthe checking may add time. The longest operation is the file integrity check.eNThis check requires, if the file length has not changed, that the file be readNcompletely before opening by the user, to ensure that it has not been tamperedOwith. This is reasonable for short scripts and the like. It should be done with Kcaution for 30000 block images. (If file length changed, this is noticed atnonce.)&NEW-LINE; 0Other operations take negligible time.&NEW-LINE;tMEACF can be set up with as many servers as desired, from one for all disks iniKthe system to one per disk. Basically, the more servers there are, the moreaMopens with EACF checks can run in parallel. The servers are however activatedCMonly where it is known there is a file marked which needs server access. ACEseKare read from a kernel thread, of which there can be many active at a time.eLAccordingly one EACF server is likely to suffice for most systems.&NEW-LINE;l &TAB;USAGE NOTES&NEW-LINE;ETo show some of the uses of these capabilities, let's take an exampledsituation.&NEW-LINE;wGLet's say we have several files whose contents are confidential (say, aNbusiness' general ledger) which need to be manipulated by a few programs whichJwe'll call GL, AP, AR, IN, and PR for short. What we want to avoid is that$anyone browse these files.&NEW-LINE;lNOne way to do this is to create an identifier (call it GLG) and set up ACLs onOall the files which grant access to the files to holders of identifier GLG, but Ldeny access to all others. Then we arrange that each of the 5 images has theKGLG identifier granted when it is run (the programs are set for E (execute)vMaccess only) and now the programs in question can get to the files.&NEW-LINE;fiNIF nothing else in the system ever gets the identifier GLG, and IF nobody uses privilege, we're done.&NEW-LINE;l8Note however that there are two disadvantages:&NEW-LINE;eL1. The control is scattered around, so you need to do considerable poking toNfind that nobody else might have the GLG identifier normally, and you must setIthe ACLs on all files that the GL, AP, AR, IN, and PR access.&NEW-LINE;2.k;Anyone with privileges can override the controls.&NEW-LINE;vONote that you can fix objection #2 by prohibiting access to any process holding IREADALL or BYPASS privileges. Ensuring that nobody has the GLG identifierc1requires separate examination, however.&NEW-LINE;N&DIf it is now decided that access at night to these records should beOprohibited, EACF can simply be set to disallow access during those hours to theiMfiles, or possibly to the GL, AP, etc. programs that access them. Notice thatoLwith pure ACLs this is quite awkward, and blocking privileges is impossible.With EACF, it's easy.&NEW-LINE;lv<However, there is a neater way to accomplish this.&NEW-LINE;eIOn each file to be accessed by the GL, AP, AR, IN, or PR programs, have alMpermitted image list containing these image names, and a forbidden image listsMof * (everything) so that only those images can access the files in question,"regardless of privilege.&NEW-LINE;fJNote that now no identifier needs to be created, and the files used by theNprograms are clearly marked so that it is obvious by looking at them using theOmarking script that only the selected images have access. Moreover, this cannott(be overridden q@ SAFETY013.AB  %[EVERHART.JTDEMO]EACF_USER_MAN.SGML;1PSwith privileges.&NEW-LINE; KNotice too that preventing access at night to this data is done in the samevOrecords, and in these cases, you protect the confidential data, not necessarily Ithe programs (which might be run at night on test data). All the security Drelevant controls are visible in the file marking display.&NEW-LINE;O It may occur to some to ask how the data gets backed up now. One can of coursevLset certain times of day for uncontrolled access to the files in question. AKsimpler way is to have a special copy of BACKUP that is permitted unlimited system access.&NEW-LINE;gNThe CLD for such a copy, assuming it is called "SYSBACKUP" would be as followsG(using the VERB utility to extract the original BACKUP command languageodefinitions):&NEW-LINE;AOdefine type ENCRYP_VAL&NEW-LINE; keyword NAME value (type=$outlog)&NEW-LINE; sKkeyword ALGORITHM value (default="DESCBC",type=$outlog)&NEW-LINE; keywordnOVALUE value (list)&NEW-LINE; define syntax BACKUP_LIST&NEW-LINE; parameter P1.N, label=INPUTS , prompt="From" value (list,type=$infile)&NEW-LINE; parameterMP2 , label=OUTPUTS , prompt="To" value (list,type=$outfile)&NEW-LINE; definesKtype MEDIA_FORMAT_TYPE keyword COMPACTION negatable&NEW-LINE; define verbtNSYSBACKUP image SYSBACKUP parameter P1 , label=INPUTS , prompt="From" valueF(required,list,type=$infile)&NEW-LINE; parameter P2 , label=OUTPUTS ,Mprompt="To" value (required,list,type=$outfile)&NEW-LINE; qualifier ANALYZE Knonnegatable&NEW-LINE; qualifier ASSIST default&NEW-LINE; qualifier BACKUPfM&NEW-LINE; qualifier BEFORE value (required)&NEW-LINE; qualifier BLOCK_SIZE tNvalue (required)&NEW-LINE; qualifier BRIEF nonnegatable&NEW-LINE; qualifierOBUFFER_COUNT value (required)&NEW-LINE; qualifier BY_OWNER value (type=$uic)lJ placement=local&NEW-LINE; qualifier COMMENT value (required)&NEW-LINE; Hqualifier COMPARE&NEW-LINE; qualifier CONFIRM&NEW-LINE; qualifier CRC Jdefault&NEW-LINE; qualifier CREATED&NEW-LINE; qualifier DELETE&NEW-LINE;Gqualifier DENSITY value (required)&NEW-LINE; qualifier ENCRYPT valuet:(list,type=ENCRYP_VAL)&NEW-LINE; qualifier EXCLUDE valueN(required,list,type=$infile)&NEW-LINE; qualifier EXPIRED&NEW-LINE; qualifierKFAST&NEW-LINE; qualifier FILEMERGE nonnegatable&NEW-LINE; qualifier FULL O&NEW-LINE; qualifier GROUP_SIZE value (required)&NEW-LINE; qualifier IGNORE oHvalue (required,list,type=$infile)&NEW-LINE; qualifier IMAGE qualifierLINCREMENTAL&NEW-LINE; qualifier INITIALIZE&NEW-LINE; qualifier INTERCHANGEO&NEW-LINE; qualifier JOURNAL value (type=$outfile)&NEW-LINE; qualifier LABELeF value (required,list)&NEW-LINE; qualifier LIST , syntax=BACKUP_LIST Ononnegatable value&NEW-LINE; qualifier LOG&NEW-LINE; qualifier MEDIA_FORMAT Ovalue (required,type=MEDIA_FORMAT_TYPE)&NEW-LINE; qualifier MODIFIED&NEW-LINE;hH qualifier NEW_VERSION&NEW-LINE; qualifier OVERLAY&NEW-LINE; qualifierKOWNER_UIC value (type=$uic) placement=local&NEW-LINE; qualifier PHYSICALrO&NEW-LINE; qualifier PROTECTION value (list) placement=positional&NEW-LINE; kKqualifier RECORD&NEW-LINE; qualifier RELEASE_TAPE nonnegatable&NEW-LINE; Bqualifier REPLACE qualifier REWIND&NEW-LINE; qualifier SAVE_SET Oplacement=local&NEW-LINE; qualifier SELECT value (required,list,type=$infile)gI&NEW-LINE; qualifier SINCE value (default="TODAY")&NEW-LINE; qualifierrLTAPE_EXPIRATION value (required,type=$datetime) placement=local&NEW-LINE; Kqualifier TRUNCATE&NEW-LINE; qualifier VERIFY&NEW-LINE; qualifier VOLUME rOvalue (required)&NEW-LINE; disallow (ENCRYPT.NAME and ENCRYPT.VALUE)&NEW-LINE;vL disallow (DELETE and RECORD)&NEW-LINE; disallow (DENSITY and MEDIA_FORMAT) &NEW-LINE;eMNow one adds the path to this copy of SYSBACKUP.EXE (a copy of BACKUP.EXE) tomJthe list of exempt images in EACF. (The correct full path is shown in SHOWIPROCESS/CONTINUOUS when the image is active for the process being shown.)b &NEW-LINE;kKIn so doing, now, the SYSBACKUP verb can be added to DCLTABLES and used forLOmaking system wide backups. Note too that EACF can be used to control access toeNthe SYSBACKUP.EXE image, permitting access to known people at known places andKtimes. It is possible, too, to deny access to anyone with privileges to theiJSYSBACKUP.EXE image and have EACF grant the privileges itself (so that theK"maximum privileges to open" mask would have only a few privileges, and theTO"replacement privilege" mask might have all privileges set). [One can also just;Nuse a VMS INSTALL to install the image with privileges.] In this way it can beKmade exceedingly difficult for anyone to use this system backup utility forTIunauthorized access. It also makes it fairly simple to allow an otherwiseLMunprivileged operator account to perform these backup duties without grantingWFthe account privilege. By limiting the ability to use the program to aHNONprivileged user, you make it much harder for anyone to gain "spoofed"access.&NEW-LINE;agLThe security model supported here is much richer than the default VMS model,Mand while it can be enhanced, it covers a great deal of ground in controllinge'who has access to what files.&NEW-LINE; hKHopefully the above discussion is helpful in describing some of the ways inl,which EACF facilities can be used.&NEW-LINE; (Appendix - Extra Odds and Ends&NEW-LINE;gJ(The intercept driver is also able to be set to prevent file opens where aJvolume is allocated or mounted privately. Normally such volumes' files areFprivate but the privacy can be overridden in normal VMS with the SHAREIprivilege. This option allows the volumes to remain private even so. NoteFMhowever that this can mean a print spooler will not have file access, and may,Ninhibit other actions, so that this is desirable only some of the time. AccessLto disks mounted /system or /cluster is not affected. This operation mode isGnot currently supported by the setup scripts however, as it is somewhatxMesoteric. One sets the 2048 bit of the function mask to enable this. One alsoeNcan enable fragmentation reduction by setting the 2 bit. By setting the 262144Lbit, one tells the driver to only examine opens of files that have had theirMfile numbers loaded into memory. This may sometimes be wanted for performancenOreasons. These and some other more esoteric functions are built into the driverd#and may be used as needed. The filerN jtcommand.doc gives information on the command language available in EACF andNon some other capabilities not shown via the menu interface in V1.) &NEW-LINE;rs%*[EVERHART.JTDEMO]EACF_USER_MAN.TXT;30+,C ./ 4O- 0123 KPWO56 %7`nT%89GHJ'Extended Access Control Facility (EACF) USER MANUALEThis manual is intended for use by those who will set up EACF and use&it to control file access on a system. Introduction:CEACF introduces a number of new capabilities to VMS. This manual is designed to:? * explain what these are and what their intended use is, andI * give information on how to mark files to achieve added capabilities.Overview, or, Why EACF:HWork any length of time in a computer facility and you hear the stories:Bsomeone reading another person's mail, some clerk telling a friendFhow much the boss makes, some systems programmer typing out a documentBthat contains long range company plans and was for Vice PresidentsJonly. People are often curious and occasionally malicious. Regardless, theDinformation loss can create serious problems, especially if it fallsEinto the wrong hands, or lands you in court because of some breach of privacy. BTechnical means to control this are often lacking. If you can onlyCallow or disallow read/write access to a file by someone, as is theCVMS norm, then (for example) the payroll clerk can edit the payroll@database. Doing this with the normal payroll application, at his?terminal during the day, might be perfectly OK. However, should@he be permitted to access it with, say, COPY? Someone developing=new software might need access to system areas to install hisFlatest versions. Should he, however, have access also to the technicalplans? @As these questions make clear, it is desirable for the system toElimit access to sensitive files. By doing so, it gives useful warning>when someone's curiousity gets out of bounds, prevents loss ofAinformation, and reduces organizational exposure to anyone givingAin to temptation to sell company secrets, by making those secrets*inaccessible outside of authorized limits.GExtended Access Control Facility is designed to prevent loss, damage orFunauthorized disclosure of data by controlling disk file access. Most Hsecurity breaches ultimately involve tampering with disk storage. OthersGsuch as login breakins are already dealt with fairly well by VMS if setGup properly. However, VMS doesn't make it possible to regulate what can2be done with highly sensitive data at all closely.IThe difficulty of allowing access with certain programs to certain files,Dfor certain people and times, has led to many incidents of VMS usersIbrowsing areas where they are not authorized by policy, but in which theyHhave access because their privileges work in a coarse grained way. OftenGthese are innocent curiousity. Sometimes they are industrial espionage.IWith most (some estimates are as high as 98%) of security breaches comingHfrom "insiders" exceeding their authority, this exposure is a problem inHany organization keeping data online which competitors shouldn't get at.JA number of products claim they prevent unauthorized file accesses in VMS.IUnfortunately, all of them currently on the market, with the exception ofIthis one, work by accessing data from the VMS AUDIT facility. The problemIwith this is that anyone even moderately familiar with VMS knows that theIAudit facility keeps track of security violations, and there are numerousKways to shut it off tracelessly, including code from public domain sources.8This renders the strategy of these packages ineffective.FWhat is just as bad, these products find out that an unauthorized fileKaccess has happened from Audit only after the fact. At that point, all theyKcan do is (attempt to) stop the image or its process, since the file accessIhas already happened, and often already succeeded. (Where the access is aJdelete, the file is already gone.) As a result, they require that a policyKbe in place to punish offenders after the fact, since they may have alreadyHdone some damage. It's hard to be relaxed about a breach in such a case.BEACF, on the other hand, lives in the VMS file system and preventsGunauthorized file accesses from happening in the first place. It is notJcircumvented by privileges, works whether the Audit facility is up or not,Fand can ensure that a protected file is NOT accessed where this is notIauthorized. Thus, the innocent browser cannot have done any harm, and mayJbe treated with less rigor than might be needed if damage or data loss mayHhave occurred. Also, while other packages have to use obtrusive measuresGlike process deletion to stop accesses, EACF can silently hide files ifKthat is desired. Where a real violation IS happening, this can be much moreIeffective in finding out what is being attempted than stopping a process.KEACF of course does generate logs of any detected violations so that noticeof them is preserved.JEACF is uniquely valuable in controlling access by privileged users. ManyJsites have people who have elevated privileges, but who should not be ableDto access payroll, grade files, company plans, etc., and who are notHprevented from this by VMS. EACF can protect against exactly such accessJ(and even discriminate AGAINST people with various privileges if you like)Kand gives extensive controls over privileges and their uses above those VMShas.JFinally, EACF is simple to use. You mark files for various accesses with aJmenu oriented utility which selects how a file (or set of files) should beImarked, or which will display what markings exist on a file. All securityKrelevant information is present at one time in an easily understood format;Kyou do NOT need to hunt through all disk file ACLs to find it, if it existsHat all. No normal VMS facilities are lost, either; VMS security controlsDcontinue to work normally, though EACF may in various ways alter theKoutcome of their tests in understandable ways. (An example of this might beJthat if you attach an identifier TWIT to a script, that script may fail toGopen some files which have ACLs prohibiting access to identifier TWIT.)KIf your business depends on any data on your VMS systems and your operation.is more than a VERY few people, you NEED EACF. Capabilities:$EACF offers the following abilities:K* You can specify a password for file access. This password must be enteredC before access is attempted, using an EACF utility for the purpose.B Then if the file password has been entered, and other EACF checksB satisfied, the file may be opened (or deleted). Otherwise, accessD is denied. The password can be anything at all, and the tokens left@ in user space to indicate the entered password are also processB dependent, so others cannot use them. The password can be changedC at any time using EACF, but allows control via a separate piece ofB knowledge if this is preferred to control by time, username, etc.A This facility has long existed in the mainframe world. Now it isE available for VMS. While it is less secure than encrypting the file,C this method also cannot cause a file to be lost forever if the one? who knows the key dies or forgets it. Also, changing the file D password is quick and easy, unlike changing its encryption, so that3 temporary access can be given and revoked at need.I* You can control access by time of day (in one hour increments). You canD use this facility to prevent file access during "after hours" times: where there is no reason to allow them to be accessed, or@ "open up" files during periods where normal controls are deemed1 adequate. The access modes for each hour can be:> Y - Access permitted provided all other security" checks pass.< r@ SAFETY013.AC  %[EVERHART.JTDEMO]EACF_USER_MAN.TXT;30OR> N - No access (except to users on backup list)B U - No CHECKS, let everything by EACF checks on thisB file during this hour. (DEC security remains! in effect.)9 P - Check privileges against max privs only@ R - Readonly access only, by anyone; r/w opens are< rejected. Other checks may deny access& totally as well.8 X - Allow r/o opens, test others normally.E D - Disallow access by ANYone (even the backup account)@ (Note that provision for a backup account exists, and it can be? forced to permit only read-only file access, but this facility2 allows further restrictions, operating per file.)> Notice that this means that writing to a file can be disabledB whenever one likes even if reading is left permitted. If there is@ a suspicion that some databases may be tampered with off hours,= this gives a simple way to protect them. The privilege check? mode is also of particular value, since it can disallow use ofC elevated privileges which might otherwise be used to bypass normal< system protections by industrial spies or other evil doers.J* You can control WHO can access a file (with both permitted and forbidden? usernames), WHERE they can access the file (with permitted andB forbidden terminal names), and WITH WHAT they can access the file2 (with both permitted and forbidden image names). > This is the major advantage of EACF. You have, for usernames,A terminal names, and image names, two lists each. You can specify? username strings that are acceptable or that must be rejected,? or can use * to indicate all, or & to indicate to skip a test.? Likewise you can specify permitted or forbidden terminal namesA (access port names are tried also if they exist), or image namesC that are permitted or forbidden. These are handled with the normal@ VMS wildcard conventions (except that in addition a string with@ & in it means to skip the test). Thus, to say that a given file? cannot be accessed with the COPY image one could add "*COPY.*"> to the forbidden image list. (Note: "Access" as used for EACF= means either open OR delete access. Renaming a file does not! have any effect on the controls.: The beauty of this is that all the EACF parameters can be; controlled in one spot, without huge ACLs and unmanageable? machinery to fiddle with system logicals or identifiers on the= hour. This permits really fine grained access to your files.: If you have an accounting person who works on the payroll> file, you can authorize access to PAYROLL.DATA during working> hours, from that person's normal terminals, but forbid access< after hours, or from terminals like RT* or NT*, and you can; ensure that the file cannot be accessed with, for example,D COPY or BACKUP, or perhaps can only be accessed from *PAYROLL*.EXE*< if only a given suite of programs with such names should be; used for access. The access lists are all variable length,A comma-separated lists, so considerable flexibility is available.< Finally, you can prevent access using privilege (see below); to this data, so that people who have privileged access to: your system, yet have no physical access to the computer,< cannot simply turn on privileges and read the data to their heart's content.B* You can prevent files from being accessed with more than a given@ set of privileges. You do this by attaching a maximum privilege; mask to a file and if the process trying to open or deleteC the file has any privileges not in this mask, access is forbidden.@ The default mask forbids access using BYPASS privilege. This isB highly useful against curious privileged users (and any intrudersD who gain privilege) since it means that files can be protected evenC where local conditions force operation with many privileged users,D or where there is concern that intruders may gain privileged accessD to the machine. The tags that cause files to be checked in this way@ can be kept in kernel space as well, so that they are safe from% being seen even by privileged users.; NOTE: This and other checks are applied in addition to the< normal VMS checking. Hence even a file owner is affected by this checking.C Many sites have people who must do development and need to be ableC to use INSTALL or other privileged functions, and whose privilegesD cannot be revoked without impairing their ability to work. However,A most of these people have no need to be authorized to see, e.g.,A the payroll file. Conventional VMS offers NO way to prevent such@ access, and other file "security" packages work by watching theC output of the AUDIT utility, which can be silently and untraceably> shut off by publically available programs whatever someone isD running to listen to AUDIT. As a result, there has been, until now,A NO way to block access by these people to sensitive data left onD normal disk files, whatever file protection is attempted. EACF, due@ to its residence within the file system, works whether AUDIT is? turned on or not, and prevents these folks from using the fileD system to access such data. EACF offers the ability to either block@ access altogether, or to block write access only, and cannot be> confused by command obfuscation, nor does it care whether theA access is by program or by console command. Someone who has usedD privilege to change his username can be blocked by finding that theB privilege he needs to continue to access his system tables denies? file access. Thus even common tricks one might play to fool an> access system into permitting access can be thwarted readily.H* You can hide files. That is, if access is denied, you can arrange thatA instead of giving the user a "privilege violation" message, EACFB can arrange that another file (on ANY disk) can be opened insteadB wth no indication to a user exceeding his authority that anything? unusual has happened. EACF will of course generate logs of theA denied access, as it does in all cases of such, but the intruderA will not know that his access attempt has failed. Therefore, youC can arrange that he will open FAKE_SYUSUAF.DAT or FAKE_PAYROLL.DATB instead of the real SYSUAF.DAT or PAYROLL.DAT. This allows you toC safely allow him to leave evidence of his intentions (e.g. let himC try to enter system accounts, or see whose pay records he wants to@ see or tamper with) without exposing your real business data to@ tampering. In effect, the unauthorized user CANNOT SEE the real@ files, but "sees" other files which pose as them. In some cases@ this can be FAR safer than an error message, which will alert aB person exceeding his authority or an intruder that he has trippedC some protection barrier. Rather, it seems to pose no resistance toD tampering, but gives complete resistance, while permitting evidence( of what is attempted to be accumulated.H* You can attach a cryptographic checksum to the file. At any attempt toA open the file, this checksum is compared with that of the actualD data, and the file will not open if they do not match. This is usedA for detection of file tampering and means that if someone should= tamper with a file, it cannot be used in such a state. This? tamper-proofing works for any file type, and is not limited toC executables. However, it does require that the file be read in itsC entirety to compute the checksum before an open can be done, so it> is most effective for relatively short files. The most commonA examples of such are DCL scripts used by privileged users, whichB are frequent targets of attacks on system integrity. Certain fileD types (with very long maximum record sizes) cannot be fully checked? in this way, but these are quite rare; the system provides for9 checks of files with records far larger than the longest@ permissible DCL line. If only a partial check is possible, EACF@ will check what it can. This facility can be used to guard manyB critical files against tampering which might otherwise be a firstD step in breaking into a system. Note too that the file size is usedA in the checksum, and this is tested first, so that anything that= has changed the file size will fail the check very quickly. : Where a file is over 100 blocks long, the script asks for/ confirmation before marking it for this check.J* You can attach a replacement privilege mask to a file which will replaceC all process privilege masks when the file is executed. This can beB attached to any file, no matter how executed (so that interpretedD scripts can be tagged too). This is normally used to ensure that aD script or image never runs with elevated privilege. If you attach a; privilege mask to, say, a DCL script or image you got from> somewhere, and the mask contains no privileges except perhaps? TMPMBX (and maybe NETMBX), then whenever it runs, the process'C current and authorized privilege masks will be replaced with masksD having only these privileges. (The privileges are restored on exit? or when the file is otherwise closed.) Thus if any Trojan codeC would normally be triggered by the script finding that it had some@ elevated privileges, it would never find such, even if run fromC privileged accounts. Also, since the process lacks privilege while@ the script or image is running, it cannot abuse privileges thatB might otherwise be available to it. (The authorized mask is resetC to keep Trojan horse applications from using $setprv to negate the privilege lowering.)D You should note that the UIC is not altered, so that implied systemA access via a low UIC would not be affected by this. Also, if youD use this facility to raise privileges, be sure to allow E (execute)B access to the file only and check the file carefully. (See below? for a fuller explanation.) This facility can be used to attach@ privileges to DCL command files, but can open security holes ifB this is not done very carefully. Remember: if the file is opened,B the opening process' privileges are affected. When used to reduceB privileges, the facility provides a pro-active measure to inhibit, viruses and other covert code from running. Usage Note:@ Privilege, base priority, and identifier modification poses few= if any risks where these facilities are used to LOWER access; privileges. In this case, someone opening a file which has= these side effects only reduces his access. (This might even? be handy for privileged people wanting temporarily to assume a@ nonprivileged identity without using another account.) However,? any RAISING of privileges or access rights should be done thisA way only with great care. Anyone permitted to open a file markedA in this way can in principle gain these added privileges/rights.A In this case, other facilities of EACF should be used to prevent@ access to the file in undesired ways. For instance, by allowing@ E (execute) access but not read access, and enforcing this with? a max-privileges mask that prohibits it from being overridden,> and perhaps further limiting username and image allowed to do> the opens (prohibit *DCL*, for example). In this way security< needs can be served while privileges can be more completely$ controlled than vanilla VMS allows.H* You can attach identifiers to a file. These identifiers are granted on; file open, revoked on file close. This can be used for anyB convenient purpose, though again they tend to make sense most forD files which are executed. If used for data files, it is wise to use@ other EACF facilities to narrow the exposure these have. If for> example you have an identifier BUS_PLAN that grants access toA certain files, you can "attach" that identifier to an executableC or script and allow it to access them. (DEC has something similar,= but it won't work on interpreted code such as DCL scripts or< interpreted languages of any kind. With EACF, you can apply, protections regardless of language choice.)I* You can set the base priority of a process so that when a file is open,D the base priority is replaced by the one attached to the file. (TheA priority returns to its old state at close.) This can be used toD ensure that known "CPU hog" programs run with lowered base priorityA even if run interactively, or that some programs run with higherD priority where this is desired. The first case is likely to be more= useful. In some shops, elaborate systems to ensure that longC compilations (e.g., large Ada programs) run in batch have been setD up. This facility means that the CPU intensive programs do not gainB extra priority from running interactively if they are set up withD a base priority lower than normal. Likewise, some editors or screenB intensive applications may benefit from higher priority, and willA not cause problems so long as they don't go into a compute loop. NOTE0 The three above modifications are flagged with2 cryptographic authenticators so that the tags on/ the files cannot be altered or moved to other/ files. A key that is used on loading EACF for/ each disk is also used in the computation, so1 such keys cannot be entered successfully unless/ one also knows this value. It is essential to/ system security that these key values be kept3 secret, and is desirable that the tagging program/ be available only to systems personnel. These1 modifications do not require any user-mode code( to run, so impose negligible overhead.G* You can set EACF to have a set of "exempt" images which are permittedE full system access. Access to these images can however be controlled> by EACF. This permits EACF to avoid causing problems for disk= defragmenter programs and the like, which must have a global? view of the disk, without imposing large user burdens. Because> access to these exempt images is still controllable, they can* be prevented from causing security holes.< It is also possible, for example, it is possible to have aC copy of BACKUP which is allowed to have global file access, BUT it@ can be specified that this BACKUP image can be accessed only byD certain users, at certain terminals, at certain times, with certainD privileges etc., and perhaps accessed only with certain identifiersB which might be granted by attaching them to a backup script which= grants the identifiers. The full panoply of EACF controls is@ available to screen who can use this copy of BACKUP. Meanwhile,C another copy of BACKUP.EXE might be the one most users can access.B The specially privileged copy would typically be accessed using a= different verb, and could be used for making system backups.9 This facility is essential to permit programs like diskD defragmentgers to have global system access without interference or@ to allow system wide applications like backup to be run withoutB interference when done by authorized people at appropriate places5 or times. Up to 32 image pathnames can be exempted. : In addition, an image is provided which can be used by aA process to exempt itself from EACF checking or reenable it. ThisE image must be treated with extreme care, but can be used for complex) jobs where system maintenance is needed.J* There is provision for a "privileged user" list (empty by default) which? can be used to give certain users broader file access, limited= only by certain time codes and privilege mask tests (and DEC@ access controls), should such be desired. A supplied privileged@ utility can also be used to exempt a process from EACF controlsA where this is wanted for whatever reason. This is referred to in? ts@ SAFETY013.AC  %[EVERHART.JTDEMO]EACF_USER_MAN.TXT;30O>/he menus as the Backup Account. It can also be prevented from2 write access to files while allowing read access.K* You can arrange for EACF to execute an arbitrary set of commands wheneverB access to a file is denied. The username, PID, terminal, and fileA ID are available to the commands (plus whatever else you care to> make available). This can be used for mail or pager notice to> systems people, for suspending the process, or for starting aA keystroke monitor like SPY to record the process' activities, or@ for ANY other desired purpose. This takes place BEFORE the file can be accessed. DISCUSSIONGEACF is useful in relatively friendly environments, where it allows theB limits of authority to be defined in the machine, so a privilegedC person who may be inclined to browse in public directories will beC prevented from thoughtlessly printing private files with a messageB that he has exceeded his privileges, or in much more hostile ones> where tampering or industrial espionage (which often uses theB services of insiders who have been paid off to make (or have beenD tricked into making) a quiet copy of the payroll, or business plan,C files) might be a risk. In either case, it is rather easy to limitC access to sensitive files (or to directory files holding sensitive= files) to certain people, and to remove the opportunity, andC temptation, to disclose other data from people who might otherwiseA do so for whatever reasons. If, for example, your system managerA should be curious about a file named "NEW_PRODUCT_PLANS.DOC" and@ tries to look at it, isn't it better that he be unable to do soC (even though he may have BYPASS privilege) if company policy meansD he really shouldn't have access to it? Isn't HE safer with a systemC that will just block access rather than an alternative system that> can't block access, but will get him in trouble after he DOESC access it? Conventional VMS lacks the ability to do a detailed job@ of limiting access to such areas, so inadvertently this kind ofA thing happens a lot. With EACF installed, it is easy to have theC machine understand, and enforce, the limitations of access companyC policy and safety demand. Thus, inadvertent as well as intentionalB access is controlled, and data access can be managed properly for the first time.B EACF protections are in addition to normal VMS ones, and a person? must be able to open a file to mark it for security. Henca all@ normal VMS group access provisions can be used to control which files a given group can mark.!WHAT IS HAPPENING TO FILES MARKEDHYou mark files in EACF using a menu-oriented file marking script, thoughHa command line interface exists if it essential to use one. This markingHresults in an application ACE (the file mark) being attached to the fileHand in the EACF database being updated to reflect desired actions on theIfile. In addition, EACF startup can be set so that the server is passed aClist of file IDs which will be inspected. This list may contain any5number of IDs per disk and can be created from simple$ DIR /FILE_ID Mcommands. The list is a sequential file each line of which contains a file IDJin the form (n,s,r) where n is file number, s is sequence number, and r is,relative volume number. For example the line LOGIN.COM;85 (9493,12,0) will do fine.KWhen a file is marked like this, one uses a /FILENUM:sequentialfilespec.typLswitch to tell the server where the list of IDs is, and the server will thenLcheck extended access even if the file mark has been damaged or removed fromLthe file. A file mark must have been created in the first place, so that theLEACF database will have been filled in, but if a mark has been deleted, this=will prevent such deletion from interfering with EACF checks.MThere is an option in the menu system which checks that all files in the EACFHdatabase correspond to files with correct file marks and will regenerateMthese marks if any are missing. It also warns the operator of any files whoseMmarks have been deleted, since this may represent someone having attempted toGget around the EACF system's protection. Any unexplained cases of marksJdisappearing should be investigated as security breaches. If this happens,Kalso, it indicates which files should be in the kernel-based lists, so thatMthey will remain protected even if their marks are deleted entirely. There isKno mechanism for removing files from the kernel based lists except a rebootKand restart of EACF with a different, or no, /FILENUM switch on the commandto start the server process.HThe EACF setup script asks, for each disk selected, a security key (usedHas part of the authentication for all ACEs that change identifiers, baseFpriority, or privileges) and a file containing these file IDs. Either,Jboth, or neither may be selected. Note too that directories are files too,Band can be protected, with the usual caveats. However, if the fileE[000000]000000.dir is protected, EACF protection criteria can preventa volume from being mounted. HOW TO SET EACF UPPre-Installation:BBefore installing EACF, you should prepare for the installation by@making sure that there is enough nonpaged pool available for theFdynamic needs of the system. These vary somewhat but can be adequatelyHapproximated by increasing the SYSGEN parameter NPAGEDYN by the quantityF(10000 * (number of EACF daemons you will set up + 1)). Insert a line something like the followingADD_NPAGEDYN=30000Fin your MODPARAMS.DAT and run AUTOGEN. You may of course have adequateHnonpaged pool already (many systems will) in which case no modifications)are needed. SHOW MEM/POOL will show this.IYour system disk must have about 5000 blocks free to install EACF, thoughGif the EACF components are placed on a separate disk, system disk space?required for the final resident components is under 500 blocks. Installation:FEACF is installed by VMSINSTAL. From the system account, use a command4$ @SYS$UPDATE:VMSINSTAL EACF010 distribution_medium:Cto do the installation. The script will ask where EACF programs andAscripts should be stored, and most EACF components will be placedDthere. This can be anywhere on the system, provided that the disk isGmounted in your startup script before EACF is started. These componentsBwill occupy around 2000 blocks on a VAX, double that on an AXP, soEensure the disk chosen has room enough. When running the setup scriptBafter installation, the area chosen for the EACF components should4be specified as the area for EACF executable images.Post Installation:EEACF comes with a setup script which is to be run after the VMSINSTAL<script has installed the package. This script (JT_SETUP.COM)Egenerates a startup script which should be run from SYSTARTUP_VMS.COMEor SYSTARTUP_V5.COM at boot time. The script generated will start oneDaccess server which will be attached to all disks in the system, andBenough intercept driver units to control all disks selected. It isHperfectly legal and permissible to have many EACF servers, each handlingEone or more disks, however. This allows faster processing of securityAmarkings in some cases. The script offers an option to select theAstarting intercept driver unit number, so that it can be run moreBthan once, and will arrange to load a server for all disks in eachGrun. Normally it starts with intercept unit 0, but if you connect threeEdisks, you can run the setup script again and start at intercept unitG3 (since the prior run will have used 0, 1, and 2). Then with this run,Danother server will be started. It is up to you to ensure that disksallocated don't overlap.HJT_SETUP is fairly easy to understand. Its initial menu looks like this: EACF SETUP 18:11:55, --> *Set area to hold EACF database files6 Set start intercept driver unit number (now 0)+ *Set area for EACF executable images. Done this menu, process disk selection9 Remove a disk from an existing EACF configuration? Set images which are exempt from EACF (e.g. defraggers) Quit, do nothing< ( Asterisk means that a value already exists for the item.)@It allows you to specify where EACF database files are kept (for>the series of EACF intercept driver units you configure). Each>run of JT_SETUP will let you configure one or more disk units,<each of which uses a JT intercept driver, with its necessary:data areas. Normally this starts with JTA0: and goes up in<units, but if you want multiple servers you can run JT_SETUPEonce for each server and set the "start intercept driver unit number"Bitem to the start unit number, which should be one higher than the?maximum number of disk units configured so far. One JT unit can@control only one disk unit. Asterisk implies that values already4exist (perhaps from kitinstal) for these selections.BThe "Set images which are exempt from EACF (e.g. defraggers)" item?allows image device:[directory]filename.type;version strings toFbe specified for images which are exempt from EACF controls. Note thatCany such images can bypass all EACF actions, BUT you can and should+use EACF to control access to these images.CWhen you select the "Done..." item, you enter a menu to select disk<units to configure for this EACF server. It looks like this: EACF Configuration Disk Selection: Use arrows to move to selection. Use RETURN to select. End disk selection _ARISIA$DKA700: VMSSYS _ARISIA$DKB0: USRBAK _ARISIA$DKB400: DWU _ARISIA$DCA0: XRP07 _ARISIA$DCA2: XRP06 _ARISIA$DCA3: CDI _ARISIA$DCA4: XTRA _ARISIA$DCA5: CDTPL _ARISIA$VDB0: TEST1 _ARISIA$VDB1: TEST2 _ARISIA$DKB200:  _ARISIA$DKB300:  _ARISIA$DCA1:  _ARISIA$DCA6:  _ARISIA$DCA7:  _ARISIA$FQA0:  _ARISIA$FQA1:  _ARISIA$FQA2: I Type H for help. Currently on item 1 of 151Cwhere mounted disks appear first on the list, followed by all otherGdisk-class devices on the system. The display will scroll if more disks&are there than will fit on a terminal.AOnce you select a disk, you must enter a number of parameters forBthat disk. This is done in another sub-menu which looks like this: EACF DISK SETUP 18:19:45# --> Enter security key for disk9 Enter file of file IDs to load for kernel marking9 Examine only kernel-marked files for access tests: Set to automatically kernel-mark all files on load> (This requires generating the file list at boot)4 Generate filelist database and set to use it@ Act as if ALL files were kernel-marked (use if most are) Quit, do nothing. Done this menuMThe security key for the disk is the secret string (of any reasonable length)Lwhich is used to validate EACF actions that alter privilege, identifiers, orGbase priority. It must match the marking on a file or these will not beMaltered (which prevents random people from creating such markings). ThereforeLthis key should be well chosen and the EACF startup file carefully protectedIfrom browsers. Note that when a marking on a file is created which resetsKprivilege, grants an identifier, or resets base priority while that file isJopen, a file security key is asked for. That key must match the volume keyJentered here or the changes to process priority, identifiers, or privilegeKare not made. This prevents unauthorized people from gaining privilege even8if they are permitted to mark their own files with EACF.DThe other options are pretty self-explanatory. If you can afford the@time to create a file of IDs to load at EACF start, it makes theCsystem MUCH harder to avoid and allows the option of only examiningHmarked files, which reduces overhead on nonmarked files and is thereforeEa good idea too. Whether to use item 4 or item 5 depends on how oftenHyour files that need to be examined change. Item 4 (automatically kernelGmark all files on load) generates a complete list of all files that areDmarked at every boot. Item 5 generates a list when you select it andJuses that, rather than generating the list at every boot. This can suffice)for fairly static lists of files to mark.>Once you finish with the menu, it will create EACF_STARTUP.COMBand EACF_LOGIN.COM which are used to start EACF and to define someAsymbols needed for convenient use. EACF_STARTUP.COM should be runCfrom systartup_v5.com or systartup_vms.com (depending on version ofVMS) at boot time. WHAT TO MARKEYou will want to mark files (and perhaps directories, though rememberFthat files can be opened by file ID without going through directories)Fwhich are important to your business with EACF. Transient files shouldordinarily not be marked. ACritical system files should be marked. These include SYSUAF.DAT,DSYS$SYSTEM:NET*.DAT, and the startup scripts (so people can't easily<find out what nonstandard things you're running), as well asFany other .COM files usually run by SYSTEM. Be sure, however, to allow&access BY the SYSTEM account to these.HYou should also use EACF to regulate the access to the files in the areaIyou choose for your EACF data files. The files in JTD$DB and GCY$CM areasChold your security database and must be protected against access byCunauthorized people. It is also often a good idea to access protectEthe file marking utility also (filename JTAUTHMAINT.EXE) so that onlyDauthorized people may mark files. Limiting access to the *.GDB filesEto the image JTAUTHMAINT.EXE (and including the whole path) is a goodAidea. Also, the scripts used to start EACF up, which will containCthe volume access keys, should be protected against access too, so Bthat users cannot enter file markings that alter identifiers, etc.3If you use the SETUP script, the file to protect isSYS$MANAGER:EACF_STARTUP.COMFand it should be treated and protected at least as well as SYSUAF.DAT.BNote that the EACF setup script will, by default, protect the EACFAdatabases against access from images other than EACF's images and?BACKUP. It is recommended additional tailoring be done however.HOW TO MARK FILESGYou mark files in EACF by using the mark_files script JTMARK_FILES.COM.KThe MARKFILE command does this. (This presumes EACF has been installed andJgenerally presumes a privileged account to assure the ability to tag filesappropriately.)GA brief note first: permitted and prohibited usernames, imagenames, andKterminal names are matched with string matching, so that to allow access byJBACKUP.EXE, for example, you would use a string like *]BACKUP.EXE;*, sinceLotherwise it won't match the full path name which is available for matching.DTherefore most of the time your selection strings will contain the *Kcharacter, and the file marking script will issue a warning message if thisLis not present. If your selection, for example, IS the complete pathname forMan image, or the complete terminal name (or access port name) for an image orKterminal respectively this is not a problem. In any case, your selection isKused. If however you want to (dis)allow access by, say, COPY, you can do soLby excluding *COPY* more compactly. There is a limit in total size available?for this information, so conserving space is often a good idea. Now to actual use of the script.FIn fact there are two scripts. One is named JT_SEL_MARK.COM and uses aLfullscreen frontend as a selection front end. With this script, you set yourHdefault@ SAFETY013.AC  %[EVERHART.JTDEMO]EACF_USER_MAN.TXT;30O>Nt directory to the tree where you want to select files and run theLscript, using the arrow keys and spacebar to select/deselect files. When youLare satisfied with the selections, type G to mark the selected set of files.JThe selection menu is the same for both scripts. The MARKEACF command runs)the fullscreen - selection markup script.MThe other script (jtmark_files.com) asks for a file specification explicitly,which may contain wildcards.)The start of that script looks like this: $ MARKFILEFile(s) to mark (? for dir):EAt this point you select a file (or a wildcard file specification, inGwhich case you will be marking each in succession). The selection couldfor example be: $ MARKFILE2File(s) to mark (? for dir): VDB0:[EVERHART]ND.TXT.[Alternatively one can just use a command like" $ Markfile vdb0:[everhart]nd.txt&to accomplish exactly the same thing.]FAt this point, if the file exists, you are presented with a menu whichlooks like this:5 Extended Access Control Facility - File Marking( File VDB0:[EVERHART]ND.TXT;7@ --> Edit max-privs-to-open mask (current: DFFFFFFFFFFFFFFF)3 Set base priority override (current: None)% Edit permitted user list (*)( Edit forbidden user list (None)& Edit permitted term. list (*)) Edit forbidden term. list (None)& Edit permitted image list (*)) Edit forbidden image list (None)( Edit backup account list (None)9 Edit time-use profile (YYYYYYYYYYYYYYYYYYYYYYYY)9 Edit replacement priv mask (when file open) None: Set backup user access [Readonly/Read-Write] R/W Set file tamper checkE Set file password Set AccFail-action cmd @GCY$CM:JTACTION Enter security key( Set conditional softlink (None)5 Grant identifier on open/revoke on close ( ) Quit, make no changes' Done, update file controls now. Perform database maintenance commands. Apply selected mods to all wild filesGIn the above case, the settings are the defaults. The max-privs-to-openAmask excludes access with BYPASS privilege but allows all others.CIf we select the first item (by pressing (the RETURN key)) theDsystem shows another menu which looks like this (showing all but theBYPASS privilege selected:> Privileges Permitted For Opening File Privilege Set Up6 --> Done setup * MOUNT * U05 * U256 Set all priv * OPER * SECURITY * U266 Clr all priv * EXQUOTA * U07 * U276 * CMKRNL * NETMBX * U08 * U286 * CMEXEC * VOLPRO * ACNT * U296 * SYSNAM * PHY_IO * U10 * U306 * GRPNAM * BUGCHK * U11 * U31> * ALLSPOOL * PRMGBL * U12 Set NO maskB * DETACH * SYSGBL * ALTPRI Make no changes) * DIAGNOSE * PFNMAP * U14) * LOG_IO * SHMEM * U15) * GROUP * SYSPRV * U16) * NOACNT BYPASS * U17) * PRMCEB * SYSLCK * U18) * PRMMBX * SHARE * U19) * PSWAPM * UPGRADE * U20) * SETPRI * DOWNGRADE * U21) * SETPRV * GRPPRV * U22) * TMPMBX * READALL * U23) * WORLD * U04 * U24AAt this point we can toggle any privilege setting by selecting it+and when done select the "Done setup" item.=The "Set base priority override" item, when selected asks the question:4Enter base priority for process with this file open:Ewhich can be answered by a priority between 0 and 31. If outside this=range, or if nothing is entered, the priority setting is left/unset, which means that EACF does not alter it.The next 7 items:% Edit permitted user list (*)( Edit forbidden user list (None)& Edit permitted term. list (*)) Edit forbidden term. list (None)& Edit permitted image list (*)) Edit forbidden image list (None)( Edit backup account list (None)Fall lead to similar menus. If we select the "Edit forbidden user list"(item, for example, we get the following:# Edit Forbidden User List Current user list: None. * is wild card, & means omit this test --> Add users to list Remove users from list Replace list$ Quit, leave user list alone Done with this menuBIf the string when you are done contains a '&' character, the testHcorresponding to that menu is skipped. * on the other hand is a wildcardGcharacter. In several lists, a message is issued if no * is seen, sinceLimage paths or terminal lists will often contain them if they are to perform as expected.KPlease note that if a user is on the permitted list AND the forbidden list,Jhe is PERMITTED access. If he is on the forbidden list only but NOT on theEpermitted list, he is forbidden access. The same holds for images andJterminals. Thus if the permitted list is * (default) everyone is permittedFaccess. Change to & (or just something illegal like "=") to never findGa user on the permitted list, in which case the forbidden list governs.MIf only a few users are on the permitted list and the forbidden list containsEa * this way, only permitted users can access the file. Similarly forimages and terminals.HNow if I select "Replace list" and add the value GUEST, the question andresponse look like:Enter user list: GUESTCWhen we select the "Done..." item, we return to the top level whichnow looks like this:5 Extended Access Control Facility - File Marking( File VDB0:[EVERHART]ND.TXT;7@ Edit max-privs-to-open mask (current: DFFFFFFFFFFFFFFF)3 Set base priority override (current: None)% Edit permitted user list (*)) --> Edit forbidden user list (GUEST)& Edit permitted term. list (*)) Edit forbidden term. list (None)& Edit permitted image list (*)) Edit forbidden image list (None)( Edit backup account list (None)9 Edit time-use profile (YYYYYYYYYYYYYYYYYYYYYYYY)9 Edit replacement priv mask (when file open) None: Set backup user access [Readonly/Read-Write] R/W Set file tamper checkE Set file password Set AccFail-action cmd @GCY$CM:JTACTION Enter security key( Set conditional softlink (None)5 Grant identifier on open/revoke on close ( ) Quit, make no changes' Done, update file controls now. Perform database maintenance commands. Apply selected mods to all wild filesGIf we now want to control when this file may be accessed, we select the:"Edit time-use profile" item and get the screen following:. Time Usage Permission Editing (by hour).0 Current Profile YYYYYYYYYYYYYYYYYYYYYYYY0 0 111111111122220 012345678901234567890123J Key: Y - checked acc. N - No access except bkp D - no access at allN U - Unchecked acc P - Priv checks onlt R - Readonly access only X - R/W chks only> --> 0-1AM 12N-1PM Quit this menu, no changes7 1-2AM 1-2PM Exit, apply changes 2-3AM 2-3PM 3-4AM 3-4PM 4-5AM 4-5PM 5-6AM 5-6PM 6-7AM 6-7PM 7-8AM 7-8PM 8-9AM 8-9PM 9-10AM 9-10PM 10-11AM 10-11PM 11-12AM 11-12MTo explain the key:? Y means normal checked access, checking all security criteria.C N means No access, except that the "backup" account may access the file.% D means no access at all, to anyone.< U means Unchecked access. The extra EACF tests are skipped.? P means only the test that allows open if the process has only1 privileges also in the "Max-privs-to-open" list/; R means Read-only access. Opens for r/w access are denied.@ X means no tests for readonly opens, extra EACF checks only for R/W opens to a file.=Each letter selects an access code for one hour of every day.FIf I want to disallow use (except backup account use) of the file from@2-3AM, I select that hour and enter N. The selection question is as follows:"Give code for this hour access:: NGIf I know that between 9AM and 3PM the file should be open to all thereJwith no added checks for reading, but I want to prevent writing except forHusers allowed by the rest of EACF, I can use the X code for those hours.*When I have done so the screen looks like:. Time Usage Permission Editing (by hour).0 Current Profile YYNYYYYYYXXXXXXYYYYYYYYY0 0 111111111122220 012345678901234567890123J Key: Y - checked acc. N - No access except bkp D - no access at allN U - Unchecked acc P - Priv checks onlt R - Readonly access only X - R/W chks only> 0-1AM 12N-1PM Quit this menu, no changes7 1-2AM 1-2PM --> Exit, apply changes 2-3AM 2-3PM 3-4AM 3-4PM 4-5AM 4-5PM 5-6AM 5-6PM 6-7AM 6-7PM 7-8AM 7-8PM 8-9AM 8-9PM 9-10AM 9-10PM 10-11AM 10-11PM 11-12AM 11-12MGNotice the Current Profile now shows X access codes between 9AM and 3PMD(and the cursor has been moved by hand to the exit item.) Now we can;exit this menu and see that the time access profile is set.GWhere the file is not executable, a replacement privilege mask makes noDsense for it, but if we wanted to set one the screen would look likethis:A Privilege Mask to Replace all priv masks Privilege Set Up6 --> Done setup MOUNT U05 U256 Set all priv OPER SECURITY U266 Clr all priv EXQUOTA U07 U276 CMKRNL NETMBX U08 U286 CMEXEC VOLPRO ACNT U296 SYSNAM PHY_IO U10 U306 GRPNAM BUGCHK U11 U31> ALLSPOOL PRMGBL U12 Set NO maskB DETACH SYSGBL ALTPRI Make no changes) DIAGNOSE PFNMAP U14) LOG_IO SHMEM U15) GROUP SYSPRV U16) NOACNT BYPASS U17) PRMCEB SYSLCK U18) PRMMBX SHARE U19) PSWAPM UPGRADE U20) SETPRI DOWNGRADE U21) SETPRV GRPPRV U22) TMPMBX READALL U23) WORLD U04 U24DThe privileges selected will replace all a process' privileges which@has the file open, until the file closes. Note the "Set NO mask"Aitem means that you don't want privileges to be modified when theEfile is open. . Note that both current and authorized privilege masks@are replaced. This prevents anything from setting privs with the@$setprv service, since the authorized privilege mask is replacedalso.BIf we want to set a file password, we select the menu item and geta prompt thus:.Enter file password: Thisisaprettylongpassword=The password will not echo, and you are asked for it twice to"ensure you had no typing mistakes.CWe can enter a security key; this will allow privilege, identifier,Cor base priority changes to work if it matches the one used for theCdisk in the setup script. This prevents random people from marking$their files and altering privileges.% The question asked looks like this:Enter security key:?Again, the security key does not echo and is asked for twice toensure it is read properly. Hiding FilesIAlso we can arrange that another file be opened if the access is refused.Hsuppose we want EACF to force an open of VDB2:[EVERHART]LOGIN.COM in theDcase access is denied. We select the "Set conditional softlink" item4and get a prompt. With our reply it looks like this:DEnter device:file to open if access denied: VDB2:[EVERHART]LOGIN.COM Action CommandsAYou will notice the menu item "Set AccFail-action cmd" here. ThisEis a command which can be executed whenever someone tries to open theBfile and is rejected. This command runs in a spawned procedure andBcan be any command at all. If the command is terminated with a "\"Ccharacter, it is executed with no arguments. Otherwise it is passedG5 arguments, namely the username of the rejected accessor, the terminalFname, the file ID (as two hexadecimal longwords), and the PID (ProcessFID) of the process whose access was rejected. An example routine namedDJTACTION.COM is furnished which just sends email to SYSTEM when suchBan access is attempted. Any desired commands are permitted, thoughEyou should be aware that access is delayed till the command finishes.?Hence any long actions may be best placed into SUBMIT commands.DThis mechanism can be used to provide for prompt notice of attemptedBfile access by whatever means are convenient, to suspend offendingBprocesses, or whatever else is desired. Note that the commands canFbe different for each file, permitting tailored responses. The defaultBis no such commands are executed unless you enter one. The currentIselection, if any, is displayed on the menu. It is suggested that optionsAsuch as turning on session recording via a SPY type program could#be one useful action to enter here. Automatic IdentifiersFIf we want an identifier on the file while it is open we can grant one>with the menu item. Suppose we enter the identifier FIELD. Theprompt and response look like:.Enter identifier to associate with file: FIELDCWhen done with all changes so far (including setting a priv mask onFopen that has TMPMBX and NETMBX in it and nothing else) the menu lookslike:5 Extended Access Control Facility - File Marking( File VDB0:[EVERHART]ND.TXT;7@ Edit max-privs-to-open mask (current: DFFFFFFFFFFFFFFF)3 Set base priority override (current: None)% Edit permitted user list (*)) Edit forbidden user list (GUEST)& Edit permitted term. list (*)) Edit forbidden term. list (None)& Edit permitted image list (*)) Edit forbidden image list (None)( Edit backup account list (None)9 Edit time-use profile (YYNYYYYYYXXXXXXYYYYYYYYY)E Edit replacement priv mask (when file open) 0010800000000000: Set backup user access [Readonly/Read-Write] R/W *Set file tamper checkE Set file password Set AccFail-action cmd @GCY$CM:JTACTION *Enter security key< Set conditional softlink (VDB2:[EVERHART]LOGIN.COM)9 --> Grant identifier on open/revoke on close (FIELD) Quit, make no changes' Done, update file controls now. Perform database maintenance commands. Apply selected mods to all wild filesEIf we select Quit (to abandon the marking) or Done (to perform it) weeventually get another prompt:File(s) to mark (? for dir):?and can either enter a filename or a return to exit the script.GNote that if you have not entered a security key, the selection of baseIpriority, replu@ SAFETY013.AC  %[EVERHART.JTDEMO]EACF_USER_MAN.TXT;30O>macement priv mask, or identifier will not be effective. TheKsecurity key must be entered, and must match that entered for the volume atMEACF startup to be effective. This protects against unautorized file markingsJcausing security problems. If any of these are entered and no security key?is entered, you will be warned and given the chance to go back.GThe "Apply selected mods to all wild files" is used only where the fileKspecification given is a wildcard one, and means that the markings just setBup for the first file will be applied to all files in the wildcardJspecification. If this is a huge number of files it may take some time. IfMyou have marked files in the fullscreen front end, this option will apply theLselected controls to all files you selected. Thus you select files, then setLup access controls, and then apply the access controls to the whole list for simplest use.BThe "Perform database maintenance commands" option selects variousDEACF maintenance operations. The menu it brings up is the following:+ Extended Access Control Facility$ MAINTENANCE COMMANDS Delete this entry9 Remove all database entries for now-deleted files* Create listing of all files marked< Repair deleted ACEs (ANY such are a security issue!). Change or delete a string in all lists Done with this menuB"Delete this entry" means delete the currently selected file's ACE5and database entry, removing it from EACF protection.?"Remove all database entries for now-deleted files" means to goAover the whole database and delete any entries referring to filesCwhich have been deleted. This should be done periodically to ensureCthat the database file is not cluttered with old information. It isBhandled in this way so it will work even if files are deleted withAEACF disabled. (If the system logical GCY$DELMNT is defined to beF"OK", then EACF will delete database entries when files are deleted to&reduce the need for this maintenance.)B"Create listing of all files marked" will create a sequential list6file of all marked files in the database in the formatFilename (fileid)Csuitable for the /FILENUM command's input. This can be used for anyAdesired purpose and is created as JTD$CM:OP.GDB_LIST. TheHDCL symbol JTA_LISTFILE also is set to the filename value. The intent isAthat this file is used to set up the map of all marked files used#in the /FILENUM switch (see above).@"Repair deleted ACEs" goes over the database and checks that theKcorrect EACF ACE (file mark) is in place on each file. Any files whose ACEsDhave been deleted are possible evidence someone was trying to access>a file EACF denied access to. Since the ACEs are marked hidden@and privileged, this generally means a privileged user. WarningsBare output to the OPCOM log and the user terminal if this is seen.AThe ACEs are then reconstituted. Running this item is a good ideaCalso; it should be done periodically to ensure that protected filesBSTAY protected. Files attacked in this way are protected anyway if@they are in the list supplied to the /FILENUM:file-list-name.typDcommand. If they were not, they may have been compromised and shouldEbe checked carefully. If they were, EACF protection was not lost, but8it is likely someone tried to break the EACF protection.<************************************************************MThese kinds of events represent security related attacks by privileged users.LThey must be taken VERY seriously. EACF output to the operator log will giveKmore information about any denied accesses if the /FILENUM feature was usedGso that protection was not actually lost. Also this will show potentialDearlier attempts to access the file from before the ACE was deleted.A"Change or delete a string in all lists" is used, for example, toAremove a username from all lists in the system requiring only oneCcommand per disk. It globally replaces one string in the lists withAanother. It should be recalled that since this is literal, if you>are, for example, renaming a terminal server, you must replace@the selection strings actually in the database, which are likelyAto be of form ",*name*" rather than plain strings. The menu front?end is such that the "`" character (accent grave) cannot appearHin either string. The underlying utility can use any delimiter. However,Cthis character is illegal in all the selections likely to be there.CThe string changed cannot be null. However, it is possible to add aCuser to a group by replacing, for example "USER1" by "USER1,USER2".This can be useful. PERFORMANCE ISSUESCHighest performance at runtime is obtained by using the maintenanceBcommands to create a list of all files in the database and loadingEthis into the EACF database in kernel mode, selecting the option that@tells EACF only to inspect files marked in kernel. In this mode,Iessentially the only files which incur more than a few extra instructionsFoverhead at runtime are those known to have markings on them; the restAare quickly passed over. If however the number of files so markedCexceeds around 10,000, it is probably best just to let EACF inspectCall files for markings. As long as there is any header cache at allDin the system in that case, the extra header access done to read theEACL will only use the cache, and not cause another disk access. Also,@the disk containing the EACF databases should ideally be as fastAas practicable (and remember: EACF should also be used to protectCthose database files from tampering). Finally, the EACF servers canDprofitably be given higher than normal priority, and should be. TheyGare I/O intensive when used, and system responsiveness will be improvedHif the EACF servers are run at software priority greater than the normal4.BEven if EACF is checking all files, system access time will not beDnoticeably affected save for those files which have extended checks,Fand in those cases the checking may add time. The longest operation isEthe file integrity check. This check requires, if the file length hasCnot changed, that the file be read completely before opening by theFuser, to ensure that it has not been tampered with. This is reasonableBfor short scripts and the like. It should be done with caution forF30000 block images. (If file length changed, this is noticed at once.)&Other operations take negligible time.DEACF can be set up with as many servers as desired, from one for allFdisks in the system to one per disk. Basically, the more servers thereEare, the more opens with EACF checks can run in parallel. The serversCare however activated only where it is known there is a file markedAwhich needs server access. ACEs are read from a kernel thread, ofEwhich there can be many active at a time. Accordingly one EACF server&is likely to suffice for most systems. USAGE NOTESETo show some of the uses of these capabilities, let's take an example situation.ELet's say we have several files whose contents are confidential (say,Aa business' general ledger) which need to be manipulated by a fewCprograms which we'll call GL, AP, AR, IN, and PR for short. What we0want to avoid is that anyone browse these files.COne way to do this is to create an identifier (call it GLG) and setCup ACLs on all the files which grant access to the files to holdersAof identifier GLG, but deny access to all others. Then we arrangeCthat each of the 5 images has the GLG identifier granted when it isBrun (the programs are set for E (execute) access only) and now the*programs in question can get to the files.IIF nothing else in the system ever gets the identifier GLG, and IF nobodyuses privilege, we're done..Note however that there are two disadvantages:B1. The control is scattered around, so you need to do considerable> poking to find that nobody else might have the GLG identifier: normally, and you must set the ACLs on all files that the GL, AP, AR, IN, and PR access.42. Anyone with privileges can override the controls.GNote that you can fix objection #2 by prohibiting access to any processFholding READALL or BYPASS privileges. Ensuring that nobody has the GLG2identifier requires separate examination, however.DIf it is now decided that access at night to these records should beBprohibited, EACF can simply be set to disallow access during thoseAhours to the files, or possibly to the GL, AP, etc. programs thatBaccess them. Notice that with pure ACLs this is quite awkward, and8blocking privileges is impossible. With EACF, it's easy.2However, there is a neater way to accomplish this.BOn each file to be accessed by the GL, AP, AR, IN, or PR programs,> have a permitted image list containing these image names, and< a forbidden image list of * (everything) so that only thoseB images can access the files in question, regardless of privilege.CNote that now no identifier needs to be created, and the files usedCby the programs are clearly marked so that it is obvious by lookingCat them using the marking script that only the selected images have<access. Moreover, this cannot be overridden with privileges.BNotice too that preventing access at night to this data is done inBthe same records, and in these cases, you protect the confidentialBdata, not necessarily the programs (which might be run at night onAtest data). All the security relevant controls are visible in thefile marking display.? It may occur to some to ask how the data gets backed up now.BOne can of course set certain times of day for uncontrolled accessAto the files in question. A simpler way is to have a special copy4of BACKUP that is permitted unlimited system access.CThe CLD for such a copy, assuming it is called "SYSBACKUP" would beAas follows (using the VERB utility to extract the original BACKUPcommand language definitions):define type ENCRYP_VAL keyword NAME value (type=$outlog) keyword ALGORITHM+ value (default="DESCBC",type=$outlog) keyword VALUE value (list)define syntax BACKUP_LISTo. parameter P1 , label=INPUTS , prompt="From" value (list,type=$infile)w- parameter P2 , label=OUTPUTS , prompt="To"c value (list,type=$outfile)define type MEDIA_FORMAT_TYPEo keyword COMPACTIONM negatabledefine verb SYSBACKUPp image SYSBACKUP. parameter P1 , label=INPUTS , prompt="From"( value (required,list,type=$infile)- parameter P2 , label=OUTPUTS , prompt="To"F) value (required,list,type=$outfile)  qualifier ANALYZE nonnegatable qualifier ASSISTs default  qualifier BACKUPd qualifier BEFOREa value (required) qualifier BLOCK_SIZEt value (required) qualifier BRIEF nonnegatable qualifier BUFFER_COUNTn value (required) qualifier BY_OWNER, value (type=$uic)n placement=locals qualifier COMMENT value (required) qualifier COMPARE qualifier CONFIRM qualifier CRC defaulte qualifier CREATED qualifier DELETEo qualifier DENSITY value (required) qualifier ENCRYPT" value (list,type=ENCRYP_VAL) qualifier EXCLUDE( value (required,list,type=$infile) qualifier EXPIRED qualifier FAST  qualifier FILEMERGE nonnegatable qualifier FULL, qualifier GROUP_SIZE  value (required) qualifier IGNOREi( value (required,list,type=$infile) qualifier IMAGE qualifier INCREMENTAL qualifier INITIALIZEe qualifier INTERCHANGE qualifier JOURNAL value (type=$outfile)s qualifier LABEL value (required,list)v& qualifier LIST , syntax=BACKUP_LIST nonnegatable value  qualifier LOG qualifier MEDIA_FORMATt- value (required,type=MEDIA_FORMAT_TYPE)o qualifier MODIFIEDa qualifier NEW_VERSION qualifier OVERLAY qualifier OWNER_UIC value (type=$uic). placement=localt qualifier PHYSICALd qualifier PROTECTIONo value (list) placement=positional qualifier RECORDM qualifier RELEASE_TAPEi nonnegatable qualifier REPLACE qualifier REWINDi qualifier SAVE_SETd placement=localy qualifier SELECTe( value (required,list,type=$infile) qualifier SINCE value (default="TODAY")v qualifier TAPE_EXPIRATION% value (required,type=$datetime)a placement=localf qualifier TRUNCATEp qualifier VERIFY  qualifier VOLUMEV value (required), disallow (ENCRYPT.NAME and ENCRYPT.VALUE) disallow (DELETE and RECORD)s& disallow (DENSITY and MEDIA_FORMAT)JNow one adds the path to this copy of SYSBACKUP.EXE (a copy of BACKUP.EXE)Eto the list of exempt images in EACF. (The correct full path is shownrIin SHOW PROCESS/CONTINUOUS when the image is active for the process being shown.) BIn so doing, now, the SYSBACKUP verb can be added to DCLTABLES andCused for making system wide backups. Note too that EACF can be usedcBto control access to the SYSBACKUP.EXE image, permitting access toDknown people at known places and times. It is possible, too, to denyDaccess to anyone with privileges to the SYSBACKUP.EXE image and haveDEACF grant the privileges itself (so that the "maximum privileges toAopen" mask would have only a few privileges, and the "replacementlFprivilege" mask might have all privileges set). [One can also just useJa VMS INSTALL to install the image with privileges.] In this way it can be?made exceedingly difficult for anyone to use this system backuptHutility for unauthorized access. It also makes it fairly simple to allowBan otherwise unprivileged operator account to perform these backup>duties without granting the account privilege. By limiting theDability to use the program to a NONprivileged user, you make it much+harder for anyone to gain "spoofed" access.aEThe security model supported here is much richer than the default VMSeEmodel, and while it can be enhanced, it covers a great deal of groundh,in controlling who has access to what files.HHopefully the above discussion is helpful in describing some of the ways%in which EACF facilities can be used.iAppendix - Extra Odds and EndsB(The intercept driver is also able to be set to prevent file opensHwhere a volume is allocated or mounted privately. Normally such volumes'Ffiles are private but the privacy can be overridden in normal VMS withEthe SHARE privilege. This option allows the volumes to remain privateoFeven so. Note however that this can mean a print spooler will not haveEfile access, and may inhibit other actions, so that this is desirableIonly some of the time. Access to disks mounted /system or /cluster is notMaffected. This operation mode is not currently supported by the setup scriptsfJhowever, as it is somewhat esoteric. One sets the 2048 bit of the functionKmask to enable this. One also can enable fragmentation reduction by settinghJthe 2 bit. By setting the 262144 bit, one tells the driver to only examineLopens of files that have had their file numbers loaded into memory. This mayOsometimes be wanted for performance reasons. These and some other more esotericl@functions are built into the driver and may be used as needed.) v@ SAFETY013.AD  &[EVERHART.JTDEMO]EACF_USER_MAN.WORD5;18&*[EVERHART.JTDEMO]EACF_USER_MAN.WORD5;1+,D ./ 4- 0123 KPWO56)C7[89GHJ<1 0STANDARD.DFVPSCRIPT Extended Access Control Facility (EACF) USER MANUAL This manual is intended for use by those who will set up EACF and use it to control file access on a system. Introduction: EACF introduces a number of new capabilities to VMS. This manual is designed to: * explain what these are and what their intended use is, and * give information on how to mark files to achieve added capabilities. Overview, or, Why EACF: Work any length of time in a computer facility and you hear the stories: someone reading another person's mail, some clerk telling a friend how much the boss makes, some systems programmer typing out a document that contains long range company plans and was for Vice Presidents only. People are often curious and occasionally malicious. Regardless, the information loss can create serious problems, especially if it falls into the wrong hands, or lands you in court because of some breach of privacy. Technical means to control this are often lacking. If you can only allow or disallow read/write access to a file by someone, as is the VMS norm, then (for example) the payroll clerk can edit the payroll database. Doing this with the normal payroll application, at his terminal during the day, might be perfectly OK. However, should he be permitted to access it with, say, COPY? Someone developing new software might need access to system areas to install his latest versions. Should he, however, have access also to the technical plans? As these questions make clear, it is desirable for the system to limit access to sensitive files. By doing so, it gives useful warning when someone's curiousity gets out of bounds, prevents loss of information, and reduces organizational exposure to anyone giving in to temptation to sell company secrets, by making those secrets inaccessible outside of authorized limits. Extended Access Control Facility is designed to prevent loss, damage or unauthorized disclosure of data by controlling disk file access. Most security breaches ultimately involve tampering with disk storage. Others such as login breakins are already dealt with fairly well by VMS if set up properly. However, VMS doesn't make it possible to regulate what can be done with highly sensitive data at all closely. The difficulty of allowing access with certain programs to certain files, for certain people and times, has led to many incidents of VMS users browsing areas where they are not authorized by policy, but in which they have access because their privileges work in a coarse grained way. Often these are innocent curiousity. Sometimes they are industrial espionage. With most (some estimates are as high as 98%) of security breaches coming from "insiders" exceeding their authority, this exposure is a problem in any organization keeping data online which competitors shouldn't get at. A number of products claim they prevent unauthorized file accesses in VMS. Unfortunately, all of them currently on the market, with the exception of this one, work by accessing data from the VMS AUDIT facility. The problem with this is that anyone even moderately familiar with VMS knows that the Audit facility keeps track of security violations, and there are numerous ways to shut it off tracelessly, including code from public domain sources. This renders the strategy of these packages ineffective. What is just as bad, these products find out that an unauthorized file access has happened from Audit only after the fact. At that point, all they can do is (attempt to) stop the image or its process, since the file access has already happened, and often already succeeded. (Where the access is a delete, the file is already gone.) As a result, they require that a policy be in place to punish offenders after the fact, since they may have already done some damage. It's hard to be relaxed about a breach in such a case. EACF, on the other hand, lives in the VMS file system and prevents unauthorized file accesses from happening in the first place. It is not circumvented by privileges, works whether the Audit facility is up or not, and can ensure that a protected file is NOT accessed where this is not authorized. Thus, the innocent browser cannot have done any harm, and may be treated with less rigor than might be needed if damage or data loss may have occurred. Also, while other packages have to use obtrusive measures like process deletion to stop accesses, EACF can silently hide files if that is desired. Where a real violation IS happening, this can be much more effective in finding out what is being attempted than stopping a process. EACF of course does generate logs of any detected violations so that notice of them is preserved. EACF is uniquely valuable in controlling access by privileged users. Many sites have people who have elevated privileges, but who should not be able to access payroll, grade files, company plans, etc., and who are not prevented from this by VMS. EACF can protect against exactly such access (and even discriminate AGAINST people with various privileges if you like) and gives extensive controls over privileges and their uses above those VMS has. Finally, EACF is simple to use. You mark files for various accesses with a menu oriented utility which selects how a file (or set of files) should be marked, or which will display what markings exist on a file. All security relevant information is present at one time in an easily understood format; you do NOT need to hunt through all disk file ACLs to find it, if it exists at all. No normal VMS facilities are lost, either; VMS security controls continue to work normally, though EACF may in various ways alter the outcome of their tests in understandable ways. (An example of this might be that if you attach an identifier TWIT to a script, that script may fail to open some files which have ACLs prohibiting access to identifier TWIT.) If your business depends on any data on your VMS systems and your operation is more than a VERY few people, you NEED EACF. Capabilities: EACF offers the following abilities: * You can specify a password for file access. This password must be entered before access is attempted, using an EACF utility for the purpose. Then if the file password has been entered, and other EACF checks satisfied, the file may be opened (or deleted). Otherwise, access is denied. The password can be anything at all, and the tokens left in user space to indicate the entered password are also process dependent, so others cannot use them. The password can be changed at any time using EACF, but allows control via a separate piece of knowledge if this is preferred to control by time, username, etc. This facility has long existed in the mainframe world. Now it is available for VMS. While it is less secure than encrypting the file, this method also cannot cause a file to be lost forever if the one who knows the key dies or forgets it. Also, changing the file password is quick and easy, unlike changing its encryption, so that temporary access can be given and revoked at need. * You can control access by time of day (in one hour increments). You can use this facility to prevent file access during "after hours" times where there is no reason to allow them to be accessed, or "open up" files during periods where normal controls are deemed adequate. The access modes for each hour can be: Y - Access permitted provided all other security checks pass. N - No access (except to users on backup list) U - No CHECKS, let everything by EACF checks on this file during this hour. (DEC security remains in effect.) P - Check privileges against max privs only R - Readonly access only, by anyone; r/w opens are rejected. Other checks may deny access totally as well. X - Allow r/o opens, test others normally. D - Disallow access by ANYone (even the backup account) (Note that provision for a backup account exists, and it can be forced to permit only read-only file access, but this facility allows further restrictions, operating per file.) Notice that this means that writing to a file can be disabled whenever one likes even if reading is left permitted. If there is a suspicion that some databases may be tampered with off hours, this gives a simple way to protect them. The privilege check mode is also of particular value, since it can disallow use of elevated privileges which might otherwise be used to bypass normal system protections by industrial spies or other evil doers. * You can control WHO can access a file (with both permitted and forbidden usernames), WHERE they can access the file (with permitted and forbidden terminal names), and WITH WHAT they can access the file (with both permitted and forbidden image names). This is the major advantage of EACF. You have, for usernames, terminal names, and image names, two lists each. You can specify username strings that are acceptable or that must be rejected,or can use * to indicate all, or & to indicate to skip a test. Likewise you can specify permitted or forbidden terminal names (access port names are tried also if they exist), or image names that are permitted or forbidden. These are handled with the normal VMS wildcard conventions (except that in addition a string with & in it means to skip the test). Thus, to say that a given file cannot be accessed with the COPY image one could add "*COPY.*" to the forbidden image list. (Note: "Access" as used for EACF means either open OR delete access. Renaming a file does not have any effect on the controls. The beauty of this is that all the EACF parameters can be controlled in one spot, without huge ACLs and unmanageable machinery to fiddle with system logicals or identifiers on the hour. This permits really fine grained access to your files. If you have an accounting person who works on the payroll file, you can authorize access to PAYROLL.DATA during working hours, from that person's normal terminals, but forbid access after hours, or from terminals like RT* or NT*, and you can ensure that the file cannot be accessed with, for example, COPY or BACKUP, or perhaps can only be accessed from *PAYROLL*.EXE* if only a given suite of programs with such names should be used for access. The access lists are all variable length, comma-separated lists, so considerable flexibility is available. Finally, you can prevent access using privilege (see below) to this data, so that people who have privileged access to your system, yet have no physical access to the computer, cannot simply turn on privileges and read the data to their heart's content. * You can prevent files from being accessed with more than a given set of privileges. You do this by attaching a maximum privilege mask to a file and if the process trying to open or delete the file has any privileges not in this mask, access is forbidden. The default mask forbids access using BYPASS privilege. This is highly useful against curious privileged users (and any intruders who gain privilege) since it means that files can be protected even where local conditions force operation with many privileged users, or where there is concern that intruders may gain privileged access to the machine. The tags that cause files to be checked in this way can be kept in kernel space as well, so that they are safe from being seen even by privileged users. NOTE: This and other checks are applied in addition to the normal VMS checking. Hence even a file owner is affected by this checking. Many sites have people who must do development and need to be able to use INSTALL or other privileged functions, and whose privileges cannot be revoked without impairing their ability to work. However, most of these people have no need to be authorized to see, e.g., the payroll file. Conventional VMS offers NO way to prevent such access, and other file "security" packages work by watching the output of the AUDIT utility, which can be silently and untraceably shut off by publically available programs whatever someone is running to listen to AUDIT. As a result, there has been, until now, NO way to block access by these people to sensitive data left on normal disk files, whatever file protection is attempted. EACF, due to its residence within the file system, works whether AUDIT is turned on or not, and prevents these folks from using the file system to access such data. EACF offers the ability to either block access altogether, or to block write access only, and cannot be confused by command obfuscation, nor does it care whether the access is by program or by console command. Someone who has used privilege to change his username can be blocked by finding that the privilege he needs to continue to access his system tables denies file access. Thus even common tricks one might play to fool an access system into permitting access can be thwarted readily. * You can hide files. That is, if access is denied, you can arrange that instead of giving the user a "privilege violation" message, EACF can arrange that another file (on ANY disk) can be opened instead wth no indication to a user exceeding his authority that anything unusual has happened. EACF will of course generate logs of the denied access, as it does in all cases of such, but the intruder will not know that his access attempt has failed. Therefore, you can arrange that he will open FAKE_SYUSUAF.DAT or FAKE_PAYROLL.DAT instead of the real SYSUAF.DAT or PAYROLL.DAT. This allows you to safely allow him to leave evidence of his intentions (e.g. let him try to enter system accounts, or see whose pay records he wants to see or tamper with) without exposing your real business data to tampering. In effect, the unauthorized user CANNOT SEE the real files, but "sees" other files which pose as them. In some cases this can be FAR safer than an error message, which will alert a person exceeding his authority or an intruder that he has tripped some protection barrier. Rather, it seems to pose no resistance to tampering, but gives complete resistance, while permitting evidence of what is attempted to be accumulated. * You can attach a cryptographic checksum to the file. At any attempt to open the file, this checksum is compared with that of the actual data, and the file will not open if they do not match. This is used for detection of file tampering and means that if someone should tamper with a file, it cannot be used in such a state. This tamper-proofing works for any file type, and is not limited to executables. However, it does require that the file be read in its entirety to compute the checksum before an open can be done, so it is most effective for relatively short files. The most common examples of such are DCL scripts used by privileged users, which are frequent targets of attacks on system integrity. Certain file types (with very long maximum record sizes) cannot be fully checked in this way, but these are quite rare; the system provides for checks of files with records far larger than the longest permissible DCL line. If only a partial check is possible, EACF will check what it can. This facility can be used to guard many critical files against tampering which might otherwise be a first step in breaking into a system.w@ SAFETY013.AD  &[EVERHART.JTDEMO]EACF_USER_MAN.WORD5;1 > Note too that the file size is used in the checksum, and this is tested first, so that anything that has changed the file size will fail the check very quickly. Where a file is over 100 blocks long, the script asks for confirmation before marking it for this check. * You can attach a replacement privilege mask to a file which will replace all process privilege masks when the file is executed. This can be attached to any file, no matter how executed (so that interpreted scripts can be tagged too). This is normally used to ensure that a script or image never runs with elevated privilege. If you attach a privilege mask to, say, a DCL script or image you got from somewhere, and the mask contains no privileges except perhaps TMPMBX (and maybe NETMBX), then whenever it runs, the process' current and authorized privilege masks will be replaced with masks having only these privileges. (The privileges are restored on exit or when the file is otherwise closed.) Thus if any Trojan code would normally be triggered by the script finding that it had some elevated privileges, it would never find such, even if run from privileged accounts. Also, since the process lacks privilege while the script or image is running, it cannot abuse privileges that might otherwise be available to it. (The authorized mask is reset to keep Trojan horse applications from using $setprv to negate the privilege lowering.) You should note that the UIC is not altered, so that implied system access via a low UIC would not be affected by this. Also, if you use this facility to raise privileges, be sure to allow E (execute) access to the file only and check the file carefully. (See below for a fuller explanation.) This facility can be used to attach privileges to DCL command files, but can open security holes if this is not done very carefully. Remember: if the file is opened, the opening process' privileges are affected. When used to reduce privileges, the facility provides a pro-active measure to inhibit viruses and other covert code from running. Usage Note: Privilege, base priority, and identifier modification poses few if any risks where these facilities are used to LOWER access privileges. In this case, someone opening a file which has these side effects only reduces his access. (This might even be handy for privileged people wanting temporarily to assume a nonprivileged identity without using another account.) However, any RAISING of privileges or access rights should be done this way only with great care. Anyone permitted to open a file marked in this way can in principle gain these added privileges/rights. In this case, other facilities of EACF should be used to prevent access to the file in undesired ways. For instance, by allowing E (execute) access but not read access, and enforcing this with a max-privileges mask that prohibits it from being overridden, and perhaps further limiting username and image allowed to do the opens (prohibit *DCL*, for example). In this way security needs can be served while privileges can be more completely controlled than vanilla VMS allows. * You can attach identifiers to a file. These identifiers are granted on file open, revoked on file close. This can be used for any convenient purpose, though again they tend to make sense most for files which are executed. If used for data files, it is wise to use other EACF facilities to narrow the exposure these have. If for example you have an identifier BUS_PLAN that grants access to certain files, you can "attach" that identifier to an executable or script and allow it to access them. (DEC has something similar, but it won't work on interpreted code such as DCL scripts or interpreted languages of any kind. With EACF, you can apply protections regardless of language choice.) * You can set the base priority of a process so that when a file is open, the base priority is replaced by the one attached to the file. (The priority returns to its old state at close.) This can be used to ensure that known "CPU hog" programs run with lowered base priority even if run interactively, or that some programs run with higher priority where this is desired. The first case is likely to be more useful. In some shops, elaborate systems to ensure that long compilations (e.g., large Ada programs) run in batch have been set up. This facility means that the CPU intensive programs do not gain extra priority from running interactively if they are set up with a base priority lower than normal. Likewise, some editors or screen intensive applications may benefit from higher priority, and will not cause problems so long as they don't go into a compute loop. NOTE The three above modifications are flagged with cryptographic authenticators so that the tags on the files cannot be altered or moved to other files. A key that is used on loading EACF for each disk is also used in the computation, so such keys cannot be entered successfully unless one also knows this value. It is essential to system security that these key values be kept secret, and is desirable that the tagging program be available only to systems personnel. These modifications do not require any user-mode code to run, so impose negligible overhead. * You can set EACF to have a set of "exempt" images which are permitted full system access. Access to these images can however be controlled by EACF. This permits EACF to avoid causing problems for disk defragmenter programs and the like, which must have a global view of the disk, without imposing large user burdens. Because access to these exempt images is still controllable, they can be prevented from causing security holes. It is also possible, for example, to have a copy of BACKUP which is allowed to have global file access, BUT it can be specified that this BACKUP image can be accessed only by certain users, at certain terminals, at certain times, with certain privileges etc., and perhaps accessed only with certain identifiers which might be granted by attaching them to a backup script which grants the identifiers. The full panoply of EACF controls is available to screen who can use this copy of BACKUP. Meanwhile, another copy of BACKUP.EXE might be the one most users can access. The specially privileged copy would typically be accessed using a different verb, and could be used for making system backups. This facility is essential to permit programs like disk defragmentgers to have global system access without interference or to allow system wide applications like backup to be run without interference when done by authorized people at appropriate places or times. Up to 32 image pathnames can be exempted. In addition, an image is provided which can be used by a process to exempt itself from EACF checking or reenable it. This image must be treated with extreme care, but can be used for complex jobs where system maintenance is needed. When it is used, it logs its use so that such use can be audited. * There is provision for a "privileged user" list (empty by default) which can be used to give certain users broader file access, limited only by certain time codes and privilege mask tests (and DEC access controls), should such be desired. A supplied privileged utility can also be used to exempt a process from EACF controls where this is wanted for whatever reason. This is referred to in the menus as the Backup Account. It can also be prevented from write access to files while allowing read access. * You can arrange for EACF to execute an arbitrary set of commands whenever access to a file is denied. The username, PID, terminal, and file ID are available to the commands (plus whatever else you care to make available). This can be used for mail or pager notice to systems people, for suspending the process, or for starting a keystroke monitor like SPY to record the process' activities, or for ANY other desired purpose. This takes place BEFORE the file can be accessed. (There is an additional capability, controlled by the command line language as described in jtcommand.doc which allows you to force execution of a site command script whenever an image tagged for this function is in use and opens a file. This is provided where it is needed to have additional controls over files which may be opened by a program whose security properties may be especially untrustworthy. The script runs whenever the untrusted program tries to open a file and it can veto the open. An application of this could be to alert a user of opens of files not in a permitted list. In this mode, or if in "check all opens" mode (see below) EACF will check the file's parent directory permissions if the file has no EACF security record.) DISCUSSION EACF is useful in relatively friendly environments, where it allows the limits of authority to be defined in the machine, so a privileged person who may be inclined to browse in public directories will be prevented from thoughtlessly printing private files with a message that he has exceeded his privileges, or in much more hostile ones where tampering or industrial espionage (which often uses the services of insiders who have been paid off to make (or have been tricked into making) a quiet copy of the payroll, or business plan, files) might be a risk. In either case, it is rather easy to limit access to sensitive files (or to directory files holding sensitive files) to certain people, and to remove the opportunity, and temptation, to disclose other data from people who might otherwise do so for whatever reasons. If, for example, your system manager should be curious about a file named "NEW_PRODUCT_PLANS.DOC" and tries to look at it, isn't it better that he be unable to do so (even though he may have BYPASS privilege) if company policy means he really shouldn't have access to it? Isn't HE safer with a system that will just block access rather than an alternative system that can't block access, but will get him in trouble after he DOES access it? Conventional VMS lacks the ability to do a detailed job of limiting access to such areas, so inadvertently this kind of thing happens a lot. With EACF installed, it is easy to have the machine understand, and enforce, the limitations of access company policy and safety demand. Thus, inadvertent as well as intentional access is controlled, and data access can be managed properly for the first time. EACF protections are in addition to normal VMS ones, and a person must be able to open a file to mark it for security. Henca all normal VMS group access provisions can be used to control which files a given group can mark. WHAT IS HAPPENING TO FILES MARKED You mark files in EACF using a menu-oriented file marking script, though a command line interface exists if it essential to use one. This marking results in an application ACE (the file mark) being attached to the file and in the EACF database being updated to reflect desired actions on the file. In addition, EACF startup can be set so that the server is passed a list of file IDs which will be inspected. This list may contain any number of IDs per disk and can be created from simple $ DIR /FILE_ID commands. The list is a sequential file each line of which contains a file ID in the form (n,s,r) where n is file number, s is sequence number, and r is relative volume number. For example the line LOGIN.COM;85 (9493,12,0) will do fine. When a file is marked like this, one uses a /FILENUM:sequentialfilespec.typ switch to tell the server where the list of IDs is, and the server will then check extended access even if the file mark has been damaged or removed from the file. A file mark must have been created in the first place, so that the EACF database will have been filled in, but if a mark has been deleted, this will prevent such deletion from interfering with EACF checks. There is an option in the menu system which checks that all files in the EACF database correspond to files with correct file marks and will regenerate these marks if any are missing. It also warns the operator of any files whose marks have been deleted, since this may represent someone having attempted to get around the EACF system's protection. Any unexplained cases of marks disappearing should be investigated as security breaches. If this happens, also, it indicates which files should be in the kernel-based lists, so that they will remain protected even if their marks are deleted entirely. There is no mechanism for removing files from the kernel based lists except a reboot and restart of EACF with a different, or no, /FILENUM switch on the command to start the server process. The EACF setup script asks, for each disk selected, a security key (used as part of the authentication for all ACEs that change identifiers, base priority, or privileges) and a file containing these file IDs. Either, both, or neither may be selected. Note too that directories are files too, and can be protected, with the usual caveats. However, if the file [000000]000000.dir is protected, EACF protection criteria can prevent a volume from being mounted. HOW TO SET EACF UP Pre-Installation: Before installing EACF, you should prepare for the installation by making sure that there is enough nonpaged pool available for the dynamic needs of the system. These vary somewhat but can be adequately approximated by increasing the SYSGEN parameter NPAGEDYN by the quantity (10000 * (number of EACF daemons you will set up + 1)). Insert a line something like the following ADD_NPAGEDYN=30000 in your MODPARAMS.DAT and run AUTOGEN. You may of course have adequate nonpaged pool already (many systems will) in which case no modifications are needed. SHOW MEM/POOL will show this. Your system disk must have about 5000 blocks free to install EACF, though if the EACF components are placed on a separate disk, system disk space required for the final resident components is under 500 blocks. Installation: EACF is installed by VMSINSTAL. From the system account, use a command $ @SYS$UPDATE:VMSINSTAL EACF010 distribution_medium: to do the installation. The script will ask where EACF programs and scripts should be stored, and most EACF components will be placed there. This can be anywhere on the system, provided that the disk is mounted in your startup script before EACF is started. These components will occupy around 2000 blocks on a VAX, double that on an AXP, so ensure the disk chosen has room enough. When running the setup script after installation, the area chosen for the EACF components should be specified as the area for EACF executable images. Post Installation: EACF comes with a setup script which is to be run after the VMSINSTAL script has installed the package. This script (JT_SETUP.COM) generates a startup script which should be run from SYSTARTUP_VMS.COM or SYSTARTUP_V5.COM at boot time. The script generated will start one access server which will be attached to all disks in the system, and enough intercept driver units to control all disks selected. It is perfectly legal and permissible to have many EACF servers, each handling one or more disks, however. This allows faster processing of security markings in some cases. The script offers an option to select the starting intercept driver unit number, so that it can be run more than once, and will arrange to load a server for all disks in each run. Normally it starts with intercept unit 0, but if you connect three disks, you can run the setup script again and start at intercept unit 3 (since the prior run will have used 0, 1, and 2). Then with this run, another server will be started. It is up to you to ensure that disks allocated don't overlap. JT_SETUP is fairly easy to understand. Its initial menu looks like this: EACF SETUP 18:11:55 --> *Set arex@ SAFETY013.AD  &[EVERHART.JTDEMO]EACF_USER_MAN.WORD5;1=!>>a to hold EACF database files Set start intercept driver unit number (now 0) *Set area for EACF executable images Done this menu, process disk selection Remove a disk from an existing EACF configuration Set images which are exempt from EACF (e.g. defraggers) Quit, do nothing ( Asterisk means that a value already exists for the item.) It allows you to specify where EACF database files are kept (for the series of EACF intercept driver units you configure). Each run of JT_SETUP will let you configure one or more disk units, each of which uses a JT intercept driver, with its necessary data areas. Normally this starts with JTA0: and goes up in units, but if you want multiple servers you can run JT_SETUP once for each server and set the "start intercept driver unit number" item to the start unit number, which should be one higher than the maximum number of disk units configured so far. One JT unit can control only one disk unit. Asterisk implies that values already exist (perhaps from kitinstal) for these selections. The "Set images which are exempt from EACF (e.g. defraggers)" item allows image device:[directory]filename.type;version strings to be specified for images which are exempt from EACF controls. Note that any such images can bypass all EACF actions, BUT you can and should use EACF to control access to these images. When you select the "Done..." item, you enter a menu to select disk units to configure for this EACF server. It looks like this: EACF Configuration Disk Selection Use arrows to move to selection. Use RETURN to select. End disk selection _ARISIA$DKA700: VMSSYS _ARISIA$DKB0: USRBAK _ARISIA$DKB400: DWU _ARISIA$DCA0: XRP07 _ARISIA$DCA2: XRP06 _ARISIA$DCA3: CDI _ARISIA$DCA4: XTRA _ARISIA$DCA5: CDTPL _ARISIA$VDB0: TEST1 _ARISIA$VDB1: TEST2 _ARISIA$DKB200: _ARISIA$DKB300: _ARISIA$DCA1: _ARISIA$DCA6: _ARISIA$DCA7: _ARISIA$FQA0: _ARISIA$FQA1: _ARISIA$FQA2: Type H for help. Currently on item 1 of 151 where mounted disks appear first on the list, followed by all other disk-class devices on the system. The display will scroll if more disks are there than will fit on a terminal. Once you select a disk, you must enter a number of parameters for that disk. This is done in another sub-menu which looks like this: EACF DISK SETUP 18:19:45 --> Enter security key for disk Enter file of file IDs to load for kernel marking Examine only kernel-marked files for access tests Set to automatically kernel-mark all files on load (This requires generating the file list at boot) Generate filelist database and set to use it Act as if ALL files were kernel-marked (use if most are) Quit, do nothing. Done this menu The security key for the disk is the secret string (of any reasonable length) which is used to validate EACF actions that alter privilege, identifiers, or base priority. It must match the marking on a file or these will not be altered (which prevents random people from creating such mark ings). Therefore this key should be well chosen and the EACF startup file carefully protected from browsers. Note that when a marking on a file is created which resets privilege, grants an identifier, or resets base priority while that file is open, a file security key is asked for. That key must match the volume key entered here or the changes to process priority, identifiers, or privilege are not made. This prevents unauthorized people from gaining privilege even if they are permitted to mark their own files with EACF. The other options are pretty self-explanatory. If you can afford the time to create a file of IDs to load at EACF start, it makes the system MUCH harder to avoid and allows the option of only examining marked files, which reduces overhead on nonmarked files and is therefore a good idea too. Whether to use item 4 or item 5 depends on how often your files that need to be examined change. Item 4 (automatically kernel mark all files on load) generates a complete list of all files that are marked at every boot. Item 5 generates a list when you select it and uses that, rather than generating the list at every boot. This can suffice for fairly static lists of files to mark. Once you finish with the menu, it will create EACF_STARTUP.COM and EACF_LOGIN.COM which are used to start EACF and to define some symbols needed for convenient use. EACF_STARTUP.COM should be run from systartup_v5.com or systartup_vms.com (depending on version of VMS) at boot time. WHAT TO MARK You will want to mark files (and perhaps directories, though remember that files can be opened by file ID without going through directories) which are important to your business with EACF. Transient files should ordinarily not be marked. Critical system files should be marked. These include SYSUAF.DAT, SYS$SYSTEM:NET*.DAT, and the startup scripts (so people can't easily find out what nonstandard things you're running), as well as any other .COM files usually run by SYSTEM. Be sure, however, to allow access BY the SYSTEM account to these. You should also use EACF to regulate the access to the files in the area you choose for your EACF data files. The files in JTD$DB and GCY$CM areas hold your security database and must be protected against access by unauthorized people. It is also often a good idea to access protect the file marking utility also (filename JTAUTHMAINT.EXE) so that only authorized people may mark files. Limiting access to the *.GDB files to the image JTAUTHMAINT.EXE (and including the whole path) is a good idea. Also, the scripts used to start EACF up, which will contain the volume access keys, should be protected against access too, so that users cannot enter file markings that alter identifiers, etc. If you use the SETUP script, the file to protect is SYS$MANAGER:EACF_STARTUP.COM and it should be treated and protected at least as well as SYSUAF.DAT. Note that the EACF setup script will, by default, protect the EACF databases against access from images other than EACF's images and BACKUP. It is recommended additional tailoring be done however. HOW TO MARK FILES You mark files in EACF by using the mark_files script JTMARK_FILES.COM. The MARKFILE command does this. (This presumes EACF has been installed and generally presumes a privileged account to assure the ability to tag files appropriately.) A brief note first: permitted and prohibited usernames, imagenames, and terminal names are matched with string matching, so that to allow access by BACKUP.EXE, for example, you would use a string like *]BACKUP.EXE;*, since otherwise it won't match the full path name which is available for matching. Therefore most of the time your selection strings will contain the * character, and the file marking script will issue a warning message if this is not present. If your selection, for example, IS the complete pathname for an image, or the complete terminal name (or access port name) for an image or terminal respectively this is not a problem. In any case, your selection is used. If however you want to (dis)allow access by, say, COPY, you can do so by excluding *COPY* more compactly. There is a limit in total size available for this information, so conserving space is often a good idea. Now to actual use of the script. In fact there are two scripts. One is named JT_SEL_MARK.COM and uses a fullscreen frontend as a selection front end. With this script, you set your default directory to the tree where you want to select files and run the script, using the arrow keys and spacebar to select/deselect files. When you are satisfied with the selections, type G to mark the selected set of files. The selection menu is the same for both scripts. The MARKEACF command runs the fullscreen - selection markup script. The other script (jtmark_files.com) asks for a file specification explicitly, which may contain wildcards. The start of that script looks like this: $ MARKFILE File(s) to mark (? for dir): At this point you select a file (or a wildcard file specification, in which case you will be marking each in succession). The selection could for example be: $ MARKFILE File(s) to mark (? for dir): VDB0:[EVERHART]ND.TXT [Alternatively one can just use a command like $ Markfile vdb0:[everhart]nd.txt to accomplish exactly the same thing.] At this point, if the file exists, you are presented with a menu which looks like this: Extended Access Control Facility - File Marking File VDB0:[EVERHART]ND.TXT;7 --> Edit max-privs-to-open mask (current: DFFFFFFFFFFFFFFF) Set base priority override (current: None) Edit permitted user list (*) Edit forbidden user list (None) Edit permitted term. list (*) Edit forbidden term. list (None) Edit permitted image list (*) Edit forbidden image list (None) Edit backup account list (None) Edit time-use profile (YYYYYYYYYYYYYYYYYYYYYYYY) Edit replacement priv mask (when file open) None Set backup user access [Readonly/Read-Write] R/W Set file tamper check Set file password Set AccFail-action cmd @GCY$CM:JTACTN Enter security key Set conditional softlink (None) Grant identifier on open/revoke on close ( ) Quit, make no changes Done, update file controls now Perform database maintenance commands Apply selected mods to all wild files In the above case, the settings are the defaults. The max-privs-to-open mask excludes access with BYPASS privilege but allows all others. If we select the first item (by pressing (the RETURN key)) the system shows another menu which looks like this (showing all but the BYPASS privilege selected: Privileges Permitted For Opening File Privilege Set Up --> Done setup * MOUNT * U05 * U25 Set all priv * OPER * SECURITY * U26 Clr all priv * EXQUOTA * U07 * U27 * CMKRNL * NETMBX * U08 * U28 * CMEXEC * VOLPRO * ACNT * U29 * SYSNAM * PHY_IO * U10 * U30 * GRPNAM * BUGCHK * U11 * U31 * ALLSPOOL * PRMGBL * U12 Set NO mask * DETACH * SYSGBL * ALTPRI Make no changes * DIAGNOSE * PFNMAP * U14 * LOG_IO * SHMEM * U15 * GROUP * SYSPRV * U16 * NOACNT BYPASS * U17 * PRMCEB * SYSLCK * U18 * PRMMBX * SHARE * U19 * PSWAPM * UPGRADE * U20 * SETPRI * DOWNGRADE * U21 * SETPRV * GRPPRV * U22 * TMPMBX * READALL * U23 * WORLD * U04 * U24 At this point we can toggle any privilege setting by selecting it and when done select the "Done setup" item. The "Set base priority override" item, when selected asks the question: Enter base priority for process with this file open: which can be answered by a priority between 0 and 31. If outside this range, or if nothing is entered, the priority setting is left unset, which means that EACF does not alter it. The next 7 items: Edit permitted user list (*) Edit forbidden user list (None) Edit permitted term. list (*) Edit forbidden term. list (None) Edit permitted image list (*) Edit forbidden image list (None) Edit backup account list (None) all lead to similar menus. If we select the "Edit forbidden user list" item, for example, we get the following: Edit Forbidden User List Current user list: None * is wild card, & means omit this test --> Add users to list Remove users from list Replace list Quit, leave user list alone Done with this menu If the string when you are done contains a '&' character, the test corresponding to that menu is skipped. * on the other hand is a wildcard character. In several lists, a message is issued if no * is seen, since image paths or terminal lists will often contain them if they are to perform as expected. NOTE: The permitted lists have priority. Thus if the permitted user list is *, everyone is permitted access to the file regardless of the forbidden list. If the permitted user list is & (or just something you won't get like "=") the forbidden user list controls who is denied access. If a few names are on the permitted list and the forbidden list contains *, then only the few named on the permitted list can access the file. Similar rules hold for image names and terminal (or accport) names. Now if I select "Replace list" and add the value GUEST, the question and response look like: Enter user list: GUEST When we select the "Done..." item, we return to the top level which now looks like this: Extended Access Control Facility - File Marking File VDB0:[EVERHART]ND.TXT;7 Edit max-privs-to-open mask (current: DFFFFFFFFFFFFFFF) Set base priority override (current: None) Edit permitted user list (*) --> Edit forbidden user list (GUEST) Edit permitted term. list (*) Edit forbidden term. list (None) Edit permitted image list (*) Edit forbidden image list (None) Edit backup account list (None) Edit time-use profile (YYYYYYYYYYYYYYYYYYYYYYYY) Edit replacement priv mask (when file open) None Set backup user access [Readonly/Read-Write] R/W Set file tamper check Set file password Set AccFail-action cmd @GCY$CM:JTACTN Enter security key Set conditional softlink (None) Grant identifier on open/revoke on close ( ) Quit, make no changes Done, update file controls now Perform database maintenance commands Apply selected mods to all wild files If we now want to control when this file may be accessed, we select the "Edit time-use profile" item and get the screen following: Time Usage Permission Editing (by hour) . Current Profile YYYYYYYYYYYYYYYYYYYYYYYY 11111111112222 012345678901234567890123 Key: Y - checked acc. N - No access except bkp D - no access at all U - Unchecked acc P - Priv checks onlt R - Readonly access only X - R/W chks only --> 0-1AM 12N-1PM Quit this menu, no changes 1-2AM 1-2PM Exit, apply changes 2-3AM 2-3PM 3-4AM 3-4PM 4-5AM 4-5PM 5-6AM 5-6PM 6-7AM 6-7PM 7-8AM 7-8PM 8-9AM 8-9PM 9-10AM 9-10PM 10-11AM 10-11PM 11-12AM 11-12M To explain the key: Y means normal checked access, checking all security criteria. N means No access, except that the "backup" account may access the file. D means no access at all, to anyone. U means Unchecked access. The extra EACF tests are skipped. P means only the test that allows open if the process has only privileges also in the "Max-privs-to-open" list. R means Read-only access. Opens for r/w access are denied. X means no tests for readonly opens, extra EACF checks only for R/W opens to a file. Each letter selects an access code for one hour of every day. If I want to disallow use (except backup account use) of the file from 2-3AM, I select that hour and enter N. The selection question is as follows: Give code for this hour access:: N If I know that between 9AM and 3PM the file should be open to all there with no added checks for reading, but I want to prevent writing except for users allowed by the rest of EACF, I can use the X code for those hours. When I have done so the screen looks like: Time Usage Permission Editing (by hour). Current Profile YYNYYYYYYXXXXXXYYYYYYYYY 11111111112222 012345678901234567890123 Key: Y - checked acc. N - No access except bkp D - no access at all U - Unchecked acc P - Priv checks onlt R - Readonly access only X - R/W chks only 0-1AM 12N-1PM Quit this menu, no changes 1-2AM 1-2PM --> Exit, apply changes 2-3AM 2-3PM 3-4AM 3-4PM 4-5AM 4-5PM 5-6AM 5-6PM 6-7AM 6-7PM 7-8AM 7-8PM 8-9AM 8-9PM 9-10AM 9-10PM 10-11AM 10-11PM 11-12AM 11-12M Notice the Current Profile now shows X access codes between 9AM and 3PM (and the cursor has been moved by hand to the exit item.) Now we can exit this y@ SAFETY013.AD  &[EVERHART.JTDEMO]EACF_USER_MAN.WORD5;1>]menu and see that the time access profile is set. Where the file is not executable, a replacement privilege mask makes no sense for it, but if we wanted to set one the screen would look like this: Privilege Mask to Replace all priv masks Privilege Set Up --> Done setup MOUNT U05 U25 Set all priv OPER SECURITY U26 Clr all priv EXQUOTA U07 U27 CMKRNL NETMBX U08 U28 CMEXEC VOLPRO ACNT U29 SYSNAM PHY_IO U10 U30 GRPNAM BUGCHK U11 U31 ALLSPOOL PRMGBL U12 Set NO mask DETACH SYSGBL ALTPRI Make no changes DIAGNOSE PFNMAP U14 LOG_IO SHMEM U15 GROUP SYSPRV U16 NOACNT BYPASS U17 PRMCEB SYSLCK U18 PRMMBX SHARE U19 PSWAPM UPGRADE U20 SETPRI DOWNGRADE U21 SETPRV GRPPRV U22 TMPMBX READALL U23 WORLD U04 U24 The privileges selected will replace all a process' privileges which has the file open, until the file closes. Note the "Set NO mask" item means that you don't want privileges to be modified when the file is open. . Note that both current and authorized privilege masks are replaced. This prevents anything from setting privs with the $setprv service, since the authorized privilege mask is replaced also. If we want to set a file password, we select the menu item and get a prompt thus: Enter file password: Thisisaprettylongpassword The password will not echo, and you are asked for it twice to ensure you had no typing mistakes. We can enter a security key; this will allow privilege, identifier, or base priority changes to work if it matches the one used for the disk in the setup script. This prevents random people from marking their files and altering privileges. The question asked looks like this: Enter security key: Again, the security key does not echo and is asked for twice to ensure it is read properly. Hiding Files Also we can arrange that another file be opened if the access is refused. suppose we want EACF to force an open of VDB2:[EVERHART]LOGIN.COM in the case access is denied. We select the "Set conditional softlink" item and get a prompt. With our reply it looks like this: Enter device:file to open if access denied: VDB2:[EVERHART]LOGIN.COM Action Commands You will notice the menu item "Set AccFail-action cmd" here. This is a command which can be executed whenever someone tries to open the file and is rejected. This command runs in a spawned procedure and can be any command at all. If the command is terminated with a "\" character, it is executed with no arguments. Otherwise it is passed 5 arguments, namely the username of the rejected accessor, the terminal name, the file ID (as two hexadecimal longwords), and the PID (Process ID) of the process whose access was rejected. An example routine named JTACTION.COM is furnished which just sends email to SYSTEM when such an access is attempted. Any desired commands are permitted, though you should be aware that access is delayed till the command finishes. Hence any long actions may be best placed into SUBMIT commands. This mechanism can be used to provide for prompt notice of attempted file access by whatever means are convenient, to suspend offending processes, or whatever else is desired. Note that the commands can be different for each file, permitting tailored responses. The default is no such commands are executed unless you enter one. The current selection, if any, is displayed on the menu. It is suggested that options such as turning on session recording via a SPY type program could be one useful action to enter here. Automatic Identifiers If we want an identifier on the file while it is open we can grant one with the menu item. Suppose we enter the identifier FIELD. The prompt and response look like: Enter identifier to associate with file: FIELD When done with all changes so far (including setting a priv mask on open that has TMPMBX and NETMBX in it and nothing else) the menu looks like: Extended Access Control Facility - File Marking File VDB0:[EVERHART]ND.TXT;7 Edit max-privs-to-open mask (current: DFFFFFFFFFFFFFFF) Set base priority override (current: None) Edit permitted user list (*) Edit forbidden user list (GUEST) Edit permitted term. list (*) Edit forbidden term. list (None) Edit permitted image list (*) Edit forbidden image list (None) Edit backup account list (None) Edit time-use profile (YYNYYYYYYXXXXXXYYYYYYYYY) Edit replacement priv mask (when file open) 0010800000000000 Set backup user access [Readonly/Read-Write] R/W *Set file tamper check Set file password Set AccFail-action cmd @GCY$CM:JTACTN *Enter security key Set conditional softlink (VDB2:[EVERHART]LOGIN.COM) --> Grant identifier on open/revoke on close (FIELD) Quit, make no changes Done, update file controls now Perform database maintenance commands Apply selected mods to all wild files If we select Quit (to abandon the marking) or Done (to perform it) we eventually get another prompt: File(s) to mark (? for dir): and can either enter a filename or a return to exit the script. Note that if you have not entered a security key, the selection of base priority, replacement priv mask, or identifier will not be effective. The security key must be entered, and must match that entered for the volume at EACF startup to be effective. This protects against unautorized file markings causing security problems. If any of these are entered and no security key is entered, you will be warned and given the chance to go back. The "Apply selected mods to all wild files" is used only where the file specification given is a wildcard one, and means that the markings just set up for the first file will be applied to all files in the wildcard specification. If this is a huge number of files it may take some time. If you have marked files in the fullscreen front end, this option will apply the selected controls to all files you selected. Thus you select files, then set up access controls, and then apply the access controls to the whole list for simplest use. The "Perform database maintenance commands" option selects various EACF maintenance operations. The menu it brings up is the following: Extended Access Control Facility MAINTENANCE COMMANDS Delete this entry Remove all database entries for now-deleted files Create listing of all files marked Repair deleted ACEs (ANY such are a security issue!) Change or delete a string in all lists Done with this menu "Delete this entry" means delete the currently selected file's ACE and database entry, removing it from EACF protection. "Remove all database entries for now-deleted files" means to go over the whole database and delete any entries referring to files which have been deleted. This should be done periodically to ensure that the database file is not cluttered with old information. It is handled in this way so it will work even if files are deleted with EACF disabled. (If the system logical GCY$DELMNT is defined to be "OK", then EACF will delete database entries when files are deleted to reduce the need for this maintenance.) "Create listing of all files marked" will create a sequential list file of all marked files in the database in the format Filename (fileid) suitable for the /FILENUM command's input. This can be used for any desired purpose and is created as JTD$CM:OP.GDB_LIST. The DCL symbol JTA_LISTFILE also is set to the filename value. The intent is that this file is used to set up the map of all marked files used in the /FILENUM switch (see above). "Repair deleted ACEs" goes over the database and checks that the correct EACF ACE (file mark) is in place on each file. Any files whose ACEs have been deleted are possible evidence someone was trying to access a file EACF denied access to. Since the ACEs are marked hidden and privileged, this generally means a privileged user. Warnings are output to the OPCOM log and the user terminal if this is seen. The ACEs are then reconstituted. Running this item is a good idea also; it should be done periodically to ensure that protected files STAY protected. Files attacked in this way are protected anyway if they are in the list supplied to the /FILENUM:file-list-name.typ command. If they were not, they may have been compromised and should be checked carefully. If they were, EACF protection was not lost, but it is likely someone tried to break the EACF protection. ************************************************************ These kinds of events represent security related attacks by privileged users. They must be taken VERY seriously. EACF output to the operator log will give more information about any denied accesses if the /FILENUM feature was used so that prot, ection was not actually lost. Also this will show potential earlier attempts to access the file from before the ACE was deleted. "Change or delete a string in all lists" is used, for example, to remove a username from all lists in the system requiring only one command per disk. It globally replaces one string in the lists with another. It should be recalled that since this is literal, if you are, for example, renaming a terminal server, you must replace the selection strings actually in the database, which are likely to be of form ",*name*" rather than plain strings. The menu front end is such that the "`" character (accent grave) cannot appear in either string. The underlying utility can use any delimiter. However, this character is illegal in all the selections likely to be there. The string changed cannot be null. However, it is possible to add a user to a group by replacing, for example "USER1" by "USER1,USER2". This can be useful. COMMAND - LINE USAGE EACF defines several commands discussed more fully in the file JTCOMMAND.DOC, which permit use of and control of EACF from DCL command lines. Among them are the following commands, mentioned briefly here. * MARKFILE - Set EACF security markings on files as discussed above. This uses the command file JTMARK_FILES.COM and allows marking one or a collection of files, or editing their security profiles. * MARKSDH - Enter or edit security markings on files. This differs from MARKFILE in that a fullscreen file display is presented first to allow easy graphical selection of files to operate on, with the assumption that the files are in the current default directory tree. *FILEPASSWORD - This allows one to enter passwords for files protected by password controls. It should be used by a process before attempting to open such files. If the password entered for a file is correct, this will permit access to the file. * JTEXEMPT - This command has two forms: JTEXEMPT JTAn: and JTEXEMPT/DEAS JTAn: and serves to exempt the current process from filtering by EACF, DPS, and HSM in the first form, or to re-enable such filtering by the second form of the command. The disk associated with the intercept driver JTAn: is the one to which access is affected. Whenever this command is used (and it should be used very sparingly, and protected against unauthorized use) it will log the fact of its use and who used it so that it cannot be readily used silently. Note that if the JTEXEMPT image is access controlled by EACF, additional controls on its use can be enforced. The system also defines the verb JXSET which can exempt a process from controls. It should be made available only to trusted individuals, however. Its use is logged. PERFORMANCE ISSUES Highest performance at runtime is obtained by using the maintenance commands to create a list of all files in the database and loading this into the EACF database in kernel mode, selecting the option that tells EACF only to inspect files marked in kernel. In this mode, essentially the only files which incur more than a few extra instructions overhead at runtime are those known to have markings on them; the rest are quickly passed over. If however the number of files so marked exceeds around 10,000, it is probably best just to let EACF inspect all files for markings. As long as there is any header cache at all in the system in that case, the extra header access done to read the ACL will only use the cache, and not cause another disk access. Also, the disk containing the EACF databases should ideally be as fast as practicable (and remember: EACF should also be used to protect those database files from tampering). Finally, the EACF servers can profitably be given higher than normal priority, and should be. They are I/O intensive when used, and system responsiveness will be improved if the EACF servers are run at software priority greater than the normal 4. Even if EACF is checking all files, system access time will not be noticeably affected save for those files which have extended checks, and in those cases the checking may add time. The longest operation is the file integrity check. This check requires, if the file length has not changed, that the file be read completely before opening by the user, to ensure that it has not been tampered with. This is reasonable for short scripts and the like. It should be done with caution for 30000 block images. (If file length changed, this is noticed at once.) Other operations take negligible time. EACF can be set up with as many servers as desired, from one for all disks in the system to one per disk. Basically, the more servers there are, the more opens with EACF checks can run in parallel. The servers are however activated only where it is known there is a file marked which needs server access. ACEs are read from a kernel thread, of which there can be many active at a time. Accordingly one EACF server is likely to suffice for most systems. USAGE NOTES To show some of the uses of these capabilities, let's take an example situation. Let's say we have several files whose contents are confidential (say, a business' general ledger) which need to be manipulated by a few programs which we'll call GL, AP, AR, IN, and PR for short. What we want to avoid is that anyone browse these files. One way to do this is to create an identifier (call it GLG) and set up ACLs on all the files which grant access to the files to holders of identifier GLG, but deny access to all others. Then we arrange that each of the 5 images has the GLG identifier granted when it is run (the programs are set for E (execute) access only) and now the programs in question can get to the files. IF nothing else in the system ever gets the identifier GLG, and IF nobody uses privilege, we're done. Note however that there are two disadvantages: 1. The control is scattered around, so you need to do considerable poking to find that nobody else might have the GLG identifier normally, and you must set the ACLs on all files that the GL, AP, AR, IN, and PR access. 2. Anyone with privileges can override the controls. Note that you can fix objection #2 by prohibiting access to any process holding READALL or BYPASS privileges. Ensuring that nobody has the GLG identifier requires separate examination, however. If it is now decided that access at night to these records should be prohibited, EACF can simply be set to disallow access during those hours to the files, or possibly to the GL, AP, etc. programs that access them. Notice that with pure ACLs this is quite awkward, and blocking privileges is impossible. With EACF, it's easy. However, there is a neater way to accomplish this. On each file to be accessed by the GL, AP, AR, IN, or PR programs, have a permitted image list containing these image names, and a forbidden image list of * (everything) so that only those images can access the files in question, regardless of privilege. Note that now no identifier needs to be created, and the files used by the programs are clearly marked so that it is obvious by looking at them using the marking scrz@ SAFETY013.AD  &[EVERHART.JTDEMO]EACF_USER_MAN.WORD5;1R>|ipt that only the selected images have access. Moreover, this cannot be overridden with privileges. Notice too that preventing access at night to this data is done in the same records, and in these cases, you protect the confidential data, not necessarily the programs (which might be run at night on test data). All the security relevant controls are visible in the file marking display. It may occur to some to ask how the data gets backed up now. One can of course set certain times of day for uncontrolled access to the files in question. A simpler way is to have a special copy of BACKUP that is permitted unlimited system access. The CLD for such a copy, assuming it is called "SYSBACKUP" would be as follows (using the VERB utility to extract the original BACKUP command language definitions): define type ENCRYP_VAL keyword NAME value (type=$outlog) keyword ALGORITHM value (default="DESCBC",type=$outlog) keyword VALUE value (list) define syntax BACKUP_LIST parameter P1 , label=INPUTS , prompt="From" value (list,type=$infile) parameter P2 , label=OUTPUTS , prompt="To" value (list,type=$outfile) define type MEDIA_FORMAT_TYPE keyword COMPACTION negatable define verb SYSBACKUP image SYSBACKUP parameter P1 , label=INPUTS , prompt="From" value (required,list,type=$infile) parameter P2 , label=OUTPUTS , prompt="To" value (required,list,type=$outfile) qualifier ANALYZE nonnegatable qualifier ASSIST default qualifier BACKUP qualifier BEFORE value (required) qualifier BLOCK_SIZE value (required) qualifier BRIEF nonnegatable qualifier BUFFER_COUNT value (required) qualifier BY_OWNER value (type=$uic) placement=local qualifier COMMENT value (required) qualifier COMPARE qualifier CONFIRM qualifier CRC default qualifier CREATED qualifier DELETE qualifier DENSITY value (required) qualifier ENCRYPT value (list,type=ENCRYP_VAL) qualifier EXCLUDE value (required,list,type=$infile) qualifier EXPIRED qualifier FAST qualifier FILEMERGE nonnegatable qualifier FULL qualifier GROUP_SIZE value (required) qualifier IGNORE value (required,list,type=$infile) qualifier IMAGE qualifier INCREMENTAL qualifier INITIALIZE qualifier INTERCHANGE qualifier JOURNAL value (type=$outfile) qualifier LABEL value (required,list) qualifier LIST , syntax=BACKUP_LIST nonnegatable value qualifier LOG qualifier MEDIA_FORMAT value (required,type=MEDIA_FORMAT_TYPE) qualifier MODIFIED qualifier NEW_VERSION qualifier OVERLAY qualifier OWNER_UIC value (type=$uic) placement=local qualifier PHYSICAL qualifier PROTECTION value (list) placement=positional qualifier RECORD qualifier RELEASE_TAPE nonnegatable qualifier REPLACE qualifier REWIND qualifier SAVE_SET placement=local qualifier SELECT value (required,list,type=$infile) qualifier SINCE value (default="TODAY") qualifier TAPE_EXPIRATION value (required,type=$datetime) placement=local qualifier TRUNCATE qualifier VERIFY qualifier VOLUME value (required) disallow (ENCRYPT.NAME and ENCRYPT.VALUE) disallow (DELETE and RECORD) disallow (DENSITY and MEDIA_FORMAT) Now one adds the path to this copy of SYSBACKUP.EXE (a copy of BACKUP.EXE) to the list of exempt images in EACF. (The correct full path is shown in SHOW PROCESS/CONTINUOUS when the image is active for the process being shown.) In so doing, now, the SYSBACKUP verb can be added to DCLTABLES and used for making system wide backups. Note too that EACF can be used to control access to the SYSBACKUP.EXE image, permitting access to known people at known places and times. It is possible, too, to deny access to anyone with privileges to the SYSBACKUP.EXE image and have EACF grant the privileges itself (so that the "maximum privileges to open" mask would have only a few privileges, and the "replacement privilege" mask might have all privileges set). [One can also just use a VMS INSTALL to install the image with privileges.] In this way it can be made exceedingly difficult for anyone to use this system backup utility for unauthorized access. It also makes it fairly simple to allow an otherwise unprivileged operator account to perform these backup duties without granting the account privilege. By limiting the ability to use the program to a NONprivileged user, you make it much harder for anyone to gain "spoofed" access. The security model supported here is much richer than the default VMS model, and while it can be enhanced, it covers a great deal of ground in controlling who has access to what files. Hopefully the above discussion is helpful in describing some of the ways in which EACF facilities can be used. Appendix - Extra Odds and Ends (The intercept driver is also able to be set to prevent file opens where a volume is allocated or mounted privately. Normally such volumes' files are private but the privacy can be overridden in normal VMS with the SHARE privilege. This option allows the volumes to remain private even so. Note however that this can mean a print spooler will not have file access, and may inhibit other actions, so that this is desirable only some of the time. Access to disks mounted /system or /cluster is not affected. This operation mode is not currently supported by the setup scripts however, as it is somewhat esoteric. One sets the 2048 bit of the function mask to enable this. One also can enable fragmentation reduction by setting the 2 bit. By setting the 262144 bit, one tells the driver to only examine opens of files that have had their file numbers loaded into memory. This may sometimes be wanted for performance reasons. These and some other more esoteric functions are built into the driver and may be used as needed. The file jtcommand.doc gives information on the command language available in EACF and on some other capabilities not shown via the menu interface in V1.) ܀'9K]f````a 0$B2TBf`````BM';X9[K[Te]```b`eg*g3h<hEBpNr`si````su*u3v<$vE(vN9vW|y`````|y}y*y3y<yE!{N#{W_{````_{*3<6E8N>W|`````|*3<4E"W>`Ki````Kr3|<:ExNW˚`Ni````N*3Ş<ENW/````/1*13<ʥE;N<W>`````>p*r3<E NCWf````cf*3<oENW`````G*I33<7E8N:W~````~*g3Ÿ<ƸEȸNW`````@*,3Z<ԾENDWE````E*'3d<ENWv`````vw*y3"<ENAWB````BD${-}6Y?HZ````$&6?Q^Z,c``````,|  $ -`b`l< l<99xl<99xl<99xlC-l<#99! }e#M(,515:>C-<l<#99! }e#M(,515:>C<l<#99! }e#M(,515:>C-l<#99! }e#M(,515:>C-$l<#99! }e#M(,515:>C$?l<#99! }e#M(,515:>C?l<#99! }e#M(,515:>CQ l<#99! }e#M(,515:>CQ l<#99! }e#M(,515:>C l<#99! }e#M(,515:>C l<#99! }e#M(,515:>C l<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>C l<#99! }e#M(,515:>C 0l<#99! }e#M(,515:>C0l<#99! }e#M(,515:>Cl<#99! }e#M(,515:>CKl<#99! }e#M(,515:>CK;l<#99! }e#M(,515:>C;l<#99! }e#M(,515:>C!l<#99! }e#M(,515:>C!$l<#99! }e#M(,515:>C$%l<#99! }e#M(,515:>C%)l<#99! }e#M(,515:>C),l<#99! }e#M(,515:>C,i-l<#99! }e#M(,515:>Ci-2l<#99! }e#M(,515:>C27l<#99! }e#M(,515:>C7 =l<#99! }e#M(,515:>C =Al<#99! }e#M(,515:>CA Bl<#99! }e#M(,515:>C B Dl<#99! }e#M(,515:>C DDl<#99! }e#M(,515:>CD:Hl<#99! }e#M(,515:>C:HJl<#99! }e#M(,515:>CJMl<#99! }e#M(,515:>CMVNl<#99! }e#M(,515:>CVN`Nl<#99! }e#M(,515:>C`NPl<#99! }e#M(,515:>CPVRl<#99! }e#M(,515:>CVRUl<#99! }e#M(,515:>CULVl<#99! }e#M(,515:>CLV}Wl<#99! }e#M(,515:>C}W=Xl<#99! }e#M(,515:>C=XyYl<#99! }e#M(,515:>CyYA^l<#99! }e#M(,515:>CA^M^l<#99! }e#M(,515:>CM^dl<#99! }e#M(,515:>C{5  mopRCZW:*axP;1Ʀ%h`NWWn;..])8@hm3kd,gBl)ϵCŲjY'![ptuZ##!^m[u %i"YZg% gLЬUɁ} +ݣDO0ܣeTI旌0oڽPek̘))1ȋ6=7U0ghW(k-f + w~փ%PìE$Cf6;Gda/MБ#c}'ye*vUC"x1?e/{#kR/B+w; >yZY1i(1o׳#w\W^qQÄgs.Ը&[kxA0w|Uq~1STFMXa"*NƁ@b =]Fa\Ic]`5#i_.c͌㜨Rm栭*ɱj&@,1;m2[9^.B@3Ȁ嘯«ǵ6E.LPE#?hj["rVupB ($Z3,\HQh]/bg6{MTF6D2 cj}d ՂM؍=N=g$qVVu+=.~m 6K-{5%>co&HP=B 4^ })uce+R%7El/z]/|.}o*u!2]~띨k5`x`p׈vIh,&m_g,{TeXIBx('Xu >S; v{/n Ϡ=>.fJF p3 ܅"IA@O)lx Sl^- %G 91FvvTH / ˇ ape3 )1#zA?1٨xNT!3a8=jzXLۜt^I_R,i+T gSZ *xu wN[B`g.|J ZJyvEрDN m mm{HC,2G+3(3ٛ 6܏Ȏ4p $>1!ci̴yۥ89(׭{Q13MXĕGґ,8dF*SS;])|B95GDN)O8Vڻ'ɀXjҢjylCqm>s`ie,̢TOr SYLJj.17+o_d>0ƨR7&rWboo':߾)0vejFI:WŽFgۥؑp}ʢjHLނo^**M_aG=xhEk݆imҒlqcrԑ6DC0"XϹOH+` {p_'3$Q$E-TB̮r.oƮs5Kwrҍ}:.aV- ISXw9iRiDd-~P2 Ge:PWϕs\`E-*9}5n >.Vg X ,^a|Ϊc|X/ZswZ]zHGVi&=o?k|[ 38}-U$)ͩu5SyHRq Io?(Q\V\7m  {/2C,4%-M5l4窕7djL󀖺Ҭp\)FA"N|=sKtQ" gSD dٖGLG-ALjp:rW>͌@zvЎ~7޸Z(: ZYPpԪĉJTqT+mmL+shi>rnf7=;HERAIt7>$u{WZ12i:dU?0}(lcv僱׺q;A$L_ sSF)t\|tg$Py#p]â; xB{EUm?6Vu^I?;-[X_Gy,ݯ» XJՀxmךΡ$;[1.ˉ0(sʫjB$bz#Fv⿂]DYjss0Z]+4:ޣ!(͍I/"fݛr4XzqOsD. )C Z@V]R 2Ȣ /,^yc4ot[#$P`Mi2_L{'<H1/bi<>{LgGͳG;~aɰ,P&ӷ'VQc 5Z6{vq2֑< 551X9_k,pk)ZtOoF }3w1^,W8O:5]xE;ȈZHrWZ{Dby<\ӐI˟ko0Hu;[v|4R!jcWO(nS,Y+xv_|@9FMϗeF~ |fZ0J)3axJb=d:uaD<;f-e^/o#nN0 {kʴE-9*mZ7;qbWbyrn)RUl6H X9ˡb{)j\.-n9;p P]hoOѡ?C)kǎ^}E#uҠV)_6E-œr&\kcD kJ:b/b+a#&iPS(O8@{ I54oiwB8 Oxm2k@rK8Ki!5$ A1os@"~ȡ8,fA#N^ec~CK%h{'ntp[fÑ >ˬqPu$+bBBVN?f}cCPD&Uf{6i3Ŕ m Z<7Gg([b߈oݨzNt-+ ۰2{=KL8rv,%k_SMN˼D<ةNXȈ7iIcGzs"3Tڪ^8Mn1[Y2B3KA1"w/jA wj߮[* c!mn9tJ]lEhRĪzqY[gMm7T0Bd0P(0WbCa7© رF 7鳋ogB8!P[5 -6Iֽ^8?xMһ%g!u0燠:uI1svIjLp-dj8%'uc_ƿBzJBD$3 aOrmUggP\~&JeĽ^7mcr_۳MfE \3ydI[sXN`; Rf4,"yر^GQd&[X\d2ycq'0rsO:Zcܞ/T.uZ8OZk64K"|7(ZLsBq-s/Y&GLfm{dwŴ-4/P=c?bm!IgM >X8j[iƦ 0.g}[}qnmCZ?= k\ ) 3ljWXw*bA#~|pG,cCǼse71&LC$i\wk ?݈vIOxm * J@ky?35MP ѕj:æNjƼL_Ϙto_-K,$)>WV1 MX"]_9wQ7QPX!G|< UOY=4w{ F0 O旱:w~ԙ|2d‘c?֛ۖ9Q2~b1:m436-  z>#\tSCI#skFV{~:1adwYeL⊌ |R}8 #/pR?>ᣕ&9@|6 jczhI#,8u''lq %֜K|jL+Kg1V[)5"y+ {g(XA%е0:u|J6wʄC:fYlliB64{Hqҩ/~f;_i THoۭzpG e:2gP1GU.3wR~@v7lmMrdXP R*&>q.ؠMUJOJ*֋jr}^VۆR G*}[ ʎ!L>lD V# _25T]ޝL}pxx0Ba,ʌAZ0#ofUGoؔtI<G0 ی7ROyg(o-] cz TՐdUq8fV ƳLwײꬥz)0 `g3k9s/Їo6Y՚X{Β@(RJ1!qh㝧 f|cUBDBvWEMR <HXXRvPaC*nLq 0-%ʭpfpUO`8)"T:ٜ콌흭 OC|߭YS;keo wAyj7{82+f=uǵHu]&~hho4*TM˺rQUB0[՚=G_$Ӫq ,tW㷎9=ѽ!cXmwBgG,E'oGKGtFhIpiŮX:1_1,F\wz9PKP|;{fNEܽ3cW_,^[B~P6\EBF JaW6 }ԉGc Iˮ T%.flUx3{xo"9tiuFSZ.F?sFxr汙זaffW4;:RM`e/c)bmgP.u"[w{y}^azx&dDž62N|"/H<܂k4ޮGuI-h;Hϐ5-kvOQGY 2sY[z5PeR?=~eX5yCq0.X `rמ,JP9XwA48ܑ\ĸ*xJ PIemRJdG G`\S5F'Ǡ3L&TA,ɉfb3*㎀5}<\$*Wg t|e-No,]FGp1!%r;`s .n8N əoNwD.K1[-p9\O"4CA8ZLq6 ՇMӶG>dpiO_U\G7 Jle*g?|q9OoY-ƨ^hD˻C Q.։Z֫-@wppl\~opT{s  "ڌYy!,Ť,a;L;Nxcxd!mڥqM~;}G[4rdGqFeB,›b⎮p?w\O}r؏>rӦAyR(Jw<"M}&~l U#"&阰HŦ!E׶k"J \a)39ӻJ1р5MX3XW]0um A)ׅ*r9神Pt_@6Qxa2BYЗq\y.<,*Zad`2!'' ȵA(2MBsG=++ccW]R 1T/[腳EoFe6OpQ$c٫=7c@M]窑Z(A[*OV]ٓ$FFlP5+$iCpK^[7NؔRUַSPā#e5G_4wHq,G:`&Y^H:&Ղ6S<؞W k\$L80{$@>԰jTa' (8n FqnjSrx|C09gHF l-U8?AϳQJg'01'iK~/|zmjQ>Vlk/m@*"{|q/4)2c!? ]nN  Z!'p6udlvG=g+bzݮBC'=;%uF=c݅hz$*dx~R`y os= )D0i7mslZ zhs^q{]#GڱḚYhm'va2H=[ɠ36;IIjLko<J-X &` k †Mz!_ytL7U5z#kgEWw׊8ixkFÐ&v%Q̊j<xK9!͎Jh:ef] y8n5e7h0!z HSoQXK\kRA!O2᥍|y'Q3jXu5RB/TjslTv <6PzNI᜿ /N8Ӵz7 }?tń%=N'JP&OU~3o)/LV2xDeROzԮ rZ@?* \+Co{Oێ nl1pC2`Ly֊Ԃ=XY[L^ M˱/z$i> B C8yaxt!`X#ۂ8v5(0!i=L!|$s{[:8&>Q@AYX jd*C'";^ '8$Duzs#xU-dW΋D{Uh4y͞ -A(< "N ӷPQ쨿4O`WVmn|/(8LU-PrrI"p)lQJȤs>Tkm;-a3-ԚAHL_陥O4!$8S#e HH6=sR;L^eB P ?kZlmn0)IY9~7֖wj}n3_7qARpS/!N5Zq݋rfu-A+u&PtNtԨ> rat%:gg@-ء5?4kBm;'> `g%D%YA|T:!0O?ש1pS"QD# gF oauYPJqT+/J5)~#<>Qi9sȦhr$FpH,AFTsODžc. xtpēl,Yq8nQPJ q)>GqIZ ah1]EI9ݙ#(B,k[ȗɸW7o! UvГV?)X6VjQvqP#XQ]Il.S2Śq\L8, TQF_N&̛'?hCz${oZ-=ɶb🾜%P] QTJձR2Q˶9_肏>32aQS ^p1W*ͣc M]o+(|x6&TL[ՑʲaJK&X/l~n_**EήFESH3Q!ŻXBYꔡ/\?uvq= IGEAŐX֋Զέ ]#-.2)[߯. ^̷H}k, ?H{ Ҩ,54z(Bqlo: rA*=_M8_(ŽNiIxb( ,DhKd׀k)}j oydϿB4x&weӇ]SQ8x)'3Z+;gcCgNTP8Q?E%C`"o]S͜QBU] H =Ff}ݤ\]RX7gM"E{a8d$QִG2)`ift>kʾD>=i|mF4ofY/H}ԋ{aGA{A=1ce?=k*_ktȻFX2(u~ND76(7ur4P;C r8fNjm4%zpg{4,nD9ԐS<,72oUR]j*Y0bR:Uf#07+>Ҟ.A 7ww~^H`yFh_z-|DYuLyܓLKL'X>(ү 1ۥ$ltrrUFF4& l%%eD"B/#1BQ6p?gbksaA gc=$L3:,JrY]!V?F:O6}1{GիHZiUSXK c[gi9yH7E?[bKXyM42}ᷥ./x?82P\x~ .íЕ}ǯ1M6,y4kv}03=M!˓VRbd,zDy18GZtt'q&R1zZfmoye ish)Ty> 9ns/~k9_ l('9:"VQ/:R.G]Z1 E,LeWH EnD"@[471yV yK !/]/fJD/*Ί/wk9$,+S[Հ>-_Rɳd!첑:gCD,cAnj .&쑂+O"ZAT,kQ_GĒҽCEԹ$~d|: ^7'`"iSZgtMDc(̪c[~qݤ%z,q= ɘIN7}JZo3҆D!*Lti M^WnCf?ҹ7,g}H$`DsJy'Q7MmX;BBlX?㎳\ ,ÀL O,^mޘh0!U_7I2}3xe|_?On7^W(*.؊Ԧ=K;sqNA8ͬ¾yR>d01]MvTYu* @dz;nt'usASqj-nLzS~)}cn25ͽa NŲ-CH.p!=jו}i"ys&.LJcmz{Y FXM: uھk3W [ґWŐ.aZ-sZ9 ;QLń+ђRo'O< lZjFOE[~(+del<#99! }e#M(,515:>Ceel<#99! }e#M(,515:>Cegl<#99! }e#M(,515:>Cggl<#99! }e#M(,515:>Cghl<#99! }e#M(,515:>Chhl<#99! }e#M(,515:>Chhl<#99! }e#M(,515:>Chjl<#99! }e#M(,515:>Cjml<#99! }e#M(,515:>Cmbol<#99! }e#M(,515:>Cbovol<#99! }e#M(,515:>Cvool<#99! }e#M(,515:>CoDpl<#99! }e#M(,515:>CDpql<#99! }e#M(,515:>Cqql<#99! }e#M(,515:>Cqql<#99! }e#M(,515:>Cqrl<#99! }e#M(,515:>Crrl<#99! }e#M(,515:>Crrl<#99! }e#M(,515:>Cr3sl<#99! }e#M(,515:>C3sHul<#99! }e#M(,515:>CHu\ul<#99! }e#M(,515:>C\uyl<#99! }e#M(,515:>Cyyl<#99! }e#M(,515:>Cyyl<#99! }e#M(,515:>Cy#{l<#99! }e#M(,515:>C#{a{l<#99! }e#M(,515:>Ca{~l<#99! }e#M(,515:>C~Pl<#99! }e#M(,515:>CPl<#99! }e#M(,515:>C8l<#99! }e#M(,515:>C8@l<#99! }e#M(,515:>C@l<#99! }e#M(,515:>Czl<#99! }e#M(,515:>Cz|l<#99! }e#M(,515:>C|l<#99! }e#M(,515:>Cl<#99! }e#M(,515:>C6l<#99! }e#M(,515:>C6Fl<#99! }e#M(,515:>CFl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>C8l<#99! }e#M(,515:>C8"l<#99! }e#M(,515:>C"@l<#99! }e#M(,515:>C@Ml<#99! }e#M(,515:>CM`l<#99! }e#M(,515:>C`Ol<#99! }e#M(,515:>CO͖l<#99! }e#M(,515:>C͖ۘl<#99! }e#M(,515:>CۘGl<#99! }e#M(,515:>CGrl<#99! }e#M(,515:>Crl<#99! }e#M(,515:>C:l<#99! }e#M(,515:>C:zl<#99! }e#M(,515:>Czl<#99! }e#M(,515:>C͚l<#99! }e#M(,515:>C͚l<#99! }e#M(,515:>CNl<#99! }e#M(,515:>CNl<#99! }e#M(,515:>CǞl<#99! }e#M(,515:>CǞRl<#99! }e#M(,515:>CRl<#99! }e#M(,515:>C1l<#99! }e#M(,515:>C13l<#99! }e#M(,515:>C3l<#99! }e#M(,515:>Cl<#99! }e#M(,515:>C!l<#99! }e#M(,515:>C!֤l<#99! }e#M(,515:>C֤l<#99! }e#M(,515:>C̥l<#99! }e#M(,515:>C̥>l<#99! }e#M(,515:>C>rl<#99! }e#M(,515:>Crl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>C>l<#99! }e#M(,515:>C>l<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cql<#99! }e#M(,515:>Cql<#99! }e#M(,515:>CIl<#99! }e#M(,515:>CI5l<#99! }e#M(,515:>C59l<#99! }e#M(,515:>C9xl<#99! }e#M(,515:>Cx l<#99! }e#M(,515:>C 1l<#99! }e#M(,515:>C1:l<#99! }e#M(,515:>C:l<#99! }e#M(,515:>Cil<#99! }e#M(,515:>Ci3l<#99! }e#M(,515:>C3ȸl<#99! }e#M(,515:>Cȸl<#99! }e#M(,515:>CBl<#99! }e#M(,515:>CBټl<#99! }e#M(,515:>Cټ,l<#99! }e#M(,515:>C,\l<#99! }e#M(,515:>C\l<#99! }e#M(,515:>CԾl<#99! }e#M(,515:>CԾl<#99! }e#M(,515:>CGl<#99! }e#M(,515:>CGVl<#99! }e#M(,515:>CVdl<#99! }e#M(,515:>Cdl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cyl<#99! }e#M(,515:>Cy$l<#99! }e#M(,515:>C$l<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>CDl<#99! }e#M(,515:>CD}l<#99! }e#M(,515:>C}[l<#99! }e#M(,515:>C[l<#99! }e#M(,515:>Cl<#99! }e#M(,515:>CNl<#99! }e#M(,515:>CNal<#99! }e#M(,515:>C}@ SAFETY013.AD  &[EVERHART.JTDEMO]EACF_USER_MAN.WORD5;1^al<#99! }e#M(,515:>Cl<#99! }e#M(,515:>C;l<#99! }e#M(,515:>C;l<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>C-l<#99! }e#M(,515:>C-l<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Ctl<#99! }e#M(,515:>Ctl<#99! }e#M(,515:>C l<#99! }e#M(,515:>C l<#99! }e#M(,515:>Cl<#99! }e#M(,515:>Cl<#99! }e#M(,515:>C'l<#99! }e#M(,515:>C'[l<#99! }e#M(,515:>C[[l<#99! }e#M(,515:>C[el<#99! }e#M(,515:>Cel<#99! }e#M(,515:>Cl<#99! }e#M(,515:>C&l<#99! }e#M(,515:>C&l<#99! }e#M(,515:>C`l<#99! }e#M(,515:>C`Dl<#99! }e#M(,515:>CD.l<#99! }e#M(,515:>C.l<#99! }e#M(,515:>CXl<#99! }e#M(,515:>CXxl<#99! }e#M(,515:>Cx l<#99! }e#M(,515:>C"=/f2$@?\:!0   *[EVERHART.JTDEMO]EVXR64.OBJ_A;11+,E . / 4 - 0123KPWO56 7@ 89GHJ??EVXR64 29-NOV-1994 09:53MACRO-64 V1.1-087 H $$$115_DRIVER $$$115_LINKAGE $ABS$( EVXR64h h=PHC>C8^~ ޴( ҆"B0>Gk? ?=/'&EVXR64MACRO-64 V1.1-087 = 44= M64$$$$$115_DRIVER4=( $ $= 4 = H =  "*[EVERHART.JTDEMO]EVXR64.OBJ_AXP6;2+,F . / 4 - 0123KPWO56 7@89GHJ??EVXR64 29-NOV-1994 09:53MACRO-64 V1.1-087 H $$$115_DRIVER $$$115_LINKAGE $ABS$( EVXR64h h=PHC>C8^~ ޴( ҆"B0>Gk? ?=/'&EVXR64MACRO-64 V1.1-087 = 44= M64$$$$$115_DRIVER4=( $ $= 4 = H =  #*[EVERHART.JTDEMO]EVXR64.OBJ_VAX62;1+,G . / 4 - 0123KPWO56皇7R{89GHJ??EVXR64 29-NOV-1994 09:53MACRO-64 V1.1-087 H $$$115_DRIVER $$$115_LINKAGE $ABS$( EVXR64h h=PHC>C8^~ ޴( ҆"B0>Gk? ?=/'&EVXR64MACRO-64 V1.1-087 = 44= M64$$$$$115_DRIVER4=( $ $= 4 = H =  *[EVERHART.JTDEMO]FILE.EXE;10+,H .$/ 4$- 0123 KPWO56x?7/89GHJ0DX0205(y:8FILEV1.0y05-02    ? ! VAXCRTL_001B!d FORRTL_001! LIBRTL_001! MTHRTL_001!f SMGSHR_001 4 FILE ,(`T| FILE(q!P1File$qFID(OUTPUT$EXACT,qt  ATTRIBUTES,D BUCKET_SIZE0qtCHARACTERISTICS8DEFAULT_EXTEND_QUANTITY0END_OF_FILE_BLOCK0  FIRST_FREE_BYTE4@ GLOBAL_BUFFER_COUNT8x HIGHEST_ALLOCATED_BLOCK(q JOURNAL4 MAXIMUM_RECORD_SIZE, ORGANIZATION,, RECORD_SIZE$PTYPE8DIRECTORY_VERSION_LIMIT, VERSION_LIMIT(VFC_SIZE, CREATION_DATE,4 REVISION_DATE0dEXPIRATION_DATE, BACKUP_DATE4NUMBER_OF_REVISIONS( OWNER_UIC,s PROTECTION$<PROTECTION_KEYWORDS(dSYSTEM$OWNER$GROUP$WORLD RECORD_TYPE(CRSTREAM$8FIXED(`LFSTREAM(STREAM( UNDEFINED(VARIABLE$VFC$ FILE_ORGANIZATION(HDIRECT(pINDEXED(RELATIVE, SEQUENTIAL  JOURNAL_TYPES( JOURNAL$0AIJNL$TATJNL$xBIJNL$RUJNL(NEVER_RU(ONLY_RU( FILE_CHARACTERISTICS,@  ACL_CORRUPT(h BACKUP4 BEST_TRY_CONTIGUOUS( CHARGE,  CONTIGUOUS(  DIRECTORY0H ERASE_ON_DELETE,t  FILE_CORRUPT( LOCKED0 MARKED_FOR_DELETE,  READ_VERIFY$ SPOOL,H  WRITE_BACK, WRITE_VERIFY$ RECORD_ATTRIBUTES(  FORTRANCC(  IMPLIEDCC( PRINTCC$SPANFIDOWNER_UICPROTECTIONTYPEUNDEFINEDFIXEDVARIABLEVFCSTREAMLFSTREAMCRSTREAMORGANIZATIONSEQUENTIALRELATIVEINDEXEDDIRECTATTRIBUTESFORTRANCCIMPLIEDCCPRINTCCSPANCHARACTERISTICSACL_CORRUPTBACKUPBEST_TRY_CONTIGUOUSCHARGECONTIGUOUSDIRECTORYERASE_ON_DELETEFILE_CORRUPTLOCKEDMARKED_FOR_DELETESPOOLREAD_VERIFYWRITE_BACKWRITE_VERIFYVFC_SIZERECORD_SIZEMAXIMUM_RECORD_SIZEEND_OF_FILE_BLOCKFIRST_FREE_BYTEHIGHEST_ALLOCATED_BLOCKDEFAULT_EXTEND_QUANTITYBUCKET_SIZEGLOBAL_BUFFER_COUNTDIRECTORY_VERSION_LIMITVERSION_LIMITJOURNALJOURNALAIJNLATJNLBIJNLRUJNLNEVER_RUONLY_RUCREATION_DATEREVISION_DATEEXPIRATION_DATEBACKUP_DATENUMBER_OF_REVISIONSRWEDWEDREDEDRWDWDRDDRWEWEREERWWRFILEOUTPUTOUTPUTwrfm=varrat=crP1OUTPUTEXACT$ FILE %.*s- /%s=(S%s%s,O%s%s,G%s%s,W%s%s) - :::: /%s=%s - /%s=%s /%s=%s - /%s=(%s%s,%s%s,%s%s,%s%s) - NONONONO /%s=(%s%s,%s%s,%s%s,%s%s, - NONONONO %s%s,%s%s,%s%s,%s%s,%s%s, - NONONONONO %s%s,%s%s,%s%s,%s%s,%s%s) - NONONONONO /%s=%d /%s=%d /%s=%d - /%s=%d /%s=%d - /%s=%d - /%s=%d - /%s=%d - /%s=%d - /%s=%d - /%s=%d - /%s=(%s%s,%s%s,%s%s,%s%s,%s%s,%s%s,%s%s) - NONONONONONONO /NO%s - /%s="%s" - /NO%s /%s="%s" /%s=%d - /NO%s - /%s="%s" - /NO%s /%s="%s" UIC %.*s is not valid SYSTEMOWNERGROUPWORLDnoneIllegal protection specified '%c' [%o,%o]$VERB$LINE~@ SAFETY013.AH  [EVERHART.JTDEMO]FILE.EXE;107$H& @|1   ..'.HAQalu}(.7;BK4:@]yT$, 'xLU?klF9cVK^<V\ݏ}PP9PPQP1i4Z8N, n NH(Pl,EP4P((`sP̪\Z̩TRl0PPPP1PPPPTˏTRRtPPPPvb[PPPfPxTSSs iLPQJiRRRBQOViRB&_i ƗWPƖWW ƕUPƒUU ƑTPƎTT ƍSPƊSSk i"WWW  UPUUG  ƾTPƽTT{! ƼSPƹSSsƚ i XXX;! WPWWO" UPUU'! TPTT  SPSS i  2XP/XX  .WP+WWS  *UP'UUO! &TP#TT! "SPSS i~3i<~<i<~Ei<RxRS< RRS~Qi< ~Zi<RxRS<RRS~Cfi<~ri~~i<~ Ɗi<~Ɩi<~AƢi$ [P[[$ ZPZZ$ XPXX$ WPWW$ UPUU$ TPTT?$ SPSSƮi(,i( Pqi04!P0 Pz2H~$eRb8<0bP8a P;b@DI !P@% PRPPRPP"Ь&ݬ )P*Ь ."2k;2`*2Q2PQЬSQSQ Q0SSP ^5RݬPCЬGݬ PKЬ OCS\SKSSVPQЬSQSQ Q0SSP|^VSЬ Uݬ PdЬhݬPlЬpdt8}t-lttP1UttP1xRT RECORD_ATTRIBUTES(  FORTRANCC(  IMPLIEDCC( PRINTCC$SPANEFIDTYPEFIXEDVFCSTREAMINDEXEDDIRECTPRINTCCSPANBACKUPCHARGELOCKEDSPOOLJOURNALJOURNALAIJNLATJNLBIJNLRUJNLONLY_RURWEDWEDREDEDRWDWDRDDRWEWEREERWWRFILEOUTPUTOUTPUTwrfm=varrat=crP1OUTPUTEXACT::::NONONONONONONONONONONONONONONONONONONONONONONONONO /NO%sSYSTEMOWNERGROUPWORLDnone[%o,%o]OWNER_UICPROTECTIONUNDEFINEDVARIABLELFSTREAMCRSTREAMORGANIZATIONSEQUENTIALRELATIVEATTRIBUTESFORTRANCCIMPLIEDCCCHARACTERISTICSACL_CORRUPTBEST_TRY_CONTIGUOUSCONTIGUOUSDIRECTORYERASE_ON_DELETEFILE_CORRUPTMARKED_FOR_DELETEREAD_VERIFYWRITE_BACKWRITE_VERIFYVFC_SIZERECORD_SIZEMAXIMUM_RECORD_SIZEEND_OF_FILE_BLOCKFIRST_FREE_BYTEHIGHEST_ALLOCATED_BLOCKDEFAULT_EXTEND_QUANTITYBUCKET_SIZEGLOBAL_BUFFER_COUNTDIRECTORY_VERSION_LIMITVERSION_LIMITNEVER_RUCREATION_DATEREVISION_DATEEXPIRATION_DATEBACKUP_DATENUMBER_OF_REVISIONS$ FILE %.*s- /%s=(S%s%s,O%s%s,G%s%s,W%s%s) - /%s=%s - /%s=%s /%s=%s - /%s=(%s%s,%s%s,%s%s,%s%s) - /%s=(%s%s,%s%s,%s%s,%s%s, - %s%s,%s%s,%s%s,%s%s,%s%s, - %s%s,%s%s,%s%s,%s%s,%s%s) - /%s=%d /%s=%d /%s=%d - /%s=%d /%s=%d - /%s=%d - /%s=%d - /%s=%d - /%s=%d - /%s=%d - /%s=%d - /%s=(%s%s,%s%s,%s%s,%s%s,%s%s,%s%s,%s%s) - /NO%s - /%s="%s" - /%s="%s" /%s=%d - /NO%s - /%s="%s" - /NO%s /%s="%s" UIC %.*s is not valid Illegal protection specified '%c' . H .p .A }@  x$VERB$LINE  (0 x@0hPhx(@P hpXHP@p8 `#4G~^ ^(GG#8B  = > @buZkb# @(BG0b4G3UZkG] ](0#kGp#(TG~^C^~ (0޴8@H>P^X~`hp޵xGG#bGb#Pc G @P"b# @"$"b#@#" c"BB("GRbKZk4GG0"$"b#@ "`B"ĢG!GBZkG0B4G8b4IJ@ZkqH8$`d"PX"B0=HF8`"0dGGBZkl?$h$X"B"b!Gh$4GdIJ`$!F`${AZkGP¤b#B@G$"b#_@G4G B(bQOZk?%G)! E1Jr Hb#2F$$"J@ GD@ B4G(bD֢xC#"WF޶@@^PBGGXb("GGTGFZkpb#P!x@GPBGXbGtGFZk`"¥tGPBENA-XbNFZkp"tG¥IPBXbENA NxFZk䥘""X"`c"6I¦VIBIF" # 4F6E"G~vIZGc# ^EPB"~G!TGXb>QFZk"ĥ"¦c""PE"vIBFE # 4FE6G~IZG"c# ^EPB~"!GXbTG>*FZk(C"0" (B"6I"I4DEZGX #"""^IPBDE8 @# aGGEH!XbP"E޵G"tG EZkX""`#"hc"I⦀I9E0"p"Ex""DEc#>!6D¦NG~E1 # PBEXb>GG֢"GtG ޶EZkĥ"htGPBI/XbCEZkĥ "tGPBRI/XbCEZkĥ0"ptGPB.vI/XbCEZkĥ@"XtGPB/vIRI /IXbECEZkP"tG¥PBϒIXb.CEZk`"tG`PBΒIXbI .IECEZkp"¥tGPBRI.XbCEZk䥀"¥tGPBI.XbC|EZk䥐"¥tGPBϒI.XbCrEZk䥠"¥tGPBI.XbChEZk䥰"x¥tGPBϒI.XbC^EZk䥸"0¦"H"E"DPBEE#"c""E64D¦G~EZ!# 8baG^޵PE֢"##¥D@"޶E # sc#[GPB"Xb(~ 0>EΡG"G8޵@޶9H>G EZkġ"TGE  G¥!"0b#Ρ@GGGtGPBXb EZk"TGġE  ¥!"0b#Ρ@GGGtGPBXbDZk "tG¥PB/IXb.IDZk0"TGġHE  H¥@!"0b#Ρ@GGGtGPBXbDZkP"|TGġE  ¥`!|"0b#Ρ@GGGtGPBXbDZk b#N@ !$"¥b#j@``4G0BMA8bG}ZkGBGbGtGkZk` EE E0A`!b# &@ "$"b#C@`G`4Gġ0BMA8bG}ZkGBGbGtGkZk`ġE! H E E0A`ı!b#` @b#7ĥ-OI!0F@Ӱĥ!HXBb#/DE6ID0F-!R@Ӱ!7HBb#.DEVID0F-!Rv@Ӱĥ!WHBb#/DEvID0F-!R@Ӱ-wH EE D⥀b#@ӿ¥b#/vIN!0FT@!wHBb#.DE6ID0F/R@0Dĥ@Bb# QEI E/0FR:@0D HBb#EIEĵ0F/%R|@ĥ!H Bb#-DEID0F/R@0D HBb#EIEĵ/0FR !@!Hĥb#(B-DE6ID/0FR%@!7Hb#B.DE֡ID/0FR@!@!Hĥb#B-DEID/0FR@0D HBb#EIEĵ0F/%R!@!Hĥb#B-DEID/0FR!@!Hb#B.DEvID/0FR@ĥ0D wH0Bb# EVI E0F/R@0D WHBb#EIEĵ/0FR@ĥ0D HEEĵh⥀b#@$"b#@4G B(b KZkmHĥ/IEb# @ $"b#@4G B(bJZknSH-vIEpb# @ $"b#@4G B(bJZknH-IEXb# @ $"b#@4G B(bJZkH4GnH B(b-IEJZk vHoSH.vIEb# @ $"b#@4G B(bJZknH-IE`b# @ $"b#@4G B(bJZkH4GnH B(b-IEJZk vHoH.IEb# l@ $"b#@4G B(b}JZknSH-vIEb# X@ $"b#u@4G B(biJZknH-IEb# D@ $"b#a@4G B(bUJZknH-IEb# 0@ $"b#M@4G B(bAJZknH-IExb# @ $"b#9@4G B(b-JZknH" vH0J-I E-I AD"Ӓ@J2YJ tB`D0¥b#H@b#X.MI0F@0D HBb# EvI E.0FR@Ө0D wHPBb#EIE0F.Ru@0D HBb# EVI E.0FRh@Ө0D WH8Bb#E6IE0F.R[@0D@Bb# QEI E.0FRN@Ө0D H@Bb#EE.0ERB@Ө0D1EE¥b#@ G$"b#@4G0B8bG{ZkpHå$"BTGb!I0D"yZk %%!0!AA E䳤⥀b#r@Gı$"b#@4G0B8bGzZkpHB$"bTG!I0D"yZk G%%!0!AA E䳜䳨¥b#H@ $"b#e@4G B(bYIZkH¥b#8@G$"b#S@4G0B8bGzZkåpHB$"bTG!I0D"xyZk G%%!0!AA E䳈⥀b#@Gı$"b#)@4G0B8bGzZkpHB|$"bTG!I0D"NyZk G%%!0!AA E|䳀䳀¥b#@#" b#@G䱽0B4G8bbzZkáaHG"b#x$"-ITGE8@p"tGPB-vICXbC,AZk8¥b#@ #"1pb#E@pD(#"b#EI Dp$AF@Dp H0#"b#EI Dp$AF@0Hp? F8#"EIDpAFb#@p!H%!E.DDp$ _&hd"Dђ JDJ5J$v J`d{JFG$:'K$R@J[Gђ JĥpI&HvS@J I{ JDG5vJp HXFDG:9Kx"[G G$.IBp"bE$4J޶##JG >G(GGG}xZk G4Ghĥ&Xd.I+fIIıfI!0B8bxZk Gd`pBxb"4GnzZk>GGGGGGG  G GGG4GG]]} (0ݤ8@H=P]X}`hpݥx#k#4G~^^ GGGBGb~yZkrHG4Gpb#(0("1?H2F@@G]] 0#kG#4G~^^ ~(0GGG=BGbZyZkpbqHGTG b#0#0c 0?HF#"GD@G B"b#"TGzZk c`=G]G] }(0@#kG#G~^^0GG  G"G0BG8bG1"wZk  !v?H G]] #k#4G~^^ (GGGpBGxb=yZkrHPTG B(bP0P"1?H2F=wZkG]] (0#kG#4G~^^ ~(08GGG@BGGHbxZk qH@B4GHbX%X 0?HFeGxZkpHeGBTGb!H0D "LZk"0B%"8bTG+zZk"0B%"8bTG%zZk"G4Gb#@}$$ 0 2D@@G]D]D(0G }8@#k#4G~^^ ~(08GGG BGG(bxZkqH B4G(b% 0?HFeGxZkpHeG`BTGhb!H0D "LZk"B%"bTGyZk"B%"bTGyZk"G4Gb#0@}$$ 0 D@@G]D]4D(0G }8@#k#4G~^^~ (08GGG@BHbGGG;xZkqH 4G@BHb%0?HFG/xZkpHGBTGb!I0D e"=LZk"0B%"8bTGyZk"0B%"8bTGyZk"G4Gb#@9Gb#G"%"TG@0e/vICC+G#,"Q0H'J<(B2(Bd3v`J@G="b#TG@G]] }(08ݤ@P#k0#G~G^G^GG"@BxZktG="pBPBFBxb G$]]" xZktG`Bhb"0="]"uZkG]]#kG#G> @hGG~^G^G~GG8=pB"uxZk } B$]""D(4 @bG,=GtGwZktGB"b@="]"uZkTG BG(bGJZk4G8}c `=?@B ]"b="tGwZk} ]=#v`H"v@Hb@` .qHPJF>G]@r.tRHSrJtFr>G]G]} #k. HP JF>r. RHS rJtFr>#G> @hGG~^G^G~GGGB"xZk4G"D t @$=`G]_B BbL]"H="GtGzwZkH C"4G@G"4G4GBGC4G7G B0"GGwZkG0 0=("4GB 4C"@4G/B]`8]c `4G/ ݢB B <="b@]"tG8wZkB"bP="]"tGtZkG]]}0#k #G> @hGGGG~^GAG"wZk4GD @$ }B@ݲA"a0="]"tGtZkG]#k0#G~G^G^GG" BiwZktG="PB0`BFBXb@ SAFETY013.AI  [EVERHART.JTDEMO]FILE.EXE_A;169+ G$]]"vZktG@BHb"0="]"tZkG]]#k>C~ ^(^0~8@H GPXG(@MGA=G2BBCZkGGG=C/KtG@A0MXmOPM=8-XZk(ͦ=,G (^0~8@HPXCk.W JGTXHp0P``P@H @`00pp` p@P` @DECC$SHR@LIBRTL@LIBOTS@SYS$PUBLIC_VECTORS*[EVERHART.JTDEMO]FILE.HLP;4+,! ./ 4F- 0123KPWO56x?7 Ux89GHJ(1 FILE  < FILE is a utility for modifying file attributes.  F FILE DOES NOT convert a file. FILE changes F characteristics of the file, and thus VMS' view of the file. F FILE can be used simply to view the current characteristics of F a file, or it can be used to change any of the modifiable F characteristics. This utility can be VERY dangerous, and F should only be used if you have a good understanding of RMS. F Care should be taken when using this utility. While it doesn't F actually change the file itself, you might consider using a  backup copy of the file.  F The first thing you should do is to use FILE/OUTPUT=output F to generate a listing of the current characteristics of the F file. In this way, you will be able to return the file to its  original state. 2 Examples  F One common use of FILE, is to 'coerce' a file into being a F Fixed 512 byte file, to upload/download the file via kermit. F For example, given a saveset A.SAV, you could do the following: @ $ FILE/OUTPUT=A.FIX A.SAV/RECORD_SIZE=512/TYPE=FIXED  F You could then transfer the two files A.FIX and A.SAV F using Kermit (it would take two transfers, A.FIX with 'set file 9 type text', and A.SAV using 'set file type fixed')  F To turn the file back into its original useable self, you  could then do:  @A.FIX F This would cause the originally saved characteristics to be put  back on the file.  F Another common use is to set the Fortran carriage control F attribute so that a file can be printed with fortran carriage , control, this can be done as follows: . $ FILE/OUTPUT=OLD.TMP NETMONTH.* - < _$ /ATTRIBUTES=(FORTRANCC,NOIMPLIEDCC,NOPRINTCC) 2 parameters  F FILE takes one parameter, a filename, or list of 3 filenames. The filenames can be wildcarded. 2 qualifiers  F Most of the qualifiers are "positional". That means that F you can either place the qualifier at the beginning of the F command line, or you can place it after each filespec given. F If you place it after a filespec, the qualifier only affects ; that specific file (or files, if you use wildcards).  F For example, to "enter" multiple files into a directory,  you could use: : $ FILE X.X/FID=(xxx,yy,zz),Z.Z/FID=(xxx.yy.zz) /OUTPUT  /OUTPUT[=filename]   F This qualifier causes the characteristics of the file to F be displayed. Note that if you are also changing F characteristics the displayed characteristics are the original F characteristics. You can have the output placed in a file, by F specifying a file name in the OUTPUT clause. This is usefull F for restoring a file to its original state. Note that the only 7 characteristic not displayed is the OWNER field. /EXACT  /[NO]EXACT  F When used with /OUTPUT, this qualifier determines wether a F complete file spec is displayed (/EXACT) or wether only the F filename and filetype will be displayed (/NOEXACT). The  default is /NOEXACT. /FID  F You may use this qualifier to specify the file id of a F file to enter, with the name passed on the command line. For  instance: 2 $ FILE GARBAGE.SPOOLED/FID=(1234,56,0)  F This will enter the file specified by the file id F (1234,56,0) into your current directory with a name of F GARBAGE.SPOOLED. You may at this point do other things to the ) file (such as make a backup copy).  F The original intent behind this was to be able to recover F temporary spool files (which don't get created in any F directory, and are created "delete on close", thus having the % "marked_for_delete" flag set). /ATTRIBUTES  F This qualifier determines the record attributes. You may . enter a list of (negatable) attributes: 4 [NO]FORTRANCC - Fortran carriage control 4 [NO]IMPLIEDCC - implied carriage control 5 [NO]PRINTCC - print file carriage control . [NO]SPAN - records can span blocks /CHARACTERISTICS  F This qualifier determines the file characteristics. You - may enter a list of (negatable) items: 3 [NO]ACL_CORRUPT - File's ACL is corrupt 0 [NO]BACKUP - File is to be backed up F [NO]BEST_TRY_CONTIGUOUS - Keep file as contiguous as  possible < [NO]CHARGE - File space is charged against owner / [NO]CONTIGUOUS - File is contiguous / [NO]DIRECTORY - File is a directory F [NO]ERASE_ON_DELETE - Erase contents of file before  deletion 7 [NO]FILE_CORRUPT - File contains bad blocks 0 [NO]LOCKED - File is deaccess-locked ? [NO]MARKED_FOR_DELETE - File is marked for deletion 8 [NO]READ_VERIFY - Verify all read operations : [NO]SPOOL - File is an intermediate spool file : [NO]WRITE_BACK - File may be write-back cached : [NO]WRITE_VERIFY - Verify all write operations  F Note that not all of these items are really changeable. F They are merely included for completeness sake. For instance, F you can not set the CONTIGUOUS flag, nor clear the ) MARKED_FOR_DELETE flag apparently. /PROTECTION  F This qualifier determines the protection of the file. A F protection is specified in the same manner as the DCL command  SET FILE/PROTECTION. /OWNER  F This qualifier determines the owner of the file. Any F valid UIC format will be accepted. There is no support for F /OWNER=PARENT however. This requires privilege. Note that no F output is produced for the OWNER field when you use /OUTPUT. I F felt that this would be a hindrance to the general usage of  /OUTPUT. /ORGANIZATION  F This qualifier determines the file organization. You must  enter one of:  DIRECT  INDEXED  RELATIVE  SEQUENTIAL /TYPE  F This qualifier determines the record type. You must enter  one of: % FIXED - fixed record type + VARIABLE - variable record type * VFC - variable + fixed control ; STREAM - RMS-11 (DEC traditional) stream format 2 LFSTREAM - LF-terminated stream format 2 CRSTREAM - CR-terminated stream format - UNDEFINED - undefined record type /BUCKET_SIZE  6 This qualifier determines the bucket size. /DEFAULT_EXTEND_QUANTITY  B This qualifier determines the default extend quantity. /END_OF_FILE_BLOCK  < This qualifier determines the end of file block. /FIRST_FREE_BYTE  F This qualifier determines the first free byte in the end  of file block. /HIGHEST_ALLOCATED_BLOCK  B This qualifier determines the highest allocated block. /GLOBAL_BUFFER_COUNT  > This qualifier determines the global buffer count. /JOURNAL  F This qulifier determines the type of journaling enabled on ( the file. you must enter one of: 0 [NO]JOURNAL - this is a journal file 2 [NO]AIJNL - enable after image journal 2 [NO]ATJNL - enable audit trail journal 3 [NO]BIJNL - enable before image journal 4 [NO]RUJNL - enable recovery unit journal D [NO]NEVER_RU - file is never accessible in recovery unit B [NO]ONLY_RU - file is only accessible in recovery unit /MAXIMUM_RECORD_SIZE  > This qualifier determines the maximum record size. /RECORD_SIZE  6 This qualifier determines the record size. /DIRECTORY_VERSION_LIMIT  F This qualifier allows you to set the default number of F allowable versions of file. This is applicable only to F directories. Note that 32767 is equivalent to 0, which is ! equivalent to "unlimited". s . This is equivalent to the command: & $ SET DIRECTORY/VERSION=n. /VERSION_LIMIT  F This qualifier allows you to set the number of allowable F versions of a file. Note that 32767 is equivalent to 0, or No  Limit, so to say.  . This is equivalent to the command: ! $ SET FILE/VERSION=n. h /VFC_SIZE r : This qualifier allows you to set the vcf size. /CREATION_DATE  /[NO]CREATION_DATE t  F This qualifier allows you to set (or clear) the creation date. /REVISION_DATE  /[NO]REVISION_DATE a  F This qualifier allows you to set (or clear) the revision date. /EXPIRATION_DATE  /[NO]EXPIRATION_DATE =  F This qualifier allows you to set (or clear) the expiration date. /BACKUP_DATE  /[NO]BACKUP_DATE e  F This qualifier allows you to set (or clear) the backup date. /NUMBER_OF_REVISIONS  E This qualifier allows you to set the number of revisions. *[EVERHART.JTDEMO]FILE.ZIP;1+,! ./ 4u- 0123KPWO567@89GHJ PKy@l$) aaareadme.txtIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; \ryIM#VDAT,i %/|n/IMVPROX'b1@0IMVRDTi =R/mSQk0_ 6@ӞJb73hnerՖtJIrX6j-Kw}wO 388jmӕPVG4rP؄߼tmaAQ$Ӳ ^0Ң,- bgU8 R(g,`/YQ]:X3F(|HjK?HIby"VV!VXT>hg"F빠a~$SuNUXo7}( ,e# N =x#oQ-UdwLm= D:yhwJb1BsIN<|o2;F*YPo1Ҥa;uٜe%jHRwi"ǿiBk ahyX$ aYYSk4יoŗ81-Gvz-ZL?&ߢ6s82 C IbCXӐi *w<(C-Ld",ϯC*44<꽿rS|>W8Ÿ J {PKy C֦c.optIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; pIM"VDAT,%I/he/IMVPROXk C'b1@0IMVRDT=RI/f(,V)H,J*KH.*KH0PKyo#=B cld.hIMVMSVV5.5IM$VFABPB @m!ЦIMVFHC,; 4 PhIM"VDAT,%//IMVPROX'b1@0IMVRDT=R/mۏ6ЧחnG!8gCg.[UI dab̰Uہ@\~#bjAj-ߢ%ѥh f!^Z}S-EBsH׭ܶK*]Ë=s=.$uQsnH}btDoaˇր%N03W}Vm%kMhpH,iv;~ޙ_oTϒ!H~ 35ڌJAy7~K=ecutg23!f>NB6 1 t;Dm/~ᄑ ~ڛ_᧽ vce6$*EbW.|%ᩩlZDQΥ S۬+Q'1CE!4UfBICrI^4dH{/3^b 1fJֲXCbp8}44|9;ެJK:(9ḧFʵi`ƧUKaB1̯d=4U+TwM ùjtqG;8~s?/']38|"P;7Ϯ#4ᆌqkZDŽaF@Udz<]پ?p_ݪz=[V 2Pb bp0hEw.\D2Ӧf6U٠QH^Di2#N:O5h B?h' F!54p6GRYو&(';9J#DiYw9B%ZYa{`O#u^}>rn/qlUgӚD ؀r׵?FUgF8;sp1e#<` {nӦ(U[$i@&vԟV~)kž{i3Ma 6WT*axmχ "8:VH1ߡ;0@ SAFETY013.A!  VERHART.JTDEMO]FILE.ZIP;1_A;1K&>2W14.pܶXsN}c_?PKy \fatdef.hIMVMSVV5.5IM$VFABPB @m!ЦIMVFHC,; D PIM#VDAT,%K//IMVPROX'b1@0IMVRDT=RK/UmOP@QB64[1Kݮ ]w@%wO^eA,ys$r`SOP>|)toн> ( 4!wTŇXtQ0,e@7#-~6}$z,JzmQ9NFf.rߖ(!IȂaMc:n;O32փX2zFTxi|=!g u6# & ιP0q R IMWuKMϮrjD;.-Ҩ$@F.F3P GŴ\SFd+kK>m]Kr[:>QeR&QLa3 )Ŝ0+06[emI"0-4"G%w KSZP"dboD0٠HiI"cq DT]t䄇nA2?upNۣKQ!ǹ؀c^D 38h[=˹n~C./˸6PKgطs#)n[(YFǻ]_IaTzUF-1Q#n~Ի]g?%:5֯6s}-XXʫrͨۓ}Ϩ%i3ZMUk3ZUPy|([E3+5*ݧ,%j] ynWqUýy9WHE=AiWYF<@OÄ(]Y&Y4M{ DŽ1-E4d7 !O`TzxVX-ݏmvnF2قxg/ARYFWztxS>L{PKy]!@@fibdef.hIMVMSVV5.5IM$VFABPBC@m!ЦIMVFHC,; 43CIM#VDAT,%h//IMVPROX'b1@0IMVRDT=Rh/\o~ Ͳu TkaǩȓD">hPDBeʥ8i}߻KwGvvDX;2h<]ƦXW+_yOMk4hh뾉ѳ[{P^vr1`L=d7g [343l uM[;Fa_kxbx<Z ВC^O«`Fo].w˯j'{#R`B֩aPx;)+a:[CgRK1m"A{!$/tDPy,֨!y,2HӆsMh@uS.קMUꪮl%4ѨSNSw =U$sonS} z:a Jg3j"qx'J ogƐx9 )s `zZ5ot$x>gdBE-ow)z$b[Ќ/$Zd⢿jly я>!7q͑׎geGkigO :/C~tp5 >Z,hgd:GL&,ԤA\^>qa|qqqE#2e#je<Htm l(R!G:N=.?sfRկăxl|9_, з|Wnu[.|YI- \f.] q,^5J[4@T$7M_jG-ȏMT6^Lfԅ2UKeA`2fң2TIu1zzxPQ$%!gWX6 /Ԟ:**!(fQh(΍tkB*'^&'ԟg#p=Rvm_ZMjmO'=ѻGg;<*Hdc5+]nᖶ%W|Dǣru,LRg}R28\X Txx,8_9<&{nH( '>d$XP`gIIK2:+\W x+`cOUHs>F}p >~ نH=x=8YLl0c}x%bC#6(G -K ֮d:!uhW;ێUF yӆ8"pYPQ\_^Q:C+ͤVؗ )^E%\"`2a d= I$BT+9A6$'kRv*Brװ %8۵ oƖ{ jإ^Qe#Oi:mkh.ӒUzB^8Y,oa)zb]p~5͢#VxrhkVRN9RŤkyj~3Yfy46ʡnHMEovf9 wciچǗ|1?ٝHjixjO8r43 "nnnOI^%6E$=!}ޛ37mO >ˆQckgzر|ƕ|<&a1#5fdκ]PR"\I*nj ^Z>\MRy֯,WHem tVrUwcWGv$b]'x+ Kz.tx풴Vrdd-("6Ikخ*y$ũAz)=*5rxoa${"aƸ/ë$̨!0/YVQ~8"x߈%raJ1:^ҝ\3UK 6uCT+ōTCSj1 n }t>X-QwJ>r6^J(Ek HjF{[,+V}z+) *gOsp?PK|sK]*`file.alpha_exeIMVMSVV5.5IM%VFABPBAam!ЦIMVFHC,;(c IM#VDAT,%f3붔ӡ3IMVPROX'b1@0IMVRDT=Rf3Z{pǙ!Jk@Zafyy'lоFvY""'P0JlA\J>g !KX@sV Yyx|wf8>^z- g?1/3.>.' @ ,)%xsBGJ]PFe!j|YNilĻ}ab)4RL Z[EP_RE ϓy9 .oՌ^kLtX T4B4a$m4>2l玬mKd&6Djj_Y;쵫v;姏aH! XU8j-x{hٴn@hc]?X}׮H;ug]0d)2:~mkPy.x{vzGzp!2ooi!+61rJi}VݢؚX26qIC+W ڿ~[Q1v )7C%OfxӱO~zH}:?Kbʫ}7P(~ nAqK3tuuyt8}~ iV=ך{T-f^FJj#S=f]YwZׇQ=tKh?B{I)1*'I'3iGL~P\`>IK~f-=~cnm^Kg~p*ꧯkzҏ-}[ sƛHkD{k(lz~ҩ"Dd@'ID*ތ}D,QWRCݮ,~(EwwR{֘y1P[DoC϶ ̐3=qoT9I7S3ind۟\}_$ܽ}UAˋeI~ӿDs/qlu۷Ƕ{HzwlۥU+" sgoKM$9k5󓘩=Sb/518Fp#Ԭ2S_{P`&\+ɴbUr087S17! kČd|U΂`e9LLb?z 38oPoV]3{U[hS&)jvڱVO5xUƜMZ3?wLi4aԟf0 ϏT1 VŮTưmfmCOjڞU~Jeiӷ= YV@k [Uli j$0q0k( 128ӗ,K9>-1'/EP߆K+|(5^3xjNu1-1"T@=Wj*6S 'RT ]9ȌVf[\o5EmD"2Ŧ_S48c6̡ap /uhhm` N[AwWۘB&Qf%St0hmfΉmI+ -lKeM`l` lBj"^$^-]-x…^tR:@;Hўv8cӎkRZ߮-1?t\pflt@i36rڌCο`D/h+dxL獄YsAŶ`$tC0 k-` ]E/[D"`Mq7 *g zK]YpqŶॎb bPpq vY.o,z#ply ݅|RuKoWpߡ=!EKXUOEWۡ}%|O`@<>|w`މO{9M(=u2 dzq/O[}okY9-2;-cabo'-Y>VYLsi|.3|rg9_y3mcѯ2,e쳌-cɢo5?,}F[Ɠ2Ze7b?ʏ6[s-'<}FΙ/O$^L8~ `Taʎ&˦^ٹʝnW.K[ɜ<޹kx'℧&$xj U7|Ks$@Yx~~: LS0?5N Sx IxYzjO]dtDC N\p";c勷]vn$Ln(]RH-82;|`n'LbmϝLL#_wF'nwC|ī/tޖǀqg.9!VqAՅeEdQFE"2r^#v+JZdkskmx+{{b ?O]7# 8h/'e]+)W #d#';8'/LԔo#M p3󮷉l5>uN_ g/ ̅b/yѯG~fh2S䟛Ma^! cįob}sS.VJys~{mMW!*PF"'_?jB/KyNj#1bo򓐟MwF/߳}cC$/oOmJ1|>K|R% ?')KJQopϓX6"IB fAk97Vz ٥k>ҝ"}>Xp| ~r#u6vVo7xoB]"roԇT)C6 J1D:֏7zNh~}l8/6>}-!P.ROLb+aS*RZYRNسq%4ЏsJ(o:( Y[O< ^׳½-[}Bc 'ƫzoWud{"ɗ+vn-CU1!]Q (mkpSUi@\3?|='U||MGEy5vҸ~'oڕNN[*ӟD~Է=g(ϕ%HLϏmxmȓOnzyR9\B?^=yg^]HXC󝻆QK֏9q/mnW'=60֏mC=eD6eRgc=۹zi$m $~5;Ě vqZq62<Ϗ/2>A:E>ʑJ(޹a3QRy\-~2>u7#vcxF礳 (nHXc'*U!ވTb Ғow΍M=A s+v_$r(<෋hSt(_ 84gey w-FbxjiB ;Ƈ=O9ٗ>~/ sd(5 ^OQоN=:&\O\|TLzzQ_;Xlsy3a "DxUsBE9Cz3<'bYe]iQ͟':{m!Fnٔi~嘦ǵ1N$>'{ΡZ=ĞshyM &65yDˣhǀ vC#''Vg b[ڃww풦Erq2bP|_:GFI ]vf-.n|J7UiaK+J?<-Ez}mF?Sn{ 'b#@|DxM|$5}f%,>m-/A{%pB[97扝WS'J)$Κ"ػU ĚKr }r(9̪ZՂ7~sQTYVuu!q Tb4hƅ@Lq̈6( +1v3FAamNEW`vpw2άbq֌bIw_U'N'#siz{lçzgNKe_pA,'u?\ QY~˲Xnѐ6ͯ9~ژ"u c0&a˜a 7~SGv1z mޔ9Cf]s7f7hxunΗodq?ǩH7B̾/Ex]cF1NԈq(8q8[`-v1۽qU7al6F]o;vѮaqWfstc˱g\! i<7f[35?=O: \#lԄ)97]ޢ|q>UAįۍ𽝈5Xpu%de9֕Z6%=w1}5>1 6(Q}-0z6*];n̵m_Eg,q`KVTX'9M{_M^z Uj>ב+&^}Bvdt* 2E'0\/~nC\,inr.XU҆}cNi|{ 5:YQ!SǹEw0V:88ۍqN?4GLk[sFT!-ٺ65@u"?sc$A:jYC;!_F~ݔcMp0΋ȿ!^#e6ю5uáys75W"Dr>μy}:QsCYRn;_s)VΎuW9~;ڕX;96mDBѹ64%Tqyyr/wS>ڔX~Hnf~M2E}=sʿvmL߰Y7 Y_COvnžIUMAC/1'5%VR|v?%\!yk󵐋+ua8n\< 0mQSVjXo*7_ Q}6w,)e\|PM0;*fƸe``su3VNXIEcA[Û1*0_ɸR)w K$rI)-!SC 5>z =/(/6w)Ƣ+G].6.w C ^;d=us ^;!#cwbiTzf "pP)h6}!;y0̵ Q}J1q+[SzM0yE=G! I>ׁF|%gُ|—W*_PCoZ_ %tv_º)d)utSW4+?at~bVWLχ ekL?`=unz~"-p#;Dcc#kma::=~z!/y^oMʫ.֡#kfL?b. $qXӪ G9qn HK<J};SbJ-?l3vp^o7;؉Ghu)Н  &!yZRu'hJoGmM]e{1V}{1mx.{60NǵzGն|u _9k_sr'g|kbn?gϵ6?l[<36r\Sf_ÿc%[B.{,Teg{c{RO> o{-~0_t~1'īNq"88Gpqe,Nqߓs agYq=?6/ohq"Z H mѡHi&DoEۛct A}͝t܃e2_s(W-1B o?7X1ǁ .z53vNsy;ZuXxEkSiCoOY F&qҬ֛1*X:)N^EtDvr^'FįU`1wQVg7G+ySߎ,+D2&lw},i!ȥn ϔɪrCIs eL\7*GW{x_}8hVWI\L乘T# ղ߮+S41gڜ*ؼj_zcO_[p6~/x)YVc9]m"GQvZ<|ĔI>>zs^缆6mYFާFL㶟?</{?&^×NjU'm.n|_EveYERg\+1÷EGW {Ǟ~C܆7B#qeUSQXnicz|΢ǠHz`= /6m,a. W)ϛTe t}86p\0zi-zl`=~u 5ўb>A:Gkki}Uyvzn1}$H4Mx*gss5~8S!٫>5~Xf\WMoosS|y_[ #9dp $X]قwS%c؈axXLN{طk =8cސq7NPRbnfSꍢ?E YB~,!FzS!-C\Zb4'wfS^g-y}ຕ{ m}C»m>Q:]"#g6_9)g?\KF{zO}9gfosTڐӸfƴ7]h8m}o9pJbԖ۩Eɢ06C)#=  ]9ώ;2g_kCch茤,U >ZVeKb*S|߂2,šAY/w6q;)dh&oϱ坈j*%hKɬ r`#G{v9j3%XsѬG e;T%QY ߾^ Z>E YQ]9sE :bR#'"w\%&tÁ @ SAFETY013.A!  VERHART.JTDEMO]FILE.ZIP;1_A;1>&XK,U?Rc MgZL):יn+E_1ևmsd`m л֔07`uy:`FHum%Re g:YzߥXf+$t2Kc_ -h{)|j*M>ŗAfŸX>_>:z>{.94ICOp, K&E1sqL}д/xԴkgD{tЮZiKҮj"״+|R-AK$p+oZx1 Bd9/\qh ε ƹݵյ: 9KI~j8?V񯋽wa /ANQvYdMk^sQWީy{N)DWͱmQϩEMs@щ]=?>Qi..iܺ%W_yV1b" ;UJ'DomQ#w܁9y!G˥yϕAL{e2sWu[m×V#%B8E2 :;ʪD:Aqf]BqarK%2~'.hwPR <GQH;uj=xĸـ_ /x =CD|"sȪ Xё<:̦ $;wgӅ~tdԦ7PK|lh7;file.alpha_objIMVMSVV5.5IM#VFABPBm!ЦIMVFHC,; ŐIM#VDAT,% 3{3IMVPROX'b1@0IMVRDT=R 3[}lǕ\[d[,ß+JeG$v;\RKE˕-I($'>[}N4hE`k!ˊCq8wB|p4WCNWtrxov(7o޼y3  B%HDJo ?Uj[޽C;C u @-ck(X]%ՙF/RK'ZF/~?Kd9_#JO g8QMt`^shgZݯj+P_2U# >.͗Kr=ii%e rKJ2{ڢFDN"=D?ң?QSvt'"VcAN{~M5hGV=\(e*]e|7dRz{KMٟD{._I+Bde~Д\YRzF;fz"^?v+Z\-whM1^'~'Uj+ћM%."qౌkJډ/&Fw[cد#zm5T~0ˉCRbFd ǵ"R)bZȢ[>FrV?"ȋݭ8G)4O%=4Sh݈IV ?.ƷEJĪW@q⎶Q|Z1%5ki_(T[)uG==AO9v\?)5Kne%]eH>/5fjoqc|(?g h'cՋGVy+A{yv s7+s`I^zvNc s73s79W{ssލvx[]ü-k7صۏ2k v66g{-ع5Nv67y vn饷[*s\/uzWk{6W `s~o;HfV/v_^țV^{ū{[ы{՞ `_ ^כ=7|x15f~\QT*#ZHK\kVr/_3 '|ڭYx%sEq%KN?|_"szZvYʿsE</#%zm]FyU|/۟:0~iuKq@p+IJ7]oD l ݉3z7B}ZfFxIa94{p`s`9嘟pF uÐXS [>[tap>4-ǹE.Q.{ { x 0W%..҅=eW_沗e.A.{n]\v ;epaZv#҅ \v {^Wgz ž]\v {^׸.׹׻7e..مe\؍\v ;me |սх=]6vvkf..{ גG\3\v {b"{Аluar2qfyB6]jN"{Ґtypl2O`C\_[-eͅ–.lEUᛕ\IE6eFfen7 ˍd*WNW?-s)6,sJoY|#'HTRy[6L*#5ٍsv.-kSM)Ls:M)K !VMLzcĬO96ţuO()#͈8trSlL:{PM ]L˧9rW)%?`orS[fgJcEsܺǫ9uRk(|Bya[ZÑjtH5)56qNX&kN5عVևc7HS]uV;P")R*CRTcHR1NR֏rSi=#eSP~i.rjlAfDIͲ٤di/j@ьeYJrkIDy];Xn67Mr865YmFm\3|RuCQ~GƆܙ]**n Lv%7a"͸W`)w捫v4p:WOyYtW>3N%4:+XS>H&^݉x7 %E}mN*GηQwZ"DT>vGS>MUTJ0.uꍃ(! FO9Lɜv0gLCnq\덠w Ii]8>wiQ)`iM0!R{;veJ]xY<Z|v>\Ai v?9gwS|3s_÷'sV}n ːw׷pSmBBKp T99/ԽO %hj{I=q0]e?N#|?݂/BlG 7%}ɨŴ ljssֲ-JV*np4@^ohNJx%~dY aln0wyehöwaυ~.~?Rxzo2x5_&a|Η#XDC8k#TV)F>?cihJW*5e>E}s Iu//GvKL1}Զαte*жt/plj]Q({ӡUG/Pcnaq5^|;՜gdlmC[j[aY_l#]C犲:NM"֕ҧP=~۽d]g~&)'|W(ȃ8NJyh~-Fע!́V(,P>?JzGyI~ .I1q,jgS*|%o?|Tb7[R)N/vx,'F^.zei~my*M+HoTS¯:"9.G?xG;qV@V;YD;N\kh?b+įG,2ݡwkqNUz9ݏDa_DmlqqO|sݽi\yO3ZEO|Yƺ4\&k9nv(Pc.TWFj6pُY#nKM킽H=w V? wLϠq]'uʑv-GV1}үNckA7u&b_:g߂o⿬f|Mhg847k;`Bg'#z7i=դ9=.ʮ]z=>󪢑3gc:ewF"3^Le`u+qḎp\^w5pi[ة$khT֡5+>/N!rE_=񟈘oۓY~/_˟H\J?JiWiNIW^%VbL<͟B*\a4^l4'1 rZ]y|5']$7ߍ#  Ӥ.V*ywK ͜TNtzI Gw6Os}&r].;N Øj)G_`}Jˣ39(6y[hZD{GyOq1@Mt,rS\nQyٹT c4tἜ$Q=Ƹ?3p gXwԠDi:'"}>pIK~tNs"#eZt~0sOYq\tJ(zI7#ΌOQ8R iMq6  c.  ߳2=ҕݓo@W .n+ jQ&n'=zBs| |JlZ~*Ѐ;蝂e?}0dK-Cݹ|kFٸcEGS~ u%#LݼOw ~O0̻0L2nyIw)t+5PNdŽ{9oeđ/FyN2~-ivO;Zo^ag/%̓A<4oTG2it6g'O oi-X%FcM=טupENz5=rٔ[ϿzJu=9ʭu].mŎS<垫)z0W{|O}\yDcӊE8&Q^nSU3 ]|?N}F'ȳnZ :heg֋4]湼>˸jKR%*{8΃uwT~cG-X w=p["!pz(,G[Gڐ@ppƪ;axba^U=Q'?'${<1X#P[ pVKWPI[S-;3m'w)y fԲxe7(5a}:N<{p.\ԟrnzbOO'ݔjL%`l_UӒ2wB`]_v\7vKA] Eg.ghn#sqppczl.<НH !<w? Gf1X$=wgz]av!w)raI2δ^z^T2<Ou>*nTi[z `s >s؏n htAԤoup@]8_"ևÇU~?UO89PF(p=Rȣ]:vt"el]Dc7Dq7fvю:urQ)Fj|.wz,^sۄ?|%(O>o۹y:oØa~P`(|ݞY1Z?Y+fm_.'0C_e-jOXZM[Xƿ.F040tA^sP(Q|}ձm:v!Obz#@+zIռ5k8>"NqP ppQq.<#nz#47]V.@nsYy%ha XFee K\9LAo}e|Rcxc̀Ɏdp>%;v&vJg[!3f\bj2{M \v[ æ߈}4-d3lX\vzMF!ΦSO,v&#TdceLv1dT\vͭDw&nN.cd۸S^zVfd'ɰciMebpKdn3Tk7S <W1`eLvʖd:.üDM\l̀Nae6ư 9.Mm'*[.;f6ٖv{ ;Vɼİ%̹czs=j2\l̀~-b+d3ljٷ7ΛIXicXN!e'cTeBa Y`ȰY`k3 [43l lI4N2l- ](.o0/sFvlL vmbNZ`{wl I l6kji +:76 `# 9#Y?mPPڤL'1)* "*@ Mɟ*n5+!+9 ѹDVTGTvE7iߛ737;YoOP7o͛kӸ֧!ؚO5l`"خhllbg5>VA;hwpHf nNc>[mOȶl06Of憈Pqilny[M-qK~'hUx:hgu|dխ҆Ge{Vc vN+۸MLΖ+-v~l[l;4lۙlG`k΄`ز!؆`ز!j~le6He5hl-!v֬`خ`-m@cVS99[|fx!6EckZI=[6mam$[um]lilu҆L~k~qFo6 dm<-\b&"n]ශMFS%mΪs7ٺnL~>ز±V-O465nl&[|KvHb3Qn` EG[b?[zqK7[!6d[mj5<ô%Vm lMFӠ{5M1ګi1L~'>ʪlWxɒ>%'KԧD 4AF ^9)6DK &K`>֨6j O%jl&?G[6"n}[_klqm42J6Elefd?e~6d+6liVe&%tZc3AYܦSc6O-m56tnQjl&?4gT~ F6xKK~l^ilMi=uF"n}pP.klq6gP6v t5B/p .<&.i6O!6LFcAg:[Й^c3Qٶjl!`ۡ5ծIckXU4`UmL~jlq"sLgl ~T[l!REmi؎y-`jl&?\8ut\x4hl&?*۳[gsEuӥXnSG +l;x:h.lg*l΅ l43!ؚ`ksNc6-`jl&?\ t\7ͅAGeCily4`?az'y:NB Vkl&?NEU4tukl&?6lYgz-v.Hl%m2&iCl&?6ۜzx1`b+66ϫZ?[>)L[dl~(c?M}3UW~. dg5nxQ> :{Φ۪ٶ{7ɘau ?sZZ[B%1Խn9 ˾݋EHKFcQgz²K\{c ~ƳKr m1+r*;(؁U BIS# JF|BQ/h\ԧb;NLk9\r:a09ʜ[8hV$6FRɕ*Vb' 7 ՐfaU00.=ŦDM,j Fa VŲƩL& /Qe]-PMVHFQ٥cK]jOU˅(0{zOd(I$x |BGg36=lAj8%CAa`eB r釂X|Rr#Ø򸚊c'WCeLକk iYbz ǝc)1@e2G15.;J*9r=eX˅8)bHAuڰsvwjĵ'DTxhƿ')dx�h~oEI푚? ;W>gliQsJ(:AP* c{;hvvPs:9 5:KeRT,s0l{ 9%I¯Xդ7!͗:I9 ^y>/0k ; <;Œ|MUk(Wuϊi9=MLfD'4v(A ebV^t".RɪiDl^l`kxy:T8=8]jP/M!8xT+DMQXى c6_-"6jGA(\( `wwj=2UGrY!ig #Ȉ*,1! n>uP((\ JB %_5XF~5jtX`}B3JW:~7#srSXQgt%9S<|) =` xKR! .l4lGxL9| ʙsʒ` PnW%MZhdUH&[ 4Lc7*)J$S-""^b1%;LwY }r G+co5*k\Q&XQ-Tg&>v,|E۩yeZKq[vśxa ͻ`k:ZoX}T}"ŪPxxr~0)R$PR܏E!ˤ_&#! ueJ.D+NC;;0*n팗h}>/vuj lЀ$& o]IO0PWpsa]bG\21Xq0!>KgԹ_tG_5_љFSV A]&"tMu}*"Ч"ݐX2'XL+V""@P|?xˮǟ gC{?VkYod=28p޴cc/(D=vVc^B; +k rZs4WFs%_*<ެQh=rZw޿ǿPT~zWBorl$œ1ܛX.;Q/!ͭ[a-E긑ciڢYSw*q%_U/PKyr ffile.cIMVMSVV5.5IM$VFABPBm@m!ЦIMVFHC,; tiPIM#VDAT,%dJ/D/IMVPROX'b1@0IMVRDT=RdJ/< {Ƒ5wM]^]ѲBE=,?`*(ʖQr",`P̾ JT".i.Vi[d^<oGȋωxiB$ޒ#jML" O^D]b8}/À4iӘڑ'M]Hmgu{l7_|rk[heɣO#Jl?ID$ ä ]jpD-/18ȥxI8Fjvp 9퓡\ٗFGa20cjo5p# =@z01WtHy~8EeRg@00z^pdU( 9vLI#(tWqPNr!(1>GZ.؁+I*V ˫'Gc3]>5>F,BjWN+kO?jpGp qlߏQ3+ 罕q8 t)̓iۍ5w{Fn\=EPՓ'R+gS&sax #P?F(6a58uHz9 GI침LcSphKk I640 DxptS|ױ#$W+WϙM]ʀWَ. *ك.J7%(IFDK+%(N}!0X೨ 3"g{RȾEpH/f+n0ǵ4F 4#|Õ;9>ᐆ}/8Ljql.,]U]l 4ilX,`*=b}Kzē5u+T}?T*S6ڼ"]?t\ [r-a;}#O.]3K[:V8hH4f,~a|fܓ`)N` @hKcx҃#WNSN\ wiD] b=tH^8`b " ı2Q?)ϟ !m#+3YzϘ09p&p.< vDY;&|8ƞ!=BOtx#qy㼵Kjjk{1'MF!6ZSRRj'yP}эۺqOf{7^:Qr;\}[a]/8IJx sR?al9hX/S,aq}b`"uI-W,AIg91 bع0܏Oxyncgarw]g3ᮥVa} $HtP|`c6|Ƚٳ9փ'܏`Zq?1D 7v򅀋.I^s{2BVy>UD.đf[~h;F1Ɏ1÷/d wB542~qSiiYx@GijKH`-= {`T_3bNe1$桞4wY?8o/6;Vx7fNILI*F2*̺ΫPa0IW7JޒRڅM\^Pr@ Z @"KSh)39$ N)PhzQF N%58X\fJ&Ҁq*hDH=j 5Ihxs !дmSZs`aHhTO?8y>nKڛp|sO/ζ6"9?j|>;ǴsLn,ckTA>5=nhq j&O0޼"D(=<&쬿Qw>~_unYnf ?*ͼ)È01oL*d@-Ek)=B22*m~9lQ8WWDR!;HK;,~+p,(AQd Bz 4(fsAk;*';;Lw K)i2 } J@<&Z*PBUBxt&ja_w6al[k۔P.~@惪p 2V%r6B`DuR`=`t J='ct ă4%v2aY26$.~([*};*O>!R XL^bmQ8嶢 z :FzrSnshEiC7$o- Z˫_f2šŴ {q4sA  ⥀q-ɱշhŢ#z<.lQ`3ŵ$f0|[P<՚@*D `,M-XDʒى~t$ۭ&7Z'H-xKI+Ÿz'dFQ(j[STP<*|֩G䂸vWX;}E[1§tp'Z\?I1URT6y ?{:Mr#?bbH=Xloa4i,V~̘zC Qb2Cxr:KG ~$ ҲJ*&Šտq? ;2tRڮ^:xM {B\!;`F CQ>!T1L*rMK˖ lX$K"0JL,ô9p]XpAitW!i_i OChM#0O/{=۰*\ ( ^w1•צwQ.Vº]w;NU'i43@k(QMm\/S:xZ( LzI!ŔBxzj8 KX&`<xM~s%L M9$I0J ;V p>F3|&=%_d5[I5H@b`H{d"/"2}!x{I2El7 FxG([~hMT#Q#Le5ϟ5ț̊bzo?1ZZ E&9Ċ$Uy5g+Yܯ.+?%y kpH\FߏA ilHNI6Nt\&)fv1 TKˮnFXz5^nK1+;Dݞ/Gc|o᜿)/P?ݒ8ʬ7_ `,6s1m>k({dllR<;F;n4ʎe311\ s5 ,( ^AD`*.f4s"ʎ?ߪX} C~Ci TwOqII%u )5T¶0V:53މgֺ ϱ@Og*θ;IŒg_Y!g9rGJ)O[0QoʞyG5Yس煔jIahG2yFUyf}\vRVy ^M&iTs}irwlŊQN_5H MA1EaՙӸr~ni) nguUxJFv1-e*y,.% 3%u=5E,aTH]ZsBEBB!Q+v, 1^Wa&A,͍b{pY沇ǦRO/g=CZ+& |ZȇlWש%=gSW 2 0Д{VP  ӇOEuߨ|~6G㓶%Qó||.D/.مlB{eG2vAiJ^h.+WK4K֋gm4ys 1E;)YH3i{{mz4aE}y4Fwаh൧K(yŭ9|#( %Gnۜ[Y%UJ/DJ*g"W6^Zk7븦؃ 1)QI&$TEt'dyTxcW (lR-_V 2Tx2g֣Vtޯ_4vl8#[jIpy4a+QwC'"SXRg^9$3Ukf5?HgJu uΡ+ٌ+ޤ%uNuU3].>ЊMӊ7-,(M UvmwخڎN™bl??!6/ȵƷ'3} ţIvC=1AX{ !z%w],~={Lz < aQN%bbA`?J[(`jȭMK8֔ >u"4D&dBנXW(܏تf&)AtxIv`D #14Kvae MF5PWTթAu ӓ|p|nσpUƠ"/2YnsJDmR_:>WPSE*4:y6p5P,cq7aޙ|i7J/dt?ζ6)X4Qj) ?J'+TK}j0\gaKtͱ"ˉuJ9`c3'6հiq@M`mPmY|R%fp| ^\g2ݒ+pZ2Jcbr6V ,FLW+9 h-^_贿%QT6fs؉v뢵|EKs㙔c%-/+aY{4Ơ٦6- ,i^^,Z*6s8]}&pZ Ge?vrM"fcr(5n?HZj/q8ު`cҔCU,IX]iңuPu9]k݋}JWIp"|#viWZ:SʃeWMh>sg,-ls۽~nDqX8zҠCt,hkkm+p\}B&F0\TpyZyv*Qv0\P>c -A ҙ h/ڞQ`Sھ!}bкlW&¶CT(~g2iɜ1Oӭp8ۧ9O*| 0j<ŷrx2ON3mxæ~*Ĵ!2,֧  g9|74ع^ic3"!S^ gA ptqZ?pg5uL5?>s0*:}Kʡ`f8;d%X_9)"_?^@4kmn^q4nk);(SY'V^+s4FVkvZjJnƪtdd-KUF1Z!_Sz[q21 yE:5֕v}::2fOnnnڐ7ARd-vW h5:" (4/M7ܵ|=Y<$Hg]rUzrCIdz0[M6˽!e-^uz(%TD*.LƆpcýѰ) #71]>6]ʋ_>y/sn<0i[#$p#-F>~:@M]]{+3q3uЫ7fU$ܼ7{XuՊkx[XbmWΜbfik/OHe7D'[0{wNLHNL|A<T}*ē8R@ Ɠxr'd f 0o }F"krMoL&'s0w<;_fhwBh%fA|hA{3^hBBh= NA{`&BǠ˚ E[h@{ ڛBmh%0#ЎB{Z턶 ދa3mB~} %hQKп-s[5$}+_ m盝UNl[&$ˋ`drqL\2yso:6ǰa~/.9{;{Â蓯Mt@>AGo)'O. #"c y1};zvn, vNKq Cr] }+C46pXm?}C' mgUE%Ҿ.\k.Z18Wd6Y ٷ$b\";Sm+gM "mX=#v%'vq{Qٞx({>~IZG3io_3|Iuog B@b#}^l5}>#QL 2iHҴ k&6:> 4fIӮѮ΃p&X %@>Α|Z6={Ƃϒ MfJB2l)QL(id7iDi$æ$ji{"Gؤo+A”'8s,Δ\y،[P6*DT"@.zFBl:H&dSm ozٞƙ808Na3SpYy|@`G1(wX>n2|tvg1g@Z/-ՖhP,VXOXgzyƑ`Ղ!ket;݉!oBwT'pVv\" V?Q?t'ʄ\Pq#38 xOz3x?7y@$jbg, &a PSWuɑTL!ԏ=% #mgI~:=(';tJ"=u|. 7uǒHLyrKy}O8!sw˰p!Pزm6YBۦHZ;aGX͵dx7,M^Y@4hs@Jv;etx9Cxz"W/v gT>#Ǒkl~FMՆM["jS4EP{ifsEM:My@E&Ԧ̦"Pe.Τ[.C<袓h;8Zрyh{Utla+~Eʉ󏓮}$ZaU[w6_MגkJB|_rA|Hz.!Ga!w[L93`}G~1O;4!|!i#|8.sp_<|yL{;w n*qvSW@{,OA~|E7] pkNwKJ\d(+Ê<'+^~/iwJ|`Č-I=Fxɛx(o&WI9Dz-d )q|Kx,y-261k߀(Pnu><_5k 4+l޹$A&eͤ4)S.PfykxA0m\Dzu,{xY7}BP\pbBgl1<35GXak_ykLkπle*51E^aq"k\`g퓵@j@.cf/@ @ \o& ^]#"3zd'`A!: Х\ R0G7 d@Ԁfhcƌ7w]ojZf S *ρ( e r&`g o>8@ 0v# ul{P ^S|x +1@66&x%*LbNPz+@l3,vAV\` 5;t {ɶ |]lC$1!PK| &file.hlpIMVMSVV5.5IM#VFABPB+m!ЦIMVFHC,;4)IM#VDAT,%m;(iM5IMVPROX'b1@0IMVRDT=Rm;Zs6U$>Ӌ&H։@$h3He˙ j`Dv H9x>=]4n⋞ ?R?ӥFG?]LL@ 'Mc"KeRu Bt 6uJ)st*K{3zs츩$Dh*Dz)hS8Dvŕ/i-`Յ:"K'"IY0ݴg7BV l˜E o ؗT{fZBx3;BOrekB8SO2ĥsC,<tx:Xʠ%uP\_,)YO.$MK|4sEP`d2hH|إwq\8lځ6QfgpҮ=" ` @8ӱ}e"+ 1Tt,Е}[h =:{Y*g X)hXY^g{C':yۍ{¼qu!,(dGaԾﺑ] x3? ÿA؈/˴/nDwE!}SZ};⹌~Z3T6̿B9"A&2Fkd)D|X[5 zMůWhu{OCld{fCNǽPb>iMV3G6U"kQ/B9naӲONOqSq_'Cö6GG{ݡe[Ơn~Vo`wPy.tr[[͢ux9 ՑdsJvWSc? ?kDϼX(5 i>%D8լGE&\JcUT@ SAFETY013.A!  VERHART.JTDEMO]FILE.ZIP;1_A;1Y>d:c=M+jAW*PlqPCONd&Y!d~۠L]R5E+S#bb\ KaNB\--..[)=~HÃKz}xdX#5:fGՅ[2]džL .}*>y M9]/PnSTXjJ9a"vbD~$CI9tmKvLх^>Cd*n^|9 (ݻ4KR =ek $g D4M%$ggϥ7A(1 8`Q!>1-)ث<+ )G1$^(gNJW$˟WZT0qN7 Y*b"w]ꋚfvaRԺXU) 3KDς}~ذP[L7{v*62e8LqfO0YSP^Cp);5cT BM?@;[Ȟ96ؽGx$ AN.zbYQ@;]5ҦuM3m.[D`3s\ ̔uҜқW0C" ep0}6o3v=3eH"]e;-94?g}X%0\;٩k2IHB&qbX )s?JaUeTWMeK؝!01"{`j;H܇5InUC\z>Rg\% O1gasYv,bs=KF|dOIQS^^lmU}T2XnyOP$kP憹L^j2r_454tjW]%-8Xrj mHo8x펲KTBOeǒh { *4M 82muQP1׭ԪJg0f?9 G%}̱\f zGelq]K|ڈO RB FV,yUy62| 쟮WKn+4O[*rI) s_41wsnû81=3(F 945&>~]jW2!7|20,nux}?|1 jRg[IE/_heUl̰zqOϴ }UF?rdtpm]>f[TfB=P0 UeV!Ӷ^"sPDcE/f;1ܪ.|gx"_Pmk=13~l JsAhhKJELP1lW٥?C ~&6FrZÆy?n[vL!8YUbG"7 ?ވ0xeŚY¦떠z'X= s)?PKp{::2file.objIMVMSVV5.5IM%VFABPB7Pm!ЦIMVFHC,;(p5P TIM#VDAT,%`11IMVPROX'b1@0IMVRDT=R`1[ t[řw8Nb;A 1$`6%Օ56ݓ,K*>9=KiՒ,l`#+I!CcJv]s;3fXKGa5^կ]S۝\}MkgdO!p9ׯYw{ I05^7z)1>e#\ Y>^' e|4w{j~ r6 )d w^g5_5.VP}/O cE P5դEVx=4p@un>lycx=>BtsOq/ ]/D/k< V~T=K0tou<њnN#ބ{qW!\ @!?&|"ȝ~VЏ:AkSw ^W {wt®"2QN׶'0"՞6S l1J|AW4YaK >E:$0zW)Π'Ȫ؅cN=H9(Om0:\EyS0 aN# M'<ۄfʯBl2Fkx"vې$aq U \ dS[lօVQ0J@MXĢʐ fa>\{ C^l3)݊sAWё:nA㴔LPEE@Ugg= r\;*NIunH?ˑDFR T;}PM ,@o[Q%B* 0vAx>o`Qj (|( % pe ?V Zh D7(<5m@ @ĶV-*ۂX `z S[};]h/ \Vքs/"(pLsw"(r_Uyh^.d _<{j$=6wP5O;qلkW$ DQ&OQ,c*| BuDql6 ctǕS cڿ:'''!  XQ!<}O>F?}{> k5Q3}T4Ơ|́&+׬>x{f+d;V<ʃV݁oufOߣ٪eVYܯXyP׫|,hp./J\#eY~,^BǛIYF]wl 2ZM>b#f0˩?M&&o6UfyYaY:kP=ޕK? p4W\໹r{&ex3{,?1fcf9lc))UCWX㦈f[ yCRVxL^ME5jr4tI ί;NxR53P!Xꎀsk67X*W9,!0>qhB'?FL+3 {OaSJI>)p`דּ6k֦.fv|_SRՕlA"ݹz!$_}n+[t`Ӗi 6]p ./(5KEw23"yBpM j㭓 0* Hkڌǩ }؄-44,L 3'}yõp@wB~xǜ: i@& `O~|ʔ;;rokӻo/x9~'i|qÎU+* ?7Oq|`+"#n3;.)szfxO73J_G>RbM]2TH5_mѨt*IJ⠹ BC]|S<ܧ t_7##J<ҧĘJ#HNI-=4zF&gQ5~kKsLAl&olN$4*S9 Gsj&Ql%h63`{3J&ZlM[X5㤼nniFxVZ^%b]0ZygG /]הVjz>IUenk`s*3"ߓG)C&B }To=O?·7 Yp4֧Mcl=ẍ́.Nm^&IdPj1r迩-PK2zd:v{HU=}E_";:߄2z& DudHVoџx YG@ߖ8L[dtgx(пSZ䩹F֏VWwcM_ σ:JG_ݖjHyj ڙTnzުe,,lUwwpUwv41ݔ>ÜΈG uΈ[ BT3[(Vb3TjPʔ?Mݛՠgj0|bGJdAc,꣘o>1G* Ց>cs} W iX<F*ƊDD8] H!H; c [^|侙 r`Gb436_JۋQu_l\^$m dB9Ƚ]"lKѶ IAN uؤTLF_K]MuEuYL'whՃ@%]V$RlH;DE#R.Rf" ,Cd@+sD"'`=ƜD031NNig`bblLd GU%_b F,9',5_Z#RpKy9_\<5_H bGdQcG,VВ ւ1TKi8XO'klU B%Pcw{")`wM-WC 6S_ zuѭ8=i5_OuD7Ғ:U8"x=Tlq gK8{&zoκw ٜ2)[Kp<\̙p'v3=P 9{\UzŰt9 CpqA]4YM[L_raLbORYXY<=G>-`hH<L{8_lR"tASIehJ+.N[WӴ>6U)[b񲍊~Z#w9 Ď!EF HuOpسaZ(=Nlhnh(b35T ej9crr|BN& :QqEwHW,- \HFj oNdQf\u %T LͧbQg UVa;/b7_!lHKN4M 'shRހ]ӫ"vi~VߓųUF..+tdxȀqJ;2:X& dfxSɯZI~}Ƶ\PH<Ey+\ߦ' KdyMcsRJJd0;uU]QœW3 6^# RyZ6\&;ƌpd6aqq΢n˵q*#>.o ,_0->%-2ŊQ ȃp9HJ^L~'5! p}@'&z#RwiAߎA3NSޠ9)UvˋDOyӿIܕ&qO[IaL~(~9Py"曺vw]%2BzYa=C= -?%o!4>2 il\2';,}̐\m|12v760XȫS ~BXV\œ-X " _/DG` )9I}RSmoemՖK۩LLZXBb[}+ԙۃE<:_*ye ޴@%J[18 Z[!K׌[z@;]V:TlyHK۽)Wφ'FY`vߞZ5^9cp11(^g61lBǶ9py0plbG2i!f$΅'taS_aكڇ=kSfΩ@YrӋ?!d^9E'|:3F &7< 5\Ou4  JH| 8Bb{?*.ml{cJf=]C+m`G`ii#NSBoR8yHZUo{q?0NAIbWv26H vC,:$ g%Dʩt9hIoK V蕞%JHb0y51P+2(ݣW:=Q9SWFEI8JFR7hgNuDL\tQ>Ulh*})GK&/ '/~6<4!*`i{hb;:Џ .Ĉh} o8'a>Je…vHBzP+YI26΋8L bh%piJ'{G BK!R Ĩ8,R ƈ_MC(òW$(& EVX1Qd dʫ}S3ߜzA `$IaغXIdLd%6TlØO/Ŝ=2_Z{mt^!=-pFIقe֦G׉55^79 oa!kn)<#,.څum;3CA 赈R"His9<[}gns 7thAZj`ghe")\˪]Mk%%[<;nϢEBXȮcM%k\x:v>oXQSz\S׆-[nOfX@.V[Bx-2-B2?#ZFv:wwn۵64ڹ͊4o"E:cgDzH G]|^ up83>RѪǎOT'M%{4b~xHݙG|PKyԴz?#file.rnhIMVMSVV5.5IM$VFABPB%@m!ЦIMVFHC,; \R%|IM#VDAT,%!/Q!/IMVPROX'b1@0IMVRDT=R!/Z sӖJ)3 .mP$!ubrD0aZ{%/^}߹}uh&ks|(OTS<')NPd95w'Q+Z9ۥ'gE*x(I%M)K??aͳ0Jy8{@gg~^d,"E0͆ %Y?J}>g "0_K$0^(-Nd~(=G2qKu *JY"ҙ9ቐQuKD{:7첊? ~<}~&e[OYQ$L-ϑ> Dmkl)g0ۥ~G VRqL޷=w:Gj\)5ԏP9HWL)%cD{!U[sPs:| $ݔ+%.VY'9ysLo]yp ZHMٛL$o+ >"R9I4*D5\ ` cR$nT)'xcNL nN_PtyDUC(|ӯL_ldlj7i2gP LGV6oQcyC>th=>w#E9~wls{muGv5ӑ?nor#.XӪ?S<$kic|- yϙ.F .h4h5 [Dq%T* Sa)#3֑t*gN"*F]F: ɰ3a.٩JN-Uxdq>bP/>رV$l*j@ &ӧ, WⳈL`3> _֩ DT1@U!Q *t2f-;K߾}p|!y2MWe倪Rb !3X(ֽ\$RBlSѧ^yP;{^ԙ G%aV >Rn2o*(O[ԕRoaP6yJ&gKن+?#U/C5$ce6rvF}r>j}-}jdyw%6)qEɺ!Ѫe QZJyEkc( M6,[Y⊎F0A-sDU5j5pU˲UjiKы1,f@"^vI)l#2dYdbQ5he-L)x:U| Uj5'mCWiPw Uvl[XrٮewUlQJ}%"ӗ04^SP]*z E@-AQXiE"X%ߟN"7zjVv Yn"v?bp'7}3"-V9ۮɡԘDkزX!+ZgM{L7 d4 !^ϤE }ʻ, !Ê Y17œ3y/`+Oec)۪_inQvz{\#!vEؙNGrR?Sgc(""@vW.&0e`f f"̜Gti$Mw::6N!.d#&PHPW4HuŲڥK\Qy09KKAIhW(Wd]?cr)R e;F+-e0yѭfl%DH9CWnaѺQݑ퍆e~|JaQw`Qu_ 2h1 TCa%UgY{Uf1AIMX9sXAfrڞҁ{ STs=%ޡ:C&mW!YTX 3pр`34 +34Ƙ\D$R 6Ԓ6t`çw`U$I~$F!Z/NBu2ez%fb78/;!pc ܳo0`*en([w](V rT?zd={OOF/Mm > BhZ@w[M;@qPW:@5&ws]q bnIv_MPZ6saZOQ<{-oh8(iOCI 3Dzbޱ{ fѡ_`#ޣ.l_ KS,(@KuT3mr6T|#w\%UlTuv.dwKf2>a;Ѿ ?vdXɏnq"JNPN\n&8/vMܡ79Pڐ.4`4F1kHߍ.7\x{_ R]7ej>Ҡr]7 ҿ ҔF@=%Z=2^q@{71߹/۲e׶,DaIGnk3+#iJf™t$Tb0c :DF?kq5_{QQ 6hq5ڶff3C0ю6^\wNpW[qc0eҩ^m `avӷ _X^J[f|߿y3a6Z' A/Am;$1ݻem--}o7ߥ;^&'G*юd&d0*N$wj ~zKؐu8Si'XcP~IgU>PK|3y file_cld.alpha_objIMVMSVV5.5IM#VFABPBm!ЦIMVFHC,;0|IM#VDAT,%{P3붴rά3IMVPROX'b1@0IMVRDT=R{P3uoEgo|8&E"Rl8"AA=fvK N"\tT(E)((\PPPPPPRPx,w;ofI:d v DR ާ5c!lTlӄ?ab֐N_lZΣar1[#o 92rDB|̥/訚f|KLnrv[nٜ`C%aLy6a!.=/kޝEcQ̊CRG`R8FY^{NŜML7K r:>r#SQ^=GTrM59ԥl|K6rl=Z^þE,"-2` D7NW&VU9ot8 Xg\W-7|gyG:D53:jXGķ,-5Ez'WKlj3څ"HA 0߈s>qs:j3^x8o6&7]bPKy< file_cld.cldIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; D2IM#VDAT,%pJ#/G#/IMVPROX'b1@0IMVRDT=RpJ#/Wko6/uCG7-]xuhamQ尡AiA_urW?\sxy%}blfv\083gȔf$ul2;A14;]C>gof͋9e453<8aqVG3濼O([32r:y_dUkG'fZ%Z];˅=S/p$UJrW+٣C5wQv6I< [YTƷtS-_b9ȎLa/!ߨ. [}X /I8̧:A+i^fɎxڼbmձKClߑ]0/nRZG@r΋G/&Y?-^;(C68vKܻxU1Ro>}N Jȃ]]_Dp{vD"y0 l8a[W{=kRD4?15eVWqXk*'=fBP.g`0ꡳ`ʖ";lY8r[]̷] 4CnB9WÚX(̱ 7z\FQ=;W[!寢TnZk61U&|Ǒ`t'_Vuf>osɱךARwCl file_cld.objIMVMSVV5.5IM#VFABPBm!ЦIMVFHC,;|0PIM#VDAT,%A1ӹ1IMVPROX'b1@0IMVRDT=RA1moEgw|?lbPElqFIEvgv7_ RDŖK"EPHAAAAIA႒7%atk̇D~? $ ㋗i.w\dg/mB=x6-F{{у x#F< Im:=]"d&|SIŠ.;Iϯ$!#(txQ2Xl nHkSQxI@<N'>{MA@c0PZẠF_YJ!%)b.;F/Rw,4R >)%+W<'ص-Nɪ7!>i\+>=<ZYiȊJFy[Ugqd|,sQȺ~.!]mp ^MhRM8f 2m4Yt}VȊ&,j]kKV?׆'=|ưw-+EJoheԔi9 3li@ SAFETY013.A!  VERHART.JTDEMO]FILE.ZIP;1_A;19>Ӈ.^MM*y[iW\_l_9ϙcAQfb^͘(JKmk`zkh;[ZP0*kAq w,،5uZv\4 nhğ| \æ'p5O:ݸT lN{+fHrmJX@.2 Rxj~vVl~:Ltƞ[(dF#'6C@d{"+sYJsSicաakq?}1mkA`Kp#SDzGiS>h-ߌƓwScS~-M #J* C\ujPKy:ifjndef.hIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; DrIM#VDAT,%G$/p$/IMVPROX'b1@0IMVRDT=RG$/}]K0oTDzC6;7 *M׌.i:)`z4eL  H&=.Kh|ӝd*sEwA*} Îd IO7=R%l:3'~Ng}þPK |yA\ init_cli.alpha_objIMVMSVV5.5IM#VFABPBm!ЦIMVFHC,;N0 kIM#VDAT,%0t3붴}U3IMVPROX'b1@0IMVRDT=R0t3VMlEfM:琲4K&H:Ƹm&*6jJ ?%2 \QT^*J*qi#n1Hmx3v'B4{fm4/ЦrSDvJD>3GG=;!J 4FlLf3Pg;B*<˾l8{^{xh4< g$c!xS٩ 2n^JbYCɔaǍqiY联4aEaJ3ӱKx'%$aK\żhTO2 ESF Br}i@>өBĠ46F'T s{Ox7H Ӣ2$G8 NXu: V̹Q)dZjq׀]~/4}κ>_Z.qLeVXcb^%]䱺<޳KOKǻ(K8Ԛխ޲`rj@[ɈIqln9/XY [ԏ3&νF6cnVؠ6kRCM8\DZ9ҶܻOkMmhs۬IqvikG9/C]ͦK>>Y6ͱFfMSwikk:6Y]q&G:ݹ6cs=$o͚gickkh0>/NI|Ke)[p{JWɦKD*t86DbWOiЃ'pR"~"9zP'WF_h *ۊ! dFP b53>Q `W7iXlv%SK^bu#;bvhX{B]# &HPKyRdVD init_cli.cIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; DrIM#VDAT,%$҅&/%/IMVPROX'b1@0IMVRDT=R$҅&/SMk1U(ceg,CoqܒzMj`"k`W24 ?ZHZZI͛[ByÀ}h1TsMPP*#*3vFpP?ഹiMВ vK妯05"B.+R8؏WP g;쑝3@^$ PxZkց c'<|?<,ڂ #qM[`4;hGز$n M~0mc?U2gRG+7PKy&(ҬZmakefile.alphaIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; |qPkIM#VDAT,%(/(/IMVPROX'b1@0IMVRDT=R(/EAO0HL9nVpB7RJY%(tޛPTPfU_+_ O\ېAFgɎF W8>ީx³6j*iV.4 d PxSuJ;378՟_*NؓVm[D~m)- \#3DRIY2owkI9}.'^D $]we+PKyB(]r parse_uic.marIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; tqPIM#VDAT,%hS*/)/IMVPROX'b1@0IMVRDT=RhS*/uQK0eDEEAzl6 /YIڬ ҒdS{is%ݥkX!p+2_ZIFuӕ܈C2'#*ѕХ[$u 9Frն9t+BhG n;|IX6{H8*oF] 5cj&Lߑs5JNDa:F@6xF)fWEnu(Yg.iYyd!5iܾw L:Ğ/~Yg|9S*R'u8L*cZ.Z]~3?#q~PK{qݧ parse_uic.objIMVMSVV5.5IM$VFABPBm!ЦIMVFHC,;sIM"VDAT,%`y3u 3IMVPROX'b1@0IMVRDT=R`y3uQMK#A}=(j"KH%KBBˆh:l~/MTѮ#6`kQJ_1$Z?Rbs(\ǜ+"d+q10s`{f[2q-핓!AXTkf}u{_) `b5j;d`N|]ѻe8w1}w &\/XG"kq,ALǛ_#Sle蓨&l1ɰCe?>qҲPyR׍8`,W(2R\ʔKrY\V)Jo?)<=/'zXL7oa׉ߞUkX{gp q\숳k7z@fq8 [sC(1nٝ܄?_PKyꂩparse_uic_alpha.marIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; tqIM!VDAT,%`N,/붤,/IMVPROX'b1@0IMVRDT=R`N,/uQMK1"QQыZH16l-ԏ\<Ԃ|'E݃d23y]xZt^&_Xx0,Q3%lE IBXyۨXڤ%t**z1iz"wI2T F;ube61rPiÃ}=[,֤]3oweʂ/{'*,A,{_cfO=e \PZ$ S$mg_YIU<[.u:͝UJ7!qTGw"; 8A4p`OpVV y R}3y~*0 %' >\\hYTZ5w/0J0_:߁oPKy`& standard.hIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; DqzIM"VDAT,%./붤N-/IMVPROX'b1@0IMVRDT=R./}] 0MuA4~Y,X02~? -dwg8b` H#LTjf;F48S![% 6$h4eB?1<p=4̯E%>q4p',N;,,K{oX[*9{zPKy@l$) aaareadme.txtIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; \ryIM#VDAT,i %/|n/IMVPROX'b1@0IMVRDTi =R/PKy C֦c.optIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; pIM"VDAT,%I/he/IMVPROXk C'b1@0IMVRDT=RI/PKyo#=B cld.hIMVMSVV5.5IM$VFABPB @m!ЦIMVFHC,; 4 PhIM"VDAT,%//IMVPROX'b1@0IMVRDT=R/PKy"p  compile.comIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; trIM#VDAT,%/ː/IMVPROX'b1@0IMVRDT=R/PKy \" fatdef.hIMVMSVV5.5IM$VFABPB @m!ЦIMVFHC,; D PIM#VDAT,%K//IMVPROX'b1@0IMVRDT=RK/PKy, kfchdef.hIMVMSVV5.5IM$VFABPB @m!ЦIMVFHC,; D PcIM"VDAT,%`{/0Z/IMVPROX'b1@0IMVRDT=R`{/PKy]!@@Wfibdef.hIMVMSVV5.5IM$VFABPBC@m!ЦIMVFHC,; 43CIM#VDAT,%h//IMVPROX'b1@0IMVRDT=Rh/PK|sK]*`"file.alpha_exeIMVMSVV5.5IM%VFABPBAam!ЦIMVFHC,;(c IM#VDAT,%f3붔ӡ3IMVPROX'b1@0IMVRDT=Rf3PK|lh7;TNfile.alpha_objIMVMSVV5.5IM#VFABPBm!ЦIMVFHC,; ŐIM#VDAT,% 3{3IMVPROX'b1@0IMVRDT=R 3PKyr fvfile.cIMVMSVV5.5IM$VFABPBm@m!ЦIMVFHC,; tiPIM#VDAT,%dJ/D/IMVPROX'b1@0IMVRDT=RdJ/PK{Ș<ͧfile.exeIMVMSVV5.5IM%VFABPBA=m!ЦIMVFHC,;(? IM"VDAT,%t3d3IMVPROX'b1@0IMVRDT=Rt3PK| &Kfile.hlpIMVMSVV5.5IM#VFABPB+m!ЦIMVFHC,;4)IM#VDAT,%m;(iM5IMVPROX'b1@0IMVRDT=Rm;PKp{::2(file.objIMVMSVV5.5IM%VFABPB7Pm!ЦIMVFHC,;(p5P TIM#VDAT,%`11IMVPROX'b1@0IMVRDT=R`1PKyԴz?#file.rnhIMVMSVV5.5IM$VFABPB%@m!ЦIMVFHC,; \R%|IM#VDAT,%!/Q!/IMVPROX'b1@0IMVRDT=R!/PK|3y file_cld.alpha_objIMVMSVV5.5IM#VFABPBm!ЦIMVFHC,;0|IM#VDAT,%{P3붴rά3IMVPROX'b1@0IMVRDT=R{P3PKy< ]file_cld.cldIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; D2IM#VDAT,%pJ#/G#/IMVPROX'b1@0IMVRDT=RpJ#/PKx{g> file_cld.objIMVMSVV5.5IM#VFABPBm!ЦIMVFHC,;|0PIM#VDAT,%A1ӹ1IMVPROX'b1@0IMVRDT=RA1PKy:ifjndef.hIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; DrIM#VDAT,%G$/p$/IMVPROX'b1@0IMVRDT=RG$/PK |yA\ k init_cli.alpha_objIMVMSVV5.5IM#VFABPBm!ЦIMVFHC,;N0 kIM#VDAT,%0t3붴}U3IMVPROX'b1@0IMVRDT=R0t3PKyRdVD init_cli.cIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; DrIM#VDAT,%$҅&/%/IMVPROX'b1@0IMVRDT=R$҅&/PKx{h7^ init_cli.objIMVMSVV5.5IM%VFABPBPm!ЦIMVFHC,;p TIM#VDAT,%N1}1IMVPROX'b1@0IMVRDT=RN1PKymakefileIMVMSVV5.5IM$VFABPB@m!ЦIMVFHC,; 8ߤ0QP1 ߤ9mPPߤA-P”P”PߤDAP °xP”P”P”1_JWXVZV[oYH9V} U|~? PP”P”P0ߢ$? P”P”PP@ߤKP @Hߢ\ߢLߢHߢ@0gP”P”P\xxS SSߤS_UPxS<\< S\SHТ\SHТ@DHSS@Т@XТ\SâH SSPHSx SS\S|ĈP18ĐhP1?P¤8jP1¤SˏS\ SĘkjPʏSS*ˏ¤\x\\\.2 ~ݢ\ߢ*ߢ*iP|02 ~ݢ\|rfP2 ~ݢ\|¤he8ĐhP1\1TP1PѢTX8@HТD@ߢ\ߢLߢHߢ@0gP”P”P@Xв\|2 ~ݢ\|rfP2 ~ݢ\|ݢThe|֢TѢTP1|ߢ\IP”P”P°P”P””1k;´ĻP b´Sb<bWJP< ^TЬPРSc|У PPQQQUSR0բ ݢբ  ݢ bP bPݣݣݣݣURգ1Uݣ1<$PP1<&PP}<(@ SAFETY013.A!  VERHART.JTDEMO]FIND.EXE;5_A;1Qe>PwУ PPQPQQUУR0բ ݢ[բ  ݢ LbP bPݣݣݣݣURգUݣ2P^sUlRXЬR;Ь TTQ.TQPS@SQPc+PTSc!cPPP@h c~QPcScRѬRz W]QVբ Т SSSTݢݢݢݢTg#5Qբ4gQ7fTf~ݢТ R ^լЬPՠ6РR0բ ݢբ  ݢ bP bPЬRբ 6Т S0գ ݣգ  ݣ cR cRЬP`R `R^Rݬ"PPbЬݬJ^eRݬOPЬ aJ<^9RЬSЬ TnSOPSTOP T$ݮP)ݮ P ݮOIPQЬUQUQUUP ^RݬBOPЬݬ/OP Ь$Ь SSO)SO S~O<^TRЬScԣP c (cPP~UePc,cPPePc0cPPePc4cPPePc8cPPePcdcPPePchcPPePclcPPePcpPP~ePݢHPPeP„PPePPPePtPPePxPPeP¤PPeP|PPeP€PP~ePbPPePݢ PPePݢ4PPeP@PPePPPPePHPPeP„PPePXPP~eP<PPePDPPePTPPeP\PPeP`PPePˆPPePŒPPePœPP~eP ݣeP¤eP ^*JPVUо S>T>$RdbTRUVЬ RʨCUEkRR UU EkRR SЬ RTbRRTT<(SBC6RR SSB C6RR USRRR(JP 6SkUݦ Jf1ެ WgRBʨCPfPXE*IPfUЧS>BTfRdE$TUfRVfЬ RBʨCrը VXhVbШSݣ ݦ IPfRVS @Pѣ V8Pգ V +У Rݢ ݦ _IP У V  У Sѣ VfVQЮRBʨBPV9*IPVԭо SЭRBBB$VЬ RBʨLBЬ S<RxRT<RRTU< RUUUЬ S<RxRT<RRTTЦЦHЬR1ʬЬ S?Z Pʰ<ʬ~rH1PʬB?' PTԭRBkRR P֭ЭRR BkRR ԭЬ RSbRRSS<3ѭB)ЭRB6RR ֭ЭRRB B6RR 柫6ݭkݭ GTʰ<ʬ~GЬR1ԭRBkRR P֭ЭRR BkRR ԭЬ RSbRRSS<3ѭB)ЭRB6RR ֭ЭRRB B6RR 柫6ݭkݭ",GЬRբ-Ь S5$<R R R<R 7FЬR1Ь SARBARRtVsVVARRRBARRRR qUPpUU@RB@RRnTmTT@RRRB@RRRR kSPjSSB :FЬRSЬ S<U< TˏTRxRRRUˏT~< ~UЬTUTTUɏSɎSSvEЬRЬ S~pɰfEP,վ,Ю,Rբ ^R%Pݮ0HPRR(EO(վ(Ю(Rբ ^R$Pݮ,HPRR,DO&$վ$Ю$Rբ ^R$Pݮ(HPRR0iDO. վ Ю Rբ ^R$Pݮ$HPRR4D<~8CЬRЬ RRB$ݪ CЬRЬ RRRRBjCЬRoݪDЬ SRʸURUW#WWݪ@ "VPUVVݪ<!TUTTݪ8 SUSSݪ4 9CЬR1nݪXЬ T6RRRʸVRVXPCXXݪT4 BWPVWWݪP4VUPAUUݪL5 @SPVSSݪH$B, ,ݪl4RʸVR g[PV[[ݪh5fXVXXݪd6eWVWWݪ`5dUVUUݪ\4cSVSSD 0ʀ4RʸVRɋ[V[[ݪ|4ɊXVXXݪx4ɉWVWWݪt5ɈUVUUݪp5ɇSVSSh 0ЬR1ʠЬ SHRRRʸUR ɽ U ݮ ʜHɼ[U[[ʘH ɻXPUXXʔH ɺWPUWWʐH ɹVPUVVʌH ɸTPUTTʈH ɷSPUSSʄɌ@ЬRЬ RI~ʀɾ@ЬRЬ R<~@@ЬRЬ R#~<@ЬRЬ R<$~Dl@Ь S<RxRT<RRTU< RUUЬRЬ R< ~UH*@Ь S<RxRT<RRTЬRTP?ЬRUT~ʄ?ЬRЬ R<&~T?ЬRЬ R"~X ?ЬRЬ R<(~\?ЬRЬ R<2~`a?ЬR&Ь RТLSSS|'2?ЬRЬ R;RBʨʤ0 ?ЬSc cc1ެ Td[ԭФSЭRBB[1RR1ެX>4VRRR[R0:RRRV1%0VRԭPP~1PZ?P|ZɢWɡWWɈUɇUUb gTPfTTb ^SP]SS ^mS"RЬP` ՠ^PݬHPP^R|~1?ݬP bQ> Pa`QPSߥP|~H|~߭22~ P eT1P|S޼R>bQ> Pa`QPSЏ0|~|~H|~߭r~2~ PHDS޼R>bQ> Pa`QPSߥP|~H|~߭22~ PeTS޼R>bQ> Pa`QPSЏ |~|~H|~߭42~ TPެYiRb1fR>SQ> Pa`QPSߥP|~H|~߭22~ P eVPVVP^@2||ԭޭޭ|~|~߭ݬ|~PRP߭߭ݬ7RP^@4||ԭޭޭ|~|~߭ݬ|~PRP߭߭ݬ7RP^ݬݬ7PR <$~6RP^ݬ6PR <$~6RP ^ [jXЬRbԢScPȠcP(cPJȨ(D ȨXPȰ(#ЬRȰXP,*PNȨ,ЬRȨXPȰ,ЬR!ȰXP0PNȨ0ЬR)ȨXPȰ0kЬR1ȰXP4rPNȨ44ЬR9ȨXPȰ4ЬRAȰXP8PAȨ8ЬRIȨ5Ȱ8MȰi5bdPAȨdЬRQȨ75ȰdhUȰ5 bhxPBȨh:ЬRYȨ4Ȱh]Ȱ4@bl(P1VȨlP1VV(14ZȬU<ȨWRWBe-Be:RRW Be-Be:Be-Be:iUȼRȸЬTFĻȸjPYRRȼRWPPȸVSCĻȸjPYFĻCĻFĻCĻFĻЭCĻV"PЬSFûȨjVRFûBûVȨlP VV(1!VЬRF»b|PSȨ|ЬRyȨn3բy֢yȰ|}ȰI3բ}֢}@ȀPOȨȀ_߭Ȩ3ЬR‰ȰȀ8߭Ȱ2Š@@PNȨ@߭Ȩ2ЬSÁȰ@߭Ȱ2ÃPPBȨPЬRaȨT2ȰPeȰ72HPBȨHVЬRiȨ2ȰH5mȰ1 ȄDPCȨȄЬRqȨ1ȰȄuȰ1@XPOȨX߭Ȩg1ЬR…ȰX߭Ȱ@1†<PNȨ<X߭Ȩ 1ЬR‡Ȱ<1߭Ȱ0ˆD:PNȨD߭Ȩ0ЬSËȰD߭Ȱ0ÍTPNȨT߭ȨR0ЬSÏȰTy߭Ȱ+0Ñ\PNȨ\D߭Ȩ/ЬSÓȰ\߭Ȱ/ÕL&PNȨL߭Ȩ/ЬS×ȰL߭Ȱs/Ù`PNȨ`߭Ȩ>/ЬSÛȰ`e߭Ȱ/Ý xnP`SȨx-P?PЬSäRRRäЬSèRRRèȨݨdݨHzȨP+@8P?PЬSåRRRåЬSéRRRéȨݨhݨHȨ+P+@8Pv?PЬSäRRRäЬSèRRRèȨݨlݨHȨP+@8P?PЬSãRRRãЬSçRRRçȨݨpݨHNȨcP+@8P?PЬSäRRRäЬSèRRRèȨݨtݨHȨP+@8PJ?PЬSäRRRäЬSèRRRèȨݨxݨHȨP+@8P?PЬSãRRRãЬSçRRRçȨݨ|ݨH"Ȩ7P+@8P?PЬSãRRRãЬSçRRRçȨȀݨHȨP*?7P?PЬSãRRRãЬSçRRRçݨ4P1ЬR«Ȩݨ8ݨ4>ȨSP/G?P?PЬSëRRRRRëPЬSìRRRRRìȨݨ<ݨ4ȨP(=56?PЬSëRRRëЬSìRRRìȨݨ@ݨ4rȨP+@8P?PЬSëRRRëЬSìRRRìȨݨDݨ4Ȩ#P+@8Pn?PЬSìRRRìЬSëRRRëȄP1ЬR±ȨȠȄȨP,D<?PЬSñRRRRRñPЬSòRRRRRòȨȜȄ!Ȩ6P*?7P?PЬSñRRRñЬSòRRRòȨȈȄȨP)>6?PЬSñRRRñЬSòRRRòȨȌȄXȨmP)>6?PЬSñRRRñЬSòRRRòȨȐȄȨ P)>6V?PЬSñRRRñЬSòRRRòȨȔȄȨP)>6?PЬSñRRRñЬSòRRRòȨȘȄ,ȨAP)>6?PЬSñRRRñЬSòRRRòȸP1ЬR­ȨȼȸȨP/G?P ?PЬSíRRRRRíPЬSïRRRRRïȨȸ=ȨRP*?7P?PЬSíRRRíЬSïRRRïȨȸȨP)>6:?PЬSîRRRîЬSðRRRðȨȸtȨP)>6?PЬSîRRRîЬSðRRRðȈdP"ЬR@ȈȔ4ʏPެUPeRȘPoSȨȘPKSS(DХTCYȨPȬ<Ȩ~@ȨȘPSS(SЬRCYP^[|nЬR<RPЬS<R < RcRRR RPЬScTTTST<RH< RB<ÑR PPЬS2ЬRÓ((Õ<ÕR PعPЬS2ЬR×  Ù<ÙR 啕PPЬS2ЬRÛ22Ý<ÝR nPbPެXhTNWSCS?ЬTU3VSBC VPWVWPhRCSެXhS1YU1ШWVЦ<\ޮ\SE_dޮdRѮ\dT:\d T \dTTTzPYUhRU_YPЬScc c1AYެUeZVeS>T>RdbTRVZ11xVXRRRZRT:RRRQXQ1ڷWPTXTUPPGk1?P[ԮfS"íRRdRïRRdR WPX^U֮ RRRxRS<RSR[dX;U֮ Ф[dRP2PЬSc(ѣYnn]գ] PPЬR1ZެUe`VeS>T>RdbTRVծ`1\Ю`V1NެX2Ю`VRRRVR[RRRVR[R1kR1XXXVXRR1kRSSSxSSSRW[RRSVUhREY1Z1YTWqSfhޮhQEYlޮlPѮhlR;hl R hlRRRZVTTWUEYZ1ykRR[[XkR1!ݮݬݬ ߭ЮpR'P`Ю`T1Z _PSZPЬT><ķUЬS<@RRURRUĹRR@RRĹ PPЬSAßUЬRRxRTUUUTUàRRRRTR ʳPᄈPЬSDáUЬRRRRxRTUUUTUâRRRRTR }PqPЬSBóUЬR;RRRxRTUUUTUôRRRRTR 2P&PЬT=ģЬSģRR4RЬSħRR4R PPЬT3ЬSīRRRĬRRR ﰲP爐PЬT3ЬSıRRHRIJRRHR tPhP2]P^ЬPՠ`PЬQЬPѡPЬQЬPѡPѼPѼPP^ݬPQPPQPPP^ѬPެQެPa` PެQެP a`PP^WЬRb1R<߭ PЬVfSм$ԶfRԢfR(P (fR(` xfR(, fRЏ,fR>fRЬSУTfRc\fRЬSУXfRc]fRxPfRLfS$>fRO?fR(PЬScR cS<Rף ЏWЬUeeЬ VefTTмST $ e RRfЬTdS$W|~ݼݼ ݣ4|~W߭c xPUdRѢdRТ|~߭PЬRЭbRЭíSSƏSЬ RSbbSbЬTdSм dSмUP^|~޼P߰PQPQPмPݠ4PQPQPЬRR<߭ b ^Ь P`P[ PQPQP|~ݼ=ݼ |~߭1мPݠ4 PQPЭQQP^߭ݬ PЭPPP ^<PPЬRSTREAM(dLFSTREAM(CRSTREAM MATCH_KEYWORDS$AND$OR$DISPLAY_KEYWORDS$<ALL$`ACL(#TREE0(DELETED$TYPE, ORGANIZATION,, ATTRIBUTES0\CHARACTERISTICS( JOURNAL,  CREATION_DATE,  REVISION_DATE0  EXPIRATION_DATE,8  BACKUP_DATE4lNUMBER_OF_REVISIONS(VFC_SIZE, RECORD_SIZE4MAXIMUM_RECORD_SIZE$USED0HFIRST_FREE_BYTE(p ALLOCATED8DEFAULT_EXTEND_QUANTITY, BUCKET_SIZE4GLOBAL_BUFFER_COUNT,4 VERSION_LIMIT(\EXTENTS(HEADERS$LBN( OWNER_UIC, PROTECTION($FILE_ID0TDIRECTORY_FILE_ID,  ACCESS_MODE0!HIGHWATER_MARK4"ACTIVE_RECOVERY_UNITS,# WASTED_BLOCKS$4$NAME(%FULLNAMEEFINDOUTPUTOUTPUTwrfm=varrat=crFILE_IDP1VOLUMEFILE_IDFILE_IDFILE_ID.DIR;1.FULLNAMEFULLNAMESorry, FIND only works for structure level 2 disks. File ID's can't be as large as %d DISPLAY.TREEunknown.DIR;1[]%s %d/%d %d/%d unknown.DIR;1[000000]%s %d/%d %d/%d unknown.DIR;1[%s]%s %d/%d %d/%d :r[000000]FIND_USER_KEY.DAT;p.TypeFixedVFCStreamIndexedDirectPrintCCSpanBackupChargeLockedSpoolJournalJournalAIJnlATJnlBIJnlRUJnlOnly_RUUSERKERNELExactSYSTEMOWNERGROUPWORLDRWEDWEDREDEDRWDWDRDDRWEWEREERWWRUsedExtentsHeadersLBNFile_IDNameDisplayACLACEACLDeletedTree No %.*s ::::* Exact%.*s none P`p 0 (@0PH   0 @ X h x         ( 8 P `  (08@HUndefinedVariableLFStreamCRStreamOrganizationSequentialRelativeAttributesFortranCCImpliedCCCharacteristicsACL_CorruptBest_Try_ContiguousContiguousDirectoryErase_On_DeleteFile_CorruptMarked_For_DeleteRead_VerifyWrite_BackWrite_VerifyNever_RUAccess_ModeSUPERVISOREXECUTIVEPlacementOn_CylinderRelative_Volume_NumberLBN_SpecifiedProtectionProtection.setProtection.clearCreation_DateRevision_DateExpiration_DateBackup_DateNumber_Of_RevisionsVFC_SizeRecord_SizeMaximum_Record_SizeFirst_Free_ByteAllocatedDefault_Extend_QuantityBucket_SizeGlobal_Buffer_CountVersion_LimitOwner_UICDirectory_File_IDHighwater_MarkActive_Recovery_UnitsWasted_BlocksFullnameDISPLAY.ALLDirectoryTree%.*s%.*s[?]%.*s%.*s (in %.*s%) Filename = %.*s%.*s (deleted) protection = (S%s%s,O%s%s,G%s%s,W%s%s) File ID = (%s%d,%d,%d) Backlink File ID = (%d,%d,%d) %s = [%o,%o] = [%s] %s = %s %s = %s %s = %s %s = %s %s = %d %s = %s %s = %s %s = (%s%s,%s%s,%s%s,%s%s) %s = (%s%s,%s%s,%s%s,%s%s, %s%s,%s%s,%s%s,%s%s,%s%s, %s%s,%s%s,%s%s,%s%s,%s%s) %s = (%s%s,%s%s,%s%s,%s%s,%s%s,%s%s,%s%s) %s = %d %s = %d %s = %d %s = %d %s = %d (+%d) %s = %d %s = %d %s = %d %s = %d %s = %d %s = %d %s = %d %s = %s Placement control: (%04x) %s%s%s%s On cylinder placement desired Relative volume number Specific LBN%s = %10d - %10d (%10d blocks) Extension header #%d (%d,%d,%d) --unable to get extension header %s = %d %s = %d Access control list Error %d in formal_acl call 0@8`p@PX`hpxA`X . d  $VERB$LINETypeFixedVFCStreamIndexedDirectPrintCCSpanBackupChargeLockedSpoolJournalJournalAIJnlATJnlBIJnlRUJnlOnly_RUUSERKERNELExactSYSTEMOWNERGROUPWORLDRWEDWEDREDEDRWDWDRDDRWEWEREERWWRUsedExtentsHeadersLBNFile_IDNameDisplayACLACEACLDeletedTree 0`pPX`hpx 0@P` 0@Phxpx 8H`pUndefinedVariableLFStreamCRStreamOrganizationSequentialRelativeAttributesFortranCCImpliedCCCharacteristicsACL_CorruptBest_Try_ContiguousContiguousDirectoryErase_On_DeleteFile_CorruptMarked_For_DeleteRead_VerifyWrite_BackWrite_VerifyNever_RUAccess_ModeSUPERVISOREXECUTIVEPlacementOn_CylinderRelative_Volume_NumberLBN_SpecifiedProtectionProtection.setProtection.clearCreation_DateRevision_DateExpiration_DateBackup_DateNumber_Of_RevisionsVFC_SizeRecord_SizeMaximum_Record_SizeFirst_Free_ByteAllocatedDefault_Extend_QuantityBucket_SizeGlobal_Buffer_CountVersion_LimitOwner_UICDirectory_File_IDHighwater_MarkActive_Recovery_UnitsWasted_BlocksFullnameMATCH.ANDUIC %.*s is not valid Illegal protection specified '%c' Illegal protection specified '%c' Invalid Identifer/UIC %.*s (08 @P@Hp (08@HPX`hp#4G~^ ^(GG#0B  = > 8buZkb# @ BG(b4G3UZkG] ](0#kG#G~^^~ (0޴8@H>P^XGG#G0b#H@GG(b#G@TGh G8b#CG@"4GGb#@Gb#"x$"TG@x"TGBb$"uBZk$"" d"B("|GA bKZkGb#"4GJ@G"b#4G@p"4GGb#@ӈGG"b#x$"TGV@yBTG$d"~bx"$"E"GGGG[Zk%"dhB(!.+A.6Jpb!JR AJ2FC".!# %$"TJGJwJFdG$GZkGdG %ŰGG3fJ$E$!"hb#fJG4G@("%$G4G$EG1&J b#&JG_$@" %GG(!.)A.$a"$.8K!J%.R AJb#J2F1V J(EU J$e1!JFBK4G @Ә4GHBPb HHZk$ Bx">$"bE"GGGG0[ZkGG0"b#4G@0DwGb#8"$"TG@Ӡ"4GnGb#v@G@"b#4G@4G Gb#"İ$"TGv@[Š>hB"pb$"GGGZkGŰ#Gb#"$"D"tG@GGb#G)@GxB"bGZkLGH"b#4G B@Pa@xBbGZkLG4Gb#"$"D"d""$"GO@G$%!.A.!JR AJ2FC1",% " .1#JXFQ/q/ ,!Q.YK[ yKHR QJ[GD@C 1@. H.wHGU JVJFF>>d$$E9qC0 C$57!J2,. .#,2HdJ$@ Hb#P JF0D @5@0@! (%P"4GV@IGGX"b#x$"TG,@ӊBbx"$"TGZuZkTG$0?IGXB`b"eZk v I$) IGhb#"!I!9Hi I$"!E DGd$E3fJfJ4G@("$G4G$EG1&J b#&JGI#@"GG$4J$eJ(E4Gb#@ӹG$4GCD G$GdDBGSBD"$"b#D"d""$"@$% G%P a..$aJT J0BtF(%"GG$EG7J(% b#J#@"$ GG$G!&H$e(Eb#&H@(%0@! @(%Gb#$"4G@$ GE"@$" Gb#TG}@C?GGGG)G'G%XB"`b4G+eZkGGHb"$"TGàGb#o@Ө"Bb%"TGtZk!GTG b#"+@4GG]]} (0ݤ8@H=P]X`#kG#~^^~ (G0,GP.0HR PJ2DC,#,HA #HDC") .#C.JR CJFC"GGPb#1@#"#,".c..#H.P J.qJ/T J#/0DJV JKY 7KtFFGCCCC"E$,$ %#,&"HA $HDDL&#.'C.0JR PJ2F FE (.).JU JF? .#.JW JFC("C/c/##GYK[ yK[GCPb#@#"#,".c..#H.P J.qJ/T J#/0DJV JKY 7KtFFGCCCC8"PBXbGGrdZk#, .GG HP Jxb#0DC @G]]4G} (0#kG#TG~^^~޴ (GGG8BGG@b#GtGlZk8BG@bGTGlZkG"*HBPbG`1"TG}Zk.PJ> ~G$.G &J Gf."4GPtJJFB/KxBbpZk.qHPJF>F. FJ__x¤P t@YXG .%"#.E#E.JW J/%/QJF.e/C,F%,W J.KY %KzK@ HB%HP JWFGG`G0DbC>CCC"GGGcZk%, .GTG HP J0DhBpb"#}Zk&"(B"0bTGjZk"(BG0bTGjZk ,]"%,0`@XbtGHA 'HDC__ ,%, HA 'HDCG]]}ݤ (0#k#4G~^^~ GGP`,"#,GHA 0HDC b_ #,.  4G HP J0DC b_,c##,HA #HDC2.#.`..J.Q #J.`JT JFtFpB JV JwJUJFF>>#/C/#,#K#.Z CK;H:GC"b.,Q ;J."tJB.@ H1D`F@ HU JvHRPJF>VFP>G]]} 0#k#G~8^@^H~PGG#HB"@B~Zk b}"`B"hbG"} GGGG}Zk0D8 D 0BG8b4GotZk4G0D8 D 0B0H8bJetZkPBXb#"GGGG!}Zk0D8`D`0BG8b4GUtZkG8]@]H}P`#k#~^^GG= vH0..0JTJu!J"F>.JXgF` 1@! A.!" ¦QQJ'J6F a.TG`JSaJ`Fa>0B"6"$|ZkPB6"Xb"TGFZk@BHbG4GnZk"4GBGbG1"G|Zk0D8 D BGb4GtZkG]] #k#4G~^^ (GGG0BG8b=|ZkrH TGG b#01?H2F=+@G]] (0#k#4G~^^ GGGpBGxb^|Zk`rHG4G b#000"1?H2F+@G]] 0#kG#4G~^^ ~(08GGGBGGb8|ZkqHB4Gb% 0?HFeG+|ZkpHeGBTGb!H0D "9PZk "B%"bTG}Zk "B%"bTG}Zk "G4G b#<+@}$ G2D]D]D(0G }8@#k#4G~^^~ (08GGGBbGGG{ZkqH4GBb% 0?HFG{ZkpH0BG8bTG!I0DG eOZk B%"(bGTG:}Zk B%"(bGTG4}ZkG]]} (08@#k#TG~^ ^(~08@޴HPX>`G#G5GGGGG G @BGHb8"GZku('A.$!.$" HR PJsH0Q0JTF3FP>0>GȢ6//Y 6KXK6??H:-z#, BI ;I;=@H<(("GE}ZkG( Bx"G=}ZkG( B"G5}Zk?$(TG/ /, ,. 'Hy'HX KWJGF?>>p.>P"t2JSrJtFr>CW5,Tu#T, [Kg[KA ;H@H)DD;<<c\7/\#pxHY8K0G8?(D[,X. QJaQJ@ HTJDF[(]I/]"{HZUK[GU?hS#/x"P/ J`JY #KXK!GGS#?P?O.'"Lg.LG" 2JT Jd2JSrJF>dFr>$u/$U#zK `>,>5 >.>u HPJ4DwHF>GBb?,? i$KGH4GD<(("{Zk$-$,#$.$I .A $HQ $J!E $Hr$HPJ3F#$>F >h.."JV JF /##/#c/KY #K C/[ cKG81C K`KZCKiG#c?@G C??%4G(F .#1/TBJY 1K41BFC B$q,$ 2B0@B`H6`H`E$/$"K !E4p#4,="7,GpBGHG HxbGDCGŢ޶&> G(tyZkG=G.$ $.JQ !JFC )@ GXb# @ 7HtGC)1@@ DP.p.0"QJS qJGSFC  @`B"hbGyZkB=.$, $IP Jq$IA$HF>@ SAFETY013.A!  [EVERHART.JTDEMO]FIND.EXE_A;1;1wa>21D$<h? .." JW JxJVJF>F>}]:[C0@CHD@C0@7H @ GEp. P. 0" QHS qJtQHRQJuFq>TFQ>Ơ /. HX KyHWJG ?F>G] ](}08@ݤHPX=`p#kG#G~G^tG^~ GGGBb2yZk8B4G@b4P.7p.40"QJS qJSFC yZk`"(B0bGTG@ZkG]]} 0#k#TG~^ ^(~08G#G=GG0BGb(~Zk=c}" BG!G(b4!.7A.4"~0JR PJG2FC4GG (cxZkG] ](}08@#k#4G~^^~ (G0.GG#,Q #J#>C" A#H#<.c.GGT JSrJ>b#r>%_ #  .4Gq!J_"F> CJ.vCJ.# XJU JTJFF>>{XJC/#/Z XKY8K@GX?;G8?.# GGq!Jb#tGF>.DT$J0F_4G.Gq#JG0@Fb#rCJFF>.tGDT$J6J0F_.TG@Gq#Jb#P@FrCJFF>tG.DT$JVJ0F_2WH.Gq#JG@Fb#rCJFF>.tGDT$JvJ0F_2wH.GGq#Jb#AFrCJFF>tG.DT$JJ0F_2H.Gq#JGBFb#rCJFF>.tG(DT$JJ0F_2H.GGq#Jb#DFrCJFF>tG.,DT$JJ0F_2H.Gq#JGHFb#rCJFF>.tG0DT$JJ0F_2H.GGq#Jb#PFrCJFF>c".tG4DT$J0F_# .4GGGq!Jb#0@FrAJFF>c".tGlDT$J6J0Fn_.# TGG@b#q!JP@FrAJFF>.c"DtGT$JVJ0FY_2WH.# GGq!Jb#@FrAJFF>c".tGDT$JvJ0FD_2wH.# GGb#q!JAFrAJFF>.c"8DtGT$JJ0F/_2H.# GGq!Jb#BFrAJFF>c".tG.c"DtGT$JJ0F_2H.# GGq!Jb#HFrAJFF>c".tG@DT$JJ0F_2H.# GGb#q!JPFrAJFF>.c"DDtGT$J0F_.# 4GGGb#q!J0@FrAJFF>.c"PDtGT$J6J0F_# .TG@Gq!Jb#P@FrAJFF>c".tGTDT$JVJ0F_2WH.# GGb#q!J@FrAJFF>.c"XDtGT$JvJ0F_2wH.# GGq!Jb#AFrAJFF>c".tGDT$JJ0F_2H.# GGb#q!JBFrAJFF>.c"DtGT$JJ0Fs_2H.# GGq!Jb#DFrAJFF>c".tG DT$JJ0F^_2H.# GGb#q!JHFrAJFF>.c"HDtGT$JJ0FI_2H.# GGq!Jb#PFrAJFF>c".tGDT$J0F5_# .4GGGq!Jb#0@FrAJFF>c".tGDT$J6J0F _.# TGG@b#q!JP@FrAJFF>.c"DtGT$JVJ0F _2WH.# GGq!Jb#@FrAJFF>c".tGDT$JvJ0F_2wH.# GGb#q!JAFrAJFF>.c" DtGT$JJ0F_2H.# GGq!Jb#BFrAJFF>c".tG$DT$JJ0F_2H.# GGb#q!JDFrAJFF>.c"LDtGT$JJ0F_2H.# GGq!Jb#HFrAJFF>c".tGPDT$JJ0F_2H.# GGb#q!JPFrAJFF>.c"T$tG`DJ0F_.# 4GGGb#q!J0@FrAJF"F>tG..T$JW JdDFCw_# #. H.rHGtGQ !Jb#PJ3FF!>>GT$hDe_ C,4GGa$H0FpJADPDGD<]]} (0#kGP#5J~tG0^8^@~HPX޴`hp>x^~޵GG#(}G?&,G 1"=!.G " #.J GB5J@ G G G G~ H0""@Gb#`B#@ӌ5,5 e!HGHTGGb#g$@ G>Bb4GTGTGjZk G,$ ,qD!HF HpDDqHPJFW@Bj .".qFm"JU JpFFyJXKGW@C`  , m,qDm#HC {HpDDjHDHDWBV@GGG@b#tG#@G G_, "HD,M!0`@HDm- 0`@`ID -,0`@!0H$D 0`@#"?.e"E.GJSJ2TBGB#@6".V#JF6/0@:K$G v/ 0@dKDV- 0@GID 0@f!",HD0@& "?B f@b0A4GjZk#, H L-k HB@("G HbJLID KE#< L=6"GGGGG^Zk,B!L-GTGHJ LIDC!Gb##@, H,j H4GG HFHDD<<TGgBbTGCjZk H,i H,B $` G HFHDD<<q`D$,p`D.Q$HP JRTJ0Ds4HSFWBQ`..#$/JW JD/8KFCZ XK&#qG:G۠ pGg)KFHDW A۰L-l-",LIK lI$,H KE Cq@EA 0H(#Dp@ErHQ3J2F(#W`B@.G.JW JFCT#, I,iIG HFHD<D<,/l/G,K[ lK;G@b#CtG #@Ӫ,l,HC lHDCC!,,HG HDCE` .,. JQ ,JFCA".a. IuIT JSrJFuF>r> ,/G#L/ f/#,,KZ LKfK:G@BD HCdGCtZk f![ ,F-HJ KIDCDoG - 7!w,IC iHEC ` ,,#. #/#,,H@BV J#KD H6D$GCCsZk w-, W!jIG HgEC 7! -7,IA )HEC,D?F, " w, IyID HCvHDyD<v<: W. 7"w. "L/ QJ .S qJZ TKSF 4J{4JUJ@GT?F>w- I W-iIK gIJGI mEg= IEG=G,, l"l, HtH,HC lH#DC . I.yIV JPJF>F>,. ,Q 3J@H5F3>D<l/,lKG HgGC3GGBe!Gb#TG"@G)Bb4GTGTGiZkG G }c@@@B-$# C$-q DB 0II &Ip D ErIQ3J2F0W`B@ GGtG0B "G@b#("@,%!,G!e,' -HF Hg-,iHD'.L I.$HlDjI@ HDC`E@ HQ !JrHPJ3F!>F>."."/%/JV JKFY 7K5JGFCG e/!,eKF HfG`51Bg-G- '- H-K dIaHJDI pEd='IL I AED=g. ,EG. 5A 'IS gJt'IRGJvFg>TFG>'/ 'I.x'IY 'KWJ#G'?F>G B"(b4G ZZk #,%" "tG H H Gb# H"@. %. HJQ %J2v@JF hC"GnGGB%"b# H" "tGm@G G0." }0#0J0`B$F }0`B.JF }0`B/KG } p/0`B"`KD }s".".6)#JJ4BB+G/Y"}9"K0`CG"}0`C9,2H$D }0`Cy.qJ$F }".0`C9#JF}{#G/]K0@BG]R"9#_ BP"}6" =G(bGYZk`"  H vHC B(btG}YZk,!GHH^ 0." }0#0J0`B$F }0`B.JF }0`B/KG }!p/0`B"nKE }s"."%.J4J15B'B, 6"_7/w"]7K0@C$G#  ]0@C-ID]0@C.JF]".0@CJF"]Z#_G7.}7J0`C$F }{#" Bp"}6" =G(bGYZk,#,!5"HA .H%#D5%.0J" J e. .eJT JtF` . "J . #J E/e/YK[ yK4G[G@ B(bXZk,! H"HTGvHA%#8@.@.(h"AE/0"JJFF3F ("J8#FFFYKGA"AGQQCG1AG@H">H(#A/D " h#KGK H"GPBTBGPH#X `G^RC B(b"RG4G^GGXZk#, " HhH# H  ! %. E.`". "0J .R PJ / %/J2F e/1V JU J1!JFBKY 7K:F B1F`K(bGG"CCGGXZk, DE"GHHB.C%.B% De.F"E.JF.Q !JG/rJT J BJ(bX KFtF"FCCCGjXZk, <E"TȠ0b#H>.?%.>% <e.<"<.J=.Q !J?/rJJT JX KFCtFFCC@ B (bGGGGGGDXZk, " hb#H s@! BG(bGGtG5XZk, "hb#H6H c@ ! BG(bGGtG%XZk,& "hb#HVH S@0! BG(bGGtGXZk,. "hb#HvH C@@! BG(bGGtGXZk,(P"tGHH ,! , BH(b@ HDCWZk#- t(`"tG&IV I ,!\  B(bHHD@@@WZk#- p(p"&ItG6 I ,! B@  (bHD@@@WZk#- He#(&Ip("v I% .% ",.e"J !VJJ|hF^H,6Jx" BDH(b(!vHFDGGx("GTGWZk, h5%!HH6 6H("4.4% 4."5-J 4e"(JIF~J6,vI6Jh"(bHG(!EG BFDG>G("TGrWZk4,5#5,H#6E.4!5%!hH H ȠH5%/4!( DȢ8K6" KPJ&G^G~( 4%-6@J BH"(b/Ih" IFF&E> GD"GtGAWZk4#4E.H#5%-5 5,5 ( h&IH I4%/4 4"/EȢ8K(PJV KG/G^v@J~( 4,H B"h"(bHOFHGD> >D"GtGWZk, H#h"HVH<H%,h"H%-  H%."%H%I  H IȢ D~ EH%/%J(Gv Jh%K FV K((" G^0(#~"H,H(bH6HD (>H%,%H H D0>G8~GH/GGKG@>H^G BVZk, I!d(0"HtGI%- B(b/ICVZk, !$(@"HtGH %-, B/I(b@ H  ECVZk, #%! (P"HtG6H#- B(bICVZk, (($!H`"VHtG $%-%, B/I@ H(b  ECVZk,-%!,"%,H%.O IE. H.A )H.e"DD0JR PJJU J'H H2FFDDCCGG .!.JW JF/1A#/#p"8K K E/!e/G,(GEK[ eK[G(bC BQVZk,#!" HtGH BG4((bEVZk,#!" HtGH B2@h((b9VZk,#!&!H"vHtG &,'%, BH8(A /H(bDC'VZk,#!"HtG"-" B<(I(bCVZk,#!"HtGH (-), BI@ H@((bECVZk,#!2!"HtGH 2,3%, BHA /HD((bDCUZk,#!L!"HtGHL,GO%,`hH BA /H(bD C41 B4FGUZk,#!"HtGH ;-; l ( B(I(b@@@UZk#-#I I ,HH-II& }4G . #@. G4J JR @J`"2Fu JF= @/`/YK[ yK/vH[GaS@KtGE= ݱ..=JU J69JFxJF= } G-I#IE : .:I"AJ/AB G_ } @`GA".JJpF<5B8UB7G]G] }(0#k#~^ ^(~0GG#]1,q. b1HS qJC3Ds H YJ1 DQ.q.AJS aJ!HSFs@J3D1 Q.q.AJS aJ4HSFu@JF0.0J&(B@B1&JHb}"^R"&JGG ^TG(GGkZk= P#"RC" &HtGH0B8bLAZkG] ](}0@#kp.S pJqF#G~G^G^GG GG0# BG(bGmZkGG]] 0#k#G~G^G^GG GG#(B !0bGGmZkGGG]] 0#k#~^ ^(~08@޴HPX>`GG#],GGGH`GGc.#"qJ ` TG "G@BHbpZkGn%G %c.qJ Pw`J#G6JFh1/8Kyha K" gKD.JtȦsJ'H0B#8b7JHFh }"GG TG(GGG kZk=% G5GD.GPJTv@J" G5JFH/KNH`K0 ;GK`Gp.aJI r`J0B0&8b6J%#FH}">GGTGG G(GjZk=10 #.#J/`hu J"4yJF(.J*({J :'K[G#, H%Ht H0B"8b3_J%#tF(}"GGTG >G(GGjZk}`%.J HtJ"3YJtF.JzJd#9K:Gȶ,H`(rH0B &8b1?H 2Fh}"GGGG G(GsjZkGGK- I(VIP.p.(I P#PJS pJ@SF@ݰ4G. / p/0-JX KzKI :IF iGC B @ 0 A @8 D)D -&@.&7HIT JEA""#/#K`,6-HI 6I D G?G"Bc ?@ G GG"b#="GtG_ĠG@@ TGDNf, &,GfHA &HaDF`@B "HboZkG?G&!Pb"I# ),'H .#)HP J29J0Ds H"SF#.H.}"TGJV J8JFyӠJ"Gi/G ,GäGzK@ H%H0B`Gh`K8bDG ޶(iZk=Ġ GGG] ](}08@ݤHPX=`p#k.GP JFnG.P JFm.T JF|X/Z XKYG.U JFp.S pJrF7/Y 7K8G.T JFC.R CJQF/X KG.P JF$.Q $J0F.W JF{,C {H@ SAFETY013.A!  [EVERHART.JTDEMO]FIND.EXE_A;1;1>Q`D$,A $H(DC/Z CKYG?p#2$~@ h^Gp^Gx~GG#G$=(=" = }"0BGG =G=8bkZkG` B$ ="(b(]"tG~ZkGh]Gp]x}#kp#4$~@ h^Gp^Gx~GG#G$=(=" = }"BGG =G=bmkZkG`B$ ="b(]"tG~ZkGh]Gp]x}#k#TG~^^ ~(08޴@GGG Gb#$"G@$=@BG tG!v HHbC^XZk4G2GG"b#$"TG@$)G!v HC 4GBG&.&J$F%F@ `Bhb7jZke@ @.JGG&.r&H0@Q&J2F&>d3v`J@G="b#TG@G]] }(08ݤ@P#k#4G~^^ ~(08޴@HP>X^`G0.GG#,Q #J#>C" A#H#<.c.GGT JSrJ>b#r>_.4Gq#JF>Gd4Gb#x_.# Gq!JF>G4Gb#l_G($" b#TGC_("pB #"xbTGhZk0$" GTG b#6_pB0"xb#"TGhZk .4Gq#JF>G4Gb#G_TGG($" b#_pB("xb#"TGthZk G0$" b#TG_0"pB!#"xbTGghZkTG .q#JF>G4Gb#"_G($" b#TG_("pB)#"xbTGOhZk0$" GTG b#_pB0"xb1#"TGBhZk .Gq#JF>G4Gb#_TGG($" b#_pB("xb9#"TG*hZk G0$" b#TG_0"pBA#"xbTGhZkG .q#JF>G4Gb#_4GG($"TG b#_PB("XbI#"TG^ZkG0$"TG b#_PB0"XbM#"TG^Zk#,GpJ0D#<G(4Gb#_G(($" b#TG_("PBQ#"XbTG^Zk0$"GTG( b#_0"PBU#"XbTG^ZkG#,pJ0D#<G4G,b#_TGG,($" b#h_PB("XbY#"TG^ZkG0$",TG b#\_PB0"Xb]#"TG^Zk#,GpJ0D#<G04Gb#n_G0 b#($"TGD_ӪG(0@& , G'vJ42q@ @G&`%@G.4# 4"JF'XF%/ 0 AKG @XGt/ 0 A`KDXD . 0 AJFXF` 0 A 2A" 'A 4/4K%GX'G 0 A 'A" A(",TGHD XDPBH@Xb("-^Zk(, .("h.0@ HH.P JS qJ0D HtHRQJuFq>TFQ>EG<y I8H@PB8"Xb("8JG8TG ^Zk 0 A<'@PBrHXbTG @<81J8"2F8䰿("]Zk(!,( ,.(.H@ HJQ !JDFCC @@..h" 3HU Jv3HTJF>F>H/#(/ H{HZ XKY8KGG;GX?8?0@G($"0TG b#_W0@F@ &,!&- HpHA (HI(I1D 0E(<(=Gc.tJtFc>G4G@b#_TGGG@($" b#z_PB("Xby#"TG]Zky-y |#-II 'I ECC |.y#,y 0@ HP JqHA HF1D> <G@0$" b#TGY_0"PB}#"XbTG]Zk}!}#-,(IF H&ECC .} }#,0@ HP JqHA HF>1D <.c"GuJF>G4GDb#U_TG+GD($" b#,_PB("Xb="TG[]Zk= ,0$"GTGh'I b#FHDG4Gb#_TGG($" b#_PB("Xba#"TG\ZkG0$"TG b#_PB0"Xbe#"TG\Zk#-!GfH &E(=G4G b#_TGG ($" b#_PB("Xbi#"TG\ZkG0$" TG b#_PB0"Xbm#"TG\Zk,#!GfHD<G4GHb#_TGGH($" b#x_PB("Xbq#"TG\ZkG0$"HTG b#l_PB0"Xbu#"TG\Zk-#!GfHE =G4Gb#}_TG+G($" b#T_PB("Xb="TG\Zk#!,0$"GTGf I b#GHD<A_0"PB="XbTGp\Zk ݠ -GpJiHHI E=#,0D <G4Gb#K_TG*G($" b#"_PB("Xb="TGQ\Zk!#-0$"GTGfH b#I(I &E(=_0"PB="XbTG>\Zk ݠ4G-pJiHHI E=#,0D <G4Gb#_4G($" b#TG_("PB="XbTG \Zk! qEpEɠ`HFHDɰW @ G0$"TG b#_PB0"Xb="TG \Zk ݠqDpD(`HI!I  EW @( #."TGrPJ2F0>G4Gb#_4G($" b#TG_("PB="XbTG[Zk! qEpEɠ`HFHDɰW @ G0$"TG b#_PB0"Xb="TG[Zk ݠqDpD(`HI!I  EW @( #."GrPJ2F0>G 4Gb#_4G ($" b#TG}_("PB="XbTG[Zk! qEpEɠ`HFHDɰW @h G0$" TG b#f_PB0"Xb="TG[Zk ݠqDpD(`HI!I  EW @(W #."GrPJ2F0>G4Gb#l_4G($" b#TGC_("PB="XbTGr[Zk! qEpEɠ`HFHDɰW @: G0$"TG b#,_PB0"Xb="TG[[Zk ݠqDpD(`HI!I  EW @() #."GrPJ2F0>G$4Gb#2_4G$($" b#TG _("PB="XbTG8[Zk! qEpEɠ`HFHDɰW @ G0$"$TG b#_PB0"Xb="TG![Zk ݠqDpD(`HI!I  EW @(#."GrPJ2F0>G<4Gb#_9G< b#($"TG_G0@!PBXb("="TGZZk@g@=!qEpE p1IA1H0D W BG($"<TG b#_0@@f@ qDpD(aKI0I !E(WB C.#"GsqJSFQ>G4G4b#_TGY-, G($"H I=GH<4 b#_<G0@ 8Gb#("="TG@ I@_ b ._), IqIP JA'HF1D>'<c"."./J.U JX KF0`B vJyvJWJGF?> (d"BtG,D;v`KCbKZk&1@G($"4TG b#L_0@F@_!b,# _&-4Gq!JG HI(I<(=.F>G4Gb#Y_4G, GGb#hID<M_Ӂ G!_#!q Ep EqKPJFW@BH G(D"tG&pb#_("G4G`b#@GG0b#("0$"TG@0$4D)v I CC; G*, "Q0H'J<(B2(BG."TGxKF>GC/##G{yK[GY?G#, GpJ0D <GB("bTG}JZk0 0 AJ! vHC A.# #.".c"J.Q !JqFF0JR@JJU J0JFFpFyJXK GW@C @0@G4Gb#_Ӏ$! G qDpD(pKA1H0D(W BG(D"tG)pb#_("G4G`b#F@GG0b#("0$"TGi@04'vHCC;G,( QH'J<(B0(BG."TGwJF>G#/#GzXK:G8?G,c#Ga;HD<GBP"bTGIZk00@! vHC@.# #.".c"J.Q !JqFF0JR_AJJU J0JFFpFyJXK)!GW@Cd &A 0@AGT4Gb#@_B- TGfH#!E=C- G!JIII=.PJ>GG(D"TtG&pb#_("b#@#)5@  C-# C.0H#"AIRQJ0Ds1HSFQ> à.6H.JWJFxJF> @0@?C/c#[K@#- Gj@I *E =GP4Gb#_D, 4GhI#!D<C-# GJIII=.!PJ>G(D"PtG&pb#M_("b#<@#)5@  C-# C.0H#"AIRQJ0Ds1HSFQ> â."/6H"JXKFyJG? @0@_c/ G`KC-#!p J PEI=G4Gb#_D, GhI#!D<C-# GJIII=.!PJ>G(D"tG&pb#_("b#@#)5@  C-# C.0H#"AIRQJ0Ds1HSFQ> ô."/6H"JXKFyJG? @0@_c/ G`KC-#!p J PEI=Gl4Gb#d_ӥ, GTGpb#gH!D<C-# #-(D"tGJ HII(IH=(=#..Q !JPJ!>>lp$_("b#@#%5@, #-!H GvHjHI0D4D!wH *E!Da(H !E(=è#.GC.scJ#JSFv J0 F4 F4w JFtJTFC>G(D"ltGt$pb#_("b#x@#%5@", #-! TGHjHI6H *E0D4D@P Da(H !E(=G#."c.C"TG0JtJ6 JtF0 F4 F1BPFuJuFr>G(D"ltGx$pb#Y_("b#H@#%5@", #-! GHjHIH *E0D4D!H$Da(H !E(=G#."c.C"G0JtJ JtF0 F4 F5 JFuJuFr>G(D"ltG|$pb#)_("b#@#%5@, #-! 4GHjHI0D4DG0 Da(H *E !E(=å#."c.C"4G0JtJ0 F4 FG0FuJtFuFr>Gl(D"$tGpb#_("b# @#%5@!, #-!H GHjHI0D4D!H *E0Da(H !E(=ç#."c.C"G0JtJ JtF0 F4 F5 JFuJuFr>G(D"ltG$pb#_("b# @#%5@ , #-! GHjHIH *E0D4D!H$Da(H !E(=G#.GC.scJ#JSF J0 F4 F4 JFtJTFC>G(D"ltG$pb#_("b# @#%5@", #-! TGHjHI6H *E0D4D@P Da(H !E(=G#."c.C"TG0JtJ6 JtF0 F4 F1BPFuJuFr>G(D"ltG$pb#o_("b#^ @#%5@ , #-! GHjHIH *E0D4D!H(Da(H !E(=G#.GC.scJ#JSF J0 F4 F4 JFtJTFC>G(D"ltG$pb#A_("b#0 @#%5@", #-! GHjHIH *E0D4D!H(Da(H !E(=G#."c.C"G0JtJ JtF0 F4 F5 JFuJuFr>G(D"ltG$pb#_("b# @#%5@ , #-! GHjHIH *E0D4D!H0Da(H !E(=G#.GC.scJ#JSF J0 F4 F4 JFtJTFC>G(D"ltG$pb#_("b# @#%5@ , #-! GHjHIH *E0D4D!H"Da(H !E(=G#.GC.scJ#JSF J0 F4 F4 JFtJTFC>G(D"ltG$pb#_("b# @#%5@", #-! GHjHIvH *E0D4D!wH!Da(H !E(=G#."c.C"G0JtJv JtF0 F4 F5w JFuJuFr>G(D"ltG$pb#_("b#t @#%5@", #-! GHjHIVH *E0D4D!WH Da(H !E(=G#."c.C"G0JtJV JtF0 F4 F5W JFuJuFr>G(D"ltG$pb#U_("b#D @#%5@", #-! GHjHIH *E0D4D!H"Da(H !E(=G#."c.C"G0JtJ JtF0 F4 F5 JFuJuFr>G4GXb#_tG, GGpb#gH!D<#-C!(D"I(I(=#,A*H*GX(D"`$tGpb#_("b# @#%5@!, #-!H TG6HjHI0D4D@P Da(H *E !E(=ì#."c.C"TG0JtJ6 JtF0 F4 F1BPFuJuFr>G(D"XtGd$pb#_("b# @#%5@", #-! GHjHIVH *E0D4D!WH Da(H !E(=G#."c.C"G0JtJV JtF0 F4 F5W JFuJuFr>G(D"XtGh$pb#_("b#t @#%5@", #-! GHjHIvH *E0D4D!wH!Da(H !E(=G#."c.C"G0JtJv JtF0 F4 F5w JFuJuFr>G4Gb#_tGY, GGpb#gH!D<#-C!(D"I(I(=#,A*H*<$A_("b#0 @#%5@, #-! 4GHjHI0D4DG0 Da(H *E !E(=ò#."c.C"4G0JtJ0 F4 FG0FuJtFuFr>G(D"$tGpb#_("b# @#%5@!, #-!H GHjHI0D4D!H *E$Da(H !E(=ò#."c.C"G0JtJ JtF0 F4 F5 JFuJuFr>G(D"tG$pb#_("b# @#%5@", #-! GHjHIH *E0D4D!H(Da(H !E(=G#."c.C"G0JtJ JtF0 F4 F5 JFuJuFr>G(D"tG$pb#_("b# @#%5@", #-! GHjHIvH *E0D4D!wH!Da(H !E(=G#."c.C"G0JtJv JtF0 F4 F5w JFuJuFr>G(D"tG$pb#_("b#t @#%5@", #-! GHjHIH *E0D4D!H"Da(H !E(=G#."c.C"G0JtJ JtF0 F4 F5 JFuJuFr>G(D"tG$pb#U_("b#D @#%5@", #-! GHjHIVH *E0D4D!WH Da(H !E(=G#."c.C"G0JtJV JtF0 F4 F5W JFuJuFr>G(D"tG$pb#%_("b# @#%5@", #-! TGHjHI6H *E0D4D@P Da(H !E(=G#."c.C"TG0JtJ6 JtF0 F4 F1BPFuJuFr>G4Gb#_, GgH! qED<IpEaKJPI AEIWB #"q Fp FrtKSuJtFrWBG(D"tG$pb#_("b# @#%5@, #-! 4GHjHI0D4DG0 Da(H *E !E(=ï#."c.C"4G0JtJ0 F4 FG0FuJtFuFr>G(D"$tGpb#_("b# @#%5@!, #-!H TG6HjHI0D4D@P Da(H *E !E(=ï#."c.C"TG0JtJ6 JtF0 F4 F1BPFuJuFr>G(D"tG$pb#y_("b#h @#%5@ , #-! GHjHIH *E0D4D!H"Da(H !E(=G#.GC.scJ#JSF J0 F4 F4 JFtJTFC>G(D"tG$pb#K_("b#: @#%5@ , #-! GHjHIH *E0D4D!H$Da(H !E(=G#.GC.scJ#JSF J0 F4 F4 JFtJTFC>G4GLb#_TG, GG b#gH# D<#-TGjHGI#IqH *E#=.PJF>L#"u_GX4Gb#_- 4Gi'I E=G\4Gb#_, G($"\TG b#\_0@ GH@b#("Y("TGu @x"($BtG,D)v IbCBZk0@E@Y \-Y,C!TGH IGH=<` H#-  E*=4GG]] }(08ݤ@HP=X]`p#kɠ0HDDɰ9(0H ?E  E(Jɠ0HDDɰ6(0H ?E  E(Gɠ0HDDɰd(0H ?E  E(uɠ0HDDɰ(0H ?E  E(ɠ0HDDɰ(0H ?E  E(ɠ0HDDɰ(0H ?E  E( 0 I?D0D $(0K ?E !E(20KFF0JGG(0K?D0D(,0JGGI0K _E AEI`r0KFtFrdp#G~^^ ~(08޴@HP>X^`~hpx޵GGG$.D.G"0JR PJG2FGGG G G G G. " D.JR DJF $. ,4J@ H" F D.DJ @,D"H $. 2J .JGD.j . $" ,B$ DJJ@ HRBF`B.D C.@JV JF$ FWD$.E. JT J< 4FP F.G.JU J2 FI<.?$.JQ JFCB.2".JV JFC: .",J@ H"2"FC1.!2,JA 5H&"FC) ".%,J@ H*2"FC!&.)2,JA 5H."FC *.-,J@ H22"FC..12,JA 5HFC 2.5,J@ HFCG;G."5$ "J "VJ0F5$."!J J  D.TJ @ ,H $,$.G6HQ 6J1D G."C.4GJR CJFC @#..5JV J6FC G@ SAFETY013.A!  [EVERHART.JTDEMO]FIND.EXE_A;1;1<:p#,4GPB#H H."#.GGJ6JB@ J G G_.r# "0 @0 @J0 @F. ByJ/0@0 @XKG?R/[KDG" ByUK/"0@XKG?r/tKF BzJ7/"0@Y7K B:G7?r/A#uKF/yJ0@XKR"G?_$.d/"$JtK1B'BK 6"G_/ "KGC @tKr/"0@[rK0BtGr?5.6J$F6@ @{4JT/U"0@0BZTK[GT?.JDF)  @{TJT/5"0@ZTK @[GT?.0BJ$F@/z!J0BXKw#G?0@"G. "J BF .xJ0BW#TJ0@F>"_PaH@B#"P-P!G;?KTGaGHb yZk-4G!v H YGG-vISG#."P "#J G\@G"GX@H B C8vKF 4G=GP"GH99v K 6-"P"GI6I?@G!"G;@ӷ BH CF8vK4G P"GH99v K -&"P)"GIVI#@G1"G@ӷ BH CF8vK4GP"GH99v K -."P9"GIvI@GA"G@ӷ BH CF8vK4GP"GH99v K -"I"M"II%L/,,I#.LC.VKA 6H0JR PJAG2FCCBM.P.CJW JFCtB`P4GH8vKGP"GH99v K #,!P"D"-HH4G -$.0vJI2J APGH5vJC/"Ld"y##WK}"@K$@L.O/y-|#,JX KIA 9HFECC3@ }C.#.VJQ 6JQFCqB` P4GH,vIyGPGH0vJr."I"!J# JID//TK K A #/!K B PB4GHR2v@J@YGP¦GH֦6vJR#.c"!"3J!v J ..C// JU JWKX KFXG PC@#/.-KT J4G B P"4GH!!v H 0PBGHR2v@J@*c.""a!vJe##`J*`-./D/a.Id.U JK EZ WK,IJP JG E F C CAe#,hC.9HR YJ2DCA PH vH4GP¦GH֦6vJ#.c""#3J! JB .D/..JZ UKJFT J7JFFCD.$/$,.DJY $K,HYFV J2BJ6DAFC d.!$.dJQ $JqF`01BiC/l.i"m#UKT JTGCBm.p-JM I F C BP"4GH99v K PGH,vIC."$ "VJ!@JP@$.d.D/.!JS aJUK3FT J1"JTG:FC /.$/-KP J-KGL I8K,GGC .!D.JR DJF11 Bd.."D/q".dJq-T Jt-UKtFP J3bJIM IPGzF E C1qBAu/u##x,K@ HGC B PB4GHR2v@J@\P¦GH֦6vJV.# ""!Jc"J".C/JMK A .J B`P4GH,vI=GPGH8vK6#.###""9J #D.#,VJ4H 2@ .J UB@PB4GHZ:v@K@GPGH-vI."$d"##J"6J $-%/#..IX K9JV J E6F ,B #,C.4HR TJ2D A P4GH5vJPBGHZ:v@K@.!&""JC"VJ &d.'/#/#.pJX K6KQ 6JxF1G 3C .-JL IF tB`P"4GH!!v H PGH5vJ-C##"!IvI!(.)/.#/JX KJY 1KFF BC.c.LJS lJSF B@P4GH4vJGP"GH!!v H C/"#"!UK@K!@ .!/#/.JX K1KV JF6G 7C c..lJP JpF B`PB4GHR2v@J@GPGH4vJx.# 2D##"J!J 2-3/.#/IX KJY 1K EF B.. JW JF APb4GHs3v`J`VPBGHR2v@J@P#,""G4HG H" :/ UG.:KV J6G Z#B-C.B"Pb,.IHsP JHT J ED3v`JE4G`BGxF(4G&.# ##GJ_"3-#. GIQ 9J E C G<D.<"?./U/PJT JP¦KZ UKTFGCCk@H֦4G6vJ-##/ 0A"IX K E C APBGHZ:v@K_CWGG4G#,C"#H H .JJ#.#J J c.rJ`JY`/ $/"4 KY 4K:JGwK GWG."4. G]GJQ !J3v^JFvSJvF/T/KZ WK5HGaKFGN..n""SJJ:" PB:./RBGA4KB B@WB"/GKKpG<5C1UC)"<c }G.. cJV JwcJUJF>F>]] }(0@#kG#TG~^^G~ (GG{#GG4GTG @@ "`. J @.tJGS qJRQJuFTFq>Q>?"#_"G1&J/ H.yH2FJX KWJGF?>GHrCsBS@ qCt,tHB@`.xsHWJF>G]4G]} (0#k4,B@ qCA 4H#D. sHW JF>G#  ~TG^ Q.G1, [@J({A HAFCQZkG] #kG#TG~^^ ~(0GGGG4GPb#G ]@ BC4G(bRZk0@G4Gb#@$. $ . HrH@BQ !JHbPJ3FF!>>TG= . "/JX KFCQZkc G#,, HpHA #H@H1DD#<<4G]] }(0@#kG#TG~^^~ (0GGGGGb#G4GGM@ `H .r`H.Q JPJ3FF >>(.." HV JwHUJF>F> @/ H /{HGZ @KY KCG;G @? ?]]} (0@#kG#0 ~ "^G^ G# G ",p. .HS aJ0,U J0BD^0H8bG5DCC"GGnZk B(bG4GeZk]G]",."HP J] 0#0DCkG#0 ~  ^GGP.p.G [AJS aJ({SFC}"nZk= G] #!.A.!JR AJ2FCkGG]G #k#TG~^ [G({="cGZk=G]D #Gk#~^^~ (G0GG!v H GGG4 @`b#4G@GtGB#0vJbCGZkc#v`H@,@H<GG]]} (0#k#G~TG^^ ~(08GGGG`b#4Go@GBGbG=4GmQZkrH4G=G1Jb#2FC0vHu@CBGb4GZQZkBGbGGtGZkG]G] }(08@#kG#tG~^ G [G({=/0vJCiZkG/vI@.PJ>] 0#k#4G~^ ^(0GGG0BG8b=QZk?&2?J BsH(b?$=SF ="TG'eZkG] ](0@#k#TG~^^ GG0B8bEZkC4G B(b$"dZkG]] 0#k#4G~^^ GG B(bEZkC4GBb$"dZkG]] 0#k0#G~G^G^GG"@BGRZktG="pBPBFBxb G$]]"QZktG`Bhb"0="]"]OZkG]]#kG#G> @hGG~^G^G~GG8=pB"RZk } B$]""D(4 @bG,=GtGQZktGB"b@="]"*OZkTG BG(bGdZk4G8}c `=?@B ]"b="tGpQZk} ]=#v`H"v@Hb@` .qHPJF>G]@r.tRHSrJtFr>G]G]} #k. HP JF>r. RHS rJtFr>#G> @hGG~^G^G~GGGB"QZk4G"D t @$=`G]_B BbL]"H="GtGQZkH C"4G@G"4G4GBGC4G7G B0"GGvQZkG0 0=("4GB 4C"@4G/B]`8]c `4G/ ݢB B <="b@]"tGPZkB"bP="]"tGuNZkG]]}0#k #G> @hGGGG~^GAG"1QZk4GD @$ }B@ݲA"a0="]"tGGNZkG]#k0#G~G^G^GG" B QZktG="PB0`BFBXb G$]]"PZktG@BHb"0="]"NZkG]]#k>C~ ^(^0~8@H GPXG(@MGA=G2BB"QZkGGG =C/KtG@A0MXmOPM=8-PZk(ͦ=,G (^0~8@HPXCk.W JGTX `PPhpxP0@ 0Pp P p  @ p @P`p  @ 0  hpx@`p0@``P @ "" (@DECC$SHR@LIBRTL@ LIBRTL_TV@LIBOTS@ SECURESHR@SYS$PUBLIC_VECTORS*[EVERHART.JTDEMO]FIND.HLP;6+,! .-/ 4N-&- 0123KPWO'56Aڗ7ϫ89GHJ1 FIND  FIND [device-name]  H FIND is a utility to allow you to display information about a file, H based on information stored in the files header. FIND operates in H one of two modes, it either displays information read directly out of H the index file, or it asks the disk ACP to return header information H to it. The first mode of operation is used for general searches, and H does not necessarily return the most current up to date information, H as there may be many header@ SAFETY013.A!  VERHART.JTDEMO]FIND.HLP;6_A;1N-B>s cached in memory, and thus out of synch H with the index file. The second mode of operation is used when you H specify a /FILE_ID or /FULLNAME qualifier, giving it an explicit list H of files to work with. In this case it asks the disk ACP for the H headers, thus getting the most current, up to date information H available, if possible. Note that in either case, the index file is H opened for read acces, thus to use this utility, you must have read H access to the file [000000]INDEXF.SYS, and if using /FILE_ID or C /FULLNAME you must also have read access to the requested files.  H FIND takes one paramater, the name of the device whose index file is H to be searched. If device-name is not specified it defaults to H SYS$DISK (your current default disk). It correctly handles rooted 7 device names, and can handle multi-volume disk sets.  H You may limit what files will be displayed by using the appropriate H qualifiers. Most of the qualifiers that affect what files will be H displayed allow a minimum and maximum value, if you do not specify a H maximum value, then it is assumed you want all things greater than H the minimum. If you want a specific value, than you must enter it as + both the minimum and maximum value, i.e. $ $ FIND/ALLOCATED=(1497,1497) > would display all files with exactly 1497 blocks allocated. 2 Examples H The following examples are meant to demonstrate some of the uses of  FIND. 3 ACL H Suppose you are going delete a user, and you want to be sure that no H one has a file that specifically refers to that user, you could specify: = $ FIND/DISPLAY=ACL/ACE=([USER1],[USER2],PROJECT$P001) H This would display all files (and their access control lists) which H had any ACLs that refered to the uic identifiers [USER1], [USER2], or ( the 'project' identifier PROJECT$P001 3 Activity H Suppose you wanted to get an idea of disk usage, you could generate a C report showing all the files created in a specified time period: 1 $ FIND/DISPLAY=(CREATION,ALLOCATED,USED)- & $_ /CREATION=(YESTERDAY,TODAY) ( would display all files created today  7 or all the files modified in a specifid time period: : $ FIND/DISPLAY=(CREATION,REVISION,ALLOCATED,USED)- & $_ /REVISION=(YESTERDAY,TODAY) ( would display all files revised today 3 Big_Directories H Suppose you want to find all the directory files that are bigger than  50 blocks, you could use: ) $ FIND/DISPLAY=(USED,ALLOCATED) - < $_ /CHARACTERISTICS=DIRECTORY/ALLOCATED=50/MATCH=AND H Notice the use of the /MATCH qualifier. Normally this defaults to H OR, so that if any one of the conditions are met then the file will  be displayed. 3 FID D If you know a file id, you can display the info on that file via: ( $ FIND/DISPLAY=ALL/FILE_ID=(1,4) H This would display INDEXF.SYS [fid = (1,1,0)] and 000000.DIR (4,4,0). F Note that only the first number of the File ID should be specified. 3 Fragmentation ? Suppose you want to know how badly fragmented the system is: 2 $ FIND/DISPLAY=(EXTENTS,HEADERS)/HEADERS=1 H would display all the files with more than one extention header, of H course, you needn't wait till your system gets that fragmented, you 7 may have a different idea of what is too fragmented: 3 $ FIND/DISPLAY=(EXTENTS,HEADERS)/EXTENTS=20 = would display all the files broken into 20 or more peices. 3 LBN H Suppose you have a block go bad, you know the LBN, and you want to # know the file which contains it:  $ FIND/LBN=19500 . would display the file containing that LBN.  H Another way (is this cheating?) would be to search for any file  marked corrupt: + $ FIND/CHARACTERISTICS=FILE_CORRUPT  < Perhaps you want to see what LBNs are in a specific file, / $ FIND/DISPLAY=LBN/FULLNAME=EXAMPLE.TXT 3 WASTE H If you want to know how many blocks are being wasted (the difference 8 between used and allocated), you could display it via 2 $ FIND/DISPLAY=WASTED/FULLNAME=EXAMPLE.TXT % Or find all files wasting space... ( $ FIND/DISPLAY=WASTED/WASTED=100 2 Input_Qualifiers H Besides searching through the index file directly, you can select H what files will be used (and still subject to the "selection - qualifiers"), via /FILE_ID and /FULLNAME .  H You may search through all the index files in a multiple volume set H by specifying /VOLUME. This is especially usefull in doing searches H based on LBN, ACE, and ACL, as one or more of a files extension H headers may reside on a separate disk, and extension headers which / are on their own would otherwise be ignored. /FILE_ID $ /FILE_ID=(list-of-file-id's)  H This allows you to display selected files without the overhead of H searching through the entire index file. This limits the search to H only the selected files, as indicated by their file-id. This H searches through the index file to complete the file-id, then if the H file-id is valid, it asks the disk acp for the header to this file, H forcing the information to be as accurate as possible. If the file H id is no longer valid, it will display the file header as stored in H the index file, with an asterisk in front of the file id (if it is H being displayed). Note that if the file id is valid that you will H need read access to the file requested, as well as read access to the  index file. /FULLNAME + /FULLNAME=(list-of-full-file-specs)  H This allows you to display selected files without the overhead of H searching through the entire index file. This limits the search to  only the selected files.  H This requires read access to the requested files, but does not access  the index file. /VOLUME  /VOLUME  H This forces FIND to search through all the index files in a H multi-volume disk set. This is especially usefull in doing searches H based on LBN, ACE, and ACL, as one or more of a files extension H headers may reside on a separate disk, and extension headers which / are on their own would otherwise be ignored.  H For example, suppose that DUA1 and DUA2 are set up as a multiple H volume set called MULTI$DISK. If the file TEST.DAT were created on H DUA1, but half of TEST.DAT was placed on DUA2, from logical block , number 100 through 500, then the command: & FIND/LBN=250/DISPLAY=LBN DUA2: H would not return any info on TEST.DAT, since the first file segment . was located on DUA1. However, the command: H FIND/LBN=250/DISPLAY=LBN/VOLUME MULTI$DISK ! (or "DUA1", or "DUA2") H would report that DUA1:TEST.DAT contained the LBN 250. It may also H report some other files as containing LBN 250, since each disk is H being searched, hence you would want to display the LBN information, H to be able to determine which file was the one you were really  concerned about. 2 Output_qualifiers H You may redirect output to a file, via /OUTPUT, and you may choose H what is to be displayed via /DISPLAY. By default the full file name H is always displayed. The only way to disable this (should you so 7 desire) is to select NOFULLNAME as a display option. /OUTPUT  /OUTPUT[=filename]  H Controls where output will go to. If qualifier isn't present then all output will be to screen.  H If qualifier is present but a filename is not specified, it will  default to INDEXF.LIS. /DISPLAY + /DISPLAY=(list-of-display-keywords)  8 Controls what will be displayed from the file header.  H All off the DISPLAY keywords are negatable, so that you could say: H /DISPLAY=(ALL, NOLBN) to get a listing including all the header H information except for the list of logical block numbers. By default H FULLNAME is always displayed. If you really don't want to see it you  must specify NOFULLNAME. s ALL o@ Display everything about the file (except negated items) ACL i ACCESS_MODE  ACTIVE_RECOVERY_UNITS  ALLOCATED s ATTRIBUTES  BACKUP_DATE a BUCKET_SIZE  CHARACTERISTICS  CREATION_DATE n DEFAULT_EXTEND_QUANTITY N DIRECTORY_FILE_ID t EXPIRATION_DATE e EXTENTS c FILE_ID L FULLNAME (The name as returned by the disk ACP, if possible, otherwise M it will return the name in the file header preceded with [?], tN and on the next line it will display the name of the file that ; this files backlink points to, if possible) s GLOBAL_BUFFER_COUNT HEADERS  HIGHWATER_MARK JOURNAL r LBN l MAXIMUM_RECORD_SIZE ,K NAME (this is the name as it exists in the file header, this name may lK be different than the name returned by FULLNAME due to multiple iK links to the same file, esp. when selecting based on /FULLNAME) m NUMBER_OF_REVISIONS f ORGANIZATION  OWNER_UIC  PROTECTION  RECORD_SIZE h REVISION_DATE IN TREE[=depth] (This displays a directory tree [up to 'depth' levels deep) TYPE 6 USED (displays blocks used, and first free byte)  VERSION_LIMIT t VFC_SIZE  WASTED_BLOCKS 2 Selection_qualifiers /MATCH  /MATCH=(match-option) f H Match-option can be AND or OR, and signifies wether a file will be H displayed only if all criterion pass (AND) or if any one criteria 0 passes (OR). OR matching is used by default.  example: Y. $ FIND/CHAR=DIR/OWNER=[USER]/MATCH=AND + Display all directories owned by [USER]. o . $ FIND/WASTED=50/ALLOC=100000/MATCH=OR  Is equivalent to: % $ FIND/WASTED=50/ALLOC=100000 iH Which displays all files wasting 50 blocks or more, or which have & 100,000 (or more) blocks allocated. /ACE * /ACE=(list-of-identifiers-or-uics)  H Allows you to select files which have an identifier ace containing & one (or more) of the specified ids.  example: c? $ FIND/DISPLAY=ACL/ACE=([PROJECTS,P001],[SYSTEM],BATCH) H Would display all files that referenced any of those identifiers in their ACL. N/ACL /ACL  @ Allows you to display all files that have an ACL of any kind. /ATTRIBUTES f1 /ATTRIBUTES=(list-of-attributes-keywords)  H Allows you to specify what record attributes a file must have or not  have, to be displayed. T * FORTRANCC Fortran carriage control * IMPLIEDCC Implied carriage control ( PRINTCC Print carriage control ) SPAN Records can span blocks example: .5 $ FIND/DISP=ATTRIBUTES/ATTRIB=(FORTRAN,PRINT) hH Display all files that have either fortran or print carriage control. /CHARACTERISTICS ; /CHARACTERISTICS=(list-of-characteristics-keywords) o H Allows you to specify what file characteristics a file must have or  not have, to be displayed.  4 ACL_CORRUPT File contains corrupt ACL 0 BACKUP File can be backed up > BEST_TRY_CONTIGUOUS Keep file as contiguous as possible 9 CHARGE File space is charged to owner u- CONTIGUOUS File is contiguous r. DIRECTORY File is a directory < ERASE_ON_DELETE File is to be erased when deleted = FILE_CORRUPT File contains suspected bad blocks d2 LOCKED File is deaccess locked 4 MARKED_FOR_DELETE File is marked for delete / SPOOL File is a spool file 5 READ_VERIFY Verify all read operations h8 WRITE_BACK File may be write-back cached 6 WRITE_VERIFY Verify all write operations example: e- $ FIND/DISP=(CHAR,FILE_ID)/CHAR=SPOOL N Display all spool files..  ; $ FIND/DISPL=CHAR/CHAR=(READ_VERIFY,WRITE_VERIFY, - e< $_ NOFILE_CORRUPT,NOACL_CORRUPT,NOMARKED_FOR_DELETE) H This displays all file that are set to either read or write verify, . but aren't corrupt in any way, nor deleted. /JOURNAL + /JOURNAL=(list-of-journal-keywords) a H Allows you to specify what journal attributes a file must have or not  have, to be displayed. s ' JOURNAL This is a journal file v+ AIJNL Enable after image journal s+ ATJNL Enable audit trail journal l, BIJNL Enable before image journal - RUJNL Enable recovery unit journal b: NEVER_RU File is never accessible in recovery unit 9 ONLY_RU File is accessible only in recovery unit e/ORGANIZATION w5 /ORGANIZATION=(list-of-organization-keywords)  H Allows you to specify what file organization a file must have or not  have, to be displayed. u  SEQUENTIAL  RELATIVE INDEXED r DIRECT example: t $ FIND/ORG=INDEX  Display all indexed files. d  $ FIND/ORG=NOSEQUENTIAL c$ Display all non-sequential files.  # $ FIND/ORG=(INDEX,RELATIVE) : Display all files that are either indexed, or relative. /TYPE g% /TYPE=(list-of-type-keywords)  H Allows you to specify what record type a file must have or not have,  to be displayed.  ( UNDEFINED Record type is undefined + FIXED Records have a fixed length .@ VARIABLE Record have variable length - stored in the file G as a 2 byte integer storing the record length, followed lG by the record, possibly null padded to make next record i) start on a word boundary. h+ VFC Variable with fixed control @ STREAM Stream format (unix-ish, records? what records?) A LFSTREAM Stream format, records are separated by line feed iG CRSTREAM Stream format, records are separated by carriage return example: 7 FIND/DISPL=TYPE/TYPE=(STREAM,LFSTREAM,CRSTREAM) H Display files having a stream format of some type. Note that this is H in effect an OR search, a file must have, or not have, only one of  the types specified. r/ACCESS_MODE 4 /ACCESS_MODE=(list-off-access_mode-keywords)  H Allows you to specify what access mode a file must have or not have, H to be displayed. Note that I am not sure if VMS even uses this... H As a wild guess I would imagine that if it does use it, it would only H be for open files, and the header would be cached in memory, not in H the index file, so it probably could never be accessed except when an H ACP QIO function is performed to get the absolute most H current/correct header, as is done when /FILE_ID or /FULLNAME is specified. , USER  SUPERVISOR  EXECUTIVE T KERNEL /CREATION_DATE /CREATION_DATE=(min,max)  ; Display files created between the 'min' and 'max' dates. , example: w2 $ FIND/DISPL=CREAT/CREAT=(YESTERDAY,TODAY) # Display all files created today. e/REVISION_DATE /REVISION_DATE=(min,max)  ; Display files created between the 'min' and 'max' dates. , example: hC $ FIND/DISPL=(CREATION,REVISION)/REVISION=(YESTERDAY,TODAY) f/EXPIRATION_DATE " /EXPIRATION_DATE=(min,max)  < Display files expiring between the 'min' and 'max' dates.  example: G $ FIND/DISPL=(CREATION,EXPIRATION)/EXPIRATION=(YESTERDAY,TODAY) l/BACKUP_DATE  /BACKUP_DATE=(min,max) @ SAFETY013.A!  VERHART.JTDEMO]FIND.HLP;6_A;1N-c ! = Display files backed up between the 'min' and 'max' dates. a example: t? $ FIND/DISPL=(CREATION,BACKUP)/BACKUP=(YESTERDAY,TODAY) /ACTIVE_RECOVERY_UNITS ( /ACTIVE_RECOVERY_UNITS=(min,max)   1 = by RMS h 2 = by DBMS  3 = by Rdb/VMS L 4 = by Checkpoint/Restart ( > 4 = by other recoverable facility /ALLOCATED  /ALLOCATED=(min,max) /BUCKET_SIZE  /BUCKET_SIZE=(min,max) /DEFAULT_EXTEND_QUANTITY * /DEFAULT_EXTEND_QUANTITY=(min,max) /DIRECTORY_FILE_ID 8 /DIRECTORY_FILE_ID=(list-of-directory-file-id's)  H You can use this to find all files that are (should be?) in a H specified directory, so long as you know the file-id of the directory. /EXTENTS  /EXTENTS=(min,max) /FIRST_FREE_BYTE " /FIRST_FREE_BYTE=(min,max) /GLOBAL_BUFFER_COUNT & /GLOBAL_BUFFER_COUNT=(min,max) /HEADERS  /HEADERS=(min,max) /HIGHWATER_MARK e! /HIGHWATER_MARK=(min,max) s/LBN  /LBN=(list-of-LBNs) w/MAXIMUM_RECORD_SIZE & /MAXIMUM_RECORD_SIZE=(min,max)  A Maximum allowable record length. 0 means there is no maximum. h/RECORD_SIZE  /RECORD_SIZE=(min,max)   Longest record length. B/NAME N /NAME=filename  H This allows you to search based on the name stored in the header. H Note that this is slower than using /FULLNAME but is usefull if you 0 know the name of a file but not its location. /NUMBER_OF_REVISIONS & /NUMBER_OF_REVISIONS=(min,max) /OWNER_UIC ! /OWNER_UIC=(list-of-UICs) U 9 This accepts any valid UIC. Valid UIC formats include ! [octal-number,octal-number] ! ] [identifier,identifier] e  [identifier]   %xHexadecimal-number /PROTECTION I9 /PROTECTION=(SET=(protection),CLEAR=(protection)) l H This allows you to search for all files that have specified H protection bits SET and or CLEAR, for example, to find all files that C are world writeable, but not world readable, you could specify : 4 /PROTECTION=(SET=(WORLD=W), CLEAR=(WORLD=R)) 4 or just all files that are set to WORLD:RWED, use /PROTECTION=(SET=W:RWED) 7 or all files that are set to owner not readable, use  /PROTECTION=(CLEAR=O:R) S/USED L /USED=(min,max) l/VERSION_LIMIT /VERSION_LIMIT=(min,max)  H Note that this is the directory version limit, i.e. this is set by & the command SET DIRECTORY/VERSION=n /VFC_SIZE e /VFC_SIZE=(min,max) a/WASTED_BLOCKS /WASTED_BLOCKS=(min,max) /PLACEMENT / /PLACEMENT=(list-of-placement-keywords) , 6 EXACT Exact placement specified ; ON_CYLINDER On cylinder allocation desired 3 RELATIVE_VOLUME_NUMBER Place on specified RVN t8 LBN_SPECIFIED Use LBN of next map pointer *[EVERHART.JTDEMO]FIND.ZIP;1+,! ./ 4- 0123KPWO5 6@%߄7BW89GHJ$PK+pw8 n aaareadme.nraIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; l IM,VDAT<%0sL)Ŕ*M)ŴoS¡IMVPROX'b1@0IMVRDT=R0sL)uUMoFk.E{}t"*V qEaȡ1K.-o8o{LaTl_qt~qBiwϴd4\­i!8?^gKϷf3j+cffNE*xLAUH'c $uf"ˬ:ߒ;=V6s5!& k:놣cXQb2?"R8YdQ%*v !L\f|Q+zb).N4cW%6|/gtKs@ڸrȺޖZw{*50cdP') 69=;:Ns9Q?\n(cRB]X$C zCSdLHoGQA6s{ ͩA 8r{(I-ζ[p){Z!qt o7Aqd{$t AFٱy5L Lh~v"~rF=Fj!z GYγ2@Nɺ<nVvTBg|"G+r1megWOZ8 mUͲ;RqXf&J.7[b_'Nv} Hr tD5$֯'({-A0ϛzUZ!]/'#xHx\E,Pv(8jt+'bWZF<qvQ֖&e!:A9.nH PT~D J jSkيMabVAlUL:d?7O%5+M@igyOO-z,_+[]VO//Q+^~PbPKC2Ĭ aaareadme.txtIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; T IM,VDAT<%h[ϼ-κ-9FʡIMVPROX'b1@0IMVRDT=Rh[ϼ-}V]oFKQ'm S( I&-je']y*NJSjÄ"N6+w9QUw}\wi)|Yj؃P߁#\>!'٫QR˥]km_rN;rYZxMWo΀ VSBldXϖQe/ &Vp𱺓/KXgVw!%gVUGYDxXտq)hW$+DڦH\:KqjsNJn66Zc}ۻГ?vfEQ>̅lnV54vrallpBHʑ xJ/ywsIu.H :Tzsk 5IM < H|W}}kwƢiӁ;J480L#3E;?ϖ˷?e"\\#QiZPb:&H~fo.(RrfN3Җm>2`J*}a3GfioDo#d@+? VKbP[>ܼO~z-Ktа̖)IM ;\hK`8 _ëκj4UѡUy,aAIwſPKC=@cld.hIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; DPIM,VDAT<%ؿ-ÿ-TzGҩIMVPROX'b1@0IMVRDT=Rؿ-us5 |I @4uqbId[N2:]bjbV+i׋(ɂ2VpfyN5y99a}SS9\iK2\1_֍!BfuJVZR\h֊L<9/QBeʹieP% NJk;Y23"8pI=i .®/2+2-!G^rϡ۟3 oO@s YnXK'N#E\r˛i8T \rwhv$D`(8 frp")8Ί/(ZK 4[ .ܛ:_S8 #,wWKסvjl:xWueC[_xy ܰ{&^+J65s~'zNc 3z/H QO=]+ހ#'"m%=98½ &zЅw'ӗ?0'l"x 0"Fmcd/ bT;g,+8wZekρv֐ ]Vޏ}ZVêH;ב)d3ҰN4oZvO<^>Isf36["h3=@Q*Úy/mtQ^ tw5ܗ+ͷC . CDU ,{._w%O?V7\ 485*Tc}%s=uMbB L%e6rsTE |SǡwSԹ妔m`\H%bpǻIKUY@~P^*PKCsN1Wcli.cIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; t IM,VDAT<%ӊ-t-TΩIMVPROX'b1@0IMVRDT=Rӊ-To0x!1BזmCH`M(JRfG2M9;鯱n{y Ҭá؈b7&NK^G4m ǽfR2q _(hBI !wHf! &SY'1NbrT6^ȿ/.m&={yb|ۏ&,W5nײR_FV?mJv&(u gn_'}tT,>'Sh:Yh>VC-\zGzAE-UȮ`)֢P(|@Cl=Z$+;6Wk\ˆWثr#p8 +4k6 S[Hv4\ IO>S; tpUdz &*1W{G,M`cʠS۱,rͻ/L۫Ʋzd#Mt#a%*jH\լ"ˉ2UM26. K%0M_ֵ6^M st5DEg;õvgjnOb6 tJ2\kKz{̢#ߵxU4NFmp>)zd#WNs=X̷֍{dgaF02 .O}W·btqFDNV~PKs descrip.mmsIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; PtIM$VDAT<%!_aƤXaIMVPROX'b1@0IMVRDT=R!_a}Uo6>l(6d~pJB5Ct<( %y}\WN 8q`h(ɒ& }N8o(JEyv|CetxX  M1>[b]tZD OTBSRtzSlh ?2n>,n#O15*/;̫P0tskY\n99uk QnszG6_u 3L?cd(N' {>}ܚYR"$8π i=K[#6dxWpν4cqtп`/9xfٕxq T$c_3;= ޫǐ2tid q:}(m)/d|^rCx1fy_ 5LQ }*5IۡER/R4V<Î _$_ |ߏCP?ܯQic}JL3.|ۻ==I~4ۺ-nwŶ j? 1dZvPdt0r)B9.W d:Rl2pC-Fq"[>,ژtɸ'i%;b:XrW2Mʹ.l'niܑ2b ]BjTWpɸA :qNi2#5&B#?PKCHT dirtree.hIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; PIM,VDAT<%-,ݵ-Tl˩IMVPROX'b1@0IMVRDT=R-K0OA_Ep"rB"R}P6D so"MmhHmN`Ñ/.ۇ@(&+Nu_t3s8Ӧ~Ԝڤ^J·Đr&0 *G/iJ)Tc8Y!$o΄"d=Wߌ+_ܧ)ki*Qk3"/\Or"W^?I(绵Kf+K}}5ix9٬d{ʊ`ϊlkJ:[~g\F7BX%M#SÇt2㧻iK&~J0\cL y;a "'PKC3] display.cIMVMSVV6.1IM$VFABPBg@m!ЦIMVFHC,; r_PsIM,VDAT<%lN-|ł-TQԩIMVPROX'b1@0IMVRDT=RlN-< WƑ{c;7q,@0x?6®YvoFaiN0aUZ̬?ދ*ݳ֗ɫB$&߄Y7=jxGXBN!GWd MЊ^a2Y;ݰPmv|ühV0a5N{x8oEa[FkZ_S;j6ji?[Z(bou^Am!JC'[uXM:LHĀ&L+01 `zm.613HK,Rpm(aUP=q=ńiz:5$ {:d-ѐPV4^B222 聝֬IXaAгS`{P\}Ug* ff`祎 3 +p1 `zS?c2Yknc:d\RD>ܸB,QLdž0ۭUL$KZVO н<HfW!v+X`Iḛg:j`(n`aE4V6L3 j_i8{ jgDŊ4L h``Ċ4L hZ.:f[N z7iv1K e5gh̓ q_a!B$4Bc]pTUƓBmwSDR h4as;0enTi9~VD?--p<k^pK߽bck} FkSD:̄W /J%^2h9ǃ|)W%^/ Qoys@[z^/p8OR"wow=ڧI{!;{; {'Ϗހ;ވ1X3xva`6iIe6sx4p.J䃢>5BE7s)bT-?J@珒y4_*;{:wTrm–9]?Ae=qDwxjNOoc}j4\+Gr*p\h\^]d>sG= K!( ~x~Ԫx$μ0#VIrhan;glzeYkk-aKBՒ(d9YC "k3*__#kZ_ /S;ZICҀZVy3 `NUp\c)i)Io6%i*d%h)u)aXP-ZVd@iBv*% =&m~Z>=XD!=.!!yB6]և LPڙ2siPq:W-K1vX0I dAkphվMI &Kdɮ>@t]R@h(`ȗU"am;Ne9Uj׊m~vY4.KL9`\l\z^ SF!ז3o9 J8 #uϥ : %1־puG>|0{@k[̸nPj 1쨮*A0ҤVf\*>\J[5D}&In\_GwuIKkkM661碭 .I3tؐc0ZЂiؐ`1R1Ò(А$^q^K`j>^̱y> QVҵ5JIՊ2H K)p~0sk[IpT8`K&32JO׫Zק -)7L8I[IDxCz%e`?ؖtP|NˉnyI2MKEo^|`ӅJDL(4Ѕe{j[=2r6r3|8=>jlȗgjʝZMz&J:a4bF?ӝ3gG: >y_Qߝ4?Κ4YYRz^h7*Oj ;ۇ]יmguYLS]#]>s(q]}:/_cA>2fC'O6?W]6ŵ_00(V*DrpgDͦݛ% ) XvMVW2–+ɇa ,KX<ɽޮbpNj%:0dKqwNPGVvv 1/kgtqa cnH'+'ԂcVv6(o^`1a3NΓ6Vk,epʢr#TXRtp<(y%4[tʁcGt6;-C0Fx>6mYy\eI;IjV$`l'4&a/diBΞ!T1Ss)Ks;< S@ SAFETY013.A!  VERHART.JTDEMO]FIND.ZIP;1_A;1*%失tWw:Ai>Jt15OĪH?[ot-/|sE(9Rށ *(ݟ6/ԾYօʺPAB^ =='Y鏸}q`'zAЛvq޲GD$r[^jw=/ ~mX\a5og^DzRMq`:wR*:QA0;1_ fyMǿtE*q@O;`~:w_.kc8w{c댽Q }]hfkQW띤H1۪zϤxQ)ڋUhÎ&~2zh"-z20}!ސэSޙd.2_~Q (QR6:|aC,?ڋFM:эi}zIO/h ,*&])oUn&(z<'+Fàs0o^'Oc43D]N@m]Yqx:L{;<>DrQsYְN/th#WUWٶ\,5kajֹM\l9W{$qv?q'Wv5F_*FO +l+#zi)*` vq:Y~hy LZʜ2=\Xôx#Q|Ϗ0 r'lE,{}WYv';ΆIRԧodH1BB&aVhwZr_2kYX(ΐIц2)Gq* t c⅗q1&mRT;\Sݙ;ۤu'R%ڬkj.W\bI}yZkV2K9wPҼe8fh2<9jߨ"L[dpwt ϸyzFh{%rJ~9f"7n><m|7ѥ[5I>xs\U:ɓ xΚC3!aVRlG\_*ydQSxEweUv?Lr$b}6-&gD[8D]8ev=mvĽs1cF2Mu#s&$6p&]^xZAլE`~|&*כ)rVaSFgO ׇ:SoI:=t6GtO;T0Rw?|@kbV?#I|6GJmݦOGU)j+6۾& kL, 2pXg}3qyI4$(E5문`d0^bݚX?b(6װ4g,ѲJ=}ƖW0WSR$Ѻ]s6quB&Pji*&JPc|;m pQ^n ȫ5Yj#U$jOkV\3U"- Hds$3D6]sfH"2-}WymNqUFV]q+4F&'vF A2˅HAoJc[n{_Uj ȗ(z}m77h ))7! R/Dq;KtKw|y5L4ՃŌƕ .`7YiU˪TWVNGQX%:!{cA~ωRE93WO OugE)hDE\`lGQ|j?j2Tj0.-W3F٤A+ I~~Z6 F>zD.#E|Od <69s΢fƃKgQ|f1tEG`R)G7Ҩ`.67s^21I Ma2ס0dڮg+0M5/Uˤ2{9`8']Rնn) {M7]y0^o! 7zϺm0BPgG| 1hp瀠ΝKC)&ޓ31lqY<^Kh.++Ne/FY94ɾ[/v/C̼ ?=R q|;ڷ{hS>Z+H ̔Zk9ӏ2SiZA} +mO5 ^& |`` ,@F(p dF2P=G ʠtiPKCf, displaydef.hIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; < eIM,VDAT<%N-4j-TҴ˩IMVPROX'b1@0IMVRDT=RN-UMk1R(hI =ԧ)RR]iwUk%#il{G,߼7ofƥPrʸ\Hsj!3: mznπ*WAEkBaMF_!; JeY:o3@OӞJEJjT\TOp33 _|9!-鉜Fw7{8<&JhEv"㻇1Xg̑ǥ8p{F$IJ^!B#0a6PE[ǚAl@jUv" M*:$!+VWU TeBs`0 Yw " d_a: Ӷ[ #Vv)>zS}cح?6a}`m8RJj9DWJcj$rb#nfCצh{:gDک /RgkY/\InWNFC1˳ "OhWL.lXoiG%(.CMxlZ1{o\~;͵a~WLFfq= _?jKlun PKC \fatdef.hIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; D PIM,VDAT<%0-R-TfEɩIMVPROX'b1@0IMVRDT=R0-Uo@hM^7btY괟*J;:1rJKǶ1L<&yERO8Oʊf4ëHBv87p$@a0pJ!pl{,;g;Db$-T/ҷ"ð9pFG%V{PN"U>},m^`cEd88oaS (4eRcd/EκP BSq698Gܐ5ixX'l')VfK^xD';<瑐/'d 5g$ `[sH"V,=Xh0;{vTT]i@ED*ϳHG6TKK*YAu8LC5ՄѺH!uSm)1 g˜sE7U弌ҒM@leQ̦eC5 媲8g^/% kۨ G>ޫ)kG  FV (}-E:7sj9J[E9[6TŴVOڲ;`;SM/rqQWxeJT!I ? 3'z=BZS#}C^'\]~? 1QL#|.*P?D {PKCKPfh2def.hIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; <jIM+VDAT<% ۙ--TɩIMVPROX'b1@0IMVRDT=R ۙ-oFO6ɚM֬_si/ !tɀ8&2[*16PTߝ gKS}޻w۝P#B>3#Yp0=؛oZBӛ}{4.α*Eo!B` =L3 sa09mtv1N<Uυ]4=pH,O8]ӉφFh>Ŀ mQ!xvvGk{.x!jj #3߃C3o q+,+KdalŇwp`..K$'L ϝMɕtbw(j[ZJby!aYr+C%[WxTE,SU3ٖvDF WxV@4/.n׷r]pTROt{R9_xB8R\.fFY]ےH_26emy􏶐жpUDr[j(IS]Zh$C<|_qL p=r 5džODGݶ0@KLF8\'F<n4⹾_ 2 Qt+szf{+"?"qG[nEN!1v"L WlfqYnئ1}$yۏ[$Q)V݁K%&PKCBs^fi2def.hIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; <kIM,VDAT<%4U-(ϧ-TɩIMVPROX'b1@0IMVRDT=R4U-K0Ńo|dRA'{y٦CJfkKf:lղwדIF0rp SqX2& +=jid(ʂemB"MНT`3ͤ<10*!|?O@Mw_PZsdG?dČ TJ/*аalIyNd|*$[x]ڿ:uN 5m;nգn] ukD2O>?Vۺ]Q#dcb.TX1أcdi|KV&Tg0BѪ*Rr <]^IE ٨ {՜n;׉z+6\Gl£qel7PKv(JBr fibdef.vmsIMVMSVV6.1IM$VFABPBy@m!ЦIMVFHC,; $uIM,VDAT<%lIŴbIŴ׺IMVPROX'b1@0IMVRDT=RlI]sFg>]jw$qemṅ8 z$b)Yd{Seky$deVontx@zQ Cm>?}O}CgsGcy G{u:\?~{wo0vϾ|͵ ?uۯ@&'<3Z74I[>n}8:m` Z ^đ܂ZWWrd, ?Ͼ.Ϣ4-ed5Z%P09eg~^?jᩉޮ4F__>x7qp5Kg+t~*Z+-<s׸G}2Gډ}ucmNkDB?$F-eʛYkk"0b,ԙ"d Zg 7cџY] ;l7_s~J =XY|dL, tyZ(k_u4:_F>L~JϢ;nj8 9O߻cx[\Ұ/p-Ò{>a3OOb5f-dj.$˙ /_D Fzoh#64eg=u~}Mc99vM@Rۀ8ZkTjjAaMq,_OF%Km±Sah@g_/ %L+ /a^^ =^n8y.zAAWQd#E#\ &}B6;[9 }}cڇ@0u2HÊ)`V>,o*Ixi"C r \h `WAgMVDZEk GS\gT%X,b_TxM:7x#}8'3Rm5GuT(m*gr?< >0Ч_1_E|PT_}þ|Yo mx5N3/k%[Zvl-ٻ-ի$]gp5Ԭ\*^)z ˼'{:>KZ|ŷj-~wlX|XxTmVY|nfŇwj[|ŇS)y3Q;,H5q>O"O{ _5jcf'ڃlI>&QqlX, AJd6Dŀ~wO'b+e3^Pw` #mLm_;[&VWvF!B(Ih*|G̣vTXܻ`y %aWc M̤d#3Qaz,l{"tC +ƻdI[l [q}|.L!;|dȎ6Ǘ20CS4J#A=RXHuc]n,WJ-<ϖ3&|+c[xlmUsBi@/ē/p1ZvQU\V -H MjQeڴޠk oiN-iF{Uk9x( |5Z7Boy9b}ϔu2۪B#awU% Bς~9 >owwkQ1βlWI%SpY`Ϫw ? fa ;+\ vX<ዖ_b}w^JڅZ\.4hi-ȥ3*ROupQW8-~|6_,wu[FxNVW,CP mDrƻ8\ RP ^ t3xt︤K쁔xmfytQdZt>-onVu\ȾU,PůUt:N5$,ZPX% 'Zr&]K)-ymF)dR&HFeb4׆Hqq8pXIk JbHceˡ[͠M*c&X+%6c.' eyQg@Fs6"&h9/lF-/ljTַƬQ}+fMuhL#rd͋4pNVxR2 Z#,K6A$e$VXF V;ih Nֶ4bmW@M# xIomqJ%jkIw.uت>˷?[=*HcjU:2[ e 3 7mY‚4b}R@ɵvKֆڈS*`d tS>Sk ؚyIWmj͉]qE/`ꋎl(̩L, \ (8Pȑ.QjyaeI P(%+Y9Rh$g#JQ #^R:LNἾ#J:+eĺ@P_Arh+/㙖ejV|hZQ͇tI-.X'wH>VGn b5 u*mQ' ._ /ĆG=ȍ-kes8FšVv\,}&ꖡH0BIK")\Кz^$"C2t\=H*-K8`| ˡD.]|sfR9``lm` %UO8I䗲M8A ÑM'Nl٠` \o -IJthwK=b@(NeP>z^^x F*HN—Ab.SmSHc~Aﱌgڤ0\9W#D×*Jv3)OX5]ź48F;mo.7%-],Ke<ācb/%,E.bf>;9a S[te;0EJX>1 1yϲ&^߀ejA.jPڛ.ATJe<p]揆 %xCwx1꨸ɁGVnWqcx06Wr%|{} >nKOn[u~gņ7n M8%fwN҇S[/ $  0[gw?cr]mjo2ْѣ,=SX5W>}9,$\S ^Z- BKH'^7mBxhet))/wn\ /ZEV|B鶕-q܊n:ŧff5:BV[լ1#w35 T!&yDCDԭ]ߩKU7TgQ_/j/J^!5'PK7lwbH/Ffid.cIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; \hIM,VDAT<%PNTzhNTz^שIMVPROX'b1@0IMVRDT=RPNTMo@Tjrh*V"@ڪ$jCeuYx?!1TxoμV"'2 b}>l>iOպ:2ãX|+g`"񞏹sxC87N}}{4FTH@  Q7r"L0H'txa:a*G2JPqk9A]Iz 0BIk͊Ǟ_چ5 e꩷.1dH]_lө6Exugv6z޶Mڽw3ö[/9fi.:!+e&a}wN{c9eO 3Vr^V#S,ܜMff`T5تVr93>Y󵊓HdD+6h ڄb PKpw(4<^fid.difIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; kIM,VDAT<%p$XŴխڣIMVPROX'b1@0IMVRDT=Rp$XK0ϓa{`Evim,N{y1[:Mղ[Nr/Ipg(CGo? $5 9-@ (CGq4:V&39"&v9?@ SAFETY013.A!  VERHART.JTDEMO]FIND.ZIP;1_A;1>8⚽ (ӊb@4Oךoj[;M}gz,%zGtu7egmʊG.PK9uR0find.alpha_olbIMVMSVV6.1IM%VFABPBm!ЦIMVFHC,;(q IM%VDAT<%*e4b$eIMVPROX'b1@0IMVRDT=R*e\ p[ՙGlK q%XwWqY򐬫_RGIHH P'9Bhvò!,l2̘؁h,IWw1Mͬa4 &^rRʮOϹTa6ܴ~NYsAnq-rwMg;*c:%xXPMϡKj)= -__Ky_8-% Jh"_ܒ?UBi);bxx4ю$"p< ZS^k0(%A. Y+v$@Qd=#55J@TM%;rZ^eǒ`8+ SW:dmx[IOJ5LSzfqJ5څט)J+>(I"6+b\f;: V!siL8B>.K`w4NҮΤffM}v!MD1[%T?DžUhZ|x4[*q'|WqLx+EaKD8](h@E 6vM¡\g+I[&|PܚcE` ^S[2,5y_#9r*2@\HEI#,J:;[ĹĮI]~LRtn5½RFWd "&-?F#3X&Jl0dF OL|(uva5|6b-6RRVl&KQKE L[ L{ Lb,E-SM`8M`Td)j.6RRSlڃ3Yb,E-SM`L+6RRWlez L2YV<ÿq?}ǃuiNdx ^Ls,55窫:̝8XP 3zrFsjg%6,I" @;Щ݂)ڧ eh2osmwۤfMےm㗻isgGr7:u'9V`D-9@fً8$w5>!Q.4Yӎ>9W/{F:v̭mWrs[z ۉ^qb|dC0p up'=^ 6B>p3gM5qd:xw3yv`Pwz/f_}uNFxe>tI[>QaE@pxqwa[3&?A)2ދgnq'{Ɍ V[+pfVV2q{ٰ1oU][BҞr- hbX5bhmL ;?1,m(lsTh爉[vDn W6dVq̎Q$3";hVK &[\ xp\dlqQ./_&n&n#cH!n£uĭP;!C1bbho3N4.XjGyvΟۅ&nyRXħ ^j~Zөv]OPl %]f50t7ў0FrmS|brps \y|zk tfl$3gW!/8|/dڂl[4OgB0ޅ'lTa/W[s+ [n;W5U62C1NaW)WI.M[Lħ=YϲR<OӨob2sRG-چ Sׯ%uRō K4hB 0V( [F+?IWt,d҉mX6C'?&4V6XlpD/j_)Yn禂Ղ3tRr ߩ.9*K H3#OוL:>*cef=n?#2@dbd|&ű.>ZۻRe]Mi>RxEYiɱJ+?9#K#<*VVŏбrLjNXY!Yl,qUh2nyJَтh:Rf*۩v׬~?پ֬`ke>|:͉׭yl[wݚ$F~>9?~ /o58I+b1 ~I%'>]J6wE;8&|SXpڲ^#?[A:>3?HOyoJj x6<\1\~抠|A)lmbSSXmBO 6-52p9g@i¶7JTC^iџly6KO+m[[b{,d[cBlgua[J!0g-k]Κ[g0^x:97/V-쬪pP-鰃v1P$G{Ü*?JS5#W{}!$bIҞfBVHD#Z< R}U2fl\/XCD,Kiyynnױj5*b2~hW㨀5h5^ yyE֟8K.N :7ZA0G%}\PJ9I xRކ/xbIC$ǣ#<g$ O"f0MY}ijobi) L O-'š*Dh@Ѭʱg?`G])TofN'mƥUØ%) ÎW JGz; '#uHbf`w|zP2|S`d έ*$ⓔ`S OY+H.$[sŅoN^]8V7'$7;{Nsemuplv:uzP=P{5aG6]:;L aOeNNÙC[0kַ-ywww =l'ͺbJ¶Eh)D-gA]z S 4pJ{SW j0>Dx1"vO 栂-VORζGb(ş`^rJu"S=7 SubboGJ٠ZX /48e c/m_yf# 0 *&tL`4$U30 &Qh 6i&F'9ܧ&xL1-F?k!ǖc=0<7-߬wo}[߷`1Ks(=ido_ҊRMh).O{vu9Qse X'5)Oj][$b- |3,N8wޟ-os@?YwQ^Iknu? -˓5@r̥'ɛmN'|E 9-Zwbr;뭧u-Qp 9_@ňZ[Ĺw ~ 03޶Rm5)0P߭|U6E %/,A md*2awI/y;Bʔ${ggP\mg",.n /jBiVdkY1~4pŹirPvp%0G(As1/R̒cJ"qڸjA1݉,|;[ };A b/a/%;S"GENl%uK,7Z1;碮 5JLJԣSIrh 挧)8 @2=Л"Fӯ9x ;7vlC067WIBXW6;jTaC__-ƺls),*xÁ@Y*hwsƜR[WxN:H/mWu:.Pma,< f]9/N^{Q}h}7 U㊧rl]ozъ{ FH_kҿwؽ*ݗ? X/nbKH:@W-Cε' }adX%|}hM=c)|irF":pTG +AĊ]:IǦW>{jUTI` A]7Nm|XTa<8t=g8Me$={_ޫWz'EY'@M(%2X M7FSp8^%q2H߹q.X1p#;j)y1?NS Ȫr77w@K]0ll#7}$}P,Y#zg=0>w!*Wa-]_x^H:j!`rϚI#\M]V|!PCW)W ڨ8X3⅚9e AFk+*hSnmA}x.cb`/r&gyW :}_y~4[qZ^59{4Ě& g$/ِh}-WpҗH7ʰ% /HN:>+׆|!ҰDbBz2wI^J, c@;,Ҝ-? b5w5?I>NNú6VRIs7(rށE2ʹhETo/a-`wq`;zm&ҸwOi#MnԨjk^Ɇ`AsB:a+PV6f6eڳQn6#b#8b[>Z_LB:ܿ4؎#=˿O$OG>և|cbh?fa.2NL<ȵ??Z+x۷.Њ؇ehAZPЊ%pDE_9hp?[oEKw{#~`Zw ԤgQDUg jЏ2V8V=Gq`/COPmJ:굀99o;=4Z EQP׶X |lH}Q£#ҏ+Dhطf>R4Z6XKu,ٙ 8칂ʡC>Չ(]=RSrԺWߧݢ W}}r_`Y]~%0+GފR?8W ^ڀW%)譈{ʎ'IY (. y)[FCϭX&D0">7ȸ -9.˹ eܭ 眂('Y d`BY |KXH\Ee-[,V'yӅ?e~ Q[C07'i`m)Y@(mGv gF  ʔv9#9=}zngp3I82E8h(+^k7|kܵNP\Ǭ rCϏclaCaHW@$Fj _x/oO>@V[%z䡕5_O 4\&9J9xWr~>fw˖+ ||]]Y-\Uxܫ8(] us DG_`s)Er"r0ԑx _MxHٵoԤ~s[{V)`sqKa[]Kž}GܚA.E|w6PTd &"ҺOFPq{T;h@LNhR8xiu*h]pI+^Z,αKtp$R¾eΖ5h 7H#<]wÂڊ~~AmƓVC6kNfs$}H .;$o&lu G0^`Fi/՝l +w닚7H;O=֣oA\1~}+,WCE s$(kf4Wi8ޡ{a~>w\qB>w@`QiG ٗq-g\SVFh >6/Č^7*7Y(Q*/hܥMqaQsrp->i>!rATR7PvS8,\䓼{MM%t3v-Iw1_e)8?x} ָ)mp!N ʽb x؊8N[|gq=[3|qŸ0o=y<$8`!MGhO{&5U=?.ͅ4u+K~jVQ蓮hړAN$G_/? }\W_H~Z .O1jSÐg^"I8 }ʅ6a=7Pr$h?~oNrϾ/o/Ig^ڂ S5_L:3 vp7 vrTP$KoOkt WkCj#zs 'aooWGZкjDaQEոW+cPR[uҕRSLӾY\h WDž=TC>1_;Ԁ凷æ!=_ˀrO\YWg~"_Ir^ %ðSTS.w s^Cl߿'\g|ϹD_z/]*ƨ]bUe<xۋ=~~/xZD_m2~~Aɿ2gѝF#7n&bf;AbCtqLtVX$?NqUpL ˥6᳚Ϡ1GEh3[od'`D3# y[0> W*e@XM䌱U1A>Ί+':>NO?mf;=9f&< ?mSiMoX{ [FgV}(Ts\*oDg62"VIgD9e1Xz O1ޜ`3 2,|t gA`cb۰v y@jIG I h^b0r~`6c30``1d0E0411O`1x'f쌊g+g$ ag Mፗfvjh/ 99BGȣ! O!;ēlg&xldECfS*fSxZacxlgECw*T=Oj"l '=1N{ &8mxEF+<4#ƒiz0x6gj3=`g#cGݣ a}"Ǣ`cyO߽`G?"lFlMky&85[mqAجL1.6FC8Ÿh`Eӣgҍخ1j/F}D k<.a=-Gy)ÈXޞ dD4)W9xpmeFm*65Nd{<^h"=j<ʞS=HvC"R#ѰM# hzړmc۵WxOi<FF3N*,}>!Rx,KYs:=6GMaKQxl}FaKUxʣ`cyl豅l/ŀm-`;`GS^zTC͙gmb\GمGues[-`s3آ4-;=3sgpPQ2^=zl MpECa4mzgc@8x # hz,>=63&j<]3Q豭dĀm-`kf@~m~ hz>e݌[6`GMd&N)(~AOqMc'hUg4m((IlSF[4=}K1` 2T=<: c 31 S hz #6k؄chUm;Wuk`UiL|R[4Goz{#uF9`" |m4'L,XA J6YJ* Vh'7T{bhM!h"&4aFBь`3f"g#4 CCwoR?C#6*4<Ƣ6JP14TJ`&gDFۄf5Cch7uR"Q{llvu r; <8qxq!Z<ݝm; =>^2AS> M JO-؃X40CmFp r044wt'hM!"1AH rbr,rl&r`hr&Ơ+h1bfc 4 1д@hB1h8r_ @hb9M831 @3M$aEZ3Ҏ 4azJK46,s244wfQGîtm!arۀI[ؤmФeܤ-b;b6Um>\:I[<:%:LƄDjȤmI[3&mMB&m{L ELڎIϴ嚴9Lum uI[I[Ȥm)=a 3&mC&mjm $Ln9LML6`i0ik13iBiBǤIۀIva }6Za &mGum4?]n؍Sr~ZX[Pa J#e4ZmNbh-hi0KchitMmkml33:؆2{'6`"m=n#m9^U4olk 6Ohuvհvv6uӪk[gA:Wĕ];}e[ǶnOn!YΐNȻ];k i;X^^+o!o5]*Q_'*vcsztڐZ{iMh's> h;`)]@Gl8&׬^޿fjAX]n=1kkl nQЎ֊٥@δj/_Ѷmkm[#6v&VSZY``SVCr0䏺 G@ SAFETY013.A!  VERHART.JTDEMO]FIND.ZIP;1_A;1nj>W%k袑M3:}r;Hlb{w&;4JzI)-dpHWwv˻*.&k('^_^k 'Ҭ୪_I C+ rcyq{m[0dok&5oWGn77nk멗v ֈgTnkz<3Yyd5m5WnۼXձݘ S#6K`lQ1r?;2ۈ|xm?;eN .K[>VO{oɧ۔o{^I?CviBC>oȧP|MۧӧoOc|K>B|BpCHxVxV|m2FyS:iv4;].nx|!"Q앛RrDT&POt IG}ߑO#I#|WeFԃSdF^SH!U j Cti3rTI Y他ROcѧSǢ>].ǥm*^F g=: R'@+:TnY#q )z)[e6oޤԒ{<~)q4OˣW`h0nJb[ۺԿ>7s̝kxU~9=s?f܂Y4y?Hb$}>!{(>QviB˞e>Ma]IxkZ %Jaa& fxnnE0N +y?-9Cz;Nhf&/R``IpyH!'?qp0E'4KgaA5f@6h-W+iD9\ɚ9OsV M(^1j8Ё9>^S*}h xZ8&/bx3q ^B3)~! OXR;@üWτ3,J<>jY~vnvo$fЛӐ OZ=2F'LkfhxcvV*” DM'&WZi:#c9G ƂYǀ8eLfL66\x2M3#&|oB䛘0 L#>WL3_Nt`ms`+.~h#1N0J'z=>1чMc@(!@?Ó,|N+83X0/1 } UU$feѼ,'0˜=7aY:?B5G&mC> |4a!yGα ;@!,-Kx^ Ғ<_VCg i:TD=Λ{a+bE\U@Y%-0<ſSD%6wKJ5u|xi`XħZLwXVWdjrՕ}fҞ66->? ˂$ [H_W Tx>E(yQ_;Y4Ev,zK>\\N}Wk/zv̟p:[lX5$8ɋ{Bوqɝr63/ 8c͍Ft\kA~3 k援Ei"G^>x^xS v'$7UA0 JOJX: %=ͻ2A!K s[ҙ`*jLlB9yd6?Ɵ1uM=K/NpZIG1)ؓbd:wt{5^r B4Onz.G5;Gm;Hm\:B ;ZxFz\@&!AeHp'M;+}=i=BZ5WGǠrӳn ^8z8e{vAzEAZ>q*"$%K."ဿIBVDe; P&!R/ơz&f4xoB/ss/c'S$ԈEǫEi#QzxIr̝y:9MxbfeŦIr NΓ,EU㢴49Ryx[H+>%Zl"Vc򓟺ԕ8X'A#wP1u·*W)S/'$?OE>K6~Yk.YQE,-;gde<Q;h?;կBɪBx kGvvǤ'|'uNyM7,Si\lEzO_{z{bܽg%y{1H?HZö́bMߕFLw'mGHW2InFC]hl fr!% 7'#"?JB#PRp+9f5 Ө-V7?7YozV#PG$IwgT/=댥3Pt7M'bĚF2ʅic(QF$͒O ͟~!Oӻ#T8j?k R]iXG%5ڸ%B7,5p4^o* iTWWŒٌ<`vt$t*o%AtӢtw01I2 ":bֈx:#X8b!{ +*fK[n/KwCL8K"(w QX"ZQ *%C46?=9wz[+k=^Zpd2£:Xz7&՗|im3S^ Gq%ѥeTmpǒ0d Ywuw- i8Ɯ<s] HgazEǟ/kcO |8|77%IMq9Ǻw͵s9Bڢt9ǐ<0<ЎPp>Gz`fnphA^5@Isjy]Z0QY@:.{xIn@@M\tIh?0n>W@ >ΙzK<$+jX@qPVq?P#jpyu׶C>;BA]*!й4ܲbC@wH>x+6~?}u6* 5}UF~"|*R[w.>/|W>~geR;2kf hۏwW;H4࿢x (`? ^w\SN0jo9! 8=p.|+`xecd;2^e eMuTq(>xY޼=Oյq +> |>\IY!{P/~#f]Nb```ϯ.}⶯-zpD>-2=$EpmwjdB? YȀfn lm kQ+# .k 'Sr:m$th1@PIgfcm8f)xhjm"]!{{R-ukw4]خe~X ,GT*_ot޽ɭ-0"ʇ4ǡUsJ:1 =Nc SКFZm:ZZ?sk-.Ĺ@)yq!iy6^;K2BrjoT4Ԓؼ׏8*%D_F)@o&-`3%ZK^jӥE=%7/ūBup݈[ }EMɏ^Y ]'Y'_m# ^WEh۟>5>4- d85ͯUu~L}aA1gY_GQ=<=ִX eXN ZSXV ]?>FBum;^! D_1 >>c^[61>|+Q-h%}pu稿x?OV]9 e$~tW65HpsPŠ3ځKyvnh#ځhhêTYm_˟J?V Bm[^:'4kvX8ZtBWV%[>4N\h4+Z j4VQj50\#oKDBmGۂ_[6]@NiZp'%0t9!~n՝Џ/h0X#/xa'뚵1 x!@%ȶjY[!jL:㗒}Ĺ2]2RrߊלwXr|\^`>*}Qp%CGaǰW"P[A(C|ֿ qlġGCAV# fC+H]eP\M'w?o{rwxOZ֑E98=({x@'ᕅdJ{?޽ ȃ4%YI}ɉ8 g{IG$~Ԣd~0˖*Ye00W}sSΛqtt} [ڲh18!략7R@KZ^U;t=XZh^XC#ʽ6[q^Q- _N~V(yM[Zz>4GB[Ej3s-]pE?1i)f`g7C5O_ulY6gs̀;jd(lU r-?E6RuXm%'h@{._KJ4Vo}@![O}d:.[`tO=m)!%#;]$ޣ]?|g/_dX[^/WG;brs2hj\`Îެfn֡)卦d9F\7O4=>mЈ^I|YӦ5c=m+?*Ϙ$aO r$ei!q^+BgLEAh'C/<l+IׁCW|e)0\wLBrQW;#r*֨2#TIr+{OsyOɱ{QAlqi,s$B̟9&IUI UAx_ϰwў#Я`ؚ9>Al8A;l Ϙ$簂NۓRN v-bޓ[ v6PDqfG>@=`#Q螯͎`f'lvr[9` ^T}nr󡸂M !G#ʉ8ja~>DAfPRAl՜Iŝk{ 9)el:f>ɕ/YG޿|6r2#p3ly^>SF~Ns!͊PRAs!!k6b+<`Sy$9lvr6{H6"4`f_Pɑm_aɯշs3&9`j9)cg9m-BΨNoɍ-7< K?`;gWɑ{lXչ|V`m 9ψ-k1@@lpl+fN1IY^ 2άs"pNęᴂNb[yR+ZZZ@;D>zܩiаhAo}'&0آSlTd#] Bv0F|W7w)cid0ݯ{$Yж޽gX=wsMKw䶾OߵS;vW;-;[lovm[w_y][zbbX&ze4]/}>{->o yo\V.WwY>Zho<y8sA,-VyPAa!ɡ L3'/w%E1v]Ya>o§}5cV|N="Eqp!:GDšV8BQq.&:pH;#`k*Z肖Z k(t!<;ۿk^q 9*O$?7U!;w[[w ]s)GƲ Ц$"(;x10.b|dv?{+ΧfD+N0:h Jx.0/ea0R's)Lш9eV'bxNDE YCwqYQT ȇ;xxR8(q$SJYJ΢Z8꣎rLЃcN o.QA}*B̲9FU2(w cz5;eg!\i\V48b?:Nux ~Faq$=KC='"e,3}d'Rbce :9yi|[D[c*Q͓G E)Org0k}LR>KTW>M)E:g=Z)I -Qǜ}n5fְcrko;pY7yxDOgGtΞs%tg1Ǚjχ7t{n}kO];>f& kRhr;젘R}澚W`:ԚtӕN) եhZNJG)akbpc`[ O\dYzu0VNC[~ZH6{h׶Xz"@u; XJp\N ZqH7&bxri/!~Ăq[~Ћ"\BpT@Z% Zg(`4(7*Ѹ%Æh $lYQO@Qht᷁ӎpCe4MIW#D>[3{mQ(NZ{c] >]l(2xP*NGRt,m_|uq1wx=PȆHgZPԸs{xWO3 #DSjHwwf (xNIM%hKéJ-)ܤME6ƺЌiy Ho22%x 5^ߓ䴫9mD)h+;{6FR@m:=.VLw圑|]q*J1R[Z2l6lPC k)FzO7 MASKu3H$Ӻ91Kz@1=D+,ЀZp$E}u[=ԓHg"zBXzYs%Z{#iESs] XG5ȴCEz𩖐xrJ/S"!f!-#N֥&={m RL_GwSyNH4~y6uBzbaQ/}'XX*?Fm)JCe!aM)!` U3*gCj,nIe6RYI| TmPJڜ錥Eg$fmn uIfZFw  MLOzV7hȿ jܩa{8>8xdG6oo8Nbk%3H8-ӰbVRJf"y@5ji)g0jK@J$Ӧ}.U6J"#SY,eek ip.;zz_A鱕,uQDgZP.ִ$5q:DoZTy$dpH'&34ΧP2+њqpE &9Ư>zG#ZVR/6-;Օx1h4>3Ÿ@X,hKcMX`R ɿ2S+ 6;]*4V+,gYc8,L:R= nDgZj!},6=POqOs=S d%f9#?6,],ncL}A$Ke3r41ojdR{cm=T\dHB R huFڄVO,=8ʩqo bbԐkky02K~b4I%:Js|=NqzaOz.gT+Blb^`A"j*LĻD>We]aEP3smD; MLjSSFZ!%ֆ$EfWHXۑ.1ʈKZ;._j&BBiF%Ŧ6R薘>A]^EBS=^nc86fo۱39ߞc]I=Ǯ!cr{9???H:mblW5_B{}78/D^ uHwa q`td)*ڌDq{rJl"Il#[C4ND䷵L#18}cHF~ =Gɑ$;_yМq p֭w03؉8FxM&!|CXGJBY|u"SI }u =(9KNqs "Ve; Jx؊Fبh M'7 M{+vS#_"z∋{yi=g=[96Z ֚@,eyʸG] umnܓcp7z- "ͯ:I%2|&M$ ZCt7:Oe^[[}usIh}--sM ,}B8 7SˆWo_SNJVғ Q1.*.rN6ywȻ>]VWsk1x]a*;lL]0ܛ q8fsɈoG3ȷEf+[g2˂#if ^o3h{snN1ZnFs>0)-tfWirltbhLYz_.ηh'Ō80[ oF(\`LasEi,2bQ̻/QD*mQA9mRRG>~VT(R"Τg/d OaP5Ja'i]'7!FZ6a]q~w%b*`z_Tag<7kPԇo6y{5z_[pM;K.F gBV9aɻwi_4x^ e^^oo:[zH/'?j5Px< ENbޡ;K(0\:HztB$tR/b/(B*{:HO%`^4紓%Dp- W_لcOZ `[aht,[B{{ڽH1_SD%җ\W~ǞG/:hs~/a>zŧbZhej~b%5} Q\MptT(M/?cK:cp,R-mȆ|S87+!fB笉yFXDƦ{J+ >mMc ռ3_XynDΨ ~G3+g"~1-Ԛ%Պ! ;H>T˛=7OmkW^nI~s>9'Bd(Of@ SAFETY013.A!  VERHART.JTDEMO]FIND.ZIP;1_A;1ʀ>v`D9br¤ez{ʻ;WY#T,mo5Ǫ|0DyD},Zh+ я(a(|VNU/Lo%UMV`F; Bh'Fަ(т >WB[1 nݧ2bpxTG_`5hdj]G4z~~95:my6:QhiD.xaG>>HМvpTJIZ-EiUGIߵ0,Y o&#Q2 _%P 'P4%X,!ZY~O,[nxy\>@A(/kt5ߊgm|%v3OXmxw;qV]װ=kRfo3o? =kIoYm8W4d>1 -WPD̆/c!v\U(uk䯢^eߏ<}s/ihBGG^IVʈhLk|nR iq(VIR)eDi~$#vUU6M mqҎH?i xƦuЖke4hskGAN!dπXeNqBv((oK 5S4PO[?neO p+kIQ"}wM`?$uq٪$'K'J?~.Ƚn^+oCuP2UJ'ToV򹍙ss/͏ˣ0gz_*}`&2/ 5é*'v[߻ӦsiIC5~rQn@+].mz L>$|oZܗ]\UArA-ώq1HOTmbWTQ3\ߗEEU@zE'=d t%yXTnŕc_EJX~!_,'HsXcw+ /S )#ܝýNI.35@ƼyL<3\.o2Q0VQɓPȯ m^uq_ctźHe)ETNHe7Wq58&u~a0{4[wooΏ[=/k76 AE,O땛?싗kGr-’nyz}pjٷEIE]KYB\нx(&W{+0[ F3/S_?L&鐤B/TI[e|]Q#i;IA$\jMix0ՅC(3A0Bz|0LҊ+&C$/aJ:h,: J[)uhV+*栄=}y׆DlgX'ʶ;q _leZk:ʴ(ӆQF6rl<K;3+ MEiGSrM-rhʭrO~L7yt r(RF]pm8vcN$.,ƶwM.#ƶd2hskG0w- f1O=ghğ]ZH>0&#y#yK|:$/?S{|qȽd`z\;qbY *>{_DiO..j>O:eݔza&Χ}P2M{a,9yR*ޯj6"FŃ8QM_sB+ъ!ۧA+db2\;Bii!<9[lpae.cWeGgW8h'5sa#5vҗ֐#fBFE7Q,|!}ᢚO7>c 9{"ec׾uf^gjZGjR̫8ҡ+F,yW]⍞vMiue6n&Y;?&2l|֖*Uuo ޫ%4#D4{Fyp@*#вPoDNejJa Yٮ-dtjdOk7㷔]ucnCOcYo 4zDvQKahn'qZb%T;vlONW>^%WIU{{{jMW@_h/V4δx79J*yԉ+~kcw+#b62[Fe|dsMNo(N\|qgU})shGauzq=#95T#Ÿjȵw, S9U j-65fK3ۘ' [5ܾpli}keHȈ5@lﻗ*ȂnJ׏_!Yʧ|Z3jg(ΨqAFZQQB6wd^&g^8  =:3_cyr:fv6T#ILN6$]%Qʷ$;Fh툔-jYXS vhFY:t^HQNtaU9P-U ~ b6Z9R෌C' kͱg1bfǻy)8+j{C޳Iq5Lq.|: dy5S/L&F+(l9KZ4rXh^\(.7m][Lkgw컡5Fo.q:զh+ƷM>8k `|ڂ' [f$L7Xf2.jBټ~iOBlwfds¦Zsi]ԾHHvFoO&'˛ZM vJu"mvuXmϗg0b8o/uuEs娘 \|"FYTyNMG>KJxbu:U;[K4ڼØIغ{4wY'cVV Iغc+ݤ5◤G)']yEm"9 b y?\:}{a&*!wr[O;Un TOpNJ[w@hAbz'38pF@xi<{gCAW h N9(rӳ/絚z ct/"Ƀi]:#q*0,?y-d̝.bBa@?Ma/Y8uY:Y»~Q^ݔ v 2W↌|q9,ԡ74(K\F-jsbujsΈT r -` bg(ky2~ޔ#0kf8AZē:5 렴)Ne?z;5;RGZ[WK>Y[z.Z".s?rD|C&1uBl˘kN1;_Uꢢ@߱X˹^]a0-\8/<9]43׿΍[ah)̰XDže'l MV3b-zO_'8izGi(2ۏv},sOLCx1`9˹!P O8ñ 5b7٠x9ƞO)9Ǘ,ּRbfulA8p"ZIV,ή=m qQs0 #jGN&ߩhç3h,&diFVsgE(j1 ^4FUɬn+is5wT lA /Я('( 8{Y~'f"j?ZBχ z=_h#rc>QvBWR\xIXSy5sޅ(H4c煘77\މ*1vTb TPqQT2,>YX5Iݚvڣ"Z.Ę;b'J!f')bdkc7ћGcBS3z|'=htaX4'r&imU*Zd[[Ԃrid/(WPLDi›,b!F"-4r9XW/JY: =1M=wj,MS9Ef% ~w v$!$C/: B|&-ZyI̛^yiOi0Ns z O_֪Ѷ,Mm-MmodiMжJ=UoWam.YA z436@.eP$XkZ"*E;chJye23GfӘVL#l̅l M \`Ls/v֮sum(kXVG|YԄɟAG`FG!⨆ m4f]&SB:['fEߑw2d_ƒ];d/RaCOhFkXգg%u.$-p~w>#Pl{,H'^qUt̓;VquQ"p\i΅Hsca{)bKldٱ-{mY6}UrŞ;\qܓ,xGd*;%g%!Zu6:'G+!N02 B<m;!410tslRI)ɔCsUI71,<Y<~nې 7Wj5mCT_;-/[#O_#oЭRvRf˖=pP9GsKS)0C;HEG}daI;FC\),J@75ޑgwxc;@kz{b^R3kcwKÓG_=z瘋WH\cw<_%; , Ka;Ax;~nj6wc~m[z:Cpљy!S5_m_NU4,#A06MIfMdG΢/w7Y Uj[c#P\o_%wYv7 aVK¶m(~ ;Jl|Yv e/~ -gk W"ǙE7&K>%% YDl܉ G*?] m֨4JO C=S3?9OӅ^/&}^ZxvI,#~idյNX!BkKhYl4$N_Y8"5l >:lu"[A`u:u`l "[:xzBSxFL+}KևU>ԧ= .$+jW IlIM<8fۍ.-g gw g<]A{zl8٘\8?E b+>ۓa5 yb_,^s52̃s3$Z.-kvz$O,qqIoLR$廓JRT_%) !.-ю^]? 7F}u ]'|sHh o.A)~u;ӯE/OzU 7R]#x~z`-oߚyP}? _P6eDT!~䑖4I"/@ҩ:L }`,݂r=$:gT0sw2UJޜ"a|^0I \N2,c@hbz)2,ϺC2]`Wl}DZ +>B=eA@2GL/b{b,+;cz>YSz0:ˎ-a (I鐪|>_oB ~@gLG9lfA:˰!5 /!0 94m2UӣV͗{A2^r۠5#|юѓ%(v` T{83,c!ʰ;4i۰|PS߭?/XߍhunֽKSW)OȂiܦoMy® .oܢp2I¹C3MFMACwf2PVlO9XAu'zLIlSlCgIDR y]_tz1K:y%/杨'P:t uCq]VX7ZUgJpYj\/E,l%٨-ꄭewI b,1b4 _*Rt:Q: O'>o:%拟Z7-{&IjYSK Q)UXmD!Yψ? X +ħ}-.KNAEv`6 q1;eLc޷q&g6 [pZc.T9@ֹf==qQw F #1þgP{mi}jߧhe\o%h=jkcx$ږ'ރ98n(-#wp$r}XҺ? []H"騩=XoM }fZ"k4ۗ-.x߶/_–8fz)Xi}).{&鳤1}fx{Z;c7eur>P?܍l/z\a/-Q#7_m+nTq&5h.i]vJzpdyĬ7e>R!ǏU5wrp.`~6iYzVz~>[\yɗ"{bFۂak2*{Pb`J|*t*/ܟ 98)Ҿnzr/\?AאcJġrYɏ_) [pEa+d|Ta>@$ܵf7l&c#tׇRx\_lG.r腯`7ù</}Xuc{fM m`9e ,}Q&@㕷nً4ȹ,8?$oͦ\.=' ! h6*e-aC{~=}؇j?j[o8KBg` dlyLQ>H/ yCsU%!eHA%s>7~oXW!b?&emu_3noܻv?kM#`lya"#bD(t_$4^`JqЂ3O %qSzh$tHO+ |߽k"ܽDR#^ ovVttk#]>  :'}'12[y3Of`M/zSH9u8k+&+C(*֬e5ཛYyW\cքz9,=I.ly 9gi<|gpq̔gc%.{Ub)FV?Ayhm]/͇|&Sӯf'<>pUq rTDk:`FkwpeA2J<:"z2{'<R `=MM10fG4l |κYMYA \&#j}˝+Il%9)ٙ&mEBiJݲAҟ]YߐO>ٖŸ`sas'7CbKSSQ/~%d]49IR\qffC{Tm~Al~Z|`R-Lq"dII?8yVc#S^K{Z| UՎ_B, >rAt۴P O^J3Y_MM}8́;bg^6?jځоYN_2~NVQn%I"<2W*dךVg{Z%#{eRrpQrOAkǕ }Bgmqf\ {~/HW,™L ι?4Gpn=)؋bף/B߰8FE6_?%nqu#QZWp~n)3exarǦχ&7a>3%rH $_'4+&u#ΩF%^9KtMj![^WJ5s^@EZpVlUq *%a_/,Ќ}wYE\x6cڬr3 _@_ϸ0(qLCq#0;ӳKGmJo~ sQx ם&|+; M @Q%'4Eu>I+Ben:ol %J4w]`5oCnҮa?[h }% pٛKʱ|\RfK ]ODu:$QTa2/؊vwJp{ `+\wP+I$JJ|x_eu^G(?-㟔uDQ+Xe -R)kőkvZU\t{6Khv R+4lUxCwp$H$𷐀:)AFs(F?u2P5?)~+-k_fe8.iUQe$d8z\eP{4-?O8qbOpFeͥ\ Yb^D?mA+L ?w(g[2+WD#&-w0rI@/ z+G^İ꯱-%lijKE!}P΃fcOR=g {vƑ{#N "b5B-I])]F>Ko=9tٟPI[;[^fX9+p6ei}¥YW WApkʍ`(XaAxERWw23KX#YŖprLW$C;qlCF؎ed6ma)#@%CȳFu!_woGHƖPƳCcaY٫=N N-3JbxvhR99l6y_gV! Pz [gh1a  z} Gh` xϠg4׊1ijep8 O3l<;z# % ώWV:i_3)(ѢHt$3;fОMgv*0+N{a|ga+w'xͳ.g֭ak@ SAFETY013.A!  VERHART.JTDEMO]FIND.ZIP;1_A;1W>^}=6P!6ޖ8dxva7} c ۰b/ g0C8nƳC' --[،f1 B5:.ZR8Z\89D-?9vhϺzghfxv~v7Ɩwmcxvi B1^Ofyvh0l}C6:"3l Dpqa١}zaj-@hώ ^e68<{a١Ջl)aKχ-YӸn)jg-a+cfX U/!YV+⢒^3l<;ga xvKmcxvh϶3l{ x JM|7CȳF!3M_ X{!Y5c hx5ľa١ 6a .㈋?1lZ;tQ?:.1w2!١=h9+gfݾg 22˰7v Agffnt !zGh/Q-ZWl<;tbؒͻŬ6b֢QVd;c-[%nvwR?1ape; [cRlsآ^dxvh62lI=-":i;1!!+h@8Իq!ޤҕhq-.R2ʵwڳ6grlsآya١=dZ TzCͳe !!l4^}=°he [7|48tdxv4O0l"5nDp =iKa xv(Ϟ`xv4?q=g6Z [-nbϚfjbZ3]CȷCE=֦Gf[b ƳC{ac=T0l<;>nilo}!١d w"F6:"ktC hٜ1RGq?G0Z\eY5`<[VΉY-g 0<'g9l<Ȱh1lG ֧f{X3-gs(PB5ڿ auqEQgVa5ޞ8{a<5ہ8tgxv(qq!8Z\܊#.fyvhϊ)ZE)=rR(qО3l%)=aY'ƳCȰu#@8d P'^`xv42lW D-[ ώ-ZMLZ-&@}3껴ZB5ڳT-؞MQlƳŰ5PƳŰumm&(w2rS`00ZdyhN3ԻjPV5T%\'Uj^SX 2,2K!l6Qr\VU}  1JYfy4e'׼Y!bxvghJhQ-.je]ƱC1l*`kdئR`} k I)PSp@!! $k`R8Wv;Dz+Bi jI)s:y;gF6W)3ư]SI c"%E)3acˌRv2l<;|-r9=_-C3#jn /mZiyҝ,/^Ql<;t 1lcʱH9a4)# k,tg p)^ߠΖ/QT%gkb|-^&9ll<;tgiٮ)"eBcLȳFCrl$^s-5]nyhyjw n_je}DZC lSRa? W5K-kcX׼ ːO,85꛰ #j"-["#e,_OZVy)]Z ܏Y"IyhUva\EF#v2)wj 4ΜwgjY 1# eM'W_egZ.֒[쩹VO~T-:M^fג7ڣ3?UWư+3 F!GK(8yzNYjYeaW3fn_<0DzK3w;ƙ_pܫ];s䕹r'e@bإ'q[3䱬K,1N޹$~ղ2s,4}yR%Kg.U̱jVO ׷|b`oh ŐDz[qrn]*GOQSpЪbؒzhײƲK3koy(_ >pBIF9I 3"7c{V'hڣ~WARWN=:i:ittҎꤍ({^Fzwru쏵n8fAL^֫mhmz:y+}6/gVMaJڎǛ>ٺMn3yscS;pPnmjaji:fK^wggG;:[k󆙼D_6B_ttv4mzuJlokmi]7#dՃ흭cG{lJ#s~rg [6>֪1Gc['6Hߠ#w&oJ8Ýͻ]hz/vz\CYjٙuNM^W(nojDJR+Ȫ7lx!bQ+6i\y6>=gʑy[GtvvVBkn}rǓ 2=̹W|حpىnk۶s֧)< +ǚvu6Hk憇v4ao׹<;6?9i抶m65xv<ݶcmJ_gdXz1tƼ~!Ԗɚ[u4ޕZ3aR'aWfkkv~S?9׺ :oKZoG[VemLs72y."znߠz%ElnoijjkmM]wӔqy=xS]yHckfk54rJ@3`{+lM[TYv.H#׏53t|):t&uʂ:֮˧c#_'NZdԬ*tt 뤝Vw766vU'mR'N ,:i):iY:iv|4NZNK'ͯbRvDͩJ%#w #ԡ裔!y;H9 *Ǝ\8){{$!d!KlC5yL& @ ,P]V[w6h-(AW~tq 븛qseXysԢ~7#0otXE 5uN:ळ %2xJYF*7G \Y9_r1vp#.6VqQ:[@{hHZ_z~*q  ]#݅Եdu8Bl\b)GxI1)]8➘I9F'LN9D Ș} (R#M@q$ғ`zg$qDrĒ#<qb:]u%S>/䕁1O&w$-?)T ~`TGC9E"NGtm$BE"Du1!dꖹfp6Sd&t=!TF)~"kX%^y}h0zKNLwEʿh4RX+ bVbdyq( jPVT#~)HfLPf|K@g!+=E(R뗆:C'ꏊx{$3c\ wEECT?lG$P:%0FIJ%nS.)d% 8G;;K+1jY, qI1Jܦ\R$zFA$(Dwd X*BQ]ϋfGL QJVL쭜bg8KIH5q!d҅RbdHHKCIBR&Yb|X;VL6D LiEH<ȉF z!bAfQƭJ2Ip HIPɮ5ɮec4 ̆eX˄T81Sg/|أ#2 0I`Gh-97= meۂI#.\Sa_gsJL1cATpM+aM RՀZ9h] X e f > / A{PjҼRow?e՛zeȼz ׀mp ?0̂5~Ñڤ?0T؇ 1nkQ^RwQ S3j|cqB`V[i5>.8RbAlRʀEk(G.%H4?)Q>]'EJ* !6P_/D ;PJ򉚬$8402e%+"ɄHRi<VO"8Q%.)K,J"qHHi =[Nły357-0eE:]3UfW *gs)تVH1yJ&kKNnDZGT0stqz⚗k ZlѳLq,rjx^ Wtt1޿MG{Ӎ䗹6 Zy^X+-IJ^$) 4׿إ`k%4#k\aR7dA "M'}%}Q!!D?)$\Gs|ߥ )t.Cs7kQ ܫ ijR Y^f*(rPeAeԳ)^' 6"/*b@p ;)M\ʠWV"4zLU$Dܰ^x@TJD2z5G{!A$%lU\(*ޠlNc毩l۲SI9_ :A~!6pq۔mEC^r)Rq=J?x!)1˻ѓ"%[) hf'kHW'@23" Qs^1K.aH _rPݢ3%W8e^z8N?)21bw/($ : U9ьiXtʙ 8]rk8o"yOqHTVDƘNyDϱ9|EU 2AȞq%:W[D@EAc`"ܟѐ)dRO22 1&jS]*Y\U& P$us R mw7؅\crϚ1fg,W˅N:I.+?yoZgXa0q (fCHJ̻1y`~^~d\yۺMko[e*psD\J[ OT*ͥp0s=Yy|wdN2Bާ =fL|^u "g݆UWݾtE5@֑w*@R4NVꬍIyN&"a i0nB)?um^r6ٞo( S,;6Nj q6 s _x Rb$Zvd ;&`2\ ~Ue#~~kF @څ)Q8H|i\8o3Ж??0OpPUA䬨;/3(#.Bϔm⋮y`;˰= 9z^aWaO 7ӱp2i;,3val ͷ%?:vtHG4y81ṉ/@:?1ֽ uvz.P3xn㍬}O[688qeyxep~ܸ Wkpz_xe_YoNF#ߕ:;rP2; 9ى n9, ͻA(d.uFcV,a&i Dx'1k"\EXg!= =ApU-KWu 0o[090g6*\\C溯kZ0*YĎq =Pbă}d((סBޝƠy-ػ-xւf=+|g֬;k1;)c*e'џnu5SI<"| m؀ 3\ WV~(>^ֵ:kYW}mer넇aC7յ7@i:mKx 4v:^#jBˠz9ܔiu٣aubuXLlZsk=^ w]̖Qޚ>pu;"+%J"ϑˑ>6YݰBݗGݏEn( .Fbv?lwuM6c,J;Q~gokp+E^Eygyxhܓ[ YOjD v Jc +VuP ?u%kc>`5<hlfWnxC?XZ+5NkagNMHY;)av>W%ƮV֎ai뿲e]e _ zjr/2Fcm N/L0!^O@W哟MYbtYd}n*Yc Z|hp|? ^8~"}"%"QD'l GpN,߉5<4G[?8pPz+u+zxB,-O1Cn܍^p#z 1l3[L0@o3[BN՜rlwf",F!,k!;y&Tw`*{W< + ?7w+{St8;Q U3ODj~Fd3=&ÍXKԷ[ǫSR`ϊ3zx!}!Ƈώ}2D_ З2Ň6I{&5flAd38c?Lz]Lz(`?]4D#GCw3ѻzUh~υy=cHOm]Y5|c{2c'ϩcP[_k y̷Ō"2X~֠7g1斋"|X8@3݌/@OMe4kkimaL<'Wui+rY0V֚|hSf[3!mSjېwdj:$:χ&=hȻ{2]D6e>΄nF[y?c,$C#6ϧM76LޚL}l4^~LUw[ m{-jۡv j˶&=M#6R=1mfp|[Sfa&m_ob9V d޾[5z3'}<_o<¶Lz3Vm;d\3vmC<=t@՛L*TS cN iR {{xL6{Bla)Ξo2R=1R8M~~/לv>HyEQfmƽiR5"W+=Oݔd-Y6%cSz>d{}6\ogևWÿ ~݌3ju0x=}}[OL=$8?V ~RDo<蕏BƝ`|| ];cDkXfKG:?a:qt驞Mq:ŏ;4~3qIB*a2}J\)qt~$!4F!%_yaq+~w'3ф<za/ͻtg+t@m|1?Z?lқ'#!k.aoƱݢLԥqF gbY`+5i8zĤ<Q#,q/@ oqIn#.Cc 5%6f9MpSp<֝#_ܵFqovv[Yã}/ GJQS0!<$m>*MGh.b"E8 b %HCTZ 8Ȫ gvVU-7c}#SY~Q~$ ifM Euz7yڮ G/)spt]C'h=DhH #&[ Kh`?^7v'$=06/ڈݦTdkb@hz:wPg(FkỷKd(/A0/Be买_]Bzo#az<;=AX; ZYb6&x53aqaYD}Y?]a/vy"S &~JԺe4O`%Ox+yik{{MŞY?z/$Y;9Dx7{̍i\CZK$+4ϜYqZP0[,aQntZ,bk:*kͪ426We+=v~:n2 &V`V_>tHC#`;4\6k9; }Lk442^3Ȧ##s l J-#Uf̡q. uxqE͂Rut*4IEBzG|u(?֟R^Ud[D"GoFBvqJ.Midpļ,?;4>'j 'D#|E6Pd(hQ` IBR1 u83Q+G&NX\}/21nB}u=4pVWl_2x_ģN!Ry3 dQֆ~ b+L/T{_p0CbKmڶu΍;6=g[V$"} k)`1@ |0b.f@}isWoMϵbiSaKn&ЮHHYZ×n܌*lI^g5,@kҼy[@<9=a=`tK=5¹s62r0J3]|:TX 9LӇ}u"u<#/tV,lֵ9\GJ{P-+ s%j59!ѿEd$Pa=m.{5"gr CۢdМ(S!qR9 G|Q Ytx#}x#>FŐm TXܜe7x68YQm,Uף# m2A-VNJ'U5bzcu=2ko?iߗRyKVlr!ʕK@Fm-7AZ\VYbmrMWs NN|tM.ͿKWp흎625tk<a(f*~'U珺2sy߸|H sN"q6+ئL}H%Pye/' X1%1Ky(א ѷzeDsk$#P~4 芶w%-O0]?b~r{m4A=i(C&!  7Ռ% Qp6'ôi*9v&zJ N%0j)L0{;i wә֋o1LМ0$ߍbOત iu!ՂJ)9b=ά 1W@܂98Y $ LA,#dނG{I8 蘵):x8gSby0Axm]˸fm) ]pGH}i^i%]:.0,8L FY VQ‚X'(q;hMДM9AX3):+sK/xGw<޺2kO xbc-sGC)]#'v(o;ZD'^ % `ǦB2s/f]RDfI*fdmfcVg1^_l&2o [GZpGx{ύ,„p ȇi[hc"5k lJ ~q6bLh+[6XEyԞjvPNt4 5% ϕH0kYBq/k0v\3|O~)W b4|6~lH.Y~}9qWO+X3v,g%-5JDl]oʑE~9rq3QOq!ဠTFΥI;+Q3PPrwGB ʽ𦑣f C(-Wdk}/7Kk42h?*f+#<^ª$"^d.9I V3;9 :>Rlb/?qdPdlgT}<t6 ug /rp|!_cEE69"KBZ{Sf7Fιorhl:>םVf ;&0*7M~e K:nr wTRm#O*pȇCsDI#Uʜ 79[̩ٿU\CjdSiHn"=vJGVHg+ʬ1ܓlrNV)H?5 #vn䤋 ,3SAMMS>LnV#̅tSsҧ"bڗ82o!_?==$L8ס3u"r/:sp>^(pZH6iӟJt-]NBاnKHv OJ6%wt^D<ر\<5< ?}^9{˖;tcN".6erZY#}::OuNJtNTސ뺓}ΛkcΟ*Ƥ{mz/=)v,T Y-W7{R[/d CBwtk^ʁmK.!` xQf?]C\VK̆]4uxCv+v*Yp=`Tq.ؤTbH»Hw5 V8+ Z@+ߞh>ߚPƌC9Y[fn'] i?Q\#䁭;tWM? ۰l# lًU l2-ьܤ0^2dOeg.<:1]2A|Me5א5o;3d;>mrqqռ Hn?wrkvp_#t3DSڢ77PKhwF(7find.cIMVMSVV6.1IM$VFABPB=@m!ЦIMVFHC,; |9PbIM,VDAT<@ SAFETY013.A!  VERHART.JTDEMO]FIND.ZIP;1_A;1>%iԱTfHDZTn̩IMVPROX'b1@0IMVRDT=RiԱ: sFzK횑%B RVb;dzĴe[#ɹx$"`hգﱋI[~_*;/1MCd,zi"siTFd_D$TN\qOѾ{h !^$J:fbg"IaQt) tLL8X4tD0!.Z%!_$a_I<ȳ04T#?{u*&i2L-aHU8LR$ˀLeP*Bu>}gm( D?a\b 0zE$ A2G$lK l(1/EO<-9(xNbn3 @qf*  Ù1$}IN(8>RY+Qx, #78>ef#ײlEiZkp7~x~*N/AQc܏as*60OsDr cy`з@L)O -DT=R]q^e y* .lg ;xzK d,?6` Q&/2bܞY8e)ߗ+վC~C'hr}|ˏp\v)3~{+>$:k:v(i_e>+ ԁYnD)aRh]S F}@pgfnCtokBPW¡ |'@#  +k|r c/\q'^=swg{Gs=~%+ (&q_\~s+ăh# 8J%BN_.u잼N_w6SEIwDdOCO&Q<`P( Tb^0c*0t,c)@AO$U @oop.KqzpQd>6/$D[a;(Rkd&hz/P ,)hrsG]Ű{r؉@DC0ǠcįWvrPd{'ccfȿ4`.T*%C >5/LA0 ˉy5]Q.)6taٮizo=h rp~,AN 6o^`H[?[z?{}|=3?vOOyZW##<%K|KZ|g/O +?AѰ=K,(r?d0AVd#pI]Nn7w"qm7*[N bJa.$y[NRY: 2۞Aq"yPg Gyt55~(V!)Ny_àD VW*WoKg}=^`|Ygq4J@h;-%;d/\%9Q/^9ԘMowyXEIp~b=krbXjxW!@ FYX&$ \v!yvGFȧ!sѬRR(NqRw"A~=% <Cz /]8yكfCd@u9(CUࠎp/7-ɠYW}jxXǢU65[0 0q9\% eT +rJ}L#CIgrԂޚ&8 j.{i:l VWgǯXm[?"^֩Dc'Է@IF\MXI02K4v 䮳d uxP.%hgc$9#zE1Kd79˘Dlﱆʷɫ.c;Iuӆ 4xOp p\yE6XY:|a{bN{m{KZ淪Pفyn_Ax<IYD6ɾCjзTTTJ:sn:ެQͤCkCpþ ==lzH,fl9:[ZQj$jPwÂ^ à;u23̄`tC;C1zkucاK&2iB1]߁%0Mwo@arSB-w߂8 )v6]fK ȇ;:W=c4QMͨYau^.'D?SmW &ytOכֿ-ͭ]Kf=fs~[e`jqkLc׿D@.U>*v_|T/XsW7\k8@ e~MFX': '9:vK=H#KHGeL!^u1bݢg'c4m{[jlM똻;Ă!gg&fR@#x9+AuqL#Tx x|=#6Rds1~xJ:ꂊ VWDIF srB[!P? 0ˣWH#w/2I>XhiQ;Ǔ->bpA ]XEkH0SFFI21(oX,'a[@訛4I )U\:2D%:GޜH8l]'n mg8cofGH"h ȸҫicWd7mHlL󱒳g|Kdx(EizB)Fz@`l r"ѧB9#.хPZ!n!HY p,Rn/*B얃d$7Xfxclxhl u<`HR08IJHu)b,Iحmh7opYZh;4z"'ӣcC!)C֎4CɆQG*D( 94CGg6<9f@G@R%:XU>c^B+ѣW ցt|aDua-$ȓ 4TN ~ԣnmnmN^-0 +{\8'l>3N=uaW7$BԮUJ4/yY6Gh~56,I8YC4g.|p,. paIG UYNONF{`fw 8a8Y)MMa7kߴLhwRK"y!nA=ˡьp&i R&)do4rF obx?V9{uLasы]mx]u!*Q8OƧ" :EIk?Za=;aѼFmAS XtW2P0CN!]t.b~W%LO_Bl[omb!43bqyg1}]jLWN^ϵd8=#4د:WV]7X2WlWAq`(kqښm+gzǎz*-IA xXrcT3g=) *GG_;V1Q唂w85wKo)"kc^@U_=nhQSOɜVTuSf@%E,UyQֳJ;㼤qqlmKp٦(lFs! 3Vo5|nTfZjBp>TJIKTku,^cN.rY}_ˣgPkjOapcbN˨}ۈU5APw=P/Ӹ|1l"/ ZOfRIAD\T&/b|7.+N,ye~Vŝͻ-pK*(9&>ueaS./AJga[kI2w"0"2 ܇h'$uբ՝l^&ύ2}_0Wr2!K`x (#4l9[N}I9*ozOI2{VŎΤCCnL?/Ž/`󫇰Z -ݗ7lR9ݪɋy&L-Z%rn|f]v0v}*ݦ%vR96Ɓݫ؍VUI'}.InU"#~r/zegrɃ(VxkRw58&@R;fbkAv|^ PH;{7;LI5M>8_ѝ[@i1mj&⭀&0.pK[ Q~+# pD8^mzW;Zf='W8Fj75FYYkS="z^d>T6Ķf;ߚ_ԅ؅(͕gm N;W7k9#:KRƖ])Jk+(%-"6ťe"fbR͊_N! ricLp84/|clQ96uEv 'YZg Q{o:2`oljk8* ~eq4W 8R .O=^׸)0>LY3ÇiE(kf-NugoVt6^u͛C"fa2XNQ:Z+9*JLP;Ϝ˳-su} 5S-y,pנ/PKAQpG find.difIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,;  PIM,VDAT<%P+TR+TĐVIMVPROX'b1@0IMVRDT=RP+VOFs'v~@rm!M@^[]k^:T("Jq2~,Kƭתs I}irr8v`^ޞWKD>.  hJ@L?Ѕ ]ɅڄGcwTD 0r!Q@2)2*Ap?IEN}!>UѠ5-(On_7 SńB!B1AjYȲ!GL0E`A͔%$Hz-. ,LJ W,@KmxTl%ŸL19efф 1 . ~dv7x;/&WBUnrotԨQ56S|e"0$Ej*d?|U:d˼ZxXKwܶ,mig2Yh }QY߳ۚDuUt#*.SB\ԉ0RGvSdʕ,UH $a3R^Fv``bLޢ2Zs>Z ? ^3RkyYNYibg6 PEӫYߜس:a6'ҾB"X{F)cJ b!9Ou韝ڋ Wjy;ek&NUϫO`Cgb2ˉgN G>e877#g",GpS@"e&-HjP7H;@KDfJ*2οz:1kws; 2H5yCYW[Ry1S)t f9?7 4K" η&j]kO 8"I3E*WXXDvZxf<Օ-ENK%Ik ag97;âyo]oB,7=vG]s߭>sAy'%EN}VVa ԫ86x"}vuW?YuE:E8;cW(x`pIܓ iuq~vqO:8z?>w ƞhvo(_PKuz]>find.exeIMVMSVV6.1IM%VFABPBAm!ЦIMVFHC,;(p IM%VDAT<%04e4neIMVPROX'b1@0IMVRDT=R04e[}ty/;v>J yI mbdu,"KWCDŖY2,QֳQ6֥9p)dㄔr;tc[њntewqmtޏ{>s4q7KBH^hcX})#<|.[(6D'ŎO_k}ڝtT͡s5#j& :](ǥp=u;!&Jv=O5x (>dV(sz)qw U8].YQ"=~̹犸> n+(GNU6o  ʽ:55r5s9Wt:];C{νWரz_SF]C"AǏ e2e]⹍īUe?֨e6]q{zB=Ee lʬ2B ]X695]Fܭʼo 5&]P{{^}v]ΐWsGv>գ涹 3)KtX̹kNvxNo3!4ez s+c{-e k8[vQ-oKNM#qC_Bя(#A*X4un+uuyr`x% qd=; H3p{@72D̅aݑϣ*F?ls*pH'nb跱s78s< SzM^e|!Mt&JٴI#;}T.띘RZ´"7Ǹ(. m]۪^ a+rJ0Grڣn'$0C#^|-FnIt&w>+)BƩ v% t@-].cE]d^rMZ}3; &/NGskp,(S8ezi8Ŝ cȭ )`_}ݔf] sEֽXmr]:mTw$ MTתuȢ ڈ6g6Xe_xQ˃epBW]Y `IA'P@}+KƻT_2f#)B}*R 7 o*:.rs^p9T]3U/,c(͐kR2Vq_љE?Kab%{ 9:`xv>=&pzXJ‚ ī_NC.@C?ռ.t\.x==/^i .gͦ>3&<]OjYxi⍂yW1CC e5PfwxB:͇ێ6;&6ԲKPdF]o8;iB[ru>K^#?(ۥ3?x>(suᷧj5U`FhOX9}zY*bsa5um6: uh߭|EX5[*8.O se{}}Mlϸcq>oҽ.Ǘ2 ej1*u{}}Gq9.ge42+ݦN=]>Ľ6 & V YbJ]ur>+sPf {}mOq 8Ok:xky13#p~ŽxWtVq5\>q?X7dWKV83>-pDsm#כ˞ 2y ܶK4?M|le?";ڍaP4Mibh'VV+qp*}0# R&ȎcR"v(JL,l>㉘qoH䦬/&E3R"^DJF68Md͔sCv/wkK^Bn,'R}ά5B 3M$M:>#`l( KcFDХMǢ+%K!şMf$Qbwƒx4Aňtl Kl:o4ːT:& $AdOe$$tt K3@&l6:%с#3F8h#Bv*=Nt4w,Ƙ:'# 2J.E#fhX 鷦FItx:=&qW齓CWق~G΁X&I lH81v~zHDb4Ǡ Tq'tT|7E|# 5mIJ@"qMa_$؇ٗ"G>p,HjFQ4;Ϙ_H<-j޵DCLH.Z@*=Dã1-atc8jt&T EGو<%#F8'd*v$RHpFvX ǩP:!pdP]$ؘ4C00bt8 9rpf7*>c<JQi_4I#`pD"I_H":NG5#؉/Ņ`m[2ȣ;ٳv#NZI}mN&%0mhQ3͙V?`>z#'-VC9[%r7K{Sͩ[v=9^/„]|۬]6_?p(ћv N}ЋrWG+r( Dm:Dw8u^kQ /4*i,;-)^!.MvǠtha}llD*`cR@.x׏&&eSXV-)PZ6z*%0+FNh@2X> #^DX$vL%cXaI|e2^o/ηA6SJLeCD1ēHG0_f /65lh$N 5`4gL oT[U\baO8Wqr]>k-K56:Ӓ%$  <!0< 90 |k5X V[vzׁoOgso @ՄTF~` 2C׀G x3Yy;4p+`)@5X| a`*G$8$,p!@:B*&p[n{v{U[.j!^ʻmGNԴ&SՕW*j#M_oޛ"-ͧk wO~x(݀ ZY <|8<[-߀&55F l>`/pǁ'o/?./Ҍ@XMfh@;n <<|. @;}1a8pr#$)XTHW8½r}ץ_Xc7?:1_|>@6^[MYgRX(D>l*[37mAr=b`\#_uHsSkf_efs w9;zoij(#`ڄKBhzd_zC'm,َB&N^L)pY2{"RhM/LnoxTKnp&7\%}82W{gsE܊g-0%8Մ8HG;fG&W)el@,crUcRR΄\L.6&kgrU9KW?D%`cr橰ϝ RS|P;~oX:H#3V(M%\_5̝;wq>O_*-Aǎ2k j6ۂqLa4Y*9Uh)?h9pHM±WNu:|U<x{B٧ah`t0G)߷h}sfS;5 w;s9YXqdfR ԗvՕX^?5+4sz,`>G| WM֜\\Il ͝Y(DI k Ag6 G!`KdS~?HW|c%0Uz> \łY,# TbWsl=j!% -l>>>wv1jTT+тNfv7E󂨔ZAJ+h6K@5' $zpF|(UPtQr4affgC吏{=y=N%E9MP(-Nꅘ:R|Nt:VEyWΪk LR-U. ] =_ QEsGx|2E mR.D^ͤEER*eR*^W/GS@o7Zի0،!ec=_Er ps&U2F=Wi< KwLsZP|P<⏡x,) Jl)$lRZ!t6㨮J8 KVGHi[H$t ֺ:)tz`Hl4!Ĺ^{tëiwĆH554 gr Djh,o~{,[>Yh߿='h==Q9m.rWe@5.`Qhwx UZ뉺wv;TZ7 zLfUGJXq`Q "-kS|%$qjA¡%&M&o0an^W{*-;HAJRDR/xH[X1÷*\j/4е6cwUh_v,b">Ǔ\EI揖lpH[oq`H:B,-u[+kMLi0Z}HC'C'NW֊J{F /'JY+D$~T|0I䪂?WjFa(wCv7F (ngHiD$/`ͷV25ҝQ/mxi0Dmt!!-)np|p纭"t/$=ݧ)žՌo|ĺ?\Wi@nt /&+UZQݫ=Mmw2X;Bu6l$k-R-%.49R2)jc*o}`8JÎ{zmHL/(0uC#b1 X9yUJ@pϴnan<񃭔2 tq6@g- FC#gD*af1 d]yITj,j!Pd\R tm08(M) r<Ut9NTEwX'OUG8HV%|Z3й* kb`5gxRfMW0 FL̘dɳ52kY$ȜI\m&نunH^SLr 7ny%P0][)v!oPfK*47+8R `VI& "TlIX`J @{Xl v&`,N@p8%FCvR5cq*NV' XjS.˯Zc#\ Z/w-}j)!{(qawdkR)뛵E *^5>/wS{Je/'\ZYL/aJQg5p Q#x 69 8((SKv3rn7>M_[h&7(PTԔw 1A5'%lL|Gu2G 7bM1`%-hŬcX,E}').v;z_?Q{j/q?|d{?S}Rh 76#vLjPWh5{Ehj|MfDY'NUzFN뵸?nm\vX {YZti gMIT ("H(XPlVE;bgC_(t6N1S=" x 7}Ӄq`EWfβdUp;>bL/@_\t;wG}sw9jyQ1gQ01 9/ڑy3m| 1YyE `Cـy1oBLs{3 ~ HL66dٷ/Oݗ;%2}Hg%& /d>Nww٢+1?VNLA;Dێ(leW826-+>Q>@>^j3S7GH˵H Ulwzy7raeFv?hw(t@[ZقA!:8'.AU-bs, Ć<[}݅%1CݷQ wVIZRW كsrO,sV`U|H#VJzHFwTb c3nb+=fGn"QuD/<+5%F!nf6ZN5d 획>o@ 0̇v^FC5:ڷ_C}OB"CDo5d'طOFi7'F3f6I f tXxV&B}!OePz[=yP_ `vϘk#~\-?Kd 3w3FP?=ߓǙth>j@}FMĸ>e+}u'ѡ [z/Գv? +P_N? +C>WC}&$2gA}` ˵eYhEvӡrJv֬Y^H 4Ld*ИmU)S؂KX/{Un RƺQ\lt]3k|&\ >>8Φ"~ *AY<_8,?42->, ١o;L5Q]T{eRle,(h(gso 8 Cf1Q;!v6VCQH[c w!NJo;u2{pM/g )}죶 R[޹ܷ+R&iN Ñ `oHxZ6-jK` س W0iGyҹ(Y]N4쏄sCv.]ݠ#2R 1n ιT@MBI[0  n,H< [>ʫ|yd4 L/ ƥy<.Ȑ U}Gغ ם^!, 9{$söRL_;a=8:1n"i xz@DwG9}{M ,NȪk:o`)hN/~-]oO[V; a~xrj Z+\p@K(nΚm1o1΂ISkܶ(P8!Jn_4zjl<y.s 9+ ? [ і4Ȍ4fvGGk\x`.9:JnoDh焅 oN[dJ;,#3vĻ%%<:4-P`X amnǦV6YŦYM)bIs>ڒ[I@`8^#$OL=Gn0ϱD'E"4:J#pyi&=\a&"˅,_|}+z J7+troį#.*]xA mwUS5\ׇq qTܸPc묐)j ^lPaѐv{>0h OKV4<*[ !eb^{䩂ARǩȣed }:_DTaϹmGы\{ ~\ .Y_( m/:@oNdSǹ*ڸArx|U}g8y2HQ ƐmP{i 4kW5))LC`X AJGi՞CL5(HM0}t bDO>`DUcbGLcs=bF1>!vӘ؄=g<2nհBEioC5ܖVT#܇Cjޝ+aJ|:G3.!NWCnnw`G;u!\m!GbJ飴_C]BN/+Ax%>EhYE5׺'nw?ʲdG3KN =pr(WW2ki8$%Hʜ`140q[Qcr/` ^u#ӉL܄~:J Dj DjFj 5M(Ͽ/-ٛ ^wL dt1ԁ*ɣ$.KTE[(NΝ%>N@}4/B1}NzIo[gY_ u =Mç_xmͰ4h9Kص̺4Ku5u3DI3?gK2nnsČ,{B,Wt o؆l쑷w T~äXߗm/6hI?u^Խ%8=jZS7u޻ Y _b"׍Mp;HA3)O ^WWk*6U%Tq UHy$"Xh耋I7j:6u E5嚎ע _O5u\O7ԱD)|&D(ҧuvVkVj͓1OLIgX}I1}I1}|I(f5^A3.Aktݫ5)nmmMuY naa7~t[BG|ttLUn{M^H̓fmפ~<鰛:nLLcCz+oYg$`xǤڤXht:$tl4%Je=.|fUI=&}`^EɀùYq'&]`?mkƓ椱%EWTŔIc5sO[h}Ť 5O 2Bj6ۥ^-&QԱB:6|jͻ3ZylқaߊS|֛Z S|0f„c 3bgROՖ&mI?nMM2_~b1:v7醒mcGJR3뻅 :浙c[uo O:4uSǟOY۬l6k7醎톎4SuOYq_۬xI7t4t{BSǗ'fq5tC.CG㡱u<}OfM~>= -hRtt 5.Xa\Zx()CI9BR NC S㮱sc!ӯLP2zB1c:cknfh5魺#cWeO־j[{nӵF+Lng!LLz`\E~7poMfDC Vv!HvXMyY߷&8rK=EQ}+ؔpjiߺ&jl4M8Dr5'U ̺-. 0+. .v^"RïE@xłk'p x\D]WDS\F9hpkR4x ^(gw9#"9bF؎ӎJW*a$Otұ`~q{e 6yג3V/XxXp b;P&<\"@W`(\b߶!gb : o^9>kػP֛SUlI>*M噊kg6E#zDԳcTR?s(DiQa2|_L˧rI}S%hG./[|/=%ϙ>t'|w}T.F-y\l\6Iy gF* 9W >υI>hKa #73sA-ي1|X}FdMZgOGvg(x>7ꛮyY}B[J XZ2yl9/gyvGFg(M[}⪮om<*L˧ڢ.;~2($7">ȪCp!iٔ,0jx5l=$g ݏQҭSn~R]b1I 0D4q6ib# Da%S7fh39 Kwxw׀kK&ơIjyY}.~UӮHIwZ}(#P"ТDLRb$;JC>z[ϫdi?%ί(i:_'RV}.C˺m5I.%au?E)MzeILB@+wASt2DKI( }F}"J\=&"@-!,%BY$"z!uu!.H)Ia\\Tt*o8(CQX Ŷ`ђW~A`)2m=N8\ѨkаlA=YEY&-%߯4yjQYr\-r (o6y5ݎ6>]ζ#1Z]:L9&z~jtSW°e&?z0vT+\Vv^z3-HQ~:R^O;Rupyd`*_pވ/fg1h7 IwŵdUDv7q+,T IqEh2VZvu2k} (3ۢuղ+O_@%Ȭ0C<}Nt<8ʕޡeQ$"x ٶ^%CȚ(o؇Y%]PM+Wht$Iכ, v rj%Mmqj؇l_2_I0t38sC)4o?Diy6`f;.sJe'53ùƇƵ0ISTU~8b~w"Af|xJz}`IrJ#i5,*;&<};9S9$5iЈMڑh?'~E{);r?ZNi'i7[dyL3#։FFEcd_]'D– PvRWS+\fYO,Zy݀TYڽN^f&zo>4~+@}N﷍FEAR(lZ镝w"eE`1=;UUryn<\"O~A\i\aDz_9^Asj cWlYi$w =G^Px]A}Ky(b˟|l_Ha/mh[>0u7R[{ ]oA S RfII`/$Ot>$`ۥc@H[M(o P4[Pl]ѯS6Q$0A͑fJxBd i("$jT^{v]o#THkBCc@dro x&#|g8bͣ\ę|LJLn*;tb{-:Q_ 4N#OS4ȎЉQ!kϹMT},~h`5$OBZ(i& GN`ޱ枆dz6 Iivg5t݉NUņ=kPO}ǨVzΝAvm}h$ ZmveW9.#tBЉq C'q2eZiі Z U[2tg!d=FΏc*eKǡx`΋>تldo[6}'b!GyOES,6r!v dxCl +pKuf<4oi;S)]@ ( FQp^\cn< ?8g|TE?MudZHGЍPv@y&gR)j/\@]P> 6fJt{R^?oYh_\D.,_UoٗZ_POٗ{K+%>a%gE9~_?PKGOp!Kfind.hlpIMVMSVV6.1IM#VFABPBUm!ЦIMVFHC,;tRMzIM,VDAT<%䱒 jđ jT|ݭIMVPROX'b1@0IMVRDT=R䱒 j[suF ;IR'ӭV@}$%EmG "h0G`A^wB_{on?uv߾_>Fyoa`8 ⫔8HVmU)4 ,A:)?t$-2HpN+A&' mh V64fV J/$ϰbaː/Nۃ2֜C_ڣ)`C3-v IGf%6ƒxZuLux `&5_9j\I`2IN2ܖR9k2Y -.~ f3P8IpZ0u +(4c;<dń EL+S޾"R9yt AC(Cy zbOMBZKDCM2 Vfk5qѓoZ1|Frgwk-WWxD)c K`Z9z6?|&)GiFRqaA+R< v@ij$"N'9q1]%ƧAydyWw+P!4cŋW9OkO8y4/Qߌ~[}ֻ[/.>| *I]в$+6ia&4(N7@i[A)TXNY؛E` {lQ. $C,6i0hD- ٱZ;5I yq c)؄qYB)~[}9l^n!?m`Ͽ=cud/6/ao0E.B~Lr"vhx>`?1.-vHKh|ySNW$$mg9Scc_^׹ME}8W7``F^ ErOW/f Dvkp|C{KE~9l8nRQdIs%,^$A"e`RRf}f&qǪ ZR|5~ t+cn#M a{Vb*u2O]<${#Ҥ_ nGU6>/tXWNt L>%fE3Ƕ9t Xb cvINRv ȓ(+J Nʛe*(%:T%eJO*;/Wi/p@NH+x 8 cOĕh3tj(I$"C"q[I,{}&_5s>^GX#" Պe}jk"2S9pp m>qa.=V[PƣB3sJ_TnH{jL/Pӓr+/dV#ewpV~kLN#NYk3?^;`9máԯ'cɤ}^NA!ʹ;ۋkrjG(Y#4mg鐚$#pi"3KleHDAĖ?hB,ﴼŶDeh2}9ޝBյGWFV/C,L|L-oUmOO]qS?LrQ!ax_h=RVO`G!^ۊ{O=LM_%-f:5d"`:^62$'R0Cΰ]RC0<? dE"2Jt81#<KN}{hM St2oo48ֺ-x2#ϚEGfq R7A$3T5 VSTsGGEe],E"y<1Yȯ+ b8H!6+bù[YɔE8~SI3ݜa&؜!#}d2Mc7WF|QtbaԝAp#n]trYnY ַKFzZRyfV+iI#KhX@"3;+L?dZ5t;! 2/Odjl*yY<_Q=׏-.sv?'a}2 >&=9i^.gK8D'}϶Z>x<7!-?=Ϛ7cn՝5nEB5~DTG[ׇvt<b:g-^o"ՙ#)ƌ{8 tAáK l;9\WLW$5t&% QӴ)~^ Bwt~v~οϛXkU],[E7Go>1۰op,7o"I qNSx5BjlpNH./?3T=gdEAdv)#ioGeUҽs$-2m*2"UkgjuČ́d8~fbܹۘМf/^pOQ |pmgs$HdfRhN8`~o8 {O^_1|\C? tixtũ3)U*<مb:o^F3GsVm?»`6?8.unbړڤ4 P=R52 ݟUjߦs NVv6KM\"Ş^B1%(4n߹5MI;![o7KwB}D޹M`̨P}Z4p:2_;ts#kGh69r`:6Hf5vR٣i! ˒Nݼ_&[ ,V~;,#CϹ==1 ;Dzam3J$ O\k{Ʈm_t)mCk&VC^ rapXgR"[xSҲïv`q12ٖ͋93|)ڇ!u gE&3? ` vJ?~eZQRsÔ:'@Tݧ\=a|vRZ$gl7cWI.UOvIZ;!VQo4P%b`.*^\VSNAr\˵+ `@:G%Ya)]2~s);/$\ i*7a=HW T]*2ӥPMЙ"uʝB3mVPEQDC8MUlV+hLLtt cҲ̝5%-eƼe֑ΉtdɷhјoykHNü@TM٧wf0aQ[!ԫB"y8 '2uH/gR$&=}Bsd/4$7fBlҫyv^۟s})6w[QWY $=+fQ-zR=&rDž2$ٮxrK[^;2 si,kz,;q<:[#͐N/<I5<w8)Ey]#vh/}{~O-WD &FCT!"TBHӖ## ;;s{[‹<ٙ%A9bDEn$c%n < `jX*bVY:{83j{'5FˡFo:/REk䥩bZ NE#Sj XʃUǢFdQ{>w>ԍv礉gi hg5,W椟`afnK[g/%Ӽ ɱ"-.e#䌜ojѯT~2g|mNL5k<B ;SD_TRt"2\p*>t( WEB'0!S/-Fѧ|8q;c!Q;Lv_;ԉ&w#3?3嗢gYwd-oF͂ &U>a@vO].jR6zTK)uR"~N-rT,f#Im"RU?2@ЫNDcU0'y{ w6¹GiSkp{dY0hpלeXMs+^`#O1/S 8ʰSF%=ȉ; %CFS#v.--~ǹ[O8cԡ'ucQ0 ?r0 ?2akmV9;~u /QprfDŽ.YvNV*,akQϗu-Faoפ,J6}UV[rF)Oj@\'$AS4` 1цe qe,H/{\F0qf:;y{٩77/\,Cr!gjwn(㿆PeLJ<^<,RCA( Ϥ-n>wQK۬UoI !&;nMkÓ x(K牔Y{UsW[vg+eOdsL~#vPFue^s xOXN+z%e0zmN~bLݽݬUʸ Vh+PK3u[find.olbIMVMSVV6.1IM$VFABPBm!ЦIMVFHC,;(P IM%VDAT<%z*eԵ\eIMVPROX'b1@0IMVRDT=Rz*e xTǑ(14e3[8Dpmf4Ԝ3#=㽄|&]^]/E#kK,: 2N;Q~ĉ!x H0zܪ>wo20UU}xB3ZXSPPS^te=x_Iᄍ= ^a_o bUMU!ɿv$k7*:w7HBW!6'{m-ʻ.2.{%yE>W8/Ļ$H <<vp6o9\HK=K߄lH] G KĻԵij҅U$wjHK=niH=MO-D'}%c(R{}Z-)pUģ#]q?@()*U(dQ#{| j^J>R d7/+fO([& Ks=ROhY]LW-ycK|5Ťy =>O@,fjW4iJ j/ yǠU+)8ϣt|q>=hʴS yJnү T*.l1I?%>@3CGLWt̨.o".Di$JPDlVMP A)']hr ݏ+N Yv{nW!̐ 5Ea.JS}>WQK, tɴ=) r3x)+(^POo6!JLޔq^y${~r*HEF̾//:>!J\NkܗpoE.'c6=6g d)55ՍMp:b֙dįoP]רb k`C:їV~}u]UٚƵ5,J@%XƧx]\yhe1A{@ SAFETY013.A!  VERHART.JTDEMO]FIND.ZIP;1_A;1f>Ϗ &2qâL=,BF"(SjbP$Ȑ`X&L'TO1Q"xĨB9hSC~0h y\6ZWf:"ӱ%)?۔ԝ\v5 zC$SD8nH61iMr ъPm 1v\o9hܝ)Fc7d!6%E)fCm)]Ժl*eJAGS3 f63{D`̬ps^lB`j,o] !ߵlwwC~*r)62cq0lkh a:2.px6IȳO.ث:kywѦq=L07xBG|ϭPHy UU9Nd@f\)t$-r ; |MНk t-i@a:XܰkD Q@V2\`Kյ@; XF{9y+XWP](rY3bcc[g@D~ʯohl(sCn, Dwښ*PBp]LпAˡyS;B/ז7W6V7lh ("?rC^аq=ZH[^"G)BVoh < 57B>Hauk@:ӳF9z͜" 2*roxNVQ i(P( UV7BUA`~MmZP@%pFa}3ZiNť SDшH1 9zU. Vo)ז74VPB"" 蠂PX8G?V=̃7׌܆H O[.cu|O p}  \ZJ~|lpQꆀp?Dx P\WFAwA K뫪-\+ܽ{D#a&Z╋ӆYYA3G<-XllJ{#y -'rZ[^Yz{{hg3ۇ 8[q?W[}u Qqk%U6@HR}+Ey}uejq "?G%hmoC7a>B%Čp !v<0a+kˡn'LS@| Yj~8ixyJSޅ{D*S w "~./ ,qޏx:"-4@C<eszAHBAP. DH.B$dic#8FRD z~Im}Eym w wFeHv%d 8Ršu5\lD>*  "x kC6 K\,Q"d?[L­G'6xtq!Z*lf rA͚ς8X-}YW%@#pu5<64!@\3|?D)*_܆7X[[/"$fr0T A+:tAayl؍ ,`p@X7>|W!)?!q)Ճ_L p9+ HC;Ι ?'YxAeHW>F":@NCȜtH!ksV"eH?Y{p+0gübw "3CNӨli?Va)jݍ Vv*x ~~Fg,HЕsͩ]mx0 |uTXT_OUAr.-Keeތ`Y;8GѭπnRE =2ye߳T(*IT3 sL¥(Q)jNDfh)lv=Q,YZiXW7>Z^&+OYuS 5Vt9+ɹ^/zt* JO;ZĂ%g,A+tR=*UOV0r[3wey ՚$;SZ*]dk$K]Qb y._ $yܳ"B[쏭'$ps$[QkX Z4v1xg7:ӄp'6Qi.VshQT[ VB왩.nT2A6}!e*c]XygcsMu:&lzoJݝ@)ꝵ0 w%㞆W7(YY^[d`HƯH]}_"q1EAYQtx󱕝)&ݕ-bOuH~1W1"$n";rUҝt.DM~Az29Q^J !8KGB,`hEW)` x-܊Z<' x֖…*yx$ v` yM0C4j0"Cl֚a , Jv+ClQr4%0 Ӥ777WhmMmA3B|s @4 eÛ5("旣` _LfW Fm |e! &b@l[1zk@Pohn0 BW Z7jIGӦxb˞=ӻrwLm?k?u 4.:$i,-#D!|׹tGo7z"Bu&Dm){RBI IYg ~Mq5DK 5:~n?&?b=L"}t_ @ۿ%9G]j:}ڥAηB|];vvs;o~qDրI0~,o+Ll~aа~vkÈg]& 5un<9\!Z/D~\ Ix %HJbx"x,u1=Ծ6TVz]-NN/{h4ZJՒRb_C{ZRB%-)iƅZR$tQ!s2`^KaTIp)cf[jCKҖqm?cka4P7%7+|fq/xG%5Cڜ*sZoJksZsZgK$y9ɿ<-:t;z-k_s8vCqu}4nc5mx>*p?no CZq"=inUʈ*)D}nigbη# DVvf-3͹k]탊 j2T۞rtIh`ýűEgBo!3 ibr\Dq[G0q~hb_~j/̜>{g)=c'Xszzc{f}%9!{/E%s&e4n;zQ,IrGmK ``wJ Bģ%zCE؏%-6 ]̨}i։KXUbSyψRЭCb$Qo?a+D16iI}}6 !5ۚӒǟn |iBuCu7԰,>V%R*ȇR v“ PKbD?e$=s_l Cm?#V17W q41r.PW(*ydkz^3G#D͙{7/3L@LO:z)mˇ?$')LQt?_>|R8 TÇBmXO,=s{ޛ3UTvpjb̃Z>6qj{Of{XKft-z sX YPïkX 8{sb Ijb5,5V?sO'sޜZ$Qd&yt72o8{]6Se\u7ӽ"fڿbBǺ/x3w8d^{eyxy}| h4K K%7r W,Z0"# zDDK$I|.ȁ dq7JqT2QlB%i6ȣܖpi _u!0kY)a>u!pYu(Z eʴ2yߨ(u^5t5iVkвՖRhY c *:AeftU?+e} CL*%O6ܧI~/+t <p?D-}<+SKS}"~P=¾o~-i/|/Hn1.BeOJ >KK0OaҏL~I~ \2/0 8UO8:z]0.uE'1),п_%V5ߪ܊B* >FçS@_2 A~|nLln `@Dty D@2HK De@4LtEeW!;\p*ed,lNcϵ3o,X'xNks(\>``)Yfuccʄc BߑZV!]uF4?g&<|@*`'uoHo!Q>|Pػ !}xa>~}·2D`.S{p@0iIݕ᫱dzL1Z5ɮϞ; S=ڞ4O?1PoC db֩*&,2N#dy[@c:ܫ86DNbǍ5IumjS]so^&##Ba@쏒QH#s幑1@@YsF` JSy, D9ET3ċ(ʈxOd9~yc,o[q&& x BoӊR?H!2r t!2t\8r{dlphDF?B^#M<"=3E\-FΌr "d;Nɱa6dUc` $#AUG9Z99qx 9ZFup,0t(ĐDm)ljؤ{ c/1*y8n 'V{{#x)̒۷z<{ⶉ џgc7YQ۱ξ}t|SLLQOw" (èKYbr%'~JQt0>{aU,փ^XL]uζXzqs0s鉔_>rF8.V}[nm&FxVw&>ZJ3)O>{D 0sDz[v;Dq-D;_z[m;Ӈz[O 9X~zws4:{[3¢@ý3ӵǬʢ 6 Y-5?Tm'˧16&yNnRd@#rwi]R{bW4bldzX1S1\-&ʁbK*`'9ypલP`U(XUmӃ)xmF0uG;Bs0%">m47ank 0CsO2AmK oM(Pj9mrNܲDf[YYG#,fk4­V,Ck)Sk)Fa*{[%j9_MĜ12(јb ׹Zr1q:c~rF>&0;6pQQ1Ҙ?K*hIW76T2ϓR d&GoC#nx2 .m}<½'is~,  {bqsp:`viTֹYW2EyVtӯ rZf8er ,߇ZRC<;rH2$!7'`d;O 0ZGʡ2 '!n'r}JX= x:zx;>'/"ڲۇʆʂ*׻]ѻjvpgkW(v}]\v]A_p~E ShPOO&SQ{7)phOl?6$w[xEk=閜7:s'T`tc!h27)ehwS%v+LpA,%{VOP' S` R~)ptv[Fez%5=ps㍝ =-bJ<୹ c_#\NK&]iӿ2?˚ scI./؎~p>>ne;."ia#EpWO'+9nGl_T=m]MOx2&OJWloPGJ%q<dztNj]p+rbdX.'2389$AG8NSþ" BrHS뗒:/&veK:?sPS˺*>t BY'R5tښڪj,!S?߁fXX^k&ح, $O1G%mMpФ8|CtE̞tL#عG,}!'z(`p#Ob8(1\*W ?rx܎E!n`mNz$?c&(6'q-tvׄH"_G{?az?6Vtjw(" [DMyMOwvz&.(8"C-XpK[x:T)A- hqll^]%uhUWo uMܚ>g ,3pM]n]y]3'aO|kjks-Yx_VVĎ+Mgz'ez3}Bl!< |PpVvI9gcZD8 2\*hLKN<>D,&+ىl,qҴm&gQsUYQJN= 2cD7@OUTTǸ#c[8TTFgac5!D .wRVX`L3x&)e5N4B-uD;rubi eJ=oh\>~%:x֗ $Ċp}+nxm [+,ժt4Ic~UHt_Qvk&n,+ԉ`Z4)l[;ңhLdVS&ORdm0Rh24>9~OUڅ*m6]hᅁHILv==}°nt.&$RB3b #K]ޥc'iY5Kg:S*e0gMe&[ti^Ia>]>COdɛ@yT}&[u[<./A4BR֛hoi>SzEk? B% 3x sŽhJdg8S!jMjǫ%IT*)sbj}n&t4cά_1gZ]RB ,uI%BG st9-0}!tm(nKSN5979 { 'n6^D3Wi5W*7DHPNEqVxܳb9tldN do&sF {|PAc !LQK~5))sAf4ҪBjDgٞFSk18i2Fe ;^ĩצ?M6r⡐L73Xc\y~Fg[eL oLTz "z,뇉h1jXQFsn9Fa(kIU&:ӀQRllnI%̸-UT68XL)W2i ,<Д 0-ikd&-iI_Yi$_2eE[/6wS.2ĹDh&jYB9Mp&jCIڄ"x ^h҈癈 ?=aqіh wU?o75 Lh?5>z MVbVXE eh A˦5;bq=̖No0gaq # @=άX Ļ*_#YKx>/B,>t1,&eЙ#}"M[ o㳞XTVǽ l'R{) U떏G*=rWU^+П_AW P ڦ>~>` UCn"mڎ"Ն4ݹak(9`Ք/~,|3blȟsqJ}=6qEFq\S!EI*wLq3x -u._;E:"u]RDMSɺҌW$џ|gnI9oY2Bo^+ǮuWx~:+<Q] n0̞B\^rmlpcFG 1^5"c902gL&A<穚8oz65Q+t/fwJwCC?ܹtsbii[U$T#?R6"U^aO)v{9Q _rgyzf/C}нۇ{Vqxcj NLϾǭ6{d;o~1uSq}>W$h[ӔJca64NSN̩ 㰲SUkRMWhs~9J%ُ/Ɵ9Glp.(#iGd;dsَe@{D+`R@$|[xA|RZWc|2Eر-Mw|!m[&DJg7Q8/SDd_ۻ;0L:󉶯nb;Tm.SLxۘDT7 i`$-GxKړLĊ`3kWͣXNr=6< yhpY .Xz=24c|#X$xODM:&䐙C#g)$|]Ey6[HY =-b"PWPY1jt5̼&B,XuͤZL{/dJA|g71"u$w-fp6cV2*Y54WjNs#}OXL[_Mk2lX_P (W +VW>!_&.~9wx/g˼x8/ (#EAhpF.%2K|waXq;PJbW{nNms|IAtk^%vi%'mLɱ>;hI`w Pâv:ޠ/K8>C{|Vwwnۏ ڏmi?;=dZJ .J_qZU4&l1!!h3PJ&r9d#cOgr?ˑ1IytJsV-1݊*[H^6+ˎVѮe.xʇ}^(@9{~ƀj`Wma.!uE0=i\aqaq[|O?=w?.=w<}M,o{bsdzmw\co9=I>mw׽{Cy#' ;8Ǖ60*'yVV݄X3<$8UY;9?+n&x'qmG>=rs% 7qJ4ȑ ٧H9LMOpm?X-,qKoG.iyF Y~t]|~J!G K!~DuGtxa3n a2>GJFD7}̌r} B}i qILjnG|ǺIp"í||f||lUe`&\l/T~3j.&F5F nSޗh?Pyaxs|A܌Bvp=iw>Ngi¯"5:~OF0t|ZF CQ?Lo?pYP CmǛ?7,ɕ\?r",%\%1%d}R 3`Trtɸ_Y:e$5tx@Ԯ:PK%dX!ul{7`V g_Ƶo[?׈4|4 _zynk.?c+&ʸI*P3,r޻اJ>Tڧ*8hfu蹦hJ׷=6*y TcM92T\zOGFUQ񕰧{yǧӅݤ7nG{\P\lTU7Lϥ')2sL/Q -Ri*fJNz)}U!d_-9ޔoÔ|8C{M8㣚M)y)9>kZoJ~kh!>Bш!:J-6 S'aFlJ!>+R5W0.ܪOڥ%#Zp7r<7θ3nlWB0UπE^ɽw8}p!7;{tb|Q.ep`:4ވC'3;u@5S::XRwn륬'` 7>MCab=x0d+t̳r\chsZe㼸TŞ1ˏG9C鵛t4Hʊ), (Ҙ%4,BCL"_W1@"= OްWRƔ;;@4k˷djYam>hdl|)0灬_D7sߟeyL~R.嘆Xé0,sO x8Sis˷L&s-'s U&>9>'[lN"l̓&57.]0 ύwY.daY[n2,,d fwAs h3QJ*Lg OE 8S-f[kKQHaeBzD <21!xDI'8'3Id1Āp;E?SLȈ ?Gy?Gy@1mR@DֿFԇ'L\>\:TC/u܄!u\/Clte(*\MP*H28W X>J.>>Opz_< 3a\NOp"ѿ0>A~i>=\PJ:FAqYl ~<]d|=%N~R+ofWz3r~ Zz^0Ck:{~j߸rjuO__[ܙN,$Ϫ}-EDs- o:g~H(#j~xE5$QIyᏝ>HN;7|pއbTMjrIь3ӕIc9k4IìH` bt3(+(XscH4fE9F|fP5m)M[ 6/Kso[m,i"˶Pr[5R#8e%P_G'RSvd7Y[ZIe^j{ vQFHRdEj GGK1^!B[٠\~jO5hOm%8J˛&6盍qH`S.VTcBpe0VYYg:vG4ъGL'òԝҠb>huqQ| s<%Ƣ;Wq a}+JiE5UY?PV() 7Դ_o_piA7Wcm  A|]+0=2U|d50הyQT[ϾX 1/Y(_\͈#0 {vR{D^+WvFNCezbL #})BP/v @cq|H`➤+h'w"ͯTeHS>PeB/!F3W]~^(UPJ-5焅Zl7ic(?Td920a,z"w # K;_t$TUN}a!,-rhΦI8'вz@n;G䗘ea9w38|+HH/}܄9ȱbid]'E+X07 ;[nbg<$K)N(VMz'˟]2ťz60,Z@:ؽБ͗B:ȹ6(; Xn# 2¿+e )=׹v6/*4w] bT୯} ߞ7EAsm٭c@Կ3@`|{o1ĤePr4m i t׀:O^ru˙>+/GO >sgI]wwZ7])ޫſ{=6nLHvw/9ȹ#+Z"i9j(yAM % ijp/F+.򬥂Mlށl(YNʆGMfgs-GpuWƑnB oH+3;x2MDGtQNEr^^CiE(JfDi+|'Gq0^6-t5`wli/_{$1V%z"|Y)xb"b/caL5ݬ&|ڤP 3!G8 Jty-HJ:aA9棾ޮ&w,;Nhx btOo/|tRϩ^@i|!.q:Iz Ĝ9]lSwGCsD=soPP{A/@5Z[1 `/~_Yŭe|C,lmnpwtw1oZ˲JH[|m{DL[͞,S,Y!g@B#E|+pykqxU:O'9d,/ʗn#sa@n,rkmn5gۏ.?`lp  }a>5J<SeA@#?Ks5t.2Ӎ$#u)fN|e< We(' 9xJEagѝ.C ox_j`j?IxUE*9颚K9K]N6}09%tQub@QEbr2Tz ժF]H`F uF5 v,3K 7xF\PKn)_0jw!ydȨbڂݞA9}+SN+LI9#M.3Xt.F69J({;[Lj&e5Z{d9 g`@! (ŃąPzW~d>?rb c"xT br~%S$ė,wA1'F *'ҥ%Ċ쩅*+!X28kxj*R+(|_9؇`#R0Jbe)<ń= >u:ow󬢽 t*EI)c?NuL82= BV1/ZD^1;f$-^qXP/f!hrk`ldoCb$;@aj6ԖM<8MBsb7(w"~y@oߧ5ZV^Yo@an9)ǼY1M&gh .t1 D,3W 's8 v5`uPT4:B@ZZ}ރV]Rۡ-*xp4j5ZI+ҨF)6"']f0{];r'fxSq/tUZz9(z6OC2e"wϴ' 3ldMr\vMjw=s)0hd[>LhRet+B+4z%Ɍy,^ &lv˸2\ a*b'`r6֤ BV>sY\p:zN2mR:H. &`ڰ0.$̶R#s;w᙭.6 g{#_|wcM:=mO P:o:wY`)*Jjցe9l _ бzx:AOzh7ȑ-En*b!,ИB|a|]J[$mtmPbL+z28-LcBDs6 ]/v<{?;AnuX<۷#"N .,4EQDU|-Q]]Q@Îmvh`C3 N;$4nAHsN2+eE6L*tZ:$W $K@Xf@+/5$e\^R(i@>.k.)b`PC*̲uO(d!# [HRlk?GT{ >t k?2CE?tJe]tb~Ar/2LBύO%,)$[-r i;E[_ PK6D"0+) find.readmeIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; TPIM,VDAT<%0/hL/IMVPROX'b1@0IMVRDT=R0/V]Hqꤕf]שo3 t ӎNVa (q.FmpUdfdd$?: hg0H*:H3:+e82uKGΏ@l|yǖãc&!U4l+Jvt ^Nc*bRva.#CE!/xh"fC|aޓJ eAJPE-llz(G, 2&pmdG>3Rޖjը4 'BI\@i4xq b6 ]&0[B͒Gg${<ďH2۲aDj5ӸtSVV(f/=>B? FcyzxڝXjdx6Uۋo{_yx+cJ>:|)r6")*6Z鋔;[-屑QDٽ{^&^Œ4֤6F3XۂW: ~$}%4G'|b49󉒓+HR Yi Bq)hCZ $.x]އJLK~PK ˊ;"4{wt-lVUyJ&-2q2e/po1T2 z5$h "`l?Ma[œQY&EMGуl uxTWpKS;lEvPOք(#)ymNFu.kȡ8KlZ .٢v}*؊7ǁVE(v1aeoF `c (`U4ɝ9HtQ;Z(S7p:ub8Ϫ{cp˵v|z3E~V$t-}FJOWgi:M\!c{>3:i=t?M^ ?G;[i%fP;I0ez<, ;.?# 7б]<]d$۔l(,)ic QgؽXאbr]0t': j)FVru":-}3s}RQzE؄vgzrw9vXPW^O\#/ahpJVMr>PC6Q(%v:?ķ_:܀T&?;J4~}X\z5<|4\бao<3I>.^0SJ|?eU&Ob +Y82 !;oΓ^-4(:r*nwv/~]dX#+7}ݮrSwmj"!{*^m |x*Df.҈njH-Cz<' JRʫ[$XBZsXVXk^ 2%*lSX靜,R\USwqBHN 9UrzTrҰrT.P&(wN+yՍ9ʬ"Ux4vG۬s6J4:r,ljZ>3-S UPF^N#5x+OO3i7d敜}vXT e*"=az7rnS m^ʙtxꚝItTq xNg_/]&> Uy=l>;ca997]+wy*HP.f͜b8}TZ7siĴ4iKy%HǁⵜU~c+S]ΏSFPKCYMfind.rnhIMVMSVV6.1IM$VFABPBU@m!ЦIMVFHC,; \ROaIM+VDAT<%--IMVPROX'b1@0IMVRDT=R-[wƕimͦ9鞉d Aq"!S‡mLJgH)T$d_y );ɉIbww_=~ɛ"<PyW.\]8|<ℏ.D4i|}d}Ij٧wz,‘܉\Ù.~\elų,x_aIEx|ΤÇ"rAqP F<40ReҶ/d"2őg12@3.C?Geh>FcVuDz#X{#GKdL"MTvxf.ቒ (!pz` TF`S)R/" .Eq#9i*U|ge(18R$" r?ъ5;#;r'+wvL SU453rÔCrs B 9 '+ЗݓA=fݓ~N}ϥ&Wa4%D\]|)QT"u\y.P]Bn EI|8G/n2SV0c12,.%P8J3l|Q>Ê1~ip=@t0hP'au5`r`LC(: S#|Ѩ$`_o =gEexu8~nt@۝v>=zg50y Aw * BƸmvjBjb{X /r@FWn'qR;ˈ=ƚW#fMi4*l;S6Gܷ 8FծqU PC9D+ilyFϾ`'H+Dz'"˛? o1 p ZJ,ȁm OdI8 9s wkz]5N?/~rP  T!*|!&)s_1$FHqt#1DBWX~;3A\0MqaxdiX VQ:MmP<@vClj/*P-yH?=yW颼a\VSQ ;bLR3i;@J'şQw j&Fx$ xdkT"fђ>ۂ1 r""YAx\ t(Rj V,WU` 53< $tŎټQ6 -k:`DzL8bFm50Aۆha T m @"K~Kp7hE[9Vt5uϘaI-G9~6 %𰴪?!oZyYm-tWxXMK_9ml|}o!-!#1?|-i hLeIkj=s^_cE-sfJM.l#L !i%]oAcegō_>BH{fX\ݬX䱆N^ cHgN%1o ϡ@}}?啩wӧfοm\6">rY Z>Ag}‚:FFU"6w蹚#?0)ɾ,z\#&MjJ8̆ʹ&s]3*R;v v h w$<-Q-| Qo{Q؛ǗĎ`Ibo$M+vw]`_ MԢv!^> RIyc\cK6Pq@;G&D.^P vV蠼նQ3Cy_iuD8~~]CRmcoUI 塹G,&̰.aaft[Ky:YDE2 (qmX3f%R3Z.bF^V*|ܹ8a+""[!S& nlEɩTՔT4#5}`xU[N.l9.Vm,Z8ۑ\d6^5-gۼ۩[P'*V9qJQy ̾;Ykx#;uOdao auu^E qwfxC0`T47 a%[Es$AV9Oqzտu? s>跂^wzgUF=}:q:^yls7 5oO>_nf@ŵ৾O)h( ,VF9و3-m |^:nIXȘaG.Wq3}+v)]" -tW2kAcN78yhJXIlHkjm`M?P* F;*z=iUAwݥ!g]/J7uwI;HpuQge2 Z[hy+La8NՅ9L~N߼Zd[LgM6%}QMx5 ]qMm-dr zvG@ EƇJΕ|:횚<c{-XӁE)Iw7.պDwL$UY';pVcB!EǵjK`@YHbJYCNEqR ?疆uju9Ff^/\FR WEO-qinӞh7Pax\QA^yTbt͞Q.XeIL7:E9eZ1ey_6aߜ`&»KQJxzS$KU1 Y342u@=/AGs港q\kء@$*wXY_9D?N21'1Qێk'l1h; }C U3_+Z^eC5_ͪ6uc7Ms3N }I~Q9/9bl\G4=m.!VPgеpiϾاݨ1ȩ+6'+lV7cm&GX ~ ~ˣみƳq7^wDSF\u =8v#bD QHV3C1U$B$An7 ` ;EhHւ^NQq^OPwWӯ1A-U$mV؋6c7!˽Md9WUaF"]”[ז;5\JW!n88y߽\xiN _`IZw$7AO5 *%}WOcTa/}7X9,eZ`M|ЮA_;݅ 2--PjsT6q{{[U^Zkaq2QdǿcDRUw>>VT]gQnD(A&[5d~FhVRL O7VY9Ř7W/W4ՔL%r9R|vF~ [-kq@p_)'ub_im]}n!fD xMߌTDhbj$SGMm@pD١Vtr.V V<¦B*K]JT#.f"TeƇ10H$+nܶ9'.stMWn 7*+4owΡO2OtS7O v?M NKKAU oިPګ=Ccvw`N )8J\D%uƉ);i!t6ŁWnbi"1+P+76cZ{`o_~c`zqQJ_p%]p_v-B"ՍSuL`)o̧K7=`tۨNOo,uD՛SCh =@{qKb R{HB+)dP aLc8%ǦE # |FMQWSm*B)PJ9P8RRS}U-&4 QY}n_gfvfg׻yoQNzǔl1H}L'nZSvZb=F2c`4o0C4Qd},ʗ0{$(m}{]dLL|M1m>nBM6k5ۥy$%+i\%/e="sɮad_$-'cLP!@bFŋDQʧɜt)gC} C:l6>.!vd3sxNke}̰MnkJ~9]HNh 73?<%ձ-o?ghl"2D ,WF?½!A_qWFB"k[PE0I ;!oEAZ6⳼xI.A0KN(mr`7[v{:~(S^̲ragVYqZmGE?֌wDumn)OƐpLoQ'-n 19KrC퉑PSxpʈ^@iy1qtl3.b!ȵ>xo )H%)z߸?W׹#Bx%̣G~$6@ lKxkH'w@ SAFETY013.A!  VERHART.JTDEMO]FIND.ZIP;1_A;1>00 .AfOI4H>2i#uҗ|3 w6I" ? t?PKDGޠ# find_cld.cldIMVMSVV6.1IM$VFABPB+@m!ЦIMVFHC,; IM+VDAT<%t-p-TeIMVPROX'b1@0IMVRDT=Rt-Y[S6h҆J= vhLt(+_"KEiw,dN} ^Ea׻,&_|-.f o7 Ԟ F$!f=g"NN "[Ցu4wX~$ dN>ld`8PYA2">#r˹7Ȧk(Md=K|qʏ%"bE}E,A**'$&,JjcTm@&Q*;KAGĮrŦ@P,F;FDyOH y.4X */a2FlhևU9-Zi$EBlⅎUBK4 ZTT BAvef*Em {]W r2PXp$Ψjm8 yHm(ylq]FR'%U-X 5H"8pg,H6zr,ˎj=T EY$7*‚<[@۬dov.5{&h‡[r34'`PKZPw;I freptecnt.cIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; <~IM,VDAT<%P&ɠ؃tv؃TةIMVPROX'b1@0IMVRDT=RP&ɠ؃So0eI$Ca2҉j*$jQFsl(wwgWUǁE"%FPDllYF5a3<c%\[$WS|폺h򔇚 AU(_|D̓%Dxfx$>u a>j{{ר6,28_NAKOTn䯳$f؃HE%s7?+m 9?qãMQWt'WS1Xo/^_@ޚWMxp}U CF3 3PJc,oJl`ټfVXo.)NDKPKjpw_2 freptecnt.difIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; |PIM,VDAT<%>aoSoT0ѷIMVPROX'b1@0IMVRDT=R>aoSmk0֧ѱ6cA׉ִ^%qy!vuԖcKJ$9Ikֱe|{$P@}bNW?pΝ5Ѧ}a?1ǮZhE!{$$>g#m>w܅“JZ>H?$bp3!ftvpJ z."-z'2ുsn'9so&?r9#^S5DzAYzK-u6.I4qd-7{oa]o(~bdƟ3’:-O)%p6(j|U}L-xpTUF])J|-ILNX"fWGkj^HDw" BYWhWzYqHk򫫊R04\ lA(wg'_a G>| %188ivyIU1+dl\o%3G> lJO?{P NFNG=ƕS4\8` {ӳ}sb&fT2{2^Nd,j~e>PoPKD8rgetdvi.cIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; PIM,VDAT<%<-x-Tf¨ݩIMVPROX'b1@0IMVRDT=R<-R]kA/PIА&6mŏX *&ZP²603 !;I}ݗs=9 PWFG弱3D<B嫜$'os<7z* $5c]7x%+Y8 ې>=yU tܪIo~g*!Ki8okQq<8ߡnd,fpvnQa1BB_eݲ-/a+-" KRB5ˎSen;Jd!&M[J U6'bm|ͽ< ʯ./{pOv  Ѱ׸Cq=W>Q!^,BkM^'ln.ߎ+9]rxK4sm<~M[Lf4 4inۂ儿rURB߿Oj}o UR?PK{v{Bt get_header.cIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; tnIM,VDAT<%D`Ŵ`Tp۩IMVPROX'b1@0IMVRDT=RD`WQSFMδMi2ql# g1f 1e,#J2{wtlNRπݽۻK8-Ax1Xc42K=WXz0"+neqV_zOXp۳BMDC?];6'|:١{/ˌ.}sEG (ˎ?v{r18cefJ]{rxXpc ۲{?{_> a W>(Ўa堔378KJʮntj15v^VVO)W/ZV+&e4~WڔgKfgLJaƱA:Ȉy`I (IE=L@) JpIډ\cDRl>#v^ߨԌV637kVeQd/@#~ ~j6}GJJT¾ X&DuaP\ hVp*TxJ:J`$PHe,߁  "8m6  tTzcW|RFuL" E>W<, 2]8yOLQ{ĝTrh-3+ehI 累SL8R&O?g}X7 S8YYz5 7WeIW۷391ESu_L"Xﺪl#1WCOUjyX3[VEnE<^ w[n}֊8 /\!5U%Rs/&DQ+it#k<5&dFfv''p%tc+ux΋0};%>ub-5C$uk.p+ 6V-+@i;oex{,MFUL'>y|;uVSPt{Ei":)3HqĵF!5x)XLru"\Nvrw$Lwea%P2 #{ p5eoԿ`[0Htd∿F.'7~h ]לhm t9w"Ў#L?SqfrJG}T'>~Z_io14gRF5b6蓉Ƴ'5vPKpwcL&&get_header.difIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; ĒdIM,VDAT<%d4soŴ2IMVPROX'b1@0IMVRDT=RdWoVӴi?Lj_δ26?-8RǓӦB6\j26}H($Kòͽ=;^J☾"Lr|:^׽T{^" brw`>,V,8+{227 W5u wE}Q&ڣGc`ѡ?ZALд(L9oLkqJ42Xo %Yy9ñtMyOnmنe^YU`cBQ̵cKkSM gQ1,Fhx2(>vκ^y m*6' 6uECzz\x8VѸrGQ`^MQY+XvJR#,Ojg9M:q,CFC~Bbf| b xc!g]6o),~?#^>6~X\`s]@3KlGОG+hmg !qX3_Loc. j`b6jCu|Bm41vZVTQS,φv|3>UbnYFlF)F/-αbg}g@4tFT6a"a߿kMۏw=FYix{M cv­㈆LopH0 b^Zy:kc.a!ߧoF]gA3u `|(Z:_?*ifߪ\&B2dBΠD蠎!TNJBbGf;2TdrUL._5UA'LzPY*ShCk"S3dġk/gQN 0S0|yk\~™rĊ#=+Fu>fï:\);0BAV0l;Z4\C#b;Kx~1jB[p,BWaoß:f_f 9ɔDߐ2Gj [AIe2OUϙ j_啀9EPK Dsmemory.cIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; pIM,VDAT<%n-x-TIMVPROX'b1@0IMVRDT=Rn-=0Q18um5q@H) -hR42z{}> Y34yܥ&LeQipy-JXWm.+,[zt` LU4*ѭDA Uݭqs ںށ5{Mxg;iadU]Qb5bq9`?PK DZmmemory.hIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; PIM+VDAT<%X-U-TjIMVPROX'b1@0IMVRDT=RX-`PLKIMSu`Pr3R" pU*~n@9>h^rNiJBq1PA95/%3A,?3EA81-5>91''?Y#3DPGLiZK!EVi wDJIB.If`PK#v9 parse_uic.difIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; |PIM,VDAT<%&ŴfIMVPROX'b1@0IMVRDT=RoKPϫHeFi׭HSn r^DvW6oBTy:47 )2t'h{R0q%q͗d8ihx] PQZr&R:MXuN~ozcګ&-Sf(e38Cdx;**]ߢW}(Wɓ.E#>/7CQ$" xbQls\/ި@\w4Ӯ6 D!1,jh|"!M/<14|@C~j OW1ҚG󽹲n>bűx(JQ,%2L5r-K)9xXu-;ܕݞeџ, lyC 65ʨu`"Τbr.4t2Yq Z=R? 7PK!$ privimage.cIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; t2 IM,VDAT<%Q)gx)gTXIMVPROX'b1@0IMVRDT=RQ)gVo6:64(6lNP\'QDH6q2n$0h9۔ R ޣKaS${wPI01R &>p=9PTZ1uڇ^0D ΁ |HqԓW|$b2cbMP*X!k( 1<-3e4r*t1]W zP 4qG1ΛG.'-0܀~SAH(l٧HC Cp$?|(=;tžRaF)z8;›<`L(n"(AM=g}1'0Q/ֳ~8ė9ovg(9O)O5TI_zuNhJ*l]#/,ti$1ŵzGNBFI>AC,(yG-s>p:RAe 0)-0LR>yxY kz#+ gMu0{%4C9"{;ǰ{ѽ"Y޽YS9sGïH{WE#sD#Ё-?BԐ;w^=z;.=DDwՇ-?`LjP:_B;OꭳfJ OBwChLnQ#}8rQ"Grs~(IuBrwUG[P.<.b%j,MJUA0duے<C,&«VҠKJpY4xɖ+ʤA6Fx=m% J4JI?IcC;wW*A6l%J<ʃlJ2i4̽nsEZ)N|=*tL6:Rgxa`/Y |)|!8;f,ac[S/*U- H>YIʩI <(yRR2p X0$>5!رֆJŏ5ȑ·(zeQ2?XЋ}V | zZEȤD3gק}οEˁ>p%h :hxW` Ih)4a9݅L7ar^_HT?_š\j_k`sgSypu]J>ۗ=)IuHټ{J)"\s?TD>x&kx Hx94JbBQ^|Q-uU1`B9/*UuGK\㈤f!8W`@:o <8<0Ll p2Eބ^?~VN~m$#*s-%ZQ#L@ SAFETY013.A!  VERHART.JTDEMO]FIND.ZIP;1_A;1>OyPz[M ͦ &MƔGyd6`XuD?չY5JN͐ǭ-ߛ(qt>C6k)/ղfh?sZD +<W;})ֈH5<[7ݮF5yҤ_:#:*QZwRZP 60K걂P&r@) _ҫ-p͆};嵚"%04zNتxחbQK! Έ)x1ƘZiP0chg=4?:fㆩ܎m&>CPí>?3n$?637D Fз/'GxA[)p9qc92,Sleasr~ J=`Uؤ$Zźvq͌6V[ Q oJz)x$Mg , Bnq$1lRH0[lmh(.bLW1aŘ ƄV6x>gԺA%]Si爩j+J*l#,qH>FhDS%+]¶XR4]Bc,QkqZOCsƸGH5ʳ #qv%Q&\Qr)K@_xP>@_`Jl\yM /e<:~g})u3iDLY,,E%{u)ӡپý5KFhth}:R$q?HgIASݯN"//)#˓WxDȲ-3<Ϣ@;)<VOE:ڡ yNUS@ăvȈJ<8KgcF?uI8}Vnl=8[A]= { CCLY~?!hL|7?b)4;ovbX7  6j*ΞAvNd6*9UWcQ2*z/Z[zٛ*DN r ZFtV}=l³>*S!Yh(-]#?w5ثO6 6H\F?)OS 瞦=0& L流D襤 vA|ebh%V^I+ cU/,nM/$oM/E"L@^JeX?C.KZZf(!gk1~r\A1-!.Z<A̵+84+qըXJI{EFyML! _ԞO he6E 0̶ ʪ>,gRu&UəHB LE\NA %߀no ͗T)F| |$\X/`$jRa4$s$sF6 Q4@IJzI-1+j;C& #=M&b7`t@xVS;ҚЪ́ 07qTf0ɎFpS%WQ 8 a|@ok`CXΤ2JSX'Oܼ}%_PX'/`I0[Pbx4ߕ{|[ۡ| D| uvk -OŝV^ĄϞ̂Os;*9pn^/[311v'5|#GIn_of8gRwi++%plS!$fe6يqkVS> p׌pp/ $p6.S6pj2'tjO Lj3^-N~svc4pMa$'jNbXI.Qa2v38K:%Kbt]qkU7K؋+VYpNGJ[fXhzHGB3R誷vcjt2(eWI;F{ Mc&(\['5AzܞND#1'ˉ_FC gO*5z"?4L;9hr"ru}qxve1Ck~۩f|rps$u}%k]f  +Ï%N#y>9)Cc4 {1:)c,4[ ߗ'sJ3ń;3di{=.B~uG..k `O|k[/?yyd[7ttU4@N^jİ{ߚ7fMDS Ww?>LZ5\Jr]ߐ(N}#[JIG#Muaŧ"-U,(}([ -J4]tWg34B bt=+rFW`ݲgQ< g2 l?`R.V4ď#to z-:{5"Ksm;lc po?|%r'ANF7IG V%! Dg`*ava!60} krxM=&O5UҀ4H O8Mhu0(, ]I T4hNɫ RËQ1^F*WQ1^&̈́;U5stn8fw5b~vCW(s L7% (JApcF9 놔g= 式shi\/*vRhC غ۩ h G}M%E{~4 phǬf[0ج_嘃wO\N''w:({HrhGMCIFjcܗ p!lO')S0TgrׅVK-}cF^ޓ?|SEPt7)[ǚ؟G񰳁G }tR ^6P'wtk8KqyIs}uވ1'qd/I(&cu޳luo\k3>š tP!|=BG [GIoOBl7g`C+ޛvj&^MKy= )!).qfXJ{-ԛ3}:HoI!gTN#EtNCte=ŞӉXof^ x#b/^SWTcEѰ?XVZc/΂=g0b=GM] zSb8R<}G t B W>QNEHxa.u`zkK{O9Cg3f|p}g'[t{UA#/"QTG4',4^U9yQuTh1]aRx]1T+JU7.)*ݧlyj쐥nu-*)ί2z#cU툃F4RBɨ-jy3ZQ"v {w'z;xK 5jmSZ"^:'XgYz\Gz+[Rj^dJZ(ţZwn(nwi⛋atzY(w!TR\[=4C>!]s4a"ԜswWK">"q 34E q!\8S8 !"ΣP!.ƫ"K4@|r;öXLi2oJc؛F!Ti@*WAø[bfV,Mc1J V:ȔOFSLǦh1ݒ[F9V;}wat1"[5ɀjRU@ǪIj%`2|4hI۪.`I$cmo_ QcYlٹ葔/P[BYIX.:fi@-ʂ.rAG ""@ 1⒎ʭiFƽp]k A݅ވZ)}lfwv˂?ݤTW^![W9*><Ȍ[w3MW91D3lE[z3u![_QX{r/GseO/~%[Ľ=hk}rO{,{h_^>Q AC!_H@~Vϔq|X}v-aXJ6~ڟ#IԴP r0PLZm^9oGOCCv= >ZpS{FO,=}'/N^=(a?6ak-7%9㦄T(nyf=HNcl}oz`|0 % s-UM/AU&R›AW5zl>[u ?^}Do1ovߨ/4G2=N/#[z+=ieeu5.c:1)~im\ˍVnĥhľ|ҨiMmPqqs7a)>*kCbSޏI_| 7n, [˿v[<,3"U4a>|q7TW ʷhXe+I$);OZ0;uyyǤVjage;g8ˌvCNro?LyvP$K7sgk>Kkg.\S ,^ *l]>Cl44MtMC6|\ 7LfphqB?ȅ޴e5psR݁K=_o˽t?šlݭޱ9BcZ]ɒ&FuQ;"3_^4* 4n!fc]=ZBT&=zM۔٭. 9SOhvE&-=˓NQ 2&O,#g[egX*Ql qa19]iH^zrLQ>F[4I)X"ѲR@O@ !,p?x<GO?/[M' =9hAqh0>T1\}vuzC?c>̀,H,K廣ZAb],QśVcS6t@$Ïd9ɼDl`ǎ>F`ם$4&n8Q 7[3"<|'rIңa)E/! >6:lrcOY7F(c+çQ^!TroLxf]?$"4OW_P E8J܈$*n+ rtR 9  IΌ h%$? a f LEˡeB"A&t,d[zR{no0NwLZ[p?-i7EgW.!nY4:r]xޖ`ގL1Uu;@2zHW;Q\i GNFqku,8PׇbP_S8]auˏRLĀ~){ZPj&Qj LȬ0yl}/7 mQ ,j|`liSb:yPaʆɉhQ9 3gX_i ݪ.Ll0 U_w{p.՞n#vIi61="u:tU9*fgܣFYgY%#'Tә&Y25iW<쓕vq%rI63GX@g{eZ1a%{i\q'76$% _4#َm|\[=b[T~i7,7C,(b, o: m%W~f]RK{9C&WVUz⽳柅 ~nBsut+ҡp  W>)fU(cYnKOAEV 5~'WOuץ>kWZ֍Ȝ]+} Kv]nN%m-*9Իms.C-E\?=͆ssN)täTJ坍~F7?󔒬{x0PKxdE  section.cIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; tIM,VDAT<%P6_߅T*ͅT*IMVPROX'b1@0IMVRDT=RP6_߅Xstv'tMϪ"߂)(Dx8 pQE);$221~ZG؎iĎN89)}鋠s_<ߵxޅ#bN6?I D0(q:Ég3[l!?Jn!N,8$dl\F:ީ4xׇzPG+ωu~= MdLl)^uK$NƁzHj3_iD&y GAUF?< J)RJX&P.b4᰽u28;*Gݷ ,Rғ.y u^/p/Y+BUI)R,o*O3Œ ñyÁm i^ftxѵt3R^ktXgKx2z3}|h1SަH1nm-͋nqOx;G-윋ۛ7ma;r,T Q2Kwߒ3Ȭ[Tuh)S@ 2A}DTV qEcm}]iw~Y={;4;Ϛ+V{||X~4w+hV,Ǐkq.qO:3OZ>ڥ1:;{+FUwg=3<ޭb'gWQ\s1|X,Qq5-+D9tW0GcjhJC_:qX1b[IwPS #ʁN8#K_=fYѓulPY{dT9xUMӪ*.rRU0_ N4']KQ\/n/82 >{c_q#|hIEڳǧ i/kIWg0bɸTXrhZWhTd='E"LC)!@_h$io+Hv?R2vFX他̓Sˮce#5fO飖2-[m+-i2TEIې#*a5BQ6GzPӖ4+A;9<^wȼPTTRQz܉ُ7h!-PKx8Zud section.difIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; IM,VDAT<%04?bIMVPROX'b1@0IMVRDT=R0kFS)%[)9ɵe۝+&VR RkJZ]%);3_pN a%~<Y$I% GCkpv:q.h< |{ *CHX,/^}!^uW'̝Gs]y݀d>ѐC$Si$dx3A>-T 6Sk8`LRTiUFka# H,Bh*MZT!_k4wr)#5!4Pv5~)|.AДuDRJYY@Cm_搌Ece5POnVQ& {cz< hTQ.dYsmx 5 )樤1=#=lVdyv:]wM,$Dn!MȂ\ d7eךo_ݚ @&qܺnJ8.9˫U<_u-{K]p\ 19[W5}@Qz9USfSjwe!4"lY ZXKC2,== \FQ!&jҔWIlmis#쟵$VX%m2&jo]OvNE@J7l+1Qӿ]pmz,m\vΟgW%= WN0s|~K,Sw:?9\prmu#6&VWYme'I[I]1.;JL҄ٯ!%(uؾgb8:9'=:Oeɩ?Am K^o銿PKDi(Hstring.cIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; 4 IM,VDAT<%4Ô-8-TnIMVPROX'b1@0IMVRDT=R4Ô-}SMk@ = vqL"ԁބ%b"_JZ+m>jejuVigߛ}ym&XQ2?UKQriC+ҺZYYjB1~ Q36IѴ٣:Z5t'E8;!t# ,]koHZYCho-F8K(ރV!}I6j>VU #XkN{`lW&B<(L=lL1ao1]wC*X= U{2A Ǥ]_tR)s-Ԝ WJY~: 2u +޹׿t6i>퍺Pb "ih%wf렗/ԝ|PKZmwQ.test.comIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; LeIM,VDAT<%PTnhNIMVPROX'b1@0IMVRDT=RPuA @ԱXtͭC{+*(:vEW[0 [cfoHur):^g9B./r[X4S*lP2 !U$Q|2/sk@]L9V@,8}]FlO¤VU*\΃z|>(D$ i a@Gڐ%Q7PKDQָ*|| tree.cIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; \ IM,VDAT<%-l@-TfIMVPROX'b1@0IMVRDT=R-V[o06<h0&$.r4&!Ya&= к6ئwα;Y !~;vȦ HfKb$ E9J 8)D|̋EB$ +"1}Ku1@ah'2qfN|tvxZBe0f dũsEݧN(H͆Φ`搹 d]'ݧh/DKQLZzl'^j !(k ҬjZ=Z -_-"j٫b$C@8Uxz-4'Q(p4Q4Σ03y2 hפנ.eOu!1Cպ*s6D!,5i_.Y >ҽ =x8:Y3mї\ ̓saNC9B~Bu`Tm{jO\sfO 5cOcmpM}M ^XDU=/p72yܐ@p5 o;:03&Tн,b~ή4e!q0PBo(m>f)-4,d>JY\PQ:j1,㭚h\z X'ZrfX\!h JC"M$n#W%H!VI}`Ŏi0MϺDO{VaؔRM2KLи483E@Y"'7YF/&9s[}~:QFEn|^d'5W&aj݁!;of*@_Yntnйi-u3dz:fC7@ SAFETY013.A!  VERHART.JTDEMO]FIND.ZIP;1_A;1- :nk=r 3*h\60}t" +@"DPKD+ritree.hIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; TIM,VDAT<%^-ؓ-T}˩IMVPROX'b1@0IMVRDT=R^-}K0ǟ=18 7% %#&SMv?XK{yM "2/-hBHj3;!lƑ\F 9N/ޠGJpu_,XXYl01ԵS[҆hQϑSǔDdC[;1.(mÙaȻHO4!q4$عsҐ dʴȕ ,S13|)U 쎅@xN"cX#3|K׎ϯ md41XאV3cp6E:B WkLx61![mS.DɖH{nXo,OP~.PwЍRe-D'Bk@A~ƣG_`(HPKt* vaxcrtl.optIMVMSVV6.1IM%VFABPB@m!ЦIMVFHC,;pIM#VDAT<%`XeƤZcIMVPROX'b1@0IMVRDT=R`Xee` V p r sp sp0PK+pw8 n aaareadme.nraIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; l IM,VDAT<%0sL)Ŕ*M)ŴoS¡IMVPROX'b1@0IMVRDT=R0sL)PKC2Ĭ 큕aaareadme.txtIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; T IM,VDAT<%h[ϼ-κ-9FʡIMVPROX'b1@0IMVRDT=Rh[ϼ-PKC=@s cld.hIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; DPIM,VDAT<%ؿ-ÿ-TzGҩIMVPROX'b1@0IMVRDT=Rؿ-PKCsN1Wcli.cIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; t IM,VDAT<%ӊ-t-TΩIMVPROX'b1@0IMVRDT=Rӊ-PKC[x] ,compile.comIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; D}IM,VDAT<%P-Tᑣ-TjIMVPROX'b1@0IMVRDT=RP-PK6`x: debug.logIMVMSVV6.1IM%VFABPB @m!ЦIMVFHC,;  PpIM,VDAT<%P]7T&Gҝ7ŔdIMVPROX'b1@0IMVRDT=RP]7PKs descrip.mmsIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; PtIM$VDAT<%!_aƤXaIMVPROX'b1@0IMVRDT=R!_aPKCHT 9 dirtree.hIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; PIM,VDAT<%-,ݵ-Tl˩IMVPROX'b1@0IMVRDT=R-PKC3] "display.cIMVMSVV6.1IM$VFABPBg@m!ЦIMVFHC,; r_PsIM,VDAT<%lN-|ł-TQԩIMVPROX'b1@0IMVRDT=RlN-PKCf, ;displaydef.hIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; < eIM,VDAT<%N-4j-TҴ˩IMVPROX'b1@0IMVRDT=RN-PKC \O?fatdef.hIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; D PIM,VDAT<%0-R-TfEɩIMVPROX'b1@0IMVRDT=R0-PKCI@[?Cfchdef.hIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; < IM,VDAT<%,O-hL-t|͒IMVPROX'b1@0IMVRDT=R,O-PKCKP큋Ffh2def.hIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; <jIM+VDAT<% ۙ--TɩIMVPROX'b1@0IMVRDT=R ۙ-PKCBs^YMfi2def.hIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; <kIM,VDAT<%4U-(ϧ-TɩIMVPROX'b1@0IMVRDT=R4U-PKv(JBr Ofibdef.vmsIMVMSVV6.1IM$VFABPBy@m!ЦIMVFHC,; $uIM,VDAT<%lIŴbIŴ׺IMVPROX'b1@0IMVRDT=RlIPK7lwbH/Fifid.cIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; \hIM,VDAT<%PNTzhNTz^שIMVPROX'b1@0IMVRDT=RPNPKpw(4<^큈lfid.difIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; kIM,VDAT<%p$XŴխڣIMVPROX'b1@0IMVRDT=Rp$XPKCK&zZ 큵nfileinfo.hIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; <vIM,VDAT<%t-dr-T6ʩIMVPROX'b1@0IMVRDT=Rt-PK9uR0lqfind.alpha_olbIMVMSVV6.1IM%VFABPBm!ЦIMVFHC,;(q IM%VDAT<%*e4b$eIMVPROX'b1@0IMVRDT=R*ePKhwF(7pefind.cIMVMSVV6.1IM$VFABPB=@m!ЦIMVFHC,; |9PbIM,VDAT<%iԱTfHDZTn̩IMVPROX'b1@0IMVRDT=RiԱPKAQpG zfind.difIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,;  PIM,VDAT<%P+TR+TĐVIMVPROX'b1@0IMVRDT=RP+PKuz]>find.exeIMVMSVV6.1IM%VFABPBAm!ЦIMVFHC,;(p IM%VDAT<%04e4neIMVPROX'b1@0IMVRDT=R04ePKGOp!Kȿfind.hlpIMVMSVV6.1IM#VFABPBUm!ЦIMVFHC,;tRMzIM,VDAT<%䱒 jđ jT|ݭIMVPROX'b1@0IMVRDT=R䱒 jPK3u[find.olbIMVMSVV6.1IM$VFABPBm!ЦIMVFHC,;(P IM%VDAT<%z*eԵ\eIMVPROX'b1@0IMVRDT=Rz*ePK6D"0+) 8find.readmeIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; TPIM,VDAT<%0/hL/IMVPROX'b1@0IMVRDT=R0/PKCYM@find.rnhIMVMSVV6.1IM$VFABPBU@m!ЦIMVFHC,; \ROaIM+VDAT<%--IMVPROX'b1@0IMVRDT=R-PKDGޠ# ?^find_cld.cldIMVMSVV6.1IM$VFABPB+@m!ЦIMVFHC,; IM+VDAT<%t-p-TeIMVPROX'b1@0IMVRDT=Rt-PKD_|dfm2def.hIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; < IM,VDAT<%hi-f-TfzɩIMVPROX'b1@0IMVRDT=Rhi-PKZPw;I 2hfreptecnt.cIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; <~IM,VDAT<%P&ɠ؃tv؃TةIMVPROX'b1@0IMVRDT=RP&ɠ؃PKjpw_2 kfreptecnt.difIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; |PIM,VDAT<%>aoSoT0ѷIMVPROX'b1@0IMVRDT=R>aoPKD8r)ngetdvi.cIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; PIM,VDAT<%<-x-Tf¨ݩIMVPROX'b1@0IMVRDT=R<-PK{v{Bt pget_header.cIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; tnIM,VDAT<%D`Ŵ`Tp۩IMVPROX'b1@0IMVRDT=RD`PKpwcL&&xget_header.difIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; ĒdIM,VDAT<%d4soŴ2IMVPROX'b1@0IMVRDT=RdPKDݯX# }hm2def.hIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; < rIM,VDAT<%Q-,m-TOɩIMVPROX'b1@0IMVRDT=RQ-PKDRdVD 큸init_cli.cIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; DIM,VDAT<%D-8q-T2؏ߩIMVPROX'b1@0IMVRDT=RD-PKu* link.comIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; qPaIM%VDAT<%pٲerB҆eIMVPROX'b1@0IMVRDT=RpٲePK Ds큿memory.cIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; pIM,VDAT<%n-x-TIMVPROX'b1@0IMVRDT=Rn-PK DZmnmemory.hIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; PIM+VDAT<%X-U-TjIMVPROX'b1@0IMVRDT=RX-PK#v9 parse_uic.difIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; |PIM,VDAT<%&ŴfIMVPROX'b1@0IMVRDT=RPKr"c parse_uic.marIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; tqIM%VDAT<%P/Za\z_IMVPROX'b1@0IMVRDT=RP/ZaPK!$ 큚privimage.cIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; t2 IM,VDAT<%Q)gx)gTXIMVPROX'b1@0IMVRDT=RQ)gPKDKb!~_search.cIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; oIM,VDAT<%,-گ-TIMVPROX'b1@0IMVRDT=R,-PKD 큳searchdef.hIMVMSVV6.1IM$VFABPB+@m!ЦIMVFHC,; <`IM,VDAT<%c-h-Trݪ˩IMVPROX'b1@0IMVRDT=Rc-PKxdE  isection.cIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; tIM,VDAT<%P6_߅T*ͅT*IMVPROX'b1@0IMVRDT=RP6_߅PKx8Zud 큠section.difIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; IM,VDAT<%04?bIMVPROX'b1@0IMVRDT=R0PKDi(H string.cIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; 4 IM,VDAT<%4Ô-8-TnIMVPROX'b1@0IMVRDT=R4Ô-PKDLstring.hIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; \IM+VDAT<%-h-TK˩IMVPROX'b1@0IMVRDT=R-PKZmwQ. test.comIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; LeIM,VDAT<%PTnhNIMVPROX'b1@0IMVRDT=RPPKDQָ*|| tree.cIMVMSVV6.1IM$VFABPB@m!ЦIMVFHC,; \ IM,VDAT<%-l@-TfIMVPROX'b1@0IMVRDT=R-PKD+ri.tree.hIMVMSVV6.1IM$VFABPB @m!ЦIMVFHC,; TIM,VDAT<%^-ؓ-T}˩IMVPROX'b1@0IMVRDT=R^-PKt* vaxcrtl.optIMVMSVV6.1IM%VFABPB@m!ЦIMVFHC,;pIM#VDAT<%`XeƤZcIMVPROX'b1@0IMVRDT=R`XePK33L3 FIND [1-DEC-1994] -- Find files on a disk by searching the file headers Written by Joe Meadows, ported to AXP by Nigel Arnot Runs on OpenVMS VAX and OpenVMS AXP (VMS file attributes saved---use UnZip v5.x+ on VMS to restore) *[EVERHART.JTDEMO]FORCEX.FOR;4+,! . / 4I *- 0123KPWO568a7}V89GHJ INTEGER*4 PID CHARACTER*8 ASCII_PID integer*4 status integer*4 sys$forcex external sys$forcexI CALL LIB$GET_FOREIGN(ASCII_PID,) !Get command line if any.' IF(ASCII_PID(1:1) .NE. ' ')THEN, READ(UNIT=ASCII_PID,FMT='(Z8)')PID ELSE WRITE(6,10)!10 FORMAT(' ENTER PID:',$) READ(5,20)PID20 FORMAT(Z8) END IF' STATUS=SYS$FORCEX(PID,,%val(1))6 IF(1 .NE. STATUS)CALL LIB$SIGN@ SAFETY013.A!  [EVERHART.JTDEMO]FORCEX.FOR;4;1I sAL(%VAL(STATUS)) call exit END*[EVERHART.JTDEMO]FORCEX.OBJ;1+,! . / 4N  - 0123 KPWO56@q)V7`V89GHJ6 FORCEX$MAIN0118-Nov-1995 15:50DEC Fortran V6.1-68 FORCEX$MAINP ENTER PID: FORCEX$MAINN P P[ LIB$GET_FOREIGN  FOR$READ_IFk FOR$IO_L_R FOR$IO_END FOR$WRITE_SF FOR$IO_END FOR$READ_SFk FOR$IO_L_R FOR$IO_END SYS$FORCEXPP,( LIB$SIGNALFOR$EXITP  FORCEX$MAIN SYS$FORCEXLIB$GET_FOREIGN LIB$SIGNALFOR$EXIT$CODE$PDATA8$LOCAL FOR$IO_END FOR$IO_L_R FOR$READ_SF FOR$WRITE_SF FOR$READ_IFP%8P8}P ""*[EVERHART.JTDEMO]FORCEX.OBJ_AXP6;2+,! . / 4@ - 0123KPWO56`7 >89GHJDD FORCEX$MAIN 31-MAR-1996 14:22DEC Fortran V6.2-508 $DATA$ $BSS$4$IODATA$i$CODE$$LINK$0JH FORCEX$MAINLIB$GET_FOREIGN SYS$FORCEX LIB$SIGNAL DFOR$EXIT DFOR$READ_SEQ_FMT DFOR$HANDLER DFOR$WRITE_SEQ_FMT DFOR$READ_INT_FMTT T=<46[76 ENTER PID:E76[7@ @=#$ ~GP^TGX^`~hpcGG0{88"HBPb<}@ZkG0B?&1"DD 8B@}R"8"H]B"@b8}"G@ZkG$XBc `b" GGb"GGG@Zk0"B"bG 8Gpb"8"G@Zk0xBGb4G"tG@Zk8DBbG4G@ZkBh"b4G@ZkGc4GP]X]`}hp#k4 HGXLIB$GET_FOREIGN4 Lb#HLIB$GET_FOREIGN4 T@XLIB$GET_FOREIGN<|GDFOR$READ_INT_FMT<b#HDFOR$READ_INT_FMT<@DFOR$READ_INT_FMT< GDFOR$WRITE_SEQ_FMT< b#HDFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT<GDFOR$READ_SEQ_FMT<b#HDFOR$READ_SEQ_FMT<@DFOR$READ_SEQ_FMT4  G< SYS$FORCEX4(b#H SYS$FORCEX4 8@< SYS$FORCEX4DGX LIB$SIGNAL4Hb#H LIB$SIGNAL4T@X LIB$SIGNAL4XGl DFOR$EXIT4`b#H DFOR$EXIT4h@l DFOR$EXIT  DFOR$READ_SEQ_FMT DFOR$EXIT LIB$SIGNAL=8 8=@;=0P;= 7 DFOR$HANDLER=; DFOR$READ_INT_FMT LIB$GET_FOREIGN DFOR$WRITE_SEQ_FMT=   SYS$FORCEXG G=7/. FORCEX$MAINDEC Fortran V6.2-508 = 4H4= FORCEX$MAIN4=^VU,    ($ $= 4: := t4=  =  H *[EVERHART.JTDEMO]JTACLCREA.TXT;9+,! . / 4G - 0123 KPWO5 6@+T{7 !89GHJ=creating an application ACE is not hard (if you can live withnumeric data):8$ SET FILE/ACL=(app,flags=%x81,size={8+4*{#longwords}},-! data={longword1},{longword2}...)?Apparently one can specify an ACE the same way as DIRECTORY/ACL5displays it - I wonder if that's documented anywhere.An example (with GCYB flag):G$set file/acl=(app,flags=3,size=16,data=%X42594347,%x0fedcba90) jnk.tmp1creates an ace of appropriate size with the data.(got the value via cvs=f$cvsi(0,32,"GCYB"))*[EVERHART.JTDEMO]JTACTION.COM;9+,! . / 4C - 0123 KPWO56 7<-89GHJA$! example action routine, executed if wanted, when a file access$$! is denied by EACF. (Open access.) $! Inputs:$! P1 = username$! P2 = terminal name"$! P3 = file ID, hex, low longword#$! P4 = file ID, hex, high longword$! P5 = PID, hex$!C$! This particular example merely sends a notice to SYSTEM by email<$! when an unauthorized access occurs and is denied by EACF. $set noon=$subj="Access by " + p1 + "@" + p2 + " fid="+p3+p4+" pid:"+p5!$mail/subj="''subj'" nla0: system$exit$logo*[EVERHART.JTDEMO]JTALL.BLD;11+,! . / 4= - 0123 KPWO56m#27@=v89GHJ $set verify $set noon$macro jtauthm$macro jtdriver$macro jtexempt $macro jtdmn$macro jtmodace$macro jttrnlnm$macro jtsubprc1$macro jtsubprc2$macro jtsubprc3$fortran/nocheck jtspawn$fortran/nocheck jtopn$fortran/nocheck jtoprmsg$fortran/nocheck jtrplace$fortran/nocheck jtauthmaint$fortran/nocheck jtdolog$fortran/nocheck jtdeldo $macro jtlic $link jtdolog3$link jtdriver+sys$system:sys.stb/sel+sys$input/optbase=03$link jtdmn+jtlic+jtopn+jtoprmsg+jttrnlnm+jtdeldo+-= jtspawn+jtsubprc1+jtsubprc2+jtsubprc3+sys$system:sys.stb/sel$link jtrplace+jtmodace+jtauthm+$link jtauthmaint+jtmodace+jtauthm+jtoprmsg%$link jtexempt+sys$system:sys.stb/sel $set noverify*[EVERHART.JTDEMO]JTAUTH.OBJ_A;2+,! . / 4 - 0123KPWO56 w7`Cw89GHJ>>KEYDO 6-NOV-1996 21:49  Digital Fortran 77 T7.1-61 $DATA$$BSS$($IODATA$i$CODE$ $LINK$(JpKEYDOLIB$GET_FOREIGNJTSCRLIB$SET_SYMBOL DFOR$EXIT DFOR$WRITE_INT_FMT DFOR$HANDLER DFOR$READ_INT_FMT DFOR$SET_REENTRANCY OTS$MOVEMOTS$FILLH H=0(6\@\@\76\7 =`#~^^cGGX"4GBb@Zk`0"4G0(""_&PR"@]0H"CD&"HݲCL=@"H="0B0R"GG@BHb@Zk0"400p0H"0BHR"GPB@ZkGB@Zk0¦ 0$B"G0"H9#H=@0"XGP=0"hG`}0"xGp="?&1"@}"GBb@Zk8 0"0"1"0BR"0b s"GBb@ZkB"G0"8! H=@0b s"X}GP"?&1"@}""GpBxb@Zk$ @0"CD_&R"H]08"CL@"H="0B(R"tGBb@Zk0"4"4GBb@Zk4GcG]]#k<,G8DFOR$SET_REENTRANCY<0b#pDFOR$SET_REENTRANCY<4@8DFOR$SET_REENTRANCY4 GLIB$GET_FOREIGN4 b#pLIB$GET_FOREIGN4 @LIB$GET_FOREIGN4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL<\GhDFOR$READ_INT_FMT<`b#pDFOR$READ_INT_FMT<d@hDFOR$READ_INT_FMT,GJTSCR,b#pJTSCR,@JTSCR<GDFOR$WRITE_INT_FMT<b#pDFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT4@GLLIB$SET_SYMBOL4Db#pLIB$SET_SYMBOL4H@LLIB$SET_SYMBOL4\Gh DFOR$EXIT4`b#p DFOR$EXIT4d@h DFOR$EXIT@ @=8  DFOR$READ_INT_FMT DFOR$EXITLIB$SET_SYMBOL=ACOD>P DFOR$SET_REENTRANCY8OTS$FILL;=0;=  7 DFOR$HANDLER=; LIB$GET_FOREIGN8 OTS$MOVEM=AUTHVALU DFOR$WRITE_INT_FMT= 8   JTSCR  p#*[EVERHART.JTDEMO]JTAUTH.OBJ_VAX62;1+,! . / 4  - 0123KPWO56皇7 {89GHJ0KEYDO0116-Sep-1996 10:42Digital Fortran V6.4-165 KEYDO!P KEYDO ACOD>PP p    x LIB$GET_FOREIGN@P<[}AUTHVALUkhLIB$GET_FOREIGN, Pԫԫ FOR$READ_IF߫ FOR$IO_X_DA߫( FOR$IO_X_DA߫8 FOR$IO_X_DA FOR$IO_END|JTSCRX FOR$WRITE_IF߫H FOR$IO_X_DA FOR$IO_ENDːLIB$SET_SYMBOLFOR$EXITP <KEYDOLIB$SET_SYMBOLLIB$GET_FOREIGNJTSCRFOR$EXIT$CODE $PDATA($LOCAL FOR$IO_END FOR$IO_X_DA FOR$READ_IF FOR$WRITE_IF3P=% *[EVERHART.JTDEMO]JTAUTHM.OBJ;76+,!. / 4$ z- 0123 KPWO56HH7v89GHJ4 JTSCRAMBLE015-SEP-1996 16:16 VAX MACRO V5.4-3MACRO JTAUTHM  JTSCRAMBLE- IO$_ACCESS  MYFDSCSYS$QIOW . ABS . . BLANK .P$ABS$PPPPPjPЪQiRЩSSPRQkP̫Q̏RP̏lQPQxPPPQRQQ<QQnQxQQSQQn<QQn nQQ QQnЎQЎPPQh vJTSCR&Ь[ЬZЬ YЬXtP< <GETFID&ЬRТ(SЬT$SЃ(DAT2PGCEVQQQQ 0QQ:#( (QCOD2P REDACL&$<  }0PP(ЎP3,0WNW|~ |~< IO$_ACCESS&~< ~ SYS$QIOWVVP  PP7 GETFID vJTSCR REDACL< . BLANK .DAT2(COD2@@ SAFETY013.A!  ![EVERHART.JTDEMO]JTAUTHM.OBJ_A;16l .L!*[EVERHART.JTDEMO]JTAUTHM.OBJ_A;16+,! . / 4l - 0123KPWO566Z07=6Z089GHJDD JTSCRAMBLEV128-MAY-1996 20:06AMAC X3.0-18  . ABS .4 . BLANK . $ABS$(DAT2HCOD20$LINKAGE( MYFDSC IO$_ACCESSSYS$QIOWOTS$MOVE(JJTSCR(J8GETFID(J`REDACLT T=<4#^~ G*GIGiGDC"DCDC+9DCR'#DC&l"7DC##> wHC @"@>!C> #+,8H=G>!C>>G! HC#@ޢB޲#+,G!C  0 @6 K?$@ @BG!C 0 @6K?$@ @C>G#G#G!(^~ #k.W J7D /Y K9DGG#~^ ^(~08@޴HPX>`^h~px GG C C CCm#t_ G ^(~08@ޤHPX>`^h~px#kGGG#~^^ ~(08GC(bGC$c Cc G YJc G /yJ\KG ?G^ ~(08@#kV/ JZ VKYGV?D D= GCEV == 0=@4:4=#(4= (4= l l=PH`#~8^@^H~PX`޴hpx>^~ GG/K+@0-( Т^~#kR/[ RKG#^^~ (޴08 GM- ͦV/ZVK6/Y 6K6?V?"עVRJײ#ް ~^> - 0x  $,GGG(m;0 C; 0UB1####8GGmMG-9 JG"0ޢ4޶8ޢ< ޶( ?#Mm@Zk@#Gm۠G M:  0ͦ0B>^ ~ޠ # ^~ (ޤ08@#k>^ ~ޠ # 4GOTS$MOVE4@OTS$MOVE4|GSYS$QIOW4m#SYS$QIOW4@SYS$QIOW =0;=0 ;=/ =""=0 ;=@< ="=08 ;=/ =""; ;OTS$MOVE;7 IO$_ACCESS SYS$QIOW""" ;;;;=0;;;;; ; ; #*[EVERHART.JTDEMO]JTAUTHM.OBJ_AXP6;8+,1%. / 44 \- 0123KPWO56g{Xz7@.Xz89GHJDD JTSCRAMBLEV112-SEP-1996 20:57AMAC V2.1-13 $LINKAGECOD2(DAT2 $ABS$ . BLANK . . ABS .( MYFDSC IO$_ACCESSSYS$QIOWOTS$MOVE(JJTSCR(J@@GETFID(JhREDACL =0;=lR=0 ;=/ =""=0 @;=@< ="=08 ;=/ =""OTS$MOVE;=0 ;=7 IO$_ACCESS SYS$QIOW""" 4 4=>C~8^@^H~PX`޴hpx>^~ GG/K,@8- p8:K{`K"zGA =%@ = 8 >C(MGGCG_B@ZkCG8@^H~PX`ޤhpx>^~CkR/[ RKGGGG>C^^~ (޴08 GͦV#/6/X KY:K?6?6#VZR@KV>CްGG ~&C^G>6 G $,| 0`CC|0U_C0>C(M #M<G8G0GGG0ޢ <4~޶ J~8ޢ<~ ޶(~0m@Zk-CѠQ@1 08C4G>^ ~ޠC TG>^ ~ޠC^~ (ޤ08Ck4GOTS$MOVE4@OTS$MOVE4GhSYS$QIOW4`m#SYS$QIOW4d@hSYS$QIOWD D= GCEV == 0=@4:4=#(4= (4=   =>C^~ R'i#*&Il"D+C"DDCC9D>CDCC7D wHC>>C @"@!C>+,`A8H4>4`A!C>>ޢ! H#@B޲+,C~^ ^(~08@޴HPX>`^h~px GG C C CC;A_4GG ^(~08@ޤHPX>`^h~pxCkGGG>C~^^ ~(08GCC(bG@G$Ce@T@YT`@/J\KyJG ?G^ ~(08CkV/ JZ VKYGV? #*[EVERHART.JTDEMO]JTAUTHM.OBJ_VAX5;7+,2%. / 4$ z- 0123 KPWO567Y89GHJ4 JTSCRAMBLE017-NOV-1996 13:20 VAX MACRO V5.4-3MACRO JTAUTHM  JTSCRAMBLE- IO$_ACCESS  MYFDSCSYS$QIOW . ABS . . BLANK .P$ABS$PPPPPjPЪQiRЩSSPRQkP̫Q̏RP̏lQPQxPPPQRQQ<QQnQxQQSQQn<QQn nQQ QQnЎQЎPPQh vJTSCR&Ь[ЬZЬ YЬXtP< <GETFID&ЬRТ(SЬT$SЃ(DAT2PGCEVQQQQ 0QQ:#( (QCOD2P REDACL&$<  }0PP(ЎP3,0WNW|~ |~< IO$_ACCESS&~< ~ SYS$QIOWVVP  PP7 GETFID vJTSCR REDACL< . BLANK .DAT2(COD2$*[EVERHART.JTDEMO]JTAUTHM.OBJ_VAX62;3+,. / 4$ z- 0123KPWO569T<7Kg<89GHJ4 JTSCRAMBLE0 4-FEB-1997 12:22 VAX MACRO V5.4-3MACRO JTAUTHM  JTSCRAMBLE- IO$_ACCESS  MYFDSCSYS$QIOW . ABS . . BLANK .P$ABS$PPPPPjPЪQiRЩSSPRQkP̫Q̏RP̏lQPQxPPPQRQQ<QQnQxQQSQQn<QQn nQQ QQnЎQЎPPQh vJTSCR&Ь[ЬZЬ YЬXtP< <GETFID&ЬRТ(SЬT$SЃ(DAT2PGCEVQQQQ 0QQ:#( (QCOD2P REDACL&$<  }0PP(ЎP3,0WNW|~ |~< IO$_ACCESS&~< ~ SYS$QIOWVVP  PP7 GETFID vJTSCR REDACL< . BLANK .DAT2(COD2$*[EVERHART.JTDEMO]JTAUTHM.OBJ_VAX71;1+, . / 4$ z- 0123KPWO56N7@89GHJ4 JTSCRAMBLE029-JAN-1996 09:19 VAX MACRO V5.4-3MACRO JTAUTHM  JTSCRAMBLE- IO$_ACCESS  MYFDSCSYS$QIOW . ABS . . BLANK .P$ABS$PPPPPjPЪQiRЩSSPRQkP̫Q̏RP̏lQPQxPPPQRQQ<QQnQxQQSQQn<QQn nQQ QQnЎQЎPPQh vJTSCR&Ь[ЬZЬ YЬXtP< <GETFID&ЬRТ(SЬT$SЃ(DAT2PGCEVQQQQ 0QQ:#( (QCOD2P REDACL&$<  }0PP(ЎP3,0WNW|~ |~< IO$_ACCESS&~< ~ SYS$QIOWVVP  PP7 GETFID vJTSCR REDACL< . BLANK .DAT2(COD2"*[EVERHART.JTDEMO]JTAUTHMAINT.DOC;8+, . / 4B - 0123 KPWO56jW^7@bĘ89GHJCommandline-driven file markingInput isdev:file\markingsor)(n,s,v)\markings (file id on current dsk) Markings:K security key string3I+ inspectme tag (says to call the daemon for eacf)(Snn base prio when running is nn (00-31)5P expects priv mmask in hex, 64 bits. Privs7 that replace all process priv masks while file is open+I expects identifier in hex, 64 bitsM+ Move file tag1H+ call proc to move the file (gcy$cm:filsav.com)BFollowing operate on the database record, but the I+ tag is neededto make them work.1V Max privs file may be opened with:T - time-value access permissionU+U-U*V+V-V*K+K-K*A(note letter+, letter-, letter* pattern above...continue for all)$L+-*3Z+- - turn checksum on/off (on -> compute checksum)-N+-* - operate on permitted image list:O+-* - operate on forbidden imagelist.Q+-* - modify password on file9W+- Skip ace alteration if +, allow if -. Default allow.*X+ eXpunge variable field stuff initially?Z - Specify command to be executed (via spawn) if open8 failure occurs. Note: If the command is not very short,< it should be a submit command. If the command here has \ in7 it, the \ is chopped off and command run without args.3 Otherwise the command gets the following arguments 1. username 2. terminal name 3. hex fid long 1 4. hex fid long 2 5. PID of process#*[EVERHART.JTDEMO]JTAUTHMAINT.OBJ;96+, .Z/ 4ZVL- 0123 KPWOW56xx27?289GHJ0@ SAFETY013.A  #[EVERHART.JTDEMO]JTAUTHMAINT.OBJ;96Z3>>3JTMODACE01 3-Nov-1996 17:08DEC Fortran V6.1-68JTMODACEP, JTD$DB:OP)).GDB JTD$DB:OP).GDB% **** File security access on device:) Filespec given:) Fid:(,,) User:) UIC: Hex priv vector: Terminal:) Accport:) PID: Date of this access:) Access string:)) (,,))) (,,)   ) (,,)3 ****************** Next File *********************) Time access control string:)' Max privilege to open file mask (hex):/ Security checksum stored for file (0 if none):! File password hash (0 if none):  Permitted user list:) Forbidden user list:)% Command file to run if access fails:)% Command file to run to check access:)! Permitted terminal/accport list:)! Forbidden terminal/accport list:) Permitted image list:), Backup user allowed R/W access to this file, Backup user allowed R/O access to this file! Images forbidden to access file:) Backup user list:)% Softlink to this file if acc denied:) File softlinked (r/w) to:)- File is set to be inspected by Safety server- Process accessing file has base prio set to )* Priv mask when this file is open becomes:)1 When file opens process gains ident value (hex):) Old:)$Confirm replace [Y/N/A/X]) %EACF-W-File ID ) ACE deleted. Replacing.)) No security record exists file ) Security controls, file:) File id:,,,,, Time access permissions:) Max privs: Tamper xsums: 7 Lists key: S(filename)U(ok-users-list)V(bad-user-list). K(ok-tty-list)L(bad-tty-list)I(ok-image-list)4 J(bad-image-list)B(backup-user-list)A(ACE contents))$@GCY$CM:FILSAV ))))JTMODACEQ @@P$ Dev:file or (n,s,v)>Q\I+SYS$DISK:$%SYMSgcy$cm:accctlrecs.logK<>%PURGE%LISTJTA_LISTFILES()%SUMMJTA_SUMMFILEJTA_SUMMLEN%REPORTJTA_RPTFILEU(V(Z(X(K(L(I(J(B(D(R(A(%GBLEDIT%GBLEDITCONN%REGEN%DELETEJTA_ZFIDJTA_ITIMJTA_MXPVJTA_CKSMJTA_PSWDJTA_USRSJTA_FUSRJTA_ZCMDJTA_XCMDJTA_TTYSJTA_FTTYJTA_IMGSJTA_SURWR/WR/OJTA_FIMGJTA_BKPUJTA_FNAMJTA_CSLKJTA_NSLKJTA_INSPJTA_BPRIJTA_RPRVJTA_IDNT%SHOWS+X+R+R-Y-<Y+<H+&&&%M+P<I<#SV<T<UVKLOZ-Z+C<#<H<Z<X<W+PP P P@ P      $   @ ( @L $t LIB$GET_FOREIGN@X  LIB$SYS_TRNLOG@ 0FGETFIDh`xxxxxx$x`d% x% FOR$OPEN@ ;>8 @  @G  M$ M LIB$SET_SYMBOL@, @ZH P ]8d 80_    e e LIB$SET_SYMBOL@ @Z!!]8,!80 r p!r LIB$SET_SYMBOL@x!~! ! ! LIB$SET_SYMBOL@!@Z!!]8"80@T"\"]p"x"@""]""@""]""@##]0#8#@T#\#]p#x#@##]##@##]##@$$]0$8$@T$\$]p$x$@$$]$$@$$]$$@%%]0%8%l% %%88%8%@H@%&@&4&H&`@Z&&]8&80&@&&]0 '`@@'d''' LIB$SET_SYMBOL@'' LIB$SET_SYMBOL@'' LIB$SET_SYMBOL@'' LIB$SET_SYMBOL@' ( LIB$SET_SYMBOL@(@((0(]D(L( `(  LIB$SET_SYMBOL@h(@|((]((( LIB$SET_SYMBOL@(@((](() LIB$SET_SYMBOL@)@$),)]@)H)%\)% LIB$SET_SYMBOL@d)@x))])).). LIB$SET_SYMBOL@)@))]))7*7 LIB$SET_SYMBOL@ *@ *(*]<*D*@X*@ LIB$SET_SYMBOL@`*IRt*I LIB$SET_SYMBOL@|*R LIB$SET_SYMBOL@IV*I LIB$SET_SYMBOL@*V LIB$SET_SYMBOL@@**]**Z*Z LIB$SET_SYMBOL@*@++]+$+c8+c LIB$SET_SYMBOL@@+@ZT+\+]p+x+l+l LIB$SET_SYMBOL@+@++]++u+u LIB$SET_SYMBOL@+@+,], ,~4,~ LIB$SET_SYMBOL@<,@P,X,]l,t,, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@- LIB$SET_SYMBOL@- LIB$SET_SYMBOL@-0- LIB$SET_SYMBOL@8-L- LIB$SET_SYMBOL@T-h-|-- LIB$SET_SYMBOL@-- LIB$SET_SYMBOL@-- LIB$SET_SYMBOL@-- LIB$SET_SYMBOL@-. LIB$SET_SYMBOL@.<.P.d.x....>...//(/////>0080>L0T0000>00@1 LPRC@1 LPRC@1@,1 LPRC@41 LPRC@<1@X1 LPRC@`1 LPRC@h1@1 LPRC@1 LPRC@1@1 LPRC@1 LPRC@1@1 LPRC@1 LPRC@1 @2  LPRC@2 LPRC@242H2\2@Zt2|2]22@22>22@22] 33@(3 <3FGETFIDt3`$34>4 4@44<4]P4X4@l4@4 4FGETFID4`hL5@`5h5]|555>55@55@55] 66(6><6D6@X6l66x 6x@66]66@7@7PX[^ ˨氏,˪ˬVަ ˰氏˴氏˶枦$˸$˼ 氏(H曏@氏-Lƌ氏ޫ氏ːޫ氏ޫ ޫԫ0 SYS$GETJPIWPIVLENPH\IVLENP hIVLENP$tIVLENPƌEXEMPT蛏 ˨ ޫ蛏ޫ $(,n \ԫ VˈLIB$GET_FOREIGN,kˈ ˈˈ\\ 1ˈq1ˈQ1(PˈHˤ LIB$INDEXPX, ˂XX\,\H PHXX\,\Hˈ ˂˰ILENPˈ(1QQQ˸ˉ˼˸ FOR$READ_IF߫$ FOR$IO_L_R߫( FOR$IO_L_R߫, FOR$IO_L_R FOR$IO_ENDǏ,Rz,S{SUUxRR$RRL(NUPRLPLIB$SYS_TRNLOGP1,0˘ P˘HFOR$OPENP1 FOR$CLOSE LIB$INDEX,PH P˘$ SYS$GETDVIW,˨ ˨Ы4(˨(˨_,˩ ˨P LIB$INDEXPP,P˨ ˨\IVLENP\TT\QQQUURB˨9TUUQQ\\hA˨lh FOR$READ_IF߫8 FOR$IO_L_R FOR$IO_ENDU,U˨ ˨ի1x LIB$INDEXPZZ\,\˨ Z\,\J˨ ˨˄IVLEN,P˨ ːIVLENPZ˜IVLENP\ FOR$WRITE_IFZ˨ˬ˨ FOR$IO_T_DS\˰˴˰ FOR$IO_T_DSݫ8 FOR$IO_L_V FOR$IO_ENDի1 LIB$INDEXPR,R@˨ ˨ LIB$INDEXPZ,Z@˨ ˨IVLEN,P˨ IVLENPZ FOR$WRITE_IFݫ FOR$IO_L_VZ FOR$IO_T_DSݫ8 FOR$IO_L_V FOR$IO_ENDIVLENP LIB$INDEXP1(FOR$OPENP1LP2LR2NS᫏PT2TUPZ2ZQxQQQR6 FOR$WRITE_SF4X(\X FOR$IO_T_DS`Hd` FOR$IO_T_DSR FOR$IO_L_VS FOR$IO_L_VU FOR$IO_L_V FOR$IO_END FOR$WRITE_SFHh(lh FOR$IO_T_DS FOR$IO_L_VX FOR$IO_X_DAﰦ pftp FOR$IO_T_DSƌxL|x FOR$IO_T_DSݫ  FOR$IO_L_V FOR$IO_ENDˀ LIB$DATE_TIME(˂vˈIVLENPZ˜ LIB$INDEXPVVYYQQ˨Ivˬ˸ LIB$INDEXVPPPPZZ^(Z@@ SAFETY013.A  #[EVERHART.JTDEMO]JTAUTHMAINT.OBJ;96Z> ˂nZV?~VZY^(Y˂nYVZVY,Yn vPQ^IVLENPV FOR$WRITE_SF8 FOR$IO_T_DSVv FOR$IO_T_DS FOR$IO_END FOR$CLOSEﰭ˄FOR$OPENP1< LIB$INDEXP14H(LP SYS$ASSIGNʏPիDUNEXEMPTh FOR$EXIT_W6 FOR$READ_SF˘tp FOR$IO_T_DS FOR$IO_ENDH˘RbˀxFILACCիH FOR$DELETEUNEXEMPTFOR$EXITː LIB$INDEXP1^( n­^(˄nY,Yn ˄PQ^VV˜˄ˠˤFOR$OPENP1V˄LIB$SET_SYMBOL6 FOR$READ_SF˘ FOR$IO_T_DS FOR$IO_ENDמ˘RbL˜ScP,n ˄ LIB$INDEXPYP,@i ˄ LIB$INDEXPP,P˄ ˄ IVLENPV2LY2NQQRPS2STPU2UPxPPPY FOR$WRITE_IFV,˄0, FOR$IO_T_DSY FOR$IO_L_VR FOR$IO_L_VT FOR$IO_L_V FOR$IO_END4IVLENPS' FOR$WRITE_SFS@˄D@ FOR$IO_T_DS FOR$IO_END1H FOR$CLOSEUNEXEMPTFOR$EXITX LIB$INDEXP1^( n­^(˄nY,Yn ˄PQ^VYVd˄hlFOR$OPENP1V˜˄ˠˤLIB$SET_SYMBOL6 FOR$READ_SF˘˴˰ FOR$IO_T_DS FOR$IO_ENDמ˘ScL˜TdP,n ˄˼ LIB$INDEXPQP,@a ˄ LIB$INDEXPP,P˄ ˄9IVLENPV2LQ2NRPS2STPU2UPxPPPQQSUeUUY) FOR$WRITE_IFV˄ FOR$IO_T_DSS FOR$IO_L_VR FOR$IO_L_VT FOR$IO_L_VU FOR$IO_L_V FOR$IO_ENDIVLENPV' FOR$WRITE_SFV˄  FOR$IO_T_DS FOR$IO_END1 FOR$CLOSED FOR$WRITE_IFY FOR$IO_L_V FOR$IO_END˄$(LIB$SET_SYMBOLUNEXEMPTFOR$EXIT< LIB$INDEXP1^( n­^(˄nY,Yn ˄PQ^VVH˄LPFOR$OPENP1Vˀ˄˄ˈLIB$SET_SYMBOL6 FOR$READ_SF˘˘˔ FOR$IO_T_DS FOR$IO_ENDמ˘RbL˜ScP,n ˄ˠˬ LIB$INDEXPYP,@i ˄ LIB$INDEXPP,P˄ ˄IVLENPV2LY2NQQR᫏PS2STPU2UPxPPPYH FOR$WRITE_IFV˄ FOR$IO_T_DSY FOR$IO_L_VR FOR$IO_L_VT FOR$IO_L_V FOR$IO_ENDIVLENPS` FOR$WRITE_SF FOR$IO_END FOR$WRITE_SFS˄ FOR$IO_T_DS FOR$IO_END FOR$WRITE_SFˠ FOR$IO_T_DS FOR$IO_END FOR$WRITE_SF˸Vft˴Yiˀp FOR$IO_X_DA FOR$IO_END FOR$WRITE_SFRb˔˼Tdˠː FOR$IO_X_DA FOR$IO_END FOR$WRITE_SFSc˴Ue˰ FOR$IO_X_DA FOR$IO_END LIB$INDEXPYYRR@TST Bc ( LIB$INDEXPYPPPVYQQVRS,RAc ˨YVvVG FOR$WRITE_SFV4 ˨8 4  FOR$IO_T_DS FOR$IO_END@ L LIB$INDEXPY1YSS@TUTX Ce\ h LIB$INDEXPYPPPVYQQVRS,RAc ˨YVvV` FOR$WRITE_SFVt ˨x t  FOR$IO_T_DS FOR$IO_ENDˀ ˌ LIB$INDEXPYYSS@TUT˘ Ce˜ ˨ LIB$INDEXPYPPPVYQQVRS,RAc ˨YVvVy FOR$WRITE_SFV˴ ˨˸ ˴  FOR$IO_T_DS FOR$IO_END LIB$INDEXPYYSS@TUT Ce LIB$INDEXPYPPPVYQQVRS,RAc ˨YVvV FOR$WRITE_SFV ˨  FOR$IO_T_DS FOR$IO_END LIB$INDEXPYYSS@TUT Ce ( LIB$INDEXPYPPPVYQQVRS,RAc ˨YVvV FOR$WRITE_SFV4 ˨8 4  FOR$IO_T_DS FOR$IO_END@ L LIB$INDEXPYYSS@TUTX Ce\ h LIB$INDEXPYPPPVYQQVRS,RAc ˨YVvV FOR$WRITE_SFVt ˨x t  FOR$IO_T_DS FOR$IO_ENDˀ ˌ LIB$INDEXPYYSS@TUT˘ Ce˜ ˨ LIB$INDEXPYPPPVYQQVRS,RAc ˨YVvV FOR$WRITE_SFV˴ ˨˸ ˴  FOR$IO_T_DS FOR$IO_ENDRˏbR/ FOR$WRITE_SF FOR$IO_ENDR^ FOR$WRITE_SF FOR$IO_END LIB$INDEXPYYTT@UVU Df LIB$INDEXPYPPPVYQQVSR,SAb ˨YVvV FOR$WRITE_SFV ˨  FOR$IO_T_DS FOR$IO_END LIB$INDEXPYYSS@TUT Ce ( LIB$INDEXPYPPPVYQQVRS,RAc ˨YVvV FOR$WRITE_SFV4 ˨8 4  FOR$IO_T_DS FOR$IO_END@ L LIB$INDEXPYYSS@TUTX Ce\ h LIB$INDEXPYPPPVYQQVRS,RAc ˨YVvV FOR$WRITE_SFVt ˨x t  FOR$IO_T_DS FOR$IO_ENDˀ ˌ LIB$INDEXPYYSS@TUT˘ Ce˜ ˨ LIB$INDEXPYPPPVYQQVRS,RAc ˨YVvV FOR$WRITE_SFV˴ ˨˸ ˴  FOR$IO_T_DS FOR$IO_END LIB$INDEXPS1STT@UYU Di LIB$INDEXPSPPSSPQ,PCa ˨VVYI˨QQY1Y1YV FOR$WRITE_SF FOR$IO_ENDY?ˈ FOR$WRITE_IFF˨~ FOR$IO_L_V FOR$IO_ENDC FOR$WRITE_SF  FOR$IO_T_DS FOR$IO_ENDV1lY(F˨V8ˈ FOR$WRITE_IF˸ FOR$IO_X_DA FOR$IO_ENDt FOR$WRITE_SF  FOR$IO_T_DS FOR$IO_ENDV1 Y(F˨V8ˈ FOR$WRITE_IF˸ FOR$IO_X_DA FOR$IO_END FOR$WRITE_SF   FOR$IO_T_DS FOR$IO_ENDV11 FOR$CLOSEUNEXEMPTFOR$EXIT LIB$INDEXP10 LIB$INDEXPD LIB$INDEXPPR,R@˂ ˄P IVLENP1˄ ,˅ ˄,˄ ,˅ ˄` d LIB$INDEXPVV1VQ,Q˄ ˄VP,PF˄ ˄V,n ˄t x LIB$INDEXP1PP,P˄ ˄VZ˄ IVLENPWVː IVLENPZ6 FOR$READ_SF˘ˠ ˜  FOR$IO_T_DS FOR$IO_ENDVX˨ Wˬ ˄˰ ˴  LIB$INDEXP\1խ1 IVLENPU FOR$WRITE_SFU  FOR$IO_T_DS FOR$IO_END FOR$READ_SF FOR$IO_T_DS FOR$IO_ENDpYpypN1$pn1pApaԭpX1px1\W@SV,SGf @Z@^(@n€Z^(Z˄n@ZV,Vn @PQ^\1ZW\YYY@VPV^(VI`nV\RR^(Rn^SVVY,Yn @PQ^ZW\VVV@YPY^(YF`nYZ^(Z˄nZVVY\\^(\n\VYV\,\n @PQ^VXX1!VFOR$REWRITE_SU FOR$IO_END1UNEXEMPTFOR$EXIT LIB$INDEXP14 ( SYS$ASSIGNʏPիDUNEXEMPT FOR$EXIT_W6 FOR$READ_SF˘   FOR$IO_T_DS FOR$IO_END˘\l$ REDACL) 1,n ˄4 @ LIB$INDEXPV(@f˄T LIB$INDEXP,P˄ ˄` IVLENPZ FOR$WRITE_IF˘Yi˔\l FOR$IO_X_DAZl ˄p l  FOR$IO_T_DS FOR$IO_ENDt IVLENPX4 FOR$WRITE_SFXˀ ˄˄ ˀ  FOR$IO_T_DS FOR$IO_ENDXˈ ˄ˌ ː OPRMSG(  x˜ ˨ LIB$INDEXP1WP,@g ˄˼ LIB$INDEXP\1\Z,Z˄ ˄ \\xZ^(Z˄nZV ^( xnV Y,Yn ˄PQ^~\^(\˄n\ZZW,Wn PQ^\\L\VV\YYFZP^QRYSZT OTS$MOVE5_R5˘Xh REPLENT¹ 1UNEXEMPTFOR$EXIT~~6 FOR$READ_KF˘  FOR$IO_T_DS FOR$IO_ENDPPЫPV1VC1V4PT LIB$WAIT1Q($ ˠ˸YЏi˼Zj,n $\lWgVf, <  @˘Zj˜Xh IVLENpPPW FOR$WRITE_SFW ˘  FOR$IO_T_DS FOR$IO_END~~6 FOR$READ_KF˘ FOR$IO_T_DS FOR$IO_ENDPPx| LIB$INDEXPխ FOR$DELETE  FOR$CLOSEUNEXEMPTFOR$EXIT0 LIB$INDEXP1խUNEXEMPT< FOR$EXIT_W8 FOR$WRITE_IF˘Rb˔Sc FOR$IO_X_DA FOR$IO_END˨PTLIB$SET_SYMBOLˠlpLIB$SET_SYMBOL8 FOR$WRITE_IF˸Ue˴Zj  FOR$IO_X_DA FOR$IO_END˨ˈˌLIB$SET_SYMBOL8 FOR$WRITE_IFXh4˼\l@0 FOR$IO_X_DA FOR$IO_END˨ˤ˨LIB$SET_SYMBOL8 FOR$WRITE_IFVfTRb`P FOR$IO_X_DA FOR$IO_END˨LIB$SET_SYMBOL LIB$INDEXPZZTT@UXUDh LIB$INDEXPZPPPVZRRVQS,QBc ˨ZVvVV˨LIB$SET_SYMBOL(4 LIB$INDEXP\\QQ@RSR@AcDP LIB$INDEXP\PPPZ\UUZVX,VEh ˨\ZzZZd˨hlLIB$SET_SYMBOL|ˈ LIB$INDEXPXXQQ@RSR˔Ac˘ˤ LIB$INDEXPXPPP\XUU\ZV,ZEf ˨X\|\\˸˨˼LIB$SET_SYMBOL LIB$INDEXPZZQQ@RSRAc LIB$INDEXPZPPPXZUUX\V,\Ef ˨ZXxXX ˨LIB$SET_SYMBOL$0 LIB$INDEXP\\QQ@RSR<Ac@L LIB$INDEXP\PPPZ\UUZXV,XEf ˨\ZzZZ`˨dhLIB$SET_SYMBOLx˄ LIB$INDEXPXXQQ@RSRːAc˔ˠ LIB$INDEXPXPPP\XUU\ZV,ZEf ˨X\|\\˴˨˸˼LIB$SET_SYMBOL LIB$INDEXPZZQQ@RSRAc LIB$INDEXPZPPPXZUUX\V,\Ef ˨ZXxXX˨ LIB$SET_SYMBOLVˏfV,LIB$SET_SYMBOLVHLIB$SET_SYMBOLXd LIB$INDEXPZZQQ@RSRpActˀ LIB$INDEXPZPPPXZUUXV\,VEl ˨ZXxXX˔˨˘˜LIB$SET_SYMBOLˬ˸ LIB$INDEXP\\QQ@RSRAc LIB$INDEXP\PPPZ\UUZXV,XEf ˨\ZzZZ˨LIB$SET_SYMBOL  LIB$INDEXPXXQQ@RSRAc( LIB$INDEXPXPPP\XUU\ZV,ZEf ˨X\|\\<˨@DLIB$SET_SYMBOLT` LIB$INDEXPZZQQ@RSRlAcp| LIB$INDEXPZPPPXZUUX\V,\Ef ˨:ZXxXXː˨˔˘LIB$SET_SYMBOL˨˴ LIB$INDEXP\\QQ@RSRAc LIB$INDEXP\PPPZ\UUZXV,XEf ˨\ZzZZ˨LIB$SET_SYMBOL LIB$INDEXPX1XQQ@RSRAc$ LIB$INDEXPXPPXXPU,PHe ˨Z@LIB$SET_SYMBOL\LIB$SET_SYMBOLxLIB$SET_SYMBOL˔LIB$SET_SYMBOLZVF˨\1\1\Z˰LIB$SET_SYMBOL\>ˈ FOR$WRITE_IFJ˨~ FOR$IO_L_V FOR$IO_ENDLIB$SET_SYMBOLZ\(J˨V8ˈ FOR$WRITE_IF˸ FOR$IO_X_DA FOR$IO_ENDLIB$SET_SYMBOLZ1M\(J˨V8ˈ FOR$WRITE_IF˸ FOR$IO_X_DA FOR$IO_ENDLIB$SET_SYMBOLZ1 LIB$INDEXPUNEXEMPTFOR$EXIT, LIB$INDEXP1խB FOR$WRITE_SF8H<8 FOR$IO_T_DS FOR$IO_ENDUNEXEMPTFOR$EXIT8 FOR$WRITE_IF˘Xht˔\lˀp FOR$IO_X_DA FOR$IO_END˨LPLIB$SET_SYMBOLˠhlLIB$SET_SYMBOL8 FOR$WRITE_IF˸Rb˔˴Scˠː FOR$IO_X_DA FOR$IO_END˨˄ˈLIB$SET_SYMBOL8 FOR$WRITE_IFTd˴˼Ue˰ FOR$IO_X_DA FOR$IO_END˨ˠˤLIB$SET_SYMBOL8 FOR$WRITE_IFZjXh FOR$IO_X_DA FOR$IO_END˨˼LIB$SET_SYMBOLf FOR$WRITE_SFH FOR$IO_T_DS FOR$IO_END˘\lL˜VfPzTR{RTTxTT2LUUT2NZˏTX FOR$WRITE_SFT FOR$IO_L_VZ FOR$IO_L_VX FOR$IO_L_V FOR$IO_END FOR$WRITE_SFˠ FOR$IO_T_DS FOR$IO_END FOR$WRITE_SF˸Vf˴Rb FOR$IO_X_DASc˼Ue  FOR$IO_X_DA FOR$IO_END FOR$WRITE_SF FOR$IO_ENDTdZX FOR$WRITE_SFT\\ZVRVLb FOR$IO_T_DS FOR$IO_ENDdTdZXUNEXEMPTFOR$EXIT LIB$INDEXPԭ LIB$INDEXP,n @˸Vf˼\l˼XhZj($ ˠ LIB$INDEXPVfV\Vl( LIB$INDEXPXhXZXj< LIB$INDEXPQaRbP LIB$INDEXPd LIB$INDEXPPSSTTUUpD˂tˀ LIB$INDEX̞p<pPPP@STS^(S@dn^SXZZ^(ZnZWXWV,Vn @PQ^X\IVLENPZ)~­^(HnЭXXVS(~VXZ^(ZnZWXWY,Yn @PQ^p LIB$INDEXPV1VWWXX|G˂ˀˌ LIB$INDEXVPPXVXQQYY,n $VfVPV`Y1˜B LIB$INDEXPVVRR@STS˴Bd˸ LIB$INDEXPVPPP@YQY^(Y@anYZV^(VnVYZYV,Vn @PQ^IVLENPZ)~WXX^(XG˂nXYD(~YVZ^(ZnZYVYZ,Zn @PQ^YV,XG˂ |XG˂FOR$OPENP1 FOR$CLOSEW^YV$ LIB$INDEX,P| P0IVLEN< SYS$GETDVIW,˨ ˨ː FOR$WRITE_IFW FOR$IO_L_V?^ FOR$IO_W_R FOR$IO_ENDXd` FOR$WRITE_IFh FOR$IO_T_DSX~p^tp FOR$IO_T_V_DSx FOR$IO_T_DS8˄ˀ FOR$IO_T_DS쐫~ˈ^ˌˈ FOR$IO_T_V_DSː˨˔ː FOR$IO_T_DS FOR$IO_ENDRbRSRcWˠ LIB$INDEXPZW,n $˄˴ LIB$INDEXPZ1ZYYVVI˂ LIB$INDEXZPPVZVRRZZ,n $˄P`PQPaZ1 LIB$INDEXPZZSS@TUTCe LIB$INDEXPZPPP@RQR^(R@an^SXZ^(ZnZ\X\Z,Zn @PQ^IVLENPX)~YVV^(VI˂nV\R(~\ZX^(XnX\Z\X,Xn @PQ^,0IVLENPZW^(H nZ^(ZnZ\\Z,Zn @PQ^\X,VI˂ |V<I˂@DFOR$OPENPl FOR$CLOSEV^\X| LIB$INDEX,P| PˈIVLEN˔ SYS$GETDVIW,˨ ˨ː FOR$WRITE_IFV FOR$IO_L_V?^ FOR$IO_W_R FOR$IO_END Y FOR$WRITE_IF˸ FOR$IO_T_DSY~^ FOR$IO_T_V_DSW~^ FOR$IO_T_V_DS8 FOR$IO_T_DS쐫~^ FOR$IO_T_V_DS˨ FOR$IO_T_DS FOR$IO_ENDIVLENPVVЭYVY,V˄ \YV^(V˄nVZY^(Y\nYWZW\,\n \PQ^ LIB$INDEXP1  LIB$INDEXPVVYY@WZW$Ij(4 LIB$INDEXPVP>pPPP@QRQ^(Q@bn^SXVV^(VnVWXWY,Yn @PQ^H LIB$INDEXPZZ\\VVTL˂Xd LIB$INDEXPZP>pXtxIVLENPV)~ZZXX^(XJ˂nX\\YZ(~YZV^(VnV\Z\W,Wn @PQ^ˌ LIB$INDEXP1˜˨ LIB$INDEXPYYVV@\Z\˴Fj˸ LIB$INDEXPYP>pPPP@QRQ^(Q@bn^SXYY^(YnYVXVW,Wn @PQ^ LIB$INDEXPZZ\\YYL˂ LIB$INDEXPZP>pXIVLENPV)~ZZXX^(XJ˂nX\\WX(~WZV^(VnV\Z\Y,Yn @PQ^ XխXVWXYZ[\] ^ X,\ XbЭWGbЭVFcЭ\Ld LIB$INDEXP(˘,0 SYS$ASSIGNT LIB$INDEXP`REPLENTЫ tp SYS$DASSGN˘Zj˜Yiխ1|ˈ LIB$INDEXP\\QQ@RSR˔Ac˘ˤ LIB$INDEX\UPUU@ZYZ^(ZEinZW\\^(\n\XWXY,Yn @PQ^˴˸IVLENP\)~­^(\nЭWWYA(~YW\^(\n\XWXZ,Zn @PQ^IVLENpPP\ѭFOR$REWRITE_SF\˘ FOR$IO_T_DS FOR$IO_ENDխ FOR$WRITE_SF\˘ FOR$IO_T_DS FOR$IO_END FOR$CLOSEUNEXEMPTFOR$EXITUNEXEMPT FOR$EXIT_WP P_LIST_SUMM_REPORTGCEVGCEVYYYYYYYYYYYYYYYYYYYYYYYYU(*)K(*)I(*)<#>) JTMODACEFGETFID SYS$ASSIGN SYS$DASSGNLIB$SYS_TRNLOGLIB$GET_FOREIGNLIB$SET_SYMBOL LIB$DATE_TIME LIB$SPAWN SYS$GETJPIWIVLENEXEMPT LIB$INDEXILENFOR$OPEN FOR$CLOSE SYS$GETDVIWUNEXEMPT FOR$EXIT_WFILACCFOR$EXITREDACLOPRMSGREPLENTLIB$WAITGETPVJTSCRLPRCFILCK;$CODEK $PDATAP7$LOCAL FFFIII FFIIDDKIUICJPIJUNK FOR$DELETE FOR$IO_END FOR$IO_W_R FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$IO_T_V_DS FOR$IO_X_DA FOR$READ_SF FOR$READ_SF FOR$READ_KF FOR$WRITE_SFFOR$REWRITE_SFFOR$REWRITE_SU FOR$READ_IF FOR$READ_IF FOR$WRITE_IF FOR$WRITE_IF OTS$MOVE5_R5P.:P#:P:PP PP9P:P8"P=PpPPoP(P7PP^EPx4VPvP{PPUPRP PIPebPLfPHP/P P  Pz: P`> P\ P/ P P ; Pg V PL Z PH  P/ PP{!P}P{BP{P{bP{P{|PPP{QP{P{qP{P\PBdP:jPPSP[DP[P? PPSPP`PP P(P$&P.PPGP?PPP'PPJP.5P:PCPPPPx8P=PRP0VP,PP'P PPHP$P0PPPP0P%P -P3PPcPct Pc Pcd!Pc!PcT"Pc"P "P "Pci#Pc#PcY$Pc$PcK%Pg%P%P%P%P;(&PCp&PC&P&P&P<)P)P2<*PZ*Px*P*Pj*P3+P5+PE+Pg+P+P*+P+P,P E,PN,Pn,PZ,P,P-P-P-P-P{.PL.PB.P.P.P~/PM/PGl/PXo/PU/P;0P 0P0P*0Pj 1PA1P1P2P/2PdC2P;3P13PD4PI4Pc4P4P4P4Pe4P<5P)5P6P.7PF:7P J7P*7P 7Pj7PA58PY8P 8Pj8PAO9PY9PX5:P l:PH:PdV;P-;P-7+;2FGETFID01 3-Nov-1996 17:08DEC Fortran V6.1-68FGETFIDFGETFID4PP PD DP4[ЬЬ,(SYS$OPENPRRQAP`40GETFIDRPo FGETFIDSYS$OPENGETFIDS$CODE$PDATAp$LOCAL FFIIDD,P"!GS/ILEN01 3-Nov-1996 17:08DEC Fortran V6.1-68 ILEN ILENIPPP[}PQRRQPPQAQQ PRA ILEN3$CODE$PDATA $LOCAL)P30GETPV01 3-Nov-1996 17:08DEC Fortran V6.1-68 GETPV GETPVpPPP|[}PQмR޼ P`޼QaSRSTDT`UTUU`aVTVVaUU`VVaRSH |GETPVZ$CODE$PDATA $LOCAL'P1HPPPZ0IVLEN01 3-Nov-1996 17:08DEC Fortran V6.1-68 IVLEN IVLENYPP[}PQPмRPRRQPQSSTDTT RPSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C/LPRC01 3-Nov-1996 17:08DEC Fortran V6.1-68 LPRC LPRCP@>)P@$8@`h$$(0P[^}PQ}PQ } PQ}PQ+<~ ~(nQ^( LIB$INDEXPV1VWWQQ4G8D LIB$INDEXP1VSPSSP LIB$INDEXPXXTT@UU\D`l LIB$INDEXPXPPPYY@RR^(RIn^SZVQQTT^(TAn^SWZW,~WZY^(YnYWZWY,Yn @PQ^XxIVLENPW)~VVYY^(YFnYXXV~VXW^(WnWZXZY,Yn @PQ^-<~ ~(nQ^˄ LIB$INDEXPX1XYYWWːI˔ˠ LIB$INDEXP1XZPZˬ LIB$INDEXPR1RQQ@SS˸A˼ LIB$INDEXPRPPRUUPPEXWWZYYG LIB$INDEXPRPPPVXZZVZVSC,VZ@QQ^(QJn^SYVV^(VnVXYXW,Wn @PQ^*<~ ~(nQ^ LIB$INDEXPY1YWWVVG  LIB$INDEXP1YXPXX LIB$INDEXPVVQQ@RR$A(4 LIB$INDEXPVPPP@TT^(T@n^SWVV^(VnVXWXV,Vn @PQ^@IVLENP)~YYWW^(WInWZZV~VY­^(nЭZYZX,Xn @PQ^_ LPRC LIB$INDEXIVLENr$CODE$PDATAP$LOCALfKPpPPzPJrPPPPR-PPPP\WKr0FILCK01 3-Nov-1996 17:08DEC Fortran V6.1-68 FILCKYP FILCKP )    IUFCK P|[}PQP ޼Rb޼ SbcP$ FOR$INQUIRE8FOR$OPENP1TQQ  FOR$READ_SFk FOR$IO_L_R FOR$IO_X_DA FOR$IO_ENDPkQUUbcVTUUVVcTTVVckPl FOR$CLOSEbb |FILCKIUFCK FOR$INQUIREFOR$OPEN FOR$CLOSE$CODER$PDATA|$LOCALFSZC FOR$IO_END FOR$IO_L_R FOR$IO_X_DA FOR$READ_SF'?PZP]]PZP(P>2 0IUFCK01 3-Nov-1996 17:08DEC Fortran V6.1-68 IUFCK IUFCKPP PD D P[ЬЬ$84SYS$OPENPRR@< SYS$CONNECTPRRP$QARbRkRHDGTXABkkRkЫЫPz IUFCK SYS$CONNECTSYS$OPENGTXAB$CODE$PDATA\$LOCALFSZC)Pist:H76, Backup user allowed R/W access to this file76, Backup user allowed R/O access to this file76! Images forbidden to access file:H76 Backup user list:H76% Softlink to this file if acc denied:H76 File softlinked (r/w) to:H76- File is set to be inspected by Safety server76W76- Process accessing file has base prio set to H76* Priv mask when this file is open becomes:H761 When file opens process gains ident value (hex):H76 Old:HG$Confirm replace [Y/N/A/X]76H76 %EACF-W-File ID [@H ACE deleted. Replacing.76H76H76\76W76 No security record exists file H76 Security controls, file:H76 File id:M,M,M76 Time access permissions:H76 Max privs:\@\ Tamper xsums:[ 767 Lists key: S(filename)U(ok-users-list)V(bad-user-list)G. K(ok-tty-list)L(bad-tty-list)I(ok-image-list)G4 J(bad-image-list)B(backup-user-list)A(ACE contents)76H76$@GCY$CM:FILSAV H@\@\76\76V76\76QQ76QHQH76H76DQQQQQQQQQQQQQQQQ7 =#~^^~ cGG"4G`Bhb@ZkG0"vJ`HF, 0"QAJ`SH@FQ 0b "0"0KvJG"0"YXKvJVGY¦$"0b۲"$! 00G0BvHq JD 0bJ`SHF( 0H"0 G0B ڦJy KF ڶ-"0b ;8HvJ6D ;"L! 0(0"1"0B,2G00vHs`JD0 00J`SHF0 040"9#0B8:G0b8;&HvJ6D8;? 0808Ja H!F800"! 0B@20bs"0DtG0HvHuJDH 0H8!K`SH GH80 0BL0¦"0bP۲0T0"X0"\0B#4G0"1"G0b0"GGBb@Zk0"""& "Xb(s"C\}X"TGb(@"H""& "Xbs"C\}X"TGb(@" ""&"Xb$s"C\}X"TGb(@"$""&@"XbLs"C\}X"TGb(@"GBb@Zk4G0"G0"hQv@JpJPFhQG0bh瓦JpSJFh瓶0"0l0¦"0pײG0"pYFKxKXGpYTG0bpHxKDp0 0"x0"|0B0b000P"TGGB@Zk00¦00"00l0"h00"0BPrFPr"_'Z#X]0P"C\&"`CdX"`="0BXR"GGBb@Zk0"0Xp0P"0BPR"TG8B@ZkGB@Zk0¦P.JBl'0PGC5Cf'0"P9?G C5*C`' 0"0BPR"GhB@ZkTG4G0P"B"B@Zk0@00P" B"TGhB@ZkGGB@Zk0"9 0"!35 @0"0BR"G8B@ZkGB@Zk0¦֢0TG3@0P"0BPR"GTBTG8B@ZkGB@Zk'P#X0"! C\=X"4Gbp'@0"0PFBB0"111 B0B2B"0bs35`B0Q"`X}0"h0"9#p=0b{#x}"?&1"X}"@GPBXb@Zk0?"Bb@Zk00嵢"F&0ײ00"9?$!OC000"10BPrv`Jq JqFPr0BZ0bPHzS@KDP0唢0PզJtJFPն0T7!KT70P"0T"B"&s"X}C\]'P{#`}0`"CdX"0"1"`]"tGBb@Zk0"0&0"q0`"0B`R"G8B@ZkGB@Zk;`b"0¦֢0"4G`Xݶ4Gh="pxTG"tG_&R"X"GBb@ZkG{&b""tG_&R"GGBb@ZkG4G0"@B"B@Zk0@00"y0`"0BR"G8B@ZkGB@Zk?$P! X=0`"C\#4GGX]"0bhs"0"GGBb@Zk0`0"0BR"G8B@ZkGB@Zk0"!0¦ 60G0Gp?#9"C"#?0FB B 0"0BR"GhB@Zk4GGB@ZkG4G0"@B"B@Zk0@00"9 0"!35 @0"0BR"G8B@ZkGB@Zk\""&"Xݲ0 C\X"TGb&@0"4G0"0BR0bs2SB0@B0T0浢05B0C"4GB"B@Zk 0¦֢0B0ײ0C0"90 C0"!B"00"115 B0B0bs"qB`=X0B Z#h]"?&1"X}"@ "GPBXb@Zk035@0"0BR"G8B@ZkGB@Zk0"!| G4G0"B"B@Zk0@0$0"$935 C0"0BR"G8B@ZkGB@Zk0"$!G3B0"0BR"GTBG8B@ZkGB@Zk\""&"X0#C\X"TGb&@0"0p0"0BR"G8B@ZkGB@Zk""& "Xݲ0#C\X"TGb%@0"(""& "X0bs"C\}X"TGb%@0",xB""0"(10bs"0,攢0"0¦P"`ݶXp}h=x0" ! ="?&1"X}"@"GpBxb@Zk0xG4G0"B"B@Zk0@0$0"$9G39@0"0BR"GTBG8B@ZkGB@ZkG4G0"B"B@Zk0@0$0"$9 =G39@0"0BR"GTBG8B@ZkGB@Zk\""&"Xݲ0 C\X"TGb%@0"0p0"0BR"G8B@ZkGB@Zk""& "Xݲ0#C\X"TGbq%@0",8B""0",10bs"0P"`X0⦜"hx}p=0b {#}"?&1"X}"@D"GpBxb@Zk""$ X0P"C\X"TGbG%@0"0TGG0P"B"B@Zk0@Ib"H#G4G=_"]4GTGtG}G=TG="G_&R""GBb@ZkG!"!0P0"10BT20bPs3fJfJ04t0P嵦5JJ0¦8液0P7JJ0<0"P0JJ?" B(b@Zk004浢0¦֢&NB04渲b"0" 90"! 00"1"`=X=p=h04"x0¦8"ݶ0<#"G_&R"X"@p"GPBXb@Zkb"H"(!  "1"BRL"="0"9#=G}=]0#"G_&R""@"GPBXb@Zk$ X0"C\X"4G B(b@Zk0"0P"0BPR"TGhB@Zk""&"Xݲ0P#C\X"TGb$@0"@TGTG0P" B"B@Zk0@00"9T 0"!4 @TG10B4G0CP"B"B@Zk0@0D0"D90"!!C0 @0D00"D10BR12B1Q B0bH30D攢41B0L敲0¦֢4B0@0BDZ 5@C7B4GwB#!C!D C # C#"GB"8B@Zk0B@BPR"G8B@Zk0P"0BPR"GTG8B@ZkA"G8B@ZkGB@ZkG""'#X0P"C\X"TGb$@0"@@b"G0"@10BPR"0"`Xp]h="G_&R"X"@"GPBXb@Zkb""G_&R"GGBb@Zk4G@GHGP]4G8Hb"0¦0֢0P"4GݶtG}G=TG]"4G=@_#]tG}8"GTG"TG_&R""GBb@ZkG #TGG0P"B"B@Zk0@`0 0"9#8vK?$GX=C\=X"0"P1"GGGGBb@Zk0"00F0"0BR0bPs@ `GBb@Zkh"4GBb@Zk`b"0P ? `X="TG_&R"X"@"GpBxb@ZkG4G0T00P"0"P1"0BTR"tG0B8b@Zk0T"TG_&R"GG0B8b@ZkGBb@Zk"4GBb@ZkTGG0P"B"B@Zk0@$00x0P"0BPR"?"8B@Zk B"G8B@ZkGB@Zk0"09 C0"!@b"0¦֢0P"`Xݶ"h4Gp=TGxTG}TG="G_&R"X"GBb@ZkG" 0?& 1"X=C\=0P"0vJ&F`CdX"`="TGBb@Zk`b"0P ? `X="TG_&R"X"@"GpBxb@ZkG0"P!0P00"T10BT20P"?"GB@Zk@?"TG0"B"B@Zk0@0X0"X9) 0"X!4 @0P"0CR"?"hB@Zk4GGB@Zk?"4G0P"B"B@Zk0@0\0"\9 0"\!35 @0P"0BPR"?"8B@ZkGB@Zk""&"Xݲ0P C\X"TGb"@0"`0P0JJ0"40BPR2DJFJ0b8S0P唦4JJ0<敲0¦P0JJ?" B(b@Zk0040"9&4OC04敲B""0"`!0P"0"P1"`=Xݶph=04"x08#0<""?&1"X}"@"GpBxb@Zk""$ X0P"C\X"TGbU"@0"``b"0`0"P1"`=X"G_&R"X"@"GPBXb@Zk6Ðb""G_&R"GGBb@ZkGBb@Zk"4GBb@ZkTGG0P"pB"B@Zk0@Z00x0P"0BPR"?"8B@ZkB"G8B@ZkGB@Zk0"09 C0"!0¦d@b"00P `X"h4Gp]TGx]TG=TGݶ"G_&R"X"GBb@ZkG(" 0?& 1"X=C\=0P"0vJ&F`CdX"`="TGBb@Zk`b"0P ? `X="TG_&R"X"@"GpBxb@ZkG0"P!0P00"T10BT20P"?"GB@Zk@?"TG0"B"B@Zk0@0X0" =X9) 0"X!4 @0P"0CR"?"hB@Zk4GGB@Zk?"4G0P"B"B@Zk0@0\0"\9 0"\!35 @0P"0BPR"?"8B@ZkGB@Zk""&"Xݲ0P C\X"TGbx!@0"`0P0JJ0"40BPR2DJFJ0b8S0P唦4JJ0<敲0¦P0JJ?" B(b@Zk0040"9&4OC04敲0¦֢0"h0d0"h1B0BdB""0B`Z0bP{#0P `X}p}h]04"x0¦8"ݶ0<"0h""?&1"X}"@"GpBxb@Zk""$ X0P"C\X"TGb!@0"``b"0`0"P1"`=X"G_&R"X"@"GPBXb@Zk(Ðb""G_&R"GGBb@ZkB" 0"P! `=X0bds"h}"?&1"X}"@L"GpBxb@Zk ?$ ! X=C\0BPR"& s"`}Cd]X"`="TGBb@ZkGBb@Zk"4GBb@ZkTGG0P"B"B@Zk0@00x0P"0BPR"?"8B@Zk8B"G8B@ZkGB@Zk0"09 C0"!@b"0¦֢0P"`Xݶ"h4Gp=TGxTG}TG="G_&R"X"GBb@ZkG" 0?& 1"X=C\=0P"0vJ&F`CdX"`="TGBb@Zk`b"0P ? `X="TG_&R"X"@"GpBxb@ZkG0"P!0P00"T10BT20P"?"GB@Zk@?"TG0"B"B@Zk0@0X0"X9) 0"X!4 @0P"0CR"?"hB@Zk4GGB@Zk?"4G0P"B"B@Zk0@0\0"\9 0"\!35 @0P"0BPR"?"8B@ZkGB@Zk""&"Xݲ0P C\X"TGb @0"`0P0JJ0"40BPR2DJFJ0b8S0P唦4JJ0<敲0¦P0JJ?" B(b@Zk0040"9&4OC04敲B""0"`!0P"0"P1"`=Xݶph=04"x08#0<""?&1"X}"@X"GpBxb@Zk""$ X0P"C\X"TGb@0"``b""G_&R"G@"GPBXb@Zk`b"0`0"P! `=X"G_&R"X"@"GPBXb@Zk`b"0X G`X="G_&R"X"@"GPBXb@Zk8b"0p `GX"G_&R"X"@"GPBXb@Zk8b"0x `GX"G_&R"X"@@"GPBXb@Zk8b"0 `GX"G_&R"X"@"GPBXb@Zk@?"TG0"B"B@Zk0@0l0"l9C 0"l!05 @@?"10B4G0C"B"B@Zk0@0p0"p90"l!!C!Q @0p00"p10BlR4@B35B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t`b"0t0"P9#`=X"G_&R"X"@"GPBXb@Zk@?"TG0"xB"B@Zk0@0l0"l9?0"l!05 @@?"10B4G0C"B"B@Zk0@0p0"p90"l!!C!Q @0p00"p10BlR4@B35B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t`b"0t0"P9#`=X"G_&R"X"@"GPBXb@Zk@?"TG0"B"B@Zk0@0l0"l9C 0"l!05 @@?"10B4G0C"B"B@Zk0@0p0"p90"l!!C!Q @0p00"p10BlR4@B35B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t`b"0t0"P9#`=X"G_&R"X"@"GPBXb@Zk@?"TG0"B"B@Zk0@0l0"l9C 0"l!05 @@?"10B4G0C"B"B@Zk0@0p0"p90"l!!C!Q @0p00"p10BlR4@B35B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t`b"0t0"P9#`=X"G_&R"X"@<"GPBXb@Zk@?"TG0"B"B@Zk0@0l0"l9C 0"l!05 @@?"10B4G0C"B"B@Zk0@0p0"p90"l!!C!Q @0p00"p10BlR4@B35B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t`b"0t0"P9#`=X"G_&R"X"@t"GPBXb@Zk@?"TG0"B"B@Zk0@0l0"l9C 0"l!05 @@?"10B4G0C"B"B /=@Zk0@0p0"p90"l!!C!Q @0p00"p10BlR4@B35B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t`b"0t0"P9#`=X"G_&R"X"@"GPBXb@Zk@?"TG0"B"B@Zk0@0l0"l9C 0"l!05 @@?"10B4G0C"B"B@Zk0@0p0"p90"l!!C!Q @0p00"p10BlR4@B35B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t`b"0t0"P9#`=X"G_&R"X"@"GPBXb@Zk00"x0xPF0"x0BxR @`b""G_&R"G@"GPBXb@Zk0x `b""G_&R"G@<"GPBXb@Zk@?"TG0"B"B@Zk0@0l0"l9C 0"l!05 @@?"10B4G0C"B"B@Zk0@0p0"p90"l!!C!Q @0p00"p10BlR4@B35B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t`b"0t0"P9#`=X"G_&R"X"@t"GPBXb@Zk@?"TG0"B"B@Zk0@0l0"l9C 0"l!05 @@?"10B4G0C"B"B@Zk0@0p0"p90"l!!C!Q @0p00"p10BlR4@B35B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t`b"0t0"P9#`=X"G_&R"X"@"GPBXb@Zk@?"TG0"0B"B@Zk0@0l0"l9C 0"l!05 @@?"10B4G0C"B"B@Zk0@0p0"p90"l!!C!Q @0p00"p10BlR4@B35B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t`b"0t0"P9#`=X"G_&R"X"@"GPBXb@Zk@?"TG0"B"B@Zk0@0l0"l9C 0"l!05 @@?"10B4G0C"B"B@Zk0@0p0"p90"l!!C!Q @0p00"p10BlR4@B35B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t`b"0t0"P9#`=X"G_&R"X"@"GPBXb@Zk@?"TG0"B"B@Zk0@0l0"l9C?0"l!05 @@?"10B4G0C"B"B@Zk0@0p0"p90"l!!C!Q @0p00"p10BlR4@ SAFETY013.A  %[EVERHART.JTDEMO]JTAUTHMAINT.OBJ_A;29Z>&@B35B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t4G0"|0"|!!5 @0BP.J0"0BR@B0bs`BSF_0攢5B0B|Z0@C0b|[`b""G_&R"G@0"GPBXb@Zk0u@.@B"G0|0"0BPq.qJ0"`X=h}"?&1"X}"@l"GpBxb@Zk`b"0 `TGX"G_&R"X"@x"GPBXb@Zk0|@0"|0B60"|Q08"0CPR"GhB@ZkB"G0⦰"`Xݶ08 pGh"?&1"X}"@"GpBxb@Zk`b"0 `GX"G_&R"X"@"GPBXb@Zk0|0@0"|m0Bx0"|Q08"0CPR"GhB@ZkB"G0⦰"`Xݶ08 pGh"?&1"X}"@"GpBxb@Zk`b"0 `GX"G_&R"X"@"GPBXb@Zk0|0@0"|3Ðb""G_&R"GGBb@ZkGBb@Zk"4GBb@ZkTGG0P"HB"B@Zk0@TGtG0P"HB"B@Zk0@0TGG0P"HB"B@Zk0@0"0CTG38@0P"0BPR"GTB?"8B@ZkGB@Zk""&"Xݲ0P C\X"TGbo@Ӡ@0"P!?D @$@ 0P"0BQR"?"hB@Zk4GGB@Zk0"0BPR"4GhB@ZkGGB@Zk0P"0BQR"?"hB@Zk4GGB@Zk?"4G0P"0B_BR"B@Zk0@00"9= C 0"!35 @0P"0BPR"?"8B@ZkGB@Zk0¦֢"3B0P"0BPR"GTB?"8B@ZkGB@Zk00P"?"GB@Zk?"4G0P"0B_BR"B@Zk0@00"9q 0"!= @ 035B0P"0BPR"?"8B@ZkGB@Zk4G0⦈ײ0ೈ""'#X0"P! C\=X"TGb@0"0""_&R"X]0P"C\X"TGb@0"`b"0P"?"`X="TG_& `?=R"X"@"GpBxb@ZkG)0"0@?"0Br0"0B_BPR"B@Zk0@00"9 0"!c 0"""_&@R"X]C\X"TGb@0"`b"00"1"`=X"G_&R"X"@8"GPBXb@Zk`b"G0"@! `=X"G_&R"X"@t"GpBxb@Zk0@D@5 @,0"@!?D @5/@& 0@FB B0"@1?F B-B?0B@R_F@B5HB@0b@sF`B5lB`00@嵦FBB0¦@֦FBB0⦜5B20@?#38C0"0BR"GTB@?"8B@ZkGB@Zk00"a@"#6CF C # C#"0BPR"@?"8B@Zk0BR"@"8B@Zk0"@?"V"hB@ZkG0⦜=BY0"9 00"! 5@!5 @00¦֢C65B@"3B@?"1!B0"GB0BR"GTB8B@ZkGB@Zk0⦌60"9095 C!5C0`0¦֢0浢B75B@" B`B#$CD C # C#"G0B_BPR"8B@Zk0BWBR"G8B@Zk@#1C0"GBD"G8B@ZkGB@ZkG4G00"!0 @080"99C?0愠`b""TG_&R"GGBb@ZkGBb@Zk"4GBb@ZkTGG0P"@B"B@Zk0@0 愠0#$vH?'DXC\X"0"P1"GGGGBb@Zk00"!0 D000"10BPR @GBb@Zkh"4GBb@Zk`b"0P  `X"TG_&R"X"@"GpBxb@ZkG=4G0"T恰0P"0"1"0BPR"tGBb@Zk0$HH@EV$GC @0P"?"GB@Zk@?"TG0"B"B@Zk0@0X0"X9# 0XD0P"0CR"?"hB@Zk?"4G0P"B"B@Zk0@0\0"\9 0\d0P"0BPR"?"8B@ZkGB@Zk""?$! X=0P"C\X"TGb@0`B"? 0P"0"`10bPs"0P"`X=pGh}x="?&1"X}"@"GpBxb@Zk""$ X0"P! C\=X"TGb@0`b"0"!0P"`X="G_&R"X"@"GPBXb@Zk0愠0P $vH?$DX=C\X"4G@BHb@ZkEV$GC 0"8灴0@@?"TG0"B"B@Zk0@00"95?0愠4@0P"0CR"?"hB@ZkGGB@Zk?"4G0P"B"B@Zk0@0\0"\9?0\愠35@0P"0BPR"?"8B@ZkGB@Zk0"\!p!@0¦60⦬FFX08"X]"4GhB@Zk0\ 5@0P"0B8R"GhB@Zk0BPR"G?"8B@ZkGB@Zk0x0"0BPR"?"8B@ZkPB"TG8B@ZkGB@Zk0"90 C0$0"!0¦\60\"0\0C#.UJ>0\0B0"\0B\RR"_0P"0"P1"0BR"tGBb@ZkGBb@Zk"4GBb@Zk4G0怰tG0\0`b"0"P1"_"G`=X]"hpx'8{#}@ #"TG_&R"X"h"GBb@ZkGG0\dG0"\0\0"\1u(B 0B\RFB @0b0"4G B(b@Zk0"0"X0B`20bh&"0p"0¦t0"GGB@Zk0⦤00"0"B"GhB@Zk4?"GB@Zk0P"!0¦T60⦴"""'@#XC\X"TGb}@00"!.@00`b"0"P1"0BR`=X]"TG_&R"X"@0 "GPBXb@Zk`b"0P  G`XBR"h]p=x&8"@"9##>"TG_&R"X"h"GBb@ZkGG0\dG0"\4G0"BR0bS0啲TGG0P"0B"B@Zk0@0 "TG_&R"GG0B8b@Zkb""TG_&R"GGBb@ZkGBb@Zk"4GBb@ZkTGG0P"B"B@Zk0@D0愠 GBb@Zk"4GBb@ZkB" 0P 0"P! `=XpGh"?&1"X}"@"GpBxb@Zk $ XC\0"P1"_&R"`]Cd=X"`="TGBb@Zk 8O= 0X ?$! X=C\_&R"`]CdX"`="TGBb@ZkB" 0p 0"P! `=XpGh"?&1"X}"@"GpBxb@Zkp $ XC\0"P1"_&R"`]Cd=X"`="TGBb@ZkB" 0x 0"P! `=XpGh"?&1"X}"@"GpBxb@Zk $ XC\0"P1"_&R"`]Cd=X"`="TGBb@ZkB" 0 0"P! `=XpGh"?&1"X}"@"GpBxb@Zk $ XC\0"P1"_&R"`]Cd=X"`="TGBb@Zk@?"TG0"B"B@Zk0@0l0lG0"l905 C@? 10@4G0C"B"B@Zk0@0p0p0"l9C8QC0"p0p0"l14 B3B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t 0"t9?$! X=C\0P"9v K?&1G`=CdX"`="TGBb@Zk@?"TG0"xB"B@Zk0@0l0lG0"l905 C@? 10@4G0C"B"B@Zk0@0p0p0"l9C8QC0"p0p0"l14 B3B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0th 0"t9?$! X=C\0P"9v K?&1G`=CdX"`="TGBb@Zk@?"TG0"B"B@Zk0@0l0lG0"l905 C@? 10@4G0C"B"B@Zk0@0p0p0"l9C8QC0"p0p0"l14 B3B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t 0"t9?$! X=C\0P"9v K?&1G`=CdX"`="TGBb@Zk@?"TG0"B"B@Zk0@0l0lG0"l905 C@? 10@4G0C"B"B@Zk0@0p0p0"l9C8QC0"p0p0"l14 B3B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0tx 0"t9?$! X=C\0P"9v K?&1G`=CdX"`="TGBb@Zk@?"TG0"B"B@Zk0@0l0lG0"l905 C@? 10@4G0C"B"B@Zk0@0p0p0"l9C8QC0"p0p0"l14 B3B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t 0"t9?$! X=C\0P"9v K?&1G`=CdX"`="TGBb@Zk@?"TG0"B"B@Zk0@0l0lG0"l905 C@? 10@4G0C"B"B@Zk0@0p0p0"l9C8QC0"p0p0"l14 B3B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0tX 0"t9?$! X=C\0P"9v K?&1G`=CdX"`="TGBb@Zk@?"TG0"B"B@Zk0@0l0lG0"l905 C@? 10@4G0C"B"B@Zk0@0p0p0"l9C8QC0"p0p0"l14 B3B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t 0"t9?$! X=C\0P"9v K?&1G`=CdX"`="TGBb@Zk00x怰0"x!P D0x00"x1 (B"@b"&"XC\]&"`Cd}X"`="TGBb@Zk0x愠( " &"XC\&s"`}Cd=X"`="TGBb@Zk@?"TG0"B"B@Zk0@0l0lG0"l905 C@? 10@4G0C"B"B@Zk0@0p0p0"l9C8QC0"p0p0"l14 B3B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0tH 0"t9?$! X=C\0P"9v K?&1G`=CdX"`="TGBb@Zk@?"TG0"B"B@Zk0@0l0lG0"l905 C@? 10@4G0C"B"B@Zk0@0p0p0"l9C8QC0"p0p0"l14 B3B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t 0"t9?$! X=C\0P"9v K?&1G`=CdX"`="TGBb@Zk@?"TG0"B"B@Zk0@0l0lG0"l905 C@? 10@4G0C"B"B@Zk0@0p0p0"l9C8QC0"p0p0"l14 B3B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t 0"t9?$! X= _=C\0P"9v K?&1G`=CdX"`="TGBb@Zk@?"TG0"0B"B@Zk0@0l0lG0"l905 C@? 10@4G0C"B"B@Zk0@0p0p0"l9C8QC0"p0p0"l14 B3B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t` 0"t9?$! X=C\0P"9v K?&1G`=CdX"`="TGBb@Zk@?"TG0"B"B@Zk0@0l0lG0"l905 C@? 10@4G0C"B"B@Zk0@0p0p0"l9C8QC0"p0p0"l14 B3B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t 0"t9?$! X=C\0P"9v K?&1G`=CdX"`="TGBb@Zk@?"TG0"B"B@Zk0@0l0lU0"l905 C@? 10@4G0C"B"B@Zk0@0p0p0"l9C8QC0"p0p0"l14 B3B0P"0BR"GTB?"8B@ZkGB@Zk0¦p֢0l6B61B0t4G0"晰" #&"XC\=_&R"`]CdX"`="TGBb@Zk(  ?$! X=C\_&R"`]CdX"`="TGBb@Zk  ?$! X=C\_&R"`]CdX"`="TGBb@Zk  ?$! X=C\_&R"`]CdX"`="TGBb@Zk0愠$5@0@P , H000"1 B0BR@B2F 0bs5`B`0攢0B0敲" "'#XC\ݲ'{#`}CdX"`="TGBb@Zk0愠u@0@B"G0"!0BP0.0J0bs"`}Xh="?&1"X}"@"GpBxb@Zk( $ XC\0"1"_&R"`]Cd=X"`="TGBb@Zk0愠Ѐ@0怰0"! @8 0P08"0CPR"GhB@ZkB"G0⦰"`Xݶ08 pGh="?&1"X}"@"GpBxb@Zk $ XC\0"1"_&R"`]Cd=X"`="TGBb@Zk0愠0@0怰c0"! @8 0P08"0CPR"GhB@ZkB"G0⦰"`Xݶ08 pGh="?&1"X}"@"GpBxb@Zk $ XC\0"1"_&R"`]Cd=X"`="TGBb@Zk0愠0@0怰'TGG0P"B"B@Zk0@ GBb@Zk"4GBb@ZkTGG0P"XB"B@Zk0@0愠`b"00"9#`=X"G_&R"X"@"GPBXb@ZkGBb@Zk"4GBb@ZkB" 0P 0"P! `=XpGh"?&1"X}"@"GpBxb@Zk $ XC\0"P1"_&R"`]Cd=X"`="TGBb@Zk 0X ?$! X=C\_&R"`]CdX"`="TGBb@ZkB" 0p 0"P! `=XpGh"?&1"X}"@"GpBxb@Zkp $ XC\0"P1"_&R"`]Cd=X"`="TGBb@ZkB" 0x 0"P! `=XpGh"?&1"X}"@"GpBxb@Zk $ XC\0"P1"_&R"`]Cd=X"`="TGBb@ZkB" 0 0"P! `=XpGh"?&1"X}"@"GpBxb@Zk $ XC\0"P1"_&R"`]Cd=X"`="TGBb@Zk`b"0儠0 `X"G_&R"X"@("GPBXb@Zk0P0P倰0"T!0T00"P11&J&J0BXR"SF@_&rN2B040P嵦5JJ0¦液0XF0b"0"9#X=0b{#`}0 h"G_&R"X"@T"GPBXb@Zk`b"0X G`X"G_&R"X"@"GPBXb@Zkxb"0p `GX="G_&R"X"@"GPBXb@Zk8""0x `GX="X]"tGBb@Zk`b""G_&R"G@"GPBXb@Zk4G0怰G004G0Bx2`b"0攢0浢55B4B0C"`X"G_&R"X"@ "GPBXb@Zk0愠@0怰0"!,@000"x10 B0Bx20bxsbBGBb@Zk"4GBb@ZkTGTG0P"pB"B@Zk0@0TGTG0P"B"B@Zk0@0"@?"GB@Zk#0"p 0"t0t0¦|0"X0B`0bhTGTG0P"XB" n=B@Zk0@ 00"x0x愠TD0"x恰0x0"TGTG0P"B"B@Zk0@ 00"x0x愠QD0"x恰0x0"TGtG0P"hB"B@Zk0@00"TGtG0P"8B"B@Zk0@;TGtG0P"8B"B@Zk@0005CTG10C4G0CP"B"B@Zk0D0D 0"90"D!!C!1 @000"10BR45@B14B0bS"0u"0¦P"B1v J&7FX=\X"0"D1"Gb/ @00x0"|0TGTG0P" B"B@Zk0@ 0P"B"4GhB@Zk4GGB@Zk4G0"0TGTG0P"`B"B@Zk0@4G0"TGTG0P"B"B@Zk0@0 'D0"TGTG0P"xB"B@Zk0@0$G0"TGTG0P"B"B@Zk0@00C00"995 CTG0BP0.r0HQ0J2FP0>0bs`F0t00¦֢~0BB"#00 0P#`X}ph"?&1"X}"@ "GpBxb@Zkp"" X"X]"tGBb@Zk"" X"X]"tGBb@Zk0愠5@ "TG_&R"GG0B8b@Zk""$ X0"P! C\=X"TGb @0`0"`!0P"!v H?&1DX=C\0"#X"GGGGGGPBXb@Zk00"! G0G0"1 TG0bS0攢45B0BP.VJP>071B0TGTG0P" B"B@Zk0@0"0儠C04CTG10@4G0CP"B"B@Zk0@0"D0D愠0@0@0"D恰0D0"10B0QB0BH0bDs0唢4B3tB31`B0P"B3v`J&vFX@ SAFETY013.A  %[EVERHART.JTDEMO]JTAUTHMAINT.OBJ_A;29A>E}\X"0"H1"0BR"0bs"Gb @0愠0p倰0"!0t04G0B2TGTG0P"B"B@Zk0@00"9 0愠0"!4 @TG10B4G0CP"B"B@Zk0@0D0"D90儠$C0@0"D恰0D0"10B0QB0BH0bsP`B0t0D浢51B0¦D液B"0D0BZ:5@C7B0bP{#zC`]X0"9#p=Gh"?&1"X}"@ "GPBXb@ZkGG0p"0"1"0BR"0bxs"GBb@Zk0愠0@0怰0"!"@0D00"10BH20bs0Lt0x嵢0¦P網0|0T0"D90BZ 5@C9 CX"0B"4GhB@Zk0BHR"GhB@Zk0P"GBGX]"4G8B@ZkGB@Zk0愠@0"恰TGTG0P"B"B@Zk0@00"90$0"! 00"14 BTG1PB4G0CP"B"B@Zk0@0D0D愠0"9@0@0"D恰0D0"0BDR0bs2SB2Q@B0HT0嵢PB0¦嶲0D71B0BDB"0bD{0 5@;`C0P#C`X}0 pGh="?&1"X}"@ "GPBXb@ZkGn0p"0"1"0BR"0bxs"GBb@Zk0愠0@0怰0"D!000"1"B0BD20bs0Ht0嵢0¦L網0x0P0"|90BT:0bD{0 5@$`CX"(B"4GhB@Zk0BHR"GhB@Zk0P"GBGX]"4G8B@ZkGB@Zk0"!"@0¦60=B0CF0"9095 C 5@0愠4@TG3BTG1B0P"GB0BPR"GTB8B@ZkGB@Zk4TGTG0P"B"B@Zk0@00"9j 0愠gB"0"!0CQ! `=TGX=0"h"?&1"X}"@ "GPBXb@ZkGO0焠0"!#@IH 0G00B0B0bs0t00p"0"1"0BR"0bxs"GBb@Zk0x儠0H瀰0"|!0L00"10 B0B20bs65`B0產FFX`"@B"4GhB@ZkX]"4GhB@Zk0BHR"GhB@Zk0P"GB`]"GhB@Zk0B0TGTG0P"B"B@Zk0@0"0焠%8B"04CTG!8@0P"B`X=0"h0¦ "pݶ"?&1"X}"@ "GPBXb@ZkG0焠0"p0 0"tTGTG0P"B"B@Zk0@00"9* 0焠4@TG10@4G0CP"B"B@Zk0@0 0" 90焠$C0@0" 灰0 0"10B0QBB 0BR4@B0 ~=X"0CPR"GhB@Zk""0 '#X0"P! C\=&"`Cdݲ&s"h}Cl_'@Z#p]CtX"`="h]"p}"Gb @p x 0"! &"X0BPR"C\]&"`Cd&"hCl_'@Z#p]Ct=X"`="h]"p}"Gb @Ӹ  0"! &"X0BPR"C\]&"`Cd&"hCl_'@Z#p]Ct=X"`="h]"p}"Gb @x  0"! &"X0BPR"C\]&"`Cd&"hCl_'@Z#p]Ct=X"`="h]"p}"Gb @  0"! &"X0BPR"C\]&"`Cd&"hCl_'@Z#p]Ct=X"`="h]"p}"Gbu @`  0"! &"X0BPR"C\]&"`Cd&"hCl_'@Z#p]Ct=X"`="h]"p}"GbT @  0"! &"X0BPR"C\]&"`Cd&"hCl_'@Z#p]Ct=X"`="h]"p}"Gb3 @TGTG0P"hB"B@Zk0@0x0|TGTG0P"B"B@Zk0@0"90x$"0|X"0"! 9v K&0GXC\=X"tGb @@?"TG0"B"B@Zk0@0040"905 C@? 10@4G0C"B"B@Zk0@0L0L"0"L90"!!C!Q @0L00"10BR55 B25@B0bLs4`B@"3B@"1B0"GB0BR"GTB8B@ZkGB@Zk0 ""$@ XC\X"TGb@00"!0Т0"q4GwB# CD C # C#"G0B_BR"8B@ZkB"G8B@ZkTGyB#7CF C # C#"GB"8B@Zk@"G8B@Zk@#1C0"GBW"G8B@ZkGB@ZkTGTG0P"B"B@Zk0@0"0G0焠4@TG10@4G0CP"B"B@Zk0@0" 0 0焠C0" 灰0 0"10B0QBB0"GGB@Zk"0¦液0⦬0F0"0 0"!!C!Q @ @ @?"TG0"0B"B@Zk0@00"91 005C@? 10@4G0C"B"B@Zk0@0L0"L9 0L0"!C0 @0L00"Q0b波0LԢ@"3B@_#1UC0"GB0BR"GTB8B@ZkGB@Zk0 ""$@ XC\X"TGb@00"!0Т0" 10BR4@B32B4GwB# CD C # C#"G0CPR"8B@ZkB"G8B@ZkTGyB#7CF C # C#"G0B"8B@Zk@"G8B@Zk@#1C0"GBW"G8B@ZkGB@Zk0"¦֢0ز0" !04B37@0P"0BPR"GTBTG8B@ZkGB@Zk`b"0 焠04@$@0"P9# C4G`X4Gh"pxݶTG"tG_&R"X"GBb@ZkGb""tG_&R"GGBb@Zk0`倰"!0d00"1B20bstTG4G0P"@B"B@Zk0@00"y0"0BPR"G8B@ZkGB@ZkT""$P X0¦"C\ݲX"TGb@0 ?$P! X=0"1"C\=#4GGX]"0bhs"0"GGBb@Zk0d0"0BR"G8B@ZkGB@ZkB"G0"! `=X0`#h"?&1"X}"@ "GpBxb@Zk`""0d X"X]"tGBb@Zk0儠@0$瀰B"0"! GX""4G`=Xp=h}"?&1"X}"@ "GpBxb@ZkGWG 0"$!?D?DX=p"X]"4GhB@Zkp"hݶ4G`"G`]"tGBb@ZkG>"" 4G0"`X=pGh"X]"tGBb@ZkG, 0"!?D?DX=p"X]"4GhB@Zkp"hݶ4G`"G`]"tGBb@ZkG`""0儠0"! `=X"X]"tGBb@ZkG04D0"G0(TGTG0P"B"B@Zk0@00"9 4G0"(灰0"GGB@ZkTGTG0P"B"B@Zk0@00"9f 0焠4@TG10@4G0CP"B"B@Zk0@0 0" 90焠$C0" 灰0 0"10B0QBB0"GGB@Zk"0¦液0⦬0 =F00" 90"!!!C!Q @ @0 @?"TG0"B"B@Zk0@0010"905 C@? 10@4G0C"B"B@Zk0@0L0L0"L90"!!C0 @0L00"Q0b波0LԢ@"3B@_#1UC0"GB0BR"GTB8B@ZkGB@Zk0 ""$@ XC\X"TGb@00"!0Т0" 10BR4@B32B4GwB# CD C # C#"G0CPR"8B@ZkB"G8B@ZkTGyB#7CF C # C#"GB"8B@Zk@"G8B@Zk@#1C0"GBW"G8B@ZkGB@Zk0 ""?'@9#X=C\X"TGbL@0,0"(!5 @ G0,P0",1@"1qB0"GBB"tG8B@ZkGB@ZkG¦֢0ײ0"0 0焠4@3@0P"0BPR"GTBTG8B@ZkGB@Zk`b"0" !0¦֢4B!6@0P"B4G`ݶX=4Gh"pxTG"tG_&R"X"GBb@ZkGb""tG_&R"GGBb@Zk0`倰"!0d00"1B20bstTG4G0P"@B"B@Zk0@00"y0"0BPR"G8B@ZkGB@ZkT""$P X0¦"C\ݲX"TGb@0 ?$P! X=0"1"C\=#4GGX]"0bhs"0"GGBb@Zk0d0"0BR"G8B@ZkGB@ZkB"G0"! `=X0`#h"?&1"X}"@ "GpBxb@Zk`""0d X"X]"tGBb@Zk0儠P@0$瀰B"GX"4G0bs"`}X=ph="?&1"X}"@ "GpBxb@ZkGeG 0"$!?D?DX=p"X]"4GhB@Zkp"hݶ4G`"G`]"tGBb@ZkGL 0"(!?D?DX=p"X]"4GhB@Zkp"hݶ4G`"G`]"tGBb@ZkG4""0 `GX"X]"tGBb@ZkG& 0"!?D?DX=p"X]"4GhB@Zkp"hݶ4G`"G`]"tGBb@ZkG`""0儠0"! `=X"X]"tGBb@ZkGG""$$ X0"C\X"TGb@000"0! @0 00"0BR0b0sSB0T0浢 0¦0v0P"0BR"TG8B@ZkGB@Zk000"900`TG1@0P"GB0BR"8B@ZkGB@ZkTGTG0P"B"B@Zk0@@?"TG0"B"B@Zk0@00"94 005C@? 10@4G0C"B"B@Zk0@0L0"L9" 0L0"!C!Q @0L00"10BR55 B25@B0bLs4`B@"3B@"1B0"GB0BR"GTB8B@ZkGB@ZkTGTG0P"B"B@Zk0@00"905 CTG1C4G0CP"B"B@Zk0@0L0"L9[ 0L0"!C!Q @0L00"Q"""&@s"X}C\]X"TGb?@00"!0Т0"L10BR4@B32B4GwB# CD C # C#"G0CPR"8B@ZkB"G8B@ZkTGyB#7CF C # C#"GB"8B@Zk@"G8B@Zk@#1C0"GBW"G8B@ZkGB@ZkGTGTG0P"B"B@Zk0@@?"TG0"B"B@Zk0@0"040愠05@@? 10@4G0C"B"B@Zk0@0"L0L"0L愠0"!@!Q @0L00"10BR55 B25@B0bLs4`B@"3B@"1B0"GB0BR"GTB8B@ZkGB@ZkTGTG0P"B"B@Zk0@0"005CTG1@4G0CP"B"B@Zk0@0"L0L[0L愠0"!@!Q @0L00"Q"""&@s"X}C\]X"TGb}@00"!0Т0"L10BR4@B32B4GwB# CD C # C#"G0CPR"8B@ZkB"G8B@ZkTGyB#7CF C # C#"GB"8B@Zk@"G8B@Zk@#1C0"GBW"G8B@ZkGB@ZkG0@0"40¦֢[040"P6JGFPG0PVJa1 HFP4G0P0 JaQ H!FP0G0BPraJaq HaFPr0唢0BPzbKtJtGPz0T V KT 0¦TJT0 p=THTEV$GC 0X041B0"a0\"0BPR"8B@ZkGB@Zk00" C\9#.VJ>00C]#,DH<0"!0B^".PJ>G4G0`"@B"B@Zk0@0"0愠0`#$vH?$DX=C\X"0"1"GGGGGBb@Zk0TGTG0P"B"B@Zk0@ 0"1"0BPR"tGBb@Zk04GBb@Zk0"!0P0"10BT20bs`@?"TG0"B"B@Zk0@00"90 0儠05@@? 10@4G0C"B"B@Zk0@0D0"90D愠$C0@0"D恰00"125B15 B0bD波@"3B@"1B0"GB0BR"GTB8B@ZkGB@Zk0⦴"""$@ XC\X"TGbC@00"!0Т0"q4GwB# CD C # C#"G0B_BPR"8B@ZkB"G8B@ZkTGyB#7CF C # C#"GB"8B@Zk@"G8B@Zk@#1C0"GBW"G8B@ZkGB@Zk0 ""?'@9#X=C\X"TGb@00"!.@000"15 B G`b"0BPR"0攢`]X"TG_&R"X"@0 "GBb@ZkG0愠`b"0P 0"!`X="TG_&R"X"@0 "GPBXb@Zkb""TG_&R"GGBb@ZkGBb@Zk"4GBb@ZkGBb@Zk"4GBb@Zk4GcG]]} 0#k"s"#~ ^(^0~8GGG=]? b34Gh`G4G8B@b@Zkh"`h`C.c.CJS cJSF4բJղG"TG(B0b@Zkh`G ](]0}8@#kGGG!4G ` 4G0PB  }s35`B3@,H@ 0B ] }sjB  GGkGGGGGGԢ4Gw B'=115 BBq.qJwpN=1B``NwB`A0@BA  `0`B`]R0@BW=1 6B?GkGGGGr.rJ+@`JR4Gݦ6 B @0@=ݦ֢65BVB.JB 0@=ݦ֢ BGGGGk.W JFð#~^ ^(~08@GGGGGGcB"D"4GY@Zk(Y"TGY@Zk?"tG"YR"Y@Zk0@9! 05B?"10B@4G@Y"Y@Zk0@9! 91B0QBY@?"TG"C"Y@Zk0@9!n 05B@?"10BP@4GY"Y@Zk0@9!0@!Q @91YҢysTB3tB@@"7BU@wB#0CF C # C#ݷGY@Zk@"GY@Zk4GaB#7CF C # C#"G Y"Y@Zk]GY@Zk@"#!C!D C # C#"B"G@?"Y@ZkW"GY@Zk"G@?"33BA"Y@ZkGY@ZkGbH9"&@"ݲC "y#_9ТTG91YRT@B32B@4G`B#0CF C # C#ݷGY@ZkY"GY@ZkB#0CF C # C#ݷGC"GY@Zk]GY@Zk@"#7CF C # C#"B"G@?"Y@Zk]GY@Zk"G@?"33BW"Y@ZkGY@ZkG"D"4GY@Zk8Y"TGY@Zk?"tG"YR"Y@Zk0@9! 05B?"10B@4G@Y"Y@Zk0@9! 91B0QBY@?"TG"C"Y@Zk0@9!t 05B@?"10BP@4GY"Y@Zk0@9!0@!Q @91YRys4`B1SBS@TB3B@Y@Zk0@9!I 91BpBYys4BtB3Q`B٦v7UBW@W/WKBBy{;1`C`35C9!@?"6!B@"#7CF C # C#"B"@?"Y@Zk H=B"GTBGY@Zk"G@?"33BW"Y@ZkGY@ZkG"D"4GY@Zk0Y"TGY@Zk?"tG"YR"Y@Zk0@9! 05B?"10B@4G@Y"Y@Zk0@9! 91B0QBY@?"TG"C"Y@Zk0@9!= 05B@?"10BP@4GY"Y@Zk0@9!0@!Q @91YR35@BԢ@"7B@"# CD C # C#"B"@?"Y@ZkB"GTBGY@Zk"G@?"33B@"Y@ZkGY@ZkH9"?$@! =C ݲ"y#w_9ТTG91YRT@B32B@4G`B#0CF C # C#ݷGY@ZkY"GY@ZkB#0CF C # C#ݷGC"GY@Zk]GY@Zk@"#7CF C # C#"B"G@?"Y@Zk]GY@Zk"G@?"33BW"Y@ZkGY@ZkGG] ](}08@P#k@#~^^~޴cGGGGGe.eJ`J8}"Cb$SG(Hb"8=C1!JH@="(! P="?"_&@ SAFETY013.A  %[EVERHART.JTDEMO]JTAUTHMAINT.OBJ_A;29c>dR"@"G8B@b@ZkXb"8C H4G(H@P=4GX4G`hBZ#p]TGx="TG_&R"@"G(B0b@ZkGn4G,00"1!N0BR2Bb 3xb""@¦8"Pݶ#H"TG_&R"@"< "GBb@ZkG5"4G"0B0R FB_d0C7.TJJtBdpN,"09C7Y/YYK'KOB㲘, C",#0 B#00B0b0s fBb""TG_&R"GGB b@Zk" "QAJpSJPFQbSDcG]]}ݤ#k.T JFC#~ ^(^0~8GG=]4G4GBb@Zk"884G0B8b@Zk"88G?"B2G)}$s"..JU JF¦<v@"@!<0"@<"@1"BDR"bHs"G b@@BDRbSHGG ](]0}8@#kGGGGGGբ6JJBua0JJGk<A4G@DFOR$SET_REENTRANCY<B8b#DFOR$SET_REENTRANCY<A<@@DFOR$SET_REENTRANCY4CG SYS$GETJPIW4Db# SYS$GETJPIW4C@ SYS$GETJPIW,GGEXEMPT,Hb#EXEMPT,G@EXEMPT4+GOTS$FILL4+@OTS$FILL4EGLIB$GET_FOREIGN4Fb#LIB$GET_FOREIGN4E@LIB$GET_FOREIGN4/G OTS$MOVEM4/@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL43(G0OTS$MOVE43,@0OTS$MOVE4-DGL OTS$INDEX4-H@L OTS$INDEX43hGpOTS$MOVE43l@pOTS$MOVE4+xGOTS$FILL4+|@OTS$FILL4/G OTS$MOVEM4/@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL4/G OTS$MOVEM4/@ OTS$MOVEM4+G OTS$FILL4+@ OTS$FILL <!GDFOR$READ_INT_FMT<"b#DFOR$READ_INT_FMT<!@DFOR$READ_INT_FMT4 G OTS$DIV_I4b# OTS$DIV_I4 @ OTS$DIV_I4 G LIB$SYS_TRNLOG4 b#LIB$SYS_TRNLOG4 @ LIB$SYS_TRNLOG4/H GP OTS$MOVEM4/L @P OTS$MOVEM4+T G\ OTS$FILL4+X @\ OTS$FILL4; G DFOR$OPEN4< b# DFOR$OPEN4; @ DFOR$OPEN49 G DFOR$CLOSE4: b# DFOR$CLOSE49 @ DFOR$CLOSE4- G OTS$INDEX4- @ OTS$INDEX4/8 G@ OTS$MOVEM4/< @@ OTS$MOVEM4+D GL OTS$FILL4+H @L OTS$FILL4 G SYS$GETDVIW4 b# SYS$GETDVIW4 @ SYS$GETDVIW4/ G OTS$MOVEM4/ @ OTS$MOVEM4+ G OTS$FILL4+ @ OTS$FILL43X G` OTS$MOVE43\ @` OTS$MOVE4+h Gp OTS$FILL4+l @p OTS$FILL4- G OTS$INDEX4- @ OTS$INDEX4/ G OTS$MOVEM4/ @ OTS$MOVEM4+ G OTS$FILL4+ @ OTS$FILL4\ Gd OTS$STRCMP_LEQS4` @d OTS$STRCMP_LEQS<! G DFOR$READ_INT_FMT<" b#DFOR$READ_INT_FMT<! @ DFOR$READ_INT_FMT4/$ G, OTS$MOVEM4/( @, OTS$MOVEM4+0 G8 OTS$FILL4+4 @8 OTS$FILL4-X G` OTS$INDEX4-\ @` OTS$INDEX4/ G OTS$MOVEM4/ @ OTS$MOVEM4+ G OTS$FILL4+ @ OTS$FILL4/ G OTS$MOVEM4/ @ OTS$MOVEM4+ G OTS$FILL4+ @ OTS$FILL4/4G< OTS$MOVEM4/8@< OTS$MOVEM4+@GHOTS$FILL4+D@HOTS$FILL<5(G4DFOR$WRITE_INT_FMT<6,b#DFOR$WRITE_INT_FMT<50@4DFOR$WRITE_INT_FMT4-TG\ OTS$INDEX4-X@\ OTS$INDEX4/G OTS$MOVEM4/@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL4-G OTS$INDEX4-@ OTS$INDEX4/G OTS$MOVEM 4/@ OTS$MOVEM4+GOTS$FILL4+ @OTS$FILL4/dGl OTS$MOVEM4/h@l OTS$MOVEM4+pGxOTS$FILL4+t@xOTS$FILL<5G DFOR$WRITE_INT_FMT<6b#DFOR$WRITE_INT_FMT<5@ DFOR$WRITE_INT_FMT4-lGt OTS$INDEX4-p@t OTS$INDEX4;G DFOR$OPEN4<b# DFOR$OPEN4;@ DFOR$OPEN4pG| OTS$DIV_L4 tb# OTS$DIV_L4x@| OTS$DIV_L<1 G,DFOR$WRITE_SEQ_FMT<2$b#DFOR$WRITE_SEQ_FMT<1(@,DFOR$WRITE_SEQ_FMT<1GDFOR$WRITE_SEQ_FMT<2b#DFOR$WRITE_SEQ_FMT<1@DFOR$WRITE_SEQ_FMT4G LIB$DATE_TIME4b# LIB$DATE_TIME4@ LIB$DATE_TIME43G$OTS$MOVE43 @$OTS$MOVE4-pGx OTS$INDEX4-t@x OTS$INDEX4-G OTS$INDEX4-@ OTS$INDEX4/G OTS$MOVEM4/@ OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL<1lGxDFOR$WRITE_SEQ_FMT<2pb#DFOR$WRITE_SEQ_FMT<1t@xDFOR$WRITE_SEQ_FMT49G DFOR$CLOSE4:b# DFOR$CLOSE49@ DFOR$CLOSE4;LGX DFOR$OPEN4<Pb# DFOR$OPEN4;T@X DFOR$OPEN4-tG| OTS$INDEX4-x@| OTS$INDEX4G SYS$ASSIGN4b# SYS$ASSIGN4@ SYS$ASSIGN4' GUNEXEMPT4(b#UNEXEMPT4'@UNEXEMPT47 G, DFOR$EXIT48$b# DFOR$EXIT47(@, DFOR$EXIT<#dGpDFOR$READ_SEQ_FMT<$hb#DFOR$READ_SEQ_FMT<#l@pDFOR$READ_SEQ_FMT,GFILACC,b#FILACC,@FILACC4=G DFOR$DELETE4>b# DFOR$DELETE4=@ DFOR$DELETE4'GUNEXEMPT4(b#UNEXEMPT4'@UNEXEMPT47G DFOR$EXIT 48b# DFOR$EXIT47@ DFOR$EXIT4-G  OTS$INDEX4-@  OTS$INDEX4/DGL OTS$MOVEM4/H@L OTS$MOVEM4/TG\ OTS$MOVEM4/X@\ OTS$MOVEM4+`GhOTS$FILL4+d@hOTS$FILL4;G DFOR$OPEN4<b# DFOR$OPEN4;@ DFOR$OPEN4)8GDLIB$SET_SYMBOL4*<b#LIB$SET_SYMBOL4)@@DLIB$SET_SYMBOL<#|GDFOR$READ_SEQ_FMT<$b#DFOR$READ_SEQ_FMT<#@DFOR$READ_SEQ_FMT4+GOTS$FILL4+@OTS$FILL4-G OTS$INDEX4-@ OTS$INDEX43 G(OTS$MOVE43$@(OTS$MOVE4+0G8OTS$FILL4+4@8OTS$FILL4-LGT OTS$INDEX4-P@T OTS$INDEX4/G OTS$MOVEM4/@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL44G@ OTS$DIV_L4 8b# OTS$DIV_L4<@@ OTS$DIV_L<5GDFOR$WRITE_INT_FMT<6b#DFOR$WRITE_INT_FMT<5@DFOR$WRITE_INT_FMT<1\GhDFOR$WRITE_SEQ_FMT<2`b#DFOR$WRITE_SEQ_FMT<1d@hDFOR$WRITE_SEQ_FMT49G DFOR$CLOSE4:b# DFOR$CLOSE49@ DFOR$CLOSE4'GUNEXEMPT4(b#UNEXEMPT4'@UNEXEMPT47G DFOR$EXIT48b# DFOR$EXIT47@ DFOR$EXIT4-G OTS$INDEX4-@ OTS$INDEX4/G OTS$MOVEM4/@ OTS$MOVEM4/G OTS$MOVEM4/ @ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL4;G DFOR$OPEN4<b# DFOR$OPEN4;@ DFOR$OPEN4)GLIB$SET_SYMBOL4*b#LIB$SET_SYMBOL4)@LIB$SET_SYMBOL<#8GDDFOR$READ_SEQ_FMT<$<b#DFOR$READ_SEQ_FMT<#@@DDFOR$READ_SEQ_FMT4+|GOTS$FILL4+@OTS$FILL4-G OTS$INDEX4-@ OTS$INDEX43GOTS$MOVE43@OTS$MOVE4+GOTS$FILL4+@OTS$FILL 4- G OTS$INDEX4- @ OTS$INDEX4/H GP OTS$MOVEM4/L @P OTS$MOVEM4+T G\ OTS$FILL4+X @\ OTS$FILL4 G OTS$DIV_L4  b# OTS$DIV_L4 @ OTS$DIV_L<5!G!DFOR$WRITE_INT_FMT<6!b#DFOR$WRITE_INT_FMT<5!@!DFOR$WRITE_INT_FMT<1P"G\"DFOR$WRITE_SEQ_FMT<2T"b#DFOR$WRITE_SEQ_FMT<1X"@\"DFOR$WRITE_SEQ_FM)kgyrkr5H{ 96Mju`P]~?Swt4q3ra@U}h`&L-]nLrԐs'ED3H0|y0I^n$<ɮy[;tqm߾28ϧ& |((h!؂1ێ@߫I c/.f݂W2thFLw-&;cc?Crϩy jST= l5laD™>4e]#]19>@zA ԜMvC{9M$cSSR17OQ:"XezLڧx( dA}mgAs1|KDxGJ\t+NC2K&0˨e*u&IQ> YU=/([ wO&̄ʲ"Atk?+qJ5O-$f߰cV$3\ʔuudۦEK\3Tm nc4<18~#;<'^ТKBbTF{nfg%OQQ &ι]9@0YuFBUS"!b)qn\ !=J~zŵ: r2UqZuӖ r֢툊U]m^O[=BXPoq^QE*B^oΫp)ػV~.K9UW:'VXwO;ҥ,Z`|EYT>sPG淛zc<|-)ϼQ yHt+-F*$@ z~G;(TW\ h GnDAaBK\ggCvO+cY4m[Gw3V8xK5TB8Sͥ18ht[i/ U n-=Bfq|2fӺxx**@J3bgPs6n>tF?=hG@ގVTspNe{@1F;sG tG#/A9wӲL*PJeDr;/܅3ī L\1KO0h ۽r#^weQ-_/'&pҠN +5G^ئ (em-jZM4s FƢ݂:{C$b=דGZ>_ʘ^ Wi&#s G/u媾+.ֽJٳ0`<' !e-Z-3>.ѓq1=c].x*$B2Q `s֌^ EDm8q_җ7:g# evi^mT|N,.}p[:+rP,`q~ywGtNZa%@(i"+׹Y=$byM5,%-"[dKA.B0hR4s.RnLڏ7/}{**0-/i6)mf`xRHCys^6QMMJnΪkc l,pZ;ڑbnj>%E~9UݎՖUIe~}ʕ@x9f> gN޼N2L3nA{#?=x\HwR07v-\y'q Y{Α:Q/IoJ?nF̛U;^'/Ҭ1J>Sm\k3J|4|#A)[ D`%>qEZR賾(}3˟3;{լl"XF *@Hi}54ietXVٓxz8A}y9VYZSD HbcȒ &`ME et_WiUi=#z~w;|&8O*Fkm}B^t˖}45yr 'ÃbZ9pwcQ k;Ly sگ4K^,cB 7~l$ZQ좻7O?KeD3lĤ&Vp{":*$$`u@=DƼI*rҞ BYCbF7;Ӱo֖fBVϴ܆oKAخ 9"s ar @3#b!; 2C+^xݭ+z6%[BRiWPefLx/xL NNn a2a欯*qhxmн,\ )cqۦ Ğ?T\jLJG4͉٭R8Yx&A<~9R }R[kƏ,֫iU'Unĉ ^|A%#~3#%ZH8Lò6usq5( AP(xwqz[|./&~Q,\ Ϣl/SG&yn]䖮dzNe ~ayNbu|Xn8:P7_ })Q2gF ˆ3U` ߵ_LB;>1 Q(CIb 2~8MHD ! ]GYϦξ@ !VQMid6qm'H7$[]BH\%v, e bP7w(O[䠫e~mKtW5 c=8xLuJWsAiN.V-HN[a5WV z<5#7~OjcW6eGQ5'EY& gR@WPqi @;[2`jEG2W?v^³?Gy;`P;(|XjEJ<h?)=bkbz{!ySInB\QuoEr ̊ ;t$[@$dcЪFmh 8b|+dH[C5G6I  12fc5HZ*#4tL,!>a/dN θ}k<_cŠ}Iykӓ2e.#>f#ei,VL3_D:zEzm&Pvg{QrH~& nnAIpSb:65U*29LCi[bb8Eg| 4B Br%1;}<`WǤ~3DCNK~8,v\ӦȾȹ4G>OxԼf'q{L<@ӿ&<[~[3]#Κ]UO]n)p[*k4b ؼum4儎|UG ΅^&](߷| dLz|-BTXl6歮gT>QPhpi3VV|v$Gkhz,D~TEhN\s|qMx"jΨP&'Qv"S Q6QcNAFDXNf[ʆT)X ]Bɝ\|GWV#i%dX:/ܬ7pc4>izhΥo~^<},0cK) ǰd Af4{)}Ktz4-A [C:٨ڡ8>X"Ӯkzu**Q3EѿQu;Nׅ(E1(-у!+Kȑ # MvW>vLrAEP׊ޅcp=8xg!]ZUK%{UL6’ZBWS7J\Z6UD#rFɃY1AmEۘT w1"6۠E}Z$Ԡ}oLOzc wMYH!gX0jCL%d*pS}~&1᪡7{U\8$-uV}2QŹߕ@;!6o7ju^}% ьXS|B2l?Gk7r2U'[+.uuM}_T42q[.QƀG,zWǚpG{Ʋӗ۩IS1kSgtMu/q}`rFSԬ7 x\*i8W31si%_A,*6m<_zfZz w Ƀ؁$l)t/ 8u hs$Suh;t}]rfا@m' -یƗAEt+5wHV j¬&,cq%F,3$Zx>]aٵ\lw hhKËF6Ulv?w\{O<\0Dn2,9AtAAp*V=ŷ>I76|y'}ef\%=IEcR.MZºp=@Dy!|;Wq꾺Œ;5 hڊgݰBr6BAg!Nw!~׀ơ{I LhLj^ok{,!o.b{z I:^.7$QdXROSet^!_qsa j%9#rB lDلYd}-H \Jӽ~Pj䇑&RϵqbHh_^j?̷-S-)t^j_ciwuo¶:4&%V CdU$v v?.Yxwe (shE6^wR\傱0|Xd¥KX|*?t!9%t7D~,ptgZ}&b䩑u]K{~[G̘&,`rJgN%JR"E?$6aZ[siLm_7%C?=o &:o[`P:A& }O xDzы4h^ꎇ\|c~?a_4dI_eiOU-eJhPoЃ .۸=\ԻՏU9?D%t-q#Hl8$zw fVIb; .ƽUIpf@_bX?9t?;md땺/^t\ۏS(IFŀM^HW%t~9>PGIۂeԤ,Zg\w3 E;? p"Ap̽l6eO߀Hf@%.X3y:9A=OBϴ2{W0v?ٻ$JƧ恓<?L%HUB a{R<>FӨNz:vYHCFkzFO7CH%n@~m >>>(aW+-\qL}ZΈjA{KEQ喐^-|3W)G2i׆x9FAjVp-U!رè,RWiۺ/!C[49 "P[U>ɼ T&̝u}V)\LN׷:%_Ю(N!$%Q6U ~ Gy?Dhq=fmD d >˴y{Ǡ*pߝDea%SJ#4˘hK0\Md; 0:'Eט_0ؖ U4 2b[ }wт|yՁh̜ůӒKС_%Ѝ&M*/zvt~I ;#j֋3$w`LJ䏜'z([b^~72P2ſW+y}KP~؏5A6&_VͨT w_k0TdJ&wbj[h.aI.eU3;J6j49(!d"}PSrYv?('gck *w[|4e|̎Z[3Pj  ~߯%K@wm]Ɗdh.bF _ڛ 7F̏yxI؄En4zRE8&$2(CJCfԜCa*kK/4w~Z1?Z֗SϋenoVv=M9j`gZֺkFeU}"R6f;-3?ٛ┰c\6۝ s9ixH W Z;F[þRw& 1Fi-M_v}:}V -: t=pwQ<'kaygSUEo9v$p¬PQ}~kNYγk >^-.e^ODKQDےL&}y^2uPFBaXQL K@s~\]vۆJ@KG. J}@TCY`׎I2I0UUnsU.vddfUW!LgC dt3'd_@?ael GڃB7%ĐזJ&_?b: sg`IYs[Ƥo'kk7eD"ՎpKIDfɀ[~p"Ȇ  \= 9NqcҖw=\`12t.d,b垌mQRwסSP`$_`JٷR:,?$o՘UV­PԫεFS'j3X8vxԋ3pTFN1kU#gitESO=E"D["K}~5EGHY*^ioq_6nL*Fa=9#]e"eʽ) mpC ;_lSǪר//ADA[(3HS*Y1 w'dez3W S&z"ri6I"!+`(I)Ei ,l'lJNEGXiހ|PڋӯB;rbt[H)ȋo&7 D!cNJ<@\,ѢoCN^Js0HiٓZk& jp#<B^gƗK@?dSTR96 zV/$񴚆h([(-z( ;qXX@$೅<5DXjP٣<Ǻ t:jf|31!l:yJF iBd<H$X*:#;'_Dv3D=,H~Tk3z+E#,֞@E 폰; (#9^2~D\) k%7zgP0Dxj'Tk :e[*ҥc`7#Gr脍"6K|_a3. \w\뎔/uMXd?j0_4s1f4\2R|Z3M,¡n !~GP]n9Ơ<Ε ?S:B2A5}YO2<+T%뮸ے8 EW{H$CE0El$C oh3IAM~=^K¹I m6-o 'u=.)[:[V%֠SxG?8|Pj ĴY4}4gg Q(\qLƱ~7Y Y9Qg `dL,-͵Zy!8[F?+bP0 3!õ?wv`@jf;ʧ>?=D끡ݯQϩ50PBSu=%p9XQ,~Ae*40g}ޭԃ}Ѡp'mM发&flɽMd^ pqQM57O̻.b@0wFix ˆpI!Ƌը&WE .C|}$p қ*zjV#U@1 ' Ke˃, 4OZqMOGLLDA%Q2CN c8 ) WhG|O%r49\Mܸ 1Otɐ20,҉Ǯ2ߙu&iJrLZeܣ{`zw, ooU4UdIY{d)LھU,I~|MwS2 -x|LX_O5 p&7h$E08* RIc3c"Կq_߆~7Ϙ:{N0dr5Q`RN/#|aEq^p6F ȏȉM<_4Gt϶>L3m!mkɤ{FԄw&K=j1SO{r/!!V!ه^I8KL]3fmpPjʖNoyN#s[YsDpѹvvߞ% Nun?P\+X ú+&z{f¯ϊ,9zڵKvu_=x# QVQ B>e2l5ڇV31UArHX{Y_pm7%73T"A/s(D1BB"3y I _XDPcdU) 4fB.¶zE(f.WUI%MkcBpA?kUGV|GNxVݢc1JvU-d1U`VejLB^Mc?l_d;{ZuIQe΂?Qu_R䕚/qmAA=Y8I@k*.NyWeB<DBNOsW:ž](ɮv\<MxtFeV7~*rIMAhw)r/^ j!@F\/P1 Q : rL,$n9OMEV _g`\b9]ѭd<ctTI2HA<0J%Gˊ'r&w3XeCl%Tb~o|O;atQ\,,)3 8X0\~)#bg'}W!џ6%[U b@a P}^)l+|3lNa4%vw#;͍'j/{SQǺ}"H[Tkbz] sdԣ@Fؔ|k'&D;NMg+wU6>$iySBK׽G c="m n{o"^Q0ȨDhz?ۼp}(t3JXa|6/rouEm68]J#mTSc.еZX&~ qwZbit"q\#"zgސ=SuFI /7@[u<05ݼ }2'x"+jka RJK$iYsjŲmfPk`l5+@QXqe: Awcnї2Q7& Spbq 3O&M[taQD[{@j@LK%_կ`Zi9`Q!Y<z*>9"~b3%d={9Otb4x# iM\xTZM۝Gxgdy 灒ܬ[|QmVkib>Xv1  GE‹4ϐlёIxը=cD9h }s+T@0VERB$LINE@@ SAFETY013.A  %[EVERHART.JTDEMO]JTAUTHMAINT.OBJ_A;29(M>T49|"G" DFOR$CLOSE4:"b# DFOR$CLOSE49"@" DFOR$CLOSE<5"G"DFOR$WRITE_INT_FMT<6"b#DFOR$WRITE_INT_FMT<5"@"DFOR$WRITE_INT_FMT4)#G #LIB$SET_SYMBOL4*#b#LIB$SET_SYMBOL4)#@ #LIB$SET_SYMBOL4'$#G0#UNEXEMPT4((#b#UNEXEMPT4',#@0#UNEXEMPT478#GD# DFOR$EXIT48<#b# DFOR$EXIT47@#@D# DFOR$EXIT4-X#G`# OTS$INDEX4-\#@`# OTS$INDEX4/#G# OTS$MOVEM4/#@# OTS$MOVEM4/#G# OTS$MOVEM4/#@# OTS$MOVEM4+#G#OTS$FILL4+#@#OTS$FILL4;$G$$ DFOR$OPEN4<$b# DFOR$OPEN4; $@$$ DFOR$OPEN4)x$G$LIB$SET_SYMBOL4*|$b#LIB$SET_SYMBOL4)$@$LIB$SET_SYMBOL<#$G$DFOR$READ_SEQ_FMT<$$b#DFOR$READ_SEQ_FMT<#$@$DFOR$READ_SEQ_FMT4+%G%OTS$FILL4+%@%OTS$FILL4-%G$% OTS$INDEX4- %@$% OTS$INDEX43`%Gh%OTS$MOVE43d%@h%OTS$MOVE4+p%Gx%OTS$FILL4+t%@x%OTS$FILL4-%G% OTS$INDEX4-%@% OTS$INDEX4/%G% OTS$MOVEM4/%@% OTS$MOVEM4+%G%OTS$FILL4+%@%OTS$FILL4t&G& OTS$DIV_L4 x&b# OTS$DIV_L4|&@& OTS$DIV_L<5'G('DFOR$WRITE_INT_FMT<6 'b#DFOR$WRITE_INT_FMT<5$'@('DFOR$WRITE_INT_FMT<1'G'DFOR$WRITE_SEQ_FMT<2'b#DFOR$WRITE_SEQ_FMT<1'@'DFOR$WRITE_SEQ_FMT<1'G'DFOR$WRITE_SEQ_FMT<2'b#DFOR$WRITE_SEQ_FMT<1'@'DFOR$WRITE_SEQ_FMT<1(G(DFOR$WRITE_SEQ_FMT<2(b#DFOR$WRITE_SEQ_FMT <1(@(DFOR$WRITE_SEQ_FMT<1T(G`(DFOR$WRITE_SEQ_FMT<2X(b#DFOR$WRITE_SEQ_FMT<1\(@`(DFOR$WRITE_SEQ_FMT<1(G(DFOR$WRITE_SEQ_FMT<2(b#DFOR$WRITE_SEQ_FMT<1(@(DFOR$WRITE_SEQ_FMT<1(G(DFOR$WRITE_SEQ_FMT<2(b#DFOR$WRITE_SEQ_FMT<1(@(DFOR$WRITE_SEQ_FMT4-(G) OTS$INDEX4-)@) OTS$INDEX4-D)GL) OTS$INDEX4-H)@L) OTS$INDEX4/)G) OTS$MOVEM4/)@) OTS$MOVEM4+)G)OTS$FILL4+)@)OTS$FILL<1*G(*DFOR$WRITE_SEQ_FMT<2 *b#DFOR$WRITE_SEQ_FMT<1$*@(*DFOR$WRITE_SEQ_FMT4-<*GD* OTS$INDEX4-@*@D* OTS$INDEX4-*G* OTS$INDEX4-*@* OTS$INDEX4/*G* OTS$MOVEM4/*@* OTS$MOVEM4+*G+OTS$FILL4+*@+OTS$FILL<1\+Gh+DFOR$WRITE_SEQ_FMT<2`+b#DFOR$WRITE_SEQ_FMT<1d+@h+DFOR$WRITE_SEQ_FMT4-|+G+ OTS$INDEX4-+@+ OTS$INDEX4-+G+ OTS$INDEX4-+@+ OTS$INDEX4/,,G4, OTS$MOVEM4/0,@4, OTS$MOVEM4+8,G@,OTS$FILL4+<,@@,OTS$FILL<1,G,DFOR$WRITE_SEQ_FMT<2,b#DFOR$WRITE_SEQ_FMT<1,@,DFOR$WRITE_SEQ_FMT4-,G, OTS$INDEX4-,@, OTS$INDEX4--G - OTS$INDEX4--@ - OTS$INDEX4/l-Gt- OTS$MOVEM4/p-@t- OTS$MOVEM4+x-G-OTS$FILL4+|-@-OTS$FILL<1-G-DFOR$WRITE_SEQ_FMT<2-b#DFOR$WRITE_SEQ_FMT<1-@-DFOR$WRITE_SEQ_FMT4--G. OTS$INDEX4-.@. OTS$INDEX4-D.GL. OTS$INDEX4-H.@L. OTS$INDEX4/.G. OTS$MOVEM4/.@. OTS$MOVEM4+.G.OTS$FILL4+.@.OTS$FILL<1/G(/DFOR$WRITE_SEQ_FMT<2 /b#DFOR$WRITE_SEQ_FMT<1$/@(/DFOR$WRITE_SEQ_FMT4- OTS$MOVEM4/=@> OTS$MOVEM4+>G >OTS$FILL4+>@ >OTS$FILL4+$>G,>OTS$FILL4+(>@,>OTS$FILL4-H>GP> OTS$INDEX4-L>@P> OTS$INDEX4/>G> OTS$MOVEM4/>@> OTS$MOVEM4+>G>OTS$FILL4+>@>OTS$FILL<#t?G?DFOR$READ_SEQ_FMT<$x?b#DFOR$READ_SEQ_FMT<#|?@?DFOR$READ_SEQ_FMT4-?G? OTS$INDEX 4-?@? OTS$INDEX<1X@Gd@DFOR$WRITE_SEQ_FMT<2\@b#DFOR$WRITE_SEQ_FMT<1`@@d@DFOR$WRITE_SEQ_FMT<#@G@DFOR$READ_SEQ_FMT<$@b#DFOR$READ_SEQ_FMT<#@@@DFOR$READ_SEQ_FMT@ SAFETY013.A  %[EVERHART.JTDEMO]JTAUTHMAINT.OBJ_A;29>4/AGA OTS$MOVEM4/A@A OTS$MOVEM4+AGAOTS$FILL4+A@AOTS$FILL4/BGB OTS$MOVEM4/B@B OTS$MOVEM4/(BG0B OTS$MOVEM4/,B@0B OTS$MOVEM43@BGHBOTS$MOVE43DB@HBOTS$MOVE4/BGB OTS$MOVEM4/B@B OTS$MOVEM4+BGBOTS$FILL4+B@BOTS$FILL4/lCGtC OTS$MOVEM4/pC@tC OTS$MOVEM4/CGC OTS$MOVEM4/C@C OTS$MOVEM4/CGC OTS$MOVEM4/C@C OTS$MOVEM4+CGCOTS$FILL4+C@COTS$FILL4DG(D DFOR$REWRITE4 Db# DFOR$REWRITE4$D@(D DFOR$REWRITE4'0DGMb# DFOR$DELETE4=M@M DFOR$DELETE49NG N DFOR$CLOSE4:Nb# DFOR$CLOSE49N@ N DFOR$CLOSE4'$NG0NUNEXEMPT4((Nb#UNEXEMPT4',N@0NUNEXEMPT478NGDN DFOR$EXIT48>a OTS$INDEX 4/daGla OTS$MOVEM4/ha@la OTS$MOVEM4+paGxaOTS$FILL4+ta@xaOTS$FILL4)aGaLIB$SET_SYMBOL4*ab#LIB$SET_SYMBOL4)a@aLIB$SET_SYMBOL4-bG b OTS$INDEX4-b@ b OTS$INDEX4-LbGTb OTS$INDEX4-Pb@Tb OTS$INDEX4/bGb OTS$MOVEM4/b@b OTS$MOVEM4+bGbOTS$FILL4+b@bOTS$FILL4)0cGdsb# DFOR$DELETE4=hs@ls DFOR$DELETE4IsGt LIB$SPAWN4Jtb# LIB$SPAWN4It@t LIB$SPAWN4-tGt OTS$INDEX4-t@t OTS$INDEX4-tGt OTS$INDEX4-t@t OTS$INDEX4-uGu OTS$INDEX4-u@u OTS$INDEX4- vG(v OTS$INDEX4-$v@(v OTS$INDEX<!vGwDFOR$READ_INT_FMT<"wb#DFOR$READ_INT_FMT<!w@wDFOR$READ_INT_FMT,4wG@wJTSCR,8wb#JTSCR,OTS$FILL4+@OTS$FILL4;G DFOR$OPEN4<b# DFOR$OPEN4;@ DFOR$OPEN49G DFOR$CLOSE4:b# DFOR$CLOSE49@ DFOR$CLOSE4-G OTS$INDEX 4-@ OTS$INDEX4/@GH OTS$MOVEM4/D@H OTS$MOVEM4+LGTOTS$FILL4+P@TOTS$FILL4܊G SYS$GETDVIW4b# SYS$GETDVIW4@ SYS$GETDVIW4/G OTS$MOVEM4/@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL<5XGdDFOR$WRITE_INT_FMT<6\b#DFOR$WRITE_INT_FMT<5`@dDFOR$WRITE_INT_FMT<%GDFOR$WRITE_INT_FMT_XMIT<&b#DFOR$WRITE_INT_FMT_XMIT<%@DFOR$WRITE_INT_FMT_XMIT<5GDFOR$WRITE_INT_FMT<6b#DFOR$WRITE_INT_FMT<5@DFOR$WRITE_INT_FMT43 G(OTS$MOVE43$@(OTS$MOVE<%HGTDFOR$WRITE_INT_FMT_XMIT<&Lb#DFOR$WRITE_INT_FMT_XMIT<%P@TDFOR$WRITE_INT_FMT_XMIT<%GDFOR$WRITE_INT_FMT_XMIT<&b#DFOR$WRITE_INT_FMT_XMIT<%@DFOR$WRITE_INT_FMT_XMIT43ȌGЌOTS$MOVE43̌@ЌOTS$MOVE<%GDFOR$WRITE_INT_FMT_XMIT<&b#DFOR$WRITE_INT_FMT_XMIT<%@DFOR$WRITE_INT_FMT_XMIT<%,G8DFOR$WRITE_INT_FMT_XMIT<&0b#DFOR$WRITE_INT_FMT_XMIT<%4@8DFOR$WRITE_INT_FMT_XMIT4-tG| OTS$INDEX4-x@| OTS$INDEX4+GOTS$FILL4+@OTS$FILL4-ЍG؍ OTS$INDEX4-ԍ@؍ OTS$INDEX4-G OTS$INDEX4-@ OTS$INDEX4+xGOTS$FILL4+|@OTS$FILL4-܎G OTS$INDEX4-@ OTS$INDEX4-$G, OTS$INDEX4-(@, OTS$INDEX4/G OTS$MOVEM4/@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL4/hGp OTS$MOVEM4/l@p OTS$MOVEM4/xG OTS$MOVEM4/|@ OTS$MOVEM4/GȐ OTS$MOVEM4/Đ@Ȑ OTS$MOVEM4/АGؐ OTS$MOVEM4/Ԑ@ؐ OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4+G OTS$FILL4+@ OTS$FILL4/G OTS$MOVEM4/@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL4/G OTS$MOVEM4/@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL 4;tG DFOR$OPEN4<xb# DFOR$OPEN4;|@ DFOR$OPEN49G DFOR$CLOSE4:b# DFOR$CLOSE49@ DFOR$CLOSE4-G OTS$INDEX4-@ OTS$INDEX4/0G8 OTS$MOVEM4/4@8 OTS$MOVEM4+<GDOTS$FILL4+@@DOTS$FILL4̓Gؓ SYS$GETDVIW4Гb# SYS$GETDVIW4ԓ@ؓ SYS$GETDVIW4/G OTS$MOVEM4/@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL<5HGTDFOR$WRITE_INT_FMT<6Lb#DFOR$WRITE_INT_FMT<5P@TDFOR$WRITE_INT_FMT<%pG|DFOR$WRITE_INT_FMT_XMIT<&tb#DFOR$WRITE_INT_FMT_XMIT<%x@|DFOR$WRITE_INT_FMT_XMIT<5ԔGDFOR$WRITE_INT_FMT<6ؔb#DFOR$WRITE_INT_FMT<5ܔ@DFOR$WRITE_INT_FMT43GOTS$MOVE43@OTS$MOVE<%8GDDFOR$WRITE_INT_FMT_XMIT<&<b#DFOR$WRITE_INT_FMT_XMIT<%@@DDFOR$WRITE_INT_FMT_XMIT43pGxOTS$MOVE43t@xOTS$MOVE<%GDFOR$WRITE_INT_FMT_XMIT<&b#DFOR$WRITE_INT_FMT_XMIT<%@DFOR$WRITE_INT_FMT_XMIT<%ЕGܕDFOR$WRITE_INT_FMT_XMIT<&ԕb#DFOR$WRITE_INT_FMT_XMIT<%ؕ@ܕDFOR$WRITE_INT_FMT_XMIT43GOTS$MOVE43 @OTS$MOVE<%0G<DFOR$WRITE_INT_FMT_XMIT<&4b#DFOR$WRITE_INT_FMT_XMIT<%8@<DFOR$WRITE_INT_FMT_XMIT<%lGxDFOR$WRITE_INT_FMT_XMIT<&pb#DFOR$WRITE_INT_FMT_XMIT<%t@xDFOR$WRITE_INT_FMT_XMIT4/G$ OTS$MOVEM4/ @$ OTS$MOVEM4+(G0OTS$FILL4+,@0OTS$FILL4/tG| OTS$MOVEM4/x@| OTS$MOVEM4+GOTS$FILL4+@OTS$FILL4-G OTS$INDEX4-@ OTS$INDEX4-Gȗ OTS$INDEX4-ė@ȗ OTS$INDEX4-G OTS$INDEX4- @ OTS$INDEX4/G OTS$MOVEM4/@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL4-ĘG̘ OTS$INDEX4-Ș@̘ OTS$INDEX4-G OTS$INDEX4-@ OTS$INDEX4/G OTS$MOVEM4/@ OTS$MOVEM4/G OTS$MOVEM 4/@ OTS$MOVEM4/@GH OTS$MOVEM4/D@H OTS$MOVEM4/PGX OTS$MOVEM4/T@X OTS$MOVEM4/xG OTS$MOVEM4/|@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL4-G OTS$INDEX4-@ OTS$INDEX4-ȚGК OTS$INDEX4-̚@К OTS$INDEX4-G OTS$INDEX4-@ OTS$INDEX4/G OTS$MOVEM4/@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL4-̛Gԛ OTS$INDEX4-Л@ԛ OTS$INDEX4-G OTS$INDEX4- @ OTS$INDEX4/G OTS$MOVEM4/@ OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4/HGP OTS$MOVEM4/L@P OTS$MOVEM4/XG` OTS$MOVEM4/\@` OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL4/G OTS$MOVEM4/@ OTS$MOVEM4+GĞOTS$FILL4+@ĞOTS$FILL4-8G@ OTS$INDEX4-<@@ OTS$INDEX4G SYS$ASSIGN4b# SYS$ASSIGN4@ SYS$ASSIGN4-Gğ OTS$INDEX4-@ğ OTS$INDEX,GREPLENT,b#REPLENT,@REPLENT4 G SYS$DASSGN4 b# SYS$DASSGN4 @ SYS$DASSGN4-PGX OTS$INDEX4-T@X OTS$INDEX4-G OTS$INDEX4-@ OTS$INDEX4/G$ OTS$MOVEM4/ @$ OTS$MOVEM4+(G0OTS$FILL4+,@0OTS$FILL4/ȡGС OTS$MOVEM4/̡@С OTS$MOVEM4/ءG OTS$MOVEM4/ܡ@ OTS$MOVEM4/ G( OTS$MOVEM4/$@( OTS$MOVEM4/0G8 OTS$MOVEM4/4@8 OTS$MOVEM4/XG` OTS$MOVEM4/\@` OTS$MOVEM4+dGlOTS$FILL4+h@lOTS$FILL<KGDFOR$REWRITE_FMT<L b#DFOR$REWRITE_FMT<K@DFOR$REWRITE_FMT<1`GlDFOR$WRITE_SEQ_FMT<2db#DFOR$WRITE_SEQ_FMT<1h@lDFOR$WRITE_SEQ_FMT 49G DFOR$CLOSE4:b# DFOR$CLOSE49@ DFOR$CLOSE4'GUNEXEMPT4(b#UNEXEMPT4'@UNEXEMPT47G DFOR$EXIT48b# DFOR$EXIT47@ DFOR$EXIT4'GȣUNEXEMPT4(b#UNEXEMPT4'ģ@ȣUNEXEMPT47УGܣ DFOR$EXIT48ԣb# DFOR$EXIT47أ@ܣ DFOR$EXIT4OhGtSYS$OPEN4Plb# SYS$OPEN4Op@tSYS$OPEN,MG̤GETFID,NĤb# GETFID,MȤ@̤GETFID43GOTS$MOVE43@OTS$MOVE43GOTS$MOVE43@OTS$MOVE4-ȧGЧ OTS$INDEX4-̧@Ч OTS$INDEX4-G OTS$INDEX4- @ OTS$INDEX4-XG` OTS$INDEX4-\@` OTS$INDEX4-G OTS$INDEX4-@ OTS$INDEX4/@GH OTS$MOVEM4/D@H OTS$MOVEM4/PGX OTS$MOVEM4/T@X OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4/G$ OTS$MOVEM4/ @$ OTS$MOVEM4+(G0OTS$FILL4+,@0OTS$FILL4/ԪGܪ OTS$MOVEM4/ت@ܪ OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4/0G8 OTS$MOVEM4/4@8 OTS$MOVEM4/@GH OTS$MOVEM4/D@H OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4/G OTS$MOVEM4/@ SAFETY013.A  %[EVERHART.JTDEMO]JTAUTHMAINT.OBJ_A;29'.@ OTS$MOVEM4+GȫOTS$FILL4+ī@ȫOTS$FILL43ܫGOTS$MOVE43@OTS$MOVE43GOTS$MOVE43@OTS$MOVE4-G OTS$INDEX4- @ OTS$INDEX4-HGP OTS$INDEX4-L@P OTS$INDEX4-G OTS$INDEX4-@ OTS$INDEX4-جG OTS$INDEX4-ܬ@ OTS$INDEX4-DGL OTS$INDEX4-H@L OTS$INDEX 4/@GH OTS$MOVEM4/D@H OTS$MOVEM4/XG` OTS$MOVEM4/\@` OTS$MOVEM4/tG| OTS$MOVEM4/x@| OTS$MOVEM4+GOTS$FILL4+@OTS$FILL43GOTS$MOVE43@OTS$MOVE43GOTS$MOVE43@OTS$MOVE4-ȮGЮ OTS$INDEX4-̮@Ю OTS$INDEX4-G OTS$INDEX4- @ OTS$INDEX4-XG` OTS$INDEX4-\@` OTS$INDEX4-G OTS$INDEX4-@ OTS$INDEX4/$G, OTS$MOVEM4/(@, OTS$MOVEM4/<GD OTS$MOVEM4/@@D OTS$MOVEM4/XG` OTS$MOVEM4/\@` OTS$MOVEM4+dGlOTS$FILL4+h@lOTS$FILL4/G OTS$MOVEM4/@ OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4/\Gd OTS$MOVEM4/`@d OTS$MOVEM4/lGt OTS$MOVEM4/p@t OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4/ıG̱ OTS$MOVEM4/ȱ@̱ OTS$MOVEM4/G OTS$MOVEM4/@ OTS$MOVEM4+GOTS$FILL4+@OTS$FILL4QG DFOR$INQUIRE4Rb#X DFOR$INQUIRE4Q@ DFOR$INQUIRE4;TG` DFOR$OPEN4<Xb#X DFOR$OPEN4;\@` DFOR$OPEN<#سGDFOR$READ_SEQ_FMT<$ܳb#X DFOR$READ_SEQ_FMT<#@DFOR$READ_SEQ_FMT49ܴG DFOR$CLOSE4:b#X DFOR$CLOSE49@ DFOR$CLOSE4OGSYS$OPEN4Pb# SYS$OPEN4O@SYS$OPEN4SG̵ SYS$CONNECT4Tĵb# SYS$CONNECT4Sȵ@̵ SYS$CONNECT =R/W= JTA_FIMG= JTA_FTTY(= JTA_FUSR8= JTA_XCMDP(DFOR$WRITE_SEQ_FMT_XMIT=X+h=    JTA_FNAM= JTA_NSLK= JTA_RPTFILE DFOR$REWRITE=88    =%REPORTREDACLLIB$WAIT=%DELETE OPRMSG==R+ =O(=Z-0=V8=L@X ;=$P SYS$DASSGN=h=H<p=M+x= =&&=R-==V<=T<=#S=P<=I<= @%LIST OTS$DIV_I LIB$DATE_TIMEFILACC=88=@48       2 3   @= 8   P=\X8OTS$STRCMP_LEQS=h=9p=_SUMMx=8,8       LIB$SYS_TRNLOG= JTA_RPRV= JTA_PSWD=K<= JTA_SURW=Y+<=8 = %GBLEDIT=P =(= JTA_MXPV@REPLENT=$` SYS$GETDVIW ;=U(=K(= 88    SYS$ASSIGNJTSCR=L(=B(=88=  OTS$DIV_L=D(= =: !DFOR$READ_INT_FMT=0 #DFOR$READ_SEQ_FMT ;=P=X=>`(%DFOR$WRITE_INT_FMT_XMIT'UNEXEMPT;;)LIB$SET_SYMBOL ;=)8OTS$FILL8 OTS$INDEX=0;=0( 7 DFOR$HANDLER=;8 OTS$MOVEM; 1DFOR$WRITE_SEQ_FMT=8(8OTS$MOVE 5DFOR$WRITE_INT_FMT7 DFOR$EXIT=8 X= @p9 DFOR$CLOSE; DFOR$OPEN=S(= 8YYYYYYYYA(=R(=X(=Z(= J(=%SYMS=I(=I+ = DFOR$DELETE=H;8     8  9  V(@=8 P ?DFOR$READ_KEY_FMT= JTA_ITIMp= JTA_ZFID=8 ;=X<=Z<= JTA_IDNT ;== JTA_CKSM= JTA_INSP= JTA_BPRI= 8 8 = gcy$cm:accctlrecs.log  ADFOR$SET_REENTRANCY=%SUMM8= 888 PC SYS$GETJPIW ELIB$GET_FOREIGN= Dev:file or (n,s,v)>=?=%PURGE ;=8  88 = SYS$DISK= JTA_LISTFILEGEXEMPT=_LIST=== 8  I LIB$SPAWN=H+(=Y-<0= 8=&%@=#<H=C<P=<#>` KDFOR$REWRITE_FMT=W+x=K=U=N=Z+=Q= 8 8A= JTA_USRS= U(*)K(*)I(*)= JTA_SUMMLEN= JTA_SUMMFILE=_REPORT%REGEN = %GBLEDITCON =%SHOW = JTA_CSLK0 =S+8 = @ = JTA_BKPUP = JTA_TTYS` = JTA_ZCMDp =R/Ox = JTA_IMGS =0 ;=@  MGETFIDOSYS$OPEN= 0;== 0;== 0l;==0D;= P$< ,@ =+<H =*<P =-<X =0;=4 7 DFOR$HANDLER= ;Q DFOR$INQUIRE= 8  =0&8     9    ;=0 `;=@  ; S SYS$CONNECT= 0;= *LETE(*[EVERHART.JTDEMO]JTAUTHMAINT.OBJ_AXP6;10+, .;/ 4;4T- 0123KPWO556@07du089GHJAAJTMODACE 8-NOV-1996 00:31DEC Fortran V6.2-508 $DATA$.$BSS$ $IODATA$i`$CODE$ $LINK$ FFFIII FFIIDDKIUICJPIJUNKFSZC0JhJTMODACE SYS$GETJPIW(J IVLENEXEMPTLIB$GET_FOREIGN(JP xILENLIB$SYS_TRNLOG(J FGETFID DFOR$OPEN DFOR$HANDLER DFOR$CLOSE SYS$GETDVIW LIB$DATE_TIME SYS$ASSIGNUNEXEMPT DFOR$EXITFILACC DFOR$DELETELIB$SET_SYMBOLREDACLOPRMSGREPLENTLIB$WAIT(Jh GETPV LIB$SPAWNJTSCR(J LPRC(J LFILCK SYS$DASSGN DFOR$WRITE_SEQ_FMT DFOR$REWRITE_FMT DFOR$WRITE_INT_FMT DFOR$WRITE_INT_FMT_XMIT DFOR$READ_INT_FMT DFOR$READ_INT_FMT_XMIT DFOR$WRITE_SEQ_FMT_XMIT DFOR$READ_KEY_FMT DFOR$READ_SEQ_FMT DFOR$REWRITESYS$OPENGETFID DFOR$INQUIRE(Jp IUFCK DFOR$READ_SEQ_FMT_XMIT SYS$CONNECT(J GTXABOTS$MOVEOTS$FILL OTS$MOVEM OTS$INDEX OTS$DIV_IOTS$STRCMP_LEQS OTS$DIV_L = 6M76M76 JTD$DB:OPHHW.GDB76 JTD$DB:OPWHW.GDB76% **** File security access on device:HG@ Filespec given:HG@ Fid:(V,V,V)76 User:H UIC:\ Hex priv vector:\G@ Terminal:H Accport:H PID:\76 Date of this access:H Access string:@@H76H (W,W,W)76H76H (W,W,W) V 76W 76H (W,W,W)763 ****************** Next File *********************76H76 Time access control string:H76' Max privilege to open file mask (hex):\76/ Security checksum stored for file (0 if none):\76! File password hash (0 if none): \76 Permitted user list:H76 Forbidden user list:H76% Command file to run if access fails:H76% Command file to run to check access:H76! Permitted terminal/accport list:H76! Forbidden terminal/accport list:H76 Permitted image list:H76, Backup user allowed R/W access to this file76, Backup user allowed R/O access to this file76! Images forbidden to access file:H76 Backup user list:H76% Softlink to this file if acc denied:H76 File softlinked (r/w) to:H76- File is set to be inspected by Safety server76W76- Process accessing file has base prio set to H76* Priv mask when this file is@ SAFETY013.A  ([EVERHART.JTDEMO]JTAUTHMAINT.OBJ_AXP6;10;.> open becomes:H761 When file opens process gains ident value (hex):H76 Old:HG$Confirm replace [Y/N/A/X]76H76 %EACF-W-File ID [@H ACE deleted. Replacing.76H76H76\76W76 No security record exists file H76 Security controls, file:H76 File id:M,M,M76 Time access permissions:H76 Max privs:\@\ Tamper xsums:[ 767 Lists key: S(filename)U(ok-users-list)V(bad-user-list)G. K(ok-tty-list)L(bad-tty-list)I(ok-image-list)G4 J(bad-image-list)B(backup-user-list)A(ACE contents)76H76$@GCY$CM:FILSAV H@\@\76\76V76\76QQ76QHQH76H76DQQQQQQQQQQQQQQQQ7 =0#(~^^~cGGG0"0J`HF, 0"Q2v^J`SH@FQ0" "0"_"0 !9Hr@J2D  001'J`H F0$ 0"B$R"0PG0 !?Hq J1D  0P2v^J`SH@FP( 0""H1"0 0G0 !9Hr@J2D - 0 01'J`H F 0L 0"(BR"0,PG00 !?Hq J1D0  00P2v^J`SH@F0P0"40"P1"080G08 !9Hr@J2D8  0801'J`H F800< 0"@0BTR"0DPG0H !?Hq J1DH  0HP2v^J`SH@FHP0D 0"L0"H1"0P00BT0X0"\0X#4G0"X1"G0b0("GGXB`b@Zk0"\""& "Xb(s"\}X"TGb)@Ӏ"H$""& "Xb\}X"TGb)@Ӏ" T""&"Xb$s"\}X"TGb)@Ӏ"$""&@"XbLs"\}X"TGb)@Ӏ"GHBPb@Zk4G0"8G0"XQ2_JpJPFXQG0bX哦4vJpSJFX哶0"0\0¦0"0`ײG0"`Y:YKxKXG`YTG0b` HxKD`04 0"h0"l0Bp0bt0x0`0P"B"4GB@Zk4GGB@Zk0¦d0h0"l0p0t0"00x0"|0BPrFPr&"X0bP{#\}&"`#dX"`="0BR"GGhBpb@Zk0"0Ⱒ0P"0BPR"GTG8B@ZkGB@Zk0¦P.JBT(0PG8GO(0"P9?G8*GJ( 0"0BPR"GB@ZkTG4G0P"B"B@Zk0@00P"B"TGB@ZkGGB@Zk0"9 0"!!1 @0"0BR"GG8B@ZkGB@Zk0¦֢0⦄TG @0P"0BPR"GTBGTG8B@ZkGB@Zk'P#X0"! \=X"4GxbZ(@0"0PFF0"111 B0B2B"0bs31`B0Q"3aJ`X}0⦐"h("?&1"X}"@GBb@Zk""0 X("X]"tGBb@Zkh""0 X("X]"tGBb@Zk0?"Bb@Zk00㵢"F'0⦘ײ00"9?$!OC000"10Br3Jq JqFr0BZ0b vHzS@KD0㔢0զ6JtJFն079v>K70x"0x"_&R"X]0 \'P{#`}0`"dX"0"1"`]"tG(B0b@Zk0"0w'0"㱢0`"0B`R"GG8B@ZkGB@Zk<Ðb"0¦֢0"6J4G`Xݶ4Gh=pxTG("tG_&R"X"GBb@ZkGW'Xb"("tG_&R"GGBb@ZkG4G0" B"B@Zk0@00"90`"0BR"GG8B@ZkGB@Zk?$P! X=0`"\#4GGX]"0bXs"0("GGBb@Zk000"0BR"GG8B@ZkGB@Zk0"0!0¦60"0BR"GB@Zk0FF 0"0BR"GB@Zk4GGB@ZkG4G0" B"B@Zk0@00"9 0"!!1 @0"0BR"GG8B@ZkGB@Zk""&"Xݲ0 \X"TGb'@0"4G0"0BR0bs2SB0@B0T0㵢01B0C"4GB"B@Zk 0¦֢0B0⦴ײ0#0"90 C0"!B"00"111 B0B0bs"qB0J`=X0BZ#h]("?&1"X}"@ "GBb@Zk0 1@0"0BR"GG8B@ZkGB@Zk0"4! G4G0"B"B@Zk0@00"991 C0"0BR"GG8B@ZkGB@Zk0"!G6B0"0BR"GTBGG8B@ZkGB@Zk""&"X0#\X"TGb&@0"0㰢0"0BR"GG8B@ZkGB@Zk$""& "Xݲ0#\X"TGb&@0"$""& "X0bs"\}X"TGb&@0"B""0"10bs"1!J0P"`Xp}h=("?&1"X}"@"GBb@Zk""00"! H`=X("X]"tGBb@Zkh""0 X("X]"tGBb@Zk04G4G0"B"B@Zk0@00"9G!9@0"0BR"GTBGG8B@ZkGB@ZkG =4G0"B"B@Zk0@00"9G!9@0"0BR"GTBGG8B@ZkGB@Zk""&"Xݲ0 \X"TGb`&@0"0㰢0"0BR"GG8B@ZkGB@Zk$""& "Xݲ0#\X"TGbF&@0"B""0"P1"`=X04"h("?&1"X}"@D"GBb@Zk""00"! H`=X("X]"tGBb@Zkh""0 X("X]"tGBb@ZkT""$ X0P"\X"TGb&@0"TGG0P"B"B@Zk0@b"#G4G=_"]4GTGtG}G=TG=("G_&R""GBb@ZkGlx"!00x"10B20bs3fJfJ0t0ⵦ5JJ0¦㶲0אJ00"0JJ?"(B0b@Zk00㵢0¦֢&NB0㸲b"0"90"! 9!K`=X=("G_&R"X"@p"GXB`b@Zk""00"! H`=X("X]"tGxBb@Zk""0 X("X]"tGxBb@Zk""0 X("X]"tGxBb@Zkh""0 X("X]"tGxBb@Zkb"H"(! H`=X("G_&R"X"@"GXB`b@Zk""X("X]"tGxBb@Zkh""G0"'0C"HB"B@Zk0@0 0" 90"!!C!Q @0 00" 10BR0@B65B0P"0BR"GTBG?"8B@ZkGB@Zk0 0 B 1@0b"0"90"P! 9!K`=X=("G_&R"X"@"GXB`b@Zk@?"TG0"0B"B@Zk0@00"9?0"!01 @@?"10B4G0C"HB"B@Zk0@0 0" 90"!!C!Q @0 00" 10BR0@B65B0P"0BR"GTBG?"8B@ZkGB@Zk0 0 B 1@04G0"!0¦֢61B0BP.J0"0BR _B0bs`BSF_0䔢8F0BZ0@C0b[@b"("G_&R"G@0"GXB`b@Zk0xD/B"G00"0BPq.qJ3aJ0"`X=h}("?&1"X}"@l"GBb@Zkb"0 TG`X=("G_&R"X"@x"GXB`b@Zk0@0"0F60"䱢0"0BUBPR"GB@ZkB"GG0#`Xݶ0"! p=h("?&1"X}"@"GBb@Zkb"0 G`X=("G_&R"X"@"GXB`b@Zk00@0"l0FG0"䱢0"0BUBPR"GB@ZkB"GG0#`Xݶ0"! p=h("?&1"X}"@"GBb@Zkb"0 G`X=("G_&R"X"@"GXB`b@Zk00@0"2Xb"("G_&R"GGBb@ZkGBb@Zk"4GBb@ZkTGG0 `?=P"B"B@Zk0@TGtG0P"B"B@Zk0@0 TGG0P"B"B@Zk0@0"0CTG!8@0P"0BPR"GTBG?"8B@ZkGB@Zk""&"Xݲ0P \X"TGbl@ 0"P!?D$D 0P"0BQR"?"B@Zk4GGB@Zk0"0BPR"4GB@ZkGGB@Zk0P"0BQR"?"B@Zk4GGB@Zk?"4G0P"0BR"B@Zk0@00"99# 0"!!1 @0P"0BPR"G?"8B@ZkGB@Zk0¦֢"7B0P"0BPR"GTBG?"8B@ZkGB@Zk0$0P"B"4GB@ZkGGB@Zk?"4G0P"0BR"B@Zk0@00"9e 0"!!  051B0P"0BPR"G?"8B@ZkGB@Zk4G0$ײ0(T""'#X0"P! \=X"TGb@0",0$ T""_&R"X]0P"\X"TGb@0"(b"0P"?"`X=("TG_&R"X"@"GBb@ZkG0"004@?"0B,r0"0BPR"B@Zk0@080"89 0" ![ ""&@"X0bs"\}X"TGb@0"<b"0<0"1"0J`=X("G_&R"X"@8"GXB`b@Zkb"G0"! `=X("G_&R"X"@t"GBb@Zk0D8 D%0"!?D8/D 0F F0"1?F-F?0BR_F8HF@0bsF8lF`0 0ⵦFF0¦֦FF088F,0,@?#98C0"0BR"GTBG@?"8B@ZkGB@Zk0(0"(!@"<CGGG0BPR"G@?"8B@Zk0BR"@"8B@Zk0"@?"GB@ZkG08"]0(0"890891 C 1@0"8!0¦,֢6@!1 @@"5B@?"  B0"GBG0BR"GTBG8B@ZkGB@Zk0(8080¦8֢81C61B0"(9080",!@ 1@@"7B7C<CGGG<CGGGG0BPR"G8B@Zk0B@BR"G8B@ZkGGGB@Zk@?#66C0"GBGGG8B@ZkGB@ZkG4G0004䥠0@0"4买048#0¦0֢@b"("TG_&R"GGBb@ZkGBb@Zk"4GBb@ZkTGG0P"B"B@Zk0@0ㄠ$$vH@X0"9#\=X"0"1"GGGGBb@Zk00ㄠ0D0"ば0B0"1?BF GBb@Zk"4GBb@Zkb"0P  `X("TG_&R"X"@"GBb@ZkGN4G0㤰0P"0"1"0BR"tGB b@Zk0$HEV$GC D0P"B"4GB@Zk?"GB@Zk@?"TG0"PB"B@Zk0@00"9$ 0㥠0P"0BEBR"?"B@Zk?"4G0P"HB"B@Zk0@00 0"90P"0BPR"G?"8B@ZkGB@Zk""$ X0¦P"\ݲX"TGb@0xB" 0"P! G0"P1"`=Xp=h("?&1"X}"@"GBb@Zk""0ㄠ0P $H`X("X]"tGBb@ZkT""$ X0P \X"TGb@0@b"0@䥠0"P! %H`=X("G_&R"X"@"GXB`b@Zk0@䄠$$vH@X0"P! \=X"4GBb@ZkEV$GC 0(場0"0偰@?"TG0"0B"B@Zk0@0D0"D9,?0D䥠0@0P"0BEBR"?"B@ZkGGB@Zk?"4G0P"HB"B@Zk0@000"991 C0P"0BPR"G?"8B@ZkGB@Zk0㥠p@0"H䡰0¦H֢FXݲ0("X]"4GB@Zk071B0P"0B(R"GB@Zk0BPR"G?"8B@ZkGB@Zk0H"0BPR"G?"8B@ZkB"TG8B@Zk0"G?"33B]"8B@ZkGB@Zk0H䄠0@0L䘰0"L90"!0㥠 0¦֢0B,"@H<0㵢0B0㰲0"11"?0P"0"1"0BR"tG8B@b@ZkGBb@Zk"4GBb@Zk4G0P䅰tG0"b"0P"?"G`X=x¦hݶp]x_'8Z#]@ #("TG_&R"X"h"G(B0b@ZkGG0eG00"!?@0uB0D 0"1&F 0BT0T"4GBb@Zkp0 8O=P888"0X0"`0Bh2&s"0pt"0¦t0"B"4GB@ZktGGB@Zk0⦤00"0"B"GB@Zk4?"GB@Zkx0Px0"T""&@"Xݲ0#\X"TGbo@0X0X䥠@0"X䡰b"0P"0"X11!J`X=("TG_&R"X"@0 "GXB`b@Zkb"0P  G`Xx"h=px&8"ݶ@##("TG_&R"X"h"G(B0b@ZkGG0dG04G0P0x"10B2xbs0tTGG0P"B"B@Zk0@0P ("TG_&R"GGhBpb@ZkXb"("TG_&R"GGBb@ZkGBb@Zk"4GBb@ZkTGG0P"B"B@Zk0@0P䄠 GBb@Zk`"4GBb@ZkB" 0P G0"P! `=Xph("?&1"X}"@"GBb@Zk$ X  \&"`0BPR"d]X"`="TGhBpb@Zk$ X@ \&"`0BXR"d]X"`="TGhBpb@ZkB" 0p G0"P! `=Xph("?&1"X}"@"GBb@Zk$ X \&"`0BPR"d]X"`="TGhBpb@ZkB" 0x G0"P! `=Xph("?&1"X}"@"GBb@Zk$ XP \&"`0BPR"d]X"`="TGhBpb@ZkB" 0 G0"P! `=Xph("?&1"X}"@"GBb@Zk$ Xx \&"`0BPR"d]X"`="TGhBpb@Zk@?"TG0"@B"B@Zk0@00䥠F001C@?#10C4G0C"HB"B@Zk0@0 0 䥠0@%Q@0" 买0" !00B!5@0P"0BR"GTBG?"8B@ZkGB@Zk0¦ ֢06B61B00䄠'#X"#\=&$vH@`0"P1"d=X"`="TGhBpb@Zk@?"TG0"B"B@Zk0@00䄠F001C@?#10C4G0C"HB"B@Zk0@0 0 䄠0@$Q@0" 䙰0" !00B!5@0P"0BR"GTBG?"8B@ZkGB@Zk0¦ ֢06B61B00䥠'#X"#\=&%vH@`0"P1"d=X"`="TGhBpb@Zk@?"TG0"B"B@Zk0@00䥠F001C@?#10C4G0C"HB"B@Zk0@0 0 䥠0@%Q@0" 买0" !00B!5@0P"0BR"GTBG?"8B@ZkGB@Zk0¦ ֢06B61B00䄠'#X"#\=&$vH@`0"P1"d=X"`="TGhBpb@Zk@?"TG0"B"B@Zk0@00䄠F001C@?#10C4G0C"HB"B@Zk0@0 0 䄠0@$Q@0" 䙰0" !00B!5@0P"0BR"GTBG?"8B@ZkGB@Zk0¦ ֢06B61B00䥠'#X"#\=&%vH@`0"P1"d=X"`="TGhBpb@Zk@?"TG0"B"B@Zk0@00䥠F001C@?#10C4G0C"HB"B@Zk0@0 0 䥠0@%Q@0" 买0" !00B!5@0P"0BR"GTBG?"8B@ZkGB@Zk0¦ ֢06B61B00䄠'#X"#\=&$vH@`0"P1"d=X"`="TGhBpb@Zk@?"TG0"B"B@Zk0@00䄠F001C@?#10C4G0C"HB"B@Zk0@0 0 䄠0@$Q@0" 䙰0" !00B!5@0P"0BR"GTBG?"8B@ZkGB@Zk0¦ ֢06B61B00䥠'#X"#\=&%vH@`0"P1"d=X"`="TGhBpb@Zk@?"TG0"B"B@Zk0@00䥠F001C@?#10C4G0C"HB"B@Zk0@0 0 䥠0@%Q@0" 买0" !00B!5@0P"0BR"GTBG?"8B@ZkGB@Zk0¦ ֢06B61B00䄠'#X"#\=&$vH@`0"P1"d=X"`="TGhBpb@Zk00䤰0PD0"0?&1"X=Hb"\}&"`("dX"`="TGhBpb@Zk0䄠$ XH" \=?&1"`=@b"d}X"`="TGhBpb@Zk@?"TG0"B"B@Zk0@00䥠F001C@?#10C4G0 _=C"HB"B@Zk0@0 0 䥠0@%Q@0" 买0" !00B!5@0P"0BR"GTBG?"8B@ZkGB@Zk0¦ ֢06B61B00䄠'#X"#\=&$vH@`0"P1"d=X"`="TGhBpb@Zk@?"TG0"xB"B@Zk0@00䄠F001C@?#10C4G0C"HB"B@Zk0@0 0 䄠0@$Q@0" 䙰0" !00B!5@0P"0BR"GTBG?"8B@ZkGB@Zk0¦ ֢06B61B00䥠'#X"#\=&%vH@`0"P1"d=X"`="TGhBpb@Zk@?"TG0"PB"B@Zk0@00䥠F001C@?#10C4G0C"HB"B@Zk0@0 0 䥠0@%Q@0" 买0" !00B!5@0P"0BR"GTBG?"8B@ZkGB@Zk0¦ ֢06B61B00䄠'#X"#\=&$vH@`0"P1"d=X"`="TGhBpb@Zk@?"TG0"8B"B@Zk0@00䄠F001C@?#10C4G0C"HB"B@Zk0@0 0 䄠0@$Q@0" 䙰0" !00B!5@0P"0BR"GTBG?"8B@ZkGB@Zk0¦ ֢06B61B00䥠'#X"#\=&%vH@`0"P1"d=X"`="TGhBpb@Zk@?"TG0"(B"B@Zk0@00䥠F001C@?#10C4G0C"HB"B@Zk0@0 0 䥠0@%Q@0" 买0" !00B!5@0P"0BR"GTBG?"8B@ZkGB@Zk0¦ ֢06B61B00䄠'#Xh"#\=&$vH@`0"P1"d=X"`="TGhBpb@Zk@?"TG0"0B"B@Zk0@00䄠G001C@?#10C4G0C"HB"B@Zk0@0 0 䄠0@$Q@0" 䙰0" !00B!5@0P"0BR"GTBG?"8B@ZkGB@Zk0¦ ֢06B61B04G0\丰$ X" \=&"`B"d]X"`="TGhBpb@Zk$ XX \&"`B"d]X"`="TGhBpb@Zk$ X \&"`B"d]X"`="TGhBpb@Zk$ X \&"`B"d]X"`="TGhBpb@Zk0\䄠$1@0@P,H0"0 B0"1 BF0BR8@F@0b\s0`B0\t&"X"\?'9#`=b#d}X"`="TGhBpb@Zk0䥠xD/B"G0\0" @P.J0J0"1"`=Xh("?&1"X}"@"GBb@Zk$ XX \&"`0BR"d]X"`="TGhBpb@Zk0\䄠Ѐ@0\䅰0D60"\!0"0BABPR"GB@ZkB"GG0#`Xݶ0 ph("?&1"X}"@"GBb@Zk$ X \&"`0BR"d]X"`="TGhBpb@Zk0\䄠0@0\䅰h0D60"\!0"0BABPR"GB@ZkB"GG0#`Xݶ0 ph("?&1"X}"@"GBb@Zk$ X \&"`0BR"d]X"`="TGhBpb@Zk0\䄠0@0\䅰.TGG0P"B"B@Zk0@ GBb@Zk"4GBb@ZkTGG0P"B"B@Zk0@0P䄠b"0㥠0#%H`X("G_&R"X"@"GXB`b@ZkGBb@Zk"4GBb@ZkB" 0P G0"P! `=Xph("?&1"X}"@"GBb@Zk$ X  \&"`0BPR"d]X"`="TGhBpb@Zk$ X@ \&"`0BXR"d]X"`="TGhBpb@ZkB" 0p G0"P! `=Xph("?&1"X}"@"GBb@Zk$ X \&"`0BPR"d]X"`="TGhBpb@ZkB" 0x G0"P! `=Xph("?&1"X}"@"GBb@Zk$ XP \&"`0BPR"d]X"`="TGhBpb@ZkB" 0 G0"P! `=Xph("?&1"X}"@"GBb@Zk$ Xx \&"`0BPR"d]X"`="TGhBpb@Zkb"0ㄠ0 $H`X("G_&R"X"@("GXB`b@Zk0P0⤰0T0"00JJ0"1_"2F: ?&QNB0b`0┦4JJ0d䕲0¦֢F0hײ n=b"0`#X("G_&R"X"@T"GXB`b@Zk""0d X("X]"tGxBb@Zkh""0h X("X]"tGxBb@Zkb"0X G`X("G_&R"X"@"GXB`b@Zkhb"0p G`X("G_&R"X"@"GXB`b@Zk ""0x G`X("X]"tGxBb@Zk@b"("G_&R"G@"GXB`b@Zk4G0l䅰G0"p4G0"b"0BpR0l䔢41B2TB0C"2AJ`X]("G_&R"X"@ "GXB`b@Zk0l䄠@0l䅰0p @0"p00B0"0BRR"_GBb@Zk"4GBb@ZkTGTG0P"B"B@Zk0@08TGTG0P"B"B@Zk0@0"B"4GB@Zk??"GB@Zk 0p?#0t$0"t0¦|8880X0"`0BhTGTG0P"B"B@Zk0@ 00丰0䄠TD0"䙰0"!00TGTG0P"B"B@Zk0@ 00丰0䄠QD0"䙰0"!00TGtG0P"xB"B@Zk0@00TGtG0P"B"B@Zk0@<TGtG0P"B"B@Zk@00"901 CTG1@4G0CP"`B"B@Zk00ㄠ!0"90㥠%C%1@0"t䡰0t0"111 B0B0BR"0bs"C&0vJBX0CP1"\=X"0"1"Gb> @0x000"|TGTG0P"B"B@Zk0@ 0P"B"4GB@Zk4GGB@Zk4G0"|0TGTG0P"B"B@Zk0@4G0丰TGTG0P"B"B@Zk0@0"9 $$G0TGTG0P"B"B@Zk0@0?'G0TGTG0P"B"B@Zk0@0|䥠0@0"|买0|䄠$1@TG0"$@P.qKPJFP>0BR@F0bS00䵢}x¦֢0⦰ײB"_#0b{0 ;aK0P `X]ph}("?&1"X}"@ "GBb@Zk""xX("X]"tGBb@Zkh""x X("X]"tGBb@Zk0P䄠8D ("TG_&R"GGhBpb@Zk""$ X0P \X"TGb @00㥠?$%vH@X=0"P1"\=0bs"#~X"GGGGGGBb@Zk0@ SAFETY013.A  ([EVERHART.JTDEMO]JTAUTHMAINT.OBJ_AXP6;10;ϻ>F0䥠0DG0"PG00FTG0BP20b|s31`B0BP.UJP>0¦|֢61B0|ײTGTG0P"pB"B@Zk0@00"9C 0ㄠ0@TG1@4G0CP"`B"B@Zk0@00"90ㄠ$C0@0ㅰ0"!0!0@!Q @0"10BR0bs0`B2SB21@B&2v@JTBX]0CPs"\}X"0"1"0BR"0bs"Gb @0䄠0ㅰ00" 4G0"xTGTG0P"8B"B@Zk0@00"9 0x䄠0㥠0@TG10@4G0CP"`B"B@Zk0@00"90ㄠ$C0@0ㅰ0"!0!0@!Q @0"10BRP@B0bS0㔢41B0㕲B"0¦֢0⦀71B6B0BPZ#WC6JG`Xݶ0" 9#p=h}("?&1"X}"@ "GBb@ZkGL0"0" 1"0BR"0bs"GBb@Zk0|䄠0@0|䅰0|@0"0 0"80B$R0bG4G0`" B"B@Zk0@00ㄠ?'$vH@X0"`! \=X"0"l1"GGGGGBb@Zk0TGTG0P"@B"B@Zk0@ x0"l1"0BPR"tG8B@b@Zk0l4G8B@b@Zk0x0"Px0"T0B|R@@?"TG0"0B"B@Zk0@00"92 0ㄠ01@@ 1@4G0C"HB"B@Zk0@00"90ㄠ$C0@0ㅰ0"!0!1 @01B0"㱢@_"6UB@"7pB0"GBG0BR"GTBG8B@ZkGB@Zk""$@ X0"9#\=X"TGb<@00䄠0"!0|䰢4GB<CGG"G0BPR"G8B@ZkHB"G8B@ZkGG]"B@ZkTG7C<CGGGG0B"G8B@ZkGG8B@Zk@"!B0"GBGGG8B@ZkGB@Zk""?'@9#X=0⦴"\X"TGb@0X0X䥠@0"X䡰0P8FGb"0"P1"0BXR2AJ`=X]("TG_&R"X"@0 "GHBPb@ZkG0P䄠b"0P 0X H`X("TG_&R"X"@0 "GXB`b@ZkXb"("TG_&R"GGBb@ZkGBb@Zk"4GBb@ZkGBb@Zk`"4GBb@Zk4GcG]]}#k$""_R"#~ ^(^0~8GGG=] 4GB`2G4G8B@b@Zk"``C.c.CJS cJSF4բ6vJղG"TG(B0b@Zk`CG ](]0}8@#kGGG!4GHPH4G BH]H01B0@P.PJDB @H0@HH]RR"_H GGkGGGGGGԢ4G0=0]R VB'@0}s31`BB3.3J0]2pN0}sB@@N0}sSB@! a0`Ba@@ 0 B 0}s0`B0]r0 BGkGGGGr.rJ*@R4Gݦ B!  B0@ݦ01BPB,H@ ݦ֢0Bв=1 4B?GGGkGGk.V JFð#~^^ ~(08޴@HGGGGGGcB9"G4GX@Zk(X"TGX@Zk"tG]"X@Zk?"tGGXR"X@Zk0@88111 B_"2QB@4GG0X"X@Zk0@881XR2B1Q Bx3@?"TGGGX@Zk0@8b8111 B@_"2QB1C4GGX"X@Zk0@881B0QBXxӢPB7B@XZ@# zC:CB<CGGG<CGGGGGGX@ZkGGX@ZkGGGX@Zk4GB<@GGGG X"GX@ZkGGX@Zk@"<CGGGGG@?"X@ZkGGX@ZkGG@?"33BGX@ZkGX@ZkG[8"$@ ݰ ="x#_TG8!PB!0@@4G6@<CGGG<CGGGGGGX@ZkX"GX@Zk H=  GGGX@Zk@<@GGG<CGGGGGGX@ZkGGX@ZkGGGX@Zk@"<BGGGGG@?"X@ZkGGX@ZkGG@?"33BGX@ZkGX@ZkG"G4GX@Zk8X"TGX@Zk"tG]"X@Zk?"tGGXR"X@Zk0@ؤƠ&1@? 1&@@4G0X"X@Zk0@ؤƠ8!@!Q @0@?"TGGGX@Zk0@nؤƠ&1@@? 1&@&C4GX"X@Zk0@ؤƠ@%Q@8810 B2B1CxsPB3tB@GGX@Zk0@ؤƠA8!@p @081XRxs2SB2B1Q B45QB5C.JF71BXx{;1`C@ '@@"<CGGGGG@?"X@ZkGGTBGX@ZkGG@?"33BGX@ZkGX@ZkG"G4GX@Zk0X"TGX@Zk"tG]"X@Zk?"tGGXR"X@Zk0@砵ؤƠ&1@? 1&@@4G0X"X@Zk0@砥ؤƠ8!@!Q @0@?"TGGGX@Zk0@6ؤƠ&1@@? 1&@&C4GX"X@Zk0@ؤƠ@&Q@851B8Ѣ@_"7VB@"<CGGGGG@?"X@ZkGGTBGX@ZkGG@?"33BGX@ZkGX@Zk8"$@  ="x#_ؤTG8!PB!0@@4G6@<CGGG<CGGGGGGX@ZkX"GX@ZkGGGX@Zk@<@GGG<CGGGGGGX@ZkGGX@ZkGGGX@Zk@ SAFETY013.A  ([EVERHART.JTDEMO]JTAUTHMAINT.OBJ_AXP6;10;R">e@"<BGGGGG@?"X@ZkGGX@ZkGG@?"33BGX@ZkGX@ZkGG]] }(08ݤ@HP#k@#~^^~޴cGGGGG%,%H=$B 2#b$ 3GB( 2Xb"=C!!HH@="( 1"P="?"_&R"@"GhBpb@Zk8b"C H4G( H@P=4GX4G`hBp]TGx="TG_&R"@"GhBpb@ZkGw4G, 00"1!N0BR2Bb 38b" "@"TG_&R"@"< "GxBb@ZkGC""? 8 "H@="@]"tGxBb@ZkG5" 4G"0 B0 R FB_d0 C7 .TJJtBdpN, "0 9C7 Y/YYK'KOB, C", #0 B#0 0B0 b0 s fBb""TG_&R"GGXB`b@Zk"  " Q2v^JpSJPF Qb SDcG]]}ݤ#ke.S eJaF<#~ ^(^0~8GG=]4G4GBb@Zk("8(84G0B8b@Zk("8(8G?"B2G)}$.'.$s"JU JF(¦<v(@(<("@1"(BDR"(bHs"G b@(@("@!(<0("@(BDRbS(HGG ](]0}8@#kGGGGGGFF54GkU2FJFJ@Gk4CG SYS$GETJPIW4Db#h SYS$GETJPIW4C@ SYS$GETJPIW, GEXEMPT, b#hEXEMPT, @EXEMPT4GOTS$MOVE4@OTS$MOVE4GOTS$FILL4@OTS$FILL4 dGpLIB$GET_FOREIGN4 hb#hLIB$GET_FOREIGN4 l@pLIB$GET_FOREIGN4#G OTS$MOVEM4#@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4GOTS$MOVE 4@OTS$MOVE4!G  OTS$INDEX4!@  OTS$INDEX4<GDOTS$MOVE4@@DOTS$MOVE4LGTOTS$FILL4P@TOTS$FILL4#G OTS$MOVEM4#@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4#G OTS$MOVEM4#@ OTS$MOVEM4GOTS$FILL4@OTS$FILL<1GDFOR$READ_INT_FMT<2b#hDFOR$READ_INT_FMT<1@DFOR$READ_INT_FMT<7GDFOR$READ_INT_FMT_XMIT<8b#hDFOR$READ_INT_FMT_XMIT<7@DFOR$READ_INT_FMT_XMIT<7GDFOR$READ_INT_FMT_XMIT<8b#hDFOR$READ_INT_FMT_XMIT<7@DFOR$READ_INT_FMT_XMIT4G OTS$DIV_I4b#h OTS$DIV_I4@ OTS$DIV_I4= G LIB$SYS_TRNLOG4> b#hLIB$SYS_TRNLOG4= @ LIB$SYS_TRNLOG4#T G\ OTS$MOVEM4#X @\ OTS$MOVEM4` Gh OTS$FILL4d @h OTS$FILL4- G DFOR$OPEN4. b#h DFOR$OPEN4- @ DFOR$OPEN4+ G DFOR$CLOSE4, b#h DFOR$CLOSE4+ @ DFOR$CLOSE4! G OTS$INDEX4! @ OTS$INDEX4#H GP OTS$MOVEM4#L @P OTS$MOVEM4T G\ OTS$FILL4X @\ OTS$FILL4 G SYS$GETDVIW4 b#h SYS$GETDVIW4 @ SYS$GETDVIW4# G OTS$MOVEM4# @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4 G OTS$MOVE4 @ OTS$MOVE48 G@ OTS$MOVE4< @@ OTS$MOVE4H GP OTS$FILL4L @P OTS$FILL4!d Gl OTS$INDEX4!h @l OTS$INDEX4# G OTS$MOVEM4# @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4 < GD OTS$STRCMP_LEQS4 @ @D OTS$STRCMP_LEQS<1 G DFOR$READ_INT_FMT<2 b#hDFOR$READ_INT_FMT<1 @ DFOR$READ_INT_FMT4# G OTS$MOVEM4# @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4!@ GH OTS$INDEX4!D @H OTS$INDEX 4#x G OTS$MOVEM4#| @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4# G OTS$MOVEM4# @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4#$G, OTS$MOVEM4#(@, OTS$MOVEM40G8OTS$FILL44@8OTS$FILL<GDFOR$WRITE_INT_FMT<b#hDFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT<(G4DFOR$WRITE_INT_FMT_XMIT<,b#hDFOR$WRITE_INT_FMT_XMIT<0@4DFOR$WRITE_INT_FMT_XMIT<PG\DFOR$WRITE_INT_FMT_XMIT<Tb#hDFOR$WRITE_INT_FMT_XMIT<X@\DFOR$WRITE_INT_FMT_XMIT4!|G OTS$INDEX4!@ OTS$INDEX4#G OTS$MOVEM4#@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4!G OTS$INDEX4!@ OTS$INDEX4#,G4 OTS$MOVEM4#0@4 OTS$MOVEM48G@OTS$FILL4<@@OTS$FILL4#G OTS$MOVEM4#@ OTS$MOVEM4GOTS$FILL4@OTS$FILL<G(DFOR$WRITE_INT_FMT< b#hDFOR$WRITE_INT_FMT<$@(DFOR$WRITE_INT_FMT<TG`DFOR$WRITE_INT_FMT_XMIT<Xb#hDFOR$WRITE_INT_FMT_XMIT<\@`DFOR$WRITE_INT_FMT_XMIT<|GDFOR$WRITE_INT_FMT_XMIT<b#hDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT4!G OTS$INDEX4!@ OTS$INDEX4-DGP DFOR$OPEN4.Hb#h DFOR$OPEN4-L@P DFOR$OPEN43G OTS$DIV_L44b#h OTS$DIV_L43@ OTS$DIV_L<%HGTDFOR$WRITE_SEQ_FMT<&Lb#hDFOR$WRITE_SEQ_FMT<%P@TDFOR$WRITE_SEQ_FMT<GDFOR$WRITE_SEQ_FMT_XMIT<b#hDFOR$WRITE_SEQ_FMT_XMIT<@DFOR$WRITE_SEQ_FMT_XMIT<GDFOR$WRITE_SEQ_FMT_XMIT<b#hDFOR$WRITE_SEQ_FMT_XMIT<@DFOR$WRITE_SEQ_FMT_XMIT<GDFOR$WRITE_SEQ_FMT_XMIT<b#hDFOR$WRITE_SEQ_FMT_XMIT<@DFOR$WRITE_SEQ_FMT_XMIT<GDFOR$WRITE_SEQ_FMT_XMIT<b#hDFOR$WRITE_SEQ_FMT_XMIT<@DFOR$WRITE_SEQ_FMT_XMIT<%DGPDFOR$WRITE_SEQ_FMT<&Hb#hDFOR$WRITE_SEQ_FMT<%L@PDFOR$WRITE_SEQ_FMT <hGtDFOR$WRITE_SEQ_FMT_XMIT<lb#hDFOR$WRITE_SEQ_FMT_XMIT<p@tDFOR$WRITE_SEQ_FMT_XMIT<GDFOR$WRITE_SEQ_FMT_XMIT<b#hDFOR$WRITE_SEQ_FMT_XMIT<@DFOR$WRITE_SEQ_FMT_XMIT<GDFOR$WRITE_SEQ_FMT_XMIT<b#hDFOR$WRITE_SEQ_FMT_XMIT<@DFOR$WRITE_SEQ_FMT_XMIT<GDFOR$WRITE_SEQ_FMT_XMIT<b#hDFOR$WRITE_SEQ_FMT_XMIT< @DFOR$WRITE_SEQ_FMT_XMIT<,G8DFOR$WRITE_SEQ_FMT_XMIT<0b#hDFOR$WRITE_SEQ_FMT_XMIT<4@8DFOR$WRITE_SEQ_FMT_XMIT4XGd LIB$DATE_TIME4\b#h LIB$DATE_TIME4`@d LIB$DATE_TIME4GOTS$MOVE4@OTS$MOVE4!G OTS$INDEX4!@ OTS$INDEX4!G  OTS$INDEX4!@  OTS$INDEX4#G OTS$MOVEM4#@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4GOTS$MOVE4@OTS$MOVE4#G OTS$MOVEM4#@ OTS$MOVEM4# G( OTS$MOVEM4#$@( OTS$MOVEM4#@GH OTS$MOVEM4#D@H OTS$MOVEM4LGTOTS$FILL4P@TOTS$FILL<%GDFOR$WRITE_SEQ_FMT<&b#hDFOR$WRITE_SEQ_FMT<%@DFOR$WRITE_SEQ_FMT<GDFOR$WRITE_SEQ_FMT_XMIT<b#hDFOR$WRITE_SEQ_FMT_XMIT<@DFOR$WRITE_SEQ_FMT_XMIT4+$G0 DFOR$CLOSE4,(b#h DFOR$CLOSE4+,@0 DFOR$CLOSE4-G DFOR$OPEN4.b#h DFOR$OPEN4-@ DFOR$OPEN4!G OTS$INDEX4! @ OTS$INDEX49XGd SYS$ASSIGN4:\b#h SYS$ASSIGN49`@d SYS$ASSIGN4GUNEXEMPT4b#hUNEXEMPT4@UNEXEMPT4)G DFOR$EXIT4*b#h DFOR$EXIT4)@ DFOR$EXIT</GDFOR$READ_SEQ_FMT<0b#hDFOR$READ_SEQ_FMT</@DFOR$READ_SEQ_FMT,8GDFILACC,<b#hFILACC,@@DFILACC45hGt DFOR$DELETE46lb#h DFOR$DELETE45p@t DFOR$DELETE4|GUNEXEMPT4b#hUNEXEMPT4@UNEXEMPT4)G DFOR$EXIT4*b#h DFOR$EXIT 4)@ DFOR$EXIT4!G OTS$INDEX4!@ OTS$INDEX4#G OTS$MOVEM4#@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4# G OTS$MOVEM4#@ OTS$MOVEM4G OTS$FILL4@ OTS$FILL4-G DFOR$OPEN4.b#h DFOR$OPEN4-@ DFOR$OPEN4'GLIB$SET_SYMBOL4(b#hLIB$SET_SYMBOL4'@LIB$SET_SYMBOL</0G<DFOR$READ_SEQ_FMT<04b#hDFOR$READ_SEQ_FMT</8@<DFOR$READ_SEQ_FMT4tG|OTS$MOVE4x@|OTS$MOVE4GOTS$FILL4@OTS$FILL4!G OTS$INDEX4!@ SAFETY013.A  ([EVERHART.JTDEMO]JTAUTHMAINT.OBJ_AXP6;10;>@ OTS$INDEX4GOTS$MOVE4@OTS$MOVE4GOTS$FILL4@OTS$FILL4!G OTS$INDEX4!@ OTS$INDEX4#TG\ OTS$MOVEM4#X@\ OTS$MOVEM4`GhOTS$FILL4d@hOTS$FILL43G OTS$DIV_L44b#h OTS$DIV_L43@ OTS$DIV_L<|GDFOR$WRITE_INT_FMT<b#hDFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT<GDFOR$WRITE_INT_FMT_XMIT<b#hDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT_XMIT<b#hDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT_XMIT<b#hDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<%tGDFOR$WRITE_SEQ_FMT<&xb#hDFOR$WRITE_SEQ_FMT<%|@DFOR$WRITE_SEQ_FMT4+G DFOR$CLOSE4,b#h DFOR$CLOSE4+@ DFOR$CLOSE4GUNEXEMPT4b#hUNEXEMPT4@UNEXEMPT4)G DFOR$EXIT4*b#h DFOR$EXIT4)@ DFOR$EXIT4!G OTS$INDEX4!@ OTS$INDEX4# G OTS$MOVEM4# @ OTS$MOVEM4# G( OTS$MOVEM4#$ @( OTS$MOVEM4#@ GH OTS$MOVEM4#D @H OTS$MOVEM4L GT OTS$FILL4P @T OTS$FILL4- G DFOR$OPEN4. b#h DFOR$OPEN 4- @ DFOR$OPEN4'(!G4!LIB$SET_SYMBOL4(,!b#hLIB$SET_SYMBOL4'0!@4!LIB$SET_SYMBOL</l!Gx!DFOR$READ_SEQ_FMT<0p!b#hDFOR$READ_SEQ_FMT</t!@x!DFOR$READ_SEQ_FMT4!G!OTS$MOVE4!@!OTS$MOVE4!G!OTS$FILL4!@!OTS$FILL4!!G! OTS$INDEX4!!@! OTS$INDEX4 "G("OTS$MOVE4$"@("OTS$MOVE40"G8"OTS$FILL44"@8"OTS$FILL4!L"GT" OTS$INDEX4!P"@T" OTS$INDEX4#"G" OTS$MOVEM4#"@" OTS$MOVEM4"G"OTS$FILL4"@"OTS$FILL430#G<# OTS$DIV_L444#b#h OTS$DIV_L438#@<# OTS$DIV_L<#G#DFOR$WRITE_INT_FMT<#b#hDFOR$WRITE_INT_FMT<#@#DFOR$WRITE_INT_FMT< $G$DFOR$WRITE_INT_FMT_XMIT<$b#hDFOR$WRITE_INT_FMT_XMIT<$@$DFOR$WRITE_INT_FMT_XMIT<4$G@$DFOR$WRITE_INT_FMT_XMIT<8$b#hDFOR$WRITE_INT_FMT_XMIT<<$@@$DFOR$WRITE_INT_FMT_XMIT<\$Gh$DFOR$WRITE_INT_FMT_XMIT<`$b#hDFOR$WRITE_INT_FMT_XMIT<d$@h$DFOR$WRITE_INT_FMT_XMIT<$G$DFOR$WRITE_INT_FMT_XMIT<$b#hDFOR$WRITE_INT_FMT_XMIT<$@$DFOR$WRITE_INT_FMT_XMIT<%%G%DFOR$WRITE_SEQ_FMT<&%b#hDFOR$WRITE_SEQ_FMT<% %@%DFOR$WRITE_SEQ_FMT4+0%G<% DFOR$CLOSE4,4%b#h DFOR$CLOSE4+8%@<% DFOR$CLOSE<|%G%DFOR$WRITE_INT_FMT<%b#hDFOR$WRITE_INT_FMT<%@%DFOR$WRITE_INT_FMT4'%G%LIB$SET_SYMBOL4(%b#hLIB$SET_SYMBOL4'%@%LIB$SET_SYMBOL4%G%UNEXEMPT4%b#hUNEXEMPT4%@%UNEXEMPT4)%G% DFOR$EXIT4*%b#h DFOR$EXIT4)%@% DFOR$EXIT4!&G & OTS$INDEX4!&@ & OTS$INDEX4#0&G8& OTS$MOVEM4#4&@8& OTS$MOVEM4#@&GH& OTS$MOVEM4#D&@H& OTS$MOVEM4#`&Gh& OTS$MOVEM4#d&@h& OTS$MOVEM4l&Gt&OTS$FILL4p&@t&OTS$FILL4-&G& DFOR$OPEN4.&b#h DFOR$OPEN4-&@& DFOR$OPEN4'@'GL'LIB$SET_SYMBOL4(D'b#hLIB$SET_SYMBOL 4'H'@L'LIB$SET_SYMBOL</'G'DFOR$READ_SEQ_FMT<0'b#hDFOR$READ_SEQ_FMT</'@'DFOR$READ_SEQ_FMT4'G'OTS$MOVE4'@'OTS$MOVE4'G'OTS$FILL4'@'OTS$FILL4!'G' OTS$INDEX4!'@' OTS$INDEX48(G@(OTS$MOVE4<(@@(OTS$MOVE4H(GP(OTS$FILL4L(@P(OTS$FILL4!d(Gl( OTS$INDEX4!h(@l( OTS$INDEX4#(G( OTS$MOVEM4#(@( OTS$MOVEM4(G(OTS$FILL4(@(OTS$FILL43H)GT) OTS$DIV_L44L)b#h OTS$DIV_L43P)@T) OTS$DIV_L<)G)DFOR$WRITE_INT_FMT<)b#hDFOR$WRITE_INT_FMT<)@)DFOR$WRITE_INT_FMT<)G*DFOR$WRITE_INT_FMT_XMIT<)b#hDFOR$WRITE_INT_FMT_XMIT<*@*DFOR$WRITE_INT_FMT_XMIT< *G,*DFOR$WRITE_INT_FMT_XMIT<$*b#hDFOR$WRITE_INT_FMT_XMIT<(*@,*DFOR$WRITE_INT_FMT_XMIT<H*GT*DFOR$WRITE_INT_FMT_XMIT<L*b#hDFOR$WRITE_INT_FMT_XMIT<P*@T*DFOR$WRITE_INT_FMT_XMIT<%*G*DFOR$WRITE_SEQ_FMT<&*b#hDFOR$WRITE_SEQ_FMT<%*@*DFOR$WRITE_SEQ_FMT<%*G+DFOR$WRITE_SEQ_FMT<&*b#hDFOR$WRITE_SEQ_FMT<%+@+DFOR$WRITE_SEQ_FMT<%<+GH+DFOR$WRITE_SEQ_FMT<&@+b#hDFOR$WRITE_SEQ_FMT<%D+@H+DFOR$WRITE_SEQ_FMT<%+G+DFOR$WRITE_SEQ_FMT<&+b#hDFOR$WRITE_SEQ_FMT<%+@+DFOR$WRITE_SEQ_FMT<%+G+DFOR$WRITE_SEQ_FMT<&+b#hDFOR$WRITE_SEQ_FMT<%+@+DFOR$WRITE_SEQ_FMT<%,G,DFOR$WRITE_SEQ_FMT<& ,b#hDFOR$WRITE_SEQ_FMT<%,@,DFOR$WRITE_SEQ_FMT4!(,G0, OTS$INDEX4!,,@0, OTS$INDEX4!p,Gx, OTS$INDEX4!t,@x, OTS$INDEX4#,G, OTS$MOVEM4#,@, OTS$MOVEM4,G,OTS$FILL4,@,OTS$FILL<%P-G\-DFOR$WRITE_SEQ_FMT<&T-b#hDFOR$WRITE_SEQ_FMT<%X-@\-DFOR$WRITE_SEQ_FMT4!p-Gx- OTS$INDEX4!t-@x- OTS$INDEX4!-G- OTS$INDEX4!-@- OTS$INDEX4#$.G,. OTS$MOVEM4#(.@,. OTS$MOVEM40.G8.OTS$FILL44.@8.OTS$FILL <%.G.DFOR$WRITE_SEQ_FMT<&.b#hDFOR$WRITE_SEQ_FMT<%.@.DFOR$WRITE_SEQ_FMT4!.G. OTS$INDEX4!.@. OTS$INDEX4!/G/ OTS$INDEX4!/@/ OTS$INDEX4#l/Gt/ OTS$MOVEM4#p/@t/ OTS$MOVEM4x/G/OTS$FILL4|/@/OTS$FILL<%/G/DFOR$WRITE_SEQ_FMT<&/b#hDFOR$WRITE_SEQ_FMT<%/@/DFOR$WRITE_SEQ_FMT4!0G0 OTS$INDEX4!0@0 OTS$INDEX4!H0GP0 OTS$INDEX4!L0@P0 OTS$INDEX4#0G0 OTS$MOVEM4#0@0 OTS$MOVEM40G0OTS$FILL40@0OTS$FILL<%(1G41DFOR$WRITE_SEQ_FMT<&,1b#hDFOR$WRITE_SEQ_FMT<%01@41DFOR$WRITE_SEQ_FMT4!H1GP1 OTS$INDEX4!L1@P1 OTS$INDEX4!1G1 OTS$INDEX4!1@1 OTS$INDEX4#1G2 OTS$MOVEM4#2@2 OTS$MOVEM42G2OTS$FILL4 2@2OTS$FILL<%p2G|2DFOR$WRITE_SEQ_FMT<&t2b#hDFOR$WRITE_SEQ_FMT<%x2@|2DFOR$WRITE_SEQ_FMT4!2G2 OTS$INDEX4!2@2 OTS$INDEX4!2G2 OTS$INDEX4!2@2 OTS$INDEX4#D3GL3 OTS$MOVEM4#H3@L3 OTS$MOVEM4P3GX3OTS$FILL4T3@X3OTS$FILL<%3G3DFOR$WRITE_SEQ_FMT<&3b#hDFOR$WRITE_SEQ_FMT<%3@3DFOR$WRITE_SEQ_FMT4!3G3 OTS$INDEX4!3@3 OTS$INDEX4! 4G(4 OTS$INDEX4!$4@(4 OTS$INDEX4#4G4 OTS$MOVEM4#4@4 OTS$MOVEM44G4OTS$FILL44@4OTS$FILL<%5G 5DFOR$WRITE_SEQ_FMT<&5b#hDFOR$WRITE_SEQ_FMT<%5@ 5DFOR$WRITE_SEQ_FMT<%`5Gl5DFOR$WRITE_SEQ_FMT<&d5b#hDFOR$WRITE_SEQ_FMT<%h5@l5DFOR$WRITE_SEQ_FMT<%5G5DFOR$WRITE_SEQ_FMT<&5b#hDFOR$WRITE_SEQ_FMT<%5@5DFOR$WRITE_SEQ_FMT4!5G5 OTS$INDEX4!5@5 OTS$INDEX4!6G 6 OTS$INDEX4!6@ 6 OTS$INDEX4#p6Gx6 OTS$MOVEM4#t6@x6 OTS$MOVEM4|6G6OTS$FILL46@6OTS$FILL<%6G6DFOR$WRITE_SEQ_FMT<&6b#hDFOR$WRITE_SEQ_FMT <%6@6DFOR$WRITE_SEQ_FMT4!7G 7 OTS$INDEX4!7@ 7 OTS$INDEX4!L7GT7 OTS$INDEX4!P7@T7 OTS$INDEX4#7G7 OTS$MOVEM4#7@7 OTS$MOVEM47G7OTS$FILL47@7OTS$FILL<%,8G88DFOR$WRITE_SEQ_FMT<&08b#hDFOR$WRITE_SEQ_FMT<%48@88DFOR$WRITE_SEQ_FMT4!L8GT8 OTS$INDEX4!P8@T8 OTS$INDEX4!8G8 OTS$INDEX4!8@8 OTS$INDEX4#9G9 OTS$MOVEM4#9@9 OTS$MOVEM4 9G9OTS$FILL@ SAFETY013.A  ([EVERHART.JTDEMO]JTAUTHMAINT.OBJ_AXP6;10;kQ>49@9OTS$FILL<%t9G9DFOR$WRITE_SEQ_FMT<&x9b#hDFOR$WRITE_SEQ_FMT<%|9@9DFOR$WRITE_SEQ_FMT4!9G9 OTS$INDEX4!9@9 OTS$INDEX4!9G9 OTS$INDEX4!9@9 OTS$INDEX4#H:GP: OTS$MOVEM4#L:@P: OTS$MOVEM4T:G\:OTS$FILL4X:@\:OTS$FILL<%:G:DFOR$WRITE_SEQ_FMT<&:b#hDFOR$WRITE_SEQ_FMT<%:@:DFOR$WRITE_SEQ_FMT4!:G: OTS$INDEX4!:@: OTS$INDEX4!$;G,; OTS$INDEX4!(;@,; OTS$INDEX4#;G; OTS$MOVEM4#;@; OTS$MOVEM4;G;OTS$FILL4;@;OTS$FILL<%\<Gh<DFOR$WRITE_SEQ_FMT<&`<b#hDFOR$WRITE_SEQ_FMT<%d<@h<DFOR$WRITE_SEQ_FMT<<G<DFOR$WRITE_INT_FMT<<b#hDFOR$WRITE_INT_FMT<<@<DFOR$WRITE_INT_FMT<%=G =DFOR$WRITE_SEQ_FMT<&=b#hDFOR$WRITE_SEQ_FMT<%=@ =DFOR$WRITE_SEQ_FMT4h=Gp=OTS$MOVE4l=@p=OTS$MOVE<=G=DFOR$WRITE_INT_FMT<=b#hDFOR$WRITE_INT_FMT<=@=DFOR$WRITE_INT_FMT<%=G>DFOR$WRITE_SEQ_FMT<&>b#hDFOR$WRITE_SEQ_FMT<%>@>DFOR$WRITE_SEQ_FMT4P>GX>OTS$MOVE4T>@X>OTS$MOVE<>G>DFOR$WRITE_INT_FMT<>b#hDFOR$WRITE_INT_FMT<>@>DFOR$WRITE_INT_FMT<%>G>DFOR$WRITE_SEQ_FMT<&>b#hDFOR$WRITE_SEQ_FMT<%>@>DFOR$WRITE_SEQ_FMT4+$?G0? DFOR$CLOSE4,(?b#h DFOR$CLOSE4+,?@0? DFOR$CLOSE44?G@?UNEXEMPT48?b#hUNEXEMPT4TU OTS$INDEX4#UGU OTS$MOVEM4#U@U OTS$MOVEM4UGUOTS$FILL4U@UOTS$FILL4'0VGb#hDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<0G<DFOR$WRITE_INT_FMT_XMIT <4b#hDFOR$WRITE_INT_FMT_XMIT<8@<DFOR$WRITE_INT_FMT_XMIT4#G OTS$MOVEM4#@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4#@GH OTS$MOVEM4#D@H OTS$MOVEM4LGTOTS$FILL4P@TOTS$FILL4!hGp OTS$INDEX4!l@p OTS$INDEX4!G OTS$INDEX4!@ OTS$INDEX4!ԛGܛ OTS$INDEX4!؛@ܛ OTS$INDEX4#pGx OTS$MOVEM4#t@x OTS$MOVEM4|GOTS$FILL4@OTS$FILL4!G OTS$INDEX4!@ OTS$INDEX4!ԜGܜ OTS$INDEX4!؜@ܜ OTS$INDEX4#G OTS$MOVEM4#@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4GȝOTS$MOVE4ĝ@ȝOTS$MOVE4#G OTS$MOVEM4#@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4#(G0 OTS$MOVEM4#,@0 OTS$MOVEM44G<OTS$FILL48@<OTS$FILL4!TG\ OTS$INDEX4!X@\ OTS$INDEX4!xG OTS$INDEX4!|@ OTS$INDEX4!GȞ OTS$INDEX4!Ğ@Ȟ OTS$INDEX4#\Gd OTS$MOVEM4#`@d OTS$MOVEM4hGpOTS$FILL4l@pOTS$FILL4!G OTS$INDEX4!@ OTS$INDEX4!Gȟ OTS$INDEX4!ğ@ȟ OTS$INDEX4#G OTS$MOVEM4#@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4GOTS$MOVE4@OTS$MOVE4#ؠG OTS$MOVEM4#ܠ@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4 G(OTS$FILL4$@(OTS$FILL4#LGT OTS$MOVEM4#P@T OTS$MOVEM4XG`OTS$FILL4\@`OTS$FILL4!ԢGܢ OTS$INDEX4!آ@ܢ OTS$INDEX49,G8 SYS$ASSIGN4:0b#h SYS$ASSIGN494@8 SYS$ASSIGN4!TG\ OTS$INDEX4!X@\ OTS$INDEX,|GREPLENT ,b#hREPLENT,@REPLENT4?G SYS$DASSGN4@b#h SYS$DASSGN4?@ SYS$DASSGN4!G OTS$INDEX4!@ OTS$INDEX4!0G8 OTS$INDEX4!4@8 OTS$INDEX4#GĤ OTS$MOVEM4#@Ĥ OTS$MOVEM4ȤGФOTS$FILL4̤@ФOTS$FILL4#DGL OTS$MOVEM4#H@L OTS$MOVEM4#TG\ OTS$MOVEM4#X@\ OTS$MOVEM4hGpOTS$MOVE4l@pOTS$MOVE4#G OTS$MOVEM4#@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4#ХGإ OTS$MOVEM4#ԥ@إ OTS$MOVEM4ܥGOTS$FILL4@OTS$FILL<AGDFOR$REWRITE_FMT<Bb#hDFOR$REWRITE_FMT<A@DFOR$REWRITE_FMT<%ܦGDFOR$WRITE_SEQ_FMT<&b#hDFOR$WRITE_SEQ_FMT<%@DFOR$WRITE_SEQ_FMT4+G DFOR$CLOSE4,b#h DFOR$CLOSE4+ @ DFOR$CLOSE4G UNEXEMPT4b#hUNEXEMPT4@ UNEXEMPT4)(G4 DFOR$EXIT4*,b#h DFOR$EXIT4)0@4 DFOR$EXIT48GDUNEXEMPT4<b#hUNEXEMPT4@@DUNEXEMPT4)LGX DFOR$EXIT4*Pb#h DFOR$EXIT4)T@X DFOR$EXIT4OGSYS$OPEN4Pb# SYS$OPEN4O@SYS$OPEN,M@GLGETFID,NDb# GETFID,MH@LGETFID4G$OTS$MOVE4 @$OTS$MOVE4,G4OTS$MOVE40@4OTS$MOVE4DGLOTS$MOVE4H@LOTS$MOVE4!`Gh OTS$INDEX4!d@h OTS$INDEX4!G OTS$INDEX4!@ OTS$INDEX4!G OTS$INDEX4!@ OTS$INDEX4!8G@ OTS$INDEX4!<@@ OTS$INDEX4#ԬGܬ OTS$MOVEM4#ج@ܬ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4GOTS$MOVE4@OTS$MOVE4#$G, OTS$MOVEM4#(@, OTS$MOVEM4#4G< OTS$MOVEM4#8@< OTS$MOVEM 4#\Gd OTS$MOVEM4#`@d OTS$MOVEM4#lGt OTS$MOVEM4#p@t OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4#0G8 OTS$MOVEM4#4@8 OTS$MOVEM4#@GH OTS$MOVEM4#D@H OTS$MOVEM4TG\OTS$MOVE4X@\OTS$MOVE4#G OTS$MOVEM4#@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4GOTS$MOVE4@OTS$MOVE4#خG OTS$MOVEM4#ܮ@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4(G0OTS$MOVE4,@0OTS$MOVE48G@OTS$MOVE4<@@OTS$MOVE4PGXOTS$MOVE4T@XOTS$MOVE4!lGt OTS$INDEX4!p@t OTS$INDEX4!G OTS$INDEX4!@ OTS$INDEX4!G OTS$INDEX4!@ OTS$INDEX4!<GD OTS$INDEX4!@@D OTS$INDEX4!G OTS$INDEX4!@ OTS$INDEX4#G OTS$MOVEM4#@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4#Gȱ OTS$MOVEM4#ı@ȱ OTS$MOVEM4̱GԱOTS$FILL4б@ԱOTS$FILL4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4 GOTS$MOVE4@OTS$MOVE4!(G0 OTS$INDEX4!,@0 OTS$INDEX4!hGp OTS$INDEX4!l@p OTS$INDEX4!G OTS$INDEX4!@ OTS$INDEX4!G OTS$INDEX4!@ OTS$INDEX4#hGp OTS$MOVEM4#l@p OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4#4G< OTS$MOVEM4#8@< OTS$MOVEM4#DGL OTS$MOVEM4#H@L OTS$MOVEM 4XG`OTS$MOVE4\@`OTS$MOVE4#G OTS$MOVEM4#@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4GOTS$MOVE4@OTS$MOVE4#ܴG OTS$MOVEM4#@ OTS$MOVEM4#G OTS$MOVEM4#@ OTS$MOVEM4#G OTS$MOVEM4# @ OTS$MOVEM4GOTS$FILL4@OTS$FILL4Q G DFOR$INQUIRE4Rb# DFOR$INQUIRE4Q@ DFOR$INQUIRE4-|G DFOR$OPEN4.b# DFOR$OPEN4-@ DFOR$OPEN</GDFOR$READ_SEQ_FMT<0b# DFOR$READ_SEQ_FMT</@DFOR$READ_SEQ_FMT<S$G0DFOR$READ_SEQ_FMT_XMIT<T(b# DFOR$READ_SEQ_FMT_XMIT<S,@0DFOR$READ_SEQ_FMT_XMIT4+(G4 DFOR$CLOSE4,,b# DFOR$CLOSE4+0@4 DFOR$CLOSE4OGSYS$OPEN4Pb#p SYS$OPEN4O@SYS$OPEN4U G SYS$CONNECT4Vb#p SYS$CONNECT4U@ SYS$CONNECT  LIB$SPAWN=&%= JTA_IMGS(=&&0=%REPORT%SUMM@= JTA_SUMMFILEP=@48       2 3    LIB$DATE_TIME=?FILACC=%LIST== JTA_RPTFILE=8 =S+=%REGEN=%SHOW= %DELETEA= JTA_TTYS = JTA_ZCMD0=8= JTA_FUSRH=X+P= JTA_USRS`=R-p OTS$DIV_I==Z+=Z-= SYS$DISK=W+ EXEMPT=$ LIB$GET_FOREIGNP ;=@=Q= JTA_FIMG=L=V<=T< @ SAFETY013.A  ([EVERHART.JTDEMO]JTAUTHMAINT.OBJ_AXP6;10;3b,= gcy$cm:accctlrecs.log88OTS$STRCMP_LEQS= JTA_CSLKP=NX= JTA_BKPUh;= JTA_MXPV=X<= JTA_ZFIDREPLENT= JTA_SURW= JTA_BPRI= =K<= JTA_PSWD= %GBLEDIT=Y+<==8 =$ =%SYMS(=I+0 SYS$GETDVIW=L(H=I(P=J(`JTSCR=V(x=X(=Z(= =R(=A(= YYYYYYYY ;=S(==>= (DFOR$WRITE_SEQ_FMT_XMIT=8 UNEXEMPT=8  DFOR$WRITE_INT_FMT(DFOR$WRITE_INT_FMT_XMIT ;=8P8OTS$MOVE8OTS$FILL8 OTS$INDEX=0;=< 7 DFOR$HANDLER=(P;8 OTS$MOVEM;=) %DFOR$WRITE_SEQ_FMT'LIB$SET_SYMBOL;;= ) DFOR$EXIT= = @0+ DFOR$CLOSE- DFOR$OPEN /DFOR$READ_SEQ_FMT=88h=p 1DFOR$READ_INT_FMT=8 =:= 3 OTS$DIV_L=D(=U(P P =(8     5 DFOR$DELETE=B(=K( ;= 8  9   7DFOR$READ_INT_FMT_XMIT9 SYS$ASSIGN=8=@@h ;=8 P= JTA_IDNT\=Pp= JTA_RPRV= JTA_INSP ;DFOR$READ_KEY_FMT=Z<= JTA_ITIM= JTA_CKSM= JTA_NSLK=O= JTA_FNAM=9=0$8       (=0=K8=V@=UH=#<P=\X=`=<#>h=H<p= Dev:file or (n,s,v)>=LIB$SYS_TRNLOG? SYS$DASSGN ADFOR$REWRITE_FMTC SYS$GETJPIW=C< ;=Y-<= %GBLEDITCON=R+= JTA_FTTY=H+= JTA_XCMD0ELIB$WAIT=H= U(*)K(*)I(*)X=G DFOR$REWRITEIOPRMSGKREDACL=R/W=I<=P<=R/O=#S=%PURGE==_SUMM= _REPORTJTA_SUMMLEN= JTA_LISTFILE=_LIST =M+ =0 ;=@ 0 MGETFIDOSYS$OPEN= 0x;== 0;== 0;==0;= P , =+< =*< =-< =0L;= 7 DFOR$HANDLER= ;=8,8     9 8 @ Q DFOR$INQUIRE SDFOR$READ_SEQ_FMT_XMIT=h h p ;=0 ;=@  ; U SYS$CONNECT= 0;=D D=4,+JTMODACEDEC Fortran V6.2-508h h = 4h4=JTMODACE4= ؼ  $ؼ, = Cȼ̼ Pؼؼ \ t y y y    ܬ) ܂ ܼ  ܠ  4 + ܠ ܼ 1 5 7 ? B E H l w                 # $܀ȼ{ X c e t yh xܬA               : :< ;< ;< ;촴 < ;< ; < ;< ;< ;< ;   ! # % . - k { X   ăԌp 8  ?  T  X  X  X P X  X p  4 U I8 [ FP  P  p p Q @ ,  $ $= 04: := X4=  = 4 4= FGETFID4="  h $ $= ȧ4: := X4=  = x4P 4= ILENx4=#   $ $= 4: := 4=  = 4h 4= GETPV4='  $ $= 4: := 4=  = 4 4= IVLEN4=3+*    $ $= 4: := 4=  = 4 4= LPRC4=d\[ 0DD,$ $= 4: := 4=  = L4 4= FILCKL4=_WV     " % 0 $ $= 4: := h4= ` = 4p 4= IUFCK4=.&% ; $ $= ظ4: := 4= X = 4 4= GTXAB4=# & =$ $= 4: := T4= \ =  +h '*[EVERHART.JTDEMO]JTAUTHMAINT.OBJ_VAX5;8+, .Z/ 4ZV- 0123 KPWOW56 7`}89GHJ3JTMODACE0117-Nov-1996 13:3817-Nov-1996 13:38VAX FORTRAN V5.9-173JTMODACEP @@P$ Dev:file or (n,s,v)>Q\I+SYS$DISK:$%SYMSgcy$cm:accctlrecs.logK<>%PURGE%LISTJTA_LISTFILES()%SUMMJTA_SUMMFILEJTA_SUMMLEN%REPORTJTA_RPTFILEU(V(Z(X(K(L(I(J(B(D(R(A(%GBLEDIT%GBLEDITCONN%REGEN%DELETEJTA_ZFIDJTA_ITIMJTA_MXPVJTA_CKSMJTA_PSWDJTA_USRSJTA_FUSRJTA_ZCMDJTA_XCMDJTA_TTYSJTA_FTTYJTA_IMGSJTA_SURWR/WR/OJTA_FIMGJTA_BKPUJTA_FNAMJTA_CSLKJTA_NSLKJTA_INSPJTA_BPRIJTA_RPRVJTA_IDNT%SHOWS+X+R+R-Y-<Y+<H+&&&%M+P<I<#SV<T<UVKLOZ-Z+C<#<H<Z<X<W+, JTD$DB:OP)).GDB JTD$DB:OP).GDB% **** File security access on device:) Filespec given:) Fid:(,,) User:) UIC: Hex priv vector: Terminal:) Accport:) PID: Date of this access:) Access string:)) (,,))) (,,)   ) (,,)3 ****************** Next File *********************) Time access control string:)' Max privilege to open file mask (hex):/ Security checksum stored for file (0 if none):! File password hash (0 if none):  Permitted user list:) Forbidden user list:)% Command file to run if access fails:)% Command file to run to check access:)! Permitted terminal/accport list:)! Forbidden terminal/accport list:) Permitted image list:), Backup user allowed R/W access to this file, Backup user allowed R/O access to this file! Images forbidden to access file:) Backup user list:)% Softlink to this file if acc denied:) File softlinked (r/w) to:)- File is set to be inspected by Safety server- Process accessing file has base prio set to )* Priv mask when this file is open becomes:)1 When file opens process gains ident value (hex):) Old:)$Confirm replace [Y/N/A/X]) %EACF-W-File ID ) ACE deleted. Replacing.)) No security record exists file ) Security controls, file:) File id:,,,,, Time ac#cess permissions:) Max privs: Tamper xsums: 7 Lists key: S(filename)U(ok-users-list)V(bad-user-list). K(ok-tty-list)L(bad-tty-list)I(ok-image-list)4 J(bad-image-list)B(backup-user-list)A(ACE contents))$@GCY$CM:FILSAV ))))JTMODACEPPP P@ P P 0 * $ ,,,, ,$,PP P p ( @L $  @(2pX2 LIB$GET_FOREIGN@IptPNN LIB$SYS_TRNLOG@X FGETFIDWPX`W YH  YY [xa a FOR$OPEN@ w@ SAFETY013.A  '[EVERHART.JTDEMO]JTAUTHMAINT.OBJ_VAX5;8Z]> lz @  |x  x`  t    LIB$SET_SYMBOL@ @    x(! (PZPP\ZPP\TU,T@e ˨Z\\/ FOR$WRITE_SF\ˤ ˨˨ ˤ  FOR$IO_T_DS FOR$IO_END˰ ˼ LIB$INDEXP\\PP@ZTZ @d LIB$INDEXP\PPZ\PPZTU,T@e ˨\ZZT FOR$WRITE_SFZ ˨  FOR$IO_T_DS FOR$IO_END˸P`PˏPZn FOR$WRITE_SF FOR$IO_ENDZ FOR$WRITE_SF FOR$IO_END LIB$INDEXPZZPP@\T\ @d  LIB$INDEXPZPP\ZPP\TU,T@e ˨Z\\ FOR$WRITE_SF\$ ˨( $  FOR$IO_T_DS FOR$IO_END0 < LIB$INDEXP\\PP@ZTZH @dL X LIB$INDEXP\PPZ\PPZTU,T@e ˨\ZZ FOR$WRITE_SFZd ˨h d  FOR$IO_T_DS FOR$IO_ENDp | LIB$INDEXPZZPP@\T\ˈ @dˌ ˘ LIB$INDEXPZPP\ZPP\TU,T@e ˨Z\\ FOR$WRITE_SF\ˤ ˨˨ ˤ  FOR$IO_T_DS FOR$IO_END˰ ˼ LIB$INDEXP\\PP@ZTZ @d LIB$INDEXP\PPZ\PPZTU,T@e ˨\ZZ0 FOR$WRITE_SFZ ˨  FOR$IO_T_DS FOR$IO_END LIB$INDEXPZ1ZPP@\T\ @d  LIB$INDEXPZPPZZPT,PJd ˨Z¹ZP@˨\1\1\ZN FOR$WRITE_SF FOR$IO_END\~˸ FOR$WRITE_IFJ˨~ FOR$IO_L_V FOR$IO_END FOR$WRITE_SF( $  FOR$IO_T_DS FOR$IO_ENDZ1p\(J˨w˸ FOR$WRITE_IF FOR$IO_X_DA FOR$IO_END FOR$WRITE_SF0 ,  FOR$IO_T_DS FOR$IO_ENDZ1\(J˨w˸ FOR$WRITE_IF FOR$IO_X_DA FOR$IO_END FOR$WRITE_SF8 4  FOR$IO_T_DS FOR$IO_ENDZ11< FOR$CLOSEUNEXEMPTFOR$EXITL LIB$INDEXP1` LIB$INDEXP\t LIB$INDEXPPZ,Z@˂ ˄ˀ IVLENP1˄ ,˅ ˄,˄ ,˅ ˄ː ˔ LIB$INDEXPZZ1ZP,P˄ ˄ZP,PJ˄ ˄ԫ`,n ˄ˤ ˨ LIB$INDEXP1PP,P˄ ˄`ԫd˴ IVLENPZի` IVLENPdu FOR$READ_SF\  FOR$IO_T_DS FOR$IO_ENDԫhԫl Z ˄ LIB$INDEXP\1ի\1 IVLENPT FOR$WRITE_SFT    FOR$IO_T_DS FOR$IO_END< FOR$READ_SF FOR$IO_T_DS FOR$IO_ENDpYpypN1 pn1pApaԫ\pX1px1\Z@PT,PJd @իd@^(@n«d^(d˄nЫdW@WY,Yn @PQ^\1իdZ\PPP@YWY^(Y@gnYV\PP^(Pn^SWWV,Vn @PQ^իdZ\PPP@VWV^(V@gnVY«d^(d˄nЫdVVY\\^(\n\VVY,Yn @PQ^h֫lѫl1իhFOR$REWRITE_SU FOR$IO_END1UNEXEMPTFOR$EXIT LIB$INDEXP1< ($ ( SYS$ASSIGNʏPիPUNEXEMPT@ FOR$EXIT_Wu FOR$READ_SF\L H  FOR$IO_T_DS FOR$IO_ENDT\P`T P REDACL) 1,n ˄d p LIB$INDEXPZ(@j˄˄ LIB$INDEXP,P˄ ˄ː VIVLENPY> FOR$WRITE_IF\P`XP` FOR$IO_X_DAY˜ ˄ˠ ˜  FOR$IO_T_DS FOR$IO_ENDˤ IVLENPYs FOR$WRITE_SFY˰ ˄˴ ˰  FOR$IO_T_DS FOR$IO_ENDY˸ ˄˼ OPRMSG(  x LIB$INDEXP1YP,@i ˄ LIB$INDEXPY1 YZ,Z˄ ˄ YYxZ^(Z˄nZV ^( xn V,Vn ˄PQ^~Y^(Y˄nYZZV,Vn ˸PQ^YYVVYYYF˷ZP^QRYSZT OTS$MOVE5_R5\P` REPLENT1UNEXEMPTFOR$EXITpc~~u FOR$READ_KF\  FOR$IO_T_DS FOR$IO_ENDPtЫt1ѫC1ѫ4PxLIB$WAIT1Q(! d|PЏ`ˀP`,n $ˌ˰P`˴P`˸P`, 9  @\P``P` IVLENpPX FOR$WRITE_SFX,\0, FOR$IO_T_DS FOR$IO_END~~u FOR$READ_KF\84 FOR$IO_T_DS FOR$IO_ENDPtЫtp<@D LIB$INDEXPիp FOR$DELETEP FOR$CLOSEUNEXEMPTFOR$EXIT` LIB$INDEXP1իpUNEXEMPTl FOR$EXIT_WwH FOR$WRITE_IF\P`$XP`0  FOR$IO_X_DA FOR$IO_END˨ˀ˄LIB$SET_SYMBOLd˜ˠLIB$SET_SYMBOLwH FOR$WRITE_IF|P`DxP`P@ FOR$IO_X_DA FOR$IO_END˨˸˼LIB$SET_SYMBOLwH FOR$WRITE_IF˄P`dˀP`p` FOR$IO_X_DA FOR$IO_END˨LIB$SET_SYMBOLwH FOR$WRITE_IF˰P`˄ˬP`ːˀ FOR$IO_X_DA FOR$IO_END˨LIB$SET_SYMBOL LIB$INDEXPYYPP@Z\Z@l , LIB$INDEXPYPPZYPPZT\,T@l ˨YZZZ@˨DHLIB$SET_SYMBOLXd LIB$INDEXPZZPP@YTYp@dtˀ LIB$INDEXPZPPWZPPWTY,T@i ˨ZWWW˔˨˘˜LIB$SET_SYMBOLˬ˸ LIB$INDEXPWWPP@ZTZ@d LIB$INDEXPWPPYWPPYTZ,T@j ˨WYYY˨LIB$SET_SYMBOL  LIB$INDEXPYYPP@WTW@d( LIB$INDEXPYPPWYPPWTZ,T@j ˨YWWW<˨@DLIB$SET_SYMBOLT` LIB$INDEXPWWPP@YTYl@dp| LIB$INDEXPWPPYWPPYTZ,T@j ˨WYYYː˨˔˘LIB$SET_SYMBOL˨˴ LIB$INDEXPYYPP@WTW@d LIB$INDEXPYPPWYPPWTZ,T@j ˨YWWW˨LIB$SET_SYMBOL LIB$INDEXPWWPP@YTY@d$ LIB$INDEXPWPPYWPPYTZ,T@j ˨WYYY8˨<@LIB$SET_SYMBOL˸P`PˏPY\LIB$SET_SYMBOLYxLIB$SET_SYMBOLˈ˔ LIB$INDEXPYYPP@WTWˠ@dˤ˰ LIB$INDEXPYPPWYPPWTZ,T@j ˨YWWW˨LIB$SET_SYMBOL LIB$INDEXPWWPP@YTY@d LIB$INDEXPWPPYWPPYTZ,T@j ˨WYY:Y˨ LIB$SET_SYMBOL0< LIB$INDEXPYYPP@WTWH@dLX LIB$INDEXPYPPWYPPWTZ,T@j ˨YWWWl˨ptLIB$SET_SYMBOL˄ː LIB$INDEXPWWPP@YTY˜@dˠˬ LIB$INDEXPWPPYWPPYTZ,T@j ˨WYYY˨LIB$SET_SYMBOL LIB$INDEXPYYPP@WTW@d LIB$INDEXPYPPWYPPWTZ,T@j ˨YWWW˨LIB$SET_SYMBOL,8 LIB$INDEXPW1WPP@YTYD@dHT LIB$INDEXPWPPWWPT,PGd ˨WpLIB$SET_SYMBOLˌLIB$SET_SYMBOL˨LIB$SET_SYMBOLLIB$SET_SYMBOLWP@˨Y1Y1YWLIB$SET_SYMBOLY}˸ FOR$WRITE_IFG˨~ FOR$IO_L_V FOR$IO_ENDLIB$SET_SYMBOLWY(G˨w˸ FOR$WRITE_IF FOR$IO_X_DA FOR$IO_ENDLIB$SET_SYMBOLW1MY(G˨w˸ FOR$WRITE_IF FOR$IO_X_DA FOR$IO_END04LIB$SET_SYMBOLW1H LIB$INDEXPUNEXEMPTFOR$EXIT\ LIB$INDEXP1իp FOR$WRITE_SFhHlh FOR$IO_T_DS FOR$IO_ENDUNEXEMPTFOR$EXITwH FOR$WRITE_IF\P`ˤXP`˰ˠ FOR$IO_X_DA FOR$IO_END˨|ˀLIB$SET_SYMBOLd˘˜LIB$SET_SYMBOLwH FOR$WRITE_IF|P`xP` FOR$IO_X_DA FOR$IO_END˨˴˸LIB$SET_SYMBOLwH FOR$WRITE_IF˄P`ˀP` FOR$IO_X_DA FOR$IO_END˨LIB$SET_SYMBOLwH FOR$WRITE_IF˰P`ˬP` FOR$IO_X_DA FOR$IO_END˨LIB$SET_SYMBOL FOR$WRITE_SFH FOR$IO_T_DS FOR$IO_END\P`PP`P`PPzP{PPPxPP2WPW2YˏT FOR$WRITE_SFW FOR$IO_L_VY FOR$IO_L_VT FOR$IO_L_V FOR$IO_END FOR$WRITE_SFd FOR$IO_T_DS FOR$IO_END FOR$WRITE_SF|P`$xP`0  FOR$IO_X_DA˄P`DˀP`P@ FOR$IO_X_DA FOR$IO_END FOR$WRITE_SF FOR$IO_ENDTd|Y FOR$WRITE_SFTPP|WZW @j  FOR$IO_T_DS FOR$IO_ENDdTd|YUNEXEMPTFOR$EXIT LIB$INDEXPԫ0 LIB$INDEXP,n @|P`ˀP`ˀP`ˈP`(! dD LIB$INDEXP˸P`P˸TPdX LIB$INDEXP˸P`P˸TPdl LIB$INDEXP˰P`˴P`ˀ LIB$INDEXP˔ LIB$INDEXPTTYYPPˠI˂ˤ˰ LIB$INDEXPHHTTYTT˼I˂˰P`˴P`GETPVˀ48˄ LIB$INDEXP, ˄ˈ LIB$INDEXPˈ LIB$INDEXP˸P`P˸Tɏ Pd LIB$INDEXP˸P`P˸TɏPd0 LIB$INDEXP˄˄P@ ˸P`P˸TPdˈˈ1˼Td FOR$WRITE_IF<H@< FOR$IO_T_DS FOR$IO_L_R FOR$IO_L_R FOR$IO_ENDѫp FOR$DELETEDIVLENPP˄TX LIB$SPAWNˌԫpˌp˄WG W˄ˀ LIB$INDEXPWWTTPPˌD˂ː˜ LIB$INDEXWPPWPWWLPTPP˨D˂ˬ˰GETPVː,˔0ˀ LIB$INDEXPT1ˀ1TPPWW@˂ LIB$INDEXTPPTPTTPPD˂ FOR$READ_IF( FOR$IO_X_DA FOR$IO_ENDJTSCR˄WWZZ\DH48^(n~WW\,n \G PQ^Z˄ LIB$INDEXPZZ1ˀ1ZPP\\$@˂(4 LIB$INDEXZPPZPVZZVPP@J˂D@ FOR$READ_IF( FOR$IO_X_DA FOR$IO_ENDHJTSCR˄ZZ\\YDH48^(n~ZZY,n YJ PQ^\˄ѭVVV\\^(\F˂n\YPP^(P˂n^SVVY,Yn ˂PQ^1d LIB$INDEXP1ˀ1P@˂tp FOR$READ_IF˘ FOR$IO_L_R FOR$IO_END˘˘˘˘˘DHxJTSCR48˄Y˘~~YP(n@ Q^Y˄˔ LIB$INDEXPPPYYˠ@˂ˤˠ FOR$READ_IF˜ FOR$IO_L_Rˠ FOR$IO_L_R FOR$IO_END|P˜`ˀPˠ`˰ LIB$INDEXPYY\\PP˼L˂ LIB$INDEXPYPYPPP(L˂dLPRCLPRCDHLPRCptLPRC˜ˠLPRCLPRCLPRC LIB$INDEXP˄P`ˈP`( LIB$INDEXP4H8˄P`DˈP`H<FILCKP\ LIB$INDEXPYYPP@\V\h@flx LIB$INDEXPYPPPP@VZV^(V@jnVXYY^(YnYVVX,Xn @PQ^ˈˌIVLENPX)~­^(HnЭYYVS(~VX^(XnXYYV,Vn @PQ^ˠ LIB$INDEXPV1VXXPPˬH˂˰˼ LIB$INDEXVPZVZVVV,n $ˌ˸P`P˸\PlV1 LIB$INDEXPVVPP@\W\@g LIB$INDEXPVPPP@TWT^(T@gn^SYV^(VnVWWY,Yn @PQ^IVLENPY)~XZZ^(ZH˂nZVVWD(~WY^(YnYVVW,Wn @PQ^WV,ZH˂ |ZH˂FOR$OPENP1D FOR$CLOSEXWVT LIB$INDEX,P| P`IVLENl SYS$GETDVIW,˨ ˨ FOR$WRITE_IFX FOR$IO_L_V? FOR$IO_W_R FOR$IO_ENDXˌ˔ː FOR$WRITE_IF˘ FOR$IO_T_DSX~ˠ^ˤˠ FOR$IO_T_V_DS˨ FOR$IO_T_DS8˴˰ FOR$IO_T_DS쐫~˸^˼˸ FOR$IO_T_V_DS˨ FOR$IO_T_DS FOR$IO_END˸P`P˸XPhˤ LIB$INDEXPXˤ,n $˄ LIB$INDEXPX1XWWPPG˂ LIB$INDEXXPZXZXXX,n $˄˸P`P˸YPiX1 LIB$INDEXPXXPP@YTY(@d,8 LIB$INDEXPXPPP@TYT^(T@in^SVX^(XnXYYV,Vn @PQ^HLIVLENPV)~WZZ^(ZG˂nZXXYR(~YV^(VnVXXY,Yn @PQ^\`IVLENPYˤ^(E nY^(YnYVVX,Xn @PQ^XV,ZG˂ |ZlG˂ptFOR$OPENP˜ FOR$CLOSEWXVˬ LIB$INDEX,P| P˸IVLEN SYS$GETDVIW,˨ ˨ FOR$WRITE_IFW FOR$IO_L_V? FOR$IO_W_R FOR$IO_END W@ FOR$WRITE_IF FOR$IO_T_DSW~^ FOR$IO_T_V_DSˤ~^ FOR$IO_T_V_DS8 FOR$IO_T_DS쐫~^  FOR$IO_T_V_DS˨ FOR$IO_T_DS FOR$IO_ENDIVLENPWW˄VW˄V,W˄ VW^(W˄nWXV^(V nVWWX,Xn PQ^, LIB$INDEXP1<H LIB$INDEXPXXPP@WVWT@fXd LIB$INDEXPXPPPP@VWV^(V@gnVYXX^(XnXVVY,Yn @PQ^x LIB$INDEXPYYPPVV˄@˂ˈ˔ LIB$INDEXPYPPVˤ˨IVLENPX)~YYVV^(VI˂nVZZWZ(~WX^(XnXZZW,Wn @PQ^Ŀ˼ LIB$INDEXP1 LIB$INDEXPWWPP@ZXZ@h LIB$INDEXPWPPPP@VXV^(V@hnVYWW^(WnWVVY,Yn @PQ^ LIB$INDEXPYYPPVV@˂$ LIB$INDEXPYPPV48IVLENPW)~YYVV^(VI˂nVZZXX(~XW^(WnWZZX,Xn @PQ^ ˄X˄X    X,˄ X˄P@@@L LIB$INDEXPX˘\` SYS$ASSIGN˄ LIB$INDEXPːREPLENTЫ(ˤˠ SYS$DASSGN\P``P`˄1ˬ˸ LIB$INDEXPXXPP@ZWZ@g LIB$INDEXXVVPP@VWV^(V@gnVYXX^(XnXVVY,Yn @PQ^IVLENPY)~˄^(˄ n˄XXVA(~VY^(YnYXXV,Vn @PQ^IVLENpPVѫpFOR$REWRITE_SFV\  FOR$IO_T_DS FOR$IO_ENDիp FOR$WRITE_SFV\ FOR$IO_T_DS FOR$IO_END FOR$CLOSEUNEXEMPTFOR$EXITUNEXEMPT  FOR$EXIT_WP P_LIST_SUMM_REPORTGCEVGCEVYYYYYYYYYYYYYYYYYYYYYYYYU(*)K(*)I(*)<#>) JTMODACEFGETFID SY@ SAFETY013.A  '[EVERHART.JTDEMO]JTAUTHMAINT.OBJ_VAX5;8Zd GS$ASSIGN SYS$DASSGNLIB$SYS_TRNLOGLIB$GET_FOREIGNLIB$SET_SYMBOL LIB$DATE_TIME LIB$SPAWN SYS$GETJPIWIVLENEXEMPT LIB$INDEXILENFOR$OPEN FOR$CLOSE SYS$GETDVIWUNEXEMPT FOR$EXIT_WFILACCFOR$EXITREDACLOPRMSGREPLENTLIB$WAITGETPVJTSCRLPRCFILCK;$CODEH $PDATA7$LOCAL FFFIII FFIIDDKIUICJPIJUNK FOR$DELETE FOR$IO_END FOR$IO_W_R FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$IO_T_V_DS FOR$IO_X_DA FOR$READ_SF FOR$READ_SF FOR$READ_KF FOR$WRITE_SFFOR$REWRITE_SFFOR$REWRITE_SU FOR$READ_IF FOR$READ_IF FOR$WRITE_IF FOR$WRITE_IF OTS$MOVE5_R5P-:P":P:PP PP 9P:P8"P=PpPPpP(P7PP[BPv4RPrPwPPUPRP PDPf^PLbPHP/P P P~6 Pd: P` P/ P P ; PG V P, Z P(  P/ PPx!P]Px<PxPxVPxPxmPPPx?PxPxYPxP=PAEP9KPlPSP[$P[PSPP3P{PsPP P4P0PPPGP?PPP/P$PQP4(P.P@sPOP Px,P1PFP0JP,PP'P PP;P$P0P PPP0P%P ,Pb2PP`P`m P` P`W!P`!P`A"P`"P "P "P`S#P`#P`=$P`$P`)%Pe%P%P%P%P;&PCL&PC&P&P &P<)P)P2"*P@*P^*Py*Pi*P3*P +P2+PT+Pv+P%+P+P,P 2,P<,P^,P^,P,P-P-P-P -Pt.PG}.P>.P.P.P /PW/PPo/P\r/PY/P; 0P 0P0P*0Ph1P?1P1P2P02PdC2P;3P13PG4PN4Pg4P4P4P4Pd4P;5P)5P6P37PGA7P Q7P)7P7Ph7P?98PX8P8Ph8P?P9PX9PR1:P i:PF:PcQ;P-;P-i];2FGETFID0117-Nov-1996 13:3817-Nov-1996 13:38VAX FORTRAN V5.9-173FGETFIDFGETFID0PP PD DP0[ЬЬ,(SYS$OPENPRRP@P`PP40GETFIDRPo FGETFIDSYS$OPENGETFIDV$CODE$PDATAl$LOCAL FFIIDD,P%!V/ILEN0117-Nov-1996 13:3817-Nov-1996 13:38VAX FORTRAN V5.9-173 ILEN ILENLPPP[}PQPPQQQRBRR PPQPA ILEN6$CODE$PDATA $LOCAL)P60GETPV0117-Nov-1996 13:3817-Nov-1996 13:38VAX FORTRAN V5.9-173 GETPV GETPVlPPP [}PQԼ ԼмPQռQRBR SRS SRSռ ּ ռּPQH GETPVV$CODE$PDATA $LOCAL"P2EPMPV0IVLEN0117-Nov-1996 13:3817-Nov-1996 13:38VAX FORTRAN V5.9-173 IVLEN IVLEN]PP[}PQPмPQռRQRSSTDTT PQSPPD IVLENG$CODE$PDATA$LOCAL P#9P?P# G/LPRC0117-Nov-1996 13:3817-Nov-1996 13:38VAX FORTRAN V5.9-173 LPRCP@>) LPRCP@(<D dl ( (  ,4 P[}PQ}PQ} PQ}PQ +<~~(nQ^, LIB$INDEXPV1VPPWW8@Q\I+SYS$DISK:$%SYMSgcy$cm:accctlrecs.logK<>%PURGE%LISTJTA_LISTFILES()%SUMMJTA_SUMMFILEJTA_SUMMLEN%REPORTJTA_RPTFILEU(V(Z(X(K(L(I(J(B(D(R(A(%GBLEDIT%GBLEDITCONN%REGEN%DELETEJTA_ZFIDJTA_ITIMJTA_MXPVJTA_CKSMJTA_PSWDJTA_USRSJTA_FUSRJTA_ZCMDJTA_XCMDJTA_TTYSJTA_FTTYJTA_IMGSJTA_SURWR/WR/OJTA_FIMGJTA_BKPUJTA_FNAMJTA_CSLKJTA_NSLKJTA_INSPJTA_BPRIJTA_RPRVJTA_IDNT%SHOWS+X+R+R-Y-<Y+<H+&&&%M+P<I<#SV<T<UVKLOZ-Z+C<#<H<Z<X<W+PP P P@ P      $   @ ( @L $t LIB$GET_FOREIGN@X  LIB$SYS_TRNLOG@ 0FGETFIDh`xxxxxx$x`d% x% FOR$OPEN@ ;>8 @  @G  M$ M LIB$SET_SYMBOL@, @ZH P ]8d 80_    e e LIB$SET_SYMBOL@ @Z!!]8,!80 r p!r LIB$SET_SYMBOL@x!~! ! ! LIB$SET_SYMBOL@!@Z!!]8"80@T"\"]p"x"@""]""@""]""@##]0#8#@T#\#]p#x#@##]##@##]##@$$]0$8$@T$\$]p$x$@$$]$$@$$]$$@%%]0%8%l% %%88%8%@H@%&@&4&H&`@Z&&]8&80&@&&]0 '`@@'d''' LIB$SET_SYMBOL@'' LIB$SET_SYMBOL@'' LIB$SET_SYMBOL@'@ SAFETY013.A ([EVERHART.JTDEMO]JTAUTHMAINT.OBJ_VAX62;5Z]>' LIB$SET_SYMBOL@' ( LIB$SET_SYMBOL@(@((0(]D(L( `(  LIB$SET_SYMBOL@h(@|((]((( LIB$SET_SYMBOL@(@((](() LIB$SET_SYMBOL@)@$),)]@)H)%\)% LIB$SET_SYMBOL@d)@x))])).). LIB$SET_SYMBOL@)@))]))7*7 LIB$SET_SYMBOL@ *@ *(*]<*D*@X*@ LIB$SET_SYMBOL@`*IRt*I LIB$SET_SYMBOL@|*R LIB$SET_SYMBOL@IV*I LIB$SET_SYMBOL@*V LIB$SET_SYMBOL@@**]**Z*Z LIB$SET_SYMBOL@*@++]+$+c8+c LIB$SET_SYMBOL@@+@ZT+\+]p+x+l+l LIB$SET_SYMBOL@+@++]++u+u LIB$SET_SYMBOL@+@+,], ,~4,~ LIB$SET_SYMBOL@<,@P,X,]l,t,, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@- LIB$SET_SYMBOL@- LIB$SET_SYMBOL@-0- LIB$SET_SYMBOL@8-L- LIB$SET_SYMBOL@T-h-|-- LIB$SET_SYMBOL@-- LIB$SET_SYMBOL@-- LIB$SET_SYMBOL@-- LIB$SET_SYMBOL@-. LIB$SET_SYMBOL@.<.P.d.x....>...//(/////>0080>L0T0000>00@1 LPRC@1 LPRC@1@,1 LPRC@41 LPRC@<1@X1 LPRC@`1 LPRC@h1@1 LPRC@1 LPRC@1@1 LPRC@1 LPRC@1@1 LPRC@1 LPRC@1 @2  LPRC@2 LPRC@242H2\2@Zt2|2]22@22>22@22] 33@(3 <3FGETFIDt3`$34>4 4@44<4]P4X4@l4@4 4FGETFID4`hL5@`5h5]|555>55@55@55] 66(6><6D6@X6l66x 6x@66]66@7@7PX[^ ˨氏,˪ˬVަ ˰氏˴氏˶枦$˸$˼ 氏(H曏@氏-Lƌ氏ޫ氏ːޫ氏ޫ ޫԫ0 SYS$GETJPIWPIVLENPH\IVLENP hIVLENP$tIVLENPƌEXEMPT蛏 ˨ ޫ蛏ޫ $(,n \ԫ VˈLIB$GET_FOREIGN,kˈ ˈˈ\\ 1ˈq1ˈQ1(PˈHˤ LIB$INDEXPX, ˂XX\,\H PHXX\,\Hˈ ˂˰ILENPˈ(1TTT˸ˉ˼˸ FOR$READ_IF߫$ FOR$IO_L_R߫( FOR$IO_L_R߫, FOR$IO_L_R FOR$IO_ENDǏ,Uz,R{R\\xUU$UUL(N\PRLPLIB$SYS_TRNLOGP1,0˘ P˘HFOR$OPENP1 FOR$CLOSE LIB$INDEX,PH P˘$ SYS$GETDVIW,˨ ˨Ы4(˨(˨_,˩ ˨P LIB$INDEXPP,P˨ ˨\IVLENP\TT\RRRUUSC˨9TUUPP\\h@˨lh FOR$READ_IF߫8 FOR$IO_L_R FOR$IO_ENDU,U˨ ˨ի1x LIB$INDEXPZZ\,\˨ Z\,\J˨ ˨˄IVLEN,P˨ ːIVLENPZ˜IVLENP\ FOR$WRITE_IFZ˨ˬ˨ FOR$IO_T_DS\˰˴˰ FOR$IO_T_DSݫ8 FOR$IO_L_V FOR$IO_ENDի1 LIB$INDEXPR,R@˨ ˨ LIB$INDEXPZ,Z@˨ ˨IVLEN,P˨ IVLENPZ FOR$WRITE_IFݫ FOR$IO_L_VZ FOR$IO_T_DSݫ8 FOR$IO_L_V FOR$IO_ENDIVLENP LIB$INDEXP1(FOR$OPENP1LP2LR2NS᫏PT2TUPZ2ZQxQQQR6 FOR$WRITE_SF4X(\X FOR$IO_T_DS`Hd` FOR$IO_T_DSR FOR$IO_L_VS FOR$IO_L_VU FOR$IO_L_V FOR$IO_END FOR$WRITE_SFHh(lh FOR$IO_T_DS FOR$IO_L_VX FOR$IO_X_DAﰦ pftp FOR$IO_T_DSƌxL|x FOR$IO_T_DSݫ  FOR$IO_L_V FOR$IO_ENDˀ LIB$DATE_TIME(˂vˈIVLENPZ˜ LIB$INDEXPVVYYRR˨Ivˬ˸ LIB$INDEXVPPPPZZ^(Z@˂nZV?~VZY^(Y˂nYVZVY,Yn vPQ^IVLENPV FOR$WRITE_SF8 FOR$IO_T_DSVv FOR$IO_T_DS FOR$IO_END FOR$CLOSEﰭ˄FOR$OPENP1< LIB$INDEXP14H(LP SYS$ASSIGNʏPիDUNEXEMPTh FOR$EXIT_W6 FOR$READ_SF˘tp FOR$IO_T_DS FOR$IO_ENDH˘RbˀxFILACCիH FOR$DELETEUNEXEMPTFOR$EXITː LIB$INDEXP1^( n­^(˄nY,Yn ˄PQ^VV˜˄ˠˤFOR$OPENP1V˄LIB$SET_SYMBOL6 FOR$READ_SF˘ FOR$IO_T_DS FOR$IO_ENDמ˘RbL˜ScP,n ˄ LIB$INDEXPYP,@i ˄ LIB$INDEXPP,P˄ ˄ IVLENPV2LY2NRPS2STPU2UQxQQQY FOR$WRITE_IFV,˄0, FOR$IO_T_DSY FOR$IO_L_VR FOR$IO_L_VT FOR$IO_L_V FOR$IO_END4IVLENPS' FOR$WRITE_SFS@˄D@ FOR$IO_T_DS FOR$IO_END1H FOR$CLOSEUNEXEMPTFOR$EXITX LIB$INDEXP1^( n­^(˄nY,Yn ˄PQ^VYVd˄hlFOR$OPENP1V˜˄ˠˤLIB$SET_SYMBOL6 FOR$READ_SF˘˴˰ FOR$IO_T_DS FOR$IO_ENDמ˘ScL˜TdP,n ˄˼ LIB$INDEXPRP,@b ˄ LIB$INDEXPP,P˄ ˄e.IVLENPV2LR2NSPT2TUPQ2QPxPPPRTdTTY) FOR$WRITE_IFV˄ FOR$IO_T_DSR FOR$IO_L_VS FOR$IO_L_VU FOR$IO_L_VT FOR$IO_L_V FOR$IO_ENDIVLENPV' FOR$WRITE_SFV˄  FOR$IO_T_DS FOR$IO_END1 FOR$CLOSED FOR$WRITE_IFY FOR$IO_L_V FOR$IO_END˄$(LIB$SET_SYMBOLUNEXEMPTFOR$EXIT< LIB$INDEXP1^( n­^(˄nY,Yn ˄PQ^VVH˄LPFOR$OPENP1Vˀ˄˄ˈLIB$SET_SYMBOL6 FOR$READ_SF˘˘˔ FOR$IO_T_DS FOR$IO_ENDמ˘RbL˜ScP,n ˄ˠˬ LIB$INDEXPYP,@i ˄ LIB$INDEXPP,P˄ ˄IVLENPV2LY2NR᫏PS2STPU2UQxQQQYH FOR$WRITE_IFV˄ FOR$IO_T_DSY FOR$IO_L_VR FOR$IO_L_VT FOR$IO_L_V FOR$IO_ENDIVLENPS` FOR$WRITE_SF FOR$IO_END FOR$WRITE_SFS˄ FOR$IO_T_DS FOR$IO_END FOR$WRITE_SFˠ FOR$IO_T_DS FOR$IO_END FOR$WRITE_SF˸Vft˴Yiˀp FOR$IO_X_DA FOR$IO_END FOR$WRITE_SFRb˔˼Tdˠː FOR$IO_X_DA FOR$IO_END FOR$WRITE_SFSc˴Ue˰ FOR$IO_X_DA FOR$IO_END LIB$INDEXPYYRR@TST Bc ( LIB$INDEXPYPPPVYRRVST,SBd ˨YVvVG FOR$WRITE_SFV4 ˨8 4  FOR$IO_T_DS FOR$IO_END@ L LIB$INDEXPY1YSS@TUTX Ce\ h LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV` FOR$WRITE_SFVt ˨x t  FOR$IO_T_DS FOR$IO_ENDˀ ˌ LIB$INDEXPYYSS@TUT˘ Ce˜ ˨ LIB$INDEXPYPPPVYRRVST,SBd ˨YVvVy FOR$WRITE_SFV˴ ˨˸ ˴  FOR$IO_T_DS FOR$IO_END LIB$INDEXPYYSS@TUT Ce LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV FOR$WRITE_SFV ˨  FOR$IO_T_DS FOR$IO_END LIB$INDEXPYYSS@TUT Ce ( LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV FOR$WRITE_SFV4 ˨8 4  FOR$IO_T_DS FOR$IO_END@ L LIB$INDEXPYYSS@TUTX Ce\ h LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV FOR$WRITE_SFVt ˨x t  FOR$IO_T_DS FOR$IO_ENDˀ ˌ LIB$INDEXPYYSS@TUT˘ Ce˜ ˨ LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV FOR$WRITE_SFV˴ ˨˸ ˴  FOR$IO_T_DS FOR$IO_ENDRˏbR/ FOR$WRITE_SF FOR$IO_ENDR^ FOR$WRITE_SF FOR$IO_END LIB$INDEXPYYTT@UVU Df LIB$INDEXPYPPPVYSSVRT,RCd ˨YVvV FOR$WRITE_SFV ˨  FOR$IO_T_DS FOR$IO_END LIB$INDEXPYYSS@TUT Ce ( LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV FOR$WRITE_SFV4 ˨8 4  FOR$IO_T_DS FOR$IO_END@ L LIB$INDEXPYYSS@TUTX Ce\ h LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV FOR$WRITE_SFVt ˨x t  FOR$IO_T_DS FOR$IO_ENDˀ ˌ LIB$INDEXPYYSS@TUT˘ Ce˜ ˨ LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV FOR$WRITE_SFV˴ ˨˸ ˴  FOR$IO_T_DS FOR$IO_END LIB$INDEXPS1STT@UYU Di LIB$INDEXPSPPSSPR,PCb ˨VVYI˨QQY1Y1YV FOR$WRITE_SF FOR$IO_ENDY?ˈ FOR$WRITE_IFF˨~ FOR$IO_L_V FOR$IO_ENDC FOR$WRITE_SF  FOR$IO_T_DS FOR$IO_ENDV1lY(F˨V8ˈ FOR$WRITE_IF˸ FOR$IO_X_DA FOR$IO_ENDt FOR$WRITE_SF  FOR$IO_T_DS FOR$IO_ENDV1 Y(F˨V8ˈ FOR$WRITE_IF˸ FOR$IO_X_DA FOR$IO_END FOR$WRITE_SF   FOR$IO_T_DS FOR$IO_ENDV11 FOR$CLOSEUNEXEMPTFOR$EXIT LIB$INDEXP10 LIB$INDEXPD LIB$INDEXPPR,R@˂ ˄P IVLENP1˄ ,˅ ˄,˄ ,˅ ˄` d LIB$INDEXPVV1VR,R˄ ˄VP,PF˄ ˄V,n ˄t x LIB$INDEXP1PP,P˄ ˄VZ˄ IVLENPWVː IVLENPZ6 FOR$READ_SF˘ˠ ˜  FOR$IO_T_DS FOR$IO_ENDVX˨ Wˬ ˄˰ ˴  LIB$INDEXP\1խ1 IVLENPU FOR$WRITE_SFU  FOR$IO_T_DS FOR$IO_END FOR$READ_SF FOR$IO_T_DS FOR$IO_ENDpYpypN1$pn1pApaԭpX1px1\W@TU,TGe @Z@^(@n€Z^(Z˄n@ZV,Vn @PQ^\1ZW\YYY@VPV^(VI`nV\PP^(Pn^SVVY,Yn @@ SAFETY013.A ([EVERHART.JTDEMO]JTAUTHMAINT.OBJ_VAX62;5Z>.PQ^ZW\VVV@YPY^(YF`nYZ^(Z˄nZVVY\\^(\n\VYV\,\n @PQ^VXX1!VFOR$REWRITE_SU FOR$IO_END1UNEXEMPTFOR$EXIT LIB$INDEXP14 ( SYS$ASSIGNʏPիDUNEXEMPT FOR$EXIT_W6 FOR$READ_SF˘   FOR$IO_T_DS FOR$IO_END˘\l$ REDACL) 1,n ˄4 @ LIB$INDEXPV(@f˄T LIB$INDEXP,P˄ ˄` IVLENPZ FOR$WRITE_IF˘Yi˔\l FOR$IO_X_DAZl ˄p l  FOR$IO_T_DS FOR$IO_ENDt IVLENPX4 FOR$WRITE_SFXˀ ˄˄ ˀ  FOR$IO_T_DS FOR$IO_ENDXˈ ˄ˌ ː OPRMSG(  x˜ ˨ LIB$INDEXP1WP,@g ˄˼ LIB$INDEXP\1\Z,Z˄ ˄ \\xZ^(Z˄nZV ^( xnV Y,Yn ˄PQ^~\^(\˄n\ZZW,Wn PQ^\\L\VV\YFZP^QRYSZT OTS$MOVE5_R5˘Xh REPLENT¹ 1UNEXEMPTFOR$EXIT~~6 FOR$READ_KF˘  FOR$IO_T_DS FOR$IO_ENDPPЫPV1VC1V4PT LIB$WAIT1a($ ˠ˸YЏi˼Zj,n $\lWgVf, <  @˘Zj˜Xh IVLENpPPW FOR$WRITE_SFW ˘  FOR$IO_T_DS FOR$IO_END~~6 FOR$READ_KF˘ FOR$IO_T_DS FOR$IO_ENDPPx| LIB$INDEXPխ FOR$DELETE  FOR$CLOSEUNEXEMPTFOR$EXIT0 LIB$INDEXP1խUNEXEMPT< FOR$EXIT_W8 FOR$WRITE_IF˘Rb˔Sc FOR$IO_X_DA FOR$IO_END˨PTLIB$SET_SYMBOLˠlpLIB$SET_SYMBOL8 FOR$WRITE_IF˸Ue˴Zj  FOR$IO_X_DA FOR$IO_END˨ˈˌLIB$SET_SYMBOL8 FOR$WRITE_IFXh4˼\l@0 FOR$IO_X_DA FOR$IO_END˨ˤ˨LIB$SET_SYMBOL8 FOR$WRITE_IFVfTRb`P FOR$IO_X_DA FOR$IO_END˨LIB$SET_SYMBOL LIB$INDEXPZZTT@UXUDh LIB$INDEXPZPPPVZRRVST,SBd ˨ZVvVV˨LIB$SET_SYMBOL(4 LIB$INDEXP\\RR@STS@BdDP LIB$INDEXP\PPPZ\VVZXR,XFb ˨\ZzZZd˨hlLIB$SET_SYMBOL|ˈ LIB$INDEXPXXRR@STS˔Bd˘ˤ LIB$INDEXPXPPP\XZZ\VR,VJb ˨X\|\\˸˨˼LIB$SET_SYMBOL LIB$INDEXPZZRR@STSBd LIB$INDEXPZPPPXZ\\XVR,VLb ˨ZXxXX ˨LIB$SET_SYMBOL$0 LIB$INDEXP\\RR@STS<Bd@L LIB$INDEXP\PPPZ\XXZVR,VHb ˨\ZzZZ`˨dhLIB$SET_SYMBOLx˄ LIB$INDEXPXXRR@STSːBd˔ˠ LIB$INDEXPXPPP\XZZ\VR,VJb ˨X\|\\˴˨˸˼LIB$SET_SYMBOL LIB$INDEXPZZRR@STSBd LIB$INDEXPZPPPXZ\\XVR,VLb ˨ZXxXX˨ LIB$SET_SYMBOLVˏfV,LIB$SET_SYMBOLVHLIB$SET_SYMBOLXd LIB$INDEXPZZRR@STSpBdtˀ LIB$INDEXPZPPPXZVVX\R,\Fb ˨ZXxXX˔˨˘˜LIB$SET_SYMBOLˬ˸ LIB$INDEXP\\RR@STSBd LIB$INDEXP\PPPZ\XXZVR,VHb ˨\ZzZZ˨LIB$SET_SYMBOL  LIB$INDEXPXXRR@STSBd( LIB$INDEXPXPPP\XZZ\VR,VJb ˨X\|\\<˨@DLIB$SET_SYMBOLT` LIB$INDEXPZZRR@STSlBdp| LIB$INDEXPZPPPXZ\\XVR,VLb ˨:ZXxXXː˨˔˘LIB$SET_SYMBOL˨˴ LIB$INDEXP\\RR@STSBd LIB$INDEXP\PPPZ\XXZVR,VHb ˨\ZzZZ˨LIB$SET_SYMBOL LIB$INDEXPX1XRR@STSBd$ LIB$INDEXPXPPXXP\,PHl ˨V@LIB$SET_SYMBOL\LIB$SET_SYMBOLxLIB$SET_SYMBOL˔LIB$SET_SYMBOLVXH˨\1\1\V˰LIB$SET_SYMBOL\>ˈ FOR$WRITE_IFF˨~ FOR$IO_L_V FOR$IO_ENDLIB$SET_SYMBOLV\(F˨V8ˈ FOR$WRITE_IF˸ FOR$IO_X_DA FOR$IO_ENDLIB$SET_SYMBOLV1M\(F˨V8ˈ FOR$WRITE_IF˸ FOR$IO_X_DA FOR$IO_ENDLIB$SET_SYMBOLV1 LIB$INDEXPUNEXEMPTFOR$EXIT, LIB$INDEXP1խB FOR$WRITE_SF8H<8 FOR$IO_T_DS FOR$IO_ENDUNEXEMPTFOR$EXIT8 FOR$WRITE_IF˘Zjt˔\lˀp FOR$IO_X_DA FOR$IO_END˨LPLIB$SET_SYMBOLˠhlLIB$SET_SYMBOL8 FOR$WRITE_IF˸Rb˔˴Scˠː FOR$IO_X_DA FOR$IO_END˨˄ˈLIB$SET_SYMBOL8 FOR$WRITE_IFTd˴˼Ue˰ FOR$IO_X_DA FOR$IO_END˨ˠˤLIB$SET_SYMBOL8 FOR$WRITE_IFVfZj FOR$IO_X_DA FOR$IO_END˨˼LIB$SET_SYMBOLf FOR$WRITE_SFH FOR$IO_T_DS FOR$IO_END˘\lL˜XhPzTR{RTTxTT2LUUT2NVˏTZ FOR$WRITE_SFT FOR$IO_L_VV FOR$IO_L_VZ FOR$IO_L_V FOR$IO_END FOR$WRITE_SFˠ FOR$IO_T_DS FOR$IO_END FOR$WRITE_SF˸Xh˴Rb FOR$IO_X_DASc˼Ue  FOR$IO_X_DA FOR$IO_END FOR$WRITE_SF FOR$IO_ENDTdVZ FOR$WRITE_SFT\\VXRXLb FOR$IO_T_DS FOR$IO_ENDdTdVZUNEXEMPTFOR$EXIT LIB$INDEXPԭ LIB$INDEXP,n @˸Xh˼\l˼VfZj($ ˠ LIB$INDEXPXhX\Xl( LIB$INDEXPVfVZVj< LIB$INDEXPRbScP LIB$INDEXPd LIB$INDEXPPTTUUXXpE˂tˀ LIB$INDEX̞p<pPPP@UZU^(U@jn^SXYY^(YnYWXWV,Vn @PQ^X\IVLENPW)~­^(HnЭVVZS(~ZVW^(WnWXVXY,Yn @PQ^p LIB$INDEXPW1WVVYY|F˂ˀˌ LIB$INDEXWPPYWYRRZZ,n $WgWPW`Z1˜B LIB$INDEXPWWRR@STS˴Bd˸ LIB$INDEXPWPPP@ZRZ^(Z@bnZXW^(WnWZXZW,Wn @PQ^IVLENPW)~VYY^(YF˂nY\\XD(~XZW^(WnW\Z\X,Xn @PQ^\Z,YF˂ |YF˂FOR$OPENP1 FOR$CLOSEW^\Z$ LIB$INDEX,P| P0IVLEN< SYS$GETDVIW,˨ ˨ː FOR$WRITE_IFW FOR$IO_L_V?^ FOR$IO_W_R FOR$IO_ENDVd` FOR$WRITE_IFh FOR$IO_T_DSV~p^tp FOR$IO_T_V_DSx FOR$IO_T_DS8˄ˀ FOR$IO_T_DS쐫~ˈ^ˌˈ FOR$IO_T_V_DSː˨˔ː FOR$IO_T_DS FOR$IO_ENDZjZWZgԭˠ LIB$INDEXPV,n $˄˴ LIB$INDEXPV1V\\WWL˂ LIB$INDEXVPPWVWRRZZ,n $˄VfVPV`Z1 LIB$INDEXPVVRR@STSBd LIB$INDEXPVPPP@ZRZ^(Z@bnZYV^(VnVZYZV,Vn @PQ^IVLENPV)~\WW^(WL˂nWXXYR(~YZV^(VnVXZXY,Yn @PQ^,0IVLENPZѭ^(H nZ^(ZnZYYX,Xn @PQ^YV,WL˂ |W<L˂@DFOR$OPENPl FOR$CLOSEX^YV| LIB$INDEX,P| PˈIVLEN˔ SYS$GETDVIW,˨ ˨ː FOR$WRITE_IFX FOR$IO_L_V?^ FOR$IO_W_R FOR$IO_END W FOR$WRITE_IF˸ FOR$IO_T_DSW~^ FOR$IO_T_V_DS쐭~^ FOR$IO_T_V_DS8 FOR$IO_T_DS쐫~^ FOR$IO_T_V_DS˨ FOR$IO_T_DS FOR$IO_ENDIVLENPVVЭXVX,V˄ \XV^(V˄nVWX^(X\nXZWZ\,\n \PQ^ LIB$INDEXP1  LIB$INDEXPVVXX@ZWZ$Hg(4 LIB$INDEXPVP>pPPP@RSR^(R@cn^SYVV^(VnVWYWX,Xn @PQ^H LIB$INDEXP\\VVWWTF˂Xd LIB$INDEXP\P>pXtxIVLENPV)~\\XX^(XL˂nXZZXZ(~X\V^(VnVZ\ZW,Wn @PQ^ˌ LIB$INDEXP1˜˨ LIB$INDEXPVVZZ@\W\˴Jg˸ LIB$INDEXPVP>pPPP@RSR^(R@cn^SXVV^(VnVWXWY,Yn @PQ^ LIB$INDEXP\\VVWWF˂ LIB$INDEXP\P>pYIVLENPV)~\\YY^(YL˂nYZZXX(~X\V^(VnVZ\ZW,Wn @PQ^ XխXVWXYZ[\] ^ X,\ XbЭVFbЭZJcЭ\Ld LIB$INDEXP(˘,0 SYS$ASSIGNET LIB$INDEXP`REPLENTЫ tp SYS$DASSGN˘Wg˜Yiխ1|ˈ LIB$INDEXP\\RR@STS˔Bd˘ˤ LIB$INDEX\WPWW@YXY^(YGhnYZ\\^(\n\WZWX,Xn @PQ^˴˸IVLENPW)~­^(\nЭXXYA(~YXW^(WnWZXZ\,\n @PQ^IVLENpPPZѭFOR$REWRITE_SFZ˘ FOR$IO_T_DS FOR$IO_ENDխ FOR$WRITE_SFZ˘ FOR$IO_T_DS FOR$IO_END FOR$CLOSEUNEXEMPTFOR$EXITUNEXEMPT FOR$EXIT_WP P_LIST_SUMM_REPORTGCEVGCEVYYYYYYYYYYYYYYYYYYYYYYYYU(*)K(*)I(*)<#>) JTMODACEFGETFID SYS$ASSIGN SYS$DASSGNLIB$SYS_TRNLOGLIB$GET_FOREIGNLIB$SET_SYMBOL LIB$DATE_TIME LIB$SPAWN SYS$GETJPIWIVLENEXEMPT LIB$INDEXILENFOR$OPEN FOR$CLOSE SYS$GETDVIWUNEXEMPT FOR$EXIT_WFILACCFOR$EXITREDACLOPRMSGREPLENTLIB$WAITGETPVJTSCRLPRCFILCK;$CODEK $PDATAP7$LOCAL FFFIII FFIIDDKIUICJPIJUNK FOR$DELETE FOR$IO_END FOR$IO_W_R FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$IO_T_V_DS FOR$IO_X_DA FOR$READ_SF FOR$READ_SF FOR$READ_KF FOR$WRITE_SFFOR$REWRITE_SFFOR$REWRITE_SU FOR$READ_IF FOR$READ_IF FOR$WRITE_IF FOR$WRITE_IF OTS$MOVE5_R5TP&:P:P:PP PP 9P:P8"P=PpPPoP(P7PP^EPp4VPvP{PPUPRP PIPabPHfPDP/P P  Pv6 P\: PX P/ P P 3 Pc N PH R PD  P/ PP{P|P{7P{P{WP{P{qPPP{FP{P{fP{PPPBXP:^PPSP[8P[P?PPGPP`PP P(P$P"PPGP?PPP'PPJP.)P.PCuPPP Pt,P1PFP,JP(PP'P PP<P!P0PPPP0P%P P#PtPcPcd Pc PcT!Pc!PcD"Pc"P "P "PcY#Pc#PcI$Pc$Pc;%Pg%Pž%P%P%P;&PC`&PC&P&P&P<)P)P2,*PJ*Ph*P*Pj*P3+P%+P5+PW+Py+P*+P+P,P 5,P>,P^,PZ,P,P-P-P-P-Pk.PLu.PB.P.P.P~/PM/PG\/PX_/PU/P;/P z0P0P*0Pj0PA1P1P1P2 2Pd32P;2P13P84P>4PW4P4P4P4Pd4P;5P)5P}6P&7PF27P B7P*{7P 7Pj7PA-8PY8P 8Pj8PAG9PY9PX-:P d:PHz:PdN;P-;P-7+;R2FGETFID01 4-Feb-1997 12:21Digital Fortran V6.4-165FGETFIDFGETFID4PP PD DP4[ЬЬ,(SYS$OPENPRRQAP`40GETFIDRP o FGETFIDSYS$OPENGETFIDS$CODE$PDATAp$LOCAL FFIIDD,P"!b@ SAFETY013.A ([EVERHART.JTDEMO]JTAUTHMAINT.OBJ_VAX62;5Z DMSD/ILEN01 4-Feb-1997 12:21Digital Fortran V6.4-165 ILEN ILENLPPP[}PQPPQQQRBRR PPQPA ILEN6$CODE$PDATA $LOCAL )P60GETPV01 4-Feb-1997 12:21Digital Fortran V6.4-165 GETPV GETPVnpPPP|[}PQмP޼ Qa޼RbSPSTDTaUTUUabVTVVbUUaVVbPSH |GETPVZ$CODE$PDATA $LOCAL'P1HPPPZU0IVLEN01 4-Feb-1997 12:21Digital Fortran V6.4-165 IVLENX IVLENTYPP[}PQPмPQPPRQRSSTDTT PQSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C/LPRC01 4-Feb-1997 12:21\Digital Fortran V6.4-165 LPRC LPRCP@>)P@$8@`h$$(0P[^}PQ}PQ } PQ}PQ+<~ ~(nQ^( LIB$INDEXPV1VWWRR4G8D LIB$INDEXP1VTPTTP LIB$INDEXPXXUU@RR\E`l LIB$INDEXPXPPPYY@TT^(TIn^SZVPPQQ^(Q@n^SWZW,~WZY^(YnYWZWY,Yn @PQ^XxIVLENP)~VVYY^(YFnYWWV~VY­^(nЭZYZX,Xn @PQ^-<~ ~(nQ^˄ LIB$INDEXPY1YXXWWːH˔ˠ LIB$INDEXP1YZPZˬ LIB$INDEXPR1RSS@TT˸C˼ LIB$INDEXPRPPRVVPPFYXXZSSH LIB$INDEXPRPPPVYZZVZVUE,VZ@TT^(TJn^SYVV^(VnVXYXZ,Zn @PQ^*<~ ~(nQ^ LIB$INDEXPY1YZZWWJ  LIB$INDEXP1YXPX LIB$INDEXPVVRR@SS$B(4 LIB$INDEXPVPPP@UU^(U@n^SZVV^(VnVWZWV,Vn @PQ^@IVLENP)~YYXX^(XInXWWV~VY­^(nЭZYZX,Xn @PQ^W_ LPRC LIB$INDEXIVLENp$CODE$PDATAP$LOCALfKP pPPzPNvPPPPR1PPPP\WKpF0FILCK01 4-Feb-1997 12:21Digital Fortran V6.4-165 FILCKYP FILCKP )    IUFCK P|[}PQP ޼Rb޼ SbcP$ FOR$INQUIRE8FOR$OPENP1TxQQ  FOR$READ_SFk FOR$IO_L_R FOR$IO_X_DA FOR$IO_ENDPkQUUbcVTUUVVcTTVVckPl FOR$CLOSEbb |FILCKIUFCK FOR$INQUIREFOR$OPEN FOR$CLOSE$CODER$PDATA|$LOCALFSZC FOR$IO_END FOR$IO_L_R FOR$IO_X_DA FOR$READ_SF'?PZP]]PZP(P>2 0IUFCK01 4-Feb-1997 12:21Digital Fortran V6.4-165 IUFCK, IUFCKPP PD D P[ЬЬ$84SYS$OPENPRR@< SYS$CONNECTPRRP$QARbRkRHDGTXABkkRkЫЫPLz IUFCK SYS$CONNECTSYS$OPENGTXAB$CODE$PDATA\$LOCALFSZC)PQ\I+SYS$DISK:$%SYMSgcy$cm:accctlrecs.logK<>%PURGE%LISTJTA_LISTFILES()%SUMMJTA_SUMMFILEJTA_SUMMLEN%REPORTJTA_RPTFILEU(V(Z(X(K(L(I(J(B(D(R(A(%GBLEDIT%GBLEDITCONN%REGEN%DELETEJTA_ZFIDJTA_ITIMJTA_MXPVJTA_CKSMJTA_PSWDJTA_USRSJTA_FUSRJTA_ZCMDJTA_XCMDJTA_TTYSJTA_FTTYJTA_IMGSJTA_SURWR/WR/OJTA_FIMGJTA_BKPUJTA_FNAMJTA_CSLKJTA_NSLKJTA_INSPJTA_BPRIJTA_RPRVJTA_IDNT%SHOWS+X+R+R-Y-<Y+<H+&&&%M+P<I<#SV<T<UVKLOZ-Z+C<#<H<Z<X<W+PP P P@ P      $   @ ( @L $t LIB$GET_FOREIGN@X  LIB$SYS_TRNLOG@ 0FGETFIDh`xxxxxx$x`d% x% FOR$OPEN@ ;>8 @  @G  M$ M LIB$SET_SYMBOL@, @ZH P ]8d 80_    e e LIB$SET_SYMBOL@ @Z!!]8,!80 r p!r LIB$SET_SYMBOL@x!~! ! ! LIB$SET_SYMBOL@!@Z!!]8"80@T"\"]p"x"@""]""@""]""@##]0#8#@T#\#]p#x#@##]##@##]##@$$]0$8$@T$\$]p$x$@$$]$$@$$]$$@%%]0%8%l% %%88%8%@H@%&@&4&H&`@Z&&]8&80&@&&]0 '`@@'d''' LIB$SET_SYMBOL@'' LIB$SET_SYMBOL@'' LIB$SET_SYMBOL@'' LIB$SET_SYMBOL@' ( LIB$SET_SYMBOL@(@((0(]D(L( `(  LIB$SET_SYMBOL@h(@|((]((( LIB$SET_SYMBOL@(@((](() LIB$SET_SYMBOL@)@$),)]@)H)%\)% LIB$SET_SYMBOL@d)@x))])).). LIB$SET_SYMBOL@)@))]))7*7 LIB$SET_SYMBOL@ *@ *(*]<*D*@X*@ LIB$SET_SYMBOL@`*IRt*I LIB$SET_SYMBOL@|*R LIB$SET_SYMBOL@IV*I LIB$SET_SYMBOL@*V LIB$SET_SYMBOL@@**]**Z*Z LIB$SET_SYMBOL@*@++]+$+c8+c LIB$SET_SYMBOL@@+@ZT+\+]p+x+l+l LIB$SET_SYMBOL@+@++]++u+u LIB$SET_SYMBOL@+@+,], ,~4,~ LIB$SET_SYMBOL@<,@P,X,]l,t,, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@, LIB$SET_SYMBOL@- LIB$SET_SYMBOL@- LIB$SET_SYMBOL@-0- LIB$SET_SYMBOL@8-L- LIB$SET_SYMBOL@T-h-|-- LIB$SET_SYMBOL@-- LIB$SET_SYMBOL@-- LIB$SET_SYMBOL@-- LIB$SET_SYMBOL@-. LIB$SET_SYMBOL@.<.P.@ SAFETY013.A  ([EVERHART.JTDEMO]JTAUTHMAINT.OBJ_VAX71;1Z>d.x....>...//(/////>0080>L0T0000>00@1 LPRC@1 LPRC@1@,1 LPRC@41 LPRC@<1@X1 LPRC@`1 LPRC@h1@1 LPRC@1 LPRC@1@1 LPRC@1 LPRC@1@1 LPRC@1 LPRC@1 @2  LPRC@2 LPRC@242H2\2@Zt2|2]22@22>22@22] 33@(3 <3FGETFIDt3`$34>4 4@44<4]P4X4@l4@4 4FGETFID4`hL5@`5h5]|555>55@55@55] 66(6><6D6@X6l66x 6x@66]66@7@7PX[^ ˨氏,˪ˬVަ ˰氏˴氏˶枦$˸$˼ 氏(H曏@氏-Lƌ氏ޫ氏ːޫ氏ޫ ޫԫ0 SYS$GETJPIWPIVLENPH\IVLENP hIVLENP$tIVLENPƌEXEMPT蛏 ˨ ޫ蛏ޫ $(,n \ԫ VˈLIB$GET_FOREIGN,kˈ ˈˈ\\ 1ˈq1ˈQ1(PˈHˤ LIB$INDEXPX, ˂XX\,\H PHXX\,\Hˈ ˂˰ILENPˈ(1TTT˸ˉ˼˸ FOR$READ_IF߫$ FOR$IO_L_R߫( FOR$IO_L_R߫, FOR$IO_L_R FOR$IO_ENDǏ,Uz,R{R\\xUU$UUL(N\PRLPLIB$SYS_TRNLOGP1,0˘ P˘HFOR$OPENP1 FOR$CLOSE LIB$INDEX,PH P˘$ SYS$GETDVIW,˨ ˨Ы4(˨(˨_,˩ ˨P LIB$INDEXPP,P˨ ˨\IVLENP\TT\RRRUUSC˨9TUUPP\\h@˨lh FOR$READ_IF߫8 FOR$IO_L_R FOR$IO_ENDU,U˨ ˨ի1x LIB$INDEXPZZ\,\˨ Z\,\J˨ ˨˄IVLEN,P˨ ːIVLENPZ˜IVLENP\ FOR$WRITE_IFZ˨ˬ˨ FOR$IO_T_DS\˰˴˰ FOR$IO_T_DSݫ8 FOR$IO_L_V FOR$IO_ENDի1 LIB$INDEXPR,R@˨ ˨ LIB$INDEXPZ,Z@˨ ˨IVLEN,P˨ IVLENPZ FOR$WRITE_IFݫ FOR$IO_L_VZ FOR$IO_T_DSݫ8 FOR$IO_L_V FOR$IO_ENDIVLENP LIB$INDEXP1(FOR$OPENP1LP2LR2NS᫏PT2TUPZ2ZQxQQQR6 FOR$WRITE_SF4X(\X FOR$IO_T_DS`Hd` FOR$IO_T_DSR FOR$IO_L_VS FOR$IO_L_VU FOR$IO_L_V FOR$IO_END FOR$WRITE_SFHh(lh FOR$IO_T_DS FOR$IO_L_VX FOR$IO_X_DAﰦ pftp FOR$IO_T_DSƌxL|x FOR$IO_T_DSݫ  FOR$IO_L_V FOR$IO_ENDˀ LIB$DATE_TIME(˂vˈIVLENPZ˜ LIB$INDEXPVVYYRR˨Ivˬ˸ LIB$INDEXVPPPPZZ^(Z@˂nZV?~VZY^(Y˂nYVZVY,Yn vPQ^IVLENPV FOR$WRITE_SF8 FOR$IO_T_DSVv FOR$IO_T_DS FOR$IO_END FOR$CLOSEﰭ˄FOR$OPENP1< LIB$INDEXP14H(LP SYS$ASSIGNʏPիDUNEXEMPTh FOR$EXIT_W6 FOR$READ_SF˘tp FOR$IO_T_DS FOR$IO_ENDH˘RbˀxFILACCիH FOR$DELETEUNEXEMPTFOR$EXITː LIB$INDEXP1^( n­^(˄nY,Yn ˄PQ^VV˜˄ˠˤFOR$OPENP1V˄LIB$SET_SYMBOL6 FOR$READ_SF˘ FOR$IO_T_DS FOR$IO_ENDמ˘RbL˜ScP,n ˄ LIB$INDEXPYP,@i ˄ LIB$INDEXPP,P˄ ˄ IVLENPV2LY2NRPS2STPU2UQxQQQY FOR$WRITE_IFV,˄0, FOR$IO_T_DSY FOR$IO_L_VR FOR$IO_L_VT FOR$IO_L_V FOR$IO_END4IVLENPS' FOR$WRITE_SFS@˄D@ FOR$IO_T_DS FOR$IO_END1H FOR$CLOSEUNEXEMPTFOR$EXITX LIB$INDEXP1^( n­^(˄nY,Yn ˄PQ^VYVd˄hlFOR$OPENP1V˜˄ˠˤLIB$SET_SYMBOL6 FOR$READ_SF˘˴˰ FOR$IO_T_DS FOR$IO_ENDמ˘ScL˜TdP,n ˄˼ LIB$INDEXPRP,@b ˄ LIB$INDEXPP,P˄ ˄e.IVLENPV2LR2NSPT2TUPQ2QPxPPPRTdTTY) FOR$WRITE_IFV˄ FOR$IO_T_DSR FOR$IO_L_VS FOR$IO_L_VU FOR$IO_L_VT FOR$IO_L_V FOR$IO_ENDIVLENPV' FOR$WRITE_SFV˄  FOR$IO_T_DS FOR$IO_END1 FOR$CLOSED FOR$WRITE_IFY FOR$IO_L_V FOR$IO_END˄$(LIB$SET_SYMBOLUNEXEMPTFOR$EXIT< LIB$INDEXP1^( n­^(˄nY,Yn ˄PQ^VVH˄LPFOR$OPENP1Vˀ˄˄ˈLIB$SET_SYMBOL6 FOR$READ_SF˘˘˔ FOR$IO_T_DS FOR$IO_ENDמ˘RbL˜ScP,n ˄ˠˬ LIB$INDEXPYP,@i ˄ LIB$INDEXPP,P˄ ˄IVLENPV2LY2NR᫏PS2STPU2UQxQQQYH FOR$WRITE_IFV˄ FOR$IO_T_DSY FOR$IO_L_VR FOR$IO_L_VT FOR$IO_L_V FOR$IO_ENDIVLENPS` FOR$WRITE_SF FOR$IO_END FOR$WRITE_SFS˄ FOR$IO_T_DS FOR$IO_END FOR$WRITE_SFˠ FOR$IO_T_DS FOR$IO_END FOR$WRITE_SF˸Vft˴Yiˀp FOR$IO_X_DA FOR$IO_END FOR$WRITE_SFRb˔˼Tdˠː FOR$IO_X_DA FOR$IO_END FOR$WRITE_SFSc˴Ue˰ FOR$IO_X_DA FOR$IO_END LIB$INDEXPYYRR@TST Bc ( LIB$INDEXPYPPPVYRRVST,SBd ˨YVvVG FOR$WRITE_SFV4 ˨8 4  FOR$IO_T_DS FOR$IO_END@ L LIB$INDEXPY1YSS@TUTX Ce\ h LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV` FOR$WRITE_SFVt ˨x t  FOR$IO_T_DS FOR$IO_ENDˀ ˌ LIB$INDEXPYYSS@TUT˘ Ce˜ ˨ LIB$INDEXPYPPPVYRRVST,SBd ˨YVvVy FOR$WRITE_SFV˴ ˨˸ ˴  FOR$IO_T_DS FOR$IO_END LIB$INDEXPYYSS@TUT Ce LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV FOR$WRITE_SFV ˨  FOR$IO_T_DS FOR$IO_END LIB$INDEXPYYSS@TUT Ce ( LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV FOR$WRITE_SFV4 ˨8 4  FOR$IO_T_DS FOR$IO_END@ L LIB$INDEXPYYSS@TUTX Ce\ h LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV FOR$WRITE_SFVt ˨x t  FOR$IO_T_DS FOR$IO_ENDˀ ˌ LIB$INDEXPYYSS@TUT˘ Ce˜ ˨ LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV FOR$WRITE_SFV˴ ˨˸ ˴  FOR$IO_T_DS FOR$IO_ENDRˏbR/ FOR$WRITE_SF FOR$IO_ENDR^ FOR$WRITE_SF FOR$IO_END LIB$INDEXPYYTT@UVU Df LIB$INDEXPYPPPVYSSVRT,RCd ˨YVvV FOR$WRITE_SFV ˨  FOR$IO_T_DS FOR$IO_END LIB$INDEXPYYSS@TUT Ce ( LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV FOR$WRITE_SFV4 ˨8 4  FOR$IO_T_DS FOR$IO_END@ L LIB$INDEXPYYSS@TUTX Ce\ h LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV FOR$WRITE_SFVt ˨x t  FOR$IO_T_DS FOR$IO_ENDˀ ˌ LIB$INDEXPYYSS@TUT˘ Ce˜ ˨ LIB$INDEXPYPPPVYRRVST,SBd ˨YVvV FOR$WRITE_SFV˴ ˨˸ ˴  FOR$IO_T_DS FOR$IO_END LIB$INDEXPS1STT@UYU Di LIB$INDEXPSPPSSPR,PCb ˨VVYI˨QQY1Y1YV FOR$WRITE_SF FOR$IO_ENDY?ˈ FOR$WRITE_IFF˨~ FOR$IO_L_V FOR$IO_ENDC FOR$WRITE_SF  FOR$IO_T_DS FOR$IO_ENDV1lY(F˨V8ˈ FOR$WRITE_IF˸ FOR$IO_X_DA FOR$IO_ENDt FOR$WRITE_SF  FOR$IO_T_DS FOR$IO_ENDV1 Y(F˨V8ˈ FOR$WRITE_IF˸ FOR$IO_X_DA FOR$IO_END FOR$WRITE_SF   FOR$IO_T_DS FOR$IO_ENDV11 FOR$CLOSEUNEXEMPTFOR$EXIT LIB$INDEXP10 LIB$INDEXPD LIB$INDEXPPR,R@˂ ˄P IVLENP1˄ ,˅ ˄,˄ ,˅ ˄` d LIB$INDEXPVV1VR,R˄ ˄VP,PF˄ ˄V,n ˄t x LIB$INDEXP1PP,P˄ ˄VZ˄ IVLENPWVː IVLENPZ6 FOR$READ_SF˘ˠ ˜  FOR$IO_T_DS FOR$IO_ENDVX˨ Wˬ ˄˰ ˴  LIB$INDEXP\1խ1 IVLENPU FOR$WRITE_SFU  FOR$IO_T_DS FOR$IO_END FOR$READ_SF FOR$IO_T_DS FOR$IO_ENDpYpypN1$pn1pApaԭpX1px1\W@TU,TGe @Z@^(@n€Z^(Z˄n@ZV,Vn @PQ^\1ZW\YYY@VPV^(VI`nV\PP^(Pn^SVVY,Yn @PQ^ZW\VVV@YPY^(YF`nYZ^(Z˄nZVVY\\^(\n\VYV\,\n @PQ^VXX1!VFOR$REWRITE_SU FOR$IO_END1UNEXEMPTFOR$EXIT LIB$INDEXP14 ( SYS$ASSIGNʏPիDUNEXEMPT FOR$EXIT_W6 FOR$READ_SF˘   FOR$IO_T_DS FOR$IO_END˘\l$ REDACL) 1,n ˄4 @ LIB$INDEXPV(@f˄T LIB$INDEXP,P˄ ˄` IVLENPZ FOR$WRITE_IF˘Yi˔\l FOR$IO_X_DAZl ˄p l  FOR$IO_T_DS FOR$IO_ENDt IVLENPX4 FOR$WRITE_SFXˀ ˄˄ ˀ  FOR$IO_T_DS FOR$IO_ENDXˈ ˄ˌ ː OPRMSG(  x˜ ˨ LIB$INDEXP1WP,@g ˄˼ LIB$INDEXP\1\Z,Z˄ ˄ \\xZ^(Z˄nZV ^( xnV Y,Yn ˄PQ^~\^(\˄n\ZZW,Wn PQ^\\L\VV\YFZP^QRYSZT OTS$MOVE5_R5˘Xh REPLENT¹ 1UNEXEMPTFOR$EXIT~~6 FOR$READ_KF˘  FOR$IO_T_DS FOR$IO_ENDPPЫPV1VC1V4PT LIB$WAIT1a($ ˠ˸YЏi˼Zj,n $\lWgVf, <  @˘Zj˜Xh IVLENpPPW FOR$WRITE_SFW ˘  FOR$IO_T_DS FOR$IO_END~~6 FOR$READ_KF˘ FOR$IO_T_DS FOR$IO_ENDPPx| LIB$INDEXPխ FOR$DELETE  FOR$CLOSEUNEXEMPTFOR$EXIT0 LIB$INDEXP1խUNEXEMPT< FOR$EXIT_W8 FOR$WRITE_IF˘Rb˔Sc FOR$IO_X_DA FOR$IO_END˨PTLIB$SET_SYMBOLˠlpLIB$SET_SYMBOL8 FOR$WRITE_IF˸Ue˴Zj  FOR$IO_X_DA FOR$IO_END˨ˈˌLIB$SET_SYMBOL8 FOR$WRITE_IFXh4˼\l@0 FOR$IO_X_DA FOR$IO_END˨ˤ˨LIB$SET_SYMBOL8 FOR$WRITE_IFVfTRb`P FOR$IO_X_DA FOR$IO_END˨LIB$SET_SYMBOL LIB$INDEXPZZTT@UXUDh LIB$INDEXPZPPPVZRRVST,SBd ˨ZVvVV˨LIB$SET_SYMBOL(4 LIB$INDEXP\\RR@STS@BdDP LIB$INDEXP\PPPZ\VVZXR,XFb ˨\ZzZZd˨hlLIB$SET_SYMBOL|ˈ LIB$INDEXPXXRR@STS˔Bd˘ˤ LIB$INDEXPXPPP\XZZ\VR,VJb ˨X\|\\˸˨˼LIB$SET_SYMBOL LIB$INDEXPZZRR@STSBd LIB$INDEXPZPPPXZ\\XVR,VLb ˨ZXxXX ˨LIB$SET_SYMBOL$0 LIB$INDEXP\\RR@STS<Bd@L LIB$INDEXP\PPPZ\XXZVR,V@ SAFETY013.A  ([EVERHART.JTDEMO]JTAUTHMAINT.OBJ_VAX71;1Z+>4Hb ˨\ZzZZ`˨dhLIB$SET_SYMBOLx˄ LIB$INDEXPXXRR@STSːBd˔ˠ LIB$INDEXPXPPP\XZZ\VR,VJb ˨X\|\\˴˨˸˼LIB$SET_SYMBOL LIB$INDEXPZZRR@STSBd LIB$INDEXPZPPPXZ\\XVR,VLb ˨ZXxXX˨ LIB$SET_SYMBOLVˏfV,LIB$SET_SYMBOLVHLIB$SET_SYMBOLXd LIB$INDEXPZZRR@STSpBdtˀ LIB$INDEXPZPPPXZVVX\R,\Fb ˨ZXxXX˔˨˘˜LIB$SET_SYMBOLˬ˸ LIB$INDEXP\\RR@STSBd LIB$INDEXP\PPPZ\XXZVR,VHb ˨\ZzZZ˨LIB$SET_SYMBOL  LIB$INDEXPXXRR@STSBd( LIB$INDEXPXPPP\XZZ\VR,VJb ˨X\|\\<˨@DLIB$SET_SYMBOLT` LIB$INDEXPZZRR@STSlBdp| LIB$INDEXPZPPPXZ\\XVR,VLb ˨:ZXxXXː˨˔˘LIB$SET_SYMBOL˨˴ LIB$INDEXP\\RR@STSBd LIB$INDEXP\PPPZ\XXZVR,VHb ˨\ZzZZ˨LIB$SET_SYMBOL LIB$INDEXPX1XRR@STSBd$ LIB$INDEXPXPPXXP\,PHl ˨V@LIB$SET_SYMBOL\LIB$SET_SYMBOLxLIB$SET_SYMBOL˔LIB$SET_SYMBOLVXH˨\1\1\V˰LIB$SET_SYMBOL\>ˈ FOR$WRITE_IFF˨~ FOR$IO_L_V FOR$IO_ENDLIB$SET_SYMBOLV\(F˨V8ˈ FOR$WRITE_IF˸ FOR$IO_X_DA FOR$IO_ENDLIB$SET_SYMBOLV1M\(F˨V8ˈ FOR$WRITE_IF˸ FOR$IO_X_DA FOR$IO_ENDLIB$SET_SYMBOLV1 LIB$INDEXPUNEXEMPTFOR$EXIT, LIB$INDEXP1խB FOR$WRITE_SF8H<8 FOR$IO_T_DS FOR$IO_ENDUNEXEMPTFOR$EXIT8 FOR$WRITE_IF˘Zjt˔\lˀp FOR$IO_X_DA FOR$IO_END˨LPLIB$SET_SYMBOLˠhlLIB$SET_SYMBOL8 FOR$WRITE_IF˸Rb˔˴Scˠː FOR$IO_X_DA FOR$IO_END˨˄ˈLIB$SET_SYMBOL8 FOR$WRITE_IFTd˴˼Ue˰ FOR$IO_X_DA FOR$IO_END˨ˠˤLIB$SET_SYMBOL8 FOR$WRITE_IFVfZj FOR$IO_X_DA FOR$IO_END˨˼LIB$SET_SYMBOLf FOR$WRITE_SFH FOR$IO_T_DS FOR$IO_END˘\lL˜XhPzTR{RTTxTT2LUUT2NVˏTZ FOR$WRITE_SFT FOR$IO_L_VV FOR$IO_L_VZ FOR$IO_L_V FOR$IO_END FOR$WRITE_SFˠ FOR$IO_T_DS FOR$IO_END FOR$WRITE_SF˸Xh˴Rb FOR$IO_X_DASc˼Ue  FOR$IO_X_DA FOR$IO_END FOR$WRITE_SF FOR$IO_ENDTdVZ FOR$WRITE_SFT\\VXRXLb FOR$IO_T_DS FOR$IO_ENDdTdVZUNEXEMPTFOR$EXIT LIB$INDEXPԭ LIB$INDEXP,n @˸Xh˼\l˼VfZj($ ˠ LIB$INDEXPXhX\Xl( LIB$INDEXPVfVZVj< LIB$INDEXPRbScP LIB$INDEXPd LIB$INDEXPPTTUUXXpE˂tˀ LIB$INDEX̞p<pPPP@UZU^(U@jn^SXYY^(YnYWXWV,Vn @PQ^X\IVLENPW)~­^(HnЭVVZS(~ZVW^(WnWXVXY,Yn @PQ^p LIB$INDEXPW1WVVYY|F˂ˀˌ LIB$INDEXWPPYWYRRZZ,n $WgWPW`Z1˜B LIB$INDEXPWWRR@STS˴Bd˸ LIB$INDEXPWPPP@ZRZ^(Z@bnZXW^(WnWZXZW,Wn @PQ^IVLENPW)~VYY^(YF˂nY\\XD(~XZW^(WnW\Z\X,Xn @PQ^\Z,YF˂ |YF˂FOR$OPENP1 FOR$CLOSEW^\Z$ LIB$INDEX,P| P0IVLEN< SYS$GETDVIW,˨ ˨ː FOR$WRITE_IFW FOR$IO_L_V?^ FOR$IO_W_R FOR$IO_ENDVd` FOR$WRITE_IFh FOR$IO_T_DSV~p^tp FOR$IO_T_V_DSx FOR$IO_T_DS8˄ˀ FOR$IO_T_DS쐫~ˈ^ˌˈ FOR$IO_T_V_DSː˨˔ː FOR$IO_T_DS FOR$IO_ENDZjZWZgԭˠ LIB$INDEXPV,n $˄˴ LIB$INDEXPV1V\\WWL˂ LIB$INDEXVPPWVWRRZZ,n $˄VfVPV`Z1 LIB$INDEXPVVRR@STSBd LIB$INDEXPVPPP@ZRZ^(Z@bnZYV^(VnVZYZV,Vn @PQ^IVLENPV)~\WW^(WL˂nWXXYR(~YZV^(VnVXZXY,Yn @PQ^,0IVLENPZѭ^(H nZ^(ZnZYYX,Xn @PQ^YV,WL˂ |W<L˂@DFOR$OPENPl FOR$CLOSEX^YV| LIB$INDEX,P| PˈIVLEN˔ SYS$GETDVIW,˨ ˨ː FOR$WRITE_IFX FOR$IO_L_V?^ FOR$IO_W_R FOR$IO_END W FOR$WRITE_IF˸ FOR$IO_T_DSW~^ FOR$IO_T_V_DS쐭~^ FOR$IO_T_V_DS8 FOR$IO_T_DS쐫~^ FOR$IO_T_V_DS˨ FOR$IO_T_DS FOR$IO_ENDIVLENPVVЭXVX,V˄ \XV^(V˄nVWX^(X\nXZWZ\,\n \PQ^ LIB$INDEXP1  LIB$INDEXPVVXX@ZWZ$Hg(4 LIB$INDEXPVP>pPPP@RSR^(R@cn^SYVV^(VnVWYWX,Xn @PQ^H LIB$INDEXP\\VVWWTF˂Xd LIB$INDEXP\P>pXtxIVLENPV)~\\XX^(XL˂nXZZXZ(~X\V^(VnVZ\ZW,Wn @PQ^ˌ LIB$INDEXP1˜˨ LIB$INDEXPVVZZ@\W\˴Jg˸ LIB$INDEXPVP>pPPP@RSR^(R@cn^SXVV^(VnVWXWY,Yn @PQ^ LIB$INDEXP\\VVWWF˂ LIB$INDEXP\P>pYIVLENPV)~\\YY^(YL˂nYZZXX(~X\V^(VnVZ\ZW,Wn @PQ^ XխXVWXYZ[\] ^ X,\ XbЭVFbЭZJcЭ\Ld LIB$INDEXP(˘,0 SYS$ASSIGNET LIB$INDEXP`REPLENTЫ tp SYS$DASSGN˘Wg˜Yiխ1|ˈ LIB$INDEXP\\RR@STS˔Bd˘ˤ LIB$INDEX\WPWW@YXY^(YGhnYZ\\^(\n\WZWX,Xn @PQ^˴˸IVLENPW)~­^(\nЭXXYA(~YXW^(WnWZXZ\,\n @PQ^IVLENpPPZѭFOR$REWRITE_SFZ˘ FOR$IO_T_DS FOR$IO_ENDխ FOR$WRITE_SFZ˘ FOR$IO_T_DS FOR$IO_END FOR$CLOSEUNEXEMPTFOR$EXITUNEXEMPT FOR$EXIT_WP P_LIST_SUMM_REPORTGCEVGCEVYYYYYYYYYYYYYYYYYYYYYYYYU(*)K(*)I(*)<#>) JTMODACEFGETFID SYS$ASSIGN SYS$DASSGNLIB$SYS_TRNLOGLIB$GET_FOREIGNLIB$SET_SYMBOL LIB$DATE_TIME LIB$SPAWN SYS$GETJPIWIVLENEXEMPT LIB$INDEXILENFOR$OPEN FOR$CLOSE SYS$GETDVIWUNEXEMPT FOR$EXIT_WFILACCFOR$EXITREDACLOPRMSGREPLENTLIB$WAITGETPVJTSCRLPRCFILCK;$CODEK $PDATAP7$LOCAL FFFIII FFIIDDKIUICJPIJUNK FOR$DELETE FOR$IO_END FOR$IO_W_R FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$IO_T_V_DS FOR$IO_X_DA FOR$READ_SF FOR$READ_SF FOR$READ_KF FOR$WRITE_SFFOR$REWRITE_SFFOR$REWRITE_SU FOR$READ_IF FOR$READ_IF FOR$WRITE_IF FOR$WRITE_IF OTS$MOVE5_R5TP&:P:P:PP PP 9P:P8"P=PpPPoP(P7PP^EPp4VPvP{PPUPRP PIPabPHfPDP/P P  Pv6 P\: PX P/ P P 3 Pc N PH R PD  P/ PP{P|P{7P{P{WP{P{qPPP{FP{P{fP{PPPBXP:^PPSP[8P[P?PPGPP`PP P(P$P"PPGP?PPP'PPJP.)P.PCuPPP Pt,P1PFP,JP(PP'P PP<P!P0PPPP0P%P P#PtPcPcd Pc PcT!Pc!PcD"Pc"P "P "PcY#Pc#PcI$Pc$Pc;%Pg%Pž%P%P%P;&PC`&PC&P&P&P<)P)P2,*PJ*Ph*P*Pj*P3+P%+P5+PW+Py+P*+P+P,P 5,P>,P^,PZ,P,P-P-P-P-Pk.PLu.PB.P.P.P~/PM/PG\/PX_/PU/P;/P z0P0P*0Pj0PA1P1P1P2 2Pd32P;2P13P84P>4PW4P4P4P4Pd4P;5P)5P}6P&7PF27P B7P*{7P 7Pj7PA-8PY8P 8Pj8PAG9PY9PX-:P d:PHz:PdN;P-;P-7+;R2FGETFID0129-Jan-1996 09:19Digital Fortran V6.4-165FGETFIDFGETFID4PP PD DP4[ЬЬ,(SYS$OPENPRRQAP`40GETFIDRP o FGETFIDSYS$OPENGETFIDS$CODE$PDATAp$LOCAL FFIIDD,P"!bSD/ILEN0129-Jan-1996 09:19Digital Fortran V6.4-165 ILEN ILENLPPP[}PQPPQQQRBRR PPQPA ILEN6$CODE$PDATA $LOCAL )P60GETPV0129-Jan-1996 09:19Digital Fortran V6.4-165 GETPV GETPVnpPPP|[}PQмP޼ Qa޼RbSPSTDTaUTUUabVTVVbUUaVVbPSH |GETPVZ$CODE$PDATA $LOCAL'P1HPPPZU0IVLEN0129-Jan-1996 09:19Digital Fortran V6.4-165 IVLENX IVLENTYPP[}PQPмPQPPRQRSSTDTT PQSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C/LPRC0129-Jan-1996 09:19\Digital Fortran V6.4-165 LPRC LPRCP@>)P@$8@`h$$(0P[^}PQ}PQ } PQ}PQ+<~ ~(nQ^( LIB$INDEXPV1VWWRR4G8D LIB$INDEXP1VTPTTP LIB$INDEXPXXUU@RR\E`l LIB$INDEXPXPPPYY@TT^(TIn^SZVPPQQ^(Q@n^SWZW,~WZY^(YnYWZWY,Yn @PQ^XxIVLENP)~VVYY^(YFnYWWV~VY­^(nЭZYZX,Xn @PQ^-<~ ~(nQ^˄ LIB$INDEXPY1YXXWWːH˔ˠ LIB$INDEXP1YZPZˬ LIB$INDEXPR1RSS@TT˸C˼ LIB$INDEXPRPPRVVPPFYXXZSSH LIB$INDEXPRPPPVYZZVZVUE,VZ@TT^(TJn^SYVV^(VnVXYXZ,Zn @PQ^*<~ ~(nQ^ LIB$INDEXPY1YZZWWJ  LIB$INDEXP1YXPX LIB$INDEXPVVRR@SS$B(4 LIB$INDEXPVPPP@UU^(U@n^SZVV^(VnVWZWV,Vn @PQ^@IVLENP)~YYXX^(XInXWWV~VY­^(nЭZYZX,Xn @PQ^W_ LPRC LIB$INDEXIVLENp$CODE$PDATAP$LOCALfKP pPPzPNvPPPPR1PPPP\WKpF0FILCK0129-Jan-1996 09:19Digital Fortran V6.4-165 FILCKYP FILCKP@ SAFETY013.A  ([EVERHART.JTDEMO]JTAUTHMAINT.OBJ_VAX71;1Z'S )    IUFCK P|[}PQP ޼Rb޼ SbcP$ FOR$INQUIRE8FOR$OPENP1TxQQ  FOR$READ_SFk FOR$IO_L_R FOR$IO_X_DA FOR$IO_ENDPkQUUbcVTUUVVcTTVVckPl FOR$CLOSEbb |FILCKIUFCK FOR$INQUIREFOR$OPEN FOR$CLOSE$CODER$PDATA|$LOCALFSZC FOR$IO_END FOR$IO_L_R FOR$IO_X_DA FOR$READ_SF'?PZP]]PZP(P>2 0IUFCK0129-Jan-1996 09:19Digital Fortran V6.4-165 IUFCK, IUFCKPP PD D P[ЬЬ$84SYS$OPENPRR@< SYS$CONNECTPRRP$QARbRkRHDGTXABkkRkЫЫPLz IUFCK SYS$CONNECTSYS$OPENGTXAB$CODE$PDATA\$LOCALFSZC)P Extended Access Control Facility (EACF) only+ Deletion Protection System (DPS) only- Hierarchical Storage Manager (HSM) only1 More than one of the above (combined setup)& Quit, not ready to configure nowI Note that combined setup allows choice of all functions of all packages1 but only those licensed will actually function.IShould you select the "More than one..." item, the script enters a set ofIcombined menus which allows you to select functions of all three packagesin a single setup.+The next menu you will see looks like this: SDH HSM CONTROL/MAINTENANCE( --> *Select "Shelving" style SDH HSM1 Select "readonly softlink" style SDH HSM' Explain the HSM styles briefly1 Proceed to set up SDH configuration fileN Unshelve all files on a disk if space exists (assumes SDH is running)* Stop a running SDH server cleanly2 Start a server that is already configured Quit, do nothingKThis menu is for configuring the HSM component. Generally you select eitherHthe "shelving" or the "softlink" style of HSM (this selects one of theseDoperations as the mode of saving space) and then you select the itemF"Proceed to set up SDH configuration file". The "Unshelve all..." item(is used when deinstalling HSM functions.EWhen you select the "Proceed..." item, you enter a menu which selects>areas used to hold various information and control some global%functions. This menu looks like this: SDH SETUP 17:28:50+ --> Set area to hold SDH database files6 Set start intercept driver unit number (now 0)* Set area for SDH executable images. Done this menu, process disk selection8 Remove a disk from an existing SDH configuration> Set images which are exempt from SDH (e.g. defraggers) Set area for scratch8 Set area to save deleted files (= shelving area)8 Set mode of deletion handling (current value: 0)& Enable volume space monitoringD Set area for storing nearline files shelved (= deleted area)4 Remove a disk from SDH startup configuration Quit, do nothingCAs you select areas, they are marked with asterisk (*) to flag thatthey have been selected.GYou should select the item "Set mode of deletion handling" if using theDdeletion protection system ("undelete"). When you select this, a sub'menu is provided which looks like this: SDH MODES SETUP 17:31:106 --> * Run .COM file FILDEL.COM to process deletions6 Rename deleted files on volume to wastebasket/ Copy deleted files to wastebasket area0 Don't delete any files after processing? Delete file if no room for saving (else do not delete)8 Run GCY$CM:DELBAK.COM before wastebasket purges? Set files to ignore (allowing normal deletion of them) Done this menu0 Quit this menu, leave major modes aloneHwhich lets you select between modes of handling deletion and undeletion.%When done, select the "Done..." item.?The "Done this menu, process disk selection" should be selected#once all areas needed are selected.FThis brings up the disk selection menu. This menu allows you to select4disks to be controlled by various system components.'The disk select screen looks like this: SDH Configuration% (Non-system) Disk Selection: Use arrows to move to selection. Use RETURN to select. End disk selection _ARISIA$DCA0: XRP07 _ARISIA$DCA2: XRP06 _ARISIA$DCA3: ZHI _ARISIA$DCA4: ZCD _ARISIA$DCA5: CDMASTER _ARISIA$VDB0: TEST2 _ARISIA$VDB1: TEST1 _ARISIA$DKB200:  _ARISIA$DKB700:  _ARISIA$DCA1:  _ARISIA$DCA6:  _ARISIA$DCA7:  _ARISIA$DCA8:  _ARISIA$FRA0:  _ARISIA$FRA1:  _ARISIA$FRA2:  _ARISIA$FRA3:  _ARISIA$FRA4: I Type H for help. Currently on item 1 of 152EIf you select one of the disks (cursor is indicated by reverse video)Ayou come to the per-disk customization for the package. This menuGis entered for each disk. See the EACF document for further informationon the meanings of the items."The per-disk menu looks like this: SDH DISK SETUP 17:36:20# * Enter security key for disk9 Enter file of file IDs to load for kernel marking9 Examine only kernel-marked files for access tests: Set to automatically kernel-mark all files on load> (This requires generating the file list at boot)4 Generate filelist database and set to use it@ Act as if ALL files were kernel-marked (use if most are) Quit, do nothing. --> Done this menu@When each disk's per-disk menu is set up, you return to the diskCselection screen, with disks selected already tagged with * to flagthat they have been selected.COnce you select the "End disk selection" item on the disk selection?menu, the script writes out the startup configuration files andtypes the following message: Add the line' $@SYS$MANAGER:SDH_STARTUP.COM@ to your SYSTARTUP_V5.COM file now. The script can be run from. a fully privileged account now if you wish. Add the line+ $@SYS$MANAGER:SDH_LOGIN.COMA to your SYLOGIN.COM file also to define symbols needed for SDHNote:H The space making is controlled by the script jtspace_Tailor.com which6allows you to set site policy for file space creation. *[EVERHART.JTDEMO]JTCOMBINED.PS;3+, .$/ 4$#- 0123KPWO$567189GHJ%!PS-Adobe-2.1 %%Creator: DECwrite V3.0-2 %%+Copyright (c) 1990,1994 DIGITAL EQUIPMENT CORPORATION. %%+All Rights Reserved. %%DocumentFonts: (atend) %%EndComments %%BeginProcSet DEC_WRITE 1.10 save/DEC_WRITE_dict 150 dict def DEC_WRITE_dict begin/$D exch def/$I 0 def/$S 0 def/$C matrix def/$R matrix def/$L matrix def/$E matrix def/pat1{/px exch def/pa 8 array def 0 1 7{/py exch def/pw 4 string def 0 1 3{pw exch px py 1 getinterval putinterval}for pa py pw put}for}def/pat2{/pi exch def/cflag exch def save cflag 1 eq{eoclip}{clip}ifelse newpath{clippath pathbbox}stopped not{/ph exch def/pw exch def/py exch def/px exch def/px px 3072 div floor 3072 mul def/py py 3072 div floor 3072 mul def px py translate/pw pw px sub 3072 div floor 1 add cvi def/ph ph py sub 3072 div floor 1 add cvi def pw 3072 mul ph 3072 mul scale/pw pw 32 mul def/ph ph 32 mul def/px 0 def/py 0 def pw ph pi[pw 0 0 ph 0 0]{pa py get/px px 32 add def px pw ge{/px 0 def/py py 1 add 8 mod def}if}pi type/booleantype eq{imagemask}{image}ifelse}if restore}def/PS{/_op exch def/_np 8 string def 0 1 7{/_ii exch def/num _op _ii get def _np 7 _ii sub num -4 bitshift PX num 15 and 4 bitshift -4 bitshift PX 4 bitshift or put}for _np}def/PX{[15 7 11 3 13 5 9 1 14 6 10 2 12 4 8 0]exch get}def/FR{0.7200 0 $E defaultmatrix dtransform/yres exch def/xres exch def xres dup mul yres dup mul add sqrt}def/SU{/_sf exch def/_sa exch def/_cs exch def/_mm $C currentmatrix def/rm _sa $R rotate def/sm _cs dup $L scale def sm rm _mm _mm concatmatrix _mm concatmatrix pop 1 0 _mm dtransform/y1 exch def/x1 exch def/_vl x1 dup mul y1 dup mul add sqrt def/_fq FR _vl div def/_na y1 x1 atan def _mm 2 get _mm 1 get mul _mm 0 get _mm 3 get mul sub 0 gt{{neg}/_sf load concatprocs/_sf exch def}if _fq _na/_sf load setscreen}def/BO{/_yb exch def/_xb exch def/_bv _bs _yb _bw mul _xb 8 idiv add get def/_mk 1 7 _xb 8 mod sub bitshift def _bv _mk and 0 ne $I 1 eq xor}def/BF{DEC_WRITE_dict begin/_yy exch def/_xx exch def/_xi _xx 1 add 2 div _bp mul cvi def/_yi _yy 1 add 2 div _bp mul cvi def _xi _yi BO{/_nb _nb 1 add def 1}{/_fb _fb 1 add def 0}ifelse end}def/setpattern{/_cz exch def/_bw exch def/_bp exch def/_bs exch PS def/_nb 0 def/_fb 0 def _cz 0/BF load SU{}settransfer _fb _fb _nb add div setgray/$S 1 def}def/invertpattern{$S 0 eq{{1 exch sub}currenttransfer concatprocs settransfer}if}def/invertscreen{/$I 1 def/$S 0 def}def/revertscreen{/$I 0 def}def/setrect{/$h exch def/$w exch def/$y exch def/$x exch def newpath $x $y moveto $w $x add $y lineto $w $x add $h $y add lineto $x $h $y add lineto closepath}def/concatprocs{/_p2 exch cvlit def/_p1 exch cvlit def/_pn _p1 length _p2 length add array def _pn 0 _p1 putinterval _pn _p1 length _p2 putinterval _pn cvx}def/OF/findfont load def/findfont{dup DEC_WRITE_dict exch known{DEC_WRITE_dict exch get}if DEC_WRITE_dict/OF get exec}def mark/ISOLatin1Encoding 8#000 1 8#001{StandardEncoding exch get}for /emdash/endash 8#004 1 8#025{StandardEncoding exch get}for /quotedblleft/quotedblright 8#030 1 8#054{StandardEncoding exch get}for /minus 8#056 1 8#217 {StandardEncoding exch get}for/dotlessi 8#301 1 8#317{StandardEncoding exch get}for/space/exclamdown/cent/sterling/currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered /macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph /periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter /onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave /Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde /Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn /germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave /uacute/ucircumflex/udieresis/yacute/thorn/ydieresis 256 array astore def cleartomark /encodefont{findfont dup maxlength dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding exch def dup/FontName exch def currentdict definefont end}def/loads{/$/ISOLatin1Encoding load def/&/encodefont load def/*/invertpattern load def/+/revertscreen load def/-/invertscreen load def/:/concatprocs load def/^/setpattern load def/~/pat1 load def/_/pat2 load def/@/setrect load def/A/arcn load def/B/ashow load def/C/curveto load def/D/def load def/E/eofill load def/F/findfont load def/G/setgray load def/H/closepath load def/I/clip load def/J/fill load def/K/kshow load def/L/lineto load def/M/moveto load def/N/newpath load def/O/rotate load def/P/pop load def/R/grestore load def/S/gsave load def/T/translate load def/U/sub load def/V/div load def/W/widthshow load def/X/exch load def/Y/awidthshow load def/a/save load def/c/setlinecap load def/d/setdash load def/e/restore load def/f/setfont load def/g/initclip load def/h/show load def/i/setmiterlimit load def/j/setlinejoin load def/k/stroke load def/l/rlineto load def/m/rmoveto load def/n/currentfont load def/o/scalefont load def/p/currentpoint load def/q/setrgbcolor load def/r/currenttransfer load def/s/scale load def/t/setmatrix load def/u/settransfer load def/w/setlinewidth load def/x/matrix load def/y/currentmatrix load def}def end %%EndProcSet %%EndProlog %%BeginSetup DEC_WRITE_dict begin loads version cvi 23.0 gt { currentdict {dup type /arraytype eq {bind def} {pop pop} ifelse} forall} if 0.0100 0.0100 s %%EndSetup %%Page: 1 1 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (1) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 8399 -1638 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1800 o f 0.000000 0.000000 0.000000 q (EAC@ SAFETY013.A   [EVERHART.JTDEMO]JTCOMBINED.PS;3ACE.ZIP;1$. F / DPS / HSM Combined Startup) h 288 -4388 M /Times-Roman-ISOLatin1 F 1200 o f 153.9 0 32 (The EACF \(Extended Access Control Facility\), DPS \(Deletion Protection System\) and HSM) W 288 -5788 M 108.6 0 32 (\(Hierarchical Storage Manager\) systems share some kernel technology and can be used coop\255) W 288 -7188 M 57.8 0 32 (eratively. When you obtain the kits for any of them, in fact all are present, and the 45 day trial) W 288 -8588 M 93.6 0 32 (license allows use for 45 days of any components you wish to use. With a permanent license,) W 288 -9988 M (you pay for what you use.) h 288 -12588 M /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 88.7 0 32 (This document discusses briefly the combined setup menus. You should examine the docu\255) W 288 -13988 M 25.5 0 32 (ments for EACF, DPS, and HSM separately to gain a fuller understanding of the menus and) W 288 -15388 M 145.2 0 32 (controls displayed here. This combined setup menu is however used whenever you wish to) W 288 -16788 M 39.0 0 32 (enable more than one of the packages at one time. When they are enabled together, they can) W 288 -18188 M 152.0 0 32 (cooperate, and require fewer system resources than they would if installed separately. The) W 288 -19588 M (combined menus are a kind of pastiche of the separate ones, controlling all functions.) h 288 -22188 M /Times-Roman-ISOLatin1 F 1200 o f 89.5 0 32 (When you first invoke the script JT_SETUP as requested by the messages from KITINSTAL,) W 288 -23588 M (after running VMSINSTAL, you will see a menu come up with the following appearance:) h 288 -26188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f ( EACF\255Security / DeleteProtect / HSM Selection) h 288 -28788 M ( Please select which functions you are licensed for:) h 288 -31388 M ( \255\255> Extended Access Control Facility \(EACF\) only) h 288 -32788 M ( Deletion Protection System \(DPS\) only) h 288 -34188 M ( Hierarchical Storage Manager \(HSM\) only) h 288 -35588 M ( More than one of the above \(combined setup\)) h 288 -36988 M ( Quit, not ready to configure now) h 288 -39588 M /Times-Roman-ISOLatin1 F 1200 o f 3.8 0 32 ( Note that combined setup allows choice of all functions of all packages but only those licensed) W 288 -40988 M (will actually function.) h 288 -43588 M 40.6 0 32 (Should you select the "More than one..." item, the script enters a set of combined menus which) W 288 -44988 M (allows you to select functions of all three packages in a single setup.) h 288 -47588 M (The next menu you will see looks like this:) h 288 -50188 M /Courier-ISOLatin1 F 1200 o f ( SDH HSM CONTROL/MAINTENANCE) h 288 -52788 M ( \255\255> *Select "Shelving" style SDH HSM) h 288 -54188 M ( Select "softlink" style SDH HSM) h 288 -55588 M ( Select "readonly softlink" style SDH HSM) h 288 -56988 M ( Explain the HSM styles briefly) h 288 -58388 M ( Proceed to set up SDH configuration file) h 288 -59788 M ( Unshelve all files on a disk if space exists \(SDH running\)) h 288 -61188 M ( Stop a running SDH server cleanly) h 288 -62588 M ( Start a server that is already configured) h 288 -63988 M ( Quit, do nothing) h -7200 7200 T showpage $P e %%Page: 2 2 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (2) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 15.5 0 32 (This menu is for configuring the HSM component. Generally you select either the "shelving" or) W 288 -2588 M 99.0 0 32 (the "softlink" style of HSM \(this selects one of these operations as the mode of saving space\)) W 288 -3988 M 82.5 0 32 (and then you select the item "Proceed to set up SDH configuration file". The "Unshelve all...") W 288 -5388 M (item is used when deinstalling HSM functions.) h 288 -7988 M 53.4 0 32 (When you select the "Proceed..." item, you enter a menu which selects areas used to hold vari\255) W 288 -9388 M (ous information and control some global functions. This menu looks like this:) h 288 -11988 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f ( SDH SETUP 17:28:50) h 288 -14588 M ( \255\255> Set area to hold SDH database files) h 288 -15988 M ( ) h 5988 -15988 M (Set start intercept driver unit number \(now 0\)) h 288 -17388 M 5988 -17388 M (Set area for SDH executable images) h 288 -18788 M 5988 -18788 M (Done this menu, process disk selection) h 288 -20188 M 5988 -20188 M (Remove a disk from an existing SDH configuration) h 288 -21588 M 5988 -21588 M (Set images which are exempt from SDH \(e.g. defraggers\)) h 288 -22988 M 5988 -22988 M (Set area for scratch) h 288 -24388 M 5988 -24388 M (Set area to save deleted files \(= shelving area\)) h 288 -25788 M 5988 -25788 M (Set mode of deletion handling \(current value: 0\)) h 288 -27188 M 5988 -27188 M (Enable volume space monitoring) h 288 -28588 M 5988 -28588 M (Set area for storing nearline files shelved \(= del area\)) h 288 -29988 M 5988 -29988 M (Remove a disk from SDH startup configuration) h 288 -31388 M 5988 -31388 M (Quit, do nothing) h 288 -33988 M /Times-Roman-ISOLatin1 F 1200 o f (As you select areas, they are marked with asterisk \(*\) to flag that they have been selected.) h 288 -36588 M 27.6 0 32 (You should select the item "Set mode of deletion handling" if using the deletion protection sys\255) W 288 -37988 M (tem \("undelete"\). When you select this, a sub menu is provided which looks like this:) h 288 -40588 M /Courier-ISOLatin1 F 1200 o f ( SDH MODES SETUP 17:31:10) h 288 -43188 M ( \255\255> * Run .COM file FILDEL.COM to process deletions) h 288 -44588 M ( ) h 5988 -44588 M (Rename deleted files on volume to wastebasket) h 288 -45988 M 5988 -45988 M (Copy deleted files to wastebasket area) h 288 -47388 M 5988 -47388 M (Don't delete any files after processing) h 288 -48788 M 5988 -48788 M (Delete file if no room for saving \(else do not delete\)) h 288 -50188 M 5988 -50188 M (Run GCY$CM:DELBAK.COM before wastebasket purges) h 288 -51588 M 5988 -51588 M (Set files to ignore \(allowing normal deletion of them\)) h 288 -52988 M 5988 -52988 M (Done this menu) h 288 -54388 M 5988 -54388 M (Quit this menu, leave major modes alone) h 288 -56988 M /Times-Roman-ISOLatin1 F 1200 o f (which lets you select between modes of handling deletion and undeletion.) h 288 -59588 M (When done, select the "Done..." item.) h 288 -62188 M 88.1 0 32 (The "Done this menu, process disk selection" should be selected once all areas needed are se\255) W 288 -63588 M (lected.) h -7200 7200 T showpage $P e %%Page: 3 3 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (3) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 5.4 0 32 (This brings up the disk selection menu. This menu allows you to select disks to be controlled by) W 288 -2588 M (various system components.) h 288 -5188 M (The disk select screen looks like this:) h 288 -7788 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f ( SDH Configuration ) h 17388 -7788 M (\(Non\255system\) Disk Selection) h 288 -9188 M ( Use arrows to move to selection. Use RETURN to select.) h 288 -11788 M /Courier-Bold-ISOLatin1 $ /Courier-Bold & P /Courier-Bold-ISOLatin1 F 1200 o f ( End disk selection) h 288 -13188 M /Courier-ISOLatin1 F 1200 o f ( _ARISIA$DCA0: XRP07) h 288 -14588 M ( _ARISIA$DCA2: XRP06) h 288 -15988 M ( _ARISIA$DCA3: ZHI) h 288 -17388 M ( _ARISIA$DCA4: ZCD) h 288 -18788 M ( _ARISIA$DCA5: CDMASTER) h 288 -20188 M ( _ARISIA$VDB0: TEST2) h 288 -21588 M ( _ARISIA$VDB1: TEST1) h 288 -22988 M ( _ARISIA$DKB200: ) h 288 -24388 M ( _ARISIA$DKB700: ) h 288 -25788 M ( _ARISIA$DCA1: ) h 288 -27188 M ( _ARISIA$DCA6: ) h 288 -28588 M ( _ARISIA$DCA7: ) h 288 -29988 M ( _ARISIA$DCA8: ) h 288 -31388 M ( _ARISIA$FRA0: ) h 288 -32788 M ( _ARISIA$FRA1: ) h 288 -34188 M ( _ARISIA$FRA2: ) h 288 -35588 M ( _ARISIA$FRA3: ) h 288 -36988 M ( _ARISIA$FRA4: ) h 288 -38388 M ( Type H for help.) h 17388 -38388 M (Currently on item 1 of 152) h 288 -40988 M /Times-Roman-ISOLatin1 F 1200 o f 121.5 0 32 (If you select one of the disks \(cursor is indicated by reverse video\) you come to the per\255disk) W 288 -42388 M 31.1 0 32 (customization for the package. This menu is entered for each disk. See the EACF document for) W 288 -43788 M (further information on the meanings of the items.) h 288 -46388 M (The per\255disk menu looks like this:) h 288 -48988 M /Courier-ISOLatin1 F 1200 o f ( SDH DISK SETUP 17:36:20) h 288 -51588 M ( * Enter security key for disk) h 288 -52988 M ( ) h 5988 -52988 M (Enter file of file IDs to load for kernel marking) h 288 -54388 M 5988 -54388 M (Examine only kernel\255marked files for access tests) h 288 -55788 M 5988 -55788 M (Set to automatically kernel\255mark all files on load) h 288 -57188 M 5988 -57188 M (\(This requires generating the file list at boot\)) h 288 -58588 M 5988 -58588 M (Generate filelist database and set to use it) h 288 -59988 M 5988 -59988 M (Act as if ALL files were kernel\255marked \(use if most are\)) h 288 -61388 M 5988 -61388 M (Quit, do nothing.) h 288 -62788 M ( \255\255> Done this menu) h -7200 7200 T showpage $P e %%Page: 4 4 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (4) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 122.7 0 32 (When each disk's per\255disk menu is set up, you return to the disk selection screen, with disks) W 288 -2588 M (selected already tagged with * to flag that they have been selected.) h 288 -5188 M 67.6 0 32 (Once you select the "End disk selection" item on the disk selection menu, the script writes out) W 288 -6588 M (the startup configuration files and types the following message:) h 288 -9188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f (Add the line) h 288 -11788 M 5988 -11788 M ($@SYS$MANAGER:SDH_STARTUP.COM) h 288 -14388 M 12.0 0 32 ( to your SYSTARTUP_V5.COM file now. The script can be run from a) W 288 -15788 M (fully privileged account now if you wish.) h 288 -18388 M (Add the line) h 288 -20988 M 5988 -20988 M ($@SYS$MANAGER:SDH_LOGIN.COM) h 288 -23588 M ( to your SYLOGIN.COM file also to define symbols needed for SDH) h 288 -24930 M -7200 7200 T showpage $P e %%Trailer $D end restore % DEC_WRITE_dict %%Pages: 4 %%DocumentFonts: Times-Roman %%+ Times-Bold %%+ Times-BoldItalic %%+ Courier %%+ Courier-Bold !*[EVERHART.JTDEMO]JTCOMMAND.DOC;17+, .H/ 4NHAT- 0123 KPWOB56$9-7@?-89GHJ!EACF/DPS - Functions and controlsGlenn c. Everhart February 1995BEACF and DPS have a somewhat obscure command line interface. It is@intended that this interface generally NOT be used by users, butHbe used by way of command scripts that are part of the package. However,Fin order to make it possible for the packages to be called from normalGscripts this document is supplied to describe the format of the commandline interface to EACF and DPS.Overall architecture:BEACF works by having an intercept driver gain control ahead of DECBfile processors by hooking in at the disk driver for each disk andFmonitor file based requests. fundamentally it monitors open and deleteFand performs access checking in a special daemon that acts as a secondBACP, ahead of the DEC one, which can cause the user request eitherGto be passed, rejected, or modified. Close is also intercepted to allowEscratch storage that is kept during file open periods to be restored.BFiles are marked by application ACEs tagging a few functions to beEdone in the driver (e.g. setting privs, idents, base priority - theseFprotected by a cryptographic checksum on the tags) and may in additionEhave file numbers registered so that if these files are opened and ifEthe ACEs have been deleted, those files will still be examined by thedaemon for access checks.GThe list of files that may be so examined is loadable at startup from aHsequential file that can be made up using the output of the "$ DIR/FILE".command, to make it easy to maintain the list.IFile security checksums, passwords, etc. are maintained in ISAM databasesIand used by the daemon to check these. File passwords must be pre-enteredBinto (normally process) logical name space (they're scrambled in aEuic-dependent way. On an attempt to open the files, these are checkedFfor; if they are found the access goes through. If not, it is denied.)BA separate utility allows entry of the file passwords. It does notFinternally check the password entered, just sets it as entered so thatHfile access can be tried with it. To some extent this throttles the rateGat which passwords can be tried to the speed of image activation. SinceMother conditions can exist besides requirement of passwords, e.g., a file mayIneed to be opened by some particular image AS WELL AS the process holdingLa password to it, this can make unauthorized access difficult. The passwordsIare scrambled depending on UIC so that the underlying logical name cannotJjust be copied. The scheme currently lacks a notion of when a password was*entered, though that might be added later.> NOTE: The following descriptions of interface are an INTERNAL< interface and are not seen by the end user, being hidden by< a menu driven front end. They are here so you can tell what features are available.CControl flags in ucb$l_ctlflgs work by bits. These are set with theD/function:nnnnnnn switch to the JTDMN command. The following are themeanings of the bitmasks./ 1 - Allows access filtering. Used to recognize) files to move, check security on, etc.& 2 - Examine modify2 8 - CBT setup on create (only)A 16 - Look at create function (does CBT setting3 and possible space control)/ 32 - CBT on create or modifyC 64 - Send del dmn msg only if filenum stored, ifB set. Otherwise send always. Used to ensure= if knl tagging exists that the delete t@ SAFETY013.A  ![EVERHART.JTDEMO]JTCOMMAND.DOC;17CE.ZIP;1NH>esting can be done. 128 - If set allow delete2 daemon to control deletion. Two functions here.2 One is that if the file is in our "kernel list"0 we flag specifically for the delete daemon to5 check whether delete access is permitted. (In fact7 all deletes are security checked if this bit is set, so we get good coverage.): 65792 - If either bit set (65536 + 256), look at deaccess (close)./ 512 - Space control ok if set5 1024 - If set, check for FIDs with rvn bit 8 set and) high filenum bit 8 set and lets access5 filtering be done. To be used for "full" softlinks2 when a directory-generator is built. (Don't use yet!)K 2048 - Prevent opens if device is privately owned on filesJ save by volume owner. Blocks access EVEN if privs.@ 4096 - Allow size control only if aldef bit setB 16384 - Set aldef bit always to use default alloc.B 32768 - Pretend we see an ACE on ALL files on disk: 65792 - If either bit set (65536 + 256), look at deaccess (close).4 262144 - If set, examine only files with filenum in- kernel list (instead of looking for ACL on/ all). Designed to save time where only a few/ files (few :== under 512) are known to be of security interest.; 524288 - Allows deletes to open softlinked files to delete3 the softlinked files. Normally this is inhibited9 since the softlinks and not the linked-to files should3 be deleted to avoid dangling links. The override, condition occurs only if this bit is set.; 1048576 - Veto r/w logical from user mode channels if the disk is mounted non-foreignEACF/DPS Daemons exist for:Bopen - gets control on io$_access if my ACE is there or if filenum1 is in knl list in ucb. Handles security, swaps, softlinks, etc.?extend - gets control on extend & create if disk has too littleB free space left and request is < 1/8 of disk size.Gdelete - gets control on delete operations. Used to check file accesses9 where delete is attempted to ensure extended checks are met.GCurrently all of these live in the same image. They access an ISAM dataIfile per disk volume indexed by FID which contains the "security profile" of each file. Operation:KCurrently there is a commandline driven interface to control file security.Its function is to:; * Maintain security access ACE entries on files on a disk) * Display contents of security database0 * Update or clear fields of security database EThe control interface is handled via the JTAUTHMAINT utility (for the most part).#Commands to jtauthmaint are of formfilename\commandsDwhere filename is any file name one likes. The disk part of the nameDis used to select which database name to be used (the databases liveDin area GCY$CM:) and the filename is used to find the file ID, whichis the record index.GThe commands are just strung together, being designed to be concise andEeasy to parse, though not necessarily easy to read by hand. Remember,Dthe intent is to generate databases assuming a DCL layer at least isCbetween us and the user. (This layer will use some fullscreen toolsHalso, so privs will be entered by name, not by mask, as will identifiersand the like.)DThe commands are composed of short substrings. In EACF the followingsuch substrings are relevant:3%SYMS Generates a set of DCL symbols with various. fields of the current file (for use by user+ interface). Gets basically all data into DCL symbols. Symbols are: JTA_ZFID - File id, hex3 JTA_ITIM - Permitted usage by time (24 chars)% JTA_MXPV - Max privs (hex mask)3 JTA_CKSM - Checksum (hex mask) (0 means none)9 JTA_PSWD - File password hash (0 means no password) JTA_USRS - OK users JTA_FUSR - Forbidden users JTA_TTYS - OK TTYs JTA_FTTY - Forbidden TTYs JTA_IMGS - OK Images! JTA_FIMG - Forbidden images4 JTA_BKPU - Backup user list ("superuser list")# JTA_FNAM - Filename as stored. JTA_CSLK - conditional softlink dvc:file) JTA_NSLK - normal softlink dvc:file- JTA_INSP - inspectme flag - space or I+2 JTA_BPRI - baseprio set - space or base prio/ JTA_RPRV - Replacement privs vector (hex)L JTA_IDNT - Identifier hex value. Note only one is reported even thoughA the system will allow more. Space if none.D JTA_SURW - superuser (backup) read-only access. 'R/O' or 'R/W'9 JTA_ZCMD - command to execute if access is rejected2%DELETE Delete database file entry for this file7%PURGE Goes over the entire data base and checks that/ the files in it exist. Any records referring- to files that cannot be found are deleted.5%REGEN goes over entire data base and re-enters any. ACEs that have been deleted but that should' be there (which are available in the. database for that purpose now). Reports to, sys$output when such an action is needed. Also reports to OPCOM.4%SHOW display the whole record in a mostly dumped0 form (or displays a message that none exists)2%LIST Write a list of filename/file-ID pairs out' of all files in the database. Symbol2 JTA_LISTFILE returns with file spec of the file/ written. Files appear as filename (n1,n2,n3)% where "(n1,n2,n3)" is the file ID.6%SUMM Writes a list of filename/file-ID pairs out of3 all files in the database, with file sizes also.2 Symbol JTA_SUMMLEN returns with total blocks in. the files selected, and symbol JTA_SUMMFILE1 returns with the filespec of the file written.. Format of the lines is as in %LIST but with file size afterwards.%GBLEDIT `oldstring`newstring`- Replaces all occurrences of "oldstring" in1 the database with "newstring" (or just deletes/ "oldstring" everywhere if newstring is null.0 Any delimiter character in neither string may4 be used (provided it's printable...). This should, be a handy way to remove users and so on.!%GBLEDITCON `oldstring`newstring`2 works like GBLEDIT but requires confirmation at/ command line for each change. Replies Y or N. confirm or deny the current replacement,and3 reply A says accept all further edits, and reply X means do no further edits.9%REPORT Creates a report file showing basically all the0 info about the database file for this device./ The filename is stored in symbol JTA_RPTFILE (the DCL symbol).DDatabase files are kept in jtd$db:op.GDB, where "diskname"Ais concocted from the device name. For example, disk ARISIA$VDB1:@has a database file named OPARISIAVDB001.GDB. A report file will=be named the same with "_REPO" appended, and the name in thisCexample would be OPARISIAVDB001.GDB_REPO. A %LIST output file wouldCbe named the same with "_LIST" appended. In the example it would beFOPARISIAVDB001.GDB_LIST. These files should be purged (and by defaultHthe %LIST files are regenerated and purged every time Safety starts up.)FCommand files "live" in logical GCY$CM which by default is in the sameElocation as the databases, directory JTD$DB, pointed to by a logical.D The following keys refer to mods that are made as a file is opened= and apply only to OPEN processing, not both open and delete.7K Sets a security key string which should match. the /KEY:string switch used in running the 6 daemon. Such a match is needed to validate security7 relevant ACE actions like priv or identifier modify.:#Snn Base prio to nn where nn ranges 0-31. Sets the base2 priority of the process to nn while the file is open.9P Priv mask. Resets all process priv masks to the4 mask here (16 hex digits) while the file is open.3 Note this replaces masks, does not OR into them," so it can raise OR lower privs.GI Identifier Assigns the identifier (expressed as 16 hex digits)7 to the process while the file is open and revokes it4 unconditionally when the file is closed. Multiple% identifier strings may be present.E The following keys refer to access permissions which apply to both OPEN and DELETE access.4I+ inspectme tag. Sets a flag to tell EACF to send5 a message to the access daemon to check this open.5 (Settings of database fields as noted below should3 be accompanied by this string to ensure they get looked at.)MV Max priv mask - Sets a mask of the MOST privs a process7 may hold when opening the file. If the process holds7 any more privs, the open fails. Thus one can disable7 file opens via BYPASS or READALL even if the file is3 normally world readable; a process holding these4 privs would be denied access. If it disables them it can then do the access.:T - time-value access permission4 This sets access permission every hour. Each hour2 is represented by one letter. Values known are:4 Y - Access permitted provided all other security  checks pass.1 N - No access (except to users on backup list)7 U - No CHECKS, let everything by EACF checks on this0 file during this hour. (DEC security remains in effect.). P - Check privileges against max privs only5 R - Readonly access only, by anyone; r/w opens are* rejected. Other checks may deny access totally as well.- X - Allow r/o opens, test others normally.1 D - Disallow access by ANYone (even superuser)?Z - Command to execute if file access is denied. Note3 it is executed even if a conditional softlink is5 to be used. If "\" is in the string the command is1 chopped there. Otherwise it gets the username,3 terminal name, hex FID 1, hex fid 2, and hex PID5 appended with spaces separating them (so a command8 procedure can use them as P1 to P5 unless the command* itself contains more parameters first).2&& Sets a mode where all opens are inspected and2 a command file gcy$sys:filtall is run with args/ fileid (hex), username, uic (hex), pid(hex),6 accmode (hex), device (less $ initially if allocls)0 are passed. If exit status is bad, access is 6 rejected. Filter in open only. The last arg is 0 if5 a file opened by the paranoidmode file, 1 if it is/ the paranoidmode file itself (&% set below).6&% Sets the && command file to run for the file that7 is to be checked by filtall also, with last arg as 1 in that case.;X Command to execute. If cmd proc sends back "NG"3 this rejects access. If it sends back "OK" as it1 normally will, access is allowed. This test is1 done only if access is permitted by other EACF$ tests. A kept subprocess is used.EThe list maintenance commands below are all similar in form. They add3to a list, subtract from a list, or replace a list;B Note that lists may use * as a wildcard character (str$match_wild3is used to test matches) and & means skip the test.)commands of form L+ add to a list0 " " " L- subtract from a list* " " " L* replace a listFLists are generally permitted to have wildcard characters (*) as usual with VMS.CU+ Add a name to the "permitted users" listHU- remove a name from the "permitted users" listMU* replace the "permitted users list" with this one@V+ Add a name to the "forbidden users" listBV- Take a name off the "forbidden users" listDV* Replace "forb. user" list with this oneDK+ Add a terminal name (or substring) to the* "permitted terminals" list. Note that+ terminal name and access port name are both checked.DK- Remove a name from "permitted terms" list;K* Replace "permitted terms" list.A(note letter+, letter-, letter* pattern above...continue for all)LL[+-*] Edits the "forbidden terminal names" list.0N[+-*] - operate on permitted image list =O[+-*] - operate on forbidden image listDQ[+-*] - modify password on file. Sets the password.& User must enter the password with, password-entry tool before the file can& be opened if password is set. Y-  gets rid of password.GZ+- - turn checksum on/off (on -> compute checksum). If the checksum is& used, a cryptographic checksum is, generated for a file. At any open, this- is recomputed and the file will not open* unless it matches. This prevents file) tampering from going undetected, but) beware: computing the checksum takes+ noticeable amounts of time. It is best used on short script files.NW+- Skip ace alteration if +, allow if -. Default allow. Lets the database be' edited without touching the file's ACL.IX+ eXpunge variable field stuff initially. If set, this zeroes all lists before starting.@R+ or R- Set backup user access to read/only (R+) vs read/write' (R-). When R+ is specified, backup$ account opens must be read-only& opens or they will be disallowed.E The conditional softlink specification applies only to OPEN access= and not delete, since it is a system action that takes place: if access is to be denied. Delete processing does not use< this and will simply be denied delete access if file access= is denied; the conditionally softlinked file is NOT touched.?C Set conditional softlink to dev:filename which! is taken if access is deniedCNote that where normal or r/o softlinks exist, most file operationsBaffect the softlinked file, NOT the original one. If the operationBinternally opens the file, the softlinked file is accessed insteadof the original one.=H Set normal softlink to dev:filename (uncond)4# Set normal softlink, read-only typeDThere is a component to create file passwords. These get left aroundEscrambled into logicals in a UIC dependent way (to make it harder forBpeople to grab them from each other). File passwords are generatedby a command that looks likeEACF_PASSWORD filespec passwordEThe remaining components are the intercept driver, which needs a unit?to be connected for each disk which EACF is to protect, and theAdaemon which does the bulk of the work (and incidentally does theBconnection to EACF's intercept driver from a disk). One daemon mayEservice one or more disks; the degree of parallelism in accessing the+disks depends entirely on customer desires.(The passwords are entered with a commandjtdolog filespec passwordorjtdolog fileid password?where fileid is of form (n1,n2,n3) in parentheses. Care must beCtaken NOT to open the file first, since this access can be rejectedAuntil the file password is entered. When using the second form ofFpassword entry, the default disk does NOT have to be that of the file.4The daemon would normally be started with a command:4$ jtdmn/fcnmsk:65833/key:my-security-key JTAn: DUAm:;where JTAn: is a unit of the JTdriver intercept driver, and=DUAm: represents some disk on the system. Additional switches?/FILENUM:file and /SHARE:jtau: can be used to load file numbers?from a file @ SAFETY013.A  ![EVERHART.JTDEMO]JTCOMMAND.DOC;17CE.ZIP;1NHwN6'somewhere on the system. These file numbers will be>treated as though they had ACE tags on them whether they exist?or not (as protection against malicious tampering with the fileACEs that EACF uses). B A bitmap is used to store file numbers that are tagged, so that@it is possible to kernel-tag ALL files in use in this way. HenceBEACF protection is able to be provided for all files tagged. Also,@by setting the function mask bit 262144 is set and the 64 bit isEset, then file ACLs are looked for only for files known to be tagged.DIf most of your files are not tagged, this means you incur the small@amount of kernel processing in reading tags only for those filesEthat are tagged (and a few aliases, since a hashing technique is usedEto keep the bitmap size modest). This can be particularly significantAon deletions, since in that case all deletions must be fed to thedaemon unless tagged.1The /SHARE:jtau: switch says that this JTAn: unit@will share the same daemon with already set up unit JTAu:, whosedaemon must already exist..When the daemon is to be disabled, the command$ jtdmn/deas JTAn: DUAm:Bmust be given to complete deassignment. Until this is done, the JT7unit is busy and cannot be used for another assignment.Files used during operation:'gcy$cm:filsav.com - save file somewhere1 ($@gcy$cm:filsav dev:file.typ hexfid1 hexfid2)< dev:file.typ is filename passed to jtauthmaint for file./ hexfid is hexfile id value, z8.8, 1x, z8.8).gcy$cm:sd.GDB - sequential delete record. (xformed_filename,devicename,orig_filespec) (comma-delimited) (xformed filename isF .sav )9gcy$cm:softlk.com - softlink file, truncate original one.G ($@gcy$cm:softlk orig_filename new_loc_filename filnum filseq filrvn( where last 3 are the 3 parts of FID)0gcy$cm:filrst.com - restore file saved somewhereD ($@gcy$cm:filrst dbname zfid1 zfid2 size_in_blocks orig_filename); (orig_filename is filename passed in file marking w/dvc)( (dbname is $$.gdb or' $$.gdb)@gcy$cm:fildel.com - delete a file (copy nominally, command file)' ($@gcy$cm:fildel dbname zfid1 zfid2)' (dbnam is $$.gdb or& $$.gdb)1jtd$db:op.gdb - ISAM disk database for eacfF@jtd$cm:makspc dbnam neededspace - Get "neededspace" new free blks on 8 disk. dbnam is delimited db name $alloclass$dvcunit: or: node$dvcunit: (might be in filename form) and neededspace: is in decimal. Should figure out desired files to move to? nearline storage and move enough to make desired space. Called5 when space is lacking for create, extend, or inswap. Logicals:9GCY$DELINC - File strings that may be saved from deletionEGCY$DELEXC - File strings that should be deleted anyway (e.g. *.OBJ*)@GCY$DELSAV - master control for delete protection, if "Y" do it.DGCY$DELMNT - if equal to "OK" then delete EACF database entries when9 a delete is to be let thru EACF (even if DEC protection3 will disallow the delete). Otherwise leave alone.LGCY$PARAND - If defined as "OK" allows "paranoid mode" checking and checking, if flagged of files' open by user cmd fileBGCY$SPWN1 - If it translates to Y (or 1st char is Y) then deletion6 by spawn will use lib$spawn every time and therefore4 not leave any extra processes around. Otherwise it9 will create a "kept" subprocess which will get commands5 via mailbox to issue deletes etc. from. (This will 7 greatly speed up such processing, but does require an extra process per daemon.)JGCY$SPWN2 - If it translates to a Y (or 1st char is a Y) then file inswap : will be done via a spawned subprocess using lib$spawn to4 get a new one for every inswap. Otherwise a "kept"2 subprocess will be started and it will be passed= commands via mailbox after the first inswap. This is faster9 than spawning every time, but may be wasteful if inswap< is comparatively rare. Note that if the translation of the7 logical is at any time other than Y, the kept process; will be started. The process will remain until the daemon exits.AJTM$SWPOP Action that is used basically for file out/in swap. Can: be "SWAP" for in/out swap (default), "LINK" (normal soft= link), or "RLNK" ("readonly softlink"). Set up by JT_SETUP.=DELSAV: directory, or dev:[directory] where deleted files or= shelved files are to be saved. Needs to be only a directoryA if using rename mode delete protection, or a device:[directory] otherwise.6JTDEL$MODE Numeric value of mode of deletion handling. mode bits Meanings: Bit Meaning 0-1 0 = use .COM file 1 = use rename mode' 2 = use copy (callable cvt) mode9 3 = copy and add softlink. No database file genn'd/ 2 If set don't delete ANYthing immediately/ 3 If set don't include only included names5 4 If set, delete file if no room for rename/copyL If clear, leave file alone if copy area is full (return error though)E 5 If set, no timetag on deleted files (use if using softlink...)A 7 If set, delete files in shelf area as well, if they exist. mode=mymode()G 9 If set overrides bit 4 so del_shelved can be called, still fakes' success in user's deleteN 10 If set, inhibits delete of database entry when deleting via del_shelvedG 12 If set, then when one deletes FID (5,20,0) (which doesn't exist)F then run @gcy$sys:dps_process_deletes so that deletionsH can be handled right then. (The sequential record is leftJ normally closed.) The delete of fid (5,20,0) is faked then.>JTD$DB Location where Safety databases are kept. Ideally this7 should be a fast device. (This can be separate, a job4 name, for each server if there are more than one.)AGCY$CM Location where .COM files used by Safety are kept. Should0 also be fast. Defaults to same area as JTD$DB.?GCY$SYS Location where Safety executables are kept (except for JTdriver).IGCY$SCRATCH Scratch storage used where Safety is told to compress swapped= files for shelving or unshelving; used to hold files during: these operations, so that write-once storage can be used$ or tape can be used to hold files.@SAFn_stuffm Logicals used to record information about what disks9 and JT devices are in use, modes, information about the5 Safety servers, and so on. Set up at Safety startup and used by various reports.>Note JTexempt.exe will, when run, exempt its process from EACF=controls on a particular disk. It takes a JT device unit nameBas its argument. However, the facility of "exempt" image pathnamesE(as supported in jt_setup.com & jtdmn.exe) seems more promising. This?allows any images (up to 32 of them) to be declared exempt fromFEACF mods. One would use this for things like defraggers and the like.ENote that ACCESS to these exempt images can still be controlled; they;are exempt from access controls only once they get started.AThe JXSET command sets one as exempt (and logs this) or un-exemptAfrom Safety. Should be permitted only to selected trusted people.=JXSET/ALL disables Safety checks. JXSET/Normal restores them.JTDMN command:Normal command format:)JTdmn/qualifiers JTAn: disk-to-intercept: Qualifiers:#ASSIGN - use to begin an intercept8DEASSIGN - use to end an intercept (must be used before another intercept can begin):KEY:string - Specifies string as the security key for this+ volume. Used as part of the checks that) ACEs modifying privs, identifiers, or base priority are ok.9MODE:nnn - Sets mode mask. Mask bits control how shelving or deletion is controlled.* Mode meanings (used for delete etc...) Bit Meaning 0-1 0 = use .COM file 1 = use rename mode* 2 = use copy (callable cvt) mode0 3 = copy and add softlink. No database file genn'd2 2 If set don't delete ANYthing immediately2 3 If set don't include only included names8 4 If set, delete file if no room for rename/copy9 If clear, leave file alone if copy area is full (return error though)5 5 If set, no timetag on deleted files (use if using softlink...)3 6 If set causes delbak.com to be run before actual deletions is done0 7 If set, allows system to spawn command, @GCY$SYS:DEL_SHELVED shelvedfile delfile. to allow it to delete the shelved file (or whatever).3 9 If set, overrides bit 4 being set so that. bit 6 type delete action can be taken. (If- bit 4 is set, system fakes delete success2 for user. If bits 7 and 9 are set, the command, file can delete both files if it likes.)4 10 If set, prevents database entry from being1 deleted on operations controlled by bits 7&9.3 13 If set, replaces setting GCY$DELMNT to OK> Note that for bits 7, 9, and 10 to be meaningful, the system? logical GCY$DELMNT must be set to "OK" or bit 13 must be set.:FCNMSK:nnnn - Sets function enable mask. See above for bit meanings.5CBT:m - Sets to do contiguous-best-try file extends+ every mth extend. Default is equivalent to a /CBT:1 switch.:FRACTION:n - Sets to extend files by fraction 1/n of their" size. Default is equivalent to* /FRACTION:4 which causes extends to be) 1/4 of the file size (+1) by default.8MODIFY - Causes JTDMN to just change parameters of a JT! unit, not to act as a daemon.@FILENUM:file - Causes JTDMN to read in file and use it as a list* of file numbers of marked files. These) files then are treated as though they, had tagging ACEs on them even if no such ACEs are found.<EXEMPT:file - Causes JTDMN to read in file as a list of path- names of images exempt from EACF security* or DPS protection. Up to 32 such paths& may be in the file. Wildcards are ) permitted within them, matched to the# image path with str$match_wild.=SHARE:jtam: - Causes JTDMN to enable the JTAn: on its command) line but use the same EACF/DPS server+ as currently used by JTAm:, so that one server can serve many disks.=MINIMUM:nn - On extend, set extends to at least nn blocks (if free space on disk allows)>MAXIMUM:mm - On extend, do not force extends to be larger than- mm blocks (unless the user request is for' more; we NEVER reduce a user extend request.)9ALDEFONLY - On extend, only increase extend amount if the, ALDEF bit is set (indicating the program( is telling VMS to use volume default extend).1LICENSE - Print system ID string on the console.0INSTALL:key - Install license key in the system.GNote that the /LICENSE and /INSTALL:keystring qualifiers don't actuallyGuse any other arguments, so dummy arguments may be used in these cases.Auxiliary CommandsCIt is possible to exempt a process from EACF/DPS/HSM functions withEthe JTEXEMPT command, or to exempt the process from special functions+on delete access with the JTEXEDEL command.CThe JTEXEMPT and JTEXEDEL commands can be enabled with the commands$ SET COMMAND GCY$SYS:JTEXEMPT or$ SET COMMAND GCY$SYS:JTEXEDELThese commands take the form$ JTEXEMPT[/NORMAL] jtan:Iwhere to exampt a process from having its access filtered by EACF/DPS/HSMone uses the command$ JTEXEMPT JTAn:Hwhich disables filtering for the disk associated with JTA pseudo unit n.+To undo this exemption one uses the command$ JTEXEMPT/NORMAL JTAn:HNote that no more than 4 processes may be on the exempt list at any timeEfor these programs. JTEXEMPT operates on all functions. JTEXEDEL onlyJprevents deletion protection from working (and removes deletion protectionEthat EACF offers for the process also). A total of 4 processes can beDusing JTEXEDEL exemption in addition to 4 using JTEXEMPT protection.HNote that a loop using F$DEVICE to find all online JTA units can be usedFto "globally" exempt all disks from filtering, or to "globally" removethis exemption.HThese functions are intended to be used sparingly or not at all, but areJprovided for such emergency access as may be needed. The functions requireAthat the process posess CMKRNL privilege and the images should beFguarded so that random intruders cannot easily use them to bypass EACFEor other protections. (Note that EACF can be used for this protection if you wish.)FIt is possible to manually set or remove softlinks also. The SDH_LOGINEcommand file set up by combined setup defines the SOFTLINK verb which(can be used from command line like this:A$ SOFTLINK/TO:DEVICE:[DIR]FILE.TYPE SRCDVC:[SRCDIR]SRCFILE.SRCTYP4 creates a softlink where the (possibly empty) file;SRCDVC:[SRCDIR]SRCFILE.SRCTYP has a link which "points to" ;DEVICE:[DIR]FILE.TYPE. Thus when anything tries to open the4file SRCDVC:[SRCDIR]SRCFILE.SRCTYP, it in fact opensADEVICE:[DIR]FILE.TYPE. This soft link can cross device boundaries?but must be a disk file. Also Safety must control both disks if'the link is to be cleaned up correctly.,The softlink can be removed with the command/$ SOFTLINK/REMOVE SRCDVC:[SRCDIR]SRCFILE.SRCTYPto pull the softlink off.FMinor mods to the JT_SOFTLINK procedure (replacing the "H<" strings byG"#<" would create a command file which would create or delete read-only softlinks.*[EVERHART.JTDEMO]JTDEL.DOC;10+, .-/ 4-%- 0123 KPWO&56`ݑ"I7 ~w89GHJDeletion Protection SystemGlenn c. Everhart June 1994 Motivation:CThe most common need for system intervention and use for backups inCa system is the need to restore accidentally deleted files. UsuallyCthis results in the loss of at least hours of work, and often more.DThere are a number of "undelete" packages in public sources for VMS,>but these will only function if the disk area the deleted fileCcovered has not been reused. Because of the "extent cache" strategy@used by VMS, this space is reused very quickly, so undeletion isDusually impossible. It is also possible to redefine a delete commandDto copy files somewhere first before deletion, but doing this systemBwide requires leaving the files in an area where anyone can get atDthem...not good for confidential information. It also cannot prevent5deletions done by programs, commands like PURGE, etc.DDPS, by being built into the I/O system, gives a secure intercept ofEdeletions by any source, and is able to safe-store files for a periodAof time, so that they can be undeleted when files are needed. In Iaddition, the system has some intelligence and is able to allow immediate@deletion of some files, and disallow deletion of others, at siteFoption. File deletion may be preceded by backup to safe store as well,Fso that protected files can be restored from backup as needed, with no4issues of not-recent-enough backups being available.Overall architecture:ADPS works by having an intercept driver gain control ahead@ SAFETY013.A  [EVERHART.JTDEMO]JTDEL.DOC;10ERFACE.ZIP;1-l> of DECBfile processors by hooking in at the disk driver for each disk and=monitor file based requests. fundamentally it monitors deleteFand performs access checking in a special daemon that acts as a secondBACP, ahead of the DEC one, which can cause the user request either$to be passed, rejected, or modified.> NOTE: The following descriptions of interface are an INTERNAL< interface and are not seen by the end user, being hidden by< a menu driven front end. They are here so you can tell what features are available.,Control flags in ucb$l_ctlflgs work by bits./ 1 - Allows access filtering. Used to recognize) files to move, check security on, etc.5 1024 - If set, check for FIDs with rvn bit 8 set and) high filenum bit 8 set and lets access5 filtering be done. To be used for "full" softlinks' when a directory-generator is built.4 262144 - If set, examine only files with filenum in- kernel list (instead of looking for ACL on/ all). Designed to save time where only a few/ files (few :== under 512) are known to be of security interest.: 65792 - If either bit set (65536 + 256), look at deaccess (close). 128 - If set allow delete2 daemon to control deletion. Two functions here.2 One is that if the file is in our "kernel list"0 we flag specifically for the delete daemon to5 check whether delete access is permitted. (In fact7 all deletes are security checked if this bit is set, so we get good coverage.)C 64 - Send del dmn msg only if filenum stored, ifB set. Otherwise send always. Used to ensure= if knl tagging exists that the delete testing can be done.EACF Daemons exist for:Bopen - gets control on io$_access if my ACE is there or if filenum) is in knl list in ucb. Handles security security, softlinks, etc.Gdelete - gets control on delete operations. Used to check file accesses9 where delete is attempted to ensure extended checks are met.HCurrently both of these live in the same image. They access an ISAM dataIfile per disk volume indexed by FID which contains the "security profile" of each file.$ass/sys vdb1:[junk] jtd$db$! command processes live here:#$! filrst.com file fid1 fid2 filsiz$! makspc.com diskname nblks$ass/sys vdb1:[junk] gcy$cm$ass/sys n gce$delsav/$jta*uthmaint:==$usr$root:[everhart]jtauthmaint$xjta:=="$usr$root:[everhart]jtauthmaint dka700:[y.everhart]junk.junk\ I+KS12U+<*>VPTY+$!jtau dka700:[y.everhart]junk.junk\ I+KS12U+<*>VPTY+N$! ctl mode: 1-open, 1024 = bogus fid chk, 40000x=look at files in driver only&$! 65792=chk close, 128=delete control$set comm sys$system:jtdmn$jtdo:==jtdmn/fcnmsk:66435$dp Operation:KCurrently there is a commandline driven interface to control file security.Its function is to:; * Maintain security access ACE entries on files on a disk) * Display contents of security database0 * Update or clear fields of security database CThe intent is that a second version of this utility will be writtenFwith FPAINT (or some other fullscreen interface) to provide a prettierBfront end. JTauthmaint is for command files to use to set securityDprofiles up in bulk. It is not intended to be used bare by customersBor anyone else once past initial test. It does however work, as itmust...#Commands to jtauthmaint are of formfilename\commandsDwhere filename is any file name one likes. The disk part of the nameDis used to select which database name to be used (the databases liveDin area GCY$CM:) and the filename is used to find the file ID, whichis the record index.GThe commands are just strung together, being designed to be concise andEeasy to parse, though not necessarily easy to read by hand. Remember,Dthe intent is to generate databases assuming a DCL layer at least isCbetween us and the user. (This layer will use some fullscreen toolsHalso, so privs will be entered by name, not by mask, as will identifiersand the like.)DThe commands are composed of short substrings. In EACF the followingsuch substrings are relevant:2SYMS Generates a set of DCL symbols with various. fields of the current file (for use by user+ interface). Gets basically all data into DCL symbols. Symbols are: JTA_ZFID - File id, hex3 JTA_ITIM - Permitted usage by time (24 chars)% JTA_MXPV - Max privs (hex mask)3 JTA_CKSM - Checksum (hex mask) (0 means none)9 JTA_PSWD - File password hash (0 means no password) JTA_USRS - OK users JTA_FUSR - Forbidden users JTA_TTYS - OK TTYs JTA_FTTY - Forbidden TTYs JTA_IMGS - OK Images! JTA_FIMG - Forbidden images4 JTA_BKPU - Backup user list ("superuser list")# JTA_FNAM - Filename as stored. JTA_CSLK - conditional softlink dvc:file- JTA_INSP - inspectme flag - space or I+2 JTA_BPRI - baseprio set - space or base prio/ JTA_RPRV - Replacement privs vector (hex)L JTA_IDNT - Identifier hex value. Note only one is reported even thoughA the system will allow more. Space if none.D JTA_SURW - superuser (backup) read-only access. 'R/O' or 'R/W'1DELETE Delete database file entry for this file6PURGE Goes over the entire data base and checks that/ the files in it exist. Any records referring- to files that cannot be found are deleted.2FIXUP (to be implemented): goes over entire data- base and re-enters any ACEs that have been. deleted but that should be there (which are3 available in the database for that purpose now)./ Reports to sys$output when such an action is needed.3SHOW display the whole record in a mostly dumped0 form (or displays a message that none exists)D The following keys refer to mods that are made as a file is opened= and apply only to OPEN processing, not both open and delete.7K Sets a security key string which should match. the /KEY:string switch used in running the 6 daemon. Such a match is needed to validate security7 relevant ACE actions like priv or identifier modify.9Snn Base prio to nn where nn ranges 0-31. Sets the base2 priority of the process to nn while the file is open.9P Priv mask. Resets all process priv masks to the4 mask here (16 hex digits) while the file is open.3 Note this replaces masks, does not OR into them," so it can raise OR lower privs.GI Identifier Assigns the identifier (expressed as 16 hex digits)7 to the process while the file is open and revokes it4 unconditionally when the file is closed. Multiple% identifier strings may be present.E The following keys refer to access permissions which apply to both OPEN and DELETE access.4I+ inspectme tag. Sets a flag to tell EACF to send5 a message to the access daemon to check this open.5 (Settings of database fields as noted below should3 be accompanied by this string to ensure they get looked at.)MV Max priv mask - Sets a mask of the MOST privs a process7 may hold when opening the file. If the process holds7 any more privs, the open fails. Thus one can disable7 file opens via BYPASS or READALL even if the file is3 normally world readable; a process holding these4 privs would be denied access. If it disables them it can then do the access.:T - time-value access permission4 This sets access permission every hour. Each hour2 is represented by one letter. Values known are:4 Y - Access permitted provided all other security  checks pass.1 N - No access (except to users on backup list)7 U - No CHECKS, let everything by EACF checks on this0 file during this hour. (DEC security remains in effect.). P - Check privileges against max privs only5 R - Readonly access only, by anyone; r/w opens are* rejected. Other checks may deny access totally as well.- X - Allow r/o opens, test others normally.1 D - Disallow access by ANYone (even superuser)EThe list maintenance commands below are all similar in form. They add3to a list, subtract from a list, or replace a list;B Note that lists may use * as a wildcard character (str$match_wild3is used to test matches) and & means skip the test.)commands of form L+ add to a list0 " " " L- subtract from a list* " " " L* replace a listFLists are generally permitted to have wildcard characters (*) as usual with VMS.CU+ Add a name to the "permitted users" listHU- remove a name from the "permitted users" listMU* replace the "permitted users list" with this one@V+ Add a name to the "forbidden users" listBV- Take a name off the "forbidden users" listDV* Replace "forb. user" list with this oneDK+ Add a terminal name (or substring) to the* "permitted terminals" list. Note that+ terminal name and access port name are both checked.DK- Remove a name from "permitted terms" list;K* Replace "permitted terms" list.A(note letter+, letter-, letter* pattern above...continue for all)LL[+-*] Edits the "forbidden terminal names" list.0N[+-*] - operate on permitted image list =O[+-*] - operate on forbidden image listDQ[+-*] - modify password on file. Sets the password.& User must enter the password with, password-entry tool before the file can& be opened if password is set. Y-  gets rid of password.GZ+- - turn checksum on/off (on -> compute checksum). If the checksum is& used, a cryptographic checksum is, generated for a file. At any open, this- is recomputed and the file will not open* unless it matches. This prevents file) tampering from going undetected, but) beware: computing the checksum takes+ noticeable amounts of time. It is best used on short script files.NW+- Skip ace alteration if +, allow if -. Default allow. Lets the database be' edited without touching the file's ACL.IX+ eXpunge variable field stuff initially. If set, this zeroes all lists before starting.@R+ or R- Set backup user access to read/only (R+) vs read/write' (R-). When R+ is specified, backup$ account opens must be read-only& opens or they will be disallowed.E The conditional softlink specification applies only to OPEN access= and not delete, since it is a system action that takes place: if access is to be denied. Delete processing does not use< this and will simply be denied delete access if file access= is denied; the conditionally softlinked file is NOT touched.?C Set conditional softlink to dev:filename which! is taken if access is deniedDThere is a component to create file passwords. These get left aroundEscrambled into logicals in a UIC dependent way (to make it harder forBpeople to grab them from each other). File passwords are generatedby a command that looks likeEACF_PASSWORD filespec passwordEThe remaining components are the intercept driver, which needs a unit?to be connected for each disk which EACF is to protect, and theAdaemon which does the bulk of the work (and incidentally does theBconnection to EACF's intercept driver from a disk). One daemon mayEservice one or more disks; the degree of parallelism in accessing the+disks depends entirely on customer desires.4The daemon would normally be started with a command:4$ jtdmn/fcnmsk:65833/key:my-security-key JTAn: DUAm:;where JTAn: is a unit of the JTdriver intercept driver, and=DUAm: represents some disk on the system. Additional switches?/FILENUM:file and /SHARE:jtau: can be used to load file numbers?from a file somewhere on the system. These file numbers will be>treated as though they had ACE tags on them whether they exist?or not (as protection against malicious tampering with the file<ACEs that EACF uses). Up to 128 such files per volume can be9tagged. The /SHARE:jtau: switch says that this JTAn: unit@will share the same daemon with already set up unit JTAu:, whosedaemon must already exist..When the daemon is to be disabled, the command$ jtdmn/deas JTAn: DUAm:Bmust be given to complete deassignment. Until this is done, the JT7unit is busy and cannot be used for another assignment.STATUS as of 5/26/1994:BEssentially all functions are working and tested, at least singly.>The user interface is currently a rather arcane and unfriendly<one, but a DCL front end which will be normally all the user>sees is ~60-70% complete. This will make things like privilege?masks in hex never visible to a user. The user will instead see;a menu driven utility which will allow him to mark one or a;set of files (the utility will have the ability to handle a9wildcard spec) in which privilege masks will be generated;by selecting privileges on a fullscreen display, user lists=will be edited and visible on screen, and the same with other:attributes. The descriptions above will be unseen by users*(except MAYBE in an "internals" document).=The plan is to make the command interface prettier eventually8and possibly replace the current scheme's front end with?a fullscreen program. At any event within a week or so I expect:to have a very usable and intuitive file marking interface available.CNo kitinstal or complete docs are yet written. That will go fast (I?type quickly) but needs to be done. Also a configuration script<useful on installation needs to be written to select options?at installation time and select what happens at boot time. This!is maybe a week or so tweak time. Files used:'gcy$cm:filsav.com - save file somewhere.gcy$cm:sd.GDB - sequential delete record9gcy$cm:softlk.com - softlink file, truncate original one.0gcy$cm:filrst.com - restore file saved somewhere@gcy$cm:fildel.com - delete a file (copy nominally, command file)1jtd$db:op.gdb - ISAM disk database for eacf Logicals:9GCY$DELINC - File strings that may be saved from deletionEGCY$DELEXC - File strings that should be deleted anyway (e.g. *.OBJ*)@GCY$DELSAV - master control for delete protection, if "Y" do it.AA /MODE:nnnnn switch argument to JTDMN conveys desired policy forhandling deletion: mode meanings: Bit Meaning 0-1 0 = use .COM file 1 = use rename mode' 2 = use copy (callable cvt) mode9 3 = copy and add softlink. No database file genn'd/ 2 If set don't delete ANYthing immediately/ 3 If set don't include only included names5 4 If set, delete file if no room for rename/copyL If clear, leave file alone if copy area is full (return error though)E 5 If set, no timetag on deleted files (use if using softlink...)FNote that copy and softlink uses gcy$cm:softlk.com and "use .COM" fileEuses gcy$cm:fildel.com. Bit 3 controls whether the gcy$delinc logicalHis used. The logicals should contain comma delimited include and excludelists.7A sequential file of deleted files appears in gcy$cm a@ SAFETY013.A  [EVERHART.JTDEMO]JTDEL.DOC;10ERFACE.ZIP;1-Y#sCgcy$cm:sd.gdb or gcy$cm:sd$.gdb Entries are:K .savGThe special deletion protection can be bypassed temporarily by definingHlogical GCY$DELNOW to YES in the process table. This will allow deletionCto be done in spite of the system, for cases where instant deletionEis really wanted. This will be front-ended by some CLD or other whichBwill define the logical in user mode and run the DELETE image mostDlikely. That way all delete switches will work. Note that the daemonBis still notified in this case, but it will not do deletion savingA(though it WILL do security tests). The JTEXEDEL image can exemptBa process from all deletion checking, but if security and deletionAtests are combined the security tests are skipped. If there are 2Bintercept drivers however the deletion tests can be bypassed whileleaving security intact.FIf mode bit 2 (i.e., with bitmask value 4) is set, the delete facilityBwill not delete files, allowing a script to be built which renamesBfiles somewhere, then notifies another process to do the deletions@separately after copying the files should it be desired to allowHdeletion to take place "soon" rather than "right now". Normal processingFwaits till files are disposed of. With the 4 bit (bit number 2) set inFmode, the delete will appear to have succeeded, even though it may nothave been done (yet).*[EVERHART.JTDEMO]JTDELDO.OBJ;59+, ./ 4 - 0123 KPWO 56]h7 wv89GHJ0DELDO0115-Sep-1996 16:14DEC Fortran V6.1-68 DELDOP)$):$$): gcy$cm:SD)$).GDB gcy$cm:SD$$).GDB ),),)@gcy$cm:softlk ) )  DELDOgce$delseq:delrecs.seq:GCY$DELEXCGCY$DELINC*,xP  @TS S  FOR$OPEN@ 4`d  LIB$SYS_TRNLOG@h  LIB$SYS_TRNLOG@l $,L`t|pt   DLQtQ PX[Ь$0Ь 8 D}PQLмV˘ FOR$SECNDSJPQQRѫRRˠ FOR$CLOSEkkR˰FOR$OPENP1k޻0RТ˨ТˬЏ˰Т˴Т˸޻DWЧh˨Чlˬ˨RRQQ,Q˩ | LIB$INDEXPPP,P| |IVLENPXЧ ˨ЧˬЧ˰Ч˴˨UUPP,P˩ |IVLENPRէd` FOR$WRITE_IFX|  FOR$IO_T_DSR| FOR$IO_T_DSߧ FOR$IO_L_R FOR$IO_ENDէd ` FOR$WRITE_IFߧ< FOR$IO_L_RR| FOR$IO_T_DSߧ FOR$IO_L_R FOR$IO_ENDէdh FOR$WRITE_IFX |$  FOR$IO_T_DSR(|,( FOR$IO_T_DSߧ FOR$IO_L_R FOR$IO_ENDէd7h FOR$WRITE_IFߧ< FOR$IO_L_RR0|40 FOR$IO_T_DSߧ FOR$IO_L_R FOR$IO_END8IVLENPXXD|H޼TLLIB$FID_TO_NAME,n ,n pLIB$SYS_TRNLOGʏP,n ˈLIB$SYS_TRNLOGPWˠ LIB$INDEXPWʏW,* ˬIVLENPW LIB$INDEXPRWWRR˨RQQSTR$MATCH_WILDP$1RS,SB V1IVLENPW LIB$INDEXPRWWRW LIB$INDEXPR˨ RQQ$(,STR$MATCH_WILDP$RS,SB 1~18LIB$CVT_FROM_INTERNAL_TIMEHLIB$CVT_FROM_INTERNAL_TIMEV|\X FOR$WRITE_IFݫ FOR$IO_L_V FOR$IO_ENDZ˅d` FOR$WRITE_IFݫ FOR$IO_L_V FOR$IO_END^ˊlh FOR$WRITE_IF?˨ FOR$IO_W_R?˪: FOR$IO_W_R?ˬ FOR$IO_W_R FOR$IO_ENDݏ.SAVXRR^(R|n^SYY^(|nYW,Wn |PQ^pIVLENPYˏVWW1VY^(Y|nYW^(nWZ,Zn |PQ^YW|˨ˀW˄|ˈˌCONV$PASS_FILESP1ˤCONV$PASS_OPTIONSP1ˬ CONV$CONVERTP1V d FOR$WRITE_SFW˸|˼˸ FOR$IO_T_DSX| FOR$IO_T_DS˨ FOR$IO_T_DS FOR$IO_ENDFOR$RABP SYS$FLUSHV1W1Y^(Y|nYZ^(nZW,Wn |PQ^IVLENPZ˨Z|LIB$RENAME_FILEP1V d FOR$WRITE_SFZ0|40 FOR$IO_T_DSX8|<8 FOR$IO_T_DS@˨D@ FOR$IO_T_DS FOR$IO_ENDHFOR$RABPTP SYS$FLUSH1W1VY^(Y|nYZ^(nZW,Wn |PQ^YX˨\Y`|dhCONV$PASS_FILESP1ˀ CONV$CONVERTP1nˀ FOR$WRITE_IFˌ˨ːˌ FOR$IO_T_DSY˔|˘˔ FOR$IO_T_DS?˨ FOR$IO_W_R?˪ FOR$IO_W_R?ˬ FOR$IO_W_R FOR$IO_END˜IVLENP˨ˬ˰JTSPAWNPЫPPdelsav: DELDOCONV$PASS_FILES CONV$CONVERTCONV$PASS_OPTIONSLIB$CVT_FROM_INTERNAL_TIMEFOR$RAB SYS$FLUSHJTSPAWNSTR$MATCH_WILDLIB$SYS_TRNLOG FOR$SECNDS FOR$CLOSEFOR$OPEN LIB$INDEXIVLENLIB$FID_TO_NAMELIB$RENAME_FILE$CODE$PDATA$LOCAL FOR$IO_END FOR$IO_W_R FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$WRITE_SF FOR$WRITE_IF]?PRPdPrPP POtPBPOPBPPPP PPQ5P ;P^PyP ~PPPVPIP"PP PAPPP_PsePsPPPOPUPsPPP7PFPP5) ~!*[EVERHART.JTDEMO]JTDELDO.OBJ_A;18+, .-/ 4-%- 0123KPWO&56`x7xx89GHJ >>DELDO 6-NOV-1996 21:52  Digital Fortran 77 T7.1-61 T$DATA$H$BSS$@$IODATA$i$CODE$$LINK$(J`DELDODFOR$SECNDS_VF DFOR$CLOSE DFOR$HANDLER DFOR$OPENIVLENLIB$FID_TO_NAMELIB$SYS_TRNLOGSTR$MATCH_WILD(LIB$CVT_FROM_INTERNAL_TIMECONV$PASS_FILES CONV$PASS_OPTIONS CONV$CONVERTFOR$RAB SYS$FLUSHLIB$RENAME_FILEJTSPAWN DFOR$WRITE_INT_FMT DFOR$WRITE_INT_FMT_XMIT DFOR$WRITE_SEQ_FMT OTS$MOVEMOTS$FILL OTS$INDEXOTS$MOVEt t= 6= 6 ` `=H@6H$HW:76$W$HW:76 gcy$cm:SDH$HW.GDB76 gcy$cm:SD$W$HW.GDB76W 76W76\76H,H,H76@gcy$cm:softlk H H V7 =#4G^[~^~ ޴(08>@^H~PX`޵hpcGGG "{GG@ZkW"@B_&GR"b"8GG8ݠG @Hb"@Zk!"(B"G4G0BTGb"@]84GH_&P="XG`R"h}8"Gp4G8b@Zk"Gd%hE4G#0B 55!UG4@5?"ղ3J4GgJ@Zk8BG@Zk`B4G?"GB"@Zk0@0@@G&0"XP"F00?"PG 0`35@GB@Zk8BG@Zk&B"b88"<=""TG@Zk %0BB8?'J!9#G&?"4G F3GJ4@gJ@Zk8BG@ZkB@=@"b""D]TG@Zk`G0""PB1"XbB"GH=@}X=?&"1"@}"8ݢPݶh]`@Zk@B Hb"@h""@]"tG@Zk`%0"PB"1"8"XbB"$"G H=?&@}P"`]1"Xݴ@}"@Zk@B Hb@"h""@]"tG@Zk`%0_""PB?&Xb1"@}"P"G H@]"X=B"%!8Ph]`ݴ@Zk@BHb8="h""8]"tG@Zk`0PB"_"8% ?&Xb1"8}""G%!@8]"H=B"X]Pݴ@Zk@BHb8="h""8]"tG@Zk0¤?%B)! 8=8"b""<ݰTG@Zk*vH$0b EA%pBk!8]S!<ݰ G@}8"D]G@]"G G"xbG@Zk8Bl ?"GG@Zk8B!?$G?"G@Zk 0"B ! C8=<8"@}1"D}@]"tGb@Zk8B0"G?"G@Zk4G&0" "Q@Bb88"<ݲ 1"@}@]"DtG@Zk`BGTG?"GB"@Zk0@BDGB"4G4G@Zk8B?"G@Zk0" !8"Bb8}""<}TG@Zk`BG4G?"GB"@Zk 0@=C0CE8G%%!J0!vH@01AB0vJb@8ݱ<]@="@8"D}TG@Zk@ B3 AGGm@?"@Zk8BGTG@ZkBb8}8"<}""@Zk`BG4G?"GB"@Zk 0@=C0CE8G4GGGcG]]} ݤ(08=@]H}PX`ݥhp#kFABb8}<8"""TG@Zk`B G4G?"GB"@Zk0@=A0A5AEE `B4G?"GB"@Zk0@5@"=A?0/1A/vIB%%@!8vHb@8"8@="<]TG@D@Zk @ B3AGGA?"@Zk8BG@Zk0bBb"+"GtG@ZkBb"+"GtG@Zk¥%PB !4G! !@8"HGB"8}"GGXb@ZkPB !G!@ "8"HGB"8}"G !Xb@ZkPBGk!@8"H}"GB"8}"GXb@Zk@B !Hb"8p""8]"tG@Zk@B!Hb8"@""8]"tG@Zk35 A#`BG6CGF C # CBGGG@ZkBB"G@ZkB"GGG@Zk8BG%@ZkB!8b8"<`""TG@ZkGBxB"GGpDUBYGx"@ZkBGG4G@ZkBGGG33Bx]"@Zk8BG@@Zk05v`HB@ܢb8"@="6vJG@G8ݲG<]D@D@ZkPBXb"4G@ZkpBxbGGTG@Zk0`Bhb$"@"8}GPݴGH=b"`]GX8"@ZkPBXb"4G@ZkBbG4G@Zk4GDtDG_5BGZBx"xB"G@ZkBGG4G@ZkBGGG33Bx]"@Zk8BGTGD@ZkBb8<8"""@Zk02vH@BbG8",vI@=" @G8G<]G@]GD#G@ZkG0`Bhb<$"@"8GPݴb"H=8"`]GX=G@ZkPBXb"4G@ZkBbG4G@ZktGkôuBiBx"xB"G@ZkBGG4G@ZkBGGG33Bx]"@Zk8BGAG@Zk0 vIB@b8"'vH@="@G8G<]G@ D@ZkLpBxbGGTG@ZkE0PBXbH"< @"8ݴGP]B"H=8}"`GX@Zk@BHb8}"p""8]"tG@Zk@B Hb"8ݴp""8]"tG@Zk@Bk! CHb"8}@""8]"tG@Zk%B!88"b""<TG@Zk vHB@8 Cb8"< ""TG@Zk =tG CG4 GxDFOR$SECNDS_VF4hb#`DFOR$SECNDS_VF4t@xDFOR$SECNDS_VF4'G DFOR$CLOSE4(b#` DFOR$CLOSE4'@ DFOR$CLOSE4G@ DFOR$OPEN48b#` DFOR$OPEN4<@@ DFOR$OPEN4hG OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4G OTS$INDEX4@ OTS$INDEX4G$ OTS$MOVEM4 @$ OTS$MOVEM4$G0OTS$FILL4,@0OTS$FILL,4GXIVLEN,<b#`IVLEN,T@XIVLEN4lG OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL,GIVLEN,b#`IVLEN,@IVLEN<G8DFOR$WRITE_INT_FMT<b#`DFOR$WRITE_INT_FMT<4@8DFOR$WRITE_INT_FMT<8G\DFOR$WRITE_INT_FMT_XMIT<@b#`DFOR$WRITE_INT_FMT_XMIT<X@\DFOR$WRITE_INT_FMT_XMIT<hGDFOR$WRITE_INT_FMT<xb#`DFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT<GDFOR$WRITE_INT_FMT_XMIT<b#`DFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<G8DFOR$WRITE_INT_FMT<b#`DFOR$WRITE_INT_FMT<4@8DFOR$WRITE_INT_FMT<8GXDFOR$WRITE_INT_FMT_XMIT<<b#`DFOR$WRITE_INT_FMT_XMIT<T@XDFOR$WRITE_INT_FMT_XMIT<dGDFOR$WRITE_INT_FMT<xb#`DFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT<@ SAFETY013.A  ![EVERHART.JTDEMO]JTDELDO.OBJ_A;18CE.ZIP;1-*GDFOR$WRITE_INT_FMT_XMIT<b#`DFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT,GIVLEN,b#`IVLEN,@IVLEN4+G\LIB$FID_TO_NAME4,Pb#`LIB$FID_TO_NAME4+X@\LIB$FID_TO_NAME4\GtOTS$FILL4p@tOTS$FILL4tGOTS$FILL4@OTS$FILL4!GLIB$SYS_TRNLOG4"b#`LIB$SYS_TRNLOG4!@LIB$SYS_TRNLOG4GOTS$FILL4@OTS$FILL4!G,LIB$SYS_TRNLOG4"b#`LIB$SYS_TRNLOG4!(@,LIB$SYS_TRNLOG4,GH OTS$INDEX4D@H OTS$INDEX4LGlOTS$MOVE4h@lOTS$MOVE 4lG|OTS$FILL4x@|OTS$FILL,GIVLEN,b#`IVLEN,@IVLEN4G OTS$INDEX4@ OTS$INDEX4G$STR$MATCH_WILD4b#`STR$MATCH_WILD4 @$STR$MATCH_WILD4,GH OTS$MOVEM4D@H OTS$MOVEM4HGXOTS$FILL4T@XOTS$FILL,XGtIVLEN,\b#`IVLEN,p@tIVLEN4tG OTS$INDEX4@ OTS$INDEX,G4IVLEN,b#`IVLEN,0@4IVLEN44GP OTS$INDEX4L@P OTS$INDEX4lG OTS$INDEX4@ OTS$INDEX4GSTR$MATCH_WILD4b#`STR$MATCH_WILD4@STR$MATCH_WILD4G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILLD G8 LIB$CVT_FROM_INTERNAL_TIMED b#`LIB$CVT_FROM_INTERNAL_TIMED4 @8 LIB$CVT_FROM_INTERNAL_TIMED8 GT LIB$CVT_FROM_INTERNAL_TIMED< b#`LIB$CVT_FROM_INTERNAL_TIMEDP @T LIB$CVT_FROM_INTERNAL_TIME<\ G DFOR$WRITE_INT_FMT< b#`DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT< b#`DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT< b#`DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT< G< DFOR$WRITE_INT_FMT_XMIT< b#`DFOR$WRITE_INT_FMT_XMIT<8 @< DFOR$WRITE_INT_FMT_XMIT<< G` DFOR$WRITE_INT_FMT_XMIT<D b#`DFOR$WRITE_INT_FMT_XMIT<\ @` DFOR$WRITE_INT_FMT_XMIT4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL, G IVLEN, b#`IVLEN, @ IVLEN4 G8 OTS$MOVE44 @8 OTS$MOVE48 GL OTS$MOVEM4H @L OTS$MOVEM4L Gh OTS$MOVEM4d @h OTS$MOVEM4h Gx OTS$FILL4t @x OTS$FILL4# G CONV$PASS_FILES4$ b#`CONV$PASS_FILES4# @ CONV$PASS_FILESl l<) G CONV$PASS_OPTIONS<* b#`CONV$PASS_OPTIONS<) @ CONV$PASS_OPTIONS4  G CONV$CONVERT4 b#` CONV$CONVERT4  @ CONV$CONVERT<  GL DFOR$WRITE_SEQ_FMT<  b#`DFOR$WRITE_SEQ_FMT< H @L DFOR$WRITE_SEQ_FMT, L G` FOR$RAB, P b#`FOR$RAB, \ @` FOR$RAB4%` Gt SYS$FLUSH4&d b#` SYS$FLUSH4%p @t SYS$FLUSH4 G OTS$MOVE4 @ OTS$MOVE4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL, G IVLEN, b#`IVLEN, @ IVLEN4 G LIB$RENAME_FILE4$ b#`LIB$RENAME_FILE4| @ LIB$RENAME_FILE<  G DFOR$WRITE_SEQ_FMT<  b#`DFOR$WRITE_SEQ_FMT<  @ DFOR$WRITE_SEQ_FMT,  G FOR$RAB,  b#`FOR$RAB,  @ FOR$RAB4% G SYS$FLUSH4& b#` SYS$FLUSH4% @ SYS$FLUSH4 G OTS$MOVE4@ OTS$MOVE4 G4 OTS$MOVEM40@4 OTS$MOVEM44GP OTS$MOVEM4L@P OTS$MOVEM4PGdOTS$FILL4`@dOTS$FILL4#lGCONV$PASS_FILES4$xb#`CONV$PASS_FILES4#@CONV$PASS_FILES4 G CONV$CONVERT4b#` CONV$CONVERT4 @ CONV$CONVERT<GDFOR$WRITE_INT_FMT<b#`DFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT<G8DFOR$WRITE_INT_FMT_XMIT<b#`DFOR$WRITE_INT_FMT_XMIT<4@8DFOR$WRITE_INT_FMT_XMIT<8G\DFOR$WRITE_INT_FMT_XMIT<@b#`DFOR$WRITE_INT_FMT_XMIT<X@\DFOR$WRITE_INT_FMT_XMIT<\GDFOR$WRITE_INT_FMT_XMIT<hb#`DFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT,GIVLEN,b#`IVLEN,@IVLEN,GJTSPAWN,b#`JTSPAWN,@JTSPAWN =0#GCY$DELEXC(=.SAV0=@DFOR$SECNDS_VFJTSPAWN=p LIB$RENAME_FILE= DFOR$OPEN= FOR$RAB DFOR$WRITE_SEQ_FMT CONV$CONVERT(LIB$CVT_FROM_INTERNAL_TIME=*STR$MATCH_WILD= 888,(8OTS$MOVE;@IVLEN;8 OTS$MOVEM=0;=\ 7 DFOR$HANDLER=0;8OTS$FILL(DFOR$WRITE_INT_FMT_XMIT DFOR$WRITE_INT_FMT8 OTS$INDEX= ==(delsav:8 8GCY$DELINC!LIB$SYS_TRNLOG=888  #CONV$PASS_FILES% SYS$FLUSH=8 P=0"8      :x=0'gce$delseq:delrecs.seq' DFOR$CLOSE )CONV$PASS_OPTIONS= +LIB$FID_TO_NAME=8= #*[EVERHART.JTDEMO]JTDELDO.OBJ_AXP6;7+, .6/ 46.- 0123KPWO/56qZz7RNZz89GHJ>>DELDO 12-SEP-1996 21:16DEC Fortran V6.2-508 T$DATA$$BSS$@$IODATA$i$CODE$ $LINK$(JpDELDODFOR$SECNDS_VF DFOR$CLOSE DFOR$HANDLER DFOR$OPENIVLENLIB$FID_TO_NAMELIB$SYS_TRNLOGSTR$MATCH_WILD(LIB$CVT_FROM_INTERNAL_TIMECONV$PASS_FILES CONV$PASS_OPTIONS CONV$CONVERTFOR$RAB SYS$FLUSHLIB$RENAME_FILEJTSPAWN DFOR$WRITE_INT_FMT DFOR$WRITE_INT_FMT_XMIT DFOR$WRITE_SEQ_FMT DFOR$WRITE_SEQ_FMT_XMIT OTS$MOVEMOTS$FILL OTS$INDEXOTS$MOVEt t= 6= 6 ` `=H@6H$HW:76$W$HW:76 gcy$cm:SDH$HW.GDB76 gcy$cm:SD$W$HW.GDB76W 76W76\76H,H,H76@gcy$cm:softlk H H V7 =0#~^^~޴cGGGGG}G"4G@BHb@Zk00"!W_00"10BR 2B 0bstb""G_&R"GG`Bhb@Zk"!# 0"b"B"G4GP]H#X4G`]TGhTGpxTGݶ"G_&R"H"G B(b@ZkE4G0%0B2e0tG0¦G00"P9#0B:0b{#0`?$0P0%0BT2e0Xtd0¦h00"99'K'K4G0"0BR"GTBG?"8B@ZkGB@Zk?"4G0"(B"pB@Zk0@00"9 C0"!!@!G 051B0"0BR"G?"8B@ZkGB@Zk""&"Hݲ0 LH"TG`Bhb@Zk0"0" C0bS0â0ײ08KK4G0"0BR"GTBG?"8B@ZkGB@Zk""$ H0¦"LݲH"TG`Bhb@Zk0" `-B"?"0bs0"3aJ0"PH=`X}"?&1"H}"@GPBXb@Zk""0 0"! HP=H"H]"tGBb@Zk"" H"H]"tGBb@Zk`)B"? 8"0"1"P=H=X"?&1"H}"@$"GPBXb@Zk""0 0"! HP=H"H]"tGBb@Zk"" H"H]"tGBb@Zk`.B"? 00"1"0J0bs"P}H=`=X"?&1"H}"@P"GPBXb@Zk""0 0"! HP=H"H]"tGBb@Zk"" H"H]"tGBb@Zk`)B"? 8"0"1"P=H=X"?&1"H}"@"GPBXb@Zk""0 0"! HP=H"H]"tGBb@Zk"" H"H]"tGBb@Zkp""$ H0"LH"TG`Bhb@Zk0"0?&0vJBH0bs"L}&"P0"TH"GP]"0bs"G0"GBb@Zk0"0T"B"4GB@Zk?"GB@Zk0T"B"4GB@Zk?"GB@Zk& "Hݲ#L$ P0T"TH"0"$1"P]"tGBb@Zk0" 0 0F0" 0B R @4G0$t0T"B"4GB@Zk?"GB@Zk& "Hݲ#L$ P0T"TH"0"(1"P]"tGBb@Zk0" ?"TG0T"B"pB@Zk0@0,0",9 0" 0 0F0" 0B R @4G0(t0T"B"4GB@Zk?"GB@Zk""&"Hݲ0T LH"TG`Bhb@Zk0"0?"4G0T"B"pB@Zk0@040"490"0!= @!G 000B0"40B4RB@0bs0441B&3v`JuBH}0"LC'4vJBP0T#TH"P="TGBb@Zk0"808%?&1"F0B4"6uB0T"0BTR"GTBG?"8B@ZkGB@Zk4GGGcG]]}ݤ#kFl""'#H0T LH"TG`Bhb@Zk0"0?"4G0T"B"pB@Zk0@040"490"0!= @!G 000B0"40B0R8@F @?"4G0T"B"pB@Zk0@8D:04#40"90"4!!1 @&9v K0CH0BR"L]C&!v H4@P=0¦T"TݲH"P="TGBb@Zk0"808%?&1"F0B4"6uB0T"0BTR"GTBG?"8B@ZkGB@Zk4GØ"0"<1"GtGPBXb@Zk0""0"@1"@ SAFETY013.A  #[EVERHART.JTDEMO]JTDELDO.OBJ_AXP6;7.ZIP;16.> GtGPBXb@Zk0"@B"0 "4GPH=0<"X"?&1"H}"@"GPBXb@Zk@B"0 GPH=0b@s"X}"?&1"H}"@"GPBXb@ZkB"0 G0"PH=X"?&1"H}"@"GPBXb@Zk""0 H"H]"tGBb@Zk""0 H"H]"tGBb@Zk0 1@G@<CGG"G0BR"G8B@ZkB"G8B@ZkGG]"B@Zk0 "GGG8B@ZkGB@Zk""'#H0 LH"TG`Bhb@Zk0"DpF0"H0BHRX@F@G4GdbFt`F0DԢ"B"GB@Zk0B R"G4G8B@Zk0 "GG33B]"8B@ZkGB@Zk0DB0D0"90D?$9v K!CH=0"L?& vH@P0b s"T}H"P="GGGGBb@Zk0"0 ="4GBb@Zk0"0GGTGBb@Zk0"0$$F> b"0BDR0 "2AJPH]"G_&R"H"@"GBb@Zk""00"! HP=H"H]"tGBb@Zkp""00"! HP=H"H]"tGBb@Zk"4G`Bhb@Zk0"04GBb@Zk0"4GFNtGLG0"H18 F 0BDҢ"B"GB@Zk0B R"G4G8B@Zk0 "GG33B]"8B@ZkGB@Zk0DB0D""?'9#H=0" ! L=H"TG`Bhb@Zk0"D00"D1_&0vJBH0"L&1v J6BP=0 #T# (H"P="GGGGG0B8b@Zk0"0G$$F> b"0BDR0 "2AJPH]"G_&R"H"@"GBb@Zk""00"! HP=H"H]"tGBb@Zkp""00"! HP=H"H]"tGBb@Zk"4G`Bhb@Zk0"04GBb@Zk0"tG0HxF4G$"Ft F0BDҢ"B"GB@Zk0B R"G4G8B@Zk0 "GG33B]"8B@ZkGB@Zk0DB0D0"90D?$9v K!CH=0"L?& vH@P0b s"T}H"P="GGGGBb@Zk0"0oGGTGBb@Zk0"0dtGB"?"0bs0"3aJ0T "PH=`X}"?&1"H}"@"GPBXb@Zk""0D0" ! HP=H"H]"tGBb@Zk""0 H"H]"tGBb@Zk""0 H"H]"tGBb@Zk""0 H"H]"tGBb@Zk0""$ H0T "LH"TG`Bhb@Zk0"L0LP""_&0vJBH0T "LH"TGBb@Zk0" GG4)XGdDFOR$SECNDS_VF4*\b#pDFOR$SECNDS_VF4)`@dDFOR$SECNDS_VF4+G DFOR$CLOSE4,b#p DFOR$CLOSE4+@ DFOR$CLOSE4TG` DFOR$OPEN4Xb#p DFOR$OPEN4\@` DFOR$OPEN44G< OTS$MOVEM48@< OTS$MOVEM4@GHOTS$FILL4D@HOTS$FILL4\Gd OTS$INDEX4`@d OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL,GIVLEN,b#pIVLEN,@IVLEN4dGl OTS$MOVEM4h@l OTS$MOVEM4pGxOTS$FILL4t@xOTS$FILL,GIVLEN,b#pIVLEN,@IVLEN<GDFOR$WRITE_INT_FMT<b#pDFOR$WRITE_INT_FMT< @DFOR$WRITE_INT_FMT<<GHDFOR$WRITE_INT_FMT_XMIT<@b#pDFOR$WRITE_INT_FMT_XMIT<D@HDFOR$WRITE_INT_FMT_XMIT<`GlDFOR$WRITE_INT_FMT_XMIT<db#pDFOR$WRITE_INT_FMT_XMIT<h@lDFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT<b#pDFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT<GDFOR$WRITE_INT_FMT_XMIT<b#pDFOR$WRITE_INT_FMT_XMIT <@DFOR$WRITE_INT_FMT_XMIT< GDFOR$WRITE_INT_FMT_XMIT<b#pDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<pG|DFOR$WRITE_INT_FMT<tb#pDFOR$WRITE_INT_FMT<x@|DFOR$WRITE_INT_FMT<GDFOR$WRITE_INT_FMT_XMIT<b#pDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT_XMIT<b#pDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<G(DFOR$WRITE_INT_FMT< b#pDFOR$WRITE_INT_FMT<$@(DFOR$WRITE_INT_FMT<TG`DFOR$WRITE_INT_FMT_XMIT<Xb#pDFOR$WRITE_INT_FMT_XMIT<\@`DFOR$WRITE_INT_FMT_XMIT<xGDFOR$WRITE_INT_FMT_XMIT<|b#pDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT,GIVLEN,b#pIVLEN,@IVLEN4G(LIB$FID_TO_NAME4 b#pLIB$FID_TO_NAME4$@(LIB$FID_TO_NAME4@GHOTS$MOVE4D@HOTS$MOVE4PGXOTS$FILL4T@XOTS$FILL4hGpOTS$MOVE4l@pOTS$MOVE4xGOTS$FILL4|@OTS$FILL4!GLIB$SYS_TRNLOG4"b#pLIB$SYS_TRNLOG4!@LIB$SYS_TRNLOG4GOTS$MOVE4@OTS$MOVE4 G(OTS$FILL4$@(OTS$FILL4!hGtLIB$SYS_TRNLOG4"lb#pLIB$SYS_TRNLOG4!p@tLIB$SYS_TRNLOG4G OTS$INDEX4@ OTS$INDEX4GOTS$MOVE4@OTS$MOVE4 G OTS$FILL4 @ OTS$FILL,0 G< IVLEN,4 b#pIVLEN,8 @< IVLEN4X G` OTS$INDEX4\ @` OTS$INDEX4 G STR$MATCH_WILD4  b#pSTR$MATCH_WILD4 @ STR$MATCH_WILD4` Gh OTS$MOVEM4d @h OTS$MOVEM4l Gt OTS$FILL4p @t OTS$FILL, G IVLEN, b#pIVLEN, @ IVLEN4 G OTS$INDEX4 @ OTS$INDEX4p Gx OTS$INDEX4t @x OTS$INDEX4 G STR$MATCH_WILD4  b#pSTR$MATCH_WILD4 @ STR$MATCH_WILD4L GT OTS$MOVEM4P @T OTS$MOVEM 4X G` OTS$FILL4\ @` OTS$FILLD  G LIB$CVT_FROM_INTERNAL_TIMED  b#pLIB$CVT_FROM_INTERNAL_TIMED  @ LIB$CVT_FROM_INTERNAL_TIMED  G LIB$CVT_FROM_INTERNAL_TIMED  b#pLIB$CVT_FROM_INTERNAL_TIMED  @ LIB$CVT_FROM_INTERNAL_TIME< G DFOR$WRITE_INT_FMT< b#pDFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT<H GT DFOR$WRITE_INT_FMT<L b#pDFOR$WRITE_INT_FMT<P @T DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT< b#pDFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT_XMIT< b#pDFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT< G DFOR$WRITE_INT_FMT_XMIT< b#pDFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT4$G, OTS$MOVEM4(@, OTS$MOVEM44G< OTS$MOVEM48@< OTS$MOVEM4HGPOTS$MOVE4L@POTS$MOVE4dGl OTS$MOVEM4h@l OTS$MOVEM4pGxOTS$FILL4t@xOTS$FILL,GIVLEN,b#pIVLEN,@IVLEN4GOTS$MOVE4@OTS$MOVE4G OTS$MOVEM4@ OTS$MOVEM40G8 OTS$MOVEM44@8 OTS$MOVEM4<GDOTS$FILL4@@DOTS$FILL4%GCONV$PASS_FILES4&b#pCONV$PASS_FILES4%@CONV$PASS_FILES<-GCONV$PASS_OPTIONS<.b#pCONV$PASS_OPTIONS<-@CONV$PASS_OPTIONS4 G CONV$CONVERT4b#p CONV$CONVERT4 @ CONV$CONVERT<#|GDFOR$WRITE_SEQ_FMT<$b#pDFOR$WRITE_SEQ_FMT<#@DFOR$WRITE_SEQ_FMT<GDFOR$WRITE_SEQ_FMT_XMIT<b#pDFOR$WRITE_SEQ_FMT_XMIT<@DFOR$WRITE_SEQ_FMT_XMIT<GDFOR$WRITE_SEQ_FMT_XMIT<b#pDFOR$WRITE_SEQ_FMT_XMIT<@DFOR$WRITE_SEQ_FMT_XMIT, G FOR$RAB, b#pFOR$RAB, @ FOR$RAB4' G, SYS$FLUSH4($b#p SYS$FLUSH4'(@, SYS$FLUSH4tG|OTS$MOVE4x@|OTS$MOVE4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM` ` 4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL,GIVLEN,b#pIVLEN,@IVLEN4GLIB$RENAME_FILE4b#pLIB$RENAME_FILE4@LIB$RENAME_FILE<#GDFOR$WRITE_SEQ_FMT<$b#pDFOR$WRITE_SEQ_FMT<#@DFOR$WRITE_SEQ_FMT<4G@DFOR$WRITE_SEQ_FMT_XMIT<8b#pDFOR$WRITE_SEQ_FMT_XMIT<<@@DFOR$WRITE_SEQ_FMT_XMIT<lGxDFOR$WRITE_SEQ_FMT_XMIT<pb#pDFOR$WRITE_SEQ_FMT_XMIT<t@xDFOR$WRITE_SEQ_FMT_XMIT, GFOR$RAB, b#pFOR$RAB, @FOR$RAB4'G SYS$FLUSH4(b#p SYS$FLUSH4'@ SYS$FLUSH4GOTS$MOVE4@OTS$MOVE4G OTS$MOVEM4 @ OTS$MOVEM4(G0 OTS$MOVEM4,@0 OTS$MOVEM44G<OTS$FILL48@<OTS$FILL4%GCONV$PASS_FILES4&b#pCONV$PASS_FILES4%@CONV$PASS_FILES4 G CONV$CONVERT4b#p CONV$CONVERT4 @ CONV$CONVERT<PG\DFOR$WRITE_INT_FMT<Tb#pDFOR$WRITE_INT_FMT<X@\DFOR$WRITE_INT_FMT<GDFOR$WRITE_INT_FMT_XMIT<b#pDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT_XMIT<b#pDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT_XMIT<b#pDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<G DFOR$WRITE_INT_FMT_XMIT<b#pDFOR$WRITE_INT_FMT_XMIT<@ SAFETY013.A  #[EVERHART.JTDEMO]JTDELDO.OBJ_AXP6;76O )@ DFOR$WRITE_INT_FMT_XMIT,0G<IVLEN,4b#pIVLEN,8@<IVLEN,tGJTSPAWN,xb#pJTSPAWN,|@JTSPAWN  =8=  LIB$FID_TO_NAME=.SAV8= GCY$DELEXCH=P=0$8      JTSPAWN DFOR$OPEN LIB$RENAME_FILE=8 ( LIB$CVT_FROM_INTERNAL_TIME FOR$RAB=8 CONV$CONVERT= GCY$DELINC=8 =, =880= 8= @;8OTS$MOVE=8X8OTS$FILL(DFOR$WRITE_INT_FMT_XMIT=0;=| 7 DFOR$HANDLER=4;8 OTS$MOVEM; DFOR$WRITE_INT_FMTIVLEN8 OTS$INDEX(DFOR$WRITE_SEQ_FMT_XMIT==delsav:STR$MATCH_WILD=*0!LIB$SYS_TRNLOG #DFOR$WRITE_SEQ_FMT %CONV$PASS_FILES' SYS$FLUSH= = gce$delseq:delrecs.seq=:=)DFOR$SECNDS_VF=+ DFOR$CLOSE= -CONV$PASS_OPTIONS=( A A=1)(DELDODEC Fortran V6.2-508k = 4p4= DELDO4=ldبȴȬجج0    ?_4 @ s s s sȼ $ $= D4: :=  4=  =  #*[EVERHART.JTDEMO]JTDELDO.OBJ_VAX5;8+, ./ 4 - 0123 KPWO 5697@:89GHJ0DELDO0117-Nov-1996 13:4017-Nov-1996 13:40VAX FORTRAN V5.9-173 DELDOPgce$delseq:delrecs.seq:GCY$DELEXCGCY$DELINC*,)$):$$): gcy$cm:SD)$).GDB gcy$cm:SD$$).GDB ),),)@gcy$cm:softlk ) )  DELDOP  @lk k0 0 FOR$OPEN@ GL x| II LIB$SYS_TRNLOG@ TT LIB$SYS_TRNLOG@ Ta(<Dad_x   $( \d$,QtQ P p[Ь$0Ь 8 D}PQL˘ FOR$SECNDSJPRѫRRˠ FOR$CLOSEkkR˰FOR$OPENP1k޻0RТːТ˔ЏˠТˤТ˨޻DVЦhːЦl˔ːPPPP,Pˑ | LIB$INDEXPPP,P| |IVLENPWЦ ːЦ˔Ц˘Ц˜ːPPPP,Pˑ |IVLENPRզdc` FOR$WRITE_IFW|  FOR$IO_T_DSR| FOR$IO_T_DSߦ FOR$IO_L_R FOR$IO_ENDզdo` FOR$WRITE_IFߦ< FOR$IO_L_RR| FOR$IO_T_DSߦ FOR$IO_L_R FOR$IO_ENDզdh FOR$WRITE_IFW |$  FOR$IO_T_DSR(|,( FOR$IO_T_DSߦ FOR$IO_L_R FOR$IO_ENDզdh FOR$WRITE_IFߦ< FOR$IO_L_RR0|40 FOR$IO_T_DSߦ FOR$IO_L_R FOR$IO_END8IVLENPVVD|H޼TLLIB$FID_TO_NAME,n ,n pLIB$SYS_TRNLOGʏP,n ˈLIB$SYS_TRNLOGPRˠ LIB$INDEXPRʏR,* ˬIVLENPR LIB$INDEXPWRRWWːWRRSTR$MATCH_WILDP$1WP,PG Ӽ1IVLENPR LIB$INDEXPWRRWR LIB$INDEXPWː WPP$(,STR$MATCH_WILDP$WP,PG 1~18LIB$CVT_FROM_INTERNAL_TIMEHLIB$CVT_FROM_INTERNAL_TIME|\X FOR$WRITE_IFݫ FOR$IO_L_V FOR$IO_END˅d` FOR$WRITE_IFݫ FOR$IO_L_V FOR$IO_ENDˊlh FOR$WRITE_IF?ː FOR$IO_W_R?˒ FOR$IO_W_R?˔ FOR$IO_W_R FOR$IO_ENDݏ.SAVVPP^(P|n^SXXW^(|nW,Wn |PQ^pIVLENPWˏXX1ӼW^(W|nWY^(nY,Yn |PQ^W|ːˀW˄|ˈˌCONV$PASS_FILESP1ˤCONV$PASS_OPTIONSP1ˬ CONV$CONVERTP1Ӽ  FOR$WRITE_SFW˸|˼˸ FOR$IO_T_DSV| FOR$IO_T_DSː FOR$IO_T_DS FOR$IO_ENDFOR$RABP SYS$FLUSHӼ1X1W^(W|nWY^(nY,Yn |PQ^IVLENPWːW|LIB$RENAME_FILEP1Ӽ  FOR$WRITE_SFW0|40 FOR$IO_T_DSV8|<8 FOR$IO_T_DS@ːD@ FOR$IO_T_DS FOR$IO_ENDHFOR$RABPTP SYS$FLUSH1X1ӼW^(W|nWX^(nX,Xn |PQ^WXXː\X`|dhCONV$PASS_FILESP1ˀ CONV$CONVERTP1ˀ FOR$WRITE_IFˌːːˌ FOR$IO_T_DSX˔|˘˔ FOR$IO_T_DS?ː FOR$IO_W_R?˒ FOR$IO_W_R?˔ FOR$IO_W_R FOR$IO_END˜IVLENP˨ˬ˰JTSPAWNPЫPPdelsav: DELDOCONV$PASS_FILES CONV$CONVERTCONV$PASS_OPTIONSLIB$CVT_FROM_INTERNAL_TIMEFOR$RAB SYS$FLUSHJTSPAWNSTR$MATCH_WILDLIB$SYS_TRNLOG FOR$SECNDS FOR$CLOSEFOR$OPEN LIB$INDEXIVLENLIB$FID_TO_NAMELIB$RENAME_FILE$CODE$PDATA,$LOCAL FOR$IO_END FOR$IO_W_R FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$WRITE_SF FOR$WRITE_IF]8PKP]P}PPPOmPBPOPBPPPP PPQ1P 7P[PyP ~PPPVPIP"PP PAPPP_PwfPsPPPNPUPsP PP8PGPP=1x$*[EVERHART.JTDEMO]JTDELDO.OBJ_VAX62;2+, ./ 4 - 0123KPWO 56皇7{R|89GHJ0DELDO0116-Sep-1996 10:39Digital Fortran V6.4-165 DELDOP)$):$$): gcy$cm:SD)$).GDB gcy$cm:SD$$).GDB ),),)@gcy$cm:softlk ) )  DELDOgce$delseq:delrecs.seq:GCY$DELEXCGCY$DELINC*,xP  @TS S  FOR$OPEN@ 4`d  LIB$SYS_TRNLOG@h  LIB$SYS_TRNLOG@l $,L`t|pt   DLQtQ PX[Ь$0Ь 8 D}PQLмV˘ FOR$SECNDSJPQQRѫRRˠ FOR$CLOSEkkR˰FOR$OPENP1k޻0QС˨СˬЏ˰С˴С˸޻DWЧh˨Чlˬ˨QQRR,R˩ | LIB$INDEXPPP,P| |IVLENPXЧ ˨ЧˬЧ˰Ч˴˨QQPP,P˩ |IVLENPRէd` FOR$WRITE_IFX|  FOR$IO_T_DSR| FOR$IO_T_DSߧ FOR$IO_L_R FOR$IO_ENDէd ` FOR$WRITE_IFߧ< FOR$IO_L_RR| FOR$IO_T_DSߧ FOR$IO_L_R FOR$IO_ENDէdh FOR$WRITE_IFX |$  FOR$IO_T_DSR(|,( FOR$IO_T_DSߧ FOR$IO_L_R FOR$IO_ENDէd7h FOR$WRITE_IFߧ< FOR$IO_L_RR0|40 FOR$IO_T_DSߧ FOR$IO_L_R FOR$IO_END8IVLENPXXD|H޼TLLIB$FID_TO_NAME,n ,n pLIB$SYS_TRNLOGʏP,n ˈLIB$SYS_TRNLOGPWˠ LIB$INDEXPWʏW,* ˬIVLENPW LIB$INDEXPRWWRR˨RSSSTR$MATCH_WILDP$1RT,TB V1IVLENPW LIB$INDEXPRWWRW LIB$INDEXPR˨ RSS$(,STR$MATCH_WILDP$RT,TB 1~18LIB$CVT_FROM_INTERNAL_TIMEHLIB$CVT_FROM_INTERNAL_TIMEV|\X FOR$WRITE_IFݫ FOR$IO_L_V FOR$IO_ENDZ˅d` FOR$WRITE_IFݫ FOR$IO_L_V FOR$IO_END^ˊlh FOR$WRITE_IF?˨ FOR$IO_W_R?˪: FOR$IO_W_R?ˬ FOR$IO_W_R FOR$IO_ENDݏ.SAVXPP^(P|n^SYY^(|nYW,Wn |PQ^pIVLENPYˏVWW1VY^(Y|nYW^(nWZ,Zn |PQ^YW|˨ˀW˄|ˈˌCONV$PASS_FILESP1ˤCONV$PASS_OPTIONSP1ˬ CONV$CONVERTP1V d FOR$WRITE_SFW˸|˼˸ FOR$IO_T_DSX| FOR$IO_T_DS˨ FOR$IO_T_DS FOR$IO_ENDFOR$RABP SYS$FLUSHV1W1Y^(Y|nYZ^(nZW,Wn |PQ^IVLENPZ˨Z|LIB$RENAME_FILEP1V d FOR$WRITE_SFZ0|40 FOR$IO_T_DSX8|<8 FOR$IO_T_DS@˨D@ FOR$IO_T_DS FOR$IO_ENDHFOR$RABPTP SYS$FLUSH1W1VY^(Y|nYZ^(nZW,Wn |PQ^YX˨\Y`|dhCONV$PASS_FILESP1ˀ CONV$CONVERTP1nˀ FOR$WRITE_IFˌ˨ːˌ FOR$IO_T_DSY˔|˘˔ FOR$IO_T_DS?˨ FOR$IO_W_R?˪ FOR$IO_W_R?ˬ FOR$IO_W_R FOR$IO_END˜IVLENP˨ˬ˰JTSPAWNPЫPPdelsav: DELDOCONV$PASS_FILES CONV$CONVERTCONV$PASS_OPTIONSLIB$CVT_FROM_INTERNAL_TIMEFOR$RAB SYS$FLUSHJTSPAWNSTR$MATCH_WILDLIB$SYS_TRNLOG FOR$SECNDS FOR$CLOSEFOR$OPEN LIB$INDEXIVLENLIB$FID_TO_NAMELIB$RENAME_FILE$CODE$PDATA$LOCAL FOR$IO_END FOR$IO_W_R FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$WRITE_SF FOR$WRITE_IF]?PRPdPrPP POtPBPOPBPPPP PPQ5P ;P^PyP ~PPPVPIP"PP PAPPP_PsePsPPPOPUPsPPP7PFPP5) !*[EVERHART.JTDEMO]JTDELMAINT.DOC;6+, . / 4L - 0123 KPWO56(7@yA89GHJ#Deletion Protection System commandsBThe deletion system is controlled by a mode word which is expected;to be in the system logical JTDEL$MODE as a decimal string.7It is also passed to JTDMN in the /MODE:nnnnnnn switch. mode meanings: Bit Meaning 0-1 0 = use .COM file 1 = use rename mode' 2 = use copy (callable cvt) mode9 3 = copy and add softlink. No database file genn'd/ 2 If set don't delete ANYthing immediately/ 3 If set don't include only inclu@ SAFETY013.A  ![EVERHART.JTDEMO]JTDELMAINT.DOC;6L ded names5 4 If set, delete file if no room for rename/copyL If clear, leave file alone if copy area is full (return error though)E 5 If set, no timetag on deleted files (use if using softlink...)C 6 If set, call backup cmd file before cleanup; pass it nnnnnnnDWhere bit 6 is found, the procedure GCY$CM:DELBAK is called with itsFargument being the number of seconds of file age above which to delete>the file. If necessary, the jtdelmaint program may be declared?exempt from controls, or the JTEXEMPT utility can be used to dothis temporarily.AThe purpose of the DELBAK script is to allow backups to be run of1about-to-be-deleted files before they are erased.0The JTDEMAINT program has two possible commands:1. JTDELMAINT file/%UNDEL; undeletes files that have been deleted and which match theBstring "file" (which may contain string wildcards). The undeletion@places the file back exactly where it came from. Since files are@moved by copy with privilege, their ownership remains intact and>a nonprivileged user running JTDELMAINT cannot open the files.@If rename mode is used, the file ownership is never altered, and.files go back exactly to where they came from.8 Since the "file" string can have wildcards, one can sayJTDELMAINT *.BAR]ZZ*.MAR*Hand recover all files matching this pathname. Normal use will be coveredEby a command file which will insert the current default path ahead of=the filename however, to avoid extraneous attempts at copies.2. JTDELMAINT dev/%PURGE:nnnnnCwhere JTDELMAINT will read the deletion record and delete all filesColder than nnnnn seconds from the present time. It is expected that@this will be run periodically. Along with this, the periodic job?should clean out the delete area of dangling directory names if>using rename mode, if any appear, and delete old copies of the@sequential deletion record, which is closed daily, once they areno longer needed.#*[EVERHART.JTDEMO]JTDELMAINT.EXE_A;3+, ./ 4- 0123 KPWO56i0%7`X&1%89GHJ.D h(~0@h4Þ~ JTDELMAINT A11-14$ $ $ $  $J$( 4$  CONVSHR_0018 DEC$FORRTL_0014 LIBRTL_0014& LIBOTS_001@]|ESYS$PUBLIC_VECTORS_00100 /%PURGP gce$delseq:delrecs.seq;*8      8 : 0 P,` 8`delsav:JTDEL$MODEp DelMaint cmd> @$@gcy$cm:filundel 88%UNDEL8 6M76H76$@gcy$cm:delbak H76M76@W W\\\7#G_&~ R"^tG^~޴>^~޵cGG<0"00H"B" $8 @]8 D@"H8="bH]"L`~Zk0"<]"8"@}" B$H H@ P]bG@B"GLRZk0$ @_&B` D R"H]0B""L=@"bH="R"GGHcZk0GBG0?"0' |DZkGBzBZk .JBG8G 8 G% ೃk!0%@!%Hݱ"L!P`!0B0@"T#XBH"P="`b R"GG"G[Zk4GG_01 @AGq.9q @AqJdB`5Q @A0@/GGKC:.0@G:J$B ! @A0@.GJB0@"G0JH_!@ 4GP]TGB 4GX="`Gh=Gp8b"x@"bGvZkh")<}0"GxBtGbp`D1"mZk0"p"xBGbtG1"mZk8B4G?"GB"HZk00@ #"  0"GB5BG`)!G 1@GTBG?"kCZkGBAZkBGGG?"bCZkBGAZk4G"_'1B@0QB,@GH@q.0BGqJGdB`4qB@0B:,G:H$@ 7B@0B9.G9J$B 0BV"_G8BG?"GXB"HZk0@0#4G? _01 @0A3Q @P.3A0 CPJ0 CDB@.0 C0 C9"JB6q @6AV/VKDC@! @!A.JB ?G8BG?"GB"HZk0@4G? 01 @0AGq.qJdB`5Q @5A0 CV/GVKDC@;q @;A0 C@.GG@JDB @! @!A0 C.GJB0 C"GG8B4GGB"UHZk0@gB?#9 CGGGTBG?"BZkGBBAZk4G"71B7AG.:qB:AJB1QB1A0 @.GJB;/0 @G;KG$C 6B6A0 @u.GuJdB`0 @"G2hD@b$ 'J!c K0B"BGbPB"`J!H]@@}"X=GPGyZk4G? _01 @PAGq.5Q @9q @qJYAdB`UA0@/GGKC:.0@G:J$B ! @AA0@.GJB0@"GC0vJ0'BB@D]#"b@"GGGGGG'xZk0"B "H=G@"P"bB"@}"GiPZk0"`)!_B"H="@GbGpb"@"GsZk 4G _!1@!A2Q@!.2A!J$B . 0@AJB5q@5A 0@A.JB '@'A 0@AX/XKDC@ 0@Aj#8B4G?"GHB"GZk0@8BG?#18C4G8AHB"|GZk00@BH= @@ 0"P=,"b"GxB"@}"GPZk"0h""B@]"btG$ @=RZk"0h""B@]"btG( @=uRZk"0h""B@]"btG, @=kRZk"0""B@]"btG0 @=aRZk0  %@ !@2 H3!HC!"HCrRBSsB2@aBB$XE4GB"B @q,1@U8BGG%GZk0@I4G CB<CGG<CGG*GAG*1@AGGGB"GAZkGBGAZkGBGGP@ZkAAB<BGG<CGG'AGGGGGyAZkGBGuAZkGBGG8@Zk<CBGGGGGGgAZkGBZkC vH$@G@D#HG C,vI$A?G XE8B'1@4GGGB"FZk G0@GA-<CGBG<C GGGGGGB"G9AZkGBG5AZkGBGGZk<ABGGGGGG'AZkGBZkC9v K&7CG@Dݲ#GC'vH_%@@D=#XB@"GG`bGGG4GMZkG0_!@`! _B"HG@]Gbpb"@"GGNrZky4G?!_/1 AAG!.0`@0`@!J0`@$B 3Q AAG.0`@"JGB7q AA) AX/AGXKDC@;,G;H$@ G0GhBGpb$Cc F?%B@GD CHL@"H="TG\Zk%?$! D")BPA8B"TGpZkBGG?"@ZkGB?"G33B]"@ZkBGZkCF0"B@ݲD#B9#>@"bGGGGGGbvZkGXE8B4G?"GHB"EZk0@8BG!1A4GAHB"EZk0@!1CBGB<CGG<CG@G9@ G/A91 CGGGB"G[@ZkGBGW@ZkGBGGZk/CB<@GG<CGGA GAGGGGB@ZkBGG>@ZkBGGGZk<7@BGGGGGG0@ZkBG~ZkCFBB@GD<CGGGGGG@ZkBG~ZkCBFBHݲ GLb@"H="GGGGIZkBGb4GWKZkGBbGTGLZkG8E8B4G?"GHB"tEZk0@w8B G#1 C4GAHB"jEZk0@m@B G/ @91@/1AA<CGG<CGG AG8CGGGGGZkBGGZkBGGG~Zk A<BBGG<CGGAGAGGGGZkGBGZkGBGGx~Zk<6@BGGGGGGZkGB ~ZkCBFBG@ݲ<CDݱGGGGGGZkGB~Zk C(BE0bi@H}GL#@"H="GGG G(GjZkG{GB_&b"GR"xb"GGtZk}G04GBb "ZZkB_&b"GR"xb"GGtZkB"b4GkFZkGc4G]]}ݤ=]}ݥ#k14G!q B !B2 21 B&`% GB0@B.0@0@0@J31@BBB%.G0@J4Q@BBB.G @J5q@BBB.G2@BJ @B B0@4,0@B @21@B4H$@ GkGkTXp(PX`p`pP @ @0P @CONVSHR@ DEC$FORRTL@LIBRTL@LIBOTS@SYS$PUBLIC_VECTORS2JTDELMAINT$MAINDEC Fortran V6.2-508hJTDELMAINT$MAIN 1 1 2 / 5 9 9 9  ? B A B B B B         G G V [ \         a _   <  e4\          U            P         Ȁ gHF              X f f f f          i h n p$ |   Ad   ,   ( UT         <IVLEN                  pLPdx"*[EVERHART.JTDEMO]JTDELMAINT.OBJ;23+, ./ 4 - 0123 KPWO 56`@Ө7v89GHJ:JTDELMAINT$MAIN0115-Sep-1996 16:10DEC Fortran V6.1-68JTDELMAINT$MAIN1P,)$@gcy$cm:delbak ) JTDELMAINT$MAINQJTDEL$MODEDelMaint cmd>gce$delseq:delrecs.seq;*/%UNDEL,DELSAV%PURG:4 Pdtttttt @l @ LIB$SYS_TRNLOG@ 4  KL  K LIB$GET_FOREIGN@Y Y LIB$FIND_FILE@d    d ,   0 4 rL 0 L <t< P < <\ 8|    {\  {    {\ , {@ H }\ } LIB$SYS_TRNLOG@D \ 8      <  < <( 0 < <T 8d  \ 8{\  { @ SAFETY013.A  "[EVERHART.JTDEMO]JTDELMAINT.OBJ;23       L T  h    Q P[ ^Ы ЫԭԫˀLIB$SYS_TRNLOGիːp˔ː FOR$READ_IFk FOR$IO_L_Rk FOR$IO_ENDˠLIB$GET_FOREIGN,ˀ ˀѫ1ˀ\\ 1ˀq1ˀQ1ԫԫ˼ LIB$FIND_FILEIVLENPFOR$OPENP1ˏRRЭLIB$CVT_FROM_INTERNAL_TIMEЫЭ ,LIB$CVT_FROM_INTERNAL_TIMEЫ D LIB$INDEXPZZ1ZS,SJˀ ˀZ,Zˀ ˀPIVLENPd LIB$INDEXPpIVLEN1 LIB$INDEXP1(IVLENP4ˀ8D LIB$INDEXP1PZ,Z@ˀ ˀPIVLENPZ1ˏQ` FOR$WRITE_IFZ\ˀ`\ FOR$IO_T_DS FOR$IO_ENDdIVLENPpˀtx LIB$SPAWNZ˘ˀ˜˘ FOR$READ_IF߫( FOR$IO_L_RЫ( FOR$IO_END FOR$READ_SFh FOR$IO_T_DS FOR$IO_ENDˠIVLEN˴ LIB$INDEXPíRRЭSCˀ LIB$INDEXP1 FOR$READ_SFh FOR$IO_T_DS FOR$IO_END|IVLENPWWˈˀˌːˀ˔˘STR$MATCH_WILDP$1խW^(WˀnWV^(nV\,\n ˀPQ^WWˤˀ˨ˬ LIB$SPAWN1Yѭ1 LIB$INDEXPV1>V\\Fˀ LIB$INDEXP1VPPW\VRR^(Rˀn^SZ^(nZYYY\^WSS^(SGˀn^SZWVWW^(WFˀnWYZYVVV\^ CONV$PASS_FILES\^P1$CONV$PASS_OPTIONSP1, CONV$CONVERT1~ѭ1@ LIB$INDEXPW1bWQQLGˀP\ LIB$INDEXP1=WPPYpLIB$SYS_TRNLOGˀIVLENPZEXEMPTիVWSS^(Sˇn^S\«^(ˀn\XYTWTT^(TGˀn^S\X\WWˌWV^ːYZZ˔Iˀ˘˜LIB$RENAME_FILEV^\WRR^(Rˇn^SXYSWSS^(SGˀn^SVXVWWW\^YZZIˀLIB$RENAME_FILE\^UNEXEMPT1M1IQQVh FOR$READ_IF߫, FOR$IO_L_R߫0 FOR$IO_L_R߫4 FOR$IO_L_R߫8 FOR$IO_L_R߫< FOR$IO_L_R FOR$IO_ENDЭRѫ,ë,SďQSSR0TTR1cѭ1XXˀ LIB$INDEXPWX^(XˀnXY:~Y\V­VЭUV^(VEˀnVZ\ZYYYW^LIB$DELETE_FILEW^X(ˀ,0LIB$DELETE_FILE1ѭVVXˀ\h LIB$INDEXPZV^(VˀnV\^(n\WWtWZ^x|?LIB$DELETE_FILEZ^Vˤˀ˨ˬLIB$DELETE_FILE1dBCr FOR$CLOSE1LIB$FIND_FILE_END FOR$CLOSEFOR$EXITPP$@gcy$cm:filundel delsav: JTDELMAINT$MAINLIB$SYS_TRNLOGLIB$GET_FOREIGNLIB$CVT_FROM_INTERNAL_TIME LIB$SPAWN LIB$FIND_FILESTR$MATCH_WILDCONV$PASS_FILES CONV$CONVERTCONV$PASS_OPTIONSIVLENFOR$OPEN LIB$INDEXEXEMPTLIB$RENAME_FILEUNEXEMPTLIB$DELETE_FILE FOR$CLOSELIB$FIND_FILE_ENDFOR$EXIT$CODE$PDATA $LOCAL FOR$IO_END FOR$IO_L_R FOR$IO_T_DS FOR$READ_SF FOR$READ_IF FOR$WRITE_IF)P2yPyPlPaPVP!PVP aPQrPtP[P5PLNPP,PPP0PVPEcP?P'PjPXPPPLZPyPnP8P 0IVLEN0115-Sep-1996 16:10DEC Fortran V6.1-68 IVLEN IVLENYPP[}PQPмRPRRQPQSSTDTT RPSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C$*[EVERHART.JTDEMO]JTDELMAINT.OBJ_A;16+, .-/ 4--Z- 0123KPWO.56`ix7@ y89GHJ*HHJTDELMAINT$MAIN 6-NOV-1996 21:50  Digital Fortran 77 T7.1-61 L$DATA$0 $BSS$d$IODATA$i$CODE$$LINK$0JHJTDELMAINT$MAINLIB$SYS_TRNLOGLIB$GET_FOREIGN LIB$FIND_FILE(JIVLEN DFOR$OPEN DFOR$HANDLER(LIB$CVT_FROM_INTERNAL_TIMESTR$MATCH_WILD LIB$SPAWNCONV$PASS_FILES CONV$PASS_OPTIONS CONV$CONVERTEXEMPTLIB$RENAME_FILEUNEXEMPTLIB$DELETE_FILE DFOR$CLOSE LIB$FIND_FILE_END DFOR$EXIT DFOR$READ_INT_FMT DFOR$READ_SEQ_FMT DFOR$WRITE_INT_FMT DFOR$SET_REENTRANCY OTS$MOVEMOTS$FILL OTS$INDEXOTS$MOVEl l=6= 6  =ld6M76H76$@gcy$cm:delbak H76M76@W W\\\7 =`#~x^^~cGG"4GBb@Zk00" 0"0" G0bS "& "8C<'#@0BZ#CD]8"0" 1"@]"tGBb@Zk0 B"0" !0"@8=0"H"?&1"8}"HGBb@Zk ?$! 8=0"1"C<=& s"@}CD8"@="0BR"GG8B@b@Zk0"$0p0"0BR"?"B@ZkG8B@Zk0¦֢yB0⦨/KC0"9?G C5.C 0D@5 @0"0"?&1"8=C<&"@0b{#CD}0"#8"@="0BR"GG0"GBb@Zk0"(x""&"80bs"C<}8"TG@b@0",Hb"0,0"1"4G@=8"Hݶ4GPTGX]4G`h]TGp"G_&R"8"GhBpb@ZkG0"!p D000"0"41"GtGBb@Zk0"$"0"81"GtGBb@Zk0"$?"4G0"B"B@Zk0@0$0"$9= Cg 0"$!"3B0"0BR"GTB?"B@ZkG8B@Zk0¦$֢35B0"0BR"?"B@ZkG8B@Zk""&"80#C<8"TG@b]@0"?"G0"B"B@Zk0@""'#80"! C<=8"TG@bF@0"<X?"G0"B"B@Zk0@""'#80"! C<=8"TG@b.@0"<0<04G0B"XB"B@Zk0@0(0"(9 0"(!"3B0"0BR"GTB?"B@ZkG8B@Zk""&"8ݲ0 C<8"TG@b@0"<0<0"1(F0B\20b\s?`B""0<0¦"0⦨"@8PݶH"?&1"8}"H"GBb@ZkP""$ 80"C<8"TG@b@0"`0`0"1"0vJ_&F8C<=0L"#8"GGGGGGhBpb@Zk0"DB"0<0"1"@=80d"H"?&1"8}"H8"GBb@Zkb" 0"! @=8"G_&R"8"H "GxBb@ZkGdP""?$! 8=0BR"C<]8"TG@b@0"@?"4G0"B"B@Zk0@0P0"P9 0"P?"10B4G0C"B"B@Zk0@0T0"T9w 0"T!0P0@0"T1B""0"@8}0h"H0bl{#P}0p#X0t"`0"x1"h="?&1"8}"HD"GBb@Zk080"|0h0"41 B 0B|R0b4s0h3tB&Q"uNSB0¦|V0l0dB0"|9 7C{0B0ZU@C@0bP{15`C4G0B"XB"B@Zk0@z0T0"P98C!5C0P65B4GvB# CD C # C#"GXB"B@Zk0B_BR"GB@Zk7@#$CD C # C#"G0BYBR"GB@Zk@"GB@Zk#9C!G C # C#"GD"GB@ZkG8B@Zk# CD C # C#"GY"GB@ZkG8B@Zk 6vJ&F8ݲC<=#8"GGGGG4GBb@Zk0$0"P!!1 @0"!v H?&1D8=C<#8"GGGGG4GBb@Zk0$0"0!U @G 0P15B4G0B"XB"B@Zk0@\0P95CGyB#!C!D C # C#"GB"B@Zk0B_BR"GB@Zk#6CF C # C#"GA"GB@ZkG8B@Zk# CD C # C#"GV"GB@ZkG8B@Zk"$vH?'D8C<#8"GGGGG4GBb@Zk0$0"P!!1 @0"!v H?&1D8=C<#8"GGGGG4GBb@Zk0$GJðb"? 0"@8="G_&R"8"H "GxBb@ZkGP""$ 80"C<8"TG@b@0@0"@!00"1"!v H_&2D8=C<=0"0vJ&F@CD8"@="TGBb@Zk0D0"D!%&"0@?0"019 0B@Ңx"hB"TGB@Zk0BR"G?"B@Zk0"G?"33Bx]"B@ZkG8B@Zk0@PB0H0"H9 = 0 9v K$$G8C<0L"#8"GGGGGGhBpb@Zk0D@0"0!U @ ?"4G0"B"B@Zk0@0P0"P9/ 0P? 10@4G0C"B"B@Zk0@0T0"T9 0T0"P!@0T00"P165 BGvB# CD C # C#"GB"B@Zk0B_BR"GB@Zk0"T90PD92C35 C0"T!#6CvB#9C!G C # C#"G0CR"B@Zk0BABR"GB@Zk#!C!D C # C#"G@"GB@ZkG8B@Zk# CD C # C#"GA"GB@ZkG8B@Zk"7vJ'F8C<ݲ#!C!D C # C#"GY"GB@ZkG8B@Zk#6CF C # C#"GA"GB@ZkG8B@Zk"$vH?'D@CD8"@="GGGGXB`b@Zk0$0"$!m G4G8B@b@Zk0$0"$!b GGTGHBPb@Zk0$Y0"0!5 @U ?"4G0"B"B@Zk0@0P0"P9H 0P? 10@4G0C"B"B@Zk0@0T0"T97 0T0"P!@0T0""_&R"8]C<=&"@0⦨"CD8"0"1"@]"tGBb@ZkP""$ 80"! C<=8"TG@b;@0XGBb@Zk00T0"P! @ 5@0p0"P16!BGvB#$CD C # C#"G0B_BR"B@Zk0BWBR"GB@Zk@#6CF C # C#"G0BABR"GB@ZkD"GB@Zk0X0"T! C#$CD C # C#"GV"GB@ZkG8B@Zk#6CF C # C#"GD"GB@ZkG8B@Zk6#7vJ'F8C<=0"B vH?&D@D=# (8"@="GGGGGBb@Zk0$s0"T!0PP!2@35 @0"P16!BGvB# CD C # C#"G0CR"B@Zk0BWBR"GB@Zk0X0"T!$@#7CF C # C#"G@"GB@ZkG8B@Zk# CD C # C#"GW"GB@ZkG8B@Zk"9v K'8G8C<ݲ0"B$vH?&D@D=# (8"@="GGGGGBb@Zk0$GGBb@ZkG?èb""G_&R"GGBb@Zk$0"4G(B0b@Zkb""G_&R"GGBb@Zk0"4GBb@Zk4GcGx]]}#kGGGGr.rJ+@`JR4Gxݦ( 6x( Bx(  @0@x=, xݦ, ֢65BVB.JB x( 0@x=( xݦ( ֢ Bx, GGGGk.W JF<!4G@DFOR$SET_REENTRANCY<"8b#HDFOR$SET_REENTRANCY<!<@@DFOR$SET_REENTRANCY4GLIB$SYS_TRNLOG4 b#HLIB$SYS_TRNLOG4@LIB$SYS_TRNLOG<  GDFOR$READ_INT_FMT<b#HDFOR$READ_INT_FMT< @DFOR$READ_INT_FMT4dGpLIB$GET_FOREIGN4hb#HLIB$GET_FOREIGN4l@pLIB$GET_FOREIGN4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4%xG LIB$FIND_FILE4&|b#H LIB$FIND_FILE4%@ LIB$FIND_FILE4 (G4 DFOR$OPEN4 ,b#H DFOR$OPEN4 0@4 DFOR$OPEN DdGpLIB$CVT_FROM_INTERNAL_TIMEDhb#HLIB$CVT_FROM_INTERNAL_TIMEDl@pLIB$CVT_FROM_INTERNAL_TIMEDGLIB$CVT_FROM_INTERNAL_TIMEDb#HLIB$CVT_FROM_INTERNAL_TIMED@LIB$CVT_FROM_INTERNAL_TIME4G OTS$INDEX4@ OTS$INDEX4G  OTS$MOVEM4@  OTS$MOVEM4GOTS$FILL4@OTS$FILL48G@ OTS$MOVEM4<@@ OTS$MOVEM4DGLOTS$FILL4H@LOTS$FILL4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4\Gd OTS$INDEX4`@d OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4G@ SAFETY013.A  $[EVERHART.JTDEMO]JTDELMAINT.OBJ_A;16-}0OTS$FILL4@OTS$FILL</lGxDFOR$WRITE_INT_FMT<0pb#HDFOR$WRITE_INT_FMT</t@xDFOR$WRITE_INT_FMT4G LIB$SPAWN4 b#H LIB$SPAWN4@ LIB$SPAWN< `GlDFOR$READ_INT_FMT<db#HDFOR$READ_INT_FMT< h@lDFOR$READ_INT_FMT<GDFOR$READ_SEQ_FMT<b#HDFOR$READ_SEQ_FMT<@DFOR$READ_SEQ_FMT4G  OTS$INDEX4@  OTS$INDEX4HGP OTS$INDEX4L@P OTS$INDEX< G DFOR$READ_INT_FMT<b#HDFOR$READ_INT_FMT< @ DFOR$READ_INT_FMT4 G OTS$INDEX4 @ OTS$INDEX4$ G, OTS$MOVEM4( @, OTS$MOVEM4< GD OTS$MOVEM4@ @D OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL40 G8 OTS$MOVEM44 @8 OTS$MOVEM4< GD OTS$FILL4@ @D OTS$FILL4 G LIB$DELETE_FILE4 b#HLIB$DELETE_FILE4 @ LIB$DELETE_FILE4 G LIB$DELETE_FILE4 b#HLIB$DELETE_FILE4 @ LIB$DELETE_FILE4L GT OTS$INDEX4P @T OTS$INDEX4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVEM 4 @ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4T G\ OTS$MOVEM4X @\ OTS$MOVEM4` Gh OTS$FILL4d @h OTS$FILL4 G LIB$DELETE_FILE4 b#HLIB$DELETE_FILE4 @ LIB$DELETE_FILE4(G4LIB$DELETE_FILE4,b#HLIB$DELETE_FILE40@4LIB$DELETE_FILE<|GDFOR$READ_SEQ_FMT<b#HDFOR$READ_SEQ_FMT<@DFOR$READ_SEQ_FMT4$G0STR$MATCH_WILD4(b#HSTR$MATCH_WILD4,@0STR$MATCH_WILD4pGxOTS$MOVE4t@xOTS$MOVE4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4(G4 LIB$SPAWN4,b#H LIB$SPAWN40@4 LIB$SPAWN4dGl OTS$INDEX4h@l OTS$INDEX4G OTS$INDEX4@ OTS$INDEX40G8 OTS$MOVEM44@8 OTS$MOVEM4HGP OTS$MOVEM4L@P OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4G  OTS$MOVEM4@  OTS$MOVEM4$G,OTS$FILL4(@,OTS$FILL4hGp OTS$MOVEM4l@p OTS$MOVEM4tG|OTS$FILL4x@|OTS$FILL4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4$G, OTS$MOVEM4(@, OTS$MOVEM40G8OTS$FILL44@8OTS$FILL4-lGxCONV$PASS_FILES4.pb#HCONV$PASS_FILES4-t@xCONV$PASS_FILES<)GCONV$PASS_OPTIONS<*b#HCONV$PASS_OPTIONS<)@CONV$PASS_OPTIONS4+G CONV$CONVERT4,b#H CONV$CONVERT4+@ CONV$CONVERT4G OTS$INDEX4@ OTS$INDEX4DGL OTS$INDEX4H@L OTS$INDEX4GLIB$SYS_TRNLOG4 b#HLIB$SYS_TRNLOG4@LIB$SYS_TRNLOG,1GEXEMPTh h ,2b#HEXEMPT,1@EXEMPT4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4G  OTS$MOVEM4@  OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4lGt OTS$MOVEM4p@t OTS$MOVEM4xGOTS$FILL4|@OTS$FILL4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4HGTLIB$RENAME_FILE4Lb#HLIB$RENAME_FILE4P@TLIB$RENAME_FILE4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4<GD OTS$MOVEM4@@D OTS$MOVEM4HGPOTS$FILL4L@POTS$FILL4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4G$LIB$RENAME_FILE4b#HLIB$RENAME_FILE4 @$LIB$RENAME_FILE44G@UNEXEMPT48b#HUNEXEMPT4<@@UNEXEMPT4 dGp DFOR$CLOSE4 hb#H DFOR$CLOSE4 l@p DFOR$CLOSE<'GLIB$FIND_FILE_END<(b#HLIB$FIND_FILE_END<'@LIB$FIND_FILE_END4 G DFOR$CLOSE4 b#H DFOR$CLOSE4 @ DFOR$CLOSE4#G DFOR$EXIT4$b#H DFOR$EXIT4#@ DFOR$EXIT =%PURG=88= UNEXEMPT8OTS$MOVE;STR$MATCH_WILD=DELSAVX=8     h= JTDEL$MODEx= LIB$GET_FOREIGN=( 8       DFOR$OPEN==8 =delsav: DFOR$CLOSE==8 DFOR$READ_INT_FMT=  LIB$DELETE_FILE=,88 OTS$INDEX8 OTS$MOVEM=0x;=( 7 DFOR$HANDLER=;8OTS$FILL;;==: LIB$SPAWN DFOR$READ_SEQ_FMT(LIB$CVT_FROM_INTERNAL_TIME LIB$RENAME_FILELIB$SYS_TRNLOG !DFOR$SET_REENTRANCY# DFOR$EXIT=0% LIB$FIND_FILE=DelMaint cmd>P=(gce$delseq:delrecs.seq;*p 'LIB$FIND_FILE_END )CONV$PASS_OPTIONS+ CONV$CONVERT -CONV$PASS_FILES= $@gcy$cm:filundel =/=%UNDEL /DFOR$WRITE_INT_FMT1EXEMPT= 0;=Q Q=A98 JTDELMAINT$MAINDigital Fortran 77 T7.1-61 = 4H4=JTDELMAINT$MAIN4=meL  A |   l +x Ȑ  | ] @     @  U($ $= ,4: := 4=  = 44= IVLEN4=3+* = A F =$ $= 4: := 4=  =  H&*[EVERHART.JTDEMO]JTDELMAINT.OBJ_AXP6;6+, .-/ 4-,- 0123KPWO-56@`Zz7@Zz89GHJ HHJTDELMAINT$MAIN 12-SEP-1996 20:52DEC Fortran V6.2-508 L$DATA$@ $BSS$d$IODATA$i$CODE$$LINK$0JJTDELMAINT$MAINLIB$SYS_TRNLOGLIB$GET_FOREIGN LIB$FIND_FILE(J IVLEN DFOR$OPEN DFOR$HANDLER(LIB$CVT_FROM_INTERNAL_TIMESTR$MATCH_WILD LIB$SPAWNCONV$PASS_FILES CONV$PASS_OPTIONS CONV$CONVERTEXEMPTLIB$RENAME_FILEUNEXEMPTLIB$DELETE_FILE DFOR$CLOSE LIB$FIND_FILE_END DFOR$EXIT DFOR$READ_INT_FMT DFOR$READ_INT_FMT_XMIT DFOR$READ_SEQ_FMT DFOR$WRITE_INT_FMT OTS$MOVEMOTS$FILL OTS$INDEXOTS$MOVEl l=6= 6  =ld6M76H76$@gcy$cm:delbak H76M76@W W\\\7 =P#~x^^~cGG00,0"! 0 G0"$ 8P"<$ @0"D8"0",1"@]"tG`Bhb@Zk0,B"0",!0"!!H@8=0H"?&1"8}"GBb@Zk$ 80"<_& R"@]"D8"@="0BR"GGBb@Zk0"000"0BR"G?"B@ZkGB@Zk0¦֢"A0⦸/KC<0"9?G8.G7 0D8 D20"$0(&"8B"<]&"@0b {#D}0("#8"@="0B$R"GG0 "GBb@Zk0"4""&"80b s"<}8"TGb&@0"8(b"080" 1"0J4G@=8"Hݶ4GPTGX]4G`h]TGp"G_&R"8"GBb@ZkG0"!p D0<0H"0"@1"GtGBb@Zk0"0`"0"D1"GtGBb@Zk0"0?"4G0"B"8B@Zk0@000"099# 0"0!"5B0"0BR"GTBG?"B@ZkGB@Zk0¦0֢61B0"0BR"G?"B@ZkGB@Zk`""&"80#<8"TGb@0"?"G0"B"8B@Zk0@`""'#80"! <=8"TGb@0"H.?"G0"pB"8B@Zk0@g`""'#80"! <=8"TGb@0"H0H04G0"B"8B@Zk0@040"49W 0"4!"5B0"0BR"GTBG?"B@ZkGB@Zk`""&"8ݲ0 <8"TGb[@0"H0H60"1(F0Bh20bhs=`hB""0H0¦"5J0⦸"@8PݶH"?&1"8}""GBb@Zkd""$ 80"<8"TGb,@0"l0l?&0vJB80bs"<}0X"#8"GGGGGGBb@Zk0"PB"0H0"1"0J@=80p@ SAFETY013.A  &[EVERHART.JTDEMO]JTDELMAINT.OBJ_AXP6;6->"H"?&1"8}"8"GBb@Zkb" 0"! @=8"G_&R"8" "GpBxb@ZkGd""?$! 8=0BR"<]8"TGb@0"L?"4G0"HB"8B@Zk0@0\0"\9b 0"\?"10B4G0C"HB"8B@Zk0@0`0"`9Q 0"`!0\0@0"`1B""0"@8}0t"H"?&1"8}"D"GBb@Zkh""0x 8"8]"tGBb@Zkh""0| 8"8]"tGBb@Zkh""0 8"8]"tGBb@Zk""0 8"8]"tGBb@Zk0D0"0t0"@1 B 0BR0b@s0t3tB&Q"uNSB0¦V0x0pB0"9 B`0B<ZX@G@0b\{11`C4G0"B"8B@Zk0@\0`0"\98C81C0"\!!1 @4GB<CGGx"GB"GB@Zk0BR"GB@ZkGGx]"@B@ZkC<CGGG<CGGGG0BYBR"GB@ZkGGB@ZkGGG@B@Zk< @GGGGGGB@ZkGB@ZkC?' vH@8G<#8"GGGGG4GPBXb@Zk00G0"\!!1 @&!v H0@8=0BR"<]#8"GGGGG4GPBXb@Zk00G0"<!X D 0\11B4G0"B"8B@Zk0@=0\81CG8C<CGGx"GB"GB@Zk0BR"GB@ZkGGx]"@B@Zk<CGGGGGGB@ZkGB@ZkC&$vH@8G<=#8"GGGGG4GPBXb@Zk00G0"\!!1 @&!v H0@8=0BR"<]#8"GGGGG4GPBXb@Zk00Gqàb"? 0"@8="G_&R"8" "GpBxb@ZkG/d""$ 80"<8"TGbO@0L0"L!0?&!v H1@8=0bs"<}&0vJB@0⦸"D8"@="TGBb@Zk0P0"P!%&"0D?0"<18 0BLҢx" B"TG@B@Zk0BR"G?"B@Zk0"G?"33Bx]"B@ZkGB@Zk0LPB0T0"T9$9v K C80"! <=0X"#8"GGGGGGBb@Zk0PG0"<!X D ?"4G0"HB"8B@Zk0@0\0"\9 0\? 10@4G0C"HB"8B@Zk0@0`0" =$`9 0`0"\!@0`00"\161 BGB<CGGx"GB"GB@Zk0BR"GB@ZkGGx]"@B@Zk0`0"\98C81C0`? !$@C<CGGx"G0BYBR"GB@Zk0BDBR"GB@ZkGGx]"@B@Zk<CGGGGGGB@ZkGB@ZkC?'7vJB8G<<CGGGGGGB@ZkGB@ZkC?'6vJB@ݲGD8"@="GGGG@BHb@Zk0000/G4GBb@Zk0000$GGTGBb@Zk00G0<8D?"4G0"HB"8B@Zk0@0\0"\9  0\ 1@4G0C"HB"8B@Zk0@0`0"`9 0`0\@0"`&"8B"<]&"@0¦"Dݲ8"0"1"@]"tG`Bhb@Zkd""$ 80 <8"TGb@0dGBb@Zk0p0`0\$@$1@0"!0\6BG6@<CGGx"G0BR"GB@Zk0BWBR"GB@ZkGGx]"@B@Zk@<CGGG<CGGGG0B@BR"GB@ZkGGB@ZkGGG@B@Zk0¦d֢0`6B<%@GGGGGGB@ZkGB@ZkC$%vH@8G<C&6vJB@0C D# (8"@="GGGGGBb@Zk00U0`0"\!%@%1@0\6BG@<CGGx"G0BABR"GB@Zk0BWBR"GB@ZkGGx]"@B@Zk0d0` @<CGGGGGGB@ZkGB@ZkC$8vKC8G<ݲC& vH@@0C D# (8"@="GGGGGBb@Zk00GGPBXb@ZkGpb""G_&R"GGBb@Zk0$"4GBb@Zkpb""G_&R"GGBb@Zk "4GBb@Zk4GcGx]]}#kGGGGr.rJ*@R4Gݦ8 8  B!8  B0@ݦ< < 01BPB,H@ ݦ8 ֢0B8 в=8 1 4B?GGGk< GGk.V JF4 GLIB$SYS_TRNLOG4b#LIB$SYS_TRNLOG4 @LIB$SYS_TRNLOG<GDFOR$READ_INT_FMT<b#DFOR$READ_INT_FMT<@DFOR$READ_INT_FMT4 DGPLIB$GET_FOREIGN4 Hb#LIB$GET_FOREIGN4 L@PLIB$GET_FOREIGN4xG OTS$MOVEM4|@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4+HGT LIB$FIND_FILE4,Lb# LIB$FIND_FILE4+P@T LIB$FIND_FILE4)G DFOR$OPEN4*b# DFOR$OPEN4)@ DFOR$OPEND4G@LIB$CVT_FROM_INTERNAL_TIMED8b#LIB$CVT_FROM_INTERNAL_TIMED<@@LIB$CVT_FROM_INTERNAL_TIMED\GhLIB$CVT_FROM_INTERNAL_TIMED`b#LIB$CVT_FROM_INTERNAL_TIMEDd@hLIB$CVT_FROM_INTERNAL_TIME4G OTS$INDEX4@ OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4G OTS$MOVEM4@ OTS$MOVEM4G$OTS$FILL4 @$OTS$FILL 4lGt OTS$INDEX4p@t OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4$G, OTS$INDEX4(@, OTS$INDEX4tG| OTS$MOVEM4x@| OTS$MOVEM4GOTS$FILL4@OTS$FILL<8GDDFOR$WRITE_INT_FMT<<b#DFOR$WRITE_INT_FMT<@@DDFOR$WRITE_INT_FMT4G LIB$SPAWN4b# LIB$SPAWN4@ LIB$SPAWN<$G0DFOR$READ_INT_FMT<(b#DFOR$READ_INT_FMT<,@0DFOR$READ_INT_FMT<!hGtDFOR$READ_SEQ_FMT<"lb#DFOR$READ_SEQ_FMT<!p@tDFOR$READ_SEQ_FMT4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4 @ OTS$INDEX<GDFOR$READ_INT_FMT<b#DFOR$READ_INT_FMT<@DFOR$READ_INT_FMT<GDFOR$READ_INT_FMT_XMIT<b#DFOR$READ_INT_FMT_XMIT<@DFOR$READ_INT_FMT_XMIT<GDFOR$READ_INT_FMT_XMIT<b#DFOR$READ_INT_FMT_XMIT<@DFOR$READ_INT_FMT_XMIT<G DFOR$READ_INT_FMT_XMIT< b#DFOR$READ_INT_FMT_XMIT< @ DFOR$READ_INT_FMT_XMIT<$ G0 DFOR$READ_INT_FMT_XMIT<( b#DFOR$READ_INT_FMT_XMIT<, @0 DFOR$READ_INT_FMT_XMIT4 G OTS$INDEX4 @ OTS$INDEX44 G< OTS$MOVEM48 @< OTS$MOVEM4H GP OTS$MOVEM4L @P OTS$MOVEM4\ Gd OTS$MOVE4` @d OTS$MOVE4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVE4 @ OTS$MOVE4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4@ GL LIB$DELETE_FILE4 D b#LIB$DELETE_FILE4H @L LIB$DELETE_FILE4 G LIB$DELETE_FILE4  b#LIB$DELETE_FILE4 @ LIB$DELETE_FILE4 G OTS$INDEX4 @ OTS$INDEX48 G@ OTS$MOVEM4< @@ OTS$MOVEM4L GT OTS$MOVEM4P @T OTS$MOVEM4` Gh OTS$MOVE4d @h OTS$MOVE4 G OTS$MOVEM 4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4 G LIB$DELETE_FILE4  b#LIB$DELETE_FILE4 @ LIB$DELETE_FILE4P G\ LIB$DELETE_FILE4 T b#LIB$DELETE_FILE4X @\ LIB$DELETE_FILE<! G DFOR$READ_SEQ_FMT<" b#DFOR$READ_SEQ_FMT<! @ DFOR$READ_SEQ_FMT4@GLSTR$MATCH_WILD4Db#STR$MATCH_WILD4H@LSTR$MATCH_WILD4GOTS$MOVE4@OTS$MOVE4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4<GH LIB$SPAWN4@b# LIB$SPAWN4D@H LIB$SPAWN4|G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4,G4 OTS$MOVEM40@4 OTS$MOVEM4@GH OTS$MOVEM4D@H OTS$MOVEM4TG\OTS$MOVE4X@\OTS$MOVE4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4GOTS$MOVE4@OTS$MOVE4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4 @OTS$FILL4HGP OTS$MOVEM4L@P OTS$MOVEM4TG\OTS$FILL4X@\OTS$FILL4/GCONV$PASS_FILES40b#CONV$PASS_FILES4/@CONV$PASS_FILES< GCONV$PASS_OPTIONS< b#CONV$PASS_OPTIONS< @CONV$PASS_OPTIONS4G CONV$CONVERT4b# CONV$CONVERT4@ CONV$CONVERT4(G0 OTS$INDEX4,@0 OTS$INDEX4lGt OTS$INDEX4p@t OTS$INDEX4 GLIB$SYS_TRNLOG4b#LIB$SYS_TRNLOG4 @LIB$SYS_TRNLOG,,G8EXEMPT,0b#EXEMPT,4@8EXEMPT4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4GOTS$MOVE4@OTS$MOVE4G  OTS$MOVEM4@  OTS$MOVEM4G OTS$MOVEM 4@ OTS$MOVEM4(G0OTS$MOVE4,@0OTS$MOVE4`Gh OTS$MOVEM4d@h OTS$MOVEM4lGtOTS$FILL4p@tOTS$FILL4#GLIB$RENAME_FILE4$b#LIB$RENAME_FILE4#@LIB$RENAME_FILE4TG\ OTS$MOVEM4X@\ OTS$MOVEM4lGt OTS$MOVEM4p@t OTS$MOVEM4GOTS$MOVE4@OTS$MOVE4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4#DGPLIB$RENAME_FILE4$Hb#LIB$RENAME_FILE4#L@PLIB$RENAME_FILE41`GlUNEXEMPT42db#UNEXEMPT41h@lUNEXEMPT4%G DFOR$CLOSE4&@ SAFETY013.A  &[EVERHART.JTDEMO]JTDELMAINT.OBJ_AXP6;6- &b# DFOR$CLOSE4%@ DFOR$CLOSE<-GLIB$FIND_FILE_END<.b#LIB$FIND_FILE_END<-@LIB$FIND_FILE_END4%G DFOR$CLOSE4&b# DFOR$CLOSE4%@ DFOR$CLOSE4'G DFOR$EXIT4(b# DFOR$EXIT4'@ DFOR$EXIT EXEMPT DFOR$WRITE_INT_FMT=/(=%UNDEL0=DELSAV8;STR$MATCH_WILD CONV$CONVERT CONV$PASS_OPTIONS=(gce$delseq:delrecs.seq;* LIB$GET_FOREIGN=H;8      JTDEL$MODE LIB$SYS_TRNLOG=(LIB$CVT_FROM_INTERNAL_TIME LIB$SPAWN=80 DFOR$READ_INT_FMT=:P DFOR$READ_INT_FMT_XMIT;;8OTS$FILL8 OTS$MOVEM=0x;=< 7 DFOR$HANDLER=;8 OTS$INDEX8OTS$MOVE=, LIB$DELETE_FILE=   !DFOR$READ_SEQ_FMT #LIB$RENAME_FILE% DFOR$CLOSE=8 (=delsav:' DFOR$EXIT) DFOR$OPEN=X=DelMaint cmd>p+ LIB$FIND_FILE -LIB$FIND_FILE_END= =8 = $@gcy$cm:filundel  /CONV$PASS_FILES1UNEXEMPT=88=%PURG= 0 ;=K K=;32JTDELMAINT$MAINDEC Fortran V6.2-508 = 44=JTDELMAINT$MAIN4=d\ D DA , iU  Lp h h̘  p Y @     @  U,$ $= 04: := 4=   =  44= IVLEN 4=3+*    $ $= 04: := 4=  =  &*[EVERHART.JTDEMO]JTDELMAINT.OBJ_VAX5;5+, ./ 4 h- 0123 KPWO 56I7\b89GHJ:JTDELMAINT$MAIN0117-Nov-1996 13:4017-Nov-1996 13:40VAX FORTRAN V5.9-173JTDELMAINT$MAINPJTDEL$MODEDelMaint cmd>gce$delseq:delrecs.seq;*/%UNDEL,DELSAV%PURG:,)$@gcy$cm:delbak ) JTDELMAINT$MAINH Pt   LIB$SYS_TRNLOG@ H  `   LIB$GET_FOREIGN@ - - LIB$FIND_FILE@x    x    $ ( F` D ` HP d P p     , Op  O    Op @ OT \ Qp Q LIB$SYS_TRNLOG@ X p        XP  P ^< D P h  x , p  Op  O  ^     0 ^` h  |    QP [^kԫ˄LIB$SYS_TRNLOGի`˔p˘˔ FOR$READ_IFk FOR$IO_L_R FOR$IO_ENDˤLIB$GET_FOREIGN,ˀ ˀѫ1ˀPP 1ˀq1ˀQ1ԫԫ LIB$FIND_FILEIVLENPFOR$OPENP1ˏk LIB$CVT_FROM_INTERNAL_TIME0LIB$CVT_FROM_INTERNAL_TIMEH LIB$INDEXPYY1YP,PIˀ ˀY,Yˀ ˀTIVLENPh LIB$INDEXPtIVLEN1  LIB$INDEXP1,IVLENP8ˀ<H LIB$INDEXP1PQ,Q@ˀ ˀTIVLENPR1ˏkPdd FOR$WRITE_IFR`ˀd` FOR$IO_T_DS FOR$IO_ENDhIVLENPtˀx| LIB$SPAWN`R˜ˀˠ˜ FOR$READ_IF߫, FOR$IO_L_R FOR$IO_ENDb FOR$READ_SFl FOR$IO_T_DS FOR$IO_ENDˤIVLEN˸ LIB$INDEXPWWPPGˀ LIB$INDEXPZ1b FOR$READ_SFl FOR$IO_T_DS FOR$IO_ENDˀIVLENPVVˌˀː˔ˀ˘˜STR$MATCH_WILDP$1իV^(VˀnV\^(n\,\n ˀPQ^VV˨ˀˬ˰ LIB$SPAWN1Zѫ1 LIB$INDEXPW1>WPPGˀ LIB$INDEXPZ1WZVWPP^(Pˀn^S\^(n\\\V^ZPP^(PJˀn^SYZPWPP^(PGˀn^SXXYYYV^ CONV$PASS_FILESV^P1(CONV$PASS_OPTIONSP10 CONV$CONVERT1ѫ1D LIB$INDEXPW1bWPPPGˀT` LIB$INDEXPZ1gce$delseq:delrecs.seq;*/%UNDEL,DELSAV%PURG:4 Pdtttttt @l @ LIB$SYS_TRNLOG@ 4  KL  K LIB$GET_FOREIGN@Y Y LIB$FIND_FILE@d    d ,   0 4 rL 0 L <t< P < <\ 8|    {\  {    {\ , {@ H }\ } LIB$SYS_TRNLOG@D \ 8      <  < <( 0 < <T 8d  \ 8{\  {        L T  h    Q P[(^Ы ЫԭԫˀLIB$SYS_TRNLOGիːp˔ː FOR$READ_IFk FOR$IO_L_Rk FOR$IO_ENDˠLIB$GET_FOREIGN,ˀ ˀѫ1ˀ\\ 1ˀq1ˀQ1ԫԫ˼ LIB$FIND_FILEIVLENPFOR$OPENP1ˏUUЭLIB$CVT_FROM_INTERNAL_TIMEЫЭ ,LIB$CVT_FROM_INTERNAL_TIMEЫ D LIB$INDEXPZZ1Z\,\Jˀ ˀZ,Zˀ ˀPIVLENPd LIB$INDEXPpIVLEN1 LIB$INDEXP1(IVLENP4ˀ8D LIB$INDEXP1PZ,Z@ˀ ˀPIVLENPZ1ˏR` FOR$WRITE_IFZ\ˀ`\ FOR$IO_T_DS FOR$IO_ENDdIVLENPpˀtx LIB$SPAWNZ˘ˀ˜˘ FOR$READ_IF߫( FOR$IO_L_RЫ( FOR$IO_END FOR$READ_SFh FOR$IO_T_DS FOR$IO_ENDˠIVLEN˴ LIB$INDEXPíSSЭTDˀ LIB$INDEXP1 FOR$READ_SFh FOR$IO_T_DS FOR$IO_END|IVLENPWWˈˀˌːˀ˔˘STR$MATCH_WILDP$1խW^(WˀnWV^(nV\,\n ˀPQ^WWˤˀ˨ˬ LIB$SPAWN1Yѭ1 LIB$INDEXPV1>V\\Fˀ LIB$INDEXP1VPPW\VSS^(Sˀn^SZ^(nZYYY\^WZZ^(ZGˀnZXWVWW^(WFˀnWYXYZZZ\^ CONV$PASS_FILES\^P1$CONV$PASS_OPTIONSP1, CONV$CONVERT1ѭ1@ LIB$INDEXPV1bVWWLFˀP\ LIB$INDEXP1=VPPXpLIB$SYS_TRNLOGˀIVLENPZEXEMPTի\VRR^(Rˇn^SW«^(ˀnWYXPVPP^(PFˀn^SWYWVVˌV\^ːXZZ˔Hˀ˘˜LIB$RENAME_FILE\^ԭVRR^(Rˇn^SWX\V\\^(\Fˀn\YWYVVV^XZZHˀLIB$RENAME_FILE^UNEXEMPT1K1EYh FOR$READ_IF߫, FOR$IO_L_R߫0 FOR$IO_L_R߫4 FOR$IO_L_R߫8 FOR$IO_L_R߫< FOR$IO_L_R FOR$IO_ENDЭWѫ,ë,VďQVVW0RRW1bѭ1XXˀ LIB$INDEXPZX^(XˀnX\:~\WY­YЭVY^(YFˀnY\W\VVVZ^LIB$DELETE_FILEZ^X(ˀ,0LIB$DELETE_FILE1ѭYYXˀ\h LIB$INDEXP\Y^(YˀnYW^(nWZZtZ\^x|?LIB$DELETE_FILE\^Yˤˀ˨ˬLIB$DELETE_FILE1dB_r FOR$CLOSE1LIB$FIND_FILE_END FOR$CLOSEFOR$EXITPP$@gcy$cm:filundel delsav: JTDELMAINT$MAINLIB$SYS_TRNLOGLIB$GET_FOREIGNLIB$CVT_FROM_INTERNAL_TIME LIB$SPAWN LIB$FIND_FILESTR$MATCH_WILDCONV$PASS_FILES CONV$CONVERTCONV$PASS_OPTIONSIVLENFOR$OPEN LIB$INDEXEXEMPTLIB$RENAME_FILEUNEXEMPTLIB$DELETE_FILE FOR$CLOSELIB$FIND_FILE_ENDFOR$EXIT$CODE$PDATA $LOCAL FOR$IO_END FOR$IO_L_R FOR$IO_T_DS FOR$READ_SF FOR$READ_IF FOR$WRITE_IF)P2yPyPlPaPVP!PVP aPQrPtP[P5PLNPP,PPP0PZPEcP?P+PjPZPPPK[PyPnP8P 0IVLEN01 4-Feb-1997 12:22Digital Fortran V6.4-165 IVLEN IVLENYPP[}PQP@ SAFETY013.A '[EVERHART.JTDEMO]JTDELMAINT.OBJ_VAX62;3 мPQPPRQRSSTDTT PQSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C'*[EVERHART.JTDEMO]JTDELMAINT.OBJ_VAX71;1+, ./ 4 - 0123KPWO 56^N7ex89GHJ:JTDELMAINT$MAIN0129-Jan-1996 09:19Digital Fortran V6.4-165JTDELMAINT$MAIN1P,)$@gcy$cm:delbak ) JTDELMAINT$MAINQJTDEL$MODEDelMaint cmd>gce$delseq:delrecs.seq;*/%UNDEL,DELSAV%PURG:4 Pdtttttt @l @ LIB$SYS_TRNLOG@ 4  KL  K LIB$GET_FOREIGN@Y Y LIB$FIND_FILE@d    d ,   0 4 rL 0 L <t< P < <\ 8|    {\  {    {\ , {@ H }\ } LIB$SYS_TRNLOG@D \ 8      <  < <( 0 < <T 8d  \ 8{\  {        L T  h    Q P[(^Ы ЫԭԫˀLIB$SYS_TRNLOGիːp˔ː FOR$READ_IFk FOR$IO_L_Rk FOR$IO_ENDˠLIB$GET_FOREIGN,ˀ ˀѫ1ˀ\\ 1ˀq1ˀQ1ԫԫ˼ LIB$FIND_FILEIVLENPFOR$OPENP1ˏUUЭLIB$CVT_FROM_INTERNAL_TIMEЫЭ ,LIB$CVT_FROM_INTERNAL_TIMEЫ D LIB$INDEXPZZ1Z\,\Jˀ ˀZ,Zˀ ˀPIVLENPd LIB$INDEXPpIVLEN1 LIB$INDEXP1(IVLENP4ˀ8D LIB$INDEXP1PZ,Z@ˀ ˀPIVLENPZ1ˏR` FOR$WRITE_IFZ\ˀ`\ FOR$IO_T_DS FOR$IO_ENDdIVLENPpˀtx LIB$SPAWNZ˘ˀ˜˘ FOR$READ_IF߫( FOR$IO_L_RЫ( FOR$IO_END FOR$READ_SFh FOR$IO_T_DS FOR$IO_ENDˠIVLEN˴ LIB$INDEXPíSSЭTDˀ LIB$INDEXP1 FOR$READ_SFh FOR$IO_T_DS FOR$IO_END|IVLENPWWˈˀˌːˀ˔˘STR$MATCH_WILDP$1խW^(WˀnWV^(nV\,\n ˀPQ^WWˤˀ˨ˬ LIB$SPAWN1Yѭ1 LIB$INDEXPV1>V\\Fˀ LIB$INDEXP1VPPW\VSS^(Sˀn^SZ^(nZYYY\^WZZ^(ZGˀnZXWVWW^(WFˀnWYXYZZZ\^ CONV$PASS_FILES\^P1$CONV$PASS_OPTIONSP1, CONV$CONVERT1ѭ1@ LIB$INDEXPV1bVWWLFˀP\ LIB$INDEXP1=VPPXpLIB$SYS_TRNLOGˀIVLENPZEXEMPTի\VRR^(Rˇn^SW«^(ˀnWYXPVPP^(PFˀn^SWYWVVˌV\^ːXZZ˔Hˀ˘˜LIB$RENAME_FILE\^ԭVRR^(Rˇn^SWX\V\\^(\Fˀn\YWYVVV^XZZHˀLIB$RENAME_FILE^UNEXEMPT1K1EYh FOR$READ_IF߫, FOR$IO_L_R߫0 FOR$IO_L_R߫4 FOR$IO_L_R߫8 FOR$IO_L_R߫< FOR$IO_L_R FOR$IO_ENDЭWѫ,ë,VďQVVW0RRW1bѭ1XXˀ LIB$INDEXPZX^(XˀnX\:~\WY­YЭVY^(YFˀnY\W\VVVZ^LIB$DELETE_FILEZ^X(ˀ,0LIB$DELETE_FILE1ѭYYXˀ\h LIB$INDEXP\Y^(YˀnYW^(nWZZtZ\^x|?LIB$DELETE_FILE\^Yˤˀ˨ˬLIB$DELETE_FILE1dBfr FOR$CLOSE1LIB$FIND_FILE_END FOR$CLOSEFOR$EXITPP$@gcy$cm:filundel delsav: JTDELMAINT$MAINLIB$SYS_TRNLOGLIB$GET_FOREIGNLIB$CVT_FROM_INTERNAL_TIME LIB$SPAWN LIB$FIND_FILESTR$MATCH_WILDCONV$PASS_FILES CONV$CONVERTCONV$PASS_OPTIONSIVLENFOR$OPEN LIB$INDEXEXEMPTLIB$RENAME_FILEUNEXEMPTLIB$DELETE_FILE FOR$CLOSELIB$FIND_FILE_ENDFOR$EXIT$CODE$PDATA $LOCAL FOR$IO_END FOR$IO_L_R FOR$IO_T_DS FOR$READ_SF FOR$READ_IF FOR$WRITE_IF)P2yPyPlPaPVP!PVP aPQrPtP[P5PLNPP,PPP0PZPEcP?P+PjPZPPPK[PyPnP8P 0IVLEN0129-Jan-1996 09:19Digital Fortran V6.4-165 IVLEN IVLENYPP[}PQPмPQPPRQRSSTDTT PQSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C$*[EVERHART.JTDEMO]JTDEL_SHELVED.COM;4+, . / 4L P- 0123 KPWO56-7o-89GHJ$! GCY$SYS:DEL_SHELVED.COM$! call:+$! @gcy$sys:del_shelved shelvedfile delfileF$! where shelvedfile is the shelved (or softlinked) file to delete andF$! delfile is the linked-from file, or the 0-length original file thatC$! is being deleted. This is called if mode bit 64 is set (and modeH$! bit 512 set if mode bit 4 is also set). In the latter case all actualH$! deletion is left to this file. This deletion is not called unless theL$! access permissions have been checked already and all is well for deleting $! the file.+$ if f$search(p1) .nes. "" then delete 'p1'$ eoj*[EVERHART.JTDEMO]JTDMN.CLD;22+, . / 4H - 0123 KPWO56[B7bĘ89GHJ%! Set up JT open/extend/delete daemonDEFINE VERB JTDMN IMAGE gcy$sys:jtdmn.exeG parameter p1,prompt="JTn:",value(required,type=$device),label=UNIT> parameter p2,label=FNAM,prompt="file",value(type=$infile) qualifier ASSIGN qualifier DEASSIGN qualifier VIRTUAL qualifier EXACT6 Qualifier KEY,value(required,type=$quoted_string) Qualifier CLEAR0 qualifier MODE,value(required,type=$number)2 qualifier FCNMSK,value(required,type=$number)/ qualifier CBT,value(required,type=$number)4 qualifier FRACTION,value(required,type=$number) qualifier MODIFY3 qualifier FILENUM,value(required,type=$infile)2 qualifier EXEMPT,value(required,type=$infile)1 qualifier SHARE,value(required,type=$infile)* qualifier MINIMUM,value(type=$number)* qualifier MAXIMUM,value(type=$number) qualifier ALDEFONLY qualifier LICENSE: qualifier INSTALL,value(required,type=$quoted_string)D! p1 is jt: device to assign/deassign. JTdriver assignment is tested! p2 is the host deviceF! assign/deassign specify whether to assign or deassign a host storage! to a jt: unit.H! modify qualifier causes jtdmn NOT to loop regardless of other switches*[EVERHART.JTDEMO]JTDMN.OBJ;93+, ./ 42- 0123 KPWO561"7 FQm#89GHJ2JTDMNV00113-JAN-1997 21:35 VAX MACRO V5.4-3 MACRO JTDMN(;JT driver open daemon & setup program JTDMN CLI$GET_VALUE CLI$PRESENT CLI$_PRESENTCTL$GL_CCBBASE CTL$GL_PCBDELFILT DSC$K_DTYPE_TEXE$ALONPAGVAREXEMPTEXTFILTGETEXFGETFNBGETPVIGETCAPINI$BRK IOC$SEARCHDEVJTPRTSYIKGETKSLICMSGLOGLATCH MYFDSCOPNFILT OTS$CVT_TU_L SCH$IOLOCKW SCH$IOUNLOCKSCH$QAST SYS$ASSIGN SYS$CANEXH SYS$CMKRNL SYS$CREMBX SYS$DASSGN SYS$DCLEXH9 SYS$GETDVI SYS$PUTMSGSYS$QIOWUNEXEMPT . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ADVDD_DATAPllh<3SYS$DISKQ&QL3%SAFETY-W-ACE expected but missing! Regenerate ACEs.Q4&Q:Q((Q)( QQ((DQ( DltQ((Q( Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T% Q,3UNITQ&Q 83FNAMQ&Q D3FRACTIONQ&QT3MINIMUMQ&Q c3MAXIMUMQ&Q r3ALDEFONLYQ &Q3DEASSIGNQ&Q3CBTQ&Q 3FCNMSKQ&Q 3MODEQ&Q 3SHAREQ&Q 3LICENSEQ&Q 3INSTALLQ&Q 3FILENUMQ&Q 3EXEMPTQ&Q 3KEYQ&Q  3MODIFYQ&Q 3NLA0:Q&Q QP DSC$K_DTYPE_T%,QQ DSC$K_DTYPE_T%<Q DSC$K_DTYPE_T%HQQ@PLP DSC$K_DTYPE_T%pQ , DSC$K_DTYPE_T%QQQ DSC$K_DTYPE_T%ܒGCEVQQQQ 0QQ:# QQQQ ADVDD_CODEP ADVDD& Џ CLI$PRESENTP CLI$_PRESENT LOGLATCHLICMSGP CLI$PRESENTP CLI$_PRESENTJTPRTSYI CLI$PRESENTP CLI$_PRESENT> $$ CLI$GET_VALUEP $$KGETKSIGETCAPP CLI$PRESENTP CLI$_PRESENT5H@ CLI$GET_VALUEP1H@TGETFNB CLI$PRESENTP CLI$_PRESENT7<4 CLI$GET_VALUEP1<44GETEXFt CLI$PRESENTP CLI$_PRESENT0ph CLI$GET_VALUEP1Spht CLI$PRESENTP CLI$_PRESENTT $ CLI$GET_VALUEP8$ OTS$CVT_TU_LP | CLI$PRESENTP CLI$_PRESENTC  CLI$GET_VALUE 3 GETPVn CLI$PRESENTP CLI$_PRESENT@ CLI$PRESENTP CLI$_PRESENTT $@ CLI$GET_VALUEP8$ OTS$CVT_TU_LP  CLI$PRESENTP CLI$_PRESENT< $ CLI$GET_VALUEP |$ OTS$CVT_TU_LP| CLI$PRESENTP CLI$_PRESENT CLI$PRESENTP CLI$_PRESENT< $ CLI$GET_VALUEP $ OTS$CVT_TU_LPP CLI$PRESENTP CLI$_PRESENTT $P CLI$GET_VALUEP8$ OTS$CVT_TU_LP _ CLI$PRESENTP CLI$_PRESENTS $_ CLI$GET_VALUEP7$ OTS$CVT_TU_LP@B ( CLI$GET_VALUEP1) 4 CLI$GET_VALUEP1 |~  SYS$ASSIGNP1|~x< ~ SYS$GETDVIP1|~ SYS$ASSIGN|~$ SYS$ASSIGNP1|~<$~ SYS$GETDVIP1q1|~ݏݏ@ SYS$CREMBXP1?|~<~ SYS$GETDVIP1 SYS$DCLEXHP SYS$CMKRNLl  SYS$CMKRNLPw SYS$CMKRNLP SYS$PUTMSG<|~|~0<|~$<~<$~ SYS$QIOW SYS$CMKRNL<$@ SAFETY013.A  [EVERHART.JTDEMO]JTDMN.OBJ;93N.PS;6Bw ~ SYS$DASSGN<|~|~0<|~$<~<$~ SYS$QIOWtEXEMPT |~|~ݏ|~$C~^^~ (0޴8@H>P^X~` Gh޵p(-xG4GGTGq?#Q"M1m4G@Zk0(0@0CmAM /Gm@Zk(GO@PMXm@ZkM"m4GX@Zk0 G0@Mm@ZkG^~ (0ޤ8@H>P^X~`hޥpxCkG(4GMm"@Zk0ͦtG0@(G@MHm ܢ\" <""VJF ܲ@Zk(-q " Qy`KZ@KmYG QM4G@ZkðMGm@Zk(-4GMm"@Zk0(tG0@@MPO"HmH/""@Zk(ͥ pmMH΢`"PGmVJ|JFHβ\.@ZkMm"4G@Zk0-(0@@MDO"Hm</""tG@Zk(-3GMGm@ZkMG TGm@Zk(m4GM<mJ@ZkGM"m4G|@Zk0-(0@ @MxO"Hmp/""tG@Zk( pxWJvKFp|p0`C|p G<Q<"DqZ@Ky`KmYG<QM4G@ZkM"m4G@Zk0ͦ(tG0@@MO"Hm /""@Zk(M4GmG4" "G@Zk(-Ѣ#0BM"4Gm@Zk0-(0@@MO"Hm/""tG@Zk(mT4t"T"x@KY KM4"8G4"G@ZkM"m4G@Zk0-(-0@0BMX"m4G@Zk0(tG0@@MO"Hm /"X"@Zk(M4GmG4" "G@Zk(-Ѣ#0CM"m4G@Zk0-(0@@MHmO" /""tG@Zk( M4GmG4" "G@Zk(M"M4Gm@Zk0 (-0@Ѣ0BѲM"m4G@Zk0mtG(0@@MHmO" /""@Zk( Mm4GG4" "G@Zk(Mh"m4G@Zk0M(tG0@@MO"Hm /"h"@Zk(M4GmG4" "G@Zk(-<q:`Q?#0YC6Mw"m4G@Zk0tG(0@@MHmO" /"w"@Zk(Mm4GG4" "G@Zk(-&@B"0B@MO"Hm/"@"tG@Zk(m4GQGG1aGTGÜG@MS"Hm03"L"tG@Zk(pMxmGG84"0"G@Zk( >CMG>C88Gޢx"Gm J޶GG@Zk(CpMGxmG4"-"G@Zk(GpMGxmG<4""@Zk( o>CMG>C<8Gx"~G J~GmG@ZkC[(M.(>CTG( G`MD"D"G8G0,x">GG0G<84~ J~8<~ (~hm@ZkCMG TGm@Zk(-Mm<4GJ@Zk>C(M&>CmG s"@_"7"GG@Zk( C>CMmG>C8GޢCG J޶GG@ZkCG(m4G@MxCHm@Zk(MTGm CCM@Zk05@( MG TGm@Zk( MG(mGG"G@ZkG(m>C4G(GD[#D|#:8G0G޶,|"~G0ޢG<<G4~޶`M~8ޢ<~ ޶(~hm@ZkC(-|Q_1?MmGG@Zk(>C"G|# ,|"84G0GG~G0~<4^~ J^<^8~ ~(^`Mhm@Zk(-C65C({'(M쓜#0 '\B{#[B:5CUJRGMTGm@Zk(ͥ_'Z#GAG"1&쓵"AGN"m#@MGmTGP @Zk(>C'#BG ~'^?'>#9#uD `(M`HXCYC@MGGGG@Zk>^ ~CM85CmG0 TG@Zk('?' M{#9#BB0BGG(m4G t""G@Zk(m_'Z# GzCGMTGm@ZkMGmTGP @Zka@ SAFETY013.A  [EVERHART.JTDEMO]JTDMN.OBJ_A;23PS;6Q*(>0UB((55CMGmTG @Zk(MMTGmTG2""0B @Zk('M{#h CGmGTG@ZkMmGP TG@Zk6GTG0uC1M75Cm @Zk(MMtGm22""0 C2 TG@Zk&( "H'B{#B#GMTG` m@ZkMmG =P TG@ZkGG>C~^^~ (0޴8@H>P^X~` GhGM>CҠI MG>C(mTG@Zk ޠC װw9`W7@,_'Z#HB1GMHGG@Zk'#MBHGGG2B@Zk'# JBG8GGG6YC&G#G"4+0;A @K0:A Dˢ?'4 C06Cww4GG^~ (0ޤ8@H>P^X~`hCkG&XK>C"@JB'{# ~B^>`+ Xk|`HXK0fHG_''Z##BBGMGDJHʲ`HGG@Zk>^ ~C>C~^^~ (0޴8@H>P^X~` GhGM>CҠMG>CmTG@Zk- ޠC Ѱq`QF@114GG^~ (0ޤ8@H>P^X~`hCkG>C~^^~ (0޴8@H>P^X~` GhGM>CҠMG>CmTG@Zk- ޠC Ѱq`QF@114GG^~ (0ޤ8@H>P^X~`hCkG>Ch~^^ ޴(G Р4GG^ ޤ(CkG>C~8^@^H~PX`޴hpx>^~G G= =(]0}@HmPMXm@ZkHM:$ H-|0M0=8m@Zk X_'xZ#G05Ca0zCH-90M(=8m@ZkH 0M8m8=@Zk H C7`0M =8m@Zk`M>Chm @Zk CG8@^H~PX`ޤhpx>^~CkHͦC6'x{# 0C%""GC%F4GXkG05`CE?'x9#0YC{GvtKs@meVp@>C>6P)P%8 8@@TTT<TiDe>C/V>CXE6\%ް  ~^>h%X  `MHGG@Zk#>^ ~ޠCGD%;G% \\RJ\RK{SJG\\+D\?GGG\\GD\e0Kz1K[0`KzG\e6d%HHGHve V@CK"0@ `4GPGNdPeD8E$@%T<岬DÜG>C~^ ^(~08@޴HPX>`^h~p GxG-GG ^(~08@ޤHPX>`^h~pxCkG0MG8m@ZkG_D">C4GY K:G"G עxq@K_'Z# ²B'"#BYp K8G",~(^$> A ް ~^>ܢ8Ȳz@_'Z#B GM?"GG@Zk_'(Z#BG ^ M>C ~TGޠ $>(^,~C(m@Zk4GGG>C~^^ ~(08޴@HP>X^`~h GpxG-GG^ ~(08ޤ@HP>X^`~hpxCkGMGm@ZkG_D"G>CY K:G"yq`K   Ϣ&"A²BZp@KYGB,~(^$> ް ~^>4GȲ'{#MA4G^>C ~TGޠ $>(^,~Cm@Zk4G>C~^^ ~(08޴@HP>X^`~h GpxGx-GG^ ~(08ޤ@HP>X^`~hpxCkGMGm@ZkxG_D"'{#AY KC:G"G(xq@KM Ϣ ²&"A4G"Yp K8G"TGm@Zk4GG>C~^^~ (0޴8@H GPXGX|GMm@Zk M G(mTG@ZkX /. 05C MG0 TG(m@Zk MG(mTG @Zk TG0UC MG (m@Zk M(mG TG@Zk /0u C MG TG(m@Zk MG(mTG @Zk 4G0MA8m@Zk MTG(mX- @ZkXM4Gm<MJ@ZkX-Mm84G =J@ZkG^~ (0ޤ8@HPXCk>C~@^H^P~X`h޴px>^~ GG$o/KI@6&0&""AA C7'i4CG4C? _'?'Z#9#AAzAY =@I0@ =>C&0M">GB =GGG@Zk =>CC !C G@H^P~X`hޤpx>^~CkR/[ RKGGGG>C^^~ (޴08 G@޵H_'Z#?'A'z9##Ap`KA_'&Z#'A"G#_'AAZ#A8/'.#A_'W J>&Z#"Y6KA&A:?"A&XRK>C"AGް_'& ~Z#^">A&AC" A%?'!9# A$A(G,GGGGXK&" IA'.#A.GxYKWJV JF YKF'#A>'#A>.J" &8m"A?'9#zSJXRKAG&>C'"#8A0AGG>G0ޢG/,o"4^TG޶G J^<^G8ޢ ޶(^0M@Zk-C&,1'" 㸗{#7B;B A ?E)/wKY:K7G@')?#^ ~ޠC&&""AA'_'#&AZ#G"'AA#.A&X/"AZ YKV?'_'#Z#WJAA?'>9#ڢA>C'VRJٲ&"ްAG ~#^A>GGBGG G $(,&"|CG0`C|C0U_C=>C>C&"<8C0GGG0~,|"<TG4^G~G J^<^8~ ~(^0M8m@Zk-C,Ѡ'#8B8 &'"{#6B;B0B>4G^ ~ޠC TG>^ ~ޠC^~ (ޤ08@ޥHCk)/Z )KF / KX KG ?)/ JY ;K8G)?:GG>C?G~(^0 G8G= =]} CMTGm( @ZkG(08CkG>C~^^~ (GPC@` "#4GG^~ (CkGGG>C~^^ ~(08޴@ GHGMTGXM`m042 EB@ZkG^ ~(08ޤ@HCk>C~^^ ~(G`4G\<bqP<BG^ ~(CkGGG>C~0^8^@~HPX޴`hp GxG>C@PM>>CXm =@Zk =C0M>C8mC@ZkC4G|a4G`M>Chm@Zk >CG08^@~HPXޤ`hpxCkGG>C~^G(GCk>C~^^ ~(0޴8~@ GHG>CM CmTG >C+G TG@ZkCG^ ~(0ޤ8~@HCkGGG>C~^^ ~(08޴@HGP @bCdHCG@|G^ ~(08ޤ@HCkGGG>C~^^ ~(08޴@HP>X^`~hGq?#C|DCC`Dw KCw`HD@@4G/`D96KK\KKGuKG?G^ ~(08ޤ@HP>X^`~hCkGGG>C~^^~ (0޴8G_'4GGG^~ (0ޤ8CkG>C~^^~ (0޴8Gx'4G$8G$G^~ (0ޤ8CkG>C~@^H^P~X`h޴px>^~ GG== ](}0`M>C'#XCG ~ C^G>GG$5@`A B.>^J ~Cy@`M'&#XCGGoSJXRKG[`M /='#XC|G w' ݢ{#[CL`M'#(XCGA9?'9#YCxM IGGG2B@Zk0GGGX,XHI2@>C` 'M&8{#0"CC` G޴G0ޢG4Gm4x"޶TG@H8ޢTG<G ޶(@Zk`-C4q `?' 9#&"9B7BGYKآJ˲G@H^P~X`hޤpx>^~Ck /Y KF8/W 8KWD4xG CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4GAMAC$EMUL_CALL4m#AMAC$EMUL_CALL4@AMAC$EMUL_CALL, GLICMSG, m#LICMSG, @LICMSG4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4'GJTPRTSYI4( m#JTPRTSYI4'@JTPRTSYI4hGx CLI$PRESENT4lm# CLI$PRESENT4t@x CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE, m#KGETKS,GKGETKS,@KGETKS,#GIGETCAP,$m#IGETCAP,#@IGETCAP4G CLI$PRESENT4 m# CLI$PRESENT4@ CLI$PRESENT40GH CLI$GET_VALUE48m# CLI$GET_VALUE4D@H CLI$GET_VALUE4TGAMAC$EMUL_CALL4hm#AMAC$EMUL_CALL4@AMAC$EMUL_CALL4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4!GUNEXEMPT4"m#UNEXEMPT4!@UNEXEMPT4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4 G SYS$DASSGN4m# SYS$DASSGN4 @ SYS$DASSGN4 G8 CLI$PRESENT4(m# CLI$PRESENT44@8 CLI$PRESENT4HGd CLI$GET_VALUE4Pm# CLI$GET_VALUE4`@d CLI$GET_VALUE,m#GETEXF,GGETEXF,@GETEXF4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4G0 OTS$CVT_TU_L4m# OTS$CVT_TU_L4,@0 OTS$CVT_TU_L4PGp CLI$PRESENT 4dm# CLI$PRESENT4l@p CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE,m#GETPV,GGETPV,@GETPV4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT40GH CLI$GET_VALUE48m# CLI$GET_VALUE4D@H CLI$GET_VALUE4PGp OTS$CVT_TU_L4Xm# OTS$CVT_TU_L4l@p OTS$CVT_TU_L4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4G OTS$CVT_TU_L4m# OTS$CVT_TU_L4@ OTS$CVT_TU_L4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT48GP CLI$PRESENT4@m# CLI$PRESENT4L@P CLI$PRESENT4dG| CLI$GET_VALUE4hm# CLI$GET_VALUE4x@| CLI$GET_VALUE4G OTS$CVT_TU_L4m# OTS$CVT_TU_L4@ OTS$CVT_TU_L4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4G OTS$CVT_TU_L4m# OTS$CVT_TU_L4@ OTS$CVT_TU_L48GP CLI$PRESENT4@m# CLI$PRESENT4L@P CLI$PRESENT4dG| CLI$GET_VALUE4hm# CLI$GET_VALUE4x@| CLI$GET_VALUE4G OTS$CVT_TU_L4m# OTS$CVT_TU_L4@ OTS$CVT_TU_L4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4(GD CLI$GET_VALUE40m# CLI$G? ` b cj^DeJ[?1}**>E&83 YB .0#^ M*A'jJG ,+4fTފ{Q:f )V30/[ "G{uW)H6e߾[-ҝd_u9x|ݲ!/~a~9뒇qI<\Q~l'ZoQhgYs^ uG4k- 8XsjzWw]y,aڛ+ z=={-{eF1՞wEРXrOy9huPj⦽6*?Kl"3xʍ9)$b~#oR,f!R+Fh 2PAb`?sJ/YX赕0uN9On.l@cF-2 E(tvjNXg_#7ǃN3՞&?7.i:eʸR@KOҪ?Pscgb_; ' 6QDB5})|?`9pݏdJ;N31goRXgʳ-#R{u -=7#RZCXHYPl>|~07W$<֗hT>6K2խb@`գ֫V[kiGM oS1,ع r?VCuA9cV <ԷW*#|W͛C2L):)Ja zHq:7geZ7+8n #!98 UlT]ցS\b|'ᮅC}cq5tGeメxBSьBgǴH^gK($E8j%m1 7@|P54΂j{BzLA3 B+kT99Mᔲ4H7O良pcJm(+G5cDxʦ[-3F YKy%jSHF-۳OcHNȂ'vZ룮 me ?K瘈4YyGavg0XoR'&,+2f>d1 }LZ&-O[g3'yLfJ|@$<gMi1m꘬}nMX`qLdݘ]裻 "Z /!%[)B7ͤD +{ EطU~QJJ߱ )(b?$'bNgWqfqN7kYc{lG.Ritkr$Ef3;,SVG{;^(axʄ]&;w3>2Db_W3#'Be/Uŝ)ǰOϮ0U"J{P͇k?*,LT㦭i w J:-%mi22#nlh@Rx\i9}^]XZ72J,Yr_D){VRF: oθ$d?SK hj:uPҫG#,(}#7L7ýrQ6xכMۜZYpAǷG" X"T9Ug"OKq[ 2.YO'rn]S繯q衼c7Cݢr",S:@|ڣ|JPL)`qT'mCIrQ 2p/|ePFv<P#M\aOcT&)OnQڛX}-V ']4%K=>2ұNr#5 81,:_Bݠ!lV&H…MS5ͰVE W37Px D]W H~p|i!,ZM4(`*&3wliqpEX*zL?l#5g-̕}`p\4v!om;݈_`wƔ$6YyzqN$sB%m2 2TH>@ջ {z )8R~; ']kAWf9EXeCqѓ"&x1$~3>(^ 9V5S"r{,MΗh#C`;gz{g.FgB\31fV\~q1Ao 6 ;he|5*ʶ\!ZkoeL=-VS:oXTh%\2U>XR;5t=TYaFz:|-=P-bD c~43}jEoo[Cl]e6~'4#e MB̾Fp%P ݏ~7ƟS!ƎBi-j! oS(ws$m ori;3`%Q`w56aݦbe(}tBIl{@ Soq%"RkP8ehCf~XiCL=En${z79\$L#xG!3]]F?iK /1;Ut`?}"Y"4nQ i,)TؼHF):t, &|SKlN'  #鍵 3 װ=_ǽ&rROVqRz-S,jr\`T$=v'0 }3<FuZLLhBK %~g@P'!,"Mq[l^"lsAF>$0 ʶ;{(5-Dta%;{!\~4>]7 ҊYA6T)fA @ꐷ4Lİ&/Pӧ@a8u mdvHYyqpc")`l{|0Oo V[~ Y] a*y[ umN}3+QO>*bx3%ZgL5 ~ ?~*ȧ4Bjv6/qb2B(=}nu9MLQ#@Pݒn+w"g#dǛ_ث# Jr>Ua|O`e ɭ~hNm~7s)sWWğ(tۻ8ZQ8( }C@Ua5>I^=ta`IQ$cGfR}w@{L~9.0nX]Xu:?Fn^1֙ @9a3Xj:w-]V8$Jw>vzD {LfXޖ"6=mS–;y[9;s-8tKswHؒ]~K qHtTٻN:QC[]"|~hڻO?%TazŻk Y`>=ێ%oR56@ɦa n}ݯg>yQPv|f64y>H/6`fprXs-%( |^z>_n[dZbi]PD:̦LY>_ot*[myQŐAlӕ2vj57 xjDWsuy6CiqD3[ZD=5%'_H|/>gc4D}3_O IE,v>";PB!rsGcBA5򊲛8n1p!վK-)V.Sx=n^ʺR;-(@3|% [j@]Ħ,})Z[tc$] F/񦘦^]IY܍O _jjY]D 湟,MG(Tҵ=p}X-8pR]*ts6@<,nsin76rF;7 -Le&2\M'͕&7q%Md|O|vapm65۶R,1 ?*G>R$H-8sד .?Je%cP($XdmgB -a S6GG靤L1?,=xd΍C+-1ߜzYN؍pF$`^vu1` K^g:ܗj QFQˬf~sG!Dr)$wf|iPp|sZ\1&ӰyYGJ>kHPGSZk? r$]/6dCb;!ܓ39[FBB_S}]0ѯ/pE6 t%oUj:*Ŝ 5UKkͦ)>e )'p_ X@qeȤƾVby Ŝt*@or>ΏONt?aHM4UB|Bʾ˅GHAs (ڍajLB2Y[ۑHuD)B2ɑ q\m|.],^:ςm/(\g]wNNʻWs\ ߸rch6?y2 ^W86KU9d|}!v.ሁlr1j+J3 J3?)4Ltֈܬ'! 红unQ < Oqp3ǠVm#/!jDG}enQ\T; 認݄GеխXj/zmQ(hk*fZ Hd\Zjk1FH<˂=h2ԁŃ{!D`CIQwlW@5VA1TX ua3"ZGw#$1K]1Ɉ PqsT75{L y B9^RY`}|ނ౽kW![o ZGXL};f@7AdyO0ī_AG@ygka,I\_8YeF{y $mGEƸE֛Tr[AtV%9 1 t`52P3ٺNTArW)%u&VqbgMޭ/7d wQeiUp`9[(AJ];cQ͠`YL c|a *\C`[9-'i.}\・AEALUA!F^# VY{;UHzmQQ@C%; z~b ۩zv{- 7=p=0Cߢ(*Ld+^vVx*B79ĽkᧆW9Xh'{ -f%uC;M<~UDPpX)SZ_o6,2M\;[eep+K_Y6q &'&H)'gc!YY+{HAbn%0ZsmW {XuK=.c問6cm!|`l;́eVKFElނYjůkTȈS_M)'H/1vf~/2Wg`N2GǻuK)skŝDH£Rvf&%+dvZ@䤃(ڬ1P wLؗ$ FO3BxaE0_x'u%CO$KwXQ< .f0cE`<&+5jv>آr-d`QDvw:CSe3%2 |sO"hŊ on։*OLOC&hƒ?++bGoXCUN `XeHdV/C4eyr*2]|Ԩ|Y-圤/"Ik9@[WڒDI+6GSWkg_~pX׼\z" 3N&Xg0 g̪P s( $zy62x'0z{?rgRrF"7-| _w9Gn*̔3LhdEy6HуXR<ԯNTmq_eץ3 #`,oR#rypVPmB*`Hsd9_BعVE q1EQMD>3>T74RfKg}oQwnֶ )fJJ76lI( jÖzR>T:2t#k{{5jI i5L^mty7?Zg*3 M\s&vC.p<`Vk6.S5=kn@i?p[KW|t4\40_}׸X߶o"E>(7vK A0{G*]WWె9&pcP=K@ݸ}Mu?1)s 5[CAO2\2xMT (:ߋ UB蕞]hRbp9tܡm`FͭXgN@|ٚe{<)t$LTb%₇hNи+GL7{7P3FaC%ҡv &){KHw\:G`i/q|_cрk:Xjģp96Q6O(CqyxA`H8"zO%Y %kFCE0kt6_?ګMŸ @7@ajI.UUhL87f+]N-V &~%a/)kU,YH}.[V >/EWrEV_E/wB-(̙.'3"瘬7sǯ#2/(YaRhK|  iB +{`L2r4$C|JQrB uGr A^ ƒV&}fbCWg`qAYHlX"J!yo 1s=0{_t8:Kv EiVB. !;-<]2 xDMl$x5?}< _Ch+;jR# H$m02)w<̈́9io$nZ#37OݧccRU(Gd,`9d(,/O>7T02#!Y\yulϷtMR<\@{^:IhSQZ[)NAKE'όKm€ QL`63b ve"$] T[WG'𡬿Z(Q*uBDnͶDKVM+ 2?$ L<'a=v"dfCxEE\.+u*9U}w٨ X2wgNK?2Q4)߻;YAMƼu?#ƨ>-\5|yEH QA&GzII}gcq36ո7^Eչ,Ea\Ty94f)};~?Jމg3Y{q#x$qU䥛1J;cwTw-Ry*oLC'm :6y%Xӧ>#4Ɂdj&3JEhT:IW_!ج} 9nb6(Abq5_rv%i_ Eߐ1mSICvgݫWApu Т G/#ZsmM2p1T$2B. eE"w#7ʮT?m!ȋжU#isu,7sדϞIW}Y]'\қ /y{ a-YjBUg`*nh^UJ nRb+FU6&:8e#)OǭJ' ) ^b{(5zK׼v#똍aK,`GOCYAp\`~9܃za Ė~{X餯2[r.&ɸ+ i]O)!DH`gi #lPI>oƂT4u)ǯzXx@MD HDš?0]YK?؋t Ϥyٰt fz4E12_PX oTsw/m8SKs \F 3my^Yk/^Nǁ},N.래> &x`SF* {+l6ܬqƂE#L'~5i!< zorx_|sr!Űr>pCe4N,X0-w!K̊xF1ЧKWR ,6jc&8N{%.S]|`4@KKь+h峕lY&ISK$*n2X]> nH[}re.(@-+]qS-`[?_ON5[HV3, &ѓej?!6?85%.pPAw sT(㳬Vbf/iW, }==mD%UtU{-xW*-FJ'Z|I+Gj yn2Sl9P&QҍlsQ Ж>a⑁%c&J88F'*(D AƉ!y,yp.'.-aQF&lq Lzv1U"*4i!y /3pJV uy#foL~0>^\C+;l+O'xJ|6OT,;?'y88F.eT0-U5EΎ>[v ,)nssw4ngPž28oh0/3?[fdӗ.!9Ɠ(Uܫu]F~حm95ǚ0. 20wQ1|󁷓E3Z4[3`B@auo˗e:J,,?VI}ziA\¶YӥGHWV5:u<0HNDiAqp|(7` TQOpU=4wyfM`m# SYS$CANEXH4=d@h SYS$CANEXH4hG SYS$CMKRNL4pm# SYS$CMKRNL4|@ SYS$CMKRNL4m# SYS$DASSGN4 G SYS$DASSGN4 @ SYS$DASSGN4 G SYS$DASSGN4m# SYS$DASSGN4 @ SYS$DASSGN4/ G!OTS$MOVE4/ !@!OTS$MOVE4#m#@SYS$QIOW4d$Gl$SYS$QIOW4h$@l$SYS$QIOW4h'Gt'SYS$QIOW4l'm#@SYS$QIOW4p'@t'SYS$QIOW4(G( SYS$CMKRNL4(m#P SYS$CMKRNL4(@( SYS$CMKRNL4)G) SYS$CMKRNL4)m# SYS$CMKRNL4)@) SYS$CMKRNL45*G* SCH$IOLOCKW46*m# SCH$IOLOCKW45*@* SCH$IOLOCKW43*G* IOC$SEARCHDEV44*m# IOC$SEARCHDEV43*@* IOC$SEARCHDEV47*G* SCH$IOUNLOCK48*m# SCH$IOUNLOCK47*@* SCH$IOUNLOCK4+G+ SYS$CMKRNL4+m#0 SYS$CMKRNL4+@+ SYS$CMKRNL4//G0OTS$MOVE4/0@0OTS$MOVE440G0SYS$QIOW4x0m#SYS$QIOW40@0SYS$QIOW GETPV""`; GETEXF"  SYS$PUTMSG""`;P  SYS$DCLEXH" LICMSG;;7GETFNB EXTFILT" SYS$DASSGN"AMAC$EMUL_CALL;  SYS$GETDVI"""  OTS$CVT_TU_L""  CLI$PRESENT"  SYS$CMKRNL"=0 ;= =;7 CLI$_PRESENTP  CLI$GET_VALUE"";p SYS$QIOW"""  SYS$ASSIGN"";KGETKS" !UNEXEMPT#IGETCAP%DELFILT" 'JTPRTSYI7LOGLATCH ) SYS$CREMBX"""+EXEMPT;0-OPNFILT"";P/OTS$MOVE=0;=p/ 1IOC$CHAN_TO_CCB"=0p;=p/ =0`;=p/ =0`P;=0D =08 ;=/ =""  3 IOC$SEARCHDEV7 CTL$GL_PCB@ 5 SCH$IOLOCKW 7 SCH$IOUNLOCK=0;=/ 9SCH$QAST ;EXE$ALONPAGVAR=0;= =0p;= =0P ;=` ; = SYS$CANEXH"=0@;= =0!;=0( (;=@ =""";=0 );=0 ="=0p);=P| ;=0);=0 =00P*;=! =0 @+;= =0pp+;=P\( X;=0H,;=P =0(,;=p =0-;=@| =0x-;=@| =0@ `.;= =""" "*[EVERHART.JTDEMO]JTDMN.OBJ_AXP6;14+, .Q/ 4QN\- 0123KPWOO56 ?][7@S][89GHJAAJTDMNV00126-JAN-1997 21:43AMAC V2.1-13h h$LINKAGE\1 ADVDD_CODE ADVDD_DATA $ABS$ . BLANK . . ABS . DSC$K_DTYPE_T( MYFDSC CLI$PRESENT CLI$_PRESENTLOGLATCHLICMSGJTPRTSYI CLI$GET_VALUEKGETKSIGETCAPGETFNBGETEXF OTS$CVT_TU_LGETPV SYS$ASSIGN SYS$GETDVI SYS$CREMBX SYS$DCLEXH SYS$CMKRNL SYS$PUTMSGSYS$QIOW SYS$DASSGNEXEMPTOPNFILTEXTFILTDELFILTUNEXEMPTIOC$CHAN_TO_CCB CTL$GL_PCB SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCKEXE$ALONPAGVARSCH$QAST SYS$CANEXH@ SAFETY013.A  "[EVERHART.JTDEMO]JTDMN.OBJ_AXP6;146Q7>AMAC$EMUL_CALLOTS$MOVE(J(ADVDD(JCHKACE(JpNLBASH(J`NLBASHD(J PNLFIX(J@BASHUCB(JRTNAST(JENDEXT(J ENDDEL(J@0XITHDL(J REDACL(J(GTPRV(J)GTKPRV(J8p)SWPUIC(J`)KSWPU(JP*SJUCB(J@+MYMODE(Jp+JGTPRVS(J,KGTPRVS(J,VBSET(J(-INHDEL(JP-ALWDEL(Jp`.FIXFID8 8 GETEXF"GETPV""OTS$MOVE=@B@  SYS$CREMBX""";@; LICMSG ;;7GETFNB EXTFILT" IGETCAP  SYS$DASSGN"=  SYS$ASSIGN"" SYS$QIOW""" =  CLI$GET_VALUE""  SYS$CMKRNL"=(=0 ;= =;`  CLI$PRESENT"7 CLI$_PRESENT  OTS$CVT_TU_L"" ;  SYS$GETDVI""" P;=AMAC$EMUL_CALL;!KGETKS" #UNEXEMPT;%DELFILT" 'JTPRTSYI7LOGLATCH; ) SYS$DCLEXH"=`+EXEMPT-OPNFILT"" / SYS$PUTMSG""=0;= p/  1IOC$CHAN_TO_CCB"==0hp;=p/ =0H`;=p/ =0(P;=0D =08 ;=/ =""p 3 IOC$SEARCHDEV=p7 CTL$GL_PCB 5 SCH$IOLOCKW 7 SCH$IOUNLOCK=0;=/ 9EXE$ALONPAGVAR=( ;SCH$QAST=0H;= =0(;= =00;=` ;p = SYS$CANEXH"=0@ ;=( =0!;=( =0( (;=@ =""";=0 );=0 ="=0p);=P| `;=0);=0 =00P*;=! =0@+;= =0pp+;=P\( ;=0H,;=P =0(,;=p =0 -;= @| P=0-;=@| =0@ `.;= =( """&  =>C~^^~ (0޴8@H>P^X~` Gh޵px(-G4GGTGq?#Q"8M1@m4G@ZkH(0@0CmAM /Gm@ZkG(O@8M@m@Zk8M"@m4GX@ZkGH 0@MmG@ZkG^~ (0ޤ8@H>P^X~`hޥpxCk(4G8M@m"@ZktGHͦ0@(GMm ܢ\" <""VJF ܲ@Zk(-q " Qy`KZ@KmYG QM4G@ZkxMGm@Zk4G(-8M@m"@ZktGH(0@MPO"mH/""@Zk(ͥ H΢`"PXmVJM|JGFHβ\.m@Zk8M"@m4G@ZkH-(0@MmDO"</""tG@Zk(-3GMGm@ZkGTGMm @Zk4G(mM<mJ@ZkG8M"@m4G|@ZkH-(0@ MxO"mp/""tG@Zk( pxWJvKFp|p0`C|p G<Q<"DqZ@Ky`KmYG<QM4G@Zk8M"@m4G@ZktGHͦ(0@MO"m /""@ZkG(XM`m4GG4" "@Zk(-Ѣ#0B8M"4G@m@ZkH-(0@MO"m/""tG@Zk(mT4t"T"x@KY KM4"8G4"G@Zk8M"@m4G@ZkH-(-0@0B8MX"@m4G@ZktGH(0@MO"m /"X"@ZkG(XM`m4GG4" "@Zk(-Ѣ#0C8M"@m4G@ZkH-(0@MmO" /""tG@ZkG( XM`m4GG4" "@Zk(M8M"@m4G@ZkH (-0@Ѣ0BѲ8M"@m4G@ZktGHm(0@MmO" /""@ZkG( XM4G`mG4" "@Zk(8Mh"@m4G@ZktGHM(0@MO"m /"h"@ZkG(XM`m4GG4" "@Zk(-<q:`Q?#0YC68Mw"@m4G@ZktGH(0@MmO" /"w"@ZkGG(XM`m4G4" "@Zk(-&@B"0BMO"m/"@"tG@Zk(m4GQGG1aGTGGMS"m03"L"tG@Zk(MGmG84"0"G@Zk( >CxMmGG88>Cx"ޢG J޶GG@Zk(CMGmG4"-"G@ZkGG(GMm<4""@Zk( o>CxMG<8>CG~x"G~ JmGG@ZkC[(M.(TG( GMGD"D">CG80,x">GG0G<84~ J~8<~ (~m@ZkCMGmTG @Zk(-Mm<4GJ@Zk>C(M&>C mG s"@_"7"GG@Zk( C>CxMmGG8>CCޢG J޶GG@ZkCG(m4GMxC m@Zk(MTG0 mCCM@ZkGTG05@( Mm @Zk(GXMG`mG"G@ZkG(m4G(GGD[#D|#:>CMG80,|"޶G~G0ޢG<<4~޶~8ޢ<~ ޶(~m@ZkC(-|Q_1?8MG@mG@Zk("G4G|# >C,|"80GG~G0~<4^~ J^<^8~ ~(^Mm@Zk(-C65C(|'(M쓜# '\B{#[B:5CUJRGMTGm@Zk_'Z#(ͥGXm#AG1&쓵"AGN""@GTGMmh @Zk'#(>C'B ~G^?'>#9#uD `(M`HXCYCMGGGG@Zk>^ ~CM85C( GmTG@Zk'?'({#HM9#4GBB0BGPmG t""G@Zk_'Z#(mG TGzCGMm@ZkGTGMmh @ZkaG0UB)(M55CmG TG@ZkTGTG(MhMpm2""0B @Zk'{#(GMTGP CGm@ZkGTGMmh @Zk5GGTG0uC/M75Cm @ZktG(MMm22""0 C2 TG@Zk&'"( {#HBB#MGH TGm@ZkG =TGMmh @Zk>C~^^~ (0޴8@H>P^X~` GhGMҠK>C0MG8mTG>C@Zk ޠC װw:`W8@,_'Z#HB2GMHGG@Zk'#MBHGGG2B@Zk'#GB JG8GG6YC&G#G"+0;A@K0:A Dˢ?'4 C06CGww4GG^~ (0ޤ8@H>P^X~`hCk K&"B@J>C'{# ~B^>(+ k|`HXK0fHG_''Z##BBGMGDJHʲ`HGG@Zk>^ ~C>C~^^~ (0޴8@H>P^X~` GhGpMҠ>CMGmTG>C@Zkp- ޠC Ѱq`QF@114GG^~ (0ޤ8@H>P^X~`hCkG>C~^^~ (0޴8@H>P^X~` GhGPMҠ>CMGmTG>C@ZkP- ޠC Ѱq`QF@114GG^~ (0ޤ8@H>P^X~`hCkG>C0~^^ ޴(G Р4GG^ ޤ(CkG>C~8^@^H~PX`޴hpx>^~G G= =(]0}HmPMXm@ZkM:$ -|0M0=8m@Zk_'pZ# XG05Ca0zC-90M(=8m@Zk 0M8m8=@Zk  C7`0M =8m@Zk`M>Chm @Zk CG8@^H~PX`ޤhpx>^~Ck/GͦC6'p{# 0C%""GC%F4GXkG05`C~E?'p9#0YCyGstKqHmeVn@>C>60)0%   4444i$e>C/V8E6<%>Cް  ~^>@%X  MHGG@Zk#>^ ~ޠCG%;G% \\RJ\RK{SJG\\+\?GGG\\\e0K[0`Kz1KzG\e6D%((G(veV @CK"0@ /@4GQ/GNd0eDE$ %4岬$G>C~^ ^(~08@޴HPX>`^h~p GxG-GG/G ^(~08@ޤHPX>`^h~pxCkG MG(m@ZkG"4GY K:G"G עxq@K_'Z# ²B'"#BYp K8G">C,~(^ A$> ް ~^>ܢȲz_'Z# @B GpM?"GG@Zk_'(Z#BG ^@M>C ~TGޠ $>(^,~CHm@Zk4GG>C~^^ ~(08޴@HP>X^`~h GpxGP-G/G^ ~(08ޤ@HP>X^`~hpxCkGGMGm@ZkPG"GY K:G"yq`K   Ϣ&"A²BZp@KYGB>C,~(^$> ް ~^>4GȲ'M{#A4G^> ~CTGޠ $>(^,~mC@Zk4GGGG>C~^^ ~(08޴@HP>X^`~h GpxG0-G/G^ ~(08ޤ@HP>X^`~hpxCkGGMGm@Zk0G"'{#AY KC:G"(Gxq@KM Ϣ ²&"A4G"Yp K8G"TGm@Zk4G>C~^^~ (0޴8@H GPXG|MGm@ZkGTGMmp @Zk /. 05C MmG TG@ZkGTGMmP @Zk TG0UC MG8 m@ZkGTGMmP @Zk /0u C M0 GmTG@ZkGTGMmP @Zk 0M4G8mA@ZkTGMm- @Zk4GMxm<pMJ@Zk- =pMxm84GJ@ZkG^~ (0ޤ8@HPXCk>C~@^H^P~X`h޴px>^~ GG$o/KI@6&0&""AA C7'i4CG4C? ?'9#_'AZ#YAAz@I =0@ =>C&M">GB =GGG@Zk =>CC !C G@H^P~X`hޤpx>^~CkR/[ RKGGGG>C^^~ (޴08 G@޵H_'Z#A?'z'9##p`KAA&_'Z#'"AG#_'AAZ#8/A'.#AW J_'>&Z#"Y6KA&A:?"A&"XRK>CAGް_'&Z# ~"^A>&AC"A %?'!9#A A$G(G,GGGXK& I"A'.#.AGxYKWJV JF YKF'#A>'#A>.J  &8m"A?'9#zSJXRKAG&>C'"#8A0AGG>G0ޢG/,o"4^TG޶G J^<^G8ޢ ޶(^0M@Zk&"'-Cท{# A,17B;B  )/wKY:K7G@')?#^ ~ޠC&&""AA_''#&Z#AG"'AA#.A&X/"AZ YK'V?_'#Z#AWJA>?'ڢ9#AVRJٲ&">CAGް'#A ~B^G>GGGG  $(,G&"|CG0`C|C0U_C=>C&"<C8G0GG,|"0~TG<G4^G~ J^<^8~ ~(^0M8m@Zk-C,Ѡ'#8B8 &'"{#6B;B0B4G>^ ~ޠC GTG>^ ~ޠC^~ (ޤ08@ޥHCk)/Z )KF / KX KG ?)/ JY ;K8G)?9>C?G~(^0 G8G= =]} 0MC8mTG( @ZkG(08CkG>C~^^~ (GPC@` "#4GG^~ (CkGGG>C~^^ ~(08޴@ GHGMMTG042 EBm@ZkG^ ~(08ޤ@HCk>C~^^ ~(G(4G\<bqP<BG^ ~(CkGGG>C~0^8^@~HPX޴`hp GxG>CM>>Cm =@Zk =MCm>CC@ZkC4G|a4G M>C(m@Zk >CG08^@~HPXޤ`hpxCkGG>C~^GGCk>C~^^ ~(0޴8~@ GHG>CPM CXmTG TG+G >C@ZkCG^ ~(0ޤ8~@HCkGGG>C~^^ ~(08޴@HGP @bCdHCG@|G^ ~(08ޤ@HCkGG@ SAFETY013.A  "[EVERHART.JTDEMO]JTDMN.OBJ_AXP6;146Q>"G>C~^^ ~(08޴@HP>X^`~hGq?#C|DCC`Dw KCw`HD@@4G/`D96KK\KKGuKG?G^ ~(08ޤ@HP>X^`~hCkGGG>C~^^~ (0޴8G`_'4GGG^~ (0ޤ8CkG>C~^^~ (0޴8G8'4G$8G$G^~ (0ޤ8CkG>C~@^H^P~X`h޴px>^~ GG== ](}0M>C'#XCG ~ C^G>GG$5@`A B>^ ~C.Jz@M'&#GXCGoSJXRKG[M /='#XC|G w' ݢ{#[CLM'(#XCGA9?'9#YCM IGGG2B@ZkGG0GX,XHJ2@ >CpM'&{#8"0CCG޴G0ޢG4G TG޶@HTG8ޢ4x"<Gxm ޶(@Zk-C4q `?' 9#&9B"7BYGKآJ˲G@H^P~X`hޤpx>^~CkG /Y KF8/W 8KWD4xG CLI$PRESENT4m#( CLI$PRESENT4@ CLI$PRESENT4GAMAC$EMUL_CALL4 m#(AMAC$EMUL_CALL4@AMAC$EMUL_CALL, GLICMSG, m#(LICMSG, @LICMSG4G CLI$PRESENT4m#( CLI$PRESENT4@ CLI$PRESENT4'GJTPRTSYI4( m#(JTPRTSYI4'@JTPRTSYI4hGx CLI$PRESENT4lm#( CLI$PRESENT4t@x CLI$PRESENT4G CLI$GET_VALUE4m#( CLI$GET_VALUE4@ CLI$GET_VALUE,"m#(KGETKS,!GKGETKS,!@KGETKS, GIGETCAP,m#(IGETCAP, @IGETCAP4G CLI$PRESENT4 m#( CLI$PRESENT4@ CLI$PRESENT40GH CLI$GET_VALUE48m#( CLI$GET_VALUE4D@H CLI$GET_VALUE4dGAMAC$EMUL_CALL4 |m#(AMAC$EMUL_CALL4@AMAC$EMUL_CALL4G CLI$PRESENT4m#( CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m#( CLI$GET_VALUE4@ CLI$GET_VALUE4#GUNEXEMPT4$m#(UNEXEMPT4#@UNEXEMPT4G SYS$CMKRNL4m#( SYS$CMKRNL4@ SYS$CMKRNL4G SYS$DASSGN4m#( SYS$DASSGN4@ SYS$DASSGN4 G8 CLI$PRESENT4(m#( CLI$PRESENT44@8 CLI$PRESENT4HGd CLI$GET_VALUE4Pm#( CLI$GET_VALUE4`@d CLI$GET_VALUE,m#(GETEXF,GGETEXF,@GETEXF4G CLI$PRESENT4m#( CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m#( CLI$GET_VALUE4@ CLI$GET_VALUE4G0 OTS$CVT_TU_L4m#( OTS$CVT_TU_L4,@0 OTS$CVT_TU_L4PGp CLI$PRESENT 4dm#( CLI$PRESENT4l@p CLI$PRESENT4G CLI$GET_VALUE4m#( CLI$GET_VALUE4@ CLI$GET_VALUE,m#(GETPV,GGETPV,@GETPV4G CLI$PRESENT4m#( CLI$PRESENT4@ CLI$PRESENT4G CLI$PRESENT4m#( CLI$PRESENT4@ CLI$PRESENT40GH CLI$GET_VALUE48m#( CLI$GET_VALUE4D@H CLI$GET_VALUE4TGp OTS$CVT_TU_L4Xm#( OTS$CVT_TU_L4l@p OTS$CVT_TU_L4G CLI$PRESENT4m#( CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m#( CLI$GET_VALUE4@ CLI$GET_VALUE4G OTS$CVT_TU_L4m#( OTS$CVT_TU_L4@ OTS$CVT_TU_L4G CLI$PRESENT4 m#( CLI$PRESENT4@ CLI$PRESENT48GP CLI$PRESENT4@m#( CLI$PRESENT4L@P CLI$PRESENT4dG| CLI$GET_VALUE4hm#( CLI$GET_VALUE4x@| CLI$GET_VALUE4G OTS$CVT_TU_L4m#( OTS$CVT_TU_L4@ OTS$CVT_TU_L4G CLI$PRESENT4m#( CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m#( CLI$GET_VALUE4@ CLI$GET_VALUE4G OTS$CVT_TU_L4m#( OTS$CVT_TU_L4@ OTS$CVT_TU_L48GP CLI$PRESENT4@m#( CLI$PRESENT4L@P CLI$PRESENT4dG| CLI$GET_VALUE4hm#( CLI$GET_VALUE4x@| CLI$GET_VALUE4G OTS$CVT_TU_L4m#( OTS$CVT_TU_L4@ OTS$CVT_TU_L4G CLI$GET_VALUE4m#( CLI$GET_VALUE4@ CLI$GET_VALUE4(GD CLI$GET_VALUE40m#( CLI$GET_VALUE4@@D CLI$GET_VALUE4LGl SYS$ASSIGN4Tm#( SYS$ASSIGN4h@l SYS$ASSIGN4xG SYS$GETDVI4|m#( SYS$GETDVI4@ SYS$GETDVI4G SYS$ASSIGN4m#( SYS$ASSIGN4@ SYS$ASSIGN4G SYS$ASSIGN4m#( SYS$ASSIGN4 @ SYS$ASSIGN4 G\ SYS$GETDVI4L m#( SYS$GETDVI 4X @\ SYS$GETDVI4 G SYS$QIOW4 m#(SYS$QIOW4 @ SYS$QIOW4 G SYS$CMKRNL4 m#( SYS$CMKRNL4 @ SYS$CMKRNL4 G$ SYS$DASSGN4 m#( SYS$DASSGN4 @$ SYS$DASSGN40 Gl SYS$CREMBX4@ m#( SYS$CREMBX4h @l SYS$CREMBX4| G SYS$GETDVI4 m#( SYS$GETDVI4 @ SYS$GETDVI4) G SYS$DCLEXH4* m#( SYS$DCLEXH4) @ SYS$DCLEXH4 m#( SYS$CMKRNL4 G SYS$CMKRNL4 @ SYS$CMKRNL4 G, SYS$CMKRNL4 m#( SYS$CMKRNL4( @, SYS$CMKRNL4/4 GP SYS$PUTMSG40< m#( SYS$PUTMSG4/L @P SYS$PUTMSG4| G SYS$QIOW4 m#(SYS$QIOW4 @ SYS$QIOW,+ G EXEMPT,, m#(EXEMPT,+ @ EXEMPT4h Gt SYS$QIOW4l m#(SYS$QIOW4p @t SYS$QIOW4 G SYS$CMKRNL4 m#( SYS$CMKRNL4 @ SYS$CMKRNL4 G0 SYS$CMKRNL4$ m#( SYS$CMKRNL4, @0 SYS$CMKRNL4 G OTS$MOVE4 @ OTS$MOVE4 G SYS$CMKRNL4 m#( SYS$CMKRNL4 @ SYS$CMKRNL,- G0OPNFILT,.m#(OPNFILT,-,@0OPNFILT4PG` SYS$CMKRNL4Xm#( SYS$CMKRNL4\@` SYS$CMKRNL4hGx SYS$CMKRNL4lm#( SYS$CMKRNL4t@x SYS$CMKRNL4G SYS$CMKRNL4m#( SYS$CMKRNL4@ SYS$CMKRNL, GEXTFILT, m#(EXTFILT, @EXTFILT4G SYS$CMKRNL4m#( SYS$CMKRNL4 @ SYS$CMKRNL4G( SYS$CMKRNL4m#( SYS$CMKRNL4$@( SYS$CMKRNL4DG\ SYS$CMKRNL4Lm#( SYS$CMKRNL4X@\ SYS$CMKRNL,%dGDELFILT,&hm#(DELFILT,%@DELFILT4G SYS$CMKRNL4m#( SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL4m#( SYS$CMKRNL 4@ SYS$CMKRNL41DGdIOC$CHAN_TO_CCB42Lm#IOC$CHAN_TO_CCB41`@dIOC$CHAN_TO_CCB4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4,GPOTS$MOVE4L@POTS$MOVE41GIOC$CHAN_TO_CCB42m#IOC$CHAN_TO_CCB41@IOC$CHAN_TO_CCB41GIOC$CHAN_TO_CCB42m#IOC$CHAN_TO_CCB41@IOC$CHAN_TO_CCB45G SCH$IOLOCKW46m#@ SCH$IOLOCKW45@ SCH$IOLOCKW434GD IOC$SEARCHDEV44<m#@ IOC$SEARCHDEV43@@D IOC$SEARCHDEV43tG IOC$SEARCHDEV44|m#@ IOC$SEARCHDEV43@ IOC$SEARCHDEV43G IOC$SEARCHDEV44m#@ IOC$SEARCHDEV43@ IOC$SEARCHDEV43G IOC$SEARCHDEV44m#@ IOC$SEARCHDEV43@ IOC$SEARCHDEV47G SCH$IOUNLOCK48m#@ SCH$IOUNLOCK47@ SCH$IOUNLOCK4hG|OTS$MOVE4x@|OTS$MOVE49GEXE$ALONPAGVAR4:m#EXE$ALONPAGVAR49@EXE$ALONPAGVAR4XGlOTS$MOVE4h@lOTS$MOVE4;GSCH$QAST4<m#SCH$QAST4;@SCH$QAST49GEXE$ALONPAGVAR4:m#EXE$ALONPAGVAR49@EXE$ALONPAGVAR4;dGSCH$QAST4<m#SCH$QAST4;@SCH$QAST49GEXE$ALONPAGVAR4:m# EXE$ALONPAGVAR49@EXE$ALONPAGVAR4;G(SCH$QAST4< m# SCH$QAST4;$@(SCH$QAST@ SAFETY013.A  "[EVERHART.JTDEMO]JTDMN.OBJ_AXP6;146QVBA4#tGUNEXEMPT4$|m#@UNEXEMPT4#@UNEXEMPT4G SYS$CMKRNL4m#@ SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL4m#@ SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL4m#@ SYS$CMKRNL4@ SYS$CMKRNL4G  SYS$CMKRNL4m#@ SYS$CMKRNL4@  SYS$CMKRNL4G$ SYS$CMKRNL4m#@ SYS$CMKRNL4 @$ SYS$CMKRNL40GH SYS$CMKRNL4<m#@ SYS$CMKRNL4D@H SYS$CMKRNL4PG` SYS$CMKRNL( ( 4Tm#@ SYS$CMKRNL4\@` SYS$CMKRNL4=dGx SYS$CANEXH4>lm#@ SYS$CANEXH4=t@x SYS$CANEXH4|G SYS$CMKRNL4m#@ SYS$CMKRNL4@ SYS$CMKRNL4m#@ SYS$DASSGN4G SYS$DASSGN4@ SYS$DASSGN4G SYS$DASSGN4m#@ SYS$DASSGN4@ SYS$DASSGN4 G !OTS$MOVE4!@ !OTS$MOVE4#m#SYS$QIOW4t$G|$SYS$QIOW4x$@|$SYS$QIOW4l'Gx'SYS$QIOW4p'm#SYS$QIOW4t'@x'SYS$QIOW4(G( SYS$CMKRNL4(m# SYS$CMKRNL4(@( SYS$CMKRNL4)G) SYS$CMKRNL4)m#8 SYS$CMKRNL4)@) SYS$CMKRNL45*G* SCH$IOLOCKW46*m# SCH$IOLOCKW45*@* SCH$IOLOCKW43*G* IOC$SEARCHDEV44*m# IOC$SEARCHDEV43*@* IOC$SEARCHDEV47*G* SCH$IOUNLOCK48*m# SCH$IOUNLOCK47*@* SCH$IOUNLOCK4+G+ SYS$CMKRNL4+m# SYS$CMKRNL4+@+ SYS$CMKRNL4/G0OTS$MOVE40@0OTS$MOVE400G0SYS$QIOW40m#pSYS$QIOW40@0SYS$QIOW =t44=4=t444p4=@4= SYS$DISK4P4=@4%SAFETY-W-ACE expected but missing! Regenerate ACEs.=(4=@4=4= ( 44=4=4=H@D=t=(L4=( L4t4=|4=4= =(4=( 44=4=4= = DSC$K_DTYPE_T2= 4 =P DSC$K_DTYPE_T2=(4,= DSC$K_DTYPE_T2=848= H4=UNITT4=FNAM`4= FRACTIONp4= MINIMUM4= MAXIMUM 4= ALDEFONLY4= DEASSIGN4=CBT4= FCNMSK4=MODE4= SHARE4= LICENSE4= INSTALL4= FILENUM4= EXEMPT4=KEY'4= MODIFY54=NLA0:<= DSC$K_DTYPE_T2=D4D= DSC$K_DTYPE_T2=P4P=X=H4X4T4X4= DSC$K_DTYPE_T2=x4x=XJ , DSC$K_DTYPE_T2=4=(= DSC$K_DTYPE_T24=GCEV== 0=@4:4=#4= 4=4= =4=4 (!*[EVERHART.JTDEMO]JTDMN.OBJ_VAX5;8+, ./ 42- 0123 KPWO56Z7k)Z89GHJ 2JTDMNV00126-JAN-1997 21:38 VAX MACRO V5.4-3 MACRO JTDMN(;JT driver open daemon & setup program JTDMN CLI$GET_VALUE CLI$PRESENT CLI$_PRESENTCTL$GL_CCBBASE CTL$GL_PCBDELFILT DSC$K_DTYPE_TEXE$ALONPAGVAREXEMPTEXTFILTGETEXFGETFNBGETPVIGETCAPINI$BRK IOC$SEARCHDEVJTPRTSYIKGETKSLICMSGLOGLATCH MYFDSCOPNFILT OTS$CVT_TU_L SCH$IOLOCKW SCH$IOUNLOCKSCH$QAST SYS$ASSIGN SYS$CANEXH SYS$CMKRNL SYS$CREMBX SYS$DASSGN SYS$DCLEXH9 SYS$GETDVI SYS$PUTMSGSYS$QIOWUNEXEMPT . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ADVDD_DATAPllh<3SYS$DISKQ&QL3%SAFETY-W-ACE expected but missing! Regenerate ACEs.Q4&Q:Q((Q)( QQ((DQ( DltQ((Q( Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T% Q,3UNITQ&Q 83FNAMQ&Q D3FRACTIONQ&QT3MINIMUMQ&Q c3MAXIMUMQ&Q r3ALDEFONLYQ &Q3DEASSIGNQ&Q3CBTQ&Q 3FCNMSKQ&Q 3MODEQ&Q 3SHAREQ&Q 3LICENSEQ&Q 3INSTALLQ&Q 3FILENUMQ&Q 3EXEMPTQ&Q 3KEYQ&Q  3MODIFYQ&Q 3NLA0:Q&Q QP DSC$K_DTYPE_T%,QQ DSC$K_DTYPE_T%<Q DSC$K_DTYPE_T%HQQ@PLP DSC$K_DTYPE_T%pQ , DSC$K_DTYPE_T%QQQ DSC$K_DTYPE_T%ܒGCEVQQQQ 0QQ:# QQQQ ADVDD_CODEP ADVDD& Џ CLI$PRESENTP CLI$_PRESENT LOGLATCHLICMSGP CLI$PRESENTP CLI$_PRESENTJTPRTSYI CLI$PRESENTP CLI$_PRESENT> $$ CLI$GET_VALUEP $$KGETKSIGETCAPP CLI$PRESENTP CLI$_PRESENT5H@ CLI$GET_VALUEP1H@TGETFNB CLI$PRESENTP CLI$_PRESENT7<4 CLI$GET_VALUEP1<44GETEXFt CLI$PRESENTP CLI$_PRESENT0ph CLI$GET_VALUEP1Spht CLI$PRESENTP CLI$_PRESENTT $ CLI$GET_VALUEP8$ OTS$CVT_TU_LP | CLI$PRESENTP CLI$_PRESENTC  CLI$GET_VALUE 3 GETPVn CLI$PRESENTP CLI$_PRESENT@ CLI$PRESENTP CLI$_PRESENTT $@ CLI$GET_VALUEP8$ OTS$CVT_TU_LP  CLI$PRESENTP CLI$_PRESENT< $ CLI$GET_VALUEP |$ OTS$CVT_TU_LP| CLI$PRESENTP CLI$_PRESENT CLI$PRESENTP CLI$_PRESENT< $ CLI$GET_VALUEP $ OTS$CVT_TU_LPP CLI$PRESENTP CLI$_PRESENTT $P CLI$GET_VALUEP8$ OTS$CVT_TU_LP _ CLI$PRESENTP CLI$_PRESENTS $_ CLI$GET_VALUEP7$ OTS$CVT_TU_LP@B ( CLI$GET_VALUEP1) 4 CLI$GET_VALUEP1 |~  SYS$ASSIGNP1|~x< ~ SYS$GETDVIP1|~ SYS$ASSIGN|~$ SYS$ASSIGNP1|~<$~ SYS$GETDVIP1q1|~ݏݏ@ SYS$CREMBXP1?|~<~ SYS$GETDVIP1 SYS$DCLEXHP SYS$CMKRNLl  SYS$CMKRNLPw SYS$CMKRNLP SYS$PUTMSG<|~|~0<|~$<~<$~ SYS$QIOW SYS$CMKRNL<$~ SYS$DASSGN<|~|~0<|~$<~<$~ SYS$QIOWtEXEMPT |~|~ݏ|~$ $$ CLI$GET_VALUEP $$KGETKSIGETCAPP CLI$PRESENTP CLI$_PRESENT5H@ CLI$GET_VALUEP1H@TGETFNB CLI$PRESENTP CLI$_PRESENT7<4 CLI$GET_VALUEP1<44GETEXFt CLI$PRESENTP CLI$_PRESENT0ph CLI$GET_VALUEP1Spht CLI$PRESENTP CLI$_PRESENTT $ CLI$GET_VALUEP8$ OTS$CVT_TU_LP | CLI$PRESENTP CLI$_PRESENTC  CLI$GET_VALUE 3 GETPVn CLI$PRESENTP CLI$_PRESENT@ CLI$PRESENTP CLI$_PRESENTT $@ CLI$GET_VALUEP8$ OTS$CVT_TU_LP  CLI$PRESENTP CLI$_PRESENT< $ CLI$GET_VALUEP |$ OTS$CVT_TU_LP| CLI$PRESENTP CLI$_PRESENT CLI$PRESENTP CLI$_PRESENT< $ CLI$GET_VALUEP $ OTS$CVT_TU_LPP CLI$PRESENTP CLI$_PRESENTT $P CLI$GET_VALUEP8$ OTS$CVT_TU_LP _ CLI$PRESENTP CLI$_PRESENTS $_ CLI$GET_VALUEP7$ OTS$CVT_TU_LP@B ( CLI$GET_VALUEP1) 4 CLI$GET_VALUEP1 |~  SYS$ASSIGNP1|~x< ~ SYS$GETDVIP1|~ SYS$ASSIGN|~$ SYS$ASSIGNP1|~<$~ SYS$GETDVIP1q1|~ݏݏ@ SYS$CREMBXP1?|~<~ SYS$GETDVIP1 SYS$DCLEXHP SYS$CMKRNLl  SYS$CMKRNLPw SYS$CMKRNLP SYS$PUTMSG<|~|~0<|~$<~<$~ SYS$QIOW SYS$CMKRNL<$~ SYS$DASSGN<|~|~0<|~$<~<$~ SYS$QIOWtEXEMPT |~|~ݏ|~$ $$ CLI$GET_VALUEP $$KGETKSIGETCAPP CLI$PRESENTP CLI$_PRESENT5H@ CLI$GET_VALUEP1H@TGETFNB CLI$PRESENTP CLI$_PRESENT7<4 CLI$GET_VALUEP1<44GETEXFt CLI$PRESENTP CLI$_PRESENT0ph CLI$GET_VALUEP1Spht CLI$PRESENTP CLI$_PRESENTT $ CLI$GET_VALUEP8$ OTS$CVT_TU_LP | CLI$PRESENTP CLI$_PRESENTC  CLI$GET_VALUE 3 GETPVn CLI$PRESENTP CLI$_PRESENT@ CLI$PRESENTP CLI$_PRESENTT $@ CLI$GET_VALUEP8$ OTS$CVT_TU_LP  CLI$PRESENTP CLI$_PRESENT< $ CLI$GET_VALUEP |$ OTS$CVT_TU_LP| CLI$PRESENTP CLI$_PRESENT CLI$PRESENTP CLI$_PRESENT< $ CLI$GET_VALUEP $ OTS$CVT_TU_LPP CLI$PRESENTP CLI$_PRESENTT $P CLI$GET_VALUEP8$ OTS$CVT_TU_LP _ CLI$PRESENTP CLI$_PRESENTS $_ CLI$GET_VALUEP7$ OTS$CVT_TU_LP@B ( CLI$GET_VALUEP1) 4 CLI$GET_VALUEP1 |~  SYS$ASSIGNP1|~x< ~ SYS$GETDVIP1|~ SYS$ASSIGN|~$ SYS$ASSIGNP1|~<$~ SYS$GETDVIP1q1|~ݏݏ@ SYS$CREMBXP1?|~<~ SYS$GETDVIP1 SYS$DCLEXHP SYS$CMKRNLl  SYS$CMKRNLPw SYS$CMKRNLP SYS$PUTMSG<|~|~0<|~$<~<$~ SYS$QIOW SYS$CMKRNL<$~ SYS$DASSGN<|~|~0<|~$<~<$~ SYS$QIOWtEXEMPT |~|~ݏ|~$P4P= `4=UNITl4=FNAMx4= FRACTION4= MINIMUM4= MAXIMUM 4= ALDEFONLY4= DEASSIGN4=CBT4= FCNMSK4=MODE4= SHARE4= LICENSE4= INSTALL4= FILENUM&4= EXEMPT44=KEY?4= MODIFYM4=NLA0:T= DSC$K_DTYPE_T2=\4\= DSC$K_DTYPE_T2=h4h=p=`4p4l4p4= DSC$K_DTYPE_T2=4=XJ , DSC$K_DTYPE_T2=4=(= DSC$K_DTYPE_T24=GCEV== 0ؗ=@4:ȗ4=#44= 44=44= =44=Ě4 =>C~^^~ (0޴8@H>P^X~` Gh޵p(-xG4GGTGq?#Q"0M18m4G@Zk(0@0C0mAM /Gm@Zk(GO@Mm@Zk0M"8m4Gp@Zk G0@@MHm@ZkG^~ (0ޤ8@H>P^X~`hޥpxCkG(4G0M8m"@ZkͦtG0@(G@MHm8ܢ,\"8<""VJF8ܲ@Zk(-,q8"8Qy`KZ@KmYG8QM4G@ZkpMGxm@Zk(-4G0M8m"@Zk(tG0@@MhO"Hm`/""@Zk(ͥ mM`΢x"hGmVJ|JF`βt.@Zk0M8m"4G@Zk-(0@@M\O"HmT/""tG@Zk(-3G`MGhm@ZkMG TGm@Zk(m4GMTmJ@ZkG0M"8m4G@Zk-(0@ @MO"Hm/""tG@Zk( WJvKFp0`Cp GTQT"\qZ@Ky`K(mYGTQ M4G@Zk0M"8m4G@Zkͦ(tG0@@M,O"Hm8/""@Zk(M4GmG4"8"G@Zk(-Ѣ#0B0M,"4G8m@Zk-(0@@M,O"Hm/","tG@Zk(Hm,T4t"T"x@KY K@M,4"8G4"G@Zk0M"8m4G@Zk-(-0@0B0Mp"8m4G@Zk(tG0@@M,O"Hm8/"p"@Zk(M4GmG4"8"G@Zk(-Ѣ#0C0M"8m4G@Zk-(0@@MHm,O"8/""tG@Zk( M4GmG4"8"G@Zk(M7"0M4G8m@Zk (-0@Ѣ0BѲ0M"8m4G@ZkmtG(0@@MHm,O"8/""@Zk( Mm4GG4"8"G@Zk(0M"8m4G@ZkM(tG0@@M,O"Hm8/""@Zk(M4GmG4"8"G@Zk(-<q:`Q?#0YC60M"8m4G@ZktG(0@@MHm,O"8/""@Zk(Mm4GG4"8"G@Zk(-&@B"0B@M,O"Hm0/"X"tG@Zk(m4GQGG1aGTGôG@M,S"HmH3"d"tG@Zk(pMxmGGP4"H"G@Zk( >C`MG>CP8Gޢx"Ghm J޶GG@Zk(CpMGxmG04"E"G@Zk(GpMGxmGT4"0"@Zk( o>C`MG>CT8Gx"~G J~GhmG@ZkC[(M.(>CTG( GM\"\"G8G0Dx">GG0GT84~ J~8<~ (~m@ZkCMG TGm@Zk(-MmT4GJ@Zk>C(M&>CmG s"@_"(7"GG@Zk( C>C`MhmG>C(8GޢCG J޶GG@ZkCG(m4G M{C(m@Zk(MTGm CCM@Zk05@( MG TGm@Zk(MGmGG"G@ZkG(m>C4G(G\[#\|#:8G0G޶D|"~G0ޢGT<G4~޶M~8ޢ<~ ޶(~m@ZkC(- Q_1?MmGG@Zk(>C"G |#$D|"84G0GG~G0~(<4^~ J^<^8~ ~(^Mm@Zk(-C65C({'(M# '\B{#[B:5CUJ,RGMTGm@Zk(ͥ_'4Z#G,AG"1&"AG,N"0m#J@MGmTGP @Zk(>C'4#BG ~'^?'>4#49#uD `(M`HXCYC0MGGGG@Zk>^ ~CM85CmG TG,@Zk('?'M4{# 49#BB0BG Gm4G$,t""G@Zk(m_'Z# GzCGMTGm@ZkMGmTGP @Zka0UB((55CMG TGm,@Zk(MMTGmTG ,2""0B $@Zk('M{# CGmGTG@ZkMmGP TG@Zk60uC,M75C mG,TG@Zk(MMtGm 2,2""0 C 2$TG@Zk&( "H'B{#B#GMTGm @ZkMmG =P TG@ZkGTG0CM75Cm ,@Zk(tGPMGXm BB0B ,4"$"@Zk'( {#HB?'9#B_#YMGmTG @ZkMGmTGP @ZkG>C~^^ ~(08޴@HP>X^`~h GpxG-0GG^ ~(08ޤ@HP>X^`~hpxCkG0MG8m@ZkG_D"CY K:G"@ 0Ϣ&"A ²ohOH⳼Ϣ4GȲGoh/{qJ(?'9#A\pKGYTG(mH M@Zk4GG>C~^^~ (0޴8@H>P^X~` GhGM>C0ҠI MG0>C(mTG@Zk ޠC8װ4w9`W7@,_'4Z#HB1GMHGG@Zk'4#MBHGGG2B@Zk' # JBG8GGG6YC&G#G"4+0;A @K0:A Dˢ?'4 C06C0w,w4GG^~ (0ޤ8@H>P^X~`hCkG&XK>C"@JB'{# ~B^>`+ Xk|`HXK0fHG_''Z##BBGMGDJHʲ`HGG@Zk>^ ~C>C~^^~ (0޴8@H>P^X~` GhGhM>C0ҠMG0>CmTG@Zkh- ޠC8Ѱ4 q` QF@01,14GG^~ (0ޤ8@H>P^X~`hCkG>C~^^~ (0޴8@H>P^X~` GhGHM>C0ҠMG0>CmTG@ZkH- ޠC8Ѱ4 q` QF@01,14GG^~ (0ޤ8@H>P^X~`hCkG>C(~^^ ޴(G8Р4G4G^ ޤ(CkG>C~8^@^H~PX`޴hpx>^~G G= =(]0}@mPMXm@ZkM:$ -0M0=8m@Zk X_'xZ#G05Ca0zC-90M(=8m@Zk 0M8m8=@Zk  C7`0M =8m@Zk`M>Chm @Zk CG8@^H~PX`ޤhpx>^~CkͦC6'x{# 0C%""GC%F4GXkG05`CE?'x9#0YC{GvtKs@meVp@>C>6P)P%8 8@@TTT<TiDe>C/V>CXE6\%ް  ~^>h%p  MHGG@Zk#>^ ~ޠCGD%;G% \\RJ\RK{SJG\\+D\?GGG\\GD\e0Kz1K[0`KzG\e6d%HHGHve V@CK"0@ `4GPGNdPeD8E$@%T<DôG>C~^ ^(~08@޴HPX>`^h~p GxG-GG ^(~08@ޤHPX>`^h~pxCkGMGm@ZkG_D">C4GY K:G"G עxq@K_'Z# ²B'"#BYp K8G",~(^$> A ް ~^>ܢ8Ȳz@_'4Z#B GM?"GG@Zk_'@Z#BG ^M>C ~TGޠ $>(^,~Cm@Zk4GGG>C~^^ ~(08޴@HP>X^`~h GpxGx-0GG^ ~(08ޤ@HP>X^`~hpxCkGMGm@ZkxG_D"G>CY K:G"yq`K8 0 Ϣ&"A²BZp@KYGB,~(^$> ް ~^>4GȲ'{#MA4G^>C ~TGޠ $>(^,~Cm@Zk4G>C~^^ ~(08޴@HP>X^`~h GpxGX-0GG^ ~(08ޤ@HP>X^`~hpx =CkGMGm@ZkXG_D"'{#AY KC:G"G@xq@KM 0Ϣ ²&"A4G"Yp K8G"TGm@Zk4GG>C~^^~ (0޴8@H GPXG8 |GpMxm@ZkM GmTG@Zk8 $/. $05C MG TGm@ZkMGmTG` @Zk$TG0UC MGm @ZkMmG` TG@Zk$/0u C MGmTG @ZkMGmTG` @Zk$4G0MA8m@ZkMTGm8- @Zk8M4GmTMJ@Zk8-MmP4GJ@ZkG^~ (0ޤ8@HPXCk>C~@^H^P~X`h޴px>^~ GG<o/KI@,6&0&̗"З"AA C7'i4CG4C? _'?'̗Z#З9#AAzAY =@I0@ =>C&M">GB =GGG@Zk =>CC !C G@H^P~X`hޤpx>^~CkR/[ RKGGGG>C^^~ (޴08 G@޵H_'Z#?'A'z9##Ap`KA_'&җZ#'Aؗ"Gҗ#_'AA՗Z#A8/'.՗#A_'W J>&җZ#ԗ"Y6KA&A:?ԗ"A&XRK>Cؗ"AGް_'& ~̗Z#^З">A&ACЗ" A%?'՗!ؗ9# A$A(G,GGGGXK&җ" IA'.җ#A.GxYKWJV JF YKF'՗#A>'җ#A>.J" &xmԗ"A?'ԗ9#zSJXRKAG&>C'"#8A0AGG>G0ޢG,/Do"4^TG޶G J^<^G8ޢ ޶(^pM@Zk-C&D1'̗" З{#7B;B A ?E)/wKY:K7G@')?̗#^ ~ޠC&&""AA'_'җ#&AؗZ#Gҗ"'AA՗#.A&X/՗"AZ YKV?'_'җ#ԗZ#WJAA?'>ԗ9#ڢA>C'VRJٲ&ؗ"ްAG ~ؗ#^A>GGBGG G $(,&"|CG0`C|C0U_C=>C>C&"<8C0GGG0~D|",<TG4^G~G J^<^8~ ~(^pMxm@Zk-CDѠ'#8B8 &' "{#6B;B0B>4G^ ~ޠC TG>^ ~ޠC^~ (ޤ08@ޥHCk)/Z )KF / KX KG ?)/ JY ;K8G)?:GG>C?G~(^0 G8G= =]} CMTGm( @ZkG(08CkG>C~^^~ (GPC@` "#4GG^~ (CkGGG>C~^^ ~(08޴@ GHGpMTG8M@m042 EB@ZkG^ ~(08ޤ@HCk>C~^^ ~(G4G\<bqP<BG^ ~(CkGGG>C~0^8^@~HPX޴`hp GxG>C`pM>>Cxm =@Zk =CPM>CXmC@ZkC4G|a4GM>Cm@Zk >CG08^@~HPXޤ`hpxCkGG>C~^GGCk>C~^^ ~(0޴8~@ GHG>CM CmTG >C+G TG@ZkCG^ ~(0ޤ8~@HCkGGG>C~^^ ~(08޴@HGP @bCdHCG@|G^ ~(08ޤ@HCkGGG>C~^^ ~(08޴@HP>X^`~hGq?#C|DCC`Dw KCw`HD@@4G/`D96KK\KKGuKG? =( G^ ~(08ޤ@HP>X^`~hCkGGG>C~^^~ (0޴8G_'4GGG^~ (0ޤ8CkG>C~^^~ (0޴8G'4G$8G$G^~ (0ޤ8CkG>C~@^H^P~X`h޴px>^~ GG== ](}0@M>C'4#XCG ~ C^G>GG$5@`A B.>^J ~Cy@@M'>#XCGGoSJXRKG[@M'4#XC|G w' ݢ{#[CL@M'#(XCGA9?'Ě9#YCHM IGGG2B@Zk0GGGX,XHI2@>C@ 'M&8{#0"CC@ G޴G0ޢG4GmLx"޶TG@H8ޢTG<G ޶(@Zk@-CLq `?'89#&4"9B7BGYKآJ˲G@H^P~X`hޤpx>^~Ck /Y KF8/W 8KWD4xG CLI$PRESENT4m#0 CLI$PRESENT4@ CLI$PRESENT4#GAMAC$EMUL_CALL4$m#0AMAC$EMUL_CALL4#@AMAC$EMUL_CALL,'GLICMSG,(m#0LICMSG,'@LICMSG4G CLI$PRESENT4m#0 CLI$PRESENT4@ SAFETY013.A  #[EVERHART.JTDEMO]JTDMNAXPV3.OBJ_A;11QoV>'@ CLI$PRESENT4 GJTPRTSYI4  m#0JTPRTSYI4 @JTPRTSYI4hGx CLI$PRESENT4lm#0 CLI$PRESENT4t@x CLI$PRESENT4G CLI$GET_VALUE4m#0 CLI$GET_VALUE4@ CLI$GET_VALUE,m#0KGETKS,GKGETKS,@KGETKS,GIGETCAP,m#0IGETCAP,@IGETCAP4G CLI$PRESENT4 m#0 CLI$PRESENT4@ CLI$PRESENT40GH CLI$GET_VALUE48m#0 CLI$GET_VALUE4D@H CLI$GET_VALUE4#TGAMAC$EMUL_CALL4$hm#0AMAC$EMUL_CALL4#@AMAC$EMUL_CALL4G CLI$PRESENT4m#0 CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m#0 CLI$GET_VALUE4@ CLI$GET_VALUE4 GUNEXEMPT4m#0UNEXEMPT4 @UNEXEMPT4G SYS$CMKRNL4m#0 SYS$CMKRNL4@ SYS$CMKRNL4G SYS$DASSGN4m#0 SYS$DASSGN4@ SYS$DASSGN4 G8 CLI$PRESENT4(m#0 CLI$PRESENT44@8 CLI$PRESENT4HGd CLI$GET_VALUE4Pm#0 CLI$GET_VALUE4`@d CLI$GET_VALUE,.m#0GETEXF,-GGETEXF ,-@GETEXF4G CLI$PRESENT4m#0 CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m#0 CLI$GET_VALUE4@ CLI$GET_VALUE4G0 OTS$CVT_TU_L4m#0 OTS$CVT_TU_L4,@0 OTS$CVT_TU_L4PGp CLI$PRESENT4dm#0 CLI$PRESENT4l@p CLI$PRESENT4G CLI$GET_VALUE4m#0 CLI$GET_VALUE4@ CLI$GET_VALUE,2m#0GETPV,1GGETPV,1@GETPV4G CLI$PRESENT4m#0 CLI$PRESENT4@ CLI$PRESENT4G CLI$PRESENT4m#0 CLI$PRESENT4@ CLI$PRESENT40GH CLI$GET_VALUE48m#0 CLI$GET_VALUE4D@H CLI$GET_VALUE4PGp OTS$CVT_TU_L4Xm#0 OTS$CVT_TU_L4l@p OTS$CVT_TU_L4G CLI$PRESENT4m#0 CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m#0 CLI$GET_VALUE4@ CLI$GET_VALUE4G OTS$CVT_TU_L4m#0 OTS$CVT_TU_L4@ OTS$CVT_TU_L4G CLI$PRESENT4m#0 CLI$PRESENT4@ CLI$PRESENT48GP CLI$PRESENT4@m#0 CLI$PRESENT4L@P CLI$PRESENT4dG| CLI$GET_VALUE4hm#0 CLI$GET_VALUE4x@| CLI$GET_VALUE4G OTS$CVT_TU_L4m#0 OTS$CVT_TU_L4@ OTS$CVT_TU_L4G CLI$PRESENT4m#0 CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m#0 CLI$GET_VALUE4@ CLI$GET_VALUE4G OTS$CVT_TU_L4m#0 OTS$CVT_TU_L4@ OTS$CVT_TU_L48GP CLI$PRESENT4@m#0 CLI$PRESENT4L@P CLI$PRESENT4dG| CLI$GET_VALUE4hm#0 CLI$GET_VALUE4x@| CLI$GET_VALUE4G OTS$CVT_TU_L4m#0 OTS$CVT_TU_L4@ OTS$CVT_TU_L4G CLI$GET_VALUE4m#0 CLI$GET_VALUE4@ CLI$GET_VALUE4(GD CLI$GET_VALUE40m#0 CLI$GET_VALUE4@@D CLI$GET_VALUE4!LGl SYS$ASSIGN4"Pm#0 SYS$ASSIGN4!h@l SYS$ASSIGN 4xG SYS$GETDVI4 m#0 SYS$GETDVI4@ SYS$GETDVI4!G SYS$ASSIGN4"m#0 SYS$ASSIGN4!@ SYS$ASSIGN4!G SYS$ASSIGN4"m#0 SYS$ASSIGN4! @ SYS$ASSIGN4 G\ SYS$GETDVI4 P m#0 SYS$GETDVI4X @\ SYS$GETDVI4 G SYS$QIOW4 m#0SYS$QIOW4 @ SYS$QIOW4 G SYS$CMKRNL4 m#0 SYS$CMKRNL4 @ SYS$CMKRNL4 G$ SYS$DASSGN4 m#0 SYS$DASSGN4 @$ SYS$DASSGN4)0 Gl SYS$CREMBX4*@ m#0 SYS$CREMBX4)h @l SYS$CREMBX4| G SYS$GETDVI4  m#0 SYS$GETDVI4 @ SYS$GETDVI4 G SYS$DCLEXH4 m#0 SYS$DCLEXH4 @ SYS$DCLEXH4 m#0 SYS$CMKRNL4 G SYS$CMKRNL4 @ SYS$CMKRNL4 G, SYS$CMKRNL4 m#0 SYS$CMKRNL4( @, SYS$CMKRNL40 GP SYS$PUTMSG48 m#0 SYS$PUTMSG4L @P SYS$PUTMSG4 G SYS$QIOW4 m#0SYS$QIOW4 @ SYS$QIOW,+ G EXEMPT,, m#0EXEMPT,+ @ EXEMPT4h Gt SYS$QIOW4l m#0SYS$QIOW4p @t SYS$QIOW4 G SYS$CMKRNL4 m#0 SYS$CMKRNL4 @ SYS$CMKRNL4 G0 SYS$CMKRNL4 m#0 SYS$CMKRNL4, @0 SYS$CMKRNL4/ G OTS$MOVE4/ @ OTS$MOVE4 G SYS$CMKRNL4 m#0 SYS$CMKRNL4 @ SYS$CMKRNL, G0OPNFILT,m#0OPNFILT,,@0OPNFILT4LG` SYS$CMKRNL4Xm#0 SYS$CMKRNL4\@` SYS$CMKRNL4`Gx SYS$CMKRNL4hm#0 SYS$CMKRNL4t@x SYS$CMKRNL4G SYS$CMKRNL4m#0 SYS$CMKRNL4@ SYS$CMKRNL,GEXTFILT,m#0EXTFILT,@EXTFILT4G  SYS$CMKRNL4m#0 SYS$CMKRNL4@  SYS$CMKRNL4 G$ SYS$CMKRNL4m#0 SYS$CMKRNL 4 @$ SYS$CMKRNL44GT SYS$CMKRNL4@m#0 SYS$CMKRNL4P@T SYS$CMKRNL,%XGDELFILT,&`m#0DELFILT,%@DELFILT4G SYS$CMKRNL4m#0 SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL4m#0 SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL4m#0 SYS$CMKRNL4 @ SYS$CMKRNL, GHCREFILT,  m#0CREFILT, D@HCREFILT4xG SYS$CMKRNL4m#0 SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL4m#0 SYS$CMKRNL4@ SYS$CMKRNL45`GpEXE$ALONPAGVAR46hm#EXE$ALONPAGVAR45l@pEXE$ALONPAGVAR44 m#SCH$QAST43(G4SCH$QAST430@4SCH$QAST47GIOC$CHAN_TO_CCB48m#IOC$CHAN_TO_CCB47@IOC$CHAN_TO_CCB4/G OTS$MOVE4/@ OTS$MOVE4/G4OTS$MOVE4/0@4OTS$MOVE4/|GOTS$MOVE4/@OTS$MOVE47G4IOC$CHAN_TO_CCB48(m#IOC$CHAN_TO_CCB470@4IOC$CHAN_TO_CCB47G$IOC$CHAN_TO_CCB48m#IOC$CHAN_TO_CCB47 @$IOC$CHAN_TO_CCB4;TGh SCH$IOLOCKW4<`m#P SCH$IOLOCKW4;d@h SCH$IOLOCKW49G IOC$SEARCHDEV4:m#P IOC$SEARCHDEV49@ IOC$SEARCHDEV49G IOC$SEARCHDEV4:m#P IOC$SEARCHDEV49@ IOC$SEARCHDEV49G IOC$SEARCHDEV4:m#P IOC$SEARCHDEV49@ IOC$SEARCHDEV49G IOC$SEARCHDEV4: m#P IOC$SEARCHDEV49@ IOC$SEARCHDEV4=G, SCH$IOUNLOCK4> m#P SCH$IOUNLOCK4=(@, SCH$IOUNLOCK4/GOTS$MOVE4/@OTS$MOVE45GEXE$ALONPAGVAR46m#EXE$ALONPAGVAR45@EXE$ALONPAGVAR4/GOTS$MOVE4/@OTS$MOVE43G0SCH$QAST44(m#SCH$QAST43,@0SCH$QAST45GEXE$ALONPAGVAR46m#EXE$ALONPAGVAR45@EXE$ALONPAGVAR43GSCH$QAST44m#SCH$QAST  43@SCH$QAST45GEXE$ALONPAGVAR46m#EXE$ALONPAGVAR45@EXE$ALONPAGVAR43 Gd SCH$QAST44\ m#SCH$QAST43` @d SCH$QAST4  G UNEXEMPT4 m# UNEXEMPT4  @ UNEXEMPT4 G SYS$CMKRNL4 m#  SYS$CMKRNL4 @ SYS$CMKRNL4 G! SYS$CMKRNL4!m#  SYS$CMKRNL4 !@! SYS$CMKRNL4!G(! SYS$CMKRNL4!m#  SYS$CMKRNL4$!@(! SYS$CMKRNL48!GL! SYS$CMKRNL4@!m#  SYS$CMKRNL4H!@L! SYS$CMKRNL4L!Gd! SYS$CMKRNL4P!m#  SYS$CMKRNL@ SAFETY013.A  #[EVERHART.JTDEMO]JTDMNAXPV3.OBJ_A;11Q˼F4`!@d! SYS$CMKRNL4p!G! SYS$CMKRNL4x!m#  SYS$CMKRNL4!@! SYS$CMKRNL4!G! SYS$CMKRNL4!m#  SYS$CMKRNL4!@! SYS$CMKRNL4?!G! SYS$CANEXH4@!m#  SYS$CANEXH4?!@! SYS$CANEXH4!G! SYS$CMKRNL4!m#  SYS$CMKRNL4!@! SYS$CMKRNL4!m#  SYS$DASSGN4!G! SYS$DASSGN4!@! SYS$DASSGN4!G" SYS$DASSGN4!m#  SYS$DASSGN4"@" SYS$DASSGN4/4#G`#OTS$MOVE4/\#@`#OTS$MOVE4&m#SYS$QIOW4&G&SYS$QIOW4&@&SYS$QIOW4)G)SYS$QIOW4)m#SYS$QIOW4)@)SYS$QIOW4 +G4+ SYS$CMKRNL4(+m# SYS$CMKRNL40+@4+ SYS$CMKRNL4+G, SYS$CMKRNL4+m# SYS$CMKRNL4,@, SYS$CMKRNL4;,G- SCH$IOLOCKW4<,m#0 SCH$IOLOCKW4;,@- SCH$IOLOCKW49-G- IOC$SEARCHDEV4:-m#0 IOC$SEARCHDEV49-@- IOC$SEARCHDEV4=0-GD- SCH$IOUNLOCK4>8-m#0 SCH$IOUNLOCK4=@-@D- SCH$IOUNLOCK4-G$. SYS$CMKRNL4-m#p SYS$CMKRNL4 .@$. SYS$CMKRNL4/<2GX2OTS$MOVE4/T2@X2OTS$MOVE42G2SYS$QIOW42m#SYS$QIOW42@2SYS$QIOWX X OPNFILT""EXTFILT";0  SYS$PUTMSG"";P  SYS$DCLEXH"7LOGLATCHp JTPRTSYI CREFILT"" UNEXEMPTIGETCAPKGETKS";  SYS$DASSGN"; SYS$QIOW"""  OTS$CVT_TU_L""7 CLI$_PRESENT   SYS$CMKRNL"=0 ;= =;  CLI$PRESENT"  CLI$GET_VALUE""0;  SYS$GETDVI""" ! SYS$ASSIGN""#AMAC$EMUL_CALL;%DELFILT"7GETFNB;;'LICMSG;  ) SYS$CREMBX"""+EXEMPTP;P-GETEXF"/OTS$MOVE1GETPV""=0;= 3SCH$QAST 5EXE$ALONPAGVAR=0@;=p/ 7IOC$CHAN_TO_CCB"=0`;=p/ =0@;=p/ =0 ;=0D =08 ;=/ ="" 9 IOC$SEARCHDEV7 CTL$GL_PCB ; SCH$IOLOCKW = SCH$IOUNLOCK=0 ;=/ =0p@;= =0P;= =00p ;=` 0;P ? SYS$CANEXH"=0@@";= =0#;=0( *;=@ =""";=0 P+;=0 ="=0+;=P| ;=0@,;=0 =00,;=! =0-;= =0p-;=P\( ;=0H`.;=P =0(.;=p =0x/;=@| =0X@0;=@| =0@ 0;= ="""  0 *[EVERHART.JTDEMO]JTDMNNT.OBJ_A;1+, .Q/ 4QPF- 0123KPWOQ56\.17`".189GHJ$AAJTDMNV00129-MAY-1996 21:23AMAC X3.0-18` ` . ABS . . BLANK . $ABS$\ ADVDD_DATA/ ADVDD_CODE$LINKAGE DSC$K_DTYPE_T( MYFDSC CLI$PRESENT CLI$_PRESENTLOGLATCHLICMSGJTPRTSYI CLI$GET_VALUEKGETKSIGETCAPGETFNBGETEXF OTS$CVT_TU_LGETPV SYS$ASSIGN SYS$GETDVI SYS$CREMBX SYS$DCLEXH SYS$CMKRNL SYS$PUTMSGSYS$QIOW SYS$DASSGNOPNFILTEXTFILTDELFILTCREFILTIOC$CHAN_TO_CCB CTL$GL_PCB SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCKEXE$ALONPAGVARINI$BRKSCH$QAST SYS$CANEXHAMAC$EMUL_CALLOTS$MOVE(JADVDD(JXCHKACE(JNLBASH(JNLFIX(JBASHUCB(JpRTNAST(JENDEXT(JENDDEL(J0ENDCRE(J  XITHDL(J`"REDACL(J &GTPRV(J&GTKPRV(J@ 'SWPUIC(Jp'KSWPU(J(SJUCB(J )MYMODE(J`)JGTPRVS(J*KGTPRVS(J*VBSET(J8p+INHDEL(JX+ALWDEL(Jxp,FIXFID =444=4=444p404=@4=SYS$DISKp=(H4==  4=4= ( H4p4=4=4=@8=4=( 4@=(  444=<4=h4= =(t4=( t44=4=4= = DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= 4=UNIT4=FNAM4= FRACTION 4= MINIMUM/4= MAXIMUM >4= ALDEFONLYO4= DEASSIGN_4=CBTj4= FCNMSKx4=MODE4= SHARE4= LICENSE4= INSTALL4= FILENUM4= EXEMPT4=KEY4= MODIFY4=NLA0:=P DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4==4444= DSC$K_DTYPE_T2=848=XJ , DSC$K_DTYPE_T2=4=(=GCEV=X= 0p=@4:`4=#̖4= ̖4=̗4= L=̘4=\4 =#~^^~ (0޴8@H>P^X~`h GGmM?#: "pͦ ##Mz ?#HMPm@ZkG8 0@0CmM":";Mm@Zk-?#Mm@ZkG ?#HMPm@ZkG80@?#Mm@ZkGG^~ (0ޤ8@H>P^X~`hp#k ?#HMPm@ZkG8M0@M- #m[Z@K\G[?#XM`m@ZkG ͦ{J\KG ?#hMpm@ZkG?#XM`m@ZkG ?#HMPm@ZkG8 0@M - ?#XM`m@ZkG54M: v KWJF8Hm";"<Mm@Zk0 ?#HMPm@ZkG8-0@(Mx-0 ?#XM`m@ZkG(?"p ?#(M0m@ZkGhmJG?#Mm@ZkG|hM( ?#HMPm@ZkG8 0@M-( ?#XM`m@ZkG7(M:x v KWJFx ?#8M@m@ZkG8 ?#HMPm@ZkG8M0@M-8 ?#XM`m@ZkG"_"- ?#Mm@ZkGèm[@p-"0CͦPm0 ?#HMPm@ZkG8-0@M-0 ?#XM`m@ZkGm[-w@KXKGͦv"M- ?#XM`m@ZkGp ?#HMPm@ZkG8 0@0CP ?#HMPm@ZkG8M0@M-P ?#XM`m@ZkG"_"- ?#Mm@ZkGÿÈm[@-"0C ?#HMPm@ZkG80@M- ?#XM`m@ZkG "_"@- ?#Mm@ZkG@ͦh ?#HMPm@ZkG8M0@-0BͦH ?#HMPm@ZkG8m0@M-H ?#XM`m@ZkG "_"- ?#Mm@ZkG  ?#HMPm@ZkG8M0@M-  ?#XM`m@ZkG"_"p- ?#Mm@ZkGQPpm[M@p-"0CHͦ@ ?#HMPm@ZkG8m0@M-@ ?#XM`m@ZkG"_"- ?#Mm@ZkG-,|)`M:'@B#08C#M-x ?#XM`m@ZkGM: v KWJFh\0@C\è-#È"ײEp #|MM8- ?#XM`m@ZkG}GG-8 ?#Mm@ZkGr#""m_"-9 JG"#ޢ޶?#Mm@Zk #GZGG-` ?#Mm@ZkGGGh- ?#Mm@ZkGF#""m_"h< JG"#~^~^?#Mm@Zk #G.-5Ø"ײ###0_#^->GGm_"h7 JG"0ޢ4޶8ޢ< ޶( ?#XM`m@Zk@#G?"p ?#(M0m@ZkGhMJG?#Mm@ZkG#"&s"@_"-"# ޢ޶?#HMPm@Zk#G#""Xm_"-9 JG"#ޢ޶?#Mm@Zk #G ?#Mm@ZkG?"( ?#(M0m@ZkG-h ?#(M0m@ZkG05@?"p ?#(M0m@ZkG ͦ"_"?"@ ?#(M0m@ZkGvØm_#[###0"ͦ޶GGm_"hm; JG"0^4ޢ^޶8^<ޢ ^(޶ ?#XM`m@Zk@#Ghm[@pø-m###_#^->GGm!_"7 JG"04~~8<~ (~ ?#XM`m@Zk@#GMZ#:65 Cba#?"0 ?#(M0m@ZkG|)`M- "?#xm##@G?" ?#(M0m@ZkG# ~^>u`HG`H`HGGM@Zk>^ ~##?" ?#(M0m@ZkGmMH- 0B#|?#x@ SAFETY013.A   [EVERHART.JTDEMO]JTDMNNT.OBJ_A;1TF;1QTV>Mm@ZkGxM?" ?#(M0m@ZkG?" ?#(M0m@ZkGs"0UB)#m?" ?#(M0m@ZkG- 0Cm_#[?#Mm =@ZkGx-?" ?#(M0m@ZkG?" ?#(M0m@ZkGD"0uC-#Mz?" ?#(M0m@ZkG- u0`CuM?#:?#Mm@ZkGHx"x?" ?#(M0m@ZkG?" ?#(M0m@ZkG-9#0C."?" ?#(M0m@ZkGM- 0B#|?#Mm@ZkGHx-Y#x?" ?#(M0m@ZkG?" ?#(M0m@ZkGG#~^^~ (0޴8@H>P^X~`h GGܠGJ#GmG#?#(M0m@Zk #GޠG# Mڰ&@ 8w G1`ͦ "V G,@0 ,HG'HGGxM@Zk HGG2BxM@Zk *8 67C+ G"06A@0P^X~`hp#k#~^^~ (0޴8@H>P^X~`h GGPܠG"#GPmG#?#Mm@Zk #GޠG#Mڰ& 88$"ע 8$#|f`PM:( 8 G^~ (0ޤ8@H>P^X~`hp#k#~^^ ޴(GܠG[:& G^ ޤ(0#kGGG`#~8^@^H~PX`޴hpx>^~ GG= =(]0}PGHm`Mhm@ZkM:* @ pע0=G0M8m@Zk Xa`K05`CA?'x9#0YC@ 8(=G0M8m@Zk/(7=G0M8m@Zk&%Hͦ6 C"` =G0M8m@Zk##pMxm@Zk #G#G8@^H~PX`ޤhpx>^~#k À<Cm[@%'x#08CŢFŲe_#zGe X K05C&x"0BGePmG@M: zy#>@ 8 GPP8ɢ8Ų@@TiTeTI<ET)D%> G# آX\Ų#ް ~^> h%G HGGM@Zk>^ ~ޠ #EBGE?#FˢŲ\kR`K\EyS`KZR@KYG\E\\Ţ|JVJF\Ų\K0@K\%x1@KY0 K8G\%עdŲH|HeM: HFHxͦ Gm[@! CK"0@ ͦm[`E[Ì =$P%8@(ͦT(m[<E(-DGGG#~^ ^(~08@޴HPX>`^h~px GGhGhm{#[@ G ^(~08@ޤHPX>`^h~px#k$? M(m@ZkT$#WJFhͦ," hm{#[ Bh-Ⳁ"{qJ\pKG#,~(^$> ް ~^>M:( "0M8m@Zk@H! @-?"GG`M@Zk #J >^ ~ޠ $>(^,~0#C_ @MHm@Zk GGG#~^ ^(~08@޴HPX>`^h~px GGGmH{#[@ G ^(~08@ޤHPX>`^h~px#k$? Mm@ZkA$#WJFͦP" mH{#[ B-Ⳁ"{qJ\pKG#,~(^$> ް ~^>M:( #"ײ>^ ~ޠ $>(^,~0#C_ Mm@Zk GG#~^ ^(~08@޴HPX>`^h~px GGGmH{#[@ G ^(~08@ޤHPX>`^h~px#k$? Mm@Zk$$#WJFͦX" mH{#[ B-Ⳁ"{qJ\pKGM:( "C_ Mm@Zk GGG#~^ ^(~08@޴HPX>`^h~px GGGmH{#[@ G =\T ^(~08@ޤHPX>`^h~px#k$? Mm@Zk+$#WJFͦX" mH{#[ B-עȲ#|hⳀ#vqKWpJF`|h`M?#:C_ Mm@Zk à#~^^ ~(08޴@HPX GG|`?"8 ?#Mm@ZkG-H 8Hͦ05C?" ?#Mm@ZkG?" ?#Mm@ZkGH-0UC?" ?#Mm@ZkG?" ?#Mm@ZkGH|0u`C?"X ?#Mm@ZkG?" ?#Mm@ZkGH ?# M(m@ZkG0-8 ?#Mm@ZkG0mJG?#Mm@ZkGMJG?#Mm@ZkGG^ ~(08ޤ@HPX`#kGGG`#~8^@^H~PX`޴hpx>^~ GG/K)@h-0 Тز =8m#$@ = #?#(MGG2 pM@ZkG#G8@^H~PX`ޤhpx>^~#kR/[ RKGGG#^^~ (޴08 G M0-( ͦV/ZVK6/Y 6K6?V?"עVRJײ#ް ~^> - 0x   $(,GGGH m;0 C; 0UB0####@GGm2_"0M: JG"0ޢ4޶8ޢ< ޶( ?#Mm@Zk@#Gm۠G (M:  8ͦ0B>^ ~ޠ # ^~ (ޤ08@#k>^ ~ޠ # GG#~0^8^@~HPX GG?G= =]} ="( ?#(M0m@ZkGG08^@~HPX`#kGG#~^^~ (GPG@C` "# G^~ (0#kGG#~^^ ~(08޴@H GG(#(m{#;(- ?#Mm@ZkGG^ ~(08ޤ@HP#k#~^^ ~(G\G<bGqP<B G^ ~(0#kG#~0^8^@~HPX޴`hpx GG#>G# =Mm@Zk = #C#Mm@Zk ##|a ##Mm@Zk#G#>G#G08^@~HPXޤ`hpx#kGG#~^GGG #kGGG#~^^ ~(0޴8~@H GG>C C# +G #?#@MHm@Zk#GCG^ ~(0ޤ8~@HP#kG#~^^ ~(08޴@HGPG @bdHCCG |G^ ~(08ޤ@HP#kGG#~^^ ~(08޴@HP>X^`~hGCqG?#|DCCw KD@`DCw`H@`D/KK4G96KGuK\KG?@G^ ~(08ޤ@HP>X^`~hp#kG#~^^~ (0޴8GG_'Z#G G^~ (0ޤ8@#kGGG#~^^~ (0޴8GG$'#8G$ G^~ (0ޤ8@#kGGG`#~8^@^H~PX`޴hpx>^~ GG== ](}0 C( # ~^>G  $5@9#>^ ~#+#K/YKf G(- 9#wSJXRKG[Zݢ(m {# ]:0 8P 07 G(GAH IGG2BXM@ZkGBG0=Y,YHA G:@@0ͤ###޴GG8m2_"@H"0ޢ4޶8ޢ< ޶( ?#Mm@Zk@#G 8m[ @(-9# ("עJ˲G8@^H~PX`ޤhpx>^~#k.X JXG.X JXD4G CLI$PRESENT4m# CLI$PRESENT 4@ CLI$PRESENT4GAMAC$EMUL_CALL4m#AMAC$EMUL_CALL4@AMAC$EMUL_CALL,%GLICMSG,&m#LICMSG,%@LICMSG4G CLI$PRESENT4 m# CLI$PRESENT4@ CLI$PRESENT4(G4JTPRTSYI4,m#JTPRTSYI40@4JTPRTSYI4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE,G KGETKS,m#KGETKS,@ KGETKS,G$IGETCAP,m#IGETCAP, @$IGETCAP40G< CLI$PRESENT44m# CLI$PRESENT48@< CLI$PRESENT4\Gh CLI$GET_VALUE4`m# CLI$GET_VALUE4d@h CLI$GET_VALUE4GAMAC$EMUL_CALL4m#AMAC$EMUL_CALL4@AMAC$EMUL_CALL4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL44G@ SYS$DASSGN48m# SYS$DASSGN4<@@ SYS$DASSGN4\Gh CLI$PRESENT4`m# CLI$PRESENT4d@h CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE,+GGETEXF,,m#GETEXF,+@GETEXF4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4 8GD OTS$CVT_TU_L4<m# OTS$CVT_TU_L4 @@D OTS$CVT_TU_L4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE,-GGETPV,.m#GETPV,- @GETPV4G( CLI$PRESENT4 m# CLI$PRESENT4$@( CLI$PRESENT4PG\ CLI$PRESENT4Tm# CLI$PRESENT4X@\ CLI$PRESENT4|G CLI$GET_VALUE 4m# CLI$GET_VALUE4@ CLI$GET_VALUE4 G OTS$CVT_TU_L4m# OTS$CVT_TU_L4 @ OTS$CVT_TU_L4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G  CLI$GET_VALUE4m# CLI$GET_VALUE4@  CLI$GET_VALUE4 <GH OTS$CVT_TU_L4@m# OTS$CVT_TU_L4 D@H OTS$CVT_TU_L4hGt CLI$PRESENT4lm# CLI$PRESENT4p@t CLI$PRESENT4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4 G OTS$CVT_TU_L4m# OTS$CVT_TU_L4 @ OTS$CVT_TU_L4G( CLI$PRESENT4 m# CLI$PRESENT4$@( CLI$PRESENT4HGT CLI$GET_VALUE4Lm# CLI$GET_VALUE4P@T CLI$GET_VALUE4 pG| OTS$CVT_TU_L4tm# OTS$CVT_TU_L4 x@| OTS$CVT_TU_L4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4 G OTS$CVT_TU_L4m# OTS$CVT_TU_L4 @ OTS$CVT_TU_L4`Gl CLI$GET_VALUE4dm# CLI$GET_VALUE4h@l CLI$GET_VALUE4G CLI$GET_VALUE4m# CLI$GET_VALUE4 @ CLI$GET_VALUE4$ G0 SYS$ASSIGN4( m# SYS$ASSIGN4, @0 SYS$ASSIGN4  G SYS$GETDVI4  m# SYS$GETDVI4  @ SYS$GETDVI4 G SYS$ASSIGN4 m# SYS$ASSIGN4 @ SYS$ASSIGN4 G SYS$ASSIGN4 m# SYS$ASSIGN4 @ SYS$ASSIGN4 0 G< SYS$GETDVI4 4 m# SYS$GETDVI4 8 @< SYS$GETDVI4  G SYS$QIOW4  m#SYS$Q@ SAFETY013.A   [EVERHART.JTDEMO]JTDMNNT.OBJ_A;1TF;1Qe>2IOW4  @ SYS$QIOW4 G SYS$CMKRNL4 m# SYS$CMKRNL4 @ SYS$CMKRNL4 G$ SYS$DASSGN4 m# SYS$DASSGN4 @$ SYS$DASSGN4` Gl SYS$CREMBX4d m# SYS$CREMBX4h @l SYS$CREMBX4  G SYS$GETDVI 4  m# SYS$GETDVI4  @ SYS$GETDVI4' G SYS$DCLEXH4( m# SYS$DCLEXH4' @ SYS$DCLEXH4 G SYS$CMKRNL4 m# SYS$CMKRNL4 @ SYS$CMKRNL4 G, SYS$CMKRNL4$ m# SYS$CMKRNL4( @, SYS$CMKRNL4D GP SYS$CMKRNL4H m# SYS$CMKRNL4L @P SYS$CMKRNL4)p G| SYS$PUTMSG4*t m# SYS$PUTMSG4)x @| SYS$PUTMSG4  G SYS$QIOW4  m#SYS$QIOW4  @ SYS$QIOW4  G SYS$QIOW4  m#SYS$QIOW4  @ SYS$QIOW4 G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4DGP SYS$CMKRNL4Hm# SYS$CMKRNL4L@P SYS$CMKRNL4GOTS$MOVE4@OTS$MOVE4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL,G OPNFILT, m#OPNFILT,@ OPNFILT48GD SYS$CMKRNL4<m# SYS$CMKRNL4@@D SYS$CMKRNL4TG` SYS$CMKRNL4Xm# SYS$CMKRNL4\@` SYS$CMKRNL4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL,#GEXTFILT,$m#EXTFILT,#@EXTFILT4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4PG\ SYS$CMKRNL4Tm# SYS$CMKRNL4X@\ SYS$CMKRNL,GDELFILT,m#DELFILT,@DELFILT4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4G$ SYS$CMKRNL4m# SYS$CMKRNL4 @$ SYS$CMKRNL,!TG`CREFILT,"Xm#CREFILT,!\@`CREFILT4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4/4G@IOC$CHAN_TO_CCB 408m#XIOC$CHAN_TO_CCB4/<@@IOC$CHAN_TO_CCB4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4/GIOC$CHAN_TO_CCB40m#IOC$CHAN_TO_CCB4/@IOC$CHAN_TO_CCB43pG| SCH$IOLOCKW44tm# SCH$IOLOCKW43x@| SCH$IOLOCKW41G IOC$SEARCHDEV42m# IOC$SEARCHDEV41@ IOC$SEARCHDEV41G IOC$SEARCHDEV42m# IOC$SEARCHDEV41@ IOC$SEARCHDEV41G IOC$SEARCHDEV42 m# IOC$SEARCHDEV41@ IOC$SEARCHDEV418GD IOC$SEARCHDEV42<m# IOC$SEARCHDEV41@@D IOC$SEARCHDEV45XGd SCH$IOUNLOCK46\m# SCH$IOUNLOCK45`@d SCH$IOUNLOCK4 G(OTS$MOVE4$@(OTS$MOVE47pG|EXE$ALONPAGVAR48tm#pEXE$ALONPAGVAR47x@|EXE$ALONPAGVAR,9,G8INI$BRK,:0m#pINI$BRK,94@8INI$BRK4PGXOTS$MOVE4T@XOTS$MOVE4;GSCH$QAST4<m#pSCH$QAST4;@SCH$QAST47GEXE$ALONPAGVAR48m#EXE$ALONPAGVAR47@EXE$ALONPAGVAR4;GSCH$QAST4<m#SCH$QAST4;@SCH$QAST47GEXE$ALONPAGVAR48m#EXE$ALONPAGVAR47@EXE$ALONPAGVAR4;GSCH$QAST4<m#SCH$QAST4;@SCH$QAST47GEXE$ALONPAGVAR48m#EXE$ALONPAGVAR47@EXE$ALONPAGVAR4; G SCH$QAST4< m#SCH$QAST4; @ SCH$QAST4!G ! SYS$CMKRNL4!m#  SYS$CMKRNL4!@ ! SYS$CMKRNL4@!GL! SYS$CMKRNL4D!m#  SYS$CMKRNL4H!@L! SYS$CMKRNL4\!Gh! SYS$CMKRNL4`!m#  SYS$CMKRNL4d!@h! SYS$CMKRNL4!G! SYS$CMKRNL4!m#  SYS$CMKRNL4!@! SYS$CMKRNL4!G! SYS$CMKRNL4!m#  SYS$CMKRNL4!@! SYS$CMKRNL4!G! SYS$CMKRNL4!m#  SYS$CMKRNL4!@! SYS$CMKRNL4!G! SYS$CMKRNL4!m#  SYS$CMKRNL4!@! SYS$CMKRNL$ $4= "G" SYS$CANEXH4>"m#  SYS$CANEXH4="@" SYS$CANEXH4("G4" SYS$CMKRNL4,"m#  SYS$CMKRNL40"@4" SYS$CMKRNL4L"GX" SYS$DASSGN4P"m#  SYS$DASSGN4T"@X" SYS$DASSGN4p"G|" SYS$DASSGN4t"m#  SYS$DASSGN4x"@|" SYS$DASSGN4d#Gl#OTS$MOVE4h#@l#OTS$MOVE4 L%GX%SYS$QIOW4 P%m#SYS$QIOW4 T%@X%SYS$QIOW4t&G& SYS$CMKRNL4x&m# SYS$CMKRNL4|&@& SYS$CMKRNL4t'G' SYS$CMKRNL4x'm#@ SYS$CMKRNL4|'@' SYS$CMKRNL43h(Gt( SCH$IOLOCKW44l(m# SCH$IOLOCKW43p(@t( SCH$IOLOCKW41(G( IOC$SEARCHDEV42(m# IOC$SEARCHDEV41(@( IOC$SEARCHDEV45(G( SCH$IOUNLOCK46(m# SCH$IOUNLOCK45(@( SCH$IOUNLOCK4)G) SYS$CMKRNL4)m# SYS$CMKRNL4)@) SYS$CMKRNL4-G-OTS$MOVE4-@-OTS$MOVE4 X.Gd.SYS$QIOW4 \.m#xSYS$QIOW4 `.@d.SYS$QIOW ;x;8;X;;t;  SYS$CREMBX""";;;6;;; ; JTPRTSYI;x;;;DELFILT"p;OTS$MOVE;;`;;;;|;;W;D;p;; SYS$QIOW""" <;X;;p SYS$GETDVI""" H;̖;P;;;\; OTS$CVT_TU_L"";;;;;=0 ;=p/ =  SYS$CMKRNL"7 CLI$_PRESENT0  CLI$PRESENT"  CLI$GET_VALUE"";X;;;T;;;;  SYS$ASSIGN""p;L;;;b;  SYS$DASSGN"AMAC$EMUL_CALL8;0;;;;;;';̗;@IGETCAPKGETKS"OPNFILT""G;;!CREFILT""#EXTFILT";%LICMSG7LOGLATCH;; ' SYS$DCLEXH";;@; ) SYS$PUTMSG""+GETEXF"7GETFNB;-GETPV"";=0;=p/ ; /IOC$CHAN_TO_CCB";;=0h;=p/ =0H;=0D =08 ;=/ =""l; 1 IOC$SEARCHDEV@;d;7 CTL$GL_PCB@ 3 SCH$IOLOCKW 5 SCH$IOUNLOCKh;;=0;=/ 7EXE$ALONPAGVAR9INI$BRK ;SCH$QAST=0H;=/ =0(;=/ =00;=/ =0 ;=`! = SYS$CANEXH";;=08 ";=/ ="";d;=0#;j;p;;;;;;;=00  &;=` =""";=0 &;=0 ="=0 '; =P| p;,;=0';=0 =00(;=! =0X );= =0h`);=P\( ;=0@*;=P =0 *;=p =0p+;=@| =0+;=@| =08 p,;=/ ="""̘;T;;L;\; | @ SAFETY013.A  "[EVERHART.JTDEMO]JTDMNNTV2.OBJ_A;9;1Z`"*[EVERHART.JTDEMO]JTDMNNTV2.OBJ_A;9+, .Z/ 4ZR- 0123KPWOS56o7 %o89GHJ<AAJTDMNV00117-AUG-1996 13:19AMAC V3.0-19  . ABS . . BLANK . $ABS$l ADVDD_DATA5 ADVDD_CODE$LINKAGE DSC$K_DTYPE_T( MYFDSC CLI$PRESENT CLI$_PRESENTLOGLATCHLICMSGJTPRTSYI CLI$GET_VALUEKGETKSIGETCAPGETFNBGETEXF OTS$CVT_TU_LGETPV SYS$ASSIGN SYS$GETDVI SYS$CREMBX SYS$DCLEXH SYS$CMKRNL SYS$PUTMSGSYS$QIOW SYS$DASSGNEXEMPTOPNFILTEXTFILTDELFILTCREFILTUNEXEMPTIOC$CHAN_TO_CCB CTL$GL_PCB SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCKEXE$ALONPAGVARINI$BRKSCH$QAST SYS$CANEXHAMAC$EMUL_CALLOTS$MOVE(JADVDD(JP@CHKACE(JNLBASH(JNLFIX(J@BASHUCB(J0RTNAST(JENDEXT(JENDDEL(J0 ENDCRE(J!XITHDL(J #REDACL(JX ,GTPRV(J,GTKPRV(J -SWPUIC(J-KSWPU(J.SJUCB(J /MYMODE(J8`/JGTPRVS(J`0KGTPRVS(J0VBSET(Jp1INHDEL(J1ALWDEL(Jp2FIXFIDL L =444=4=444p404=@4=SYS$DISKp=(H4== 4=4= ( H4p4=4=4=@8=4=( 4@=(  444=<4=h4= =(t4=( t44=4=4= = DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= 4=UNIT4=FNAM4= FRACTION 4= MINIMUM/4= MAXIMUM >4= ALDEFONLYO4= DEASSIGN_4=CBTj4= FCNMSKx4=MODE4= SHARE4= LICENSE4= INSTALL4= FILENUM4= EXEMPT4=KEY4= MODIFY4=NLA0:=P DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4==4444= DSC$K_DTYPE_T2=848=XJ , DSC$K_DTYPE_T2=4=(= DSC$K_DTYPE_T24=GCEVē=h= 0=@4:p4=#ܗ4= ܗ4=ܘ4= \=ܙ4=l4 =#~^^~ (0޴8@H>P^X~` Gh޵p(-xG#`L#P _#Tq?#XQG"0M\18m?#@Zk(G0@L0CL"@mM /;"m@Zk(?#O@Mm@ZkG0M"8m?#@Zk G?#0@PMXm@ZkGG^~ (0ޤ8@H>P^X~`hޥpx#kG(?#0M8m"@ZkͦG?#0@(@M"Hmܢ\"<"VJ"Fܲ@Zk(-G q"Qy`KZ@KmYGQM?#@ZkGGM?#m@Zk(G0M?#8m"@Zkͦ(G?#0@@MHmO"/""@Zk(ͥG9 "M<"WJmvKF.@Zk0M8m"?#@ZkMG(?#0@"@MO"Hm/""@Zk(-G/GM?#m@ZkMG ?"m?#@Zk(GMm?##JG@ZkGr0M|"8m?#<@ZkMG(?#0@@M8O"Hm0/"|"@Zk( G5q"?#[`KzKzGMqm@ZkGG0MW"8m?#@Zk(G?#0@@MHmO"/"W"@Zk(GM"m_"P4""?#@Zk(-GPX"0B G0M"?#8m@ZkMG(?#0@@MO"Hm/""@Zk(G#t"|T"T4""y`KZ@K8mYGT0M?#@ZkG0M6"8m?#@ZkM(-G0@`0C`"0M?#8m@ZkͦG(?#0@@MO"Hm/""@Zk(GMm"_"T4""?#@Zk(-GTTѢ#0B0Mb"8m?#@ZkM(G?#0@@MHmO"/"b"@Zk(G M"m_"D4""?#@ZkG(mD{#"0M?#8mp@Zk-(-G0@p0Bpp"0M?#8mH@Zk(G?#0@@MHmO"/"p"@Zk(G M"m_"H4""?#@ZkG(ͦH""0M?#8m@ZkmG(?#0@@MO"Hm/""@Zk(GMm"_"X4""?#@Zk(-GLXJXq_#0zCF0M'"8m?#\@Zk G(?#0@@MO"Hm/"'"@Zk(GMm"_"\4""?#@Zk(-G)\1' \&@B"0C"G@MO"Hm/""?#@Zk(mG080XKw KG0<0C<G#PqG_#TQEG ?#X1\G@MS"Hm3""?#@Zk(GzpMGxmG4""?#@Zk( Go#`M"#8"ޢ@x"_" Jhm޶"G?#@Zk #(GXpMGxmG4""?#@Zk(GpMGxmG4""?#@Zk( GC#`M"#8"x"~_" J~Ghm"?#@Zk #G-(ML:#7G(##( 0?#M""G#G#x">_""8 ?#04~ J~G8<~ (~m@Zk@#GM?" ?#m@Zk(-GMm9#?#JG@ZkG{#(M&#m" s"@_"7""?#@Zk#( G#`M"#8"ޢx"_" Jhm޶"G?#@Zk #G(m?#0M"8m@ZkGM?" ?#m@ZkG(-Mm9" ?#@Zk05@(GM?" ?#m@Zk(Gx"M_"m?"t"?#@ZkGq##|#0##"GG0~|"<_"4^"~ ?# J^<^G8~ ~(^Mm@Zk@#G(-<1p?p?#m M(m@ZkG/(##G\#G#|"#!_"~"^ ?#0~<4^~ J^<^G8~ ~(^Mm@Zk(-@#G9#65C(w(M"m?"" ?#@Zk(ͥG?#n"4`'ܗ#AN"8"m#\@MGm?"P ?#@ZkG(#_'ܗZ#Cz# ~&^ܗ">{`HG `(-'ܘ# M`H7C8C GG@Zk>^ ~#M" m?"?#@Zk(_'GܗZ#BZ"'Mܘ#0CB#tmt"8""?#@Zk(M?'9# GmYCY#?"M?#@ZkMmGP ?"?#@ZkG`Ô0UB =-(mM# ?"{#?#m@Zk(MGM#m2""?#0B@Zk(m_'Z# GzCz#M?"m?#@ZkMmGP ?"?#@ZkG0Ô0uB1M"m?"G?#@Zk(MGpM"xm?#2""0C@Zk'( #GHB_'Z#B#zM?"m?# @ZkMGm?"P ?#@ZkG0B2M"m?"G?#@Zk(mG`M"hm?#xS"3""0B@Zk'( {#GBH?'9#B_#Y?"M?#m @ZkMmGP ?"?#@ZkGGG#~^^~ (0޴8@H>P^X~` GhGM#ҠGRG# M?#(mG@Zk #Gޠ#Gװw G=`W G:@,_'ܗZ#BH!G2MHGG@Zk'ܘ#MBH!GG2B@Zk'# JBB8GGG6YC&"GG$4+# G0;A @K0:A Dˢ?'9#06Cww G^~ (0ޤ8@H>P^X~`hp#kGXK#&"@JB'{# ~B^>`+ XkG|`HXK0fHG_''Z##BB"MX DJ`HHʲGG@Zk>^ ~#G#~^^~ (0޴8@H>P^X~` GhGM#ҠGG#M?#mG@Zk #G-ޠ#GѰq`QF@11 G^~ (0ޤ8@H>P^X~`hp#k#~^^ ޴(GР GG^ ޤ(0#k`#~8^@^H~PX`޴hpx>^~G G= =(]0}@xmPMd{#GXm@ZkxMLZ#:+ x-@#<0=0M8mG@Zk X_'xZ#K05Ca0zCx-@9#9(=0M8mG@Zk/x 0M8ml#8=G@Zk&x Cd"7#` =0M8mG@ZkG`M#hm#@Zk ##GG8@^H~PX`ޤhpx>^~#kG xͦCh6L'x{#0C%""G%GDF Xk`K05`CE?'x9#0YC{G@e@Gt#>@6 GPP8i8e@I@ET)T%T <TD># G"#uX\eް  ~^> h% G pMHGG@Zk">^ ~ޠ #GGDGke\+\R KXRKwS KG\\D\eGGzG\e\ GD\0Ku1KW0JF\PdDvHe`V@HGHX \GC`K_#0@ T6%P`dÌ FP8@lvTelV<El6D%\GÀ#~^^ ~(08޴@HP>X^`~h GpxG-G G^ ~(08ޤ@HP>X^`~hpx#k M$? (m@Zk[$_#_D"##'Y K{#:G"_#xq@K0MA ⲠϢ ²&"A#"Yp K8G",~(^$> ް ~^>88m@Zk@H!@'Mܘ#B8!?"GG@Zk'#B8 K ^@MC>_ ~ޠ $>(^,~Hm0#@Zk GGG#~^^ ~(08޴@HP>X^`~h GpxG-G G^ ~(08ޤ@HP>X^`~hpx#kM$? m@ZkB$_#_D"##Y K:G"yq`K  ⲐϢ&"A²BZp@KYGB,~(^$> ް ~^>"Ȳ'{#MA#^>C ~_ ޠ $>(^,~0#m@Zk À#~^^ ~(08޴@HP>X^`~h GpxG-G G^ ~(08ޤ@HP>X^`~hpx#kðM$? m@Zk&$_#_D"#' ={#Y KA:G"_#xq@KMC Ϣ ²&"A#"Yp K8G"_ m@Zk À#~^^ ~(08޴@HP>X^`~h GpxGx-G G^ ~(08ޤ@HP>X^`~hpx#kÐM$? m@Zk*x$_#_D"#CY K:G"?#'#A Ⲁ"Ϣ ²xo|qJh|OH_'⳸Z#¢AVpJF²_ zMhm8@Zk à#~^^~ (0޴8@H GPXGX#|M?#m@Zk MG ?"(m?#@ZkXG/4 05C M@ ?"(m?#@Zk M(mG ?"?#@ZkG?#0UC M(m?" @Zk MG(m?" ?#@ZkG/0u C M(m?" ?#@Zk M(mG ?"?#@ZkG0M"8m?#@ZkX MG(m?# <"@ZkXMGm?#Z#MJG@ZkX-GMm9#?#JG@ZkGG^~ (0ޤ8@HPX`#kGG`#~8^@^H~PX`޴hpx>^~ GG/K3@-#'pt#PB" CvV(m# =&@ = &"M#C?#W"GG2 @Zk#GG8@^H~PX`ޤhpx>^~#kR/[ RKGð#^^~ (޴08 G@޵H_'Z#?'A'z9##A`KA0J_'&zZ#A'""z#_'AA}Z#8/A'.}#AW J>_'&zZ#|"Y6KA&A:?|"A&#XRK"Aް#_' ~&^tZ#>x"A&A0x x"A%@ SAFETY013.A  "[EVERHART.JTDEMO]JTDMNNTV2.OBJ_A;9;1Zp>?'}! 9#$A(A,9  GGGXK& Iz"A'.z#.A8#xYKWJV JF YKF'}#A>'z#A>.J. &|"mA?'|9#zSJAXRK#G#&'"##AA 8#>0ޢG/G4^o"޶2_" J^<^G8ޢ" ?# ޶(^M@Zk@#-G&'1t"x{# 7B;BI# G ?E)/wKY:K7G@')?t#^ ~ޠ #&&""AA'_'z#&AZ#8#z"'AA}#.A&X/}"AZ YKV?'_'z#|Z#WJAA?'>|9#ڢA#'VRJٲ&"ްA" ~#^A>8  0w GG G $(,&"|C 0`C|G\0U_C8#&#"#C##G0~G<|"4^2_"~" J^<^G8~ ?# ~(^Mm@Zk-@#GѠG'#8B8 &'"ē{#6B;B0B >^ ~ޠ #^~ (ޤ08@ޥHP#k >^ ~ޠ #)/Z )KFG / KX KG ? )/ JY ;K8G)?2à#?G~0^8^@~HPXG G= =]} M="m?#( @ZkGG08^@~HPX`#kGG#~^^~ (GPCG@` "# G^~ (0#kGG#~^^ ~(08޴@ GHGM?#PMXm042 ,2"@ZkGG^ ~(08ޤ@HP#kGGG#~^^ ~(G( \G<bGqP<BG^ ~(0#kG#~0^8^@~HPX޴`hp GxG#>M# m =G@Zk =M #m#C@Zk ##|a /(M#0m#@Zk##>G#GG08^@~HPXޤ`hpx#kGGG#~^G H#GG #kGG#~^^ ~(0޴8~@ G /= HG>CM Cm# #+G ?#@Zk#GCG^ ~(0ޤ8~@HP#kG#~^^ ~(08޴@HGPG @bCdHCG |G^ ~(08ޤ@HP#kGG#~^^ ~(08޴@HP>X^`~hGq?#CG|DCC`Dw KCw`HD@@4G/`D96KK\KKGuKG?G^ ~(08ޤ@HP>X^`~hp#kGG#~^^~ (0޴8G`_'Z# GGG^~ (0ޤ8@#kGGG#~^^~ (0޴8G@'# G$8G$G^~ (0ޤ8@#kGGGP#~@^H^P~X`h޴px>^~ GG== ](}0XM#'ܙ#XC ~ C^G> G$5@K# ".>^J ~#@XM'#XC8#GoSJXRKGuXM'ܙ#XC8#|" "w' ݢd{#[CdXM'd#(XC8#G9?'l9# GYCPMA I GG2B@Zk0GBGX,XHNGG@#X '#&M#d{#\"CC ޴ 0ޢGX G42_"޶@Hmx""8ޢ ?#< ޶(@Zk@#X-Gq `?'&ܙ"9#7B#9B#YKآJ˲G@H^P~X`hޤpx>^~#k /Y KFz8/W 8KWD4xG CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4#GAMAC$EMUL_CALL4$m#AMAC$EMUL_CALL4#@AMAC$EMUL_CALL,'GLICMSG,(m#LICMSG,'@LICMSG4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4 G JTPRTSYI4 m#JTPRTSYI4 @ JTPRTSYI4xG CLI$PRESENT4|m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE,m#KGETKS,GKGETKS,@KGETKS,%G IGETCAP,&m#IGETCAP,%@ IGETCAP4(G< CLI$PRESENT40m# CLI$PRESENT48@< CLI$PRESENT4TGl CLI$GET_VALUE4Xm# CLI$GET_VALUE4h@l CLI$GET_VALUE4#GAMAC$EMUL_CALL4$m#AMAC$EMUL_CALL4#@AMAC$EMUL_CALL4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4GUNEXEMPT4m#UNEXEMPT4 @UNEXEMPT4G, SYS$CMKRNL4 m# SYS$CMKRNL4(@, SYS$CMKRNL44GT SYS$DASSGN 48m# SYS$DASSGN4P@T SYS$DASSGN4`Gx CLI$PRESENT4hm# CLI$PRESENT4t@x CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE,-GGETEXF,.m#GETEXF,-@GETEXF4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G4 CLI$GET_VALUE4 m# CLI$GET_VALUE40@4 CLI$GET_VALUE4@G` OTS$CVT_TU_L4Hm# OTS$CVT_TU_L4\@` OTS$CVT_TU_L4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE,2m#GETPV,1GGETPV,1@GETPV4 G4 CLI$PRESENT4(m# CLI$PRESENT40@4 CLI$PRESENT4XGh CLI$PRESENT4`m# CLI$PRESENT4d@h CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4G OTS$CVT_TU_L4m# OTS$CVT_TU_L4@ OTS$CVT_TU_L4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G, CLI$GET_VALUE4m# CLI$GET_VALUE4(@, CLI$GET_VALUE48GX OTS$CVT_TU_L4@m# OTS$CVT_TU_L4T@X OTS$CVT_TU_L4pG CLI$PRESENT4xm# CLI$PRESENT4@ CLI$PRESENT4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4G OTS$CVT_TU_L4m# OTS$CVT_TU_L4@ OTS$CVT_TU_L40G@ CLI$PRESENT48m# CLI$PRESENT4<@@ CLI$PRESENT4XGp CLI$GET_VALUE4`m# CLI$GET_VALUE4l@p CLI$GET_VALUE4|G OTS$CVT_TU_L4m# OTS$CVT_TU_L4@ OTS$CVT_TU_L4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4G4 OTS$CVT_TU_L4m# OTS$CVT_TU_L 40@4 OTS$CVT_TU_L4`G| CLI$GET_VALUE4hm# CLI$GET_VALUE4x@| CLI$GET_VALUE4G CLI$GET_VALUE4m# CLI$GET_VALUE4 @ CLI$GET_VALUE4! G8 SYS$ASSIGN4" m# SYS$ASSIGN4!4 @8 SYS$ASSIGN4H G SYS$GETDVI4 t m# SYS$GETDVI4 @ SYS$GETDVI4! G SYS$ASSIGN4" m# SYS$ASSIGN4! @ SYS$ASSIGN4! G SYS$ASSIGN4" m# SYS$ASSIGN4! @ SYS$ASSIGN4 G@ SYS$GETDVI4 0 m# SYS$GETDVI4< @@ SYS$GETDVI4t G SYS$QIOW4 m#SYS$QIOW4 @ SYS$QIOW4 G SYS$CMKRNL4 m# SYS$CMKRNL4 @ SYS$CMKRNL4 G0 SYS$DASSGN4 m# SYS$DASSGN4, @0 SYS$DASSGN4)@ G| SYS$CREMBX4*P m# SYS$CREMBX4)x @| SYS$CREMBX4 G SYS$GETDVI4  m# SYS$GETDVI4 @ SYS$GETDVI4 G SYS$DCLEXH4 m# SYS$DCLEXH4 @ SYS$DCLEXH4 G SYS$CMKRNL4 m# SYS$CMKRNL4 @ SYS$CMKRNL4( G@ SYS$CMKRNL4, m# SYS$CMKRNL4< @@ SYS$CMKRNL4P Gh SYS$CMKRNL4` m# SYS$CMKRNL4d @h SYS$CMKRNL4+x G SYS$PUTMSG4, m# SYS$PUTMSG4+ @ SYS$PUTMSG4 G SYS$QIOW4 m#SYS$QIOW4 @ SYS$QIOW,< GH EXEMPT,@ m#EXEMPT,D @H EXEMPT4 G SYS$QIOW4 m#SYS$QIOW4 @ SYS$QIOW4 G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4PGl SYS$CMKRNL4Xm# SYS$CMKRNL4h@l SYS$CMKRNL4/GOTS$MOVE4/@OTS$MOVE4G$ SYS$CMKRNL4m# SYS$CMKRNL4 @$ SYS$CMKRNL,DGxOPNFILT,`m#OPNFILT,t@xOPNFILT4m# SYS$CMKRNL4G SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL 4m# SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL, G8EXTFILT,m#EXTFILT,4@8EXTFILT4TGl SYS$CMKRNL4`m# SYS$CMKRNL4h@l SYS$CMKRNL4lG SYS$CMKRNL4pm# SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL, GDELFILT,m#DELFILT, @DELFILT4(G@ SYS$CMKRNL40m# SYS$CMKRNL4<@@ SYS$CMKRNL4@G\ SYS$CMKRNL4Hm# SYS$CMKRNL4X@\ SYS$CMKRNL4pG SYS$CMKRN@ SAFETY013.A  "[EVERHART.JTDEMO]JTDMNNTV2.OBJ_A;9L;1Z[>*>L4xm# SYS$CMKRNL4@ SYS$CMKRNL, GCREFILT, m#CREFILT, @CREFILT4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4G0 SYS$CMKRNL4m# SYS$CMKRNL4,@0 SYS$CMKRNL43GIOC$CHAN_TO_CCB44m#PIOC$CHAN_TO_CCB43@IOC$CHAN_TO_CCB4/G,OTS$MOVE4/(@,OTS$MOVE4/4GTOTS$MOVE4/P@TOTS$MOVE4/GOTS$MOVE4/@OTS$MOVE43XGlIOC$CHAN_TO_CCB44`m#IOC$CHAN_TO_CCB43h@lIOC$CHAN_TO_CCB47G SCH$IOLOCKW48m# SCH$IOLOCKW47@ SCH$IOLOCKW45G IOC$SEARCHDEV46m# IOC$SEARCHDEV45@ IOC$SEARCHDEV450G@ IOC$SEARCHDEV464m# IOC$SEARCHDEV45<@@ IOC$SEARCHDEV45HGd IOC$SEARCHDEV46Lm# IOC$SEARCHDEV45`@d IOC$SEARCHDEV45G IOC$SEARCHDEV46m# IOC$SEARCHDEV45@ IOC$SEARCHDEV49G SCH$IOUNLOCK4:m# SCH$IOUNLOCK49@ SCH$IOUNLOCK4/LG`OTS$MOVE4/\@`OTS$MOVE4;pGEXE$ALONPAGVAR4<xm#0EXE$ALONPAGVAR4;|@EXE$ALONPAGVAR,=GDINI$BRK,><m#0INI$BRK,=@@DINI$BRK4/TGtOTS$MOVE4/p@tOTS$MOVE4?GSCH$QAST4@m#0SCH$QAST 4?@SCH$QAST4;GEXE$ALONPAGVAR4<m#EXE$ALONPAGVAR4;@EXE$ALONPAGVAR4?tGSCH$QAST4@m#SCH$QAST4?@SCH$QAST4;GEXE$ALONPAGVAR4<m#EXE$ALONPAGVAR4;@EXE$ALONPAGVAR4?G( SCH$QAST4@ m#SCH$QAST4?$ @( SCH$QAST4; G EXE$ALONPAGVAR4< m#EXE$ALONPAGVAR4; @ EXE$ALONPAGVAR4?!G!SCH$QAST4@!m#SCH$QAST4?!@!SCH$QAST4!G!UNEXEMPT4!m#UNEXEMPT4!@!UNEXEMPT4!G" SYS$CMKRNL4"m# SYS$CMKRNL4"@" SYS$CMKRNL44"GL" SYS$CMKRNL4@"m# SYS$CMKRNL4H"@L" SYS$CMKRNL4L"Gh" SYS$CMKRNL4P"m# SYS$CMKRNL4d"@h" SYS$CMKRNL4|"G" SYS$CMKRNL4"m# SYS$CMKRNL4"@" SYS$CMKRNL4"G" SYS$CMKRNL4"m# SYS$CMKRNL4"@" SYS$CMKRNL4"G" SYS$CMKRNL4"m# SYS$CMKRNL4"@" SYS$CMKRNL4"G" SYS$CMKRNL4"m# SYS$CMKRNL4"@" SYS$CMKRNL4A"G # SYS$CANEXH4B#m# SYS$CANEXH4A#@ # SYS$CANEXH4#G,# SYS$CMKRNL4#m# SYS$CMKRNL4(#@,# SYS$CMKRNL44#m# SYS$DASSGN4D#GT# SYS$DASSGN4P#@T# SYS$DASSGN4\#G|# SYS$DASSGN4`#m# SYS$DASSGN4x#@|# SYS$DASSGN4/l$G$OTS$MOVE4/$@$OTS$MOVE4,'m#HSYS$QIOW4'G'SYS$QIOW4'@'SYS$QIOW4*G*SYS$QIOW4*m#HSYS$QIOW4*@*SYS$QIOW4h,G, SYS$CMKRNL4p,m#X SYS$CMKRNL4|,@, SYS$CMKRNL4X-Gt- SYS$CMKRNL4\-m# SYS$CMKRNL4p-@t- SYS$CMKRNL47X.Gt. SCH$IOLOCKW48d.m# SCH$IOLOCKW47p.@t. SCH$IOLOCKW45x.G. IOC$SEARCHDEV46.m# IOC$SEARCHDEV45.@. IOC$SEARCHDEV49.G. SCH$IOUNLOCK4:.m# SCH$IOUNLOCK49.@. SCH$IOUNLOCK 4/G/ SYS$CMKRNL4/m#8 SYS$CMKRNL4/@/ SYS$CMKRNL4/4G(4OTS$MOVE4/$4@(4OTS$MOVE4d4G4SYS$QIOW44m#SYS$QIOW44@4SYS$QIOW OPNFILT""EXTFILT"0;;EXEMPT  SYS$DCLEXH"7LOGLATCH` JTPRTSYI CREFILT"" DELFILT" UNEXEMPTKGETKS"  SYS$DASSGN";; SYS$QIOW"""  OTS$CVT_TU_L""7 CLI$_PRESENT  SYS$CMKRNL"=0 ;= =;  CLI$PRESENT"  CLI$GET_VALUE"";p  SYS$GETDVI""" ! SYS$ASSIGN""#AMAC$EMUL_CALL%IGETCAP7GETFNB;;;'LICMSG; ) SYS$CREMBX""" + SYS$PUTMSG""P; -GETEXF"/OTS$MOVE1GETPV""=0@;=p/ 3IOC$CHAN_TO_CCB"=0;=p/ =0;=0D =08 @;=/ ="" 5 IOC$SEARCHDEV7 CTL$GL_PCB 7 SCH$IOLOCKW 9 SCH$IOUNLOCK=0;= ;EXE$ALONPAGVAR=INI$BRK ?SCH$QAST=0;= =0;= =0p0 ;= =0P!;=` ; A SYS$CANEXH"=08 #;=/ =""=0$;=00  ,;=` =""";=0 ,;=0 ="=0 -;=P| ;=0-;=0 =00.;=! =0 /;= =0p`/;=P\( `;=0H0;=P =0(0;=p =0p1;=@| =0p1;=@| =0@ p2;= =""" !&*[EVERHART.JTDEMO]JTDMNNTV2.OBJ_VAX62;1+, ./ 4- 0123KPWO56皇7U|89GHJAAJTDMNV00111-JUL-1996 14:56AMAC V3.0-19` ` . ABS . . BLANK . $ABS$\ ADVDD_DATA/ ADVDD_CODE$LINKAGE DSC$K_DTYPE_T( MYFDSC CLI$PRESENT CLI$_PRESENTLOGLATCHLICMSGJTPRTSYI CLI$GET_VALUEKGETKSIGETCAPGETFNBGETEXF OTS$CVT_TU_LGETPV SYS$ASSIGN SYS$GETDVI SYS$CREMBX SYS$DCLEXH SYS$CMKRNL SYS$PUTMSGSYS$QIOW SYS$DASSGNOPNFILTEXTFILTDELFILTCREFILTIOC$CHAN_TO_CCB CTL$GL_PCB SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCKEXE$ALONPAGVARINI$BRKSCH$QAST SYS$CANEXHAMAC$EMUL_CALLOTS$MOVE(JADVDD(JXCHKACE(JNLBASH(JNLFIX(JBASHUCB(JpRTNAST(JENDEXT(JENDDEL(J0ENDCRE(J  XITHDL(J`"REDACL(J &GTPRV(J&GTKPRV(J@ 'SWPUIC(Jp'KSWPU(J(SJUCB(J )MYMODE(J`)JGTPRVS(J*KGTPRVS(J*VBSET(J8p+INHDEL(JX+ALWDEL(Jxp,FIXFID =444=4=444p404=@4=SYS$DISKp=(H4==  4=4= ( H4p4=4=4=@8=4=( 4@=(  444=<4=h4= =(t4=( t44=4=4= = DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= 4=UNIT4=FNAM4= FRACTION 4= MINIMUM/4= MAXIMUM >4= ALDEFONLYO4= DEASSIGN_4=CBTj4= FCNMSKx4=MODE4= SHARE4= LICENSE4= INSTALL4= FILENUM4= EXEMPT4=KEY4= MODIFY4=NLA0:=P DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4==4444= DSC$K_DTYPE_T2@ SAFETY013.A  &[EVERHART.JTDEMO]JTDMNNTV2.OBJ_VAX62;1@> =848=XJ , DSC$K_DTYPE_T2=4=(=GCEV=X= 0p=@4:`4=#̖4= ̖4=̗4= L=̘4=\4 =#~^^~ (0޴8@H>P^X~`h GGmM?#: "pͦ ##Mz ?#HMPm@ZkG8 0@0CmM":";Mm@Zk-?#Mm@ZkG ?#HMPm@ZkG80@?#Mm@ZkGG^~ (0ޤ8@H>P^X~`hp#k ?#HMPm@ZkG8M0@M- #m[Z@K\G[?#XM`m@ZkG ͦ{J\KG ?#hMpm@ZkG?#XM`m@ZkG ?#HMPm@ZkG8 0@M - ?#XM`m@ZkG54M: v KWJF8Hm";"<Mm@Zk0 ?#HMPm@ZkG8-0@(Mx-0 ?#XM`m@ZkG(?"p ?#(M0m@ZkGhmJG?#Mm@ZkG|hM( ?#HMPm@ZkG8 0@M-( ?#XM`m@ZkG7(M:x v KWJFx ?#8M@m@ZkG8 ?#HMPm@ZkG8M0@M-8 ?#XM`m@ZkG"_"- ?#Mm@ZkGèm[@p-"0CͦPm0 ?#HMPm@ZkG8-0@M-0 ?#XM`m@ZkGm[-w@KXKGͦv"M- ?#XM`m@ZkGp ?#HMPm@ZkG8 0@0CP ?#HMPm@ZkG8M0@M-P ?#XM`m@ZkG"_"- ?#Mm@ZkGÿÈm[@-"0C ?#HMPm@ZkG80@M- ?#XM`m@ZkG "_"@- ?#Mm@ZkG@ͦh ?#HMPm@ZkG8M0@-0BͦH ?#HMPm@ZkG8m0@M-H ?#XM`m@ZkG "_"- ?#Mm@ZkG  ?#HMPm@ZkG8M0@M-  ?#XM`m@ZkG"_"p- ?#Mm@ZkGQPpm[M@p-"0CHͦ@ ?#HMPm@ZkG8m0@M-@ ?#XM`m@ZkG"_"- ?#Mm@ZkG-,|)`M:'@B#08C#M-x ?#XM`m@ZkGM: v KWJFh\0@C\è-#È"ײEp #|MM8- ?#XM`m@ZkG}GG-8 ?#Mm@ZkGr#""m_"-9 JG"#ޢ޶?#Mm@Zk #GZGG-` ?#Mm@ZkGGGh- ?#Mm@ZkGF#""m_"h< JG"#~^~^?#Mm@Zk #G.-5Ø"ײ###0_#^->GGm_"h7 JG"0ޢ4޶8ޢ< ޶( ?#XM`m@Zk@#G?"p ?#(M0m@ZkGhMJG?#Mm@ZkG#"&s"@_"-"# ޢ޶?#HMPm@Zk#G#""Xm_"-9 JG"#ޢ޶?#Mm@Zk #G ?#Mm@ZkG?"( ?#(M0m@ZkG-h ?#(M0m@ZkG05@?"p ?#(M0m@ZkG ͦ"_"?"@ ?#(M0m@ZkGvØm_#[###0"ͦ޶GGm_"hm; JG"0^4ޢ^޶8^<ޢ ^(޶ ?#XM`m@Zk@#Ghm[@pø-m###_#^->GGm!_"7 JG"04~~8<~ (~ ?#XM`m@Zk@#GMZ#:65 Cba#?"0 ?#(M0m@ZkG|)`M- "?#xm##@G?" ?#(M0m@ZkG# ~^>u`HG`H`HGGM@Zk>^ ~##?" ?#(M0m@ZkGmMH- 0B#|?#xMm@ZkGxM?" ?#(M0m@ZkG?" ?#(M0m@ZkGs"0UB)#m?" ?#(M0m@ZkG- 0Cm_#[?#Mm =@ZkGx-?" ?#(M0m@ZkG?" ?#(M0m@ZkGD"0uC-#Mz?" ?#(M0m@ZkG- u0`CuM?#:?#Mm@ZkGHx"x?" ?#(M0m@ZkG?" ?#(M0m@ZkG-9#0C."?" ?#(M0m@ZkGM- 0B#|?#Mm@ZkGHx-Y#x?" ?#(M0m@ZkG?" ?#(M0m@ZkGG#~^^~ (0޴8@H>P^X~`h GGܠGJ#GmG#?#(M0m@Zk #GޠG# Mڰ&@ 8w G1`ͦ "V G,@0 ,HG'HGGxM@Zk HGG2BxM@Zk *8 67C4+ G"06A@0P^X~`hp#k#~^^~ (0޴8@H>P^X~`h GGPܠG"#GPmG#?#Mm@Zk #GޠG#Mڰ& 88$"ע 8$#|f`PM:( 8 G^~ (0ޤ8@H>P^X~`hp#k#~^^ ޴(GܠG[:& G^ ޤ(0#kGGG`#~8^@^H~PX`޴hpx>^~ GG= =(]0}PGHm`Mhm@ZkM:* @ pע0=G0M8m@Zk Xa`K05`CA?'x9#0YC@ 8(=G0M8m@Zk/(7=G0M8m@Zk&%Hͦ6 C"` =G0M8m@Zk##pMxm@Zk #G#G8@^H~PX`ޤhpx>^~#k À<Cm[@%'x#08CŢFŲe_#zGe X K05C&x"0BGePmG@M: zy#>@ 8 GPP8ɢ8Ų@@TiTeTI<ET)D%> G# آX\Ų#ް ~^> h%G HGGM@Zk>^ ~ޠ #EBGE?#FˢŲ\kR`K\EyS`KZR@KYG\E\\Ţ|JVJF\Ų\K0@K\%x1@KY0 K8G\%עdŲH|HeM: HFHxͦ Gm[@! CK"0@ ͦm[`E[Ì =$P%8@(ͦT(m[<E(-DGGG#~^ ^(~08@޴HPX>`^h~px GGhGhm{#[@ G ^(~08@ޤHPX>`^h~px#k$? M(m@ZkT$#WJFhͦ," hm{#[ Bh-Ⳁ"{qJ\pKG#,~(^$> ް ~^>M:8( "0M8m@Zk@H! @-?"GG`M@Zk #J >^ ~ޠ $>(^,~0#C_ @MHm@Zk GGG#~^ ^(~08@޴HPX>`^h~px GGGmH{#[@ G ^(~08@ޤHPX>`^h~px#k$? Mm@ZkA$#WJFͦP" mH{#[ B-Ⳁ"{qJ\pKG#,~(^$> ް ~^>M:( #"ײ>^ ~ޠ $>(^,~0#C_ Mm@Zk GG#~^ ^(~08@޴HPX>`^h~px GGGmH{#[@ G ^(~08@ޤHPX>`^h~px#k$? Mm@Zk$$#WJFͦX" mH{#[ B-Ⳁ"{qJ\pKGM:( "C_ Mm@Zk GGG#~^ ^(~08@޴HPX>`^h~px GGGmH{#[@ G =\T ^(~08@ޤHPX>`^h~px#k$? Mm@Zk+$#WJFͦX" mH{#[ B-עȲ#|hⳀ#vqKWpJF`|h`M?#:C_ Mm@Zk à#~^^ ~(08޴@HPX GG|`?"8 ?#Mm@ZkG-H 8Hͦ05C?" ?#Mm@ZkG?" ?#Mm@ZkGH-0UC?" ?#Mm@ZkG?" ?#Mm@ZkGH|0u`C?"X ?#Mm@ZkG?" ?#Mm@ZkGH ?# M(m@ZkG0-8 ?#Mm@ZkG0mJG?#Mm@ZkGMJG?#Mm@ZkGG^ ~(08ޤ@HPX`#kGGG`#~8^@^H~PX`޴hpx>^~ GG/K)@h-0 Тز =8m#$@ = #?#(MGG2 pM@ZkG#G8@^H~PX`ޤhpx>^~#kR/[ RKGGG#^^~ (޴08 G M0-( ͦV/ZVK6/Y 6K6?V?"עVRJײ#ް ~^> - 0x   $(,GGGH m;0 C; 0UB0####@GGm2_"0M: JG"0ޢ4޶8ޢ< ޶( ?#Mm@Zk@#Gm۠G (M:  8ͦ0B>^ ~ޠ # ^~ (ޤ08@#k>^ ~ޠ # GG#~0^8^@~HPX GG?G= =]} ="( ?#(M0m@ZkGG08^@~HPX`#kGG#~^^~ (GPG@C` "# G^~ (0#kGG#~^^ ~(08޴@H GG(#(m{#;(- ?#Mm@ZkGG^ ~(08ޤ@HP#k#~^^ ~(G\G<bGqP<B G^ ~(0#kG#~0^8^@~HPX޴`hpx GG#>G# =Mm@Zk = #C#Mm@Zk ##|a ##Mm@Zk#G#>G#G08^@~HPXޤ`hpx#kGG#~^GGG #kGGG#~^^ ~(0޴8~@H GG>C C# +G #?#@MHm@Zk#GCG^ ~(0ޤ8~@HP#kG#~^^ ~(08޴@HGPG @bdHCCG |G^ ~(08ޤ@HP#kGG#~^^ ~(08޴@HP>X^`~hGCqG?#|DCCw KD@`DCw`H@`D/KK4G96KGuK\KG?@G^ ~(08ޤ@HP>X^`~hp#kG#~^^~ (0޴8GG_'Z#G G^~ (0ޤ8@#kGGG#~^^~ (0޴8GG$'#8G$ G^~ (0ޤ8@#kGGG`#~8^@^H~PX`޴hpx>^~ GG== ](}0 C( # ~^>G  $5@9#>^ ~#+#K/YKf G(- 9#wSJXRKG[Zݢ(m {# ]:0 8P 07 G(GAH IGG2BXM@ZkGBG0=Y,YHA G:@@0ͤ###޴GG8m2_"@H"0ޢ4޶8ޢ< ޶( ?#Mm@Zk@#G 8m[ @(-9# ("עJ˲G8@^H~PX`ޤhpx>^~#k.X JXG.X JXD4G CLI$PRESENT4m# CLI$PRESENT 4@ CLI$PRESENT4GAMAC$EMUL_CALL4m#AMAC$EMUL_CALL4@AMAC$EMUL_CALL,%GLICMSG,&m#LICMSG,%@LICMSG4G CLI$PRESENT4 m# CLI$PRESENT4@ CLI$PRESENT4(G4JTPRTSYI4,m#JTPRTSYI40@4JTPRTSYI4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE,G KGETKS,m#KGETKS,@ KGETKS,G$IGETCAP,m#IGETCAP, @$IGETCAP40G< CLI$PRESENT44m# CLI$PRESENT48@< CLI$PRESENT4\Gh CLI$GET_VALUE4`m# CLI$GET_VALUE4d@h CLI$GET_VALUE4GAMAC$EMUL_CALL4m#AMAC$EMUL_CALL4@AMAC$EMUL_CALL4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL44G@ SYS$DASSGN48m# SYS$DASSGN4<@@ SYS$DASSGN4\Gh CLI$PRESENT4`m# CLI$PRESENT4d@h CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE,+GGETEXF,,m#GETEXF,+@GETEXF4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRE@ SAFETY013.A  &[EVERHART.JTDEMO]JTDMNNTV2.OBJ_VAX62;1k>)SENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4 8GD OTS$CVT_TU_L4<m# OTS$CVT_TU_L4 @@D OTS$CVT_TU_L4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE,-GGETPV,.m#GETPV,- @GETPV4G( CLI$PRESENT4 m# CLI$PRESENT4$@( CLI$PRESENT4PG\ CLI$PRESENT4Tm# CLI$PRESENT4X@\ CLI$PRESENT4|G CLI$GET_VALUE 4m# CLI$GET_VALUE4@ CLI$GET_VALUE4 G OTS$CVT_TU_L4m# OTS$CVT_TU_L4 @ OTS$CVT_TU_L4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G  CLI$GET_VALUE4m# CLI$GET_VALUE4@  CLI$GET_VALUE4 <GH OTS$CVT_TU_L4@m# OTS$CVT_TU_L4 D@H OTS$CVT_TU_L4hGt CLI$PRESENT4lm# CLI$PRESENT4p@t CLI$PRESENT4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4 G OTS$CVT_TU_L4m# OTS$CVT_TU_L4 @ OTS$CVT_TU_L4G( CLI$PRESENT4 m# CLI$PRESENT4$@( CLI$PRESENT4HGT CLI$GET_VALUE4Lm# CLI$GET_VALUE4P@T CLI$GET_VALUE4 pG| OTS$CVT_TU_L4tm# OTS$CVT_TU_L4 x@| OTS$CVT_TU_L4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4 G OTS$CVT_TU_L4m# OTS$CVT_TU_L4 @ OTS$CVT_TU_L4`Gl CLI$GET_VALUE4dm# CLI$GET_VALUE4h@l CLI$GET_VALUE4G CLI$GET_VALUE4m# CLI$GET_VALUE4 @ CLI$GET_VALUE4$ G0 SYS$ASSIGN4( m# SYS$ASSIGN4, @0 SYS$ASSIGN4  G SYS$GETDVI4  m# SYS$GETDVI4  @ SYS$GETDVI4 G SYS$ASSIGN4 m# SYS$ASSIGN4 @ SYS$ASSIGN4 G SYS$ASSIGN4 m# SYS$ASSIGN4 @ SYS$ASSIGN4 0 G< SYS$GETDVI4 4 m# SYS$GETDVI4 8 @< SYS$GETDVI4  G SYS$QIOW4  m#SYS$QIOW4  @ SYS$QIOW4 G SYS$CMKRNL4 m# SYS$CMKRNL4 @ SYS$CMKRNL4 G$ SYS$DASSGN4 m# SYS$DASSGN4 @$ SYS$DASSGN4` Gl SYS$CREMBX4d m# SYS$CREMBX4h @l SYS$CREMBX4  G SYS$GETDVI 4  m# SYS$GETDVI4  @ SYS$GETDVI4' G SYS$DCLEXH4( m# SYS$DCLEXH4' @ SYS$DCLEXH4 G SYS$CMKRNL4 m# SYS$CMKRNL4 @ SYS$CMKRNL4 G, SYS$CMKRNL4$ m# SYS$CMKRNL4( @, SYS$CMKRNL4D GP SYS$CMKRNL4H m# SYS$CMKRNL4L @P SYS$CMKRNL4)p G| SYS$PUTMSG4*t m# SYS$PUTMSG4)x @| SYS$PUTMSG4  G SYS$QIOW4  m#SYS$QIOW4  @ SYS$QIOW4  G SYS$QIOW4  m#SYS$QIOW4  @ SYS$QIOW4 G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4DGP SYS$CMKRNL4Hm# SYS$CMKRNL4L@P SYS$CMKRNL4GOTS$MOVE4@OTS$MOVE4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL,G OPNFILT, m#OPNFILT,@ OPNFILT48GD SYS$CMKRNL4<m# SYS$CMKRNL4@@D SYS$CMKRNL4TG` SYS$CMKRNL4Xm# SYS$CMKRNL4\@` SYS$CMKRNL4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL,#GEXTFILT,$m#EXTFILT,#@EXTFILT4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4PG\ SYS$CMKRNL4Tm# SYS$CMKRNL4X@\ SYS$CMKRNL,GDELFILT,m#DELFILT,@DELFILT4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4G$ SYS$CMKRNL4m# SYS$CMKRNL4 @$ SYS$CMKRNL,!TG`CREFILT,"Xm#CREFILT,!\@`CREFILT4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4/4G@IOC$CHAN_TO_CCB 408m#XIOC$CHAN_TO_CCB4/<@@IOC$CHAN_TO_CCB4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4/GIOC$CHAN_TO_CCB40m#IOC$CHAN_TO_CCB4/@IOC$CHAN_TO_CCB43pG| SCH$IOLOCKW44tm# SCH$IOLOCKW43x@| SCH$IOLOCKW41G IOC$SEARCHDEV42m# IOC$SEARCHDEV41@ IOC$SEARCHDEV41G IOC$SEARCHDEV42m# IOC$SEARCHDEV41@ IOC$SEARCHDEV41G IOC$SEARCHDEV42 m# IOC$SEARCHDEV41@ IOC$SEARCHDEV418GD IOC$SEARCHDEV42<m# IOC$SEARCHDEV41@@D IOC$SEARCHDEV45XGd SCH$IOUNLOCK46\m# SCH$IOUNLOCK45`@d SCH$IOUNLOCK4 G(OTS$MOVE4$@(OTS$MOVE47pG|EXE$ALONPAGVAR48tm#pEXE$ALONPAGVAR47x@|EXE$ALONPAGVAR,9,G8INI$BRK,:0m#pINI$BRK,94@8INI$BRK4PGXOTS$MOVE4T@XOTS$MOVE4;GSCH$QAST4<m#pSCH$QAST4;@SCH$QAST47GEXE$ALONPAGVAR48m#EXE$ALONPAGVAR47@EXE$ALONPAGVAR4;GSCH$QAST4<m#SCH$QAST4;@SCH$QAST47GEXE$ALONPAGVAR48m#EXE$ALONPAGVAR47@EXE$ALONPAGVAR4;GSCH$QAST4<m#SCH$QAST4;@SCH$QAST47GEXE$ALONPAGVAR48m#EXE$ALONPAGVAR47@EXE$ALONPAGVAR4; G SCH$QAST4< m#SCH$QAST4; @ SCH$QAST4!G ! SYS$CMKRNL4!m#  SYS$CMKRNL4!@ ! SYS$CMKRNL4@!GL! SYS$CMKRNL4D!m#  SYS$CMKRNL4H!@L! SYS$CMKRNL4\!Gh! SYS$CMKRNL4`!m#  SYS$CMKRNL4d!@h! SYS$CMKRNL4!G! SYS$CMKRNL4!m#  SYS$CMKRNL4!@! SYS$CMKRNL4!G! SYS$CMKRNL4!m#  SYS$CMKRNL4!@! SYS$CMKRNL4!G! SYS$CMKRNL4!m#  SYS$CMKRNL4!@! SYS$CMKRNL4!G! SYS$CMKRNL4!m#  SYS$CMKRNL4!@! SYS$CMKRNL$ $4= "G" SYS$CANEXH4>"m#  SYS$CANEXH4="@" SYS$CANEXH4("G4" SYS$CMKRNL4,"m#  SYS$CMKRNL40"@4" SYS$CMKRNL4L"GX" SYS$DASSGN4P"m#  SYS$DASSGN4T"@X" SYS$DASSGN4p"G|" SYS$DASSGN4t"m#  SYS$DASSGN4x"@|" SYS$DASSGN4d#Gl#OTS$MOVE4h#@l#OTS$MOVE4 L%GX%SYS$QIOW4 P%m#SYS$QIOW4 T%@X%SYS$QIOW4t&G& SYS$CMKRNL4x&m# SYS$CMKRNL4|&@& SYS$CMKRNL4t'G' SYS$CMKRNL4x'm#@ SYS$CMKRNL4|'@' SYS$CMKRNL43h(Gt( SCH$IOLOCKW44l(m# SCH$IOLOCKW43p(@t( SCH$IOLOCKW41(G( IOC$SEARCHDEV42(m# IOC$SEARCHDEV41(@( IOC$SEARCHDEV45(G( SCH$IOUNLOCK46(m# SCH$IOUNLOCK45(@( SCH$IOUNLOCK4)G) SYS$CMKRNL4)m# SYS$CMKRNL4)@) SYS$CMKRNL4-G-OTS$MOVE4-@-OTS$MOVE4 X.Gd.SYS$QIOW4 \.m#xSYS$QIOW4 `.@d.SYS$QIOW ;x;8;X;;t;  SYS$CREMBX""";;;6;;; ; JTPRTSYI;x;@ SAFETY013.A  &[EVERHART.JTDEMO]JTDMNNTV2.OBJ_VAX62;13>H;;DELFILT"p;OTS$MOVE;;`;;;;|;;W;D;p;; SYS$QIOW""" <;X;;p SYS$GETDVI""" H;̖;P;;;\; OTS$CVT_TU_L"";;;;;=0 ;=p/ =  SYS$CMKRNL"7 CLI$_PRESENT0  CLI$PRESENT"  CLI$GET_VALUE"";X;;;T;;;;  SYS$ASSIGN""p;L;;;b;  SYS$DASSGN"AMAC$EMUL_CALL8;0;;;;;;';̗;@IGETCAPKGETKS"OPNFILT""G;;!CREFILT""#EXTFILT";%LICMSG7LOGLATCH;; ' SYS$DCLEXH";;@; ) SYS$PUTMSG""+GETEXF"7GETFNB;-GETPV"";=0;=p/ ; /IOC$CHAN_TO_CCB";;=0h;=p/ =0H;=0D =08 ;=/ =""l; 1 IOC$SEARCHDEV@;d;7 CTL$GL_PCB@ 3 SCH$IOLOCKW 5 SCH$IOUNLOCKh;;=0;=/ 7EXE$ALONPAGVAR9INI$BRK ;SCH$QAST=0H;=/ =0(;=/ =00;=/ =0 ;=`! = SYS$CANEXH";;=08 ";=/ ="";d;=0#;j;p;;;;;;;=00  &;=` =""";=0 &;=0 ="=0 '; =P| p;,;=0';=0 =00(;=! =0X );= =0h`);=P\( ;=0@*;=P =0 *;=p =0p+;=@| =0+;=@| =08 p,;=/ ="""̘;T;;L;\;= ==-%$ JTDMNAMAC V3.0-19311DG G=C;50lQ)@:ZRA0:[EVERHART]AXPDEFS.MAR;2D D=@872`L>?oZRA0:[EVERHART]JTDMNNTV2.MAR;3 =  '~(  ) *  + t, - . \2 3 4  5  6  7  8  9 B : Q; x< s= > Y? _@ tA B C D E =F G I J K M N &t Du W|        !v 4= SJ_ARG  4= LLA4= GOTIT4= K_ARG,4=SWPAL 84= 84=DEFAULT_DEVICE e4={sma  &&&& &&&'&H4=MBX_BUF e4= p4= MBX_BUF_DESCma  &&&& &&&&x4=FIDCRE `e4=  4= MPID 4= LPCT 4= DVL4= DESBLK4= MBX_ITEM_LIST4= MBX_CLASS4= IOPROG4= NEDAST4= MBCHN 4= VCHN4= NLCHN4= NLUCB4=yNLCCBma  &&&& &&&& 4= IOSB e4={sma  &&&& &&&&4=XXIOSB ?e4=  4=IOSTATUS 4=xBUFGma  &&&& &&&'& 4=DEV_BUF e4= 44= DEV_BUF_DESC <4= PID@4= DEV_ITEM_LISTh4= DEV_CLASSl4=yVBUFGma  &&&& &&&'&t4=VDV_BUF e4= 4= VDV_BUF_DESC 4= VPID4= VDV_ITEM_LIST4= VDV_CLASS4= DEFNAM 4= WRK4= VDFNM4=yVDFTPma  &&&& &&&&4=VDFNMD  e4= 4= DDFNM4= DDFTP4=yDDFNAma  &&&& &&&&4=  =DDFNMD  e4= 4= DDCHN4= VDCHN4=P1DSC e4= 4=P2DSC e4= 4=FRCDSC e4= 4=MINDS e4= '4=MAXDS e4= 64=ADODS e4= G4=DEADS e4= W4=CBTDS e4= b4=FCNDS e4= p4=MODDS e4= |4=SHRDSC e4= 4=LICDSC e4= 4=INSDSC e4= 4=FNUMDS e4= 4=EFNMDS e4= 4=KEYDS e4= 4=MFYDS e4= 4=NLDSC e4= 4=zWRKSTRma  &&&& &&&&4=WRKDAT ? e4= 4=yEXFNMma  &&&& &&&&4=EXFND  e4= 4= EXFNL4=yRWFNMma  &&&& &&&&4=RWFND e4= 4= RWFNL 4=xFNMXma  &&&& &&&&4=FNUMS %e4= 4= FNUMCT4= FN.ARG04=ySHFNMma  &&&& &&&&84=SHFND e4= 84= SHFNL<4= SHRFLG@4= SHUCBD4= FCNMSKH4= MODMSKL4= DEAFGP4= CBTCT T4= FRAC X4= MIN \4= MAX`4= ADFLGd4= HSTUCBh4= VDUCBl4= MBXUCBp4= MFYFLGt4= ERROR x4= MESS4=yKYFNMma  &&&& &&&?&4=KYFNMD te4={sma  &&&& &&&&4=BINKEY e4 ={sma  &&&& &&&&4=BUFHDR e4={sma  &&&& &&&& 4= BUF e4=*"4=GCELIT e4= 4=yRTNSTma  &&&& &&&&4=AINBF e4= 4=zGCETGTma  &&&& &&&& X4= FID ze4= `4=yMYFIBma  &&&& &&&&d4=FIBFID e4={sma  &&&& &&&&j4=FIBDID e4= p4= FIBCTX4= FIBACX4= FIBAST4= FIBGST4= MF3TP14= MYFDSC4= MFDSC4= MYIL34= MYIN24= MF3B14=yMF3B2ma  &&&& &&&& ̖4= UACE e4={sma  &&&& &&&&̗4=MDACE We4={sma  &&&& &&&&̘4=FIBWRK e4= L4= FIBDSCT4= NAMDSC D4= $L1 84= $L24=168_100$4= 168_1105$x4=168_103$4= 168_1103$4=168_104$x4= 168_30000$4= 168_82$4= 168_30001$L4=168_182$x4= 168_30002$4=168_821$4=168_322$T4=168_321$t@ SAFETY013.A  &[EVERHART.JTDEMO]JTDMNNTV2.OBJ_VAX62;1R>g4=168_320$4= 168_3220$H4= 168_10$4= 168_22$4= 168_21$4= 168_20$P4=168_722$X4=168_721$4= 168_6721$ 4= 168_3722$4= 168_3721$4=168_122$4=168_121$4=168_120$4=168_222$,4=168_221$P4=168_220$4= 168_30003$ 4= 168_30004$< 4= 168_30005$ 4= 168_40$ 4=168_290$ 4=   =168_30006$L 4=168_140$, 4= 168_30007$| 4= 168_30008$ 4=168_161$ 4=168_176$ 4=168_775$\ 4=168_301$\ 4=168_307$ 4=168_478$ 4=168_300$ 4=168_303$( 4= 168_7721$4 4= EVTLOOP 4= 169_30009$4= 169_15$4= 169_10$l4= 169_2$$4= 169_3$4=169_244$4= 169_4$4= 169_1244$4= 169_5$4= FDHOSTD_EXIT4= ADVDD_EXIT 4= $L3 @4= $L4<4=172_999$ 4= $L5 `4= $L6\4=173_999$ 4= $L7 4= $L8 \4= $L9 t4= $L104=175_466$4=175_661$ 4=175_660$ 4= 175_80$04= 175_90$4=175_160$4=175_554$4=175_166$4=175_164$4= 175_1166$P4= 175_1176$ 4= 175_1164$t4=175_476$4=175_477$(4=175_511$4= 175_60$4= 175_65$04= 175_4$L4= 175_1000$4=175_165$L4= BSH_XIT 4= $L11 (4= $L124= 177_30010$l4= 177_30011$l4=177_153$4= 177_6150$4=177_150$4=177_151$$4=177_152$ (4= $L13 X4= $L14@4= 178_30012$4= 178_30013$\4=178_677$4=178_150$4=178_151$T4=178_152$ 4= $L15 84= $L16 4= 179_30014$|4= 179_30015$4=179_150$ 4=179_151$44=179_152$ x4= $L17 4= $L184= 180_30016$4= 180_30017$ 4=180_150$ 4=180_151$4=180_152$  4= $L19 "4= $L20 4= IOKIL  4= X1$l!4=183_860$!4=183_861$!4=183_862$"4= 183_22$ #4= $L21 x#4= $L22x#4=184_999$ #4= $L23 %4 = $L24$4=185_100$%4=185_200$%4=185_300$ h&4= $L25 &4= $L26 &4= $L27 &4= $L28&4= 187_99$ P'4= $L29 '4= $L30 '4= $L31 '4= $L32 L(4= $L33 (4= $L34(4=190_160$(4= JSH_XIT 4)4= $L35 @)4= $L36 )4= $L37 )4= $L38 ,*4= $L39 \*4= $L40\*4= 194_99$ *4= $L41 0+4= $L420+4= 195_10$ +4= $L43 +4= $L44 ,4= $L45 <,4= $L46 ,4= $L47 .4= $L48.4=198_299$x-4=198_199$.4={198_99$ma  &&&& &&&?&\4=NAMTXT #e4=  H4= $L49 h4= $L50 X4= $L51 4= $L52 h4= $L53 4= $L54 x4= $L55 4= $L56 )4= $L57 #4= $L58 #4= $L59 ,4= $L60 .4= $L61 L-4= $L62 .4= $L63 -4= $L64 =RMS$_KEYS_VECDEF$ SS$_CPUCAP SS$_HANGUP SS$_IMGDMP STS$K_INFO TPA$B_CHAR TPA$L_CHAR DYN$C_CRCTX& SS$_CHANVIOD' SS$_PROTVIO PR$C_PS_USER% SS$_BADCHAIN SS$_INVLOGINL SS$_IVBUFLEN$ SS$_NODOMAIN SS$_NOIOCHAN~ SS$_SYSAPMIN! SS$_VCBROKEN SS$_VECALIGN KTB$M_NODELET KTB$M_SSRWAIT KTB$V_NODELET KTB$V_SSRWAIT SS$_BADCHKSUM SS$_ILLBLKNUM" SS$_INCSHAMEM SS$_INVAJLNAM SS$_INVBUSNAM SS$_INVCLSITM " SS$_NOSUCHPGM STS$M_CONTROL STS$S_CONTROL STS$V_CONTROL DYN$C_UIS_MENUIO$M_SETPOOLSZ IO$V_SETPOOLSZ<KTB$L_ASTQBL_S8KTB$L_ASTQFL_SRMS$_DTFVERMISRMS$_SEMANTICS SS$_CONNECFAILPSS$_DEVICEFULLSS$_HEADERFULL%SS$_INSFP1POOLSS$_IVSECIDCTL$(SS$_NOALLSPOOL SS$_NOTINSTALL%SS$_NOTRANQUILT"SS$_PARENT_DEL&SS$_QUEUE_FULL SS$_RIGHTSFULLSS$_TOOMANYAJLP SS$_WAITUSRLBLUCB$K_ERRDGSIZhUCB$K_LMBUFSIZxUCB$L_DU_TOTSZDYN$C_LAVC_CLSTDYN$C_LAVC_PORTDYN$C_LAVC_ROOTDYN$C_NSA_EVENT@UCB$M_TEMPL_BSYUCB$V_TEMPL_BSYIO$M_CLEAR_POSIXIO$V_CLEAR_POSIXPR$S_PS_SP_ALIGN8PR$V_PS_SP_ALIGN&SS$_NOCCBBUFFOBJeUCB$B_FAIL_MUTEXDYN$C_VWS_CHR_ARRIRP$B_SHD_PIO_ACTIRP$B_SHD_PIO_CNTfUCB$W_MSCP_RESVDWDVI$_TT_DISCONNECTPR$M_ASTSR_CLR_ALLPR$M_ASTSR_SET_ALLDYN$C_NET_EMAA_MRCPDYN$C_NET_OSITP_LSPDYN$C_NET_OSITP_RSPDYN$C_NET_OSITP_TMPIRP$L_SHD_PIO_ERROR?PR$V_TBCHK_NO_TBCHK ,SS$_ALREADYASSUMINGUCB$L_PI_CURR_SCRIPTUCB$M_MSCP_MVRESTARTUCB$V_MSCP_MVRESTARTIRP$L_SHD_CONTROL_IRPIRP$L_SHD_SVD_CNT_IRPSS$_WAIT_CALLERS_MODE SS$_TARGET_GOTO_UNWIND DYN$C_NET_EMAA_IVKIDTBL$RMS$_BKZ4RMS$_FSZRMS$_KSZRMS$_RSZRMS$_SIZRMS$_USZ RMS$_BUSY SS$_ALTERt SS$_IVSSRQ SS$_GENTRAP% SS$_INSFMAPD( SS$_NOGROUPQ DYN$C_LCKCTX KTB$L_PRISAV  SS$_CONTROLO<( SS$_NOLOG_IO( SS$_NOPHY_IO( SS$_NOVOLPRO KTB$M_SSFEXCU KTB$V_SSFEXCU PR$C_PS_SUPER % SS$_BADBUFLEN\$ SS$_BADREASON$% SS$_BADRETLEN SS$_BADWINLBN SS$_BADWINRVNH SS$_DEVASSIGN SS$_FCPREPSTN# SS$_INVPWDLENl$ SS$_NOTORIGIN" SS$_PGMSTDALNdDYN$C_CLASSDRVBIRP$B_CLN_INDXKTB$M_SECAUDITKTB$V_SECAUDITPR$_SID_TYP9AQ̆RMS$_DTFSESEST!SS$_DEVNOTDISM*SS$_EXBUFOBJLMSS$_PAGRDERRXMRMS$V_STVSTATUS%SS$_DEVLISTFULLp SS$_ENDOFUSRLBLd!SS$_EXGBLPAGFILSS$_IDXFILEFULL SS$_INCVOLLABEL%SS$_INSFCREDITLH SS$_MUSTCLOSEFLT SS$_PRIVINSTALL\ SS$_PROTINSTALL$SS$_SITEPWDFAILZUCB$W_DEVBUFSIZDYN$C_CLU_CLUOPTTDYN$C_DDTM_EVENTBDYN$C_RIGHTSLISTUCB$M_TU_DENSITYUCB$V_TU_DENSITYFDVI$_PREFERRED_CPUIRP$M_DID_FAST_FDTtIRP$PS_FDT_CONTEXTIRP$V_DID_FAST_FDTIRP$B_SHD_PIO_FLAGSPR$M_ASTEN_DSBL_ALLPR$M_ASTEN_ENBL_ALL&SS$_GBLSEC_MISMATCH%SS$_SIG_ARGMISMATCHKDYN$C_NET_SCL_SCLSVPDVI$_MSCP_UNIT_NUMBERUCB$L_TRACE_NEXT_SLOTdRMS$_BUG_RU_ABORT_FAIL SS$_SHUTdSS$_TBIT SS$_DRVERR SS$_ILLSER4 SS$_IVADDR SS$_IVCHAR$ SS$_LOADER =( SS$_NOOPER SS$_PLHLDR+ SS$_RDBERR SS$_WASCLR RMS$_OK_IDX SS$_ILLSEQOP SS$_ILLVECOP+ SS$_IVMEDTYP( SS$_NOPFNMAPd SS$_NOTAPEOP SS$_WRONGACP STS$M_FAC_NO STS$M_MSG_NO STS$S_FAC_NO STS$S_MSG_NO STS$V_FAC_NO STS$V_MSG_NO TPA$L_NUMBER TPA$Q_NUMBER TPA$S_NUMBER8 TPA64$B_CHAR8 TPA64$Q_CHAR TPA64$S_CHAR DYN$C_CLU_BTX DYN$C_SMI_CTXW DYN$C_VPS_CTX DYN$C_VP_VCTX KTB$L_PRIBSAV SS$_PAGOWNVIO SS$_PAGTYPVIO<' SS$_REGOWNVIODVI$_DEVBUFSIZDYN$C_VWS_VIEWDKTB$L_ASTQBL_U@KTB$L_ASTQFL_U PR$_SID_TYP9RRrRMS$_EXTNOTFOU8SS$_DATAOVERUNdSS$_DEVFOREIGN SS$_LINKDISCONZ,SS$_MRES_INCONDVI$C_SECONDARYDVI$M_SECONDARYDVI$V_SECONDARYDYN$C_DSRV_DSRVDYN$C_TSRV_TSRVSS$_BADCHECKSUMtSS$_TOOMANYLNAMKTB$L_AFFINITIES\&SS$_NOSUCHUPCALLDYN$C_FDT_CONTEXT9DYN$C_NET_EVL_EVTsDYN$C_NET_NRL_CKT1DYN$C_NET_VCI_VRTDYN$C_SCS_CMNBDLT DYN$C_SCS_PDTLISTKTB$K_SCHED_OTHERTRMS$_BUG_RURECERRUCB$M_PI_FKB_BUSYUCB$M_PI_TQE_BUSYUCB$V_PI_FKB_BUSYUCB$V_PI_TQE_BUSY DYN$C_COLOR_ARRAYSDYN$C_NET_NODE_IDSpDYN$C_OBSOLETE_ENSDYN$C_NET_MOP_TIMERIRP$L_ACB64X_OFFSETxKTB$L_AFFINITY_SKIPPR$M_ASTEN_PRSRV_ALLPR$M_ASTSR_PRSRV_ALLSB$M_LOCAL_DIRECTORYSB$V_LOCAL_DIRECTORYUCB$M_SHD_PASSIVE_MV UCB$V_SHD_PASSIVE_MVIRP$L_SHD_EXPEL_TIMERPCB$L_CURRENT_AFFINITY lRMS$_BUG_RU_COMMIT_FAIL!*SCS$C_USE_ALTERNATE_PORT!*SCS$K_USE_ALTERNATE_PORT"FIB$M_CACHING_OPTIONS_MBZ"FIB$S_CACHING_OPTIONS_MBZ" FIB$V_CACHING_OPTIONS_MBZ%8UCB$S_DISKTAPE_UCB_EXTENSION PR$_DATFX, SS$_ABORT SS$_NOWRT ! SS$_RESET PR$M_PS_SW PR$S_PS_SW PR$V_PS_SWt SS$_ARTRES+ SS$_IVDENSC+ SS$_NO_MMS4 SS$_OPCCUS SS$_VECDIST SS$_CTRLERRl' SS$_INVUSER+ SS$_MDMSERR SS$_NONEXPRl" SS$_VOLOERR TPA$L_COUNT STS$M_FAC_SP STS$V_FAC_SP TPA$M_BLANKS TPA$V_BLANKS SS$_DGQINCOMP SS$_FILNOTEXP< SS$_INSFBUFDP SS$_INVUICGRPh SS$_PRIMNOSTPDDYN$C_PSCANCTXDYN$C_PSX_XCTXPR$_SID_TYP8PSPR$_SID_TYP8SSIRP$M_CLN_READYIRP$V_CLN_READYPR$_XSID_RV_9RR$SS$_BUFNOTALIGNT&SS$_NOTHREADMAN[ SS$_RESELECTIONDVI$_TT_BRDCSTMBX#SS$_LICENSE_LEVELR,SS$_MRES_PFNSMALL!SS$_MRES_REGSMALL$SS$_RECOVERCANCELSS$_THREAD_UPCALL XAB$R_RDT_OVERLAY DYN$C_DDTM_DDTMTXT^DYN$C_NET_NSP_PORT KTB$L_CALLBACK_ERRKTB$S_EPID_NODE_SEQKTB$V_EPID_NODE_SEQMDYN$C_NET_SCL_BUFFERIRP$B_SHD_PIO_ERRCNTIRP$L_SHD_EXPEL_FLAGS DVI$_SHDW_FAILED_MEMBER#ATR$C_CACHE_POLICY_DEFAULT  SS$_ASTFLTl! SS$_BADRCT, SS$_COMPAT SS$_FORGET SS$_FORMATL( SS$_NOACNT SS$_NOSLOT SS$_REJECT SS$_WASSET, SS$_MULTRMS$ SS$_NOCLASS| SS$_NOLINKS STS$K_ERROR KTB$M_NOTIFY KTB$V_NOTIFYD% SS$_BADOWNER SS$_CMODSUPR$ SS$_CMODUSER! SS$_JBCERROR$ SS$_NOREADER$ SS$_NOWRITERD SS$_PAGRDERRl SS$_RANGEERR SS$_REMEMBER TPA$B_MCOUNT SS$_DBGOPCREQ TPA$L_OPTIONSDYN$C_BUSARRAYDYN$C_SECURITY  =SS$_CPUSTARTIPTPA$L_TOKENPTR@TPA64$Q_NUMBERTPA64$S_NUMBERDYN$C_DDTM_XCBXDYN$C_IPC_TPBTX DYN$C_LM_LMRCBXIRP$W_ENDMSGSIZSS$_INVSECDOMAINKTB$L_CLASS_QUANTb,SS$_NORESERVEDMEMDVI$_TT_DCL_MAILBXKTB$L_CAPABILITIESKTB$L_TM_CALLBACKSKTB$Q_CAPABILITIESKTB$S_CAPABILITIES@IO$M_MB_ROOM_NOTIFYIO$V_MB_ROOM_NOTIFYDYN$C_SECURI@ SAFETY013.A  &[EVERHART.JTDEMO]JTDMNNTV2.OBJ_VAX62;14>TY_CLASSKTB$L_CAPABILITY_SEQLDYN$C_NET_SCL_SCLATTR DYN$C_FILES_64_LCK_EVQIRP$L_SHD_SAVED_STATUSF.MASK + SS$_AVRWAIT! SS$_DUPUNIT! SS$_INSFCDT$" SS$_IVIDENT,) SS$_NOAUDIT( SS$_NOMOUNT" SS$_SRVMMAT, SS$_TIMEOUT$ SS$_DEVNOTWSL$ SS$_INSFLPGST$ SS$_INSFRPGSD SS$_INSFSPTS( SS$_NOBYPASS*, SS$_NOTSUPFSr SS$_PWDINHIS,! SS$_SUBLOCKS@ ACB64$S_ACB64 PR$_SID_TYPCV PR$_SID_TYPRV PR$_SID_TYPUV RMS$_CONTROLY RMS$_FACILITYD SS$_ASSERTERR% SS$_BADBUFADRD SS$_BADIMGHDR|& SS$_BADIOSADR# SS$_BADLOGVER SS$_CLASSUPER, SS$_DEVCMDERR" SS$_DEVNOTSHR4 SS$_DEVREQERR SS$_FILACCERR SS$_NOHANDLER SS$_NOPTBLDIRL SS$_NULPTRERR\ SS$_STRLENERRd SS$_SUBSTRERR TPA64$L_COUNTTPA64$M_BLANKSTPA64$V_BLANKSlADP$L_RESERVED1ZSS$_INVFILFOROP!SS$_SERIOUSEXCPlSS$_SHMGSNOTMAP TPA$L_STRINGPTRTPA64S_TOKENPTRDYN$C_DDTM_XPCBXDYN$C_LM_LMOPCBX!DYN$C_LM_LMTRCBXPR$L_LONG_ACCESSDPR$M_ASTSR_SET_SPR$Q_QUAD_ACCESSPR$S_LONG_ACCESSPR$S_QUAD_ACCESSDYN$C_DDTM_XTCBLWT'SS$_VA_NOTPAGALGNDYN$C_NET_MOP_ENPOUTDYN$C_NET_MOP_PDUOUTwDYN$C_NET_NRL_CKTEVTDYN$C_NET_OSITP_PORTIRP$B_SHD_PIO_ERRSEV UCB$L_MB_ROOM_NOTIFYDYN$C_SECURITY_RIGHTS4 SS$_DECDIV< SS$_DECINV SS$_FLTDIV$ SS$_FLTINV SS$_INTDIV$ SS$_NOPRIVT SS$_VOLINV( DDT$PS_FDT_2" SS$_DATALOST SS$_DBGEVENT SS$_DEVINACTl SS$_DEVMOUNT," SS$_DUPIDENT` SS$_EFNOTSETT! SS$_ILLCDTST SS$_INCOMPAT4$ SS$_INVEVENT+ SS$_IVEXPDAT SS$_LINEABRT SS$_LINKEXIT$) SS$_NOIMPORT SS$_OPRABORT SS$_PATHLOST SS$_QFNOTACT TPA$M_ABBREV TPA$V_ABBREVB SS$_ACEEXISTS SS$_DEVEXISTS SS$_DRVEXISTS\" SS$_PARNOTSYSKTB$L_AFFINITYPR$_XSID_CV_CVPR$_XSID_RV_RVPR$_XSID_UV_UVSS$_BADFILEHDR SS$_BADFILEVERSS$_FCPREADERRSS$_FCPSPACERRSS$_FCPWRITERRJSS$_INVSECOPER\!SS$_NOLISTENER SS$_NOSUCHUSERSS$_NOTCREATORSS$_SHELFERROR SS$_TOOMANYVERTPA$L_TOKENCNTTPA64$B_MCOUNTTPA64$L_OPTIONS0TPA64$Q_TOKENPTRTPA64S_STRINGPTRDYN$C_CWPS_FORCEX%DYN$C_NET_TSK_SCX$DYN$C_NET_TSK_SQX"DYN$C_NET_TSK_TCXDPR$M_ASTEN_ENBL_S$'SS$_OFF_NOTBLKALGN,'SS$_OFF_NOTPAGALGNDYN$C_NET_NBI_NBIRVDYN$C_NET_MOP_SUBPDUDYN$C_NET_MOP_CPRPOUTDYN$C_NET_MOP_DPRPOUTDYN$C_NET_MOP_MRCPOUTDYN$C_NET_MOP_VCRPOUTDYN$C_OBSOLETE_ENS_ENS"DYN$C_F64_F64VPI_PATHCOMP#PCB$L_PERMANENT_CAPABILITY%ATR$C_CACHE_POLICY_WRITETHRUt SS$_NOMBX SS$_CHAINW DEV$M_FILL_2 DEV$V_FILL_20 SS$_ALRDYSTRT SS$_BADWINCNT SS$_CLIFRCEXT" SS$_CPUNOTACTh SS$_ILLLBLAST SS$_ILLPAGCNT SS$_IVPROTECT&  =SS$_IVREGPROT SS$_LINKABORT" SS$_NOREGSUIT SS$_NOSOLICIT SS$_NOTVOLSETH SS$_UNKRESULT! SS$_UNSOLICIT STS$K_SUCCESS STS$M_SUCCESS STS$V_SUCCESS"SS$_INVSECLASSSS$_NOCOMPLSTSSS$_BADQUEUEHDR@ SS$_BLOCKCNTERRSS$_FCPREWNDERRD!SS$_FORCEDERROR&SS$_ILLMODIFIER SS$_SMALLHEADER%SS$_TRANSCALLERTPA$L_STRINGCNTPR$M_ASTSR_SET_UTPA64$Q_STRINGPTRPR$M_ASTEN_PRSRV_SPR$M_ASTSR_PRSRV_Sk+SS$_SKIP_EXPIRATION(ATR$S_ATR_CACHING_OPTIONS_FLAGSxP.MAGIC2 SS$_RETRY) SS$_NOGRPPRV SS$_NONEXDRVb SS$_NOOBJSRVt( SS$_NOSETPRV( SS$_NOSYSPRV SS$_NOTSQDEVD# SS$_NOSUCHCPUDDT$PS_START_2PR$_SID_TYPMAXSS$_ACCONFLICT$#SS$_BADCONTEXTp SS$_BOOTREJECTd AT$_KA1A05c AT$_KA1B05 CCB$B_AMOD CCB$L_WIND DDB$PS_UCB@ ATR$C_ODS64 DT$_NQ_3271 DT$_XK_3271 DT$_XV_3271 DT$_YQ_3271 ACB64$B_RMOD6 DT$_ER_DE200L DT$_EW_DE450M DT$_EW_DE500? DT$_IR_DW300 UCB$W_FILL_0 SCS$S_SCSDEF1DPT$K_STEP1_V2DPT$K_STEP2_V2LAT$_THIRDPARTY0CRB$M_XZA_CHAN0CRB$V_XZA_CHAN0@NAM$M_WILD_SFD6NAM$V_WILD_SFD6%KTB$L_PERMANENT_CPU_AFFINITYDT$_FD6DT$_FT6DT$_EZ35DT$_RC25QDT$_RF35~DT$_RF75DT$_RM05DT$_RP05*DT$_RX35mDT$_RZ15;DT$_RZ25VDT$_RZ353DT$_RZ55iDT$_RZ75.DT$_TA85DT$_TF85DT$_TU45&DT$_TZ85DT$_VT05ADT$_VT55 DEV$M_HOC DEV$M_LOC DEV$M_REC DEV$M_WBC DEV$M_WTC DEV$V_HOC DEV$V_LOC DEV$V_REC DEV$V_WBC DEV$V_WTC DT$_DTC04 DT$_RRD44 DT$_RW504 DT$_RW514 DT$_RWZ54 DT$_TLZ04 FAB$M_EXE FAB$M_MSE FAB$V_EXE FAB$V_MSE UCB$Q_FR4 UCB$S_FR4 DEV$M_NOLB DEV$V_NOLB DT$_MR_TU72 ACB64$B_TYPE ACB64$S_MODE ACB64$V_MODE ACB64$W_SIZE DT$_IX_IEX11 DT$_SB_ISB11. DT$_SE_DPV11- DT$_SE_DUP11 DT$_SJ_DSV11A DT$_ZY_DSYT1 DT$_MX_MUX200 DT$_VL_VS8200DPT$K_STEP2_V3hPCB$Q_FILES_64PCB$S_FILES_64ACB$M_POSIX_ACBACB$V_POSIX_ACBMAT$_THIRDPARTY1NATR$C_MAX_PLUS1CRB$M_XZA_CHAN1CRB$V_XZA_CHAN1NAM$M_WILD_SFD7NAM$V_WILD_SFD7SYSTEM$_FACILITYxMAGICX$$$DTDT$_FD7DT$_FT7)AT$_KA49 DT$_LA36DT$_RD26{DT$_RF36DT$_RK06DT$_RP06CDT$_RX26nDT$_RZ16]DT$_RZ26^DT$_RZ36<DT$_RZ566DT$_TA86DT$_TE164DT$_TF860DT$_TLZ6/DT$_TU56'DT$_TZ86@ DEV$M_FOD DEV$M_RED DEV$M_RND DEV$M_SHD DEV$M_SQD DEV$V_FOD DEV$V_RED DEV$V_RND DEV$V_SHD DEV$V_SQD DT$_DTC05 DT$_DTCN5J DT$_ESE25 DT$_HSZ15 DT$_KDA25 DT$_QDA25 DT$_RAID5 DT$_RCF25R DT$_RFH353 DT$_TAD85 DT$_TSZ05G DT$_TZ865D DT$_TZ875? DT$_TZ885B DT$_TZ895 DT$_VS125c DT$_VT105d DT$_VT125K FAB$B_RCF FAB$C_UDF FAB$M_CIF FAB$M_NEF FAB$M_PPF@ FAB$M_SCF FAB$M_TEF FAB$V_CIF FAB$V_NEF FAB$V_PPF FAB$V_SCF FAB$V_TEF DDB$L_ACPD# DT$_N53C94 CCB$M_CLONE CCB$V_CLONE FAT$C_FIXED$ ACB$S_ACBDEF ADP$M_ONLINE ADP$V_ONLINE8 DDB$L_2P_UCB8 DDB$L_DP_UCB5 DT$_ER_DE4224 DT$_EY_NITC2 DT$_LC_DMF32 DT$_LI_DMB32, DT$_SF_DSF32 DT$_SL_DSB32* DT$_SM_DSF32 DT$_UK_KTC32 DT$_ZS_DST32 FAT$W_MAXREC FAT$B_RATTRIBDPT$K_STEP2_V4UCB$S_UCBDEF10NAT$_THIRDPARTY2ADP$PS_NODE_DATA0DPT$PS_DELIVER_2xPCB$Q_KEEP_IN_WS2PCB$S_KEEP_IN_WS2BIGPAGEDT$_FD8DT$_FT8|DT$_RF37DT$_RK07DT$_RP07oDT$_RZ17cDT$_RZ27dDT$_RZ37=DT$_RZ577DT$_TA87=DT$_TLZ7DT$_TU77(DT$_TZ87 _ =AT$_DISK9 AT$_PRTR9 AT$_SFUN9 AT$_TAPE9 AT$_TERM9 AT$_USER9a DT$_ESE56 DT$_RW516- DT$_TLZ06 FAB$B_ORG FAB$M_CTG FAB$M_ORG FAB$S_ORG FAB$V_CTG FAB$V_ORG@ IRP$Q_FR3 IRP$S_FR3 DDB$B_TYPE DDB$K_TAPE DDB$S_NAME DDB$T_NAME DDB$W_SIZE DT$_NW_X25 DT$_YN_X25 DT$_YO_X25T IRP$L_STS2 XAB$L_RDT4 DDB$IL_ACPD FAT$B_RTYPE FAT$S_RTYPE FAT$V_RTYPE FAT$W_RSIZE FDTARG$_CCB FDTARG$_PCB FDTARG$_UCB IRP$L_IOST1 ADP$S_ADPDEF FAB$M_SHRUPD FAB$V_SHRUPD ADP$L_ADPTYPED DDB$PS_2P_DDB8 DDB$PS_2P_UCB FAT$M_PRINTCC FAT$V_PRINTCC XAB$S_XABDEF1 ACB$M_NODELETEACB$V_NODELETEDPT$K_STEP2_V5 UCB$W_TMV_CRC1OAT$_THIRDPARTY3ACB64$M_POSIX_ACBACB64$V_POSIX_ACBzDT$_EF58uDT$_EZ58#DT$_LA38%DT$_RX18pDT$_RZ18DT$_RZ28hDT$_RZ38FDT$_RZ58DT$_TA78DT$_TU58DT$_TU78>DT$_TZ88FAB$M_AIFAB$M_BIFAB$V_AIFAB$V_BI< DT$_TLZ07" DT$_TSZ07) DT$_TZ8571 DT$_TZ8672 DT$_TZ877@ DT$_TZ887C DT$_TZ8970 FAB$C_HSHX IDB$S_IDBH IRP$Q_FR4 IRP$S_FR4 DEV$M_NOFE DEV$V_NOFE DDB$IB_TYPE DDB$IW_SIZE DDT$IW_SIZE FAB$C_STMLF IRP$L_IOST2$ ACB$C_LENGTH$ ACB$K_LENGTH CCB$S_CCBDEFa DC$_DECVOICE` DC$_REALTIME DT$_FILES_64 FAT$W_FFBYTE IRP$L_QIO_P1 IRP$Q_QIO_P1 IRP$S_QIO_P1@ FAB$M_PPF_IND FAB$V_PPF_IND FAT$C_INDEXED( IRP$L_IIRP_P0 IRP$Q_PARAM_0 IRP$S_PARAM_0LUCB$L_DEVCHAR2"UCB$W_TMV_CRC2XAB$C_CXT_VER1DADP$L_PROBE_CMDADP$PS_CRAM_CMDPAT$_THIRDPARTY4@CCB$M_NOREADACCCCB$V_NOREADACCIDT$_CD_LOADER_1`UCB$L_TT_DEVDP1dUCB$W_TMV_BCNT1ACB$L_THREAD_PIDDT$_RZ29jDT$_RZ59DT$_TA79ADT$_TZ89@ DEV$M_ELG DEV$M_WLG DEV$V_ELG DEV$V_WLGb DT$_ESE58# DT$_TSZ08@ FAB$M_UPI FAB$V_UPI FAB$W_IFI NAM$L_ESA NAM$L_RSAE DT$_ER_DE205C DT$_ER_DE425D DT$_EW_DE435 DT$_MW_TSU05 DT$_MW_TSV05P FAB$S_FABDEF FAT$S_FATDEF IRP$L_QIO_P2 IRP$Q_QIO_P2 IRP$S_QIO_P2< DDB$L_PORT_ID DDB$S_PORT_ID< DDB$T_PORT_ID DVI$_DEVCHAR2 FAT$B_BKTSIZE FAT$B_VFCSIZE0 IRP$L_IIRP_P1 IRP$Q_PARAM_1 IRP$S_PARAM_1 UCB$S_UCBDEF4$UCB$W_TMV_CRC30ADP$Q_WAIT_TIMEADP$S_WAIT_TIMEQAT$_THIRDPARTY5FAT$M_FORTRANCCFAT$M_IMPLIEDCCFAT$V_FORTRANCCFAT$V_IMPLIEDCC`UCB$L_DEVDEPND2UCB$L_MISC_INT2fUCB$W_TMV_BCNT2 ACB64$M_NODELETEACB64$V_NODELETECCB$M_NOWRITEACCCCB$V_NOWRITEACCACB$M_FLAGS_VALIDACB$V_FLAGS_VALIDUCB$S_MEDIA_ID_N0UCB$S_MEDIA_ID_T0UCB$V_MEDIA_ID_N0UCB$V_MEDIA_ID_T0DC$_DISK) DT$_DISK9 DT$_PRTR9 DT$_SFUN9 DT$_TAPE9I DT$_TERM95 DT$_TKZ09 DT$_USER9} DYN$C_F644 NAM$L_FNB ADP$L_LINK DT$_BS_DT07 CCB$K_LENGTHH DDB$S_DDBDEFx DDT$S_DDTDEF IRP$L_QIO_P3 IRP$Q_QIO_P3 IRP$S_QIO_P3 DDT$W_FDTSIZEH IRP$L_IIRP_P2H  =IRP$Q_PARAM_2 IRP$S_PARAM_2@ACB64$C_LENGTH@ACB64$K_LENGTHHDDT$L_MNTV_SQDFAB$S_LNM_MODEFAB$V_LNM_MODEFAT$C_RELATIVEFAT$C_VARIABLE&UCB$W_TMV_CRC4RAT$_THIRDPARTY6@DDT$L_MNTV_SSSCDVI$C_ACP_F11V1FAT$C_UNDEFINEDdUCB$L_DEVDEPND3hUCB$W_TMV_BCNT3(ADP$Q_QUEUE_TIMEADP$S_QUEUE_TIMEDDT$PS_START_JSBdUCB$Q_DEVDEPEND2UCB$S_DEVDEPEND2ACB$M_THREAD_SAFEACB$V_THREAD_SAFE+DT$_TAPE_LOADER_1UCB$S_MEDIA_ID_N1UCB$S_MEDIA_ID_T1 UCB$V_MEDIA_ID_N1UCB$V_MEDIA_ID_T1ACB64$L_THREAD_PIDADP$Q_SCRATCH_BUF_PAADP$S_SCRATCH_BUF_PAbEMB$C_DAEMB$C_SAbEMB$K_DAEMB$K_SA DEV$M_SDI DEV$V_SDI FAB$M_BLK FAB$M_RCK FAB$M_WCK FAB$V_BLK FAB$V_RCK FAB$V_WCK FIB$L_WCC IDB$M_VLE IDB$V_VLE LDT$L_CCB LDT$L_FIB0 NAM$L_WCC DT$_NV_X29 KTB$L_STS2 ADP$PS_ABLK FAB$M_PPIFI FAB$V_PPIFI DEV$S_DEVDEF FAT$C_LENGTH FAT$K_LENGTH FAT$W_EFBLKH FAT$W_HIBLKH IRP$L_QIO_P4 IRP$Q_QIO_P4 IRP$S_QIO_P4 DDT$W_DIAGBUF DVI$C_ACP_F64 FAT$S_FILEORG FAT$V_FILEORG IRP$Q_PARAM_3 IRP$S_PARAM_3DDT$IW_FDTSIZEFAT$C_STREAMLFACB64X$C_LENGTHACB64X$K_LENGTHSAT$_THIRDPARTY7HDDT$PS_MNTV_SQDDVI$C_ACP_F11V2DVI$_DEVDEPEND2DVI$_TT_DECCRT2FAB$S_CHAN_MODEFAB$S_FILE_MODEFAB$V_CHAN_MODEFAB$V_FILE_MODEhUCB$L_DEVDEPND4jUCB$W_TMV_BCNT4@DDT$PS_MNTV_SSSCUCB$S_MEDIA_ID_N2UCB$V_MEDIA_ID_N2DT$_SCSI_SCANNER_1ACB64$M_FLAGS_VALIDACB64$V_FLAGS_VALIDADP$PS_ADP_SPECIFICADP$PS_SCRATCH_BUF_VA DC$_SCOMBDC$_TERM EMB$C_MBA EMB$C_UBA EMB$K_MBA EMB$K_UBA FAB$C_REL FAB$M_DEL FAB$M_NIL FAB$M_SPL FAB$V_DEL FAB$V_NIL FAB$V_SPL FIB$S_DID FIB$S_FID FIB$W_DID FIB$W_FID NAM$B_BID NAM$C_BID NAM$M_PWD NAM$S_DID NAM$S_FID NAM$V_PWD* NAM$W_DID$ NAM$W_FID DEV$M_SCSI DEV$V_SCSI IDB$B_TYPE IDB$W_SIZE( LDT$L_IOSB ACB$L_ASTQBL ACB$L_ASTQFL ACB$M_UPCALL ACB$V_UPCALLH DDB$C_LENGTHH DDB$K_LENGTHx DDT$C_LENGTHx DDT$K_LENGTHJ DT$_EO_3C598 FAB$M_RCF_AI FAB$M_RCF_BI FAB$V_RCF_AI FAB$V_RCF_BI  IRP$L_QIO_P5  IRP$Q_QIO_P5 IRP$S_QIO_P5 RMS$_UNUSED1 UCB$S_UCBDEF7 DDT$IW_DIAGBUFDDT$W_ERRORBUF DYN$C_F64_RES1FDT$Q_BUFFEREDFDT$S_BUFFEREDDVI$C_ACP_F11V3$DVI$_DEVDEPEND3(DVI$_TT_DECCRT3DYN$C_VWS_VT200@DDB$L_CLASS_LKIDACB64$M_THREAD_SAFEACB64$V_THREAD_SAFE __RELEASE_PIGGYBACKCDC$_LPAT$_BDA7AT$_FFAGAT$_ISAAT$_MBA AT$_SJAAT$_UBAAT$_XJA$AT$_XSA%AT$_XZAEMB$C_MCEMB$K_MC@ DEV$M_RCK DEV$M_WCK DEV$V_RCK DEV$V_WCK FAB$B_RFM FAB$C_STM( FAB$L_NAM FAB$M_NAM FAB$V_NAMX LDT$L_FND LDT$L_FWD DDB$K_PACK DDB$L_LINK EMB$C_SBIA EMB$K_SBIA FIB$M_WILD FIB$V_WILD FAT$L_EFBLK FAT$L_HIBLK FIB$M_TRUNC FIB$S_ALLOC = FIB$V_TRUNC" FIB$W_ALLOC0 LDT$L_JTUCB ACB$L_ASTPRM FIB$M_ALCONB FIB$V_ALCONB( IRP$L_QIO_P6( IRP$Q_QIO_P6 IRP$S_QIO_P6K DT$_IW_TC4048 FIB$C_ACCDATA, FIB$C_ALCDATA FIB$C_DIRDATA FIB$C_EXTDATA FIB$K_ACCDATA, FIB$K_ALCDATA FIB$K_DIRDATA FIB$K_EXTDATA DYN$C_F64_RES2DDT$IW_ERRORBUFDVI$C_ACP_F11V4@DVI$_DEVDEPEND40DVI$_TT_DECCRT4IRP$Q_SHD_LOCK_FR0IRP$S_SHD_LOCK_FR0ADP$PS_CONFIG_TABLEADP$PS_MAP_REG_BASEADP$Q_HARDWARE_TYPEADP$S_HARDWARE_TYPE8DDT$PS_ALTSTART_JSBSTEP2*AT$_TCVMS$V5xSB$S_SB9AT$_EISAAEMB$C_VDAEMB$K_VD ADP$S_ADP DEV$M_ALL DEV$M_AVL DEV$M_CCL@ DEV$M_SPL DEV$M_SWL DEV$V_ALL DEV$V_AVL DEV$V_CCL DEV$V_SPL DEV$V_SWL( EMB$C_SBCp EMB$C_UBC( EMB$K_SBCp EMB$K_UBC FAB$B_BLNP FAB$C_BLNP FAB$K_BLN8 FAB$L_MRN FAB$M_FTN FAB$M_PRN FAB$M_TRN FAB$V_FTN FAB$V_PRN FAB$V_TRN@ LDT$L_ACE NAM$L_RLF NAM$M_PPF NAM$V_PPF PCB$L_ARB PCB$L_JIB| PCB$L_ORB PCB$L_PCB PCB$L_PMBP PCB$L_PQB PCB$M_TCB8 PCB$S_PCB PCB$V_TCB CCB$L_CHAN CCB$W_CHAN` LDT$L_FNDD; NAM$B_NAME8 NAM$B_NODE< NAM$B_TYPEL NAM$L_NAME@ NAM$L_NODEP NAM$L_TYPE NAM$M_NODE NAM$V_NODE DDB$PS_LINK FDT$K_LENGTH8 LDT$L_CHNUCB __TEMP_COUNT UCB$S_UCBDEF9ACB64$L_ASTQBLACB64$L_ASTQFLACB64$M_UPCALLACB64$V_UPCALL DYN$C_F64_RES3PDDT$L_AUX_ROUTINELDDT$L_AUX_STORAGEDC$_REMCSL_STORAGE@FAB$M_JOURNAL_FILEFAB$S_CALLERS_MODEFAB$V_CALLERS_MODEFAB$V_JOURNAL_FILEIRP$Q_SHD_LOCK_FR1IRP$Q_SHD_SAVED_R1IRP$S_SHD_LOCK_FR1IRP$S_SHD_SAVED_R1ADP$M_PCI_PCI_BRIDGEADP$V_PCI_PCI_BRIDGEACB$M_THREAD_PID_VALIDACB$V_THREAD_PID_VALID8ACB64$Q_USER_THREAD_IDACB64$S_USER_THREAD_ID[AT$_HPCADP$L_TR(AT$_LAMBEMB$C_BEEMB$C_DEEMB$C_HEEMB$C_SE EMB$C_UEEMB$K_BEEMB$K_DEEMB$K_HEEMB$K_SE EMB$K_UE`SB$L_CSBXSB$L_DDB4 AT$_CIMNA6 AT$_DEMNAb DC$_AUDIOc DC$_VIDEO DEV$M_NNM DEV$M_RTM@ DEV$M_SSM DEV$M_TRM DEV$V_NNM DEV$V_RTM DEV$V_SSM DEV$V_TRM EMB$C_CRD EMB$K_CRD FAB$M_BIO@ FAB$M_BRO FAB$M_DMO@ FAB$M_KFO FAB$M_RWO@ FAB$M_SQO FAB$M_UFO FAB$V_BIO FAB$V_BRO FAB$V_DMO FAB$V_KFO FAB$V_RWO FAB$V_SQO FAB$V_UFO PCB$L_DPC< PCB$L_UICp LDT$L_SIZEt PCB$L_PRIB  PCB$L_XPCB FIB$B_WSIZE FIB$C_SPACE FIB$M_WRITE FIB$V_WRITE LDT$L_ACCMDH LDT$L_MYDID@ LDT$L_MYFID PR$_XSID_N2 ACB$M_FASTIO ACB$V_FASTIO FAB$M_SHRDEL FAB$V_SHRDEL FAT$W_EFBLKL FAT$W_@ SAFETY013.A  &[EVERHART.JTDEMO]JTDMNNTV2.OBJ_VAX62;1 >HIBLKL FIB$C_POSEND FIB$M_EXTEND FIB$M_NOREAD FIB$M_REWIND FIB$S_SD_FID FIB$V_EXTEND FIB$V_NOREAD FIB$V_REWINDT FIB$W_SD_FIDX IDB$S_IDBDEF NAM$M_QUOTED NAM$V_QUOTED ADP$L_BUS_NUM FIB$M_NOTRUNC FIB$V_NOTRUNC PR$_SID_TYP60 = __TEMP_RESULT0ACB64$Q_ASTPRMACB64$S_ASTPRM~DYN$C_FILES_640IDB$Q_RESERVEDIDB$S_RESERVEDPADP$PS_SPINLOCK FIB$C_ADD_QUOTA FIB$C_DSA_QUOTA FIB$C_ENA_QUOTA FIB$C_EXA_QUOTA FIB$C_MOD_QUOTAFIB$C_REM_QUOTA,IDB$PS_AUXSTRUCPDDT$PS_AUX_ROUTINELDDT$PS_AUX_STORAGEIRP$Q_SHD_LOCK_FR2IRP$Q_SHD_SAVED_R2IRP$S_SHD_LOCK_FR2IRP$S_SHD_SAVED_R2ADP$PS_LOAD_MAP_REG IRP$Q_SHD_RESERV_Q10IRP$S_SHD_RESERV_Q10ADP$M_STRUCT_ALLOCATEDADP$V_STRUCT_ALLOCATED ACB64X$Q_USER_THREAD_ID ACB64X$S_USER_THREAD_ID$$$ADRDT$_BCADT$_BSA#EMB$C_NF#EMB$K_NF ADP$Q_CSR ADP$S_CSR CRB$S_CRB DEV$M_DTN DEV$M_GEN DEV$V_DTN DEV$V_GEN FAB$L_FOP FAB$M_INP FAB$M_OFP FAB$M_SUP FAB$M_TMP FAB$V_INP FAB$V_OFP FAB$V_SUP FAB$V_TMP IDB$M_MCJ IDB$V_MCJ PCB$L_PHD PCB$L_PID $$NONESEEN\ AT$_PCMCIA CCB$L_DIRP DEV$M_VMEM DEV$V_VMEM PCB$L_WEFC FIB$M_ALDEF FIB$V_ALDEF PR$_XSID_N3 FAB$C_MAXRFM FAT$C_STREAM@ FIB$M_UPDATE FIB$V_UPDATE TPA$K_COUNT00 DDB$L_CONLINK FAB$B_JOURNAL FIB$M_FINDFID FIB$M_MARKBAD FIB$S_LOC_FID FIB$V_FINDFID FIB$V_MARKBAD" FIB$W_LOC_FID IRP$M_FINIPL8 IRP$V_FINIPL8 PR$M_SISR_IR1 PR$V_SISR_IR1ZADP$B_HOSE_NUMTADP$W_NODE_NUMIDB$M_NORESIZEIDB$V_NORESIZEPR$M_SISR_IR10 PR$V_SISR_IR10PR$_SID_TYP410 PR$_SID_TYP420PR$_SID_TYP440 PR$_SID_TYP520PR$_SID_TYP550PR$_SID_TYP600 PR$_SID_TYP650PR$_SID_TYP660 PR$_SID_TYP670PR$_SID_TYP690PR$_SID_TYP700PR$_SID_TYP730PR$_SID_TYP750PR$_SID_TYP780PR$_SID_TYP790PR$_XSID_CV_60PR$_XSID_N8500PR$_XSID_N8550PR$_XSID_N8700PR$_XSID_N8800ACB64X$Q_ASTPRMACB64X$S_ASTPRMpADP$Q_HW_ID_MASKADP$S_HW_ID_MASKIDB$M_CRAM_ALLOCIDB$V_CRAM_ALLOC ACQUIRE_PIGGYBACK!ACB64$M_THREAD_PID_VALID!ACB64$V_THREAD_PID_VALID$$ARGS&AT$_VMEDC$_BUS8ATR$C_VDATR$S_VDDEV$M_2PDEV$V_2PFAB$M_CRFAB$V_CR ACB$L_AST ATR$C_UIC ATR$S_UIC CRB$L_FPC FAB$C_SEQ FAB$L_ALQ FAB$W_DEQ FIB$C_RFI NAM$C_DVI NAM$M_IFI NAM$S_DVI NAM$T_DVI NAM$V_IFI EMB$W_SIZE PCB$L_EPID" EMB$B_OS_ID EMB$B_VALID EMB$L_CPUIDl EMB$S_EMBHD< LDT$L_SOFTF< PR$_TBIS_64 PR$_XSID_N4 ADP$L_LSDUMP FAT$M_NOSPAN FAT$V_NOSPAN\ FIB$S_FIBDEFX IDB$C_LENGTHX IDB$K_LENGTH` NAM$S_NAMDEF PCB$L_PRCPDB PCB$Q_PHYPCB PCB$R_PCBARB| PCB$S_PCBARB PCB$S_PHYPCBt RMS$_BUG_XX6 ADP$PS_MAP_IO EMB$C_CVAX_CB EMB$K_CVAX_CBh EMB$Q_DV_IOSB EMB$S_DV_IOSB FIB$M_EXECUTE FIB$M_MOD_USE@ FIB$M_NOPLACE FIB$M_NOWRITE FIB$V_EXECUTE FIB$V_MOD_USE FIB$V_NOPLACE FIB$V_NOWRITE NAM$M_SLPARSE NAM$V_SLPARSE PCB$PS_CCBSVA PR$M_SISR_IR2 PR$V_SISR_IR2$ TPA$C_LENGTH0$ TPA$K_LENGTH0ACB64$M_FASTIOACB64$V_FASTIOADP$C_CIADPLEN =ADP$C_NIADPLENADP$K_CIADPLENADP$K_NIADPLENADP$M_SHUTDOWNADP$V_SHUTDOWN0DDB$PS_CONLINK(DDB$PS_DRVLINKEMB$L_DV_MEDIA FIB$M_NORECORDFIB$V_NORECORDNAM$M_WILDCARDNAM$M_WILD_UFDNAM$V_WILDCARDNAM$V_WILD_UFDPR$M_SISR_IR11 PR$V_SISR_IR11PR$_SID_TYPUV1FIB$W_CNTRLFUNCIDB$W_TT_ENABLE`NAM$C_BLN_DIRWC`NAM$K_BLN_DIRWCPR$_XSID_CV_420PR$_XSID_CV_520PR$_XSID_CV_650PR$_XSID_RV_670PR$_XSID_UV_410hDDT$PS_CSR_MAPPING FDT_CONTEXT$B_TYPEFDT_CONTEXT$W_SIZEIRP$Q_SHD_LOCK_FR4IRP$Q_SHD_SAVED_R4IRP$S_SHD_LOCK_FR4IRP$S_SHD_SAVED_R4tADP$L_HW_ID_MASK_HIDT$_VD'DT$_XVIB9 ATR$C_PVD: ATR$C_SVD; ATR$C_VPDs ATR$S_PVDs ATR$S_SVDX ATR$S_VPD CCB$L_STS DEV$M_CDP DEV$M_DAP DEV$V_CDP DEV$V_DAP/ DT$_CIPCA DT$_DELUA DT$_DEQNA DT$_DEUNA DT$_KFBTA$ DT$_KFMSA DT$_KFQSA DT$_NISCA FAB$B_SHR FAB$C_VAR ACB$L_KAST ACB$M_KAST ACB$V_KAST, CRB$L_REFC, CRB$W_REFC PCB$B_TYPE PCB$W_SIZE ACB$L_FLAGS$ ADP$PS_MBPR$ DPT$IL_REFC FIB$C_FLUSH PR$_XSID_N5t SS$_SUBRNG1 CCB$M_IMGTMP CCB$V_IMGTMP EMB$L_DV_SID EMB$L_HD_SID EMB$L_TS_SID EMB$W_BUFIND PCB$L_KTBVEC@ PCB$M_SSFEXC PCB$V_SSFEXC| RMS$_BUG_XX7 EMB$L_DV_FUNC@ NAM$M_SRCHNMF NAM$V_SRCHNMF PR$M_SISR_IR3 PR$V_SISR_IR3 PR$_SID_TYP43ADP$PS_READ_IOCCB$M_RDCHKDONCCB$V_RDCHKDONHFIB$C_MOVEFILEHFIB$K_MOVEFILEFIB$M_NOCHARGEFIB$V_NOCHARGENAM$M_EXP_NAMENAM$M_EXP_TYPENAM$V_EXP_NAMENAM$V_EXP_TYPE' PR$M_PS_MBZ_62 @PR$M_SISR_IR12>PR$V_PS_MBZ_62 PR$V_SISR_IR12PR$_SID_TYPUV2PR$_SID_TYPV12TPA64$K_COUNT0ADP$C_GBIADPLENADP$C_MINADPLENADP$K_GBIADPLENADP$K_MINADPLENADP$PS_SHUTDOWN`DDT$IS_REG_MASKPR$_SID_TYP1701PR$_XSID_V13_600PR$_XSID_V13_690PR$_XSID_V13_700PR$_XSID_V14_440PR$_XSID_V14_550PR$_XSID_V14_660 __RELEASE_SPKAST FIB$M_NO_READ_DATA FIB$V_NO_READ_DATAIRP$Q_SHD_LOCK_FR5IRP$S_SHD_LOCK_FR5ADP$PS_READ_PCI_CONFIG#ACB$M_USER_THREAD_ID_VALID#ACB$V_USER_THREAD_ID_VALIDDT$_SHAC\DVI$_DUA EMB$C_SIaEMB$C_UI EMB$K_SIaEMB$K_UIFAB$M_ATFAB$V_ATIO$M_TBC IO$V_TBC DT$_RZ26B DT$_RZ27B DT$_RZ28B DT$_RZ29B DT$_RZ73B DT$_RZ74B DT$_RZ75B> FAB$B_BKS5 FAB$B_DNS4 FAB$B_FNS FAB$L_STS FAB$M_NFS FAB$M_POS FAB$V_NFS FAB$V_POS< FAB$W_BLS6 FAB$W_MRS SB$B_TYPE SB$W_SIZE SCS$B_PPD SCS$S_PPD UCB$L_AMB0 UCB$L_CRB8 UCB$L_DDB UCB$L_EMB$ UCB$L_ORBD UCB$L_VCB UCB$M_JOB UCB$S_UCB UCB$V_JOBp CRB$L_INTD CRB$S_INTD DEV$M_MSCP DEV$V_MSCP DPT$B_TYPE DPT$S_NAMEH DPT$T_NAME DPT$W_SIZE DT$_KFSQSA DT$_UDA50A IDB$PS_SPLT UCB$L_XTRA ACB$M_PKAST ACB$V_PKAST ACB64$S_AST ADDRESSBITS$ LDT$L_SYNCHl PCB$L_STATE PCB$S_LNAME_ = PCB$T_LNAME| SS$_SUBRNG2 ACB$M_64BITS ACB$V_64BITS ADP$B_NUMBER ADP$L_VECTOR\ FIB$C_LENGTH\ FIB$K_LENGTHL PCB$L_CPU_ID RMS$_BUG_XX8B AT$_AHA_1742A EMB$L_DV_XSID EMB$L_TS_XSID PR$M_SISR_IR4 PR$V_SISR_IR4ADP$M_BOOT_ADPADP$PS_STARTUPADP$V_BOOT_ADP' PR$M_PS_MBZ_63  PR$M_SISR_IR13?PR$V_PS_MBZ_63 PR$V_SISR_IR13PR$_SID_TYPV13PR$_XSID_RV_43ADP$PS_WRITE_IOCCB$M_LOGCHKDON CCB$M_PHYCHKDONCCB$M_WRTCHKDONCCB$V_LOGCHKDONCCB$V_PHYCHKDONCCB$V_WRTCHKDONFIB$C_FID_CACHEFIB$C_VBN_CACHEFIB$M_PROPAGATEFIB$M_SUPERSEDEFIB$V_PROPAGATE FIB$V_SUPERSEDE NAM$M_WILD_NAMENAM$M_WILD_TYPENAM$V_WILD_NAMENAM$V_WILD_TYPEPR$_SID_TYP1202PR$_SID_TYP1302PR$_XSID_UV_UV2PTPA64$C_LENGTH0PTPA64$K_LENGTH0FAT$C_SEQUENTIALFIB$C_ADD_THREADFIB$C_EXA_THREADFIB$C_REM_THREADLADP$PS_COMMAND_TBL __RELEASE_AST_ERROR ADP$PS_WRITE_PCI_CONFIGAT$_CIAT$_NIDT$_AIEIO$_DSEFAB$M_RUFAB$V_RU DEV$M_DIR DEV$M_FOR DEV$M_LDR DEV$M_OPR DEV$M_SHR DEV$V_DIR DEV$V_FOR DEV$V_LDR DEV$V_OPR DEV$V_SHR DT$_DR11C FAB$B_RAT FAB$M_CBT FAB$M_DLT FAB$M_GET FAB$M_PUT FAB$V_CBT FAB$V_DLT FAB$V_GET FAB$V_PUT FAT$S_FAT FIB$C_CYL IO$_MIMIC NAM$B_ESL NAM$B_RSL UCB$L_DPC UCB$L_FPCh UCB$L_PMC UCB$M_ECC UCB$V_ECC ATR$W_SIZE ATR$W_TYPE CRB$B_TYPET CRB$L_NODE CRB$W_SIZE SCS$C_OVHD8 UCB$L_CDDB UCB$L_DCCB ADP$PS_INIT DPT$IB_TYPE DPT$IW_SIZE\ DPT$L_UCODE DPT$M_UCODE DPT$V_UCODE FAB$C_STMCR SS$_SUBRNG3 ACB64$L_KAST ACB64$M_KAST( ACB64$PQ_AST ACB64$V_KAST ACB64X$S_AST DEV$M_CRAMIO DEV$V_CRAMIO DPT$M_CSMACD DPT$M_SMPMOD DPT$V_CSMACD DPT$V_SMPMOD PCB$Q_CD_QUE PCB$S_CD_QUE ACB64$L_FLAGS ADP$L_AVECTOR DPT$M_TPALLOC DPT$V_TPALLOCu EMB$B_DV_TYPE EMB$C_CONSOLE EMB$K_CONSOLE& EMB$Q_DV_TIME& EMB$Q_HD_TIME& EMB$Q_TS_TIME EMB$S_DV_NAME EMB$S_DV_TIME EMB$S_HD_TIME EMB$S_TS_TIME EMB$T_DV_NAME FIB$C_NOFLUSH PR$M_SISR_IR5 PR$V_SISR_IR5DDB$B_NAME_LEN"EMB$B_DV_OS_ID"EMB$B_TS_OS_ID EMB$L_DV_CPUIDvEMB$L_DV_RQPID EMB$L_TS_CPUID@PR$M_SISR_IR14PR$V_SISR_IR14PR$_SID_TYPV14<ADP$PS_PEER_ADPFDC$_WORKSTATIONEMB$L_DV_OWNUICPR$_SID_TYP1303.FIB$B_AGENT_MODEFIB$C_BFRD_CACHEFIB$C_FLUSH_FILEPR$_XSID_V12_V12FIB$C_WRITEBEHINDFIB$M_ALT_GRANTEDFIB$V_ALT_GRANTEDPR$_XSID_V17_1701ADP$L_A32_ITEM_NUM`ADP$L_A64_ITEM_NUM ADP$L_PCI_NODE_NUMVADP$W_SEC_NODE_NUM __RELEASE_ASTFAULT __RELEASE_EXEC_AST FDT_CONTEXT$B_SUBTYPE%ACB64$M_USER_THREAD_ID_VALID%ACB64$V_USER_THREAD_ID_VALIDAT$_NBIDAT$_PCIAT$_XBI,AT$_XMIDT$_PIPEFDVI$_REC DDB$L_DDT( DDT$L_FDTx DDT$S_DDT@ DEV$M_DFS DEV$V_DFS DT$_CIXCD@ IO$M_WORD IO$V_WORD = LDT$L_ACLP LDT$L_PSLp PCB$L_PRI< UCB$L_PID@ DT$_ZR_SCCx SB$S_SBDEF UCB$L_FRAC UCB$L_FUNC| UCB$L_REFC FDTARG$_IRP FIB$M_DLOCK FIB$V_DLOCK IDB$PS_CRAM SB$S_HWTYPE SB$S_SWTYPE8 SB$T_HWTYPE( SB$T_SWTYPE SCS$L_RSPID SS$_SUBRNG4, DT$_AHA1742A3 DT$_EA_DEANA DT$_ET_DEBNA$ DT$_EX_DEMNA8 DT$_FA_DEFAA9 DT$_FC_DEFTA0 DT$_FC_DEFZA: DT$_FQ_DEFQA; DT$_FR_DEFEA< DT$_FW_DEFPA+ DT$_FX_DEMFA= DT$_IC_DETRA> DT$_IQ_DEQRA! DT$_XQ_DELQA& DT$_XQ_DEQTA+ EMB$C_CONFIG+ EMB$K_CONFIG@ IO$M_DELDATA IO$V_DELDATA PCB$Q_POSTEF8 PCB$S_PCBDEF PCB$S_POSTEF SCS$C_STDISC SCS$K_STDISC UCB$L_PI_DSA UCB$L_PI_SVA ACB$M_NOFLOAT ACB$V_NOFLOAT ACB64$M_PKAST ACB64$V_PKAST ACB64X$PQ_AST4 DPT$PS_UNLOADz EMB$L_DV_BOFF PCB$L_ONQTIME PCB$L_WAITIME PCB$M_SSFEXCE PCB$PS_FANDLE PCB$V_SSFEXCE@ PR$M_SISR_IR6 PR$V_SISR_IR6 PR$_SID_TYP46ACB64$M_64BITSACB64$V_64BITSEMB$B_DEV_TYPEEMB$B_DV_SLAVEEMB$M_EM_CACHEEMB$S_SCS_NAMEEMB$T_SCS_NAMEEMB$V_EM_CACHEPR$M_SISR_IR15PR$V_SISR_IR15qSS$_OBSOLETE_1DDB$IB_NAME_LENPCB$S_EPID_PROCPCB$V_EPID_PROC@ADP$PS_CHILD_ADPPCB$L_POSTEF_ACBPR$_XSID_V13_V13FIB$C_FLUSH_CACHEFIB$C_QUOTA_CACHEPR$_XSID_V12_1202PR$_XSID_V13_1302TADP$W_PRIM_NODE_NUMADP$PS_IOHANDLE_BLINKADP$PS_IOHANDLE_FLINK$IDB$L_DEVICE_SPECIFICDYN$C_FILES_64_CM_RES2  DYN$C_FILES_64_LCK_RES1 DYN$C_FILES_64_THD_RES1ZDVI$_FODDVI$_PIDvDVI$_RNDPDVI$_SQD DEV$M_DET DEV$M_DMT DEV$M_MNT DEV$M_NET DEV$M_NLT DEV$M_RCT DEV$M_RTT DEV$M_VRT DEV$V_DET DEV$V_DMT DEV$V_MNT DEV$V_NET DEV$V_NLT DEV$V_RCT DEV$V_RTT DEV$V_VRT$ DT$_TA90E FAB$B_RTV@ FAB$L_DEV FAB$L_STV FAB$M_MXV FAB$V_MXV FIB$C_LBN FIB$C_VBN@ IO$M_MORE IO$V_MORE IRP$L_ARB0 IRP$L_HRB$ IRP$L_UCB NAM$B_BLN` NAM$C_BLN` NAM$K_BLN VEC$L_IDB XAB$B_COD DDB$K_CART DDB$PS_DDT$ DDB$PS_DPT IO$M_TIMED IO$V_TIMED$ IO$_REWIND IO$_UNLOAD IO$_UPSHAD$ SB$W_MAXDG UCB$B_AMOD( UCB$L_CPIDh UCB$L_SHAD UCB$N_LSID& UCB$N_RSID UCB$S_LSID UCB$S_RSID DDB$B_FLAGS# DT$_EZ_SGEC2 DT$_EZ_TGEC DT$_YS_SDLC DVI$_TT_DMA FIB$L_ACCTL FIB$M_ONCYL FIB$M_SPOOL @ SAFETY013.A  &[EVERHART.JTDEMO]JTDMNNTV2.OBJ_VAX62;1*>FIB$V_ONCYL FIB$V_SPOOL FIB$W_EXCTL FIB$W_NMCTL IO$K_PTPBSC IO$M_EXFUNC IO$V_EXFUNC@ PCB$M_BATCH PCB$V_BATCH SCS$W_MTYPE SS$_SUBRNG5 DPT$S_DPTDEF DT$_HX_DRQ3B EMB$K_LENGTH FIB$M_NOLOCK FIB$M_READCK FIB$V_NOLOCK FIB$V_READCK NAM$M_SYNCHK NAM$V_SYNCHK SCS$L_LCONID& SS$_SIGNAL64@ UCB$B_PI_FKB UCB$L_2P_DDB UCB$L_DP_DDBT UCB$L_MBXUCB UCB$S_DP_UCB8 UCB$S_DT_UCB UCB$S_DU_UCB( UCB$S_MB_UCB UCB$S_NI_UCB@ UCB$S_PA_UCB UCB$S_PI_FKB UCB$S_PI_UCB UCB$S_TU_UCB DPT$W_UCBSIZE DT$_AMD79C30A$ =8 IO$_STARTDATA PCB$M_HARDAFF PCB$V_HARDAFF PR$M_SISR_IR7 PR$V_SISR_IR7 SB$B_SYSTEMID SB$S_SYSTEMID@ UCB$S_MSGDATA4 UCB$T_MSGDATA ACQUIRE_SPKASTADP$L_VPORTSTSATR$C_HDR1_ACCATR$S_HDR1_ACC8CRB$L_AUXSTRUC8CRB$Q_AUXSTRUCCRB$S_AUXSTRUCDPT$M_NOUNLOAD(DPT$PS_INIT_PDDPT$V_NOUNLOADEMB$S_EMBDVDEFlEMB$S_EMBHDDEF`EMB$S_EMBTSDEFFDT$S_FUNC_RTN4PCB$L_ASTQBL_E0PCB$L_ASTQFL_EPCB$L_SWAPSIZE`PCB$Q_RDPB_QUEPCB$Q_RMCB_QUEPCB$Q_XSCB_QUEPCB$S_RDPB_QUEPCB$S_RMCB_QUEPCB$S_XSCB_QUEEMB$S_DV_DTNAMEEMB$T_DV_DTNAMEPCB$M_EPID_WILDPCB$M_NOSUSPENDPCB$M_PREEMPTEDPCB$V_EPID_WILDPCB$V_NOSUSPENDPCB$V_PREEMPTEDMATR$C_POSIX_DATA@ATR$S_POSIX_DATAPR$_XSID_V14_V148ADP$PS_PARENT_ADP8IDB$C_BASE_LENGTH8IDB$K_BASE_LENGTHPCB$L_INITIAL_KTBPR$_XSID_V13_1303FIB$C_EXTENT_CACHEIRP$Q_SHD_RESERV_Q8IRP$S_SHD_RESERV_Q8FDT_CONTEXT$K_LENGTH __RELEASE_KERNEL_ASTDYN$C_FILES_64_CM_RES3 DYN$C_FILES_64_LCK_RES2 DYN$C_FILES_64_THD_RES2 DT$_CI DT$_NIdEMB$C_LM*EMB$C_NM)EMB$C_OM@EMB$C_VMdEMB$K_LM*EMB$K_NM)EMB$K_OM@EMB$K_VM AT$_GENBI DEV$M_CLU DEV$V_CLUS DT$_RF31FE DYN$C_CIA` DYN$C_DEAk DYN$C_NSA2 DYN$C_VCA FAB$M_DFW FAB$V_DFW FDT$S_FDT< IRP$L_FPC VEC$S_VEC AT$_XWATCH DPT$M_FDDI DPT$V_FDDI IDB$PS_ADP IO$M_CYCLE IO$M_ERASE? IO$M_FCODE IO$M_PURGE IO$M_ROUTE IO$S_FCODE IO$V_CYCLE IO$V_ERASE IO$V_FCODE IO$V_PURGE IO$V_ROUTE3 IO$_CREATE5 IO$_DELETE( IRP$L_CTXB IRP$PS_CCB IRP$PS_KPB IRP$S_IOSB LDT$L_PARM UCB$B_TYPE UCB$W_SIZE1 DT$_EC_PMAD@ IO$M_COMMOD IO$M_EXTEND IO$M_PACKED IO$V_COMMOD IO$V_EXTEND IO$V_PACKED IO$_ADDSHAD IO$_CRESHAD IO$_REMSHAD IRP$L_MEDIA& SB$W_MAXMSG SS$_SUBRNG6, UCB$L_CICMD UCB$L_MUNGD UCB$M_VALID UCB$V_VALID ATR$S_ATRDEF CRB$S_CRBDEF DT$_XI_DR11C FAB$M_SHRGET FAB$M_SHRPUT FAB$V_SHRGET FAB$V_SHRPUT FAT$C_DIRECT FAT$W_DEFEXT FIB$M_DIRACL FIB$V_DIRACL IO$M_SET_MAC IO$M_SET_PTC IO$M_VUEX_FC IO$V_SET_MAC IO$V_SET_PTC IO$V_VUEX_FC8 PCB$C_LENGTH8 PCB$K_LENGTHL UCB$L_PRCVEC ATR$C_ASCNAME ATR$C_BAKDATE ATR$C_CREDATE6 ATR$C_EFFDATE ATR$C_EXPDATE7 ATR$C_RCDDATE' ATR$C_READACE ATR$C_REVDATEV ATR$S_ASCNAME ATR$S_BAKDATE ATR$S_CREDATE ATR$S_EFFDATE ATR$S_EXPDATE ATR$S_RCDDATE ATR$S_READACE ATR$S_REVDATE( CRB$B_TT_TYPEX CRB$L_DUETIME( CRB$L_TT_TYPE DT$_XP_PCL11BJ FAB$B_ACMODES@ FAB$M_SYNCSTS FAB$V_SYNCSTS FIB$M_RMSLOCK FIB$M_WRITECK FIB$V_RMSLOCK FIB$V_WRITECK PR$M_SISR_IR8 PR$V_SISR_IR8 SB$S_NODENAMEH SB$T_NODENAME< UCB$L_2P_CDDB UCB$S_DAP_UCB UCB$S_ERL_UCB UCB$S_NET_UCB(ATR$C_RESERVED|ATR$S_RESERVED DPT$IL_ADPTYPEDPT$IW_UCBSIZE`DPT$Q_LINKTIMEDPT$S_LINKTIMEC =DT$_XA_DRV11WAFAT$C_STREAMCRPR$_SID_TYPV17SCS$S_DST_PROCSCS$S_SRC_PROCSCS$T_DST_PROCSCS$T_SRC_PROC ACB64$M_NOFLOATACB64$V_NOFLOAT.ATR$C_FILE_SPECATR$S_FILE_SPEC@CRB$L_LAN_STRUCHCRB$L_SCS_STRUC8CRB$PS_AUXSTRUC@CRB$Q_LAN_STRUCHCRB$Q_SCS_STRUCCRB$S_LAN_STRUCCRB$S_SCS_STRUCDAP$K_SNADTF_FSFDT$PS_FUNC_RTNPR$_XSID_V12_46ADP$PS_PROBE_CSREMB$L_HD_SYSTYPEEMB$S_DV_HW_NAMEEMB$S_HD_HW_NAMEEMB$S_TS_HW_NAMEAEMB$T_DV_HW_NAMEAEMB$T_HD_HW_NAMEAEMB$T_TS_HW_NAMEFIB$C_CHECK_PATH!FIB$C_FILE_SYNCHPCB$A_CURRENT_CDEMB$C_OS_RESERVEDEMB$K_OS_RESERVEDPCB$AR_NATURAL_PSBpADP$L_HW_ID_MASK_LOFIB$C_VALIDATE_FILEIRP$Q_SHD_RESERV_Q9IRP$S_SHD_RESERV_Q9|ADP$PS_NODE_FUNCTIONDT$_SIIMAXNUMSzDYN$C_RCRMS$_CDA܄RMS$_DNARMS$_ESA$RMS$_FNA$RMS$_IFA\RMS$_RFAڂRMS$_RSA DEV$M_IDV DEV$M_ODV DEV$M_SRV DEV$V_IDV DEV$V_ODV DEV$V_SRV DYN$C_ACB DYN$C_AQBP DYN$C_ARB DYN$C_ASB3 DYN$C_CDB DYN$C_CEB DYN$C_CRB DYN$C_CXBM DYN$C_DCB DYN$C_DDB DYN$C_ECB DYN$C_FCBZ DYN$C_GCB DYN$C_IDB/ DYN$C_JIB DYN$C_JPB DYN$C_KPB5 DYN$C_LKB DYN$C_NDBW DYN$C_OCBI DYN$C_ORB DYN$C_PCB! DYN$C_PDBG DYN$C_PFB" DYN$C_PIBF DYN$C_PMB DYN$C_PQB6 DYN$C_RSB* DYN$C_SHB DYN$C_SSB DYN$C_UCB DYN$C_VCB DYN$C_WCB= DYN$C_XWB EMB$C_EMM EMB$K_EMM FAB$C_FIX FAB$C_IDX FAB$L_CTX IDB$Q_CSR IDB$S_CSR IRP$L_PID NAM$B_NOP! AT$_GENXMI IO$S_IODEF IRP$L_FUNC IRP$M_FUNC IRP$V_FUNC PCB$M_FORK PCB$V_FORK UCB$L_BOFF ATR$C_FLUSH DPT$M_SCSCI DPT$V_SCSCI* DT$_EXABYTEA DT$_SSTRIPE DVI$_OWNUIC FIB$L_EXVBN FIB$M_ALCON FIB$V_ALCON IO$M_CREATE IO$M_DELETE@ IO$M_ESCAPE IO$M_LOCATE IO$V_CREATE IO$V_DELETE IO$V_ESCAPE IO$V_LOCATE IO$_RELEASE# IO$_SETMODEH IRP$PQ_IOSBx SB$C_LENGTHx SB$K_LENGTH SS$_SUBRNG7 UCB$B_STATE UCB$S_LTYPE UCB$V_LTYPE ACB$L_ACB64X FAB$M_RCF_RU FAB$V_RCF_RU FIB$M_ALLNAM FIB$V_ALLNAM IO$M_OUTBAND IO$M_TRUSTED IO$V_OUTBAND IO$V_TRUSTED IO$_COPYSHAD IO$_READHEADT SCS$S_SCSDEF( UCB$L_LOCKID UCB$L_RECORD UCB$L_UNIQID UCB$M_UNLOAD UCB$S_PPDEND UCB$V_UNLOAD4 DDB$L_ALLOCLS DVI$C_ACP_MTA? FAB$M_PPF_RAT FAB$S_PPF_RAT FAB$V_PPF_RAT FIB$C_ILLEGAL FIB$C_NEXTVOL FIB$M_CONTROL FIB$V_CONTROL IO$M_DECR_AFC IO$V_DECR_AFC PCB$L_KT_HIGH PR$M_SISR_IR9 PR$V_SISR_IR9 PR$_SID_TYP49 SCS$B_SUBNODE  UCB$L_QLENACCMATR$C_MAX_CODE3ATR$C_NEXT_ACEATR$S_NEXT_ACEDDB$S_NAME_STRDDB$T_NAME_STRDDDT$L_MNTV_FORFAB$R_FAC_BITSFAB$R_FOP_BITSFAB$R_IFI_BITSFAB$R_ORG_BITSFAB$R_RAT_BITSKFAB$R_RCF_BITSFAB$R_SHR_BITSFAT$W_VERSIONSFIB$M_BLK_LOCKFIB$V_BLK_LOCKIO$M_FLUSH_TAB IO$V_FLUSH_TAB =pUCB$S_MSCP_UCB0UCB$S_SCSI_UCBAATR$C_VOLUME_ID ATR$S_VOLUME_ID IO$M_AUTXOF_ENA IO$V_AUTXOF_ENApSB$L_MOUNT_LKID ACQUIRE_EXEC_AST ACQUIRE_SCH$QAST\CRB$L_TT_TIMREFC@CRB$PS_LAN_STRUCHCRB$PS_SCS_STRUC,DPT$PS_REINIT_PDPCB$M_NOUNSHELVEPCB$V_NOUNSHELVEdDDT$PS_KP_STARTIOpDDT$PS_PENDING_IOEMB$B_DV_DEV_TYPEEMB$B_DV_SCS_NAMEEMB$B_TS_DEV_TYPEEMB$B_TS_SCS_NAMEEMB$S_DV_SCS_NAMEEMB$S_TS_SCS_NAMEPCB$L_AST_BLOCKEDPCB$L_MULTITHREAD\PCB$L_SOURCE_EPIDFIB$M_WILDFID_FLAG FIB$V_WILDFID_FLAGFIB$M_FLUSH_ON_CLOSEFIB$S_FLUSH_ON_CLOSEFIB$V_FLUSH_ON_CLOSEADP$L_SCRATCH_BUF_LENAT$_MPMAT$_NULLDT$_LESIjDVI$_ELG RMS$_FAB<RMS$_RABlRMS$_RHBRMS$_RTB RMS$_XAB{ DYN$C_IPCV DYN$C_PTCL DYN$C_UNCo DYN$C_VCC FAB$M_ASY FAB$V_ASY* IO$_FLUSH IRP$M_WLE IRP$V_WLE< PCB$W_MEM DDB$K_SLOWX DYN$C_CPCB DYN$C_CRAB' DYN$C_DCCBU DYN$C_DFLB DYN$C_ICDBD DYN$C_KFPBK DYN$C_MVWB_ DYN$C_NSAB\ DYN$C_RDDB[ DYN$C_RDPB IRP$B_RMOD0 IRP$L_SHAD IRP$L_WIND IRP$S_FMOD IRP$V_FMOD PCB$L_SQBL PCB$L_SQFL PCB$M_WALL PCB$V_WALL UCB$M_LBDG UCB$V_LBDG@ DEV$M_NOCLU DEV$V_NOCLU@ DVI$_ACPPID DVI$_LOCKID FIB$M_SEQNO FIB$V_SEQNO@ IO$M_SETEVF IO$V_SETEVF( IO$_WRITEOF CRB$C_LENGTH CRB$K_LENGTH DT$_DECVOICE( DT$_EP_LANCE DT$_ES_LANCE\ FIB$C_F64LEN FIB$C_MTALEN\ FIB$K_F64LEN FIB$K_MTALEN FIB$M_FILCON FIB$V_FILCON IO$M_INCLUDE IO$M_NEWLINE@ IO$M_REVERSE IO$V_INCLUDE IO$V_NEWLINE IO$V_REVERSE IO$_DIAGNOSE% IO$_SKIPFILE` UCB$B_PI_TQE UCB$L_SVAPTE UCB$M_ONLINE@ UCB$S_PI_TQE UCB$V_ONLINEv UCB$W_CHARGE FAB$M_ONLY_RU FAB$V_ONLY_RU FIB$M_ALL_MEM FIB$V_ALL_MEM FIB$W_DID_NUM FIB$W_FID_NUM" FIB$W_LOC_NUM IO$_MOUNTSHAD IO$_WRITEHEAD* NAM$W_DID_NUM$ NAM$W_FID_NUM PCB$L_AUTHPRI PCB$L_DLCKPRI UCB$L_TRACENDP UCB$Q_UNIT_ID UCB$S_UNIT_ID UCB$W_MB_SEEDDDB$B_ACPCLASS4DDB$IL_ALLOCLSFAB$C_RFM_DFLTFIB$C_LOCK_VOLFIB$C_UNLK_VOLFIB$L_CNTRLVALIO$M_CLEAR_PTCIO$M_SENSE_MAC IO$V_CLEAR_PTC IO$V_SENSE_MACIO$_STARTMPROC PR$_SID_TYP009SCS$C_CON_BASESCS$K_CON_BASESCS$L_REC_NAMESCS$L_SND_NAMEUCB$W_DU_MUNTC ATR$C_BLOCKSIZE2ATR$C_GRANT_ACE1ATR$C_RU_ACTIVEATR$S_BLOCKSIZEATR$S_GRANT_ACEATR$S_RU_ACTIVEtDDT$PS_CUSTOMERDDDT$PS_MNTV_FOREMB$C_DV_LENGTH`EMB$C_HD_LENGTH`EMB$C_TS_LENGTHEMB$K_DV_LENGTH`EMB$K_HD_LENGTH`EMB$K_TS_LENGTHSCS$L_DST_CONIDSCS$L_SRC_CONID SS$_CONTINUE_64 SS$_RESIGNAL_64UCB$L_2P_ALTUCBUCB$L_DP_ALTUCBUCB$L_NT_DATSSBUCB$L_NT_INTSSBLUCB$L_PREF_CDDBHUCB$L_WAIT_CDDBUCB$M_DELETEUCBUCB$V_DELETEUCB+ATR$C_PRIVS_USEDATR$S_PRIVS_USEDDPT$L_DECW_SNAMEDPT$S_IMAGE_NAMEDPT$T_IMAGE_NAMEPR$_XSID_V17_V17PCB$L_ACC_WAITIMEPCB$L_IM_ASTQBL_E =PCB$L_IM_ASTQFL_EFIB$C_WRITETHROUGHPCB$Q_LEFC_SWAPPEDPCB$S_LEFC_SWAPPEDFIB$C_VALIDATE_VOLUMEFIB$C_WRITEBACK_CACHE FIB$C_WRITETHRU_CACHE#FDT_CONTEXT$Q_QIO_R1_VALUE#FDT_CONTEXT$S_QIO_R1_VALUEcEMB$C_SPcEMB$K_SPRMS$_ACCRMS$_CRCRMS$_DACRMS$_FAĊRMS$_GBC|RMS$_IRCRMS$_LWC4RMS$_MBCDRMS$_RACRMS$_SUCRMS$_WCC DEV$M_MBX DEV$M_SEX DEV$V_MBX DEV$V_SEX@ DPT$M_ATM DPT$V_ATM' DT$_FT_NID DT$_RZ57I DT$_SCSIIR DYN$C_BOD DYN$C_GSDC DYN$C_KFD4 DYN$C_LPDf DYN$C_PGD# DYN$C_RMD EMB$C_CTO EMB$K_CTO? FAB$B_FSZ KTB$L_JIB KTB$L_PCB KTB$M_TCB8 KTB$S_KTB KTB$V_TCB: NAM$B_DIR= NAM$B_VERH NAM$L_DIRT NAM$L_VER SB$L_PBBL SB$L_PBFL CRB$B_FLCK0 CRB$B_MASK0 CRB$L_MASKt DYN$C_LAVC DYN$C_LNMCy DYN$C_MISC" EMB$C_SCAN" EMB$K_SCAN@ IO$M_FLUSH IO$M_SYNCH IO$V_FLUSH IO$V_SYNCH IO$_SEARCH IRP$B_TYPE IRP$S_MODE IRP$V_MODE IRP$W_SIZE PCB$L_EFWM SB$L_BLINK SB$L_FLINK DC$_MAILBOX DPT$L_BLINK DPT$L_FLINKY DYN$C_HWPCB FIB$C_REMAPX IRP$L_RSPID LDT$L_BPRIO5 AT$_XZA_DSSI% AT$_XZA_SCSI FAT$M_MSBRCW FAT$V_MSBRCW IO$M_IN_XOFF IO$M_LOCKBUF IO$V_IN_XOFF IO$V_LOCKBUF IRP$L_SHDSPC PCB$M_NETWRK PCB$V_NETWRK SCS$W_LENGTH UCB$S_UCBDEF ATR$C_NOFLUSH FDTARG$_NARGS! FIB$B_ALALIGN FIB$B_DID_RVN FIB$B_FID_RVN& FIB$B_LOC_RVN FIB$W_DID_RVN FIB$W_FID_RVN& FIB$W_LOC_RVN IO$M_DISSOLVE IO$M_MOVEFILE IO$M_MULTIPLE IO$M_NOVCACHE IO$M_OPPOSITE@ IO$M_RESPONSE IO$M_SETBSIZE IO$V_DISSOLVE IO$V_MOVEFILE IO$V_MULTIPLE IO$V_NOVCACHE IO$V_OPPOSITE IO$V_RESPONSE IO$V_SETBSIZE IO$_AVAILABLE IO$_ERASETAPE IO$_LOADMCODE' IO$_SENSEMODE IO$_SPACEFILE. NAM$B_DID_RVN( NAM$B_FID_RVN. NAM$W_DID_RVN( NAM$W_FID_RVN SCS$C_APPL_DGY UCB$B_DEVTYPE UCB$M_INTTYPE UCB$M_NT_NAME UCB$M_STORAGE UCB$V_INTTYPE UCB$V_NT_NAME UCB$V_STORAGEACB64$L_ACB64X @ SAFETY013.A  &[EVERHART.JTDEMO]JTDMNNTV2.OBJ_VAX62;1F&>FAB$M_NEVER_RUFAB$V_NEVER_RUFIB$M_MOD_PERMFIB$V_MOD_PERMIO$M_QUALIFIED@IO$M_RWSHELVEDIO$V_QUALIFIEDIO$V_RWSHELVED<IO$_CONINTREADIO$_READTRACKD&IO$_SKIPRECORDSCS$L_REC_BOFFSCS$L_SND_BOFFUCB$L_MEDIA_IDUCB$M_SVPN_ENDUCB$V_SVPN_ENDvUCB$W_TU_SPEEDDDB$IB_ACPCLASS4DVI$_TT_CS_KANAFIB$C_REWINDFILFIB$C_REWINDVOLFIB$M_NOCOPYACLFIB$V_NOCOPYACLIO$M_DIAGNOSTIC@IO$M_UPDATE_PTCIO$V_DIAGNOSTICIO$V_UPDATE_PTCNAM$C_MAXRSSLCLNAM$M_NOCONCEALNAM$V_NOCONCEALPR$_XSID_V13_49SCS$C_APPL_BASE)SCS$C_STBALANCESCS$K_APPL_BASE)SCS$K_STBALANCElUCB$K_BGN_ADPSUBPUCB$K_BGN_ADPTABUCB$K_BGN_PDTSUBUCB$K_END_ADPTABUCB$L_PORT_CPUDB UCB$PS_PK_INIKPBADP$M_EISA_PARENTADP$V_EISA_PARENTATR$C_WRITEBEHINDjDPT$IB_INAME_TYPEhDPT$IQ_IMAGE_NAMEDPT$M_DECW_DECODEDPT$PS_DECW_SNAME DPT$V_DECW_DECODE =PCB$L_CPUTIME_REF@ACB$M_KAST_NOFLOATACB$V_KAST_NOFLOAT ACQUIRE_KERNEL_ASTPCB$M_IN_TBS_STATEPCB$V_IN_TBS_STATE`EMB$S_EMBHD_NONFIXEDNO$INHNDVI$_SDIIO$_SEEK9PR$_TBIARMS$_AIDRMS$_COD*RMS$_FND"RMS$_JND2RMS$_MKDRMS$_NODRMS$_ORDDRMS$_WLD DYN$C_KFE DYN$C_RDE DYN$C_SQE DYN$C_TQE DYN$C_VLE> DYN$C_WQE NAM$B_ESS NAM$B_RFS NAM$B_RSS NAM$C_UFS CRB$L_FQBL CRB$L_FQFL$ CRB$L_WQBL CRB$L_WQFLS DYN$C_FTRD7 DYN$C_LKIDn DYN$C_SHAD EMB$C_INFO EMB$K_INFOh IRP$L_BOFF0 KTB$AR_PSBt KTB$L_PRIB SB$M_LOCAL SB$V_LOCAL` CRB$PS_DLCK DYN$C_PHVEC IDB$L_FLAGS IDB$W_UNITS IRP$M_ERASE? IRP$M_FCODE IRP$S_FCODE IRP$V_ERASE IRP$V_FCODE PCB$L_BIOLM PCB$L_DIOLM^ SB$B_ENBMSK SB$S_ENBMSK DPT$PS_BLINK DPT$PS_FLINKB DVI$_ACPTYPE DVI$_DEVTYPE DVI$_TT_PAGE DYN$C_BOOTCB DYN$C_IPC_AB DYN$C_IPC_CB DYN$C_LM_LCB DYN$C_MP_MPB DYN$C_SCS_PB DYN$C_SCS_SB. DYN$C_SHMCEB DYN$C_SM_MCB EMB$L_CHKSUM FIB$M_ALLTYP FIB$V_ALLTYP( IDB$L_VECTOR IDB$PS_OWNER IO$M_BOOTING IO$V_BOOTINGp IRP$L_EXTEND IRP$M_EXTEND IRP$V_EXTEND XAB$S_XABDEF DVI$_MEDIA_ID FDT$Q_OK64BIT FDT$S_OK64BIT IO$M_LINE_OFF IO$M_OUT_XOFF IO$V_LINE_OFF IO$V_OUT_XOFF" IO$_REWINDOFF IRP$L_KEYDESC PCB$M_PHDLOCK PCB$V_PHDLOCK UCB$M_DIAGBUF UCB$V_DIAGBUFDT$_DAP_DEVICEDVI$_TT_TTSYNC@FIB$L_MOV_SVBN*IO$_AS_SETMODEIO$_INITIALIZE%IO$_PSXSETMODE SCS$C_APPL_MSGYUCB$B_PDT_TYPEtUCB$L_DU_USIZE\UCB$L_PPD_SIZEUCB$M_DX_WRITE UCB$M_TEMPLATEUCB$V_DX_WRITE UCB$V_TEMPLATEZUCB$W_PDT_SIZExUCB$W_TU_NOISEACB64X$S_ACB64XlDDT$PS_FAST_FDTDVI$_TT_MECHTABIO$M_MOVETRACKDIO$V_MOVETRACKD IO$_SPACERECORDIO$_WRITETRACKD\UCB$L_DEVDEPENDUCB$M_AST_ARMEDUCB$M_LCL_VALIDUCB$M_MNTVERPNDUCB$M_TU_RPTPND\UCB$Q_DEVDEPENDUCB$S_DEVDEPENDUCB$V_AST_ARMEDUCB$V_LCL_VALIDUCB$V_MNTVERPNDUCB$V_TU_RPTPNDUCB$W_UNIT_SEEDFIB$M_CHANGE_VOLFIB$V_CHANGE_VOL-ATR$C_ACCESS_MODE5ATR$C_BACKUP_DONEATR$S_ACCESS_MODEATR$S_BACKUP_DONE PCB$L_AST_PENDINGFATR$C_ABSTRACT_FID%ATR$S_ABSTRACT_FIDIO$_DISK_COPY_DATAUCB$IL_PK_CUR_DATAhADP$L_ADAPTER_FLAGSPCB$Q_CWPSSRV_QUEUEPCB$S_CWPSSRV_QUEUEPCB$L_LEFC_0_SWAPPEDPCB$L_LEFC_1_SWAPPED@PCB$M_CLASS_SUPPLIEDPCB$V_CLASS_SUPPLIEDTAT$_MULTIFUNCTION_ISA AT$_BVP'AT$_IOPIO$_WHMDT$_NULL%EMB$C_CR%EMB$K_CRPR$_PCBBPR$_SCBB PR$_VPTB RMS$_CREԄRMS$_DME:RMS$_DPERMS$_LNERMS$_SNERMS$_SPE܆RMS$_TRE,RMS$_WBE KTB$L_PHD KTB$L_PID> PCB$W_GRP, DYN$C_IRPE KTB$L_WEFC DYN$C_PAGEDl IRP$L_ABOFF IRP$L_LBOFFl IRP$L_OBOFF IRP$L_RBOFF PCB$M_LOGIN PCB$V_LOGIN ATR$C_SEMASK ATR$S_SEMASK DVI$S_DVIDEF DYN$C_PCBVEC IO$M_REFRESH IO$V_REFRESH =` IRP$L_SVAPTE IRP$S_VA_PTE PCB$L_CPUTIM PCB$M_PSWAPM PCB$V_PSWAPM UCB$C_LENGTH UCB$K_LENGTH@ DEV$M_SHADDEV DEV$V_SHADDEV DVI$_TT_SCOPE DYN$C_CD_CDDB DYN$C_CLU_CSB DYN$C_CLU_ICB@ DYN$C_CWPSACB DYN$C_F64_FDB DYN$C_F64_MCB DYN$C_IPC_IPB DYN$C_IPC_LCB DYN$C_IPC_TCB DYN$C_IPC_TDB DYN$C_LM_LBDB DYN$C_PSX_SMB DYN$C_PSX_SOB- DYN$C_SLAVCEB^ DYN$C_TQE_ACB DYN$C_UIS_ATB DYN$C_UIS_KBB DYN$C_UIS_USB DYN$C_UIS_VDB DYN$C_UIS_WDBY DYN$C_VPS_SDB FIB$M_ALL_GRP FIB$V_ALL_GRP IO$M_INHERLOG IO$V_INHERLOG IRP$M_CHAINED IRP$M_TRUSTED IRP$V_CHAINED IRP$V_TRUSTED PCB$L_LOCKQBL PCB$L_LOCKQFL VEC$PS_ISR_PDADP$M_PORTONLYADP$V_PORTONLY3AT$_TURBO_SCSIDDVI$_CONCEALED DVI$_DEVDEPENDDVI$_TT_SYSPWDEMB$C_LASTFAILEMB$K_LASTFAIL PCB$A_CD_BLINKPCB$A_CD_FLINK,PCB$L_ASTQBL_K(PCB$L_ASTQFL_KUCB$M_TT_NOTIF@UCB$S_PAUCBDEFUCB$S_PIUCBDEFUCB$V_TT_NOTIF&ATR$C_ACLLENGTHATR$S_ACLLENGTH8EMB$L_DV_ERRMSK8EMB$L_HD_ERRMSK8EMB$L_TS_ERRMSK IO$M_LT_SETMODE IO$M_SHOW_ROUTE IO$V_LT_SETMODE IO$V_SHOW_ROUTE=IO$_CONINTWRITElUCB$L_REV_TABLEUCB$M_DATACACHE UCB$M_DU_0MNOTEUCB$M_PI_ENABLEUCB$V_DATACACHEUCB$V_DU_0MNOTEUCB$V_PI_ENABLEDDB$M_NO_TIMEOUTDDB$V_NO_TIMEOUT FIB$L_DID_RECNUMFIB$L_FID_RECNUM FIB$W_DID_DIRNUMFIB$W_FID_DIRNUMTFIB$W_SD_FID_NUMUCB$L_TMV_RECORDIO$M_DEALC_ENTLOCIO$V_DEALC_ENTLOC,ATR$C_MATCHING_ACEATR$S_MATCHING_ACEJFAB$R_ACMODES_BITS FAB$R_JOURNAL_BITSEATR$C_COPYRIGHT_FIDDATR$C_VOLUME_SET_ID%ATR$S_COPYRIGHT_FIDATR$S_VOLUME_SET_IDDPT$S_LOADER_HANDLE@ACB64$M_KAST_NOFLOATACB64$V_KAST_NOFLOAT\ADP$L_A32_FREE_ITEMSADP$L_A64_FREE_ITEMSADP$M_INDIRECT_VECTORADP$V_INDIRECT_VECTOR PCB$M_CLASS_SCHEDULEDPCB$M_QUANTUM_RESCHED<PCB$M_SINGLE_THREADEDPCB$S_SINGLE_THREADEDPCB$V_CLASS_SCHEDULEDPCB$V_QUANTUM_RESCHEDPCB$V_SINGLE_THREADED!FIB$C_UPDATE_FIL_PROFILE!FIB$C_UPDATE_VOL_PROFILEAT$_DRVAT$_LMCPWAT$_TIOPzDVI$_RCK|DVI$_WCK EMB$C_CS'EMB$C_SS&EMB$C_TS$EMB$C_WS EMB$K_CS'EMB$K_SS&EMB$K_TS$EMB$K_WSRMS$_BOFRMS$_CCFJRMS$_DNFzRMS$_EOFRMS$_FNFTRMS$_IBFRMS$_IFFRMS$_KBF1RMS$_KFFRMS$_KRFRMS$_NEFʂRMS$_NMFRMS$_PBFTRMS$_RBF\RMS$_REFtRMS$_RLFRMS$_RNFzRMS$_RRFRRMS$_RUFRMS$_UBFRMS$_XNF DPT$M_SVP DPT$V_SVP DT$_EZ31L DT$_EZ32L DT$_EZ33LB DT$_RZ23LW DT$_RZ24LX DT$_RZ25L DT$_RZ26L DT$_RZ27L DT$_RZ28Le DT$_RZ34Lf DT$_RZ35Lg DT$_RZ36LY DT$_RZ55LZ DT$_RZ56L[ DT$_RZ57L DT$_TK70L DYN$C_LOGf EMB$C_PWRf EMB$K_PWR IO$M_CTRL IO$V_CTRL IO$_RECALA IRP$B_PRI DYN$C_CONF DYN$C_QBUF KTB$L_EPID KTB$L_FRED LDT$L_FLGS@ LDT$L_REGS UCB$B_FLCK4 UCB$L_DLCK@ UCB$L_LINK IO$M_BUFOBJ IO$V_BUFOBJ_ = NAM$C_CPMFS" RMS$_DTFACC" DT$_ET_DEBNI2 DT$_PZA_SCSI- DT$_TZA_SCSI) DT$_XZA_DSSI( DT$_XZA_SCSIG DT$_ZS_PBXDI( DYN$C_EXTGSD DYN$C_SCS_BD) DYN$C_SHMGSD DYN$C_TYPAHD FIB$M_ALLVER@ FIB$M_LOWVER FIB$M_NEWVER FIB$V_ALLVER FIB$V_LOWVER FIB$V_NEWVER8 IDB$L_UCBLST IDB$S_UCBLST IRP$S_IRPDEF KTB$L_VIRPCB KTB$Q_PHYPCB KTB$S_PHYPCB@ NAM$M_LOWVER NAM$V_LOWVER PCB$M_ASTPEN PCB$M_DELPEN PCB$M_INQUAN PCB$M_RESPEN PCB$M_SUSPENP PCB$Q_PRVASN PCB$S_PRVASN PCB$V_ASTPEN PCB$V_DELPEN PCB$V_INQUAN PCB$V_RESPEN PCB$V_SUSPENd UCB$L_CBTINI UCB$S_LNKPRI UCB$V_LNKPRI ATR$C_STATBLK ATR$S_STATBLK DYN$C_IPC_IPC DYN$C_LAVC_VC DYN$C_VP_VEXC EMB$C_MEMSCAN EMB$K_MEMSCAN FIB$M_ALT_REQ FIB$V_ALT_REQ FIB$W_DID_SEQ FIB$W_FID_SEQ$ FIB$W_LOC_SEQ IO$M_DATAPATH IO$V_DATAPATH: IRP$B_CD_TYPEH IRP$L_CLN_WLE IRP$M_NOCACHEX IRP$PQ_VA_PTE IRP$V_NOCACHE, NAM$W_DID_SEQ& NAM$W_FID_SEQDVI$_HOST_NAMEDVI$_HOST_TYPEDVI$_TT_ESCAPEDVI$_TT_REMOTEDVI$_TT_SECUREDYN$C_CLU_CLUBDYN$C_DDTM_XCBDYN$C_DECW_GPBDYN$C_DECW_INBDYN$C_DSRV_HQBDYN$C_DSRV_HRBDYN$C_DSRV_UQB DYN$C_IPC_LCCBDYN$C_IPC_TLCB DYN$C_IPC_TLTBDYN$C_IPC_TPCBDYN$C_IPC_TVCBDYN$C_LM_LMRCB DYN$C_PSX_FCCB DYN$C_PSX_FCDBDYN$C_PSX_PXSBDYN$C_PSX_XPCBDYN$C_QMAN_QDB DYN$C_SCS_SBNB DYN$C_SCS_SPNBDYN$C_SCS_SPPBDYN$C_SMI_CSCBDYN$C_SMI_RTTBDYN$C_SMI_SUPBDYN$C_SM_MMECBDYN$C_TSRV_HQBDYN$C_TSRV_HRBDYN$C_TSRV_UQBDYN$C_UIS_CMSB DYN$C_VCC_CFCBDYN$C_VWS_GLYB@IO$M_CHUNKDIAGIO$M_LT_RATINGIO$V_CHUNKDIAG IO$V_LT_RATINGxIRP$L_LBUFH_ADIRP$L_RBUFH_ADNAM$M_WILD_GRPNAM$V_WILD_GRPPCB$M_WINDFALLPCB$S_TERMINALPCB$T_TERMINALPCB$V_WINDFALL|UCB$L_TRACEBEGUCB$M_MOUNTINGUCB$M_SUPMVMSG UCB$V_MOUNTINGUCB$V_SUPMVMSGAAT$_TC_MULTI_NIAT$_XBI_PLUS_BIPCB$B_PKTA_LOCKUCB$M_NT_BFROVFUCB$V_NT_BFROVFDVI$_TT_HOSTSYNCDVI$_TT_READSYNCXFIB$B_SD_FID_RVNXFIB$W_SD_FID_RVN+IO$_AS_SENSEMODE&IO$_PSXSENSEMODEUCB$L_STOP_UCODE|UCB$W_DU_RCTSIZE\DDT$IS_STACK_BCNTUCB$B_PREV_RECORDADP$Q_HARDWARE_REVADP$S_HARDWARE_REVPCB$M_EVENT_NO_FLAGPCB$V_EVENT_NO_FLAGpDPT$IL_LOADER_HANDLE@UCB$M_SHD_WLGSTA_CHAUCB$V_SHD_WLGSTA_CHA!ADP$PS_PROBE_CSR_CLEANUPDT$_AIO=PR$_PMEDPT$M_TRDPT$V_TRlDVI$_ALLbDVI$_AVLHDVI$_CCLRDVI$_SPLpDVI$_SWLaDYN$C_CI`EMB$C_DT`EMB$K_DT4RMS$_BUGRMS$_CHGRMS$_FLG RMS$_ORGRMS$_PLGRMS$_SEGX AT$_ITIOP DT$_RZ26M DYN$C_PBH9 NAM$B_DEVD NAM$L_DEV UCB$M_TIM UCB$V_TIM. AT$_COREIO AT$_MBUSIO ATR$C_FPRO ATR$C_RPRO ATR$S_FPRO ATR$S_RPRO; DYN$C_CIDG KTB$B_TYPE KTB$W_SIZE MSG.RTNFID UCB$B_DIPL UCB$L_FQBL UCB$L_FQFL UCB$L_RQBL UCB$L_RQFL UCB$M_POLL 7 =UCB$V_POLLa AT$_MEMCHAN( DEV_BUF_SIZ FIB$M_EXACT FIB$V_EXACT IO$_PACKACK PCB$L_EFC2P PCB$L_EFC3P PCB$L_WSSWP ATR$C_FILNAM ATR$S_FILNAM$ EMB$B_DEVTYP FIB$B_ALOPTS8 FIB$L_STATUS FIB$M_CURPOS FIB$V_CURPOS@ KTB$M_SSFEXC KTB$V_SSFEXC LDT$L_PRCSTR NAM$C_MAXRSS NAM$C_NO_RFS NAM$C_RMS32S NAM$C_RT11FS ATR$C_ACLEVEL ATR$C_JOURNAL% ATR$C_READACL ATR$S_ACLEVEL ATR$S_JOURNAL ATR$S_READACL+ DT$_N710_DSSI* DT$_N710_SCSI. DT$_N810_SCSI DYN$C_UIS_APD DYN$C_UIS_ARD DYN$C_UIS_BMD DYN$C_UIS_VPD DYN$C_UIS_VRDZ DYN$C_VPS_BTDX DYN$C_VPS_PPD DYN$C_VWS_UPD FIB$M_HIGHVER FIB$V_HIGHVER IRP$L_DIAGBUFT IRP$L_MSG_BUF IRP$L_SCB_BUF IRP$M_DIAGBUF IRP$V_DIAGBUF@ NAM$M_EXP_DIR NAM$M_EXP_VER NAM$M_GRP_MBR NAM$M_HIGHVER NAM$V_EXP_DIR NAM$V_EXP_VER NAM$V_GRP_MBR NAM$V_HIGHVER PCB$M_FORCPEN PCB$M_WAKEPEN PCB$V_FORCPEN PCB$V_WAKEPENATR$C_BACKLINKATR$S_BACKLINKPCRB$L_TIMELINKXDPT$L_ECOLEVELDPT$M_SUBCNTRLDPT$V_SUBCNTRLDYN$C_QMAN_GQC@IO$M_FORCEPATHIO$M_SKPSECINHIO$V_FORCEPATH IO$V_SKPSECINHIO$_SETPRFPATHIRP$B_CPY_MODEIRP$L_UBARSRCEIRP$M_CLN_DONEIRP$Q_TT_STATEIRP$S_TT_STATEIRP$V_CLN_DONE8IRP$W_CDRPSIZEPCB$L_TQUANTUM@UCB$C_PALENGTHUCB$C_PILENGTHdUCB$L_LSLENGTHDVI$S_ITEM_CODEDVI$V_ITEM_CODEDVI$_MEDIA_NAMEDVI$_MEDIA_TYPEDYN$C_DDTM_CDCBDYN$C_DDTM_CMCBDYN$C_DDTM_CMDB DYN$C_DDTM_DGCB DYN$C_DDTM_LGCBDYN$C_DDTM_NDCB DYN$C_DDTM_NNCBDYN$C_DDTM_RMCBDYN$C_DDTM_XDCBDYN$C_DDTM_XPCBDYN$C_DDTM_XSCBDYN$C_DDTM_XTCBDYN$C_DSRV_HULBDYN$C_LM_LMOPCBDYN$C_LM_LMTRCB<EMB$L_DV_ABSTIM<EMB$L_HD_A@ SAFETY013.A  &[EVERHART.JTDEMO]JTDMNNTV2.OBJ_VAX62;1ۿ>!BSTIM<EMB$L_TS_ABSTIMFIB$C_CLSEREXCPHADP$PS_BUS_ARRAYAT$_XBI_PLUS_XMIDVI$_TT_AUTOBAUDDVI$_TT_SETSPEEDdPCB$A_RDPB_BLINK`PCB$A_RDPB_FLINKPCB$A_RMCB_BLINKPCB$A_RMCB_FLINKPCB$A_XSCB_BLINKPCB$A_XSCB_FLINK$PCB$L_ASTQBL_SPK PCB$L_ASTQFL_SPK@IO$M_LT_SENSEMODEIO$V_LT_SENSEMODEIRP$L_DCD_SRC_UCBxUCB$L_START_UCODEUCB$M_PORT_ONLINEUCB$V_PORT_ONLINEUCB$IL_PK_RESEL_IDUCB$L_PI_INI_C710DUCB$L_PI_TGT_C710DUCB$L_MB_READERREFCUCB$L_MB_WRITERREFCATR$M_FLUSH_ON_CLOSEATR$S_FLUSH_ON_CLOSEATR$V_FLUSH_ON_CLOSEADP$L_TOTAL_SG_ENTRIES PCB$M_SHELVING_RESERVED PCB$V_SHELVING_RESERVEDIO$_NOPxDVI$_RTMJDVI$_TRMRMS$_RUHr DYN$C_SMI EMB$C_HLT EMB$K_HLT IO$_CLEAN PCB$L_STS PCB$M_RES PCB$V_RES; PR$_TBISD SCS$M_UAP SCS$V_UAP$ UCB$L_USN DT$_TK_FCM& DYN$C_KFRHl RMS$_SNPPF DPT$IW_STEP< DYN$C_CIMSG/ IO$_LOGICAL? IO$_VIRTUALl KTB$L_STATER RMS$_DTFCREp UCB$L_IOQBLl UCB$L_IOQFL UCB$M_LOCAL UCB$V_LOCAL: DT$_RAM_DISK IO$M_INHSEEK IO$M_NOBLOCK IO$V_INHSEEK IO$V_NOBLOCK! IO$_READLBLK IO$_READPBLK1 IO$_READVBLK7 IO$_SETCLOCK IRP$C_LENGTH IRP$K_LENGTHL KTB$L_CPU_IDC =8 LDT$L_RTNSTS0 PR$S_PCBB_PA PR$V_PCBB_PA RMS$_CREATED UCB$C_LOGLNKd UCB$L_BACKLK UCB$M_FKLOCK UCB$V_FKLOCK UCB$V_MSGACK VEC$C_LENGTH VEC$K_LENGTH DYN$C_CLU_NTE DYN$C_LM_LMTE` DYN$C_SUBTYPE DYN$C_UIS_QBEe EMB$C_LOGMSCPe EMB$K_LOGMSCPQ RMS$_CONTROLCR RMS$_UNKRUFAC SCS$C_CR_REQL SCS$C_CR_RSPLDYN$C_DECW_GPDDYN$C_UIS_CMSDDYN$C_UIS_VCMDDYN$C_VWS_FNTD(FIB$L_LOC_ADDRFIB$M_ALLOCATRFIB$M_MOD_OVERFIB$V_ALLOCATRFIB$V_MOD_OVER NAM$M_ROOT_DIRNAM$M_WILD_DIRNAM$M_WILD_MBRNAM$M_WILD_VER NAM$V_ROOT_DIRNAM$V_WILD_DIRNAM$V_WILD_MBRNAM$V_WILD_VERdCRB$PS_CRB_LINKXDPT$IL_ECOLEVELDYN$C_F64_CDESC DYN$C_FANDLEVECDYN$C_PGD_F11BC DYN$C_SCS_PLVECEMB$C_OS_VAXELNEMB$K_OS_VAXELNIO$_WRITECHECKHIRP$M_PIO_NOQUEIRP$M_WLE_REUSEIRP$V_PIO_NOQUEIRP$V_WLE_REUSEUCB$C_2P_LENGTHUCB$C_DP_LENGTHUCB$C_NI_LENGTHUCB$K_2P_LENGTHUCB$K_DP_LENGTHUCB$K_DU_LENGTHUCB$K_NI_LENGTH0UCB$K_PK_LENGTHUCB$K_TU_LENGTHUCB$L_INS_COMQHUCB$M_FAST_PATHUCB$V_FAST_PATHVEC$PS_ISR_CODEDYN$C_CLU_CLUDCB DYN$C_CLU_CLURCB DYN$C_NET_CTF_TBIRP$L_THREAD_PIDDVI$_TT_ALTYPEAHDDVI$_TT_NOTYPEAHDDYN$C_F64_XQPDATAPCB$L_IM_ASTQBL_KPCB$L_IM_ASTQFL_KATR$C_WRITETHROUGHUCB$M_DU_SHMV_STRTD\UCB$R_NET_DEVDEPENDUCB$S_NET_DEVDEPENDUCB$V_DU_SHMV_STRTDEMB$C_SCS_NAME_LENGTHEMB$K_SCS_NAME_LENGTH!PCB$M_SOFT_SINGLE_THREAD!PCB$V_SOFT_SINGLE_THREAD-AT$_FBUSHAT$_XBUS`DVI$_GENIO$_STOP RMS$_ANIRMS$_DVIdRMS$_IFIRMS$_ISIRMS$_KSIRMS$_UPI? ATR$C_DIR> ATR$C_PTR@ ATR$C_XAR ATR$S_DIR- ATR$S_PTR ATR$S_XAR DPT$M_SCS DPT$V_SCS DYN$C_MCJ7 IO$_AUDIO XAB$B_BLN XAB$W_RVN EMB$C_CRBT EMB$K_CRBT; IRP$B_FLCK LDT$L_APRV LDT$L_WPRV PCB$L_EFCS SCS$B_PGRP UCB$L_QLEN UCB$L_SVPN UCB$PS_DTN AT$_BVP_NIP AT$_BVP_SSP DYN$C_CRAMH` EMB$S_EMBTS EMB$W_FLAGS@ IO$M_RD_MEM IO$M_STREAM IO$V_RD_MEM IO$V_STREAM IO$_COPYMEM| PCB$L_OWNER PCB$M_HIBER PCB$M_INTER PCB$V_HIBER PCB$V_INTERI RMS$_OK_RNF SB$B_SUBTYP UCB$L_K2TNM, UCB$PS_CRAM ATR$C_UIC_RO ATR$S_UIC_RO DYN$C_ISACFG EMB$C_ADPERR! EMB$C_CLKERR EMB$C_SYNERR EMB$K_ADPERR! EMB$K_CLKERR EMB$K_SYNERR EMB$M_FL_DDR EMB$V_FL_DDR IO$_PHYSICAL" IO$_READRCTL LDT$L_ITMLST SCS_NAME_LEN UCB$L_ASTQBL UCB$L_ASTQFL UCB$L_EXEDEL UCB$M_CANCEL UCB$V_CANCEL DT$_YI_KMS11K FIB$C_DEFAULT FIB$C_USEREOT IO$M_INTCLOCK IO$V_INTCLOCK IO$_WRITELBLK IO$_WRITEMARK IO$_WRITEPBLK0 IO$_WRITEVBLK PR$_SID_TYP4AL RMS$_NOEXTEND0 SB$Q_SWINCARN SB$S_SWINCARN UCB$L_2P_LINK UCB$L_DP_LINKPCRB$L_TT_MODEMHDPT$B_NAME_LENDPT$C_BASE_LENDPT$K_BASE_LENDYN$C_CMDTABLEDYN$C_IOHANDLEbDYN$C_LOADCODEDYN$C_VWS_UPDE NAM$C_MS_DOSFS  =NAM$C_TOPS10FSNAM$C_TOPS20FSNAM$M_DIR_LVLS@NAM$M_SRCHXABSNAM$R_NOP_BITS0NAM$R_WCC_BITSNAM$S_DIR_LVLSNAM$V_DIR_LVLSNAM$V_SRCHXABSRMS$_DTFCDDRECBSCS$C_CON_REQLSCS$C_CON_RSPLSCS$C_REJ_REQLSCS$C_REJ_RSPLSCS$C_STNORMALSCS$K_STNORMALATR$C_ALCONTROL$ATR$C_DELETEACL ATR$C_USERLABELATR$S_ALCONTROLATR$S_DELETEACLPATR$S_USERLABELDVI$_TT_EDITINGDYN$C_DDTM_XBIDDYN$C_LM_LMREADDYN$C_NON_PAGEDFIB$M_PRSRV_ATRFIB$V_PRSRV_ATR/ATR$C_CLASS_MASKATR$S_CLASS_MASKXCRB$PS_SYSG_DBLKDYN$C_CLU_CLUVECVFIB$W_SD_FID_SEQIRP$M_CACHE_SAFEIRP$V_CACHE_SAFE0PCB$Q_PSX_ACTPRMPCB$S_PSX_ACTPRMiRMS$_OVRDSKQUOTAUCB$C_ERL_LENGTHUCB$K_ERL_LENGTHUCB$L_PI_SCRATCH DYN$C_IPC_IPC_CCBcDYN$C_NET_LAN_LPBbDYN$C_NET_LAN_LSBDYN$C_NET_MOP_CPBrDYN$C_NET_NRL_HTBuDYN$C_NET_NRL_PSBYDYN$C_NET_NSP_ATBDYN$C_NET_QIO_DABDYN$C_NET_QIO_QLBJDYN$C_NET_SCL_SPB#DYN$C_NET_TSK_TPBIRP$L_SHD_PERLKIDxADP$L_CPU_AFFINITYDVI$_TT_APP_KEYPADIRP$L_SHD_LOCK_FPChIRP$L_SCS_STALL_DATA\UCB$R_DISK_DEVDEPEND\UCB$R_TERM_DEVDEPENDUCB$S_DISK_DEVDEPENDUCB$S_TERM_DEVDEPEND GATR$C_BIBLIOGRAPHIC_FID %ATR$S_BIBLIOGRAPHIC_FIDEMB$C_AWEMB$K_AW DPT$S_DPT DT$_RC26P DT$_RV20P DT$_RV80P DT$_TK50P DT$_TK60P DT$_TK70P! DT$_TK7LP DT$_TM32P DT$_TU81PA DYN$C_FLK DYN$C_FRK IO$M_LOOP IO$M_SWAP IO$V_LOOP IO$V_SWAP IO$_QSTOPp KTB$L_PRI SS$_NOAQBD UCB$L_ADPx UCB$L_IRP ATR$L_ADDR4 IRP$L_FQBL0 IRP$L_FQFLy RMS$_SYNCH SS$_NODATA$ SS$_NOP1VAH DT$_EL_ELAN DT$_TTYUNKN IO$M_IN_XON IO$V_IN_XON IO$_REREADN UCB$L_ASTEN8 UCB$L_EXDMN UCB$L_KTRLN ATR$C_FILTYP ATR$S_FILTYP DT$_FP_FEPCM% EMB$B_DEVCLSp EMB$L_DV_STS EMB$M_EM_BUS EMB$V_EM_BUS IRP$M_BUFOBJ IRP$V_BUFOBJ8 KTB$S_KTBDEF PCB$L_EOWNER PCB$L_PRCSTR PR$C_PS_EXEC UCB$L_DUETIM: AT$_VTI_COMBO DYN$C_UIS_SEG DYN$C_UIS_URG EMB$C_CACHERR EMB$K_CACHERR EMB$L_DV_CHAR IO$M_READ_ALL IO$V_READ_ALL KTB$L_ONQTIME KTB$L_WAITIME KTB$M_SSFEXCE KTB$V_SSFEXCE PCB$L_SWP_SEQ* RMS$_BADPHASEb RMS$_IVATRACE SCS$L_XCT_LENh UCB$JTCONTFIL6DT$_GENERIC_DKDT$_GENERIC_MKCDYN$C_PSCANBUFFIB$M_NOHDREXT FIB$V_NOHDREXT,FIB$W_VERLIMIT@IO$M_DATACHECKIO$M_LASTBLOCKIO$V_DATACHECK IO$V_LASTBLOCK+IO$_READLCHUNK IO$_WRITECHECK@PCB$M_SOFTSUSPPCB$V_SOFTSUSPUCB$L_INIFKBLKUCB$L_MAXBLOCKUCB$L_MSGFKBLKUCB$L_RSPFKBLK UCB$M_NT_BREAK UCB$S_INIFKBLK UCB$S_MSGFKBLK UCB$S_RSPFKBLKUCB$V_NT_BREAKHDPT$IB_NAME_LENDYN$C_CWPS_WAKEDYN$C_LM_LMTREEKTB$S_EPID_PROCKTB$V_EPID_PROCBSCS$C_ACCP_REQLSCS$C_ACCP_RSPLSCS$C_DISC_REQLSCS$C_DISC_RSPL4ATR$C_DELETE_ALLATR$S_DELETE_ALLDT$_GENERIC_SCSIDYN$C_DDTM_XSBIDiDYN$C_NET_THREADDYN$C_UIS_SEGENDKTB$L_TQUANT_ACB,PCB$L_PSX_ACTRTNF =PCB$M_BYTLM_LOANPCB$V_BYTLM_LOANDYN$C_CWPS_CREPRCDYN$C_CWPS_DELPRCDYN$C_NET_MOP_TRC!FAB$B_RU_FACILITYFAB$R_FAC_OVERLAYFAB$R_FOP_OVERLAYFAB$R_IFI_OVERLAYFAB$R_ORG_OVERLAYFAB$R_RAT_OVERLAYKFAB$R_RCF_OVERLAYFAB$R_SHR_OVERLAY@IO$M_EST_COM_PATHIO$M_RTN_COM_PATHIO$V_EST_COM_PATHIO$V_RTN_COM_PATHIRP$M_FASTIO_DONEIRP$V_FASTIO_DONEKTB$L_PER_KT_AREAUCB$M_SINGLE_PATHUCB$V_SINGLE_PATHDVI$_ALT_HOST_NAMEDVI$_ALT_HOST_TYPEDVI$_REMOTE_DEVICEDVI$_SERVED_DEVICEDDVI$_TT_ASIAN_MODEDYN$C_NET_EMAA_EABDYN$C_NET_EMAA_EIBZDYN$C_NET_NSP_TCTB*DYN$C_NET_TIM_NTEB3DYN$C_NET_VCI_VCIBDYN$C_SECURITY_PSBUCB$M_MSCP_INITING UCB$V_MSCP_INITINGDYN$C_NET_EMAA_EMAAPCB$L_IM_ASTQBL_SPKPCB$L_IM_ASTQFL_SPKUCB$M_RSP_FKB_IN_USEUCB$V_RSP_FKB_IN_USEDPT$M_NO_IDB_DISPATCH DPT$V_NO_IDB_DISPATCH UCB$M_TU_MEDIA_LOADEDUCB$V_TU_MEDIA_LOADED"ADP$PS_DISABLE_INTERRUPTSxDYN$C_SMRMS$_CHKRMS$_FLK|RMS$_IBKRMS$_NPKRMS$_RLKRMS$_WLK? DYN$C_ACL DYN$C_MTL DYN$C_MVL# DYN$C_PFL DYN$C_SGLO DYN$C_SPL EMB$C_NBW EMB$K_NBW@ IRP$B_EFNT SCS$S_SCSf AT$_MC_BUS8 DPT$PS_DDT DT$_RRD50P DT$_RUX50P PCB$L_EFCU PCB$L_TMBU PR$S_PRDEF UCB$L_SLOP UCB$PS_ADP ATR$C_UCHAR ATR$S_UCHAR DPT$B_FLAGS DPT$L_FLAGSF DT$_HC_OTTOI DT$_HW_OTTOG DT$_SCSI_MO DVI$_DEVNAM" DVI$_VOLNAM@ IO$M_NOECHO IO$V_NOECHO IRP$L_IOQBL IRP$L_IOQFL@ KTB$M_BATCH KTB$V_BATCH NAM$M_SVCTX NAM$V_SVCTX@ PCB$M_RWAST PCB$V_RWAST SS$_EXQUOTA ATR$C_DIRSEQ ATR$S_DIRSEQD DPT$L_VECTOR EMB$C_NMIFLT EMB$K_NMIFLT FIB$C_DSA_DW FIB$C_ENA_DW IO$M_LINE_ON IO$M_OUT_XON IO$M_WRTATTN IO$V_LINE_ON IO$V_OUT_XON IO$V_WRTATTN IRP$M_HIFORK IRP$V_HIFORK PCB$M_DISAWS PCB$M_PHDRES PCB$V_DISAWS PCB$V_PHDRES  RMS$_PENDING SCS$C_CR_RSP UCB$K_JT_LENP UCB$L_DAEMON@ UCB$L_DELDMN UCB$L_ICSIGN UCB$S_PPDBGN@ UCB$W_INCARN DVI$_MAXBLOCK DVI$_TT_BLOCKB DYN$C_CWPSSQH DYN$C_LAVC_CH IO$M_RD_MODEM IO$V_RD_MODEM KTB$M_HARDAFF KTB$V_HARDAFF NAM$M_EXP_DEV NAM$V_EXP_DEV PCB$M_RECOVER PCB$V_RECOVER PR$M_MCES_DPC PR$M_MCES_DSC PR$V_MCES_DPC PR$V_MCES_DSCd SB$L_PORT_MAPDYN$C_CD_BBRPGDYN$C_PSX_PXPGDYN$C_PSX_XSIGEMB$C_BIADPERREMB$C_BIBUSERR,EMB$C_POLL_ERREMB$K_BIADPERREMB$K_BIBUSERR,EMB$K_POLL_ERR@IO$M_DEALC_ALLIO$V_DEALC_ALL8IO$_ACPCONTROL6IO$_NETCONTROLIO$_STARTSPNDL:IO$_TTYREADALLIRP$M_CPY_FINIIRP$V_CPY_FINI4KTB$L_ASTQBL_E0KTB$L_ASTQFL_EJRMS$_RU_ACTIVE1RMS$_SUPERSEDEUCB$M_WRONGVOLUCB$V_WRONGVOL>DVI$_TT_CS_THAI.EMB$W_DV_ERRSEQ.EMB$W_HD_ERRSEQ.EMB$W_TS_ERRSEQ@IO$M_O_NONBLOCKIO$V_O_NONBLOCK4IO$_PSXREADVBLK,IO$_WRITELCHUNKKTB$M_EPID_WILDKTB$M_NOSUSPENDKTB$M_PREEMPTEDKTB$V_EPID_WILDKTB$V_NOSUSPENDKTB$V_PREEMPTED =PR$_XSID_V14_4AyRMS$_FILEPURGED@UCB$L_CDDB_LINKUCB$L_INIT_ABLK UCB$L_MFQEFKBLKUCB$M_INIFKLOCKUCB$M_MSGFKLOCKUCB$PS_DTN_LINK UCB$S_MFQEFKBLKUCB$V_INIFKLOCKUCB$V_MSGFKLOCKhDPT$IW_INAME_LEN4FIB$L_ACL_STATUS<FIB$L_ALT_ACCESS*NAM$R_DID_FIELDS$NAM$R_FID_FIELDSPCB$K_SCHED_FIFODYN$C_CWPS_SUSPNDqDYN$C_NET_NRL_NRD2DYN$C_NET_VCI_VID FIB$M_NOCOPYOWNERFIB$V_NOCOPYOWNERKTB$L_INITIAL_KTBIRP$W_SHD_DEV_TYPE(UCB$C_MB_UCBLENGTH(UCB$K_MB_UCBLENGTHDYN$C_NET_OSITP_ATBDYN$C_NET_OSITP_ILBDYN$C_NET_OSITP_TLBUCB$M_SHD_SEQCMD_HEREUCB$M_SHD_VCB_DEQUEUE UCB$V_SHD_SEQCMD_HEREUCB$V_SHD_VCB_DEQUEUEJDT$_LATIO$M_CBSIO$V_CBSbRMS$_DELlRMS$_DFLRMS$_ESLDRMS$_FULLRMS$_IALdRMS$_IFLRMS$_RNLRMS$_RPL<RMS$_RSLBRMS$_SPLRMS$_WPL DT$_EZ56R DT$_SWXCR@ DYN$C_LNM1 DYN$C_RBM= ATR$C_BOOT< ATR$C_VDSTG ATR$S_BOOT ATR$S_VDST FIB$L_EXSZD IRP$L_CHANt IRP$L_RBUN PCB$Q_PRIV PCB$S_PRIVd SS$_BADVEC SS$_ILLEFC< SS$_IVLVEC< SS$_OPCDEC9 SS$_WASECCN DT$_CL_CLIP EMB$S_EMBDV IO$M_COPYOP@ IO$M_ENAREP IO$M_HANGUP@ IO$M_NOMRSP IO$M_UNLOOP IO$V_COPYOP IO$V_ENAREP IO$V_HANGUP IO$V_NOMRSP IO$V_UNLOOP) IO$_FREECAP IO$_REREADPx IRP$R_DIOBM< SB$B_HWVERSh SB$L_STATUS SB$S_HWVERS SB$S_SWVERS, SB$T_SWVERS" SS$_MMATORB", SS$_NOCHJIB UCB@ SAFETY013.A  &[EVERHART.JTDEMO]JTDMNNTV2.OBJ_VAX62;1U>@$M_BACKP UCB$V_BACKP ATR$C_FILVER ATR$C_HEADER ATR$S_FILVER ATR$S_HEADER DPT$IL_FLAGS EMB$M_EM_CPU EMB$V_EM_CPU0 FIB$L_ACLCTX IRP$L_CDRPFL8 KTB$C_LENGTH8 KTB$K_LENGTH PCB$L_APTCNTh PCB$L_ASTACT PCB$L_ASTCNT PCB$L_BIOCNT PCB$L_DIOCNT PCB$L_GPGCNT PCB$L_MTXCNT PCB$L_PPGCNT PCB$L_PRCCNT PCB$L_SWP_KT PCB$M_ERDACT PCB$M_NOACNT@ PCB$M_PWRAST PCB$V_ERDACT PCB$V_NOACNT PCB$V_PWRAST SCS$C_CR_REQ UCB$M_DEADMO UCB$V_DEADMO UCB$V_MSGFLO UCB$V_SEGFLO UCB$W_BUFQUO" UCB$W_INIQUOD DPT$PS_VECTOR DVI$_TT_SIXEL~ EMB$L_DV_BCNT EMB$W_DV_UNIT IO$M_READATTN IO$M_READ_HRN IO$M_SHUTDOWN@ IO$M_SPINDOWN IO$V_READATTN IO$V_READ_HRN IO$V_SHUTDOWN IO$V_SPINDOWN PCB$M_SSFEXCS PCB$V_SSFEXCSB RMS$_INVDRMSG SCS$C_CON_RSP SCS$C_REJ_RSP UCB$K_TAB_LEN UCB$L_PI_SVPN UCB$M_CLUTRAN UCB$V_CLUTRAN UCB$W_NT_CHANDYN$C_PSX_SHSHDYN$C_UIS_FNTHtEMB$B_DV_CLASS EMB$W_DV_FLAGS EMB$W_TS_FLAGSFIB$C_FORCE_MVIO$M_SET_MODEM IO$V_SET_MODEMNAM$M_CNCL_DEV NAM$V_CNCL_DEVPCB$K_SCHED_RRPCB$W_PGFLCHAR PR$_SID_TYP9CC EMB$M_EM_VECTOREMB$V_EM_VECTORFIB$M_WRITETHRUFIB$V_WRITETHRU;IO$_TTYREADPALLXPCB$Q_PRVASNSEQPCB$S_PRVASNSEQUCB$L_INS_COMQLUCB$L_MB_MSGQBLUCB$L_MB_MSGQFL8DVI$_TT_CS_HANZI6DVI$_TT_CS_KANJIDYN$C_DSRV_IOBUFDYN$C_IPC_IPCBUFDYN$C_TSRV_TBUFFDFIB$L_MOV_VBNCNT@FIB$M_NOCOPYPROTFIB$V_NOCOPYPROTIO$M_READERCHECKIO$M_WRITERCHECK =IO$V_READERCHECK IO$V_WRITERCHECK2IO$_PSXWRITEVBLK,KTB$L_PERSONA_IDRMS$_OK_NOCURTIDUCB$B_DU_RBNPTRK@UCB$M_MFQEFKLOCKUCB$M_MSCP_PKACK0UCB$PS_HASH_LINKUCB$V_MFQEFKLOCK UCB$V_MSCP_PKACKUCB$W_DU_LBNPTRKDYN$C_CWPS_RESUMEDYN$C_NET_LDR_LIEDYN$C_NSA_FAILURE EMB$B_HD_XSID_TYPFIB$M_FASTRDSQNOSFIB$V_FASTRDSQNOSNAM$C_ULTRIX11_FS NAM$C_ULTRIX32_FSDYN$C_CWPS_GRANTIDDYN$C_CWPS_REVOKIDDYN$C_NET_NBI_NDVECIRP$W_SHD_COPY_TYPEPPCB$L_FREWSLE_PARAMUCB$C_DAPDEV_LENGTHUCB$K_DAPDEV_LENGTH DYN$C_F64_F64VPI_FDBDYN$C_F64_F64VPI_MCBDYN$C_NET_EMAA_EISDBDYN$C_NET_OSITP_NCCBDYN$C_NET_OSITP_TCTB8IRP$Q_USER_THREAD_IDIRP$S_USER_THREAD_IDFAT$_MULTIFUNCTION_PCIIO$M_LT_QUE_CHG_NOTIFIO$V_LT_QUE_CHG_NOTIFFIB$C_CHECK_PROTECTION UCB$M_SHD_NODE_FAILUREUCB$M_SHD_SEQCMD_THERE UCB$V_SHD_NODE_FAILURE UCB$V_SHD_SEQCMD_THERE P1DT$_PVGDT$_DHUHDT$_SLULDVI$_DIRnDVI$_FORTDVI$_OPR^DVI$_SHR,RMS$_FNMćRMS$_FTMtRMS$_KNM܅RMS$_NAMdRMS$_RFMRMS$_RUMTUCB$B_DT> DT$_RX23S? DT$_RX33S DT$_TK50S DT$_TZ30S DYN$C_DTN IRP$S_IRP/ PR$_TBISI, SS$_INUSE UCB$L_STS DT$_PCL11R DYN$C_CRAMq DYN$C_DDTM IO$M_CLEAR IO$V_CLEAR IO$_DRVCLR SS$_BADISD SS$_FLTUND@ SS$_NSTPPD SS$_QUEUED SS$_UNWIND DVI$_TT_AVO( MBX_BUF_SIZL# SS$_IMGVEXC& SS$_NORDACCl SS$_REMRSRC4 SS$_UNASEFC UCB$Q_PI_IQ UCB$Q_PI_TQ UCB$S_PI_IQ UCB$S_PI_TQ7 DT$_EW_TULIP DT$_YP_ADCCP DT$_YR_DDCMPO DT$_ZW_PBXDP DYN$C_PADBLK@ IO$M_STARTUP IO$V_STARTUP IO$_DEF_COMP IRP$L_SEQNUMd LDT$L_FDTCTXH PCB$L_PRVCPU< RMS$_BUG_DDI SCS$W_MIN_CR\ SS$_IVLOGTAB" SS$_NOLOGTABT( SS$_NOPRMCEB ATR$C_RECATTR ATR$S_RECATTR@ DPT$M_BVPSUBS DPT$V_BVPSUBS DVI$C_ACP_REM DVI$_TT_MODEM FIB$B_DID_NMX FIB$B_FID_NMX' FIB$B_LOC_NMX@ IO$M_CANCTRLO IO$V_CANCTRLO IRP$M_VIRTUAL IRP$V_VIRTUAL/ NAM$B_DID_NMX) NAM$B_FID_NMX PCB$L_DEFPROTX PCB$L_NOAUDIT PCB$L_PIXHIST PCB$M_NODELET PCB$M_SSRWAIT PCB$V_NODELET PCB$V_SSRWAIT PR$M_MCES_PCE PR$M_MCES_SCE PR$S_SID_TYPE PR$V_MCES_PCE PR$V_MCES_SCE PR$V_SID_TYPE RMS$_ROOTSRCH SCS$C_CON_REQ SCS$C_REJ_REQ4" SS$_INCSEGTRA( SS$_NOEXQUOTA! SS$_NOLCLMEDAa SS$_RDDELDATA" SS$_SHACHASTA UCB$M_TT_TIMO UCB$V_TT_TIMO@DPT$IS_BTORDERDPT$IW_STEPVERDPT$S_NAME_STRIDPT$T_NAME_STRDVI$_TT_CRFILLDVI$_TT_LFFILLADYN$C_CWPSNODIDYN$C_DECW_DVIEMB$L_DV_OPCNTIO$M_DEALC_HRNIO$M_LT_DISCON IO$M_RETENSIONIO$M_TT_DISCONIO$V_DEALC_HRNIO$V_LT_DISCON IO$V_RETENSION IO$V_TT_DISCON<PCB$L_ASTQBL_S8PCB$L_ASTQFL_SPR$M_ASTSR_EPDPR$M_ASTSR_KPDPR$M_ASTSR_SPDPR$M_ASTSR_UPDPR$M_PS_CURMODPR$M_PS_PRVMODPR$S_PS_CURMODPR$S_PS_PRVMODPR$V_ASTSR_EPDPR$V_ASTSR_KPDPR$V_ASTSR_SPDPR$V_ASTSR_UPDPR$V_PS_CURMODL =PR$V_PS_PRVMODSCS$C_ACCP_RSPSCS$C_DISC_RSP#ATR$C_FNDACETYP#ATR$C_FNDACLTYPATR$S_FNDACETYPATR$S_FNDACLTYPEMB$B_DEV_CLASSEMB$C_OS_VAXVMSEMB$K_OS_VAXVMS0EMB$Q_DV_SWVERS0EMB$Q_HD_SWVERS0EMB$Q_TS_SWVERSEMB$S_DV_SWVERSEMB$S_HD_SWVERSEMB$S_TS_SWVERSPR$_XSID_CV_9CCUCB$L_INS_COMQM UCB$S_DAPDEVNAMUCB$T_DAPDEVNAMEMB$M_EM_ADAPTEREMB$V_EM_ADAPTERKTB$M_NOUNSHELVEKTB$V_NOUNSHELVEUCB$L_MB_READQBLUCB$L_MB_READQFLpUCB$L_POWER_FAILUCB$W_DU_GRPPCYL@IRP$M_FAST_FINISHIRP$V_FAST_FINISHKTB$L_AST_BLOCKEDNAM$M_SEARCH_LIST NAM$V_SEARCH_LISTUCB$L_PI_IQ_BLINKUCB$L_PI_IQ_FLINKUCB$L_PI_TQ_BLINKUCB$L_PI_TQ_FLINKUCB$M_TU_OVRSQCHK UCB$S_PK_INIFKBLKUCB$V_TU_OVRSQCHK"DYN$C_CONFIG_TABLEDYN$C_NET_NBI_GRVEFIB$M_EXCLPREVIOUSFIB$V_EXCLPREVIOUS#FIB$C_WRITE_BARRIERNDYN$C_NET_SCL_CRPROC@EMB$B_DV_HW_NAME_LEN@EMB$B_HD_HW_NAME_LEN@EMB$B_TS_HW_NAME_LEN`IRP$Q_RES_WAIT_STATEIRP$S_RES_WAIT_STATEBDVI$_DEVICE_TYPE_NAME DVI$_SHDW_MASTER_NAMEDYN$C_FILES_64_F64DATAIRP$L_SHD_WLG_MODE_FPC!UCB$M_TU_DENS_DETERMINED!UCB$V_TU_DENS_DETERMINED 0BUSZFDT$_DHVPR$_IPLDVI$_STSjDYN$C_MPmDYN$C_VPRMS$_ALN,RMS$_BLNRMS$_CHNRMS$_DANTRMS$_IANRMS$_LAN̅RMS$_MRNԆRMS$_SYN DT$_DEBNT" DT$_SWIFT9 IO$_MOUNT SCS$W_RSVD UCB$L_CDT UCB$L_DDTP UCB$L_NDT UCB$L_PDT UCB$M_INT UCB$V_INT4 DT$_RRD40S DT$_TQ_BTSw DYN$C_QMAN2 IO$_ACCESS0 IRP$C_CDRP0 IRP$K_CDRP IRP$L_MIRP KTB$L_SQBL KTB$L_SQFL KTB$M_WALL KTB$V_WALL RMS$_STALL, SS$_FLTINET SS$_IVMODE SS$_IVTIMEI SS$_REMOTE< SS$_UNSAFE VEC$PS_ADP1 DT$_MC_SPUR DYN$C_DIOBM IO$M_SETDIR IO$V_SETDIR> IO$_READDIR IO$_SETCHAR IO$_WRTTMKR IRP$M_BUFIO IRP$M_HBRIO IRP$M_LCKIO IRP$M_MBXIO IRP$M_PAGIO IRP$M_SHDIO@ IRP$M_SRVIO IRP$V_BUFIO IRP$V_HBRIO IRP$V_LCKIO IRP$V_MBXIO IRP$V_PAGIO IRP$V_SHDIO IRP$V_SRVIO9 RMS$_OK_ALK! RMS$_OK_RLK! SS$_CLEARED SS$_CREATED& SS$_IVREGID( SS$_NOWORLDL SS$_RADRMOD SS$_REMOVED SS$_REVISEDT SS$_ROPRANDd% SS$_SHELVED UCB$L_TIMER UCB$M_POWER UCB$V_POWER ATR$C_EXPDAT ATR$S_EXPDAT CRB$M_UNINIT CRB$V_UNINIT DYN$C_VCC_CL IRP$B_CARCON IRP$C_BT_LEN IRP$C_CD_LEN IRP$K_BT_LEN IRP$K_CD_LEN IRP$L_SEGVBN PCB$L_PRISAVt RMS$_ACC_AIJ RMS$_ACC_ATJ| RMS$_ACC_BIJd RMS$_ACC_RUJ\ SB$W_TIMEOUT SCS$C_STNORS SCS$K_STNORS SCS$W_STATUSQ SS$_CONTROLC@ SS$_DEVALLOC SS$_DIRALLOC ( SS$_NOCMEXEC" SS$_NOFILACC SS$_NOTINSEC" SS$_NOVOLACC& SS$_NOWRTACCj SS$_PWDINDIC UCB$Q_PI_IFQ UCB$Q_PI_TFQ UCB$S_PI_IFQ UCB$S_PI_TFQ UCB$W_DIRSEQ( CRB$L_XZA_STS DYN$C_NET_UNK@ FIB$M_SEQONLY FIB$V_SEQONLY IO$M_SHOW_MAP IO$M_SLAVLOOP IO$V_SHOW_MAP IO$V_SLAVLOOP IO$_SETCLOCKP IRP$L_TT_TERM KTB$L_AUTHPRI = PCB$M_SSFEXCU PCB$V_SSFEXCU4 SS$_BADATTRIB $ SS$_NOSUCHCPBd UCB$B_FREECAPX UCB$B_MSG_TYP UCB$M_ERLOGIP UCB$V_ERLOGIPATR$B_STRUCVERDPT$W_DEFUNITSDPT$W_MAXUNITSDVI$_ALLDEVNAM.DVI$_DAPDEVNAM,DVI$_LOGVOLNAM>DVI$_SERIALNUMDVI$_VOLSETMEMIO$M_TRMNOECHO IO$V_TRMNOECHO(IRP$L_SHD_IOFL IRP$S_LBUFHNDLIRP$T_LBUFHNDLPCB$L_KT_COUNTPCB$M_SECAUDIT`PCB$Q_ONCPUCNTPCB$S_ONCPUCNTPCB$V_SECAUDITPR$S_XSID_TYPEPR$V_XSID_TYPERMS$_IDXSEARCHSCS$C_ACCP_REQSCS$C_DISC_REQL"SS$_EXLNMQUOTAHATR$C_CACHE_SEQATR$S_CACHE_SEQDPT$PS_CUSTOMERDVI$_HOST_AVAIL~DVI$_TT_PASSALLEMB$L_DV_ERRCNT`EMB$L_DV_ERTCNTIO$M_BREAK_CONN IO$V_BREAK_CONNIRP$Q_NT_PRVMSKIRP$S_NT_PRVMSK(PCB$L_PSX_FLAGSHUCB$L_INIRETURNUCB$M_NO_ASSIGNUCB$V_NO_ASSIGN&DT$_FT_TRACE_RAMDVI$_TT_FALLBACK DYN$C_NET_CTF_MH IRP$M_PIO_PHASEIIIRP$V_PIO_PHASEII UCB$IB_PK_INIFKBLKUCB$L_PI_IFQ_BLINKUCB$L_PI_IFQ_FLINKUCB$L_PI_TFQ_BLINKUCB$L_PI_TFQ_FLINKUCB$M_PK_IFKB_LOCKUCB$V_PK_IFKB_LOCKDYN$C_LAVC_ID_TABLEFIB$M_FILE_CONTENTSFIB$S_FILE_CONTENTSFIB$V_FILE_CONTENTSIDYN$C_NET_SCL_SESSIDJFAB$R_ACMODES_OVERLAY FAB$R_JOURNAL_OVERLAY4UCB$C_LCL_DISK_LENGTH(UCB$C_LCL_TAPE_LENGTH4UCB$K_LCL_DISK_LENGTH(UCB$K_LCL_TAPE_LENGTHDYN$C_FILES_64_CM_AICBDYN$C_OBSOLETE_ENS_ADBDYN$C_OBSOLETE_ENS_ECBDYN$C_OBSOLETE_ENS_EDBDYN$C_OBSOLETE_ENS_ENBDYN$C_OBSOLETE_ENS_EPB DYN$C_OBSOLETE_ENS_ETB DYN$C_OBSOLETE_ENS_NAB DYN$C_FILES_64_THD_SEMA PCB$L_AFFINITY_CALLBACK! FDT_CONTEXT$L_QIO_STATUS P2hDVI$_DMTdDVI$_MNTXDVI$_NETVDVI$_RCT4RMS$_QUOĆRMS$_SQORMS$_TMO DYN$C_ADP: DYN$C_ERP DYN$C_IRP0 DYN$C_TWPl SS$_DEBUGt$ SS$_NOLOG XAB$L_NXT XAB$Q_RDT XAB$S_RDT DT$_PCL11T DT$_RP07HT DT$_UQPORT IO$M_ABORT@ IO$M_MAINT IO$M_MOUNT IO$M_RESET IO$V_ABORT IO$V_MAINT IO$V_MOUNT IO$V_RESET IO$_FORMAT IO$_OFFSET KTB$L_EFWM SS$_DECOVF SS$_FLTOVF| SS$_INTOVFT SS$_STKOVF STS$M_CODE STS$S_CODE STS$V_CODE  UCB$B_LMET UCB$L_BCNT UCB$L_VICTt UCB$W_UNIT@ IO$M_ACCESS@ IO$M_EXISTS IO$V_ACCESS IO$V_EXISTS IO$_RDSTATS IRP$M_MVIRP IRP$V_MVIRP RMS$_NORMALA RMS$_OK_DEL) RMS$_OK_RRL$ SS$_BADTIME SS$_INHCHME# SS$_LOGNAME SS$_NOQFILE( SS$_NOSHARE TPA$M_AMBIG TPA$V_AMBIGh UCB$L_FNUMS4 UCB$L_HUCBS DVI$_TT_WRAPV DYN$C_VPS_FM IO$M_NOFILTR IO$M_READCSR IO$V_NOFILTR IO$V_READCSR0 IRP$L_MV_TMO IRP$M_FASTIO IRP$M_PHYSIO@ IRP$M_SWAPIO IRP$M_TERMIO IRP$V_FASTIO IRP$V_PHYSIO IRP$V_SWAPIO IRP$V_TERMIO KTB$M_NETWRK KTB$V_NETWRKl LDT$K_CLRSIZ4 LDT$L_ACLSIZ4 LDT$L_FRESIZq RMS$_OK_RULK SCS$W_CREDIT# SS$_ARCHIVED SS$_COMMHARDc SS$_EMULATED$! SS$_IVLOCKIDl# SS$_NOCURTID SS$_NOLOCKID! SS$_NOSUCHID SS$_PREPARED! SS$_VCCLOSED$ TPA$S_TPADEFT =` UCB$L_CBTCTR$ UCB$L_LOGADR UCB$N_LSADDR  UCB$N_RSADDR UCB$S_LSADDR UCB$S_RSADDR ATR$C_DEFAULT DYN$C_IPC_PHL DYN$C_LC_SYSL DYN$C_SCS_CDL DYN$C_SPECIAL IRP$L_XCT_LEN IRP$Q_STATION IRP$S_STATION IRP$W_SHD_VUN PCB$L_PRIBSAV SS$_FILALRACC SS$_FILNOTACC$$ SS$_HSTBUFACC SS$_ILLIOFUNCl SS$_IVCHNLSECT# SS$_NOSAVPEXC<$ SS$_NOSUCHFACx SS$_NOSUCHSEC SS$_NOVOLDESCT UCB$L_ALTIOWQ ATR$C_ASCDATES#ATR$S_ASCDATESDPT$M_SNAPSHOT DPT$V_SNAPSHOTDYN$C_IPC_IPLK@FIB$M_NOVERIFYFIB$V_NOVERIFYIO$M_CLSEREXCPIO$M_INHEXTGAPIO$M_MAINTLOOPIO$M_NOCLEANUP IO$V_CLSEREXCP IO$V_INHEXTGAP IO$V_MAINTLOOPIO$V_NOCLEANUPIO$_STARTDATAPIRP$M_PART_HWMIRP$V_PART_HWMDPCB$L_ASTQBL_U@PCB$L_ASTQFL_U!SCS$C_STINSFCR!SCS$K_STINSFCR$SS$_BADFORGEDBK SS$_EVTNOTENABRSS$_NORIGHTSDBUCB$L_MEM_DUMPUCB$L_REG_DISPUCB$L_REG_DUMP@UCB$M_MNTVERIPUCB$V_MNTVERIP)ATR$C_HIGHWATERATR$S_HIGHWATERDPT$IW_DEFUNITSDPT$IW_MAXUNITSDT$_DECW_PSEUDODVI$_DEVLOCKNAMDVI$_FULLDEVNAM4DVI$_NEXTDEVNAM2@ SAFETY013.A  &[EVERHART.JTDEMO]JTDMNNTV2.OBJ_VAX62;1>_DVI$_ROOTDEVNAMIRP$M_WLE_SUPWLIRP$V_WLE_SUPWLRMS$_JNLNOTAUTHSS$_DUPDSKQUOTASS$_EXDISKQUOTA,*SS$_EXPGFLQUOTASS$_EXPORTQUOTA+SS$_NOCONFMEDIASS$_NODISKQUOTAiSS$_OVRDSKQUOTASS$_TOOMUCHDATA^UCB$W_BYTESTOGOlDPT$PS_INAME_PTRDVI$_TT_MBXDSABLpPCB$Q_KEEP_IN_WSPCB$S_KEEP_IN_WSEMB$C_OS_ALPHAVMSEMB$K_OS_ALPHAVMSPCB$K_SCHED_OTHERDYN$C_QMAN_QMANMSGKTB$M_IN_TBS_STATEKTB$V_IN_TBS_STATELRMS$_BUG_RU_ACTIVExPCB$L_AFFINITY_SKIP.NAM$R_DID_RVN_FIELDS(NAM$R_FID_RVN_FIELDSJFIB$W_DIR_HDRSEQ_INCRIRP$M_LOCK_RELEASEABLEIRP$V_LOCK_RELEASEABLEpUCB$K_MSCP_DISK_LENGTHpUCB$K_MSCP_TAPE_LENGTH DVI$_SHDW_NEXT_MBR_NAME DYN$C_FILES_64_THD_DTCB ODYN$C_NET_SCL_CRPROCNCB IRP$M_SHD_EXPEL_REMOVED IRP$V_SHD_EXPEL_REMOVED EVAX0VBUSZ DT$_LAXDT$_MBXPR$_ASN@IO$M_NOWIO$V_NOWRMS$_AOPRMS$_DTPRMS$_DUP‚RMS$_EXP<RMS$_FOPtRMS$_IOPRMS$_JOP|RMS$_ROP҂RMS$_SUPRMS$_TYP CRB$M_BSY CRB$V_BSY DVI$_UNITP IRP$L_STS SS$_SYNCH9 DYN$C_CDRPH DYN$C_CHIPN DYN$C_VCRP RMS$_LSCAN SS$_INVARG# SS$_INVLOG SS$_SUBRNG DYN$C_BUFIO# EMB$B_HDRSZ IO$M_ACCEPT@ IO$M_BRDCST IO$M_DMOUNT IO$M_LPBEXT@ IO$M_LPBINT IO$M_NOWAIT IO$V_ACCEPT IO$V_BRDCST IO$V_DMOUNT IO$V_LPBEXT IO$V_LPBINT IO$V_NOWAIT IO$_READRCTQ RMS$_OK_LIML! SS$_ILLSELF  UCB$B_LMEST UCB$L_FIRST UCB$L_MAXXT UCB$L_MINXT UCB$L_MYFDT UCB$L_OPCNTB DT$_ZE_DNSES IO$M_SYNCSTS IO$V_SYNCSTS4 IO$_DEACCESS IO$_STOP_BUS IRP$M_FILACP IRP$V_FILACP PCB$L_MAXFIX< RMS$_NETFAIL SS$_BADQFILE SS$_CONTINUEt" SS$_DATALATE, SS$_INSFRAME& SS$_IVACMODE<# SS$_NODELETE SS$_QFACTIVE SS$_TMACTIVEL SS$_VECINUSE SS$_VOLATILE] UCB$B_TRACKS UCB$L_DEVSTS DYN$C_UIS_MEM  =IO$M_SETCUADR@ IO$M_STEPOVER IO$V_SETCUADR IO$V_STEPOVER IO$_RETCENTER IO$_SENSECHAR IRP$M_ABORTIO@ IRP$M_CACHEIO IRP$V_ABORTIO IRP$V_CACHEIO KTB$M_PHDLOCK KTB$V_PHDLOCKԇ RMS$_DEADLOCK$ SCS$B_CON_DAT SCS$C_STNOMAT SCS$K_STNOMAT SCS$S_CON_DAT# SS$_ALRCURTID% SS$_BADITMCOD SS$_CONCEALED+ SS$_CPUSTARTD% SS$_INSFRSPID SS$_INVCOMPID# SS$_INV_HW_ID+ SS$_MMSFAILED! SS$_MSGNOTFND) SS$_NOPRIVENDd$ SS$_NOSUCHBID\# SS$_NOSUCHTID# SS$_NOSUSPEND SS$_NOTQUEUED SS$_OBJLOCKED$ SS$_OVRMAXAUD# SS$_SUBTRACED SS$_SUSPENDEDt& SS$_UNALIGNED SS$_USEGENPWD UCB$B_DU_UHVR UCB$B_DU_USVRH UCB$L_DEVCHARH UCB$Q_DEVCHAR UCB$S_DEVCHAR UCB$T_PARTNER UCB$W_DSTADDR" UCB$W_SRCADDR\CRB$L_TOUTROUTDVI$_TT_NOECHODYN$C_IPC_POOLPIRP$L_SAVD_RTN SS$_NOMOREPROC0AT$_KA0202_LBUS DPT$M_SCSI_PORT<DPT$PS_DDB_LIST DPT$V_SCSI_PORTDYN$C_LM_LMLINKDYN$C_SSI_BLOCKEMB$L_DV_REGSAVIO$M_UPDATE_MAP IO$V_UPDATE_MAPUCB$L_PI_WL_DSP UCB$M_MSCP_WRTPUCB$M_TT_HANGUPUCB$M_TU_SEQNOPUCB$S_OPA0_TEMPUCB$T_OPA0_TEMP UCB$V_MSCP_WRTPUCB$V_TT_HANGUPUCB$V_TU_SEQNOP2UCB$W_MSGPPDTYPCRB$M_XZA_ADPERRCRB$V_XZA_ADPERRDPT$IW_IDB_CRAMSDPT$IW_IOHANDLESDPT$IW_UCB_CRAMSDVI$_TT_MECHFORMYFIB$B_SD_FID_NMXIO$M_LT_RCV_INFOIO$M_LT_SOL_INFO IO$V_LT_RCV_INFO IO$V_LT_SOL_INFOIRP$M_PIO_CANCELIRP$V_PIO_CANCELTPCB$L_BUFOBJ_CNT"PR$M_ASTSR_SET_EPR$M_PS_SYSSTATEPR$V_PS_SYSSTATE:DVI$_TT_CS_HANGULDYN$C_CWPS_GETJPIDYN$C_CWPS_SETPRIIRP$L_SHD_PIO_LNKIRP$M_PIO_CTHRDOKIRP$V_PIO_CTHRDOK KTB$L_AST_PENDINGPCB$L_ACTIVE_CPUS,UCB$PS_TARGET_LUNUCB$S_MEDIA_ID_NNUCB$V_MEDIA_ID_NNDYN$C_NET_NBI_GRVHEMB$B_DV_DEV_CLASSEMB$B_TS_DEV_CLASSIO$M_LT_MAP_LNKNAMIO$M_LT_MAP_NODNAMIO$M_LT_MAP_PORNAMIO$M_LT_MAP_SRVNAMIO$V_LT_MAP_LNKNAMIO$V_LT_MAP_NODNAMIO$V_LT_MAP_PORNAMIO$V_LT_MAP_SRVNAM<PCB$L_EXEC_COUNTERDPCB$L_USER_COUNTER`UCB$L_MSCPDEVPARAMPCB$S_EPID_NODE_SEQPCB$V_EPID_NODE_SEQhCRB$Q_CTRLR_SHUTDOWNCRB$S_CTRLR_SHUTDOWNDT$_CONSOLE_CALLBACK@KTB$M_CLASS_SUPPLIEDKTB$V_CLASS_SUPPLIED"FIB$C_CACHING_OPTIONSPFIB$L_CACHING_OPTIONSFIB$M_FILE_ATTRIBUTESFIB$S_FILE_ATTRIBUTESFIB$V_FILE_ATTRIBUTESDYN$C_OBSOLETE_ENS_EFDDYN$C_OBSOLETE_ENS_ENDNFIB$W_DIR_DATASEQ_INCRHFIB$W_FILE_HDRSEQ_INCR"DYN$C_FILES_64_CM_GL_DATA"FDT_CONTEXT$S_FDT_CONTEXT:MYFIBLDT$_RDRX@DT$_VT5XrDVI$_IDVtDVI$_ODVRMS$_ALQ4RMS$_ENQRMS$_SEQ DT$_DR11W DYN$C_CAR% DYN$C_PTR\ IRP$L_CDTL RMS$_CRMP DVI$_OPCNT DVI$_VPROT8 IO$_IOCTLV IO$_SHADMVZ RMS$_LIMBO SS$_VARITH AT$_MBUSGFX DVI$_DEVSTS& DVI$_TRACKS DYN$C_LC_MP] DYN$C_SCDRP DYN$C_SGMAP KTB$M_LOGIN KTB$V_LOGIN SS$_INSFARG' SS$_IVVAFLG SS$_NONXPAG DT$_ET_DEBNT: DVI$_CLUSTER DVI$_DEVCHAR DVI$_TT_OPER IO$M_ATTNAST IO$M_REMOUNT IO$M_SETFNCT  =IO$M_SETPROT IO$V_ATTNAST IO$V_REMOUNT IO$V_SETFNCT IO$V_SETPROT: IO$_DISMOUNT) IO$_TTY_PORT IO$_WRITERET KTB$M_PSWAPM KTB$V_PSWAPM PCB$M_NOTIFY PCB$V_NOTIFYi RMS$_CRE_STM܇ RMS$_EXENQLM SS$_FLTDIV_F SS$_FLTINE_F SS$_FLTINV_F SS$_FLTOVF_F SS$_FLTUND_F SS$_INTOVF_F STS$K_SEVERE UCB$A_VICDDT UCB$B_ONLCNT UCB$L_ERRCNT UCB$L_ERTCNT UCB$L_EXEMPT UCB$L_OLDFDT@ UCB$M_TIMOUT UCB$V_TIMOUT UCB$W_MSGCNT@ IO$M_ALLHOSTS IO$V_ALLHOSTS IO$_START_BUS, RMS$_BOGUSCOL< SS$_BADESCAPEd& SS$_BADFANDLE8 SS$_BEGOFFILE SS$_BEGOFTAPE SS$_DEVACTIVEp SS$_ENDOFFILEx SS$_ENDOFTAPE# SS$_EXLICENSE<" SS$_NODELEAVE! SS$_NOLICENSE SS$_NOMOREACE$ SS$_NOPRESUME) SS$_NOUPGRADE SS$_RSDMINUSE1 SS$_SUPERSEDE4# SS$_VA_IN_USE" SS$_WRONGNAME STS$M_COND_ID STS$S_COND_ID STS$V_COND_ID TPA64$M_AMBIG TPA64$V_AMBIG\ UCB$B_SECTORSH UCB$L_CTLFLGS UCB$L_PI_DSPS  UCB$L_RSP_STSDT$_PC_PRINTERDVI$_TT_DIALUPDVI$_TT_HANGUPADYN$C_NET_ITEMEDYN$C_PSCANITMIO$_ADDSHADMBRIO$_AS_SETCHARIO$_PSXSETCHARIO$_REMSHADMBR,KTB$L_ASTQBL_K(KTB$L_ASTQFL_K( SS$_ALLSTARTED8 SS$_ALRDYSTPPD*SS$_EXQUOTAENDSS$_FILELOCKEDySS$_FILEPURGEDSS$_LNMCREATED\SS$_MCNOTVALID:,SS$_NOBUFOBJIDJ,SS$_NOMEMRESID!SS$_NOTPRINTEDSS$_NOT_LOADED$SS$_PARTJOINED"SS$_PARTMAPPED,%SS$_SSINOTHELD|$SS$_TPDISABLEDUCB$L_TRACEPTRATR$C_ADDACLENT ATR$C_DELACLENTATR$C_ENDLBLAST"ATR$C_FNDACLENT!ATR$C_MODACLENTATR$S_ADDACLENTATR$S_DELACLENTATR$S_ENDLBLASTATR$S_FNDACLENTATR$S_MODACLENTDYN$C_LC_CHREMLDYN$C_LC_FPEMULIRP$L_ERASE_VBNZRMS$_WRTJNL_AIJjRMS$_WRTJNL_ATJbRMS$_WRTJNL_BIJrRMS$_WRTJNL_RUJASS$_DEVALRALLOCXSS$_DEVNOTALLOCSS$_ILLCNTRFUNC"SS$_REMOTE_PROCUCB$L_INS_DFREQUCB$L_INS_MFREQUCB$M_TU_RPTREQUCB$V_TU_RPTREQDYN$C_DDTM_STACKEMB$W_DV_HDR_REVEMB$W_HD_HDR_REVEMB$W_TS_HDR_REVlSB$PS_PROC_NAMES UCB$M_PA_ERLOGIPUCB$V_PA_ERLOGIPUCB$W_DU_TRKPGRP"DVI$_TT_ACCPORNAMDVI$_TT_PHYDEVNAMtDYN$C_NET_NRL_ADJPCB$L_CLASS_QUANTPCB$Q_BUFOBJ_LISTPCB$S_BUFOBJ_LIST"PR$M_ASTEN_ENBL_ERMS$_KEY_MISMATCH TPA64$Q_TOKENDESCTPA64$S_TOKENDESC(UCB$S_MB_EXTENSION@PCB$L_SUPER_COUNTERPCB$L_CAPABILITY_SEQUCB$PS_START_AFF_QBLUCB$PS_START_AFF_QFL UCB$S_TT_DEVSTS_FILLUCB$V_TT_DEVSTS_FILLhCRB$PS_CTRLR_SHUTDOWN KTB$M_CLASS_SCHEDULEDKTB$M_QUANTUM_RESCHED<KTB$M_SINGLE_THREADEDKTB$S_SINGLE_THREADEDKTB$V_CLASS_SCHEDULEDKTB$V_QUANTUM_RESCHEDKTB$V_SINGLE_THREADED DVI$_SHDW_MERGE_COPYING LFIB$W_FILE_DATASEQ_INCR#DYN$C_FILES_64_THD_GL_DATAPR$_ESPPR$_SSPPR$_USPRMS$_ATRRMS$_CCRRMS$_CUR̄RMS$_DIRrRMS$_DNRRMS$_IDRRMS$_NXRRMS$_RERRMS$_SHRRMS$_STRlRMS$_TMRRMS$_VERRMS$_WER` DYN$C_SCSh DYN$C_VWS0 PR$_ASTEN/ DT$_ZT_DSWd IRP$L_BCNT IRP$L_KAST  =DVI$_ERRCNT DVI$_REFCNT IRP$M_DOPMS IRP$V_DOPMS PR$M_PS_IPL PR$S_PS_IPL PR$S_SID_PL PR$V_PS_IPL PR$V_SID_PL SS$_EXDEPTH SS$_HPARITHx SS$_RMTPATH$ DVI$_SECTORS DVI$_TT_DRCS DYN$C_MPWMAP$ DYN$C_PFLMAP DYN$C_PRCMAP DYN$C_SWPMAPl IRP$L_RWCPTR KTB$M_ASTPEN KTB$M_DELPEN KTB$M_INQUAN KTB$M_RESPEN KTB$M_SUSPEN KTB$V_ASTPEN KTB$V_DELPEN KTB$V_INQUAN KTB$V_RESPEN KTB$V_SUSPEN RMS$_RUNDOWN SB$L_PBCONNX& SS$_IVREGFLGl SS$_IVSECFLG| SS$_IVSTSFLG! SS$_NOSHRIMG# SS$_OPINPROG STS$S_STSDEF DVI$_TT_LOWER IO$K_LOOPTEST IO$K_SRRUNOUT IO$M_CTRLCAST IO$M_CTRLYAST IO$M_LOOP_EXT IO$M_NOFORMAT IO$M_NORSWAIT IO$M_RD_COUNT@ IO$M_REDIRECT IO$M_TT_ABORT IO$V_CTRLCAST IO$V_CTRLYAST IO$V_LOOP_EXT IO$V_NOFORMAT IO$V_NORSWAIT IO$V_RD_COUNT IO$V_REDIRECT IO$V_TT_ABORT SS$_BUFFEROVF# SS$_PWDNOTDIF SS$_RESULTOVF# SS$_SYSVERDIF| UCB$L_ENB_INT UCB$L_INTCDDT UCB$L_MAXBCNT UCB$L_PREVDDT UCB$M_NOCNVRT UCB$V_NOCNVRTATR$B_STRUCLEVDPT$M_DUSHADOWDPT$V_DUSHADOWDYN$C_SCS_RBUN$EMB$W_DV_ENTRY$EMB$W_HD_ENTRY$EMB$W_TS_ENTRYIRP$L_SHD_TEMPKTB$M_WINDFALLKTB$V_WINDFALL PR$_SID_TYP9CITRMS$_DTFCFGFILRMS$_DTFDEFFIL,RMS$_DTFQUAVALRMS$_DTFREGFIL RMS$_DTFTRATBL$&SS$_ACA_ACTIVESS$_DEVOFFLINE #SS$_INVLICENSE4(SS$_NODIAGNOSE SS$_NOMORENODE SS$_NOSUCHFILESS$_NOSUCHNODESS$_PARTESCAPEt#SS$_WRONGSTATEXUCB$B_DEVCLASSUCB$B_PI_FLAGSUCB$M_TU_1DENSUCB$V_TU_1DENS%DT$_SCSI_XTENDRDVI$_TT_HALFDUPDYN$C_NSA_ALARMdEMB$L_DV_ERTMAXSS$_AFR_ENABLEDSS$_ALRDYCLOSED$SS$_BRANCHENDEDl%SS$_DRVNOTVALID SS$_EXIT_UNWIND SS$_GOTO_UNWINDX SS$_ILLUSRLBLRDYSS$_NOTMODIFIED SS$_OBJLOCKHELDSS$_SUBDISABLEDJSS$_UNSUPPORTED SS$_VALNOTVALIDpUCB$L_DU_VOLSER$UCB$L_MB_LOGADRUCB$L_NI_HWAPTRUCB$L_NI_MLTPTR&SS$_NOT64DEVFUNCDYN$C_CD_SHDW_WRKDYN$C_CWPS_CANWAKDYN$C_CWPS_SCHDWK!DYN$C_NET_TSK_NTKEMB$B_HD_XSID_REVEMB$W_HD_XSID_RSV/FIB$B_RU_FACILITYFIB$M_ALIAS_ENTRYFIB$V_ALIAS_ENTRY*NAM$R_DID_OVERLAY$NAM$R_FID_OVERLAY4NAM$R_FNB_OVERLAYNAM$R_NOP_OVERLAY0NAM$R_WCC_OVERLAYUCB$M_EXFUNC_SUPPUCB$V_EXFUNC_SUPPkDPT$IB_INAME_CLASS(IO$_TTY_PORT_BUFIOPCB$K_MAX_KT_COUNTPCB$L_ST_ACK_COUNTPR$M_ASTEN_PRSRV_EPR$M_ASTSR_PRSRV_E'SS$_NOT_PROCESS_VATPA64$Q_STRINGDESCTPA64$S_STRINGDESCDVI$_ALT_HOST_AVAILDYN$C_NET_OSITP_OSIPCB$L_THREAD_EVENTS8PCB$L_KERNEL_COUNTER DYN$C_NET_NODE_DATABASE"PDYN$C_NET_SCL_USER_CRPROCfDVI$_MBXRMS$_ACSRMS$_BESRMS$_BKSRMS$_ESSRMS$_JNSԅRMS$_MRSȁRMS$_PES$RMS$_POSRMS$_RSSDRMS$_SNS RMS$_SYSRMS$_TNS DYN$C_CST DYN$C_DPT DYN$C_NET DYN$C_RVT SS$_BREAK UCB$M_BSY UCB$V_BSY DT$_SHRMBXl DYN$C_CWPS IO$_DUPLEX PR$M_ASTEN PR$S_ASTEN PR$V_ASTEN IO$M_CVTLOW@  =IO$M_SHADOW IO$V_CVTLOW IO$V_SHADOW IRP$L_ABCNT IRP$L_OBCNT PR$M_PS_VMM PR$V_PS_VMM RMS$_OK_DUPY RMS$_OK_NOP DVI$_TT_EDITP IRP$Q_STATUS IRP$S_STATUS PR$M_IPL_IPL PR$S_IPL_IPL PR$V_IPL_IPL,( SS$_NODETACH\ UCB$B_LOCSRV] UCB$B_REMSRV DVI$C_ACP_HBS DVI$_DEVCLASS< DVI$_MAXFILES DVI$_TT_REGIS DYN$C_LC_MSCP DYN$C_UIS_OTP DYN$C_VWS_DOPp IRP$L_BD_ADDR IRP$L_WLE_PTR KTB$M_FORCPEN KTB$M_WAKEPEN KTB$V_FORCPEN KTB$V_WAKEPEN PR$M_MCES_MCK PR$V_MCES_MCK SS$_ARBTOOBIG# SS$_ARCHIVING& SS$_ILLRELPAG SS$_MTLBLLONG SS$_NOMOREREG SS$_NOSUCHPAG SS$_ORBTOOBIG|" SS$_OVRMAXARG( SS$_UNWINDINGDT$_DECW_INPUT.DVI$_VOLNUMBERDYN$C_SHRBUFIO#EMB$B_DV_HDRSZ#EMB$B_TS_HDRSZIO$M_CLR_COUNT@IO$M_IN@ SAFETY013.A  &[EVERHART.JTDEMO]JTDMNNTV2.OBJ_VAX62;1L>~TERRUPT@IO$M_NOCTSWAITIO$M_NODSRWAIT@IO$M_POSIXINITIO$M_SETENQCNT IO$V_CLR_COUNTIO$V_INTERRUPTIO$V_NOCTSWAITIO$V_NODSRWAITIO$V_POSIXINIT IO$V_SETENQCNTIO$_READPRESET7IO$_READPROMPTPCB$L_AFFINITYUCB$B_LMERTCNTUCB$L_CMPL_INTtUCB$L_INIT_PDTUCB$L_MB_R_AST UCB$L_MB_W_ASTUCB$M_DISMOUNTUCB$M_SNAPSHOTdUCB$R_TMV_BCNTUCB$S_TMV_BCNTUCB$V_DISMOUNTUCB$V_SNAPSHOTUCB$W_LMERRCNTXUCB$W_MSCPUNITvUCB$W_RWAITCNTEMB$M_EM_MEMORYEMB$V_EM_MEMORY@IO$M_AUTXOF_DISIO$M_FMODIFIERSIO$M_MSCPMODIFS IO$M_TT_PROCESS IO$S_FMODIFIERSIO$V_AUTXOF_DISIO$V_FMODIFIERSIO$V_MSCPMODIFS IO$V_TT_PROCESS(KTB$L_BIAS_CELLPCB$B_PGFLINDEXPR$_XSID_CV_9CI4RMS$_ERRREADCOLdRMS$_NOTSAMEJNLSS$_BADFILENAMErSS$_BADFILESIZEhSS$_DUPFILENAME SS$_ENDOFVOLUMESS$_INVCOMPTYPE )SS$_NODOWNGRADEC SS$_NOTHINGDONE SS$_PAGNOTWRITESS$_RSDM_ACTIVE SS$_UNREACHABLE#SS$_WRONGACMODEUUCB$B_INI_FLAGSUCB$K_ERRDGBYTS@UCB$K_LMPKTBYTS^UCB$W_CYLINDERSIO$_AS_SENSECHARIO$_PSXSENSECHARIO$_STOP_MONITOR$KTB$L_ASTQBL_SPK KTB$L_ASTQFL_SPKSS$_DRV_NOUNLOADP SS$_ITEMNOTFOUND SS$_NOMORETHREADL&SS$_NOSUCHTHREAD2SS$_OBJNOTLOCKED,SS$_USERDISABLEDPTPA64$S_TPA64DEFzUCB$B_TU_SOFTERRUCB$M_MSCP_FLOVR UCB$V_MSCP_FLOVRDVI$_TT_LOCALECHOBATR$C_VOLUME_FLAGSATR$S_VOLUME_FLAGSDYN$C_NET_EMAA_IVKDYN$C_NET_MOP_WORKIRP$M_END_PAST_HWM0IRP$Q_ACB64_ASTPRMIRP$S_ACB64_ASTPRMIRP$V_END_PAST_HWMUCB$M_MSCP_WAITBMP UCB$V_MSCP_WAITBMP DVI$_DISPLAY_DEVNAMSS$_PERSONANONGRATAIRP$L_SHD_EXPEL_MASKKTB$M_DELETE_PENDINGKTB$V_DELETE_PENDINGDYN$C_F64_F64VPI_PATHIATR$C_FILE_SYSTEM_INFOATR$S_FILE_SYSTEM_INFO DYN$C_OBSOLETE_ENS_SIG UCB$L_MB_READERWAITQBLUCB$L_MB_READERWAITQFLUCB$L_MB_WRITERWAITQBLUCB$L_MB_WRITERWAITQFL KTB$M_SHELVING_RESERVED KTB$V_SHELVING_RESERVED \UCB$R_DEVDEPEND_Q_BLOCK UCB$S_DEVDEPEND_Q_BLOCK"DVI$_SHDW_CATCHUP_COPYINGZRMS$_ACTRMS$_ENT"RMS$_EXTLRMS$_NETLRMS$_RATRMS$_RSTe DYN$C_CLU KTB$L_STS KTB$M_RES KTB$V_RES2 PR$_TBIAP! SS$_IVACLc DYN$C_INIT8 DYN$C_RSHT  =DYN$C_SCDT DYN$C_SPDT DYN$C_STDT6 IO$_MODIFY: RMS$_NEXDR2 RMS$_TOWDR SS$_MCHECK SS$_RELINK DT$_TEK401X DYN$C_C710S PR$S_SID_SN PR$V_SID_SN< UCB$L_EXMBX DYN$C_PRCSTRD RMS$_BUG_DAPl( SS$_NOALTPRI DVI$C_ACP_NET8 DVI$_MOUNTCNT6 DVI$_TRANSCNT0 DVI$_VOLCOUNT IRP$M_SYNCSTS IRP$V_SYNCSTS PR$M_SIRR_LVL PR$S_SIRR_LVL PR$V_SIRR_LVL  RMS$_CONTROLO\' SS$_NOEXTAUTH STS$K_WARNING UCB$M_BAD_REV UCB$V_BAD_REV#DT$_GENERIC_DUDT$_GENERIC_TUDVI$_ALLOCLASS(DVI$_CYLINDERSDYN$C_VWS_CLIPIO$M_BREAKTHRU IO$V_BREAKTHRUIRP$W_DUTUCNTRRMS$_DTFQUASYNSS$_FILNOTCNTGDSS$_INSFMAPREG SS$_SHARTOOBIG4%SS$_SSAMISSINGSTS$M_CUST_DEFSTS$V_CUST_DEFDT$_DECW_OUTPUTDVI$_TT_PRINTER@IO$M_LT_CONNECTIO$M_READERWAITIO$M_TT_CONNECT@IO$M_TYPEAHDCNTIO$M_WRITERWAITIO$V_LT_CONNECT IO$V_READERWAIT IO$V_TT_CONNECTIO$V_TYPEAHDCNT IO$V_WRITERWAITUCB$L_INTERRUPTUCB$L_PI_SCRIPTUCB$L_POKE_PORTUCB$L_UNMAP_PDTUCB$M_MFQE_LOSTUCB$PS_TOUTROUTUCB$V_MFQE_LOST0UCB$W_MSGBYTCNTtUCB$W_TU_FORMATIO$M_SET_TERMIOS IO$V_SET_TERMIOSPCB$A_CURRENT_TX<RMS$_ERRWRITECOL$SS$_CURTIDCHANGEd"SS$_INSSWAPSPACE~UCB$B_DU_RCTCPYSUCB$L_RELEASE_PSZUCB$W_UNIT_FLAGSDVI$_TT_MODHANGUP|DYN$C_FILE_SYSTEM)DYN$C_NET_TIM_NTMDYN$C_UIS_OFF_MEMDYN$C_UIS_VSL_MEMIO$_START_MONITORIRP$M_CACHE_PAGIOIRP$V_CACHE_PAGIO$SS$_BRANCHSTARTED4&SS$_NOMULTITHREAD SS$_TARGET_UNWINDtSB$PS_ALLOCLS_LISTATR$M_FILE_CONTENTSATR$S_FILE_CONTENTSATR$V_FILE_CONTENTSUCB$M_MSCP_MNTVERIPUCB$V_MSCP_MNTVERIP$PCB$L_PSX_FORK_STATUS!dUCB$R_DEVDEPEND2_Q_BLOCK!UCB$S_DEVDEPEND2_Q_BLOCK"DYN$C_FILES_64_LCK_HANDLE"FIB$C_FLUSH_FILE_CONTENTS$DYN$C_FILES_64_THD_STACKDSCPR$_IPIRPR$_PRBRPR$_SIRRPR$_SISRRMS$_NRURMS$_RVU XAB$B_BKZ: SS$_BADACL0 SS$_CANCEL+ SS$_IVPOOL SS$_MBFULL SS$_MEDOFL SS$_NORMAL\ SS$_SSFAILJ DYN$C_QVAST@ IO$M_BINARY IO$V_BINARY IO$_DISPLAY| KTB$L_OWNER KTB$M_HIBER KTB$M_INTER KTB$V_HIBER KTB$V_INTER SS$_INHCHMKz SS$_PWDWEAK\ SS$_WRITLCK TPA$L_PARAM DYN$C_KFERES DYN$C_LC_CLS DYN$C_LC_SCS PR$M_FEN_FEN PR$V_FEN_FEND UCB$L_DELMBX UCB$L_ERTMAX` UCB$L_LSINDX UCB$M_DELMBX UCB$M_PRMMBX UCB$PS_CRCTX UCB$V_DELMBX UCB$V_PRMMBX UCB$W_MSGMAX DYN$C_SCS_DIR DYN$C_VWS_CUR DYN$C_VWS_SCRj RMS$_OPNOTSUP  SS$_BUFBYTALIDVI$_TT_DECCRTDVI$_TT_INSERTDVI$_TT_SCRIPTPR$C_PS_KERNELSS$_ACEIDMATCHt'SS$_ERRMAPAUTHSS$_IDMISMATCH<%SS$_SSANOTAUTH,DVI$_DFS_ACCESS*DVI$_FREEBLOCKSDYN$C_LAVC_COMPIRP$M_PIO_ERRORIRP$V_PIO_ERROR3 SS$_CPUSTOPPINGSS$_MRES_NOTREG)SS$_MRES_REGBIG,SS$_NOTASSUMING SS$_PAGNOTINREGDVI$_SHDW_MASTER DVI$_SHDW_MEMBERIO$M_LT_MAP_PORTIO$M_LT_READPORT@IO$M_MSCP_FORMAT IO$V_LT_MAP_PORTIO$V_LT_READPORTIO$V_MSCP_FORMATP =PCB$L_CAPABILITYUCB$L_PI_EXP_INTUCB$L_PI_RL_STATUCB$L_SOFTERRCNT XAB$R_RDT_FIELDSDYN$C_CWPS_TERMINaDYN$C_NET_LAN_LANIO$_STOP_ANALYSIS<&SS$_MTHREADACTIVE,(SS$_NOIMPERSONATEUCB$IL_PK_EXFLAGSUCB$M_TT_NOLOGINSUCB$V_TT_NOLOGINSIO$M_LT_MAP_FILLER IO$M_LT_MAP_NETADRIO$M_WRITE_BARRIERIO$V_LT_MAP_FILLERIO$V_LT_MAP_NETADRIO$V_WRITE_BARRIER; SS$_NOTALLCANCELEDzSS$_NOTFULLYMAPPED0ATR$C_BUFFER_OFFSETATR$S_BUFFER_OFFSET&DVI$_TT_MULTISESSIONIRP$M_START_PAST_HWMIRP$V_START_PAST_HWMLPCB$A_FREWSLE_CALLOUTPCB$M_DISABLE_PREEMPTPCB$V_DISABLE_PREEMPT*DVI$_SET_HOST_TERMINAL!UCB$L_MB_NOREADERWAITQBL!UCB$L_MB_NOREADERWAITQFL!UCB$L_MB_NOWRITERWAITQBL!UCB$L_MB_NOWRITERWAITQFL"KTB$M_SCHED_CONTEXT_SAVED"KTB$V_SCHED_CONTEXT_SAVED"\RMS$_BUG_FLUSH_JNL_FAILED%ATR$C_CACHE_POLICY_WRITEBACK $$T1&PR$_MCES:PR$_TBISĄRMS$_DEV$RMS$_ENV,RMS$_PLVRMS$_PRVRMS$_RMVRMS$_RRV|#SS$_VETO1 PR$_ASTSR  SS$_ALIGN SS$_EOTINi DYN$C_DSRVs DYN$C_TSRV\ RMS$_REENT KTB$L_FLAGS\ RMS$_DELJNS RMS$_NETBTS SS$_ACLFULL` SS$_DIRFULL SS$_GPTFULL SS$_GSDFULL SS$_INSFWSLb SS$_LOGFULL  SS$_PSTFULLD SS$_VASFULL4 SS$_VECFULL DYN$C_BRDCST DYN$C_CI_BDTu DYN$C_DECNET DYN$C_IPC_NT! DYN$C_MC_PDT DYN$C_PRCEVT DYN$C_VCC_HT PR$S_SID_ECO PR$V_SID_ECOz RMS$_EXT_ERR SS$_BADSTACK SS$_BUGCHECK  SS$_DEADLOCK( SS$_NOBUGCHK( SS$_NOSYSLCK TPA$M_ABBRFM TPA$V_ABBRFMX UCB$L_KEYCRY UCB$M_ALTBSY UCB$V_ALTBSY DYN$C_SCSICLS DYN$C_UIS_CMS DYN$C_UIS_RES IO$M_DSABLMBX IO$M_ENABLMBX IO$V_DSABLMBX IO$V_ENABLMBX4 KTB$L_SWP_SEQ PR$M_PTBR_PFN PR$M_SCBB_PFN PR$S_PTBR_PFN PR$S_SCBB_PFN PR$V_PTBR_PFN PR$V_SCBB_PFN& SS$_ILLBUFOBJ SS$_NOSUCHOBJIO$M_POSIXFLOWIO$V_POSIXFLOWIRP$M_FILL_BITIRP$V_FILL_BITIRP$W_TT_PRMPT@KTB$M_SOFTSUSPKTB$V_SOFTSUSPRMS$_DTFUNSTYP4CRB$PS_BUSARRAYDVI$_HOST_COUNTDVI$_TT_ANSICRT2DVI$_TT_CHARSETIRP$B_SHD_FLAGSCIRP$B_WLG_FLAGSIRP$L_ACB_FLAGSIRP$L_DUTUFLAGS%SS$_INSFCREDITHSTS$M_INHIB_MSGSTS$V_INHIB_MSG@UCB$M_WRTLOCKMVUCB$V_WRTLOCKMVvDYN$C_NET_NRL_TPKTB$M_BYTLM_LOANKTB$V_BYTLM_LOANPR$M_ASTSR_SET_K`UCB$W_TU_FORMENU IO$M_FLUSH_OUTPUTIO$M_LCL_SRC_UNIT IO$V_FLUSH_OUTPUTIO$V_LCL_SRC_UNITIO$_DEF_COMP_LISTPCB$M_TERM_NOTIFYPCB$Q_ST_KT_ARRAYPCB$S_ST_KT_ARRAYPCB$V_TERM_NOTIFYpUCB$L_TU_MAXWRCNTUCB$M_TU_TRACEACT(UCB$PS_MOUNT_LISTUCB$V_TU_TRACEACTIO$_START_ANALYSIS%SS$_SIG_INVARGTYPE{UCB$B_TU_SOFTFLAGSUCB$PS_IO_COUNTERSSS$_AFR_NOT_ENABLEDj,SS$_RESERVEDMEMUSEDSS$_UNALIGN_SP_LOADUCB$L_JT_HOST_DESCRLATR$C_CACHING_OPTIONSATR$M_FILE_ATTRIBUTESATR$S_CACHING_OPTIONSATR$S_FILE_ATTRIBUTESATR$V_FILE_ATTRIBUTES.NAM$R_DID_RVN_OVERLAY(NAM$R_FID_RVN_OVERLAYPCB$K_SCHED_POLICY_CNT PCB$W_CLASS_EXTRA_TICKS$FIB$C_FLUSH_FILE_ATTRIBUTES $$T2RMS$_ATW+ DYN$C_MBX$ =v DYN$C_PSXg DYN$C_DECW PR$M_ASTSR PR$S_ASTSR PR$V_ASTSR< SS$_IVCHAN) SS$_NOTRAN KTB$L_QUANTą RMS$_DTFCVT RMS$_OK_ACTa RMS$_OK_WAT SS$_DUPLNAM* SS$_EXASTLM * SS$_EXBIOLM* SS$_EXBYTLM* SS$_EXDIOLMD* SS$_EXENQLM$* SS$_EXFILLM4* SS$_EXPRCLM<* SS$_EXTQELM: SS$_ILLRSDM$ SS$_INSFMEM( SS$_NOSHMEM DYN$C_MP_CPU KTB$M_DISAWS KTB$M_PHDRES KTB$V_DISAWS KTB$V_PHDRES SS$_ACPVAFULd' SS$_AUTHFAILd SS$_IVQUOTALZ SS$_LOGSTALL SS$_MBTOOSML( SS$_NOCMKRNL SS$_NODEVAVL SS$_NONLOCAL( SS$_NOPRMGBL SS$_NOSIGNAL( SS$_NOSYSGBLt SS$_PROTOCOL SS$_RESIGNAL# SS$_RMALRDCL_ UCB$B_VERTSZ DYN$C_CI_FQDT DYN$C_LM_LMHT DYN$C_SCS_CDT DYN$C_SCS_PDT DYN$C_SCS_RDT DYN$C_UIS_FNT DYN$C_UIS_VDT DYN$C_VCC_CPT IO$M_INHRETRY IO$V_INHRETRY IRP$M_FORCEMV IRP$V_FORCEMV KTB$M_RECOVER KTB$V_RECOVER RMS$_DDTM_ERRL SS$_CHANINTLK\ SS$_DATACHECK,$ SS$_INCONOLCK SS$_INTERLOCK SS$_NOHOMEBLK SS$_QIO_CROCKH TPA64$Q_PARAM TPA64$S_PARAMDT$_GENERIC_RXDYN$C_LAVC_BUSDYN$C_UIS_VCMSIO$M_SET_POSIXIO$V_SET_POSIXPR$M_ASTEN_EENPR$M_ASTEN_KENPR$M_ASTEN_SENPR$M_ASTEN_UENPR$V_ASTEN_EENPR$V_ASTEN_KENPR$V_ASTEN_SENPR$V_ASTEN_UENPR$_SID_TYP8NNPR$_XSID_N8NNNUCB$B_LMERTMAXDVI$_TT_PASTHRUDYN$C_UIS_ERRORIRP$M_SRV_ABORTIRP$S_ACB64_ASTIRP$V_SRV_ABORTDVI$M_NOREDIRECTDVI$V_NOREDIRECTDVI$_TT_EIGHTBITDVI$_TT_NOBRDCSTKTB$K_SCHED_FIFOUCB$L_FORMAT_REV DYN$C_IPC_IPC_ACP\DYN$C_NET_NSP_LSP[DYN$C_NET_NSP_NSP]DYN$C_NET_NSP_RSPDYN$C_UIS_SL_TEMPPR$M_ASTEN_ENBL_K%SS$_SIG_INVFLTARGHPCB$L_SCHED_POLICY\UCB$W_LCL_MSCPUNIT^UCB$W_SRV_MSCPUNITDYN$C_NET_MOP_ENPINIRP$M_CCB_LOOKED_UPIRP$V_CCB_LOOKED_UPPCB$S_EPID_NODE_IDXPCB$V_EPID_NODE_IDX%SS$_SIG_INVFUNCTYPEt%SS$_SLICING_DISABLEDDYN$C_NET_EMAA_ERTTBLCATR$C_ESCAPE_SEQUENCES ATR$S_ESCAPE_SEQUENCES!DPT$K_IOGEN_REQ_STEP2VER!UCB$S_DUALPATH_EXTENSION!UCB$S_DUDRIVER_EXTENSION!pUCB$S_MSCP_UCB_EXTENSION!UCB$S_TUDRIVER_EXTENSIONRMS$_FEX\RMS$_IDXlRMS$_IMXRMS$_LEXRMS$_REX SS$_ACCVIO SS$_LENVIO DVI$_RECSIZ( VDV_BUF_SIZ IRP$M_COMPLX IRP$V_COMPLXh KTB$L_ASTACT KTB$L_MTXCNT KTB$L_TQUANT KTB$M_ERDACT KTB$M_NOACNT@ KTB$M_PWRAST KTB$V_ERDACT KTB$V_NOACNT KTB$V_PWRASTD RMS$_SUPPORT SS$_BADPARAM SS$_EXCPUTIMD SS$_IVDEVNAML SS$_IVGSDNAMT SS$_IVLOGNAMT% SS$_IVNODNAM( SS$_NOGRPNAM SS$_NOLOGNAMd( SS$_NOPSWAPMd# SS$_NOSUCHRM( SS$_NOSYSNAM  SS$_NOTMPNAM DVI$C_ACP_UCX KTB$M_SSFEXCS KTB$V_SSFEXCS  RMS$_NOVALPRS SS$_FDT_COMPL# SS$_HWM_STALL% SS$_ILLPRIPOL SS$_LCKPAGFUL SS$_LKWSETFULS SS$_NOPATHTBL) SS$_NOREADALL! SS$_NOREGAVIL* SS$_NOSUCHVOL SS$_NOTSHRTBL SS$_OPINCOMPL" SS$_PGMLDFAILd SS$_POWERFAIL SS$_REGISFULL SS$_SECTBLFUL DYN$C_CLU_CSDTDYN$C_IPC_IPSTDYN$C_IPC_LIST  =DYN$C_PSX_SIDTKTB$K_SCHED_RRRMS$_DTFSESTERjRMS$_INCOMPSHRSS$_FILENUMCHKSS$_FILESEQCHK SS$_NOMORELOCKSS$_NOSHMBLOCKTPA64$M_ABBRFMTPA64$V_ABBRFMPUCB$L_AFFINITYDYN$C_VWS_REGIS<DVI$_TT_CS_HANYUDYN$C_CLU_LCKDIR DYN$C_NET_CTF_TRIRP$M_PIO_FANOUT(IRP$PQ_ACB64_AST`IRP$PS_BUFIO_PKTIRP$V_PIO_FANOUT DYN$C_NET_CTF_REQ@UCB$M_MSCP_IGNSRVUCB$V_MSCP_IGNSRVIO$M_PREFERRED_CPUIO$V_PREFERRED_CPUPR$M_ASTEN_PRSRV_KPR$M_ASTSR_PRSRV@ SAFETY013.A  &[EVERHART.JTDEMO]JTDMNNTV2.OBJ_VAX62;1N$_K4'SS$_OFFSET_TOO_BIGUCB$L_PI_DAT_SCRIPTUCB$L_PI_INI_SCRIPTUCB$L_PI_TGT_SCRIPTDYN$C_NET_MOP_CPRPINDYN$C_NET_MOP_DPRPINDYN$C_NET_MOP_MRCPINDYN$C_NET_MOP_VCRPINEMB$C_HD_REV_HICKORYEMB$K_HD_REV_HICKORYPCB$A_CURRENT_VERTEX"0UCB$S_SCSI_PORT_EXTENSION = 44= ADVDD4=.& v & ; J.B .W   -B N)u u=qi=$ARG04$ARG15$ARG26$ARG37$ARG48$ARG59$ARG6C. .=  4=  = M = U = 4X4= CHKACE4==54 @u u=qi=$ARG04$ARG15$ARG26$ARG37$ARG48$ARG59$ARG6_. .=  4=  = I = F = 44= NLBASH4=*"! @u u=qi=$ARG04$ARG15$ARG26$ARG37$ARG48$ARG59$ARG6. .=  4=  =   =  Rx x= 44= NLFIX4= (u u=qi=$ARG04$ARG15$ARG26$ARG37$ARG48$ARG59$ARG6. .=  4=  = ` = `RL L= 44= BASHUCB4= @ )  6   _ a A W W=SK$ARG0$ARG1 $ARG2($ARG30$ARG4. .=  4=  = C =  = 4p4= RTNAST4=KCB $@ u u=qi=$ARG04$ARG15$ARG26$ARG37$ARG48$ARG59$ARG6C. .=  4=  = 0D = 0 = 44= ENDEXT4=C;: !@ ! u u=qi=$ARG04$ARG15$ARG26$ARG37$ARG48$ARG59$ARG6_. .=  4=  =  = M = 44= ENDDEL4==54 &!@ )!u u=qi=$ARG04$ARG15$ARG26$ARG37$ARG48$ARG59$ARG6_. .=  4=  = pY = pR = 044= ENDCRE04=A98 D!@ G!u u=qi=$ARG04$ARG15$ARG26$ARG37$ARG48$ARG59$ARG6I. .=  04=  = T = Y =  4 4= XITHDL 4=910 h!@u u=qi=$ARG04$ARG15$ARG26$ARG37$ARG48$ARG59$ARG6@. .=   4=  =  =  = "4`4= REDACL"4=% !@ !H H=D<=$ARG04$ARG15$ARG26$ARG3. .=  "4=  =  =  = #44= GETACE#4=80/ ! =$ARG0$ARG1$ARG2$ARG3 $ARG4$$ARG5($ARG6,$ARG70$ARG8T. .=  #4=  = PA = P$v v=  &44= GTPRV &4= !,u u=qi$ARG0 $ARG1$ARG2$ARG3$ARG4$ARG5 $ARG6. .=   &4=  = S = U{ {= &44= GTKPRV&4= !(T9 9=5-=$ARG04$ARG15$ARG2. .=  &4=  = p = p w w=  '4@4= SWPUIC '4= !,$9 9=5-=$ARG04$ARG15$ARG2O. .=   '4=  = R = x x= '4p4= KSWPU'4= ! 9 9=5-=$ARG04$ARG15$ARG2_. .=  '4=  = `N = ` = (44= SJUCB(4=0(' !4 " 9 9=5-=$ARG04$ARG15$ARG2. .=  (4=  = S = Iu u=  )44= MYMODE )4= " $u u=qi=$ARG04$ARG15$ARG26$ARG37$ARG48$ARG59$ARG6D. .=   )4=  = @ = @| |= `)44= JGTPRVS`)4= "09 9=5-=$ARG04$ARG15$ARG2_. .=  `)4=  =  =  = *44= KGTPRVS*4= )"49 9=5-=$ARG04$ARG15$ARG2I. .=  *4=  = H = _ = *44= VBSET*4=  7"@9 9=5-=$ARG04$ARG15$ARG2O. .=  *4=  = R = Cw w= p+484= INHDELp+4= D"4u u=qi=$ARG04$ARG15$ARG26$ARG37$ARG48$ARG59$ARG6T. .=  p+4=  =  = Bw w= +4X4= ALWDEL+4= I"4Hu u=qi=$ARG04$ARG15$ARG26$ARG37$ARG48$ARG59$ARG6E. .=  +4=  = V = , = p,4x4= FIXFIDp,4=?76 N"@ T" R" f f=bZ$ARG0$ARG1$ARG2 $ARG3($ARG40$ARG5. .=  p,4=  = S = _ =  | *[EVERHART.JTDEMO]JTDOLOG.EXE;5+, . / 4 - 0123 KPWO 56Z70E89GHJ0D`0205㺇x hJTDOLOG01 㺇05-13  ?E!d FORRTL_001! LIBRTL_001,EZ$PFID,passwd>(), P|P` <l $$<&<(D(DD*<<*<$<D 48hpP|[ k(,040 XtPRPˈPVPRVPVQRQ,QB` P˜P\\PN\QQ˨ˬ˨߫ zw\PR,RL P˸{P\\P\QQ0߫\PR,RL PP߫Ǐ \ˏ Rʏ\x\\\R8:\<>E8w?<diVPS,SF` P`P\SP#P\,Oa P`P\\(`,\0kVVQQRVSLHDRS\\T\UELRTRREL\ឫPLX\|P[}PQPмRPR RQPQSSTDTT RPSPP|h[}PQмR޼ P`޼QaSR1STDT`UTUU`aVTVVaUU`VVaRS@@8pHx    @FORRTLLIBRTLRECORDPASSWORDSRECORDPASSWORDS[  IVLEN IVLEN C GETPV 0 GETPVZ *[EVERHART.JTDEMO]JTDOLOG.EXE_A;3+, ./ 4- 0123 KPWO56࠿3%73%89GHJ h(!$0@ ,O_!$JTDOLOG A11-14$ $ $  $  $J $( 8 DEC$FORRTL_0014 LIBRTL_0014& LIBOTS_001@]|ESYS$PUBLIC_VECTORS_0010 0 FID,passwd>p 0 8 0P ` @,8 (P )6M76EZ$\\76\7@ SAFETY013.A   [EVERHART.JTDEMO]JTDOLOG.EXE_A;3ORD5;1P`#0{&~ "P^GX^G`~Ghpx޴>cG3G#!>H H0@030"03 HB4GG"DHLbPBZk$0bP _&8 R"0bXc <}@]""0B8"Bs"D=@="bR"GXcZk8B4GGGxB"IZk0@8B4GGGB"IZk0@0 C B!@!1 @ GGGTBGGCZk@BGwBZk4G8BGGhB"uIZk0@0"&# HB81@$@8K8 PbQ"H]"GB"8}"GG RZkGB!@GGGTBGGCZkG@BNBZk8B4GGGhB"LIZk 0@0)# HB!1 A!!H@8=X"H]"ؠGPbB"8}"GGQZkBG! @GGGTBGGCZk@BG'BZk4GG_81B@0QB9,@G9H4qB$@ q.@0BGqJGdB`:-0BG:I$A 7B@0B9.G9J$B 0BV"_G0bHB8K@G8"H"PbB"8}"GGQZkH0BG)!I@ ""I8]G @b"I&vH ?E)!IpSJ)@0"&vH a HpB")!0DH=&D)"8}"GzZkXB)!8="`b""8]"tG|ZkGB&@GGGTBGG?CZkG@BAZk 4GG!1@a@G/1q@q@KC$Q@d@ 0 A.GGJB. 0 AGJB @`@ 0 A.GJB 0 A"G8B4GGGB"HZk0@@ @D<BGC"GAZk4G@BG}AZk4G G_91 Ay@G.1q Aq@JB Q A`@0@.GJGB.0@GJB ) Ai@0@:,G:H$@ 0@"G8B4GGGB"SHZk0@@ @ GG0C0"$vH0B?%0b@0"81"8"<}R"s"@ӰGɠ "i$"d@BDɰ0¤dDbGipB" @ݴ88}"H"GyZkXB)!8="`b""8]"tG+|Zk4GG_@B0A'-GG'I0A ED8B8]"4GQAZk@PAB/GGPAKBGG88]"4GBAZk@BpA,GGHpADD8AB8]"4G2AZk@BG,G`@HADDD8B8]"4G"AZk#!?&B"8ݲ?$<! @=Dݰ8"b@="GGGGs^Zk"B4GbVIZkGcP]4GX]`}hpxݤ=#kG14G!q B !B2 21 B&`% GB0@B.0@0@0@J31@BBB%.G0@J4Q@BBB.G @J5q@BBB.G2@BJ @B B0@4,0@B @21@B4H$@ GkGk14GG GBҢx/vBWBxKBBҲ0BҲ0B0B B0BkTXp` P@0 @ DEC$FORRTL@LIBRTL@LIBOTS@SYS$PUBLIC_VECTORS2RECORDPASSWORDSDEC Fortran V6.2-508RECORDPASSWORDS            = b a d a a b a %0  ' * ' ' ' * * . . ' b a b d a a b a =! b a b d a a b a = E H I G H I I O O O O O P O O O O O M M M @    IVLEN a ] a a b a b a b a a a a a a  g   GETPV ; s l t t u s  ( x 00 R*[EVERHART.JTDEMO]JTDOLOG.OBJ;75+, . / 4 $- 0123 KPWO56IȂ7 $w89GHJ :RECORDPASSWORDS0115-Sep-1996 16:15DEC Fortran V6.1-68RECORDPASSWORDSP,EZ$RECORDPASSWORDSPFID,passwd>(), <PP|P` <l LIB$GET_FOREIGN@ $$<&<(D(DD*<<*<$<D 48hpP|[ k(,040 SYS$GETJPIWXLIB$GET_FOREIGNt LIB$INDEXPRPˈ LIB$INDEXPVPRVPVQRQ,QB` P˜ LIB$INDEXP\\P\QQ˨ˬ˨ FOR$READ_IF߫  FOR$IO_L_R FOR$IO_END\PR,RL P˸ LIB$INDEXP\\P\QQ FOR$READ_IF߫ FOR$IO_L_R FOR$IO_END\PR,RL PIVLENP FOR$READ_IF߫ FOR$IO_L_R FOR$IO_ENDǏ \ˏ Rʏ\x\\\R8:\<> FOR$WRITE_IF8 FOR$IO_L_R?< FOR$IO_W_R FOR$IO_END LIB$INDEXVPS,SF` P`IVLENP\ LIB$INDEXPP\,Oa P`IVLENP\\(`,\0GETPVkVVQQRVSLHD FOR$WRITE_IFR FOR$IO_L_VS FOR$IO_L_V FOR$IO_END\\T\UELRTRREL\ឫPLX\LIB$SET_LOGICALFOR$EXITP |RECORDPASSWORDS SYS$GETJPIWLIB$SYS_TRNLOGLIB$SET_LOGICALLIB$GET_FOREIGN LIB$INDEXIVLENGETPVFOR$EXIT$CODE,$PDATA$LOCAL FOR$IO_END FOR$IO_W_R FOR$IO_L_R FOR$IO_L_V FOR$READ_IF FOR$WRITE_IF6^PqP|PPP$P#)Pg[ 0IVLEN0115-Sep-1996 16:15DEC Fortran V6.1-68 IVLEN IVLENYPP[}PQPмRPRRQPQSSTDTT RPSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C0GETPV0115-Sep-1996 16:15DEC Fortran V6.1-68 GETPV GETPVpPPP|[}PQмR޼ P`޼QaSRSTDT`UTUU`aVTVVaUU`VVaRSH |GETPVZ$CODE$PDATA $LOCAL'P1HPPPZ!*[EVERHART.JTDEMO]JTDOLOG.OBJ_A;16+, ./ 4- 0123KPWO56Sy7@yy89GHJHHRECORDPASSWORDS 6-NOV-1996 21:52  Digital Fortran 77 T7.1-61p p$DATA$@$BSS$0$IODATA$ix $CODE$x$LINK$0JRECORDPASSWORDS SYS$GETJPIWLIB$GET_FOREIGN(JIVLEN(J GETPVLIB$SET_LOGICAL DFOR$EXIT DFOR$WRITE_INT_FMT DFOR$HANDLER DFOR$WRITE_INT_FMT_XMIT DFOR$READ_INT_FMTLIB$SYS_TRNLOG DFOR$SET_REENTRANCY OTS$INDEX OTS$MOVEMOTS$FILLOTS$MOVEP P=806M76EZ$\\76\7 = x P#"X^4Gh[~`^h~px޴>cG#$Gp{@Zk0b$xB 3"G1?Jb34GGG "GGDXe H L P@Zk?$&P! B s"2I@8=<}8"@}@="D]$E"(e"Gb@Zk8B4GGG`B"@Zk0@8B4GGGXB"@Zk0@B @ !@35 @GGx@G@ZkBG@Zk8B4GGGPB"@Zk0@=@ 0"B85@Q"@8"H]GHB"8}"GGb@Zk0"BGG!3@G@G@ZkBG@Zk8B4GGGPB"@Zk0@0"=@^B95@Q"@"8=GH]HB"8}"GGb@ZkBGG3@G@G@ZkBGG@ZkG@G7/55B@2UB7K@$C 5.&1 @:uB6B5J@$B .&Q @GJB.&q @! @JBG0$B 5"@&A8"H=GHB"8}"GGb@Zk0)E)v IB Hf1H&@G pSJba H "0D@)D8] "HݴGB"8}"G@ZkhB pb"8ݴx""8]"tG@ZkBGG3@Gd@G@ZkBG G@ZkG`@G.95@y@2u@Jr@B,81 AGH@5U@8Q Au@5.5J$B .8q A) AJB @G8B4GGGXB"@Zk0@ @:9 G@BGC"G@ZkB4GG@ZkG G_i@G.2u Ar@JGB 5 A`@71@,H@5U A7Q@u@) A5.5J$B .7q@$@JB?G8B4GGGXB"@Zk0@G C?$vH?%@0"C8<}8"ɰ)"I"i"@iɠd@BdDGii "D)!@}8$"H"GP=B"8}"G4GGb@Zk d@@,@B4@GHa@Dd@D8]"84G@Zk/0@@BKT@8G h@GG8a@8]"4G@Zk ,P@@B Ht@Fw@DG8h@8]"4G@Zk9,p@@B9H@D@?DG8=w@8]"4G@Zk@?&'B"C#C8ݲ8"<@="@GD}GGGb@ZkBb"4G@ZkcGX]`]h}pxݤ=4G#kGG14G3 6q B45 B BG#"BGx/75BB`BxKdC%`7/ 1B;UB7KB$C / QB9uB4BKBCy/ qB5ByKdC` vB qB BGy/0`B51B45ByKdC` qBGkGGG14GG GҢBx/xKvBWBBBҲ0BҲ0B0B B4Bk<G`DFOR$SET_REENTRANCY<Xb#DFOR$SET_REENTRANCY<\@`DFOR$SET_REENTRANCY4hG SYS$GETJPIW4b# SYS$GETJPIW4@ SYS$GETJPIW4G LIB$GET_FOREIGN4b#LIB$GET_FOREIGN4@ LIB$GET_FOREIGN4 G8 OTS$INDEX44@8 OTS$INDEX4<GX OTS$INDEX4T@X OTS$INDEX4 \G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4G OTS$INDEX4@ OTS$INDEX< GDFOR$READ_INT_FMT< b#DFOR$READ_INT_FMT< @DFOR$READ_INT_FMT4 G  OTS$MOVEM4 @  OTS$MOVEM4  G,OTS$FILL4 (@,OTS$FILL4,GD OTS$INDEX4@@D OTS$INDEX< TGDFOR$READ_INT_FMT< b#DFOR$READ_INT_FMT( ( < @DFOR$READ_INT_FMT4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL< LGDFOR$READ_INT_FMT< b#DFOR$READ_INT_FMT< @DFOR$READ_INT_FMT<GDFOR$WRITE_INT_FMT<b#DFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT<GDFOR$WRITE_INT_FMT_XMIT<b#DFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT4 G< OTS$MOVEM4 8@< OTS$MOVEM4 <GLOTS$FILL4 H@LOTS$FILL4G OTS$INDEX4@ OTS$INDEX4GOTS$MOVE4@OTS$MOVE4 G$OTS$FILL4  @$OTS$FILL4G OTS$INDEX4@ OTS$INDEX<$GDFOR$WRITE_INT_FMT<xb#DFOR$WRITE_INT_FMT<|@DFOR$WRITE_INT_FMT4GOTS$MOVE4@OTS$MOVE4G@ SAFETY013.A  ![EVERHART.JTDEMO]JTDOLOG.OBJ_A;16RD5;1POTS$MOVE4@OTS$MOVE4G,OTS$MOVE4(@,OTS$MOVE44GdOTS$MOVE4`@dOTS$MOVE4tGLIB$SET_LOGICAL4b#LIB$SET_LOGICAL4@LIB$SET_LOGICAL4G DFOR$EXIT4b# DFOR$EXIT4@ DFOR$EXIT =0 ;=0;=)0(DFOR$WRITE_INT_FMT_XMIT=P DFOR$EXIT=p LIB$GET_FOREIGN= FID,passwd> DFOR$WRITE_INT_FMT DFOR$READ_INT_FMT8 OTS$MOVEM8OTS$FILL;=0X;=H 7 DFOR$HANDLER=H;8 OTS$INDEX8OTS$MOVE=8 =, = (=(0 DFOR$SET_REENTRANCY SYS$GETJPIW LIB$SET_LOGICAL=8 h=8    #*[EVERHART.JTDEMO]JTDOLOG.OBJ_AXP6;5+, ./ 4j- 0123KPWO56m[z7 ([z89GHJ&HHRECORDPASSWORDS 12-SEP-1996 21:16DEC Fortran V6.2-508h h$DATA$ $BSS$0$IODATA$i\ $CODE$$LINK$0JxRECORDPASSWORDS SYS$GETJPIWLIB$GET_FOREIGN(J` IVLEN(Jxt GETPVLIB$SET_LOGICAL DFOR$EXIT DFOR$WRITE_INT_FMT DFOR$HANDLER DFOR$WRITE_INT_FMT_XMIT DFOR$READ_INT_FMTLIB$SYS_TRNLOG OTS$INDEX OTS$MOVEMOTS$FILL OTS$DIV_IOTS$MOVEP P=806M76EZ$\\76\7 =d \ #~P^X^`cG#GG0"0J`HF 0"Q2v^J`SH@FQ0 0"00" Q2_J Q0 !v>H 00"0B H0"D0H0"L0P4G0"xA4GGG0b0"GGBb@Zk0"&P"80BXR"<]& "@"Dݲ8"@="0BR"0bs"GBb@Zk0"G4G0X"B"B@Zk0@00"9 4GG4G0X"B"B@Zk0@00"9 4G0"!0 0@ 4G0"10B15B61 B0"0BXR"GTBGG@B@ZkGB@ZkG4G0"B"B@Zk0@00"99# 4GB"0"!!1 @0"!!H@8=0"H"?&1"8}"8GXB`b@Zk00"0G65B0"0BR"GTBGG@B@ZkGB@ZkG4G0"B"B@Zk0@00"99# 4GB"0"!!1 @0"!!H@8=0"H"?&1"8}"8GXB`b@Zk0G! @0"0BR"GTBGG@B@ZkGB@Zk""&P"8ݲ0#<8"TGHbV@0"B"00"1"0J@=80"H"?&1"8}"8GXB`b@Zk0?&Bb@Zk005vJ0¦0F00"90"!"0L!C0"10BR0bpS:_Kr@JRGpS0b{0p4vJ{S`KFp00¦p7JuJFp0t0vJtB"0"9#G0"p1"@=8=H="?&1"8}"8 "GBb@Zk""0t 8"8]"tGhBpb@ZkG4G0X"B"B@Zk0@00"9G!9@0X"0BXR"GTBGG@B@ZkGB@Zk""&P"8ݲ0X <8"TGHb@0"G4G0X"B"B@Zk0@00"9?C0"!0 0@!G 0X"0BYR"GxB@Zk4GGB@Zk""&P"8ݲ0X <8"TGHb@0"0?&0vJB80bXs"<}8"0"1"0BR"0bs"Gb@0pL0"00"1F0B0bs0tF0uB"0¦"G@ݶ80BZ#H]"?&1"8}"8$"GBb@Zk""0 8"8]"tGhBpb@Zk4G0"0B0"0BR21@B0brB.J00¦֢0F0ز0"991 C0BZ_G8]0"GB8]"4GxB@Zk00@0"0"&"8ݲ0"9#<=?&1"@=0bs"D}8"@="GGGGBb@Zk0""4GBb@Zk4GcGP]X]`p#kGGGGr.rJ*@R4GHݦHHH B!HH  B0@HݦLHL01BPB,H@ HݦH֢0BHHвH=H1 4B?GGGkHLGGk.V JFGGGGGGԢ4G0=P0]PR VB'@0}Ps31`BB3.3J0]T2pN0}TsB@@N0}TsSB@! a0`Ba@@ 0 B 0}Ps0`B0]Pr0P BGk4G SYS$GETJPIW4 b#x SYS$GETJPIW4@ SYS$GETJPIW4dGpLIB$GET_FOREIGN4hb#xLIB$GET_FOREIGN4l@pLIB$GET_FOREIGN4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4 HGP OTS$MOVEM4 L@P OTS$MOVEM4TG\OTS$FILL4X@\OTS$FILL4pGx OTS$INDEX4t@x OTS$INDEX< GDFOR$READ_INT_FMT< b#xDFOR$READ_INT_FMT< @DFOR$READ_INT_FMT4 0G8 OTS$MOVEM4 4@8 OTS$MOVEM 4<GDOTS$FILL4@@DOTS$FILL4XG` OTS$INDEX4\@` OTS$INDEX< GDFOR$READ_INT_FMT< b#xDFOR$READ_INT_FMT< @DFOR$READ_INT_FMT4 G OTS$MOVEM4  @ OTS$MOVEM4GOTS$FILL4@OTS$FILL< GDFOR$READ_INT_FMT< b#xDFOR$READ_INT_FMT< @DFOR$READ_INT_FMT4G OTS$DIV_I4b#x OTS$DIV_I4@ OTS$DIV_I<GDFOR$WRITE_INT_FMT<b#xDFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT< GDFOR$WRITE_INT_FMT_XMIT<b#xDFOR$WRITE_INT_FMT_XMIT< @DFOR$WRITE_INT_FMT_XMIT4G  OTS$INDEX4@  OTS$INDEX4 HGP OTS$MOVEM4 L@P OTS$MOVEM4TG\OTS$FILL4X@\OTS$FILL4G OTS$INDEX4@ OTS$INDEX4GOTS$MOVE4@OTS$MOVE4G OTS$FILL4@ OTS$FILL<G(DFOR$WRITE_INT_FMT< b#xDFOR$WRITE_INT_FMT<$@(DFOR$WRITE_INT_FMT< DGPDFOR$WRITE_INT_FMT_XMIT<Hb#xDFOR$WRITE_INT_FMT_XMIT< L@PDFOR$WRITE_INT_FMT_XMIT4GOTS$MOVE4@OTS$MOVE4X Gd LIB$SET_LOGICAL4\ b#xLIB$SET_LOGICAL4` @d LIB$SET_LOGICAL4t G DFOR$EXIT4x b#x DFOR$EXIT4| @ DFOR$EXIT  LIB$SET_LOGICAL=x; SYS$GETJPIW=(8=8 H=,P= X=8 `=Ph8OTS$FILL8 OTS$INDEX=0P;=p 7 DFOR$HANDLER= ;;8 OTS$MOVEM`; DFOR$READ_INT_FMT( DFOR$WRITE_INT_FMT_XMIT8OTS$MOVE DFOR$WRITE_INT_FMT LIB$GET_FOREIGN DFOR$EXIT= FID,passwd>@ OTS$DIV_I=)X= `= 0 ;== 0t ;=K K=;32RECORDPASSWORDSDEC Fortran V6.2-508 = 4x4=RECORDPASSWORDS4=  @ <  /ؼ J< M ܤ $ $= (4: :=  4=  =  4`4= IVLEN 4=3+* ] a g ]$ $=  4: := X 4=  = t 4x4= GETPVt 4=' l s$ $=  4: := P 4=  =   x#*[EVERHART.JTDEMO]JTDOLOG.OBJ_VAX5;7+, . / 4 &- 0123 KPWO56r7Ϸ89GHJ :RECORDPASSWORDS0117-Nov-1996 13:4017-Nov-1996 13:40VAX FORTRAN V5.9-173RECORDPASSWORDS3PPFID,passwd>(), ,EZ$RECORDPASSWORDS@ PP P d  @ p  LIB$GET_FOREIGN@$ ( @  @  H  H  H @  @ @ ( @ H $ 8 < l t P| [ k$(,00 SYS$GETJPIWXLIB$GET_FOREIGNt LIB$INDEXP\Pˈ LIB$INDEXPVP\VPVP\P,PL` P˜ LIB$INDEXP\\P\PP˨ˬ˨ FOR$READ_IF߫  FOR$IO_L_R FOR$IO_END\PP,PL P˸ LIB$INDEXP\\P\PP FOR$READ_IF߫ FOR$IO_L_R FOR$IO_END\PP,PL PIVLENP FOR$READ_IF߫ FOR$IO_L_R FOR$IO_ENDǏ Pˏ QʏPxPPPQ46P8: FOR$WRITE_IF4 FOR$IO_L_R?8 FOR$IO_W_R FOR$IO_END LIB$INDEXVPP,PF` P`IVLENPV LIB$INDEXPPV,Oa P`IVLENPVV(`,V0GETPVkPPVP\&LHD FOR$WRITE_IFV FOR$IO_L_V\ FOR$IO_L_V FOR$IO_END\\P\VFLQQPPFL\ឫPLX\LIB$SET_LOGICALFOR$EXITP |RECORDPASSWORDS SYS$GETJPIWLIB$SYS_TRNLOGLIB$SET_LOGICALLIB$GET_FOREIGN LIB$INDEXIVLENGETPVFOR$EXIT$CODE,$PDATA $LOCAL FOR$IO_END FOR$IO_W_R FOR$IO_L_R FOR$IO_L_V FOR$READ_IF FOR$WRITE_IF6^PqP|PPP$P#)Pj^ 0IVLEN0117-Nov-1996 13:4017-Nov-1996 13:40VAX FORTRAN V5.9-173 IVLEN IVLEN]PP[}PQPмPQռRQRSSTDTT PQSPPD IVLENG$CODE$PDATA$LOCAL P#9P?P# G0GETPV0117-Nov-1996 13:4017-Nov-1996 13:40VAX FORTRAN V5.9-173 GETPV GETPVlPPP [}PQԼ ԼмPQռQRBR SRS SRSռ ּ ռּPQH GETPVV$CODE$PDATA $LOCAL"P2EPMPV@ SAFETY013.A  $[EVERHART.JTDEMO]JTDOLOG.OBJ_VAX62;2 ($*[EVERHART.JTDEMO]JTDOLOG.OBJ_VAX62;2+, . / 4 ,- 0123KPWO56皇7@Kn}89GHJ :RECORDPASSWORDS0116-Sep-1996 10:39Digital Fortran V6.4-165RECORDPASSWORDSP,EZ$RECORDPASSWORDSPFID,passwd>(), <PP|P` <l LIB$GET_FOREIGN@ $$<&<(D(DD*<<*<$<D 48hpP|[ k(,040 SYS$GETJPIWXLIB$GET_FOREIGNt LIB$INDEXPRPˈ LIB$INDEXPVPRVPV\R\,\B` P˜ LIB$INDEXP\\P\RR˨ˬ˨ FOR$READ_IF߫  FOR$IO_L_R FOR$IO_END\PS,SL P˸ LIB$INDEXP\\P\RR FOR$READ_IF߫ FOR$IO_L_R FOR$IO_END\PS,SL PIVLENP FOR$READ_IF߫ FOR$IO_L_R FOR$IO_ENDǏ \ˏ Rʏ\x\\\R8:\<> FOR$WRITE_IF8 FOR$IO_L_R?< FOR$IO_W_R FOR$IO_END LIB$INDEXVPS,SF` P`IVLENP\ LIB$INDEXPP\,Oa P`IVLENP\\(`,\0GETPVkVVRVSLHD FOR$WRITE_IFR FOR$IO_L_VS FOR$IO_L_V FOR$IO_END\\T\UELRTRREL\ឫPLX\LIB$SET_LOGICALFOR$EXITP |RECORDPASSWORDS SYS$GETJPIWLIB$SYS_TRNLOGLIB$SET_LOGICALLIB$GET_FOREIGN LIB$INDEXIVLENGETPVFOR$EXIT$CODE,$PDATA$LOCAL FOR$IO_END FOR$IO_W_R FOR$IO_L_R FOR$IO_L_V FOR$READ_IF FOR$WRITE_IF6^PqP|PPP$P#)Pg[ 0IVLEN0116-Sep-1996 10:39Digital Fortran V6.4-165 IVLEN IVLENYPP[}PQPмPQPPRQRSSTDTT PQSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C0GETPV0116-Sep-1996 10:39Digital Fortran V6.4-165 GETPV GETPVpPPP|[}PQмP޼ Qa޼RbSPSTDTaUTUUabVTVVbUUaVVbPSH |GETPVZ$CODE$PDATA $LOCAL'P1HPPPZ!*[EVERHART.JTDEMO]JTDRIVER.BLURB;5+, ./ 4K- 0123 KPWO56m#27Z89GHJ$VMS Extended Access Control Facility byGeneral Cybernetic EngineeringExecutive Summary:IManaging access to data critical to your business using ACL facilities inKnative VMS can be cumbersome and still is vulnerable to intruders or people$acting in excess of their authority.JWant to be sure your critical records can't be accessed save at authorizedEplaces, times, and with the programs that are supposed to access them(instead of, say, COPY.EXE)?BWant to have protection against privileged users bypasssing access controls?5Want to be able to password protect individual files?BWant to be able to invisibly hide selected files from unauthorized intruders?KEACF builds in facilities permitting all of these, and is not vulnerable toIintruders who disable the AUDIT facility as all other commercial packages$which purport to monitor access are. Discussion:EWhen your business depends on critical files, or when you are obligedFby law or contract to maintain confidentiality of data on your system,Din most cases the options provided by VMS for securing this data can)be cumbersome and far too coarse-grained.DThe problem is that certain kinds of access to data are often needed=by people in a shop, but other access should be prevented andCaudited. Moreover, the wide system access that can come as a resultAof having system privileges often does not mean that it should beFused to browse or disclose data stored on the system. A system managerAwill in general not, for example, have any valid reason to browse>the customer contact file, the payroll database, or a contractBnegotiation file, save in a few cases where these files need to be@repaired or reloaded from backups. Likewise, a payroll clerk mayBneed read and write access to the payroll file, but not in generalBwith the COPY utility, nor from a modem, nor in most cases at 4AM.FFinally, a person who must have privileges to design a driver and testAit should ordinarily not have the run of the file system as well.FGiven examples like these, it is easy to see that simple authorizationDof user access to files is inadequate. While it is possible to buildCsystems that grant identifiers to attempt some extra control, theseHcan be circumvented by privilege, and create very long ACLs which becomeAimpossible to administer over a long period as users come and go.DWhat is needed is a mechanism that is secure, cannot be circumventedCby turning on privileges, and which provides a simple to administerBand fine grained control that lets you specify who can get at yourAcritical files, with what images, when, from where, and with whatFprivileges. It is also desirable to be able to control what privilegesCthe images ever see, and to be able to check critical command filesBor images for tampering before use, so that they cannot be used as@back doors to your system. It should be possible to demand extra=authentication for particular files as well, and to prevent aCmalicious user from even seeing a particularly critical file unlesshe can be permitted access.JAll these functions, and more, are supported by EACF, which when installedBacts as a part of the VMS file system to add a fine grained accessHcontrol which works in addition to the normal VMS protections. Access isDcontrolled when either OPEN or DELETE is attempted on a file, giving/protection both against access and destruction. Features:%EACF provides the following features:I* You can tag a file for maximum privileges, and EACF will deny access to@ the file to anyone with more privileges than are permitted. TheA default checks inhibit access via the READALL, BYPASS, or SYSPRVB privileges. These checks apply for open or delete, so can be used9 to prevent both disclosure and damage to valuable files.E* You can install a file with a privilege mask that replaces all user@ privilege masks when the file is open. This can be used to keep@ Trojan code from ever seeing privileges, even where you have noC source access to the code. (The max priv tag checks above apply to@ the process privileges before these mods are made, by the way.)< This is designed to make it possible to have more- or less-B privileged executables or command files. The ability to install a> file with fixed privileges gives the first active Trojan code inhibitor in the industry.H* EACF can grant identifiers to a process when a file is open and revoke, them automatically when it closes the file.E* EACF can reset the process' base priority when a particular file isC opened. This can be used with selected images to either ensure CPU7 access or to prevent some "denial of service" attacks. NOTE:C The tokens used to alter identifiers, privileges, or base priority> are protected by cryptographic authenticator tags so they can neither be forged nor moved.J* EACF can check file integrity (comparing a cryptographic checksum of theC file before it may be accessed) and refuse to allow the file to beB accessed if it has been tampered with. Any sort of file (not just+ executables) can be protected in this way.I* EACF can attach passwords to files. The passwords must be entered via a@ utility prior to file access, and are stored in memory in a wayC which depends on UIC as well as the file password and identity, soB that privileged users cannot simply copy the password information5 and use it for their own access from their accounts.H* EACF can check that the image being used to open (or delete) a file isC permitted and/or not forbidden. Thus, for example, a person can be= given access (from selected places and at selected times) to@ PAYROLL.DAT if using the PAYROLL.EXE application, but not using COPY.EXE.G* EACF can check access based on terminal location, time of day (to one> hour granularity), and user name. Access can be permitted orD denied based on any or all of these criteria. Each file has its own; security profile. A profile editor is part of the package,A permitting easy maintenance of all security related file profile information.G* EACF can "hide" files. If file access is to be denied, in addition toB generating security alarms, EACF can either deny access (for openB or delete) or it can invisibly open another file, so the user whoA is illicitly accessing a file can be made to see some other file@ instead of the one he is trying to access. (This can be used to@ hide SYSUAF.DAT, the real payroll file, or anything else deemed= important, without alerting an intruder. It can be vital for; gathering evidence of attempted tampering while protecting the real files from danger.)G* A backup account can be set up to allow file access, and can be, like7 other accounts, permitted read-only access if desired.HBest of all, EACF does not depend on the audit facility, which intrudersHgenerally disable. It prevents file access before it happens, instead ofImerely attempting to stop a process or force an image exit after the fileJis open and damage possibly already done. It can generate security alerts,Hbut even if the audit facility is disabled, EACF remains functional. TheKsecurity profiles EACF maintains are simple to administer or extend and canIbe readily understood. The protection is kernel-based and can be selected7per disk and per file via simple configuration options.EACF is brought to you by8General Cybernetic Engineering, Glenn C. Everhart, Pres.25 Sleigh Ride Rd.Glen Mills PA 19342-1440 610 358 5875Everhart@Arisia.GCE.Com *[EVERHART.JTDEMO]JTDRIVER.DOC;12+, . / 4 - 0123 KPWO56`Ĉ17@bĘ89GHJ JT driver -Ctricks driver. Intercepts i/o and does things with help of daemons.,Control flags in ucb$l_ctlflgs work by bits./ 1 - Allows access filtering. Used to recognize) files to move, check security on, etc. 2 - Examine modify 8 - CBT setup on create (only)/ 16 - Look at create function (does CBT setting and possible space control) 32 - CBT on create or modify1 64 - Send del dmn msg only if filenum stored, if set. Otherwise send always. 128 - If set allow delete daemon to control deletion: 65792 - If either bit set (65536 + 256), look at deaccess (close) 512 - Space control ok if set5 1024 - If set, check for FIDs with rvn bit 8 set and) high filenum bit 8 set and lets access filtering be done.; 2048 - Prevent opens if device is privately owned on files5 save by volume owner. Blocks access EVEN if privs.0 4096 - Allow size control only if aldef bit set3 16384 - Set aldef bit always to use default alloc.3 32768 - Pretend we see an ACE on ALL files on disk: 65792 - If either bit set (65536 + 256), look at deaccess (close)4 262144 - If set, examine only files with filenum in- kernel list (instead of looking for ACL on all).Daemons exist for:Bopen - gets control on io$_access if my ACE is there or if filenum5 is in knl list in ucb. Handles file moving and much security, softlinks, etc.?extend - gets control on extend & create if disk has too little4 free space left and request is < 1/8 of disk size.Edelete - gets control on delete operations. Can copy files to scratch8 area. Should also check security and disable operation! if security checks so indicate.GCurrently all daemons live in JTDMN.EXE as one. The open daemon can runCa script that will move files. It is expected this script will callDthe get-space script if space must be obtained. There is no separateEspace check in file moving, since DCL can readily determine if enoughHfree space exists for the file in question and the size needed is passedas a parameter.!$! set up logicals JT suite needs$pra$nm=f$device("*VDB*")!$if (nm .nes. "") then goto gotvd,$sysgen connect vdb0:/noada/driver=vdbdriver,$sysgen connect vdb1:/noada/driver=vdbdriver$set comm sys$system:asnvdm6)$asnv/assign vdb0: dc2:[zzdisks]test2.dsk)$asnv/assign vdb1: dc2:[zzdisks]test1.dsk$mou/sys vdb0: test2$mou/sys vdb1: test1$gotvd:$ass/sys vdb1:[junk] jtd$db$! command processes live here:#$! filrst.com file fid1 fid2 filsiz$! makspc.com diskname nblks$ass/sys vdb1:[junk] gcy$cm$ass/sys n gce$delsav/$jta*uthmaint:==$usr$root:[everhart]jtauthmaint$xjta:=="$usr$root:[everhart]jtauthmaint dka700:[y.everhart]junk.junk\ I+KS12U+<*>VPTY+$!jtau dka700:[y.everhart]junk.junk\ I+KS12U+<*>VPTY+N$! ctl mode: 1-open, 1024 = bogus fid chk, 40000x=look at files in driver onlyG$! 65792=chk close, 128=delete control, 16=create exam, 8=cbt on create@$! 32=cbt set, 512=space ctl, 2=chk modfify?, 16384=aldef-only, $! 4096=always ctl size$set comm sys$system:jtdmn$jtdo:==jtdmn/fcnmsk:66435$dp!*[EVERHART.JTDEMO]JTDRIVER.OBJ;156+, .$/ 4$- 0123 KPWO 56'R>7 V@I89GHJ5JTDRIVERV01H17-JAN-1997 20:39 VAX MACRO V5.4-3MACRO JTDRIVER*;skeleton driver implementing ucb linkagJTDRIVER ACP$ACCESS ACP$DEACCESS ACP$MODIFY ACP$MOUNT ACP$READBLK ACP$WRITEBLKCTL$GL_CCBBASE CTL$GL_PCB CTL$GL_PHDCTL$GQ_PROCPRIV DSC$K_DTYPE_T EXE$ABORTIOEXE$ALONONPAGEDEXE$ALONPAGVAREXE$DEANONPAGEDEXE$DEANONPGDSIZ EXE$FINISHIOCEXE$GQ_RIGHTSLISTEXE$LCLDSKVALID EXE$ONEPA@ SAFETY013.A  ![EVERHART.JTDEMO]JTDRIVER.OBJ;156$<RMEXE$QIO EXE$QIORETURN EXE$SENSEMODE EXE$SETCHAR EXE$WRITECHKEXE$WRTMAILBOX EXE$ZEROPARMINI$BRK IOC$MNTVER IOC$REQCOM IOC$RETURN IOC$SEARCHDEV JT$DDT JT$DPT (JT_INT ( JT_UNSOLNTMMG$GL_TBI_FLAGS MMG$TBIA_FULL SCH$GL_MAXPIX SCH$GL_PCBVEC SCH$IOLOCKW SCH$IOUNLOCKSCH$QAST SMP$ACQUIRE SMP$ACQUIREL SMP$AL_IPLVEC SMP$GL_FLAGS SMP$RELEASE SMP$RELEASEL SYS$CLREF SYS$SETEF SYS$WAITFR . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP$$$105_PROLOGUE2PPQB*4&d884&4&,JTDRIVERQQQF11 4<@LNQP@Rr |\A&4&hF&4& 4&HPB* $$$115_DRIVERPu(4 IOC$RETURNd4 IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$MNTVER2 IOC$RETURN$& IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN4(GCEVflagLL|@y#|43f(43||43u#43!434343 43@43'43'o43 ACP$READBLK2 ACP$WRITEBLK2 ACP$ACCESS2 ACP$DEACCESS2` ACP$MODIFY2 ACP$MOUNT2EXE$LCLDSKVALID2 EXE$ZEROPARM2@ EXE$ONEPARM2 EXE$SENSEMODE2 EXE$SETCHAR2'o43%&GCEV|PTXPPXXЎPPXЎPZ[ŜZ[~ P SMP$GL_FLAGS SMP$ACQUIRE SMP$AL_IPLVEC@Ѫ[#p[ SMP$GL_FLAGS P SMP$RELEASEڎ[PЎ[ЎZѪHЪZ[̓ Ф|Q0<<ӏ@@<((ӻ!ZP1aUPU1OѤ`1DѤ`ŀ19Ѥ`1.Ѥ`D1#Ѥ`H1Ѥ`L1 Ѥ`P1 1ӏlPРP  @ 1զ1Z&ժ9 SCH$GL_MAXPIXW SCH$GL_PCBVECVGfXX`W1 ЎP!ЏxQEXE$ALONPAGVARP?,bxb?ܢtR[[bPР,QQЁЁ ЁЁDDJTDRIVERV02A13-JAN-1997 21:33AMAC V3.0-23  . ABS . . BLANK . $ABS$ $$$110_DATA $$$105_PROLOGUE \z $$$115_DRIVER $$$115_LINKAGE0  DRIVER$DPT( JT$DPT( JT$DDT IOC$RETURN_SUCCESSIOC_STD$MNTVER IOC$RETURN IOC$RETURN_UNSUPPORTED EXE_STD$INSERT_IRP0  DRIVER$FDT EXE$ILLIOFUNC SMP$GL_FLAGS SMP$AL_IPLVEC SMP$ACQUIRE SMP$RELEASE SCH$GL_PCBVECEXE_STD$ABORTIO SCH$GL_MAXPIXEXE$ALONPAGVAR SMP$ACQUIREL EXE$DEANONPGDSIZ SMP$RELEASEL CTL$GL_PHD CTL$GA_CCB_TABLE CTL$GL_PCB(PMS$GL_KERNEL_DISPATCH_VECTORSYS$QIO SYS$SETEFCTL$GQ_PROCPRIV SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCK SYS$WAITFR SYS$CLREF EXE_STD$FINISHIOEXE$WRTMAILBOX EXE_STD$WRITECHKIOC_STD$REQCOMSCH$QASTEXE$ALONONPAGED EXE$GQ_RIGHTSLISTEXE$DEANONPAGEDLNM$SEARCH_ONE SCH$POSTEF OTS$MOVEMOTS$ZEROOTS$MOVE OTS$CALL_PROC OTS$DIV_I(J`%FDTLOP(J &FDTXIT(J&FDTBXT(J0bVCSTP150JPt GRANT_REVOKEX X = x4=`44>IOC$RETURN_SUCCESS4>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS=>IOC_STD$MNTVER> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN_UNSUPPORTED> IOC$RETURN_UNSUPPORTED=> IOC$RETURN>IOC$RETURN_SUCCESS=>EXE_STD$INSERT_IRP=04 4=( GCEVflagL|> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC4 44P44> EXE$ILLIOFUNC> EXE$ILLIOFUNC4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC= %&GCEV =0(,4 4=4= JTDRIVERX= 4=  =>C~^^~ (0޴8GC1'CF1#CWpJ"&&&GCYp KC:9'&H"LƲ|SJX&C?G:GX&4GDXƢw1 KVRJFXƲ\GX0KG\GD\FvSKG_G\G\FGD\WRJF\沀&?G:G&G^~ (0ޤ8CkGG>C~^^~ (0޴8GC(C [?' Fx9#C&CCG^~ (0ޤ8Ck>C^^~ G>CEmGG-GGpH$0M>C8m@ZkCʢ0B($j!M: >C M(mpH@ZkC/CGGFGGC^~CkGͦGGV@FʢGG0B*'x#08CJ_ GGG>C~^^ ~(08޴@HP>X^`~hpx޵GGCCcCCp`Kp`GGn#L@G^ ~(08ޤ@HP>X^`~hpxޥCk$0A_HGJ?GvJLŢ&BFHJGJ`GvJ_>C;A __Cpn#C@GdCHH%0 Gpn#C @ӺP.S/JV KFC4CGpn#C @Ӫ8E/;/dEKY KYGC4zC@.Ce/J\ eKFC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/%/e#KZ ;KGC4B.e/J\ eKFC4C&y K'K45 CH.K/#JV KFCF  / K0G4JJ .4@JF4JJchGF_>C~^ >ްPE-S/ >EI~Y K YE C@@IנV@ޠ 4\A hD^4zCC{ޠ >^~.Cx5C(4Cm>C"H/d%#KE/K[ EKGCG<Ţd,g. HX J<DC4B `NCGhnCCCCG@ZkHE/'K/EKY KCYGC[G->C ~^> ,@7H(_ he,kE/eH[ EK{DC`??#9DCwJ Dw Hb@@ D>.^ ~JJ@Cpn# @Ӿ>CL#,(>$~ ^>ް ~^L%/O.8KW J7GCCJ>Cp0N ~^>>C<8n! HC>@Zk>C4>C NG HG ~^>GG@Zk>^? ~0NCLE>C8nh@ZkC>ChEG H NG ~^>GG@Zk>^ ~C>^ ~ChעOPN>CXn4@ZkC>Cn#@C >CNn>>C4 @Zk>C 0N>C8n>p? >C@Zk>C6hn[@@N>CHn4@ZkCTGGG^G,G~pn# ޠ> ^$~(>0C CCT @>^ ~COGGGFGGG>CAl_! C N@IG ~^>GG@Zk>p_#^ ~C4B>C° C~^L% D@H"@HCA@C^~C +? E G0N8n>CB @ZkC NC4+>Cn@ZkCÔG>C NG H ~G^>GG@Zk^>C ~GC$KⳑP EP ""GhNGGP @ ^~ ޠ> ^$~C@@`@@@@@@ @@@`>C@$~ C ^ >ް ~^t#d+dX : @N>CHn4@ZkCTGGGGCG@GYG@G@CG@Y C@CJ*+ E K/taAZYK K?t @*/*K@D+TAA */ J/8KW XK7GH+ /AAK~N>CL  !HG:4K#G) +p)++#t風8!G08XN ~^>@Zk ~+!>^C#6AG>CNIG ~G^>@Zk_#>^ ~CF =0.(X+ EX.J6`7JGJ4wCX /Gv+KX KG/`X ?>C`k# ~^>`+ \k EX , HNHGG@Zk>^ ~C +?#HG Gᢁ'0CD[G&0CGxn C$K>C&["&,ACK" 0A E CCC>C C~G* # >C EG" ʲ,IAK _E >C C E CI`kC`>CXK#^G>C.^~>C>$ >CCC޲>C.TG~G^GGGΦG>C#GL~G4@8><^@~DHP^~^T~X^~^`^\~ ~(^Nn@ZkCTGGG~GCG$K>C0n#r@CCTGGG>CGGX>C;A_CEhnC[@>CPNٔHXn>4>C@ZkXH CCHG>CH<Hˢ|4Bn#`@4 @ Kn#A@NC4+d+n@Zkh.C>C@NהH4>CHn@ZkVH CCHFTGGGGGC C(>^~ ޠ> ^$~,>CCN>CnG>4G@Zk>GC   tGGGGI@/@KPG4JJ .4@JF4JJ>C)G(>C^Pn#~ ޠ> ^$~ C,>C>Cd ~@CTGGG~>CG,~G(^G$>;A ް ~^>>CX_C<h>CC|l`>CXnڔH^>CPN4@ZkYH CCH G>Cn#@4 @C >Cn#C@NC4+nC>C@ZkChCע@N>CHn4@ZkCTGGGGG>^ ~ޠ $>(^,~CZÀGGFGGðn#x@4 @"0N C8n@? @ZkN C@?"GG@ZkN@#4 G*G4+Gd+GnC@ZkGGGFGGûGC^C~ ޠ> ^$~C CC>>>C ~^> ްC~>C^>pn#G>^ ~ޠ $>(^,~C@Ӷ/V K6D .X J8Gv*/Z 7KG~Y/V KFY. +KW JFY>>C^^~ (޴08@>H^P~X Gm# _C Cm#@CC^~ (ޤ08@>H^P~XCkGGG>C^^~ (0޴8@H>P^X~` Gh>C- hA>HK0XC AA*-*I 4@A >C^~ (0ޤ8@H>P^X~`hCk05 A0U A0u AJ/G,>C@KAJKDk 4@A(GK /HIY K @ADCCw@0@Cͦt0 A! @A>C*@KCDk @ACAc@CJj AA0@0#@ M pt?E0`C3 ,>C*/A@K HZ *KDk @AD*,C.CC*HX J @A8DC5@J,j/Cj,JH\ jK @AjH*/\DCZ *K0@zDC @A0#@GG2BAGG>CGm#@Cp?E0ՀC?E0@Cn*-*I IAf..VJWJ>>_*-*I IA[GGXD\C"DDR&CC">C8DD&CCl"6D wHC>C @"@C]%,]"6H,BY">>! H#@!C>Y%,7H#CC!CG 0 @6J?>$@!C>C!CG 0 @6J?$@CCCk^%/\ 6KC^^~ (0޴8@H>P^X~` Gh>CpM,~(^$> ް ~^>Hk:0yC iA*-*I 4@A >^ ~ޠ $>(^,~C^~ (0ޤ8@H>P^X~`hCk05 A0U A0u A J/,JK 4@AH /(GKIY K @ADC0 A ,/*, HV K @A*HJ/J,DC[ JK @AJH /;Dj,CY K @AjH.YDC =W J @AwDC0 A ,J/*, H[ JK @A*H /DJ,CY K @AJH.j,9DCW J @AjHj/WDC\ jK @A|DCè0 A*-C*I$ IAGJ GvJ0A CA).)J 05 B k#|Gr0 At*-*I IAl< M m0C< @Zk>CC.>C(MCJ0m4A\KGCYP K9'"C\pK'> ~@Zk~ >CA|'91 C|' |&4 A|0B|Hk$# 20/)/ AKZ ;KG.J*(/vJY(K6G*(?TAE H/Z[K*` H?A "E/K&@\KvGuJG%@A?#EH/XK#ZXK;GwKWG"H?8M@m@Zki/\ vKFG / JX KG ? (/Y ;K (?/Y KyG JX KG?.W J7G KV JF>GG>C^^~ (޴08@>H^P~X G>C`Hm>[<@0M>C8m4@ZkC>Cm#b@C C+>Cm#*Y@C-aH C M>C(m4@ZkCTGGG>C^~ (ޤ08@>H^P~XCkGGGFGG>Cm#@MC4+mC>C@ZkCG>C^^~ GGGGJGG@  MG(m4G@ZkMmG4G@ZkJ_CJ@ TG>CMm ~^>G@Zk>^ ~C^~CkGG>C~^ ^(~08@޴HPX>`^h~px GGwHAAD/KK?4C0MG8mG@ZkGG>C~^ ^(~08@޴HPX>`^h~px GG4GA;@G ^(~08@ޤHPX>`^h~pxCkGGG>C~^ ^(~08@޴HPX>`^h~px GGGA@G ^(~08@ޤHPX>`^h~pxCkGGG>C^ GGMCmC#TG@ZkCkGGG>C~^^ ~(08޴@HP>X^`~hp Gx޵G>CC C@ SAFETY013.A  "[EVERHART.JTDEMO]JTDRIVER.OBJ_A;43uU> CCPm#f_CAC@G^ ~(08ޤ@HP>X^`~hpxޥCkdC'He#|GDP%4YC84CĢ@4BdE4zC$47CĢe4BD4XCƢvJJ45B C>CAh@4EACM>C^>Cd C>CciCPm#I# )  (â >>CF ް_C5 3@Z'@mCMCCC>CGG4C@Zkޠ C >CTGGG^C&GGF|ɢ61B|ɲ4G||J0@C|JC  qAC{@kޠGGC >CMC>CmTG#@ZkCY>C^^~ (0޴8@H>P~X G>Cm# >~ @C[` C>C-taAktd^ +/8KY8K@KPGvXK6G +? K@J:1@CJ@taA .JWJKG{KF > K@ 81C ^C ˢIJkxͦd +1pKtD ˢIJ8kF0zC8K>CA^m@^Gm#1 @0 @C +>Cm#! @MC4+mC>C@ZkC>C^~ (0ޤ8@H>P~XCk>C^^~ (0޴8@H>P~X G>Cm# > @C#P C-ktd KD hM ˢѲkq+p$t KD8 0C8K>CA^@^C>C^~ (0ޤ8@H>P~XCk>C^^~ (޴08@>H^P~X G>C-> hAHK0XC AA*-*I 4@A >C^~ (ޤ08@>H^P~XCk05 A0U A0u A J/,JK 4@AH /(GKY KIDC @A0 A ,/*, HV K @A*HJ/DJ,C[ JK @AJH /j,;DCY K @AjH.YDCW J @AwDC0 A- /= ,J/@K H[ JKDk @AD*,C /CC*HY K @A9DJ,/Cj,CJHV K @AjHJ/VDC[ JK @A{DC GG2BAGG>CGxm#@C0 A*-*I IA0 A*-*I IA}G>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`CA@G^ ~(08ޤ@HP>X^`~hpxޥCkG#_#:GGJGvJ>Cm# _CAC@dCPHŢFPe/S%/eKZ %KzGC4C8.;/JV KFC4C@E/C/dEKY KYGC4zC.E/#J[ \KFC4B./$JV KFC47C%/#.d8KW J7GC4yCE//EKY KYGC4CƢvJJ45B?'OH.KE/J[ EKFC0FGFE>C`m#(~$> ް ~>C^> v @C(>Ct@^ .JWJKG{KF > @@ 81C t@ /K\KJFyJG ?@ @@ʢ61Bʲ^C<`9`>^ ~ޠ $>(~CHE/K/EKY KYGCPGTF?>C~^ >ް@E-C/ >EIV K~ VE C3@Ϡ@I[@ޠ,H4ZA)(^48C#C/>^ ~ޠ $>(~(CCMGC4GCmC#TG@ZkâFòޠGG >^~C^~G@pD @B11 B`GGG,>C G ~^ C>pn ,@:H~@he,?#k. 0`A^ ~C/DE-D#GE/\I[ \K [E C=@*"G:| 8$6>C ͦ ްϠ\@ @e/C%/eKZ %KzGC4xC'1@C.@.V JWJC>@>ޠ CD@>CA ް>C ~@~ C ޠC4u@~^C^ C|>^ ~CCMCGGmCCC@ZkB/Y K9D~>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`C`m# @G^ ~(08ޤ@HP>X^`~hpxޥCkGJ@GvJ?>C0m# /_CGPm#C@dCHGP.Se/J\ eKFC4B8%/;.D%KX J8GC4YC@/CE/ĢK[ EKGC4B/"/$KV KGC48C%/.d%KX J8GC4yCe//E#ĢzKY KyGC4B/E/K[ EKGC4BxKK45CH.K/JV KFCF?>CGGG@pD @B11 B@GG.GGGG@pD @B11 BGG G@.JOFH%/K.%KX J8GC$G/@KE`pG .@JCWJTFyKFB>GCH.#K/JV KFCF_>CGGG@pD @B11 B@GGGCLG"H/KE/K[ EKGCGQ4GCC`m#@ӄ@/[ \KF /Z ;KG@/[ \KF KZ \KYG@?G>C^ GA@CkGG>C^޴ (>0^8 G>Cm#^G > Cް>C/_C!CC@ZGAmCMC>CGG4C@Zk ޠC >^Cޤ (>0^8CkGMGޠCCC >C^CmG@Zk>C~^^ ~(08޴@HP>X^`~hp-mCx޵GCCCCCG`m#_G^ ~(08ޤ@HP>X^`~hpxޥCkGf_'Z#{`KgK45`C#:GGJGvJ>C0m# _CPm#C]_dCĢP4B8E/;/dEKY KYGC4zC@.Ce/J\ eK `?=FC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/%/e#KZ ;KGC4B.e/J\ eKFC4C&y K'K45 C>C~^ >ް8E-;. >EIX J~ XE C@ͦ@I֠\@ޠ h4[A^H$4YCCH/K.ޠKW JGC >^PG~C$He/K%/#eKZ %KzGC|G@>CBGGG@pD @B11 BFG6G3/@KcG4>CGGG@pD @B11 B@GGGGGG@pD @B11 BGG|G@.JDF|y`m#C_ `m#C_u>Cd%#(~$^ >ް ~^>dE-g.YIX J XE CD@ CDJA@TJB=)Cw`K4IA8<E-<E#?/ CZIY K YE C/@F,|ʢ*$(>CPm ްՠZ@ 8%/;.Ȣ%KX J8GC46C'1@;e/8/[ eK;e?\K8?ޠ CD8E@>Cpm#@C>^~ ޠ >$^(~CG`m#C0_ӕH%/K.%KX J8GC$GD/@K`pG>H.K/@#JV KFCF @/@XKZXK!G|xK\G@?`e/d"c/eKY K[eKYG:1@CwEKX KwG EKGc?`e?@Dd.ge/`E/Jc/\ vKZEKFCyJX KYG J@Gc?`E?.J`VJTGxJF`>>C@ް ~^.J0F\Z XDȠV%/.>C# M8KW J>G7G>C ^(mG(~@Zk/GE/0@K[ EK>GC> ^4@(~C,/HY KDC./"JV KFC4@Fd-de#g%/IZ ;KECDTCwJ4@C4@He/K%/#eKZ %KzGC|G.@J3F^~ ޠC?/V KGGB@/[ \KFF52 /Z ;KG<.W J7GG xKV JF>G /Z ;KGi JY ;K8G ?i@/[ \KFr`/\ vKFG>C^^~ (0޴8@H>P^X~` GhGMm@Zk^~ (0ޤ8@H>P^X~`hCk>CG G ~G^$K>-I=H??? ?(?0?8?@?H?P?X?`?h?p?x-Ix=^> ~ CCGt>CG(~TG$^ >ް ~^>bd8  "@A @K! @ + @ A @Kt  K+k - $ (˰,0 4+ 8 I<K @ IDKH+L DPK$T+8 4X ,! H\L`>CM Cm~G<C>C@Zk~_' CC%m?%$:GFGGFGGG/kG4G&`M>Cm@ZkCKG4G@Mm>C@ZkCGt `MChmG>C@Zk>^ ~C ޠ >$^(~C2TGGGĢGGFIJ>C^~ Ge#4G+0C0u BkMGm4G@Zk8M@mCG@Zk4G~CkGG>C^^~ (0޴8@H>P^X~` GhHG`^~ (0ޤ8@H>P^X~`hCkhM? pm@Zk>CG G ~G^$K>4G-I=?85C?? ?(?%CH??-I=^> ~GCt>Cpb C(~G$^tG >ް ~^>bd8  "@A @K! @ + @ A @Kt  K+k $ (˰,0 4+ 8 I<K M@ )x+ D T!AHK )/ -8KZ I!A:GL+)/8KP+WTK$X+\ 8 4A`K,! H!d+Lh<ˢ#+>C,~(^$> ް ~^>C@| 0@ JpA@MHGG@Zk>^ ~ޠ $>(^,~C>CM Cm~  8O=DC>C@Zk~ CC%-'?%FFGGGGGG/+G) xMm>C4G@ZkC G M>Cm4G@ZkC4G>Ct (MC0m? @Zk>^ ~C ޠ >$^(~CTGGGGGDIGD -Z I:G`G>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCC4G;A_G^ ~(08ޤ@HP>X^`~hpxޥCkG>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCcCC`K HgG4KDhMGpmGCCCCG@ZkG^ ~(08ޤ@HP>X^`~hpxޥCkG#>CG(MG0mGGGG>C@ZkCNd#G>CP,~(^$> ް ~^>@+4U@)50 C5@% 6BŲMm@Zk0 ~GhMC  >G^CޠCC $>(^,~pmC@Zk>^ ~ޠ $>(^,~ChMCpmCCCCG@Zk45@ Ce4{AA@ ~TGM4G>G^CCޠ $>(^,~Cm#@ZkdA@GGG>C^^~ (0޴8@H>P^X~` Gh^~ (0ޤ8@H>P^X~`hCk>C4G(~$^G >Gް >C ~^>>C8-GG pHPM>CXm@ZkC/CK"4 CtHI @i8+ 0CJ?'x9#0YC# 4GŲE>CMGG"PB@ZkCM>C(*!GG%GG~^ >%!Gް>C( ~^G> H@Zk> A^ AA ~ !A GC>C *0(B0'B)+1`A A @A#ޠ C >^~C(ﳆ"벆8ͦ >C@M >CHmpH@ZkC/CGGF>G^~ ޠ >$^(~CB0-GGY@FGGhTGGGG>C^^~ (^0~8 G>CC>8%>CEm !CGG>C GٔH>GpH=0M8m>C@ZkCVHCHFj0kC9*'x#08CJ_ͦ>C۔H M~>C(mpH@ZkZH CCH@GCGGF>C^~ (^0~8CkGGGW@FGG* G*+J0A@$ M#( ĢGSCFIJ0"@ C$?òç `>Cd~ ^CD!#0@A곝GCGG>C~^^ (޴08G4GCCCC4GG^ (ޤ08CkGG>C~^ ^(~08@H GGC( #X%G-'@#?G:GX%4G{1J>CX4G-CM\0K# ͦGXE4Ų ~^><>CMm! HC >@Zk >CC>CMG HG ~^>GG@ZkM>? ^ ~CLEmh@Zk>ChEG HMG ~^>GG@Zk>^ ~C>4G^ ~CG ^(~08@HCkG4G>^ ~CŢFŲ>C^^~ (޴08@>H^P~X GGL% D@H"@HCA@CA!@!08CA@ a`ˢ0BC??DD^~ (ޤ08@>H^P~XCkC>C^^~ (޴08@>H^P~X G>C C>2`AG4*l#4G*0<@<@FqG `C0M8m>C@Zk CC_>CGG G ~$K^>.J>H??? . _=J >>^ ~C>C^~ (ޤ08@>H^P~XCkGG>C^~ ޴(08>@^H~>C>GL% D@H"@HCA@C0 C>C^~ ޤ(08>@^H~CkGGG4GkGG>C~^^~ (08 GGCCEBFT xeG MC(mCCtG@ZkG^~ (08CkG>C^^~ (޴08@>H^P~X G>CM,~(^$> ް ~^>GCem@ZkX0m#_C~AG>^ ~ޠ $>(^,~C@^~ (ޤ08@>H^P~XCkGG>C~^ ^(~08@޴HPX>`^h~p GxGM CmG@Zk:>CG# G ~$K^>.J>H??? .J >H(.J(>^> ~CBy HP C@Z@K8mYGBGbtG 0Mwq KĢ ŲXpKG@ZkMGm4G@Zk4GG ^(~08@ޤHPX>`^h~pxCk>C^^~ (޴08@>H^P~X G>C`M,~ C(^G$>4G ް ~^>>Chm @Zk C:GG>C^^~ (޴08@>H^P~X-kC>C`M,~G(^4G$> ް ~^>hm@Zk>CeMm~ ~^>CG>C@Zk> ^C~ ~C`>^ ~ޠ $>(^,~C^~ (ޤ08@>H^P~XC@ SAFETY013.A  "[EVERHART.JTDEMO]JTDRIVER.OBJ_A;43uf>?kHkm#X_+!ͦC)P0  4KT@He'# |Gh 'X V @,HX@h% ?#DCw@KDwH IAYAD5/5K^ ~ޠ $>(^,~C8@ӑì#iC,H(A/4 AK0C 'AK'\GK@'K\GK hAGG|/zJ 4@A[|KGzG|?GzJ|/ 4@A"[|KzG|?GyJ|/ T@A[|KyG&|?G @A4BG @AvG4GzzJ|/ 4@A[|KzG|? hAGG[/yK 4@AZ[KGYG[?GyK[/ 4@A#Z[KYG[?GuK[/ T@AZ[KUG`'[?G @A4CG @AVG4GYyK[/ 4@AZ[KYG[?ZG8 wT%u?ɢFr|p$in>C M ް,H@נ\@PeH0zC'1@Pޠ CDP%R?>CͦCD+#hd HȲ@DK/YK L"HHk hL+/7K$(>Cx(hD,H$0(4^>dtJ88 4TȲ<@,! H<LA@H8 Xm!D(4GHL APH>^GPM(C~CG>C@Zk~ CC>4G^ ~ޠ $>(^,~CI60YC >CMHG ~^>hAG@Zk>^ ~C.Y JD /V K6GG\/ JZ \KYG\?;/ KY ;K5G;?5.Y JDYE.W JWGwM/V K6G|>C^^~ (޴08@>H^P~X G>C8m#,~ C(^$> ްC ~^>M_C` P!@@@!@H`X!@!!@A!@a C!@ K @j`*91 C* 䢁&F8MG@m4G@Zk8k'|G2 8K.KJ`1@B( 1u@B& 8ˢ$>C> + 8k'|G &0CG'8K[G  ?'F&8G !@'0 C!ˢF˲>C8k_'zG8k E8+4G1 C4 >C8 ,~(^$> ް ~^>ˢtIJ HͦKD Mkvm#+p$t KD_,~>^ ~ޠ $>(^C88 1C `m#_梨m#1@ _>C n=| t C$KJ  ˢ ʲkj(Cm#J8+1u C 8 >C >>CF ް_C࠻c@>CgGY'@P >CpDCGqDCDCGMC mCCC>CGG4C@ZkCޠC >CTGGGGd G GC$K@ * *4G K@j`*91 C*>C8MG@m4G @Zk C >Ct ˢHIJkd + m7m#KpD t KD ^:_ ^C4G>^ ~ޠ $>(^,~C^~ (ޤ08@>H^P~XCk>C4G(m#_>CxMC4G>GCm>C#TG@ZkC>C0@9C>C4G(m#_>CxMCG>GCm>C#TG@ZkCGޠGGC >CxMC>CmTG#@Zk $>(^C ~ޠ $>(^,~CGC& CF|71B|4G|ɲ|j0`C|jK9 /Y KYF}GGG>C?G~(^0^8~@ GHG= =]} 4GG>C?G~(^0^8~@-jCHG= =]} G]@>CCb`GG >C=BCC^CG;A@^CG(0^8~@HCkGGG>C~8^@^H~PX`޴hpx>޵ GG= =(]0}CGGo)`MmTG@Zk$O@M>CmTG@ZkCTGGGGG4GCV@ ! @Cw@K(=GA!#1`@ `P@GGGGGl2@p@#1`@@0(H4GG8@^H~PX`ޤhpx>ޥCk/GG )I8MC@mC*@@ZkCG@@9"@:A@G@@Gz9H/T@@XKGW G?TGW/nKT@@ZWKNGT>CW?`HG%.%JQHMG4qBFGABB@Zk M@ZkGC(ͦ C @HMPm@Zk}[@C yÆCP@sGDE0= #w`HHM@Ca@`HHGG4qBF qBAB@Zk MD@Zk4GG$4GD|. 9HW JF>7/ KY 7K.G7?/Y K9FGG>C^^~ (޴0~8 G>CGް ~^>etG1`M cAKgAmX >C@Zk>G ^{qJ~C ޠC M^G>C$ % \pKGm@Zk^ C^~ (ޤ0~8Ck>^~ ޠCGG>C^^~ (0~8 G>C ~>e` +k`l+ @8'KK?D!.7JMpK"!@@ZkGMG>4G ~C$m@ZkMCm@Zk^~ (0~8Ck!/V 7K6F4G  SMP$ACQUIRE4m#P SMP$ACQUIRE4@  SMP$ACQUIRE4HGX SMP$RELEASE4Lm#P SMP$RELEASE4T@X SMP$RELEASE4xGEXE_STD$ABORTIO4n#EXE_STD$ABORTIO4@EXE_STD$ABORTIO4G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4 ( G\ OTS$ZERO4 X @\ OTS$ZERO4x G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4  G OTS$ZERO4  @ OTS$ZERO4 G, SMP$ACQUIREL4 n# SMP$ACQUIREL 4( @, SMP$ACQUIREL< L Gl EXE$DEANONPGDSIZ< P n#EXE$DEANONPGDSIZ< h @l EXE$DEANONPGDSIZ4x G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4 G SMP$RELEASEL4 n# SMP$RELEASEL4 @ SMP$RELEASEL4  G OTS$ZERO4  @ OTS$ZERO44 GL EXE$ALONPAGVAR48 n#EXE$ALONPAGVAR4H @L EXE$ALONPAGVAR< T Gp EXE$DEANONPGDSIZ< h n#EXE$DEANONPGDSIZ< l @p EXE$DEANONPGDSIZ4  G OTS$ZERO4  @ OTS$ZERO4 G SMP$RELEASEL4 n# SMP$RELEASEL4 @ SMP$RELEASEL4 ,GLOTS$MOVE4 H@LOTS$MOVE4 GOTS$MOVE4 @OTS$MOVE4 pGOTS$MOVE4 @OTS$MOVE,GSYS$QIO,n#SYS$QIO,@SYS$QIO4<G\ SMP$ACQUIREL4Dn# SMP$ACQUIREL4X@\ SMP$ACQUIREL< GEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4G SMP$RELEASEL4n# SMP$RELEASEL4@ SMP$RELEASEL4G SYS$SETEF4n# SYS$SETEF4@ SYS$SETEF4 n# SMP$ACQUIREL4 G, SMP$ACQUIREL4(@, SMP$ACQUIREL< tGEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4G SMP$RELEASEL4n# SMP$RELEASEL4@ SMP$RELEASEL4HG\EXE$ALONPAGVAR4Pn#EXE$ALONPAGVAR4X@\EXE$ALONPAGVAR4 `GxOTS$MOVE4 t@xOTS$MOVE< xGEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4 G SCH$IOLOCKW4 m# SCH$IOLOCKW4 @ SCH$IOLOCKW4 GT! IOC$SEARCHDEV4!m# IOC$SEARCHDEV4P!@T! IOC$SEARCHDEV4t"G" SCH$IOUNLOCK4x"m# SCH$IOUNLOCK4|"@" SCH$IOUNLOCK4h#G# SMP$ACQUIREL4p#m#  SMP$ACQUIREL4|#@# SMP$ACQUIREL4#G# SMP$RELEASEL4#m#  SMP$RELEASEL4#@# SMP$RELEASEL < $G$EXE$DEANONPGDSIZ< $m# EXE$DEANONPGDSIZ< $@$EXE$DEANONPGDSIZ4!$G % SYS$WAITFR4"%m#0 SYS$WAITFR4!%@ % SYS$WAITFR4 %G % SYS$CLREF4 %m#0 SYS$CLREF4%@ % SYS$CLREF< <%G\%EXE$DEANONPGDSIZ< @%m#0EXE$DEANONPGDSIZ< X%@\%EXE$DEANONPGDSIZ4#&G& OTS$CALL_PROC4$&m#` OTS$CALL_PROC4#&@& OTS$CALL_PROC<%x'G'EXE_STD$FINISHIO<&'m#EXE_STD$FINISHIO<%'@'EXE_STD$FINISHIO4$)m# OTS$CALL_PROC4#)G* OTS$CALL_PROC4#*@* OTS$CALL_PROC<%*G*EXE_STD$FINISHIO<&*m#EXE_STD$FINISHIO<%*@*EXE_STD$FINISHIO< |,G,EXE$DEANONPGDSIZ< ,m# EXE$DEANONPGDSIZ< ,@,EXE$DEANONPGDSIZ<%5GD5EXE_STD$FINISHIO<&05m#PEXE_STD$FINISHIO<%@5@D5EXE_STD$FINISHIO47G7EXE_STD$ABORTIO47m#PEXE_STD$ABORTIO47@7EXE_STD$ABORTIO4$$=m# OTS$CALL_PROC4#0=GL= OTS$CALL_PROC4#H=@L= OTS$CALL_PROC4=G=EXE_STD$ABORTIO4=m#EXE_STD$ABORTIO4=@=EXE_STD$ABORTIO47EGE OTS$DIV_I48Em#  OTS$DIV_I47E@E OTS$DIV_I4GGGEXE$ALONPAGVAR4Gm#EXE$ALONPAGVAR4G@GEXE$ALONPAGVAR4'IG JEXE$WRTMAILBOX4(Im#EXE$WRTMAILBOX4'J@ JEXE$WRTMAILBOX4JGJ SYS$CLREF4 Jm# SYS$CLREF4J@J SYS$CLREF4!JGJ SYS$WAITFR4"Jm# SYS$WAITFR4!J@J SYS$WAITFR< JGJEXE$DEANONPGDSIZ< Jm#EXE$DEANONPGDSIZ< J@JEXE$DEANONPGDSIZ4KGK SYS$SETEF4Km# SYS$SETEF4K@K SYS$SETEF< KGKEXE$DEANONPGDSIZ< Km#EXE$DEANONPGDSIZ< K@KEXE$DEANONPGDSIZ4XLGhLEXE$ALONPAGVAR4`Lm#EXE$ALONPAGVAR4dL@hLEXE$ALONPAGVAR4 NGNOTS$MOVE4 N@NOTS$MOVE4'OGHOEXE$WRTMAILBOX4($Om#EXE$WRTMAILBOX4'DO@HOEXE$WRTMAILBOX4OGO SYS$CLREF4 Om# SYS$CLREF4O@O SYS$CLREF 4!OGO SYS$WAITFR4"Om# SYS$WAITFR4!O@O SYS$WAITFR< PGPEXE$DEANONPGDSIZ< Pm#EXE$DEANONPGDSIZ< P@PEXE$DEANONPGDSIZ4QGREXE_STD$ABORTIO4Qm#EXE_STD$ABORTIO4R@REXE_STD$ABORTIO<)hRGREXE_STD$WRITECHK<*pRm#EXE_STD$WRITECHK<)R@REXE_STD$WRITECHK4(SG4S IOC$SEARCHDEV4,Sm# IOC$SEARCHDEV40S@4S IOC$SEARCHDEV4HSGSEXE_STD$ABORTIO4Sm#EXE_STD$ABORTIO4S@SEXE_STD$ABORTIO4SGSEXE_STD$ABORTIO4Sm#EXE_STD$ABORTIO4S@SEXE_STD$ABORTIO<%$TGtTEXE_STD$FINISHIO<&hTm#EXE_STD$FINISHIO<%pT@tTEXE_STD$FINISHIO@ SAFETY013.A  "[EVERHART.JTDEMO]JTDRIVER.OBJ_A;43u4&^4UGU SMP$ACQUIRE4Um#0 SMP$ACQUIRE4U@U SMP$ACQUIRE4 VGVOTS$MOVE4 V@VOTS$MOVE4 $VGVOTS$MOVE4 V@VOTS$MOVE4XWGtW SMP$RELEASE4hWm#0 SMP$RELEASE4pW@tW SMP$RELEASE4XGX SMP$ACQUIRE4Xm#P SMP$ACQUIRE4X@X SMP$ACQUIRE4YG$Y SMP$RELEASE4Ym#P SMP$RELEASE4 Y@$Y SMP$RELEASE4[G[EXE$ALONPAGVAR4[m#EXE$ALONPAGVAR4[@[EXE$ALONPAGVAR4 [G$\OTS$ZERO4  \@$\OTS$ZERO4(\GX\EXE$ALONPAGVAR4L\m#EXE$ALONPAGVAR4T\@X\EXE$ALONPAGVAR4 p\G\OTS$ZERO4 \@\OTS$ZERO< ^G^EXE$DEANONPGDSIZ< ^m#EXE$DEANONPGDSIZ< ^@^EXE$DEANONPGDSIZ4+`G`IOC_STD$REQCOM4,`m#IOC_STD$REQCOM4+`@`IOC_STD$REQCOM< aGdaEXE$DEANONPGDSIZ< \am# EXE$DEANONPGDSIZ< `a@daEXE$DEANONPGDSIZ4HbG\bEXE$ALONPAGVAR4Pbm#0EXE$ALONPAGVAR4Xb@\bEXE$ALONPAGVAR4.cm#0SCH$QAST4- cGHcSCH$QAST4-Dc@HcSCH$QAST4HcG\c SYS$SETEF4Pcm#0 SYS$SETEF4Xc@\c SYS$SETEF4cG,d SYS$SETEF4 dm#P SYS$SETEF4(d@,d SYS$SETEF4|dGd SYS$SETEF4dm#P SYS$SETEF4d@d SYS$SETEF< dGdEXE$DEANONPGDSIZX X < dm#PEXE$DEANONPGDSIZ< d@dEXE$DEANONPGDSIZ4(Tjm#PEXE$WRTMAILBOX4'jGjEXE$WRTMAILBOX4'j@jEXE$WRTMAILBOX4 kGLkOTS$MOVE4 Hk@LkOTS$MOVE4lGl SYS$SETEF4lm#x SYS$SETEF4l@l SYS$SETEF4#oGo OTS$CALL_PROC4$om#x OTS$CALL_PROC4#o@o OTS$CALL_PROC4pGp SYS$SETEF4pm#x SYS$SETEF4p@p SYS$SETEF<%qGqEXE_STD$FINISHIO<&qm#xEXE_STD$FINISHIO<%q@qEXE_STD$FINISHIO<%rGLrEXE_STD$FINISHIO<&8rm#xEXE_STD$FINISHIO<%Hr@LrEXE_STD$FINISHIO<%xrGrEXE_STD$FINISHIO<&rm#xEXE_STD$FINISHIO<%r@rEXE_STD$FINISHIO4tGt SMP$ACQUIRE4tm# SMP$ACQUIRE4t@t SMP$ACQUIRE4tGu SMP$RELEASE4tm# SMP$RELEASE4t@u SMP$RELEASE4/ vG8vEXE$ALONONPAGED40(vm#EXE$ALONONPAGED4/4v@8vEXE$ALONONPAGED4vGv OTS$MOVEM4v@v OTS$MOVEM4 vGvOTS$ZERO4 v@vOTS$ZERO41$wG0wEXE$DEANONPAGED42(wm#EXE$DEANONPAGED41,w@0wEXE$DEANONPAGED4xwGw OTS$MOVEM4w@w OTS$MOVEM4 wGwOTS$ZERO4 w@wOTS$ZERO43txGxLNM$SEARCH_ONE44xm#LNM$SEARCH_ONE43x@xLNM$SEARCH_ONE4-xGySCH$QAST4.xm#SCH$QAST4-y@ySCH$QAST4 yGyOTS$MOVE4 y@yOTS$MOVE45yGz SCH$POSTEF46zm# SCH$POSTEF45z@z SCH$POSTEF41zG(zEXE$DEANONPAGED42 zm#EXE$DEANONPAGED41$z@(zEXE$DEANONPAGEDp p=0;=@| =0@;=@| ;;=0;7 SMP$AL_IPLVEC7 SMP$GL_FLAGS  SMP$RELEASE  SMP$ACQUIRE7(PMS$GL_KERNEL_DISPATCH_VECTOR7 CTL$GL_PHD7 SCH$GL_PCBVEC  SYS$SETEF"0; OTS$MOVEM OTS$MOVE( EXE$DEANONPGDSIZ=0;=  OTS$ZERO EXE$ALONPAGVAR  SMP$RELEASEL  SMP$ACQUIREL EXE_STD$ABORTIO""7 SCH$GL_MAXPIX7CTL$GA_CCB_TABLE7 CTL$GL_PCBSYS$QIO""" =0;=0;7CTL$GQ_PROCPRIV=0;=0;  SCH$IOLOCKW  IOC$SEARCHDEV  SCH$IOUNLOCK=0#;=0$;  SYS$CLREF" ! SYS$WAITFR"=0 %;=/ =# OTS$CALL_PROC=0 &;=/ =0&;=/ =0`';(%EXE_STD$FINISHIO"=0';= =0*;=0,;=0.;=0p0;= =0<;=0<;=0G; 'EXE$WRTMAILBOX;=0PK;=0K;=0P;= =0`Q;=  ()EXE_STD$WRITECHK=0T;;7 EXE$ILLIOFUNC=0X;=0Z;=@t =0[;=P< ;;=0 ];=0 ^;=0_;=0@`;=0P`;=@< +IOC_STD$REQCOM""=0`;=0 b;=/ ="` -SCH$QAST;=0k;=08 Pt;= =""7EXE$GQ_RIGHTSLIST /EXE$ALONONPAGED 1EXE$DEANONPAGED=0 x; 3LNM$SEARCH_ONE=0`y; 5 SCH$POSTEF=08;= 7 OTS$DIV_I=0c; ;=0(0s;=P =0=;= =0@d;=0(s;=P %*[EVERHART.JTDEMO]JTDRIVER.OBJ_AXP6;11+, .u/ 4ut~- 0123KPWOu56@7@#89GHJDDJTDRIVERV01H 3-FEB-1997 19:34AMAC V2.1-13  x$$$115_LINKAGE ~ $$$115_DRIVER $$$105_PROLOGUE $$$110_DATA $ABS$ . BLANK . . ABS .0  DRIVER$DPT( JT$DPT( JT$DDT IOC$RETURN_SUCCESSIOC_STD$MNTVER IOC$RETURN IOC$RETURN_UNSUPPORTED0  DRIVER$FDT EXE$ILLIOFUNC SMP$GL_FLAGS SMP$ACQUIRE SMP$AL_IPLVEC SMP$RELEASE SCH$GL_PCBVECEXE_STD$ABORTIO SCH$GL_MAXPIXEXE$ALONPAGVAR SMP$ACQUIREL EXE$DEANONPGDSIZ SMP$RELEASEL CTL$GL_PHD CTL$GA_CCB_TABLE CTL$GL_PCB(PMS$GL_KERNEL_DISPATCH_VECTORSYS$QIO SYS$SETEFCTL$GQ_PROCPRIV SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCK SYS$WAITFR SYS$CLREF EXE_STD$FINISHIOEXE$WRTMAILBOX EXE_STD$WRITECHKIOC_STD$REQCOMSCH$QASTEXE$ALONONPAGED EXE$GQ_RIGHTSLISTEXE$DEANONPAGEDINI$BRKLNM$SEARCH_ONE SCH$POSTEF OTS$MOVEMOTS$ZEROOTS$MOVE OTS$CALL_PROC OTS$DIV_I(J'FDTLOP(J`(FDTXIT(J)FDTBXT(JdVCSTP150Jx GRANT_REVOKE =0;=@8@| F11 =00;=@| ;;=p=0;7 SMP$AL_IPLVEC7 SMP$GL_FLAGS  SMP$ACQUIRE  SMP$RELEASE7 CTL$GL_PCB7 CTL$GL_PHD  SYS$SETEF"= EXE_STD$ABORTIO""= @ SMP$ACQUIREL OTS$MOVE EXE$ALONPAGVAR=0;= OTS$ZERO(EXE$DEANONPGDSIZ  SMP$RELEASEL OTS$MOVEM;=7 SCH$GL_PCBVEC7 SCH$GL_MAXPIXSYS$QIO""" 7(PMS$GL_KERNEL_DISPATCH_VECTOR7CTL$GA_CCB_TABLE=00;=0;7CTL$GQ_PROCPRIV=0;=lR=00 ;  SCH$IOLOCKW  IOC$SEARCHDEV  SCH$IOUNLOCK=0P%;=0&;  SYS$CLREF" ! SYS$WAITFR"=0 ';=/ =# OTS$CALL_PROC=0`(;=/ =0);=/ =0);(%EXE_STD$FINISHIO"=0);=  h=0 -;=0 /;=0P0;=02;=  =0>;=0?;=0J; 'EXE$WRTMAILBOX;=0M;=0@N;=0 S;= =0S;= p()EXE_STD$WRITECHK"""=0 W;H;7 EXE$ILLIOFUNC=0Z;=0];=@t =0];=P< P;;=@-=0_;=0`;=0b;=0b;=0b;=@< p +IOC_STD$REQCOM""=0pc;=0 d;=/ =" -SCH$QASTH;=0n;= @ =08 x;= =""7EXE$GQ_RIGHTSLIST /EXE$ALONONPAGED 1EXE$DEANONPAGED=0|; 3LNM$SEARCH_ONE5INI$BRK=0}; 7 SCH$POSTEF=0P:;= 9 OTS$DIV_I==0Pf;=;= @ SAFETY013.A  %[EVERHART.JTDEMO]JTDRIVER.OBJ_AXP6;11u/> =0(w;=P =0 @;= =0f;=0(w; =P  =>C~^^~ (0޴8GC1'F1#CWpJC&&&"4GCYp KC:9'&H"LƲ|SJX&C?G:GX&4GXƢw1 KVRJFXƲG\X0KG\\FGvSKG_G\G\FG\WRJF\沀&?G:G&G^~ (0ޤ8CkG>C~^^~ (0޴8GC C([?' Fp9#C&CCG^~ (0ޤ8Ck>C^^~ GGEm>CG-GGpH*GGW@FGG/J0KC%GDj!/ע0M>C8mpH@ZkCGCGFGCG^~Ck/ M>C(m@ZkCJ0KC*'p#08CJ_ GG>C~^^ ~(08޴@HP>X^`~hpx޵GGCCcCCp`Kp`GGn#@G^ ~(08ޤ@HP>X^`~hpxޥCkG$0A_HGJ?GvJLŢ&BFHJGJ`GvJ_>C;A ^_Cn#C@4G <C(n#(0GC@Ӹ.TGe/|JyeHVJ[ eKF J|Ge?>E//ZEKX KYG eHG?E?0.3e/J\ eKFC4Bn#Cm@Ӕ%/.D%KX J8GC4YC /#E/ĢK[ EKGC4B/"/$KV KGC48C%/.d%KX J8GC4yCe/E#/ĢzKY KyGC4B/E/K[ EKGC4B/tG.w%KXKV JG %KF>?f{`KgK45`C(%/_#+.%KX J8GC:Gx `/`KpG4JJ /4@KG4JJ`âFGe/G%/zK[eKY %KzG K:G%?e?>C~^ >ް0E-3. >EI~W J WE C@p@Iܠ[@ޠ H4ZA (^48CCdGޠG|J >^~C.e/`NVJ[ eKF JC|Ge?>pU48CJ>C"<E#(.+e/J\ eKFCF<<,?/ HY K<ŢDCG4B CNCnCCCG@ZkGCe/G%/zK'[eKY %KzG K:G%?e?(.+/JV KFCF.>C ~^>x ,@;Hp` @e,C._ eHX JxDC`?"6DCw`K Dw Hb@@ D>Y/^ ~YKXKCn#R @yG>C,#,(>$~ ^>ް ~^,./E/J[ \KFCCJ>Cx.N ~^>9>Cn! HC>@Zk>C4>C NG HG ~^>GG@ZkN>? ^ ~C,E@n>C@ZkC N@E>CG H ~G^>GG@Zk>^ ~C>^ ~CX|w`GGFGG.G/vKn#WJ\ KF KG?>>C @C >C0N>`a4 8n>C@Zk>C%/4G.xEK|%HY%KW J8G EKF>%?.e/VJ[ eKF %H|Ge?> N>Cn>4? >C@Zk>CE//yHZEKX KYG HG?E?7GXע>C@N4Hn@ZkCTGGGG ,G^n#~ޠ> ^$~(>04C~ @ӥG>^ ~C&>CNn4@ZkCGG%/TG.xEK0_!Y%KW J8G EKE#F>%?xZHA C%/@I.GY:KW J8G ZH NF>%?>C ~^>GG@Zk4_#tG^> ~ CC4B°>C~^%,% D@H"@HCA@C^G~C +? NGnC >C@ZkC 0NC4+>C8n@ZkCq/$KGCeGⳑ"" G @ G@GGG @^G~@G @ޠG@G>@ ^$~GC[@zG@Gװ@G;GZ@yŰ>CX$~ ^ C>| ް ~^,벐âŲ<eLk =>C@N4Hn@ZkCTGGGGxG@GG|C@GY@G@CYGxCJtaA /XK ?Et$+  J/JK@ KTAA J/ .YKX JXGK*/AA8K !+G(.G7"I K  IK K#9!G 0Y>CN ~^>@Zk ~+!>^CxC6AG>CNIG ~G^>@ZkG_#>^ ~C%F0|,( + .J>`7JGJ4wC  /Gv+KX KG7`  ?>C(k# ~^>(+ $k  , HNHGG@Zk>^ ~C +4G%#(FxGTGŲ?'A0@CAG'0BD\GD. C$K'#>C',ACJ{# 0A E CCC>C C~G겔"ʲ EGk# j>C,I J>CK C^ E CI(+C >C  #>C`^~>C$ˢ>CB޲C~@>CTG>GTG>CG^0KGG?# ʲ^CNGNGn@G>CLޢ48><^@~DHP޶TޢX޶\ޢ` ޶(@ZkTGtGGCG~G^CG0K *^C$K>C0n#q@TGCGGC>C;AGLG>C_C=XC|`GGFGG>C(#Hˢx|4Bn#w@4 @ Kn#A @0N4+C,+8nG@ZkX.C>C@NהH4>CHn@Zk VHCHFTGGGGGC C(>^~ ޠ> ^$~,>CC/N>CnG>4G@ZkG>C  GGGGG/KG4JJ /4@8K0G4JJ>C!G(>C^n#~ ޠ> ^$~ C,>C, >C~@TGGGC~>CG,~G(^G$>;A ް ~^>L>Ch_C3XC|l`GGFGG/>Cn#@4 @C n#>Cf@0NC4+C8n>C@ZkCXCע>C@N4Hn@ZkCTGGGGG>^ ~ޠ $>(^,~Cc/>CnڔH^N4>C@Zk YHCH Gn#@4 @"N Cn@? @ZkN C@?"GG@Zk@#G0NG4 G*G4+C,+8n@Zk>CNn4@ZkCGC^C~" ޠ> ^$~C CC>>>C ~^> ްC~>C^>n#>^ ~ޠ $>(^,~C @) /Z ;K:D /Y KYGmJ/W XK7Gu!/V KF!. +KW JF!>GGG>C^^~ (޴08@>H^P~X Gm#_C Cm#@CC^~ (ޤ08@>H^P~XCkGGG>C^^~ (0޴8@H>P^X~` Gh>Cx- hA>HKx0XC AA/*-*I 4@A >C^~ (0ޤ8@H>P^X~`hCkG05 A0U A0u AJ/G,AKJK 4@A k(GK /HIY K @ADCC>Cy@0@Cͦt0 A" @AKA* @A kCC>Ce@CJj AA0@0#@M 䰄G?E0`C3 ,*/AK HZ *K k @AD*,C.CC*HX J @A8DC>C6@CJ,j/j,JH\ jK @AjH*/\DC0@Z *K @AzDC0#@GG2BAGG>CGm#B@Cn?E0ՀC?E0@Cl*-*I IAd..VJ>WJ>]G*-*I IAXGG8D<C"DDR&CC"8D&>CDCl"C6D wHC>C @"@C=%,="6H,B9">>! H#@!C>9%,7H#CC!CG  =0 @6J?>$@!C>C!CG 0 @6J?$@CCCk>%/\ 6KC^^~ (0޴8@H>P^X~` Gh>CHM,~(^$> ް ~^><Hkx:0yC iA/*-*I 4@A >^ ~ޠ $>(^,~C^~ (0ޤ8@H>P^X~`hCkG05 A0U A0u AJ/,JK 4@AH /(GKY KIDC @AG0 A ,/*, HV K @A*HJ/J,DC[ JK @AJH /;Dj,CY K @AjH.YDCW J @AwDCG0 A ,J/*, H[ JK @A*H /J,DCY K @AJH.9Dj,CW J @AjHj/WDC\ jK @A|DCG0 AC*-$*IGJ IA GvJ{0A CA).)J 05 B k#|Gn0 Ap*-*I IAh< Mm0C< @Zk>CC. MCJ4A(m\KGCYP K9'C"\pK'>C> ~@Zk~ >C>|'91 C|' |&4 A|0B|Dk$#| /-/)/ AKZ ;KG.J'(/vJY(K6G&(?TA H/Z[K'` H?A "/K$@vGuJ\KG#@?AH/#XK";GwKZXKWG!H?0M8m@Zki/\ vKF / JX KG ? (/Y ;K (?/Y KyG JX KG?.W J7G KV JF>>C^^~ (޴08@>H^P~X G8m>C`>[<@GGFGG/>Cm#r@C C뢨m#>Ci@C/aG8ͦC>C M4(m@ZkCTGGG>C^~ (ޤ08@>H^P~XCk>CMm4@ZkCG>Cm#@MC4+mC>C@ZkC>C^^~ GGGGGGJ@  MG(m4G@ZkG4GMm@ZkJ_CJ@ TG>CMm ~^>G@Zk>^ ~C^~CkGG>C~^ ^(~08@޴HPX>`^h~px GGwHAAD/KK?4C0MG8mG@ZkGG>C~^ ^(~08@޴HPX>`^h~px GG4GA;@G ^(~08@ޤHPX>`^h~pxCkGGG>C~^ ^(~08@޴HPX>`^h~px GGGA@G ^(~08@ޤHPX>`^h~pxCkGGG>C^ GMGPCmCT#TG@ZkCkGGG>C~^^ ~(08޴@HP>X^`~hp Gx޵G>CC CCC@m#_CACG@G^ ~(08ޤ@HP>X^`~hpxޥCkG<C'(e#|GD0%4YC4CĢ 4BdE4zC$47CĢe4BD4XCƢvJJ45B C>CAf@4EACK>C^<>C Cx|ci@m#CI# ) `â>C> Fްl_GC 21@Z'@mCMCCC>CG4C@Zkޠ >CTGGGG^C&GF|ɢ61B|ɲ4G||J0@C|JC  rAC@lMGޠGCC >CPTGT#>Cm@ZkCZ>C^^~ (0޴8@H>P~X G>Cm# > @CZX CtaA-ktd>C^ +/8KY8K@KPGvXK6G +? K@J:1@CJ@ .taAJWJKG{KF > K@ 81C ^C ˢIJk`ͦd +1KD ˢIJ8kF0zC8K>CA^q@^m#B @0 @C +m#!>C @MC4+mC>C@ZkC>C^~ (0ޤ8@H>P~XCkG>C^^~ (0޴8@H>P~X G>Cm# > @C$H C-ktd KD PM /= ˢѲkq+$뢄 KD8 0C8K>CA^@^C/>C^~ (0ޤ8@H>P~XCkGGG>C^^~ (޴08@>H^P~X G>C- hA>HKx0XC AA*-*I 4@A >C^~ (ޤ08@>H^P~XCk/G05 A0U A0u AJ/,JK 4@AH /(GKY KIDC @AG0 A ,/*, HV K @A*HJ/J,DC[ JK @AJH /;Dj,CY K @AjH.YDCW J @AwDCG0 A. ,J/K H[ JK k @AD*,C /CC*HY K @A9DJ,/Cj,CJHV K @AjHJ/VDC[ JK @A{DC GG2BAGG>CGm#O@CG0 A*-*I IA~0 A*-*I IAx>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`CA@G^ ~(08ޤ@HP>X^`~hpxޥCkG`#_#:GGJGvJ>Cm# r_CAC@<CĢ04BE//dEKY KYGC4zC .#e/J\ eKFC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/e#%/KZ ;KGC4B.e/J\ eKFC4C&y K'K45 C'O(.+.JW JFC0FGFE>Cpm#(~$> ް>C~^>  @C(>Ct@^ @/YKZYK`KpGwyKWG @? @@j;1`Cj` /t@KXK K(Gu7KG ? @@J:1@CJ@^C<:>^ ~ޠ $>(~C(.+/JV KFCF\`cpGA>C~^ >ް E-#%/ >EI~Z %K ZE C5@Ϡ@IX@ޠ.4WA^*Ȣ4B%C7G>^ ~ޠ $>(~(C/CGMC4GCPmCT#TG@Zk`CPG`CޠGG >^~^C~x@GpD @B11 BGGG,>C G ~^ C>xpn ,@7H~@e,??#CE/9DCeH[ EKG{DCwJ ` Dw Hb@@ D.JJU@ 0`A>^ ~C/$E-$%#'.YIX J XE C<@ʢF9|7$j5`>C M ްϠY@ /#.KW JGC4C'1@#E/ e/Z EK#E?[eK e?ޠ C % >CA>Cް ~(@~ ޠCC~4u@^C_ CG>^ ~CCXMCGG`mCCC@ZkH/V K6D~GG>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`C0m# @G^ ~(08ޤ@HP>X^`~hpxޥCkGGJ@GvJ?>Cm# _C m#C@<C(G0.3e/J\ eKFC4B%/.D%KX J8GC4YC /#E/ĢK[ EKGC4B/"/$KV KGC48C%/.d%KX J8GC4yCe/E#/ĢzKY KyGC4B/E/K[ EKGC4B@ SAFETY013.A  %[EVERHART.JTDEMO]JTDRIVER.OBJ_AXP6;11u>+xKK45C(.+/JV KFCF?>CGGxG@pD @B11 B@GGG-GG@GpD @B11 BGG G@.JOF(%/+.%KX J8GC$G/@KE`pG .@JCTFyKWJFB>GC(.#+/JV KFCF_>CGxGG@pD @B11 B@GGGCLGG(/"+E/K[ EKGCGP0m#4GC@ӄ@/[ \KF /Z ;KG@/[ \KF KZ \KYG@?G>C^ GA@CkGG>C^޴ (>0^8 G`>Cm#^ >G Cް>C_GC CC@ t?=ZGAmCMC>CG4C@Zk ޠ>^CCޤ (>0^8CkG MGޠCCC >C^C(mG@Zk>C~^^ ~(08޴@HP>X^`~hp-qCx޵GCCCCC/0m#_G^ ~(08ޤ@HP>X^`~hpxޥCkGf_'Z#{`KgK45`C`#:GGJGvJ>Cm# _C m#C]_<CĢ04BE//dEKY KYGC4zC .#e/J\ eKFC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/e#%/KZ ;KGC4B.e/J\ eKFC4C&y K'K45 C>C~^ >ްE-. >EI~X J XE C@ͦ@I֠\@ޠ h4[AH$^4YCCޠ >^~C(/+.KW JGCPG%(e/#+%/eKZ %KzGC|GB>CxDGGG@pD @B11 BFGG75/@KiG8G>CGGxG@pD @B11 B@GGGGG@GpD @B11 BGGG@.JIFyG0m#C_0m#C_GsG>C<%#(~$^ >ް ~^><E-?.YIX J XE CD@ CDJA@TJB=)Cw`K4IA8E-E#/ CZIY K YE C/@F,|ʢ*$(>Cm ްGՠZ@ %/.Ȣ%KX J8GC46C'1@e//[ eKe?\K?ޠ CE@>C@m#@C>^~ ޠ >$^(~C G0m#C,_ӑG(%/+.%KX J8GC$GC/@K`pG=(.@#+/JV KFCF @/@XK!G|xKZXK\G@?@e/D"C/eKY K[eKYG:1@CwEKX KwG EKGC?@e?@D.Ge/@E/J\ vKC/ZEKFCyJX KYG J@GC?@E?.J`TGxJVJF`>>C@ް ~^.J0F][ YDȠW%/#.>C M8KW J>7GC>G ^G(m(~@ZkG0@>> ^(~C/E/K[ EKGC4@,/HY KDC."/JV KFC4@F<-<e#?%/IZ ;KECDTCwJ4@C4@(e/+%/#eKZ %KzGC|G.@J5FG^~ ޠC;G/V KGG=@/[ \KFF4- /Z ;KG;.W J7GF xKV JF>F /Z ;KGg JY ;K8G ?g@/[ \KFp`/\ vKFGGG>C^^~ (0޴8@H>P^X~` GhPMGXm@Zk^~ (0ޤ8@H>P^X~`hCkG>CGG G ~$K^>-I=?H?? ?(?0?8?@?H?P?X?`?h?p?x-Ix=>^ ~GC CTGt>CG(~$^ >ް ~^>b<8  "@A @K! @ + @ A @Kt  K+k - $ (˰,0 4+ 8 I<K @ IDKH+L DPK$T+8 4X ,! H\L`>CM Cm~GC>C@Zk_'~ C%m?%$:GFGGGFGG/kG4G&`M>Cm@ZkG4GCK@Mm>C@ZkCGt MCmG>C@Zk>^ ~Cޠ >$^(~C2TGGGĢGGFIJ>C^~ Ge#4G+0C0u BkMGm4G@ZkGhMCpm@Zk4G~CkGG>C^^~ (0޴8@H>P^X~` Gh(G`G^~ (0ޤ8@H>P^X~`hCkGM? m@Zk>CGG G ~$K^4G>-I=?85C?? ?(?%CH?? LO=-I=>^ ~GCtGtpb>C C(~$^G >ް ~^>b<8  "@A @K! @ + @ A @Kt  K+k $ (˰,0 4+ 8 I<K M@ )x+ D HKT!A )/ -8KZ I!A:GL+)/8KP+WTK$X+\ 8 4A`K,! H!d+Lh<ˢ#+>C,~(^$> ް ~^>|C@| 0@ JpA@MHGG@Zk>^ ~ޠ $>(^,~C>CM Cm~ $C>C@Zk~ C%-'?%FFGGGGGG+G+ hMpm>C4G@ZkGC "xM>Cm4G@ZkCG4G/>Ct XMC`m? @Zk>^ ~Cޠ >$^(~CTGGGGGDIGD -Z I:G`GGG>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCC4G;A_G^ ~(08ޤ@HP>X^`~hpxޥCkG>C~^^ ~(08޴@HP>X^`~hp Gx޵GCC` HCC`C@KGG4fKDMGmGCCCCG@ZkG^ ~(08ޤ@HP>X^`~hpxޥCkGxC|#>C(MCC0mCC>CG@ZkCPD#G>C,~(^$> ް ~^>x@.4U@, -٢0C0Bٲ@ d`% |#8!C`Mm@Zk0 ~GMC  >G^CޠCC $>(^,~mC@Zk>^ ~ޠ $>(^,~CèMCmCCCCG@Zk45@ CŢA4vA@ ~TGM4G>G^CCޠ $>(^,~CPmT#@ZkbA@GGG>C^^~ (0޴8@H>P^X~` Gh^~ (0ޤ8@H>P^X~`hCkG>C4G(~G$^G >ް>C ~^>-G>CG pHGGW@FGGCKo#e CtHI @i8+ )0*C&p"0B#4GEE峠M>CGG"OB@ZkGGCGMG( !墈>C~^ >h%!Gް(>C ~G^> H@Zk G> A^ AA ~ !AC >C*0(B0'B)+1`A A @Ah"ޠ >^C~C(貄ﳆ"˲| `>C0M >C8mpH@ZkCCGGF>G^~ ޠ >$^(~C?/ M>C(m@ZkClTG>C^^~ (^0~8 G>CC>8%Em !CG>CG G>CGٔH>pH?ͦGGV@FGGZHCH@G 0 C3ʢ'p#0BJ_M: >CؔHM>CmpH@Zk WHCHFGCGF>C^~ (^0~8CkM>Cm@ZkC* G*+J0A@D M#( ĢGRCFIJG0"@ C$?÷GG ` d>C~ ^CDG!#0@A고CGG>C~^^ (޴08G4GCCCC4GG^ (ޤ08CkGG>C~^ ^(~08@H GGC #X%G-'@#?G:GX%4G{1J4GXC-M\0K(ͦ#GXE岰Ų>C`M ~^><>Chm! HC >@Zk >CC>CMG HG ~^>GG@Zk`M>? ^ ~C,Ehm@@ZkM@E>CG H ~G^>GG@Zk>^ $_= ~C4G>^ ~C/G ^(~08@HCk4G>^ ~CŢFŲ>C^^~ (޴08@>H^P~X GG,% D@H"@HCA@CA%@!08CA#@ Ga`ˢ0BC?G?DD%^~ (ޤ08@>H^P~XCk/C>C^^~ (޴08@>H^P~X G>C C>2`A@G4*0#4G*0<@<@FqG `CXM`m>C@Zk CC_>CGG G ~$K^>.J>H??? .J >>^ ~C>C^~ (ޤ08@>H^P~XCkGG>C^~ ޴(08>@^H~>C>,%G D@H"@HCA@C0 C>C^~ ޤ(08>@^H~CkGGG4GkGG>C~^^~ (08 GGCCEBFT xe(MG0mCCCtG@ZkG^~ (08CkG>C^^~ (޴08@>H^P~X G>CMm,~(^$> ް ~^>CeG@ZkLm#l_C~A>^ ~ޠ $>(^,~C@^~ (ޤ08@>H^P~XCkGGG>C~^ ^(~08@޴HPX>`^h~px GGM CmG@ZkA>CG# G ~$K^>.J>H??? .J >H(.J(>^G> ~CBy H0C@ͦZ@K8mYGBb>CtG^0K G^C ŲvqKD E0MWpJF@Zk@MGHm4G@Zk4GG ^(~08@ޤHPX>`^h~pxCkG>C^^~ (޴08@>H^P~X G>CMmG,~ C(^4G$> ް ~^>>C @Zk C:GG>C^^~ (޴08@>H^P~X-nC>CMmG,~4G(^$> ް ~^>@Zke>CMm~ ~^>CG>C@Zk> ^~C~C`G>^ ~ޠ $>(^,~C/^~ (ޤ08@>H^P~XCk>CG^m#0K^CDkLO_Cͦ+! G%GeKY@G4G%(&" Gj GZ@X @,H``@% ?"DCw`KDwH IAZADY/YKUK|$G/GKP0FK TGGK_#Ǣ ˲k0zC@.'4`CJ@DktG%4G˲Dk hA0`G~m#>^ ~ޠ $>(^,~C7@ӂéG_#IC,H(Ai/4 AzK0`C 'A+';G+@'+;G+ hAGG[/yK 4@AZ[KGYG[?GyK[/ 4@A#Z[KYG[?GuK[/ T@AZ[KUG`[?G' @A4CGxV @AGY4G[/yK 4@AZ[KYG[? hAGG:/uzK 4@AY:KG5G:?GuzK:/ 4@A#Y:K5G:?G|zK:/ T@AY:KC- ް,H נ[@0E(0YC'1@0Gޠ C0ŢH>CmCh< HhKH ˢȲ K$H8((,Ģ0Ȳ4>C^><tK88 4aTh<@,! HA<HL@8 G mD4GHALH MP>^C~GŲC>C@Zk~ C4G>^ ~ޠ $>(^,~C)x05CGE>CHMHG ~^>hAG@Zk>^ ~C;/Z ;KD .Y JYG;/ KY ;K5G;? . zKU JF>0/V KD]G>C^^~ (޴ n=08@>H^P~X G>C4G,~ C(^m#$> ްC ~^>_G>C0 `C@ CA Ca  @ @! @A @ K"@ @*' 71BG>Cm4G0 G4G@MC@ZkM?#'>C0  CF1 K.KJ`1@B( 1u@B& +$ >C> + 'F a_'0`Ca G ˢ&F K '\GK ?'G @'0C+;G+>C&F1CC 4Gk>CM,~(^$> ް ~^>+t$ (-ˢIJ kͦy뢰m#KD 뢱_#>C0 @C_#>C0 > ^~Cޠ $>(^,~C81B Hm#{_>Cy"m#0 C1@ _>C#A"0 `C$>C|+ C*겄K J  >C0 C1uC k``C>Cm#>GG ް_ ?#C#`@F['@>C >CpDC^CqDDCGM>CmGް 4C~0  G>C >^~@ZkCޠ>CTGGGG, GC0 "C$K@ * *4Gj K@J@ 81C M>CmG 4G@Zk CˢtIJ (ͦKD Mkvm#+$뢄 KD>C ^_ ^C>C5#0 >4G ^~Cޠ $>(^,~C^~ (ޤ08@>H^P~XCk>C4Gm"m#0 ޢP_TG>CXMC4G>GPCT#>C`m@ZkC/>C0@9Cx>C4Gm#3_TG>CXM`mCG>GPCT#>C@ZkCGޠGGC >CXMCPTGT#>C`m@Zk $>(^,~0Cޠ $>(^,~CGC& CF|i;1`C|i`4G|I| 0C| 3k/\ kK\F:GGG>C?G~(^0^8~@ GHG= =]} 4GG>C?G~(^0^8~@-jCHG= =]} G]@>CCb` G=BCG>CCC^Gm#@^CG(0^8~@HCkGGG>C~8^@^H~PX`޴hpx>޵ GG= =(]0}CoGG/`GGGGG/$M>CmTG@ZkCTGGGCGG4G/[@ ! D@CwK(=GA!#1`@ `GGP@àMTGm@ZkGn2@r@#1`@@@ SAFETY013.A  %[EVERHART.JTDEMO]JTDRIVER.OBJ_AXP6;11uK>J0(H4GG8@^H~PX`ޤhpx>ޥCk/GG )I0MC8mC*@@ZkCG@@9"@:A@G@@Gz9H/T@@XKGY G?TGW/nKT@@ZWKNGVW?>C`HG%.%JSGM4qBFGABB@Zk `M@ZkGC(ͦ C @/@MHm@Zk|[@C xGCP@qGDE0= #w`HM@Ca@`HHGG4qBF qBAB@Zk `MD@Zk4G/$4GDz. 9HW JF>7/ KY 7K.G7?/Y K9F>C^^~ (޴0~8 G>C M(mGް>C~ ^>@ZkCetG4`McA gAKX m>C@Zk M(m@ZkG{qJ> ^~C ޠC pM^G$ % \pKGxm>C@Zk^ C^~ (ޤ0~8Ck>^~ ޠCGG>C^^~ (0~8 G>CMm ~>@Zke` +k`l+ @?G8'KK!.7JMpK"!@@ZkGGM4G> ~C$m@ZkMmC@Zk^~ (0~8C ~=k!/V 7K6F4PGd SMP$RELEASE4Xm# SMP$RELEASE4`@d SMP$RELEASE4G SMP$ACQUIRE4m# SMP$ACQUIRE4@ SMP$ACQUIRE4XGxEXE_STD$ABORTIO4`n#@EXE_STD$ABORTIO4t@xEXE_STD$ABORTIO4  G EXE$ALONPAGVAR4 n#@EXE$ALONPAGVAR4  @ EXE$ALONPAGVAR40 Gd OTS$ZERO4` @d OTS$ZERO4 h G EXE$ALONPAGVAR4 n#@EXE$ALONPAGVAR4  @ EXE$ALONPAGVAR4 G OTS$ZERO4 @ OTS$ZERO<| G EXE$DEANONPGDSIZ< n#@EXE$DEANONPGDSIZ< @ EXE$DEANONPGDSIZ4  G EXE$ALONPAGVAR4 n#@EXE$ALONPAGVAR4  @ EXE$ALONPAGVAR4` Gt SMP$RELEASEL4l n#@ SMP$RELEASEL4p @t SMP$RELEASEL4  G SMP$ACQUIREL4  n#@ SMP$ACQUIREL4  @ SMP$ACQUIREL4 G OTS$ZERO4 @ OTS$ZERO4 DG`EXE$ALONPAGVAR4Ln#@EXE$ALONPAGVAR4 \@`EXE$ALONPAGVAR<hGEXE$DEANONPGDSIZ<|n#@EXE$DEANONPGDSIZ<@EXE$DEANONPGDSIZ4G SMP$RELEASEL4n#@ SMP$RELEASEL4@ SMP$RELEASEL4 ,GLOTS$MOVE4 H@LOTS$MOVE4 GOTS$MOVE4 @OTS$MOVE4 pGOTS$MOVE4 @OTS$MOVE,pGSYS$QIO,xn#@SYS$QIO,@SYS$QIO<GEXE$DEANONPGDSIZ<n#@EXE$DEANONPGDSIZ<@EXE$DEANONPGDSIZ4G0 SMP$RELEASEL4(n#@ SMP$RELEASEL4,@0 SMP$RELEASEL4G SYS$SETEF4n#@ SYS$SETEF4@ SYS$SETEF<xGEXE$DEANONPGDSIZ<n#@EXE$DEANONPGDSIZ<@EXE$DEANONPGDSIZ4G SMP$RELEASEL4n#@ SMP$RELEASEL4@ SMP$RELEASEL4 $n#@ SMP$ACQUIREL4 4GD SMP$ACQUIREL4 @@D SMP$ACQUIREL4 pGEXE$ALONPAGVAR4xn#@EXE$ALONPAGVAR4 @EXE$ALONPAGVAR4 GOTS$MOVE4 @OTS$MOVE<GEXE$DEANONPGDSIZ <n#@EXE$DEANONPGDSIZ<@EXE$DEANONPGDSIZ4 G SMP$ACQUIREL4 n#@ SMP$ACQUIREL4 @ SMP$ACQUIREL4$#G<# SCH$IOLOCKW4(#m#  SCH$IOLOCKW48#@<# SCH$IOLOCKW4H#G# IOC$SEARCHDEV4\#m#  IOC$SEARCHDEV4#@# IOC$SEARCHDEV4$G$ SCH$IOUNLOCK4$m#  SCH$IOUNLOCK4$@$ SCH$IOUNLOCK4(&G<& SMP$RELEASEL44&m#` SMP$RELEASEL48&@<& SMP$RELEASEL4 &G& SMP$ACQUIREL4 &m#` SMP$ACQUIREL4 &@& SMP$ACQUIREL<&G&EXE$DEANONPGDSIZ<&m#`EXE$DEANONPGDSIZ<&@&EXE$DEANONPGDSIZ4!8'GL' SYS$WAITFR4"@'m#p SYS$WAITFR4!H'@L' SYS$WAITFR4T'G`' SYS$CLREF4 X'm#p SYS$CLREF4\'@`' SYS$CLREF<|'G'EXE$DEANONPGDSIZ<'m#pEXE$DEANONPGDSIZ<'@'EXE$DEANONPGDSIZ4#@(GT( OTS$CALL_PROC4$H(m# OTS$CALL_PROC4#P(@T( OTS$CALL_PROC<%)G)EXE_STD$FINISHIO<&)m# EXE_STD$FINISHIO<%)@)EXE_STD$FINISHIO4$,m#@ OTS$CALL_PROC4#(,GH, OTS$CALL_PROC4#D,@H, OTS$CALL_PROC<%,G-EXE_STD$FINISHIO<&-m#@EXE_STD$FINISHIO<%-@-EXE_STD$FINISHIO<.G.EXE$DEANONPGDSIZ<.m#hEXE$DEANONPGDSIZ<.@.EXE$DEANONPGDSIZ<%`7G7EXE_STD$FINISHIO<&x7m#EXE_STD$FINISHIO<%7@7EXE_STD$FINISHIO4:G4:EXE_STD$ABORTIO4 :m#EXE_STD$ABORTIO40:@4:EXE_STD$ABORTIO4$x?m# OTS$CALL_PROC4#?G? OTS$CALL_PROC4#?@? OTS$CALL_PROC4?G@EXE_STD$ABORTIO4@m#EXE_STD$ABORTIO4@@@EXE_STD$ABORTIO49GG H OTS$DIV_I4:Hm# OTS$DIV_I49H@ H OTS$DIV_I4 LJG\JEXE$ALONPAGVAR4TJm#EXE$ALONPAGVAR4 XJ@\JEXE$ALONPAGVAR4'hLGLEXE$WRTMAILBOX4(pLm#EXE$WRTMAILBOX4'L@LEXE$WRTMAILBOX4MGM SYS$CLREF4 Mm# SYS$CLREF4 M@M SYS$CLREF4!$MG4M SYS$WAITFR4"(Mm# SYS$WAITFR4!0M@4M SYS$WAITFR<HMG`MEXE$DEANONPGDSIZ <PMm#EXE$DEANONPGDSIZ<\M@`MEXE$DEANONPGDSIZ4MG N SYS$SETEF4Nm# SYS$SETEF4N@ N SYS$SETEF<NG NEXE$DEANONPGDSIZ<Nm#EXE$DEANONPGDSIZ<N@ NEXE$DEANONPGDSIZ4 NGNEXE$ALONPAGVAR4Nm#EXE$ALONPAGVAR4 N@NEXE$ALONPAGVAR4 HQG\QOTS$MOVE4 XQ@\QOTS$MOVE4'QGQEXE$WRTMAILBOX4(Qm#EXE$WRTMAILBOX4'Q@QEXE$WRTMAILBOX4$RG8R SYS$CLREF4 (Rm# SYS$CLREF44R@8R SYS$CLREF4!HRG\R SYS$WAITFR4"PRm# SYS$WAITFR4!XR@\R SYS$WAITFR<RGREXE$DEANONPGDSIZ<Rm#EXE$DEANONPGDSIZ<R@REXE$DEANONPGDSIZ4hTGTEXE_STD$ABORTIO4pTm#HEXE_STD$ABORTIO4T@TEXE_STD$ABORTIO<)TGUEXE_STD$WRITECHK<*Um#HEXE_STD$WRITECHK<)U@UEXE_STD$WRITECHK4UGU IOC$SEARCHDEV4Um#H IOC$SEARCHDEV4U@U IOC$SEARCHDEV4UG$VEXE_STD$ABORTIO4Vm#HEXE_STD$ABORTIO4 V@$VEXE_STD$ABORTIO4`VGVEXE_STD$ABORTIO4hVm#HEXE_STD$ABORTIO4V@VEXE_STD$ABORTIO<%VGWEXE_STD$FINISHIO<&Vm#HEXE_STD$FINISHIO<%W@WEXE_STD$FINISHIO4 XGXOTS$MOVE4 X@XOTS$MOVE4 XGDYOTS$MOVE4 @Y@DYOTS$MOVE4YGZ SMP$RELEASE4Zm# SMP$RELEASE4Z@Z SMP$RELEASE4pZGZ SMP$ACQUIRE4xZm# SMP$ACQUIRE4|Z@Z SMP$ACQUIRE4[G[ SMP$RELEASE4[m# SMP$RELEASE4[@[ SMP$RELEASE4\G(\ SMP$ACQUIRE4 \m# SMP$ACQUIRE4$\@(\ SMP$ACQUIRE4 0^G`^EXE$ALONPAGVAR4L^m#EXE$ALONPAGVAR4 \^@`^EXE$ALONPAGVAR4p^G^OTS$ZERO4^@^OTS$ZERO4 ^G^EXE$ALONPAGVAR4^m#EXE$ALONPAGVAR4 ^@^EXE$ALONPAGVAR4^G_OTS$ZERO4_@_OTS$ZERO<4aGDaEXE$DEANONPGDSIZ<8am#EXE$DEANONPGDSIZ<@a@DaEXE$DEANONPGDSIZ4+$cGDcIOC_STD$REQCOM4,,cm#HIOC_STD$REQCOM4+@c@DcIOC_STD$REQCOM <cGcEXE$DEANONPGDSIZ<cm#EXE$DEANONPGDSIZ<c@cEXE$DEANONPGDSIZ4 dGdEXE$ALONPAGVAR4dm#EXE$ALONPAGVAR4 d@dEXE$ALONPAGVAR4.em#SCH$QAST4-eGeSCH$QAST4-e@eSCH$QAST4eGf SYS$SETEF4em# SYS$SETEF4f@f SYS$SETEF4fGf SYS$SETEF4fm# SYS$SETEF4f@f SYS$SETEF4,gGpg SYS$SETEF40gm# SYS$SETEF4lg@pg SYS$SETEF<xgGgEXE$DEANONPGDSIZ<|gm#EXE$DEANONPGDSIZ<g@gEXE$DEANONPGDSIZ4(`mm#EXE$WRTMAILBOX4'mGmEXE$WRTMAILBOX4'm@mEXE$WRTMAILBOX4 ,nG\nOTS$MOVE4 Xn@\nOTS$MOVE4om# SYS$SETEF4pG$p SYS$SETEF4 p@$p SYS$SETEF4#sGs OTS$CALL_PROC4$sm# OTS$CALL_PROC4#s@s OTS$CALL_PROC4tGt SYS$SETEF4tm# SYS$SETEF4t@t SYS$SETEF<%uG(vEXE_STD$FINISHIO<& vm#EXE_STD$FINISHIO<%$v@(vEXE_STD$FINISHIO<%lvGvEXE_STD$FINISHIO<&pvm#EXE_STD$FINISHIO<%v@vEXE_STD$FINISHIO<%vGvEXE_STD$FINISHIO<&vm#EXE_STD$FINISHIO<%v@vEXE_STD$FINISHIO4DyG\y SMP$RELEASE4Lym#@ SAFETY013.A  %[EVERHART.JTDEMO]JTDRIVER.OBJ_AXP6;11u#i SMP$RELEASE4Xy@\y SMP$RELEASE4yGy SMP$ACQUIRE4ym# SMP$ACQUIRE4y@y SMP$ACQUIRE4/zGzEXE$ALONONPAGED40zm#EXE$ALONONPAGED4/z@zEXE$ALONONPAGED4({GD{ OTS$MOVEM4@{@D{ OTS$MOVEM4H{GP{OTS$ZERO4L{@P{OTS$ZERO41{G{EXE$DEANONPAGED42{m#EXE$DEANONPAGED41{@{EXE$DEANONPAGED4{G| OTS$MOVEM4|@| OTS$MOVEM4|G$|OTS$ZERO4 |@$|OTS$ZERO,5|G|INI$BRK,6|m#PINI$BRK,5|@|INI$BRK43|G }LNM$SEARCH_ONE44}m#PLNM$SEARCH_ONE43}@ }LNM$SEARCH_ONE,5 }G}INI$BRK,6}m#PINI$BRK,5}@}INI$BRK4-H}G}SCH$QAST4.x}m#PSCH$QAST4-}@}SCH$QAST,5~G$~INI$BRK ,6 ~m#INI$BRK,5 ~@$~INI$BRK4 d~Gt~OTS$MOVE4 p~@t~OTS$MOVE47~G~ SCH$POSTEF48~m# SCH$POSTEF47~@~ SCH$POSTEF41~G~EXE$DEANONPAGED42~m#EXE$DEANONPAGED41~@~EXE$DEANONPAGED =0(,4H4=4= JTDRIVERX= 4= ( ( = pH4=44>IOC$RETURN_SUCCESS4>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS=>IOC_STD$MNTVER> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN_UNSUPPORTED> IOC$RETURN_UNSUPPORTED=> IOC$RETURN>IOC$RETURN_SUCCESS=44=( GCEVflagL|> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNCH4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC@44@44(4> EXE$ILLIOFUNC> EXE$ILLIOFUNC(4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC=%&GCEV %*[EVERHART.JTDEMO]JTDRIVER.OBJ_VAX5;11+, .$/ 4$- 0123 KPWO 56;Z7?ZZ89GHJ$5JTDRIVERV01H26-JAN-1997 21:38 VAX MACRO V5.4-3MACRO JTDRIVER*;skeleton driver implementing ucb linkagJTDRIVER ACP$ACCESS ACP$DEACCESS ACP$MODIFY ACP$MOUNT ACP$READBLK ACP$WRITEBLKCTL$GL_CCBBASE CTL$GL_PCB CTL$GL_PHDCTL$GQ_PROCPRIV DSC$K_DTYPE_T EXE$ABORTIOEXE$ALONONPAGEDEXE$ALONPAGVAREXE$DEANONPAGEDEXE$DEANONPGDSIZ EXE$FINISHIOCEXE$GQ_RIGHTSLISTEXE$LCLDSKVALID EXE$ONEPARMEXE$QIO EXE$QIORETURN EXE$SENSEMODE EXE$SETCHAR EXE$WRITECHKEXE$WRTMAILBOX EXE$ZEROPARMINI$BRK IOC$MNTVER IOC$REQCOM IOC$RETURN IOC$SEARCHDEV JT$DDT JT$DPT (JT_INT ( JT_UNSOLNTMMG$GL_TBI_FLAGS MMG$TBIA_FULL SCH$GL_MAXPIX SCH$GL_PCBVEC SCH$IOLOCKW SCH$IOUNLOCKSCH$QAST SMP$ACQUIRE SMP$ACQUIREL SMP$AL_IPLVEC SMP$GL_FLAGS SMP$RELEASE SMP$RELEASEL SYS$CLREF SYS$SETEF SYS$WAITFR . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP$$$105_PROLOGUE2PPQB*4&d884&4&,JTDRIVERQQQF11 4<@LNQP@Rr |\A&4&hF&4& 4&HPB* $$$115_DRIVERPu(4 IOC$RETURNd4 IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$MNTVER2 IOC$RETURN$& IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN4(GCEVflagLL|@y#|43f(43||43u#43!434343 43@43'43'o43 ACP$READBLK2 ACP$WRITEBLK2 ACP$ACCESS2 ACP$DEACCESS2` ACP$MODIFY2 ACP$MOUNT2EXE$LCLDSKVALID2 EXE$ZEROPARM2@ EXE$ONEPARM2 EXE$SENSEMODE2 EXE$SETCHAR2'o43%&GCEV|PTXPPXXЎPPXЎPZ[ŜZ[~ P SMP$GL_FLAGS SMP$ACQUIRE SMP$AL_IPLVEC@Ѫ[#p[ SMP$GL_FLAGS P SMP$RELEASEڎ[PЎ[ЎZѪHЪZ[̓ Ф|Q0<<ӏ@@<((ӻ!ZP1aUPU1OѤ`1DѤ`ŀ19Ѥ`1.Ѥ`D1#Ѥ`H1Ѥ`L1 Ѥ`P1 1ӏlPРP  @ 1զ1Z&xI LiB`qz:9:z]U .#h.2@p2bha'G6}Ε|,^`RpTB1 /wH2U"9wWe#ῴbRg:p>Aǭ}uiKca*PbY$l~8\;qyZ罎3РX#jEdjc٧)aTX~_'*;v L{)-q򻩠 ^M&*V6~QoFXZk)+=d۽@d!3G<"Wτw0Uy=M]S0J4MkDayYEx+hF(~Knyi}^j#1PWM`\2Ѹn@IH]AS DCOK1 %8.V4M pSe(XF$3nA4O}ػ<x=;/Rg n 6p+QJN[/ꜻkbw "eϖ)L.bˊ-DhOJ eJBidҬ.lw^b:|PWZ(lЕ׆Da'[8X\R_gpE$X%PkQ2 GT>} Vs݈aW1=v ́ةo=/FnQSb9(1VtfD]2b͝Q(ՄDqZii5MTs iR@ӧ0իaۼ ⏂>w74ڛoŴY1|Ta8ϟsgy11gIe75u*g!j)$T/jUQ4L !fՍ4JVA[ \SW'{C*=:D=*$Uf/t?ꫥho-`ci"~),l%։Qٍm;Tk\?`D@BOy$wkMREzH koN%vWWY7;mFB<]ᇛ'I[ ƻ"[f`u,\Ǿ<VC,J̯j|@s-wSTI626<VxVXw٪;&r= a7\ b/Bf;B4Co'/O;0vּ9WL9p"E'GnK*[xE1.,jeiUSYe==NvU@HduB♇9<_S#;8 A?7ilKh_2 cG/S0;䏇ZnhfgpA۷0vpW(qyKU2PAOݳ5-!K^תeg+{F-6iYƲ~N/e_sG߲K>qrK7K-j͕<(mT=>[#Բ#:ކSpxnF9f\BmMo-Oݭ@Vggm}'m߯p:ᵦsi063fx  t(v*(riUqmOvnnPM~Ot `>TO&$Ԛ4872!l8rc^2Kh24OfÚ Zv^ WPh` Lu%?P+2cYh9غJb|ޘF+YKF 7? "D2 b`BȬWi?'z'-<Lbމ%S;[UĮAm(Zsǀ&of HrP\ļ>^RCڹ{ʬ4 l@p|5"ô4wGszBVMp3Lj7"]xQԛiU0<fagGn(oc &$rOA$s8mVJ .0ڢCS>/na8[p52Sy\Z:'0rBT}1 o65 )֕}g7X<`9' \>}pVF&N:z隈2^@I٩JMDU /~ʺj'ͯ<@p/ myŠi;`cyR$>.G-v̺&VĝpM*i:4IFZŶ4zt\DigH(rM] $* Z4+#>V-Lٰ  OqpxwEn_cI M9c^v=G:XOjѵdX|s:zyb%=Րsp\T؝^(q j Twl-Cާ?xqN #2\*)ClrnV{1[!7J*k֍3s@8l\+ iw}by:S~tE2alB6pXhbFskAMC9bod(-!'zC v {I(Y$Zl|nF1gDsɚMpf eHkOʊxɂv斴y=[$ %"D7_o-9#[ aٽla&dC*(41_Et#ph5wl\T?љ~"cyV}g3TBf!OӉvVY n;Ӧ,7HAcgƁbŇI5I^Sb5c.~;Y}" Ikwy7Bq$!^y6$ Ŕ\B8h-W rbFaj_sKn,(xDc{f%ޅͲ\vw\Whq˟ٰ6E"$gro09ejXdgWhAeD,-s9o$ijɊSe4 c"-ȴr|Xͨ 6`cd0o_E ,Ű/Y^83)YA?8|$I\~t;4V?WdFp,ꊄgb0$k5ې1-*x ߧh&|Yq9E)n *ka[$[4m辽#c&t͆Ya( ,r [cMy?hwh:>hH[@`$9g>RO8"; )98W !}=!%<..8N-'"PR:1߻VNVg&)Z|Y)i.E7?)e7Ѿ=)쐭4g%'Dd` ¸$*8sl Iتkn^M,wKmGA+b7-_rB&RB+4!%Nד+w{>*80`Jg᝖Z8DO[?c[x!;HXRkX.;u;E/^m.KgV<,(͈qblcMЄ<70%yFz47*,2"`%HJ'gЫ!dNa|LZkd*D:Wn:x c٨-p:KUF076P㩸LC gVdu_W _)/`E{2'}±M#T™M_/ }F0ߗ$d[-j6u-)\ny,=:`S߂HEwtcm y#Qd@i{r@MF(Q wGEƂ9N䗡Lt(\Sdw[P%\y쎞E S[_ g[2j#ZMqpaKvܷ\yT%}CC\j:0GF!c3㺐s~&(i^6LK\$ 8LT9҃ 416s10ICm oan9`٭9J?pO*儷RjÎ.o0>Ԃ"Dzf PRsӌ]߯2WkX/Ɓ'DB{QHDX 7~YS ,I[/P+PXD)瓍<0Bs)b9bfԙ?o#?@+ !2P$tSIAֹ Eܨ*]`Յ }' m-8&Eʸa#fX<7(UU߹,<- q2̟d|eo#h)u_<`|<4'bڸC)|Dr_H>Pn3ARx3,b<^ѿi _3H99F2$Xs1TiQ`~_-#M6u]x>n(7z>/YPIQ"u5cMd{qK6,p*~ o7k Oj!4hRP=?1j3:>3/R,>ST<55Z+ۣMQ>?K߇og 1dГYp# ew£nOjd{ռ԰#c{*Ol S=+lw̿B/FXB .n+| JQKG$ Jg¨)X#u9s"F7 Ivl(QSxm󟱭IqGذUwjS8 f!NHX4<+չ RbY恠#s4)M5*68dPT`:oT4HqŵV6B{^0 6FEŴ[HXqQjA ?|3U_peBGwPUG/o&ͱw Z{DE{B["<g?O`|b2b.Ά[VZDvPx [Gw{JlO9;!g"ɶyGd}$ gEs =4Mf;Rey PDsU2nD{T(mC=nAնiGX;Hߖl&n2]ɫ]Ll1|)XŠK\] ˧jr4ZiρF³RĪFmy5>,/h=v~~MSYٜ/x#"<S1|>\*g}ykX)qZ6] A9f~y\ZTF^@i[kYmcT(-uVsܥ 2wB4rJ]}ȋrE%Rs@Rlpy*Z<l'oa>mP|n efrcjJ>3y60<%1<5H/`"(,X˼ܙCSk0 X /ORIbΟ&XopbU9bE_9X+:z^Ik"9}RX6%%TXȌZЎ~!q*.Zhʲ$ƪUᶌZZ*e{9třn M)"n*s]f5baѿ%lp}ؠ1}-g`'!n,Հ!i9|3Mm0tkl32!ʅF$yļS]=~r?S͘BE %}y&wB[ˁ:Rv^X O{B #tmа+s'ѥY9t `* aGLhM((](Kwv"g $ Y=YО)9]Y*t g@.!Ŋ4^LjN7\o4BNFTU%˟-4z1!Ďmi =΅嫳} _t[  7x>6dOκ8G/' c$qu!eX<g2`/%XncԄG }[=/k:#` yq=vM˴#\Z'8g&eFVv01R} Ę`IͥҸ4pu67M4L-Mp٬&UBc\Qt3|"s L6IrԭKH:Kz州{L!]w JUM𝄹j&}?$fVoNV |qޡL$NR' =)f,wQ̍SO)tD6;]d_  7/8L!ܭC=+{iʫ>iq> wj `{2"OxU>]QʕeՈEл "vIΦh Ɵ/l$ysD=O7 bo;Y䀈=Kw fQE*9}̡ݒ4|uÙ}z텢r8nt+ҨvʾFɍ9)O@Ҿ 3RfIl~=bSZ?!i_P$Ȣ`w]R;'U".8!ͽfpW>V旪xI~\yQ~y\a& "f}ʨ${o=.q곯M! [NƀUˍEeT5jCPG/J#4xNDng1X3Kka$ 3H(!Qfm^{! g-Gv)-؁ N@ 0;n H!Z"Kf[ @5H8]BBp/h -{kijʬW02E*s4D<1泋x3'1{ zR{<"~GoGJ+s^RvӜB%u ̴qT׹t )P`Jʴ1r-IUx؟w16[BjjfP^\*ѦdXba*+V ܵd'r;PmI!msƱ/zPh>E15;\P9F\Ѩt UX ! xJr_ƣSDI+:ZC>NWfek& tr6ѭg2U|ܞIЋͪɴnr༎GGBJfXllw59IPlȹsPxM4 8/a!2%FZ9q ZFˀfɡ=y$|o^]tgӍ`ԝ@$S6?JGt0Bg&`tg\*f]h(ME^ $Uj-oZ95ud>flP&fQ>/XʣҴQwJ\N6I̫y{Rp@ Mzdl!FYg|AA Sw{E%Ke-J1*I'y3P잆xPSttog\iίhyC8~*X\*h[Z w/."*G\늎52Ƃ`_\5MOf V'<`,H.]\漒Q h0"*v[Ҿ);[o+z% )J%umYu ^_KqK@ E4;}2HԚC@wa`A32o? 1[/#AVģ.ve>QwJCQU\zY~QrS -2ٱEd$zIFs=(u s>Ou>˲wgt,{~SAKLq/hlWS' 0`^X_ٕI50XNc5c ѕ Rsʙ].9&$L v΍HD*ਲ਼q :Kw"&'0fBSslBW'L9# Ó]Sp!@|.uQz+rUenwn5^;k/8%^PxO9~/]LgeBB֬fK9~\N%Zp+:EFƨSP:K,֖Oy%XF;硺PT !: LI{A$#Ld5O}qU@w缐"btw*b[[I!8Z[?&EzRFl&G䂿nqi>>ygD0f{+KEF6 jt@Jup|hG"!ޯ5jXIC=q&Hr'n4!wyUX`yT],Gܹ۟yӤ\͗Tn"^f Zå؁H菺}u -#eoO9ftSBzp_6n&$V/崲2[n~6ۄyS}'=}#g|bzQɑ[S=ɡ)fQWRhfac.x;HD({I}_j!Om툉f}@ 7` ٳe*Ο(qEl}e17kǶI@`T;C>vբ—lyRE 0=F1aȓqD9)3E-[=g R^JJ~h|}2;.[(XdTH.(%'<ƟA)KA@F̈́p/1z>wHdf@K Pd|j/L?/mhjUHE;eo:&z;]0j­\ vlYFv(6"/W o$]'TO 7%ta-qHD5MEPAn|Ṵ̌|D9 e7Az 9!\3 g"a`C'5JإSJo_>#yd%MrW]uiA,䛄m75bP2w78ɒq!J`݌eum;<]9 -N`qM`Ι=l6מ>2˿Eqwϵ Ih֡,5䇈~NW_XWcI%h΂\PR[M6&Q=O"vP+& 9 *}Pc2DʞTw$oEl%{G6v:*xGuӁOגftVqA@>b.,s:s^m $R!T0 sP :EcU?pІ5AhTNsiaT_3l!w.2 R51W.x7Hp XDG{.y@W3)4/}  Z7s\R\vsS , AzO @د^Q{8;\yE+|Z aj(s;`?d4Ea^ C6['!?~nBuo1 !rMØ_nrf0*P\RZXO3@cZQq]f讃" @$(yX"t"Q;' taJ: #C(lcCI0-=_f{lV#F:J0U+s-}EMH{'ШETu4;h1A[f 2~E>Ru,WXdOe۝[ U=E6?M :dY4bu"(N)銤v陀$NKFBMUS PqLiY7*> FHN8Ѐ,CcH,@;LVMg㎡+ 7f,W➮jRv v !(pω*p vS旾N1U? ėLÝW"px-Hb•B֓%PY=Tu0O/TR@ i9s` 0KBFvgI#0-svfiM-;d܄`|7biG@F-4iĠ_%LbS=縌CTnfQ{ؤ xw%n4ӓWـQ `L=J.؝jbb-B\6la8W;1z*b?"ɾYl證DgNy1|BC͚:XTdY+D BTVWvO #l*QlU~03@ӳMF*=@I:=38kZ$ /A`[)9<~0^*>Q-O0xMtzȤãk]2a2- hre*ae.Db/%xX)u!ˮ3'Uf[Fltͽ3UޛK@ Un67o!w+L\ְ>vTj7Kq&9qty$[$eJXa;u96f-p η3e$7lzǔ*7LT4!\E>W%eY+f}Z/ю61"sT5t Rl0@} APj(w_sľ?6p_# REF&kJf$lz3q[%XYqnSfխ \'^2 P>Z܈eu7jl P˸BmTeBWS:=?@yf }OJmٕŸd"'Y,k'X:9a`Pd[^ąQZ^ATBC(??CY*8t'/"XFIjKIOCAX;BQKGKSwEXE$LCLDSKVALD EXE$ONEPA@ SAFETY013.A  %[EVERHART.JTDEMO]JTDRIVER.OBJ_VAX5;11$ SYS$CLREFZPjZZQEXE$DEANONPGDSIZ FDTLOP& XWhШP` FDTXIT&P FDTBXT&ЏP EXE$FINISHIOC!P1UPU1Ѥ`1Ѥ`1Ѥ`1Ѥ`D1Ѥ`H1Ѥ`L1Ѥ`P1 1xUZZUNZUU^^YliЬЬЬ ЬЬi^ЎUЎZfYZfppp!P &P1P[ CTL$GL_PCBTZЫ ZתԪЫ ZתԪЎZЫ ĈЫČЫ CTL$GQ_PROCPRIVЫCTL$GQ_PROCPRIV3 CTL$GL_PHDTЫЫ Ы dЫѫ8fЫ8ZZЎZ&P[ka@'Ы4Q[PEXE$DEANONPGDSIZ  &P1\P[ CTL$GL_PCBTЫ ĈЫČЫ CTL$GQ_PROCPRIVЫCTL$GQ_PROCPRIV3 CTL$GL_PHDTЫЫ Ы dЫѫ8fЫ8ZZЎZ @ZѫHf1 ZY1YYY XЊW1YЊPЊQЊRЊS1Y2ЊPPWЊQPXR SЊRЊSW|~~|~(1Y jYYZ1Y jYYZ1yV  ((!P1UPUѤ`1Ѥ`1Ѥ`1Ѥ`D1Ѥ`H1Ѥ`L1Ѥ`P1Ѥ`T1Ѥ`X1Ѥ`\1Ѥ``1 1զ]VӏK &P9ZР ZתԪР ZתԪЎZՠ< P10 ӏ1  1Z&ժ9 SCH$GL_MAXPIXW SCH$GL_PCBVECVGfXX`W1 ЎP!ЏxQEXE$ALONPAGVARP?,bxb?ܢtR[[bPР,QQЁЁ ЁЁ<72=89GHJ"5JTDRIVERV01H 4-FEB-1997 12:18 VAX MACRO V5.4-3MACRO JTDRIVER*;skeleton driver implementing ucb linkagJTDRIVER ACP$ACCESS ACP$DEACCESS ACP$MODIFY ACP$MOUNT ACP$READBLK ACP$WRITEBLKCTL$GL_CCBBASE CTL$GL_PCB CTL$GL_PHDCTL$GQ_PROCPRIV DSC$K_DTYPE_T EXE$ABORTIOEXE$ALONONPAGEDEXE$ALONPAGVAREXE$DEANONPAGEDEXE$DEANONPGDSIZ EXE$FINISHIOCEXE$GQ_RIGHTSLISTEXE$LCLDSKVALID EXE$ONEPARMEXE$QIO EXE$QIORETURN EXE$SENSEMODE EXE$SETCHAR EXE$WRITECHKEXE$WRTMAILBOX EXE$ZEROPARMINI$BRK IOC$MNTVER IOC$REQCOM IOC$RETURN IOC$SEARCHDEV JT$DDT JT$DPT (JT_INT ( JT_UNSOLNTMMG$GL_TBI_FLAGS MMG$TBIA_FULL SCH$GL_MAXPIX SCH$GL_PCBVEC SCH$IOLOCKW SCH$IOUNLOCKSCH$QAST SMP$ACQUIRE SMP$ACQUIREL SMP$AL_IPLVEC SMP$GL_FLAGS SMP$RELEASE SMP$RELEASEL SYS$CLREF SYS$SETEF SYS$WAITFR . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP$$$105_PROLOGUE2PPQB*4&d884&4&,JTDRIVERQQQF11 4<@LNQP@Rr |\A&4&hF&4& 4&HPB* $$$115_DRIVERPu(4 IOC$RETURNd4 IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$MNTVER2 IOC$RETURN$& IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN4(GCEVflagLL|@y#|43f(43||43u#43!434343 43@43'43'o43 ACP$READBLK2 ACP$WRITEBLK2 ACP$ACCESS2 ACP$DEACCESS2` ACP$MODIFY2 ACP$MOUNT2EXE$LCLDSKVALID2 EXE$ZEROPARM2@ EXE$ONEPARM2 EXE$SENSEMODE2 EXE$SETCHAR2'o43%&GCEV|PTXPPXXЎPPXЎPZ[ŜZ[~ P SMP$GL_FLAGS SMP$ACQUIRE SMP$AL_IPLVEC@Ѫ[#p[ SMP$GL_FLAGS P SMP$RELEASEڎ[PЎ[ЎZѪHЪZ[̓ Ф|Q0<<ӏ@@<((ӻ!ZP1aUPU1OѤ`1DѤ`ŀ19Ѥ`1.Ѥ`D1#Ѥ`H1Ѥ`L1 Ѥ`P1 1ӏlPРP  @ 1զ1Z&ժ9 SCH$GL_MAXPIXW SCH$GL_PCBVECVGfXX`W1 ЎP!ЏxQEXE$ALONPAGVARP?,bxb?ܢtR[[bPР,QQЁЁ ЁЁժ9 SCH$GL_MAXPIXW SCH$GL_PCBVECVGfXX`W1 ЎP!ЏxQEXE$ALONPAGVARP?,bxb?ܢtR[[bPР,QQЁЁ ЁЁ0.) OCTA 4EXEC$INIT_000 00010000 00010007 00000008 ( 8.) LONG 2 PIC,CON,REL,GBL,NOSHR, EXE, WRT,NOVEC, MOD Q SYS$DOINIT 00010000 00010007 00000008 ( 8.) LONG 2 SYS$SYSDEVICE:[EVERHART.JT64V2]JTDRIVERNT.EXE;2 2-MAY-1996 20:26 Linker A11-39 Page 4kPsect Name Module Name Base End Length Align Attributesk---------- ----------- ---- --- ------ ----- ----------EXEC$INIT_001 00010008 0001000F 00000008 ( 8.) LONG 2 PIC,CON,REL,GBL,NOSHR, EXE, WRT,NOVEC, MOD Q SYS$DOINIT 00010008 00010008 00000000 ( 0.) LONG 2Q SYS$DRIVER_INIT 00010008 0001000F 00000008 ( 8.) LONG 2EXEC$INIT_002 00010010 00010013 00000004 ( 4.) LONG 2 PIC,CON,REL,GBL,NOSHR, EXE, WRT,NOVEC, MOD Q SYS$DOINIT 00010010 00010013 00000004 ( 4.) LONG 2 EXEC$INIT_CODE 00010020 0001028B 0000026C ( 620.) 2 ** 5 PIC,CON,REL,GBL,NOSHR, EXE, WRT,NOVEC, MOD Q SYS$DOINIT 00010020 000101F3 000001D4 ( 468.) 2 ** 5 Q SYS$DRIVER_INIT 00010200 0001028B 0000008C ( 140.) 2 ** 5 EXEC$INIT_LINKAGE 000102A0 00010357 000000B8 ( 184.) 2 ** 5 PIC,CON,REL,GBL,NOSHR, EXE, WRT,NOVEC, MOD Q SYS$DOINIT 000102A0 0001030F 00000070 ( 112.) 2 ** 5 Q SYS$DRIVER_INIT 00010320 00010357 00000038 ( 56.) 2 ** 5.EXEC$INIT_SSTBL_000 00010358 00010358 00000000 ( 0.) LONG 2 PIC,CON,REL,GBL,NOSHR, EXE, WRT,NOVEC, MOD Q SYS$DOINIT 00010358 00010358 00000000 ( 0.) LONG 2:EXEC$INIT_SSTBL_001 00010358 00010358 00000000 ( 0.) LONG 2 PIC,CON,REL,GBL,NOSHR, EXE, WRT,NOVEC, MOD Q SYS$DOINIT 00010358 00010358 00000000 ( 0.) LONG 2-EXEC$INIT_SSTBL_002 00010358 0001035B 00000004 ( 4.) LONG 2 PIC,CON,REL,GBL,NOSHR, EXE, WRT,NOVEC, MOD Q SYS$DOINIT 00010358 0001035B 00000004 ( 4.) LONG 2D ESYS$SYSDEVICE:[EVERHART.JT64V2]JTDRIVERNT.EXE;2 2-MAY-1996 20:26 Linker A11-39 Page 5 C +-----------------+ C ! Symbols By Name ! C +-----------------+lSymbol Value Symbol Value Symbol Value ------ ----- ------ ----- ------ ----- CTL$GA_CCB_TABLE 0000A520-X SCH$IOUNLOCK 00004070-RX CTL$GL_PCB 00000560-X SCH$POSTEF 00004110-RX CTL$GL_PHD 00000330-X SCH$QAST 00004120-RX CTL$GQ_PROCPRIV 00000490-X SMP$ACQUIRE 000043C0-RX DRIVER$DPT 0000C000-R SMP$ACQUIREL 000043D0-RX DRIVER$FDT 0000C238-R SMP$AL_IPLVEC 00008B30-RX DRIVER$INIT_TABLES 00000000 SMP$GL_FLAGS 00008420-RX EVXR64 00008740-R SMP$RELEASE 00004400-RX EXE$ALONONPAGED 000026C0-RX SMP$RELEASEL 00004410-RX EXE$ALONPAGVAR 000026E0-RX SYS$CLREF 000001A0-RX EXE$CONNECT_SERVICES 000029C0-RX SYS$K_VERSION 00000000-X EXE$DEANONPAGED 00002A10-RX SYS$K_VERSION_01 00000010-X EXE$DEANONPGDSIZ 00002A20-RX SYS$K_VERSION_02 00000020-X EXE$GL_STATE 00009900-RX SYS$K_VERSION_03 00000030-X EXE$GQ_RIGHTSLIST 00007E60-RX SYS$K_VERSION_04 00000040-X EXE$ILLIOFUNC 000069F0-RX SYS$K_VERSION_05 00000050-X EXE$WRTMAILBOX 00003160-RX SYS$K_VERSION_06 00000060-X EXE_STD$ABORTIO 000064A0-RX SYS$K_VERSION_07 00000070-X EXE_STD$FINISHIO 000065F0-RX SYS$K_VERSION_08 00000080-X EXE_STD$INSERT_IRP 00006620-RX SYS$K_VERSION_09 00000090-X EXE_STD$WRITECHK 00006800-RX SYS$K_VERSION_10 000000A0-X FDTBXT 0000CAF0-R SYS$K_VERSION_11 000000B0-X FDTLOP 0000CA90-R SYS$K_VERSION_12 000000C0-X FDTXIT 0000CAD0-R SYS$K_VERSION_13 000000D0-X GRANT_REVOKE 0000CDC8-R SYS$K_VERSION_14 000000E0-X INI$A_BUILD_TABLE 00010358-R SYS$K_VERSION_15 000000F0-X INI$A_VECTOR_TABLE 00010000-R SYS$K_VERSION_16 00000100-X INI$BRK 00003260-RX SYS$K_VERSION_17 0000A6F0-X INI$DRIVER_INIT 00010320-R SYS$K_VERSION_18 0000A700-X INI$SYSTEM_SERVICE 000102C8-R SYS$QIO 00000400-RX IOC$GL_DPTLIST 00007420-RX SYS$SETEF 00000460-RX IOC$RETURN 00003610-RX SYS$WAITFR 00000550-RX IOC$RETURN_SUCCESS 00003620-RX VCSTP15 0000CD70-R XIOC$RETURN_UNSUPPORTED 00003630-RX XIOC$SEARCHDEV 00003690-RX XIOC_STD$MNTVER 00006900-RX XIOC_STD$REQCOM 00006990-RX XJT$DDT 0000C1A0-R XJT$DPT 0000C1A0-R XLNM$SEARCH_ONE 00003940-RX XOTS$CALL_PROC 00006020-RX XOTS$DIV_I 00006D40-RX XOTS$MOVE 00006E50-RX XOTS$MOVEM 00006E60-RX XOTS$ZERO 00006FC0-RX XPMS$GL_KERNEL_DISPATCH_VECTOR 00009D20-RX XSCH$GL_MAXPIX 00007540-RX XSCH$GL_PCBVEC 000070B0-RX XSCH$IOLOCKW 00004060-RX  SYS$SYSDEVICE:[EVERHART.JT64V2]JTDRIVERNT.EXE;2 2-MAY-1996 20:26 Linker A11-39 Page 6 D +------------------+D ! Symbols By Value !D +------------------+2Value Symbols...2----- -----------00000000 X-SYS$K_VERSION 8-00000010 X-SYS$K_VERSION_01 ,-00000020 X-SYS$K_VERSION_02 -00000030 X-SYS$K_VERSION_03 (-00000040 X-SYS$K_VERSION_04 V-00000050 X-SYS$K_VERSION_05 .-00000060 X-SYS$K_VERSION_06 0-00000070 X-SYS$K_VERSION_07 -00000080 X-SYS$K_VERSION_08 -00000090 X-SYS$K_VERSION_09 0-000000A0 X-SYS$K_VERSION_10 -000000B0 X-SYS$K_VERSION_11 8-000000C0 X-SYS$K_VERSION_12 -000000D0 X-SYS$K_VERSION_13 -000000E0 X-SYS$K_VERSION_14 R-000000F0 X-SYS$K_VERSION_15 -00000100 X-SYS$K_VERSION_16 -000001A0 RX-SYS$CLREF 0-00000330 X-CTL$GL_PHD O-00000400 RX-SYS$QIO -00000460 RX-SYS$SETEF 0-00000490 X-CTL$GQ_PROCPRIV _-00000550 RX-SYS$WAITFR -00000560 X-CTL$GL_PCB ,-000026C0 RX-EXE$ALONONPAGED -000026E0 RX-EXE$ALONPAGVAR O-000029C0 RX-EXE$CONNECT_SERVICES I-00002A10 RX-EXE$DEANONPAGED -00002A20 RX-EXE$DEANONPGDSIZ -00003160 RX-EXE$WRTMAILBOX -00003260 RX-INI$BRK -00003610 RX-IOC$RETURN -00003620 RX-IOC$RETURN_SUCCESS -00003630 RX-IOC$RETURN_UNSUPPORTED -00003690 RX-IOC$SEARCHDEV -00003940 RX-LNM$SEARCH_ONE -00004060 RX-SCH$IOLOCKW --00004070 RX-SCH$IOUNLOCK -00004110 RX-SCH$POSTEF -00004120 RX-SCH$QAST -000043C0 RX-SMP$ACQUIRE $-000043D0 RX-SMP$ACQUIREL L-00004400 RX-SMP$RELEASE -00004410 RX-SMP$RELEASEL -00006020 RX-OTS$CALL_PROC -000064A0 RX-EXE_STD$ABORTIO -000065F0 RX-EXE_STD$FINISHIO -00006620 RX-EXE_STD$INSERT_IRP -00006800 RX-EXE_STD$WRITECHK  SYS$SYSDEVICE:[EVERHART.JT64V2]JTDRIVERNT.EXE;2 2-MAY-1996 20:26 Linker A11-39 Page 7 2Value Symbols...2----- -----------00006900 RX-IOC_STD$MNTVER E-00006990 RX-IOC_STD$REQCOM A-000069F0 RX-EXE$ILLIOFUNC -00006D40 RX-OTS$DIV_I -00006E50 RX-OTS$MOVE -00006E60 RX-OTS$MOVEM -00006FC0 RX-OTS$ZERO -000070B0 RX-SCH$GL_PCBVEC 0-00007420 RX-IOC$GL_DPTLIST -00007540 RX-SCH$GL_MAXPIX R-00007E60 RX-EXE$GQ_RIGHTSLIST -00008420 RX-SMP$GL_FLAGS $-00008740 R-EVXR64 O-00008B30 RX-SMP$AL_IPLVEC -00009900 RX-EXE$GL_STATE -00009D20 RX-PMS$GL_KERNEL_DISPATCH_VECTOR -0000A520 X-CTL$GA_CCB_TABLE -0000A6F0 X-SYS$K_VERSION_17 -0000A700 X-SYS$K_VERSION_18 -0000C000 R-DRIVER$DPT O0000C1A0 R-JT$DDT R-JT$DPT -0000C238 R-DRIVER$FDT -0000CA90 R-FDTLOP -0000CAD0 R-FDTXIT -0000CAF0 R-FDTBXT -0000CD70 R-VCSTP15 0-0000CDC8 R-GRANT_REVOKE R-00010000 R-INI$A_VECTOR_TABLE Y-000102C8 R-INI$SYSTEM_SERVICE $-00010320 R-INI$DRIVER_INIT -00010358 R-INI$A_BUILD_TABLE O$ Key for special characters above: +--------------------+ ! * - Undefined ! ! A - Alias Name ! ! I - Internal Name ! ! U - Universal ! ! R - Relocatable ! ! X - External ! ! WK - Weak ! ! M - Mask value ! +--------------------+ TSYS$SYSDEVICE:[EVERHART.JT64V2]JTDRIVERNT.EXE;2 2-MAY-1996 20:26 Linker A11-39 Page 8TC +----------------+ C ! Image Synopsis ! C +----------------+ gVirtual memory allocated: 00000000 00017FFF 00018000 (98304. bytes, 192. pages) AStack size: 0. pages0UImage header virtual block limits: 1. 2. ( 2. blocks) UImage binary virtual block limits: 3. 83. ( 81. blocks)0@Image name and identification: JTDRIVERNT X-3;System component mask: 0005B1B6 5 SYS$K_VERSION_MEMORY_MANAGEMENT 3,0 5 SYS$K_VERSION_IO 5,0_5 SYS$K_VERSION_PROCESS_SCHED 2,0 6 SYS$K_VERSION_SYSGEN 1,645 SYS$K_VERSION_LOGICAL_NAMES 1,005 SYS$K_VERSION_SECURITY 2,0E6 SYS$K_VERSION_STABLE 1,646 SYS$K_VERSION_MISC 1,646 SYS$K_VERSION_VOLATILE 1,646 SYS$K_VERSION_SHELL 1,645 SYS$K_VERSION_MULTI_PROCESSING 1,0 ;Number of files: 6.0;Number of modules: 6. ;Number of program sections: 25. ;Number of global symbols: 63. ;Number of image sections: 10.E:User transfer address: 000102A0;Number of code references to shareable images: 67.$Image type: PIC, SHAREABLE. Global Section Match=EQUAL, Ident, Major=27, Minor=15602481 nMap format: FULL in file SYS$SYSDEVICE:[EVERHART.JT64V2]JTDRIVERNT.MAP;2<Estimated map leng@ SAFETY013.A  ![EVERHART.JTDEMO]JTDRIVERNT.MAP;26V.th: 64. blocksE +---------------------+ E ! Link Run Statistics !TE +---------------------+ SPerformance Indicators Page Faults CPU Time Elapsed Time S---------------------- ----------- -------- ------------ U Command processing: 112 00:00:00.28 00:00:00.67 U Pass 1: 13 00:00:00.54 00:00:01.23 U Allocation/Relocation: 1 00:00:00.03 00:00:00.09 U Pass 2: 9 00:00:00.25 00:00:00.84 U Map data after object module synopsis: 3 00:00:00.07 00:00:00.06 U Symbol table output: 0 00:00:00.01 00:00:00.06 UTotal run values: 138 00:00:01.18 00:00:02.98 ZUsing a working set limited to 6800 pages and 2564 pages of data storage (excluding image)5Total number object records read (both passes): 530RW of which 38 were in libraries and 27 were DEBUG data records containing 25234 bytes 6Number of modules extracted explicitly = 21 with 0 extracted to resolve undefined symbols ?4 library searches were for symbols not in the library searched  SYS$SYSDEVICE:[EVERHART.JT64V2]JTDRIVERNT.EXE;2 2-MAY-1996 20:26 Linker A11-39 Page 9 4A total of 4 global symbol table records was writtenqLINK/NATIVE/BPAGE=14/SECTION/NOTRACE/NODEMAND/MAP/FULL/SHARE=JTDRIVERNT/SYSEXE=SELECT/NOSYSSHR JTDRIVERNT.OPT/OPT0CLUSTER=JTDRIVER,,,-" jtdriver_264ntv2.obj,evxr64.obj,-! ALPHA$LIBRARY:STARLET/INCLUDE:(-0 SYS$DOINIT,- SYS$DRIVER_INIT)!.! set psect options$!EBPSECT_ATTR=_AMAC$CODE,PIC,USR,CON,REL,GBL,NOSHR,EXE,RD,NOWRT,NOVECEPSECT_ATTR=_AMAC$LINKAGE,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC$>PSECT_ATTR=$CODE$,PIC,USR,CON,REL,GBL,NOSHR,EXE,RD,NOWRT,NOVEC>PSECT_ATTR=$LINK$,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC>PSECT_ATTR=$PLIT$,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC=PSECT_ATTR=$OWN$,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC @PSECT_ATTR=$GLOBAL$,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVECPSECT_ATTR=EXEC$INIT_CODE,NOSHR GPSECT_ATTR=EXEC$INIT_LINKAGE,PIC,USR,CON,REL,GBL,NOSHR,EXE,RD,WRT,NOVECTFPSECT_ATTR=$LINKAGE,NOPIC,CON,REL,LCL,NOSHR,NOEXE,NOWRT,NOVEC,MOD,PAGEFPSECT_ATTR=$$$115_LINKAGE,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC!Q! collect stuff ! 6COLLECT=NONPAGED_READONLY_PSECTS/ATTRIBUTES=RESIDENT,- _AMAC$CODE,- EXEC$NONPAGED_CODE,- $$$115_DRIVER,- $CODE$7COLLECT=NONPAGED_READWRITE_PSECTS/ATTRIBUTES=RESIDENT,-0 _AMAC$LINKAGE,-E EXEC$NONPAGED_DATA,- EXEC$NONPAGED_LINKAGE,-  $$$105_PROLOGUE,- $$$110_DATA,- $$$115_LINKAGE,-1 $PLIT$,- $GLOBAL$,- $OWN$,-R $LINK$>COLLECT=INITIALIZATION_PSECTS/ATTRIBUTES=INITIALIZATION_CODE,- EXEC$INIT_LINKAGE,-S EXEC$INIT_CODE,- EXEC$INIT_000,-P EXEC$INIT_001,-  EXEC$INIT_002,-  EXEC$INIT_SSTBL_000,-$ EXEC$INIT_SSTBL_001,-0 EXEC$INIT_SSTBL_002 !*[EVERHART.JTDEMO]JTDRIVERNT.OPT;1+, . / 4G J- 0123KPWO56s7`Gڍ89GHJCLUSTER=JTDRIVER,,,-" jtdriver_264ntv2.obj,evxr64.obj,-! ALPHA$LIBRARY:STARLET/INCLUDE:(- SYS$DOINIT,- SYS$DRIVER_INIT)!! set psect options!BPSECT_ATTR=_AMAC$CODE,PIC,USR,CON,REL,GBL,NOSHR,EXE,RD,NOWRT,NOVECEPSECT_ATTR=_AMAC$LINKAGE,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC>PSECT_ATTR=$CODE$,PIC,USR,CON,REL,GBL,NOSHR,EXE,RD,NOWRT,NOVEC>PSECT_ATTR=$LINK$,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC>PSECT_ATTR=$PLIT$,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC=PSECT_ATTR=$OWN$,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC@PSECT_ATTR=$GLOBAL$,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVECPSECT_ATTR=EXEC$INIT_CODE,NOSHRGPSECT_ATTR=EXEC$INIT_LINKAGE,PIC,USR,CON,REL,GBL,NOSHR,EXE,RD,WRT,NOVECFPSECT_ATTR=$LINKAGE,NOPIC,CON,REL,LCL,NOSHR,NOEXE,NOWRT,NOVEC,MOD,PAGEFPSECT_ATTR=$$$115_LINKAGE,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC!! collect stuff!6COLLECT=NONPAGED_READONLY_PSECTS/ATTRIBUTES=RESIDENT,- _AMAC$CODE,- EXEC$NONPAGED_CODE,- $$$115_DRIVER,- $CODE$7COLLECT=NONPAGED_READWRITE_PSECTS/ATTRIBUTES=RESIDENT,- _AMAC$LINKAGE,- EXEC$NONPAGED_DATA,- EXEC$NONPAGED_LINKAGE,- $$$105_PROLOGUE,- $$$110_DATA,- $$$115_LINKAGE,- $PLIT$,- $GLOBAL$,- $OWN$,- $LINK$>COLLECT=INITIALIZATION_PSECTS/ATTRIBUTES=INITIALIZATION_CODE,- EXEC$INIT_LINKAGE,- EXEC$INIT_CODE,- EXEC$INIT_000,- EXEC$INIT_001,- EXEC$INIT_002,- EXEC$INIT_SSTBL_000,- EXEC$INIT_SSTBL_001,- EXEC$INIT_SSTBL_002 *[EVERHART.JTDEMO]JTDRIVERX.LNK;3+, . / 48 t- 0123KPWO567 *~89GHJ8$LINK/NATIVE/BPAGE=14/SECTION/NOTRACE/NODEMAND/map/full-8/SHARE=JTDRIVER/SYSEXE=SELECT/NOSYSSHR jtdriverx.opt/opt *[EVERHART.JTDEMO]JTDRIVERX.OPT;7+, . / 4G B- 0123KPWO56얄7+~89GHJCLUSTER=JTDRIVER,,,- jtdriver.obj,evxr64.obj,-! ALPHA$LIBRARY:STARLET/INCLUDE:(- SYS$DOINIT,- SYS$DRIVER_INIT)!! set psect options!BPSECT_ATTR=_AMAC$CODE,PIC,USR,CON,REL,GBL,NOSHR,EXE,RD,NOWRT,NOVECEPSECT_ATTR=_AMAC$LINKAGE,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC>PSECT_ATTR=$CODE$,PIC,USR,CON,REL,GBL,NOSHR,EXE,RD,NOWRT,NOVEC>PSECT_ATTR=$LINK$,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC>PSECT_ATTR=$PLIT$,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC=PSECT_ATTR=$OWN$,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC@PSECT_ATTR=$GLOBAL$,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVECPSECT_ATTR=EXEC$INIT_CODE,NOSHRGPSECT_ATTR=EXEC$INIT_LINKAGE,PIC,USR,CON,REL,GBL,NOSHR,EXE,RD,WRT,NOVECFPSECT_ATTR=$LINKAGE,NOPIC,CON,REL,LCL,NOSHR,NOEXE,NOWRT,NOVEC,MOD,PAGEFPSECT_ATTR=$$$115_LINKAGE,PIC,USR,CON,REL,GBL,NOSHR,NOEXE,RD,WRT,NOVEC!! collect stuff!6COLLECT=NONPAGED_READONLY_PSECTS/ATTRIBUTES=RESIDENT,- _AMAC$CODE,- EXEC$NONPAGED_CODE,- $$$115_DRIVER,- $CODE$7COLLECT=NONPAGED_READWRITE_PSECTS/ATTRIBUTES=RESIDENT,- _AMAC$LINKAGE,- EXEC$NONPAGED_DATA,- EXEC$NONPAGED_LINKAGE,- $$$105_PROLOGUE,- $$$110_DATA,- $$$115_LINKAGE,- $PLIT$,- $GLOBAL$,- $OWN$,- $LINK$>COLLECT=INITIALIZATION_PSECTS/ATTRIBUTES=INITIALIZATION_CODE,- EXEC$INIT_LINKAGE,- EXEC$INIT_CODE,- EXEC$INIT_000,- EXEC$INIT_001,- EXEC$INIT_002,- EXEC$INIT_SSTBL_000,- EXEC$INIT_SSTBL_001,- EXEC$INIT_SSTBL_002'*[EVERHART.JTDEMO]JTDRIVER_264NTV2.OBJ;7+, .~/ 4~{6- 0123KPWO|56<Ց7@U^'ۑ89GHJDDJTDRIVERV02A29-SEP-1996 21:26AMAC V3.0-20  . ABS . . BLANK . $ABS$ $$$110_DATA $$$105_PROLOGUE  $$$115_DRIVER $$$115_LINKAGE0  DRIVER$DPT( JT$DPT( JT$DDT IOC$RETURN_SUCCESSIOC_STD$MNTVER IOC$RETURN IOC$RETURN_UNSUPPORTED EXE_STD$INSERT_IRP0  DRIVER$FDT EXE$ILLIOFUNC SMP$GL_FLAGS SMP$AL_IPLVEC SMP$ACQUIRE SMP$RELEASE SCH$GL_PCBVECEXE_STD$ABORTIO SCH$GL_MAXPIXEXE$ALONPAGVAR SMP$ACQUIREL EXE$DEANONPGDSIZ SMP$RELEASEL CTL$GL_PHD CTL$GA_CCB_TABLE CTL$GL_PCB(PMS$GL_KERNEL_DISPATCH_VECTORSYS$QIO SYS$SETEFCTL$GQ_PROCPRIV SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCK SYS$WAITFR SYS$CLREF EXE_STD$FINISHIOEXE$WRTMAILBOX EXE_STD$WRITECHKIOC_STD$REQCOMSCH$QASTEXE$ALONONPAGED EXE$GQ_RIGHTSLISTEXE$DEANONPAGEDINI$BRKLNM$SEARCH_ONE SCH$POSTEF OTS$MOVEMOTS$ZEROOTS$MOVE OTS$CALL_PROC OTS$DIV_I(J`&FDTLOP(J'FDTXIT(J'FDTBXT(JP`pVCSTP150J GRANT_REVOKEX X = x4=44>IOC$RETURN_SUCCESS4>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS=>IOC_STD$MNTVER> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN_UNSUPPORTED> IOC$RETURN_UNSUPPORTED=> IOC$RETURN>IOC$RETURN_SUCCESS=>EXE_STD$INSERT_IRP=P4@4=( GCEVflagL|> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC 4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC4P44P44> EXE$ILLIOFUNC> EXE$ILLIOFUNC4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC= %&GCEV =0(,4 4=4= JTDRIVERX= 4=  =#~^^~ (0޴8GC1'F1#D?#vq KCWpJ:_#Fxq@K&&""Yp K_#8G&H"LƲ|SJX&CCC?G:GX&?#DXƢw1 KVRJFXƲ\@#X0KG\#D\FvSK#_G\G\F_#D\WRJF\沀&?G:G&G^~ (0ޤ8@#k#~^^~ (0޴8G(C [C?'# Z#Fx9#C&CCG^~ (0ޤ8@#kGG#^^~ GE#GG G|!G-GpHG%0M8m#@Zk #ʢ0B)$j!M:.  M#(mpHG@Zk #/#GGGFGGC^~ #kͦGGV@GFGGG*'x#08CJ G_ Gp#~^^ ~(08޴@HP>X^`~hpx޵GGCCcCCp`Kp`GGn#@G^ ~(08ޤ@HP>X^`~hpxޥ#k$G0A_HGJ?GvJLŢ&@"FHGJ@ SAFETY013.A  '[EVERHART.JTDEMO]JTDRIVER_264NTV2.OBJ;7~~>GJ`GvJ_#Pn##X_#pn##q@dCHH%0 Gpn##e@ӸP.S/JV KFC4CGpn##U@Ө8E/;/dEKY KYGC4zC@.Ce/J\ eKFC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/%/e#KZ ;KGC4B.e/J\ eKFC4C& K9'K'K45 CH.#K/JV KFCFGG  / K0G4JJ . #JF4JJchGF_#~^ >ްPE-S/ >EI~Y K YE C G@@IנGV@ޠG 4\A^hD4zC#rޠ >^~.#x5GFx(4Cc#"H/d%#KE/K[ EKGCG<Ţd,g. HX J<DC4BG#pNxnCG$ #CCC?#@ZkGHE/'K/{##EKY KGYGC[G2# ~^>GG ,"7HG he,_ kE/eH[ EK{DCG`??#9DCwJ Dw Hb@@ D>.^ ~JJ@#pn##T@ӧ#L##>#$~ ^>ް ~^L%/O.8KW J7GCCN#` ~^>#<0N8nG! HC>#@Zk#>#5# NGG H ~G^> G@Zk>? ^ ~#0N#LE8nh@Zk##hE NG HG ~^>G @Zk>^ ~#>^ ~#hעX#Nn4G@ZkC#n#@##Nn>#4 G@Zk#>#GD 0N#8n>x? #@Zk#>#G9hn[y@#PNXn4G@ZkCTGGG^~GG pn#ޠ> ^$~(#>##GG# @>^ ~#?ÀGGGFGG#Al_! C N@IG ~^>G @Zk>x_#^ ~#4B#° C~^L%G D@HG"@HCA@C^~# +? E ? 0N8n#B @Zk# NC4+#nG@Zk#Ï# NG H ~G^> G@Zk^>C ~G#$KⳑP EP ""GhNGGP @ ^~ ޠ> ^$~(#@@`@@@@@@ @@@`#@$~ C ^ >ް ~^t#d+dX : #PNXn4G@ZkCTGGGCGG GGY G GC Y C@C GJ G*+ +# E K/ZYK K?t @*/*K`@ #D+ */ J/8KW XK7GCH+ /"KWN#L  !H?":4K#G G =) +p)+t+#8!G벬"07XN ~^>@Zk ~+!>^##G6A@!N#IGG ~^>@Zk>_#^ ~#F0G1(X+ EX.J `7J#J4wCX /?#v+KX KG`X ?G#`k# ~^>`+ \kG EX , HGNHGG@Zk>^ ~# +H?#GGGᢁ'{#0CD[G&"0CGn C$K#&[" G,ACK& 0A E CC##"~>C C@?#* # # E"" ʲ# _E ,IAK C# E# C`kI GC`#XK#^#.h #^#2"~#">#G#G#G#޲G.#G#LޢG4 ?#G8>@<^@~DHPG޶NTޢXn޶\ޢ` ޶(@Zkd#GTGGGCG~#G Gr#$K0n# G_@#CTGGG#GXG#Pn#Gd_#HnC<H{#[n#4C#@4 @#+#n#!K@#4+Cd+#NnG G@Zk## C^~G ޠ> ^$~(#>#G>#GC#Nn">#?#@ZkGG#>#GG##   GtGGGGLG#IGC^~n# ޠ> ^$~(# C>#G>##Gd ~#G@#TGGG~## G,~(^G$>G   Pn#ް ~^>#XG_#C#n#%@4 @#K#n#A@#4+CN#nG@Zk#>^ ~ޠ $>(^,~0#|#n#@4 @#`0N C8n@? #@Zk#XN C@?"GG@Zk@?#4)*G4+Bd+GNGnGC G#@Zk#@.JF4JJ @/ #YKPG4JJnC^C~ ޠ> ^$~(# CC>#G>####G ~^G> ްC~#^>Gpn#>^ ~ޠ $>(^,~0#^ @ӱ/V K6D .X J8G*/Z 7KGY/V KFGY. +KW JFY>GG#^^~ (޴08@>H^P~X Gm#_C Cm#+@CC^~ (ޤ08@>H^P~X`#kGGG#^^~ (0޴8@H>P^X~` Gh#-@K!>9#HK0XC J!*-*IJ! G >#^~ (0ޤ8@H>P^X~`hp#k05 A0U A0u AJ/G@K#Dkm#JKJ!(GK, /IGHY KJ!DCGGC@0@#ͦGt0 A* J!#*@KGDkCGJ!CGGm#q@#JJ!jJ!G0@G0#@M GGpt?E0`C: ,*/#@Km# HDkZ *KJ!D*,.CG*HX JC8DCGJ!CGG:@J,#j/JH\ jKJ!\Dj,*/CGjHZ *K0@zDCGJ!0#@GGJ"GG#?#m#@#G[?E0ՀC ?E0@CZ ..VJ>WJ>M*-*I G IAH*-*I G IACG#XD\CDR&"DC"C#D8D&CCl"#6D wHC>C @"@C]%,]"6H;GB>Y">G! HC#@!C>Y%,7H/GCGޢ!CG G0 @6J?>$@ @!C>!CGG 0 @6J?$@ @CGG>##GG#k^%/\ 6KP^X~` Gh#hM,~(^$> Z#ް ~^>Hk:0yC#@K! J!*-*IJ! G >^ ~ޠ = $>(^,~0#^~ (0ޤ8@H>P^X~`hp#k05 A0U A0u AJ/JKJ!(GK, /IHY KJ!DCG0 A! ,/ HV KJ!D*,CJ/G*H[ JKJ!;DJ,C /GJHY KJ!YDj,C.GjHW JJ!wDCG0 A! ,J/ H[ JKJ!D*, /CG*HY KJ!9DJ,.CGJHW JJ!WDj,j/CGjH\ jKJ!|DCGà0 A*-C*IG G$ IAGJG vJ 0A CA).)JG05 B k#|Ge0 Ah*-*I G IA^< Mm0C< G@Zk>C.C_#JxQ@K M#\K!G"_D"{qJCYP K8G"G_D\pKG> (m~@Zk~ >#CFG|'91 C|' |&i#|0B|Hk$# G5G2/)/"KZ ;KGC.J+(/vJY(K6G+ h#(?GE H/Z[K*` H?H# "E/K&@\KvGuJG%@#?#EH/XK#ZXK;GwKWG"H?0M8m@Zki/\ vKFG / JX KG ? (/Y ;K (?/Y KyG JX KG?.W J7G KV JF>à#^^~ (޴08@>H^P~X G#`>m##G@# Ck#jm#G@#a>#^~ (ޤ08@>H^P~X`#k#m#@#4+CM#mG@Zk#G#^^~ GGGGGG G  M"(m?#@ZkMmG"?#@ZkGJ_CJ G@_!M#m ~^>? @Zk>^ ~#^~ #kGGG#~^ ^(~08@޴HPX>`^h~px GGwHAAD/KK?4C0MC8mG"@ZkG#~^ ^(~08@޴HPX>`^h~px GG @m#;@G ^(~08@ޤHPX>`^h~px#kGGG#~^ ^(~08@޴HPX>`^h~px GG$ m#@G ^(~08@ޤHPX>`^h~px#kGGG#^ GGMCmC#?#@ZkG#kGGp#~^^ ~(08޴@HP>X^`~hp Gx޵G#CCCC#Pm#1_#Gpm##I@G^ ~(08ޤ@HP>X^`~hpxޥ#kdC'He#|GDP%4YC84CĢ@4BdE4zC$47CĢe4BD4XCƢJ6JJ45B C# m#u@4EA#V#^#d>C C#GciPm#CI# )  (â >ްF#_#< :@mZ'@CCMCCG#?#"4C@Zk#Gޠ >#TGGGCG#G^#&G G GF|ɢ61B|ɲ#||J0@C|J#  gpm##@aޠ GC >#MC#m?##@Zk#GNGGG#^^~ (0޴8@H>P~X G#m#>#@#z` C-#k #4GG6Jtd^ +/8KY8K@KVGvXK6G +? K G@J:1@CJ@ . "4G;`KJWJKG{KF > K G@ 81C ^# ˢ GIJkͦd +1GpKtD ˢIJ8kF0zC8K G# m#^#y@#m#^## Gb@0 @#+#m#!@#4+MCm#G@Zk#>#^~ (0ޤ8@H>P~X`#kà#^^~ (0޴8@H>P~X G#m#>#-@#9P C-kGtd KD pM ˢѲkq+Gp$t KD8 0C8K G#m#^#@#^# G>#^~ (0ޤ8@H>P~X`#k =G#^^~ (޴08@>H^P~X G#->@K!9#HK0XC J!*-*IJ! G >#^~ (ޤ08@>H^P~X`#k05 A0U A0u AJ/JKJ!(GK, /IHY KJ!DCG0 A! ,/ HV KJ!D*,CJ/G*H[ JKJ!;DJ,C /GJHY KJ!YDj,C.GjHW JJ!wDCG0 A4 ,J/@K HDk[ JKJ!G*, /GD*HY KJ!CJ,/G9DJHV KJ!VDj,J/CCjH[ JKC{DCCGCGGJ! GGJ"GG#?#m#@#G|0 A*-*I G IAu0 Ax*-*I G IAnGp#~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf`K;gKgK45`CG0m#@G^ ~(08ޤ@HP>X^`~hpxޥ#kG#_#:GGJGvJ#m##_#G m##@dC`HŢFPe/S%/eKZ %KzGC4C8.;/JV KFC4C@E/C/dEKY KYGC4zC.E/#J[ \KFC4B./$JV KFC47C%/#.d8KW J7GC4yCE//EKY KYGC4CƢJ6JJ45B?'9#VH.KE/J[ EKFC0FNFL#m#(~$> ް ~^># @ #/# "^4G .;`KJWJKG{KF > @ G@ 81C  / `#4G9 KK\KJFyJG ?@ @ G@ʢ61Bʲ^#<` G`>^ ~ޠ $>(~,#HE/K/EKY KYGCPGK >^ ~ޠ $>(~,###GMG# mC#C?#@ZkGF%#~^ >ް@E-C/ >EIV K~ VE C G@Ϡ@IG[@ޠGH4ZA^ (48C#âFòޠ_"?" >^~###^#~GG"pD @B11 B`GGG0# G ~G^> CGzGw@# ,:H@he,k.G?#eHW J^ ~#DE-D#GE/\I[ \K [E C G@@*"G=| ;$9#ͦ ްGϠG\@G @e/C%/eKZ %KzGC4xC'1@C.@.V JWJC>@>ޠ #D@#m# ް~#e@#~ ޠ#4u@~#^# G G% #G]>^ ~## MCCG$ (m#CC?#@ZkG/Y K9DrGp#~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf`K;gKgK45`CG0m#@G^ ~(08ޤ@HP>X^`~hpxޥ#kGJ@GvJ?#m##_# m##@dC`HGP.Se/J\ eKFC4B8%/;.D%KX J8GC4YC@/CE/ĢK[ EKGC4B//"$KV KGC48C%/.d%KX J8GC4yCe/E#/ĢzKY KyGC4B/E/K[ EKGC4BK8KK45C _'Z#FH"FEH.Ke/&"J\ eKL%#FCF:FLE-O.YIX J XE C G0@$ HG! HC@@d4C%#~^ >ްPE-S%/ >EIZ %K~ ZE C G|@Ϡ@IGX@ޠGs4WA^Ȣ4Bj#`He/K%/eKZ %KzGCaGA#_"?"GG"pD @B11 BFG.G_"?"GG"pD @B11 BGGG #@/YK PGH.Ke/J\ eKFCF /#8Kp G `/ #yK [yKT@GvKvG `?#GHe/K%/#eKZ %KzGC|G#_"?"GG" t?=pD @B11 BFGG#GGޠT" >^~###^#~TE-We/VI\ vK \E C GI@JBGF|*D $ B# ްGϠGV@G P/SE/(K[ EKGC4C'1@S.P/W JS>XKP?ޠ #DPŢ#m# ް~#@#4@~ ޠ#c# G gE |E TfEc4u@~#^# G G #Gޠ >^~#$#GMG# mC#C?#@ZkGP# MC@ SAFETY013.A  '[EVERHART.JTDEMO]JTDRIVER_264NTV2.OBJ;7~<>-CG$ (m#CC?#@ZkG?FGU.X JXG%.W J7G/.X JXG1 KW JF>1GG#^ Gm#@#kGG#^޴ (>0^8 G#m#^G > Cް#_ ##CCG@mZGACCM#?#G"4C@Zk #Gޠ >^#ޤ (>0^8@#kM ޠCCC >C^#m?#@ZkGGp#~^^ ~(08޴@HP>X^`~hp!x޵GCCCCCG0m#_G^ ~(08ޤ@HP>X^`~hpxޥ#kGf_'Z#`K;gKgK45`C#:GGJGvJ#m##>_# m##W_dCĢP4B8E/;/dEKY KYGC4zC@.Ce/J\ eKFC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/%/e#KZ ;KGC4B.e/J\ eKFC4C& K9'K'K45 C#~^ >ް8E-;. >EI~X J XE C G@`ͦ@I֠G\@ޠG h4[A^H$4YC#H/K.ޠKW JGC >^PG~#9He/K%/#eKZ %KzGC|GX#GYG_"?""pD @B11 BFGMGGIGH/"KE/`K[ EKGCGG/"KGB#0m#G# _#_"?"GG"pD @B11 B@GGG_"?"GG"pD @B11 BGGG#.JWFG0m##_#0m#G#z_þ#d%#(~$^ >ް ~^>dE-g.YIX J XE C GK@ CDJ GG@TJ GBB) GCw`K4IA<<E-<E#?/ CZIY K YE C G2@F/|ʢ-$+#m ްGՠGZ@G 8%/;.Ȣ%KX J8GC46C'1@;e/8/[ eK;e?\K8?ޠ #D8E@#@m# @#>^~ ޠ >$^(~,#QG#0m#G#_kH%/K.%KX J8GC$GE/`#K`pG?H.K/@#JV KFCF @/#XKZXK!G|xK\G@?`e/d"c/eKY K[eKYGC:1@CwEKX KwG EKGc?`e?@Dd.ge/`E/J\ vKc/ZEKFCyJX KYG J`#Gc?`E?.J`VJTGxJF`>##ް ~^.J0FlG` G]DȠGZ%/.## M8KW J>G7G>C ^(mG(~@Zk/GE/0@K[ EK>GC> ^4@(~0#,/HY KDCG."/JV KFC4@Fd-g%/de#IZ ;KECGDGTGCwJ4@C4@He/K%/#eKZ %KzGC|G."J/F^~ ޠ#p/V KGy@/[ \KF /Z ;KG8.W J7GC xKV JF>C /Z ;KGf JY ;K8G ?f@/[ \KFo`/\ vKFGGG#^^~ (0޴8@H>P^X~` Ghx? Mm@Zk^~ (0ޤ8@H>P^X~`hp#k#G G ~#^$K>-I=H??? ?(?0?8?@?H?P?X?`?h? LO=p?x-Ix=^> ~ C#Gt#G(~#$^ >ް ~^>bdG8  G! A! K!! +!  A! Kt  K+k -G $ (˰,0 4+ 8 I<K @ IDKH+L GDPK$T+8 G4X ,!G H\L`#M Cm~x <C#G@Zk#_'~Z# #)m?%)!G$:GFGGFGGG/k"?#(`M#m@Zk#GK"?#@M#m@Zk#GGt `MChmx? #@Zk#>^~ ޠ >$^(~,#&TGGGĢGGFIJ#^~ Ge## G+0C0u Bk"M?#m@Zk8MG@mC$? @Zk ~ #k#^~ Ge## G+0C0u B0 Bk"M?#m@Zk(MG0mC$? @Zk ~ #kGG#^^~ (0޴8@H>P^X~` GhHG`^~ (0ޤ8@H>P^X~`hp#kXM? `m@Zk#G G ~#^$K> #-I=?85C?? ?(?(9#H??-I=^> ~G#t#pb C(~G$^# >ް ~^>bdG8  G! A! K!! +!  A! Kt  K+kG $ (˰,0 4+ 8 I<K M@ )x+ D HK # )/ -8KZ I #:GCL+)/8KP+WTKG$X+\ 8 G4A`K,!G H!d+Lh#<ˢ.#,~(^$> ް ~^>C G@| G0@ J+ G@MHGG@Zk>^ ~ޠ $>(^,~0##M Cm~ DC#G@Zk#~ #*-'?%#)!GFFGGGGGG/+", hMpm#?#@Zk#G ""xMm#?#@Zk#G #t MC m? @Zk#>^G~ ޠ >$^(~,#TGGGGGGDIGD G-Z I:GQGG#^^~ (0޴8@H>P^X~` Gh? HMPm@Zk^~ (0ޤ8@H>P^X~`hp#k#G G ~#^$K> #-I=?85C?? ?(?(9#H??? ?(-I(=^> ~G#t#pb C(~G$^# >ް ~^>bdG8  G! A! K!! +!  A! Kt  K+kG $ (˰,0 4+ 8 I<K M@ )x+ D HK # )/ -8KZ I #:GCL+)/8KP+WTKG$X+\ 8 G4A`K,!G H!d+Lh#<ˢ.#,~(^$> ް ~^>C G@| G0@ J+ G@MHGG@Zk>^ ~ޠ $>(^,~0##M Cm~ DC#G@Zk#~ #*-'?%#)!GFFGGGGGG/+", XM`m#?#@Zk#G ""hMpm#?#@Zk#G #t MCm? @Zk#>^G~ ޠ >$^(~,#TGGGGGGDIGDk4 `G"`.J /vJY K6G@# ?D//KY K\KyGCpGyzKX KG zKG?? G-Z I:G0Åk/\ vKFG / JX KG ?p#~^^ ~(08޴@HP>X^`~hp Gx޵GCCCC m#_G^ ~(08ޤ@HP>X^`~hpxޥ#kGp#~^^ ~(08޴@HP>X^`~hp Gx޵ $_=GCCcCC`K HgG4KDPM XmGCCCC?#@ZkGG^ ~(08ޤ@HP>X^`~hpxޥ#k##D MDGG(m?DDD?##@Zk#Td#GC#(G,~(^$> ް ~^>G G-4U@+50 C5 G% 6BŲMm@Zk2 ~?#PM  >G^CޠCC C$>(^,~0#Xm@ZkG>^ ~ޠ $>(^,~0#|PMCXmCCCC?#@ZkG|45@ C e4{APm#G @ ~?#M >G^CCޠ $>(^,~0#m#@ZkGZG0m#@GGG#^^~ (0޴8@H>P^X~` Gh^~ (0ޤ8@H>P^X~`hp#k# (~$^G >Gް ~^>##G-G pHG0M8m#@Zk#CK"4tD4%H GG GI @i8+ G 0CJ?'x9#0YC# "ŲE峐M#G?""2 @Zk##MGG!(*BGG%~^ >%!Gް#( ~^G>G H@ZkO!> AA^ !A ~@!# #*0(B0'B)+1`AJ!)!##G~"ޠ >^#(ͦ1# M #(mpHG@Zk#C/#GGGF^G>~G ޠ >$^(~,#8-GGY@GFGG]G GGG#^^~ (^0~8 G#C>8%#EG G !C|!GGG>C GٔH>GpHGBM#m@Zk #VHCHFj0kC?*'x#08CYJ GW@ͦU>C۔HM~#mpHG@Zk #ZHCH@G/#GGGFGG>#^~ (^0~8@#kGGW@GFGG* G*+JG0A@$ ( M#ĢGGZ FIJ0"@ CG$G?éÝýG`G #d~G ^#D!#0@A곑G##~^^ (޴08G CCCC G^ (ޤ08@#kGG#~^ ^(~08@H GGC( #X%_#-'@#?G:GX%"{1J#X MC-\0KZ# ͦGXE#4Ų ~^>##@Zk #>#C#MGG H ~G^> G@ZkM>^? ~#LEmh@Zk#hEMG HG ~^>G @Zk>^ ~# >^ ~#G ^(~08@HP#k >^ ~#ŢFŲà#^^~ (޴08@>H^P~X GGL%GG D@HG"@HCA@CA"@!08Cm# @a G`ˢ0BC??DD^~ (ޤ08@>H^P~X`#kCà#^^~ (޴08@>H^P~X G# C>`A G/%@4*l#*#G0<@<@F GqG`CM#m@Zk# C>#^~ (ޤ08@>H^P~X`#k#G# G ~$K^>.J>H??? .J >>^ ~#GG#^~ ޴(08>@^H~#>GL%GG D@HG"@HCA@C0 C>#^~ ޤ(08>@^H~P#k# #k#~^^~ (08 GGCCEGBFT xeG MG(m n=CCC?#@ZkGG^~ (08@#kG#^^~ (޴08@>H^P~X G#M,~(^$> ް ~^>$? Cem G@ZkXm#G_C~Xm#G>^ ~ޠ $>(^,~0#@^~ (ޤ08@>H^P~X`#k#~^ ^(~08@޴HPX>`^h~p GxGM Cm$? @Zk;#G# G ~$K^>.J>H??? .J >H(.J(>^> ~#By H0 C@Z@K8mYGB?#b_ 0Mwq KGĢ ŲXpKG@ZkpMxm"?#@ZkG G ^(~08@ޤHPX>`^h~px#kGG#^^~ (޴08@>H^P~X G#@M,~ C(^"$>?# ް ~^>#Hm#@Zk #G#G<GG#^^~ (޴08@>H^P~X!#@M,~"(^?#$> ް ~^>Hm@ZkGe#pMxm G~ ~^>C$? #@Zk#~>^ ~#`>^ ~ޠ $>(^,~0#^~ (ޤ08@>H^P~X`#kHkm#Xn_C?'ͦH%9#0+! &9F"5FLE G@$D HG! HC@@`0zC h.J` _#0B#0GG4K G@GHE'{# [G Gg`G#,Hv@h%G G ?#DCw@KDwH IAYAD5/5K^ ~ޠ $>(^,~0#j@Ӂ@K!G "|/zJJ!"[|KzG|?GzJG|/J!"[|KzG|?GyJ|/J![|KyG5GJ!|?#GvJ!Gz"|/zJ"J![|K zG|?@#D4k4K?#0YC@/K4k_'Z#@kDK@K!"8˲j0`GMT% GK w_#IC,HGq@K!G #[/yKJ!Z[K#YG[?GyK[/J!#Z[KYG[?GuK[/J!Z[KUG`'[?GJ!#GJ!VG#YyK[/J!Z[KYG[?f+'{#;G+@'{#+;G+ @GDKõÈɢF|$i#M ް,H@GנG\@GPeH0zC'1@Pޠ #DP%?>CͦCD+#hd HȲ@DK/YK L"HHk hL+/7K$(#x(hGD,H$0(4^>dGtJ88 G4TȲ<@,!G H<LA@H8 (mG!D(?#HL APH>^ ## M(C~C` #@Zk#~ #C5 >^ ~ޠ $>(^,~0#að(A/i#K0C 'A!I60YC#`MHG ~^>@ G@Zk>^ ~#ik/\ kKFm.Y JD/U K5GG\/ JZ \KYG\?;/ KY ;K5G;? .Y JDBE.W JWGcM/V K6GhGG#^^~ (޴08@>H^P~X G# m#,~ C(^$> ްC ~^>}_C@ A!@a!@!@!@!@!@!@!!@A!@a C!@ K G @j `*91 C* 䢁&"F(M"0m?#@Zk8k/GkK`1`C7 8.J`1uB2 8K0@'{#[F3 #> +G$ 8+_'Z#:G '#0BK\GK8 ?'9#G  &"G8K'{#[G @&"0BkvGk>#G8+'#8G8+G E81B7 #"8˲,~(^$> ް ~^>kGtd K0mD  ˢ ۲+;m#Gpt +$J_,~>^ ~ޠ $>(^0#88Hm#1C _f1@ m#n_G$ ~= >C C+*겼K J  (8ˢ1uB 8#c >gGް#m#_#@ SAFETY013.A  '[EVERHART.JTDEMO]JTDRIVER_264NTV2.OBJ;7~G>LG#@'GW'@>CG#P GpDCGޢGqD#DCDMmCCCC#?#"4C@Zk#GCޠ >#TGGGGd GG G/C$K G @ hK@h+9 *# K G@<1C(M#0m"#?#@Zk #G#G"m#KGtD +0M$  ˢGpIJktd m#ˢIJ^#_ #^# G >^ ~ޠ $>(^,~0#^~ (ޤ08@>H^P~X`#k# #m#_#XM#`mC# >GC##?#@Zk #G>##GG0@?#Gz# #m#_#XM#`mC#$ >GC##?#@Zk #GGޠ GC >#XMC#`m?##@Zk#GC>^ ~ޠ $>(^,~0#G#& CFG G|I:1@C|I@?#|)|0B|-9+/Z +KzGD9/V KFEGGG#?G~(^0^8~@ GHG= =]}  G#?G~(^0^8~@!HG= =]} G]G@#Cb`GG #=Z#GC^C?#m# @^CGG(0^8~@HP#k`#~8^@^H~PX`޴hpx>޵ GG= =(]0}CGGoG1`M2 m@Zk$OG0@M#m2 #@Zk#CTGGGGG CV@ !G Cw@KG(=GGA!GG#1`@ `P@GGGGGGr2@t@@0(H G8@^H~PX`ޤhpx>ޥ#k/GG G )IGG8MC@mC*@@ZkCGB 9"@#:GB Gz9H/B XKGZ G?B#W/nKB ZWKNGW#W?`H#G%.%JSGGM4qBFGABB@Zk xM@Zk#(ͦGG#G C @HMPm@Zkq[@C C}GDE0= #w`HMD"Ca@`HHGG4qBF qBAB@Zk xMDG@Zk  z$DG. 9HW JF>7/ KY 7K.G7?/Y K9F#^^~ (޴0~8 G# Mް@  ~^>#(m@Zk#e G?`M + K<k mX GG#@Zk M#(m#@Zk# ">{qJ^~ ޠ## M#^_ #G$ % \pKGm@Zk#^##GG^~ (ޤ0~8@#k>^~ ޠ#GG#^^~ (0~8 G#M ~m>@Zke G` +Gk`p+" K8'KK?D!.7JMGqK""@ZkG_ >  ~#$MmG@ZkMCm@Zk^~ (0~8@#k!/V 7K6F4<GL SMP$ACQUIRE4@m#P SMP$ACQUIRE4H@L SMP$ACQUIRE4pG SMP$RELEASE4xm#P SMP$RELEASE4@ SMP$RELEASE4GEXE_STD$ABORTIO4n#EXE_STD$ABORTIO4 @EXE_STD$ABORTIO4 G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4  G OTS$ZERO4  @ OTS$ZERO4 G8 EXE$ALONPAGVAR 4, n#EXE$ALONPAGVAR44 @8 EXE$ALONPAGVAR4 H G| OTS$ZERO4 x @| OTS$ZERO4 G SMP$ACQUIREL4 n# SMP$ACQUIREL4 @ SMP$ACQUIREL<  G EXE$DEANONPGDSIZ<  n#EXE$DEANONPGDSIZ<  @ EXE$DEANONPGDSIZ4, GH EXE$ALONPAGVAR44 n#EXE$ALONPAGVAR4D @H EXE$ALONPAGVAR4l G SMP$RELEASEL4p n# SMP$RELEASEL4 @ SMP$RELEASEL4 X G OTS$ZERO4  @ OTS$ZERO4 G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR< $ GD EXE$DEANONPGDSIZ< 8 n#EXE$DEANONPGDSIZ< @ @D EXE$DEANONPGDSIZ4 T G OTS$ZERO4  @ OTS$ZERO4G SMP$RELEASEL4n# SMP$RELEASEL4@ SMP$RELEASEL4 G4OTS$MOVE4 0@4OTS$MOVE4 lGOTS$MOVE4 @OTS$MOVE4 lGOTS$MOVE4 |@OTS$MOVE,GSYS$QIO,n#SYS$QIO,@SYS$QIO< GEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4,GL SYS$SETEF40n# SYS$SETEF4H@L SYS$SETEF< GEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4PGhEXE$ALONPAGVAR4Xn#EXE$ALONPAGVAR4d@hEXE$ALONPAGVAR4 pGOTS$MOVE4 @OTS$MOVE< GEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4 "G(" SCH$IOLOCKW4"m# SCH$IOLOCKW4$"@(" SCH$IOLOCKW4D"G" IOC$SEARCHDEV4"m# IOC$SEARCHDEV4"@" IOC$SEARCHDEV4#G# SCH$IOUNLOCK4#m# SCH$IOUNLOCK4#@# SCH$IOUNLOCK< p%G%EXE$DEANONPGDSIZ< x%m# EXE$DEANONPGDSIZ< %@%EXE$DEANONPGDSIZ4!%G% SYS$WAITFR4"%m#0 SYS$WAITFR4!%@% SYS$WAITFR4%G& SYS$CLREF4 %m#0 SYS$CLREF4&@& SYS$CLREF< $&GH&EXE$DEANONPGDSIZ< ,&m#0EXE$DEANONPGDSIZ < D&@H&EXE$DEANONPGDSIZ4#&G' OTS$CALL_PROC4$&m#` OTS$CALL_PROC4#'@' OTS$CALL_PROC<%h(G(EXE_STD$FINISHIO<&p(m#EXE_STD$FINISHIO<%(@(EXE_STD$FINISHIO4$*m# OTS$CALL_PROC4#*G + OTS$CALL_PROC4#+@ + OTS$CALL_PROC<%+G+EXE_STD$FINISHIO<&+m#EXE_STD$FINISHIO<%+@+EXE_STD$FINISHIO< -G.EXE$DEANONPGDSIZ< -m# EXE$DEANONPGDSIZ< .@.EXE$DEANONPGDSIZ<%6G6EXE_STD$FINISHIO<&6m#PEXE_STD$FINISHIO<%6@6EXE_STD$FINISHIO4 :GT:EXE_STD$ABORTIO4<:m#PEXE_STD$ABORTIO4P:@T:EXE_STD$ABORTIO<%AGAEXE_STD$FINISHIO<&Am#PEXE_STD$FINISHIO<%A@AEXE_STD$FINISHIO4AGAEXE_STD$ABORTIO4Am#PEXE_STD$ABORTIO4A@AEXE_STD$ABORTIO4$Cm# OTS$CALL_PROC4#CG4C OTS$CALL_PROC4#0C@4C OTS$CALL_PROC4xCGCEXE_STD$ABORTIO4Cm#EXE_STD$ABORTIO4C@CEXE_STD$ABORTIO49,LGhL OTS$DIV_I4:XLm#P OTS$DIV_I49dL@hL OTS$DIV_I4NGNEXE$ALONPAGVAR4Nm#EXE$ALONPAGVAR4N@NEXE$ALONPAGVAR4'PGPEXE$WRTMAILBOX4(Pm#EXE$WRTMAILBOX4'P@PEXE$WRTMAILBOX4hQGxQ SYS$CLREF4 pQm# SYS$CLREF4tQ@xQ SYS$CLREF4!QGQ SYS$WAITFR4"Qm# SYS$WAITFR4!Q@Q SYS$WAITFR< QGQEXE$DEANONPGDSIZ< Qm#EXE$DEANONPGDSIZ< Q@QEXE$DEANONPGDSIZ4pRGR SYS$SETEF4xRm# SYS$SETEF4|R@R SYS$SETEF< RGREXE$DEANONPGDSIZ< Rm#EXE$DEANONPGDSIZ< R@REXE$DEANONPGDSIZ4RGS SYS$SETEF4Sm# SYS$SETEF4S@S SYS$SETEF< SG SEXE$DEANONPGDSIZ< Sm#EXE$DEANONPGDSIZ< S@ SEXE$DEANONPGDSIZ4SGSEXE$ALONPAGVAR4Sm#EXE$ALONPAGVAR4S@SEXE$ALONPAGVAR4 hVG|VOTS$MOVE4 xV@|VOTS$MOVE4'VGVEXE$WRTMAILBOX4(Vm#EXE$WRTMAILBOX4'V@VEXE$WRTMAILBOX4\WGpW SYS$CLREF4 `Wm# SYS$CLREF 4lW@pW SYS$CLREF4!WGW SYS$WAITFR4"Wm# SYS$WAITFR4!W@W SYS$WAITFR< WGWEXE$DEANONPGDSIZ< Wm#EXE$DEANONPGDSIZ< W@WEXE$DEANONPGDSIZ4XGXEXE$ALONPAGVAR4Xm#EXE$ALONPAGVAR4X@XEXE$ALONPAGVAR4 [G[OTS$MOVE4 [@[OTS$MOVE4'[G[EXE$WRTMAILBOX4([m#EXE$WRTMAILBOX4'[@[EXE$WRTMAILBOX4t\G\ SYS$CLREF4 x\m# SYS$CLREF4\@\ SYS$CLREF4!\G\ SYS$WAITFR4"\m# SYS$WAITFR4!\@\ SYS$WAITFR< \G\EXE$DEANONPGDSIZ< \m#EXE$DEANONPGDSIZ< \@\EXE$DEANONPGDSIZ4`_G_EXE_STD$ABORTIO4h_m# EXE_STD$ABORTIO4_@_EXE_STD$ABORTIO<)_G`EXE_STD$WRITECHK<*_m# EXE_STD$WRITECHK<)`@`EXE_STD$WRITECHK4`G` IOC$SEARCHDEV4`m#  IOC$SEARCHDEV4`@` IOC$SEARCHDEV4`G0aEXE_STD$ABORTIO4(am# EXE_STD$ABORTIO4,a@0aEXE_STD$ABORTIO4paGaEXE_STD$ABORTIO4xam# EXE_STD$ABORTIO4a@aEXE_STD$ABORTIO<%aGbEXE_STD$FINISHIO<&bm# EXE_STD$FINISHIO<%b@bEXE_STD$FINISHIO44cGDc SMP$ACQUIRE48cm#P SMP$ACQUIRE4@c@Dc SMP$ACQUIRE4 cGcOTS$MOVE4 c@cOTS$MOVE4 cGpdOTS$MOVE4 ld@pdOTS$MOVE4 eG@e SMP$RELEASE40em#P SMP$RELEASE4IOC$RETURN_SUCCESS4>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS=>IOC_STD$MNTVER> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN_UNSUPPORTED> IOC$RETURN_UNSUPPORTED=> IOC$RETURN>IOC$RETURN_SUCCESS=>EXE_STD$INSERT_IRP=P4@4=( GCEVflagL|> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC 4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC4P44P44> EXE$ILLIOFUNC> EXE$ILLIOFUNC4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC= %&GCEV =0(,4 4=4= JTDRIVERX= 4=  =#~^^~ (0޴8GC1'F1#D?#vq KCWpJ:_#Fxq@K&&""Yp K_#8G&H"LƲ|SJX&CCC?G:GX&?#DXƢw1 KVRJFXƲ\@#X0KG\#D\FvSK#_G\G\F_#D\WRJF\沀&?G:G&G^~ (0ޤ8@#k#~^^~ (0޴8G(C [C?'# Z#Fx9#C&CCG^~ (0ޤ8@#kGG#^^~ GE#GG G|!G-GpHG%0M8m#@Zk #ʢ0B)$j!M:.  M#(mpHG@Zk #/#GGGFGGC^~ #kͦGGV@GFGGG*'x#08CJ G_ Gp#~^^ ~(08޴@HP>X^`~hpx޵GGCCcCCp`Kp`GGn#H@G^ ~(08ޤ@HP>X^`~hpxޥ#k$G0A_HGJ?GvJLŢ&@"FHGJ@ SAFETY013.A  *[EVERHART.JTDEMO]JTDRIVER_264NTV2.OBJ_A;22~h>GJ`GvJ_#Pn##X_#pn##@dCHH%0 Gpn##@ӸP.S/JV KFC4CGpn##@Ө8E/;/dEKY KYGC4zC@.Ce/J\ eKFC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/%/e#KZ ;KGC4B.e/J\ eKFC4C& K9'K'K45 CH.#K/JV KFCFGG  / K0G4JJ . #JF4JJchGF_#~^ >ްPE-S/ >EI~Y K YE C G@@IנGV@ޠG 4\A^hD4zC#rޠ >^~.#x5GFx(4Cc#"H/d%#KE/K[ EKGCG<Ţd,g. HX J<DC4BG#`NhnCG$ #CCC?#@ZkGHE/'K/{##EKY KGYGC[G2# ~^>GG ,"7H{G he,_ kE/eH[ EK{DCG`??#9DCwJ Dw Hb@@ D>.^ ~JJ@#pn##@ӧ#L##>#$~ ^>ް ~^L%/O.8KW J7GCCN#p ~^>#<0N8nG! HC>#@Zk#>#5# NGG H ~G^> G@Zk>? ^ ~#0N#LE8nh@Zk##hE NG HG ~^>G @Zk>^ ~#>^ ~#hעX#PNXn4G@ZkC#n#@##Nn>#4 G@Zk#>#GD 0N#8n>x? #@Zk#>#G9hn[y@#@NHn4G@ZkCTGGG^~GG pn#ޠ> ^$~(#>##GG#)@>^ ~#?ÀGGGFGG#Al_! C N@IG ~^>G @Zk>x_#^ ~#4B#° C~^L%G D@HG"@HCA@C^~# +? E ? 0N8n#B @Zk# NC4+#nG@Zk#Ï# NG H ~G^> G@Zk^>C ~G#$KⳑP EP ""GhNGGP @ ^~ ޠ> ^$~(#@@`@@@@@@ @@@`#@$~ C ^ >ް ~^t#d+dX : #@NHn4G@ZkCTGGGCGG GGY G GC Y C@C GJ G*+ +# E K/ZYK K?t @*/*K@ #D+ */ J/8KW XK7GCH+ /"KN#L  !H?":4K#G G =) +p)+t+#8!G벬"07XN ~^>@Zk ~+!>^##G6A@!N#IGG ~^>@Zk>_#^ ~#F0G1(X+ EX.Jm`7J#J4wCX /?#v+KX KGg`X ?G#`k# ~^>`+ \kG EX , HGNHGG@Zk>^ ~# +H?#GG*G(ᢁ'{#0CD[G&"0CGxn C$K#&[" G,ACK& 0A E CC##"~>C C@?#* # # E"" ʲ# _E ,IAK C# E# C`kI GC`#XK#^#.h #^#2"~#">#G#G#G#޲G.#G#LޢG4 ?#G8>@<^@~DHPG޶NTޢXn޶\ޢ` ޶(@Zkd#GTGGGCG~#G G#$K0n# G@#CTGGG#GXG#Pn#Gd_#LhΦC>CPN۔H~#4XnG@Zk #ZHCH@G/H#n#"<H ע4C-@4 @ n#@4+d+CNnG G@Zkhn#[G@>CٔH@N>4#HnG@Zk #XHCHGTGGGGG# C^~G ޠ> ^$~(#>#G>#GC#Nn">#?#@ZkGG#>#GG##   GtGGGGVG#GC^~n# ޠ> ^$~(# C>#G>##Gd ~#GZ@#TGGG~## G,~(^G$>G   Pn#ް ~^>#XG_#8hCעo#PN4XnG@ZkC#n##y@4 @##n#@#4+CN#nG@Zk#hn#[GS@#@NHn4G@ZkCTGGGGG>^ ~ޠ $>(^,~0#YGGGGFGGGn#8@4 @0N C8n@? @ZkN C@?"GG@Zk@_#4I*G4+Bd+GNGnGC G@ZkGGGGFGGõ/KG4JJ / #8K0G4JJ C^C~ ޠ> ^$~(# CC>#G>####G ~^G> ްC~#^>Gpn#>^ ~ޠ $>(^,~0# @O/V K6D .X J8G:*/Z 7KGCY/V KFGY. +KW JFY>à#^^~ (޴08@>H^P~X Gm#_C Cm#[@CC^~ (ޤ08@>H^P~X`#kGGG#^^~ (0޴8@H>P^X~` Gh#-@K!>9#HK0XC J!*-*IJ! G >#^~ (0ޤ8@H>P^X~`hp#k05 A0U A0u AJ/G@K#Dkm#JKJ!(GK, /IGHY KJ!DCGGC@0@#ͦGt0 A* J!#*@KGDkCGJ!CGGm#q@#JJ!jJ!G0@G0#@M GGpt?E0`C: ,*/#@Km# HDkZ *KJ!D*,.CG*HX JC8DCGJ!CGG:@J,#j/JH\ jKJ!\Dj,*/CGjHZ *K0@zDCGJ!0#@GGJ"GG#?#m#@#G[?E0ՀC ?E0@CZ ..VJ>WJ>M*-*I G IAH*-*I G IACG#XD\CDR&"DC"C#D8D&CCl"#6D wHC>C @"@C]%,]"6H;GB>Y">G! HC#@!C>Y%,7H/GCGޢ =!CG G0 @6J?>$@ @!C>!CGG 0 @6J?$@ @CGG>##GG#k^%/\ 6KP^X~` Gh#pM,~(^$> Z#ް ~^>Hk:0yC#@K! J!*-*IJ! G >^ ~ޠ $>(^,~0#^~ (0ޤ8@H>P^X~`hp#k05 A0U A0u AJ/JKJ!(GK, /IHY KJ!DCG0 A! ,/ HV KJ!D*,CJ/G*H[ JKJ!;DJ,C /GJHY KJ!YDj,C.GjHW JJ!wDCG0 A! ,J/ H[ JKJ!D*, /CG*HY KJ!9DJ,.CGJHW JJ!WDj,j/CGjH\ jKJ!|DCGè0 A*-C*IG G$ IAGJG vJ 0A CA).)JG05 B k#|Ge0 Ah*-*I G IA^< M m0C< G@Zk>C.C_#JxQ@K(M#\K!G"_D"{qJCYP K8G"G_D\pKG> 0m~@Zk~ >#CFG|'91 C|' |&i#|0B|Hk$# G5G2/)/"KZ ;KGC.J+(/vJY(K6G+ h#(?GE H/Z[K*` H?H# "E/K&@\KvGuJG%@#?#EH/XK#ZXK;GwKWG"H?8M@m@Zki/\ vKFG / JX KG ? (/Y ;K (?/Y KyG JX KG?.W J7G KV JF>à#^^~ (޴08@>H^P~X G#`Hm>[GC@#0M48mG@ZkC#m##@# C+#m#*G@#2aH #G7# M4(mG@ZkCTGGGGG>#^~ (ޤ08@>H^P~X`#kGGGGFGG#m#@#4+MCm#G@Zk#GGG#^^~ GGGGGG G  M"(m?#@ZkMmG"?#@ZkGJ_CJ G@_!M#m ~^>? @Zk>^ ~#^~ #kGGG#~^ ^(~08@޴HPX>`^h~px GGwHAAD/KK?4C0MC8mG"@ZkG#~^ ^(~08@޴HPX>`^h~px GG @m#;@G ^(~08@ޤHPX>`^h~px#kGGG#~^ ^(~08@޴HPX>`^h~px GG$ m#@G ^(~08@ޤHPX>`^h~px#kGGG#^ GGMCmC#?#@ZkG#kGGp#~^^ ~(08޴@HP>X^`~hp Gx޵G#CCCC#Pm#_#Gpm##I@G^ ~(08ޤ@HP>X^`~hpxޥ#kdC'He#|GDP%4YC84CĢ@4BdE4zC$47CĢe4BD4XCƢJ6JJ45B C# m#u@4EA#V#^#d>C C#GciPm#CI# )  (â >ްF#8_#< :@mZ'@CCMCCG#?#"4C@Zk#Gޠ >#TGGGCG#G^#&G G GF|ɢ61B|ɲ#||J0@C|J#  gpm##@aޠ GC >#MC#m?##@Zk#GNGGG#^^~ (0޴8@H>P~X G#m#>#@#z` C-#k #4GG6Jtd^ +/8KY8K@KVGvXK6G +? K G@J:1@CJ@ . "4G;`KJWJKG{KF > K G@ 81C ^# ˢ GIJkxͦd /= +1GpKtD ˢIJ8kF0zC8K G# m#^#y@#m#^## Gb@0 @#+#m#!@#4+MCm#G@Zk#>#^~ (0ޤ8@H>P~X`#kà#^^~ (0޴8@H>P~X G#m#>#-@#9P C-kGtd KD hM ˢѲkq+Gp$t KD8 0C8K G#m#^#@#^# G>#^~ (0ޤ8@H>P~X`#kG#^^~ (޴08@>H^P~X G#->@K!9#HK0XC J!*-*IJ! G >#^~ (ޤ08@>H^P~X`#k05 A0U A0u AJ/JKJ!(GK, /IHY KJ!DCG0 A! ,/ HV KJ!D*,CJ/G*H[ JKJ!;DJ,C /GJHY KJ!YDj,C.GjHW JJ!wDCG0 A4 ,J/@K HDk[ JKJ!G*, /GD*HY KJ!CJ,/G9DJHV KJ!VDj,J/CCjH[ JKC{DCCGCGGJ! GGJ"GG#?#m#@#G|0 A*-*I G IAu0 Ax*-*I G IAnGp#~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf`K;gKgK45`CG0m#@G^ ~(08ޤ@HP>X^`~hpxޥ#kG#_#:GGJGvJ#m##_#G m##@dCPHŢFPe/S%/eKZ %KzGC4C8.;/JV KFC4C@E/C/dEKY KYGC4zC.E/#J[ \KFC4B./$JV KFC47C%/#.d8KW J7GC4yCE//EKY KYGC4CƢJ6JJ45B?'9#VH.KE/J[ EKFC0FNFL#m#(~$> ް ~^># @ #/# "^4G .;`KJWJKG{KF > @ G@ 81C  / `#4G9 KK\KJFyJG ?@ @ G@ʢ61Bʲ^#<` G`>^ ~ޠ $>(~,#HE/K/EKY KYGCPGK >^ ~ޠ $>(~,###GMG# mC#C?#@ZkGF%#~^ >ް@E-C/ >EIV K~ VE C G@Ϡ@IG[@ޠGH4ZA^ (48C#âFòޠ_"?" >^~###^#~GG"pD @B11 B`GGG0# G ~G^> CGzGw@# ,:H@he,k.G?#eHW J^ ~#DE-D#GE/\I[ \K [E C G@@*"G=| ;$9# ͦ ްGϠG\@G @e/C%/eKZ %KzGC4xC'1@C.@.V JWJC>@>ޠ #D@#m# ް~#e@#~ ޠ#4u@~#^# G G% #G]>^ ~##MCCG$ m#CC?#@ZkG/Y K9DrGp#~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf`K;gKgK45`CG0m#@G^ ~(08ޤ@HP>X^`~hpxޥ#kGJ@GvJ?#m##_# m##@dCPHGP.Se/J\ eKFC4B8%/;.D%KX J8GC4YC@/CE/ĢK[ EKGC4B//"$KV KGC48C%/.d%KX J8GC4yCe/E#/ĢzKY KyGC4B/E/K[ EKGC4BK8KK45C _'Z#FH"FEH.Ke/&"J\ eKL%#FCF: `?=FLE-O.YIX J XE C G0@$ HG! HC@@d4C%#~^ >ްPE-S%/ >EIZ %K~ ZE C G|@Ϡ@IGX@ޠGs4WA^Ȣ4Bj#`He/K%/eKZ %KzGCaGA#_"?"GG"pD @B11 BFG.G_"?"GG"pD @B11 BGGG #@/YK PGH.Ke/J\ eKFCF /#8Kp G `/ #yK [yKT@GvKvG `?#GHe/K%/#eKZ %KzGC|G#_"?"GG"pD @B11 B@ SAFETY013.A  *[EVERHART.JTDEMO]JTDRIVER_264NTV2.OBJ_A;22~6>-FGG#GGޠT" >^~###^#~TE-We/VI\ vK \E C GI@JBGF|*D $ B# ްGϠGV@G P/SE/(K[ EKGC4C'1@S.P/W JS>XKP?ޠ #DPŢ#m# ް~#@#4@~ ޠ#c# G gE |E TfEc4u@~#^# G G #Gޠ >^~#$#GMG# mC#C?#@ZkGP#MCCG$ m#CC?#@ZkG?FGU.X JXG%.W J7G/.X JXG1 KW JF>1GG#^ Gm#@#kGG#^޴ (>0^8 G#m#^G > Cް#/_ ##CCG@mZGACCM#?#G"4C@Zk #Gޠ >^#ޤ (>0^8@#kM ޠCCC >C^#m?#@ZkGGp#~^^ ~(08޴@HP>X^`~hp!x޵GCCCCCG0m#_G^ ~(08ޤ@HP>X^`~hpxޥ#kGf_'Z#`K;gKgK45`C#:GGJGvJ#m##_# m##W_dCĢP4B8E/;/dEKY KYGC4zC@.Ce/J\ eKFC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/%/e#KZ ;KGC4B.e/J\ eKFC4C& K9'K'K45 C#~^ >ް8E-;. >EI~X J XE C G@Pͦ@I֠G\@ޠG h4[A^H$4YC#H/K.ޠKW JGC >^PG~#9He/K%/#eKZ %KzGC|GX#GYG_"?""pD @B11 BFGMGGIGH/"KE/PK[ EKGCGG/"KGB#0m#G# _#_"?"GG"pD @B11 B@GGG_"?"GG"pD @B11 BGGG#.JWFG0m##_#0m#G#z_þ#d%#(~$^ >ް ~^>dE-g.YIX J XE C GK@ CDJ GG@TJ GBB) GCw`K4IA<<E-<E#?/ CZIY K YE C G2@F/|ʢ-$+# m ްGՠGZ@G 8%/;.Ȣ%KX J8GC46C'1@;e/8/[ eK;e?\K8?ޠ #D8E@#@m# @#>^~ ޠ >$^(~,#QG#0m#G#_kH%/K.%KX J8GC$GE/`#K`pG?H.K/@#JV KFCF @/#XKZXK!G|xK\G@?`e/d"c/eKY K[eKYGC:1@CwEKX KwG EKGc?`e?@Dd.ge/`E/J\ vKc/ZEKFCyJX KYG J`#Gc?`E?.J`VJTGxJF`>##ް ~^.J0FlG` G]DȠGZ%/.## M8KW J>G7G>C ^(mG(~@Zk/GE/0@K[ EK>GC> ^4@(~0#,/HY KDCG."/JV KFC4@Fd-g%/de# 8O=IZ ;KECGDGTGCwJ4@C4@He/K%/#eKZ %KzGC|G."J/F^~ ޠ#p/V KGy@/[ \KF /Z ;KG8.W J7GC xKV JF>C /Z ;KGf JY ;K8G ?f@/[ \KFo`/\ vKFGGG#^^~ (0޴8@H>P^X~` Ghx? Mm@Zk^~ (0ޤ8@H>P^X~`hp#k#G G ~#^$K>-I=H??? ?(?0?8?@?H?P?X?`?h?p?x-Ix=^> ~ C#Gt#G(~#$^ >ް ~^>bdG8  G! A! K!! +!  A! Kt  K+k -G $ (˰,0 4+ 8 I<K @ IDKH+L GDPK$T+8 G4X ,!G H\L`#M Cm~x <C#G@Zk#_'~Z# #)m?%)!G$:GFGGFGGG/k"?#(`M#m@Zk#GK"?#@M#m@Zk#GGt `MChmx? #@Zk#>^~ ޠ >$^(~,#&TGGGĢGGFIJ#^~ Ge## G+0C0u Bk"M?#m@Zk8MG@mC$? @Zk ~ #k#^~ Ge## G+0C0u B0 Bk"M?#m@Zk(MG0mC$? @Zk ~ #kGG#^^~ (0޴8@H>P^X~` GhHG`^~ (0ޤ8@H>P^X~`hp#kXM? `m@Zk#G G ~#^$K> #-I=?85C?? ?(?(9#H??-I=^> ~G#t#pb C(~G$^# >ް ~^>bdG8  G! A! K!! +!  A! Kt  K+kG $ (˰,0 4+ 8 I<K M@ )x+ D HK # )/ -8KZ I #:GCL+)/8KP+WTKG$X+\ 8 G4A`K,!G H!d+Lh#<ˢ.#,~(^$> ް ~^>C G@| G0@ J+ G@MHGG@Zk>^ ~ޠ $>(^,~0##M Cm~ DC#G@Zk#~ #*-'?%#)!GFFGGGGGG/+", hMpm#?#@Zk#G ""xMm#?#@Zk#G #t MC m? @Zk#>^G~ ޠ >$^(~,#TGGGGGGDIGD G-Z I:GQGG#^^~ (0޴8@H>P^X~` Gh? HMPm@Zk^~ (0ޤ8@H>P^X~`hp#k#G G ~#^$K> #-I=?85C?? ?(?(9#H??? ?(-I(=^> ~G#t#pb C(~G$^# >ް ~^>bdG8  G! A! K!! +!  A! Kt  K+kG $ (˰,0 4+ 8 I<K M@ )x+ D HK # )/ -8KZ I #:GCL+)/8KP+WTKG$X+\ 8 G4A`K,!G H!d+Lh#<ˢ.#,~(^$> ް ~^>C G@| G0@ J+ G@MHGG@Zk>^ ~ޠ $>(^,~0##M Cm~ DC#G@Zk#~ #*-'?%#)!GFFGGGGGG/+", XM`m#?#@Zk#G ""hMpm#?#@Zk#G #t  _=MCm? @Zk#>^G~ ޠ >$^(~,#TGGGGGGDIGDk4 `G"`.J /vJY K6G@# ?D//KY K\KyGCpGyzKX KG zKG?? G-Z I:G0Åk/\ vKFG / JX KG ?p#~^^ ~(08޴@HP>X^`~hp Gx޵GCCCC m#_G^ ~(08ޤ@HP>X^`~hpxޥ#kGp#~^^ ~(08޴@HP>X^`~hp Gx޵GCCcCC`K HgG4KD@M HmGCCCC?#@ZkGG^ ~(08ޤ@HP>X^`~hpxޥ#k##D MDGG(m?DDD?##@Zk#Td#GC#(G,~(^$> ް ~^>G G-4U@+50 C5 G% 6BŲMm@Zk2 ~?#@M  >G^CޠCC C$>(^,~0#Hm@ZkG>^ ~ޠ $>(^,~0#|@MCHmCCCC?#@ZkG|45@ C e4{APm#G @ ~?#M >G^CCޠ $>(^,~0#m#@ZkGZG0m#@GGG#^^~ (0޴8@H>P^X~` Gh^~ (0ޤ8@H>P^X~`hp#k# (~$^G >Gް ~^>##G-G pHG0M8m#@Zk#CK"4tD4%H GG GI @i8+ G 0CJ?'x9#0YC# "ŲE峐M#G?""2 @Zk##MGG!(*BGG%~^ >%!Gް#( ~^G>G H@ZkO!> AA^ !A ~@!# #*0(B0'B)+1`AJ!)!##G~"ޠ >^#(ͦ1# M #(mpHG@Zk#C/#GGGF^G>~G ޠ >$^(~,#8-GGY@GFGG]G GGG#^^~ (^0~8 G#C>8%#EG G !C|!GGG>C GٔH>GpHGBM#m@Zk #VHCHFj0kC?*'x#08CYJ GW@ͦU>C۔HM~#mpHG@Zk #ZHCH@G/#GGGFGG>#^~ (^0~8@#kGGW@GFGG* G*+JG0A@$ ( M#ĢGGZ FIJ0"@ CG$G?éÝýG`G #d~G ^#D!#0@A곑G##~^^ (޴08G CCCC G^ (ޤ08@#kGG#~^ ^(~08@H GGC( #X%_#-'@#?G:GX%"{1J#X MC-\0KZ# ͦGXE#4Ų ~^>##@Zk #>#C#MGG H ~G^> G@ZkM>^? ~#LEmh@Zk#hEMG HG ~^>G @Zk>^ ~# >^ ~#G ^(~08@HP#k >^ ~#ŢFŲà#^^~ (޴08@>H^P~X GGL%GG D@HG"@HCA@CA"@!08Cm# @a G`ˢ0BC??DD^~ (ޤ08@>H^P~X`#kCà#^^~ (޴08@>H^P~X G# C> n=`A G/%@4*l#*#G0<@<@F GqG`CM#m@Zk# C>#^~ (ޤ08@>H^P~X`#k#G# G ~$K^>.J>H??? .J >>^ ~#GG#^~ ޴(08>@^H~#>GL%GG D@HG"@HCA@C0 C>#^~ ޤ(08>@^H~P#k# #k#~^^~ (08 GGCCEGBFT xeG MG(mCCC?#@ZkGG^~ (08@#kG#^^~ (޴08@>H^P~X G#M,~(^$> ް ~^>$? Cem G@ZkXm#G_C~Xm#G>^ ~ޠ $>(^,~0#@^~ (ޤ08@>H^P~X`#k#~^ ^(~08@޴HPX>`^h~p GxGM Cm$? @Zk;#G# G ~$K^>.J>H??? .J >H(.J(>^> ~#By H0 C@Z@K8mYGB?#b_ 0Mwq KGĢ ŲXpKG@Zk`Mhm"?#@ZkG G ^(~08@ޤHPX>`^h~px#kGG#^^~ (޴08@>H^P~X G#0M,~ C(^"$>?# ް ~^>#8m#@Zk #G#G<GG#^^~ (޴08@>H^P~X!#0M,~"(^?#$> ް ~^>8m@ZkGe#pMxm G~ ~^>C$? #@Zk#~>^ ~#`>^ ~ޠ $>(^,~0#^~ (ޤ08@>H^P~X`#kHkm#X_C?'ͦH%9# +! &9F"5FLE G@$D HG! HC@@`0zC h.J` _#0B#0GG4K G@GHE'{# [G Gg` '#,Hu h%G G ?#DCw KDwH IAUAD.JJm@hG.JbG0J_#8K~m#G>^ ~ޠ $>(^,~0#j@Ӂ@K!G #[/yKJ!#Z[KYG[?GyKG[/J!#Z[KYG[?GuK[/J!Z[KUG5`GJ![?#|GVJ!GY#[/yK#J!Z[K YG[?@_#D4K4+"06C@k/kK4K?'9#@KD+@K!#8J0@GMT% GK w?#)C,HGq@K!G #:/uzKJ!Y:K#5G:?GuzK:/J!#Y:K5G:?G|zK:/J!Y:KCCD"hdŢȲ H@khD+/7KL"(khHK HL.J$#X(HG$,(04^>dGtJ8Ȳ8 G4T<@,!G Ha<hL!@(8 MGD#HȲaLh !(mP(>^ ##C~C` #@Zk#~ #C5 >^ ~ޠ $>(^,~0#að(A/i#K0C 'A!I60YC#`MHG ~^>@ G@Zk>^ ~#ik/\ kKFm/U KDg/\ gKFG;/ KY ;K5G;?. zKU JF> /V KDBE/V K6GcMk/\ vKFhGG#^^~ (޴08@>H^P~X G#m#,~ C(^$> ްC ~^>M_C@ A!@a!@!@!@!@!@!@!!@A!@a C!@ K G @j `*91 C*  ~= &"FM" m?#@Zk8k/GkK`1`C7 8.J`1uB2 8K0@'{#[F3 #> +G$@ SAFETY013.A  *[EVERHART.JTDEMO]JTDRIVER_264NTV2.OBJ_A;22~>L 8+_'Z#:G '#0BK\GK8 ?'9#G  &"G8K'{#[G @&"0BkvGk>#G8+'#8G8+G E81B7 #"8˲,~(^$> ް ~^>kGtd K(mD  ˢ ۲+;m#Gpt +$J_,~>^ ~ޠ $>(^0#88@m#1C _f1@ m#>_G$>C C+*겼K J  (8ˢ1uB 8#c >gGް#m#_#G#@'GW'@>CG#P GpDCGޢGqD#DCDMmCCCC#?#"4C@Zk#GCޠ >#TGGGGd GG G/C$K G @ hK@h+9 *# K G@<1CM# m"#?#@Zk #G#G"m#KGtD +(M$  ˢGpIJktd m#ˢIJ^#_ #^# G >^ ~ޠ $>(^,~0#^~ (ޤ08@>H^P~X`#k# #m#_#XM#`mC# >GC##?#@Zk #G>##GG0@?#Gz# #m#_#XM#`mC#$ >GC##?#@Zk #GGޠ GC >#XMC#`m?##@Zk#GC>^ ~ޠ $>(^,~0#G#& CFG G|I:1@C|I@?#|)|0B|-9+/Z +KzGD9/V KFEGGG#?G~(^0^8~@ GHG= =]}  G#?G~(^0^8~@!HG= =]} G]G@#Cb`GG #=Z#GC^C?#m# @^CGG(0^8~@HP#k`#~8^@^H~PX`޴hpx>޵ GG= =(]0}CGGoG1`M2 m@Zk$OG0@M#m2 #@Zk#CTGGGGG CV@ !G Cw@KG(=GGA!GG#1`@ `P@GGGGGGr2@t@@0(H G8@^H~PX`ޤhpx>ޥ#k/GG G )IGG8MC@mC*@@ZkCGB 9"@#:GB Gz9H/B XKGZ G?B#W/nKB ZWKNGW#W?`H#G%.%JSGG(M4qBFGABB@Zk xM@Zk#(ͦGG#G C @HMPm@Zkq[@C C}GDE0= #w`H(MD"Ca@`HHGG4qBF qBAB@Zk xMDG@Zk  z$DG. 9HW JF>7/ KY 7K.G7?/Y K9F#^^~ (޴0~8 G# Mް@  ~^>#(m@Zk#e G?`M + K<k mX GG#@Zk M#(m#@Zk# ">{qJ^~ ޠ## M#^_ #G$ % \pKGm@Zk#^##GG^~ (ޤ0~8@#k>^~ ޠ#GG#^^~ (0~8 G#M ~m>@Zke G` +Gk`l+" K8'KK?D!.7JMGpK""@ZkG_ >  ~#$MmG@ZkMCm@Zk^~ (0~8@#k!/V 7K6F4<GL SMP$ACQUIRE4@m#P SMP$ACQUIRE4H@L SMP$ACQUIRE 4pG SMP$RELEASE4xm#P SMP$RELEASE4@ SMP$RELEASE4GEXE_STD$ABORTIO4n#EXE_STD$ABORTIO4 @EXE_STD$ABORTIO4 G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4  G OTS$ZERO4  @ OTS$ZERO4 G8 EXE$ALONPAGVAR4, n#EXE$ALONPAGVAR44 @8 EXE$ALONPAGVAR4 H G| OTS$ZERO4 x @| OTS$ZERO4 G SMP$ACQUIREL4 n# SMP$ACQUIREL4 @ SMP$ACQUIREL<  G EXE$DEANONPGDSIZ<  n#EXE$DEANONPGDSIZ<  @ EXE$DEANONPGDSIZ4, GH EXE$ALONPAGVAR44 n#EXE$ALONPAGVAR4D @H EXE$ALONPAGVAR4l G SMP$RELEASEL4p n# SMP$RELEASEL4 @ SMP$RELEASEL4 X G OTS$ZERO4  @ OTS$ZERO4 G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR< $ GD EXE$DEANONPGDSIZ< 8 n#EXE$DEANONPGDSIZ< @ @D EXE$DEANONPGDSIZ4 T G OTS$ZERO4  @ OTS$ZERO4G SMP$RELEASEL4n# SMP$RELEASEL4@ SMP$RELEASEL4 G4OTS$MOVE4 0@4OTS$MOVE4 lGOTS$MOVE4 @OTS$MOVE4 lGOTS$MOVE4 |@OTS$MOVE,GSYS$QIO,n#SYS$QIO,@SYS$QIO4lG SMP$ACQUIREL4n# SMP$ACQUIREL4@ SMP$ACQUIREL< GEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ44GT SMP$RELEASEL4Hn# SMP$RELEASEL4P@T SMP$RELEASEL4G SYS$SETEF4n# SYS$SETEF4@ SYS$SETEF4xG SMP$ACQUIREL4n# SMP$ACQUIREL4@ SMP$ACQUIREL< GEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4 G$ SMP$RELEASEL4n# SMP$RELEASEL4 @$ SMP$RELEASEL4GEXE$ALONPAGVAR4n#EXE$ALONPAGVAR4@EXE$ALONPAGVAR4 GOTS$MOVE4 @OTS$MOVE< G$EXE$DEANONPGDSIZ < n#EXE$DEANONPGDSIZ<  @$EXE$DEANONPGDSIZ4#G# SCH$IOLOCKW4#m# SCH$IOLOCKW4#@# SCH$IOLOCKW4#G4$ IOC$SEARCHDEV4($m# IOC$SEARCHDEV40$@4$ IOC$SEARCHDEV4l%Gx% SCH$IOUNLOCK4p%m# SCH$IOUNLOCK4t%@x% SCH$IOUNLOCK4`&Gx& SMP$ACQUIREL4l&m#  SMP$ACQUIREL4t&@x& SMP$ACQUIREL4&G' SMP$RELEASEL4&m#  SMP$RELEASEL4&@' SMP$RELEASEL< 'G'EXE$DEANONPGDSIZ< 'm# EXE$DEANONPGDSIZ< '@'EXE$DEANONPGDSIZ4!(G,( SYS$WAITFR4" (m#0 SYS$WAITFR4!((@,( SYS$WAITFR4,(GD( SYS$CLREF4 0(m#0 SYS$CLREF4@(@D( SYS$CLREF< d(G(EXE$DEANONPGDSIZ< l(m#0EXE$DEANONPGDSIZ< (@(EXE$DEANONPGDSIZ4#0)GH) OTS$CALL_PROC4$8)m#` OTS$CALL_PROC4#D)@H) OTS$CALL_PROC<%*G*EXE_STD$FINISHIO<&*m#EXE_STD$FINISHIO<%*@*EXE_STD$FINISHIO4$-m# OTS$CALL_PROC4#(-GL- OTS$CALL_PROC4#H-@L- OTS$CALL_PROC<%.G8.EXE_STD$FINISHIO<&(.m#EXE_STD$FINISHIO<%4.@8.EXE_STD$FINISHIO< 00GH0EXE$DEANONPGDSIZ< 80m# EXE$DEANONPGDSIZ< D0@H0EXE$DEANONPGDSIZ<%8G9EXE_STD$FINISHIO<&8m#PEXE_STD$FINISHIO<%8@9EXE_STD$FINISHIO4`<G<EXE_STD$ABORTIO4|<m#PEXE_STD$ABORTIO4<@<EXE_STD$ABORTIO<%CGCEXE_STD$FINISHIO<&Cm#PEXE_STD$FINISHIO<%C@CEXE_STD$FINISHIO4DGIOC$RETURN_SUCCESS4>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS=>IOC_STD$MNTVER> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN_UNSUPPORTED> IOC$RETURN_UNSUPPORTED=> IOC$RETURN>IOC$RETURN_SUCCESS=>EXE_STD$INSERT_IRP=04 4=( GCEVflagL|> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC4 44P44> EXE$ILLIOFUNC> EXE$ILLIOFUNC4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC= %&GCEV@ SAFETY013.A  %[EVERHART.JTDEMO]JTDRIVER_S2.OBJ_A;26uc|>  =0(,4 4=4= JTDRIVERX= 4=  =>C~^^~ (0޴8GC1'CF1#CWpJ"&&&GCYp KC:9'&H"LƲ|SJX&C?G:GX&4GDXƢw1 KVRJFXƲ\GX0KG\GD\FvSKG_G\G\FGD\WRJF\沀&?G:G&G^~ (0ޤ8CkGG>C~^^~ (0޴8GC(C [?' Fx9#C&CCG^~ (0ޤ8Ck>C^^~ G>CEmGG-GGpH$0M>C8m@ZkCʢ0B($j!M: >C M(mpH@ZkC/CGGFGGC^~CkGͦGGV@FʢGG0B*'x#08CJ_ GGG>C~^^ ~(08޴@HP>X^`~hpx޵GGCCcCCp`Kp`GGn#L@G^ ~(08ޤ@HP>X^`~hpxޥCk$0A_HGJ?GvJLŢ&BFHJGJ`GvJ_>C;A __Cpn#C@GdCHH%0 Gpn#C @ӺP.S/JV KFC4CGpn#C @Ӫ8E/;/dEKY KYGC4zC@.Ce/J\ eKFC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/%/e#KZ ;KGC4B.e/J\ eKFC4C&y K'K45 CH.K/#JV KFCF  / K0G4JJ .4@JF4JJchGF_>C~^ >ްPE-S/ >EI~Y K YE C@@IנV@ޠ 4\A hD^4zCC{ޠ >^~.Cx5C(4Cm>C"H/d%#KE/K[ EKGCG<Ţd,g. HX J<DC4B `NCGhnCCCCG@ZkHE/'K/EKY KCYGC[G->C ~^> ,@7H(_ he,kE/eH[ EK{DC`??#9DCwJ Dw Hb@@ D>.^ ~JJ@Cpn# @Ӿ>CL#,(>$~ ^>ް ~^L%/O.8KW J7GCCJ>Cp0N ~^>>C<8n! HC>@Zk>C4>C NG HG ~^>GG@Zk>^? ~0NCLE>C8nh@ZkC>ChEG H NG ~^>GG@Zk>^ ~C>^ ~ChעOPN>CXn4@ZkC>Cn#@C >CNn>>C4 @Zk>C 0N>C8n>p? >C@Zk>C6hn[@@N>CHn4@ZkCTGGG^G,G~pn# ޠ> ^$~(>0C CCT @>^ ~COGGGFGGG>CAl_! C N@IG ~^>GG@Zk>p_#^ ~C4B>C° C~^L% D@H"@HCA@C^~C +? E G0N8n>CB @ZkC NC4+>Cn@ZkCÔG>C NG H ~G^>GG@Zk^>C ~GC$KⳑP EP ""GhNGGP @ ^~ ޠ> ^$~C@@`@@@@@@ @@@`>C@$~ C ^ >ް ~^t#d+dX : @N>CHn4@ZkCTGGGGCG@GYG@G@CG@Y C@CJ*+ E K/taAZYK K?t @*/*K@D+TAA */ J/8KW XK7GH+ /AAK~N>CL  !HG:4K#G) +p)++#t風8!G08XN ~^>@Zk ~+!>^C#6AG>CNIG ~G^>@Zk_#>^ ~CF =0.(X+ EX.J6`7JGJ4wCX /Gv+KX KG/`X ?>C`k# ~^>`+ \k EX , HNHGG@Zk>^ ~C +?#HG Gᢁ'0CD[G&0CGxn C$K>C&["&,ACK" 0A E CCC>C C~G* # >C EG" ʲ,IAK _E >C C E CI`kC`>CXK#^G>C.^~>C>$ >CCC޲>C.TG~G^GGGΦG>C#GL~G4@8><^@~DHP^~^T~X^~^`^\~ ~(^Nn@ZkCTGGG~GCG$K>C0n#r@CCTGGG>CGGX>C;A_CEhnC[@>CPNٔHXn>4>C@ZkXH CCHG>CH<Hˢ|4Bn#`@4 @ Kn#A@NC4+d+n@Zkh.C>C@NהH4>CHn@ZkVH CCHFTGGGGGC C(>^~ ޠ> ^$~,>CCN>CnG>4G@Zk>GC   tGGGGI@/@KPG4JJ .4@JF4JJ>C)G(>C^Pn#~ ޠ> ^$~ C,>C>Cd ~@CTGGG~>CG,~G(^G$>;A ް ~^>>CX_C<h>CC|l`>CXnڔH^>CPN4@ZkYH CCH G>Cn#@4 @C >Cn#C@NC4+nC>C@ZkChCע@N>CHn4@ZkCTGGGGG>^ ~ޠ $>(^,~CZÀGGFGGðn#x@4 @"0N C8n@? @ZkN C@?"GG@ZkN@#4 G*G4+Gd+GnC@ZkGGGFGGûGC^C~ ޠ> ^$~C CC>>>C ~^> ްC~>C^>pn#G>^ ~ޠ $>(^,~C@Ӷ/V K6D .X J8Gv*/Z 7KG~Y/V KFY. +KW JFY>>C^^~ (޴08@>H^P~X Gm# _C Cm#@CC^~ (ޤ08@>H^P~XCkGGG>C^^~ (0޴8@H>P^X~` Gh>C- hA>HK0XC AA*-*I 4@A >C^~ (0ޤ8@H>P^X~`hCk05 A0U A0u AJ/G,>C@KAJKDk 4@A(GK /HIY K @ADCCw@0@Cͦt0 A! @A>C*@KCDk @ACAc@CJj AA0@0#@ M pt?E0`C3 ,>C*/A@K HZ *KDk @AD*,C.CC*HX J @A8DC5@J,j/Cj,JH\ jK @AjH*/\DCZ *K0@zDC @A0#@GG2BAGG>CGm#@Cp?E0ՀC?E0@Cn*-*I IAf..VJWJ>>_*-*I IA[GGXD\C"DDR&CC">C8DD&CCl"6D wHC>C @"@C]%,]"6H,BY">>! H#@!C>Y%,7H#CC!CG 0 @6J?>$@!C>C!CG 0 @6J?$@CCCk^%/\ 6KC^^~ (0޴8@H>P^X~` Gh>CpM,~(^$> ް ~^>Hk:0yC iA*-*I 4@A >^ ~ޠ $>(^,~C^~ (0ޤ8@H>P^X~`hCk05 A0U A0u A J/,JK 4@AH /(GKIY K @ADC0 A ,/*, HV K @A*HJ/J,DC[ JK @AJH /;Dj,CY K @AjH.YDC =W J @AwDC0 A ,J/*, H[ JK @A*H /DJ,CY K @AJH.j,9DCW J @AjHj/WDC\ jK @A|DCè0 A*-C*I$ IAGJ GvJ0A CA).)J 05 B k#|Gr0 At*-*I IAl< M m0C< @Zk>CC.>C(MCJ0m4A\KGCYP K9'"C\pK'> ~@Zk~ >CA|'91 C|' |&4 A|0B|Hk$# 20/)/ AKZ ;KG.J*(/vJY(K6G*(?TAE H/Z[K*` H?A "E/K&@\KvGuJG%@A?#EH/XK#ZXK;GwKWG"H?8M@m@Zki/\ vKFG / JX KG ? (/Y ;K (?/Y KyG JX KG?.W J7G KV JF>GG>C^^~ (޴08@>H^P~X G>C`Hm>[<@0M>C8m4@ZkC>Cm#b@C C+>Cm#*Y@C-aH C M>C(m4@ZkCTGGG>C^~ (ޤ08@>H^P~XCkGGGFGG>Cm#@MC4+mC>C@ZkCG>C^^~ GGGGJGG@  MG(m4G@ZkMmG4G@ZkJ_CJ@ TG>CMm ~^>G@Zk>^ ~C^~CkGG>C~^ ^(~08@޴HPX>`^h~px GGwHAAD/KK?4C0MG8mG@ZkGG>C~^ ^(~08@޴HPX>`^h~px GG4GA;@G ^(~08@ޤHPX>`^h~pxCkGGG>C~^ ^(~08@޴HPX>`^h~px GGGA@G ^(~08@ޤHPX>`^h~pxCkGGG>C^ GGMCmC#TG@ZkCkGGG>C~^^ ~(08޴@HP>X^`~hp Gx޵G>CC CCCPm#f_CAC@G^ ~(08ޤ@HP>X^`~hpxޥCkdC'He#|GDP%4YC84CĢ@4BdE4zC$47CĢe4BD4XCƢvJJ45B C>CAh@4EACM>C^>Cd C>CciCPm#I# )  (â >>CF ް_C5 3@Z'@mCMCCC>CGG4C@Zkޠ C >CTGGG^C&GGF|ɢ61B|ɲ4G||J0@C|JC  qAC{@kޠGGC >CMC>CmTG#@ZkCY>C^^~ (0޴8@H>P~X G>Cm# >~ @C[` C>C-taAktd^ +/8KY8K@KPGvXK6G +? K@J:1@CJ@taA .JWJKG{KF > K@ 81C ^C ˢIJkxͦd +1pKtD ˢIJ8kF0zC8K>CA^m@^Gm#1 @0 @C +>Cm#! @MC4+mC>C@ZkC>C^~ (0ޤ8@H>P~XCk>C^^~ (0޴8@H>P~X G>Cm# > @C#P C-ktd KD hM ˢѲkq+p$t KD8 0C8K>CA^@^C>C^~ (0ޤ8@H>P~XCk>C^^~ (޴08@>H^P~X G>C-> hAHK0XC AA*-*I 4@A >C^~ (ޤ08@>H^P~XCk05 A0U A0u A J/,JK 4@AH /(GKY KIDC @A0 A ,/*, HV K @A*HJ/DJ,C[ JK @AJH /j,;DCY K @AjH.YDCW J @AwDC0 A- /= ,J/@K H[ JKDk @AD*,C /CC*HY K @A9DJ,/Cj,CJHV K @AjHJ/VDC[ JK @A{DC GG2BAGG>CGxm#@C0 A*-*I IA0 A*-*I IA}G>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`CA@G^ ~(08ޤ@HP>X^`~hpxޥCkG#_#:GGJGvJ>Cm# _CAC@dCPHŢFPe/S%/eKZ %KzGC4C8.;/JV KFC4C@E/C/dEKY KYGC4zC.E/#J[ \KFC4B./$JV KFC47C%/#.d8KW J7GC4yCE//EKY KYGC4CƢvJJ45B?'OH.KE/J[ EKFC0FGFE>C`m#(~$> ް ~>C^> v @C(>Ct@^ .JWJKG{KF > @@ 81C t@ /K\KJFyJG ?@ @@ʢ61Bʲ^C<`9`>^ ~ޠ $>(~CHE/K/EKY KYGCPGTF?>C~^ >ް@E-C/ >EIV K~ VE C3@Ϡ@I[@ޠ,H4ZA)(^48C#C/>^ ~ޠ $>(~(CCMGC4GCmC#TG@ZkâFòޠGG >^~C^~G@pD @B11 B`GGG,>C G ~^ C>pn ,@:H~@he,?#k. 0`A^ ~C/DE-D#GE/\I[ \K [E C=@*"G:| 8$6>C ͦ ްϠ\@ @e/C%/eKZ %KzGC4xC'1@C.@.V JWJC>@>ޠ CD@>CA ް>C ~@~ C ޠC4u@~^C^ C|>^ ~CCMCGGmCCC@ZkB/Y K9D~>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`C`m# @G^ ~(08ޤ@HP>X^`~hpxޥCkGJ@GvJ?>C0m# /_CGPm#C@dCHGP.Se/J\ eKFC4B8%/;.D%KX J8GC4YC@/CE/ĢK[ EKGC4B/"/$KV KGC48C%/.d%KX J8GC4yCe//E#ĢzKY KyGC4B/E/K[ EKGC4BxKK45CH.K/JV KFCF?>CGGG@pD @B11 B@GG.GGGG@pD @B11 BGG G@.JOFH%/K.%KX J8GC$G/@KE`pG .@JCWJTFyKFB>GCH.#K/JV KFCF_>CGGG@pD @B11 B@GGGCLG"H/@ SAFETY013.A  %[EVERHART.JTDEMO]JTDRIVER_S2.OBJ_A;26u>*KE/K[ EKGCGQ4GCC`m#@ӄ@/[ \KF /Z ;KG@/[ \KF KZ \KYG@?G>C^ GA@CkGG>C^޴ (>0^8 G>Cm#^G > Cް>C/_C!CC@ZGAmCMC>CGG4C@Zk ޠC >^Cޤ (>0^8CkGMGޠCCC >C^CmG@Zk>C~^^ ~(08޴@HP>X^`~hp-mCx޵GCCCCCG`m#_G^ ~(08ޤ@HP>X^`~hpxޥCkGf_'Z#{`KgK45`C#:GGJGvJ>C0m# _CPm#C]_dCĢP4B8E/;/dEKY KYGC4zC@.Ce/J\ eK `?=FC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/%/e#KZ ;KGC4B.e/J\ eKFC4C&y K'K45 C>C~^ >ް8E-;. >EIX J~ XE C@ͦ@I֠\@ޠ h4[A^H$4YCCH/K.ޠKW JGC >^PG~C$He/K%/#eKZ %KzGC|G@>CBGGG@pD @B11 BFG6G3/@KcG4>CGGG@pD @B11 B@GGGGGG@pD @B11 BGG|G@.JDF|y`m#C_ `m#C_u>Cd%#(~$^ >ް ~^>dE-g.YIX J XE CD@ CDJA@TJB=)Cw`K4IA8<E-<E#?/ CZIY K YE C/@F,|ʢ*$(>CPm ްՠZ@ 8%/;.Ȣ%KX J8GC46C'1@;e/8/[ eK;e?\K8?ޠ CD8E@>Cpm#@C>^~ ޠ >$^(~CG`m#C0_ӕH%/K.%KX J8GC$GD/@K`pG>H.K/@#JV KFCF @/@XKZXK!G|xK\G@?`e/d"c/eKY K[eKYG:1@CwEKX KwG EKGc?`e?@Dd.ge/`E/Jc/\ vKZEKFCyJX KYG J@Gc?`E?.J`VJTGxJF`>>C@ް ~^.J0F\Z XDȠV%/.>C# M8KW J>G7G>C ^(mG(~@Zk/GE/0@K[ EK>GC> ^4@(~C,/HY KDC./"JV KFC4@Fd-de#g%/IZ ;KECDTCwJ4@C4@He/K%/#eKZ %KzGC|G.@J3F^~ ޠC?/V KGGB@/[ \KFF52 /Z ;KG<.W J7GG xKV JF>G /Z ;KGi JY ;K8G ?i@/[ \KFr`/\ vKFG>C^^~ (0޴8@H>P^X~` GhGMm@Zk^~ (0ޤ8@H>P^X~`hCk>CG G ~G^$K>-I=H??? ?(?0?8?@?H?P?X?`?h?p?x-Ix=^> ~ CCGt>CG(~TG$^ >ް ~^>bd8  "@A @K! @ + @ A @Kt  K+k - $ (˰,0 4+ 8 I<K @ IDKH+L DPK$T+8 4X ,! H\L`>CM Cm~G<C>C@Zk~_' CC%m?%$:GFGGFGGG/kG4G&`M>Cm@ZkCKG4G@Mm>C@ZkCGt `MChmG>C@Zk>^ ~C ޠ >$^(~C2TGGGĢGGFIJ>C^~ Ge#4G+0C0u BkMGm4G@Zk8M@mCG@Zk4G~CkGG>C^^~ (0޴8@H>P^X~` GhHG`^~ (0ޤ8@H>P^X~`hCkhM? pm@Zk>CG G ~G^$K>4G-I=?85C?? ?(?%CH??-I=^> ~GCt>Cpb C(~G$^tG >ް ~^>bd8  "@A @K! @ + @ A @Kt  K+k $ (˰,0 4+ 8 I<K M@ )x+ D T!AHK )/ -8KZ I!A:GL+)/8KP+WTK$X+\ 8 4A`K,! H!d+Lh<ˢ#+>C,~(^$> ް ~^>C@| 0@ JpA@MHGG@Zk>^ ~ޠ $>(^,~C>CM Cm~  8O=DC>C@Zk~ CC%-'?%FFGGGGGG/+G) xMm>C4G@ZkC G M>Cm4G@ZkC4G>Ct (MC0m? @Zk>^ ~C ޠ >$^(~CTGGGGGDIGD -Z I:G`G>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCC4G;A_G^ ~(08ޤ@HP>X^`~hpxޥCkG>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCcCC`K HgG4KDhMGpmGCCCCG@ZkG^ ~(08ޤ@HP>X^`~hpxޥCkG#>CG(MG0mGGGG>C@ZkCNd#G>CP,~(^$> ް ~^>@+4U@)50 C5@% 6BŲMm@Zk0 ~GhMC  >G^CޠCC $>(^,~pmC@Zk>^ ~ޠ $>(^,~ChMCpmCCCCG@Zk45@ Ce4{AA@ ~TGM4G>G^CCޠ $>(^,~Cm#@ZkdA@GGG>C^^~ (0޴8@H>P^X~` Gh^~ (0ޤ8@H>P^X~`hCk>C4G(~$^G >Gް >C ~^>>C8-GG pHPM>CXm@ZkC/CK"4 CtHI @i8+ 0CJ?'x9#0YC# 4GŲE>CMGG"PB@ZkCM>C(*!GG%GG~^ >%!Gް>C( ~^G> H@Zk> A^ AA ~ !A GC>C *0(B0'B)+1`A A @A#ޠ C >^~C(ﳆ"벆8ͦ >C@M >CHmpH@ZkC/CGGF>G^~ ޠ >$^(~CB0-GGY@FGGhTGGGG>C^^~ (^0~8 G>CC>8%>CEm !CGG>C GٔH>GpH=0M8m>C@ZkCVHCHFj0kC9*'x#08CJ_ͦ>C۔H M~>C(mpH@ZkZH CCH@GCGGF>C^~ (^0~8CkGGGW@FGG* G*+J0A@$ M#( ĢGSCFIJ0"@ C$?òç `>Cd~ ^CD!#0@A곝GCGG>C~^^ (޴08G4GCCCC4GG^ (ޤ08CkGG>C~^ ^(~08@H GGC( #X%G-'@#?G:GX%4G{1J>CX4G-CM\0K# ͦGXE4Ų ~^><>CMm! HC >@Zk >CC>CMG HG ~^>GG@ZkM>? ^ ~CLEmh@Zk>ChEG HMG ~^>GG@Zk>^ ~C>4G^ ~CG ^(~08@HCkG4G>^ ~CŢFŲ>C^^~ (޴08@>H^P~X GGL% D@H"@HCA@CA!@!08CA@ a`ˢ0BC??DD^~ (ޤ08@>H^P~XCkC>C^^~ (޴08@>H^P~X G>C C>2`AG4*l#4G*0<@<@FqG `C0M8m>C@Zk CC_>CGG G ~$K^>.J>H??? . _=J >>^ ~C>C^~ (ޤ08@>H^P~XCkGG>C^~ ޴(08>@^H~>C>GL% D@H"@HCA@C0 C>C^~ ޤ(08>@^H~CkGGG4GkGG>C~^^~ (08 GGCCEBFT xeG MC(mCCtG@ZkG^~ (08CkG>C^^~ (޴08@>H^P~X G>CM,~(^$> ް ~^>GCem@ZkX0m#_C~AG>^ ~ޠ $>(^,~C@^~ (ޤ08@>H^P~XCkGG>C~^ ^(~08@޴HPX>`^h~p GxGM CmG@Zk:>CG# G ~$K^>.J>H??? .J >H(.J(>^> ~CBy HP C@Z@K8mYGBGbtG 0Mwq KĢ ŲXpKG@ZkMGm4G@Zk4GG ^(~08@ޤHPX>`^h~pxCk>C^^~ (޴08@>H^P~X G>C`M,~ C(^G$>4G ް ~^>>Chm @Zk C:GG>C^^~ (޴08@>H^P~X-kC>C`M,~G(^4G$> ް ~^>hm@Zk>CeMm~ ~^>CG>C@Zk> ^C~ ~C`>^ ~ޠ $>(^,~C^~ (ޤ08@>H^P~XCkHkm#X_+!ͦC)P0  4KT@He'# |Gh 'X V @,HX@h% ?#DCw@KDwH IAYAD5/5K^ ~ޠ $>(^,~C8@ӑì#iC,H(A/4 AK0C 'AK'\GK@'K\GK hAGG|/zJ 4@A[|KGzG|?GzJ|/ 4@A"[|KzG|?GyJ|/ T@A[|KyG&|?G @A4BG @AvG4GzzJ|/ 4@A[|KzG|? hAGG[/yK 4@AZ[KGYG[?GyK[/ 4@A#Z[KYG[?GuK[/ T@AZ[KUG`'[?G @A4CG @AVG4GYyK[/ 4@AZ[KYG[?ZG8 wT%u?ɢFr|p$in>C M ް,H@נ\@PeH0zC'1@Pޠ CDP%R?>CͦCD+#hd HȲ@DK/YK L"HHk hL+/7K$(>Cx(hD,H$0(4^>dtJ88 4TȲ<@,! H<LA@H8 Xm!D(4GHL APH>^GPM(C~CG>C@Zk~ CC>4G^ ~ޠ $>(^,~CI60YC >CMHG ~^>hAG@Zk>^ ~C.Y JD /V K6GG\/ JZ \KYG\?;/ KY ;K5G;?5.Y JDYE.W JWGwM/V K6G|>C^^~ (޴08@>H^P~X G>C8m#,~ C(^$> ްC ~^>M_C` P!@@@!@H`X!@!!@A!@a C!@ K @j`*91 C* 䢁&F8MG@m4G@Zk8k'|G2 8K.KJ`1@B( 1u@B& 8ˢ$>C> + 8k'|G &0CG'8K[G  ?'F&8G !@'0 C!ˢF˲>C8k_'zG8k E8+4G1 C4 >C8 ,~(^$> ް ~^>ˢtIJ HͦKD Mkvm#+p$t KD_,~>^ ~ޠ $>(^C88 1C `m#_梨m#1@ _>C n=| t C$KJ  ˢ ʲkj(Cm#J8+1u C 8 >C >>CF ް_C࠻c@>CgGY'@P >CpDCGqDCDCGMC mCCC>CGG4C@ZkCޠC >CTGGGGd G GC$K@ * *4G K@j`*91 C*>C8MG@m4G @Zk C >Ct ˢHIJkd + m7m#KpD t KD ^:_ ^C4G>^ ~ޠ $>(^,~C^~ (ޤ08@>H^P~XCk>C4G(m#_>CxMC4G>GCm>C#TG@ZkC>C0@9C>C4G(m#_>CxMCG>GCm>C#TG@ZkCGޠGGC >CxMC>CmTG#@Zk $>(^C ~ޠ $>(^,~CGC& CF|71B|4G|ɲ|j0`C|jK9 /Y KYF}GGG>C?G~(^0^8~@ GHG= =]} 4GG>C?G~(^0^8~@-jCHG= =]} G]@>CCb`GG >C=BCC^CG;A@^CG(0^8~@HCkGGG>C~8^@^H~PX`޴hpx>޵ GG= =(]0}CGGo)`MmTG@Zk$O@M>CmTG@ZkCTGGGGG4GCV@ ! @Cw@K(=GA!#1`@ `P@GGGGGl2@p@#1`@@0(H4GG8@^H~PX`ޤhpx>ޥCk/GG )I8MC@mC*@@ZkCG@@9"@:A@G@@Gz9H/T@@XKGW G?TGW/nKT@@ZWKNGT>CW?`HG%.%JQHMG4qBFGABB@Zk M@ZkGC(ͦ C @HMPm@Zk}[@C yÆCP@sGDE0= #w`HHM@Ca@`HHGG4qBF qBAB@Zk MD@Zk4GG$4GD|. 9HW JF>7/ KY 7K.G7?/Y K9FGG>C^^~ (޴0~8 G>CGް ~^>etG1`M cAKgAmX >C@Zk>G ^{qJ~C ޠC M^G>C$ % \pKGm@Zk^ C^~ (ޤ0~8Ck>^~ ޠCGG>C^^@ SAFETY013.A  %[EVERHART.JTDEMO]JTDRIVER_S2.OBJ_A;26uZ>I~ (0~8 G>C ~>e` +k`l+ @8'KK?D!.7JMpK"!@@ZkGMG>4G ~C$m@ZkMCm@Zk^~ (0~8Ck!/V 7K6F4G  SMP$ACQUIRE4m#P SMP$ACQUIRE4@  SMP$ACQUIRE4HGX SMP$RELEASE4Lm#P SMP$RELEASE4T@X SMP$RELEASE4xGEXE_STD$ABORTIO4n#EXE_STD$ABORTIO4@EXE_STD$ABORTIO4G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4 ( G\ OTS$ZERO4 X @\ OTS$ZERO4x G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4  G OTS$ZERO4  @ OTS$ZERO4 G, SMP$ACQUIREL4 n# SMP$ACQUIREL 4( @, SMP$ACQUIREL< L Gl EXE$DEANONPGDSIZ< P n#EXE$DEANONPGDSIZ< h @l EXE$DEANONPGDSIZ4x G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4 G SMP$RELEASEL4 n# SMP$RELEASEL4 @ SMP$RELEASEL4  G OTS$ZERO4  @ OTS$ZERO44 GL EXE$ALONPAGVAR48 n#EXE$ALONPAGVAR4H @L EXE$ALONPAGVAR< T Gp EXE$DEANONPGDSIZ< h n#EXE$DEANONPGDSIZ< l @p EXE$DEANONPGDSIZ4  G OTS$ZERO4  @ OTS$ZERO4 G SMP$RELEASEL4 n# SMP$RELEASEL4 @ SMP$RELEASEL4 ,GLOTS$MOVE4 H@LOTS$MOVE4 GOTS$MOVE4 @OTS$MOVE4 pGOTS$MOVE4 @OTS$MOVE,GSYS$QIO,n#SYS$QIO,@SYS$QIO4<G\ SMP$ACQUIREL4Dn# SMP$ACQUIREL4X@\ SMP$ACQUIREL< GEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4G SMP$RELEASEL4n# SMP$RELEASEL4@ SMP$RELEASEL4G SYS$SETEF4n# SYS$SETEF4@ SYS$SETEF4 n# SMP$ACQUIREL4 G, SMP$ACQUIREL4(@, SMP$ACQUIREL< tGEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4G SMP$RELEASEL4n# SMP$RELEASEL4@ SMP$RELEASEL4HG\EXE$ALONPAGVAR4Pn#EXE$ALONPAGVAR4X@\EXE$ALONPAGVAR4 `GxOTS$MOVE4 t@xOTS$MOVE< xGEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4 G SCH$IOLOCKW4 m# SCH$IOLOCKW4 @ SCH$IOLOCKW4 GT! IOC$SEARCHDEV4!m# IOC$SEARCHDEV4P!@T! IOC$SEARCHDEV4t"G" SCH$IOUNLOCK4x"m# SCH$IOUNLOCK4|"@" SCH$IOUNLOCK4h#G# SMP$ACQUIREL4p#m#  SMP$ACQUIREL4|#@# SMP$ACQUIREL4#G# SMP$RELEASEL4#m#  SMP$RELEASEL4#@# SMP$RELEASEL < $G$EXE$DEANONPGDSIZ< $m# EXE$DEANONPGDSIZ< $@$EXE$DEANONPGDSIZ4!$G % SYS$WAITFR4"%m#0 SYS$WAITFR4!%@ % SYS$WAITFR4 %G % SYS$CLREF4 %m#0 SYS$CLREF4%@ % SYS$CLREF< <%G\%EXE$DEANONPGDSIZ< @%m#0EXE$DEANONPGDSIZ< X%@\%EXE$DEANONPGDSIZ4#&G& OTS$CALL_PROC4$&m#` OTS$CALL_PROC4#&@& OTS$CALL_PROC<%x'G'EXE_STD$FINISHIO<&'m#EXE_STD$FINISHIO<%'@'EXE_STD$FINISHIO4$)m# OTS$CALL_PROC4#)G* OTS$CALL_PROC4#*@* OTS$CALL_PROC<%*G*EXE_STD$FINISHIO<&*m#EXE_STD$FINISHIO<%*@*EXE_STD$FINISHIO< |,G,EXE$DEANONPGDSIZ< ,m# EXE$DEANONPGDSIZ< ,@,EXE$DEANONPGDSIZ<%5GD5EXE_STD$FINISHIO<&05m#PEXE_STD$FINISHIO<%@5@D5EXE_STD$FINISHIO47G7EXE_STD$ABORTIO47m#PEXE_STD$ABORTIO47@7EXE_STD$ABORTIO4$$=m# OTS$CALL_PROC4#0=GL= OTS$CALL_PROC4#H=@L= OTS$CALL_PROC4=G=EXE_STD$ABORTIO4=m#EXE_STD$ABORTIO4=@=EXE_STD$ABORTIO47EGE OTS$DIV_I48Em#  OTS$DIV_I47E@E OTS$DIV_I4GGGEXE$ALONPAGVAR4Gm#EXE$ALONPAGVAR4G@GEXE$ALONPAGVAR4'IG JEXE$WRTMAILBOX4(Im#EXE$WRTMAILBOX4'J@ JEXE$WRTMAILBOX4JGJ SYS$CLREF4 Jm# SYS$CLREF4J@J SYS$CLREF4!JGJ SYS$WAITFR4"Jm# SYS$WAITFR4!J@J SYS$WAITFR< JGJEXE$DEANONPGDSIZ< Jm#EXE$DEANONPGDSIZ< J@JEXE$DEANONPGDSIZ4KGK SYS$SETEF4Km# SYS$SETEF4K@K SYS$SETEF< KGKEXE$DEANONPGDSIZ< Km#EXE$DEANONPGDSIZ< K@KEXE$DEANONPGDSIZ4XLGhLEXE$ALONPAGVAR4`Lm#EXE$ALONPAGVAR4dL@hLEXE$ALONPAGVAR4 NGNOTS$MOVE4 N@NOTS$MOVE4'OGHOEXE$WRTMAILBOX4($Om#EXE$WRTMAILBOX4'DO@HOEXE$WRTMAILBOX4OGO SYS$CLREF4 Om# SYS$CLREF4O@O SYS$CLREF 4!OGO SYS$WAITFR4"Om# SYS$WAITFR4!O@O SYS$WAITFR< PGPEXE$DEANONPGDSIZ< Pm#EXE$DEANONPGDSIZ< P@PEXE$DEANONPGDSIZ4QGREXE_STD$ABORTIO4Qm#EXE_STD$ABORTIO4R@REXE_STD$ABORTIO<)hRGREXE_STD$WRITECHK<*pRm#EXE_STD$WRITECHK<)R@REXE_STD$WRITECHK4(SG4S IOC$SEARCHDEV4,Sm# IOC$SEARCHDEV40S@4S IOC$SEARCHDEV4HSGSEXE_STD$ABORTIO4Sm#EXE_STD$ABORTIO4S@SEXE_STD$ABORTIO4SGSEXE_STD$ABORTIO4Sm#EXE_STD$ABORTIO4S@SEXE_STD$ABORTIO<%$TGtTEXE_STD$FINISHIO<&hTm#EXE_STD$FINISHIO<%pT@tTEXE_STD$FINISHIO4UGU SMP$ACQUIRE4Um#0 SMP$ACQUIRE4U@U SMP$ACQUIRE4 VGVOTS$MOVE4 V@VOTS$MOVE4 $VGVOTS$MOVE4 V@VOTS$MOVE4XWGtW SMP$RELEASE4hWm#0 SMP$RELEASE4pW@tW SMP$RELEASE4XGX SMP$ACQUIRE4Xm#P SMP$ACQUIRE4X@X SMP$ACQUIRE4YG$Y SMP$RELEASE4Ym#P SMP$RELEASE4 Y@$Y SMP$RELEASE4[G[EXE$ALONPAGVAR4[m#EXE$ALONPAGVAR4[@[EXE$ALONPAGVAR4 [G$\OTS$ZERO4  \@$\OTS$ZERO4(\GX\EXE$ALONPAGVAR4L\m#EXE$ALONPAGVAR4T\@X\EXE$ALONPAGVAR4 p\G\OTS$ZERO4 \@\OTS$ZERO< ^G^EXE$DEANONPGDSIZ< ^m#EXE$DEANONPGDSIZ< ^@^EXE$DEANONPGDSIZ4+`G`IOC_STD$REQCOM4,`m#IOC_STD$REQCOM4+`@`IOC_STD$REQCOM< aGdaEXE$DEANONPGDSIZ< \am# EXE$DEANONPGDSIZ< `a@daEXE$DEANONPGDSIZ4HbG\bEXE$ALONPAGVAR4Pbm#0EXE$ALONPAGVAR4Xb@\bEXE$ALONPAGVAR4.cm#0SCH$QAST4- cGHcSCH$QAST4-Dc@HcSCH$QAST4HcG\c SYS$SETEF4Pcm#0 SYS$SETEF4Xc@\c SYS$SETEF4cG,d SYS$SETEF4 dm#P SYS$SETEF4(d@,d SYS$SETEF4|dGd SYS$SETEF4dm#P SYS$SETEF4d@d SYS$SETEF< dGdEXE$DEANONPGDSIZX X < dm#PEXE$DEANONPGDSIZ< d@dEXE$DEANONPGDSIZ4(Tjm#PEXE$WRTMAILBOX4'jGjEXE$WRTMAILBOX4'j@jEXE$WRTMAILBOX4 kGLkOTS$MOVE4 Hk@LkOTS$MOVE4lGl SYS$SETEF4lm#x SYS$SETEF4l@l SYS$SETEF4#oGo OTS$CALL_PROC4$om#x OTS$CALL_PROC4#o@o OTS$CALL_PROC4pGp SYS$SETEF4pm#x SYS$SETEF4p@p SYS$SETEF<%qGqEXE_STD$FINISHIO<&qm#xEXE_STD$FINISHIO<%q@qEXE_STD$FINISHIO<%rGLrEXE_STD$FINISHIO<&8rm#xEXE_STD$FINISHIO<%Hr@LrEXE_STD$FINISHIO<%xrGrEXE_STD$FINISHIO<&rm#xEXE_STD$FINISHIO<%r@rEXE_STD$FINISHIO4tGt SMP$ACQUIRE4tm# SMP$ACQUIRE4t@t SMP$ACQUIRE4tGu SMP$RELEASE4tm# SMP$RELEASE4t@u SMP$RELEASE4/ vG8vEXE$ALONONPAGED40(vm#EXE$ALONONPAGED4/4v@8vEXE$ALONONPAGED4vGv OTS$MOVEM4v@v OTS$MOVEM4 vGvOTS$ZERO4 v@vOTS$ZERO41$wG0wEXE$DEANONPAGED42(wm#EXE$DEANONPAGED41,w@0wEXE$DEANONPAGED4xwGw OTS$MOVEM4w@w OTS$MOVEM4 wGwOTS$ZERO4 w@@ SAFETY013.A  %[EVERHART.JTDEMO]JTDRIVER_S2.OBJ_A;26uǖhwOTS$ZERO43txGxLNM$SEARCH_ONE44xm#LNM$SEARCH_ONE43x@xLNM$SEARCH_ONE4-xGySCH$QAST4.xm#SCH$QAST4-y@ySCH$QAST4 yGyOTS$MOVE4 y@yOTS$MOVE45yGz SCH$POSTEF46zm# SCH$POSTEF45z@z SCH$POSTEF41zG(zEXE$DEANONPAGED42 zm#EXE$DEANONPAGED41$z@(zEXE$DEANONPAGEDp p=0;=@| =0@;=@| ;;=0;7 SMP$AL_IPLVEC7 SMP$GL_FLAGS  SMP$RELEASE  SMP$ACQUIRE7(PMS$GL_KERNEL_DISPATCH_VECTOR7 CTL$GL_PHD7 SCH$GL_PCBVEC  SYS$SETEF"0; OTS$MOVEM OTS$MOVE( EXE$DEANONPGDSIZ=0;=  OTS$ZERO EXE$ALONPAGVAR  SMP$RELEASEL  SMP$ACQUIREL EXE_STD$ABORTIO""7 SCH$GL_MAXPIX7CTL$GA_CCB_TABLE7 CTL$GL_PCBSYS$QIO""" =0;=0;7CTL$GQ_PROCPRIV=0;=0;  SCH$IOLOCKW  IOC$SEARCHDEV  SCH$IOUNLOCK=0#;=0$;  SYS$CLREF" ! SYS$WAITFR"=0 %;=/ =# OTS$CALL_PROC=0 &;=/ =0&;=/ =0`';(%EXE_STD$FINISHIO"=0';= =0*;=0,;=0.;=0p0;= =0<;=0<;=0G; 'EXE$WRTMAILBOX;=0PK;=0K;=0P;= =0`Q;=  ()EXE_STD$WRITECHK=0T;;7 EXE$ILLIOFUNC=0X;=0Z;=@t =0[;=P< ;;=0 ];=0 ^;=0_;=0@`;=0P`;=@< +IOC_STD$REQCOM""=0`;=0 b;=/ ="` -SCH$QAST;=0k;=08 Pt;= =""7EXE$GQ_RIGHTSLIST /EXE$ALONONPAGED 1EXE$DEANONPAGED=0 x; 3LNM$SEARCH_ONE=0`y; 5 SCH$POSTEF=08;= 7 OTS$DIV_I=0c; ;=0(0s;=P =0=;= =0@d;=0(s;=P (*[EVERHART.JTDEMO]JTDRIVER_S2.OBJ_AXP6;15+, .u/ 4ut~- 0123KPWOu56`ף789GHJ*DDJTDRIVERV01H 3-FEB-1997 19:34AMAC V2.1-13  x$$$115_LINKAGE ~ $$$115_DRIVER $$$105_PROLOGUE $$$110_DATA $ABS$ . BLANK . . ABS .0  DRIVER$DPT( JT$DPT( JT$DDT IOC$RETURN_SUCCESSIOC_STD$MNTVER IOC$RETURN IOC$RETURN_UNSUPPORTED0  DRIVER$FDT EXE$ILLIOFUNC SMP$GL_FLAGS SMP$ACQUIRE SMP$AL_IPLVEC SMP$RELEASE SCH$GL_PCBVECEXE_STD$ABORTIO SCH$GL_MAXPIXEXE$ALONPAGVAR SMP$ACQUIREL EXE$DEANONPGDSIZ SMP$RELEASEL CTL$GL_PHD CTL$GA_CCB_TABLE CTL$GL_PCB(PMS$GL_KERNEL_DISPATCH_VECTORSYS$QIO SYS$SETEFCTL$GQ_PROCPRIV SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCK SYS$WAITFR SYS$CLREF EXE_STD$FINISHIOEXE$WRTMAILBOX EXE_STD$WRITECHKIOC_STD$REQCOMSCH$QASTEXE$ALONONPAGED EXE$GQ_RIGHTSLISTEXE$DEANONPAGEDINI$BRKLNM$SEARCH_ONE SCH$POSTEF OTS$MOVEMOTS$ZEROOTS$MOVE OTS$CALL_PROC OTS$DIV_I(J'FDTLOP(J`(FDTXIT(J)FDTBXT(JdVCSTP150Jx GRANT_REVOKE =0;=@8@| F11 =00;=@| ;;=p=0;7 SMP$AL_IPLVEC7 SMP$GL_FLAGS  SMP$ACQUIRE  SMP$RELEASE7 CTL$GL_PCB7 CTL$GL_PHD  SYS$SETEF"= EXE_STD$ABORTIO""= @ SMP$ACQUIREL OTS$MOVE EXE$ALONPAGVAR=0;= OTS$ZERO(EXE$DEANONPGDSIZ  SMP$RELEASEL OTS$MOVEM;=7 SCH$GL_PCBVEC7 SCH$GL_MAXPIXSYS$QIO""" 7(PMS$GL_KERNEL_DISPATCH_VECTOR7CTL$GA_CCB_TABLE=00;=0;7CTL$GQ_PROCPRIV=0;=lR=00 ;  SCH$IOLOCKW  IOC$SEARCHDEV  SCH$IOUNLOCK=0P%;=0&;  SYS$CLREF" ! SYS$WAITFR"=0 ';=/ =# OTS$CALL_PROC=0`(;=/ =0);=/ =0);(%EXE_STD$FINISHIO"=0);=  h=0 -;=0 /;=0P0;=02;=  =0>;=0?;=0J; 'EXE$WRTMAILBOX;=0M;=0@N;=0 S;= =0S;= p()EXE_STD$WRITECHK"""=0 W;H;7 EXE$ILLIOFUNC=0Z;=0];=@t =0];=P< P;;=@-=0_;=0`;=0b;=0b;=0b;=@< p +IOC_STD$REQCOM""=0pc;=0 d;=/ =" -SCH$QASTH;=0n;= @ =08 x;= =""7EXE$GQ_RIGHTSLIST /EXE$ALONONPAGED 1EXE$DEANONPAGED=0|; 3LNM$SEARCH_ONE5INI$BRK=0}; 7 SCH$POSTEF=0P:;= 9 OTS$DIV_I==0Pf;=;= =0(w;=P =0 @;= =0f;=0(w; =P  =>C~^^~ (0޴8GC1'F1#CWpJC&&&"4GCYp KC:9'&H"LƲ|SJX&C?G:GX&4GXƢw1 KVRJFXƲG\X0KG\\FGvSKG_G\G\FG\WRJF\沀&?G:G&G^~ (0ޤ8CkG>C~^^~ (0޴8GC C([?' Fp9#C&CCG^~ (0ޤ8Ck>C^^~ GGEm>CG-GGpH*GGW@FGG/J0KC%GDj!/ע0M>C8mpH@ZkCGCGFGCG^~Ck/ M>C(m@ZkCJ0KC*'p#08CJ_ GG>C~^^ ~(08޴@HP>X^`~hpx޵GGCCcCCp`Kp`GGn#@G^ ~(08ޤ@HP>X^`~hpxޥCkG$0A_HGJ?GvJLŢ&BFHJGJ`GvJ_>C;A ^_Cn#C@4G <C(n#(0GC@Ӹ.TGe/|JyeHVJ[ eKF J|Ge?>E//ZEKX KYG eHG?E?0.3e/J\ eKFC4Bn#Cm@Ӕ%/.D%KX J8GC4YC /#E/ĢK[ EKGC4B/"/$KV KGC48C%/.d%KX J8GC4yCe/E#/ĢzKY KyGC4B/E/K[ EKGC4B/tG.w%KXKV JG %KF>?f{`KgK45`C(%/_#+.%KX J8GC:Gx `/`KpG4JJ /4@KG4JJ`âFGe/G%/zK[eKY %KzG K:G%?e?>C~^ >ް0E-3. >EI~W J WE C@p@Iܠ[@ޠ H4ZA (^48CCdGޠG|J >^~C.e/`NVJ[ eKF JC|Ge?>pU48CJ>C"<E#(.+e/J\ eKFCF<<,?/ HY K<ŢDCG4B CNCnCCCG@ZkGCe/G%/zK'[eKY %KzG K:G%?e?(.+/JV KFCF.>C ~^>x ,@;Hp` @e,C._ eHX JxDC`?"6DCw`K Dw Hb@@ D>Y/^ ~YKXKCn#R @yG>C,#,(>$~ ^>ް ~^,./E/J[ \KFCCJ>Cx.N ~^>9>Cn! HC>@Zk>C4>C NG HG ~^>GG@ZkN>? ^ ~C,E@n>C@ZkC N@E>CG H ~G^>GG@Zk>^ ~C>^ ~CX|w`GGFGG.G/vKn#WJ\ KF KG?>>C @C >C0N>`a4 8n>C@Zk>C%/4G.xEK|%HY%KW J8G EKF>%?.e/VJ[ eKF %H|Ge?> N>Cn>4? >C@Zk>CE//yHZEKX KYG HG?E?7GXע>C@N4Hn@ZkCTGGGG ,G^n#~ޠ> ^$~(>04C~ @ӥG>^ ~C&>CNn4@ZkCGG%/TG.xEK0_!Y%KW J8G EKE#F>%?xZHA C%/@I.GY:KW J8G ZH NF>%?>C ~^>GG@Zk4_#tG^> ~ CC4B°>C~^%,% D@H"@HCA@C^G~C +? NGnC >C@ZkC 0NC4+>C8n@ZkCq/$KGCeGⳑ"" G @ G@GGG @^G~@G @ޠG@G>@ ^$~GC[@zG@Gװ@G;GZ@yŰ>CX$~ ^ C>| ް ~^,벐âŲ<eLk =>C@N4Hn@ZkCTGGGGxG@GG|C@GY@G@CYGxCJtaA /XK ?Et$+  J/JK@ KTAA J/ .YKX JXGK*/AA8K !+G(.G7"I K  IK K#9!G 0Y>CN ~^>@Zk ~+!>^CxC6AG>CNIG ~G^>@ZkG_#>^ ~C%F0|,( + .J>`7JGJ4wC  /Gv+KX KG7`  ?>C(k# ~^>(+ $k  , HNHGG@Zk>^ ~C +4G%#(Fx@ SAFETY013.A  ([EVERHART.JTDEMO]JTDRIVER_S2.OBJ_AXP6;15u>GTGŲ?'A0@CAG'0BD\GD. C$K'#>C',ACJ{# 0A E CCC>C C~G겔"ʲ EGk# j>C,I J>CK C^ E CI(+C >C  #>C`^~>C$ˢ>CB޲C~@>CTG>GTG>CG^0KGG?# ʲ^CNGNGn@G>CLޢ48><^@~DHP޶TޢX޶\ޢ` ޶(@ZkTGtGGCG~G^CG0K *^C$K>C0n#q@TGCGGC>C;AGLG>C_C=XC|`GGFGG>C(#Hˢx|4Bn#w@4 @ Kn#A @0N4+C,+8nG@ZkX.C>C@NהH4>CHn@Zk VHCHFTGGGGGC C(>^~ ޠ> ^$~,>CC/N>CnG>4G@ZkG>C  GGGGG/KG4JJ /4@8K0G4JJ>C!G(>C^n#~ ޠ> ^$~ C,>C, >C~@TGGGC~>CG,~G(^G$>;A ް ~^>L>Ch_C3XC|l`GGFGG/>Cn#@4 @C n#>Cf@0NC4+C8n>C@ZkCXCע>C@N4Hn@ZkCTGGGGG>^ ~ޠ $>(^,~Cc/>CnڔH^N4>C@Zk YHCH Gn#@4 @"N Cn@? @ZkN C@?"GG@Zk@#G0NG4 G*G4+C,+8n@Zk>CNn4@ZkCGC^C~" ޠ> ^$~C CC>>>C ~^> ްC~>C^>n#>^ ~ޠ $>(^,~C @) /Z ;K:D /Y KYGmJ/W XK7Gu!/V KF!. +KW JF!>GGG>C^^~ (޴08@>H^P~X Gm#_C Cm#@CC^~ (ޤ08@>H^P~XCkGGG>C^^~ (0޴8@H>P^X~` Gh>Cx- hA>HKx0XC AA/*-*I 4@A >C^~ (0ޤ8@H>P^X~`hCkG05 A0U A0u AJ/G,AKJK 4@A k(GK /HIY K @ADCC>Cy@0@Cͦt0 A" @AKA* @A kCC>Ce@CJj AA0@0#@M 䰄G?E0`C3 ,*/AK HZ *K k @AD*,C.CC*HX J @A8DC>C6@CJ,j/j,JH\ jK @AjH*/\DC0@Z *K @AzDC0#@GG2BAGG>CGm#B@Cn?E0ՀC?E0@Cl*-*I IAd..VJ>WJ>]G*-*I IAXGG8D<C"DDR&CC"8D&>CDCl"C6D wHC>C @"@C=%,="6H,B9">>! H#@!C>9%,7H#CC!CG  =0 @6J?>$@!C>C!CG 0 @6J?$@CCCk>%/\ 6KC^^~ (0޴8@H>P^X~` Gh>CHM,~(^$> ް ~^><Hkx:0yC iA/*-*I 4@A >^ ~ޠ $>(^,~C^~ (0ޤ8@H>P^X~`hCkG05 A0U A0u AJ/,JK 4@AH /(GKY KIDC @AG0 A ,/*, HV K @A*HJ/J,DC[ JK @AJH /;Dj,CY K @AjH.YDCW J @AwDCG0 A ,J/*, H[ JK @A*H /J,DCY K @AJH.9Dj,CW J @AjHj/WDC\ jK @A|DCG0 AC*-$*IGJ IA GvJ{0A CA).)J 05 B k#|Gn0 Ap*-*I IAh< Mm0C< @Zk>CC. MCJ4A(m\KGCYP K9'C"\pK'>C> ~@Zk~ >C>|'91 C|' |&4 A|0B|Dk$#| /-/)/ AKZ ;KG.J'(/vJY(K6G&(?TA H/Z[K'` H?A "/K$@vGuJ\KG#@?AH/#XK";GwKZXKWG!H?0M8m@Zki/\ vKF / JX KG ? (/Y ;K (?/Y KyG JX KG?.W J7G KV JF>>C^^~ (޴08@>H^P~X G8m>C`>[<@GGFGG/>Cm#r@C C뢨m#>Ci@C/aG8ͦC>C M4(m@ZkCTGGG>C^~ (ޤ08@>H^P~XCk>CMm4@ZkCG>Cm#@MC4+mC>C@ZkC>C^^~ GGGGGGJ@  MG(m4G@ZkG4GMm@ZkJ_CJ@ TG>CMm ~^>G@Zk>^ ~C^~CkGG>C~^ ^(~08@޴HPX>`^h~px GGwHAAD/KK?4C0MG8mG@ZkGG>C~^ ^(~08@޴HPX>`^h~px GG4GA;@G ^(~08@ޤHPX>`^h~pxCkGGG>C~^ ^(~08@޴HPX>`^h~px GGGA@G ^(~08@ޤHPX>`^h~pxCkGGG>C^ GMGPCmCT#TG@ZkCkGGG>C~^^ ~(08޴@HP>X^`~hp Gx޵G>CC CCC@m#_CACG@G^ ~(08ޤ@HP>X^`~hpxޥCkG<C'(e#|GD0%4YC4CĢ 4BdE4zC$47CĢe4BD4XCƢvJJ45B C>CAf@4EACK>C^<>C Cx|ci@m#CI# ) `â>C> Fްl_GC 21@Z'@mCMCCC>CG4C@Zkޠ >CTGGGG^C&GF|ɢ61B|ɲ4G||J0@C|JC  rAC@lMGޠGCC >CPTGT#>Cm@ZkCZ>C^^~ (0޴8@H>P~X G>Cm# > @CZX CtaA-ktd>C^ +/8KY8K@KPGvXK6G +? K@J:1@CJ@ .taAJWJKG{KF > K@ 81C ^C ˢIJk`ͦd +1KD ˢIJ8kF0zC8K>CA^q@^m#B @0 @C +m#!>C @MC4+mC>C@ZkC>C^~ (0ޤ8@H>P~XCkG>C^^~ (0޴8@H>P~X G>Cm# > @C$H C-ktd KD PM /= ˢѲkq+$뢄 KD8 0C8K>CA^@^C/>C^~ (0ޤ8@H>P~XCkGGG>C^^~ (޴08@>H^P~X G>C- hA>HKx0XC AA*-*I 4@A >C^~ (ޤ08@>H^P~XCk/G05 A0U A0u AJ/,JK 4@AH /(GKY KIDC @AG0 A ,/*, HV K @A*HJ/J,DC[ JK @AJH /;Dj,CY K @AjH.YDCW J @AwDCG0 A. ,J/K H[ JK k @AD*,C /CC*HY K @A9DJ,/Cj,CJHV K @AjHJ/VDC[ JK @A{DC GG2BAGG>CGm#O@CG0 A*-*I IA~0 A*-*I IAx>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`CA@G^ ~(08ޤ@HP>X^`~hpxޥCkG`#_#:GGJGvJ>Cm# r_CAC@<CĢ04BE//dEKY KYGC4zC .#e/J\ eKFC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/e#%/KZ ;KGC4B.e/J\ eKFC4C&y K'K45 C'O(.+.JW JFC0FGFE>Cpm#(~$> ް>C~^>  @C(>Ct@^ @/YKZYK`KpGwyKWG @? @@j;1`Cj` /t@KXK K(Gu7KG ? @@J:1@CJ@^C<:>^ ~ޠ $>(~C(.+/JV KFCF\`cpGA>C~^ >ް E-#%/ >EI~Z %K ZE C5@Ϡ@IX@ޠ.4WA^*Ȣ4B%C7G>^ ~ޠ $>(~(C/CGMC4GCPmCT#TG@Zk`CPG`CޠGG >^~^C~x@GpD @B11 BGGG,>C G ~^ C>xpn ,@7H~@e,??#CE/9DCeH[ EKG{DCwJ ` Dw Hb@@ D.JJU@ 0`A>^ ~C/$E-$%#'.YIX J XE C<@ʢF9|7$j5`>C M ްϠY@ /#.KW JGC4C'1@#E/ e/Z EK#E?[eK e?ޠ C % >CA>Cް ~(@~ ޠCC~4u@^C_ CG>^ ~CCXMCGG`mCCC@ZkH/V K6D~GG>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`C0m# @G^ ~(08ޤ@HP>X^`~hpxޥCkGGJ@GvJ?>Cm# _C m#C@<C(G0.3e/J\ eKFC4B%/.D%KX J8GC4YC /#E/ĢK[ EKGC4B/"/$KV KGC48C%/.d%KX J8GC4yCe/E#/ĢzKY KyGC4B/E/K[ EKGC4BxKK45C(.+/JV KFCF?>CGGxG@pD @B11 B@GGG-GG@GpD @B11 BGG G@.JOF(%/+.%KX J8GC$G/@KE`pG .@JCTFyKWJFB>GC(.#+/JV KFCF_>CGxGG@pD @B11 B@GGGCLGG(/"+E/K[ EKGCGP0m#4GC@ӄ@/[ \KF /Z ;KG@/[ \KF KZ \KYG@?G>C^ GA@CkGG>C^޴ (>0^8 G`>Cm#^ >G Cް>C_GC CC@ t?=ZGAmCMC>CG4C@Zk ޠ>^CCޤ (>0^8CkG MGޠCCC >C^C(mG@Zk>C~^^ ~(08޴@HP>X^`~hp-qCx޵GCCCCC/0m#_G^ ~(08ޤ@HP>X^`~hpxޥCkGf_'Z#{`KgK45`C`#:GGJGvJ>Cm# _C m#C]_<CĢ04BE//dEKY KYGC4zC .#e/J\ eKFC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/e#%/KZ ;KGC4B.e/J\ eKFC4C&y K'K45 C>C~^ >ްE-. >EI~X J XE C@ͦ@I֠\@ޠ h4[AH$^4YCCޠ >^~C(/+.KW JGCPG%(e/#+%/eKZ %KzGC|GB>CxDGGG@pD @B11 BFGG75/@KiG8G>CGGxG@pD @B11 B@GGGGG@GpD @B11 BGGG@.JIFyG0m#C_0m#C_GsG>C<%#(~$^ >ް ~^><E-?.YIX J XE CD@ CDJA@TJB=)Cw`K4IA8E-E#/ CZIY K YE C/@F,|ʢ*$(>Cm ްGՠZ@ %/.Ȣ%KX J8GC46C'1@e//[ eKe?\K?ޠ CE@>C@m#@C>^~ ޠ >$^(~C G0m#C,_ӑG(%/+.%KX J8GC$GC/@K`pG=(.@#+/JV KFCF @/@XK!G|xKZXK\G@?@e/D"C/eKY K[eKYG:1@CwEKX KwG EKGC?@e?@D.Ge/@E/J\ vKC/ZEKFCyJX KYG J@GC?@E?.J`TGxJVJF`>>C@ް ~^.J0F][ YDȠW%/#.>C M8KW J>7GC>G ^G(m(~@ZkG0@>> ^(~C/E/K[ EKGC4@,/HY KDC."/JV KFC4@F<-<e#?%/IZ ;KECDTCwJ4@C4@(e/+%/#eKZ %KzGC|G.@J5FG^~ ޠC;G/V KGG=@/[ \KFF4- /Z ;KG;.W J7GF xKV JF>F /Z ;KGg JY ;K8G ?g@/[ \KFp`/\ vKFGGG>C^^~ (0޴8@H>P^X~` GhPMGXm@Zk^~ (0ޤ8@H>P^X~`hCkG>CGG G ~$K^>-I=?H?? ?(?0?8?@?H?P?X?`?h?p?x-Ix=>^ ~GC CTGt>CG(~$^ >ް ~^>b<8  "@A @K! @ + @ A @Kt  K+k - $ (˰,0 4+ 8 I<K @ IDKH+L DPK$T+8 4X ,! H\L`>CM Cm~GC>C@Zk_'~ C%m?%$:GFGGGFGG/kG4G&`M>Cm@ZkG4GCK@Mm>C@ZkCGt MCmG>C@Zk>^ ~Cޠ >$^(~C2TGGGĢGGFIJ>C^~ Ge#4G+0C0u BkMGm4G@ZkGhMCpm@Zk4G~CkGG>C^^~ (0޴8@H>P^X~` Gh(G`G^~ (0ޤ8@H>P^X~`hCkGM? m@Zk>CGG G ~$K^4G>-I=?85C?? ?(?%CH?? LO=-I=>^ ~GCtGtpb>C C(~$^G >ް ~^>b<8  "@A @K! @ + @ A @Kt  K+k $ (˰,0 4+ 8 I<K  @ SAFETY013.A  ([EVERHART.JTDEMO]JTDRIVER_S2.OBJ_AXP6;15u"F>5M@ )x+ D HKT!A )/ -8KZ I!A:GL+)/8KP+WTK$X+\ 8 4A`K,! H!d+Lh<ˢ#+>C,~(^$> ް ~^>|C@| 0@ JpA@MHGG@Zk>^ ~ޠ $>(^,~C>CM Cm~ $C>C@Zk~ C%-'?%FFGGGGGG+G+ hMpm>C4G@ZkGC "xM>Cm4G@ZkCG4G/>Ct XMC`m? @Zk>^ ~Cޠ >$^(~CTGGGGGDIGD -Z I:G`GGG>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCC4G;A_G^ ~(08ޤ@HP>X^`~hpxޥCkG>C~^^ ~(08޴@HP>X^`~hp Gx޵GCC` HCC`C@KGG4fKDMGmGCCCCG@ZkG^ ~(08ޤ@HP>X^`~hpxޥCkGxC|#>C(MCC0mCC>CG@ZkCPD#G>C,~(^$> ް ~^>x@.4U@, -٢0C0Bٲ@ d`% |#8!C`Mm@Zk0 ~GMC  >G^CޠCC $>(^,~mC@Zk>^ ~ޠ $>(^,~CèMCmCCCCG@Zk45@ CŢA4vA@ ~TGM4G>G^CCޠ $>(^,~CPmT#@ZkbA@GGG>C^^~ (0޴8@H>P^X~` Gh^~ (0ޤ8@H>P^X~`hCkG>C4G(~G$^G >ް>C ~^>-G>CG pHGGW@FGGCKo#e CtHI @i8+ )0*C&p"0B#4GEE峠M>CGG"OB@ZkGGCGMG( !墈>C~^ >h%!Gް(>C ~G^> H@Zk G> A^ AA ~ !AC >C*0(B0'B)+1`A A @Ah"ޠ >^C~C(貄ﳆ"˲| `>C0M >C8mpH@ZkCCGGF>G^~ ޠ >$^(~C?/ M>C(m@ZkClTG>C^^~ (^0~8 G>CC>8%Em !CG>CG G>CGٔH>pH?ͦGGV@FGGZHCH@G 0 C3ʢ'p#0BJ_M: >CؔHM>CmpH@Zk WHCHFGCGF>C^~ (^0~8CkM>Cm@ZkC* G*+J0A@D M#( ĢGRCFIJG0"@ C$?÷GG ` d>C~ ^CDG!#0@A고CGG>C~^^ (޴08G4GCCCC4GG^ (ޤ08CkGG>C~^ ^(~08@H GGC #X%G-'@#?G:GX%4G{1J4GXC-M\0K(ͦ#GXE岰Ų>C`M ~^><>Chm! HC >@Zk >CC>CMG HG ~^>GG@Zk`M>? ^ ~C,Ehm@@ZkM@E>CG H ~G^>GG@Zk>^ $_= ~C4G>^ ~C/G ^(~08@HCk4G>^ ~CŢFŲ>C^^~ (޴08@>H^P~X GG,% D@H"@HCA@CA%@!08CA#@ Ga`ˢ0BC?G?DD%^~ (ޤ08@>H^P~XCk/C>C^^~ (޴08@>H^P~X G>C C>2`A@G4*0#4G*0<@<@FqG `CXM`m>C@Zk CC_>CGG G ~$K^>.J>H??? .J >>^ ~C>C^~ (ޤ08@>H^P~XCkGG>C^~ ޴(08>@^H~>C>,%G D@H"@HCA@C0 C>C^~ ޤ(08>@^H~CkGGG4GkGG>C~^^~ (08 GGCCEBFT xe(MG0mCCCtG@ZkG^~ (08CkG>C^^~ (޴08@>H^P~X G>CMm,~(^$> ް ~^>CeG@ZkLm#l_C~A>^ ~ޠ $>(^,~C@^~ (ޤ08@>H^P~XCkGGG>C~^ ^(~08@޴HPX>`^h~px GGM CmG@ZkA>CG# G ~$K^>.J>H??? .J >H(.J(>^G> ~CBy H0C@ͦZ@K8mYGBb>CtG^0K G^C ŲvqKD E0MWpJF@Zk@MGHm4G@Zk4GG ^(~08@ޤHPX>`^h~pxCkG>C^^~ (޴08@>H^P~X G>CMmG,~ C(^4G$> ް ~^>>C @Zk C:GG>C^^~ (޴08@>H^P~X-nC>CMmG,~4G(^$> ް ~^>@Zke>CMm~ ~^>CG>C@Zk> ^~C~C`G>^ ~ޠ $>(^,~C/^~ (ޤ08@>H^P~XCk>CG^m#0K^CDkLO_Cͦ+! G%GeKY@G4G%(&" Gj GZ@X @,H``@% ?"DCw`KDwH IAZADY/YKUK|$G/GKP0FK TGGK_#Ǣ ˲k0zC@.'4`CJ@DktG%4G˲Dk hA0`G~m#>^ ~ޠ $>(^,~C7@ӂéG_#IC,H(Ai/4 AzK0`C 'A+';G+@'+;G+ hAGG[/yK 4@AZ[KGYG[?GyK[/ 4@A#Z[KYG[?GuK[/ T@AZ[KUG`[?G' @A4CGxV @AGY4G[/yK 4@AZ[KYG[? hAGG:/uzK 4@AY:KG5G:?GuzK:/ 4@A#Y:K5G:?G|zK:/ T@AY:KC- ް,H נ[@0E(0YC'1@0Gޠ C0ŢH>CmCh< HhKH ˢȲ K$H8((,Ģ0Ȳ4>C^><tK88 4aTh<@,! HA<HL@8 G mD4GHALH MP>^C~GŲC>C@Zk~ C4G>^ ~ޠ $>(^,~C)x05CGE>CHMHG ~^>hAG@Zk>^ ~C;/Z ;KD .Y JYG;/ KY ;K5G;? . zKU JF>0/V KD]G>C^^~ (޴ n=08@>H^P~X G>C4G,~ C(^m#$> ްC ~^>_G>C0 `C@ CA Ca  @ @! @A @ K"@ @*' 71BG>Cm4G0 G4G@MC@ZkM?#'>C0  CF1 K.KJ`1@B( 1u@B& +$ >C> + 'F a_'0`Ca G ˢ&F K '\GK ?'G @'0C+;G+>C&F1CC 4Gk>CM,~(^$> ް ~^>+t$ (-ˢIJ kͦy뢰m#KD 뢱_#>C0 @C_#>C0 > ^~Cޠ $>(^,~C81B Hm#{_>Cy"m#0 C1@ _>C#A"0 `C$>C|+ C*겄K J  >C0 C1uC k``C>Cm#>GG ް_ ?#C#`@F['@>C >CpDC^CqDDCGM>CmGް 4C~0  G>C >^~@ZkCޠ>CTGGGG, GC0 "C$K@ * *4Gj K@J@ 81C M>CmG 4G@Zk CˢtIJ (ͦKD Mkvm#+$뢄 KD>C ^_ ^C>C5#0 >4G ^~Cޠ $>(^,~C^~ (ޤ08@>H^P~XCk>C4Gm"m#0 ޢP_TG>CXMC4G>GPCT#>C`m@ZkC/>C0@9Cx>C4Gm#3_TG>CXM`mCG>GPCT#>C@ZkCGޠGGC >CXMCPTGT#>C`m@Zk $>(^,~0Cޠ $>(^,~CGC& CF|i;1`C|i`4G|I| 0C| 3k/\ kK\F:GGG>C?G~(^0^8~@ GHG= =]} 4GG>C?G~(^0^8~@-jCHG= =]} G]@>CCb` G=BCG>CCC^Gm#@^CG(0^8~@HCkGGG>C~8^@^H~PX`޴hpx>޵ GG= =(]0}CoGG/`GGGGG/$M>CmTG@ZkCTGGGCGG4G/[@ ! D@CwK(=GA!#1`@ `GGP@àMTGm@ZkGn2@r@#1`@@0(H4GG8@^H~PX`ޤhpx>ޥCk/GG )I0MC8mC*@@ZkCG@@9"@:A@G@@Gz9H/T@@XKGY G?TGW/nKT@@ZWKNGVW?>C`HG%.%JSGM4qBFGABB@Zk `M@ZkGC(ͦ C @/@MHm@Zk|[@C xGCP@qGDE0= #w`HM@Ca@`HHGG4qBF qBAB@Zk `MD@Zk4G/$4GDz. 9HW JF>7/ KY 7K.G7?/Y K9F>C^^~ (޴0~8 G>C M(mGް>C~ ^>@ZkCetG4`McA gAKX m>C@Zk M(m@ZkG{qJ> ^~C ޠC pM^G$ % \pKGxm>C@Zk^ C^~ (ޤ0~8Ck>^~ ޠCGG>C^^~ (0~8 G>CMm ~>@Zke` +k`l+ @?G8'KK!.7JMpK"!@@ZkGGM4G> ~C$m@ZkMmC@Zk^~ (0~8C ~=k!/V 7K6F4PGd SMP$RELEASE4Xm# SMP$RELEASE4`@d SMP$RELEASE4G SMP$ACQUIRE4m# SMP$ACQUIRE4@ SMP$ACQUIRE4XGxEXE_STD$ABORTIO4`n#@EXE_STD$ABORTIO4t@xEXE_STD$ABORTIO4  G EXE$ALONPAGVAR4 n#@EXE$ALONPAGVAR4  @ EXE$ALONPAGVAR40 Gd OTS$ZERO4` @d OTS$ZERO4 h G EXE$ALONPAGVAR4 n#@EXE$ALONPAGVAR4  @ EXE$ALONPAGVAR4 G OTS$ZERO4 @ OTS$ZERO<| G EXE$DEANONPGDSIZ< n#@EXE$DEANONPGDSIZ< @ EXE$DEANONPGDSIZ4  G EXE$ALONPAGVAR4 n#@EXE$ALONPAGVAR4  @ EXE$ALONPAGVAR4` Gt SMP$RELEASEL4l n#@ SMP$RELEASEL4p @t SMP$RELEASEL4  G SMP$ACQUIREL4  n#@ SMP$ACQUIREL4  @ SMP$ACQUIREL4 G OTS$ZERO4 @ OTS$ZERO4 DG`EXE$ALONPAGVAR4Ln#@EXE$ALONPAGVAR4 \@`EXE$ALONPAGVAR<hGEXE$DEANONPGDSIZ<|n#@EXE$DEANONPGDSIZ<@EXE$DEANONPGDSIZ4G SMP$RELEASEL4n#@ SMP$RELEASEL4@ SMP$RELEASEL4 ,GLOTS$MOVE4 H@LOTS$MOVE4 GOTS$MOVE4 @OTS$MOVE4 pGOTS$MOVE4 @OTS$MOVE,pGSYS$QIO,xn#@SYS$QIO,@SYS$QIO<GEXE$DEANONPGDSIZ<n#@EXE$DEANONPGDSIZ<@EXE$DEANONPGDSIZ4G0 SMP$RELEASEL4(n#@ SMP$RELEASEL4,@0 SMP$RELEASEL4G SYS$SETEF4n#@ SYS$SETEF4@ SYS$SETEF<xGEXE$DEANONPGDSIZ<n#@EXE$DEANONPGDSIZ<@EXE$DEANONPGDSIZ4G SMP$RELEASEL4n#@ SMP$RELEASEL4@ SMP$RELEASEL4 $n#@ SMP$ACQUIREL4 4GD SMP$ACQUIREL4 @@D SMP$ACQUIREL4 pGEXE$ALONPAGVAR4xn#@EXE$ALONPAGVAR4 @EXE$ALONPAGVAR4  @ SAFETY013.A  ([EVERHART.JTDEMO]JTDRIVER_S2.OBJ_AXP6;15u>TGOTS$MOVE4 @OTS$MOVE<GEXE$DEANONPGDSIZ <n#@EXE$DEANONPGDSIZ<@EXE$DEANONPGDSIZ4 G SMP$ACQUIREL4 n#@ SMP$ACQUIREL4 @ SMP$ACQUIREL4$#G<# SCH$IOLOCKW4(#m#  SCH$IOLOCKW48#@<# SCH$IOLOCKW4H#G# IOC$SEARCHDEV4\#m#  IOC$SEARCHDEV4#@# IOC$SEARCHDEV4$G$ SCH$IOUNLOCK4$m#  SCH$IOUNLOCK4$@$ SCH$IOUNLOCK4(&G<& SMP$RELEASEL44&m#` SMP$RELEASEL48&@<& SMP$RELEASEL4 &G& SMP$ACQUIREL4 &m#` SMP$ACQUIREL4 &@& SMP$ACQUIREL<&G&EXE$DEANONPGDSIZ<&m#`EXE$DEANONPGDSIZ<&@&EXE$DEANONPGDSIZ4!8'GL' SYS$WAITFR4"@'m#p SYS$WAITFR4!H'@L' SYS$WAITFR4T'G`' SYS$CLREF4 X'm#p SYS$CLREF4\'@`' SYS$CLREF<|'G'EXE$DEANONPGDSIZ<'m#pEXE$DEANONPGDSIZ<'@'EXE$DEANONPGDSIZ4#@(GT( OTS$CALL_PROC4$H(m# OTS$CALL_PROC4#P(@T( OTS$CALL_PROC<%)G)EXE_STD$FINISHIO<&)m# EXE_STD$FINISHIO<%)@)EXE_STD$FINISHIO4$,m#@ OTS$CALL_PROC4#(,GH, OTS$CALL_PROC4#D,@H, OTS$CALL_PROC<%,G-EXE_STD$FINISHIO<&-m#@EXE_STD$FINISHIO<%-@-EXE_STD$FINISHIO<.G.EXE$DEANONPGDSIZ<.m#hEXE$DEANONPGDSIZ<.@.EXE$DEANONPGDSIZ<%`7G7EXE_STD$FINISHIO<&x7m#EXE_STD$FINISHIO<%7@7EXE_STD$FINISHIO4:G4:EXE_STD$ABORTIO4 :m#EXE_STD$ABORTIO40:@4:EXE_STD$ABORTIO4$x?m# OTS$CALL_PROC4#?G? OTS$CALL_PROC4#?@? OTS$CALL_PROC4?G@EXE_STD$ABORTIO4@m#EXE_STD$ABORTIO4@@@EXE_STD$ABORTIO49GG H OTS$DIV_I4:Hm# OTS$DIV_I49H@ H OTS$DIV_I4 LJG\JEXE$ALONPAGVAR4TJm#EXE$ALONPAGVAR4 XJ@\JEXE$ALONPAGVAR4'hLGLEXE$WRTMAILBOX4(pLm#EXE$WRTMAILBOX4'L@LEXE$WRTMAILBOX4MGM SYS$CLREF4 Mm# SYS$CLREF4 M@M SYS$CLREF4!$MG4M SYS$WAITFR4"(Mm# SYS$WAITFR4!0M@4M SYS$WAITFR<HMG`MEXE$DEANONPGDSIZ <PMm#EXE$DEANONPGDSIZ<\M@`MEXE$DEANONPGDSIZ4MG N SYS$SETEF4Nm# SYS$SETEF4N@ N SYS$SETEF<NG NEXE$DEANONPGDSIZ<Nm#EXE$DEANONPGDSIZ<N@ NEXE$DEANONPGDSIZ4 NGNEXE$ALONPAGVAR4Nm#EXE$ALONPAGVAR4 N@NEXE$ALONPAGVAR4 HQG\QOTS$MOVE4 XQ@\QOTS$MOVE4'QGQEXE$WRTMAILBOX4(Qm#EXE$WRTMAILBOX4'Q@QEXE$WRTMAILBOX4$RG8R SYS$CLREF4 (Rm# SYS$CLREF44R@8R SYS$CLREF4!HRG\R SYS$WAITFR4"PRm# SYS$WAITFR4!XR@\R SYS$WAITFR<RGREXE$DEANONPGDSIZ<Rm#EXE$DEANONPGDSIZ<R@REXE$DEANONPGDSIZ4hTGTEXE_STD$ABORTIO4pTm#HEXE_STD$ABORTIO4T@TEXE_STD$ABORTIO<)TGUEXE_STD$WRITECHK<*Um#HEXE_STD$WRITECHK<)U@UEXE_STD$WRITECHK4UGU IOC$SEARCHDEV4Um#H IOC$SEARCHDEV4U@U IOC$SEARCHDEV4UG$VEXE_STD$ABORTIO4Vm#HEXE_STD$ABORTIO4 V@$VEXE_STD$ABORTIO4`VGVEXE_STD$ABORTIO4hVm#HEXE_STD$ABORTIO4V@VEXE_STD$ABORTIO<%VGWEXE_STD$FINISHIO<&Vm#HEXE_STD$FINISHIO<%W@WEXE_STD$FINISHIO4 XGXOTS$MOVE4 X@XOTS$MOVE4 XGDYOTS$MOVE4 @Y@DYOTS$MOVE4YGZ SMP$RELEASE4Zm# SMP$RELEASE4Z@Z SMP$RELEASE4pZGZ SMP$ACQUIRE4xZm# SMP$ACQUIRE4|Z@Z SMP$ACQUIRE4[G[ SMP$RELEASE4[m# SMP$RELEASE4[@[ SMP$RELEASE4\G(\ SMP$ACQUIRE4 \m# SMP$ACQUIRE4$\@(\ SMP$ACQUIRE4 0^G`^EXE$ALONPAGVAR4L^m#EXE$ALONPAGVAR4 \^@`^EXE$ALONPAGVAR4p^G^OTS$ZERO4^@^OTS$ZERO4 ^G^EXE$ALONPAGVAR4^m#EXE$ALONPAGVAR4 ^@^EXE$ALONPAGVAR4^G_OTS$ZERO4_@_OTS$ZERO<4aGDaEXE$DEANONPGDSIZ<8am#EXE$DEANONPGDSIZ<@a@DaEXE$DEANONPGDSIZ4+$cGDcIOC_STD$REQCOM4,,cm#HIOC_STD$REQCOM4+@c@DcIOC_STD$REQCOM <cGcEXE$DEANONPGDSIZ<cm#EXE$DEANONPGDSIZ<c@cEXE$DEANONPGDSIZ4 dGdEXE$ALONPAGVAR4dm#EXE$ALONPAGVAR4 d@dEXE$ALONPAGVAR4.em#SCH$QAST4-eGeSCH$QAST4-e@eSCH$QAST4eGf SYS$SETEF4em# SYS$SETEF4f@f SYS$SETEF4fGf SYS$SETEF4fm# SYS$SETEF4f@f SYS$SETEF4,gGpg SYS$SETEF40gm# SYS$SETEF4lg@pg SYS$SETEF<xgGgEXE$DEANONPGDSIZ<|gm#EXE$DEANONPGDSIZ<g@gEXE$DEANONPGDSIZ4(`mm#EXE$WRTMAILBOX4'mGmEXE$WRTMAILBOX4'm@mEXE$WRTMAILBOX4 ,nG\nOTS$MOVE4 Xn@\nOTS$MOVE4om# SYS$SETEF4pG$p SYS$SETEF4 p@$p SYS$SETEF4#sGs OTS$CALL_PROC4$sm# OTS$CALL_PROC4#s@s OTS$CALL_PROC4tGt SYS$SETEF4tm# SYS$SETEF4t@t SYS$SETEF<%uG(vEXE_STD$FINISHIO<& vm#EXE_STD$FINISHIO<%$v@(vEXE_STD$FINISHIO<%lvGvEXE_STD$FINISHIO<&pvm#EXE_STD$FINISHIO<%v@vEXE_STD$FINISHIO<%vGvEXE_STD$FINISHIO<&vm#EXE_STD$FINISHIO<%v@vEXE_STD$FINISHIO4DyG\y SMP$RELEASE4Lym# SMP$RELEASE4Xy@\y SMP$RELEASE4yGy SMP$ACQUIRE4ym# SMP$ACQUIRE4y@y SMP$ACQUIRE4/zGzEXE$ALONONPAGED40zm#EXE$ALONONPAGED4/z@zEXE$ALONONPAGED4({GD{ OTS$MOVEM4@{@D{ OTS$MOVEM4H{GP{OTS$ZERO4L{@P{OTS$ZERO41{G{EXE$DEANONPAGED42{m#EXE$DEANONPAGED41{@{EXE$DEANONPAGED4{G| OTS$MOVEM4|@| OTS$MOVEM4|G$|OTS$ZERO4 |@$|OTS$ZERO,5|G|INI$BRK,6|m#PINI$BRK,5|@|INI$BRK43|G }LNM$SEARCH_ONE44}m#PLNM$SEARCH_ONE43}@ }LNM$SEARCH_ONE,5 }G}INI$BRK,6}m#PINI$BRK,5}@}INI$BRK4-H}G}SCH$QAST4.x}m#PSCH$QAST4-}@}SCH$QAST,5~G$~INI$BRK ,6 ~m#INI$BRK,5 ~@$~INI$BRK4 d~Gt~OTS$MOVE4 p~@t~OTS$MOVE47~G~ SCH$POSTEF48~m# SCH$POSTEF47~@~ SCH$POSTEF41~G~EXE$DEANONPAGED42~m#EXE$DEANONPAGED41~@~EXE$DEANONPAGED =0(,4H4=4= JTDRIVERX= 4= ( ( = pH4=44>IOC$RETURN_SUCCESS4>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS=>IOC_STD$MNTVER> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN_UNSUPPORTED> IOC$RETURN_UNSUPPORTED=> IOC$RETURN>IOC$RETURN_SUCCESS=44=( GCEVflagL|> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNCH4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC@44@44(4> EXE$ILLIOFUNC> EXE$ILLIOFUNC(4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC=%&GCEV @ SAFETY013.A  ([EVERHART.JTDEMO]JTDRIVER_S2.OBJ_AXP6;15u5s '*[EVERHART.JTDEMO]JTDRIVER_S264.OBJ_A;34+, .u/ 4upr- 0123KPWOq56D\7~\89GHJ8DDJTDRIVERV02A13-JAN-1997 21:33AMAC V3.0-23  . ABS . . BLANK . $ABS$ $$$110_DATA $$$105_PROLOGUE \z $$$115_DRIVER $$$115_LINKAGE0  DRIVER$DPT( JT$DPT( JT$DDT IOC$RETURN_SUCCESSIOC_STD$MNTVER IOC$RETURN IOC$RETURN_UNSUPPORTED EXE_STD$INSERT_IRP0  DRIVER$FDT EXE$ILLIOFUNC SMP$GL_FLAGS SMP$AL_IPLVEC SMP$ACQUIRE SMP$RELEASE SCH$GL_PCBVECEXE_STD$ABORTIO SCH$GL_MAXPIXEXE$ALONPAGVAR SMP$ACQUIREL EXE$DEANONPGDSIZ SMP$RELEASEL CTL$GL_PHD CTL$GA_CCB_TABLE CTL$GL_PCB(PMS$GL_KERNEL_DISPATCH_VECTORSYS$QIO SYS$SETEFCTL$GQ_PROCPRIV SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCK SYS$WAITFR SYS$CLREF EXE_STD$FINISHIOEXE$WRTMAILBOX EXE_STD$WRITECHKIOC_STD$REQCOMSCH$QASTEXE$ALONONPAGED EXE$GQ_RIGHTSLISTEXE$DEANONPAGEDLNM$SEARCH_ONE SCH$POSTEF OTS$MOVEMOTS$ZEROOTS$MOVE OTS$CALL_PROC OTS$DIV_I(J`%FDTLOP(J &FDTXIT(J&FDTBXT(J0bVCSTP150JPt GRANT_REVOKEX X = x4=`44>IOC$RETURN_SUCCESS4>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS=>IOC_STD$MNTVER> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN_UNSUPPORTED> IOC$RETURN_UNSUPPORTED=> IOC$RETURN>IOC$RETURN_SUCCESS=>EXE_STD$INSERT_IRP=04 4=( GCEVflagL|> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC4 44P44> EXE$ILLIOFUNC> EXE$ILLIOFUNC4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC= %&GCEV =0(,4 4=4= JTDRIVERX= 4=  =>C~^^~ (0޴8GC1'CF1#CWpJ"&&&GCYp KC:9'&H"LƲ|SJX&C?G:GX&4GDXƢw1 KVRJFXƲ\GX0KG\GD\FvSKG_G\G\FGD\WRJF\沀&?G:G&G^~ (0ޤ8CkGG>C~^^~ (0޴8GC(C [?' Fx9#C&CCG^~ (0ޤ8Ck>C^^~ G>CEmGG-GGpH$0M>C8m@ZkCʢ0B($j!M: >C M(mpH@ZkC/CGGFGGC^~CkGͦGGV@FʢGG0B*'x#08CJ_ GGG>C~^^ ~(08޴@HP>X^`~hpx޵GGCCcCCp`Kp`GGn#L@G^ ~(08ޤ@HP>X^`~hpxޥCk$0A_HGJ?GvJLŢ&BFHJGJ`GvJ_>C;A __Cpn#C@GdCHH%0 Gpn#C @ӺP.S/JV KFC4CGpn#C @Ӫ8E/;/dEKY KYGC4zC@.Ce/J\ eKFC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/%/e#KZ ;KGC4B.e/J\ eKFC4C&y K'K45 CH.K/#JV KFCF  / K0G4JJ .4@JF4JJchGF_>C~^ >ްPE-S/ >EI~Y K YE C@@IנV@ޠ 4\A hD^4zCC{ޠ >^~.Cx5C(4Cm>C"H/d%#KE/K[ EKGCG<Ţd,g. HX J<DC4B `NCGhnCCCCG@ZkHE/'K/EKY KCYGC[G->C ~^> ,@7H(_ he,kE/eH[ EK{DC`??#9DCwJ Dw Hb@@ D>.^ ~JJ@Cpn# @Ӿ>CL#,(>$~ ^>ް ~^L%/O.8KW J7GCCJ>Cp0N ~^>>C<8n! HC>@Zk>C4>C NG HG ~^>GG@Zk>^? ~0NCLE>C8nh@ZkC>ChEG H NG ~^>GG@Zk>^ ~C>^ ~ChעOPN>CXn4@ZkC>Cn#@C >CNn>>C4 @Zk>C 0N>C8n>p? >C@Zk>C6hn[@@N>CHn4@ZkCTGGG^G,G~pn# ޠ> ^$~(>0C CCT @>^ ~COGGGFGGG>CAl_! C N@IG ~^>GG@Zk>p_#^ ~C4B>C° C~^L% D@H"@HCA@C^~C +? E G0N8n>CB @ZkC NC4+>Cn@ZkCÔG>C NG H ~G^>GG@Zk^>C ~GC$KⳑP EP ""GhNGGP @ ^~ ޠ> ^$~C@@`@@@@@@ @@@`>C@$~ C ^ >ް ~^t#d+dX : @N>CHn4@ZkCTGGGGCG@GYG@G@CG@Y C@CJ*+ E K/taAZYK K?t @*/*K@D+TAA */ J/8KW XK7GH+ /AAK~N>CL  !HG:4K#G) +p)++#t風8!G08XN ~^>@Zk ~+!>^C#6AG>CNIG ~G^>@Zk_#>^ ~CF =0.(X+ EX.J6`7JGJ4wCX /Gv+KX KG/`X ?>C`k# ~^>`+ \k EX , HNHGG@Zk>^ ~C +?#HG Gᢁ'0CD[G&0CGxn C$K>C&["&,ACK" 0A E CCC>C C~G* # >C EG" ʲ,IAK _E >C C E CI`kC`>CXK#^G>C.^~>C>$ >CCC޲>C.TG~G^GGGΦG>C#GL~G4@8><^@~DHP^~^T~X^~^`^\~ ~(^Nn@ZkCTGGG~GCG$K>C0n#r@CCTGGG>CGGX>C;A_CEhnC[@>CPNٔHXn>4>C@ZkXH CCHG>CH<Hˢ|4Bn#`@4 @ Kn#A@NC4+d+n@Zkh.C>C@NהH4>CHn@ZkVH CCHFTGGGGGC C(>^~ ޠ> ^$~,>CCN>CnG>4G@Zk>GC   tGGGGI@/@KPG4JJ .4@JF4JJ>C)G(>C^Pn#~ ޠ> ^$~ C,>C>Cd ~@CTGGG~>CG,~G(^G$>;A ް ~^>>CX_C<h>CC|l`>CXnڔH^>CPN4@ZkYH CCH G>Cn#@4 @C >Cn#C@NC4+nC>C@ZkChCע@N>CHn4@ZkCTGGGGG>^ ~ޠ $>(^,~CZÀGGFGGðn#x@4 @"0N C8n@? @ZkN C@?"GG@ZkN@#4 G*G4+Gd+GnC@ZkGGGFGGûGC^C~ ޠ> ^$~C CC>>>C ~^> ްC~>C^>pn#G>^ ~ޠ $>(^,~C@Ӷ/V K6D .X J8Gv*/Z 7KG~Y/V KFY. +KW JFY>>C^^~ (޴08@>H^P~X Gm# _C Cm#@CC^~ (ޤ08@>H^P~XCkGGG>C^^~ (0޴8@H>P^X~` Gh>C- hA>HK0XC AA*-*I 4@A >C^~ (0ޤ8@H>P^X~`hCk05 A0U A0u AJ/G,>C@KAJKDk 4@A(GK /HIY K @ADCCw@0@Cͦt0 A! @A>C*@KCDk @ACAc@CJj AA0@0#@ M pt?E0`C3 ,>C*/A@K HZ *KDk @AD*,C.CC*HX J @A8DC5@J,j/Cj,JH\ jK @AjH*/\DCZ *K0@zDC @A0#@GG2BAGG>CGm#@Cp?E0ՀC?E0@Cn*-*I IAf..VJWJ>>_*-*I IA[GGXD\C"DDR&CC">C8DD&CCl"6D wHC>C @"@C]%,]"6H,BY">>! H#@!C>Y%,7H#CC!CG 0 @6J?>$@!C>C!CG 0 @6J?$@CCCk^%/\ 6KC^^~ (0޴8@H>P^X~` Gh>CpM,~(^$> ް ~^>Hk:0yC iA*-*I 4@A >^ ~ޠ $>(^,~C^~ (0ޤ8@H>P^X~`hCk05 A0U A0u A J/,JK 4@AH /(GKIY K @ADC0 A ,/*, HV K @A*HJ/J,DC[ JK @AJH /;Dj,CY K @AjH.YDC =W J @AwDC0 A ,J/*, H[ JK @A*H /DJ,CY K @AJH.j,9DCW J @AjHj/WDC\ jK @A|DCè0 A*-C*I$ IAGJ GvJ0A CA).)J 05 B k#|Gr0 At*-*I IAl< M m0C< @Zk>CC.>C(MCJ0m4A\KGCYP K9'"C\pK'> ~@Zk~ >CA|'91 C|' |&4 A|0B|Hk$# 20/)/ AKZ ;KG.J*(/vJY(K6G*(?TAE H/Z[K*` H?A  @ SAFETY013.A  '[EVERHART.JTDEMO]JTDRIVER_S264.OBJ_A;34uG>"E/K&@\KvGuJG%@A?#EH/XK#ZXK;GwKWG"H?8M@m@Zki/\ vKFG / JX KG ? (/Y ;K (?/Y KyG JX KG?.W J7G KV JF>GG>C^^~ (޴08@>H^P~X G>C`Hm>[<@0M>C8m4@ZkC>Cm#b@C C+>Cm#*Y@C-aH C M>C(m4@ZkCTGGG>C^~ (ޤ08@>H^P~XCkGGGFGG>Cm#@MC4+mC>C@ZkCG>C^^~ GGGGJGG@  MG(m4G@ZkMmG4G@ZkJ_CJ@ TG>CMm ~^>G@Zk>^ ~C^~CkGG>C~^ ^(~08@޴HPX>`^h~px GGwHAAD/KK?4C0MG8mG@ZkGG>C~^ ^(~08@޴HPX>`^h~px GG4GA;@G ^(~08@ޤHPX>`^h~pxCkGGG>C~^ ^(~08@޴HPX>`^h~px GGGA@G ^(~08@ޤHPX>`^h~pxCkGGG>C^ GGMCmC#TG@ZkCkGGG>C~^^ ~(08޴@HP>X^`~hp Gx޵G>CC CCCPm#f_CAC@G^ ~(08ޤ@HP>X^`~hpxޥCkdC'He#|GDP%4YC84CĢ@4BdE4zC$47CĢe4BD4XCƢvJJ45B C>CAh@4EACM>C^>Cd C>CciCPm#I# )  (â >>CF ް_C5 3@Z'@mCMCCC>CGG4C@Zkޠ C >CTGGG^C&GGF|ɢ61B|ɲ4G||J0@C|JC  qAC{@kޠGGC >CMC>CmTG#@ZkCY>C^^~ (0޴8@H>P~X G>Cm# >~ @C[` C>C-taAktd^ +/8KY8K@KPGvXK6G +? K@J:1@CJ@taA .JWJKG{KF > K@ 81C ^C ˢIJkxͦd +1pKtD ˢIJ8kF0zC8K>CA^m@^Gm#1 @0 @C +>Cm#! @MC4+mC>C@ZkC>C^~ (0ޤ8@H>P~XCk>C^^~ (0޴8@H>P~X G>Cm# > @C#P C-ktd KD hM ˢѲkq+p$t KD8 0C8K>CA^@^C>C^~ (0ޤ8@H>P~XCk>C^^~ (޴08@>H^P~X G>C-> hAHK0XC AA*-*I 4@A >C^~ (ޤ08@>H^P~XCk05 A0U A0u A J/,JK 4@AH /(GKY KIDC @A0 A ,/*, HV K @A*HJ/DJ,C[ JK @AJH /j,;DCY K @AjH.YDCW J @AwDC0 A- /= ,J/@K H[ JKDk @AD*,C /CC*HY K @A9DJ,/Cj,CJHV K @AjHJ/VDC[ JK @A{DC GG2BAGG>CGxm#@C0 A*-*I IA0 A*-*I IA}G>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`CA@G^ ~(08ޤ@HP>X^`~hpxޥCkG#_#:GGJGvJ>Cm# _CAC@dCPHŢFPe/S%/eKZ %KzGC4C8.;/JV KFC4C@E/C/dEKY KYGC4zC.E/#J[ \KFC4B./$JV KFC47C%/#.d8KW J7GC4yCE//EKY KYGC4CƢvJJ45B?'OH.KE/J[ EKFC0FGFE>C`m#(~$> ް ~>C^> v @C(>Ct@^ .JWJKG{KF > @@ 81C t@ /K\KJFyJG ?@ @@ʢ61Bʲ^C<`9`>^ ~ޠ $>(~CHE/K/EKY KYGCPGTF?>C~^ >ް@E-C/ >EIV K~ VE C3@Ϡ@I[@ޠ,H4ZA)(^48C#C/>^ ~ޠ $>(~(CCMGC4GCmC#TG@ZkâFòޠGG >^~C^~G@pD @B11 B`GGG,>C G ~^ C>pn ,@:H~@he,?#k. 0`A^ ~C/DE-D#GE/\I[ \K [E C=@*"G:| 8$6>C ͦ ްϠ\@ @e/C%/eKZ %KzGC4xC'1@C.@.V JWJC>@>ޠ CD@>CA ް>C ~@~ C ޠC4u@~^C^ C|>^ ~CCMCGGmCCC@ZkB/Y K9D~>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`C`m# @G^ ~(08ޤ@HP>X^`~hpxޥCkGJ@GvJ?>C0m# /_CGPm#C@dCHGP.Se/J\ eKFC4B8%/;.D%KX J8GC4YC@/CE/ĢK[ EKGC4B/"/$KV KGC48C%/.d%KX J8GC4yCe//E#ĢzKY KyGC4B/E/K[ EKGC4BxKK45CH.K/JV KFCF?>CGGG@pD @B11 B@GG.GGGG@pD @B11 BGG G@.JOFH%/K.%KX J8GC$G/@KE`pG .@JCWJTFyKFB>GCH.#K/JV KFCF_>CGGG@pD @B11 B@GGGCLG"H/KE/K[ EKGCGQ4GCC`m#@ӄ@/[ \KF /Z ;KG@/[ \KF KZ \KYG@?G>C^ GA@CkGG>C^޴ (>0^8 G>Cm#^G > Cް>C/_C!CC@ZGAmCMC>CGG4C@Zk ޠC >^Cޤ (>0^8CkGMGޠCCC >C^CmG@Zk>C~^^ ~(08޴@HP>X^`~hp-mCx޵GCCCCCG`m#_G^ ~(08ޤ@HP>X^`~hpxޥCkGf_'Z#{`KgK45`C#:GGJGvJ>C0m# _CPm#C]_dCĢP4B8E/;/dEKY KYGC4zC@.Ce/J\ eK `?=FC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/%/e#KZ ;KGC4B.e/J\ eKFC4C&y K'K45 C>C~^ >ް8E-;. >EIX J~ XE C@ͦ@I֠\@ޠ h4[A^H$4YCCH/K.ޠKW JGC >^PG~C$He/K%/#eKZ %KzGC|G@>CBGGG@pD @B11 BFG6G3/@KcG4>CGGG@pD @B11 B@GGGGGG@pD @B11 BGG|G@.JDF|y`m#C_ `m#C_u>Cd%#(~$^ >ް ~^>dE-g.YIX J XE CD@ CDJA@TJB=)Cw`K4IA8<E-<E#?/ CZIY K YE C/@F,|ʢ*$(>CPm ްՠZ@ 8%/;.Ȣ%KX J8GC46C'1@;e/8/[ eK;e?\K8?ޠ CD8E@>Cpm#@C>^~ ޠ >$^(~CG`m#C0_ӕH%/K.%KX J8GC$GD/@K`pG>H.K/@#JV KFCF @/@XKZXK!G|xK\G@?`e/d"c/eKY K[eKYG:1@CwEKX KwG EKGc?`e?@Dd.ge/`E/Jc/\ vKZEKFCyJX KYG J@Gc?`E?.J`VJTGxJF`>>C@ް ~^.J0F\Z XDȠV%/.>C# M8KW J>G7G>C ^(mG(~@Zk/GE/0@K[ EK>GC> ^4@(~C,/HY KDC./"JV KFC4@Fd-de#g%/IZ ;KECDTCwJ4@C4@He/K%/#eKZ %KzGC|G.@J3F^~ ޠC?/V KGGB@/[ \KFF52 /Z ;KG<.W J7GG xKV JF>G /Z ;KGi JY ;K8G ?i@/[ \KFr`/\ vKFG>C^^~ (0޴8@H>P^X~` GhGMm@Zk^~ (0ޤ8@H>P^X~`hCk>CG G ~G^$K>-I=H??? ?(?0?8?@?H?P?X?`?h?p?x-Ix=^> ~ CCGt>CG(~TG$^ >ް ~^>bd8  "@A @K! @ + @ A @Kt  K+k - $ (˰,0 4+ 8 I<K @ IDKH+L DPK$T+8 4X ,! H\L`>CM Cm~G<C>C@Zk~_' CC%m?%$:GFGGFGGG/kG4G&`M>Cm@ZkCKG4G@Mm>C@ZkCGt `MChmG>C@Zk>^ ~C ޠ >$^(~C2TGGGĢGGFIJ>C^~ Ge#4G+0C0u BkMGm4G@Zk8M@mCG@Zk4G~CkGG>C^^~ (0޴8@H>P^X~` GhHG`^~ (0ޤ8@H>P^X~`hCkhM? pm@Zk>CG G ~G^$K>4G-I=?85C?? ?(?%CH??-I=^> ~GCt>Cpb C(~G$^tG >ް ~^>bd8  "@A @K! @ + @ A @Kt  K+k $ (˰,0 4+ 8 I<K M@ )x+ D T!AHK )/ -8KZ I!A:GL+)/8KP+WTK$X+\ 8 4A`K,! H!d+Lh<ˢ#+>C,~(^$> ް ~^>C@| 0@ JpA@MHGG@Zk>^ ~ޠ $>(^,~C>CM Cm~  8O=DC>C@Zk~ CC%-'?%FFGGGGGG/+G) xMm>C4G@ZkC G M>Cm4G@ZkC4G>Ct (MC0m? @Zk>^ ~C ޠ >$^(~CTGGGGGDIGD -Z I:G`G>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCC4G;A_G^ ~(08ޤ@HP>X^`~hpxޥCkG>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCcCC`K HgG4KDhMGpmGCCCCG@ZkG^ ~(08ޤ@HP>X^`~hpxޥCkG#>CG(MG0mGGGG>C@ZkCNd#G>CP,~(^$> ް ~^>@+4U@)50 C5@% 6BŲMm@Zk0 ~GhMC  >G^CޠCC $>(^,~pmC@Zk>^ ~ޠ $>(^,~ChMCpmCCCCG@Zk45@ Ce4{AA@ ~TGM4G>G^CCޠ $>(^,~Cm#@ZkdA@GGG>C^^~ (0޴8@H>P^X~` Gh^~ (0ޤ8@H>P^X~`hCk>C4G(~$^G >Gް >C ~^>>C8-GG pHPM>CXm@ZkC/CK"4 CtHI @i8+ 0CJ?'x9#0YC# 4GŲE>CMGG"PB@ZkCM>C(*!GG%GG~^ >%!Gް>C( ~^G> H@Zk> A^ AA ~ !A GC>C *0(B0'B)+1`A A @A#ޠ C >^~C(ﳆ"벆8ͦ >C@M >CHmpH@ZkC/CGGF>G^~ ޠ >$^(~CB0-GGY@FGGhTGGGG>C^^~ (^0~8 G>CC>8%>CEm !CGG>C GٔH>GpH=0M8m>C@ZkCVHCHFj0kC9*'x#08CJ_ͦ>C۔H M~>C(mpH@ZkZH CCH@GCGGF>C^~ (^0~8CkGGGW@FGG* G*+J0A@$ M#( ĢGSCFIJ0"@ C$?òç `>Cd~ ^CD!#0@A곝GCGG>C~^^ (޴08G4GCCCC4GG^ (ޤ08CkGG>C~^ ^(~08@H GGC( #X%G-'@#?G:GX%4G{1J>CX4G-CM\0K# ͦGXE4Ų ~^><>CMm! HC >@Zk >CC>CMG HG ~^>GG@ZkM>? ^ ~CLEmh@Zk>ChEG HMG ~^>GG@Zk>^ ~C>4G^ ~CG ^(~08@HCkG4G>^ ~CŢFŲ>C^^~ (޴08@>H^P~X GGL% D@H"@HCA@CA!@!08CA@ a`ˢ0BC??DD^~ (ޤ08@>H^P~XCkC>C^^~ (޴08@>H^P~X G>C C>2`AG4*l#4G*0<@<@FqG `C0M8m>C@Zk CC_>CGG G ~$K^>.J>H??? . _=J >>^ ~C>C^~ (ޤ08@>H^P~XCkGG>C^~ @ SAFETY013.A  '[EVERHART.JTDEMO]JTDRIVER_S264.OBJ_A;34u>< ޴(08>@^H~>C>GL% D@H"@HCA@C0 C>C^~ ޤ(08>@^H~CkGGG4GkGG>C~^^~ (08 GGCCEBFT xeG MC(mCCtG@ZkG^~ (08CkG>C^^~ (޴08@>H^P~X G>CM,~(^$> ް ~^>GCem@ZkX0m#_C~AG>^ ~ޠ $>(^,~C@^~ (ޤ08@>H^P~XCkGG>C~^ ^(~08@޴HPX>`^h~p GxGM CmG@Zk:>CG# G ~$K^>.J>H??? .J >H(.J(>^> ~CBy HP C@Z@K8mYGBGbtG 0Mwq KĢ ŲXpKG@ZkMGm4G@Zk4GG ^(~08@ޤHPX>`^h~pxCk>C^^~ (޴08@>H^P~X G>C`M,~ C(^G$>4G ް ~^>>Chm @Zk C:GG>C^^~ (޴08@>H^P~X-kC>C`M,~G(^4G$> ް ~^>hm@Zk>CeMm~ ~^>CG>C@Zk> ^C~ ~C`>^ ~ޠ $>(^,~C^~ (ޤ08@>H^P~XCkHkm#X_+!ͦC)P0  4KT@He'# |Gh 'X V @,HX@h% ?#DCw@KDwH IAYAD5/5K^ ~ޠ $>(^,~C8@ӑì#iC,H(A/4 AK0C 'AK'\GK@'K\GK hAGG|/zJ 4@A[|KGzG|?GzJ|/ 4@A"[|KzG|?GyJ|/ T@A[|KyG&|?G @A4BG @AvG4GzzJ|/ 4@A[|KzG|? hAGG[/yK 4@AZ[KGYG[?GyK[/ 4@A#Z[KYG[?GuK[/ T@AZ[KUG`'[?G @A4CG @AVG4GYyK[/ 4@AZ[KYG[?ZG8 wT%u?ɢFr|p$in>C M ް,H@נ\@PeH0zC'1@Pޠ CDP%R?>CͦCD+#hd HȲ@DK/YK L"HHk hL+/7K$(>Cx(hD,H$0(4^>dtJ88 4TȲ<@,! H<LA@H8 Xm!D(4GHL APH>^GPM(C~CG>C@Zk~ CC>4G^ ~ޠ $>(^,~CI60YC >CMHG ~^>hAG@Zk>^ ~C.Y JD /V K6GG\/ JZ \KYG\?;/ KY ;K5G;?5.Y JDYE.W JWGwM/V K6G|>C^^~ (޴08@>H^P~X G>C8m#,~ C(^$> ްC ~^>M_C` P!@@@!@H`X!@!!@A!@a C!@ K @j`*91 C* 䢁&F8MG@m4G@Zk8k'|G2 8K.KJ`1@B( 1u@B& 8ˢ$>C> + 8k'|G &0CG'8K[G  ?'F&8G !@'0 C!ˢF˲>C8k_'zG8k E8+4G1 C4 >C8 ,~(^$> ް ~^>ˢtIJ HͦKD Mkvm#+p$t KD_,~>^ ~ޠ $>(^C88 1C `m#_梨m#1@ _>C n=| t C$KJ  ˢ ʲkj(Cm#J8+1u C 8 >C >>CF ް_C࠻c@>CgGY'@P >CpDCGqDCDCGMC mCCC>CGG4C@ZkCޠC >CTGGGGd G GC$K@ * *4G K@j`*91 C*>C8MG@m4G @Zk C >Ct ˢHIJkd + m7m#KpD t KD ^:_ ^C4G>^ ~ޠ $>(^,~C^~ (ޤ08@>H^P~XCk>C4G(m#_>CxMC4G>GCm>C#TG@ZkC>C0@9C>C4G(m#_>CxMCG>GCm>C#TG@ZkCGޠGGC >CxMC>CmTG#@Zk $>(^C ~ޠ $>(^,~CGC& CF|71B|4G|ɲ|j0`C|jK9 /Y KYF}GGG>C?G~(^0^8~@ GHG= =]} 4GG>C?G~(^0^8~@-jCHG= =]} G]@>CCb`GG >C=BCC^CG;A@^CG(0^8~@HCkGGG>C~8^@^H~PX`޴hpx>޵ GG= =(]0}CGGo)`MmTG@Zk$O@M>CmTG@ZkCTGGGGG4GCV@ ! @Cw@K(=GA!#1`@ `P@GGGGGl2@p@#1`@@0(H4GG8@^H~PX`ޤhpx>ޥCk/GG )I8MC@mC*@@ZkCG@@9"@:A@G@@Gz9H/T@@XKGW G?TGW/nKT@@ZWKNGT>CW?`HG%.%JQHMG4qBFGABB@Zk M@ZkGC(ͦ C @HMPm@Zk}[@C yÆCP@sGDE0= #w`HHM@Ca@`HHGG4qBF qBAB@Zk MD@Zk4GG$4GD|. 9HW JF>7/ KY 7K.G7?/Y K9FGG>C^^~ (޴0~8 G>CGް ~^>etG1`M cAKgAmX >C@Zk>G ^{qJ~C ޠC M^G>C$ % \pKGm@Zk^ C^~ (ޤ0~8Ck>^~ ޠCGG>C^^~ (0~8 G>C ~>e` +k`l+ @8'KK?D!.7JMpK"!@@ZkGMG>4G ~C$m@ZkMCm@Zk^~ (0~8Ck!/V 7K6F4G  SMP$ACQUIRE4m#P SMP$ACQUIRE4@  SMP$ACQUIRE4HGX SMP$RELEASE4Lm#P SMP$RELEASE4T@X SMP$RELEASE4xGEXE_STD$ABORTIO4n#EXE_STD$ABORTIO4@EXE_STD$ABORTIO4G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4 ( G\ OTS$ZERO4 X @\ OTS$ZERO4x G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4  G OTS$ZERO4  @ OTS$ZERO4 G, SMP$ACQUIREL4 n# SMP$ACQUIREL 4( @, SMP$ACQUIREL< L Gl EXE$DEANONPGDSIZ< P n#EXE$DEANONPGDSIZ< h @l EXE$DEANONPGDSIZ4x G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4 G SMP$RELEASEL4 n# SMP$RELEASEL4 @ SMP$RELEASEL4  G OTS$ZERO4  @ OTS$ZERO44 GL EXE$ALONPAGVAR48 n#EXE$ALONPAGVAR4H @L EXE$ALONPAGVAR< T Gp EXE$DEANONPGDSIZ< h n#EXE$DEANONPGDSIZ< l @p EXE$DEANONPGDSIZ4  G OTS$ZERO4  @ OTS$ZERO4 G SMP$RELEASEL4 n# SMP$RELEASEL4 @ SMP$RELEASEL4 ,GLOTS$MOVE4 H@LOTS$MOVE4 GOTS$MOVE4 @OTS$MOVE4 pGOTS$MOVE4 @OTS$MOVE,GSYS$QIO,n#SYS$QIO,@SYS$QIO4<G\ SMP$ACQUIREL4Dn# SMP$ACQUIREL4X@\ SMP$ACQUIREL< GEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4G SMP$RELEASEL4n# SMP$RELEASEL4@ SMP$RELEASEL4G SYS$SETEF4n# SYS$SETEF4@ SYS$SETEF4 n# SMP$ACQUIREL4 G, SMP$ACQUIREL4(@, SMP$ACQUIREL< tGEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4G SMP$RELEASEL4n# SMP$RELEASEL4@ SMP$RELEASEL4HG\EXE$ALONPAGVAR4Pn#EXE$ALONPAGVAR4X@\EXE$ALONPAGVAR4 `GxOTS$MOVE4 t@xOTS$MOVE< xGEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4 G SCH$IOLOCKW4 m# SCH$IOLOCKW4 @ SCH$IOLOCKW4 GT! IOC$SEARCHDEV4!m# IOC$SEARCHDEV4P!@T! IOC$SEARCHDEV4t"G" SCH$IOUNLOCK4x"m# SCH$IOUNLOCK4|"@" SCH$IOUNLOCK4h#G# SMP$ACQUIREL4p#m#  SMP$ACQUIREL4|#@# SMP$ACQUIREL4#G# SMP$RELEASEL4#m#  SMP$RELEASEL4#@# SMP$RELEASEL < $G$EXE$DEANONPGDSIZ< $m# EXE$DEANONPGDSIZ< $@$EXE$DEANONPGDSIZ4!$G % SYS$WAITFR4"%m#0 SYS$WAITFR4!%@ % SYS$WAITFR4 %G % SYS$CLREF4 %m#0 SYS$CLREF4%@ % SYS$CLREF< <%G\%EXE$DEANONPGDSIZ< @%m#0EXE$DEANONPGDSIZ< X%@\%EXE$DEANONPGDSIZ4#&G& OTS$CALL_PROC4$&m#` OTS$CALL_PROC4#&@& OTS$CALL_PROC<%x'G'EXE_STD$FINISHIO<&'m#EXE_STD$FINISHIO<%'@'EXE_STD$FINISHIO4$)m# OTS$CALL_PROC4#)G* OTS$CALL_PROC4#*@* OTS$CALL_PROC<%*G*EXE_STD$FINISHIO<&*m#EXE_STD$FINISHIO<%*@*EXE_STD$FINISHIO< |,G,EXE$DEANONPGDSIZ< ,m# EXE$DEANONPGDSIZ< ,@,EXE$DEANONPGDSIZ<%5GD5EXE_STD$FINISHIO<&05m#PEXE_STD$FINISHIO<%@5@D5EXE_STD$FINISHIO47G7EXE_STD$ABORTIO47m#PEXE_STD$ABORTIO47@7EXE_STD$ABORTIO4$$=m# OTS$CALL_PROC4#0=GL= OTS$CALL_PROC4#H=@L= OTS$CALL_PROC4=G=EXE_STD$ABORTIO4=m#EXE_STD$ABORTIO4=@=EXE_STD$ABORTIO47EGE OTS$DIV_I48Em#  OTS$DIV_I47E@E OTS$DIV_I4GGGEXE$ALONPAGVAR4Gm#EXE$ALONPAGVAR4G@GEXE$ALONPAGVAR4'IG JEXE$WRTMAILBOX4(Im#EXE$WRTMAILBOX4'J@ JEXE$WRTMAILBOX4JGJ SYS$CLREF4 Jm# SYS$CLREF4J@J SYS$CLREF4!JGJ SYS$WAITFR4"Jm# SYS$WAITFR4!J@J SYS$WAITFR< JGJEXE$DEANONPGDSIZ< Jm#EXE$DEANONPGDSIZ< J@JEXE$DEANONPGDSIZ4KGK SYS$SETEF4Km# SYS$SETEF4K@K SYS$SETEF< KGKEXE$DEANONPGDSIZ< Km#EXE$DEANONPGDSIZ< K@KEXE$DEANONPGDSIZ4XLGhLEXE$ALONPAGVAR4`Lm#EXE$ALONPAGVAR4dL@hLEXE$ALONPAGVAR4 NGNOTS$MOVE4 N@NOTS$MOVE4'OGHOEXE$WRTMAILBOX4($Om#EXE$WRT@ SAFETY013.A  '[EVERHART.JTDEMO]JTDRIVER_S264.OBJ_A;34u~,[MAILBOX4'DO@HOEXE$WRTMAILBOX4OGO SYS$CLREF4 Om# SYS$CLREF4O@O SYS$CLREF 4!OGO SYS$WAITFR4"Om# SYS$WAITFR4!O@O SYS$WAITFR< PGPEXE$DEANONPGDSIZ< Pm#EXE$DEANONPGDSIZ< P@PEXE$DEANONPGDSIZ4QGREXE_STD$ABORTIO4Qm#EXE_STD$ABORTIO4R@REXE_STD$ABORTIO<)hRGREXE_STD$WRITECHK<*pRm#EXE_STD$WRITECHK<)R@REXE_STD$WRITECHK4(SG4S IOC$SEARCHDEV4,Sm# IOC$SEARCHDEV40S@4S IOC$SEARCHDEV4HSGSEXE_STD$ABORTIO4Sm#EXE_STD$ABORTIO4S@SEXE_STD$ABORTIO4SGSEXE_STD$ABORTIO4Sm#EXE_STD$ABORTIO4S@SEXE_STD$ABORTIO<%$TGtTEXE_STD$FINISHIO<&hTm#EXE_STD$FINISHIO<%pT@tTEXE_STD$FINISHIO4UGU SMP$ACQUIRE4Um#0 SMP$ACQUIRE4U@U SMP$ACQUIRE4 VGVOTS$MOVE4 V@VOTS$MOVE4 $VGVOTS$MOVE4 V@VOTS$MOVE4XWGtW SMP$RELEASE4hWm#0 SMP$RELEASE4pW@tW SMP$RELEASE4XGX SMP$ACQUIRE4Xm#P SMP$ACQUIRE4X@X SMP$ACQUIRE4YG$Y SMP$RELEASE4Ym#P SMP$RELEASE4 Y@$Y SMP$RELEASE4[G[EXE$ALONPAGVAR4[m#EXE$ALONPAGVAR4[@[EXE$ALONPAGVAR4 [G$\OTS$ZERO4  \@$\OTS$ZERO4(\GX\EXE$ALONPAGVAR4L\m#EXE$ALONPAGVAR4T\@X\EXE$ALONPAGVAR4 p\G\OTS$ZERO4 \@\OTS$ZERO< ^G^EXE$DEANONPGDSIZ< ^m#EXE$DEANONPGDSIZ< ^@^EXE$DEANONPGDSIZ4+`G`IOC_STD$REQCOM4,`m#IOC_STD$REQCOM4+`@`IOC_STD$REQCOM< aGdaEXE$DEANONPGDSIZ< \am# EXE$DEANONPGDSIZ< `a@daEXE$DEANONPGDSIZ4HbG\bEXE$ALONPAGVAR4Pbm#0EXE$ALONPAGVAR4Xb@\bEXE$ALONPAGVAR4.cm#0SCH$QAST4- cGHcSCH$QAST4-Dc@HcSCH$QAST4HcG\c SYS$SETEF4Pcm#0 SYS$SETEF4Xc@\c SYS$SETEF4cG,d SYS$SETEF4 dm#P SYS$SETEF4(d@,d SYS$SETEF4|dGd SYS$SETEF4dm#P SYS$SETEF4d@d SYS$SETEF< dGdEXE$DEANONPGDSIZX X < dm#PEXE$DEANONPGDSIZ< d@dEXE$DEANONPGDSIZ4(Tjm#PEXE$WRTMAILBOX4'jGjEXE$WRTMAILBOX4'j@jEXE$WRTMAILBOX4 kGLkOTS$MOVE4 Hk@LkOTS$MOVE4lGl SYS$SETEF4lm#x SYS$SETEF4l@l SYS$SETEF4#oGo OTS$CALL_PROC4$om#x OTS$CALL_PROC4#o@o OTS$CALL_PROC4pGp SYS$SETEF4pm#x SYS$SETEF4p@p SYS$SETEF<%qGqEXE_STD$FINISHIO<&qm#xEXE_STD$FINISHIO<%q@qEXE_STD$FINISHIO<%rGLrEXE_STD$FINISHIO<&8rm#xEXE_STD$FINISHIO<%Hr@LrEXE_STD$FINISHIO<%xrGrEXE_STD$FINISHIO<&rm#xEXE_STD$FINISHIO<%r@rEXE_STD$FINISHIO4tGt SMP$ACQUIRE4tm# SMP$ACQUIRE4t@t SMP$ACQUIRE4tGu SMP$RELEASE4tm# SMP$RELEASE4t@u SMP$RELEASE4/ vG8vEXE$ALONONPAGED40(vm#EXE$ALONONPAGED4/4v@8vEXE$ALONONPAGED4vGv OTS$MOVEM4v@v OTS$MOVEM4 vGvOTS$ZERO4 v@vOTS$ZERO41$wG0wEXE$DEANONPAGED42(wm#EXE$DEANONPAGED41,w@0wEXE$DEANONPAGED4xwGw OTS$MOVEM4w@w OTS$MOVEM4 wGwOTS$ZERO4 w@wOTS$ZERO43txGxLNM$SEARCH_ONE44xm#LNM$SEARCH_ONE43x@xLNM$SEARCH_ONE4-xGySCH$QAST4.xm#SCH$QAST4-y@ySCH$QAST4 yGyOTS$MOVE4 y@yOTS$MOVE45yGz SCH$POSTEF46zm# SCH$POSTEF45z@z SCH$POSTEF41zG(zEXE$DEANONPAGED42 zm#EXE$DEANONPAGED41$z@(zEXE$DEANONPAGEDp p=0;=@| =0@;=@| ;;=0;7 SMP$AL_IPLVEC7 SMP$GL_FLAGS  SMP$RELEASE  SMP$ACQUIRE7(PMS$GL_KERNEL_DISPATCH_VECTOR7 CTL$GL_PHD7 SCH$GL_PCBVEC  SYS$SETEF"0; OTS$MOVEM OTS$MOVE( EXE$DEANONPGDSIZ=0;=  OTS$ZERO EXE$ALONPAGVAR  SMP$RELEASEL  SMP$ACQUIREL EXE_STD$ABORTIO""7 SCH$GL_MAXPIX7CTL$GA_CCB_TABLE7 CTL$GL_PCBSYS$QIO""" =0;=0;7CTL$GQ_PROCPRIV=0;=0;  SCH$IOLOCKW  IOC$SEARCHDEV  SCH$IOUNLOCK=0#;=0$;  SYS$CLREF" ! SYS$WAITFR"=0 %;=/ =# OTS$CALL_PROC=0 &;=/ =0&;=/ =0`';(%EXE_STD$FINISHIO"=0';= =0*;=0,;=0.;=0p0;= =0<;=0<;=0G; 'EXE$WRTMAILBOX;=0PK;=0K;=0P;= =0`Q;=  ()EXE_STD$WRITECHK=0T;;7 EXE$ILLIOFUNC=0X;=0Z;=@t =0[;=P< ;;=0 ];=0 ^;=0_;=0@`;=0P`;=@< +IOC_STD$REQCOM""=0`;=0 b;=/ ="` -SCH$QAST;=0k;=08 Pt;= =""7EXE$GQ_RIGHTSLIST /EXE$ALONONPAGED 1EXE$DEANONPAGED=0 x; 3LNM$SEARCH_ONE=0`y; 5 SCH$POSTEF=08;= 7 OTS$DIV_I=0c; ;=0(0s;=P =0=;= =0@d;=0(s;=P )*[EVERHART.JTDEMO]JTDRIVER_S264V2.OBJ_A;31+, .u/ 4upr- 0123KPWOq56v"7`o["89GHJDDJTDRIVERV02A13-JAN-1997 21:33AMAC V3.0-23  . ABS . . BLANK . $ABS$ $$$110_DATA $$$105_PROLOGUE \z $$$115_DRIVER $$$115_LINKAGE0  DRIVER$DPT( JT$DPT( JT$DDT IOC$RETURN_SUCCESSIOC_STD$MNTVER IOC$RETURN IOC$RETURN_UNSUPPORTED EXE_STD$INSERT_IRP0  DRIVER$FDT EXE$ILLIOFUNC SMP$GL_FLAGS SMP$AL_IPLVEC SMP$ACQUIRE SMP$RELEASE SCH$GL_PCBVECEXE_STD$ABORTIO SCH$GL_MAXPIXEXE$ALONPAGVAR SMP$ACQUIREL EXE$DEANONPGDSIZ SMP$RELEASEL CTL$GL_PHD CTL$GA_CCB_TABLE CTL$GL_PCB(PMS$GL_KERNEL_DISPATCH_VECTORSYS$QIO SYS$SETEFCTL$GQ_PROCPRIV SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCK SYS$WAITFR SYS$CLREF EXE_STD$FINISHIOEXE$WRTMAILBOX EXE_STD$WRITECHKIOC_STD$REQCOMSCH$QASTEXE$ALONONPAGED EXE$GQ_RIGHTSLISTEXE$DEANONPAGEDLNM$SEARCH_ONE SCH$POSTEF OTS$MOVEMOTS$ZEROOTS$MOVE OTS$CALL_PROC OTS$DIV_I(J`%FDTLOP(J &FDTXIT(J&FDTBXT(J0bVCSTP150JPt GRANT_REVOKEX X = x4=`44>IOC$RETURN_SUCCESS4>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS=>IOC_STD$MNTVER> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN_UNSUPPORTED> IOC$RETURN_UNSUPPORTED=> IOC$RETURN>IOC$RETURN_SUCCESS=>EXE_STD$INSERT_IRP=04 4=( GCEVflagL|> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC4 44P44> EXE$ILLIOFUNC> EXE$ILLIOFUNC4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC= %&GCEV@ SAFETY013.A  )[EVERHART.JTDEMO]JTDRIVER_S264V2.OBJ_A;31u-*>  =0(,4 4=4= JTDRIVERX= 4=  =>C~^^~ (0޴8GC1'CF1#CWpJ"&&&GCYp KC:9'&H"LƲ|SJX&C?G:GX&4GDXƢw1 KVRJFXƲ\GX0KG\GD\FvSKG_G\G\FGD\WRJF\沀&?G:G&G^~ (0ޤ8CkGG>C~^^~ (0޴8GC(C [?' Fx9#C&CCG^~ (0ޤ8Ck>C^^~ G>CEmGG-GGpH$0M>C8m@ZkCʢ0B($j!M: >C M(mpH@ZkC/CGGFGGC^~CkGͦGGV@FʢGG0B*'x#08CJ_ GGG>C~^^ ~(08޴@HP>X^`~hpx޵GGCCcCCp`Kp`GGn#L@G^ ~(08ޤ@HP>X^`~hpxޥCk$0A_HGJ?GvJLŢ&BFHJGJ`GvJ_>C;A __Cpn#C@GdCHH%0 Gpn#C @ӺP.S/JV KFC4CGpn#C @Ӫ8E/;/dEKY KYGC4zC@.Ce/J\ eKFC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/%/e#KZ ;KGC4B.e/J\ eKFC4C&y K'K45 CH.K/#JV KFCF  / K0G4JJ .4@JF4JJchGF_>C~^ >ްPE-S/ >EI~Y K YE C@@IנV@ޠ 4\A hD^4zCC{ޠ >^~.Cx5C(4Cm>C"H/d%#KE/K[ EKGCG<Ţd,g. HX J<DC4B `NCGhnCCCCG@ZkHE/'K/EKY KCYGC[G->C ~^> ,@7H(_ he,kE/eH[ EK{DC`??#9DCwJ Dw Hb@@ D>.^ ~JJ@Cpn# @Ӿ>CL#,(>$~ ^>ް ~^L%/O.8KW J7GCCJ>Cp0N ~^>>C<8n! HC>@Zk>C4>C NG HG ~^>GG@Zk>^? ~0NCLE>C8nh@ZkC>ChEG H NG ~^>GG@Zk>^ ~C>^ ~ChעOPN>CXn4@ZkC>Cn#@C >CNn>>C4 @Zk>C 0N>C8n>p? >C@Zk>C6hn[@@N>CHn4@ZkCTGGG^G,G~pn# ޠ> ^$~(>0C CCT @>^ ~COGGGFGGG>CAl_! C N@IG ~^>GG@Zk>p_#^ ~C4B>C° C~^L% D@H"@HCA@C^~C +? E G0N8n>CB @ZkC NC4+>Cn@ZkCÔG>C NG H ~G^>GG@Zk^>C ~GC$KⳑP EP ""GhNGGP @ ^~ ޠ> ^$~C@@`@@@@@@ @@@`>C@$~ C ^ >ް ~^t#d+dX : @N>CHn4@ZkCTGGGGCG@GYG@G@CG@Y C@CJ*+ E K/taAZYK K?t @*/*K@D+TAA */ J/8KW XK7GH+ /AAK~N>CL  !HG:4K#G) +p)++#t風8!G08XN ~^>@Zk ~+!>^C#6AG>CNIG ~G^>@Zk_#>^ ~CF =0.(X+ EX.J6`7JGJ4wCX /Gv+KX KG/`X ?>C`k# ~^>`+ \k EX , HNHGG@Zk>^ ~C +?#HG Gᢁ'0CD[G&0CGxn C$K>C&["&,ACK" 0A E CCC>C C~G* # >C EG" ʲ,IAK _E >C C E CI`kC`>CXK#^G>C.^~>C>$ >CCC޲>C.TG~G^GGGΦG>C#GL~G4@8><^@~DHP^~^T~X^~^`^\~ ~(^Nn@ZkCTGGG~GCG$K>C0n#r@CCTGGG>CGGX>C;A_CEhnC[@>CPNٔHXn>4>C@ZkXH CCHG>CH<Hˢ|4Bn#`@4 @ Kn#A@NC4+d+n@Zkh.C>C@NהH4>CHn@ZkVH CCHFTGGGGGC C(>^~ ޠ> ^$~,>CCN>CnG>4G@Zk>GC   tGGGGI@/@KPG4JJ .4@JF4JJ>C)G(>C^Pn#~ ޠ> ^$~ C,>C>Cd ~@CTGGG~>CG,~G(^G$>;A ް ~^>>CX_C<h>CC|l`>CXnڔH^>CPN4@ZkYH CCH G>Cn#@4 @C >Cn#C@NC4+nC>C@ZkChCע@N>CHn4@ZkCTGGGGG>^ ~ޠ $>(^,~CZÀGGFGGðn#x@4 @"0N C8n@? @ZkN C@?"GG@ZkN@#4 G*G4+Gd+GnC@ZkGGGFGGûGC^C~ ޠ> ^$~C CC>>>C ~^> ްC~>C^>pn#G>^ ~ޠ $>(^,~C@Ӷ/V K6D .X J8Gv*/Z 7KG~Y/V KFY. +KW JFY>>C^^~ (޴08@>H^P~X Gm# _C Cm#@CC^~ (ޤ08@>H^P~XCkGGG>C^^~ (0޴8@H>P^X~` Gh>C- hA>HK0XC AA*-*I 4@A >C^~ (0ޤ8@H>P^X~`hCk05 A0U A0u AJ/G,>C@KAJKDk 4@A(GK /HIY K @ADCCw@0@Cͦt0 A! @A>C*@KCDk @ACAc@CJj AA0@0#@ M pt?E0`C3 ,>C*/A@K HZ *KDk @AD*,C.CC*HX J @A8DC5@J,j/Cj,JH\ jK @AjH*/\DCZ *K0@zDC @A0#@GG2BAGG>CGm#@Cp?E0ՀC?E0@Cn*-*I IAf..VJWJ>>_*-*I IA[GGXD\C"DDR&CC">C8DD&CCl"6D wHC>C @"@C]%,]"6H,BY">>! H#@!C>Y%,7H#CC!CG 0 @6J?>$@!C>C!CG 0 @6J?$@CCCk^%/\ 6KC^^~ (0޴8@H>P^X~` Gh>CpM,~(^$> ް ~^>Hk:0yC iA*-*I 4@A >^ ~ޠ $>(^,~C^~ (0ޤ8@H>P^X~`hCk05 A0U A0u A J/,JK 4@AH /(GKIY K @ADC0 A ,/*, HV K @A*HJ/J,DC[ JK @AJH /;Dj,CY K @AjH.YDC =W J @AwDC0 A ,J/*, H[ JK @A*H /DJ,CY K @AJH.j,9DCW J @AjHj/WDC\ jK @A|DCè0 A*-C*I$ IAGJ GvJ0A CA).)J 05 B k#|Gr0 At*-*I IAl< M m0C< @Zk>CC.>C(MCJ0m4A\KGCYP K9'"C\pK'> ~@Zk~ >CA|'91 C|' |&4 A|0B|Hk$# 20/)/ AKZ ;KG.J*(/vJY(K6G*(?TAE H/Z[K*` H?A "E/K&@\KvGuJG%@A?#EH/XK#ZXK;GwKWG"H?8M@m@Zki/\ vKFG / JX KG ? (/Y ;K (?/Y KyG JX KG?.W J7G KV JF>GG>C^^~ (޴08@>H^P~X G>C`Hm>[<@0M>C8m4@ZkC>Cm#b@C C+>Cm#*Y@C-aH C M>C(m4@ZkCTGGG>C^~ (ޤ08@>H^P~XCkGGGFGG>Cm#@MC4+mC>C@ZkCG>C^^~ GGGGJGG@  MG(m4G@ZkMmG4G@ZkJ_CJ@ TG>CMm ~^>G@Zk>^ ~C^~CkGG>C~^ ^(~08@޴HPX>`^h~px GGwHAAD/KK?4C0MG8mG@ZkGG>C~^ ^(~08@޴HPX>`^h~px GG4GA;@G ^(~08@ޤHPX>`^h~pxCkGGG>C~^ ^(~08@޴HPX>`^h~px GGGA@G ^(~08@ޤHPX>`^h~pxCkGGG>C^ GGMCmC#TG@ZkCkGGG>C~^^ ~(08޴@HP>X^`~hp Gx޵G>CC CCCPm#f_CAC@G^ ~(08ޤ@HP>X^`~hpxޥCkdC'He#|GDP%4YC84CĢ@4BdE4zC$47CĢe4BD4XCƢvJJ45B C>CAh@4EACM>C^>Cd C>CciCPm#I# )  (â >>CF ް_C5 3@Z'@mCMCCC>CGG4C@Zkޠ C >CTGGG^C&GGF|ɢ61B|ɲ4G||J0@C|JC  qAC{@kޠGGC >CMC>CmTG#@ZkCY>C^^~ (0޴8@H>P~X G>Cm# >~ @C[` C>C-taAktd^ +/8KY8K@KPGvXK6G +? K@J:1@CJ@taA .JWJKG{KF > K@ 81C ^C ˢIJkxͦd +1pKtD ˢIJ8kF0zC8K>CA^m@^Gm#1 @0 @C +>Cm#! @MC4+mC>C@ZkC>C^~ (0ޤ8@H>P~XCk>C^^~ (0޴8@H>P~X G>Cm# > @C#P C-ktd KD hM ˢѲkq+p$t KD8 0C8K>CA^@^C>C^~ (0ޤ8@H>P~XCk>C^^~ (޴08@>H^P~X G>C-> hAHK0XC AA*-*I 4@A >C^~ (ޤ08@>H^P~XCk05 A0U A0u A J/,JK 4@AH /(GKY KIDC @A0 A ,/*, HV K @A*HJ/DJ,C[ JK @AJH /j,;DCY K @AjH.YDCW J @AwDC0 A- /= ,J/@K H[ JKDk @AD*,C /CC*HY K @A9DJ,/Cj,CJHV K @AjHJ/VDC[ JK @A{DC GG2BAGG>CGxm#@C0 A*-*I IA0 A*-*I IA}G>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`CA@G^ ~(08ޤ@HP>X^`~hpxޥCkG#_#:GGJGvJ>Cm# _CAC@dCPHŢFPe/S%/eKZ %KzGC4C8.;/JV KFC4C@E/C/dEKY KYGC4zC.E/#J[ \KFC4B./$JV KFC47C%/#.d8KW J7GC4yCE//EKY KYGC4CƢvJJ45B?'OH.KE/J[ EKFC0FGFE>C`m#(~$> ް ~>C^> v @C(>Ct@^ .JWJKG{KF > @@ 81C t@ /K\KJFyJG ?@ @@ʢ61Bʲ^C<`9`>^ ~ޠ $>(~CHE/K/EKY KYGCPGTF?>C~^ >ް@E-C/ >EIV K~ VE C3@Ϡ@I[@ޠ,H4ZA)(^48C#C/>^ ~ޠ $>(~(CCMGC4GCmC#TG@ZkâFòޠGG >^~C^~G@pD @B11 B`GGG,>C G ~^ C>pn ,@:H~@he,?#k. 0`A^ ~C/DE-D#GE/\I[ \K [E C=@*"G:| 8$6>C ͦ ްϠ\@ @e/C%/eKZ %KzGC4xC'1@C.@.V JWJC>@>ޠ CD@>CA ް>C ~@~ C ޠC4u@~^C^ C|>^ ~CCMCGGmCCC@ZkB/@ SAFETY013.A  )[EVERHART.JTDEMO]JTDRIVER_S264V2.OBJ_A;31u>(Y K9D~>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`C`m# @G^ ~(08ޤ@HP>X^`~hpxޥCkGJ@GvJ?>C0m# /_CGPm#C@dCHGP.Se/J\ eKFC4B8%/;.D%KX J8GC4YC@/CE/ĢK[ EKGC4B/"/$KV KGC48C%/.d%KX J8GC4yCe//E#ĢzKY KyGC4B/E/K[ EKGC4BxKK45CH.K/JV KFCF?>CGGG@pD @B11 B@GG.GGGG@pD @B11 BGG G@.JOFH%/K.%KX J8GC$G/@KE`pG .@JCWJTFyKFB>GCH.#K/JV KFCF_>CGGG@pD @B11 B@GGGCLG"H/KE/K[ EKGCGQ4GCC`m#@ӄ@/[ \KF /Z ;KG@/[ \KF KZ \KYG@?G>C^ GA@CkGG>C^޴ (>0^8 G>Cm#^G > Cް>C/_C!CC@ZGAmCMC>CGG4C@Zk ޠC >^Cޤ (>0^8CkGMGޠCCC >C^CmG@Zk>C~^^ ~(08޴@HP>X^`~hp-mCx޵GCCCCCG`m#_G^ ~(08ޤ@HP>X^`~hpxޥCkGf_'Z#{`KgK45`C#:GGJGvJ>C0m# _CPm#C]_dCĢP4B8E/;/dEKY KYGC4zC@.Ce/J\ eK `?=FC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/%/e#KZ ;KGC4B.e/J\ eKFC4C&y K'K45 C>C~^ >ް8E-;. >EIX J~ XE C@ͦ@I֠\@ޠ h4[A^H$4YCCH/K.ޠKW JGC >^PG~C$He/K%/#eKZ %KzGC|G@>CBGGG@pD @B11 BFG6G3/@KcG4>CGGG@pD @B11 B@GGGGGG@pD @B11 BGG|G@.JDF|y`m#C_ `m#C_u>Cd%#(~$^ >ް ~^>dE-g.YIX J XE CD@ CDJA@TJB=)Cw`K4IA8<E-<E#?/ CZIY K YE C/@F,|ʢ*$(>CPm ްՠZ@ 8%/;.Ȣ%KX J8GC46C'1@;e/8/[ eK;e?\K8?ޠ CD8E@>Cpm#@C>^~ ޠ >$^(~CG`m#C0_ӕH%/K.%KX J8GC$GD/@K`pG>H.K/@#JV KFCF @/@XKZXK!G|xK\G@?`e/d"c/eKY K[eKYG:1@CwEKX KwG EKGc?`e?@Dd.ge/`E/Jc/\ vKZEKFCyJX KYG J@Gc?`E?.J`VJTGxJF`>>C@ް ~^.J0F\Z XDȠV%/.>C# M8KW J>G7G>C ^(mG(~@Zk/GE/0@K[ EK>GC> ^4@(~C,/HY KDC./"JV KFC4@Fd-de#g%/IZ ;KECDTCwJ4@C4@He/K%/#eKZ %KzGC|G.@J3F^~ ޠC?/V KGGB@/[ \KFF52 /Z ;KG<.W J7GG xKV JF>G /Z ;KGi JY ;K8G ?i@/[ \KFr`/\ vKFG>C^^~ (0޴8@H>P^X~` GhGMm@Zk^~ (0ޤ8@H>P^X~`hCk>CG G ~G^$K>-I=H??? ?(?0?8?@?H?P?X?`?h?p?x-Ix=^> ~ CCGt>CG(~TG$^ >ް ~^>bd8  "@A @K! @ + @ A @Kt  K+k - $ (˰,0 4+ 8 I<K @ IDKH+L DPK$T+8 4X ,! H\L`>CM Cm~G<C>C@Zk~_' CC%m?%$:GFGGFGGG/kG4G&`M>Cm@ZkCKG4G@Mm>C@ZkCGt `MChmG>C@Zk>^ ~C ޠ >$^(~C2TGGGĢGGFIJ>C^~ Ge#4G+0C0u BkMGm4G@Zk8M@mCG@Zk4G~CkGG>C^^~ (0޴8@H>P^X~` GhHG`^~ (0ޤ8@H>P^X~`hCkhM? pm@Zk>CG G ~G^$K>4G-I=?85C?? ?(?%CH??-I=^> ~GCt>Cpb C(~G$^tG >ް ~^>bd8  "@A @K! @ + @ A @Kt  K+k $ (˰,0 4+ 8 I<K M@ )x+ D T!AHK )/ -8KZ I!A:GL+)/8KP+WTK$X+\ 8 4A`K,! H!d+Lh<ˢ#+>C,~(^$> ް ~^>C@| 0@ JpA@MHGG@Zk>^ ~ޠ $>(^,~C>CM Cm~  8O=DC>C@Zk~ CC%-'?%FFGGGGGG/+G) xMm>C4G@ZkC G M>Cm4G@ZkC4G>Ct (MC0m? @Zk>^ ~C ޠ >$^(~CTGGGGGDIGD -Z I:G`G>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCC4G;A_G^ ~(08ޤ@HP>X^`~hpxޥCkG>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCcCC`K HgG4KDhMGpmGCCCCG@ZkG^ ~(08ޤ@HP>X^`~hpxޥCkG#>CG(MG0mGGGG>C@ZkCNd#G>CP,~(^$> ް ~^>@+4U@)50 C5@% 6BŲMm@Zk0 ~GhMC  >G^CޠCC $>(^,~pmC@Zk>^ ~ޠ $>(^,~ChMCpmCCCCG@Zk45@ Ce4{AA@ ~TGM4G>G^CCޠ $>(^,~Cm#@ZkdA@GGG>C^^~ (0޴8@H>P^X~` Gh^~ (0ޤ8@H>P^X~`hCk>C4G(~$^G >Gް >C ~^>>C8-GG pHPM>CXm@ZkC/CK"4 CtHI @i8+ 0CJ?'x9#0YC# 4GŲE>CMGG"PB@ZkCM>C(*!GG%GG~^ >%!Gް>C( ~^G> H@Zk> A^ AA ~ !A GC>C *0(B0'B)+1`A A @A#ޠ C >^~C(ﳆ"벆8ͦ >C@M >CHmpH@ZkC/CGGF>G^~ ޠ >$^(~CB0-GGY@FGGhTGGGG>C^^~ (^0~8 G>CC>8%>CEm !CGG>C GٔH>GpH=0M8m>C@ZkCVHCHFj0kC9*'x#08CJ_ͦ>C۔H M~>C(mpH@ZkZH CCH@GCGGF>C^~ (^0~8CkGGGW@FGG* G*+J0A@$ M#( ĢGSCFIJ0"@ C$?òç `>Cd~ ^CD!#0@A곝GCGG>C~^^ (޴08G4GCCCC4GG^ (ޤ08CkGG>C~^ ^(~08@H GGC( #X%G-'@#?G:GX%4G{1J>CX4G-CM\0K# ͦGXE4Ų ~^><>CMm! HC >@Zk >CC>CMG HG ~^>GG@ZkM>? ^ ~CLEmh@Zk>ChEG HMG ~^>GG@Zk>^ ~C>4G^ ~CG ^(~08@HCkG4G>^ ~CŢFŲ>C^^~ (޴08@>H^P~X GGL% D@H"@HCA@CA!@!08CA@ a`ˢ0BC??DD^~ (ޤ08@>H^P~XCkC>C^^~ (޴08@>H^P~X G>C C>2`AG4*l#4G*0<@<@FqG `C0M8m>C@Zk CC_>CGG G ~$K^>.J>H??? . _=J >>^ ~C>C^~ (ޤ08@>H^P~XCkGG>C^~ ޴(08>@^H~>C>GL% D@H"@HCA@C0 C>C^~ ޤ(08>@^H~CkGGG4GkGG>C~^^~ (08 GGCCEBFT xeG MC(mCCtG@ZkG^~ (08CkG>C^^~ (޴08@>H^P~X G>CM,~(^$> ް ~^>GCem@ZkX0m#_C~AG>^ ~ޠ $>(^,~C@^~ (ޤ08@>H^P~XCkGG>C~^ ^(~08@޴HPX>`^h~p GxGM CmG@Zk:>CG# G ~$K^>.J>H??? .J >H(.J(>^> ~CBy HP C@Z@K8mYGBGbtG 0Mwq KĢ ŲXpKG@ZkMGm4G@Zk4GG ^(~08@ޤHPX>`^h~pxCk>C^^~ (޴08@>H^P~X G>C`M,~ C(^G$>4G ް ~^>>Chm @Zk C:GG>C^^~ (޴08@>H^P~X-kC>C`M,~G(^4G$> ް ~^>hm@Zk>CeMm~ ~^>CG>C@Zk> ^C~ ~C`>^ ~ޠ $>(^,~C^~ (ޤ08@>H^P~XCkHkm#X_+!ͦC)P0  4KT@He'# |Gh 'X V @,HX@h% ?#DCw@KDwH IAYAD5/5K^ ~ޠ $>(^,~C8@ӑì#iC,H(A/4 AK0C 'AK'\GK@'K\GK hAGG|/zJ 4@A[|KGzG|?GzJ|/ 4@A"[|KzG|?GyJ|/ T@A[|KyG&|?G @A4BG @AvG4GzzJ|/ 4@A[|KzG|? hAGG[/yK 4@AZ[KGYG[?GyK[/ 4@A#Z[KYG[?GuK[/ T@AZ[KUG`'[?G @A4CG @AVG4GYyK[/ 4@AZ[KYG[?ZG8 wT%u?ɢFr|p$in>C M ް,H@נ\@PeH0zC'1@Pޠ CDP%R?>CͦCD+#hd HȲ@DK/YK L"HHk hL+/7K$(>Cx(hD,H$0(4^>dtJ88 4TȲ<@,! H<LA@H8 Xm!D(4GHL APH>^GPM(C~CG>C@Zk~ CC>4G^ ~ޠ $>(^,~CI60YC >CMHG ~^>hAG@Zk>^ ~C.Y JD /V K6GG\/ JZ \KYG\?;/ KY ;K5G;?5.Y JDYE.W JWGwM/V K6G|>C^^~ (޴08@>H^P~X G>C8m#,~ C(^$> ްC ~^>M_C` P!@@@!@H`X!@!!@A!@a C!@ K @j`*91 C* 䢁&F8MG@m4G@Zk8k'|G2 8K.KJ`1@B( 1u@B& 8ˢ$>C> + 8k'|G &0CG'8K[G  ?'F&8G !@'0 C!ˢF˲>C8k_'zG8k E8+4G1 C4 >C8 ,~(^$> ް ~^>ˢtIJ HͦKD Mkvm#+p$t KD_,~>^ ~ޠ $>(^C88 1C `m#_梨m#1@ _>C n=| t C$KJ  ˢ ʲkj(Cm#J8+1u C 8 >C >>CF ް_C࠻c@>CgGY'@P >CpDCGqDCDCGMC mCCC>CGG4C@ZkCޠC >CTGGGGd G GC$K@ * *4G K@j`*91 C*>C8MG@m4G @Zk C >Ct ˢHIJkd + m7m#KpD t KD ^:_ ^C4G>^ ~ޠ $>(^,~C^~ (ޤ08@>H^P~XCk>C4G(m#_>CxMC4G>GCm>C#TG@ZkC>C0@9C>C4G(m#_>CxMCG>GCm>C#TG@ZkCGޠGGC >CxMC>CmTG#@Zk $>(^C ~ޠ $>(^,~CGC& CF|71B|4G|ɲ|j0`C|jK9 /Y KYF}GGG>C?G~(^0^8~@ GHG= =]} 4GG>C?G~(^0^8~@-jCHG= =]} G]@>CCb`GG >C=BCC^CG;A@^CG(0^8~@HCkGGG>C~8^@^H~PX`޴hpx>޵ GG= =(]0}CGGo)`MmTG@Zk$O@M>CmTG@ZkCTGGGGG4GCV@ ! @Cw@K(=GA!#1`@ `P@@ SAFETY013.A  )[EVERHART.JTDEMO]JTDRIVER_S264V2.OBJ_A;31uLj>GGGGGGl2@p@#1`@@0(H4GG8@^H~PX`ޤhpx>ޥCk/GG )I8MC@mC*@@ZkCG@@9"@:A@G@@Gz9H/T@@XKGW G?TGW/nKT@@ZWKNGT>CW?`HG%.%JQHMG4qBFGABB@Zk M@ZkGC(ͦ C @HMPm@Zk}[@C yÆCP@sGDE0= #w`HHM@Ca@`HHGG4qBF qBAB@Zk MD@Zk4GG$4GD|. 9HW JF>7/ KY 7K.G7?/Y K9FGG>C^^~ (޴0~8 G>CGް ~^>etG1`M cAKgAmX >C@Zk>G ^{qJ~C ޠC M^G>C$ % \pKGm@Zk^ C^~ (ޤ0~8Ck>^~ ޠCGG>C^^~ (0~8 G>C ~>e` +k`l+ @8'KK?D!.7JMpK"!@@ZkGMG>4G ~C$m@ZkMCm@Zk^~ (0~8Ck!/V 7K6F4G  SMP$ACQUIRE4m#P SMP$ACQUIRE4@  SMP$ACQUIRE4HGX SMP$RELEASE4Lm#P SMP$RELEASE4T@X SMP$RELEASE4xGEXE_STD$ABORTIO4n#EXE_STD$ABORTIO4@EXE_STD$ABORTIO4G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4 ( G\ OTS$ZERO4 X @\ OTS$ZERO4x G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4  G OTS$ZERO4  @ OTS$ZERO4 G, SMP$ACQUIREL4 n# SMP$ACQUIREL 4( @, SMP$ACQUIREL< L Gl EXE$DEANONPGDSIZ< P n#EXE$DEANONPGDSIZ< h @l EXE$DEANONPGDSIZ4x G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4 G SMP$RELEASEL4 n# SMP$RELEASEL4 @ SMP$RELEASEL4  G OTS$ZERO4  @ OTS$ZERO44 GL EXE$ALONPAGVAR48 n#EXE$ALONPAGVAR4H @L EXE$ALONPAGVAR< T Gp EXE$DEANONPGDSIZ< h n#EXE$DEANONPGDSIZ< l @p EXE$DEANONPGDSIZ4  G OTS$ZERO4  @ OTS$ZERO4 G SMP$RELEASEL4 n# SMP$RELEASEL4 @ SMP$RELEASEL4 ,GLOTS$MOVE4 H@LOTS$MOVE4 GOTS$MOVE4 @OTS$MOVE4 pGOTS$MOVE4 @OTS$MOVE,GSYS$QIO,n#SYS$QIO,@SYS$QIO4<G\ SMP$ACQUIREL4Dn# SMP$ACQUIREL4X@\ SMP$ACQUIREL< GEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4G SMP$RELEASEL4n# SMP$RELEASEL4@ SMP$RELEASEL4G SYS$SETEF4n# SYS$SETEF4@ SYS$SETEF4 n# SMP$ACQUIREL4 G, SMP$ACQUIREL4(@, SMP$ACQUIREL< tGEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4G SMP$RELEASEL4n# SMP$RELEASEL4@ SMP$RELEASEL4HG\EXE$ALONPAGVAR4Pn#EXE$ALONPAGVAR4X@\EXE$ALONPAGVAR4 `GxOTS$MOVE4 t@xOTS$MOVE< xGEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4 G SCH$IOLOCKW4 m# SCH$IOLOCKW4 @ SCH$IOLOCKW4 GT! IOC$SEARCHDEV4!m# IOC$SEARCHDEV4P!@T! IOC$SEARCHDEV4t"G" SCH$IOUNLOCK4x"m# SCH$IOUNLOCK4|"@" SCH$IOUNLOCK4h#G# SMP$ACQUIREL4p#m#  SMP$ACQUIREL4|#@# SMP$ACQUIREL4#G# SMP$RELEASEL4#m#  SMP$RELEASEL4#@# SMP$RELEASEL < $G$EXE$DEANONPGDSIZ< $m# EXE$DEANONPGDSIZ< $@$EXE$DEANONPGDSIZ4!$G % SYS$WAITFR4"%m#0 SYS$WAITFR4!%@ % SYS$WAITFR4 %G % SYS$CLREF4 %m#0 SYS$CLREF4%@ % SYS$CLREF< <%G\%EXE$DEANONPGDSIZ< @%m#0EXE$DEANONPGDSIZ< X%@\%EXE$DEANONPGDSIZ4#&G& OTS$CALL_PROC4$&m#` OTS$CALL_PROC4#&@& OTS$CALL_PROC<%x'G'EXE_STD$FINISHIO<&'m#EXE_STD$FINISHIO<%'@'EXE_STD$FINISHIO4$)m# OTS$CALL_PROC4#)G* OTS$CALL_PROC4#*@* OTS$CALL_PROC<%*G*EXE_STD$FINISHIO<&*m#EXE_STD$FINISHIO<%*@*EXE_STD$FINISHIO< |,G,EXE$DEANONPGDSIZ< ,m# EXE$DEANONPGDSIZ< ,@,EXE$DEANONPGDSIZ<%5GD5EXE_STD$FINISHIO<&05m#PEXE_STD$FINISHIO<%@5@D5EXE_STD$FINISHIO47G7EXE_STD$ABORTIO47m#PEXE_STD$ABORTIO47@7EXE_STD$ABORTIO4$$=m# OTS$CALL_PROC4#0=GL= OTS$CALL_PROC4#H=@L= OTS$CALL_PROC4=G=EXE_STD$ABORTIO4=m#EXE_STD$ABORTIO4=@=EXE_STD$ABORTIO47EGE OTS$DIV_I48Em#  OTS$DIV_I47E@E OTS$DIV_I4GGGEXE$ALONPAGVAR4Gm#EXE$ALONPAGVAR4G@GEXE$ALONPAGVAR4'IG JEXE$WRTMAILBOX4(Im#EXE$WRTMAILBOX4'J@ JEXE$WRTMAILBOX4JGJ SYS$CLREF4 Jm# SYS$CLREF4J@J SYS$CLREF4!JGJ SYS$WAITFR4"Jm# SYS$WAITFR4!J@J SYS$WAITFR< JGJEXE$DEANONPGDSIZ< Jm#EXE$DEANONPGDSIZ< J@JEXE$DEANONPGDSIZ4KGK SYS$SETEF4Km# SYS$SETEF4K@K SYS$SETEF< KGKEXE$DEANONPGDSIZ< Km#EXE$DEANONPGDSIZ< K@KEXE$DEANONPGDSIZ4XLGhLEXE$ALONPAGVAR4`Lm#EXE$ALONPAGVAR4dL@hLEXE$ALONPAGVAR4 NGNOTS$MOVE4 N@NOTS$MOVE4'OGHOEXE$WRTMAILBOX4($Om#EXE$WRTMAILBOX4'DO@HOEXE$WRTMAILBOX4OGO SYS$CLREF4 Om# SYS$CLREF4O@O SYS$CLREF 4!OGO SYS$WAITFR4"Om# SYS$WAITFR4!O@O SYS$WAITFR< PGPEXE$DEANONPGDSIZ< Pm#EXE$DEANONPGDSIZ< P@PEXE$DEANONPGDSIZ4QGREXE_STD$ABORTIO4Qm#EXE_STD$ABORTIO4R@REXE_STD$ABORTIO<)hRGREXE_STD$WRITECHK<*pRm#EXE_STD$WRITECHK<)R@REXE_STD$WRITECHK4(SG4S IOC$SEARCHDEV4,Sm# IOC$SEARCHDEV40S@4S IOC$SEARCHDEV4HSGSEXE_STD$ABORTIO4Sm#EXE_STD$ABORTIO4S@SEXE_STD$ABORTIO4SGSEXE_STD$ABORTIO4Sm#EXE_STD$ABORTIO4S@SEXE_STD$ABORTIO<%$TGtTEXE_STD$FINISHIO<&hTm#EXE_STD$FINISHIO<%pT@tTEXE_STD$FINISHIO4UGU SMP$ACQUIRE4Um#0 SMP$ACQUIRE4U@U SMP$ACQUIRE4 VGVOTS$MOVE4 V@VOTS$MOVE4 $VGVOTS$MOVE4 V@VOTS$MOVE4XWGtW SMP$RELEASE4hWm#0 SMP$RELEASE4pW@tW SMP$RELEASE4XGX SMP$ACQUIRE4Xm#P SMP$ACQUIRE4X@X SMP$ACQUIRE4YG$Y SMP$RELEASE4Ym#P SMP$RELEASE4 Y@$Y SMP$RELEASE4[G[EXE$ALONPAGVAR4[m#EXE$ALONPAGVAR4[@[EXE$ALONPAGVAR4 [G$\OTS$ZERO4  \@$\OTS$ZERO4(\GX\EXE$ALONPAGVAR4L\m#EXE$ALONPAGVAR4T\@X\EXE$ALONPAGVAR4 p\G\OTS$ZERO4 \@\OTS$ZERO< ^G^EXE$DEANONPGDSIZ< ^m#EXE$DEANONPGDSIZ< ^@^EXE$DEANONPGDSIZ4+`G`IOC_STD$REQCOM4,`m#IOC_STD$REQCOM4+`@`IOC_STD$REQCOM< aGdaEXE$DEANONPGDSIZ< \am# EXE$DEANONPGDSIZ< `a@daEXE$DEANONPGDSIZ4HbG\bEXE$ALONPAGVAR4Pbm#0EXE$ALONPAGVAR4Xb@\bEXE$ALONPAGVAR4.cm#0SCH$QAST4- cGHcSCH$QAST4-Dc@HcSCH$QAST4HcG\c SYS$SETEF4Pcm#0 SYS$SETEF4Xc@\c SYS$SETEF4cG,d SYS$SETEF4 dm#P SYS$SETEF4(d@,d SYS$SETEF4|dGd SYS$SETEF4dm#P SYS$SETEF4d@d SYS$SETEF< dGdEXE$DEANONPGDSIZX X < dm#PEXE$DEANONPGDSIZ< d@dEXE$DEANONPGDSIZ4(Tjm#PEXE$WRTMAILBOX4'jGjEXE$WRTMAILBOX4'j@jEXE$WRTMAILBOX4 kGLkOTS$MOVE4 Hk@LkOTS$MOVE4lGl SYS$SETEF4lm#x SYS$SETEF4l@l SYS$SETEF4#oGo OTS$CALL_PROC4$om#x OTS$CALL_PROC4#o@o OTS$CALL_PROC4pGp SYS$SETEF4pm#x SYS$SETEF4p@p SYS$SETEF<%qGqEXE_STD$FINISHIO<&qm#xEXE_STD$FINISHIO<%q@qEXE_STD$FINISHIO<%rGLrEXE_STD$FINISHIO<&8rm#xEXE_STD$FINISHIO<%Hr@LrEXE_STD$FINISHIO<%xrGrEXE_STD$FINISHIO<&rm#xEXE_STD$FINISHIO<%r@rEXE_STD$FIN@ SAFETY013.A  )[EVERHART.JTDEMO]JTDRIVER_S264V2.OBJ_A;31ufISHIO4tGt SMP$ACQUIRE4tm# SMP$ACQUIRE4t@t SMP$ACQUIRE4tGu SMP$RELEASE4tm# SMP$RELEASE4t@u SMP$RELEASE4/ vG8vEXE$ALONONPAGED40(vm#EXE$ALONONPAGED4/4v@8vEXE$ALONONPAGED4vGv OTS$MOVEM4v@v OTS$MOVEM4 vGvOTS$ZERO4 v@vOTS$ZERO41$wG0wEXE$DEANONPAGED42(wm#EXE$DEANONPAGED41,w@0wEXE$DEANONPAGED4xwGw OTS$MOVEM4w@w OTS$MOVEM4 wGwOTS$ZERO4 w@wOTS$ZERO43txGxLNM$SEARCH_ONE44xm#LNM$SEARCH_ONE43x@xLNM$SEARCH_ONE4-xGySCH$QAST4.xm#SCH$QAST4-y@ySCH$QAST4 yGyOTS$MOVE4 y@yOTS$MOVE45yGz SCH$POSTEF46zm# SCH$POSTEF45z@z SCH$POSTEF41zG(zEXE$DEANONPAGED42 zm#EXE$DEANONPAGED41$z@(zEXE$DEANONPAGEDp p=0;=@| =0@;=@| ;;=0;7 SMP$AL_IPLVEC7 SMP$GL_FLAGS  SMP$RELEASE  SMP$ACQUIRE7(PMS$GL_KERNEL_DISPATCH_VECTOR7 CTL$GL_PHD7 SCH$GL_PCBVEC  SYS$SETEF"0; OTS$MOVEM OTS$MOVE( EXE$DEANONPGDSIZ=0;=  OTS$ZERO EXE$ALONPAGVAR  SMP$RELEASEL  SMP$ACQUIREL EXE_STD$ABORTIO""7 SCH$GL_MAXPIX7CTL$GA_CCB_TABLE7 CTL$GL_PCBSYS$QIO""" =0;=0;7CTL$GQ_PROCPRIV=0;=0;  SCH$IOLOCKW  IOC$SEARCHDEV  SCH$IOUNLOCK=0#;=0$;  SYS$CLREF" ! SYS$WAITFR"=0 %;=/ =# OTS$CALL_PROC=0 &;=/ =0&;=/ =0`';(%EXE_STD$FINISHIO"=0';= =0*;=0,;=0.;=0p0;= =0<;=0<;=0G; 'EXE$WRTMAILBOX;=0PK;=0K;=0P;= =0`Q;=  ()EXE_STD$WRITECHK=0T;;7 EXE$ILLIOFUNC=0X;=0Z;=@t =0[;=P< ;;=0 ];=0 ^;=0_;=0@`;=0P`;=@< +IOC_STD$REQCOM""=0`;=0 b;=/ ="` -SCH$QAST;=0k;=08 Pt;= =""7EXE$GQ_RIGHTSLIST /EXE$ALONONPAGED 1EXE$DEANONPAGED=0 x; 3LNM$SEARCH_ONE=0`y; 5 SCH$POSTEF=08;= 7 OTS$DIV_I=0c; ;=0(0s;=P =0=;= =0@d;=0(s;=P (*[EVERHART.JTDEMO]JTDRIVER_S264V3.OBJ_A;2+, ./ 4*- 0123KPWO56Ǫ"7"89GHJ&DDJTDRIVERV03D13-JAN-1997 21:35AMAC V3.0-23  . ABS . . BLANK . $ABS$ $$$110_DATA $$$105_PROLOGUE | $$$115_DRIVER $$$115_LINKAGE0  DRIVER$DPT( JT$DPT( JT$DDT IOC$RETURN_SUCCESSIOC_STD$MNTVER IOC$RETURN IOC$RETURN_UNSUPPORTED EXE_STD$INSERT_IRP0  DRIVER$FDT EXE$ILLIOFUNC SMP$GL_FLAGS SMP$AL_IPLVEC SMP$ACQUIRE SMP$RELEASE SCH$GL_PCBVECEXE_STD$ABORTIO SCH$GL_MAXPIXEXE$ALONPAGVAR SMP$ACQUIREL EXE$DEANONPGDSIZ SMP$RELEASEL CTL$GL_PHD CTL$GA_CCB_TABLE CTL$GL_PCB(PMS$GL_KERNEL_DISPATCH_VECTORSYS$QIO SYS$SETEFCTL$GQ_PROCPRIV SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCK SYS$WAITFR SYS$CLREF EXE_STD$FINISHIOEXE$WRTMAILBOX EXE_STD$WRITECHKIOC_STD$REQCOMSCH$QAST LDT$L_MYIOSBEXE$ALONONPAGED EXE$GQ_RIGHTSLISTEXE$DEANONPAGEDLNM$SEARCH_ONE SCH$POSTEF OTS$MOVEMOTS$ZEROOTS$MOVE OTS$CALL_PROC OTS$DIV_I(J`%FDTLOP(J0&FDTXIT(J&FDTBXT(JPqVCSTP150Jp GRANT_REVOKEX X = x4=44>IOC$RETURN_SUCCESS4>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS=>IOC_STD$MNTVER> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN_UNSUPPORTED> IOC$RETURN_UNSUPPORTED=> IOC$RETURN>IOC$RETURN_SUCCESS=>EXE_STD$INSERT_IRP=P4@4=( GCEVflagL|> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC 4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC4@44P44> EXE$ILLIOFUNC> EXE$ILLIOFUNC4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC= %&GCEV =0(,4 4=4= JTDRIVERX= 4=  =>C~^^~ (0޴8GC1'CF1#CWpJ"&&&GCYp KC:9'&H"LƲ|SJX&C?G:GX&4GDXƢw1 KVRJFXƲ\GX0KG\GD\FvSKG_G\G\FGD\WRJF\沀&?G:G&G^~ (0ޤ8CkGG>C~^^~ (0޴8GC(C [?' Fx9#C&CCG^~ (0ޤ8Ck>C^^~ G>CEmGG-GGpH$0M>C8m@ZkCʢ0B($j!M: >C M(mpH@ZkC/CGGFGGC^~CkGͦGGV@FʢGG0B*'x#08CJ_ GGG>C~^^ ~(08޴@HP>X^`~hpx޵GGCCcCCp`Kp`GGn#@G^ ~(08ޤ@HP>X^`~hpxޥCk$0A_HGJ?GvJLŢ&BFHJGJ`GvJ_>C;A __Cpn#CL@GdCHH%0 Gpn#C?@ӺP.S/JV KFC4CGpn#C/@Ӫ8E/;/dEKY KYGC4zC@.Ce/J\ eKFC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/%/e#KZ ;KGC4B.e/J\ eKFC4C&y K'K45 CH.K/#JV KFCF  / K0G4JJ .4@JF4JJchGF_>C~^ >ްPE-S/ >EI~Y K YE C@@IנV@ޠ 4\A hD^4zCC{ޠ >^~.Cx5C(4Cm>C"H/d%#KE/K[ EKGCG<Ţd,g. HX J<DC4B `NCGhnCCCCG@ZkHE/'K/EKY KCYGC[G->C ~^> ,@7H(_ he,kE/eH[ EK{DC`??#9DCwJ Dw Hb@@ D>.^ ~JJ@Cpn#C@Ӿ>CL#,(>$~ ^>ް ~^L%/O.8KW J7GCCJ>Cp0N ~^>>C<8n! HC>@Zk>C4>C NG HG ~^>GG@Zk>^? ~0NCLE>C8nh@ZkC>ChEG H NG ~^>GG@Zk>^ ~C>^ ~ChעOPN>CXn4@ZkC>Cn#@C >CNn>>C4 @Zk>C 0N>C8n>p? >C@Zk>C6hn[@@N>CHn4@ZkCTGGG^G,G~pn# ޠ> ^$~(>0C CC@>^ ~COGGGFGGG>CAl_! C N@IG ~^>GG@Zk>p_#^ ~C4B>C° C~^L% D@H"@HCA@C^~C +? E G0N8n>CB @ZkC NC4+>Cn@ZkCÔG>C NG H ~G^>GG@Zk^>C ~GC$KⳑP EP ""GhNGGP @ ^~ ޠ> ^$~C@@`@@@@@@ @@@`>C@$~ C ^ >ް ~^t#d+dX : @N>CHn4@ZkCTGGGGCG@GYG@G@CG@Y C@CJ*+ E K/taAZYK K?t @*/*K@D+TAA */ J/8KW XK7GH+ /AAK~N>CL  !HG:4K#G) +p)++#t風8!G08XN ~^>@Zk ~+!>^C#6AG>CNIG ~G^>@Zk_#>^ ~CF =0.(X+ EX.J6`7JGJ4wCX /Gv+K@ SAFETY013.A  ([EVERHART.JTDEMO]JTDRIVER_S264V3.OBJ_A;2j>X KG/`X ?>C`k# ~^>`+ \k EX , HNHGG@Zk>^ ~C +?#HG Gᢁ'0CD[G&0CGxn C$K>C&["&,ACK" 0A E CCC>C C~G* # >C EG" ʲ,IAK _E >C C E CI`kC`>CXK#^G>C.^~>C>$ >CCC޲>C.TG~G^GGGΦG>C#GL~G4@8><^@~DHP^~^T~X^~^`^\~ ~(^Nn@ZkCTGGG~GCG$K>C0n#v@CCTGGG>CGGX>C;A_CEhnC[@>CPNٔHXn>4>C@ZkXH CCHG>CH<Hˢ|4Bn#@@4 @ Kn#A@NC4+d+n@Zkh.C>C@NהH4>CHn@ZkVH CCHFTGGGGGC C(>^~ ޠ> ^$~,>CCN>CnG>4G@Zk>GC   tGGGGI@/@KPG4JJ .4@JF4JJ>C)G(>C^pn#~ ޠ> ^$~ C,>C>Cd ~h@CTGGG~>CG,~G(^G$>;A ް ~^>>CX_C<h>CC|l`>CXnڔH^>CPN4@ZkYH CCH G>Cn#@4 @C >Cn##@NC4+nC>C@ZkChCע@N>CHn4@ZkCTGGGGG>^ ~ޠ $>(^,~CZÀGGFGGn#X@4 @"0N C8n@? @ZkN C@?"GG@ZkN@#4 G*G4+Gd+GnC@ZkGGGFGGûGC^C~ ޠ> ^$~C CC>>>C ~^> ްC~>C^>pn#G>^ ~ޠ $>(^,~C; @Ӷ/V K6D .X J8Gv*/Z 7KG~Y/V KFY. +KW JFY>>C^^~ (޴08@>H^P~X Gm# _C Cm#@CC^~ (ޤ08@>H^P~XCkGGG>C^^~ (0޴8@H>P^X~` Gh>C>D0d0zCͦ hAH뢀0B>C^~ (0ޤ8@H>P^X~`hCk AA*-*I 4@A?05 A0U A0u A.G,>C@KAJDk 4@A(J/HIV K @ADCCu@0@CMt0 A! @A>C*@KCDk @ACAa@CJj AA0@0#@ pt?E0C3 ,>C.@K HDkW J @AD*,j/CC*H\ jK @ACG@C?E0 C?E0Bi*-*I IAyJ/j/ZJK[jKJ?j?r*-*I IAnXD\C"DDR&CC">C8DD&CCl"6D wHC>C @"@C]%,]"6H,BY">>! H#@!C>Y%,7H#CC!CG 0 @6J?>$@!C>C!CG 0 @6J?$@CCCk^%/\ 6KC^^~ (0޴8@H>P^X~` Gh>CpM,~(^$> ް ~^>Hk:0yC iA*-*I 4@A >^ ~ޠ $>(^,~C^~ (0ޤ8@H>P^X~`hCk05 A0U A0u A J/,JK 4@AH /(GKIY K @ADC0 A ,/*, HV K @A*HJ/J,DC[ JK @AJH /;Dj,CY K @A =jH.YDCW J @AwDC0 A ,J/*, H[ JK @A*H /DJ,CY K @AJH.j,9DCW J @AjHj/WDC\ jK @A|DCè0 A*-C*I$ IAGJ GvJ0A CA).)J 05 B k#|Gr0 At*-*I IAl< M m0C< @Zk>CC.>C(MCJ0m4A\KGCYP K9'"C\pK'> ~@Zk~ >CA|'91 C|' |&4 A|0B|Hk$# 20/)/ AKZ ;KG.J*(/vJY(K6G*(?TAE H/Z[K*` H?A "E/K&@\KvGuJG%@A?#EH/XK#ZXK;GwKWG"H?8M@m@Zki/\ vKFG / JX KG ? (/Y ;K (?/Y KyG JX KG?.W J7G KV JF>GG>C^^~ (޴08@>H^P~X G>C`Hm>[<@0M>C8m4@ZkC>Cm#>@C C+>Cm#*5@C-aH C M>C(m4@ZkCTGGG>C^~ (ޤ08@>H^P~XCkGGGFGG>Cm#@MC4+mC>C@ZkCG>C^^~ GGGGJGG@  MG(m4G@ZkMmG4G@ZkJ_CJ@ TG>CMm ~^>G@Zk>^ ~C^~CkGG>C~^ ^(~08@޴HPX>`^h~px GGwHAAD/KK?4C0MG8mG@ZkGG>C~^ ^(~08@޴HPX>`^h~px GG4GA;@G ^(~08@ޤHPX>`^h~pxCkGGG>C~^ ^(~08@޴HPX>`^h~px GGGA@G ^(~08@ޤHPX>`^h~pxCkGGG>C^ GGMCmC#TG@ZkCkGGG>C~^^ ~(08޴@HP>X^`~hp Gx޵G>CC CCCPm#b_CACO@G^ ~(08ޤ@HP>X^`~hpxޥCkdC'He#|GDP%4YC84CĢ@4BdE4zC$47CĢe4BD4XCƢvJJ45B C>CAh@4EACM>C^>Cd C>CciCPm#I# )  (â >>CF ް_C5 3@Z'@mCMCCC>CGG4C@Zkޠ C >CTGGG^C&GGF|ɢ61B|ɲ4G||J0@C|JC  qAC@kޠGGC >CMC>CmTG#@ZkCY>C^^~ (0޴8@H>P~X G>Cm# >Z@C[` C>C-taAktd^ +/8KY8K@KPGvXK6G +? K@J:1@CJ@taA .JWJKG{KF > K@ 81C ^C ˢIJkxͦd +1pKtD ˢIJ8kF0zC8K>CA^m@^Gm# @0 @C +>Cm#!@MC4+mC>C@ZkC>C^~ (0ޤ8@H>P~XCk>C^^~ (0޴8@H>P~X G>Cm# >@C#P C-ktd KD hM ˢѲkq+p$t KD8 0C8K>CA^@^C>C^~ (0ޤ8@H>P~XCk>C^^~ (޴08@>H^P~X G>C-> hAHK0XC AA*-*I 4@A >C^~ (ޤ08@>H^P~XCk05 A0U A0u A J/,JK 4@AH /(GKY KIDC @A0 A ,/*, HV K @A*HJ/DJ,C[ JK @AJH /j,;DCY K @AjH.YDCW J @AwD /=C0 A- ,J/@K H[ JKDk @AD*,C /CC*HY K @A9DJ,/Cj,CJHV K @AjHJ/VDC[ JK @A{DC GG2BAGG>CGm#@C0 A*-*I IA0 A*-*I IA}G>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`CA.@G^ ~(08ޤ@HP>X^`~hpxޥCkG#_#:GGJGvJ>Cm#  _CAC@dCPHŢFPe/S%/eKZ %KzGC4C8.;/JV KFC4C@E/C/dEKY KYGC4zC.E/#J[ \KFC4B./$JV KFC47C%/#.d8KW J7GC4yCE//EKY KYGC4CƢvJJ45B?'OH.KE/J[ EKFC0FGFE>Cm#(~$> ް ~>C^> R@C(>Ct@^ .JWJKG{KF > @@ 81C t@ /K\KJFyJG ?@ @@ʢ61Bʲ^C<`9`>^ ~ޠ $>(~CHE/K/EKY KYGCPGTF?>C~^ >ް@E-C/ >EIV K~ VE C3@Ϡ@I[@ޠ,H4ZA)(^48C#C/>^ ~ޠ $>(~(CCMGC4GCmC#TG@ZkâFòޠGG >^~C^~G@pD @B11 B`GGG,>C G ~^ C>pn ,@:H~@he,?#k. 0`A^ ~C/DE-D#GE/\I[ \K [E C=@*"G:| 8$6>C ͦ ްϠ\@ @e/C%/eKZ %KzGC4xC'1@C.@.V JWJC>@>ޠ CD@>CA ް>C ~}@~ C ޠC4u@~^C^ C|>^ ~CCMCGGmCCC@ZkB/Y K9D~>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`C@m#J@G^ ~(08ޤ@HP>X^`~hpxޥCkGJ@GvJ?>Cm# +_CG0m#C@dC`HGP.Se/J\ eKFC4B8%/;.D%KX J8GC4YC@/CE/ĢK[ EKGC4B//"$KV KGC48C%/.d%KX J8GC4yCe/E#/ĢzKY KyGC4B/E/K[ EKGC4BxKK45C"&FbF`H.Ke/J\ eKFCFX _'FLE-L%#O.YIX J XE CM@$ H! HC@@d4CCGGG@pD @B11 B GGGT@,H|#-DwHD@#;/8K:K0FG">C~^ >ްPE-S/ >EIV K~ VE C@Ϡ@I[@ޠ|H4ZA(^48CsCGH.K/JV KFCF?>CGGG@pD @B11 B@GG.GGGG@pD @B11 BGG G@.J'FH%/K.%KX J8GC$G/@K`pG .@JWJTFyKF>GCH.#K/JV KFCF>CGGG@pD @B11 B@GGGCGMC4GCmC#TG@ZkޠT%# >^~C^~TE-W.YIX J XE C@ʢF| $j `>C0M ްϠY@ P/S.KW JGC4C'1@SE/Pe/Z EK[eKSE?Pe?ޠ CDP% >Cm#> ް>C >C~ ް@4@CGGG@pD @B11 BFGG d4(A@m `?=GJ@GvJ ޠC|71B||>C&|0C|$#$~ ^>ް ~^LeJ`>C0M ~^>>C:Mm! HC>@Zk>C>CMG H ~G^>GG@Zk>? ^ ~CM>CLEmh@ZkC>ChEMG HG ~^>GG@Zk>^ ~C>^ ~C(ͦlM>Cm4@ZkC>Cm# @C >CM>`>Ca4 m@Zk>C M>Cm>@? >C@Zk>CS(M: M>Cm4@ZkCTGGGGG^~ ޠ> ^$~C/~4@ ޠ>Cc" gE vE TfEc~4u@^CCޠ >^~CZGޠC>^ ~CGGGFGGîG>CA@_! CM@IG ~^>GG@Zk>@_#^ ~C4B>C° C~^L% D@H"@HCA@C^~C +taA? E >CB CXJʢ˲G E K/ZYK K?t(M >7ɢ ˲ikp)+t>C0<k0`C<k8 : M>Cm4@ZkCTGGG>CGGC>Cm#_CUNC;GC MCGG(mCCC@Zk "H/KE/`K[ EKGCGU4GCC@m##@ӈ.W JD@/[ \KF /Z ;KG@/[ \KF KZ \KYG@?G>C^ GA@CkGG>C^޴ (>0^8 G>Cm#^G > Cް>C_C!CC@ZGAmCMC>CGG4C@Zk ޠC >^Cޤ (>0^8CkGMGޠCCC >C^CmG@Zk>C~^^ ~(08޴@HP>X^`~hp-nCx޵GCCCCCG@m#_G^ ~(08ޤ@HP>X^`~hpxޥCkGf_'Z#{`KgK45`C#:GGJGvJ>Cm# p_C0m#C]_dCĢP4B8E/;/dEKY KYGC4zC@.Ce/J\ eKFC4B%/#.D8KW J7GC4YCE//EKY KYGC4C/%/e#KZ ;KGC4B.e/J\ eKFC4C&y K'K45 C>C~^ >ް8E-;. >EIX J~ XE C@`ͦ@I֠\@ޠ h4[A^H$4YCCH/K.ޠKW JGC >^PG~C$He/K%/#eKZ %KzGC|G@>CBGGG@pD @B11 BFG6G3/@KcG4>CGGG@pD @B11 B@GGGGGG@pD @B11 BGG|G@.JDF|u@m#C_ @m#C_q>Cd%#(~$^ >ް ~^>dE-g.YIX J XE CD@ CDJA@TJB=)Cw`K4IA8<E-<E#?/ CZIY K YE C/@F,|ʢ*$(>C0m ްՠZ@ 8%/;.Ȣ%KX J8GC46C'1@;e/8/[ eK;e?\K8?ޠ CD8E@>CPm#@C>^~ ޠ >$^(~C G@m#C0_ӕH%/K.%KX J8GC$GD/@K`pG>H.K/@#JV KFCF @/@XKZXK!G|xK\G@?`e/d"c/eKY K[eKYG:1@CwEKX KwG EK@ SAFETY013.A  ([EVERHART.JTDEMO]JTDRIVER_S264V3.OBJ_A;2>3Gc?`e?@Dd.ge/`E/Jc/\ vKZEKFCyJX KYG J@Gc?`E?.J`VJTGxJF`>>C@ް ~^.J0F\Z XDȠV%/.>C# M8KW J>G7G>C ^(mG(~@Zk/GE/0@K[ EK>GC> ^4@(~C,/HY KDC./" 8O=JV KFC4@Fd-de#g%/IZ ;KECDTCwJ4@C4@He/K%/#eKZ %KzGC|G.@J3F^~ ޠC;/V KGG>@/[ \KFF5. /Z ;KG<.W J7GG xKV JF>G /Z ;KGi JY ;K8G ?i@/[ \KFr`/\ vKFG>C^^~ (0޴8@H>P^X~` GhGMm@Zk^~ (0ޤ8@H>P^X~`hCk>CG G ~G^$K>-I=H??? ?(?0?8?@?H?P?X?`?h?p?x-Ix=^> ~ CCGt>CG(~TG$^ >ް ~^>bd8  "@A @K! @ + @ A @Kt  K+k - $ (˰,0 4+ 8 I<K @ IDKH+L DPK$T+8 4X ,! H\L`>CM Cm~G<C>C@Zk~_' CC%m?%$:GFGGFGGG/kG4G&`M>Cm@ZkCKG4G@Mm>C@ZkCGt `MChmG>C@Zk>^ ~C ޠ >$^(~C2TGGGĢGGFIJ>C^~ Ge#4G+0C0u BkMGm4G@Zk8M@mCG@Zk4G~CkGG>C^~ Ge#4G+0C0u B0 BkMGm4G@Zk(M0mCG@Zk4G~Ck>C^^~ (0޴8@H>P^X~` GhHG`^~ (0ޤ8@H>P^X~`hCkXM? `m@Zk>CG G ~G^$K>4G-I=?85C?? ?(?%CH??-I=^> ~GCt>Cpb C(~G$^tG >ް ~^>bd8  "@A @K! @ + @ A @Kt  K+k $ (˰,0 4+ 8 I<K M@ )x+ D T!AHK )/ -8KZ I!A:GL+)/8KP+WTK$X+\ 8 4A`K,! H!d+Lh<ˢ#+>C,~(^$> ް ~^>C@| 0@ JpA@MHGG@Zk>^ ~ޠ $>(^,~C>CM Cm~ DC>C@Zk~ CC%-'?%FFGGGGGG/+G) hMpm>C4G@ZkC G xM>Cm4G@ZkC4G>Ct MC m? @Zk>^ ~C ޠ >$^(~CTGGGGGDIGD -Z I:G`G>C^^~ (0^8~@ GH? HMPm @Zk G^~ (0^8~@HCk>CG G ~#^$K>G-I=?85C?? ?(?%CH??? -I =H(-I(=^> ~GCt>Cpb C~G^G ~^>bd8  "@A @K! @ + @ A @Kt  K+k $ (˰,0 4+ 8 I<K M@ )x+ D T!AHK )/ -8KZ I!A:GL+)/8KP+WTK$X+\ 8 4A`K,! H!d+Lh<ˢ,>C,~(^$> ް ~^>C@| #0@ JpA@MHGG@Zk>^ ~ޠ $>(^,~C>C0 A,~(^$>K! ް ~^>GMIGG@Zk>^ ~ޠ $>(^,~ C,(MCmC~ D>C@Zk~ ?%CC#&GFDGGGIGDGGG)XM`m>C4G@ZkCˢG hM>Cpm4G@ZkC4G>Ct +ˠ MCm? @Zk>^ ~C _= ^~CTGGGGGDIGDk4 ``".J /vJY K6G ?@GD//KY K\KyGCpGyzKX KG zKG?? -Z I:GÅk/\ vKF / JX KG ?GG>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCC4G;AL_G^ ~(08ޤ@HP>X^`~hpxޥCkG>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCcCC`K HgG4KD@MGHmGCCCCG@ZkG^ ~(08ޤ@HP>X^`~hpxޥCkG#>CG MG(mGGGG>C@ZkCNd#G>C(,~(^$> ް ~^>@+4U@)50 C5@% 6BŲMm@Zk0 ~G@MC  >G^CޠCC $>(^,~HmC@Zk>^ ~ޠ $>(^,~C@MCHmCCCCG@Zk45@ Ce4{AA@ ~TGM4G>G^CCޠ $>(^,~Cm#@ZkdA@GGG>C^^~ (0޴8@H>P^X~` Gh^~ (0ޤ8@H>P^X~`hCk>C4G(~$^G >Gް >C ~^>>C-GG pH0M>C8m@ZkC/CK"4 CtHI @i8+ 0CJ?'x9#0YC# 4GŲE>CMGG"PB@ZkCM>C(*!GG%GG~^ >%!Gް>C( ~^G> H@Zk> A^ AA ~ !A GC>C *0(B0'B)+1`A A @A#ޠ C >^~C(ﳆ"벆ͦ >C M >C(mpH@ZkC/CGGF>G^~ ޠ >$^(~CB-GGY@FGGhTGGGG>C^^~ (^0~8 G>CC>8%>CEm !CGG>C GٔH>GpH=Mm>C@ZkCVHCHFj0kC9*'x#08CJ_ͦ>C۔HM~>CmpH@ZkZH CCH@GCGGF>C^~ (^0~8CkGGGW@FGG* G*+J0A@$ M#( ĢGSCFIJ0"@ C$?òç `>Cd~ ^CD!#0@A곝GCGG>C~^^ (޴08G4GCCCC4GG^ (ޤ08CkGG>C~^ ^(~08@H GGC( #X%G-'@#?G:GX%4G{1J>CX4G-CM\0K# ͦGXE4Ų ~^><>CMm! HC >@Zk >CC>CMG HG ~^>GG@ZkM>? ^ ~CLEmh@Zk>ChEG HMG ~^>GG@Zk>^ ~C>4G^ ~CG ^(~08@HCkG4G>^ ~CŢFŲ>C^^~ (޴08@>H^P~X GGL% D@H"@HCA@CA!@!08CA@ a`ˢ0BC??DD^~ (ޤ08@>H^P~XCkC>C^^~ (޴08@>H^P~X G>C C>2`AG4*l#4G*0<@<@FqG `CMm>C@Zk CC_>CGG G ~$K^>.J>H??? .J >>^ ~C>C^~ (ޤ08@>H^ n=P~XCkGG>C^~ ޴(08>@^H~>C>GL% D@H"@HCA@C0 C>C^~ ޤ(08>@^H~CkGGG4GkGG>C~^^~ (08 GGCCEBFT xeG MC(mCCtG@ZkG^~ (08CkG>C^^~ (޴08@>H^P~X G>CM,~(^$> ް ~^>GCem@ZkXm#4_C~AG>^ ~ޠ $>(^,~Ct@^~ (ޤ08@>H^P~XCkGG>C~^ ^(~08@޴HPX>`^h~p GxGM CmG@Zk:>CG# G ~$K^>.J>H??? .J >H(.J(>^> ~CBy H0 C@Z@K8mYGBGbtG 0Mwq KĢ ŲXpKG@Zk`MGhm4G@Zk4GG ^(~08@ޤHPX>`^h~pxCk>C^^~ (0޴8@H>P^X~` Gh>C@MG,~ C(^4G$> ް ~^>>CHm @Zk C:G>C^^~ (0޴8@H>P^X~`-lCh>C@MG,~4G(^$> ް ~^>Hm@Zk>CeMm~ ~^>GC>C@Zk> ^C~ ~C`>^ ~ޠ $>(^,~C^~ (0ޤ8@H>P^X~`hCkHkm#X&_C?'H%+!9F: '8F LE5@$ H! HC@@0B+GGG@pD @B11 B@GGG`T@,H! "DwHD@<#\/YK[K0GG ͦB/K"GC4K@He'# |G ' 碲 @,Hh% ??#DCwJDwH IAVAD.JJ@$/K0K g@k'D+~;AG>^ ~ޠ $>(^,~C@h hAGG/wYK 4@AGXKG?GwYK?G/ 4@A_#XKG?GvYK/ T@AXKG G @A?4G:G @AG4G/wYKG>CXK 4@AG?@KGD hA4   EAG ~GpM^>GH@Zk>^ ~C4ˢ#0B@K/KK4+'4C@+D 4G8˲ EDk hA0`GT% G~;AG>^ ~ޠ $>(^,~C@P_#IC,HK(Ai /4 AK0Ci 'AG@?'F@'+;G+ hAGG/ 4@A{J\KGG?.G 4@Av8KWJGF>:/#wzK T@AY:K7G9@G @A:?&G @A4BܲGo4G|K 4@Az.VJF>* hAGG|/ 4@AzJ[|KGzG|?.G 4@A|KVJGF>/_#vYK T@AXKG G @A?'G @A4CGO4G{J 4@AY/\KG?G8Kɢ0B>CpMHG ~^>hAG@Zk>^ ~C]È)"GZ| X$V>Cͦ ް,H0MڠY@P0C'1@Pޠ CDPŢ9h#>CMCD"hdeh HH@+(D.JL"KHH+ (L.JM>C$:((,04^>dtJ8Ȳ8 4T<@,! Ha<hL!@(8 D4GHȲaLh !P(>^>C ~^>Hk`,GGGGpD @B11 BGG `$G AG `($ GGGpD @B11 B GG `#GFd,dH`pM`HGG@Zk>^ ~C0MC8mC~h >C@Zk ~h"CCC>4G^ ~ޠ $>(^,~C.X JDV/[ VKG\/[ \KD .W JG. YKW JF>=/ zKX KG ~=?. YKW JF>v/\ vKD#Ek/\ vKFCMk/\ vKFH>C^^~ (޴08@>H^P~X G>Cm#,~ C(^$> ްC ~^>_C` P!@@@!@H`X!@!!@A!@a C!@ K @j`*91 C* 䢁&FMG m4G@Zk8k'|G2 8K.KJ`1@B( 1u@B& 8ˢ$>C> + 8k'|G &0CG'8K[G  ?'F&8G !@'0 C!ˢF˲>C8k_'zG8k E8+4G1 C4 >C8 ,~(^$> ް ~^>ˢtIJ (ͦKD Mkvm#+p$t KD_,~>^ ~ޠ $>(^C88 1C @m#_梈m#1@ H_>C C$KJ  ˢ ʲkj(Cm#J8+1u C 8 >C >>CF ް_C࠻c@>CgGY'@P >CpDCGqDCDCGMCmCCC>CGG4C@ZkCޠC >CTGGGGd G GC$K@ * *4G K@j`*91 C*>CMG m4G @Zk C >Ct ˢ(IJkd +m7m#KpD t KD ^v_ ^C4G>^ ~ޠ $>(^,~C^~ (ޤ08@>H^P~XCk>C4Gm#_>CXMC4G>GC`m>C#TG@ZkC>C0@9C>C4Gm#_>CXMCG>GC`m>C#TG@ZkCGޠGGC >CXMC>C`mTG#@Zk $>(^C ~ޠ $>(^,~CGC& CF|71B|4G|ɲ|j0`C|jK9 /Y KYF}GGG>C?G~(^0^8~@ GHG= =]} 4GG>C?G~(^0^8~@-jCHG= =]} G]@>CCb`GG >C=BCC^CG;A@^CG(0^8~@HCkGGG>C~8^@^H~PX`޴hpx>޵ GG= =(]0}CGGo)`MmTG@Zk$O@M>CmTG@ZkCTGGGGG4GCV@ ! @Cw@K(=GA!#1`@ `P@GGGGGl2@p@#1`@@0(H4GG8@^H~PX`ޤhpx>ޥCk/GG )I8MC@mC*@@ZkCG@@9"@:A@G@@Gz9H/T@@XKGW G?TGW/nKT@@ZWKNGT>CW?`HG%.%JQ(MG4qBFGABB@Zk xM@ZkGC(ͦ C @HMPm@Zk}[@C yÆCP@sGDE0= #w`H(M@Ca@`HHGG4qBF qBAB@Zk xMD@Zk4GG$4GD|. 9HW JF>7/ KY 7K.G7?/Y K@ SAFETY013.A  ([EVERHART.JTDEMO]JTDRIVER_S264V3.OBJ_A;2!>R9FGG>C^^~ (޴0~8 G>CGް ~^>etG1`M cAKgAmX >C@Zk>G ^{qJ~C ޠC M^G>C$ % \pKGm@Zk^ C^~ (ޤ0~8Ck>^~ ޠCGG>C^^~ (0~8 G>C ~>e` +k`l+ @8'KK?D!.7JMpK"!@@ZkGMG>4G ~C$m@ZkMCm@Zk^~ (0~8Ck!/V 7K6F4G  SMP$ACQUIRE4m#P SMP$ACQUIRE4@  SMP$ACQUIRE4HGX SMP$RELEASE4Lm#P SMP$RELEASE 4T@X SMP$RELEASE4xGEXE_STD$ABORTIO4n#EXE_STD$ABORTIO4@EXE_STD$ABORTIO4G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4 ( G\ OTS$ZERO4 X @\ OTS$ZERO4x G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4  G OTS$ZERO4  @ OTS$ZERO4 G, SMP$ACQUIREL4 n# SMP$ACQUIREL4( @, SMP$ACQUIREL< L Gl EXE$DEANONPGDSIZ< P n#EXE$DEANONPGDSIZ< h @l EXE$DEANONPGDSIZ4x G EXE$ALONPAGVAR4 n#EXE$ALONPAGVAR4 @ EXE$ALONPAGVAR4 G SMP$RELEASEL4 n# SMP$RELEASEL4 @ SMP$RELEASEL4  G OTS$ZERO4  @ OTS$ZERO44 GL EXE$ALONPAGVAR48 n#EXE$ALONPAGVAR4H @L EXE$ALONPAGVAR< T Gp EXE$DEANONPGDSIZ< h n#EXE$DEANONPGDSIZ< l @p EXE$DEANONPGDSIZ4  G OTS$ZERO4  @ OTS$ZERO4 G SMP$RELEASEL4 n# SMP$RELEASEL4 @ SMP$RELEASEL4 ,GLOTS$MOVE4 H@LOTS$MOVE4 GOTS$MOVE4 @OTS$MOVE4 pGOTS$MOVE4 @OTS$MOVE,GSYS$QIO,n#SYS$QIO,@SYS$QIO4<G\ SMP$ACQUIREL4Dn# SMP$ACQUIREL4X@\ SMP$ACQUIREL< GEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4G SMP$RELEASEL4n# SMP$RELEASEL4@ SMP$RELEASEL4G SYS$SETEF4n# SYS$SETEF4@ SYS$SETEF4 n# SMP$ACQUIREL4 G, SMP$ACQUIREL4(@, SMP$ACQUIREL< tGEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4G SMP$RELEASEL4n# SMP$RELEASEL4@ SMP$RELEASEL4HG\EXE$ALONPAGVAR4Pn#EXE$ALONPAGVAR4X@\EXE$ALONPAGVAR4 `GxOTS$MOVE4 t@xOTS$MOVE< xGEXE$DEANONPGDSIZ< n#EXE$DEANONPGDSIZ < @EXE$DEANONPGDSIZ4 G SCH$IOLOCKW4 m# SCH$IOLOCKW4 @ SCH$IOLOCKW4!Gd! IOC$SEARCHDEV4!m# IOC$SEARCHDEV4`!@d! IOC$SEARCHDEV4"G" SCH$IOUNLOCK4"m# SCH$IOUNLOCK4"@" SCH$IOUNLOCK4x#G# SMP$ACQUIREL4#m#  SMP$ACQUIREL4#@# SMP$ACQUIREL4#G$ SMP$RELEASEL4#m#  SMP$RELEASEL4$@$ SMP$RELEASEL< $G$EXE$DEANONPGDSIZ< $m# EXE$DEANONPGDSIZ< $@$EXE$DEANONPGDSIZ4!%G% SYS$WAITFR4"%m#0 SYS$WAITFR4!%@% SYS$WAITFR4%G0% SYS$CLREF4  %m#0 SYS$CLREF4,%@0% SYS$CLREF< L%Gl%EXE$DEANONPGDSIZ< P%m#0EXE$DEANONPGDSIZ< h%@l%EXE$DEANONPGDSIZ4#&G$& OTS$CALL_PROC4$&m#` OTS$CALL_PROC4# &@$& OTS$CALL_PROC<%'G'EXE_STD$FINISHIO<&'m#EXE_STD$FINISHIO<%'@'EXE_STD$FINISHIO4$)m# OTS$CALL_PROC4#)G* OTS$CALL_PROC4#*@* OTS$CALL_PROC<%*G*EXE_STD$FINISHIO<&*m#EXE_STD$FINISHIO<%*@*EXE_STD$FINISHIO< ,G,EXE$DEANONPGDSIZ< ,m# EXE$DEANONPGDSIZ< ,@,EXE$DEANONPGDSIZ<% 5GT5EXE_STD$FINISHIO<&@5m#PEXE_STD$FINISHIO<%P5@T5EXE_STD$FINISHIO47G7EXE_STD$ABORTIO47m#PEXE_STD$ABORTIO47@7EXE_STD$ABORTIO<%=G=EXE_STD$FINISHIO<&=m#@EXE_STD$FINISHIO<%=@=EXE_STD$FINISHIO4@G@EXE$ALONPAGVAR4@m#@EXE$ALONPAGVAR4@@@EXE$ALONPAGVAR4 ,@G`@OTS$ZERO4 \@@`@OTS$ZERO4@G@EXE$ALONPAGVAR4@m#@EXE$ALONPAGVAR4@@@EXE$ALONPAGVAR4 @G@OTS$ZERO4 @@@OTS$ZERO4AG0A SMP$ACQUIREL4 Am#@ SMP$ACQUIREL4,A@0A SMP$ACQUIREL< PAGpAEXE$DEANONPGDSIZ< hAm#@EXE$DEANONPGDSIZ< lA@pAEXE$DEANONPGDSIZ4|AGAEXE$ALONPAGVAR4Am#@EXE$ALONPAGVAR4A@AEXE$ALONPAGVAR4AGA SMP$RELEASEL4Am#@ SMP$RELEASEL4A@A SMP$RELEASEL 4 CG4COTS$ZERO4 0C@4COTS$ZERO48DGPD SMP$RELEASEL4@Dm#@ SMP$RELEASEL4LD@PD SMP$RELEASEL4DGDEXE_STD$ABORTIO4Dm#@EXE_STD$ABORTIO4D@DEXE_STD$ABORTIO4$4Fm# OTS$CALL_PROC4#@FG\F OTS$CALL_PROC4#XF@\F OTS$CALL_PROC4FGFEXE_STD$ABORTIO4Fm#EXE_STD$ABORTIO4F@FEXE_STD$ABORTIO47NGN OTS$DIV_I48Nm#@ OTS$DIV_I47N@N OTS$DIV_I4PGPEXE$ALONPAGVAR4Pm#EXE$ALONPAGVAR4P@PEXE$ALONPAGVAR4'SG0SEXE$WRTMAILBOX4( Sm#EXE$WRTMAILBOX4',S@0SEXE$WRTMAILBOX4SGS SYS$CLREF4 Sm# SYS$CLREF4S@S SYS$CLREF4!SGS SYS$WAITFR4"Sm# SYS$WAITFR4!S@S SYS$WAITFR< SGTEXE$DEANONPGDSIZ< Sm#EXE$DEANONPGDSIZ< S@TEXE$DEANONPGDSIZ4TGT SYS$SETEF4Tm# SYS$SETEF4T@T SYS$SETEF< TGTEXE$DEANONPGDSIZ< Tm#EXE$DEANONPGDSIZ< T@TEXE$DEANONPGDSIZ4 UG4U SYS$SETEF4(Um# SYS$SETEF40U@4U SYS$SETEF< 4UGHUEXE$DEANONPGDSIZ< 8Um#EXE$DEANONPGDSIZ< DU@HUEXE$DEANONPGDSIZ4UGUEXE$ALONPAGVAR4Um#EXE$ALONPAGVAR4U@UEXE$ALONPAGVAR4 `XGtXOTS$MOVE4 pX@tXOTS$MOVE4'XGXEXE$WRTMAILBOX4(Xm#EXE$WRTMAILBOX4'X@XEXE$WRTMAILBOX4DYGXY SYS$CLREF4 HYm# SYS$CLREF4TY@XY SYS$CLREF4!hYG|Y SYS$WAITFR4"pYm# SYS$WAITFR4!xY@|Y SYS$WAITFR< YGYEXE$DEANONPGDSIZ< Ym#EXE$DEANONPGDSIZ< Y@YEXE$DEANONPGDSIZ4dZGxZEXE$ALONPAGVAR4hZm#EXE$ALONPAGVAR4tZ@xZEXE$ALONPAGVAR4 ]G,]OTS$MOVE4 (]@,]OTS$MOVE4 ]G]OTS$MOVE4 ]@]OTS$MOVE4']G^EXE$WRTMAILBOX4(^m#EXE$WRTMAILBOX4'^@^EXE$WRTMAILBOX4^G^ SYS$CLREF4 ^m# SYS$CLREF4^@^ SYS$CLREF4!^G^ SYS$WAITFR4"^m# SYS$WAITFR 4!^@^ SYS$WAITFR< ^G^EXE$DEANONPGDSIZ< ^m#EXE$DEANONPGDSIZ< ^@^EXE$DEANONPGDSIZ4`aGaEXE_STD$ABORTIO4ham# EXE_STD$ABORTIO4a@aEXE_STD$ABORTIO<)aGbEXE_STD$WRITECHK<*am# EXE_STD$WRITECHK<) b@bEXE_STD$WRITECHK4bGb IOC$SEARCHDEV4bm#  IOC$SEARCHDEV4b@b IOC$SEARCHDEV4bGcEXE_STD$ABORTIO4cm# EXE_STD$ABORTIO4c@cEXE_STD$ABORTIO4PcGtcEXE_STD$ABORTIO4Xcm# EXE_STD$ABORTIO4pc@tcEXE_STD$ABORTIO<%cGcEXE_STD$FINISHIO<&cm# EXE_STD$FINISHIO<%c@cEXE_STD$FINISHIO4eGe SMP$ACQUIRE4em#P SMP$ACQUIRE4 e@e SMP$ACQUIRE4 eGeOTS$MOVE4 e@eOTS$MOVE4 eG$fOTS$MOVE4  f@$fOTS$MOVE4fGf SMP$RELEASE4fm#P SMP$RELEASE4f@f SMP$RELEASE4hG,h SMP$ACQUIRE4 hm#p SMP$ACQUIRE4(h@,h SMP$ACQUIRE4hGh SMP$RELEASE4hm#p SMP$RELEASE4h@h SMP$RELEASE4HkG`kEXE$ALONPAGVAR4Lkm#EXE$ALONPAGVAR4\k@`kEXE$ALONPAGVAR4 pkGkOTS$ZERO4 k@kOTS$ZERO4kGkEXE$ALONPAGVAR4km#EXE$ALONPAGVAR4k@kEXE$ALONPAGVAR4 kGlOTS$ZERO4 l@lOTS$ZERO< $nG4nEXE$DEANONPGDSIZ< (nm#EXE$DEANONPGDSIZ< 0n@4nEXE$DEANONPGDSIZ4+pG4pIOC_STD$REQCOM4, pm#IOC_STD$REQCOM4+0p@ SAFETY013.A  ([EVERHART.JTDEMO]JTDRIVER_S264V3.OBJ_A;2"q@4pIOC_STD$REQCOM< pGpEXE$DEANONPGDSIZ< pm#@EXE$DEANONPGDSIZ< p@pEXE$DEANONPGDSIZ4qGqEXE$ALONPAGVAR4qm#PEXE$ALONPAGVAR4q@qEXE$ALONPAGVAR4.rm#PSCH$QAST4-rGrSCH$QAST4-r@rSCH$QAST4rGr SYS$SETEF4rm#P SYS$SETEF4r@r SYS$SETEF4`sGs SYS$SETEF4sm#p SYS$SETEF4s@s SYS$SETEF4tGDt SYS$SETEF48tm#p SYS$SETEF4@t@Dt SYS$SETEF< LtGtEXE$DEANONPGDSIZ< Ptm#pEXE$DEANONPGDSIZ< |t@tEXE$DEANONPGDSIZ 4  xGis like activating the automatic police dialer by a microphoneBthat is near the burglar alarm speaker, when the speaker wires are<exposed and can easily be cut before one burgles the bank...@EACF takes a more serious approach to data security, building it@in at a fairly fundamental level to the VMS file access code andDin a way which cannot be defeated by turning on privileges and whichDcannot easily be disabled by other well known methods without at theAsame time disabling VMS. It is unimpressed by user privileges andKcan control file access by even privileged users, and, just as importantly,Cit can control how files are accessed and by what images as well asby user, time, location, etc. DWhere a site has serious needs to protect its data, EACF is not just?an option. It is a necessity. Nothing else allows its degree ofGcontrol over access or its ease and flexibility of specifying controls.Overall architecture:BEACF works by having an intercept driver gain control ahead of DECBfile processors by hooking in at the disk driver for each disk andFmonitor file based requests. fundamentally it monitors open and deleteFand performs access checking in a special daemon that acts as a secondBACP, ahead of the DEC one, which can cause the user request eitherGto be passed, rejected, or modified. Close is also intercepted to allowEscratch storage that is kept during file open periods to be restored.BFiles are marked by application ACEs tagging a few functions to beEdone in the driver (e.g. setting privs, idents, base priority - theseFprotected by a cryptographic checksum on the tags) and may in additionEhave file numbers registered so that if these files are opened and ifEthe ACEs have been deleted, those files will still be examined by thedaemon for access checks.HThe list of files (up to 128/volume) that may be so examined is loadable?at startup from a sequential file that can be made up using theCoutput of the "$ DIR/FILE" command, to make it easy to maintain thelist.IFile security checksums, passwords, etc. are maintained in ISAM databasesIand used by the daemon to check these. File passwords must be pre-enteredBinto (normally process) logical name space (they're scrambled in aEuic-dependent way. On an attempt to open the files, these are checkedFfor; if they are found the access goes through. If not, it is denied.)BA separate utility allows entry of the file passwords. It does notFinternally check the password entered, just sets it as entered so thatHfile access can be tried with it. To some extent this throttles the rateGat which passwords can be tried to the speed of image activation. SinceMother conditions can exist besides requirement of passwords, e.g., a file mayIneed to be opened by some particular image AS WELL AS the process holdingLa password to it, this can make unauthorized access difficult. The passwordsIare scrambled depending on UIC so that the underlying logical name cannotJjust be copied. The scheme currently lacks a notion of when a password was*entered, though that might be added later.> NOTE: The following descriptions of interface are an INTERNAL< interface and are not seen by the end user, being hidden by< a menu driven front end. They are here so you can tell what features are available.,Control flags in ucb$l_ctlflgs work by bits./ 1 - Allows access filtering. Used to recognize) files to move, check security on, etc.5 1024 - If set, check for FIDs with rvn bit 8 set and) high filenum bit 8 set and lets access5 filtering be done. To be used for "full" softlinks' when a directory-generator is built.4 262144 - If set, examine only files with filenum in- kernel list (instead of looking for ACL on/ all). Designed to save time where only a few/ files (few :== under 512) are known to be of security interest.: 65792 - If either bit set (65536 + 256), look at deaccess (close). 128 - If set allow delete2 daemon to control deletion. Two functions here.2 One is that if the file is in our "kernel list"0 we flag specifically for the delete daemon to5 check whether delete access is permitted. (In fact7 all deletes are security checked if this bit is set, so we get good coverage.)C 64 - Send del dmn msg only if filenum stored, ifB set. Otherwise send always. Used to ensure= if knl tagging exists that the delete testing can be done.EACF Daemons exist for:Bopen - gets control on io$_access if my ACE is there or if filenum) is in knl list in ucb. Handles security security, softlinks, etc.Gdelete - gets control on delete operations. Used to check file accesses9 where delete is attempted to ensure extended checks are met.HCurrently both of these live in the same image. They access an ISAM dataIfile per disk volume indexed by FID which contains the "security profile" of each file.$ass/sys vdb1:[junk] jtd$db$! command processes live here:#$! filrst.com file fid1 fid2 filsiz$! makspc.com diskname nblks$ass/sys vdb1:[junk] gcy$cm$ass/sys n gce$delsav/$jta*uthmaint:==$usr$root:[everhart]jtauthmaint$xjta:=="$usr$root:[everhart]jtauthmaint dka700:[y.everhart]junk.junk\ I+KS12U+<*>VPTY+$!jtau dka700:[y.everhart]junk.junk\ I+KS12U+<*>VPTY+N$! ctl mode: 1-open, 1024 = bogus fid chk, 40000x=look at files in driver only&$! 65792=chk close, 128=delete control$set comm sys$system:jtdmn$jtdo:==jtdmn/fcnmsk:66435$dp Operation:KCurrently there is a commandline driven interface to control file security.Its function is to:; * Maintain security access ACE entries on files on a disk) * Display contents of security database0 * Update or clear fields of security database CThe intent is that a second version of this utility will be writtenFwith FPAINT (or some other fullscreen interface) to provide a prettierB@ SAFETY013.A!  [EVERHART.JTDEMO]JTEACF.DOC;39BJ_A;296k>front end. JTauthmaint is for command files to use to set securityDprofiles up in bulk. It is not intended to be used bare by customersBor anyone else once past initial test. It does however work, as itmust...#Commands to jtauthmaint are of formfilename\commandsDwhere filename is any file name one likes. The disk part of the nameDis used to select which database name to be used (the databases liveDin area GCY$CM:) and the filename is used to find the file ID, whichis the record index.GThe commands are just strung together, being designed to be concise andEeasy to parse, though not necessarily easy to read by hand. Remember,Dthe intent is to generate databases assuming a DCL layer at least isCbetween us and the user. (This layer will use some fullscreen toolsHalso, so privs will be entered by name, not by mask, as will identifiersand the like.)DThe commands are composed of short substrings. In EACF the followingsuch substrings are relevant:2SYMS Generates a set of DCL symbols with various. fields of the current file (for use by user+ interface). Gets basically all data into DCL symbols. Symbols are: JTA_ZFID - File id, hex3 JTA_ITIM - Permitted usage by time (24 chars)% JTA_MXPV - Max privs (hex mask)3 JTA_CKSM - Checksum (hex mask) (0 means none)9 JTA_PSWD - File password hash (0 means no password) JTA_USRS - OK users JTA_FUSR - Forbidden users JTA_TTYS - OK TTYs JTA_FTTY - Forbidden TTYs JTA_IMGS - OK Images! JTA_FIMG - Forbidden images4 JTA_BKPU - Backup user list ("superuser list")# JTA_FNAM - Filename as stored. JTA_CSLK - conditional softlink dvc:file) JTA_NSLK - normal softlink dvc:file- JTA_INSP - inspectme flag - space or I+2 JTA_BPRI - baseprio set - space or base prio/ JTA_RPRV - Replacement privs vector (hex)L JTA_IDNT - Identifier hex value. Note only one is reported even thoughA the system will allow more. Space if none.D JTA_SURW - superuser (backup) read-only access. 'R/O' or 'R/W'9 JTA_ZCMD - command to execute if access is rejected2%DELETE Delete database file entry for this file7%PURGE Goes over the entire data base and checks that/ the files in it exist. Any records referring- to files that cannot be found are deleted.5%REGEN goes over entire data base and re-enters any. ACEs that have been deleted but that should' be there (which are available in the. database for that purpose now). Reports to, sys$output when such an action is needed. Also reports to OPCOM.4%SHOW display the whole record in a mostly dumped0 form (or displays a message that none exists)2%LIST Write a list of filename/file-ID pairs out of all files in the database.%GBLEDIT `oldstring`newstring`- Replaces all occurrences of "oldstring" in1 the database with "newstring" (or just deletes/ "oldstring" everywhere if newstring is null.0 Any delimiter character in neither string may4 be used (provided it's printable...). This should, be a handy way to remove users and so on.D The following keys refer to mods that are made as a file is opened= and apply only to OPEN processing, not both open and delete.7K Sets a security key string which should match. the /KEY:string switch used in running the 6 daemon. Such a match is needed to validate security7 relevant ACE actions like priv or identifier modify.:#Snn Base prio to nn where nn ranges 0-31. Sets the base2 priority of the process to nn while the file is open.9P Priv mask. Resets all process priv masks to the4 mask here (16 hex digits) while the file is open.3 Note this replaces masks, does not OR into them," so it can raise OR lower privs.GI Identifier Assigns the identifier (expressed as 16 hex digits)7 to the process while the file is open and revokes it4 unconditionally when the file is closed. Multiple% identifier strings may be present.E The following keys refer to access permissions which apply to both OPEN and DELETE access.4I+ inspectme tag. Sets a flag to tell EACF to send5 a message to the access daemon to check this open.5 (Settings of database fields as noted below should3 be accompanied by this string to ensure they get looked at.)MV Max priv mask - Sets a mask of the MOST privs a process7 may hold when opening the file. If the process holds7 any more privs, the open fails. Thus one can disable7 file opens via BYPASS or READALL even if the file is3 normally world readable; a process holding these4 privs would be denied access. If it disables them it can then do the access.:T - time-value access permission4 This sets access permission every hour. Each hour2 is represented by one letter. Values known are:4 Y - Access permitted provided all other security  checks pass.1 N - No access (except to users on backup list)7 U - No CHECKS, let everything by EACF checks on this0 file during this hour. (DEC security remains in effect.). P - Check privileges against max privs only5 R - Readonly access only, by anyone; r/w opens are* rejected. Other checks may deny access totally as well.- X - Allow r/o opens, test others normally.1 D - Disallow access by ANYone (even superuser)?Z - Command to execute if file access is denied. Note3 it is executed even if a conditional softlink is5 to be used. If "\" is in the string the command is1 chopped there. Otherwise it gets the username,3 terminal name, hex FID 1, hex fid 2, and hex PID5 appended with spaces separating them (so a command8 procedure can use them as P1 to P5 unless the command* itself contains more parameters first).;X Command to execute. If cmd proc sends back "NG"3 this rejects access. If it sends back "OK" as it1 normally will, access is allowed. This test is1 done only if access is permitted by other EACF$ tests. A kept subprocess is used.EThe list maintenance commands below are all similar in form. They add3to a list, subtract from a list, or replace a list;B Note that lists may use * as a wildcard character (str$match_wild3is used to test matches) and & means skip the test.)commands of form L+ add to a list0 " " " L- subtract from a list* " " " L* replace a listFLists are generally permitted to have wildcard characters (*) as usual with VMS.CU+ Add a name to the "permitted users" listHU- remove a name from the "permitted users" listMU* replace the "permitted users list" with this one@V+ Add a name to the "forbidden users" listBV- Take a name off the "forbidden users" listDV* Replace "forb. user" list with this oneDK+ Add a terminal name (or substring) to the* "permitted terminals" list. Note that+ terminal name and access port name are both checked.DK- Remove a name from "permitted terms" list;K* Replace "permitted terms" list.A(note letter+, letter-, letter* pattern above...continue for all)LL[+-*] Edits the "forbidden terminal names" list.0N[+-*] - operate on permitted image list =O[+-*] - operate on forbidden image listDQ[+-*] - modify password on file. Sets the password.& User must enter the password with, password-entry tool before the file can& be opened if password is set. Y-  gets rid of password.GZ+- - turn checksum on/off (on -> compute checksum). If the checksum is& used, a cryptographic checksum is, generated for a file. At any open, this- is recomputed and the file will not open* unless it matches. This prevents file) tampering from going undetected, but) beware: computing the checksum takes+ noticeable amounts of time. It is best used on short script files.NW+- Skip ace alteration if +, allow if -. Default allow. Lets the database be' edited without touching the file's ACL.IX+ eXpunge variable field stuff initially. If set, this zeroes all lists before starting.@R+ or R- Set backup user access to read/only (R+) vs read/write' (R-). When R+ is specified, backup$ account opens must be read-only& opens or they will be disallowed.E The conditional softlink specification applies only to OPEN access= and not delete, since it is a system action that takes place: if access is to be denied. Delete processing does not use< this and will simply be denied delete access if file access= is denied; the conditionally softlinked file is NOT touched.?C Set conditional softlink to dev:filename which! is taken if access is denied=H Set normal softlink to dev:filename (uncond)4# Set normal softlink, read-only typeDThere is a component to create file passwords. These get left aroundEscrambled into logicals in a UIC dependent way (to make it harder forBpeople to grab them from each other). File passwords are generatedby a command that looks likeEACF_PASSWORD filespec passwordEThe remaining components are the intercept driver, which needs a unit?to be connected for each disk which EACF is to protect, and theAdaemon which does the bulk of the work (and incidentally does theBconnection to EACF's intercept driver from a disk). One daemon mayEservice one or more disks; the degree of parallelism in accessing the+disks depends entirely on customer desires.4The daemon would normally be started with a command:4$ jtdmn/fcnmsk:65833/key:my-security-key JTAn: DUAm:;where JTAn: is a unit of the JTdriver intercept driver, and=DUAm: represents some disk on the system. Additional switches?/FILENUM:file and /SHARE:jtau: can be used to load file numbers?from a file somewhere on the system. These file numbers will be>treated as though they had ACE tags on them whether they exist?or not (as protection against malicious tampering with the fileACEs that EACF uses). B A bitmap is used to store file numbers that are tagged, so that@it is possible to kernel-tag ALL files in use in this way. HenceBEACF protection is able to be provided for all files tagged. Also,@by setting the function mask bit 262144 is set and the 64 bit isEset, then file ACLs are looked for only for files known to be tagged.DIf most of your files are not tagged, this means you incur the small@amount of kernel processing in reading tags only for those filesEthat are tagged (and a few aliases, since a hashing technique is usedEto keep the bitmap size modest). This can be particularly significantAon deletions, since in that case all deletions must be fed to thedaemon unless tagged.1The /SHARE:jtau: switch says that this JTAn: unit@will share the same daemon with already set up unit JTAu:, whosedaemon must already exist..When the daemon is to be disabled, the command$ jtdmn/deas JTAn: DUAm:Bmust be given to complete deassignment. Until this is done, the JT7unit is busy and cannot be used for another assignment.STATUS as of 5/26/1994:BEssentially all functions are working and tested, at least singly.>The user interface is currently a rather arcane and unfriendly<one, but a DCL front end which will be normally all the user>sees is ~60-70% complete. This will make things like privilege?masks in hex never visible to a user. The user will instead see;a menu driven utility which will allow him to mark one or a;set of files (the utility will have the ability to handle a9wildcard spec) in which privilege masks will be generated;by selecting privileges on a fullscreen display, user lists=will be edited and visible on screen, and the same with other:attributes. The descriptions above will be unseen by users*(except MAYBE in an "internals" document).=The plan is to make the command interface prettier eventually8and possibly replace the current scheme's front end with?a fullscreen program. At any event within a week or so I expect:to have a very usable and intuitive file marking interface available.CNo kitinstal or complete docs are yet written. That will go fast (I?type quickly) but needs to be done. Also a configuration script<useful on installation needs to be written to select options?at installation time and select what happens at boot time. This!is maybe a week or so tweak time. Files used:'gcy$cm:filsav.com - save file somewhere1 ($@gcy$cm:filsav dev:file.typ hexfid1 hexfid2)< dev:file.typ is filename passed to jtauthmaint for file./ hexfid is hexfile id value, z8.8, 1x, z8.8).gcy$cm:sd.GDB - sequential delete record. (xformed_filename,devicename,orig_filespec) (comma-delimited) (xformed filename isF .sav )9gcy$cm:softlk.com - softlink file, truncate original one.G ($@gcy$cm:softlk orig_filename new_loc_filename filnum filseq filrvn( where last 3 are the 3 parts of FID)0gcy$cm:filrst.com - restore file saved somewhereD ($@gcy$cm:filrst dbname zfid1 zfid2 size_in_blocks orig_filename); (orig_filename is filename passed in file marking w/dvc)( (dbname is $$.gdb or' $$.gdb)@gcy$cm:fildel.com - delete a file (copy nominally, command file)' ($@gcy$cm:fildel dbname zfid1 zfid2)' (dbnam is $$.gdb or& $$.gdb)1jtd$db:op.gdb - ISAM disk database for eacfF$jtd$cm:makspc dbnam neededspace - Get "neededspace" new free blks on 8 disk. dbnam is delimited db name $alloclass$dvcunit: or: node$dvcunit: (might be in filename form) and neededspace: is in decimal. Should figure out desired files to move to? nearline storage and move enough to make desired space. Called5 when space is lacking for create, extend, or inswap. Logicals:9GCY$DELINC - File strings that may be saved from deletionEGCY$DELEXC - File strings that should be deleted anyway (e.g. *.OBJ*)@GCY$DELSAV - master control for delete protection, if "Y" do it.DGCY$DELMNT - if equal to "OK" then delete EACF database entries when9 a delete is to be let thru EACF (even if DEC protection3 will disallow the delete). Otherwise leave alone.BGCY$SPWN1 - If it translates to Y (or 1st char is Y) then deletion6 by spawn will use lib$spawn every time and therefore4 not leave any extra processes around. Otherwise it9 will create a "kept" subprocess which will get commands5 via mailbox to issue deletes etc. from. (This will 7 greatly speed up such processing, but does require an extra process per daemon.)JGCY$SPWN2 - If it translates to a Y (or 1st char is a Y) then file inswap : will be done via a spawned subprocess using lib$spawn to4 get a new one for every inswap. Otherwise a "kept"2 subprocess will be started and it will be passed= commands via mailbox after the first inswap. This is faster9 than spawning every time, but may be wasteful if inswap< is comparatively rare. Note that if the translation of the7 logical is at any time other than Y,@ SAFETY013.A!  [EVERHART.JTDEMO]JTEACF.DOC;39BJ_AXP6;106=- the kept process; will be started. The process will remain until the daemon exits.>Note JTexempt.exe will, when run, exempt its process from EACF=controls on a particular disk. It takes a JT device unit nameBas its argument. However, the facility of "exempt" image pathnamesE(as supported in jt_setup.com & jtdmn.exe) seems more promising. This?allows any images (up to 32 of them) to be declared exempt fromFEACF mods. One would use this for things like defraggers and the like.ENote that ACCESS to these exempt images can still be controlled; they;are exempt from access controls only once they get started.*[EVERHART.JTDEMO]JTEACF.SPD;2+,$ ./ 4JB- 0123KPWO56կ,7@ACL89GHJ"Software Product Descriptin'Extended Access Control Facility (EACF)Executive Summary:IManaging access to data critical to your business using ACL facilities inDnative VMS can be cumbersome and still is vulnerable to intruders or+people acting in excess of their authority.JWant to be sure your critical records can't be accessed save at authorizedEplaces, times, and with the programs that are supposed to access them(instead of, say, COPY.EXE)?BWant to have protection against privileged users bypasssing access controls?5Want to be able to password protect individual files?BWant to be able to invisibly hide selected files from unauthorized intruders?HEACF builds in facilities permitting all of these, and is not vulnerableCto intruders who disable the AUDIT facility as all other commercial-packages which purport to monitor access are. Description:HWhen your business depends on critical files, or when you are obliged byFlaw or contract to maintain confidentiality of data on your system, inDmost cases the options provided by VMS for securing this data can be&cumbersome and far too coarse-grained.GThe problem is that certain kinds of access to data are often needed byCpeople in a shop, but other access should be prevented and audited.DMoreover, the wide system access that can come as a result of havingIsystem privileges often does not mean that it should be used to browse orIdisclose data stored on the system. A system manager will in general not,Gfor example, have any valid reason to browse the customer contact file,Ithe payroll database, or a contract negotiation file, save in a few casesIwhere these files need to be repaired or reloaded from backups. Likewise,Ga payroll clerk may need read and write access to the payroll file, butInot in general with the COPY utility, nor from a modem, nor in most casesJat 4AM. Finally, a person who must have privileges to design a driver andFtest it should ordinarily not have the run of the file system as well.IGiven examples like these, it is easy to see that simple authorization ofIuser access to files is inadequate. While it is possible to build systemsBthat grant identifiers to attempt some extra control, these can beAcircumvented by privilege, and create very long ACLs which becomeAimpossible to administer over a long period as users come and go.GWhat is needed is a mechanism that is secure, cannot be circumvented byIturning on privileges, and which provides a simple to administer and fineIgrained control that lets you specify who can get at your critical files,Hwith what images, when, from where, and with what privileges. It is alsoHdesirable to be able to control what privileges the images ever see, andIto be able to check critical command files or images for tampering beforeHuse, so that they cannot be used as back doors to your system. It shouldHbe possible to demand extra authentication for particular files as well,Hand to prevent a malicious user from even seeing a particularly critical'file unless he can be permitted access.IEACF is a VMS add-in security package which provides abilities to controlJsecurity problems due to intruders, to damage or loss by system "insiders"J(users exceeding their authority), and to covert code (worms and viruses).AIt provides a much easier management interface to handle securityIpermissions than bare VMS and provides facilities permitting control overIeven privileged file accesses, for cases where there are privileged usersGwhose access should be limited. Unlike systems which only intercept theJAUDIT output, EACF can and does protect against ANY file accesses, and canIprotect files against deletion by unauthorized people or programs in realtime as well as against access.'EACF offers the following capabilities:H* Files can be password protected individually. If a file open or deleteJis attempted for such a file and no password has been entered, the open or delete fails.H* Access can be controlled by time of day. Added EACF protections can beGin place only some of the time, access can be denied some times of day,Jwrite accesses can be denied at certain times, or various other modalitiesof access can be allowed.F* You can control WHO may access a file, WHERE they may be (or may notHbe), WITH WHAT IMAGES they may or may not access the file, and WITH WHATIPRIVILEGES the file may be accessed. Thus, for instance, it is trivial toGallow a clerk access to the payroll file with the payroll programs, butBnot with COPY or BACKUP, not on dialup lines, and not if they haveGunexpected privileges. The privilege checks are helpful where there areHconsultants working on a system who should be denied access to sensitiveGcorporate information but who need privileges to develop programs. WithIthis system you can be sure your proprietary plans or data stay in house,Jand are available only to those with business reasons to need them, not toIeveryone needing system privileges for unrelated reasons. Unlike packagesJusing the VMS Audit facility's output (which can be silently turned off byEpublic domain code), EACF cannot be circumvented by well known means.H* You can hide files from unauthorized access. If someone not authorizedGto access a file tries to open it, they can be set to open instead someGother file anywhere on the system. Meanwhile, EACF generates alarms andHcan execute site specific commands to react to the illegal access beforeBit can happen. This can be helpful in gathering evidence of what aIsaboteur is up to without exposing real sensitive files to danger. Normal"access goes through transparently.G* You can arrange that opening a file grants identifiers to the processCthat opens it and that closing it revokes these identifiers. Set anBinterpretive file to do this and set it to be openable only by theHinterpreter and you have a protected subsystem capability that works forA4GLs which are interpretive. (EACF identifier granting, privilegeJmodification, and base priority alteration is protected by a cryptographic1authenticator preventing forging or duplication.)J* You can actively prevent covert code (viruses and worms) from running inHtwo ways. First, EACF can attach a cryptographic checksum to a file suchJthat the file will not open if it has been tampered with. Second, EACF canHattach a privilege mask to a file which will replace all privilege masks@for the process that opens it. By setting such a mask to minimalHprivileges, you can ensure that an untrusted image will never see a veryJprivileged environment, and thus will be unable to perform privilege-basedIintrusions into your system even if run from a privileged user's account.B* You can control base priority by image. Thus, a particularly CPUJintensive image can be made to run at lower than normal base priority evenif it is run interactively.HEACF allows you to exempt certain images (e.g., disk defragmenters) fromCaccess checks, and it is possible to put a process into a temporaryIoverride mode also where this is needed. EACF facilities are controllableGper disk, and impose generally negligible overhead. EACF will work withEany VMS file structure using the normal driver interfaces. Also, EACFGmarking information resides sufficiently in kernel space that it cannotJbe removed from lower access modes, yet it uses a limited amount of memoryregardless of volume size.GBest of all, the EACF protection is provided within the file system andFdoes not depend on the audit facility. Thus it prevents file access orIloss BEFORE it happens, and does not have to react to it afterwards. EACFHallows all of its security provisions to be managed together in a simpleIscreen-oriented display in which files, or groups of files, can be tagged9with the desired security profiles or edited as desired. Supported systems:IEACF runs on VAX based VMS systems running VMS 5.5 or later, or AXP based%VMS systems running VMS 6.1 or later.EACF is brought to you byGeneral Cybernetic Engineering18 Colburn LanetHollis, NH 03049 603 465 9517Everhart@Arisia.GCE.Comi*[EVERHART.JTDEMO]JTED.OBJ;7+,) . / 4 - 0123 KPWO56 V7~w89GHJ1JTEDV00115-SEP-1996 16:11 VAX MACRO V5.4-3 MACRO JTED&; enable/disable JTdriver intercepts JTED@ CTL$GL_PCB SCH$IOLOCKW SCH$IOUNLOCK SYS$CMKRNL . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ADVDD_DATA PQ ADVDD_CODEP EXEMPT&3H SYS$CMKRNLP !UNEXEMPT&;H SYS$CMKRNLP HBLATUCB&m CTL$GL_PCBT SCH$IOLOCKW CTL$GL_PCBTʏ(P1 ȏ(PP SCH$IOUNLOCKP;HBLATUCB EXEMPT!UNEXEMPT2 ADVDD_DATA ADVDD_CODE*[EVERHART.JTDEMO]JTED.OBJ_A;9+,, . / 4  - 0123KPWO56U7ཀྵU89GHJ @@JTEDV00120-AUG-1996 19:10AMAC V3.0-19x x . ABS . . BLANK . $ABS$ ADVDD_DATA| ADVDD_CODE$LINKAGE SYS$CMKRNL CTL$GL_PCB SCH$IOLOCKW SCH$IOUNLOCK(JEXEMPT0JPUNEXEMPT(JppBLATUCBP P==   =|#~^^~ (0޴8@H>P^X~` GhG(M@M?"0 ?#Hm@ZkGG^~ (0ޤ8@H>P^X~`hp#kG#~^^~ (0޴8@H>P^X~` GhGMM?" ?#G_Fr0`Crm@ZkGG^~ (0ޤ8@H>P^X~`hp#k#~^ ^(~08@޴HPX>`^h~p GxG 0M8mG@ZkM mZ#:G &"F /@M Hm@Zk G ^(~08@ޤHPX>`^h~px#kGD'# \GD4HGh SYS$CMKRNL4\m# SYS$CMKRNL4d@h SYS$CMKRNL4G, SYS$CMKRNL4 m#P SYS$CMKRNL4(@, SYS$CMKRNL4G SCH$IOLOCKW4m#p SCH$IOLOCKW4@ SCH$IOLOCKW4G SCH$IOUNLOCK4m#p SCH$IOUNLOCK4@ SCH$IOUNLOCK =0 ;=p/ =;p;@  SYS$CMKRNL"=0;=p/ =0p;=/ 7 CTL$GL_PCB  SCH$IOLOCKW  SCH$IOUNLOCK  *[EVERHART.JTDEMO]JTED.OBJ_AXP6;6+,- . / 4 - 0123KPWO5637@489GHJ@@JTEDV001 5-OCT-1996 10:52AMAC V2.1-13x x$LINKAGEX ADVDD_CODE ADVDD_DATA $ABS$ . BLANK . . ABS . SYS$CMKRNL CTL$GL_PCB SCH$IOLOCKW SCH$IOUNLOCK(JEXEMPT0JXUNEXEMPT(Jx`BLATUCB =0 ;=p/ =;x;@  SYS$CMKRNL"=X=0;=p/ =0`;= / 7 CTL$GL_PCB=  SCH$IOUNLOCK  SCH$IOLOCKW =`X>C~^^~ (0޴8@H>P^X~` GhG(M@MGTG0 Hm@ZkG^~ (0ޤ8@H>P^X~`hCkGG>C~^^~ (0޴8@H>P^X~` GhGMM0CGrTG m@ZkG^~ (0ޤ8@H>P^X~`hCk>C~^ ^(~08@޴HPX>`^h~px GG(HMPm@ZkM(m: &F4G/8M4G@m@Zk4GG ^(~08@ޤHPX>`^h~px@ SAFETY013.A-   [EVERHART.JTDEMO]JTED.OBJ_AXP6;6_AXP6;10 Ck/D'4G\GD4HGh SYS$CMKRNL4\m# SYS$CMKRNL4d@h SYS$CMKRNL4G  SYS$CMKRNL4m#X SYS$CMKRNL4@  SYS$CMKRNL4G SCH$IOLOCKW4m#x SCH$IOLOCKW4@ SCH$IOLOCKW4G SCH$IOUNLOCK4m#x SCH$IOUNLOCK4@ SCH$IOUNLOCKP P==   *[EVERHART.JTDEMO]JTED.OBJ_VAX5;6+,. . / 4 - 0123 KPWO56Q7@5 89GHJ1JTEDV00117-NOV-1996 13:23 VAX MACRO V5.4-3 MACRO JTED&; enable/disable JTdriver intercepts JTED@ CTL$GL_PCB SCH$IOLOCKW SCH$IOUNLOCK SYS$CMKRNL . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ADVDD_DATA PQ ADVDD_CODEP EXEMPT&3H SYS$CMKRNLP !UNEXEMPT&;H SYS$CMKRNLP HBLATUCB&m CTL$GL_PCBT SCH$IOLOCKW CTL$GL_PCBTʏ(P1 ȏ(PP SCH$IOUNLOCKP;HBLATUCB EXEMPT!UNEXEMPT2 ADVDD_DATA ADVDD_CODE!*[EVERHART.JTDEMO]JTED.OBJ_VAX62;4+,. / 4 - 0123KPWO56=7}=89GHJ1JTEDV001 4-FEB-1997 12:18 VAX MACRO V5.4-3 MACRO JTED&; enable/disable JTdriver intercepts JTED@ CTL$GL_PCB SCH$IOLOCKW SCH$IOUNLOCK SYS$CMKRNL . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ADVDD_DATA PQ ADVDD_CODEP EXEMPT&3H SYS$CMKRNLP !UNEXEMPT&;H SYS$CMKRNLP HBLATUCB&m CTL$GL_PCBT SCH$IOLOCKW CTL$GL_PCBTʏ(P1 ȏ(PP SCH$IOUNLOCKP;HBLATUCB EXEMPT!UNEXEMPT2 ADVDD_DATA ADVDD_CODE!*[EVERHART.JTDEMO]JTEMITLOG.OBJ;13+,4 . / 4  - 0123 KPWO56`k7JŪ89GHJ4 JTEMITLOG0115-Sep-1996 16:22DEC Fortran V6.1-68 JTEMITLOGIP%EACF - EACF Disable by tty:) image:) username:) accpor:) JTEMITLOGQ @xPp  (@L$`DHLPxLPp[ ː,˒˔Rޢ ˘˜˞$ˠ$ˤ ˨˪(ˬH˰@˴-˶L˸Œ˼kޫ0 SYS$GETJPIWPIVLENPH\IVLENP hIVLENP$tIVLENPŒ FOR$WRITE_IFﰢ ˀb˄ˀ FOR$IO_T_DS$ˈ$ˌˈ FOR$IO_T_DSHː(˔ː FOR$IO_T_DSŒ˘L˜˘ FOR$IO_T_DS FOR$IO_ENDˠIVLENPˬ˰˴OPRMSG  JTEMITLOG SYS$GETJPIWIVLENOPRMSG$CODET$PDATA,$LOCALKIUICJPIJUNK FOR$IO_END FOR$IO_T_DS FOR$WRITE_IF@4Z0IVLEN0115-Sep-1996 16:22DEC Fortran V6.1-68 IVLEN IVLENYPP[}PQPмRPRRQPQSSTDTT RPSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C#*[EVERHART.JTDEMO]JTEMITLOG.OBJ_A;15+,5 . / 4 - 0123KPWO 56 ';7`N;89GHJBB JTEMITLOG 11-SEP-1996 20:42Digital Fortran 77 T7.0-1 $DATA$$BSS$`$IODATA$i$CODE$$LINK$KIUICJPIJUNK0JH JTEMITLOG SYS$GETJPIW(JIVLENOPRMSG DFOR$WRITE_INT_FMT DFOR$HANDLER DFOR$WRITE_INT_FMT_XMIT =h`6%EACF - EACF Disable by tty:H image:H username:H accpor:H7 =#~X^`^hcG#GG0"vJ`HF, 0"QAJ`SH@FQ 0" "0"_"0 &Hr@J2D  008J`H F0$ 0"B$R"0PG0 v Hq J1D  0PAJ`SH@FP( 0""H1"0 0G0 &Hr@J2D - 0 08J`H F 0L 0"(BR"0,PG00 v Hq J1D0  00PAJ`SH@F0P 0"40"1"080G08 &Hr@J2D8  0808J`H F800 0"@0BR"0DP0"H0L0"P4GGG0b0"GGHBPb@Zk0"D""& "8b(s"C<}8"TG8b@"H""& "8bs"C<}8"TG8b~@" @""&"8b$s"C<}8"TG8bp@"$""&@"8bLs"C<}8"TG8bb@"xB""" 1bs"0X"@8P}H="?&1"8}"GXB`b@Zk""$"$! @=8"8]"tGBb@Zk""H"(! @=8"8]"tGBb@Zk"""L! @=8"8]"tGBb@Zk@""$ 80X"C<8"TG8b@0"00"X1"0vJ_&F8C<=8"4GhBpb@ZkcGX]`]hp#kGGGGr.rJ/@`JR4GݦX6X B!X @0@=\ݦ\֢\75B6BWBB.JB X0@=XݦX֢ Bð\GGGGk.W JF4xG SYS$GETJPIW4|b#H SYS$GETJPIW4@ SYS$GETJPIW<GDFOR$WRITE_INT_FMT<b#HDFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT<GDFOR$WRITE_INT_FMT_XMIT<b#HDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<G(DFOR$WRITE_INT_FMT_XMIT< b#HDFOR$WRITE_INT_FMT_XMIT<$@(DFOR$WRITE_INT_FMT_XMIT<PG\DFOR$WRITE_INT_FMT_XMIT<Tb#HDFOR$WRITE_INT_FMT_XMIT<X@\DFOR$WRITE_INT_FMT_XMIT,GOPRMSG,b#HOPRMSG,@OPRMSG ;=@=8 ;=80(DFOR$WRITE_INT_FMT_XMIT;=0X;=p 7 DFOR$HANDLER=(;;= SYS$GETJPIW DFOR$WRITE_INT_FMTOPRMSG=88= 0;=J J=:21 JTEMITLOGDigital Fortran 77 T7.0-1 = 4H4= JTEMITLOG4=RJIo  $ $= ,4: := 4=  = 44= IVLEN4=0(' 0   $ $= 4: := 4=  =  %*[EVERHART.JTDEMO]JTEMITLOG.OBJ_AXP6;5+,6 . / 4 - 0123KPWO 569\z7 Y\z89GHJBB JTEMITLOG 12-SEP-1996 21:15DEC Fortran V6.2-508 $DATA$$BSS$`$IODATA$i$CODE$$LINK$KIUICJPIJUNK0JH JTEMITLOG SYS$GETJPIW(JIVLENOPRMSG DFOR$WRITE_INT_FMT DFOR$HANDLER DFOR$WRITE_INT_FMT_XMIT =h`6%EACF - EACF Disable by tty:H image:H username:H accpor:H7 =#~X^`^hcG#GG0"0J`HF, 0"Q2v^J`SH@FQ0" "0"_"0 !9Hr@J2D  001'J`H F0$ 0"B$R"0PG0 !?Hq J1D  0P2v^J`SH@FP( 0""H1"0 0G0 !9Hr@J2D - 0 01'J`H F 0L 0"(BR"0,PG00 !?Hq J1D0  00P2v^J`SH@F0P0"40"1"080G08 !9Hr@J2D8  0801'J`H F800 0"@0BR"0DP0"H0L0"P4GGG0b0"GGHBPb@Zk0"D""& "8b(s"<}8"TG8b@"H""& "8b<}8"TG8b}@" @""&"8b$s"<}8"TG8bp@"$""&@"8bLs"<}8"TG8bc@"xB""" 1b1!J0X"@8P}H="?&1"8}"GXB`b@Zk""$"$! H@=8"8]"tGBb@Zk""H"(! H@=8"8]"tGBb@Zk"""L! H@=8"8]"tGBb@Zk@""$ 80X"<8"TG8b@0"0?&0vJB80bXs"<}8"4GhBpb@ZkcGX]`]hp#kGGGGr.rJ*@R4GݦXX B!X  B0@ݦ\\01BPB,H@ ݦX֢0BXв=X1 4B?GGGk\GGk.V JF4lGx SYS$GETJPIW4pb#H SYS$GETJPIW4t@x SYS$GETJPIW<GDFOR$WRITE_INT_FMT<b#HDFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT<GDFOR$WRITE_INT_FMT_XMIT<b#HDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT_XMIT<b#HDFOR$WRITE_INT_FMT_XMIT< @DFOR$WRITE_INT_FMT_XMIT<<GHDFOR$WRITE_INT_FMT_XMIT<@b#HDFOR$WRITE_INT_FMT_XMIT<D@HDFOR$WRITE_INT_FMT_XMIT,GOPRMSG,b#HOPRMSG,@OPRMSG ;=@=8 ;=80(DFOR$WRITE_INT_FMT_XMIT;=0X;=p 7 DFOR$HANDLER=(;;= SYS$GETJPIW DFOR$WRITE_INT_FMTOPRMSG=88= 0;=E E=5-, JTEMITLOGDEC Fortran V6.2-508 = 4H4= JTEMITLOG4=YQPf   $ $= (4: := 4=  = 44= IVLEN4=3+*    $ $= 4: := 4=  =  %*[EVERHART.JTDEMO]JTEMITLOG.OBJ_VAX5;7+,9 . / 4 - 0123 KPWO567M-89GHJ`@ SAFETY013.A9  %[EVERHART.JTDEMO]JTEMITLOG.OBJ_VAX5;7;10 4 JTEMITLOG0117-Nov-1996 13:4117-Nov-1996 13:41VAX FORTRAN V5.9-173 JTEMITLOGYP @%EACF - EACF Disable by tty:) image:) username:) accpor:) JTEMITLOGtPl  (@L$\| tPl[ ˔,˖\l˘ެ ˜ˠˢ$ˤ$˨ ˬˮ(˰H˴@˸-˺L˼̌kޫ0 SYS$GETJPIWPIVLENPH\IVLENP hIVLENP$tIVLENP̌ FOR$WRITE_IFﰬ ˀl˄ˀ FOR$IO_T_DS$ˈ$ˌˈ FOR$IO_T_DSHː(˔ː FOR$IO_T_DŠ˘L˜˘ FOR$IO_T_DS FOR$IO_ENDˠIVLENPˬ˰˴OPRMSG  JTEMITLOG SYS$GETJPIWIVLENOPRMSG$CODER$PDATA($LOCALKIUICJPIJUNK FOR$IO_END FOR$IO_T_DS FOR$WRITE_IF@4Y0IVLEN0117-Nov-1996 13:4117-Nov-1996 13:41VAX FORTRAN V5.9-173 IVLEN IVLEN]PP[}PQPмPQռRQRSSTDTT PQSPPD IVLENG$CODE$PDATA$LOCAL P#9P?P# G&*[EVERHART.JTDEMO]JTEMITLOG.OBJ_VAX62;2+,< . / 4 - 0123KPWO56皇7 }89GHJ4 JTEMITLOG0116-Sep-1996 10:39Digital Fortran V6.4-165 JTEMITLOGIP%EACF - EACF Disable by tty:) image:) username:) accpor:) JTEMITLOGQ @xPp  (@L$`DHLPxLPp[ ː,˒˔Rޢ ˘˜˞$ˠ$ˤ ˨˪(ˬH˰@˴-˶L˸Œ˼kޫ0 SYS$GETJPIWPIVLENPH\IVLENP hIVLENP$tIVLENPŒ FOR$WRITE_IFﰢ ˀb˄ˀ FOR$IO_T_DS$ˈ$ˌˈ FOR$IO_T_DSHː(˔ː FOR$IO_T_DSŒ˘L˜˘ FOR$IO_T_DS FOR$IO_ENDˠIVLENPˬ˰˴OPRMSG  JTEMITLOG SYS$GETJPIWIVLENOPRMSG$CODET$PDATA,$LOCALKIUICJPIJUNK FOR$IO_END FOR$IO_T_DS FOR$WRITE_IF@4h0IVLEN0116-Sep-1996 10:39Digital Fortran V6.4-165 IVLEN IVLENYPP[}PQPмPQPPRQRSSTDTT PQSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C)*[EVERHART.JTDEMO]JTENTER_PASSWORDS.COM;23+,= . / 4Y - 0123 KPWO56@pu70-89GHJ $set noverify'$! Copyright (c) 1994 Glenn C. Everhart$! All Rights Reserved$dolog:==$gcy$sys:jtdolog$filenam = " "!$if p1 .nes. "" then filenam = p1 $passwd=" " $if p2 .nes. "" then passwd = p2$if p1 .eqs. ""$ then5$ read/prompt="File:"/end=goaway sys$command filenam$ endif$if p2 .eqs. ""$ then8$ read/prompt="Password:"/end=goaway sys$command passwd$ endif$ realfn = f$search(filenam)$ if realfn .eqs. "" $ then*$ write sys$output "%EACF-F-No such file"$ exit$ endifY$ if f$search("sys$scratch:eac$f$sc.dat") .nes. "" then delete sys$scratch:eac$f$sc.dat;*K$ directory/file/nohead/notrail/brief/out=sys$scratch:eac$f$sc.dat 'realfn' $ flisc=" ")$ open/read flid sys$scratch:eac$f$sc.dat$lffi:$ read/end=goaway flid flisc<$ if f$locate("(",flisc) .ge. f$length(flisc) then goto lffi$ fpn=f$locate("(",flisc).$ filid=f$extract(fpn-1,f$length(flisc),flisc)K$! Can't use lexical because that opens the file, which isn't allowed until$! a password is entered.($! filid=f$file_attributes(realfn,"FID")$ dolog 'filid' 'passwd'Y$ if f$search("sys$scratch:eac$f$sc.dat") .nes. "" then delete sys$scratch:eac$f$sc.dat;*$goaway: $set noverify$exit*[EVERHART.JTDEMO]JTEXEDEL.CLD;9+,> . / 4M - 0123 KPWO56`D:F27bĘ89GHJ%! Set up JT open/extend/delete daemonDEFINE VERB JTEXEDEL IMAGE gcy$sys:jtexedelG parameter p1,prompt="JTn:",value(required,type=$device),label=UNIT> parameter p2,label=FNAM,prompt="file",value(type=$infile) qualifier NORMAL5!sets or resets "exempt from undelete" process statusM!should need only p1 arg and /normal if resetting exempt status to NOT exempt*[EVERHART.JTDEMO]JTEXEDEL.EXE;5+,A .$/ 4$- 0123 KPWO56Fׇ7 _E89GHJ"0D`0205ՇxhJTEXEDELV001_Շ05-13QQQ ? H M[  ?hd84SYS$DISK(<( <dl(( 4(@( @hpUNITFNAMNORMAL NLA0:  @ ,GCEV0:d#Е ЕЖ<`^,n䐏Pݬ^|VX^,n䐏Qeݬf^PRݬl$լ ݬf  RP|VD^,nȐSȞ؞SܕlլݬfЬ̑lլ  lլ,n䞭l լ Ь l լЬlլ ݬf^<`^,n䐏T9l լЬ^<`^,n䐏Uhݬb^dtJtGtDt AtЏ:tiPtTgRgiP1|~ii/gPP1f|~f(n2V'РTVTQV4ɏ@VdPV(TQK(`PPR1nDSP@PРTVV4@ SAFETY013.AA  [EVERHART.JTDEMO]JTEXEDEL.EXE;5J_AXP6;10$$zРQɏ@VdPV(T(mTV942P¢$VPVPSlЬ P`P1ePSмT4L,m£(TˏdUUTP͏@dQȠQQdURT PPT$ЏPмUT 1m Uʣ U4TQUP3V4 QPVPUYYUVU0?Ss 1U9H}~PUHY ЏlPUHU U UPP\d`1ãHUPPL1x1PP@PP\d`1УHVPPѠU"X ѠU\d`X 1X PV51УHVУLQxQWCPP`FX 8`2РVUVU^`VV\d`VT 4UVURQX X QPQHQPPVQHԣLQL5T14+cSRRTT bRRS1NUTPP1A)%U P\d`14UP\d`14Wg1UTPT0,Vg3QQQdQQVTVUUddUddТ8QTQ0T8P1`1`QQPVQUUddPQРVРPPVg13PPPaPP10PPQРPPTI`aQVVT/a+VT3UVVP`'aUUag 3XXdXQT,UTVVP`)YЏdPUdTPVP`UUdРg 3`3U,U,ɢ P$P^`T ˏU1 P^`TU1~)P ^ЬV5Z5Ц WЦW4PѬWPP[[ЬWPˏPWxW4ήPXP XP48XXZ^hYm4 ^Y@PtZЮY<4YPЩQ @P*\`hQ$Ï@Q@PQ\`*Z,n@iZ* @P\ihPЮQ42 .fVPP"(!Q (W W\ih`PPVQWQ (QW0408045[\if]ifYPVP0ЏP< <43 i@u DiPЏ< <@4 0HL$(,@# DwP0ЏP< Џ04@D }PѠ  ѠTաЏd |~p< P^W(0al Џ\PlRRP#@gQaQQ@h1Q@1Q@RPծ<) ݧ$?P<QQQQ,QӮ,Qh0QӮ0Q]Ѯ,0Ю0,P ϮV<ծ: 6 ?ծ+Ѯ!ծ8Ю,8ЮQ~A ЮQQЏ4PQQ YЮ Y<QQQQ ծ@n^ݬ-PмVU QxQ(P,n ЮмVx Pî PRPP*8Q\`aR鐮0Ю , ծ4 44Ю XXX24XX34X4Ю0(0$,X4X5@ծ@ Ч(@@4DծD Ч,D4ϮKF Pʦ PPH3 ,PQQ1 8Q˦ QPPHQ PQPLЮHYYVPY6`(x $ծ(Ц 6x ( |~VPRæݬ϶BϏPX5(æPЏP|^Rl լмR` l@լ; ݬ|P<QQQQЮ S<QQQQ Sqn^ݬPUмV0 RHlRRPa@LPR @ QQ@LPSSVPS6`(æP|мVom505&ЏdPHT|PxPԦLxP,nPPΦTԦfVPPPàRRT43SРQSSRРà 4Ԡ,0QQ4Q8|| `PPVT~P^мϫmЮS5ЏdPZ<YΣX0 HXPYXcSRR4W3V48SKSBâUUXWТQVVUâ QxQ DPR bR\ cЮTRTЮQ4l|a8SRRR bRЮ Q*\ RSЮScSRRR bR DPHRS㟮< PPxPD< P X*YPϊϬ PP|PP|TмUidP0QQQ ]`dOPP֤PPUPUP0PQP0=0}PVQP0/PVQ0ЏlPTVfRRRVVTPUЏPQQPU:P˕qQP a;PaVQRxRRRSRfRURfyU RUfZSRR fSRUS R SS $R fR fRxRRRPRVQ1bRSfSRURSRf RUSSRUPXPRx RPPxS~RRf SnPQ19Џ PRTScQQQSST ѣ RУ RPR PRRRR ]`dQP^^QaPHP}P^QaЏPTмPмQQ¼֤ PЏlPЏdPTScRRRSST2QQ ãQRxRRQ RRQXPЏdP@ЬP QR РR((( / (/@ (Џ$P<`QPР QӏQP@ SAFETY013.AD  ![EVERHART.JTDEMO]JTEXEDEL.EXE_A;3AXP6;10h>1@ SAFETY013.AD  ![EVERHART.JTDEMO]JTEXEDEL.EXE_A;3AXP6;10o>PGCEV0:d#Г ГД0#G~G^G^GG"GW@tG="GPBFB b# G$]]"@tG`Bhb"0="]"ZkG]]#kG#G> @hGG~^G^G~GG8=G"%@ } G$]""D(4 @Pb#G,=GtG@tGB"b@="]"ZkTGGGb#G;@4G8}c `=?@G ]"Pb#="tG@} ]=#v`H"v@Hb@` .qHPJF>G]@r.tRHSrJtFr>G]G]} #k. HP JF>r. RHS rJtFr>#G> @hGG~^G^G~GGGG"@4G"D t @$=`G]_B Gpb#L]"H="GtGr@H C"4G@G"4G4GBGC4G7G G0"GG@G0 0=("4GB 4C"@4G/B]`8]c `4G/ ݢB G <="pb#@]"tG0@ӰB"bP="]"tGZkG]]}0#k #G> @hGGGG~^GGG"A@4GD @$ }B@ݲA"a0="]"tG~ZkG]#k0#G~G^G^GG"G@tG="G0`BFBb# G$]]"@tG@BHb"0="]"~ZkG]]#k>C~^^~ (0޴8@H>P^X~` GhG(-h4GTGXTG\q?#`Q"Gd1m#4Gw_(m0@T0CTGS"m#3""tG_( 4G0M8mJG~ZkG^~ (0ޤ8@H>P^X~`hCk(ͦGMGmG6""k~Zk( >C`MhmGG8>Ctx"ޢG J޶GG{@ZkC(mTGpM aCxmr~Zk(05@|MGmGGx"GZk( 4G0M8mJ~ZkõG>C~(^0^8~@HP޴X`h>p^x~ GG(m0Ml8m =}Zk =@MHmC}Zk`M>Chm }Zk CG(0^8~@HPޤX`h>p^x~Ck/CE?'p9#2YC@( TעĠe2@@峠2@@峤2@@峨%2@@4G/GÜŢĠGŰ4GGE@Ű4GGŰ4GGe4GŰGŰ4GG3AJ> 1!BrF3BJ /FrF3DJ;BrFG`QK`[K2F;F0>kG0.\KS[JQ;JG?3F0>kGFrF3DJ`qCp/[pKrFSPJ1$B{Fp?#F  F `P>;bCB`P>BG`P>B p/RQJ[qKrGp?kGP>P>P>1$B P>B??G! A?G a(0!Gk?Gü׀C ?G\C#ks\E.Ü"KGCL#kG00 0 00000Ü6"KGC#kG(( ( (((((Ü!KGC#kG a a a a a a a aÜv!KGCT#kGAA A AAAAAÜ!KGC#kG!! ! !!!!!Ü KGC#kG  ?G!k$ 4!B/2BF {/Bp.K [rKRpJ|G|K[tJ\KrG\F?0BkG[rKP.SpJ|G[K|KpKRTJGp>rGP>0Bk1PB4`;B `@F1B;`2.KB[pKS2J4BG\KFBGF`G2J2.B3aBAB`\2JABG2J2.B\2JTB Bs.2JG?[rJ/;F[tK\KG?Bk;B `2SBp/@F?\KBF[sK1B|G#F+ G FrAB4BB ABpBGrABB RpGpB[QJSqJ{Fp?Bk RpGB\QJSqJ|F?Bk r3&BBF!`r 0rBBB1"BpGr1$B@prHBGpB1$B rprpG1$Br?GrDBpBr#FppGprr.2JG4B\rJr/rJGB\rK 2.rKGCB\2JBWGBB F/!B*`@F1`r.4B\KrJr.\K[pKrJ4B|Fr.\K G[rJr.4B1!BrJ2ABF G;TB4C{/SrJ1!BrK\KsG[tKGkq/3aB2SB4B13B@F\K[pK4B|G4B1!B2ABFr4C1!B[tK\K|GkGGGG43BFF4aB#`/rB13B {/B.K [rKRJ|G|K[J\KrG\F?pBkG[rKP.UJ|G[K|KpKRTJG>rGP>pBk3PB4;B``@F3B;`r.KB[pKUrJ4BG\KFBGFGrJr.B5BAB\rJABGrJr.B\rJTB B.rJG?[J/{F[tK\KG?Bk;B``2UBp/@F\KBF[uK3B|GcF+`G`FrAB4BB ABpBGrABB`RGpB[SJUJFp?Bk`RGB\SJUJF?Bk r5fBBF! 0rBBB3bBG3dB@HBGB3dB` prpG3dBGrDBBcFpGpr.rJG4B\Jr/JGB\rK r.rKGCB\rJBWGBB`F/aB*@F1`.4B\KJ.\K[pKJ4BF.\K G[J.4B3aBJ2ABF G;TB4C{/UJ3aBrK\KuG[tKGks/5B2UB4B3uB@F\K[pK4B|G4B3aB2ABFr4C3aB[tK\K|Gk#G~^^ G!@A@ _ GaA"tG[@ZkGG]G] #kG#G~^^ G _ !@A@GaTG[@ZkGG]G] #kKGk{kPHH%%` D .J6xC 1@0 @ D @<aK|G6KF6KFBCF( @!@@J8C 1@0 @k D.J 1@0 @ D @C @!@@J 1@0 @k6J6J6J6J6J6J0@ @k@k@0 @k@P @k@p @k@ @kp@ @kP@ @kG`G|6aK@`K| @G}CG# ~|\R@KC\^C`C6`K`<C6`K`\C6`K`|C6`K`C6`K`C6`K`ܤC6`K`C6`K`C6`K`<C6`K`\C6`K`|C6`K`C6`K`C6`K`ܥC6`K`C6`K`C6`K`<C6`K`\C6`K`|C6`K`C6`K`C6`K`ܦC6`K`C6`K`C6`K`<C6`K`\C^6`K`\C^V`K`\C^v`K;dK}`dK`C6`K`<C6`K`\C6`K`|C6`K`C6`K`C6`K`܌C6`K`C6`K`C6`K`<C6`K`\C6`K`|C6`K`C6`K`C6`K`܍C6`K`C6`K`C6`K`<C6`K`\C6`K`|C6`K`C6`K`C6`K`܎C6`K`C6`K`C6`K`<C6`K`\C6`K`|C6`K`C6`K`C6`K`܏C6`Kc^~ ާk~CGGPHH" D .J6xC 1@0 @ D @ <aK|G6KF6KF6B @!@@J8C 1@0 @kBCF6J6J6J6J6J6J0@ @k@k@0 @k@P @k@p @k@ @kp@ @kP@ @k#~(^0^8~@HP޴X`hcGGG¤G=G Gb#p@xD ?$! vHGD #h!$' GB2B2Fbc}xG0Bx0D95C C\"C8kh Lg@GG=tGGb##_GHg @GP'G@ GG<5@ 2U@ @4G8`Fx`FFtG8`Fx`FFG8`Fx`FFTG8`Fx`FFHLǢ5@B$HH@5JF<CCFJBBGG<5@ 9U@  4G8@Gx@G_GtG8@Gx@G_GG8@Gx@G_GTG8@Gx@G_GyHg@]#"% G}#1`@#1`@#1`@bB}C#1`@##hD#bBC}aGbB}C!Z %D bBC}SD?O`#1`@BC{H`eG`DG]4GG0JZJ<@ ]ݢ@cB FHDHB|KGd@c 8KK=!%D G<5@3U@`4GtGGTG8 Gx G?G# }]G0J@cABJ FJTJB|KG7@c $@4 (((gAG@0FG ?GgDl`GG, @40EC0wJ@c4GBFF1HwJ01D1D04D @c4G!f@GG/G֢0e@0wJvGBF dBBE3eBK``F4G,#F@c1HwJ01D1D0 @c@EC0wJG @B(F4G@cF1HwJ01D1D04D @cڢ4GVCgDe@0wJGB @F\4G@cF1HwJ01D1D0 @c@ڢVCgD0bGGb#K@GeD@,'G@?&1" yB vx4#֢ղF@D$DGBGz@$:X4@&"UDD:QC@G:@Ǣ0e@0wJG6BDz(gBF@c4GF@1HwJ01D1D0o @4B4gA`@_&R"DDHײ(gAe@0wJ@cGBF4GF1HwJ01D1D0P @&"DA$$D1%B$4g`(A@@c0wJGBF4GF1HwJ01D1D00 @c@c}fe@f4GP@F@0g$3eJ'@gJ/Ah4@'BuB4GGc(]0]8}@HPݤX`hp#k!;ËêG#x G~(^0^8~@HP޴X`h>pcGGx G @R @2$å 9v K%G GT4EѠ#@Hc(e@$ ?$&@! F@F@@$y @FDaD@`<FGygD @C2C!C@ @.P8@* %D %GH"c=ABAF4GD 0%G#HAB9"C9 C G@B24 C9B @?|d G0`B @|dEGBE0E 5B@\@pk$ )@$G$@Gh#'C$PetGGH b#1_H%$8 @)B$!'@ d3aBdB@/GG<5@4GGTGH%LE9@:CI@(IIA9(KG<CCgG 'K]Q֝=l$A$N7#ט @Eץ׹2ᄍK tSߜ*@R>ֲQzpX%^{ǶxgL<tD"w6Ht{{EjۉM/Hz0kt㍓~v(I3œ)=,; jcmHzz{F%HY $&RKSmJrᑶUVcӽUr$İX] vB_'Ő]>LiX3&8ma0e1T>tf>3)qJ6I$&j# {1Yn,3x<2}~;/D\]T X+: R)ēaP@ϾyE5ċ(򤢁>\g~ y{BIT!6}V@^ 35/n`}m\ ̦t{Xǡq&!wV51'܊ )ˏUdw&a*ALTOG>nWY '@ۇ8%mgn~$ⅅJ_R''.)ɛoins*"g+lB u^/૝o xՓGb 9Rur7 <]ѰŀTϲ)Tcy}nb5VhV0RL6O`&ݴQT)8S4Xԙmc6yW<b+<_cdV,CE8%;@-"B GFMj^z\騀K/(!ۉ@4tIݳy'N>.#"P`^c!h Ln0>szMem_{ ](SuT0hy(Y;¼8ڀ$hUGfkw34Uv @kHܮ]7F^;_zRx&bE:μcc-p G8!Hm}5zR $뉓,_Hpo wxEO`y͘'7-20~:i>iec&IGc `d{;F,;nub:Eu}5@&017}7ď'mx%ԍo~J ?V(- ZLv%?^谤k44T9W.6O7:ߪLR&N_eXU_ wj.>YҧX,6 ':co 6 ~*JD^`שrk9!n.KczsGQ:T"`*3?HhoxcSbjذyLCt<*DZo Ek|$<eޠ'~Ɋ54p3=ieρQ 0gƞ:/.]ɺ~=(GճRܩ Cf@TU~,Ts fg[ ~QO c{3lm׮HڤKS+AЗq,J>ݥw 6u;Nv)}ZRg0vR~>pؿro]1CTJ`>OpFw.n#ӡ7nl(4%|Bu}s˯3`+荲f !x)Ѩ|&Eb ׌mMMj$:Lp܉E2fMkF9c\${3soݐq{/LV2((Vw %!P%7 lZu:CP ^y4T&z7]kh wg`>ȴgeJ޵ _>~Uv' |~ϞXkT+wT&2Eq7Vf^<mb0nod:G㍞h6̞FA*"m?f՘Dz/օ 駹mBl(C*УvڻH;E!VȽ5~HT7pLWYIQ>pߊcs NDUmڈ|$<7'q;->|L,/D?I%JB],MOGMrIKPV^qie`xb^ J>aT0謀pbؾe71'ӀbgF}fv%`eR9|JxG]F4#vXR$0`ȒG ﬌a{{)|BQC2-g> M"t-oN ?20ڜA$֐aW^σ1]I}I%Ŗ W0QʆTq4Njt^= 7>jS*ad$dqͽBruI,N[w.H@HX:k_9vaF] ].< UF_"Db2ރUIj !:E%-UGu-:0;͍iEwZYҮ֚ jB"RqcЉuz*Tہ癮xudlIF>UZ vV+Jesgn썣b8&}vw-<'Ef:r,Rky4~M$$~Z7 9b̧]z/`ĝ|*%/n0+94/b$@kJmȷ@g}[W = O;T( H2=w=cRl.E 5ETV wΒkX-AsˇcD:^qF$ 3G PȏÌ Fȉ b5m47T4+R1`-X_GU:"C!߶)ؓ8Dғ h*.ZYLQ¤]8`w cdLSXFݍM`^#>]'.[ETh[bgpTX;Xy,|W Wua! Rd"D|+wцKlTxaU^ϵש-4`t^.AMdE|#knsl,m]D!p8  b)awsyޥQc[ʲn v͑ &IBȐ__3 :;MU $Tt g8dBṁXqP5 < ,D~I/h!p>0T08֍)Z4wyj+ 1gL*DHl#^@P7xp((3FQFكu"-~R38cU>SvqTUA3$Zrʉ-xsB*&B[Fnr3YN1*[Kәےt7nbM;q~XsӑRmFwGx,DYMdv.u' :&*CMdnmмڈҘIcPDiԑS3%uZ#ce&:X49L~ß<\~a׵\hˋ%+?&F ޡZ\v0wDbChn¨4A =9'egK*\}21Fc"&n7bJc\L MvdZҥ [\ F(]@lR>  ¡w @st}oM۩AAcڙIp}RZf>moeǃn^H یHYIӡ~]( v1QSEaDlDŽ:UúOPMA͕!kLBB9Y^wiK1\ U4+ᶂ!=''hjNuN1hSoy?y(Z…l%ZN O J,`ϤiqynehD1j\PZe5a]6t5A>@f\qu?63De]v,o}wbSxHp<}ǹ _i G{WsbGP.Jhضr>*5Hu5ҍ"k?%Hͬ-S $D}~ii9jQI'SʥN[dJD3u\V.g' x 9kJlԱa8S/48BrSwTB(N2n)ry~QSi%'^u ּ"Nq~)z0Pp -;AbB[Me^տn{)BATY,4ى|z9$Μ`5{Eń\Z+x]M1Nqp)n7\Ɗt*?d?Ty4!Tpj(@Gnmaйv ¿{} j.[*BXNxmv] LˬA)~.V oW&\L>%N˱׹%.mv o TѸo}.@k73ԙb!G g^mn,CSF$@OEmN8a@D̀-|!y9 Gv(+q|5ىshЌC6 j1rmy}iЉ.C9Ei, ̿++a= I|W@#4G ֢FuCТԩNͣ➶@z :hKє|ֺbq2&Q{%tNc/70c_IWMՠI%v0 mJQ ګi&8?* +3piYt[vjpíXMg\-wS!<&44ڿϓL/|@&f!:ߪ: (p_[9YZe͐=4,ןDFعև[rSC0x{(3țGḳ tVMr<&m)3lk"2# { Q1IT~{)S!l0":ejgy/}}5NUrzye5`=L `_}{+TG["?.[gnP+7'ctR6c -$,>YN\}-r4,zvAq٣)`Ĭa|^=1&Zǃ[ZX<6چ/iׁ"2#v2cIdjr-Zjf%M8Y͹ilO4 f8%4 \`L3< ;'~S/ᎂw1SG> `2B=I~08-1 #ߎ6xδQX* 寶8H|Q-Wmh VĜSHD"Y/uKy0buQR$aŸ"X l*ra?FmnOy$`r?vz2+^noN7=9o2UE0# Lxv1@#MPr}5ȬWMMP鰅3>fi"ZWѕ<L9{YPER:Ș<;}j n"PJwD'-qDȍ 7g:EuA P[uag5,#9,JR.Qz&|_*i>E{K#\/#Ĵ7Vf00;Ugʔ59SxYg߃J~CvMnZ] ie Cv\ v፡ڲU6] s[Z@ $3f q[k]=|ZQŷG+. fLz^Zx p.NS_;w  ;oz֮$JUk89P]imIqk&еZQg$$IzBx^PW55`p4 g]iU[-R_{(Yr™,~ ,!06E/a#2(Wa M W: ىhyg*3X[@9{hd^LV+ggwJ45D8'RZf$P2DϨ=S+QTY"68'F"lLt_h߃fKqc|nfODR)1#A]Dydf@0nEx5E:SwrN{U>ff]\Cf %N")g;Bwn 0irVWƩ)HxC"OԝbVlQv)6XW B% /{D٤)d5C}q_yv"e܎40|q-Mp lyfgWTi͏et *&A\8VN^j0eInnXWN`tDM1QBf @v7i1s#.'ٚA񚒪"qE |܏5pv4tLҍICMpXK>r#3BRYlSٍИiS531?vxS,;]~VZIYkjt!w4ʇ =^MU@ᮀ0D~9ٓ-Nwʈ0x3IbA@`HK Ulށx=8TTϫ;` v2hϽ>jm8@<~)+CJI"%v2}6rqTr#b+cOXY6)]N4LFQ ҅i^ jgii8\ZW^w?:ʇ [GBڵh4.,.msߣYn4(F} h=p!]+ ސu6XL^s<ĈO2)tNs;k g=,.&Ib+ _ <oHTrݗQpj3tdF0빱[efp"ZYc\1s'P7%DM>YsqE=w^VzHb(AJlXHQ0ȊV<=lb7'm(Tw-N9q3}iH+53g_e.SPzn/fK^k8L4'pQ{W蹓mx _K0 aT(y=`X_'sOK!@r)beG#dCvU'DyV>?:8>:>Q@td-GԾтb-sݶm+ڇxɺ$~Hg'XK,(uCeNj]EP1I|Od̒kBz (CMxϝ'17xăWd׎TDz&˚AHE+`my+MM?5r썿͐D"2ݤc qr Lػk\MV>V;Du~M^G!b{Kh^LZ A!EOQv:b2V^E Oo|# cD]:Ĥ娢NO[Cx2/AvoY}1|s,k% e#SUT8v|S..Ԯ'UT$'@YPnSŢ6J6i9˛d㢛ŰF@%PaYDA[L{ *HL6)ڡ[O3t%"-@]09Gm>;U2s66bTїo~cTj@˵ _kSN( ţ+g`<,-gaޙ~5=7`'@52#F&q\nhBɬiVp6StJX$Tѕn:Kl %RƝ'oM1O7rLvܺjYu-3k,sEQjvQbNVE`8L 0 b+Yvs+h}2`S&S"/ĞW B0솕?o*`StNȜߐ ʹ'-Gӭ}ۉbln'.v>\]cA&{9hw!ekݼ|:DS9Oky,qgF8e RJÆٶl兊]PT|hya4 kc7`:6U}\}Rw҇j)UgidQ1Qǃ'`\UC,MXc>\zj.iF7i4?ey4Ax{viXem7-P%Bݺ:<_ZbmvȈ(WuCdp*ABg6aɜ>29O*%HX'P$3c ;Ouۉo, .7wH.A;.Ps%Me>p&!?!Bo[Tfqvj꫶acxbxj:c1N f{TnՈp)<p5XOWGD_~]P?ϼPYI/o=g&׎yߎ޲վU%R !Lz'!*UUSmv<ѥO;T#bnYY%'2jaDidJH9$H):~lԛi%#5`ygmuK t"E:8^_isF˔=< v/?c6핵~%LSPt=kV,$hc J<*O#bzĜ4vO'.n [CS&X6c 0uvls69̣auڥEQC+SU*-jrCA=.4L1/w4|3EQ=4L]jEg'Y>@9Bdw:3$ʾA00}g[WHϒD1Cӡ"[!Mrcٸ#pD-55{u|{rEص+a^߀,rQFѻMb7B We+X#6 r]ccazs/drk[y"m[v"qi!zCd*Up?0Xlj2!1=S{"1XldI(<\7eU/4;V (j12ya9L/UJWqCʥEt@$t$"T|W<h 2Tvۄyxn%m1jeݍ%\7/vԳΠfǀiUm._<)]383p!*ESκ<(R.<&Uoy'.@Iu㊓v!ioJ#/KWվz^==FpX( pwNXvyA4X F?x25J˥Gՙ[{븫\S!E^fY7kC@vc$?S/ulU;n֏P_x.-؃9)H'#csگjH" POJ;A,ƤZn3+4?yAaJ Fғ`D՚e7u}V߁c ;B{WH,ĸ303, :lHw\'s':Ũ0-) b{?hOIm&K9 ڄ8,CZ6@j4p0/`Y[3?oHk}T x ^ P|خ|`k>gW?^xg SDlڂ'ڳy.ZL\Dh(o|#nC/,i~i/f߿-]|׺5͈X)N`{iҮ\յbY0qQ=Ʈ\ki1Շ(7C4(ܜtKn(YFWJ;V@9?NMGKYGTTΑuK1wam:sxۤ&yXkBQ2 q4*^E4 تaƆ-qR }fL6S#ͥk9M c(\[a_9RYE6@J}}#;?Ξ(Rt)}V1l̀bn^bma C0l/R/0LzKVJ^vc5z takN$Z^QR}$w~p0E+n<}&L`cт8㏫3 l_55yD+rF'o*8 ?T'qoj1] ށu@y5da(jrޤ}@O_d<]6 Rc]֑YOGOG﷋N-z( +ԌQ=U{'g}/w5yFls0B2ʿ-pC7dckHW 4`UQj}εε7ytHSdE Y>Ǽەq] U[RV O)+'v(2/â Ṛ SB &SmyElpf>QJe$ uPbrEw;f&N>-U²ۥ7yZ9Q#oR"8=,!YM\|-_+|"R`D:qr̰Qf؂'Sΰak\KV`"~׳*fH* [9]y2,Y&yft)* 5$nE?W%6\n=`9[y: ɈG;岋r80 kO+'s$%Z{L~~ N4K*قA* FdCl%y(/֥)1'8JW^p|%р|!4ba Y:bfPe>bb.GTq><9¥ՑМc'& XlF O| UwLs0Npzd.3겄ZziJ91F2&6 BErTO\=Q\!#7?$"*A+^TA=15"Xѡʕ"!^>HȲQ%m&% |{; {?,K bvA58Ncx{8-nnAV&rU>C9:ya @m>fl.br3 d*G ȭ$iqa ["׾Rكc5RG4BBf3.5< OY\U(_%NTEV[Ըpn2@Cd6G7ݗ!\- -NMfr"C MۻkX& DՕ72z  ޶y);+LP"Ǣ(S5/QڱDÏxlJBV}[osrx-%izH'sL_AZ KC(kBr0Rbx Ua,ZBXh"S%ȵ+gTмݜdbOn AZ̲F'}SR6'ZGѬ &ٱvG4j:h7~=IlMoRɕ T!o֚Ƽ};{nð4S{>J`74Soyʱ@!a {+9Mo灅,CM:' 3y5]i1=Q"Zse%*SodXdU@TVV4GHJ` @ SAFETY013.AD  ![EVERHART.JTDEMO]JTEXEDEL.EXE_A;3AXP6;10q>o۰4G @4F0%#H40ECKT, @,âc@ cFG<5@;U@`4GtGGTG &@&"7G4Ţ@c@\\d@<5@G8U@4GbtG`GGGTGGG0e@@c0wJGBF4GF1HwJ01D1D0r @c@BT0e@@c0wJGBF4GF1HwJ01D1D0] @cd@iBd>0e@@c0wJGBF4GF1HwJ01D1D0H @c䢠@B(0e@@c0wJGBF4GF1HwJ01D1D03 @c@B0e@@c0wJGBF4GF1HwJ01D1D0 @@c4GGc(]0]8}@HPݤX`h=p#këüRhÝÈÝòÐ#G~ ^(^0~8@H޴PX`>hGGG4$G!J m@@c0wJGBF4GF1HwJ01D1D04Dj @c 4$$D@aB pB 8DD"B`F!D7H=2 0J HJH @ ?1C=G@c0J@J F 1HA1HB|KG = @cd]3fJGfJ0J`@]@cJ Fc qJSqJB|KGc(`@c4D@HF@G⤠ GG G<5@1U@ 4G/tGGTG\`4DHF@4G/" G<5@3U@`4G/tGGTGG @dGG=="Gb#"TG`#_GG=? 4G)4$(F IG/2HB+@hBG&("F(ԲGGG<5@4GGTG)(A9(C ":! /GG<5@4GGTG(ɢJ0EGGGG_?'GG I(D"GG(="@dTG`#Gb#3_GG<5@4GGG|GTGGxG4$]"D@ ?`d@0`FGGF6(B0wJG1 BFXF4GF @c1HwJ01D1D04Dd @cGGUBFG A uf@հGG<5@4GGG8GTGG4GGIFB (Y&A&A?"4@G(YIɰ4 8i0)4Dɢ6Bɲ4vH GGG<5@4GGTG GG<5@4GGTG?GG ](]0}8@HݤPX`=hp#kúÕ# _"~^G^GG00P&G0["?F0 B00?&1"GFB&_&R"_$FBG G4TF44GG44"GF4&08G4G08(;P" P#'@!DA{#04?DP @044Gl GFBGG"0D2@"@? ز84ԢGF4Բ4AG4@D4A4ԢGGF4ԲG 04J0HزGLXG$8G(X@ ,8 @8GDX0F0B0GCGԢ?&FBԲG bG"4G44PDF4P4ԢF4Բ@"DB G]] #kG#~^GF" TG@0[04G8{GqZkG]  #kG #G> @h~h^Gp^Gx~8q @4G޴GG 8@h=G C8FF="h]"@BRBB B B h}"PBSB0B BY"@(Àp#G0"G G_G9Q CG W?@C @@0C @`1 @ 00 @ 9@_T}]"tG`G ="b#@G = }!v H3J0@0Fa HaF }G 5J DݢH=81B;1 CF;G B`D=0]G(}<5@B5U@B+ @h4G~G(^0^8~@HP޴XGGGG4q@( @ CG8FFh#/(]"AxBRrB!`B `B2 tB! 2(=#WxBYyB0`B `B?D"G@4GG?BG"4G/B GXb#="]"tG@GZ=}!v H3J0@0Fa HaF}G4vJBFBGGG" ]" tGb#K_HB$q@G;c4"GG0L#FB0=ruS J4v`JFHG[8CA?CB[ $CC0 C9"?GrSH4ef@G"4v`JF4,aJ@HD<ݢ$vHGG_?'9#4G8KC%G(]0]8}@HPݤX#k#~^^ ~(cGpGh#$ !v H D pG46JjG0#?D05 @B\B@k_Tci@G4G#Ghb#_VGPTG#P"U?BGGLP"BWBGGGG_8C`@0D/G ?GF/4#0B FC 0CCJ/BU`B;B@CS`0aCZ CY6 7B4cdF`V:ACVB,B4v8V $vBF?B4G00Z#8BcG]] }(0#kGp# ~8^@^H~PX`޴hpx>cGG" =0$ 1v J F `406!H `G0ZC~0^8^@ GHG =C(]A@ =(]q/y1H[qKyG q?RG08^@HCkQ/ 1HZ QKYGQ?/t@@KCC~0^8^@~HPX޴` GhG= =}(BDAK@G@?'?9#0 @ !C GGGGG8DG_G0@-CA@ ݢ%7HC@CA@ @0@0@C7AKCm#G@=4GĢBIJd0`CdGG08^@~HPXޤ`hCkG8 A@CCAr@GCm#@A@ =>C^C/F_@0@GCkG&/&KHH9&K6J&KJ06C @ 1@0 @0@a>CG^C~H>C$@H H~C{#D4`@_H~~^C!5 @/K0 @ 1@/"&@"w@HCA@CD6BvKCD@@@/.KWJGK9CGG 0 C6K? ?C!C"CG05@9w@H@D4G<KCG|K@c6CD vH~ {#D_~GCq0@D"CCD 8CvJCD@/.KUJGG8B7K5BJC<5C0B0@@ C@?jD@CD8CvJCD@65C/.KYJGG8B9K$KC06CC0@@ C@SGG/w@H@D4G6J&C GvJ@cG G@c0`@ e@0@@"C@/>CCwK>#1`@ޢ`C @6@P"1@@w@H@D4G7JCGwJ@cخFFؾg@cGG>C~{#*_~CC/#d@0d@D@4D@CD98CvKCD@75C..J\JGF9C<JKC0CGD@CD6BvKCD@/.KWJGG6B<K6CKC0B6KBBGCw K# CF@GDBCD6BvKCD@/.KUJGG6B<K5BKC95C0CC@"E@o.X J8GGHpÒGGGG>C^ GGC#?a@0d@ C4G0BBBBFGG0@4G@FqG`GA@_'?Z#0@@@Z@ @GGGGG8DG_CCkGG>C^ G>C MC(mGtGGC>CGiZkCCHCCk@MCHmGGG>CtGiZkGm#C0 j_>C~0^8^@~HP GXG81_# H:G2FJFJ@A@4GĢ6BIJ d0`C d/G08^@~HPXCkGH >C^C/C_b@0d@9<@ #4G09@9@FG"7@C7K/ #4G09@9@FGw@H@D4G96KBFy7K@cGG@c#b@0@@<@ G@cJWJ0B|JF@c 1@CkG>C~8{#_~C;bCGG>C( ;`CGG>C( ^~ ޴0^D<KD_D8G?G >C_ ^8[^0F^>C_ ^8[^0F^8F ^X%5 CLD@>C_ ^0F^6C_ D_ D$%5@.@_ D_ DD%5@&@_ D_ Dd%5@@_ D_ D%5@@_ D_ D%5@8FGH@bD@_ D_ DCDa@%5@Gt C"W`H>C#5`@~#u`@ `ED@@#5`@0FD@8FDGG_ >C"@H@@^HP +_ D( Ĵ"uCD08$@H$PDXd`hpĶx䶀$DdDDD?# [({@k>C~8^@H GG =C(]A@ =(]q/yH[qKyG q?2G8@HCkQ/ HZ QKYGQ?GG>C^ G/t@ KC@ -pIWA>A!vIGWA>/vIAGPm#Z_GGG m#@(^ޥ 0#k#G G(G0޵4G8@^pH@\@HkGKG!vHG vHGGGGc_GG8_&vH%vH@4GC>4(C>/GG 1vH1B@3A@&s"tF1BG:vHGB[GC vH@ 5A@_&R"F BG[GC/3vHG 1vH1B!A@_&!R"2D1ABGtB8`G`&vHG H@ð@$1@ DQBhB!GGG<5@;U@`4GtGGTG8F _xFF 4B02@PA/GD>"ް"^ $^"ް">GG^"d#tG#_GpH!I0DGĥXGGGG_Ţ>RJG KaJd#7J9v>KDF> GG@ޤޥ "HoIOD0%@@&Es"SF4aBB ĦExB7B8HC3C8/GG<5@4GGTG%#_GG>"ĤG0d#^"tGް+_ GNøKGG/vHGGG._švH!I6DŲ=G7vH %GGGGGU_GG*_4G &vH@)G(%G-vH'vHGAGG"_*-vHNIE=4GGGGG"_(Ħ.`HWJF>޲4GEEGGd#_@^G (0ޥ8P#k- HN IE=. HW JF> !kTX@`0 hx @p@   """""""" " """" @SYS$BASE_IMAGE@SYS$PUBLIC_VECTORS* SYS$MISCDEFAMAC X2.0-13265I,OTS$FILLMACRO-64 V1.1-08727AS  M64$$OTS$CODE ` OTS$FILL h \#   (1 OTS$HOME_ARGSMACRO-64 V1.1-08727AS  M64$$OTS$CODE p  OTS$HOME_ARGS 2 #  D -!@ SAFETY013.AD  ![EVERHART.JTDEMO]JTEXEDEL.EXE_A;3AXP6;10  OTS$MOVESMACRO-64 V1.1-08727ASP  M64$$OTS$CODEP  OTS$MOVEP  t#   f P  - OTS$MOVEMMACRO-64 V1.1-08727AS  M64$$OTS$CODE   OTS$$MOVEM_X  n# 0  OTS$MOVEM0 r#   i 0 . LIB$SIGNALMACRO-64 V1.1-08727AS^M64$$_LIB$CODE^ LIB$STOP^ #^4^  LIB$SIGNAL4^ #$[ 4^1 OTS$CALL_PROCMACRO-64 V1.1-08727AS M64$$OTS$CODE  OTS$CALL_PROC `#,2AMAC$EMUL_LOCCMACRO-64 V1.1-08727AS0M64$$_AMAC$CODE0 AMAC$EMUL_LOCC0 # 0 1 AMAC$EMUL_RETMACRO-64 V1.1-08727ASM64$$_AMAC$CODE  AMAC$EMUL_RET\ 4# `2AMAC$EMUL_SKPCMACRO-64 V1.1-08727AS0M64$$_AMAC$CODE00 AMAC$EMUL_SKPC0u #0 `4// (` * p P  >   3^ @ ,  C0  `  040  *[EVERHART.JTDEMO]JTEXEDEL.OBJ;30+,E . / 4 - 0123 KPWO56ز7w89GHJ 5JTEXEMPTV00115-SEP-1996 16:16 VAX MACRO V5.4-3MACRO JTEXEDEL);set this process exempt from eacf etc.JTEXEMPT CLI$GET_VALUE CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T IOC$SEARCHDEV MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$ASSIGN SYS$CMKRNL SYS$DASSGN SYS$GETDVI SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPЕ ADVDD_DATAPhd8 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%QQ   DSC$K_DTYPE_T%@ Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQx:d#Г ГДQQ ADVDD_CODEP ADVDD&hTX\ `Џd CLI$PRESENTP CLI$_PRESENTT CLI$GET_VALUEP1|~ SYS$ASSIGNP1f|~t<~ SYS$GETDVIP1B  SYS$CMKRNLP)P|x SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBTl SCH$IOLOCKWЬQ IOC$SEARCHDEVP 1P1QUŌH CTL$GL_PCBTT6Ф`VVTTVXXV\\V``P1=Ф`VTVTXVX\V\`V`PP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATAЕ ADVDD_CODE"*[EVERHART.JTDEMO]JTEXEDEL.OBJ_A;17+,F ./ 4 - 0123KPWO56 l 7 89GHJDDJTEXEDELV00113-APR-1996 19:27AMAC V3.0-13` ` . ABS . . BLANK . $ABS$Е ADVDD_DATA< ADVDD_CODE$LINKAGE DSC$K_DTYPE_T( MYFDSC CLI$PRESENT CLI$_PRESENT CLI$GET_VALUE SYS$ASSIGN SYS$GETDVI JTEMITLOG SYS$CMKRNL SYS$PUTMSG SYS$DASSGN CTL$GL_PCB SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCK(JADVDD(J@pBASHUCBP P =4=4h4d48 4=44=SYS$DISKd=(<4p= ( <4d4=l4=4=80==(4 =( 44=4=44= h=(@4t=( @4h4=p4=4= = DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= 4=UNIT4=FNAM4= NORMAL 4=NLA0:= DSC$K_DTYPE_T2=4= =4 44 4= DSC$K_DTYPE_T2=@ 4@=PF , DSC$K_DTYPE_T2=4=(=GCEV=\= 0t=@4:d4=#Г4= Г4=Д4= =D<#~^^~ (0޴8@H>P^X~`h GGmXM?#: "hͦ ##Mz` ?#@MHm@ZkG 0@0CPM- ?#Mm@ZkG( JG?#0M8m@ZkGG^~ (0ޤ8@H>P^X~`hp#kGG(- ?#Mm@ZkG#""m_"(M: JG"#ޢ޶?#Mm@Zk #Gm[@?#Mm@ZkG- ?#pMxm@ZkG05@"_"?" ?#Mm@ZkG(JG?#0M8m@ZkGæGp#~(^0^8~@HP޴X`h>p^x~ GG(G0m =@MHm@Zk =C`Mhm@Zk##PMXm@Zk #G#G(0^8~@HPޤX`h>p^x~#kCE?'x9#2YC@( G8עĠGe2@@2@@2@@%2@@  ĠGŢŰE@ŰŰe`Ű4 G CLI$PRESENT4 m# CLI$PRESENT4 @ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4G SYS$DASSGN4m# SYS$DASSGN4@ SYS$DASSGN4 XGd SYS$ASSIGN4\m# SYS$ASSIGN4 `@d SYS$ASSIGN4G SYS$GETDVI4m# SYS$GETDVI4@ SYS$GETDVI4G JTEMITLOG4m# JTEMITLOG4@ JTEMITLOG4 G SYS$CMKRNL4 m# SYS$CMKRNL4 @ SYS$CMKRNL40G< SYS$PUTMSG44m# SYS$PUTMSG48@< SYS$PUTMSG4TG` SYS$DASSGN4Xm# SYS$DASSGN4\@` SYS$DASSGN4G SCH$IOLOCKW4m#@ SCH$IOLOCKW4@ SCH$IOLOCKW4G IOC$SEARCHDEV4m#@ IOC$SEARCHDEV4@ IOC$SEARCHDEV4G SCH$IOUNLOCK4m#@ SCH$IOUNLOCK4 @ SCH$IOUNLOCK   JTEMITLOG  CLI$GET_VALUE"" ;0  SYS$PUTMSG""@;;d;h;\;7 CLI$_PRESENT;T;=0 ;=p/ =;  SYS$DASSGN" CLI$PRESENT";X;;`; SYS$CMKRNL"|;x; SYS$ASSIGN""t;0  SYS$GETDVI""" =0( p;=/ ="7 CTL$GL_PCBl;  SCH$IOLOCKW  SCH$IOUNLOCK  IOC$SEARCHDEV  $*[EVERHART.JTDEMO]JTEXEDEL.OBJ_AXP6;8+,G ./ 4 - 0123KPWO56|j\z7 \z89GHJDDJTEXEDELV00112-SEP-1996 20:59AMAC V2.1-13` `P$LINKAGE ADVDD_CODEЕ ADVDD_DATA $ABS$ . BLANK . . ABS . DSC$K_DTYPE_T( MYFDSC CLI$PRESENT CLI$_PRESENT CLI$GET_VALUE SYS$ASSIGN SYS$GETDVI JTEMITLOG SYS$CMKRNL SYS$PUTMSG SYS$DASSGN CTL$GL_PCB SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCK(JXADVDD(J0BASHUCB ;  SYS$ASSIGN""  SYS$CMKRNL"7 CLI$_PRESENT@  CLI$GET_VALUE""=X=0 ;=p/ =;  SYS$DASSGN" CLI$PRESENT" JTEMITLOG SYS$PUTMSG""  SYS$GETDVI""" =0( 0;=/ ="7 CTL$GL_PCB  SCH$IOLOCKW  IOC$SEARCHDEV=p@  SCH$IOUNLOCK =>C~^^~ (0޴8@"@ SAFETY013.AG  $[EVERHART.JTDEMO]JTEXEDEL.OBJ_AXP6;86;10 NxH>P^X~` GhG(-h4GTGXTG\q?#`Q"HMd1Pm4G@Zk(m0@T0CTMS"m3""tG@Zk( 4G8M@mJG@ZkG^~ (0ޤ8@H>P^X~`hCk(ͦGMGmG6""@Zk( >CxMmGG8>Ctx"ޢG J޶GG@ZkC(mT; XM`mG@Zk( TGM mC@Zk(05@|hMGpmGGx"G@Zk(m4G8M@mJ@ZkGG>C~(^0^8~@HP޴X`h>p^x~ GG(m0Ml8m =@Zk =@MHmC@Zk`M>Chm @Zk CG(0^8~@HPޤX`h>p^x~Ck/CE?'p9#2YC@( TעĠe2@@峠2@@峤2@@峨%2@@4G/GÜŢĠGŰ4GGE@Ű4GGŰ4GGe4GŰGŰ4GG4 pG CLI$PRESENT4 xm#X CLI$PRESENT4 @ CLI$PRESENT4G CLI$GET_VALUE4m#X CLI$GET_VALUE4@ CLI$GET_VALUE4G SYS$DASSGN4m#X SYS$DASSGN4@ SYS$DASSGN4(GD SYS$ASSIGN40m#X SYS$ASSIGN4@@D SYS$ASSIGN4PG SYS$GETDVI4Tm#X SYS$GETDVI4@ SYS$GETDVI4 G JTEMITLOG4 m#X JTEMITLOG4 @ JTEMITLOG4G SYS$CMKRNL4m#X SYS$CMKRNL4@ SYS$CMKRNL4 G SYS$PUTMSG4m#X SYS$PUTMSG4 @ SYS$PUTMSG4 G  SYS$DASSGN4m#X SYS$DASSGN4@  SYS$DASSGN4G SCH$IOLOCKW4m# SCH$IOLOCKW4@ SCH$IOLOCKW4G IOC$SEARCHDEV4m# IOC$SEARCHDEV4@ IOC$SEARCHDEV4G SCH$IOUNLOCK4m# SCH$IOUNLOCK4@ SCH$IOUNLOCKP P =4=4h4d48 4=44=SYS$DISKd=(<4p= ( <4d4=l4=4=80==(4 =( 44=4=44= h=(@4t=( @4h4=p4=4= = DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= 4=UNIT4=FNAM4= NORMAL 4=NLA0:= DSC$K_DTYPE_T2=4= =4 44 4= DSC$K_DTYPE_T2=@ 4@=PF , DSC$K_DTYPE_T2=4=(=GCEV=\= 0t=@4:d4=#Г4= Г4=Д4=   X$*[EVERHART.JTDEMO]JTEXEDEL.OBJ_VAX5;7+,I . / 4 - 0123 KPWO56`B7\89GHJ 5JTEXEMPTV00117-NOV-1996 13:27 VAX MACRO V5.4-3MACRO JTEXEDEL);set this process exempt from eacf etc.JTEXEMPT CLI$GET_VALUE CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T IOC$SEARCHDEV MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$ASSIGN SYS$CMKRNL SYS$DASSGN SYS$GETDVI SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPЕ ADVDD_DATAPhd8 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%QQ   DSC$K_DTYPE_T%@ Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQx:d#Г ГДQQ ADVDD_CODEP ADVDD&hTX\ `Џd CLI$PRESENTP CLI$_PRESENTT CLI$GET_VALUEP1|~ SYS$ASSIGNP1f|~t<~ SYS$GETDVIP1B  SYS$CMKRNLP)P|x SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBTl SCH$IOLOCKWЬQ IOC$SEARCHDEVP 1P1QUŌH CTL$GL_PCBTT6Ф`VVTTVXXV\\V``P1=Ф`VTVTXVX\V\`V`PP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATAЕ ADVDD_CODE%*[EVERHART.JTDEMO]JTEXEDEL.OBJ_VAX62;3+,. / 4 - 0123KPWO56|+=7==89GHJ 5JTEXEMPTV001 4-FEB-1997 12:22 VAX MACRO V5.4-3MACRO JTEXEDEL);set this process exempt from eacf etc.JTEXEMPT CLI$GET_VALUE CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T IOC$SEARCHDEV MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$ASSIGN SYS$CMKRNL SYS$DASSGN SYS$GETDVI SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPЕ ADVDD_DATAPhd8 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%QQ   DSC$K_DTYPE_T%@ Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQx:d#Г ГДQQ ADVDD_CODEP ADVDD&hTX\ `Џd CLI$PRESENTP CLI$_PRESENTT CLI$GET_VALUEP1|~ SYS$ASSIGNP1f|~t<~ SYS$GETDVIP1B  SYS$CMKRNLP)P|x SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBTl SCH$IOLOCKWЬQ IOC$SEARCHDEVP 1P1QUŌH CTL$GL_PCBTT6Ф`VVTTVXXV\\V``P1=Ф`VTVTXVX\V\`V`PP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATAЕ ADVDD_CODE%*[EVERHART.JTDEMO]JTEXEDEL.OBJ_VAX71;1+,M . / 4 - 0123KPWO56n}N7`ꏞ89GHJ 5JTEXEMPTV00129-JAN-1996 09:21 VAX MACRO V5.4-3MACRO JTEXEDEL);set this process exempt from eacf etc.JTEXEMPT CLI$GET_VALUE CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T IOC$SEARCHDEV MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$ASSIGN SYS$CMKRNL SYS$DASSGN SYS$GETDVI SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPЕ ADVDD_DATAPhd8 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%QQ   DSC$K_DTYPE_T%@ Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQx:d#Г ГДQQ ADVDD_CODEP ADVDD&hTX\ `Џd CLI$PRESENTP CLI$_PRESENTT CLI$GET_VALUEP1|~ SYS$ASSIGNP1f|~t<~ SYS$GETDVIP1B  SYS$CMKRNLP)P|x SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBTl SCH$IOLOCKWЬQ IOC$SEARCHDEVP 1P1QUŌH CTL$GL_PCBTT6Ф`VVTTVXXV\\V``P1=Ф`VTVTXVX\V\`V`PP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATAЕ ADVDD_CODE *[EVERHART.JTDEMO]JTEXEMPT.CLD;14+,O . / 4M - 0123 KPWO56 eF27@>bĘ89GHJ%! Set up JT open/extend/delete daemonDEFINE VERB JTEXEMPT IMAGE gcy$sys:jtexemptG parameter p1,prompt="JTn:",value(required,type=$device),label=UNIT> parameter p2,label=FNAM,prompt="file",value(type=$infile) qualifier NORMAL1!sets or resets "exempt from eacf" process statusM!should need only p1 arg and /normal if resetting exempt status to NOT exempt*[EVERHART.JTDEMO]JTEXEMPT.EXE;9+,Q ./ 4- 0123 KPWO56 I҇7 3F89GHJ0D`0205Їxh$JTEXEMPTV001ÃЇ05-13QQQ  ? K PS  ?E!d FORRTL_001! LIBRTL_001`#@ SAFETY013.AQ  [EVERHART.JTDEMO]JTEXEMPT.EXE;9J_VAX5;8**%EACF - EACF Disable by tty:) image:) username:) accpor:) @p ȝ @`DHLPxL@` \0,SYS$DISK(4( 4\d((  , (8 ( 8 ` h      UNIT FNAM NORMAL NLA0:    8 ,GCEV0:\#ț țȜhf[ ː,˒˔Rޢ ˘˜˞$ˠ$ˤ ˨˪(ˬH˰@˴-˶L˸Œ˼kޫ0 PPH\P hP$tPŒaK ˀb˄ˀ-$ˈ$ˌˈHː(˔ːŒ˘L˜˘ˠPˬ˰˴Ne[}PQPмRPR RQPQSSTDTT RPSPPe[}PQPk 6%EACF - EACF Disable by tty:H image:H username:H accpor:H7h` SYS$DISK(( (8( 8`h((  4DUNITPFNAM\NORMALjNLA0:xp|   ,%@ SAFETY013.AT  ![EVERHART.JTDEMO]JTEXEMPT.EXE_A;3VAX5;8>)&@ SAFETY013.AT  ![EVERHART.JTDEMO]JTEXEMPT.EXE_A;3VAX62;5>HGCEV0:ē#0 00#0{_&~R"X^2EJ`^Gh~GpxcGG#b H0HB # 3,?$ ! @3$#"30J!>HsB_& R"Pb$#"32@3( H"  S ?&1"01$J2AJL# QB 3P"0#"(3"8S_& H83R",3@"_&0R"!!H2wDJ43 2@83"@GD4GHGLPAZk4GG_01 @p@5Q @(q.u@GqJ9q @dB`(/y@G! @Ka@C(:.G0@0@:J0@$B (.0@G"JGBGH4GG51`Cu@6Q`Cq.v@GqJ4q`CdB`.t@G;`CJ{@B0.G0@C0@C0J0@C$B ,0@CG: HG@?G 4G#61Cv@$Q"$q. QC`@rJGdB`$a/$A#9qCy@zKGdC`$W.$7"G0BQJ0BDB@8Cx@$3 $S/0BGAK0BDC@"GG$c4GG21@r@La"L!/G0Q@3K1q@$C p@L#L.q@0BGJBL{.L; 0BaJGdB` @`@L"L/0BGKGC0BW"_G0xB"?&X @8}5JP}"1"bXB"H8}"GzZk$$# 8B"@="" H@b88]"tG|ZkH(# 8B"@="" H@b88]"tG|ZkLc 8B"@}"" H8@b8]"tG|Zk4G !1@@GP.GPJDB@4Q@@0`@.GJB8q@@0`@y/GyKdC ` @@0`@P.GPJDB@0`@"GC6vJG?$b#B8=<8"4GH@cGX]`]h}px#kG14G!q B !B2 21 B&`% GB0@B.0@0@0@J31@BBB%.G0@J4Q@BBB.G @J5q@BBB.G2@BJ @B B0@4,0@B @21@B4H$@ GkGk#G~^G0.0JFC4G0B(@<CGG<CGGGGG8@"GBZk(@GGBZk0@GGGUAZk4G7@(@<CGGGGX@"GBZk(@GG~BZk G(@GG"wBZkGP@@Zk@@?'#9#=4GH`" =GTG~ZkG] #kP.R PJQF0#G~G^G^GG"@B@ZktG="GPBFB@b# G$]]"x@tG`Bhb"0="]"}ZkG]]#kG#G> @hGG~^G^G~GG8=pB"@Zk } G$]""D(4 @pb#G,=GtGE@tGB"b@="]"}ZkTGGGb#G@4G8}c `=?@G ]"pb#="tG(@} ]=#v`H"v@Hb@` .qHPJF>G]@r.tRHSrJtFr>G]G]} #k. HP JF>r. RHS rJtFr>#G> @hGG~^G^G~GGGB",@Zk4G"D t @$=`G]_B Gb#L]"H="GtG@H C"4G@G"4G4GBGC4G7G B0"GGZkG0 0=("4GB 4C"@4G/B]`8]c `4G/ ݢB G <="b#@]"tG@ӰB"bP="]"tG|ZkG]]}0#k #G> @hGGGG~^GAG"Zk4GD @$ }B@ݲA"a0="]"tG|ZkG]#k0#G~G^G^GG" BZktG="G0`BFB b# G$]]":@tG@BHb"0="]"|ZkG]]#k>C~^^~ (0޴8@H>P^X~` GhG(-h4GTGXTG\q?#`Q"Gd1m#4Gw_(m0@T0CTGS"m#3""tG_( 4G8M@mJG|ZkG^~ (0ޤ8@H>P^X~`hCk(ͦGMGmG6""c|Zk( >CxMmGG8>Ctx"ޢG J޶GGs~ZkC(mT; Gm#G"_( TGM mCc|Zk(05@|hMGpmGGx"G}Zk(m4G8M@mJx|ZkGG>C~(^0^8~@HP޴X`h>p^x~ GG(m0Ml8m ={Zk =@MHmC{Zk`M>Chm {Zk CG(0^8~@HPޤX`h>p^x~Ck/CE?'p9#2YC@( TעĠe2@@峐2@@峔2@@峘%2@@4G/GÌŢĠGŰ4GGE@Ű4GGŰ4GGe4GŰGŰ4GGPHH%%` D .J6xC 1@0 @ D @<aK|G6KF6KFBCF( @!@@J8C 1@0 @k D.J 1@0 @ D @C @!@@J 1@0 @k6J6J6J6J6J6J0@ @k@k@0 @k@P @k@p @k@ @kp@ @kP@ @kG`G|6aK@`K| @G}CG# ~|\R@KC\^C`C6`K`<C6`K`\C6`K`|C6`K`C6`K`C6`K`ܤC6`K`C6`K`C6`K`<C6`K`\C6`K`|C6`K`C6`K`C6`K`ܥC6`K`C6`K`C6`K`<C6`K`\C6`K`|C6`K`C6`K`C6`K`ܦC6`K`C6`K`C6`K`<C6`K`\C^6`K`\C^V`K`\C^v`K;dK}`dK`C6`K`<C6`K`\C6`K`|C6`K`C6`K`C6`K`܌C6`K`C6`K`C6`K`<C6`K`\C6`K`|C6`K`C6`K`C6`K`܍C6`K`C6`K`C6`K`<C6`K`\C6`K`|C6`K`C6`K`C6`K`܎C6`K`C6`K`C6`K`<C6`K`\C6`K`|C6`K`C6`K`C6`K`܏C6`Kc^~ ާk~CGGPHH" D .J6xC 1@0 @ D @ <aK|G6KF6KF6B @!@@J8C 1@0 @kBCF6J6J6J6J6J6J0@ @k@k@0 @k@P @k@p @k@ @kp@ @kP@ @k#~(^0^8~@HP޴X`hcGGG¤G=G Gb#p@xD ?$! vHGD #h!$' GB2B2Fbc}xG0Bx0D95C C\"C8kh Lg@BG=tGGb#zZkGHg @GP'G@ GG<5@ 2U@ @4G8`Fx`FFtG8`Fx`FFG8`Fx`FFTG8`Fx`FFHLǢ5@B$HH@5JF<CCFJBBGG<5@ 9U@  4G8@Gx@G_GtG8@Gx@G_GG8@Gx@G_GTG8@Gx@G_GyHg@]#"% G}#1`@#1`@#1`@bB}C#1`@##hD#bBC}aGbB}C!Z %D bBC}SD?O`#1`@BC{H`eG`DG]4GG0JZJ<@ ]ݢ@cB FHDHB|KGd@c 8KK=!%D G<5@3U@`4GtGGTG8 Gx G?G# }]G0J@cABJ FJTJB|KG7@c $@4 (((gAG@0FG ?GgDl`GG, @40EC0wJ@c4GBFF1HwJ01D1D04D @c4G!f@GG/G֢0e@0wJvGBF dBBE3eBK``F4G,#F@c1HwJ01D1D0 @c@EC0wJG @B(F4G@cF1HwJ01D1D04D @cڢ4GVCgDe@0wJGB @F\4G@cF1HwJ01D1D0 @c@ڢVCgD0bGGb#K@GeD@,'G@?&1" yB vx4#֢ղF@D$DGBGz@$:X4@&"UDD:QC@G:@Ǣ0e@0wJG6BDz(gBF@c4GF@1HwJ01D1D0o @4B4gA`@_&R"DDHײ(gAe@0wJ@cGBF4GF1HwJ01D1D0P @&"DA$$D1%B$4g`(A@@c0wJGBF4GF1HwJ01D1D00 @c@c}fe@f4G'@ SAFETY013.AT  ![EVERHART.JTDEMO]JTEXEMPT.EXE_A;3VAX62;5Cr>gP@F@0g$3eJ'@gJ/Ah4@'BuB4GGc(]0]8}@HPݤX`hp#k!;ËêG#x G~(^0^8~@HP޴X`h>pcGGx G @R @2$å 9v K%G GT4EѠ#@Hc(e@$ ?$&@! F@F@@$y @FDaD@`<FGygD @C2C!C@ @.P8@* %D %GH"c=ABAF4GD 0%G#HAB9"C9 C G@B24 C9B @?|d G0`B @|dEGBE0E 5B@\@pk$ )@$G$@XBh#'C$PetGG`bmwZkH%$8 @)B$!'@ d3aBdB@/GG<5@4GGTGH%LE9@:CI@(IIA9(KG<CCgG0e@@c0wJGBF4GF1HwJ01D1D0H @c䢠@B(0e@@c0wJGBF4GF1HwJ01D1D03 @c@B0e@@c0wJGBF4GF1HwJ01D1D0 @@c4GGc(]0]8}@HPݤX`h=p#këüRhÝÈÝòÐ#G~ ^(^0~8@H޴PX`>hGGG4$G!J m@@c0wJGBF4GF1HwJ01D1D04Dj @c 4$$D@aB pB 8DD"B`F!D7H=2 0J HJH @ ?1C=G@c0J@J F 1HA1HB|KG = @cd]3fJGfJ0J`@]@cJ Fc qJSqJB|KGc(`@c4D@HF@G⤠ GG G<5@1U@ 4G/tGGTG\`4DHF@4G/" G<5@3U@`4G/tGGTGG @dBG=="Gb"TG`#sZkGG=? 4G)4$(F IG/2HB+@hBG&("F(ԲGGG<5@4GGTG)(A9(C ":! /GG<5@4GGTG(ɢJ0EBGGGuZk?'GB I(D"GG(="@dTG`#GbosZkGG<5@4GGG|GTGGxG4$]"D@ ?`d@0`FGGF6(B0wJG1 BFXF4GF @c1HwJ01D1D04Dd @cGGUBFG A uf@հGG<5@4GGG8GTGG4GGIFB (Y&A&A?"4@G(YIɰ4 8i0)4Dɢ6Bɲ4vH GGG<5@4GGTG GG<5@4GGTG?GG ](]0}8@HݤPX`=hp#kúÕ# _"~^G^GG00P&G0["?F0 B00?&1"GFB&_&R"_$FBG G4TF44GG44"GF4&08G4G08(;P" P#'@!DA{#04?DP @044Gl GFBGG"0D2@"@? ز84ԢGF4Բ4AG4@D4A4ԢGGF4ԲG 04J0HزGLXG$8G(X@ ,8 @8GDX0F0B0GCGԢ?&FBԲG bG"4G44PDF4P4ԢF4Բ@"DB G]] #kG#~^GF" TG@0[04G8{GrZkG]  #kG #G> @h~h^Gp^Gx~8q @4G޴GG 8@h=G C8FF="h]"@BRBB B B h}"PBSB0B BY"@(Àp#HB0"G GjtZkG9Q CG W?@C @@0C @`1 @ 00 @ 9@_T}]"tG`G ="(b#@G = }!v H3J0@0Fa HaF }G 5J DݢH=81B;1 CF;G B`D=0]G(}<5@B5U@B+ @h4G~G(^0^8~@HP޴XGGGG4q@( @ CG8FFh#/(]"AxBRrB!`B `B2 tB! 2(=#WxBYyB0`B `B?D"G@4GG?BG"4G/B Gxb#="]"tG@GZ=}!v H3J0@0Fa HaF}G4vJBFBGGG" ]" tGb#K_HB$q@G;c4"GG0L#FB0=ruS J4v`JFHG[8CA?CB[ $CC0 C9"?GrSH4ef@B"4v`JF4,aJ@HD<ݢ$vHGGqZk?'9#4G8KC%G(]0]8}@HPݤX#k#~^^ ~(cGpGh#$ !v H D pG46JjG0#?D05 @B\B@k_Tci@xB4G#Gb4oZkVGPTG#P"U?BGGLP"BWBG8BG[qZk8C`@0D/G ?GF/4#0B FC 0CCJ/BU`B;B@CS`0aCZ CY6 7B4cdF`V:ACVB,B4v8V $vBF?B4G00Z#8BcG]] }(0#kGp# ~8^@^H~PX`޴hpx>cGG" =0$ 1v J F `406!H `G0ZC~0^8^@ GHG =C(]A@ =(]q/y1H[qKyG q?RG08^@HCkQ/ 1HZ QKYGQ?/t@@KCC~0^8^@~HPX޴` GhG= =}(BDAK@G@?'?9#0 @ !C GGGGG8DG_G0@-CA@ ݢ%7HC@CA@ @0@0@C7AKCm#G@=4GĢBIJd0`CdGG08^@~HPXޤ`hCkG8 A@CCAr@GCm#@A@ =>C^C/F_@0@GCkG&/&KHH9&K6J&KJ06C @ 1@0 @0@a>CG^C~H>C$@H H~CP{#D4`@_H~~^C!5 @/K0 @ 1@/"&@"w@HCA@CD6BvKCD@@@/.KWJGK9CGG 0 C6K? ?C!C"CG05@9w@H@D4G<KCG|K@c6CD vH~p{#D_~GCq0@D"CCD 8CvJCD@/.KUJGG8B7K5BJC<5C0B0@@ C@?jD@CD8CvJCD@65C/.KYJGG8B9K$KC06CC0@@ C@SGG/w@H@D4G6J&C GvJ@cG G@c0`@ e@0@@"C@/>CCwK>#1`@ޢ`C @6@P"1@@w@H@D4G7JCGwJ@cخFFؾg@cGG>C~`{#*_~CC/#d@0d@D@4D@CD98CvKCD@75C..J\JGF9C<JKC0CGD@CD6BvKCD@/.KWJGG6B<K6CKC0B6KBBGCw K# CF@GDBCD6BvKCD@/.KUJGG6B<K5BKC95C0CC@"E@o.X J8GGHpÒGGGG>C^ GGC#?a@0d@ C4G0BBBBFGG0@4G@FqG`GA@_'?Z#0@@@Z@ @GGGGG8DG_CCkGG>C^ G>C MC(mGtGGC>CGFkZkCCHCCk@MCHmGGG>CtGkZkGm#C0 j_>C~0^8^@~HP GXG81_# H:G2FJFJ@A@4GĢ6BIJ d0`C d/G08^@~HPXCkGH >C^C/C_b@0d@9<@ #4G09@9@FG"7@C7K/ #4G09@9@FGw@H@D4G96KBFy7K@cGG@c#b@0@@<@ G@cJWJ0B|JF@c 1@CkG>C~{#_~C;bCGG>C( ;`CGG>C( ^~ ޴0^D<KD_D8G?G >C_ ^8[^0F^>C_ ^8[^0F^8F ^X%5 CLD@>C_ ^0F^6C_ D_ D$%5@.@_ D_ DD%5@&@_ D_ Dd%5@@_ D_ D%5@@_ D_ D%5@8FGH@bD@_ D_ DCDa@%5@Gt C"W`H>C#5`@~#u`@ `ED@@#5`@0FD@8FDGG_ >C"@H@@^HP +_ D( Ĵ"uCD08$@H$PDXd`hpĶx䶀$DdDDD?# [({@k>C~8^@H GG =C(]A@ =(]q/yH[qKyG q?2G8@HCkQ/ HZ QKYGQ?GG>C^ G/t@ KC@ -pIWA>A!vIGWA>/vIAGpm#Z_GGG m#@(^ޥ 0#k#G G(G0޵4G8@^pH@\@HkGKG!vHD vHGGGGlZkG0DLkZk&vH%vH@4GC>4(C>/GG 1vH1B@3A@&s"tF1BG:vHGB[GC vH@ 5A@_&R"F BG[GC/3vHG 1vH1B!A@_&!R"2D1ABGtB8`G`&vHG H@ð@$1@ DQBhB!GGG<5@;U@`4GtGGTG8F _xFF(@ SAFETY013.AT  ![EVERHART.JTDEMO]JTEXEMPT.EXE_A;3VAX62;5r 4B02@PA/GD>"ް"^ $^"ް">GG^"d#tG#_GpH!I0DGĥXDGGGjZkŢ>RJG KaJd#7J9v>KDF> GG@ޤޥ "HoIOD0%@@&Es"SF4aBB ĦExB7B8HC3C8/GG<5@4GGTG%#_GG>"ĤG0d#^"tGް+_ GNøKGD/vHGGGjZkšvH!I6DŲ=G7vH %GDGGGkZkG0D>jZk4G &vH@)G(%G-vH'vHGADG"tjZk*-vHNIE=4GGGDG"djZk(Ħ.`HWJF>޲4GEEGGd#_@^G (0ޥ8P#k- HN IE=. HW JF> !kTXXx`p  @HPp (80H Xhx`  ` """""""""  """" @ DEC$FORRTL@LIBOTS@SYS$BASE_IMAGE@SYS$PUBLIC_VECTORS, JTEMITLOGDEC Fortran V6.2-5088 JTEMITLOGfkkfh h j h h m l h i n v v z x w  } { { x { |                                                            (      IVLEN                  )OPRMSGDEC Fortran V6.2-508OPRMSG9    L* SYS$MISCDEFAMAC X2.0-13265I. LIB$SIGNALMACRO-64 V1.1-08727ASWM64$$_LIB$CODEWP LIB$STOPW #WW@  LIB$SIGNALW #$[ W2AMAC$EMUL_LOCCMACRO-64 V1.1-08727ASM64$$_AMAC$CODE AMAC$EMUL_LOCC #  l1 AMAC$EMUL_RETMACRO-64 V1.1-08727ASpM64$$_AMAC$CODEp  AMAC$EMUL_RETp\ 4#p `2AMAC$EMUL_SKPCMACRO-64 V1.1-08727ASM64$$_AMAC$CODE AMAC$EMUL_SKPCu # 4x`@LY_/W@ @fC p`  4  *[EVERHART.JTDEMO]JTEXEMPT.OBJ;39+,U . / 4 - 0123 KPWO56`˩7 w89GHJ 5JTEXEMPTV00115-SEP-1996 16:17 VAX MACRO V5.4-3MACRO JTEXEMPT);set this process exempt from eacf etc.JTEXEMPT CLI$GET_VALUE CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T IOC$SEARCHDEV JTEMITLOG MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$ASSIGN SYS$CMKRNL SYS$DASSGN SYS$GETDVI SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPЕ ADVDD_DATAPhd8 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%QQ   DSC$K_DTYPE_T%@ Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQx:d#Г ГДQQ ADVDD_CODEP ADVDD&hTX\ `Џd CLI$PRESENTP CLI$_PRESENTT CLI$GET_VALUEP1|~ SYS$ASSIGNP1u|~t<~ SYS$GETDVIP1QT JTEMITLOG   SYS$CMKRNLP)P|x SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN  BASHUCB& CTL$GL_PCBTl SCH$IOLOCKWЬQ IOC$SEARCHDEVP 1P1QUŌH CTL$GL_PCBTT6Ф`VVDDVHHVLLVPPP1=Ф`VDVDHVHLVLPVPPP SCH$IOUNLOCKЎP& ADVDD BASHUCB2 ADVDD_DATAЕ ADVDD_CODE"*[EVERHART.JTDEMO]JTEXEMPT.OBJ_A;18+,V ./ 4 - 0123KPWO56g 7`& 89GHJDDJTEXEMPTV00113-APR-1996 19:25AMAC V3.0-13` ` . ABS . . BLANK . $ABS$Е ADVDD_DATA< ADVDD_CODE$LINKAGE DSC$K_DTYPE_T( MYFDSC CLI$PRESENT CLI$_PRESENT CLI$GET_VALUE SYS$ASSIGN SYS$GETDVI JTEMITLOG SYS$CMKRNL SYS$PUTMSG SYS$DASSGN CTL$GL_PCB SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCK(JADVDD(J@pBASHUCBP P =4=4h4d48 4=44=SYS$DISKd=(<4p= ( <4d4=l4=4=80==(4 =( 44=4=44= h=(@4t=( @4h4=p4=4= = DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= 4=UNIT4=FNAM4= NORMAL 4=NLA0:= DSC$K_DTYPE_T2=4= =4 44 4= DSC$K_DTYPE_T2=@ 4@=PF , DSC$K_DTYPE_T2=4=(=GCEV=\= 0t=@4:d4=#Г4= Г4=Д4= =D<#~^^~ (0޴8@H>P^X~`h GGmXM?#: "hͦ ##Mz` ?#@MHm@ZkG 0@0CPM- ?#Mm@ZkG( JG?#0M8m@ZkGG^~ (0ޤ8@H>P^X~`hp#kGG(- ?#Mm@ZkG#""m_"(M: JG"#ޢ޶?#Mm@Zk #Gm[@?#Mm@ZkG- ?#pMxm@ZkG05@"_"?" ?#Mm@ZkG(JG?#0M8m@ZkGæGp#~(^0^8~@HP޴X`h>p^x~ GG(G0m =@MHm@Zk =C`Mhm@Zk##PMXm@Zk #G#G(0^8~@HPޤX`h>p^x~#kCE?'x9#2YC@( G8עĠGe2@@2@@2@@%2@@  ĠGŢŰE@ŰŰe`Ű4 G CLI$PRESENT4 m# CLI$PRESENT4 @ CLI$PRESENT4G CLI$GET_VALUE4m# CLI$GET_VALUE4@ CLI$GET_VALUE4G SYS$DASSGN4m# SYS$DASSGN4@ SYS$DASSGN4 XGd SYS$ASSIGN4\m# SYS$ASSIGN4 `@d SYS$ASSIGN4G SYS$GETDVI4m# SYS$GETDVI4@ SYS$GETDVI4G JTEMITLOG4m# JTEMITLOG4@ JTEMITLOG4 G SYS$CMKRNL4 m# SYS$CMKRNL4 @ SYS$CMKRNL40G< SYS$PUTMSG44m# SYS$PUTMSG48@< SYS$PUTMSG4TG` SYS$DASSGN4Xm# SYS$DASSGN4\@` SYS$DASSGN4G SCH$IOLOCKW4m#@ SCH$IOLOCKW4@ SCH$IOLOCKW4G IOC$SEARCHDEV4m#@ IOC$SEARCHDEV4@ IOC$SEARCHDEV4G SCH$IOUNLOCK4m#@ SCH$IOUNLOCK4 @ SCH$IOUNLOCK   JTEMITLOG  CLI$GET_VALUE"" ;0  SYS$PUTMSG""@;;d;h;\;7 CLI$_PRESENT;T;=0 ;=p/ =;  SYS$DASSGN" CLI$PRESENT";X;;`; SYS$CMKRNL"|;x; SYS$ASSIGN""t;0  SYS$GETDVI""" =0( p;=/ ="7 CTL$GL_PCBl;  SCH$IOLOCKW  SCH$IOUNLOCK  IOC$SEARCHDEV  )@ SAFETY013.AW  $[EVERHART.JTDEMO]JTEXEMPT.OBJ_AXP6;871;1 EF$*[EVERHART.JTDEMO]JTEXEMPT.OBJ_AXP6;8+,W ./ 4 - 0123KPWO56P\z7 [\z89GHJDDJTEXEMPTV00112-SEP-1996 20:58AMAC V2.1-13` `P$LINKAGE ADVDD_CODEЕ ADVDD_DATA $ABS$ . BLANK . . ABS . DSC$K_DTYPE_T( MYFDSC CLI$PRESENT CLI$_PRESENT CLI$GET_VALUE SYS$ASSIGN SYS$GETDVI JTEMITLOG SYS$CMKRNL SYS$PUTMSG SYS$DASSGN CTL$GL_PCB SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCK(JXADVDD(J0BASHUCB ;  SYS$ASSIGN""  SYS$CMKRNL"7 CLI$_PRESENT@  CLI$GET_VALUE""=X=0 ;=p/ =;  SYS$DASSGN" CLI$PRESENT" JTEMITLOG SYS$PUTMSG""  SYS$GETDVI""" =0( 0;=/ ="7 CTL$GL_PCB  SCH$IOLOCKW  IOC$SEARCHDEV=p@  SCH$IOUNLOCK =>C~^^~ (0޴8@H>P^X~` GhG(-h4GTGXTG\q?#`Q"HMd1Pm4G@Zk(m0@T0CTMS"m3""tG@Zk( 4G8M@mJG@ZkG^~ (0ޤ8@H>P^X~`hCk(ͦGMGmG6""@Zk( >CxMmGG8>Ctx"ޢG J޶GG@ZkC(mT; XM`mG@Zk( TGM mC@Zk(05@|hMGpmGGx"G@Zk(m4G8M@mJ@ZkGG>C~(^0^8~@HP޴X`h>p^x~ GG(m0Ml8m =@Zk =@MHmC@Zk`M>Chm @Zk CG(0^8~@HPޤX`h>p^x~Ck/CE?'p9#2YC@( TעĠe2@@峐2@@峔2@@峘%2@@4G/GÌŢĠGŰ4GGE@Ű4GGŰ4GGe4GŰGŰ4GG4 pG CLI$PRESENT4 xm#X CLI$PRESENT4 @ CLI$PRESENT4G CLI$GET_VALUE4m#X CLI$GET_VALUE4@ CLI$GET_VALUE4G SYS$DASSGN4m#X SYS$DASSGN4@ SYS$DASSGN4(GD SYS$ASSIGN40m#X SYS$ASSIGN4@@D SYS$ASSIGN4PG SYS$GETDVI4Tm#X SYS$GETDVI4@ SYS$GETDVI4 G JTEMITLOG4 m#X JTEMITLOG4 @ JTEMITLOG4G SYS$CMKRNL4m#X SYS$CMKRNL4@ SYS$CMKRNL4 G SYS$PUTMSG4m#X SYS$PUTMSG4 @ SYS$PUTMSG4 G  SYS$DASSGN4m#X SYS$DASSGN4@  SYS$DASSGN4G SCH$IOLOCKW4m# SCH$IOLOCKW4@ SCH$IOLOCKW4G IOC$SEARCHDEV4m# IOC$SEARCHDEV4@ IOC$SEARCHDEV4G SCH$IOUNLOCK4m# SCH$IOUNLOCK4@ SCH$IOUNLOCKP P =4=4h4d48 4=44=SYS$DISKd=(<4p= ( <4d4=l4=4=80==(4 =( 44=4=44= h=(@4t=( @4h4=p4=4= = DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= 4=UNIT4=FNAM4= NORMAL 4=NLA0:= DSC$K_DTYPE_T2=4= =4 44 4= DSC$K_DTYPE_T2=@ 4@=PF , DSC$K_DTYPE_T2=4=(=GCEV=\= 0t=@4:d4=#Г4= Г4=Д4=   X$*[EVERHART.JTDEMO]JTEXEMPT.OBJ_VAX5;7+,Y . / 4 - 0123 KPWO56@k7@G89GHJ 5JTEXEMPTV00117-NOV-1996 13:23 VAX MACRO V5.4-3MACRO JTEXEMPT);set this process exempt from eacf etc.JTEXEMPT CLI$GET_VALUE CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T IOC$SEARCHDEV JTEMITLOG MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$ASSIGN SYS$CMKRNL SYS$DASSGN SYS$GETDVI SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPЕ ADVDD_DATAPhd8 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%QQ   DSC$K_DTYPE_T%@ Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQx:d#Г ГДQQ ADVDD_CODEP ADVDD&hTX\ `Џd CLI$PRESENTP CLI$_PRESENTT CLI$GET_VALUEP1|~ SYS$ASSIGNP1u|~t<~ SYS$GETDVIP1QT JTEMITLOG   SYS$CMKRNLP)P|x SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN  BASHUCB& CTL$GL_PCBTl SCH$IOLOCKWЬQ IOC$SEARCHDEVP 1P1QUŌH CTL$GL_PCBTT6Ф`VVDDVHHVLLVPPP1=Ф`VDVDHVHLVLPVPPP SCH$IOUNLOCKЎP& ADVDD BASHUCB2 ADVDD_DATAЕ ADVDD_CODE%*[EVERHART.JTDEMO]JTEXEMPT.OBJ_VAX62;3+,. / 4 - 0123KPWO56dG=7սV=89GHJ 5JTEXEMPTV001 4-FEB-1997 12:23 VAX MACRO V5.4-3MACRO JTEXEMPT);set this process exempt from eacf etc.JTEXEMPT CLI$GET_VALUE CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T IOC$SEARCHDEV JTEMITLOG MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$ASSIGN SYS$CMKRNL SYS$DASSGN SYS$GETDVI SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPЕ ADVDD_DATAPhd8 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%QQ   DSC$K_DTYPE_T%@ Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQx:d#Г ГДQQ ADVDD_CODEP ADVDD&hTX\ `Џd CLI$PRESENTP CLI$_PRESENTT CLI$GET_VALUEP1|~ SYS$ASSIGNP1u|~t<~ SYS$GETDVIP1QT JTEMITLOG   SYS$CMKRNLP)P|x SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN  BASHUCB& CTL$GL_PCBTl SCH$IOLOCKWЬQ IOC$SEARCHDEVP 1P1QUŌH CTL$GL_PCBTT6Ф`VVDDVHHVLLVPPP1=Ф`VDVDHVHLVLPVPPP SCH$IOUNLOCKЎP& ADVDD BASHUCB2 ADVDD_DATAЕ ADVDD_CODE%*[EVERHART.JTDEMO]JTEXEMPT.OBJ_VAX71;1+,] . / 4 - 0123KPWO56N789GHJ 5JTEXEMPTV00129-JAN-1996 09:20 VAX MACRO V5.4-3MACRO JTEXEMPT);set this process exempt from eacf etc.JTEXEMPT CLI$GET_VALUE CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T IOC$SEARCHDEV JTEMITLOG MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$ASSIGN SYS$CMKRNL SYS$DASSGN SYS$GETDVI SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPЕ ADVDD_DATAPhd8 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%QQ   DSC$K_DTYPE_T%@ Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQx:d#Г ГДQQ ADVDD_CODEP ADVDD&hTX\ `Џd CLI$PRESENTP CLI$_PRESENTT CLI$GET_VALUEP1|~ SYS$ASSIGNP1u|~t<~ SYS$GETDVIP1QT JTEMITLOG   SYS$CMKRNLP)P|x SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN  BASHUCB& CTL$GL_PCBTl SCH$IOLOCKWЬQ IOC$SEARCHDEVP 1P1QUŌH CTL$GL_PCBTT6Ф`VVDDVHHVLLVPPP1=Ф`VDVDHVHLVLPVPPP SCH$IOUNLOCKЎP& ADVDD BASHUCB2 ADVDD_DATAЕ ADVDD_CODEp*@ SAFETY013.A^  %[EVERHART.JTDEMO]JTEXEMPT2.OBJ_AXP6;21;1p  %*[EVERHART.JTDEMO]JTEXEMPT2.OBJ_AXP6;2+,^ ./ 4p - 0123KPWO56$\z7\z89GHJDDJTEXEMPTV00112-SEP-1996 21:27AMAC V2.1-13` `P$LINKAGE ADVDD_CODEЕ ADVDD_DATA $ABS$ . BLANK . . ABS . DSC$K_DTYPE_T( MYFDSC CLI$PRESENT CLI$_PRESENT CLI$GET_VALUE SYS$ASSIGN SYS$GETDVI JTEMITLOG SYS$CMKRNL SYS$PUTMSG SYS$DASSGN CTL$GL_PCB SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCK(JXADVDD(J0BASHUCB ;  SYS$ASSIGN""  SYS$CMKRNL"7 CLI$_PRESENT@  CLI$GET_VALUE""=X=0 ;=p/ =;  SYS$DASSGN" CLI$PRESENT" JTEMITLOG SYS$PUTMSG""  SYS$GETDVI""" =0( 0;=/ ="7 CTL$GL_PCB  SCH$IOLOCKW  IOC$SEARCHDEV=p@  SCH$IOUNLOCKp p =>C~^^~ (0޴8@H>P^X~` GhG(-h4GTGXTG\q?#`Q"HMd1Pm4G@Zk(m0@T0CTMS"m3""tG@Zk( 4G8M@mJG@ZkG^~ (0ޤ8@H>P^X~`hCk(ͦGMGmG6""@Zk( >CxMmGG8>Ctx"ޢG J޶GG@ZkC(mT; XM`mG@Zk( TGM mC@Zk(05@|hMGpmGGx"G@Zk(m4G8M@mJ@ZkGG>C~(^0^8~@HP޴X`h>p^x~ GG(m0Ml8m =@Zk =@MHmC@Zk`M>Chm @Zk CG(0^8~@HPޤX`h>p^x~Ck/CE?'p9#2YC@( TעĠe2@@峐2@@峔2@@峘%2@@4G/GÌŢĠ4GŰÐE@Ű4GG4GŰGeŰ4GØŰ4GG4 pG CLI$PRESENT4 xm#X CLI$PRESENT4 @ CLI$PRESENT4G CLI$GET_VALUE4m#X CLI$GET_VALUE4@ CLI$GET_VALUE4G SYS$DASSGN4m#X SYS$DASSGN4@ SYS$DASSGN4(GD SYS$ASSIGN40m#X SYS$ASSIGN4@@D SYS$ASSIGN4PG SYS$GETDVI4Tm#X SYS$GETDVI4@ SYS$GETDVI4 G JTEMITLOG4 m#X JTEMITLOG4 @ JTEMITLOG4G SYS$CMKRNL4m#X SYS$CMKRNL4@ SYS$CMKRNL4 G SYS$PUTMSG4m#X SYS$PUTMSG4 @ SYS$PUTMSG4 G  SYS$DASSGN4m#X SYS$DASSGN4@  SYS$DASSGN4G SCH$IOLOCKW4m# SCH$IOLOCKW4@ SCH$IOLOCKW4G IOC$SEARCHDEV4m# IOC$SEARCHDEV4@ IOC$SEARCHDEV4G SCH$IOUNLOCK4m# SCH$IOUNLOCK4@ SCH$IOUNLOCKP P =4=4h4d48 4=44=SYS$DISKd=(<4p= ( <4d4=l4=4=80==(4 =( 44=4=44= h=(@4t=( @4h4=p4=4= = DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= 4=UNIT4=FNAM4= NORMAL 4=NLA0:= DSC$K_DTYPE_T2=4= =4 44 4= DSC$K_DTYPE_T2=@ 4@=PF , DSC$K_DTYPE_T2=4=(=GCEV=\= 0t=@4:d4=#Г4= Г4=Д4=   X%*[EVERHART.JTDEMO]JTEXEMPT2.OBJ_VAX5;3+,_ . / 4 - 0123 KPWO567 z89GHJ 5JTEXEMPTV00117-NOV-1996 13:28 VAX MACRO V5.4-3MACRO JTEXEMPT2);set this process exempt from eacf etc.JTEXEMPT CLI$GET_VALUE CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T IOC$SEARCHDEV MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$ASSIGN SYS$CMKRNL SYS$DASSGN SYS$GETDVI SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPЕ ADVDD_DATAPhd8 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%QQ   DSC$K_DTYPE_T%@ Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQx:d#Г ГДQQ ADVDD_CODEP ADVDD&hTX\ `Џd CLI$PRESENTP CLI$_PRESENTT CLI$GET_VALUEP1|~ SYS$ASSIGNP1f|~t<~ SYS$GETDVIP1B  SYS$CMKRNLP)P|x SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBTl SCH$IOLOCKWЬQ IOC$SEARCHDEVP 1P1QUŌH CTL$GL_PCBTT6Ф`VVDDVHHVLLVPPP1=Ф`VDVDHVHLVLPVPPP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATAЕ ADVDD_CODE&*[EVERHART.JTDEMO]JTEXEMPT2.OBJ_VAX62;2+,a . / 4 - 0123KPWO56皇7m~89GHJ 5JTEXEMPTV00116-SEP-1996 10:44 VAX MACRO V5.4-3MACRO JTEXEMPT2);set this process exempt from eacf etc.JTEXEMPT CLI$GET_VALUE CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T IOC$SEARCHDEV MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$ASSIGN SYS$CMKRNL SYS$DASSGN SYS$GETDVI SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPЕ ADVDD_DATAPhd8 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%QQ   DSC$K_DTYPE_T%@ Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQx:d#Г ГДQQ ADVDD_CODEP ADVDD&hTX\ `Џd CLI$PRESENTP CLI$_PRESENTT CLI$GET_VALUEP1|~ SYS$ASSIGNP1f|~t<~ SYS$GETDVIP1B  SYS$CMKRNLP)P|x SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBTl SCH$IOLOCKWЬQ IOC$SEARCHDEVP 1P1QUŌH CTL$GL_PCBTT6Ф`VVDDVHHVLLVPPP1=Ф`VDVDHVHLVLPVPPP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATAЕ ADVDD_CODE&*[EVERHART.JTDEMO]JTEXEMPT2.OBJ_VAX71;1+,e . / 4 - 0123KPWO567N7`489GHJ 5JTEXEMPTV00129-JAN-1996 09:20 VAX MACRO V5.4-3MACRO JTEXEMPT2);set this process exempt from eacf etc.JTEXEMPT CLI$GET_VALUE CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T IOC$SEARCHDEV MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$ASSIGN SYS$CMKRNL SYS$DASSGN SYS$GETDVI SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPЕ ADVDD_DATAPhd8 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%QQ   DSC$K_DTYPE_T%@ Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQx:d#Г ГДQQ ADVDD_CODEP ADVDD&hTX\ `Џd CLI$PRESENTP CLI$_PRESENTT CLI$GET_VALUEP1|~ SYS$ASSIGNP1f|~t<~ SYS$GETDVIP1B  SYS$CMKRNLP)P|x SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBTl SCH$IOLOCKWЬQ IOC$SEARCHDEVP 1P1QUŌH CTL$GL_PCBTT6Ф`VVDDVHHVLLVPPP1=Ф`VDVDHVHLVLPVPPP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATAЕ ADVDD_CODEp+@ SAFETY013.Af  [EVERHART.JTDEMO]JTEXFIX.CLD;5BJ_VAX71;1M Y*[EVERHART.JTDEMO]JTEXFIX.CLD;5+,f . / 4M j- 0123 KPWO567'3Z89GHJ%! Set up JT open/extend/delete daemonDEFINE VERB JXFIX IMAGE gcy$sys:jtexfixH! parameter p1,prompt="JTn:",value(required,type=$device),label=UNIT?! parameter p2,label=FNAM,prompt="file",value(type=$infile) qualifier NORMAL qualifier ALL6! /NORMAL causes process not to be exempt from filters2! no qualifier causes softlinks not to be followed6! /ALL qualifier causes process not to filter anything1!sets or resets "exempt from eacf" process statusM!should need only p1 arg and /normal if resetting exempt status to NOT exempt!.! Treat with care just as jtexempt is treated.*[EVERHART.JTDEMO]JTEXFIX.OBJ;3+,i . / 4 6- 0123 KPWO56 o{7_Jè89GHJ 5JTEXESETV00115-SEP-1996 16:08 VAX MACRO V5.4-3MACRO JTEXFIX(; Set the process for exemption levelsJTEXESET CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T MYFDSC SCH$GL_PCBVEC SCH$IOLOCKW SCH$IOUNLOCK SYS$CMKRNL SYS$DASSGN SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ADVDD_DATAPhdD 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3ALLQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%$QQ,(,  DSC$K_DTYPE_T%L Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQ:t# QQN ADVDD_CODEP ADVDD&Oxdhl p`Џt CLI$PRESENTP CLI$_PRESENTd CLI$PRESENTP CLI$_PRESENT`d  SYS$CMKRNLP)P SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBT SCH$IOLOCKW CTL$GL_PCBTdʏ(P1QѤ `< Z SCH$GL_PCBVEC[JkYթ`ѩ` ӏ(ӏ(ȏ(`ʏ(PP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATA ADVDD_CODEN *[EVERHART.JTDEMO]JTEXFIX.OBJ_A;8+,l ./ 4|  - 0123KPWO 56;o7`o89GHJDDJTEXESETV00117-AUG-1996 13:19AMAC V3.0-19  . ABS . . BLANK . $ABS$ ADVDD_DATAL ADVDD_CODE$LINKAGE DSC$K_DTYPE_T( MYFDSC CLI$PRESENT CLI$_PRESENT SYS$CMKRNL SYS$PUTMSG SYS$DASSGN CTL$GL_PCB SCH$IOLOCKW SCH$GL_PCBVEC SCH$IOUNLOCK(JADVDD(JBASHUCB| | =4=4h4d4D 4=44=SYS$DISKd=(<4p= ( <4d4=l4=4=80==(4 =( 44=4=44= h=(@4t=( @4h4=p4=4= = DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= 4=UNIT4=FNAM4= NORMAL 4=ALL4=NLA0:= DSC$K_DTYPE_T2=$4$=, =4,4(4, 4= DSC$K_DTYPE_T2=L 4L=XJ , DSC$K_DTYPE_T2=4=(=GCEVȏ=l= 0=@4:t4=#4= 4=4=  =TL#~^^~ (0޴8@H>P^X~` GhG(-##x _#d?#h"lqpQ@M`t1?#Hm@Zk0G(-0@d0Cd@M"Hm?#@Zk0M(MG0@`0C`dM 2"P ?#m@Zk(05@G$"pM_"xm?""?#@ZkG(M?#hmZ#`MJG@ZkGG^~ (0ޤ8@H>P^X~`hp#kG#~^ ^(~08@޴HPX>`^h~p GxG 0M8mG@ZkM mdZ#:G! &"F /PM#Xm#@Zk ##GG ^(~08@ޤHPX>`^h~px#k|d0C@M|Dz@I G GYKA9 G)?|08B)&"7F&"6F-D'#`9#\GDĢ'#FIJ 4pG CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4G, SYS$PUTMSG4m# SYS$PUTMSG4(@, SYS$PUTMSG48m# SYS$DASSGN4DGT SYS$DASSGN4P@T SYS$DASSGN4 G SCH$IOLOCKW4 m# SCH$IOLOCKW4 @ SCH$IOLOCKW4 8GP SCH$IOUNLOCK4 @m# SCH$IOUNLOCK4 L@P SCH$IOUNLOCK =0 ;=p/ =;7 CLI$_PRESENT@  CLI$PRESENT";`  SYS$DASSGN"  SYS$PUTMSG""  SYS$CMKRNL"=0;=/ 7 CTL$GL_PCB SCH$IOLOCKW7 SCH$GL_PCBVEC SCH$IOUNLOCK #*[EVERHART.JTDEMO]JTEXFIX.OBJ_AXP6;4+,m ./ 4|  |- 0123KPWO 56 37`s0489GHJDDJTEXESETV001 5-OCT-1996 10:54AMAC V2.1-13 $LINKAGE ADVDD_CODE ADVDD_DATA $ABS$ . BLANK . . ABS . DSC$K_DTYPE_T( MYFDSC CLI$PRESENT CLI$_PRESENT SYS$CMKRNL SYS$PUTMSG SYS$DASSGN CTL$GL_PCB SCH$IOLOCKW SCH$GL_PCBVEC SCH$IOUNLOCK(JADVDD(JBASHUCB =0 ;=p/ =;=87 CLI$_PRESENT  CLI$PRESENT"  SYS$DASSGN"  SYS$CMKRNL"  SYS$PUTMSG"";=0;= / 7 CTL$GL_PCB= SCH$IOLOCKW SCH$IOUNLOCK7 SCH$GL_PCBVECl l=>C~^^~ (0޴8@H>P^X~` GhG(-x4GdGhTGlq?#pQ"@M`t14GHm@Zk8(-0@d0Cd@M"Hm4G@Zk8M(M0@`0C`d`MABhmTG @Zk(05@pMGxmGG"G@Zk(M4GXmPMJG@ZkG^~ (0ޤ8@H>P^X~`hCkGGG>C~^ ^(~08@޴HPX>`^h~px GG(8M@m@ZkM(md: &F4G/HM>CPm @Zk CG ^(~08@ޤHPX>`^h~pxCk/|d0CXM|Dz@IYKA9)?|08B)&7F&6FD'-\GD`Ģ'FIJ4G/4pG CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4G  SYS$PUTMSG4m# SYS$PUTMSG4@  SYS$PUTMSG4(m# SYS$DASSGN40G@ SYS$DASSGN4<@@ SYS$DASSGN4 G SCH$IOLOCKW4 m# SCH$IOLOCKW4 @ SCH$IOLOCKW4 G, SCH$IOUNLOCK4  m# SCH$IOUNLOCK4 (@, SCH$IOUNLOCK| | =4=4h4d4D 4=44=SYS$DISKd=(<4p= ( <4d4=l4=4=80==(4 =( 44=4=44= h=(@4t=( @4h4=p4=4= = DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= 4=UNIT4=FNAM4= NORMAL 4=ALL4=NLA0:= DSC$K_DTYPE_T2=$4$=, =4,4(4, 4= DSC$K_DTYPE_T2=L 4L=XJ , DSC$K_DTYPE_T2=4=(=GCEVȏ=l= 0=@4:t4=#4= 4=4=  ,@ SAFETY013.An  #[EVERHART.JTDEMO]JTEXFIX.OBJ_VAX5;6.ZIP;1 e#*[EVERHART.JTDEMO]JTEXFIX.OBJ_VAX5;6+,n . / 4 6- 0123 KPWO56C7389GHJ 5JTEXESETV00117-NOV-1996 13:24 VAX MACRO V5.4-3MACRO JTEXFIX(; Set the process for exemption levelsJTEXESET CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T MYFDSC SCH$GL_PCBVEC SCH$IOLOCKW SCH$IOUNLOCK SYS$CMKRNL SYS$DASSGN SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ADVDD_DATAPhdD 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3ALLQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%$QQ,(,  DSC$K_DTYPE_T%L Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQ:t# QQN ADVDD_CODEP ADVDD&Oxdhl p`Џt CLI$PRESENTP CLI$_PRESENTd CLI$PRESENTP CLI$_PRESENT`d  SYS$CMKRNLP)P SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBT SCH$IOLOCKW CTL$GL_PCBTdʏ(P1QѤ `< Z SCH$GL_PCBVEC[JkYթ`ѩ` ӏ(ӏ(ȏ(`ʏ(PP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATA ADVDD_CODEN$*[EVERHART.JTDEMO]JTEXFIX.OBJ_VAX62;4+,. / 4 6- 0123KPWO56`=7r=89GHJ 5JTEXESETV001 4-FEB-1997 12:20 VAX MACRO V5.4-3MACRO JTEXFIX(; Set the process for exemption levelsJTEXESET CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T MYFDSC SCH$GL_PCBVEC SCH$IOLOCKW SCH$IOUNLOCK SYS$CMKRNL SYS$DASSGN SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ADVDD_DATAPhdD 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3ALLQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%$QQ,(,  DSC$K_DTYPE_T%L Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQ:t# QQN ADVDD_CODEP ADVDD&Oxdhl p`Џt CLI$PRESENTP CLI$_PRESENTd CLI$PRESENTP CLI$_PRESENT`d  SYS$CMKRNLP)P SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBT SCH$IOLOCKW CTL$GL_PCBTdʏ(P1QѤ `< Z SCH$GL_PCBVEC[JkYթ`ѩ` ӏ(ӏ(ȏ(`ʏ(PP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATA ADVDD_CODEN$*[EVERHART.JTDEMO]JTEXFIX.OBJ_VAX71;1+,q . / 4 6- 0123KPWO56nON7 U89GHJ 5JTEXESETV00129-JAN-1996 09:18 VAX MACRO V5.4-3MACRO JTEXFIX(; Set the process for exemption levelsJTEXESET CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T MYFDSC SCH$GL_PCBVEC SCH$IOLOCKW SCH$IOUNLOCK SYS$CMKRNL SYS$DASSGN SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ADVDD_DATAPhdD 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3ALLQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%$QQ,(,  DSC$K_DTYPE_T%L Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQ:t# QQN ADVDD_CODEP ADVDD&Oxdhl p`Џt CLI$PRESENTP CLI$_PRESENTd CLI$PRESENTP CLI$_PRESENT`d  SYS$CMKRNLP)P SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBT SCH$IOLOCKW CTL$GL_PCBTdʏ(P1QѤ `< Z SCH$GL_PCBVEC[JkYթ`ѩ` ӏ(ӏ(ȏ(`ʏ(PP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATA ADVDD_CODEN"*[EVERHART.JTDEMO]JTEXFIXNT.OBJ_A;1+,t ./ 4|  - 0123KPWO 56'o7@Io89GHJDDJTEXESETV00117-AUG-1996 13:20AMAC V3.0-19  . ABS . . BLANK . $ABS$ ADVDD_DATA ADVDD_CODE$LINKAGE DSC$K_DTYPE_T( MYFDSC CLI$PRESENT CLI$_PRESENT SYS$CMKRNL SYS$PUTMSG SYS$DASSGN CTL$GL_PCB SCH$IOLOCKW SCH$IOUNLOCK(JADVDD(JBASHUCB| | =4=4h4d4D 4=44=SYS$DISKd=(<4p= ( <4d4=l4=4=80==(4 =( 44=4=44= h=(@4t=( @4h4=p4=4= = DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= 4=UNIT4=FNAM4= NORMAL 4=ALL4=NLA0:= DSC$K_DTYPE_T2=$4$=, =4,4(4, 4= DSC$K_DTYPE_T2=L 4L=XJ , DSC$K_DTYPE_T2=4=(=GCEVȏ=l= 0=@4:t4=#4= 4=4= D D=#~^^~ (0޴8@H>P^X~` GhG(-##x _#d?#h"lqpQ@M`t1?#Hm@Zk0G(-0@d0Cd@M"Hm?#@Zk0M(MG0@`0C`dM 2"P ?#m@Zk(05@G$"pM_"xm?""?#@ZkG(M?#hmZ#`MJG@ZkGG^~ (0ޤ8@H>P^X~`hp#kG#~^ ^(~08@޴HPX>`^h~p GxG 0M8mG@ZkM mdZ#:G! &"F /@M#Hm#@Zk ##GG ^(~08@ޤHPX>`^h~px#k-'D#`9#\GDĢ'#FIJ 4pG CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4G, SYS$PUTMSG4m# SYS$PUTMSG4(@, SYS$PUTMSG48m# SYS$DASSGN4DGT SYS$DASSGN4P@T SYS$DASSGN4 G SCH$IOLOCKW4 m# SCH$IOLOCKW4 @ SCH$IOLOCKW4 8GP SCH$IOUNLOCK4 @m# SCH$IOUNLOCK4 L@P SCH$IOUNLOCK =0 ;=p/ =;7 CLI$_PRESENT@  CLI$PRESENT";`  SYS$DASSGN"  SYS$PUTMSG""  SYS$CMKRNL"=0;=/ 7 CTL$GL_PCB SCH$IOLOCKW SCH$IOUNLOCK !*[EVERHART.JTDEMO]JTEXPUNGE.COM;10+,u . / 4( J- 0123 KPWO567-89GHJ$assign/user "YES" GCY$DELNOW($delete 'p1''p2''p3''p4''p5''p6''p7''p8'*[EVERHART.JTDEMO]JTEXSET.CLD;2+,v . / 4M j- 0123 KPWO56qm}.7JUW89GHJ%! Set up JT open/extend/delete daemonDEFINE VERB JXSET IMAGE gcy$sys:jtexsetH! parameter p1,prompt="JTn:",value(required,type=$device),label=UNIT?! parameter p2,label=FNAM,prompt="file",value(type=$infile) qualifier NORMAL qualifier ALL6! /NORMAL causes process not to be exempt from filters2! no qualifier causes softlinks not to be followed6! /ALL qualifier causes process not to filter anything1!sets or resets "exempt from eacf" process statusM!should need only p1 argP-@ SAFETY013.Av  [EVERHART.JTDEMO]JTEXSET.CLD;2;17CE.ZIP;1M  and /normal if resetting exempt status to NOT exempt!.! Treat with care just as jtexempt is treated.*[EVERHART.JTDEMO]JTEXSET.OBJ;2+,| . / 4 - 0123 KPWO56K7ߢè89GHJ 5JTEXESETV00115-SEP-1996 16:08 VAX MACRO V5.4-3MACRO JTEXSET(; Set the process for exemption levelsJTEXESET CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T JTEMITLOG MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$CMKRNL SYS$DASSGN SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ADVDD_DATAPhdD 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3ALLQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%$QQ,(,  DSC$K_DTYPE_T%L Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQ:t# QQ ADVDD_CODEP ADVDD&^xdhl p`Џt CLI$PRESENTP CLI$_PRESENTd CLI$PRESENTP CLI$_PRESENT`d JTEMITLOG  SYS$CMKRNLP)P SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBT SCH$IOLOCKW CTL$GL_PCBTdʏ(P1ȏ(`ʏ(PP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATA ADVDD_CODE *[EVERHART.JTDEMO]JTEXSET.OBJ_A;7+,} ./ 4|  - 0123KPWO 56|e 7 89GHJDDJTEXESETV00113-APR-1996 19:28AMAC V3.0-13  . ABS . . BLANK . $ABS$ ADVDD_DATA ADVDD_CODE@$LINKAGE DSC$K_DTYPE_T( MYFDSC CLI$PRESENT CLI$_PRESENT JTEMITLOG SYS$CMKRNL SYS$PUTMSG SYS$DASSGN CTL$GL_PCB SCH$IOLOCKW SCH$IOUNLOCK(J`ADVDD(JBASHUCB| | =4=4h4d4D 4=44=SYS$DISKd=(<4p= ( <4d4=l4=4=80==(4 =( 44=4=44= h=(@4t=( @4h4=p4=4= = DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= 4=UNIT4=FNAM4= NORMAL 4=ALL4=NLA0:= DSC$K_DTYPE_T2=$4$=, =4,4(4, 4= DSC$K_DTYPE_T2=L 4L=XJ , DSC$K_DTYPE_T2=4=(=GCEVȏ=l= 0=@4:t4=#4= 4=4=  =#~^^~ (0޴8@H>P^X~`h GG(mHM?#: "Pͦ #m_#@-Y ?#0M8m@ZkG0@(ͦv0`Cvx ?#0M8m@ZkG-0@ آ0Bز(|`?#Mm@ZkG- ?#Mm@ZkG05@$ "_"?"X ?#`Mhm@ZkGpͦJG?#Mm@ZkGG^~ (0ޤ8@H>P^X~`hp#kG#~^ ^(~08@޴HPX>`^h~px GG G0M8m@Zk mGM:! &"F ##@MHm@Zk #G#G ^(~08@ޤHPX>`^h~px#k'#D\GDh-Ģ'#FIJ 4G CLI$PRESENT4m#` CLI$PRESENT4@ CLI$PRESENT4G CLI$PRESENT4m#` CLI$PRESENT4@ CLI$PRESENT4G JTEMITLOG4m#` JTEMITLOG4 @ JTEMITLOG4  G, SYS$CMKRNL4 $m#` SYS$CMKRNL4 (@, SYS$CMKRNL4TG` SYS$PUTMSG4Xm#` SYS$PUTMSG4\@` SYS$PUTMSG4xG SYS$DASSGN4|m#` SYS$DASSGN4@ SYS$DASSGN4 $G0 SCH$IOLOCKW4 (m# SCH$IOLOCKW4 ,@0 SCH$IOLOCKW4 pG| SCH$IOUNLOCK4tm# SCH$IOUNLOCK4 x@| SCH$IOUNLOCK ; ;  JTEMITLOG  SYS$DASSGN";l;x;;7 CLI$_PRESENT`;=0 ;=p/ =d;  CLI$PRESENT"t;h;p;;  SYS$PUTMSG"";; SYS$CMKRNL"=0;=/ 7 CTL$GL_PCB  SCH$IOLOCKW SCH$IOUNLOCK `#*[EVERHART.JTDEMO]JTEXSET.OBJ_AXP6;3+,~ ./ 4|  - 0123KPWO 56&G47u489GHJDDJTEXESETV001 5-OCT-1996 10:55AMAC V2.1-13 $LINKAGE ADVDD_CODE ADVDD_DATA $ABS$ . BLANK . . ABS . DSC$K_DTYPE_T( MYFDSC CLI$PRESENT CLI$_PRESENT JTEMITLOG SYS$CMKRNL SYS$PUTMSG SYS$DASSGN CTL$GL_PCB SCH$IOLOCKW SCH$IOUNLOCK(JADVDD(JBASHUCBH H=0 ;=p/ =;=87 CLI$_PRESENT  CLI$PRESENT";`  SYS$PUTMSG""  SYS$DASSGN"  JTEMITLOG SYS$CMKRNL"=0;= / 7 CTL$GL_PCB= SCH$IOUNLOCK SCH$IOLOCKW =>C~^^~ (0޴8@H>P^X~` GhG(-x4GdGhTGlq?#pQ"@M`t14GHm@Zk8(-0@d0Cd@M"Hm4G@Zk8M0@(-`#آ0Bز(Gd\@Mm@Zk(-MP !CmTG@Zk(05@`MGhmGG"G@Zk(4GpMxmJG@ZkG^~ (0ޤ8@H>P^X~`hCkGGG>C~^ ^(~08@޴HPX>`^h~px GG(PMXm@ZkM(md: &F4G/@M>CHm @Zk CG ^(~08@ޤHPX>`^h~pxCk/D'-\GD`Ģ'FIJ4G/4pG CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G CLI$PRESENT4m# CLI$PRESENT4@ CLI$PRESENT4G JTEMITLOG4m# JTEMITLOG4@ JTEMITLOG4 G SYS$CMKRNL4 m# SYS$CMKRNL4  @ SYS$CMKRNL4 G@ SYS$PUTMSG4(m# SYS$PUTMSG4<@@ SYS$PUTMSG4HG` SYS$DASSGN4Lm# SYS$DASSGN4\@` SYS$DASSGN4 G  SCH$IOLOCKW4m# SCH$IOLOCKW4 @  SCH$IOLOCKW4 8GL SCH$IOUNLOCK4 @m# SCH$IOUNLOCK4 H@L SCH$IOUNLOCK| | =4=4h4d4D 4=44=SYS$DISKd=(<4p= ( <4d4=l4=4=80==(4 =( 44=4=44= h=(@4t=( @4h4=p4=4= = DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4= 4=UNIT4=FNAM4= NORMAL 4=ALL4=NLA0:= DSC$K_DTYPE_T2=$4$=, =4,4(4, 4= DSC$K_DTYPE_T2=L 4L=XJ , DSC$K_DTYPE_T2=4=(=GCEVȏ=l= 0=@4:t4=#4= 4=4=  .@ SAFETY013.A~  #[EVERHART.JTDEMO]JTEXSET.OBJ_AXP6;3.ZIP;1|  #*[EVERHART.JTDEMO]JTEXSET.OBJ_VAX5;6+, . / 4 - 0123 KPWO56@7@Y89GHJ 5JTEXESETV00117-NOV-1996 13:25 VAX MACRO V5.4-3MACRO JTEXSET(; Set the process for exemption levelsJTEXESET CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T JTEMITLOG MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$CMKRNL SYS$DASSGN SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ADVDD_DATAPhdD 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3ALLQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%$QQ,(,  DSC$K_DTYPE_T%L Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQ:t# QQ ADVDD_CODEP ADVDD&^xdhl p`Џt CLI$PRESENTP CLI$_PRESENTd CLI$PRESENTP CLI$_PRESENT`d JTEMITLOG  SYS$CMKRNLP)P SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBT SCH$IOLOCKW CTL$GL_PCBTdʏ(P1ȏ(`ʏ(PP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATA ADVDD_CODE$*[EVERHART.JTDEMO]JTEXSET.OBJ_VAX62;4+,. / 4 - 0123KPWO56~=7A=89GHJ 5JTEXESETV001 4-FEB-1997 12:23 VAX MACRO V5.4-3MACRO JTEXSET(; Set the process for exemption levelsJTEXESET CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T JTEMITLOG MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$CMKRNL SYS$DASSGN SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ADVDD_DATAPhdD 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3ALLQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%$QQ,(,  DSC$K_DTYPE_T%L Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQ:t# QQ ADVDD_CODEP ADVDD&^xdhl p`Џt CLI$PRESENTP CLI$_PRESENTd CLI$PRESENTP CLI$_PRESENT`d JTEMITLOG  SYS$CMKRNLP)P SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBT SCH$IOLOCKW CTL$GL_PCBTdʏ(P1ȏ(`ʏ(PP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATA ADVDD_CODE$*[EVERHART.JTDEMO]JTEXSET.OBJ_VAX71;1+, . / 4 - 0123KPWO56gN77w89GHJ 5JTEXESETV00129-JAN-1996 09:18 VAX MACRO V5.4-3MACRO JTEXSET(; Set the process for exemption levelsJTEXESET CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T JTEMITLOG MYFDSC SCH$IOLOCKW SCH$IOUNLOCK SYS$CMKRNL SYS$DASSGN SYS$PUTMSG . ABS .P$ABS$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ADVDD_DATAPhdD 03SYS$DISKQ&QQ((<Q( <dlQQ((Q( 4Q((@Q( @hpQ DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q DSC$K_DTYPE_T%Q3UNITQ&Q 3FNAMQ&Q 3NORMALQ&Q 3ALLQ&Q 3NLA0:Q&Q Q DSC$K_DTYPE_T%$QQ,(,  DSC$K_DTYPE_T%L Q , DSC$K_DTYPE_T%QQGCEVQQQQ 0QQ:t# QQ ADVDD_CODEP ADVDD&^xdhl p`Џt CLI$PRESENTP CLI$_PRESENTd CLI$PRESENTP CLI$_PRESENT`d JTEMITLOG  SYS$CMKRNLP)P SYS$PUTMSG<~ SYS$DASSGN<~ SYS$DASSGN BASHUCB& CTL$GL_PCBT SCH$IOLOCKW CTL$GL_PCBTdʏ(P1ȏ(`ʏ(PP SCH$IOUNLOCKЎP& ADVDDBASHUCB2 ADVDD_DATA ADVDD_CODE!*[EVERHART.JTDEMO]JTFILALERT.COM;3+, . / 4O - 0123 KPWO56w3Y7@ɡ}3Y89GHJ $set noon$$!filtall.com, to be kept in gcy$sys,$!arguments: fileid(hex), username, uic(hex)A$!pid(hex),accmode(hex)[i.e., how-open request flags], devicename($!open/write flo gcy$scratch:filtlog.log($!write flo "paranoid mode open attempt"!$!write flo "P1 (FID part 1):",p1!$!write flo "P2 (FID part 2):",p2!$!write flo "P3 (username) :",p3!$!write flo "P4 (UIC) :",p4!$!write flo "P5 (PID) :",p5!$!write flo "P6 (accmd) :",p6!$!write flo "P7 (devicename):",P7'$!write flo "P8 (should be 0 or 1):",p8 $!close flo $filnm=%x'p1'$filnm=filnm .and. 655351$! Now file number is in filnm for use with find.F$! Get devicename fixed up if it has alloclass. Needs leading $ if so. $ advcnm = p7 $ d1loc=f$locate("$",advcnm) + 1!$ dvcnm=f$extract(0,d1loc,advcnm)$ sho sym dvcnm$ advcnm=advcnm - dvcnm$ d2loc=f$locate("$",advcnm)$ ! get rid of $ before unit #D$ dvcnm=dvcnm+f$extract(0,d2loc,advcnm)+f$extract(d2loc+1,64,advcnm)$ sho sym dvcnm$ dvcnm=dvcnm+":"$ ct=f$extract(0,1,p7)=$ if ct .ges. "0" .and. ct .les. "9" then dvcnm = "$" + dvcnm+$! dvcnm is now the device name, so use it.#$ alnm="gcy$sys:alrt_"+p5+".ALARM." $find:==$findO$ fincmd="find/file=("+f$string(filnm)+")/display=fullname/out="+alnm+" "+dvcnm $ 'fincmd' $ fntxt=" "$ open ffff 'alnm'$ read ffff fntxt$ read ffff fntxt $ close ffff$ delete 'alnm'C$! Now we have the filename. Get the terminal where the user is and$! broadcast a message to him.E$! Since we have oper priv in the daemon here, we will just use REPLY$! to handle this.$!F$! Note that it is feasible to test for "known ok" files at this point#$! should we desire, or whatever...$!>$rplcmd="REPLY/USER="+p3+" "" *WARNING* Open of file:"""+fntxt $'rplcmd'$exit 1 *[EVERHART.JTDEMO]JTFILDEL.COM;24+, . / 4R - 0123 KPWO56@ɍ7`{ɍ89GHJ  $set noverify $set noon$set proc/priv=(all,nobypass)$set on$on warning then goto fxp$on error then goto fxp $jxfix/all $! FilDel.com=$! Copyright (c) 1994 Glenn C. Everhart. All Rights Reserved. $! Input:)$! @fildel dbnam hexfid1 hexfid2 filename+$! dbnam is jtd$db:op$dvc$unit.gdb or*$! jtd$db:op$dvc$unit.gdb%$! filename is reconstructed pathnameC$! We shall presume the "file.typ" is actually a complete file specB$! here. It is passed to filrst too, so we need only pick a uniqueA$! save name that can be restored & copy to delsav. Use backup to5$! do the copy so attrs & ownership can be preserved.$ file :==$gcy$sys:fileE$! GCY$DELEXC list may exist. Use it if present to do normal stuff to)$! files excluded from delete protection. $ infil=p4 $ inhx1=p2 $ inhx2=p3 $ ofnam=p5+$ if f$search(infil).eqs. "" then goto jnnx$ nodel=f$trnlnm("gcy$delexc")6$ if f$edit(nodel,"collapse") .eqs. "" then nodel = ""$$ if nodel .eqs. " " then nodel = ""$ if nodel .nes. ""$ then $ myelem=" " $ myecnt=0 $elemlop:-$if f$length(nodel) .lt. 2) then goto elemend%$ myelem=f$element(myecnt,",",nodel)'$ if myelem .eqs. "" then goto elemend$ myecnt=myecnt+1D$! since f$locate doesn't do wildcards, strip out * and hunt for the=$! rest of the string here. OK for e.g. *.obj* type excludes.$ myewrk=myelem$ myewrk2=myelem$astlop:$ myewrk = myewrk - "*"+$ if myewrk2 .eqs. myewrk then goto astend$ myewrk2 = myewrk#$ if myewrk .eqs. "" then goto fxp$ goto astlop$astend:7$! Exit the procedure if we find the substring in name.?$ if f$locate(myewrk,infil) .lt. f$length(infil) then goto fxp$ goto elemlop $elemend:$ endif-$ dvc=f$parse(infil,,,"device","syntax_only")#$ dvc=f$edit(dvc,"collapse,upcase")R$ fnam=f$parse(infil,,,"name","syntax_only")+f$parse(infil,,,"type","syntax_only")%$ fnam=f$edit(fnam,"collapse,upcase"):$ if f$length(fnam) .gt. 20 then fnam=f$extract(0,20,fnam)#$ ofilnm="delsav:"+inhx1+inhx2+fnam)$ ofilnm=f$edit(ofilnm,"collapse,upcase")$ ! move the fileJ$! Check for space on the output device and try to get same if we need it.M$! Do it here since we have only one daemon and so it won't run the makespace$! check for us...WE do it.$ ndspc=f$file(infil,"ALQ")%$ dvcspc=f$getdvi(ofnam,"freeblocks")$ ndspc=ndspc+40.$ odvc=f$parse(ofnam,,,"device","syntax_only")8$ if ndspc.gt.dvcspc then @gcy$sys:makspc 'odvc' 'ndspc'1$ backup/ign=inter/trunc 'infil' 'ofnam'/by_owner@$! Note we must NOT delete the file here lest we cause a loop!!!.$! This copies the file & deletes the original$! logo$jnnx: $jxfix/normal$exit 1$fxp: $set noon $jxfix/normal$exit 2"*[EVERHART.JTDEMO]JTFILEMARK.COM;37+, ./ 4M - 0123 KPWO56O 7O.89GHJ<$! Copyright (c) 1994 Glenn C. Everhart. All Rights Reserved $gosub prvget$sho sym prvsym$exitF$! Privilege mask generating subroutine. Toggles privs or allows privsJ$! to be all set or reset via menu. Output hex string in "prvsym" ready to!$! use for jtauthmaint et. alia. $! By Glenn Everhart, 5/19941$! Defaults to a mask with tmpmbx and netmbx set.$prvget: $set noverify$set comm sys$system:zmenu $pmf0=" " $pmf1=" " $pmf2=" " $pmf3=" " $pmf4=" " $pmf5=" " $pmf6=" " $pmf7=" " $pmf8=" " $pmf9=" " $pmf10=" " $pmf11=" " $pmf12=" " $pmf13=" " $pmf14=" " $pmf15="*" $pmf16=" " $pmf17=" " $pmf18=" " $pmf19=" " $pmf20="*" $pmf21=" " $pmf22=" " $pmf23=" " $pmf24=" " $pmf25=" " $pmf26=" " $pmf27=" " $pmf28=" " $pmf29=" " $pmf30=" " $pmf31=" " $qmf0=" " $qmf1=" " $qmf2=" " $qmf3=" " $qmf4=" " $qmf5=" " $qmf6=" " $qmf7=" " $qmf8=" " $qmf9=" " $qmf10=" " $qmf11=" " $qmf12=" " $qmf13=" " $qmf14=" " $qmf15=" " $qmf16=" " $qmf17=" "@/@ SAFETY013.A  "[EVERHART.JTDEMO]JTFILEMARK.COM;37E.ZIP;1M $qmf18=" " $qmf19=" " $qmf20=" " $qmf21=" " $qmf22=" " $qmf23=" " $qmf24=" " $qmf25=" " $qmf26=" " $qmf27=" " $qmf28=" " $qmf29=" " $qmf30=" " $qmf31=" " $prvlo1=32768 $prvlo2=16 $prvhi1=0 $prvhi2=0 $prvstr = ""$bt0=1$bt1=2$bt2=4$bt3=8$bt4=16 $bt5=%x20 $bt6=%x40 $bt7=%x80 $bt8=%x100 $bt9=%x200 $bt10=%x400 $bt11=%x800 $bt12=%x1000 $bt13=%x2000 $bt14=%x4000 $bt15=%x8000$xbt0=%xffff - 1$xbt1=%xffff - 2$xbt2=%xffff - 4$xbt3=%xffff - 8$xbt4=%xffff - 16$xbt5=%xffff - %x20$xbt6=%xffff - %x40$xbt7=%xffff - %x80$xbt8=%xffff - %x100$xbt9=%xffff - %x200$xbt10=%xffff - %x400$xbt11=%xffff - %x800$xbt12=%xffff - %x1000$xbt13=%xffff - %x2000$xbt14=%xffff - %x4000$xbt15=%xffff - %x8000$smptr=1 $dopvmenu: $dopvmnu:?$zmenu/POINTER="-->"/SYMBOLS/initial='f$string(smptr)'# Privilege Set UpG ^ Done setup ^ 'pmf17' MOUNT ^ 'qmf5' U05 ^ 'qmf25' U25G ^ Set all priv^ 'pmf18' OPER ^ 'qmf6' SECURITY ^ 'qmf26' U26G ^ Clr all priv^ 'pmf19' EXQUOTA ^ 'qmf7' U07 ^ 'qmf27' U27L ^ 'pmf0' CMKRNL ^ 'pmf20' NETMBX ^ 'qmf8' U08 ^ 'qmf28' U28L ^ 'pmf1' CMEXEC ^ 'pmf21' VOLPRO ^ 'qmf9' ACNT ^ 'qmf29' U29M ^ 'pmf2' SYSNAM ^ 'pmf22' PHY_IO ^ 'qmf10' U10 ^ 'qmf30' U30M ^ 'pmf3' GRPNAM ^ 'pmf23' BUGCHK ^ 'qmf11' U11 ^ 'qmf31' u31: ^ 'pmf4' ALLSPOOL ^ 'pmf24' PRMGBL ^ 'qmf12' U12= ^ 'pmf5' DETACH ^ 'pmf25' SYSGBL ^ 'qmf13' ALTPRI: ^ 'pmf6' DIAGNOSE ^ 'pmf26' PFNMAP ^ 'qmf14' U14: ^ 'pmf7' LOG_IO ^ 'pmf27' SHMEM ^ 'qmf15' U15: ^ 'pmf8' GROUP ^ 'pmf28' SYSPRV ^ 'qmf16' U16: ^ 'pmf9' NOACNT ^ 'pmf29' BYPASS ^ 'qmf17' U17; ^ 'pmf10' PRMCEB ^ 'pmf30' SYSLCK ^ 'qmf18' U18; ^ 'pmf11' PRMMBX ^ 'pmf31' SHARE ^ 'qmf19' U19: ^ 'pmf12' PSWAPM ^ 'qmf0' UPGRADE ^ 'qmf20' U20: ^ 'pmf13' SETPRI ^ 'qmf1' DOWNGRADE ^ 'qmf21' U21: ^ 'pmf14' SETPRV ^ 'qmf2' GRPPRV ^ 'qmf22' U22: ^ 'pmf15' TMPMBX ^ 'qmf3' READALL ^ 'qmf23' U23: ^ 'pmf16' WORLD ^ 'qmf4' U04 ^ 'qmf24' U24$! 1-20 21-40 41-60 61-67 $smptr=choice!$if choice .eq. 1 then goto pmsks&$if choice .gt. 3 .and. choice .lt. 20$ then$ bchc= choice - 4$ tmsk=prvlo1 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvlo1 = prvlo1 .and. xbt'bchc'$ pmf'bchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvlo1 = prvlo1 .or. bt'bchc'$ pmf'bchc' = "*"$ endif$ goto dopvmenu$ endif($ if choice .gt. 19 .and. choice .lt. 36$ then$ bchc= choice - 20$ bbchc = choice - 4$ tmsk=prvlo2 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvlo2 = prvlo2 .and. xbt'bchc'$ pmf'bbchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvlo2 = prvlo2 .or. bt'bchc'$ pmf'bbchc' = "*"$ endif$ goto dopvmenu$ endif($ if choice .gt. 35 .and. choice .lt. 52$ then$ bchc= choice - 36$ bbchc = choice - 36$ tmsk=prvhi1 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvhi1 = prvhi1 .and. xbt'bchc'$ qmf'bbchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvhi1 = prvhi1 .or. bt'bchc'$ qmf'bbchc' = "*"$ endif$ goto dopvmenu$ endif($ if choice .gt. 51 .and. choice .lt. 68$ then$ bchc= choice - 52$ bbchc = choice - 36$ tmsk=prvhi2 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvhi2 = prvhi2 .and. xbt'bchc'$ qmf'bbchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvhi2 = prvhi2 .or. bt'bchc'$ qmf'bbchc' = "*"$ endif$ goto dopvmenu$ endif$ if choice .eq. 2$ then$! set all privs $pmf0="*" $pmf1="*" $pmf2="*" $pmf3="*" $pmf4="*" $pmf5="*" $pmf6="*" $pmf7="*" $pmf8="*" $pmf9="*" $pmf10="*" $pmf11="*" $pmf12="*" $pmf13="*" $pmf14="*" $pmf15="*" $pmf16="*" $pmf17="*" $pmf18="*" $pmf19="*" $pmf20="*" $pmf21="*" $pmf22="*" $pmf23="*" $pmf24="*" $pmf25="*" $pmf26="*" $pmf27="*" $pmf28="*" $pmf29="*" $pmf30="*" $pmf31="*" $qmf0="*" $qmf1="*" $qmf2="*" $qmf3="*" $qmf4="*" $qmf5="*" $qmf6="*" $qmf7="*" $qmf8="*" $qmf9="*" $qmf10="*" $qmf11="*" $qmf12="*" $qmf13="*" $qmf14="*" $qmf15="*" $qmf16="*" $qmf17="*" $qmf18="*" $qmf19="*" $qmf20="*" $qmf21="*" $qmf22="*" $qmf23="*" $qmf24="*" $qmf25="*" $qmf26="*" $qmf27="*" $qmf28="*" $qmf29="*" $qmf30="*" $qmf31="*" $prvlo1=65535 $prvlo2=65535 $prvhi1=65535 $prvhi2=65535$ goto dopvmnu$ endif$ if choice .eq. 3$ then$! clear all privs $pmf0=" " $pmf1=" " $pmf2=" " $pmf3=" " $pmf4=" " $pmf5=" " $pmf6=" " $pmf7=" " $pmf8=" " $pmf9=" " $pmf10=" " $pmf11=" " $pmf12=" " $pmf13=" " $pmf14=" " $pmf15=" " $pmf16=" " $pmf17=" " $pmf18=" " $pmf19=" " $pmf20=" " $pmf21=" " $pmf22=" " $pmf23=" " $pmf24=" " $pmf25=" " $pmf26=" " $pmf27=" " $pmf28=" " $pmf29=" " $pmf30=" " $pmf31=" " $qmf0=" " $qmf1=" " $qmf2=" " $qmf3=" " $qmf4=" " $qmf5=" " $qmf6=" " $qmf7=" " $qmf8=" " $qmf9=" " $qmf10=" " $qmf11=" " $qmf12=" " $qmf13=" " $qmf14=" " $qmf15=" " $qmf16=" " $qmf17=" " $qmf18=" " $qmf19=" " $qmf20=" " $qmf21=" " $qmf22=" " $qmf23=" " $qmf24=" " $qmf25=" " $qmf26=" " $qmf27=" " $qmf28=" " $qmf29=" " $qmf30=" " $qmf31=" " $prvlo1=0 $prvlo2=0 $prvhi1=0 $prvhi2=0$ goto dopvmnu$ endif$pmsks:$prvl==prvlo1+65536*prvlo2$prvh==prvhi1+65536*prvhi2$lll=f$fao("!XW",prvlo1)$l2ll=f$fao("!XW",prvlo2)$llh=f$fao("!XW",prvhi1)$l2lh=f$fao("!XW",prvhi2) $prvsym:=='l2ll''lll''l2lh''llh'$return *[EVERHART.JTDEMO]JTFILRST.COM;29+, . / 4R - 0123 KPWO56]&7&89GHJ $set noverify $set noon$set proc/priv=all$set on$on warning then goto fxp$on error then goto fxp $jxfix/all $! FilRst.com=$! Copyright (c) 1994 Glenn C. Everhart. All Rights Reserved. $! Input:*$! @filrst dbnam zfid1 zfid2 size orignameC$! We shall presume the "file.typ" is actually a complete file specB$! here. It is passed to filsav too, so we need only pick a uniqueA$! save name that can be restored & copy to delsav. Use backup to5$! do the copy so attrs & ownership can be preserved.@$! We use the same code from filsav routine to compute the savedB$! name so things get restored correctly. By using back/overlay we&$! ensure ownership &c. are preserved.$ on warning then exit$ file :==$gcy$sys:file$ unzip:==$gcy$sys:unzip $ indb=p1 $ infil=p5'$ if infil.eqs. "NLA0:NONAME" then exit $ inhx1=p2 $ inhx2=p3 $ insiz=p4 $ svpid=p6-$ dvc=f$parse(infil,,,"device","syntax_only")#$ dvc=f$edit(dvc,"collapse,upcase") $ svdvc = dvcD$! First ensure there's room on the device for the file. If there isD$! not, call the routine to make room. (NO sense using compiled code)$! for this...really easy to do it here.)"$ space=f$getdvi(dvc,"freeblocks")$ need=0$ need='insiz'$ need=need+10'$! Allow a little room for headers etc.$ if need .ge. space$ then$ delneed = need - space*$ @jtd$cm:makspc 'indb' f$string(delneed)$ endif"$ space=f$getdvi(dvc,"freeblocks")$ need=0$ need='insiz'$ need=need+10'$! Allow a little room for headers etc.$ if need .ge. space$ then$$! Still not enough room. Forget it. $ goto fxp $ endifR$ fnam=f$parse(infil,,,"name","syntax_only")+f$parse(infil,,,"type","syntax_only")%$ fnam=f$edit(fnam,"collapse,upcase"):$ if f$length(fnam) .gt. 20 then fnam=f$extract(0,20,fnam)#$ ofilnm="delsav:"+inhx1+inhx2+fnam)$ ofilnm=f$edit(ofilnm,"collapse,upcase")$! if svdvc .nes. ""$! then'$! sdvc=f$edit(svdvc,"collapse,upcase"),$! if f$length(sdvc) .gt. 2 then ofilnm=sdvc$! endif$ ! move the file!$ curdef=f$environment("default")'$ if f$trnlnm("GCY$ZIPHSC") .eqs. "YES"$ then$ set def delsav:H$! Deompress the file we moved to nearline. (Note that if nearline isn'tF$! disk, we should compress & decompress in a scratch area. If backing#$! store is tape this would be so.)!$ ofzip=inhx1+inhx2+fnam-"."-";"$ ofzip=f$extract(0,38,fnam))$ ofzip=f$edit(ofilnm,"collapse,upcase")!$ unzip "-Xjqq" 'ofzip' 'ofilnm'$ delete 'ofzip'.zip.$ set def 'ourdef'$ endif$ set file/backup 'infil'$ lenin=f$length(infil)1$ if f$locate(".DIR",infil) .lt.lenin then exit 4$ lenin = f$length(ofilnm)2$ if f$locate(".DIR",ofilnm) .lt.lenin then exit 4:$ backup/trunc/overlay/ign=inter 'ofilnm' 'infil'/by_owner$ ! now truncate the original%$ osiz=f$file_attributes(infil,"eof")5$! delete the saved copy after inswap. Keep it clean.$ dfilnm=ofilnm+";"$ delete 'dfilnm'$$jtauthmaint :==$gcy$sys:jtauthmaint$ jtauthmaint 'infil'\X+$ jtauthmaint 'infil'\%DELETE $jxfix/normal$exit 1$fxp: $jxfix/normal$ exit 8#*[EVERHART.JTDEMO]JTFILRSTMDIR.COM;5+, . / 4R - 0123 KPWO56w7`89GHJ $set noverify $set noon$set proc/priv=all$set on$on warning then goto fxp$on error then goto fxp $jxfix/all $! FilRst.com=$! Copyright (c) 1994 Glenn C. Everhart. All Rights Reserved. $! Input:2$! @filrst dbnam zfid1 zfid2 size origname linkdvcC$! We shall presume the "file.typ" is actually a complete file specB$! here. It is passed to filsav too, so we need only pick a uniqueA$! save name that can be restored & copy to delsav. Use backup to5$! do the copy so attrs & ownership can be preserved.@$! We use the same code from filsav routine to compute the savedB$! name so things get restored correctly. By using back/overlay we&$! ensure ownership &c. are preserved.$ on warning then exit$ file :==$gcy$sys:file$ unzip:==$gcy$sys:unzip $ indb=p1 $ infil=p57$ if infil .eqs. "" .or. infil .eqs. "NONAME" then exit $ inhx1=p2 $ inhx2=p3 $ insiz=p4 $ svdvc=p6-$ dvc=f$parse(infil,,,"device","syntax_only")#$ dvc=f$edit(dvc,"collapse,upcase")$ delroot = f$trnlnm("DELSAV")$ if delroot .eqs. "" then exit$ delroot = delroot - "]"@$! Above assumes delsav is something like dev:[directory] and we3$! will want to turn it into dev:[directory.subdir]$ fncmd="$filenum = %x"+inhx1 $ 'fncmd'$ filenum = filenum / 256 $ fnmsk=%x1ff$ filenum = filenum .and. fnmsk($ delsub = dvc - ":" + f$string(filenum)($ delroot = delroot + "." + delsub + "]"I$! Now delroot is the directory where the file should go, named by deviceL$! and file number group. (This will also keep files apart by device nicely)$!D$! First ensure there's room on the device for the file. If there isD$! not, call the routine to make room. (NO sense using compiled code)$! for this...really easy to do it here.)"$ space=f$getdvi(dvc,"freeblocks")$ need=0$ need='insiz'$ need=need+10'$! Allow a little room for headers etc.$ if need .ge. space$ then$ delneed = need - space*$ @gcy$cm:makspc 'indb' f$string(delneed)$ endifR$ fnam=f$parse(infil,,,"name","syntax_only")+f$parse(infil,,,"type","syntax_only")%$ fnam=f$edit(fnam,"collapse,upcase"):$ if f$length(fnam) .gt. 20 then fnam=f$extract(0,20,fnam)!$ ofilnm=delroot+inhx1+inhx2+fnam)$ ofilnm=f$edit(ofilnm,"collapse,upcase")$! if svdvc .nes. ""$! then'$! sdvc=f$edit(svdvc,"collapse,upcase").$! if f$length(sdvc) .gt. 2 then ofilnm = sdvc$! endif$ ! move the file!$ curdef=f$environment("default")($ if f$trnlnm("GCY$ZIPHSC") .eqs. "YES")$ then$ set def 'delroot'H$! Deompress the file we moved to nearline. (Note that if nearline isn'tF$! disk, we should compress & decompress in a scratch area. If backing#$! store is tape this would be so.)!$ ofzip=inhx1+inhx2+fnam-"."-";"$ ofzip=f$extract(0,38,fnam))$ ofzip=f$edit(ofilnm,"collapse,upcase")!$ unzip "-Xjqq" 'ofzip' 'ofilnm'$ delete 'ofzip'.zip.$ set def 'ourdef'$ endif$ set file/backup 'infil'$ lenin=f$length(infil)1$ if f$locate(".DIR",infil) .lt.lenin then exit 4$ lenin = f$length(ofilnm)2$ if f$locate(".DIR",ofilnm) .lt.lenin then exit 4:$ backup/trunc/overlay/ign=inter 'ofilnm' 'infil'/by_owner$ ! now truncate the original%$ osiz=f$file_attributes(infil,"eof")5$! delete the saved copy after inswap. Keep it clean.$ dfilnm=ofilnm+";"$ delete 'dfilnm'$$JTauthmaint :==$gcy$sys:JTauthmaintJ$! Now remove the marking. Code treats JTauthmaint as a special image that$! is not messed with.$ JTauthmaint 'infil'\X+$ JTauthmaint 'infil'\%DELETE $jxfix/normal$exit 1$fxp: $jxfix/normal$ exit 8#*[EVERHART.JTDEMO]JTFILRSTMDSK.COM;4+, . / 4R - 0123 KPWO56`b 7T.89GHJ $set noverify $! FilRst.com=$! Copyright (c) 1994 Glenn C. Everhart. All Rights Reserved. $! Input:2$! @filrst dbnam zfid1 zfid2 size origname linkdvcC$! We shall presume the "file.typ" is actually a complete file specB$! here. It is passed to filsav too, so we need only pick a uniqueA$! save name that can be restored & copy to delsav. Use backup to5$! do the copy so attrs & ownership can be preserved.@$! We use the same code from filsav routine to compute the savedB$! name so things get restored correctly. By using back/overlay we&$! ensure ownership &c. are preserved.$!G$! This file is meant to work with jtfilsavmdsk to handle restores fromJ$! multiple disks, where a logical exists of form dvcSVDnnn (nnn from 0 toC$! whatever) pointing to the disk areas to be used for saving files$ on warning then exit$ file :==$gcy$sys:file$ unzip:==$gcy$sys:unzip $ indb=p1 $ infil=p56$ if infil .eqs. "" .r. infil .eqs. "NONAME" then exit $ inhx1=p2 $ inhx2=p3 $ insiz=p4 $ svdvc=p6-$ dvc=f$parse(infil,,,"device","syntax_only")#$ dvc=f$edit(dvc,"collapse,upcase")D$! First ensure there's room on the device for the file. If there isD$! not, call the routine to make room. (NO sense using compiled code)$! for this...really easy to do it here.)"$ space=f$getdvi(dvc,"freeblocks")$ need=0$ need='insiz'$ need=need+10'$! Allow a little room for headers etc.$ if need .ge. space$ then$ delneed = need - space*$ @JTd$cm:makspc 'indb' f$string(delneed)$ endif#$! figur0@ SAFETY013.A  #[EVERHART.JTDEMO]JTFILRSTMDSK.COM;4.ZIP;1R ~e which store has the file.$ ndvc=dvc - ":" $ myelem = 0$ on error then goto bugout $ savspc D 'inhx1''inhx2' 'ndvc'$! returns symbol "GCY$STORE"$ delsvr=delsav$ mystore = GCY$STORE $ getdns:$ savspc:==$gcy$sys:jtsavspc?$! let savspc image arg 1 say whether to add or delete a record$ delsvr = mystoreR$ fnam=f$parse(infil,,,"name","syntax_only")+f$parse(infil,,,"type","syntax_only")%$ fnam=f$edit(fnam,"collapse,upcase"):$ if f$length(fnam) .gt. 20 then fnam=f$extract(0,20,fnam)#$ ofilnm="delsvr:"+inhx1+inhx2+fnam)$ ofilnm=f$edit(ofilnm,"collapse,upcase")$ if svdvc .nes. ""$ then&$ sdvc=f$edit(svdvc,"collapse,upcase")-$ if f$length(sdvc) .gt. 2 then ofilnm = sdvc$ endif$ ! move the file!$ curdef=f$environment("default")($ if f$trnlnm("GCY$ZIPHSC") .eqs. "YES")$ then$ set def delsvr:H$! Deompress the file we moved to nearline. (Note that if nearline isn'tF$! disk, we should compress & decompress in a scratch area. If backing#$! store is tape this would be so.)!$ ofzip=inhx1+inhx2+fnam-"."-";"$ ofzip=f$extract(0,38,fnam))$ ofzip=f$edit(ofilnm,"collapse,upcase")!$ unzip "-Xjqq" 'ofzip' 'ofilnm'$ delete 'ofzip'.zip.$ set def 'ourdef'$ endif$ set file/backup 'infil'$ lenin=f$length(infil)1$ if f$locate(".DIR",infil) .lt.lenin then exit 4$ lenin = f$length(ofilnm)2$ if f$locate(".DIR",ofilnm) .lt.lenin then exit 4:$ backup/trunc/overlay/ign=inter 'ofilnm' 'infil'/by_owner$ ! now truncate the original%$ osiz=f$file_attributes(infil,"eof")5$! delete the saved copy after inswap. Keep it clean.$ dfilnm=ofilnm+";"$ delete 'dfilnm'$$JTauthmaint :==$gcy$sys:JTauthmaint$ JTauthmaint 'infil'\X+$ JTauthmaint 'infil'\%DELETE$ exit$bugout:$ exit 4 *[EVERHART.JTDEMO]JTFILSAV.COM;29+, . / 4R Z- 0123 KPWO5649n 7@=n 89GHJ  $set noverify $set noon$set proc/priv=(all,nobypass)$set on$on warning then goto fxp$on error then goto fxp $jxfix/all $! FilSav.com=$! Copyright (c) 1994 Glenn C. Everhart. All Rights Reserved. $! Input:'$! @filsav dev:file.typ hexfid1 hexfid2C$! We shall presume the "file.typ" is actually a complete file specB$! here. It is passed to filrst too, so we need only pick a uniqueA$! save name that can be restored & copy to delsav. Use backup to5$! do the copy so attrs & ownership can be preserved.$ on warning then exit$ file :==$gcy$sys:file$ zip:==$gcy$sys:zip$ unzip:==$gcy$sys:unzip $ infil=p1 $ inhx1=p2 $ inhx2=p3-$ dvc=f$parse(infil,,,"device","syntax_only")#$ dvc=f$edit(dvc,"collapse,upcase")R$ fnam=f$parse(infil,,,"name","syntax_only")+f$parse(infil,,,"type","syntax_only")%$ fnam=f$edit(fnam,"collapse,upcase"):$ if f$length(fnam) .gt. 20 then fnam=f$extract(0,20,fnam)#$ ofilnm="delsav:"+inhx1+inhx2+fnam $ ofzip=inhx1+inhx2+fnam-"."-";"$ ofzip=f$extract(0,38,fnam)($ ofzip=f$edit(ofilnm,"collapse,upcase"))$ ofilnm=f$edit(ofilnm,"collapse,upcase")$ ! move the file2$ backup/trunc/ign=inter 'infil' 'ofilnm'/by_ownerE$! If the user wants to store files compressed, let Zip compress them$! at the save site.!$ curdef=f$environment("default")'$ if f$trnlnm("GCY$ZIPHSC") .eqs. "YES"$ then$ set def delsav:G$! Compress the file we moved to nearline. (Note that if nearline isn'tF$! disk, we should compress & decompress in a scratch area. If backing#$! store is tape this would be so.)!$ ofzip=inhx1+inhx2+fnam-"."-";"$ ofzip=f$extract(0,38,fnam))$ ofzip=f$edit(ofilnm,"collapse,upcase")$ zip "-9Vq" 'ofzip' 'ofilnm'$ delete 'ofilnm'.$ set def 'ourdef'$ endif$ ! now truncate the original%$ osiz=f$file_attributes(infil,"eof")!$ file/end=1/first_free=0 'infil'!$ set file/trunc/nobackup 'infil'($ file/end='osiz'/first_free=510 'infil'K$! Above leaves original file truncated but leaves EOF mark at the original $! location. $jxfix/normal$exit 1$fxp: $set noon $jxfix/normal $$status=2$ logo#*[EVERHART.JTDEMO]JTFILSAVMDIR.COM;3+, . / 4R ~- 0123 KPWO569 7&.89GHJ  $set noverify $! FilSav.com=$! Copyright (c) 1994 Glenn C. Everhart. All Rights Reserved. $! Input:'$! @filsav dev:file.typ hexfid1 hexfid2C$! We shall presume the "file.typ" is actually a complete file specB$! here. It is passed to filrst too, so we need only pick a uniqueA$! save name that can be restored & copy to delsav. Use backup to5$! do the copy so attrs & ownership can be preserved.>$! This command file will use file mod(filenumber/256),512) toD$! select a directory name to keep the file in the delsav: tree area4$! so that saved filescan be spread around the tree.$ on warning then exit$ delroot = f$trnlnm("DELSAV")$ if delroot .eqs. "" then exit$ delroot = delroot - "]"@$! Above assumes delsav is something like dev:[directory] and we3$! will want to turn it into dev:[directory.subdir]$ file :==$gcy$sys:file$ zip:==$gcy$sys:zip$ unzip:==$gcy$sys:unzip $ infil=p1 $ inhx1=p2 $ inhx2=p3$ fncmd="$filenum = %x"+inhx1 $ 'fncmd'$ filenum = filenum / 256 $ fnmsk=%x1ff$ filenum = filenum .and. fnmsk-$ dvc=f$parse(infil,,,"device","syntax_only")#$ dvc=f$edit(dvc,"collapse,upcase")($ delsub = dvc - ":" + f$string(filenum)A$! Be sure the subdirectory exists, and create it if it does not.-$ deltest = delroot + "]" + delsub + ".dir;1"($ delroot = delroot + "." + delsub + "]"7$ if f$search(deltest) .eqs. "" then crea/dir 'delroot'I$! Now delroot is the directory where the file should go, named by deviceL$! and file number group. (This will also keep files apart by device nicely)R$ fnam=f$parse(infil,,,"name","syntax_only")+f$parse(infil,,,"type","syntax_only")%$ fnam=f$edit(fnam,"collapse,upcase")<$ if f$locate(".DIR;1",fnam) .lt. f$length(fnam) then exit 4:$ if f$length(fnam) .gt. 20 then fnam=f$extract(0,20,fnam)!$ ofilnm=delroot+inhx1+inhx2+fnam $ ofzip=inhx1+inhx2+fnam-"."-";"$ ofzip=f$extract(0,38,fnam)($ ofzip=f$edit(ofilnm,"collapse,upcase"))$ ofilnm=f$edit(ofilnm,"collapse,upcase")$ ! move the file2$ backup/trunc/ign=inter 'infil' 'ofilnm'/by_ownerE$! If the user wants to store files compressed, let Zip compress them$! at the save site.!$ curdef=f$environment("default")($ if f$trnlnm("GCY$ZIPHSC") .eqs. "YES")$ then$ set def 'delroot'G$! Compress the file we moved to nearline. (Note that if nearline isn'tF$! disk, we should compress & decompress in a scratch area. If backing#$! store is tape this would be so.)!$ ofzip=inhx1+inhx2+fnam-"."-";"$ ofzip=f$extract(0,38,fnam))$ ofzip=f$edit(ofilnm,"collapse,upcase")$ zip "-9Vq" 'ofzip' 'ofilnm'$ delete 'ofilnm'.$ set def 'curdef'$ endif$ ! now truncate the original%$ osiz=f$file_attributes(infil,"eof")!$ file/end=1/first_free=0 'infil'!$ set file/trunc/nobackup 'infil'($ file/end='osiz'/first_free=510 'infil'K$! Above leaves original file truncated but leaves EOF mark at the original $! location.$ logo#*[EVERHART.JTDEMO]JTFILSAVMDSK.COM;5+, . / 4R - 0123 KPWO56`@r 7/89GHJ $set noverify $! FilSav.com=$! Copyright (c) 1994 Glenn C. Everhart. All Rights Reserved. $! Input:'$! @filsav dev:file.typ hexfid1 hexfid2C$! We shall presume the "file.typ" is actually a complete file specB$! here. It is passed to filrst too, so we need only pick a uniqueA$! save name that can be restored & copy to delsav. Use backup to5$! do the copy so attrs & ownership can be preserved.F$! In this version, rather than using one save area, we presume delsavD$! to be a list of areas and save in the first such with enough roomA$! to hold the file. Also record where the file is so the restoreF$! script can get it. Do so via a simple image that will save the data$! separately.$ on warning then exit$ file :==$gcy$sys:file$ zip:==$gcy$sys:zip$ unzip:==$gcy$sys:unzip $ infil=p1 $ inhx1=p2 $ inhx2=p3 $ spcmgn=256$ delsvr=delsav$ needsz=f$file(infil,"ALQ")-$ dvc=f$parse(infil,,,"device","syntax_only")#$ dvc=f$edit(dvc,"collapse,upcase")#$! figure which store has the file.$ ndvc=dvc - ":" $ myelem = 0 $ getdns:H$! assume the list is some set of logicals mumble0, mumble1, mumble2 etc)$! so we can have LOTS of them compactly.$ mynum=f$fao("!ZW",myelem)$ mytst="GY"+ndvc+"SVD"+mynum$ mystore = f$trnlnm(mytst)$ if mystore .nes. ""$ then5$ ! see if this device has room and if so goto gotdns$! this is a FIRST FIT method."$spcavl=f$getdvi(dvc,"FREEBLOCKS")2$if (spcavl .gt. (needsz+spcmgn)) then goto gotdns$ endif$ myelem = myelem + 1&$ if mystore .nes. "" then goto getdns"$! if we fall thru, can do nothing$ exit 4 $ gotdns:$ savspc:==$gcy$sys:jtsavspc?$! let savspc image arg 1 say whether to add or delete a record.$ savspc A 'hexfid1''hexfid2' 'ndvc' 'mystore'$ delsvr = mystoreN$! Now delsvr is the correct save place and we just go ahead and pull the file$! out.R$ fnam=f$parse(infil,,,"name","syntax_only")+f$parse(infil,,,"type","syntax_only")%$ fnam=f$edit(fnam,"collapse,upcase")<$ if f$locate(".DIR;1",fnam) .lt. f$length(fnam) then exit 4:$ if f$length(fnam) .gt. 20 then fnam=f$extract(0,20,fnam)#$ ofilnm="delsvr:"+inhx1+inhx2+fnam $ ofzip=inhx1+inhx2+fnam-"."-";"$ ofzip=f$extract(0,38,fnam)($ ofzip=f$edit(ofilnm,"collapse,upcase"))$ ofilnm=f$edit(ofilnm,"collapse,upcase")$ ! move the file2$ backup/trunc/ign=inter 'infil' 'ofilnm'/by_ownerE$! If the user wants to store files compressed, let Zip compress them$! at the save site.!$ curdef=f$environment("default")($ if f$trnlnm("GCY$ZIPHSC") .eqs. "YES")$ then$ set def delsvr:G$! Compress the file we moved to nearline. (Note that if nearline isn'tF$! disk, we should compress & decompress in a scratch area. If backing#$! store is tape this would be so.)!$ ofzip=inhx1+inhx2+fnam-"."-";"$ ofzip=f$extract(0,38,fnam))$ ofzip=f$edit(ofilnm,"collapse,upcase")$ zip "-9Vq" 'ofzip' 'ofilnm'$ delete 'ofilnm'.$ set def 'ourdef'$ endif$ ! now truncate the original%$ osiz=f$file_attributes(infil,"eof")!$ file/end=1/first_free=0 'infil'!$ set file/trunc/nobackup 'infil'($ file/end='osiz'/first_free=510 'infil'K$! Above leaves original file truncated but leaves EOF mark at the original $! location.$ logo#*[EVERHART.JTDEMO]JTFILSAVTAPE.COM;4+, ./ 4R - 0123 KPWO 56 7//89GHJ $set noverify $! FilSav.com=$! Copyright (c) 1994 Glenn C. Everhart. All Rights Reserved. $! Input:'$! @filsav dev:file.typ hexfid1 hexfid2C$! We shall presume the "file.typ" is actually a complete file specB$! here. It is passed to filrst too, so we need only pick a uniqueA$! save name that can be restored & copy to delsav. Use backup to5$! do the copy so attrs & ownership can be preserved.F$! In this version, rather than using one save area, we presume delsavD$! to be a list of areas and save in the first such with enough roomA$! to hold the file. Also record where the file is so the restoreF$! script can get it. Do so via a simple image that will save the data$! separately.$!=$! Script to save to staging area, then tape. Partly written.>$! Idea is to stage everything to disk first, then write a big=$! backup. Must record tape location when the backup is done.$!$ on warning then goto clnxit$ file :==$gcy$sys:file$ zip:==$gcy$sys:zip$ unzip:==$gcy$sys:unzipC$! Implement a simple guard against two of these procedures runningH$! at the same time so we won't need to worry about collisions. Just useG$! a lock file in gcy$sys for the purpose since that works cluster wideB$! and we want that to be so. These files are for shelving, so not7$! too likely to have multiples, but safety won't hurt.$! invocation./$! Create the lockfile if it doesn't exist yet./$ if f$search("gcy$sys:fsvtap.lock;1") .eqs. ""$ then$ create gcy$sys:fsvtap.lock;1 lockfile for disk->tape$!$ endif $latchtest:4$ open/read/write/error=latchf gcy$sys:fsvtap.lock;1$goto latchgot$latchf:*$! If file couldn't be created just scram.<$ if f$search("gcy$sys:fsvtap.lock;1") .eqs. "" then exit 16/$! wait 30 seconds between looks at the logical $ wait 0:0:30$ goto latchtest $latchgot: $ infil=p1 $ inhx1=p2 $ inhx2=p32$ spcmgn=5000 ! slop space allowed on save volume.$ delsvr=delsav$ needsz=f$file(infil,"ALQ")-$ dvc=f$parse(infil,,,"device","syntax_only")#$ dvc=f$edit(dvc,"collapse,upcase")#$! figure which store has the file.$ ndvc=dvc - ":" $ myelem = 0$ firstdisk = " " $ getdns:6$! For tape we want just two logicals for outswapping.E$! The first is for the disk staging area, and the second refers to aA$! tape drive to which we move everything when the disk fills up.$ mynum=f$fao("!ZW",myelem)$ mytst="GH"+ndvc+"GDX"+mynum$ mystore = f$trnlnm(mytst)$ if mystore .nes. ""$ then5$ ! see if this device has room and if so goto gotdns$! this is a FIRST FIT method.+$ if myelem .eq. 0 then firstdisk = mystore"$spcavl=f$getdvi(dvc,"FREEBLOCKS")$$! If this is the tape go handle it.!$ if myelem.eq.1 then goto gotdns2$if (spcavl .gt. (needsz+spcmgn)) then goto gotdns$ endif$ myelem = myelem + 1&$ if mystore .nes. "" then goto getdns"$! if we fall thru, can do nothing$ close latchf$ exit 4 $ gotdns:$ savspc:==$gcy$sys:JTsavspc?$! let savspc image arg 1 say whether to add or delete a record.$ savspc A 'hexfid1''hexfid2' 'ndvc' 'mystore'$ delsvr = mystoreN$! Now delsvr is the correct save place and we just go ahead and pull the file$! out.R$ fnam=f$parse(infil,,,"name","syntax_only")+f$parse(infil,,,"type","syntax_only")%$ fnam=f$edit(fnam,"collapse,upcase")<$ if f$locate(".DIR;1",fnam) .lt. f$length(fnam) then exit 4:$ if f$length(fnam) .gt. 20 then fnam=f$extract(0,20,fnam)#$ ofilnm="delsvr:"+inhx1+inhx2+fnam $ ofzip=inhx1+inhx2+fnam-"."-";"$ ofzip=f$extract(0,38,fnam)($ ofzip=f$edit(ofilnm,"collapse,upcase")p1@ SAFETY013.A  #[EVERHART.JTDEMO]JTFILSAVTAPE.COM;4.ZIP;1R)$ ofilnm=f$edit(ofilnm,"collapse,upcase")$ ! move the file2$ backup/trunc/ign=inter 'infil' 'ofilnm'/by_ownerE$! If the user wants to store files compressed, let Zip compress them$! at the save site.!$ curdef=f$environment("default")($ if f$trnlnm("GCY$ZIPHSC") .eqs. "YES")$ then$ set def delsvr:G$! Compress the file we moved to nearline. (Note that if nearline isn'tF$! disk, we should compress & decompress in a scratch area. If backing#$! store is tape this would be so.)!$ ofzip=inhx1+inhx2+fnam-"."-";"$ ofzip=f$extract(0,38,fnam))$ ofzip=f$edit(ofilnm,"collapse,upcase")$ zip "-9Vq" 'ofzip' 'ofilnm'$ delete 'ofilnm'.$ set def 'curdef'$ endif$ ! now truncate the original%$ osiz=f$file_attributes(infil,"eof")!$ file/end=1/first_free=0 'infil'!$ set file/trunc/nobackup 'infil'($ file/end='osiz'/first_free=510 'infil'K$! Above leaves original file truncated but leaves EOF mark at the original $! location.$ close latchf$ logo $clnexit:$ close latchf$ exit 8 *[EVERHART.JTDEMO]JTFILTALL.COM;5+, . / 4O - 0123 KPWO56@0rI5Y7O5Y89GHJ H$! This command file is run whenever an image is marked to run a commandG$! file for any files it opens. This example simple broadcasts an alert4$! message to the user of what file is being opened. $set noon$$!filtall.com, to be kept in gcy$sys,$!arguments: fileid(hex), username, uic(hex)A$!pid(hex),accmode(hex)[i.e., how-open request flags], devicename($!open/write flo gcy$scratch:filtlog.log($!write flo "paranoid mode open attempt"!$!write flo "P1 (FID part 1):",p1!$!write flo "P2 (FID part 2):",p2!$!write flo "P3 (username) :",p3!$!write flo "P4 (UIC) :",p4!$!write flo "P5 (PID) :",p5!$!write flo "P6 (accmd) :",p6!$!write flo "P7 (devicename):",P7'$!write flo "P8 (should be 0 or 1):",p8 $!close flo $filnm=%x'p1'$filnm=filnm .and. 655351$! Now file number is in filnm for use with find.F$! Get devicename fixed up if it has alloclass. Needs leading $ if so. $ advcnm = p7 $ d1loc=f$locate("$",advcnm) + 1!$ dvcnm=f$extract(0,d1loc,advcnm)$ sho sym dvcnm$ advcnm=advcnm - dvcnm$ d2loc=f$locate("$",advcnm)$ ! get rid of $ before unit #D$ dvcnm=dvcnm+f$extract(0,d2loc,advcnm)+f$extract(d2loc+1,64,advcnm)$ sho sym dvcnm$ dvcnm=dvcnm+":"$ ct=f$extract(0,1,p7)=$ if ct .ges. "0" .and. ct .les. "9" then dvcnm = "$" + dvcnm+$! dvcnm is now the device name, so use it.#$ alnm="gcy$sys:alrt_"+p5+".ALARM." $find:==$findO$ fincmd="find/file=("+f$string(filnm)+")/display=fullname/out="+alnm+" "+dvcnm $ 'fincmd' $ fntxt=" "$ open ffff 'alnm'$ read ffff fntxt$ read ffff fntxt $ close ffff$ delete 'alnm'C$! Now we have the filename. Get the terminal where the user is and$! broadcast a message to him.E$! Since we have oper priv in the daemon here, we will just use REPLY$! to handle this.$!F$! Note that it is feasible to test for "known ok" files at this point#$! should we desire, or whatever...$!A$! Note too: if this file returns with a failure status, the open$! will be rejected.$! Suggested additions:B$! 1. Setup with call (p8=0 if it is the program that is untrusted<$! that is opening, p8=1 if the untrusted program is opening)$! a file) for separate images being run.F$! 2. Arrange that privileged usert (esp. system IDs) don't open files$! you don't want 'em to.E$! 3. Keep a list of files being opened initially, and allow those toD$! open silently (or even ask the user if others should be allowed).C$! (you can use the pid and a program to find his decw$display and$! fire up a window to ask...)$! 4. Log to operator log too.E$! 5. Ensure the files are in a directory owned by the user, or maybe?$! in a subdirectory of some special name. You pick the policy.>$rplcmd="REPLY/USER="+p3+" "" *WARNING* Open of file:"""+fntxt $'rplcmd'$exit 1"*[EVERHART.JTDEMO]JTFILUNDEL.COM;15+,. / 4C ,- 0123 KPWO56k,7@/-89GHJ $set noverify$! FilUnDel.com=$! Copyright (c) 1994 Glenn C. Everhart. All Rights Reserved. $! Input:)$! @fildel dbnam hexfid1 hexfid2 filename+$! dbnam is jtd$db:op$dvc$unit.gdb or*$! jtd$db:op$dvc$unit.gdb%$! filename is reconstructed pathnameC$! We shall presume the "file.typ" is actually a complete file specB$! here. It is passed to filrst too, so we need only pick a uniqueA$! save name that can be restored & copy to delsav. Use backup to5$! do the copy so attrs & ownership can be preserved.$ on warning then exit$ file :==$gcy$sys:file $ inlst=p1 $ dvc=" "$ infil=f$element(0,",",inlst)$ ofilnm=f$element(2,",",inlst))$ ofilnm=f$edit(ofilnm,"collapse,upcase")'$ infil=f$edit(infil,"collapse,upcase")$ ! move the fileA$! set default to device of output file in case this was a rename=$! type operation. Then the backup will work; delsav: is then>$! to be a spec like [wastebasket] that omits disk, so we need;$! to have our default set to the right disk. If the deviceC$! specs are in fact all there, where we run from is not important.$! For rename this is vital.!$ oldloc=f$environment("default")1$ device=f$parse(ofilnm,,,"device","syntax_only")4$ direct=f$parse(ofilnm,,,"directory","syntax_only")$ set def 'device''direct'$ ass/user nla0: sys$output:$ ass/user nla0: sys$error:6$ backup/trunc/ign=interlock 'infil' 'ofilnm'/by_owner$ set def 'oldloc'@$! Note we must NOT delete the file here lest we cause a loop!!!.$! This copies the file & deletes the original$! logo *[EVERHART.JTDEMO]JTFRAGINH.MAN;7+,./ 4M- 0123 KPWO56`qg~7r~89GHJ  The Fragmentation Inhibiter?Normally, VMS disks become fragmented quickly during use. This Dproduces many extra index file accesses and disk reads, slowing down file access.FOddly enough, this fragmentation occurs because of a VMS optimization.CWhen you delete a file, VMS does not instantly zero the bitmap bitsFcorresponding to its space, but leaves it in an "extent cache" so thatCallocating the space to a new file can mean VMS need not visit some>bitmap areas at all. This can in some cases speed disk access.>The problem with the strategy is that almost all files grow byBallocating several clusters and returning the extras by truncation?after closing. This means the extent cache is generally full ofDtiny fragments of disk storage, so that new files are then allocatedCout of this "chaff" and wind up extremely fragmented from the startEif default allocation is allowed. This can be defeated if we tell VMSCto allocate files using big chunks of space first, so the chaff can<be reclaimed later, or at worst concentrated in a few files.FIt also often happens that some files (e.g. log files) can stay open aHlong time and grow by grabbing space a few blocks at a time. When a fileGis 10,000 blocks long, though, it is generally not wise to extend it byD2 blocks at a time. Rather, it makes sense to allocate some fractionDof the file size (subject to not trying to take too large a piece ofCthe disk's remaining space at once) for growth. This keeps the fileIfrom having to be extended as often and cuts fragmentation too. Since theLfiles remain open, this can be the simplest way to reduce disk fragmentation:where many defraggers are unable to defragment open files.HThe Fragmentation Inhibiter handles both these operations automatically.AThe Fragmentation Inhibiter can command file extension to be done?"Contiguous Best Try" when this is possible. This causes VMS to?flush (i.e., forget about) its extent cache and attempt to find@a space big enough to hold the whole requested area before usingCbadly fragmented store. The program can do this for every extension>(the default and recommended behavior) or every Nth extension,?if you feel the need to have the extent cache used, but clearedDperiodically. (There are a few situations, like those on NEWS disks,Ewhere thousands of tiny files are created frequently and in which the.normal extent cache operation can be helpful.)CFragmentation Inhibiter also controls the amount of space requested=when a program extends a file (i.e., makes it longer). It can?set a minimum extent request, so even explicit requests for one?block at a time can be increased, and is able to request that aBfile be extended by 1/N of its current size, subject to free space>constraints on the volume and a maximum extend amount. It will@always request at least as much space as the program wanted, butDwill attempt to extend by 1/N of the file size, 1/8 of the available@free space on the disk, or the maximum extent request, whichever is least.>Suppose, for example, you have a file SYSAUDIT.LOG that is now@1000 blocks long, and suppose you set Fragmentation Inhibiter to@extend by 1/4 of the file size. Suppose also your volume defaultallocation is 10 blocks.ENow if the file is extended, Fragmentation Inhibiter will cause it to@grow to 1000 + 250 + 1 blocks long in one extend operation. This>will be usually found contiguously and thus the file gains oneextent. EIf normal VMS allocation had been in effect, the file would have beenBextended about 25 times to gain this much space, would probably beCmulti-header if it wasn't already, and could not be defragmented by7conventional techniques because it would still be open.>As a file grows, the number of extend operations needed for itDto grow to a given size drops quickly. Consider the following table,Awhich assumes volume default allocation of 20 blocks and F.I. setto extend by 1/4 of file size:/ Extension Size with F.I. Size without F.I. 1 20 20 2 40 40 3 60 60 4 80 80 5 101 100 6 127 120 7 159 140 8 199 160 9 249 180! 10 312 200! 11 391 220- 12 489 240! 13 612 260! 14 766 280! 15 958 300! 16 1198 320?This clearly shows that less extensions can handle a given file=size in this way. If F.I. were not there, the file would need4to be extended another 44 times to hold 1198 blocks.DFile extension is an expensive operation; by arranging it to be less?often needed, F.I. can permit file writing to enjoy up to a 30%Ispeed gain, in addition to permitting faster access to files written with?it. This is the gain from not having to do the extend operation as often.SUMMARY:CFragmentation Inhibiter permits disk fragmentation to be controlled;by altering somewhat the VMS file extend operation in a wayAthat greatly slows the refragmentation of disk space. The product;can be installed on any disks where this is desired and its;parameters can be set on a per-disk basis. Disks where the 8Fragmentation Inhibiter is not installed are unaffected. Installation:9From SYSTEM (or some other fully privileged account) type $@SYS$UPDATE:VMSINSTAL SAFETY010AThe system will install Fragmentation Inhibiter for you. Then useGthe FI_SETUP.COM script to generate a script SYS$MANAGER:FI_STARTUP.COM@which can be run from your systartup_v5.com or systartup_vms.comat boot.Use:First, issue the command$SET COMMAND SYS$SYSTEM:JTDMN@Then for every disk whose fragmentation is to be controlled, youGmust connect a unit of the JT: pseudodevice. The SYSGEN connect commandlooks like this:,$ sysgen connect JTA3:/noada/driver=jtdriverCThen you use JTDMN to point another disk at it for Frag Inhibiting:e.g.$ SET COMM SYS$SYSTEM:JTDMN%$ JTDMN/FCNMSK:2/MODIFY JTA3: DKA500:2Now DKA500: will have its fragmentation inhibited.HThere are a number of controls available. These use the gene4ral commandformat:+$JTDMN/switches JTAn: FragInhibited_device:where9 JTAn: is a unit of JTdriver, one unit per victim disk.M FragInhibited_device: is the devicename of a disk having its fragmentation1 inhibited (by preventing it in the first place).Switches are as follows:;/FRACTION:N Sets fraction of file size to extend by. If n=3, (JTDMN/FRACTION:3 JTAn: DEVICE:) then file4 extension will be by 1/3 of the file size, subject3 to other constraints. Default is N=4 to extend by 1/4 of file size.7/CBT:N Do file extension contiguous best try every Nth6 open. Default is 1 so file extension is always tried5 contiguous best try. You can set the Frag Inhibiter8 to do this only every Nth time (N up to 1,000,000,000)4 to allow use of the extent cache some if you like.1 Note that contiguous extensions are left alone.8/MINIMUM:N Sets minimum extension request; default is 10/ blocks. This is sometimes useful for programs. which explicitly request very small extents.@/MAXIMUM:N Sets maximum extension request. If 1/fraction of file5 size is greater than N, then we use this maximum to1 extend the file. Thus, setting /MAX:10000 would. mean we never request more than 10000 blocks. extension even on huge files (though if the 5 program requests more, we NEVER reduce an extension request, ever.)7/ALDEFONLY If specified, modifies extensions ONLY where3 the program says to use volume default extension./ Otherwise always modifies extensions provided- the modified extension is at least as large as that originally requested.1 Using this setting is extremely "safe" in that7 programs requesting default extension are "expecting"2 the extension not to be exactly known, but many : "problem" programs have hardcoded 2 or 3 block extension6 lengths and will continue to cause fragmentation and42@ SAFETY013.A  [EVERHART.JTDEMO]JTFRAGINH.MAN;76;7.ZIP;1Mt use lots of extend requests if this switch is set.5 Therefore it is a per-disk site selection which to  use.LEnsure that the /FCNMSK:N switch is present with a value N that contains the= 2 bit when using JTdriver to Inhibit fragmentation. Also be< sure to add the switch /MODIFY to inhibit JTDMN looping if: only using frag avoidance. The /MODIFY switch just tells9 the program to exit once its modifications are done. It6 is used where all that is happening is fragmentation7 control, since that requires no lasting presence of a daemon.> In all cases, the Fragmentation Inhibiter will never extend a: file by more than 1/8 of the free space on the volume andA will never cause an extend request to have less blocks requested= than the program asked for. It will not reduce the program's? request even if the freespace constraint is violated, nor will% it touch contiguous extend requests.< The following switch can be used if needed. It MUST be used6 with CAUTION since the correct JF unit must be given.</DEASSIGN Remove the JTAn: unit association with the target- device and turn off frag Inhibit. Format of this command is:- $ JTDMN/DEASSIGN JTAn: FragInhibited_device:B Note that the unit of JTAn: that is specified MUST be the same asA that which was used to initially start fragmentation inhibiting.> If the wrong unit is used, the system will refuse to deassign= the unit (and leave the JF unit online). This safeguard willA prevent system damage, but the Fragmentation Inhibiter should be6 set the way you prefer and left alone for normal use.J(Note: This documentation is preliminary and may be expected to be revisedEsomewhat. In particular, JTdmn will become some other name eventuallyEand the current JTdmn has other functions too, which would be removedEfrom the F.I. version so that it will exit after each setup command.)'*[EVERHART.JTDEMO]JTGETLPORT.OBJ_VAX62;1+,. / 4W - 0123KPWO56rbQ7`(pJR89GHJ8GETLATPORTINFO010-JUL-1996 10:38 VAX MACRO V5.4-3MACRO JTGETLPORT GETLATPORTINFO LIB$GETDVI . ABS .P$ABS$P4GL_DATA<P@" EGL_CODEP GLATPORT&WЬRbS6S Т%ЬRbSSТ  LIB$GETDVIPGLATPORT,GL_DATA4GL_CODEE33@ SAFETY013.A  [EVERHART.JTDEMO]JTGETMRK.OBJ;226;7  *[EVERHART.JTDEMO]JTGETMRK.OBJ;22+,. / 4 &- 0123 KPWO56 4W27Z289GHJ2JTGLMSK01 3-Nov-1996 17:10DEC Fortran V6.1-68JTGLMSKJTGLMSKP# ##!#(WLNM$SYSTEM_TABLESYE$_SPLCRSMDL P 1  SYS$TRNLNM@1 SYS$TRNLNM@ P[ˬˮ\˰ޫ˴˸˺ޫ˼ޫ0 SYS$TRNLNM޼TPѫ)^@)\Cd<8Pޫޫ  "ޫ$ޫ (ԫ, .ޫ0ޫ 48e:ޫ<ޫ @DHLH SYS$GETTIMP SYS$GETSYIWpQSUBիˀ FOR$EXIT_WPr,kˈFINDACEQR QP1QRPWxl)0QPr,RPPSQ˘ FOR$EXIT_WRˠ FOR$EXIT_WS˨ FOR$EXIT_Wիի˰QSUBի FOR$EXIT_Wԫ<]#QADDЏ Wxl)0Pr,9REPLENTÏ d<8P@PGUSBO JTGLMSK SYS$GETSYIW SYS$GETTIM SYS$TRNLNMFINDACEREPLENTQSUB FOR$EXIT_WQADD?$CODEE$PDATA$LOCALfVP)\P#hPtP  P ?PP P P PPP P[|R?3JTPRTSYI01 3-Nov-1996 17:10DEC Fortran V6.1-68JTPRTSYI&P Your system string is:JTPRTSYIQ8Ph HPXH` P p[ː˒ޫ˔k˘˜ ˞ޫˠkˤԫ ˨ ˪ޫ ˬk˰˴e˶ޫ˸k˼ SYS$GETTIM( SYS$GETSYIWHQSUBիX FOR$EXIT_WƸ4J PQQQRr}\\~ PPPS FOR$WRITE_SF߫ FOR$IO_X_DAR FOR$IO_L_V\ FOR$IO_L_VS FOR$IO_L_V FOR$IO_END JTPRTSYI SYS$GETSYIW SYS$GETTIMQSUB FOR$EXIT_W$CODE$$PDATA$LOCAL FOR$IO_END FOR$IO_L_V FOR$IO_X_DA FOR$WRITE_SF P>21KGETKI01 3-Nov-1996 17:10DEC Fortran V6.1-68 KGETKI KGETKIP+!|P HPPxPxPh[Ь$˘˚ޫ˜kˠˤ ˦ޫ˨kˬԫ ˰ ˲ޫ ˴k˸˼e˾ޫk( SYS$GETTIM0 SYS$GETSYIWPr,PFINDACERQ R޻$QÏƸ4ÏJ ÏP P«PÏr}R«RÏ~S«SWTëTWxl)0PPr,RS `REPLENTz KGETKI SYS$GETSYIW SYS$GETTIMFINDACEREPLENTA$CODE $PDATA$LOCALJ>A"*[EVERHART.JTDEMO]JTGETMRK.OBJ_A;18+,./ 4.- 0123KPWO56 frz7`z89GHJ@@JTGLMSK 6-NOV-1996 21:52  Digital Fortran 77 T7.1-61 $DATA$$BSS$($IODATA$iD $CODE$$LINK$(JPJTGLMSK SYS$TRNLNM SYS$GETTIM SYS$GETSYIWQSUB DFOR$EXITFINDACEQADDREPLENT0JJTPRTSYI DFOR$WRITE_SEQ_FMT DFOR$HANDLER(JKGETKIH H=0(6 Your system string is:\7 =L D [#0^?$8^&@~?'Hr"P! XG~#02"&""9#"0[4G8dChCG2 2"r="r}" $( ]"=G Gݲ$8{@Zk5@S_&00"GUR" @ JG1 J0vJ2B 澰"t ?' '&e_&9#D##D{#B""$ R"$" $Gd,4Gd IJ$D$b@ZkBb4GGGG"GG@ZkBbp "GGtG@ZkpBxb " 4G @Zkr,&P" B% (b%"0@"=]"tG@Zk$% GxPp Т"0?&BP_&)1"pWR"m&xΔ"в5@Fr,?$&E% e$eբP! "1QC2C44C!aC0pB6BU=4G] ( "pBxb@ZkpB xb4GB "@Zk(pB xb4GB "@Zk ="D@BbG1"GtG@ZkpBxbp"4G2@Zk0`B]#? GGhbG @"tG@Zk##0&r,&c_&m&&)"P" $WR"xs""BB5B @3@v@ %P"""G%}"$eGb@Zk $} $@G0]8 8]@}HPX`#kGG`#?$~ & &p^e&x^! ~s""cG"#4G[GXD"\"h"l"d#H 8d <{G$8$@DDdHLDPTIJXD\`dDhlp@ZkGbBb4GGGP"GG@ZkXB`b\"GpC"tG@Zkt8B@bH"4G@Zkh#d#K _&4&Q&lcR"}&" @닔"&G@ Br"@4@8]"`B~"H]hB5B8=@"X]@xc <= _&<="hGR"@b"P}H"`=Gpbx@ZkcGp]x]}#kGG#?$^ &^ & ~e'(! 0G~""##G @[Gd"$#D"""($H{"4G$Dd dIJ d$,d048@ZkG 0B8b4GGG"GG@Zkr,?$pBP! xb@("$"]"tG@ZkD" Gx!a ! & @!4?&W"a1"K &ؔ"+&&m$ ?$ cC#c"&"x #b! 4TC11C?'3qB;qC5B8Cx9#`B0BwB6CB!aC5B$" rP""}"ҲG2$hb@ZkG]] }(0@#k4`G SYS$TRNLNM4b#P SYS$TRNLNM4@ SYS$TRNLNM4HG SYS$GETTIM4b#P SYS$GETTIM4@ SYS$GETTIM4G SYS$GETSYIW4b#P SYS$GETSYIW4@ SYS$GETSYIW, GQSUB, b#PQSUB, @QSUB4  G( DFOR$EXIT4 b#P DFOR$EXIT4 $@( DFOR$EXIT,4G`FINDACE,@b#PFINDACE,\@`FINDACE4 (G4 DFOR$EXIT4 ,b#P DFOR$EXIT4 0@4 DFOR$EXIT4 <G\ DFOR$EXIT4 Db#P DFOR$EXIT4 X@\ DFOR$EXIT4 dG DFOR$EXIT4 lb#P DFOR$EXIT4 @ DFOR$EXIT, GQSUB, b#PQSUB, @QSUB4 G DFOR$EXIT4 b#P DFOR$EXIT4 @ DFOR$EXITX X,GQADD,b#PQADD,@QADD,HGREPLENT,b#PREPLENT,@REPLENT44G SYS$GETTIM4`b# SYS$GETTIM4@ SYS$GETTIM4G SYS$GETSYIW4b# SYS$GETSYIW4@ SYS$GETSYIW, GQSUB, b#QSUB, @QSUB4 G DFOR$EXIT4 b# DFOR$EXIT4  @ DFOR$EXIT< pGDFOR$WRITE_SEQ_FMT<b#DFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT4LG SYS$GETTIM4pb# SYS$GETTIM4@ SYS$GETTIM4G SYS$GETSYIW4b# SYS$GETSYIW4@ SYS$GETSYIW,GFINDACE,b#FINDACE,@FINDACE,G$ REPLENT, b#REPLENT, @$ REPLENTl l=0;=@0 0;= SYS$GETSYIW SYS$GETTIM=!`REPLENTFINDACE=+=0p;=D 7 DFOR$HANDLER= DFOR$EXIT=8 QSUB DFOR$WRITE_SEQ_FMT;=    =8)!#LNM$SYSTEM_TABLEH= #=00;= `8< # SYS$TRNLNM=SYE$_SPLCRSMDL=(WQADD=# $*[EVERHART.JTDEMO]JTGETMRK.OBJ_AXP6;6+,./ 4- 0123KPWO56@rڑ07089GHJ@@JTGLMSK 8-NOV-1996 00:33DEC Fortran V6.2-508 $DATA$$BSS$($IODATA$i$CODE$$LINK$(JJTGLMSK SYS$TRNLNM SYS$GETTIM SYS$GETSYIWQSUB DFOR$EXITFINDACEQADDREPLENT0J8JTPRTSYI DFOR$WRITE_SEQ_FMT DFOR$HANDLER DFOR$WRITE_SEQ_FMT_XMIT(Jp KGETKIH H=0(6 Your system string is:\7 =#~ ^(^0~8G#G4G "G P2_Jq JQFPTG  !v>HpSJ0D D "  BR" "$AG $ 19JpJ0F$ G "$A2GJ`H@F$A  , "1" "0! B4 8 <?$! =HB"]&"""=G="]" b "G`Bhb@Zk " 8F "11" BDRBJ2@JS&GUs"SF @ D4vJ"Gݦ8 GqG 89?KwJ7G8" Bz;v~KwSJwGz " " " "G B4Js`JF _" զ6Jr@JFն BR" @ # " BTG "7J{`KF ? 01v>JaS H!F0 "! b3 " G @2YJvJVF@e 89'K`H G8  B " b  " " "4GBb@Zk "4GGG bs" "GGBb@Zk " " "1" BR"tG0B8b@Zk @"4GBb@Zk r,?$P! @ " "D1" BR"tGBb@Zk "4G "  B R@N b s`N C@s C@r 0B ¦ ֢" 8Fq X " B\Z b[ ` " d " BhR bS &W"4B ¦ m'x#7B " BZ0'){#:[C @ "!r,&P"!0@ "1 BR&s"2SB U  ¦֢F"4GBb@Zk  "!D"4GBb@Zk  "!D"4GBb@Zk  "!S " "1" BR"tG0B8b@Zk F"4GBb@Zk@ ]#? 0 " "1" BR"tGBb@Zk $ "T ?&W1"B BX bsm&xΔ"tB \u ¦֢0&)"B `ز "9r,_'PZ#:C bd; ?$! @ "hp""" BDR" bs"GBb@Zk T ?$! @8 GG ](]0}8@#k#~H^P^XcG#GGh"<0J`HF< h"<Q2v^J`SH@F<Qh h"@h"h"DGhD !9Hr@J2DD  hD01'J`H FD0h h"LhBR"hPPh"TGh"T0J`HFT  hBT21v>J`SH FT2h h"Xh"h"\Gh\ !9Hr@J2D\ e h\01'J`H F\0h  h"dhBR"hhPh"lhph"th"4GBb@Zkh"(4GGGhb<s"h"GG(B0b@Zkh"(h"h"1"hBR"tGxBb@ZkhX"4G8B@b@Zkh4?$! @h h"1K _&R"2Bhb$3hQ&답"h¦֢BBh,h }?'r9#hBZCChb0h"!$~ h0@ @hB4Pb"Gh¦ "@ݶ8="G_&R"8"`GxBb@ZkH""h, 8"8]"tG8B@b@ZkH""h0 8"8]"tG8B@b@Zkh""h4 84@ SAFETY013.A $[EVERHART.JTDEMO]JTGETMRK.OBJ_AXP6;6g"8]"tG8B@b@ZkcGH]P]X`#k#~^^~ G#GGG"!1?J`H F! P2v^J`SH@FP ""1"0G !9Hr@J2D  01'J`H F0 "BR"P"TG"0J`HF  B21v>J`SH F2 """ G  !9Hr@J2D  e  01'J`H F 0 "BR"P" "$"4GBb@Zk"4GGGbs""GGBb@Zk"r,?&P1"BBp""1"BR"tG`Bhb@Zk"4G"BR@Nbs`NCsCr0B¦֢"㢹4'#7B"CK '{#:[C@#Q&""1!1@!0@B2 c}&r"3uB3tB¦v&~""98C7Cb_'&Z#"1 @ @"!_&WR"2@5m&xs"B¦v"90')#8Cb{r,?&P1"qCB :&"@B(" ""BR"bs"G@BHb@ZkG]]} 0#k 4 @GL SYS$TRNLNM4 Db# SYS$TRNLNM4 H@L SYS$TRNLNM4LGX SYS$GETTIM4Pb# SYS$GETTIM4T@X SYS$GETTIM4G SYS$GETSYIW4b# SYS$GETSYIW4@ SYS$GETSYIW, GQSUB, b#QSUB, @QSUB4G DFOR$EXIT4b# DFOR$EXIT4@ DFOR$EXIT,G$FINDACE,b#FINDACE, @$FINDACE4G DFOR$EXIT4b# DFOR$EXIT4@ DFOR$EXIT4G DFOR$EXIT4b# DFOR$EXIT4@ DFOR$EXIT4G DFOR$EXIT4b# DFOR$EXIT4@ DFOR$EXIT, 0G<QSUB, 4b#QSUB, 8@<QSUB4PG\ DFOR$EXIT4Tb# DFOR$EXIT4X@\ DFOR$EXIT,GQADD,b#QADD,@QADD, TG`REPLENT,Xb#REPLENT, \@`REPLENT4T G` SYS$GETTIM4X b#8 SYS$GETTIM4\ @` SYS$GETTIM4 G SYS$GETSYIW4 b#8 SYS$GETSYIW4 @ SYS$GETSYIW,  G QSUB,  b#8QSUB,  @ QSUB4 G DFOR$EXIT4 b#8 DFOR$EXIT4 @ DFOR$EXIT< G DFOR$WRITE_SEQ_FMT< b#8DFOR$WRITE_SEQ_FMT< @ DFOR$WRITE_SEQ_FMT< G DFOR$WRITE_SEQ_FMT_XMIT< b#8DFOR$WRITE_SEQ_FMT_XMIT< @ DFOR$WRITE_SEQ_FMT_XMIT< G, DFOR$WRITE_SEQ_FMT_XMIT<$ b#8DFOR$WRITE_SEQ_FMT_XMIT<( @, DFOR$WRITE_SEQ_FMT_XMIT<H GT DFOR$WRITE_SEQ_FMT_XMIT<L b#8DFOR$WRITE_SEQ_FMT_XMIT<P @T DFOR$WRITE_SEQ_FMT_XMIT4$ G0 SYS$GETTIM4( b# SYS$GETTIM4, @0 SYS$GETTIM4` Gl SYS$GETSYIW4d b# SYS$GETSYIW4h @l SYS$GETSYIW, G FINDACE, b#FINDACE, @ FINDACE, GREPLENT,b#REPLENT, @REPLENT = ! # QADD=@ SYS$GETTIM=SYE$_SPLCRSMDL` SYS$GETSYIW DFOR$EXIT=0 ;=@ \; QSUB=(#LNM$SYSTEM_TABLE SYS$TRNLNM=(W REPLENT=# FINDACE=#=0H;=` 7 DFOR$HANDLER=p(DFOR$WRITE_SEQ_FMT_XMIT= = =8;=  DFOR$WRITE_SEQ_FMT=0p ;=( 0 !+C C=3+*JTGLMSKDEC Fortran V6.2-508 = 44= JTGLMSK4=p 0   $ $= (4: := 4=  = 484=JTPRTSYI4=JBA  /$ $= 4: := P 4=  = p 44= KGETKIp 4=RJI 30 f$ $=  4: := 4= < =  $*[EVERHART.JTDEMO]JTGETMRK.OBJ_VAX5;7+,!. / 4 - 0123 KPWO567 ,89GHJ2JTGLMSK0117-Nov-1996 13:4117-Nov-1996 13:41VAX FORTRAN V5.9-173JTGLMSKGP# ##!#(WLNM$SYSTEM_TABLESYE$_SPLCRSMDLJTGLMSKP 1 SYS$TRNLNM@1 SYS$TRNLNM@  P [˨˪Xˬޫ˰˴˶ޫ˸ޫ˼0 SYS$TRNLNMPѫ)Z@)XC<8Pޫޫ  ޫ ޫ $ԫ( *ޫ,ޫ 04e6ޫ8ޫ <@DHH SYS$GETTIMP SYS$GETSYIWpQSUBիˀ FOR$EXIT_WPr,kˈFINDACEQR QP1PQRWxl)0PÏPr,QSRP˘ FOR$EXIT_WSˠ FOR$EXIT_WR˨ FOR$EXIT_Wիի˰QSUBի FOR$EXIT_Wԫ<]#QADDЏ Wxl)0Pr,REPLENTÏ <8P@PGUSBO JTGLMSK SYS$GETSYIW SYS$GETTIM SYS$TRNLNMFINDACEREPLENTQSUB FOR$EXIT_WQADD<$CODEE$PDATA$LOCALfRP)XP#dPpP P ;PP P P PPP P]{E<3JTPRTSYI0117-Nov-1996 13:4117-Nov-1996 13:41VAX FORTRAN V5.9-173JTPRTSYI*P8 Your system string is:JTPRTSYIPp HPXHhP x[ˈˊޫˌkː˔ ˖ޫ˘k˜ԫ ˠ ˢޫ ˤk˨ˬeˮޫ˰k˴˸˼ SYS$GETTIM( SYS$GETSYIWHQSUBիX FOR$EXIT_WƸ4J PPP\r}PPR~ PPS FOR$WRITE_SF߫ FOR$IO_X_DA\ FOR$IO_L_VR FOR$IO_L_VS FOR$IO_L_V FOR$IO_END JTPRTSYI SYS$GETSYIW SYS$GETTIMQSUB FOR$EXIT_W$CODE#$PDATA$LOCAL FOR$IO_END FOR$IO_L_V FOR$IO_X_DA FOR$WRITE_SF P>21KGETKI0117-Nov-1996 13:4117-Nov-1996 13:41VAX FORTRAN V5.9-173 KGETKIP+! KGETKIP HPPPP x[Ь$ˈˊޫˌkː˔ ˖ޫ˘k˜ԫ ˠ ˢޫ ˤk˨ˬeˮޫ˰k˴˸˼( SYS$GETTIM0 SYS$GETSYIWPr,PFINDACEPQ P޻$QÏƸ4ÏJ ÏP P«PÏr}R«RÏ~S«SWQëQWxl)0PPr,RS`REPLENTz KGETKI SYS$GETSYIW SYS$GETTIMFINDACEREPLENTA$CODE $PDATA$LOCALJ>A%*[EVERHART.JTDEMO]JTGETMRK.OBJ_VAX62;3+,. / 4 2- 0123KPWO56yy=7D=89GHJ2JTGLMSK01 4-Feb-1997 12:25Digital Fortran V6.4-165JTGLMSKJTGLMSKP# ##!#(WLNM$SYSTEM_TABLESYE$_SPLCRSMDL P 1  SYS$TRNLNM@1 SYS$TRNLNM@ P[ˬˮ\˰ޫ˴˸˺ޫ˼ޫ0 SYS$TRNLNM޼TPѫ)^@)\Cd<8Pޫޫ  "ޫ$ޫ (ԫ, .ޫ0ޫ 48e:ޫ<ޫ @DHLH SYS$GETTIMP SYS$GETSYIWpQSUBիˀ FOR$EXIT_WPr,kˈFINDACERS RP1QRSWxl)0QPr,RSQ˘ FOR$EXIT_WRˠ FOR$EXIT_WS˨ FOR$EXIT_Wիի˰QSUBի FOR$EXIT_Wԫ<]#QADDЏ Wxl)0Pr,9REPLENTÏ d<8P@PGUSBO JTGLMSK SYS$GETSYIW SYS$GETTIM SYS$TRNLNMFINDACEREPLENTQSUB FOR$EXIT_WQADD?$CODEE$PDATA$LOCALfVP)\P#hPtP  P ?PP P P PPP P^|W?3JTPRTSYI01 4-Feb-1997 12:25Digital Fortran V6.4-165JTPRTSYI&P Your system string is:JTPRTSYIQ8Ph HPXH` P p[ː˒ޫ˔k˘˜ ˞ޫˠkˤԫ ˨ ˪ޫ ˬk˰˴e˶ޫ˸k˼ SYS$GETTIM( SYS$GETSYIWHQSUBիX FOR$EXIT_WƸ4J P\\r}PPPR~ QQQS FOR$WRITE_SF߫ FOR$IO_X_DA\ FOR$IO_L_VR FOR$IO_L_VS FOR$IO_L_V FOR$IO_END JTPRTSYI SYS$GETSYIW SYS$GETTIMQSUB FOR$EXIT_W$CODE$$PDATA$LOCAL FOR$IO_END FOR$IO_L_V FOR$IO_X_DA FOR$WRITE_SF P>21KGETKI01 4-Feb-1997 12:25Digital Fortran V6.4-165 KGETKI KGETKIP+!|P HPPxPxPh[Ь$˘˚ޫ˜kˠˤ ˦ޫ˨kˬԫ ˰ ˲ޫ ˴k˸˼e˾ޫk( SYS$GETTIM0 SYS$GETSYIWPr,PFINDACEPQ P޻$QÏƸ4ÏJ ÏP P«PÏr}R«RÏ~S«SWTëTWxl)0PPr,RS `REPLENTz KGETKI SYS$GETSYIW SYS$GETTIMFINDACEREPLENTA$CODE $PDATA$LOCALJ>A"*[EVERHART.JTDEMO]JTGETMRK2.OBJ_A;1+,#./ 4.- 0123KPWO56 oz7@zz89GHJ@@JTGLMSK 6-NOV-1996 21:52  Digital Fortran 77 T7.1-61 $DATA$$BSS$8$IODATA$i4 $CODE$$LINK$(JPJTGLMSK SYS$TRNLNM SYS$GETTIM SYS$GETSYIWQSUB DFOR$EXITFINDACEQADDREPLENT0JJTPRTSYI DFOR$WRITE_SEQ_FMT5@ SAFETY013.A# "[EVERHART.JTDEMO]JTGETMRK2.OBJ_A;1y DFOR$HANDLER(JKGETKIX X=@86 Your system string is:8\-97 =< 4 [#0^?$8^&@~?'Hr"P! XG~#02"&""9#"0[4G8dChCG2 2"r="r}" $( ]"=G Gݲ$8{@Zk5@ "}00"G @ 0JBSG _'Z#&" 'De?$B$#d#""#! $" $Gd,4Gd $$b@ZkBb4GGGG"GG@ZkBbp "GGtG@ZkpBxb" 4G @Zkr,&P" B% (b%"0@"=]"tG@Zk$% GxPp Т"0?&BP_&)1"pWR"m&xΔ"в5@Fr,?$&E% e$eբP! "1QC2C44C!aC0pB6BU=4G] ( "pBxb@ZkpB xb4GB "@Zk(pB xb4GB "@Zk ="D@BbG1"GtG@ZkpBxbp"4G2@Zk0`B? GGhbG @"tG@Zk##0&r,&c_&m&&)"P" $WR"xs""BB5B @3@v@ %P"""G%}"$eGb@Zk $} $@G0]8 8]@}HPX`#kGG`#?$~ & &p^e&x^! ~s""cG"#4G[GXD"\"h"l"d#H 8d <{G$8$@DDdHLDPTIJXD\`dDhlp@ZkGbBb4GGGP"GG@ZkXB`b\"GpC"tG@Zkt8B@bH"4G@Zkh#d#K _&4&Q&lcR"}&" @닔"&G@ Br"@4@8]"`B~"H]hB5B8=@"X]@xc <= _&<="hGR"@b"P}H"`=Gpbx@ZkcGp]x]}#kGG#?$^ &^ & ~e'(! 0G~""##G @[Gd"$#D"""($H{"4G$Dd dIJ d$,d048@ZkG 0B8b4GGG"GG@Zkr,?$pBP! xb@("$"]"tG@ZkD" Gx!a ! & @!4?&W"a1"K &ؔ"+&&m$ ?$ cC#c"&"x #b! 4TC11C?'3qB;qC5B8Cx9#`B0BwB6CB!aC5B$" rP""}"ҲG2$hb@ZkG]] }(0@#k4`G SYS$TRNLNM4b#P SYS$TRNLNM4@ SYS$TRNLNM40G SYS$GETTIM4b#P SYS$GETTIM4@ SYS$GETTIM4G SYS$GETSYIW4b#P SYS$GETSYIW4@ SYS$GETSYIW, GQSUB, b#PQSUB, @QSUB4 G DFOR$EXIT4 b#P DFOR$EXIT4 @ DFOR$EXIT,$GPFINDACE,0b#PFINDACE,L@PFINDACE4 G$ DFOR$EXIT4 b#P DFOR$EXIT4  @$ DFOR$EXIT4 ,GL DFOR$EXIT4 4b#P DFOR$EXIT4 H@L DFOR$EXIT4 TGt DFOR$EXIT4 \b#P DFOR$EXIT4 p@t DFOR$EXIT, GQSUB, b#PQSUB, @QSUB4 G DFOR$EXIT4 b#P DFOR$EXIT4 @ DFOR$EXIT,GQADD, ,,b#PQADD,@QADD,8GREPLENT,b#PREPLENT,@REPLENT4$G SYS$GETTIM4Pb# SYS$GETTIM4@ SYS$GETTIM4G SYS$GETSYIW4b# SYS$GETSYIW4@ SYS$GETSYIW, GQSUB, b#QSUB, @QSUB4 G DFOR$EXIT4 b# DFOR$EXIT4 @ DFOR$EXIT< `GDFOR$WRITE_SEQ_FMT<b#DFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT4<G SYS$GETTIM4`b# SYS$GETTIM4@ SYS$GETTIM4G SYS$GETSYIW4b# SYS$GETSYIW4@ SYS$GETSYIW,G FINDACE,b#FINDACE,@ FINDACE,G REPLENT, b#REPLENT, @ REPLENTl l=0;=@0 0;= SYS$GETSYIW SYS$GETTIM=!`REPLENTFINDACE=+=0p;=D 7 DFOR$HANDLER= DFOR$EXIT=8 QSUB DFOR$WRITE_SEQ_FMT;=    =8)XTLNM$SYSTEM_TABLEH=P=00;= `8< BOGUS SYS$TRNLNM=SYE$_SPLCRSMDL=(WQADD=\ %*[EVERHART.JTDEMO]JTGETMRK2.OBJ_VAX5;1+,$. / 4  - 0123 KPWO56U87P89GHJ2JTGLMSK0117-Nov-1996 13:4117-Nov-1996 13:41VAX FORTRAN V5.9-173JTGLMSKGP8PTX\(WLNM$SYSTEM_TABLESYE$_SPLCRSMDLJTGLMSKP 1 SYS$TRNLNM@1 SYS$TRNLNM@  P [˨˪Xˬޫ˰˴˶ޫ˸ޫ˼0 SYS$TRNLNMPѫ)X@<8Pޫޫ  ޫ ޫ $ԫ( *ޫ,ޫ 04e6ޫ8ޫ <@DHH SYS$GETTIMP SYS$GETSYIWpQSUBիˀ FOR$EXIT_WPr,kˈFINDACEQR QP1PQRWxl)0PÏPr,QSRP˘ FOR$EXIT_WSˠ FOR$EXIT_WR˨ FOR$EXIT_Wիի˰QSUBի FOR$EXIT_Wԫ<QADDЏ Wxl)0Pr,REPLENTÏ <8P@PBOGUS JTGLMSK SYS$GETSYIW SYS$GETTIM SYS$TRNLNMFINDACEREPLENTQSUB FOR$EXIT_WQADD0$CODEE$PDATA$LOCAL_RPXPdP P /PwP P P PPP P]wE03JTPRTSYI0117-Nov-1996 13:4117-Nov-1996 13:41VAX FORTRAN V5.9-173JTPRTSYI0P8 Your system string is:-JTPRTSYIPp HPXHhP x[ˈˊޫˌkː˔ ˖ޫ˘k˜ԫ ˠ ˢޫ ˤk˨ˬeˮޫ˰k˴˸˼ SYS$GETTIM( SYS$GETSYIWHQSUBիX FOR$EXIT_WƸ4J PPP\r}PPR~ PPS FOR$WRITE_SF߫ FOR$IO_X_DA\ FOR$IO_L_VR FOR$IO_L_VS FOR$IO_L_V FOR$IO_END JTPRTSYI SYS$GETSYIW SYS$GETTIMQSUB FOR$EXIT_W$CODE)$PDATA$LOCAL FOR$IO_END FOR$IO_L_V FOR$IO_X_DA FOR$WRITE_SF P>21KGETKI0117-Nov-1996 13:4117-Nov-1996 13:41VAX FORTRAN V5.9-173 KGETKIP+! KGETKIP HPPPP x[Ь$ˈˊޫˌkː˔ ˖ޫ˘k˜ԫ ˠ ˢޫ ˤk˨ˬeˮޫ˰k˴˸˼( SYS$GETTIM0 SYS$GETSYIWPr,PFINDACEPQ P޻$QÏƸ4ÏJ ÏP P«PÏr}R«RÏ~S«SWQëQWxl)0PPr,RS`REPLENTz KGETKI SYS$GETSYIW SYS$GETTIMFINDACEREPLENTA$CODE $PDATA$LOCALJ>A&*[EVERHART.JTDEMO]JTGETMRK2.OBJ_VAX62;2+,. / 4  - 0123KPWO56}K=7=89GHJ2JTGLMSK01 4-Feb-1997 12:25Digital Fortran V6.4-165JTGLMSKJTGLMSKP8PTX\(WLNM$SYSTEM_TABLESYE$_SPLCRSMDL P 1  SYS$TRNLNM@1 SYS$TRNLNM@ P[ˬˮ\˰ޫ˴˸˺ޫ˼ޫ0 SYS$TRNLNM޼TPѫ)\@d<8Pޫޫ  "ޫ$ޫ (ԫ, .ޫ0ޫ 48e:ޫ<ޫ @DHLH SYS$GETTIMP SYS$GETSYIWpQSUBիˀ FOR$EXIT_WPr,kˈFINDACERS RP1QRSWxl)0QPr,RSQ˘ FOR$EXIT_WRˠ FOR$EXIT_WS˨ FOR$EXIT_Wիի˰QSUBի FOR$EXIT_Wԫ<QADDЏ Wxl)0Pr,,REPLENTÏ d<8P@PBOGUS JTGLMSK SYS$GETSYIW SYS$GETTIM SYS$TRNLNMFINDACEREPLENTQSUB FOR$EXIT_WQADD3$CODEE$PDATA$LOCAL_VP\PhP P 3PzP P P PPP P^xW33JTPRTSYI01 4-Feb-1997 12:25Digital Fortran V6.4-165JTPRTSYI,P Your system string is:-JTPRTSYIQ8Ph HPXH`(P p[ː˒ޫ˔k˘˜ ˞ޫˠkˤԫ ˨ ˪ޫ ˬk˰˴e˶ޫ˸k˼ SYS$GETTIM( SYS$GETSYIWHQSUBիX FOR$EXIT_WƸ4J P\\r}PPPR~ QQQS FOR$WRITE_SF߫ FOR$IO_X_DA\ FOR$IO_L_VR FOR$IO_L_VS FOR$IO_L_V FOR$IO_END JTPRTSYI SYS$GETSYIW SYS$GETTIMQSUB FOR$EXIT_W$CODE,$PDATA$LOCAL FOR$IO_END FOR$IO_L_V FOR$IO_X_DA FOR$WRITE_SF P>21KGETKI01 4-Feb-1997 12:25Digital Fortran V6.4-165 KGETKI KGETKIP+!|P HPPxPxPh[Ь$˘˚ޫ˜kˠˤ ˦ޫ˨kˬԫ ˰ ˲ޫ ˴k˸˼e˾ޫk( SYS$GETTIM0 SYS$GETSYIWPr,PFINDACEPQ P޻$QÏƸ4ÏJ ÏP P«PÏr}R«RÏ~S«SWTëTWxl)0PPr,RS `REPLENTz KGETKI SYS$GETSYIW SYS$GETTIMFINDACEREPLENTA$CODE $PDATA$LOCALJ>A*[EVERHART.JTDEMO]JTGO.COM;16+,&. / 48 - 0123 KPWO56^ 7 /89GHJ$set proc/priv=all$! run daemon detached$set comm sys$system:jtdmn$jtdo:==jtdmn/fcnmsk:705478$jtdo/key:WHYME/exempt:gcy$sys:exempt.images jta0: vdb0:$jtdo/deas jta0: vdb0:$logo*[EVERHART.JTDEMO]JTHELP.HLP;12+,'.Z/ 4PZX- 0123 KPWOY56ȈӚ7Ӛ89GHJ6@ SAFETY013.A' [EVERHART.JTDEMO]JTHELP.HLP;12J_A;16PZ4j>1 SafetyG Safety (tm) is a comprehensive data safety package offering enhancedG file access controls, soft linking, deletion protection (and RELIABLEJ undelete support), and some features of hierarchical storage control and space management. 2 CommandsC A number of commands exist to control Safety and its components. 3 MarkSDH@ MarkSDH and MarkFile are used to set file security attributes. C MarkSDH runs a full screen interface to select a set of files andE allows a set of files to be selected in the current directory tree.D When all files are selected, you type the "G" character (for "go")E and enter a security selection menu identical with that in MarkFile C MarkSDH selects access control and integrity attributes in a menu? oriented way. You pass it a set of files (a file spec, with aB possibly wildcarded name) or single file to mark and specify howB and by whom it may be accessed. See the user manual for complete@ detail, or just follow the menu. There are also menu items for+ database maintenance and global checking. 3 MarkFile@ MarkSDH and MarkFile are used to set file security attributes. D MarkFile selects access control and integrity attributes in a menu? oriented way. You pass it a set of files (a file spec, with aB possibly wildcarded name) or single file to mark and specify howB and by whom it may be accessed. See the user manual for complete@ detail, or just follow the menu. There are also menu items for+ database maintenance and global checking. 3 FILEPASSWORDG FilePassword allows you to enter a password to permit you access to a5 file. The command is FilePassword filespec passwordA and it will prompt for file spec (must be a single file) and/or$ the password if these are omitted. 3 UNDELETE= Undelete will undo a delete operation. The syntax is simply  UNDELETE filepath H where filepath is the complete path to the file to undelete. WildcardsJ may be used in the path, according to VMS STRING rules, to specify partsB of pathnames that don't matter. Thus if you accidentally deleted 4 disk$foobar:[mumble.fratz]myveryimportant.file;34 you can say ! UNDELETE *myveryimportant.file* B and get the file back (it goes back exactly where it came from.) H Note that if the file has been EXPUNGEd or was deleted long enough agoH to have been emptied out of the wastebasket it may not be recoverable. 3 MoveHSMI The MOVEHSM command runs a full-screen file selection tool which allowsG files in the current directory tree to be selected and then (when theG user types "G") a how-to-move files script comes up. This script is aK full screen menu script allowing files to be moved in a standard shelvingF mode, or can copy a file and create softlinks or read-only softlinksA to the copy. (A softlink will access that file in place for allG applications. A readonly softlink will open the linked-to file if theM original file is opened for read, but otherwise will inswap to the originalF disk. In both softlink cases, a particular file name and version are linked.) 3 MoveFileK The MOVEFILE command runs a full screen menu script allowing files to beB moved in a standard shelving mode, or can copy a file and createG softlinks or read-only softlinks to the copy. (A softlink will accessH that file in place for all applications. A readonly softlink will openK the linked-to file if the original file is opened for read, but otherwiseH will inswap to the original disk. In both softlink cases, a particular$ file name and version are linked.) 3 Expunge The command  EXPUNGE filespecs H deletes the files spefified, and does not protect so that the UNDELETEE command cannot be used, but space occupied is released immediately. 3 SoftLink The command F SOFTLINK/TO:device[directory]file.typ srcdevice:[srcdir]srcfile.typ 1 creates a soft link so that an attempt to open1 srcdevice:[srcdir]srcfile.typ will instead openH device[directory]file.typ. The link is specific to one particular fileI version, so that editing a softlink will generally create a new versionI of srcfile.typ, for example. The capability should be used with this in mind. The command / SOFTLINK/REMOVE srcdevice:[srcdir]srcfile.typ G will in turn remove this softlink. While a softlink is in effect, anyG image not exempt from Safety cannot access the original file that mayD have been in srcfile.typ. (Thus these files can profitably be zero length.) 3 JTREPORTE The JTREPORT command will show what Safety servers are active, what9 devices they control, and what capabilities they offer.3 JTKillServerJ The JTKillServer command displays Safety servers active, and permits one+ or more of them to be cleanly turned off.#2 Expert-mode_Command_Line_Commands D EACF and DPS have a somewhat obscure command line interface. It isB intended that this interface generally NOT be used by users, butJ be used by way of command scripts that are part of the package. However,H in order to make it possible for the packages to be called from normalI scripts this document is supplied to describe the format of the command! line interface to EACF and DPS. 3 JTDMN_Command_SwitchesH The JTDMN command is used to start the main Safety server and control its functions. . This server handles three sets of functions: D open - gets control on io$_access if my ACE is there or if filenum@ is in knl list in ucb. Handles security, swaps, softlinks, etc. A extend - gets control on extend & create if disk has too littleC free space left and request is < 1/8 of disk size. I delete - gets control on delete operations. Used to check file accessesH where delete is attempted to ensure extended checks are met. 4 Function_switch_valuesE Control flags in ucb$l_ctlflgs work by bits. These are set with theF /function:nnnnnnn switch to the JTDMN command. The following are the meanings of the bitmasks. C 1 - Allows access filtering. Used to recognize? files to move, check security on, etc.' 2 - Examine modify3 8 - CBT setup on create (only)B 16 - Look at create function (does CBT setting4 and possible space control)0 32 - CBT on create or modifyD 64 - Send del dmn msg only if filenum stored, ifC set. Otherwise send always. Used to ensureF if knl tagging exists that the delete testing% can be done., 128 - If set allow deleteH daemon to control deletion. Two functions here.H One is that if the file is in our "kernel list"F we flag specifically for the delete daemon toK check whether delete access is permitted. (In factM all deletes are security checked if this bit is set,2 so we get good coverage.)J 65792 - If either bit set (65536 + 256), look at deaccess! (close).0 512 - Space control ok if setF 1024 - If set, check for FIDs with rvn bit 8 set and? high filenum bit 8 set and lets accessK filtering be done. To be used for "full" softlinksH when a directory-generator is built. (Don't use yet!)L 2048 - Prevent opens if device is privately owned on filesK save by volume owner. Blocks access EVEN if privs.A 4096 - Allow size control only if aldef bit setC 16384 - Set aldef bit always to use default alloc.C 32768 - Pretend we see an ACE on ALL files on diskJ 65792 - If either bit set (65536 + 256), look at deaccess! (close).C 262144 - If set, examine only files with filenum inC kernel list (instead of looking for ACL onE all). Designed to save time where only a fewE files (few :== under 512) are known to be of+ security interest.J 524288 - Allows deletes to open softlinked files to deleteI the softlinked files. Normally this is inhibitedO since the softlinks and not the linked-to files shouldI be deleted to avoid dangling links. The overrideB condition occurs only if this bit is set.H 1048576 - Veto r/w logical from user mode channels if the4 disk is mounted non-foreign 4 Sharing_JTDMN_servers3 The /SHARE:jtau: switch says that this JTAn: unitB will share the same daemon with already set up unit JTAu:, whose daemon must already exist. 4 Starting_the_server6 The daemon would normally be started with a command: 6 $ jtdmn/fcnmsk:65833/key:my-security-key JTAn: DUAm: = where JTAn: is a unit of the JTdriver intercept driver, and? DUAm: represents some disk on the system. Additional switchesA /FILENUM:file and /SHARE:jtau: can be used to load file numbersA from a file somewhere on the system. These file numbers will be@ treated as though they had ACE tags on them whether they existA or not (as protection against malicious tampering with the file ACEs that EACF uses).C A bitmap is used to store file numbers that are tagged, so thatB it is possible to kernel-tag ALL files in use in this way. HenceD EACF protection is able to be provided for all files tagged. Also,B by setting the function mask bit 262144 is set and the 64 bit isG set, then file ACLs are looked for only for files known to be tagged.F If most of your files are not tagged, this means you incur the smallB amount of kernel processing in reading tags only for those filesG that are tagged (and a few aliases, since a hashing technique is usedG to keep the bitmap size modest). This can be particularly significantC on deletions, since in that case all deletions must be fed to the daemon unless tagged. 4 Stopping_the_server0 When the daemon is to be disabled, the command  $ jtdmn/deas JTAn: DUAm: D must be given to complete deassignment. Until this is done, the JT9 unit is busy and cannot be used for another assignment. $4 Files_used_during_server_operation Files used during operation: ) gcy$cm:filsav.com - save file somewhere2 ($@gcy$cm:filsav dev:file.typ hexfid1 hexfid2)= dev:file.typ is filename passed to jtauthmaint for file.0 hexfid is hexfile id value, z8.8, 1x, z8.8)0 gcy$cm:sd.GDB - sequential delete record/ (xformed_filename,devicename,orig_filespec) (comma-delimited) (xformed filename isG .sav ); gcy$cm:softlk.com - softlink file, truncate original one.H ($@gcy$cm:softlk orig_filename new_loc_filename filnum filseq filrvn) where last 3 are the 3 parts of FID)2 gcy$cm:filrst.com - restore file saved somewhereE ($@gcy$cm:filrst dbname zfid1 zfid2 size_in_blocks orig_filename)< (orig_filename is filename passed in file marking w/dvc)) (dbname is $$.gdb or( $$.gdb)B gcy$cm:fildel.com - delete a file (copy nominally, command file)( ($@gcy$cm:fildel dbname zfid1 zfid2)( (dbnam is $$.gdb or' $$.gdb)3 jtd$db:op.gdb - ISAM disk database for eacfI "@jtd$cm:makspc dbnam neededspace" - Get "neededspace" new free blks on@ disk. dbnam is delimited db name $alloclass$dvcunit: orB node$dvcunit: (might be in filename form) and neededspaceB is in decimal. Should figure out desired files to move toG nearline storage and move enough to make desired space. Called= when space is lacking for create, extend, or inswap. <4 Logical_names_used_by_server_and_other_Safety_componenents Logicals:; GCY$DELINC - File strings that may be saved from deletionG GCY$DELEXC - File strings that should be deleted anyway (e.g. *.OBJ*)B GCY$DELSAV - master control for delete protection, if "Y" do it.F GCY$DELMNT - if equal to "OK" then delete EACF database entries whenH a delete is to be let thru EACF (even if DEC protectionB will disallow the delete). Otherwise leave alone.N GCY$PARAND - If defined as "OK" allows "paranoid mode" checking and checking; if flagged of files' open by user cmd fileD GCY$SPWN1 - If it translates to Y (or 1st char is Y) then deletionE by spawn will use lib$spawn every time and thereforeC not leave any extra processes around. Otherwise itH will create a "kept" subprocess which will get commandsC via mailbox to issue deletes etc. from. (This willF greatly speed up such processing, but does require an+ extra process per daemon.)K GCY$SPWN2 - If it translates to a Y (or 1st char is a Y) then file inswapI will be done via a spawned subprocess using lib$spawn toC get a new one for every inswap. Otherwise a "kept"A subprocess will be started and it will be passedL commands via mailbox after the first inswap. This is fasterH than spawning every time, but may be wasteful if inswapK is comparatively rare. Note that if the translation of theF logical is at any time other than Y, the kept processJ will be started. The process will remain until the daemon exits.H JTM$SWPOP Action that is used basically for file out/in swap. CanI be "SWAP" for in/out swap (default), "LINK" (normal softL link), or "RLNK" ("readonly softlink"). Set up by JT_SETUP.E DELSAV: directory, or dev:[directory] where deleted files orL shelved files are to be saved. Needs to be only a directoryP if using rename mode delete protection, or a device:[directory] otherwise.< JTDEL$MODE Numeric value of mode of deletion handling. mode bits Meanings: Bit Meaning 0-1 0 = use .COM file 1 = use rename mode) 2 = use copy (callable cvt) mode; 3 = copy and add softlink. No database file genn'd1 2 If set don't delete ANYthing immediately1 3 If set don't include only included names7 4 If set, delete file if no room for rename/copyN If clear, leave file alone if copy area is full (return error though)G 5 If set, no timetag on deleted files (use if using softlink...)C 7 If set, delete files in shelf area as well, if they exist. mode=mymode()I 9 If set overrides bit 4 so del_shelved can be called, still fakes) success in user's deleteP 10 If set, inhibits delete of database entry when deleting via del_shelvedI 12 If set, then when one deletes FID (5,20,0) (which doesn't exist)H then run @gcy$sys:dps_process_deletes so that deletions7@ SAFETY013.A' [EVERHART.JTDEMO]JTHELP.HLP;12J_AXP6;6PZt> J can be handled right then. (The sequential record is leftL normally closed.) The delete of fid (5,20,0) is faked then. G JTD$DB Location where Safety databases are kept. Ideally thisF should be a fast device. (This can be separate, a jobC name, for each server if there are more than one.)J GCY$CM Location where .COM files used by Safety are kept. Should? also be fast. Defaults to same area as JTD$DB.G GCY$SYS Location where Safety executables are kept (except for JTdriver).N GCY$SCRATCH Scratch storage used where Safety is told to compress swappedL files for shelving or unshelving; used to hold files duringI these operations, so that write-once storage can be used3 or tape can be used to hold files.E SAFn_stuffm Logicals used to record information about what disksH and JT devices are in use, modes, information about theD Safety servers, and so on. Set up at Safety startup- and used by various reports.  *4 Exempting_a_process_from_Safety_controls @ Note JTexempt.exe will, when run, exempt its process from EACF? controls on a particular disk. It takes a JT device unit nameD as its argument. However, the facility of "exempt" image pathnamesG (as supported in jt_setup.com & jtdmn.exe) seems more promising. ThisA allows any images (up to 32 of them) to be declared exempt fromH EACF mods. One would use this for things like defraggers and the like.G Note that ACCESS to these exempt images can still be controlled; they= are exempt from access controls only once they get started. C The JXSET command sets one as exempt (and logs this) or un-exemptC from Safety. Should be permitted only to selected trusted people.? JXSET/ALL disables Safety checks. JXSET/Normal restores them. 4 Server_command_formats JTDMN command:  Normal command format: + JTdmn/qualifiers JTAn: disk-to-intercept: Qualifiers: 2 ASSIGN - use to begin an interceptE DEASSIGN - use to end an intercept (must be used before= another intercept can begin)F KEY:string - Specifies string as the security key for thisH volume. Used as part of the checks thatF ACEs modifying privs, identifiers, or6 base priority are ok.G MODE:nnn - Sets mode mask. Mask bits control how shelving; or deletion is controlled.@ Mode meanings (used for delete etc...)' Bit Meaning1 0-1 0 = use .COM file3 1 = use rename mode@ 2 = use copy (callable cvt) modeF 3 = copy and add softlink. No database4 file genn'dH 2 If set don't delete ANYthing immediatelyH 3 If set don't include only included namesN 4 If set, delete file if no room for rename/copyO If clear, leave file alone if copy area is full> (return error though)K 5 If set, no timetag on deleted files (use if; using softlink...)I 6 If set causes delbak.com to be run before9 actual deletions is doneF 7 If set, allows system to spawn commandI @GCY$SYS:DEL_SHELVED shelvedfile delfileK to allow it to delete the shelved file (or+ whatever).I 9 If set, overrides bit 4 being set so thatK bit 6 type delete action can be taken. (IfJ bit 4 is set, system fakes delete successO for user. If bits 7 and 9 are set, the commandI file can delete both files if it likes.)J 10 If set, prevents database entry from beingN deleted on operations controlled by bits 7&9.I 13 If set, replaces setting GCY$DELMNT to OKM Note that for bits 7, 9, and 10 to be meaningful, the systemN logical GCY$DELMNT must be set to "OK" or bit 13 must be set.E FCNMSK:nnnn - Sets function enable mask. See above for bit* meanings.D CBT:m - Sets to do contiguous-best-try file extendsH every mth extend. Default is equivalent4 to a /CBT:1 switch.F FRACTION:n - Sets to extend files by fraction 1/n of their? size. Default is equivalent toG /FRACTION:4 which causes extends to beF 1/4 of the file size (+1) by default.G MODIFY - Causes JTDMN to just change parameters of a JT> unit, not to act as a daemon.J FILENUM:file - Causes JTDMN to read in file and use it as a listG of file numbers of marked files. TheseF files then are treated as though theyI had tagging ACEs on them even if no such0 ACEs are found.G EXEMPT:file - Causes JTDMN to read in file as a list of pathJ names of images exempt from EACF securityG or DPS protection. Up to 32 such pathsB may be in the file. Wildcards areF permitted within them, matched to the@ image path with str$match_wild.H SHARE:jtam: - Causes JTDMN to enable the JTAn: on its commandF line but use the same EACF/DPS serverH as currently used by JTAm:, so that one= server can serve many disks.I MINIMUM:nn - On extend, set extends to at least nn blocks (if; free space on disk allows)J MAXIMUM:mm - On extend, do not force extends to be larger thanJ mm blocks (unless the user request is forD more; we NEVER reduce a user extend* request.)F ALDEFONLY - On extend, only increase extend amount if theI ALDEF bit is set (indicating the programE is telling VMS to use volume default) extend).? LICENSE - Print system ID string on the console.; INSTALL:key - Install license key in the system. I Note that the /LICENSE and /INSTALL:keystring qualifiers don't actuallyI use any other arguments, so dummy arguments may be used in these cases.   3 Function_ControlM There is a utility which is used to set up file security, actually outswapA files, set up or remove softlinks, or report on file markings. M Currently there is a commandline driven interface to control file security. Its function is to: < * Maintain security access ACE entries on files on a disk* * Display contents of security database0 * Update or clear fields of security database G The control interface is handled via the JTAUTHMAINT utility (for the most part). % Commands to jtauthmaint are of form  filename\commands F where filename is any file name one likes. The disk part of the nameF is used to select which database name to be used (the databases liveF in area GCY$CM:) and the filename is used to find the file ID, which is the record index. I The commands are just strung together, being designed to be concise andG easy to parse, though not necessarily easy to read by hand. Remember,F the intent is to generate databases assuming a DCL layer at least isE between us and the user. (This layer will use some fullscreen toolsJ also, so privs will be entered by name, not by mask, as will identifiers and the like.) 4 JTAUTHMAINT_commandsF The commands are composed of short substrings. In EACF the following such substrings are relevant: D %SYMS Generates a set of DCL symbols with variousD fields of the current file (for use by userA interface). Gets basically all data into% DCL symbols. Symbols are: JTA_ZFID - File id, hex5 JTA_ITIM - Permitted usage by time (24 chars)' JTA_MXPV - Max privs (hex mask)5 JTA_CKSM - Checksum (hex mask) (0 means none); JTA_PSWD - File password hash (0 means no password) JTA_USRS - OK users" JTA_FUSR - Forbidden users JTA_TTYS - OK TTYs! JTA_FTTY - Forbidden TTYs JTA_IMGS - OK Images# JTA_FIMG - Forbidden images6 JTA_BKPU - Backup user list ("superuser list")% JTA_FNAM - Filename as stored0 JTA_CSLK - conditional softlink dvc:file+ JTA_NSLK - normal softlink dvc:file/ JTA_INSP - inspectme flag - space or I+4 JTA_BPRI - baseprio set - space or base prio1 JTA_RPRV - Replacement privs vector (hex)N JTA_IDNT - Identifier hex value. Note only one is reported even thoughB the system will allow more. Space if none.F JTA_SURW - superuser (backup) read-only access. 'R/O' or 'R/W'; JTA_ZCMD - command to execute if access is rejected A %DELETE Delete database file entry for this fileG %PURGE Goes over the entire data base and checks thatE the files in it exist. Any records referringC to files that cannot be found are deleted.E %REGEN goes over entire data base and re-enters anyD ACEs that have been deleted but that should= be there (which are available in theD database for that purpose now). Reports toB sys$output when such an action is needed./ Also reports to OPCOM.D %SHOW display the whole record in a mostly dumpedF form (or displays a message that none exists)C %LIST Write a list of filename/file-ID pairs out= of all files in the database. SymbolH JTA_LISTFILE returns with file spec of the fileE written. Files appear as filename (n1,n2,n3); where "(n1,n2,n3)" is the file ID.G %SUMM Writes a list of filename/file-ID pairs out ofI all files in the database, with file sizes also.H Symbol JTA_SUMMLEN returns with total blocks inD the files selected, and symbol JTA_SUMMFILEG returns with the filespec of the file written.D Format of the lines is as in %LIST but with. file size afterwards. %GBLEDIT `oldstring`newstring`C Replaces all occurrences of "oldstring" inG the database with "newstring" (or just deletesE "oldstring" everywhere if newstring is null.F Any delimiter character in neither string mayJ be used (provided it's printable...). This shouldB be a handy way to remove users and so on.# %GBLEDITCON `oldstring`newstring`H works like GBLEDIT but requires confirmation atE command line for each change. Replies Y or ND confirm or deny the current replacement,andI reply A says accept all further edits, and reply5 X means do no further edits.H %REPORT Creates a report file showing basically all theF info about the database file for this device.E The filename is stored in symbol JTA_RPTFILE* (the DCL symbol). F Database files are kept in jtd$db:op.GDB, where "diskname"C is concocted from the device name. For example, disk ARISIA$VDB1:B has a database file named OPARISIAVDB001.GDB. A report file will? be named the same with "_REPO" appended, and the name in thisE example would be OPARISIAVDB001.GDB_REPO. A %LIST output file wouldE be named the same with "_LIST" appended. In the example it would beH OPARISIAVDB001.GDB_LIST. These files should be purged (and by defaultJ the %LIST files are regenerated and purged every time Safety starts up.)H Command files "live" in logical GCY$CM which by default is in the sameG location as the databases, directory JTD$DB, pointed to by a logical. E The following keys refer to mods that are made as a file is opened F K Sets a security key string which should matchC the /KEY:string switch used in running theL daemon. Such a match is needed to validate securityM relevant ACE actions like priv or identifier modify.L #Snn Base prio to nn where nn ranges 0-31. Sets the baseH priority of the process to nn while the file is open.H P Priv mask. Resets all process priv masks to theJ mask here (16 hex digits) while the file is open.I Note this replaces masks, does not OR into them,8 so it can raise OR lower privs.L I Identifier Assigns the identifier (expressed as 16 hex digits)M to the process while the file is open and revokes itJ unconditionally when the file is closed. Multiple; identifier strings may be present. F The following keys refer to access permissions which apply to both OPEN and DELETE access. H I+ inspectme tag. Sets a flag to tell EACF to sendK a message to the access daemon to check this open.K (Settings of database fields as noted below shouldI be accompanied by this string to ensure they get$ looked at.)P V Max priv mask - Sets a mask of the MOST privs a processM may hold when opening the file. If the process holdsM any more privs, the open fails. Thus one can disableM file opens via BYPASS or READALL even if the file isI normally world readable; a process holding theseJ privs would be denied acces8@ SAFETY013.A' [EVERHART.JTDEMO]JTHELP.HLP;12J_AXP6;6PZ4?s. If it disables them3 it can then do the access.< T - time-value access permissionJ This sets access permission every hour. Each hourH is represented by one letter. Values known are: I Y - Access permitted provided all other security- checks pass.G N - No access (except to users on backup list)M U - No CHECKS, let everything by EACF checks on thisM file during this hour. (DEC security remains, in effect.)D P - Check privileges against max privs onlyK R - Readonly access only, by anyone; r/w opens areG rejected. Other checks may deny access1 totally as well.C X - Allow r/o opens, test others normally.G D - Disallow access by ANYone (even superuser)L Z - Command to execute if file access is denied. NoteI it is executed even if a conditional softlink isK to be used. If "\" is in the string the command isG chopped there. Otherwise it gets the username,I terminal name, hex FID 1, hex fid 2, and hex PIDK appended with spaces separating them (so a commandN procedure can use them as P1 to P5 unless the command@ itself contains more parameters first).F && Sets a mode where all opens are inspected andH a command file gcy$sys:filtall is run with argsE fileid (hex), username, uic (hex), pid(hex),L accmode (hex), device (less $ initially if allocls)E are passed. If exit status is bad, access isL rejected. Filter in open only. The last arg is 0 ifK a file opened by the paranoidmode file, 1 if it isF the paranoid mode file itself (&% set below).J &% Sets the && command file to run for the file thatM is to be checked by filtall also, with last arg as 1& in that case.H X Command to execute. If cmd proc sends back "NG"I this rejects access. If it sends back "OK" as itG normally will, access is allowed. This test isG done only if access is permitted by other EACF: tests. A kept subprocess is used. G The list maintenance commands below are all similar in form. They add5 to a list, subtract from a list, or replace a list;D Note that lists may use * as a wildcard character (str$match_wild5 is used to test matches) and & means skip the test.  + commands of form L+ add to a list2 " " " L- subtract from a list, " " " L* replace a list H Lists are generally permitted to have wildcard characters (*) as usual with VMS. I U+ Add a name to the "permitted users" listN U- remove a name from the "permitted users" listC U* replace the "permitted users list". with this oneI V+ Add a name to the "forbidden users" listK V- Take a name off the "forbidden users" listH V* Replace "forb. user" list with this oneJ K+ Add a terminal name (or substring) to theN "permitted terminals" list. Note thatO terminal name and access port name are6 both checked.J K- Remove a name from "permitted terms" list@ K* Replace "permitted terms" list.C (note letter+, letter-, letter* pattern above...continue for all)N L[+-*] Edits the "forbidden terminal names". list.1 N[+-*] - operate on permitted image list@ O[+-*] - operate on forbidden image listM Q[+-*] - modify password on file. Sets the password.B User must enter the password withH password-entry tool before the file canA be opened if password is set. Y-6 gets rid of password.I Z+- - turn checksum on/off (on -> compute checksum). If the checksum isB used, a cryptographic checksum isH generated for a file. At any open, thisI is recomputed and the file will not openF unless it matches. This prevents fileE tampering from going undetected, butE beware: computing the checksum takesG noticeable amounts of time. It is best< used on short script files.M W+- Skip ace alteration if +, allow if -. Default allow. Lets the databaseF be edited without touching the file's% ACL.K X+ eXpunge variable field stuff initially. If set, this zeroes all lists9 before starting.O R+ or R- Set backup user access to read/only (R+) vs read/writeK (R-). When R+ is specified, backupH account opens must be read-onlyJ opens or they will be disallowed. F The conditional softlink specification applies only to OPEN accessE and not delete, since it is a system action that takes placeB if access is to be denied. Delete processing does not useD this and will simply be denied delete access if file accessE is denied; the conditionally softlinked file is NOT touched. G C Set conditional softlink to dev:filename whichE is taken if access is denied E Note that where normal or r/o softlinks exist, most file operationsD affect the softlinked file, NOT the original one. If the operationD internally opens the file, the softlinked file is accessed instead of the original one. M H Set normal softlink to dev:filename (uncond)D # Set normal softlink, read-only type F There is a component to create file passwords. These get left aroundG scrambled into logicals in a UIC dependent way (to make it harder forD people to grab them from each other). File passwords are generated by a command that looks like FILEPASSWORD filespec password G The remaining components are the intercept driver, which needs a unitA to be connected for each disk which EACF is to protect, and theC daemon which does the bulk of the work (and incidentally does theD connection to EACF's intercept driver from a disk). One daemon mayG service one or more disks; the degree of parallelism in accessing the- disks depends entirely on customer desires. * The passwords are entered with a command  jtdolog filespec password  or  jtdolog fileid password A where fileid is of form (n1,n2,n3) in parentheses. Care must beE taken NOT to open the file first, since this access can be rejectedC until the file password is entered. When using the second form ofH password entry, the default disk does NOT have to be that of the file.  "3 Auxiliary_Commands_and_Utilities Auxiliary Commands E It is possible to exempt a process from EACF/DPS/HSM functions withG the JTEXEMPT command, or to exempt the process from special functions- on delete access with the JTEXEDEL command.E The JTEXEMPT and JTEXEDEL commands can be enabled with the commands $ SET COMMAND GCY$SYS:JTEXEMPT or $ SET COMMAND GCY$SYS:JTEXEDEL  These commands take the form  $ JTEXEMPT[/NORMAL] jtan: K where to exampt a process from having its access filtered by EACF/DPS/HSM one uses the command  $ JTEXEMPT JTAn: J which disables filtering for the disk associated with JTA pseudo unit n. - To undo this exemption one uses the command  $ JTEXEMPT/NORMAL JTAn: J Note that no more than 4 processes may be on the exempt list at any timeG for these programs. JTEXEMPT operates on all functions. JTEXEDEL onlyL prevents deletion protection from working (and removes deletion protectionG that EACF offers for the process also). A total of 4 processes can beF using JTEXEDEL exemption in addition to 4 using JTEXEMPT protection. J Note that a loop using F$DEVICE to find all online JTA units can be usedH to "globally" exempt all disks from filtering, or to "globally" remove this exemption. J These functions are intended to be used sparingly or not at all, but areL provided for such emergency access as may be needed. The functions requireC that the process posess CMKRNL privilege and the images should beH guarded so that random intruders cannot easily use them to bypass EACFG or other protections. (Note that EACF can be used for this protection if you wish.)  H It is possible to manually set or remove softlinks also. The SDH_LOGING command file set up by combined setup defines the SOFTLINK verb which* can be used from command line like this: C $ SOFTLINK/TO:DEVICE:[DIR]FILE.TYPE SRCDVC:[SRCDIR]SRCFILE.SRCTYP 6 creates a softlink where the (possibly empty) file< SRCDVC:[SRCDIR]SRCFILE.SRCTYP has a link which "points to"= DEVICE:[DIR]FILE.TYPE. Thus when anything tries to open the6 file SRCDVC:[SRCDIR]SRCFILE.SRCTYP, it in fact opensC DEVICE:[DIR]FILE.TYPE. This soft link can cross device boundariesA but must be a disk file. Also Safety must control both disks if) the link is to be cleaned up correctly. . The softlink can be removed with the command 1 $ SOFTLINK/REMOVE SRCDVC:[SRCDIR]SRCFILE.SRCTYP  to pull the softlink off. H Minor mods to the JT_SOFTLINK procedure (replacing the "H<" strings byI "#<" would create a command file which would create or delete read-only softlinks.  4 JTDELMAINT H There are two commands to control JTDELMAINT which is used to undeleteC user files or to finally "empty the wastebasket" of files deleted over N seconds ago. G JTDEMAINT file/%UNDEL undeletes "file". Note that "File" is a stringE here which matches the full pathname of the original deletedH file. The file is restored to its original location. (In renameC or command file handled delete protection, ownership is asL before. In copy mode, undelete should be done by systems privilegedH users only to restore ownership to the directory containing the file.)  JTDELMAINT file/%PURGE:nnnnnN finally removes all files deleted more than nnnnn seconds ago (beforeK the present time). A periodic batch job normally runs this command6 once a day. (File is not really needed here.) H The utility uses the JTDEL$MODE logical to maintain some mode settingsB about how to handle deletion; this is set up by the Safety setup1 script at startup of Safety. The mode bits are:  Bit Meaning 0-1 0 = use .COM file 1 = use rename mode) 2 = use copy (callable cvt) mode; 3 = copy and add softlink. No database file genn'd1 2 If set don't delete ANYthing immediately1 3 If set don't include only included names7 4 If set, delete file if no room for rename/copyN If clear, leave file alone if copy area is full (return error though)G 5 If set, no timetag on deleted files (use if using softlink...)E 6 If set, call backup cmd file before cleanup; pass it nnnnnnn K The command file GCY$CM:DELBAK.COM is passed the "nnnnn" value and called$ run if bit 6 of JTDEL$MODE is set.*[EVERHART.JTDEMO]JTHSM.DOC;5+,(./ 4JN- 0123 KPWO56M7 189GHJSoftware Product Description,Hierarchical Storage Management System (HSM) byGlenn C. Everhart Description:AThe constant in disk storage is that one runs out of space. WhileGone can add more disks to deal with this, it is often worth consideringFto use a "nearline" solution in which files seldom needed are migrated$to nearline storage when not needed.BThis process works best when transparent. That is, where a file isCmigrated to nearline store, it should be automatically brought backBwhenever an application tries to open it so that it will appear toFhave been online all the time. HSM accomplishes this, permitting filesFto migrate to other areas on a system or network when a disk fills up,Iand replacing them on reference. In addition, a "softlink" system permitsIfiles to be left on nearline storage where this is wanted, to be accessedFfrom there automatically when the old file is opened. In this case theEstorage of the file is freed. Should storage be exhausted, the systemFnotices this and runs a cleanup procedure to attempt to make some roomEbefore the user request can fail. Thus the appearance of a disk store0far larger than the physical disk is maintained.DFiles are moved offline by HSM by a mover utility. The one currently(implemented does this via a command like dev:file\M+H+Cwhich moves the file to a predefined storage area using the commandBfile gcy$cm:filsav.com. (The command file gcy$cm:filrst.com undoesCthis move.) It also tags the file as moved so that at open time themoving can be recognized.-Ultimately a low level primitive command like,HSMigrate/mode:[copy] /to:destfilename file [com] [link] [rlink] [softlink]Dwill be available as well. In the above, copy mode means direct copyFof the file to destination (using callable convert), com means runningJa command file, link means copy the file but mark as a permanent softlink,Eand rlink means copy the file but mark as a read-only softlink, whichH9@ SAFETY013.A( [EVERHART.JTDEMO]JTHSM.DOC;5OBJ_VAX62;3J]means the file is opened on nearline store if the open is read-only, butDif the open is read/write, the file is migrated back to normal disk.DNote that mode "softlink" is more-or-less like the unix "ln" commandGand only establishes a softlink, does not copy anything, and only marks)the source file, recording no other data.FWhen this image runs, the file is moved and marked (via an applicationCACE specific to GCE) so that it can be recovered as needed when thefile is opened.DTo perform the migration on open, and the free space monitoring, oneEloads an intercept driver (one unit per disk) and one or more daemonsGto service these driver units. This/these are run in detached processeswith commands like:5HSMDMN/assign/fcnmsk:mask[/share:HSAm:] HSAn: DKB200:Bwhere mask is a bitmask of functions (so the free space monitoring3can be controlled separately from open monitoring).(Clearing this out is done by the commandHSMDMN/deassign HSAn: DKB200:which disables the system.EA script to load the driver and start one shared daemon for all disksDselected is in existence. (The /share:HSAm: command above means that3the daemon servicing HSAm: will also service HSAn:)DThe destination defaults are designed to be set up by logicals whichGthe daemon or the command files will use. Thus integration with VirtualIBranches requires only that one define that files be stored on VB volumesFand the VB volumes will be used. A database keeps track of where files9have been moved, so multiple volumes can readily be used.ESpace making and file migration are generally driven by scripts whichFpreferentially run at off hours. Two major preferences are selectable:Cleast recently accessed files first, or largest files first. WithinDthese preferences, one can select a threshold size below which files@are not migrated (for date preference) or a threshold time afterEwhich files will not be considered (for size preference). In addition=files marked /NOMOVE, installed files, system-owned files, orBfiles whose pathnames contain any desired set of characters can be>omitted, or certain paths can be required. This is set up by aEset-up script (which edits predefined scripts which contain the basicEpreference loops). The file migration script is given a target amount(of space to free and disk to free it on.CIt may happen that migration of data to a new disk will trigger itsBdevice-full checking and cause second-step migrations to occur. SoClong as the disks involved are served by separate daemons, this mayBbe done freely (though it is not recommended ordinarily due to theinefficiencies involved).BIn addition to automated scripts, file migrations can be driven byFa menu-oriented front end which can select files (possibly wildcarded)@for migration according to any of the policies noted above. Thus?whole directory trees can be migrated to optical disks, yet theAfiles would still appear on the original disks and be accessed as1before; the data would however be somewhere else.@Files that are migrated offline appear in a directory listing as>having their original sizes used, but 0 blocks allocated. ThisEcan generate some warning messages from ANALYZE/DISK but is harmless.BThe database contains the file size as used by the system, so that@having the endfile reset to 0 does no harm, and the file marking@can be reconsitituted if desired. The file marking is kept thereAmainly for user convenience and so that dir/size shows the actualAfile size as it will be when restored. Files migrated offline are=also marked /nobackup, since it will be undesirable to have aAbackup of the containing disk read every outswapped file back and>probably cycle the disk-full script several times as well. The>outswapped copies of files can either be deleted when they are@successfully inswapped, or left in place as backups. File inswapdoes not change file ID.STEP IICA later generation of HSM will take file migration one step furtherAby tracking directory opens and generating directory files on theBfly. Support for this is already built, but the directory creation@software doesn't exist yet. Thus, when a directory that has beenDmigrated offline is migrated back, it will be brought back populatedAwith files that are marked for retrieval also (but tagged by time?so these extra headers can be cleaned up). In this way a reallyAlarge file collection can be made to appear online without takingBANY disk space save when it is accessed. If one wishes to use tapeHstorge for such backups, such retrieval can make a large tape collectionGlook like an online disk, albeit slower. For jukebox disks, this method@offers a way to access files on an entire jukebox without havingFto dedicate a file header on the master disk for EVERY file on ALL the3jukebox entries. The STEP I approach requires this.#*[EVERHART.JTDEMO]JTKITINSTAL.COM;74+,).$/ 4W$$- 0123 KPWO%56lŞ7RӞ89GHJ('$ ! Close all [potentially] open files.$ !$ WS := WRITE SYS$OUTPUT$ CLOSE /NOLOG KIT_DATA$ !$ ! Take care of interrupts$ !3$ ON CONTROL_Y THEN GOTO CLEANUP_AND_EXIT_CONTROL_Y$ !!$ ! Dispatch to error processing.$ !3$ ON WARNING THEN GOTO CLEANUP_AND_EXIT_WITH_STATUS$ !#$ ! Determine the course of action.$ !.$ IF P1 .EQS. "VMI$_INSTALL" THEN GOTO INSTALL&$ IF P1 .EQS. "VMI$_IVP" THEN GOTO IVP3$ IF F$EXTRACT(0,5,P1) .EQS. "HELP_" THEN GOTO 'P1'$ EXIT VMI$_UNSUPPORTED$ !$ ! Install the product.$ ! $INSTALL:$ $ IVP = FALSE"$ VMI$CALLBACK CHECK_VMS_VERSION - GCY$VERSION "054"+$ MODIFY_STARTUP_DB_AVAILABLE = GCY$VERSION$ REQUIRED_SPACE = 8000$ SAFETY_SPACE = 1400$ VERSION = "050"+$ WD = "IF VMI$DEBUG THEN WRITE SYS$OUTPUT"$"$ VMI$CALLBACK CHECK_VMS_VERSION - GCY$VERSION "''VERSION'"%$ IF GCY$VERSION THEN GOTO VERSION_OK$ !#$ ! Indicate wrong version and exit$ !$WRONG_VERSION:$$ VMI$CALLBACK MESSAGE - E VERSION -B "This kit must be installed on an existing VMS''VERSION' system."$$ GOTO CLEANUP_AND_EXIT_WITH_FAILURE$ $VERSION_OK:$$ !-$ ! Check for disk space, exit if not enough.$ !&$ VMI$CALLBACK CHECK_NET_UTILIZATION - GCY$SPACE 'REQUIRED_SPACE'<$ IF .NOT. GCY$SPACE THEN GOTO CLEANUP_AND_EXIT_WITH_FAILURE$ !#$ ! Validate all sysgen parameters.$ !$ !/$ ! Set up for a conditional safe installation.$ !$ VMI$CALLBACK SET -" SAFETY CONDITIONAL 'SAFETY_SPACE'$ !($ ! Restore secondary save sets, if any.$ !$RESTORE_SECONDARY_SAVESET:$$ !$ ! Check for purging and IVP.$ !$ VMI$CALLBACK SET - PURGE ASK&$ IF IVP THEN VMI$CALLBACK SET IVP ASK$ !8$ ! Get the system startup command procedure parameters.$ !$1000$:3$ ON WARNING THEN GOTO CLEANUP_AND_EXIT_WITH_STATUS/$ XXX = F$TRNLNM("EACF_SYS","LNM$SYSTEM_TABLE")3$ IF XXX .EQS. "" THEN XXX = "SYS$SYSDEVICE:[EACF]"W$ write sys$output "Note: Put Safety code somewhere other than sys$system if possible."$ VMI$CALLBACK ASK GCY$SYS -/ "Enter directory for Safety programs" - "''XXX'" - DSZ ""?$ IF GCY$SYS .EQS. "^Z" THEN GOTO CLEANUP_AND_EXIT_WITH_FAILURE$ DEFINE EACF_SYS 'GCY$SYS'$ assign 'gcy$sys' gcy$sys:$$ assign/sys/exec 'gcy$sys' gcy$sys: $ set noon<$ write sys$output "Creating directory if it does not exist"$ crea/dir 'gcy$sys'$ set on$1010$:$$1020$:3$ ON WARNING THEN GOTO CLEANUP_AND_EXIT_WITH_STATUS$$ VMI$CALLBACK ASK GCY_GT_INTERNET -F "Can this system send to and receive mail from the Internet" - "N" - DBZ ""G$ IF GCY_GT_INTERNET .EQS. "^Z" THEN GOTO CLEANUP_AND_EXIT_WITH_FAILURE*$ IF .NOT. GCY_GT_INTERNET THEN GOTO 1040$$$1030$:3$ ON WARNING THEN GOTO CLEANUP_AND_EXIT_WITH_STATUS$ TYPE SYS$INPUT:$ DECK)The Internet address for EACF Support is: support@GCE.ComGPlease enter the VMSMail address necessary to reach support@GCE.MV.Com.$ EOD#$ VMI$CALLBACK ASK GCY_GT_SUPPORT - "VMSMail address is" - "Support@GCE.Com" - DSZ "".$ IF GCY_GT_SUPPORT .EQS. "^Z" THEN GOTO 1020$$ xxx = GCY_GT_SUPPORT$ gosub doubleQuote$ GCY_GT_SUPPORT == yyy$$1040$:$ WRITE SYS$OUTPUT ""8$ WRITE SYS$OUTPUT "No further questions will be asked."$ WRITE SYS$OUTPUT ""$ !%$ ! Create the necessary directories.$ !$ !N$ ! Construct the system startup command procedure that defines the per system$ ! environment.$ !J$ ! Add all identifiers BEFORE files are delivered (which may need to have$ ! acls set.)$ !$ ! Link the executable images.=$! (Note: this is for the VAX version and is done to simplify!$! distribution for the moment.) $oldloc=f$environment("default")$set def vmi$kwd$if f$getsyi("cpu") .lt. 128 $ then !vax $set noon$delete *.obj_a.L$! Use *.obj (vax/vms V6.1 compile) unless it looks like this VMS vers is V5$delete *.obj_a*.$delete *.exe_a*.$set on2$if f$extract(1,3,f$getsyi("version")) .ges. "6.2"$then$ copy *.obj_vax62 *.obj $ pur *.obj$ del *.obj_vax62.$endif2$if f$extract(1,3,f$getsyi("version")) .ges. "7.1"$then$ copy *.obj_vax71 *.obj $ pur *.obj$ del *.obj_vax71.$endif0$if f$extract(1,1,f$getsyi("version")) .lts. "6"$then $! VMS V5.x;$! Get object files compiled under VMS 5.5-2 and use those.$copy *.obj_vax5 *.obj $pur *.obj$endif8$if f$search("*.obj_vax5") .nes. "" then del *.obj_vax5.:$if f$search("*.obj_vax62") .nes. "" then del *.obj_vax62. $link jtdolog$link jtsavspc $set noon$macro prcarmor$set comm/obj prcarmor_cld.cld:$link/notrace prcarmor+prcarmor_cld+sys$system:sys.stb/sel$link/notrace forcexM$write sys$output "Note: a `%LINK-W-USRTFR...` message is normal, not an err"3$link jtdriver+sys$system:sys.stb/sel+sys$input/optbase=0$set onM$link/notrace jtdmn+jtlic+jtopn+jtoprmsg+jttrnlnm+jtdeldo+jtgetmrk+jtlicace+-B jted+jtspawn+jtsubprc1+jtsubprc2+jtsubprc3+sys$system:sys.stb/sel$link jtrplace+jtmodace+jtauthm4$link/notrace jtdelmaint+jted+sys$system:sys.stb/sel,$link/notrace jtexfix+sys$system:sys.stb/sel?$link/notrace jtexset+jtoprmsg+jtemitlog+sys$system:sys.stb/selO$link/notrace jtauthmaint+jtmodace+jtauthm+jtoprmsg+jted+sys$system:sys.stb/sel@$link/notrace jtexempt+jtemitlog+jtoprmsg+sys$system:sys.stb/sel@$link/notrace jtexedel+jtemitlog+jtoprmsg+sys$system:sys.stb/sel $set noon$rename jtfildel.com fildel.com$copy jtfilsav.com filsav.com$copy jtfilrst.com filrst.com$copy jtfiltall.com filtall.com!$copy jtfilundel.com filundel.com$copy jtmakspc.com makspc.com'$copy jtdel_shelved.com del_shelved.com$else$!AXPG$! we have *.obj_axp6 for VMS 6.x on AXP and *.obj_a for vms 7.x on AXPE$! except jtdriver_S264.obj_a is needed to be renamed to jtdriver.obj$ vrs=f$getsyi("version")1$ if f$extract(0,1,vrs) .nes. "V" then vrs="V7.1"!$ if f$extract(1,1,vrs) .eqs. "6"$then $ del *.obj.$ del *.obj_v*.$ rename *.obj_axp6 *.obj$else$! presume if not V6 it's V7 $ del *.obj.$ rename *.obj_a *.obj!$ copy forcex.obj_axp6 forcex.obj%$ copy JTDRIVER_S264.OBJ jtdriver.obj $ pur *.obj$endif $ del *.exe.$ rename *.exe_a *.exe$rename jtfildel.com fildel.com#$link/notrace/sysexe=select jtexfix6$link/notrace/sysexe=select jtexset+jtoprmsg+jtemitlog$copy jtfilsav.com filsav.com$copy jtfilrst.com filrst.com!$copy jtfilundel.com filundel.com$copy jtmakspc.com makspc.com$copy jtfiltall.com filtall.com'$copy jtdel_shelved.com del_shelved.com$link/notrace jtdolog$link/notrace jtsavspc$@jtdriverx.lnkR$link/notrace/nonative/sysexe=select jtdmn+jtlic+jtopn+jtoprmsg+jttrnlnm+jtdeldo+- jted+jtgetmrk+jtlicace+-& jtspawn+jtsubprc1+jtsubprc2+jtsubprc3'$link/notrace jtrplace+jtmodace+jtauthm+$link/notrace/sysexe=select jtdelmaint+jtedF$link/notrace/sysexe=select jtauthmaint+jtmodace+jtauthm+jtoprmsg+jted@$link/notrace/nonative/sysexe=select jtexempt+jtemitlog+jtoprmsg@$link/notrace/nonative/sysexe=select jtexedel+jtemitlog+jtoprmsg $set noon$macro prcarmor$set comm/obj prcarmor_cld.cld1$link/notrace/sysexe=select prcarmor+prcarmor_cld$link/notrace forcex$endif$set def 'oldloc'$ !$ set on $oldloc=f$environment("default")$set def vmi$kwd$copy zmenu.cld zmenu.cldx$copy zmenu.exe zmenu.exex($copy zmenu_scroll.exe zmenu_scroll.exex$set def 'oldloc'$ !($ ! Set up access to the kit data files.$ !+$VMI$CALLBACK PROVIDE_DCL_COMMAND JTDMN.CLD-$VMI$CALLBACK PROVIDE_DCL_COMMAND jtexfix.cld-$VMI$CALLBACK PROVIDE_DCL_COMMAND jtexset.cld)$VMI$CALLBACK PROVIDE_DCL_HELP JTHELP.HLP;$VMI$CALLBACK PROVIDE_FILE EACF_FLSCLD JTDMN.cld "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSCLD "[1,4]" "s:rwed,o:rwed,g:re,w:re"=$VMI$CALLBACK PROVIDE_FILE EACF_FLACLD jtexfix.exe "gcy$sys:"B$VMI$CALLBACK SECURE_FILE EACF_FLACLD "[1,4]" "s:rwed,o:rwed,g:re"=$VMI$CALLBACK PROVIDE_FILE EACF_FLBCLD jtexset.exe "gcy$sys:"B$VMI$CALLBACK SECURE_FILE EACF_FLBCLD "[1,4]" "s:rwed,o:rwed,g:re"F$VMI$CALLBACK PROVIDE_FILE EACF_FLSCZ JTenter_passwords.com "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSCZ "[1,4]" "s:rwed,o:rwed,g:re,w:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSCL2 JTEXEMPT.cld "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSCL2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"8$vmi$callback provide_file pcamm prcarmor.exe "gcy$sys:"A$vmi$callback secure_file pcamm "[1,4]" "s:rwed,o:rwed,g:re,w:re"6$vmi$callback provide_file pcafx forcex.exe "gcy$sys:"A$vmi$callback secure_file pcafx "[1,4]" "s:rwed,o:rwed,g:re,w:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSCL2 JTEXEDEL.cld "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSCL2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"A$VMI$CALLBACK PROVIDE_FILE EACF_FLSTY2 del_shelved.com "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSTY2 "[1,4]" "s:rwed,o:rwed,g:re,w:re";$VMI$CALLBACK PROVIDE_FILE EACF_FLSEXE jtdmn.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEXE "[1,4]" "s:rwed,o:rwed,g:re,w:re">$VMI$CALLBACK PROVIDE_FILE EACF_FQSEXE jtsavspc.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FQSEXE "[1,4]" "s:rwed,o:rwed,g:re,w:re"A$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX2 jtauthmaint.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEX2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"=$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX3 jtdolog.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEX3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"@$VMI$CALLBACK PROVIDE_FILE EACF_FLSFX3 jtdelmaint.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSFX3 "[1,4]" "s:rwed,o:rwed,g:re,w:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX4 jtexedel.exe "gcy$sys:"B$VMI$CALLBACK SECURE_FILE EACF_FLSEX4 "[1,4]" "s:rwed,o:rwed,g:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX5 jtexempt.exe "gcy$sys:"B$VMI$CALLBACK SECURE_FILE EACF_FLSEX5 "[1,4]" "s:rwed,o:rwed,g:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX6 jtrplace.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEX6 "[1,4]" "s:rwed,o:rwed,g:re,w:re"K$VMI$CALLBACK PROVIDE_FILE EACF_FLSEY7 jtdelmaint.doc "sys$common:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEY7 "[1,4]" "s:rwed,o:rwed,g:re,w:re"L$VMI$CALLBACK PROVIDE_FILE EACF_FLSEF7 jtauthmaint.doc "sys$comm:@ SAFETY013.A) #[EVERHART.JTDEMO]JTKITINSTAL.COM;74W$. on:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEF7 "[1,4]" "s:rwed,o:rwed,g:re,w:re"<$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX8 cswing.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEX8 "[1,4]" "s:rwed,o:rwed,g:re,w:re":$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP1 file.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP1 "[1,4]" "s:rwed,o:rwed,g:re,w:re":$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP3 find.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"E$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP4 find.hlp "sys$common:[syshlp]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP4 "[1,4]" "s:rwed,o:rwed,g:re,w:re"E$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP5 file.hlp "sys$common:[syshlp]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP5 "[1,4]" "s:rwed,o:rwed,g:re,w:re"M$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP6 jtmark_files.com "sys$common:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP6 "[1,4]" "s:rwed,o:rwed,g:re,w:re"L$VMI$CALLBACK PROVIDE_FILE HSM_FLSEP6 jtmove_files.com "sys$common:[sysmgr]"F$VMI$CALLBACK SECURE_FILE HSM_FLSEP6 "[1,4]" "s:rwed,o:rwed,g:re,w:re"L$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP7 jt_sel_mark.com "sys$common:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP7 "[1,4]" "s:rwed,o:rwed,g:re,w:re"K$VMI$CALLBACK PROVIDE_FILE HSM_FLSEP7 jt_sel_move.com "sys$common:[sysmgr]"F$VMI$CALLBACK SECURE_FILE HSM_FLSEP7 "[1,4]" "s:rwed,o:rwed,g:re,w:re"G$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP8 jteacf.doc "sys$common:[syshlp]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP8 "[1,4]" "s:rwed,o:rwed,g:re,w:re"I$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP9 jt_setup.com "sys$common:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP9 "[1,4]" "s:rwed,o:rwed,g:re,w:re"M$!VMI$CALLBACK PROVIDE_FILE DPS_FLSEP9 jt_setup_del.com "sys$common:[sysmgr]"G$!VMI$CALLBACK SECURE_FILE DPS_FLSEP9 "[1,4]" "s:rwed,o:rwed,g:re,w:re"N$!VMI$CALLBACK PROVIDE_FILE DPS_FLSER9 jt_setup_eacf.com "sys$common:[sysmgr]"G$!VMI$CALLBACK SECURE_FILE DPS_FLSER9 "[1,4]" "s:rwed,o:rwed,g:re,w:re"M$!VMI$CALLBACK PROVIDE_FILE DPS_FLSES9 jt_setup_hsm.com "sys$common:[sysmgr]"G$!VMI$CALLBACK SECURE_FILE DPS_FLSES9 "[1,4]" "s:rwed,o:rwed,g:re,w:re"5$vmi$callback provide_file cmf1 fildel.com "gcy$sys:"@$VMI$CALLBACK SECURE_FILE cmf1 "[1,4]" "s:rwed,o:rwed,g:re,w:re"5$vmi$callback provide_file cmf2 filrst.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"5$vmi$callback provide_file cmf3 filsav.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"6$vmi$callback provide_file cnf3 filtall.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cnf3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"7$vmi$callback provide_file cmf4 filundel.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf4 "[1,4]" "s:rwed,o:rwed,g:re,w:re"5$vmi$callback provide_file cmf5 makspc.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf5 "[1,4]" "s:rwed,o:rwed,g:re,w:re"8$vmi$callback provide_file cmf6 jtexpunge.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf6 "[1,4]" "s:rwed,o:rwed,g:re,w:re"6$vmi$callback provide_file cmf7 jtpurge.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf7 "[1,4]" "s:rwed,o:rwed,g:re,w:re":$vmi$callback provide_file cmf8 jtundeluser.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf8 "[1,4]" "s:rwed,o:rwed,g:re,w:re"G$VMI$CALLBACK PROVIDE_FILE EACF_FRDV JTDRIVER.EXE "sys$common:[sysexe]"E$VMI$CALLBACK SECURE_FILE EACF_FRDV "[1,4]" "s:rwed,o:rwed,g:re,w:re"9$VMI$CALLBACK PROVIDE_FILE EAF_ZMCL ZMENU.CLD "gcy$sys:"E$VMI$CALLBACK SECURE_FILE EAF_ZMCL "[1,4]" "s:rwed,o:rwed,g:re,w:re"9$VMI$CALLBACK PROVIDE_FILE EAF_ZMEX ZMENU.EXE "gcy$sys:"E$VMI$CALLBACK SECURE_FILE EAF_ZMEX "[1,4]" "s:rwed,o:rwed,g:re,w:re"A$VMI$CALLBACK PROVIDE_FILE EAF_ZMEX2 ZMENU_SCROLL.EXE "gcy$sys:"F$VMI$CALLBACK SECURE_FILE EAF_ZMEX2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"B$VMI$CALLBACK PROVIDE_FILE EACF_FLSD EACF_USER_MAN.TXT "sys$help:"F$VMI$CALLBACK SECURE_FILE EACF_FLSD "[1,4]" "s:rwed,o:rwed,g:re,w:re"7$vmi$callback provide_file dmf2 JTfilrst.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE dmf2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"7$vmi$callback provide_file dmf3 JTfilsav.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE dmf3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"7$vmi$callback provide_file cmf6 JTmakspc.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf6 "[1,4]" "s:rwed,o:rwed,g:re,w:re";$vmi$callback provide_file cmf7 JTfilsavmdsk.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf7 "[1,4]" "s:rwed,o:rwed,g:re,w:re";$vmi$callback provide_file cmf8 JTfilrstmdsk.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf8 "[1,4]" "s:rwed,o:rwed,g:re,w:re"=$vmi$callback provide_file cmf9 JTspace_tailor.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf9 "[1,4]" "s:rwed,o:rwed,g:re,w:re";$vmi$callback provide_file cmf10 JT_softlink.com "gcy$sys:"B$VMI$CALLBACK SECURE_FILE cmf10 "[1,4]" "s:rwed,o:rwed,g:re,w:re"8$vmi$callback provide_file cmf11 JTrptspc.com "gcy$sys:"B$VMI$CALLBACK SECURE_FILE cmf11 "[1,4]" "s:rwed,o:rwed,g:re,w:re"8$vmi$callback provide_file cmf12 JTcommand.doc sys$help:=$VMI$CALLBACK SECURE_FILE cmf12 "[1,4]" "s:rwed,o:rwed,g:re"5$! Copy a few files to sys$help: to document all this$set prot=(wo:re)/def#$copy vmi$kwd:eacfman.txt sys$help:$pur sys$help:eacfman.txt&$copy vmi$kwd:jtundelete.txt sys$help:$pur sys$help:jtundelete.txt$$copy vmi$kwd:prcarmor.txt sys$help:$pur sys$help:prcarmor.txt$! $oldloc=f$environment("default")$set def vmi$kwd$copy zmenu.cldx zmenu.cld$copy zmenu.exex zmenu.exe($copy zmenu_scroll.exex zmenu_scroll.exe#$copy zmenu.cld sys$common:[sysexe]#$copy zmenu.exe sys$common:[sysexe]*$copy zmenu_scroll.exe sys$common:[sysexe]$! copy the reports $copy jt_REPTACTIVE.COM gcy$sys:$copy JT_REPTCTL.COM gcy$sys:,$set file/own=[1,4] sys$common:[sysexe]zm*.*<$set prot=(s:rwed,o:rwed,g:re,w:re) sys$common:[sysexe]zm*.* $pur sys$common:[sysexe]zmenu*.*$set def 'oldloc'$ !O$ ! Install the product startup files and identify the startup command file for$ ! IVP.$ !$INSTALL_STARTUP:$ TYPE SYS$INPUT:$ DECKETo complete the installation of the Extended Access Control Facility,Ayou must run the procedure SYS$MANAGER:JT_SETUP.COM (for a screenoriented setup).?Then you must also modify the file SYS$MANAGER:SYSTARTUP_V5.COM! or SYSTARTUP_VMS.COM to contain:: $ IF F$SEARCH("SYS$MANAGER:SDH_STARTUP.COM") .NES. "" -+ THEN @SYS$MANAGER:SDH_STARTUP.COMCYou should run the file GCY$SYS:JTSPACE_TAILOR.COM to set your siteBpolicy on how to make space when the disk fills and space is being monitored.CSome documents can be found in sys$help: prcarmor.doc, eacfman.txt,jtundelete.txt, jtcommand.doc.$ EOD$ !$ ! Move data files.$ ! $MOVE_DATA:$$ !$ ! Installation Complete.$ !$INSTALL_COMPLETE:$2$ IF GCY_GT_INTERNET THEN CALL DIALHOME/OUTPUT=NL:$ GOTO CLEANUP_AND_EXIT$$ !$ ! Run the IVP, if one exists.$ !$IVP:$$ EXIT $STATUS$CLEANUP_AND_EXIT_CONTROL_Y:$ VMI$CALLBACK CONTROL_Y$ STATUS = VMI$_FAILURE $ GOTO CAE10$$$CLEANUP_AND_EXIT_WITH_STATUS:$ STATUS = $STATUS $ GOTO CAE10$$$CLEANUP_AND_EXIT_WITH_FAILURE:$ STATUS = VMI$_FAILURE $ GOTO CAE10$$$CLEANUP_AND_EXIT:$ STATUS = VMI$_SUCCESS$$CAE10$: $ EXIT STATUS $ doubleQuote: $ yyy = ""$ i = f$locate("""",xxx)9$ 23016: if (.not.(i .ne. f$length(xxx))) then goto 23018)$ yyy = yyy + f$extract(0,i+1,xxx) + """"$ xxx = f$extract(i+1,999,xxx)$ 23017: i = f$locate("""",xxx) $ goto 23016 $ 23018: $ yyy = yyy + xxx$ return $ dialhome: subroutine $ set noon)$ define/user support "''GCY_GT_SUPPORT'"H$ mail/noself/subject="EACF installed at ''F$TIME()'" SYS$INPUT: support$ deckFGeneral Cybernetic Engineering EACF, DPS, etc. installed successfully.$ eod$ set on$ exit$ endsubroutine*[EVERHART.JTDEMO]JTLIC.OBJ;75+,*. / 4 - 0123 KPWO56`27t289GHJ/JTLIC0 3-NOV-1996 17:10 VAX MACRO V5.4-3 MACRO JTLIC  JTLIC3 DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR . ABS .P$ABS$-PPPPPPPPPPPV CDEV_DATAP3PIDQ&Q DSC$K_DTYPE_T%Q C3DeviceQ&Q Q((MQu;AAA@!@@A!@AA Aa`a`aa`` A! !!! !!!! Aa`a`a` Aa`a``a`aa A``a```aaaa !! ! !!!! A`a``a``@A`aaaa AAA Aaa Aaaaa `a`aa``a` a``a aaaa``a`a `a `aaa`aa ``aa AAA                       Q Q3OPA0:Q&Q Q& DSC$K_DTYPE_T%& DSC$K_DTYPE_T%EACF/DPS/HSM, Copyright (C) 1994,1995 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Usage permitted only according to license from GCE. May not be used without a valid license.Q CDEV_CODEP LICMSG&R/STЏUUs[ZVWXVWWXX Џ!P1LXUܞRS|~ cb SYS$BRKTHRUWR<~b SYS$SNDOPRP1 LICMSG0 CDEV_DATAV CDEV_CODE*[EVERHART.JTDEMO]JTLIC.OBJ_A;15+,+. / 4 - 0123KPWO56 27`289GHJ ??JTLICV1 3-NOV-1996 17:08AMAC V3.0-23  . ABS . . BLANK . $ABS$V CDEV_DATA CDEV_CODEP$LINKAGE DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR(JLICMSG = 4=PID  DSC$K_DTYPE_T2=47= G4=Deviceu=(M4=u4;4= AAA@!@@A!@AA Aa`a`aa`` A! !!! !!!! Aa`a`a` Aa`a``a`aa A``a```aaaa !! ! !!!! A`a``a``@A`aaaa AAA Aaa Aaaaa `a`aa``a` a``a aaaa``a`a `a `aaa`aa ``aa AAA                       =H? =4=OPA0:= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4=EACF/DPS/HSM, Copyright (C) 1994,1995 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Usage permitted only according to license from GCE. May not be used without a valid license. =>C~^^~ (0޴8@H>P^X~` GhG(mG%Q@qC/{  s{![!,,-HJ/HIDCECJKE0C4@@4`@4@ 4@A:GvI.%1@ 4`A4GWJF>>C0MG([ { "(ޢG,4G8mG޶G tG@Zk(m@MCG[ HmGTG@Zk4GG^~ (0ޤ8@H>P^X~`hCkG! 4G, SYS$BRKTHRUW4m# SYS$BRKTHRUW4(@, SYS$BRKTHRUW40GP SYS$SNDOPR4@m# SYS$SNDOPR4L@P SYS$SNDOPR =0 ;=p/ =;  SYS$BRKTHRUW"""   SYS$SNDOPR" !*[EVERHART.JTDEMO]JTLIC.OBJ_AXP6;8+,,. / 4 - 0123KPWO56n07^.089GHJ??JTLICV1 8-NOV-1996 00:34AMAC V2.1-13 `$LINKAGE CDEV_CODEV CDEV_DATA $ABS$ . BLANK . . ABS . DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR(JLICMSG =0 ;=p/ =;=@  SYS$SNDOPR"  SYS$BRKTHRUW"""  =>C~^^~ (0޴8@H>P^X~` GhG(mGqC/{  %Q@s{![!/,,-HHJ/IDCECJKE0C4@@4`@4@ 4@A9GvI.%1@ 4`A4GWJF>>CPMG([ { "(ޢG,4GXmG޶G tG@ZkGTG(m@MC[ HmG@Zk4GG^~ (0ޤ8@H>P^X~`hCk! 4G0 SYS$BRKTHRUW4m# SYS$BRKTHRUW4,@0 SYS$BRKTHRUW4<GT SYS$SNDOPR4Hm# SYS$SNDOPR4P@T SYS$SNDOPR = 4=PID  DSC$K_DTYPE_T2=47= G;@ SAFETY013.A, ![EVERHART.JTDEMO]JTLIC.OBJ_AXP6;8;6 w4=Deviceu=(M4=u4;4= AAA@!@@A!@AA Aa`a`aa`` A! !!! !!!! Aa`a`a` Aa`a``a`aa A``a```aaaa !! ! !!!! A`a``a``@A`aaaa AAA Aaa Aaaaa `a`aa``a` a``a aaaa``a`a `a `aaa`aa ``aa AAA                       =H? =4=OPA0:= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4=EACF/DPS/HSM, Copyright (C) 1994,1995 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Usage permitted only according to license from GCE. May not be used without a valid license. !*[EVERHART.JTDEMO]JTLIC.OBJ_VAX5;7+,-. / 4 - 0123 KPWO56@`7v89GHJ/JTLIC017-NOV-1996 13:25 VAX MACRO V5.4-3 MACRO JTLIC  JTLIC3 DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR . ABS .P$ABS$-PPPPPPPPPPPV CDEV_DATAP3PIDQ&Q DSC$K_DTYPE_T%Q C3DeviceQ&Q Q((MQu;AAA@!@@A!@AA Aa`a`aa`` A! !!! !!!! Aa`a`a` Aa`a``a`aa A``a```aaaa !! ! !!!! A`a``a``@A`aaaa AAA Aaa Aaaaa `a`aa``a` a``a aaaa``a`a `a `aaa`aa ``aa AAA                       Q Q3OPA0:Q&Q Q& DSC$K_DTYPE_T%& DSC$K_DTYPE_T%EACF/DPS/HSM, Copyright (C) 1994,1995 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Usage permitted only according to license from GCE. May not be used without a valid license.Q CDEV_CODEP LICMSG&R/STЏUUs[ZVWXVWWXX Џ!P1LXUܞRS|~ cb SYS$BRKTHRUWR<~b SYS$SNDOPRP1 LICMSG0 CDEV_DATAV CDEV_CODE"*[EVERHART.JTDEMO]JTLIC.OBJ_VAX62;4+,. / 4 - 0123KPWO56i=7=89GHJ/JTLIC0 4-FEB-1997 12:22 VAX MACRO V5.4-3 MACRO JTLIC  JTLIC3 DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR . ABS .P$ABS$-PPPPPPPPPPPV CDEV_DATAP3PIDQ&Q DSC$K_DTYPE_T%Q C3DeviceQ&Q Q((MQu;AAA@!@@A!@AA Aa`a`aa`` A! !!! !!!! Aa`a`a` Aa`a``a`aa A``a```aaaa !! ! !!!! A`a``a``@A`aaaa AAA Aaa Aaaaa `a`aa``a` a``a aaaa``a`a `a `aaa`aa ``aa AAA                       Q Q3OPA0:Q&Q Q& DSC$K_DTYPE_T%& DSC$K_DTYPE_T%EACF/DPS/HSM, Copyright (C) 1994,1995 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Usage permitted only according to license from GCE. May not be used without a valid license.Q CDEV_CODEP LICMSG&R/STЏUUs[ZVWXVWWXX Џ!P1LXUܞRS|~ cb SYS$BRKTHRUWR<~b SYS$SNDOPRP1 LICMSG0 CDEV_DATAV CDEV_CODE"*[EVERHART.JTDEMO]JTLIC.OBJ_VAX71;1+,/. / 4 - 0123KPWO56̀N7֛89GHJ/JTLIC029-JAN-1996 09:19 VAX MACRO V5.4-3 MACRO JTLIC  JTLIC3 DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR . ABS .P$ABS$-PPPPPPPPPPPV CDEV_DATAP3PIDQ&Q DSC$K_DTYPE_T%Q C3DeviceQ&Q Q((MQu;AAA@!@@A!@AA Aa`a`aa`` A! !!! !!!! Aa`a`a` Aa`a``a`aa A``a```aaaa !! ! !!!! A`a``a``@A`aaaa AAA Aaa Aaaaa `a`aa``a` a``a aaaa``a`a `a `aaa`aa ``aa AAA                       Q Q3OPA0:Q&Q Q& DSC$K_DTYPE_T%& DSC$K_DTYPE_T%EACF/DPS/HSM, Copyright (C) 1994,1995 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Usage permitted only according to license from GCE. May not be used without a valid license.Q CDEV_CODEP LICMSG&R/STЏUUs[ZVWXVWWXX Џ!P1LXUܞRS|~ cb SYS$BRKTHRUWR<~b SYS$SNDOPRP1 LICMSG0 CDEV_DATAV CDEV_CODE*[EVERHART.JTDEMO]JTLIC2.OBJ;1+,0. / 4 - 0123 KPWO56Sn27a289GHJ/JTLIC0 3-NOV-1996 17:10 VAX MACRO V5.4-3MACRO JTLIC2  JTLIC3 DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR . ABS .P$ABS$-PPPPPPPPPPP CDEV_DATAP3PIDQ&Q DSC$K_DTYPE_T%Q C3DeviceQ&Q Q((MQu;@CBD%&Fiikkmlno003245Wvxxzz|=_~@@BCEEGFhJKMMNOQPSR !"#%$&'((**-,//0PrrtuwwxY[{}|~`cbdGF  "!0!$5&%()(;,?>=0#2!   "# #&'$'         M QQ3OPA0:Q&Q Q& DSC$K_DTYPE_T%0& DSC$K_DTYPE_T%8EACF, Copyright 1994 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Licensed to __________________________________ CDEV_CODEP LICMSG&RSETЏ^UU[8ZVWXVWWXX Џ!P1LXUܞ(RS|~ cb SYS$BRKTHRUW R<~b SYS$SNDOPRP1 LICMSG0 CDEV_DATA CDEV_CODE*[EVERHART.JTDEMO]JTLIC2.OBJ_A;1+,1. / 4 - 0123KPWO56@275289GHJ ??JTLICV1 3-NOV-1996 17:08AMAC V3.0-23  . ABS . . BLANK . $ABS$ CDEV_DATA CDEV_CODEP$LINKAGE DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR(JLICMSG = 4=PID  DSC$K_DTYPE_T2=47= G4=Deviceu=(M4=u4;4=v@CBD%&Fiikkmlno003245Wvxxzz|=_~@@BCEEGFhJKMMNOQPSR !"#%$&'((**-,//0PrrtuwwxY[{}|~`cbdGF  "!0!$5&%()(;,?>=0#2!   "# #&'$'         = =4=OPA0: = DSC$K_DTYPE_T2=04= DSC$K_DTYPE_T2=84=EACF, Copyright 1994 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Licensed to __________________________________ =>C~^^~ (0޴8@H>P^X~` GhG(mG%Q@qC4}CE {!8[!,,-HJ/HIDCECJKE0C4@@4`@4@ 4@A:GvI.%1@ 4`A4GWJF>>C0MG(([ { "(ޢG,4G8mG޶G tG@Zk(m@MCG [ HmGTG@Zk4GG^~ (0ޤ8@H>P^X~`hCkG! 4G, SYS$BRKTHRUW4m# SYS$BRKTHRUW4(@, SYS$BRKTHRUW40GP SYS$SNDOPR4@m# SYS$SNDOPR4L@P SYS$SNDOPR =0 ;=p/ =;  SYS$BRKTHRUW"""   SYS$SNDOPR" "*[EVERHART.JTDEMO]JTLIC2.OBJ_AXP6;1+,2. / 4 - 0123KPWO56'?07W089GHJ ??JTLICV1 8-NOV-1996 00:35AMAC V2.1-13 `$LINKAGE CDEV_CODE CDEV_DATA $ABS$ . BLANK . . ABS . DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR(JLICMSG =0 ;=p/ =;=@  SYS$SNDOPR"  SYS$BRKTHRUW"""  =>C~^^~ (0޴8@H>P^X~` GhG(mGqC4}CE %Q@{!8[!/,,-HHJ/IDCECJKE0C4@@4`@4@ 4@A9GvI.%1@ 4`A4GWJF>>CPMG(([ { "(ޢG,4GXmG޶G tG@ZkGTG(m@MC [ HmG@Zk4GG^~ (0ޤ8@H>P^X~`hCk! 4G0 SYS$BRKTHRUW4m# SYS$BRKTHRUW4,@0 SYS$BRKTHRUW4<GT SYS$SNDOPR4Hm# SYS$SNDOPR4P@T SYS$SNDOPR = 4=PID  DSC$K_DTYPE_T2=47= G4=Deviceu=(M4=u4;4=v@CBD%&Fiikkmlno003245Wvxxzz|=_~@@BCEEGFhJKMMNOQPSR !"#%$&'((**-,//0PrrtuwwxY[{}|~`cbdGF  "!0!$5&%()(;,?>=0#2!   "# #&'$'         = =4=OPA0: = DSC$K_DTYPE_T2=04= DSC$K_DTYPE_T2=84=EACF, Copyright 1994 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Licensed to __________________________________ P<@ SAFETY013.A3 "[EVERHART.JTDEMO]JTLIC2.OBJ_VAX5;16 \"*[EVERHART.JTDEMO]JTLIC2.OBJ_VAX5;1+,3. / 4 - 0123 KPWO56@7@ 89GHJ/JTLIC017-NOV-1996 13:26 VAX MACRO V5.4-3MACRO JTLIC2  JTLIC3 DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR . ABS .P$ABS$-PPPPPPPPPPP CDEV_DATAP3PIDQ&Q DSC$K_DTYPE_T%Q C3DeviceQ&Q Q((MQu;@CBD%&Fiikkmlno003245Wvxxzz|=_~@@BCEEGFhJKMMNOQPSR !"#%$&'((**-,//0PrrtuwwxY[{}|~`cbdGF  "!0!$5&%()(;,?>=0#2!   "# #&'$'         M QQ3OPA0:Q&Q Q& DSC$K_DTYPE_T%0& DSC$K_DTYPE_T%8EACF, Copyright 1994 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Licensed to __________________________________ CDEV_CODEP LICMSG&RSETЏ^UU[8ZVWXVWWXX Џ!P1LXUܞ(RS|~ cb SYS$BRKTHRUW R<~b SYS$SNDOPRP1 LICMSG0 CDEV_DATA CDEV_CODE#*[EVERHART.JTDEMO]JTLIC2.OBJ_VAX62;3+,. / 4 - 0123KPWO56c=7=89GHJ/JTLIC0 4-FEB-1997 12:24 VAX MACRO V5.4-3MACRO JTLIC2  JTLIC3 DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR . ABS .P$ABS$-PPPPPPPPPPP CDEV_DATAP3PIDQ&Q DSC$K_DTYPE_T%Q C3DeviceQ&Q Q((MQu;@CBD%&Fiikkmlno003245Wvxxzz|=_~@@BCEEGFhJKMMNOQPSR !"#%$&'((**-,//0PrrtuwwxY[{}|~`cbdGF  "!0!$5&%()(;,?>=0#2!   "# #&'$'         M QQ3OPA0:Q&Q Q& DSC$K_DTYPE_T%0& DSC$K_DTYPE_T%8EACF, Copyright 1994 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Licensed to __________________________________ CDEV_CODEP LICMSG&RSETЏ^UU[8ZVWXVWWXX Џ!P1LXUܞ(RS|~ cb SYS$BRKTHRUW R<~b SYS$SNDOPRP1 LICMSG0 CDEV_DATA CDEV_CODE *[EVERHART.JTDEMO]JTLICACE.OBJ;18+,5. / 4 - 0123 KPWO56$7ӳŪ89GHJ 2JTLICACE015-SEP-1996 16:23 VAX MACRO V5.4-3MACRO JTLICACE JTLICACE, SYS$ASSIGN SYS$DASSGNSYS$QIOW . ABS .P$ABS$PPPPPP( PDATAP<0QQQLCGEQFCAE@L' QSYS LCGEQQQQ #  QDEVI Q Q  PCODEP REPLENT&}< $ 3 3  3ЏCE   3 [Z|~jk SYS$ASSIGN33?RЬ Q(ab,L@L?P3P3XX|~|~<2~<~ SYS$QIOWP`Y1 3XX|~|~<6~<~ SYS$QIOW3X)X|~|~<6~<~ SYS$QIOW<PP<~ SYS$DASSGNЎPPP<~ SYS$DASSGNЎP FINDACE&Pм?QЬR(ab?|\VV3PP3P3 $ 3 3  3ЏCE   3 [Z|~jk SYS$ASSIGN333 3(33333 3Џ3333 3м  3$3,\0\WMW|~|~<2~<~ SYS$QIOWVVP 1(33333 3Џ3333 3м  3$3<~ SYS$DASSGN[P1 3 3 溏PP<~ SYS$DASSGNЎP ^QSUB&*ЬRЂSЂTЬRЂUbVSUTVЬ RUVb QADD&'ЬRЂSЂTЬRЂUbVSUTVЬ RUVbHFINDACE QADD ^QSUBREPLENT(PDATA( PCODE"*[EVERHART.JTDEMO]JTLICACE.OBJ_A;15+,6./ 4- 0123KPWO56 7 89GHJ"BBJTLICACEV113-APR-1996 19:27AMAC V3.0-13  . ABS . . BLANK . $ABS$( PDATAPCODE$LINKAGE SYS$ASSIGNSYS$QIOW SYS$DASSGNOTS$MOVE(JpREPLENT(JFINDACE(JPGETACE(JQSUB(JQADDp p=H@<4= 0\=|=0$LCGE= FCAE@L4= 4='4= 4= 4= =SYS LCGE==#4=  4= 4=  = DEVI  =  4 =`#~8^@^H~PX`޴hpx>^~ GG== ](}pP|\1/1KO ͦ6X|(M:/xzKY:K8G. zKW JF>:?$#(m{#[y1KZ0@KYG[X (ͦ"{UJ\TKGM:( #.v8KWJF/ 8K\ KG?> 'CE{#(M Z#:x5`KY4 K8G:`mMGGGG?#pMxm@ZkG#M:Y K;G:"ͦ"{SJ\RKG?# #WJ# ~^>0ͦ0M =G ?"GGM@ZkP- $,4<>^ ~#ͦV@-Y"ע@MZ#:xJY K8G: ####GG8m2_"M: JG"0ޢ4޶8ޢ< ޶( ?#Mm@Zk@#G8m[9@-6àע|2B_M:H 27C_0ͦ "(}[2C_ ####GG8m6_"< JG"0~4^~^8~<^ ~(^ ?#Mm@Zk@#G-0" H|Mz8-#0ͦK!@####M^GG8m6_" 8 JG"0ޢ4޶8ޢ< ޶( ?#Mm@Zk@#G8mHG#MJG#?#Mm@Zk #GG#G8@^H~PX`ޤhpx>^~#k #-JG#?#Mm@Zk #GG#.X J8GGGGp#~(^0^8~@HP޴X`h>p^x~ GG 0m##>C#=> ^?#8m#+@=#G# ~^>(-C@?"GGM@Zk>^ ~#G(0^8~@HPޤX`h>p^x~#kGGp#~(^0^8~@HP޴X`h>p^x~ GG08mM(- .WJ.V J>> m{#[ZR@K[#`עVJFײ`m{#[Z@K[#`"ע|SKVRJFײxm[H-/wYKXKG. YKV JF>?$#HMZ#:x1`KY0 K8G:xעH#|zUJ[T`KzG|-H".|KVJFw/ K[ wK|Gw?> _'CEZ#H- 9#w5@KX4KGmM ]GGGG?#Mm@ZkG ]?# WJF_#-9#wS@KXRKG_#-9#XKעMZ#ڲh- "hͦV-Y("ͦVZ@KWGV#"עz1KV0JFײ#"עzQKVPJFײ#"עzqKVpJFײ-9##עMZ#ڲh- ""MZ#ڲ-9# #"ͦ "R- 9#Y $##ް ~^> ] (-(ͦ0v  $,GGG ]H0ͦv0`Cv0M:3U?Cj`####GGXm ]2_"< JG"0~4^~^8~<^ ~(^ ?#Mm@Zk@#G ]X-٠GC @?Pͦ@m[3Ch- "ע3C` #|R3zC`>^ ~ޠ # #-JG#?#Mm@Zk #GG#G(0^8~@HPޤX`h>p^x~#k>^ ~ޠ #("ͦ\KG_#-9#w1@KX0KG#m{#[yQKZP@KYG["ͦ"{qJ\pKGMZ#?#: ͦ"h|M Z#z?# #8"ͦ"#m {#R- 9#Y $#JG?#Mm@ZkG 5G#~^^ ~(08޴@HP>X^`~hGCbGB GB CGB  G@%@<@<CGCGB °G^ ~(08ޤ@HP>X^`~hp#kGGG#~^^ ~(08޴@HP>X^`~hGCbGB GB CGB  G@@@CGCGB °G^ ~(08ޤ@HP>X^`~hp#k 4pG| SYS$ASSIGN4tm#p SYS$ASSIGN4x@| SYS$ASSIGN4GOTS$MOVE4@OTS$MOVE4GSYS$QIOW4 m#pSYS$QIOW4@SYS$QIOW4GSYS$QIOW4m#pSYS$QIOW4@SYS$QIOW4GSYS$QIOW4m#pSYS$QIOW4@SYS$QIOW4G SYS$DASSGN4 m#p SYS$DASSGN4@ SYS$DASSGN4G SYS$DASSGN4m#p SYS$DASSGN4@ SYS$DASSGN4GOTS$MOVE4@OTS$MOVE4G SYS$ASSIGN4m#P SYS$ASSIGN4@ SYS$ASSIGN4x G SYS$QIOW4| m#PSYS$QIOW4 @ SYS$QIOW4L GX SYS$DASSGN4P m#P SYS$DASSGN4T @X SYS$DASSGN4 G SYS$DASSGN4 m#P SYS$DASSGN4 @ SYS$DASSGN\ \;;; ;;0  SYS$DASSGN";; SYS$QIOW""" ;;=08 ;=/ ="" ;;;P;;L;; ;  SYS$ASSIGN"";OTS$MOVE;=0( ;=/ ="";;=0(;=/ V;\;;|;;; ;=0;=p =0p;=p =@ SAFETY013.A7 $[EVERHART.JTDEMO]JTLICACE.OBJ_AXP6;8u$*[EVERHART.JTDEMO]JTLICACE.OBJ_AXP6;8+,7./ 4- 0123KPWO56H]z7``]z89GHJBBJTLICACEV112-SEP-1996 20:59AMAC V2.1-13 $LINKAGE PCODE( PDATA $ABS$ . BLANK . . ABS . SYS$ASSIGNSYS$QIOW SYS$DASSGNOTS$MOVE(JREPLENT(JFINDACE(JGETACE(J0 QSUB(J QADD8 8=00 ;= ="";=@ SYS$QIOW"""  SYS$DASSGN"=CE pOTS$MOVE  SYS$ASSIGN""=0( ;=/ =""=00;= =00 ;=p =0 ;=p  = >C~0^8^@~HPX޴`hp>x^~ GG(== ](}poQ/QK O "G / o! O/O!{J\KZ VKG Jv1K[G O? ? # GGGW0JGF  ozUK[T`KzG o / ' .CE{# /v8KWJ\ KF 8Ky5`KmG ? > OZ4@KYG OGM@ZkGG(ͦwS K?"v[`K|GvGXRKGv[`Kv>C ~^>V G = pMG@ZkLBPX`h$,4<>^ ~CPT6XKw KGT(>C@MG<G!80o#o"~TG0ޢ4G/G4޶Hm J8ޢ< ޶(@Zk(Cuo.`O,@G/G4G28C_(mӢ2B_((] |:2yC_(>CHmG<G!80"|"޶0^<4ޢ^ J޶8^<ޢ ^@M(޶@ZkC(4G4G!OO/GF@>C#Hm<G8G0o"G0^/4ޢ^ J޶8^<ޢ ^@M(޶@ZkC>CPM4GXmH>CJ@Zk CG08^@~HPXޤ`hp>x^~CkG(>CTGPM4G>CXmJ@Zk C/Y KYG>C~(^0^8~@HP޴X`h>p^x~ GGmGtG>CA>>C=C> ^(@=>CM ~^>C: @M?"GG@Zk>^ ~CG(0^8~@HPޤX`h>p^x~Ck>C~0^8^@~HPX޴`hp>x^~ GGpA|G o!\ﳴO!YO/GVo/GGZ \K[|KYO?Vo? o#XXRKXGP\KGPTOvSKZ@KTOPWRJFPG O/ /yKZ[KX KYG K{1JG ? O? " \0KG O /xU@KYT K8G / ?' /CE9# O/{J\KZ VKG Jw5 K[G O?G ? MmX4KG  ]G@ZkGpͦ ]#WJFGwS KGXRKGXKGGV V66V4G_GWGVz1KW0JFCWPJ_#&CWpJ&6B $V(,042468>CްGG ~C^G>BG ] $, ]pGGo #0`CoC3U_CU`>CMG<G8o"0 ]0ޢTG/4޶m J8ޢ< ޶(@ZkpC ]Ϡ8o6`5 O/3YCp 3C4Ԣ3Bpm4G>4G^ ~ޠCM>CmJ@Zk C/G08^@~HPXޤ`hp>x^~CkGpmGG>z1K#^ ~#ޠCFF4Gs4G[0`KzGCsWPJ&CZp@KZ'SMӢ Ӳ$(,04r4s8mJ@ZkTGGiG>C~^^ ~(08޴@HP>X^`~hGCbA@C @@C@<@G@@<C%@G°G^ ~(08ޤ@HP>X^`~hCk>C~^^ ~(08޴@HP>X^`~hGCbA@C @@C@@@G@@CG°G^ ~(08ޤ@HP>X^`~hCk4(m# SYS$ASSIGN4LGT SYS$ASSIGN4P@T SYS$ASSIGN4GOTS$MOVE4@OTS$MOVE4@GSYS$QIOW4m#SYS$QIOW4@SYS$QIOW4m#SYS$QIOW4dGpSYS$QIOW4l@pSYS$QIOW4m#SYS$QIOW4GSYS$QIOW4@SYS$QIOW4G8 SYS$DASSGN 4m# SYS$DASSGN44@8 SYS$DASSGN4G SYS$DASSGN4m# SYS$DASSGN4@ SYS$DASSGN4GOTS$MOVE4@OTS$MOVE4dG SYS$ASSIGN4hm# SYS$ASSIGN4@ SYS$ASSIGN4 G\ SYS$QIOW4< m#SYS$QIOW4X @\ SYS$QIOW4 G SYS$DASSGN4 m# SYS$DASSGN4 @ SYS$DASSGN4 G SYS$DASSGN4 m# SYS$DASSGN4 @ SYS$DASSGNp p=H@<4= 0\=|=0$LCGE= FCAE@L4= 4='4= 4= 4= =SYS LCGE==#4=  4= 4=  = DEVI  =  4 $*[EVERHART.JTDEMO]JTLICACE.OBJ_VAX5;7+,8. / 4 - 0123 KPWO56 ӭ7/89GHJ 2JTLICACE017-NOV-1996 13:38 VAX MACRO V5.4-3MACRO JTLICACE JTLICACE, SYS$ASSIGN SYS$DASSGNSYS$QIOW . ABS .P$ABS$PPPPPP( PDATAP<0QQQLCGEQFCAE@L' QSYS LCGEQQQQ #  QDEVI Q Q  PCODEP REPLENT&}< $ 3 3  3ЏCE   3 [Z|~jk SYS$ASSIGN33?RЬ Q(ab,L@L?P3P3XX|~|~<2~<~ SYS$QIOWP`Y1 3XX|~|~<6~<~ SYS$QIOW3X)X|~|~<6~<~ SYS$QIOW<PP<~ SYS$DASSGNЎPPP<~ SYS$DASSGNЎP FINDACE&Pм?QЬR(ab?|\VV3PP3P3 $ 3 3  3ЏCE   3 [Z|~jk SYS$ASSIGN333 3(33333 3Џ3333 3м  3$3,\0\WMW|~|~<2~<~ SYS$QIOWVVP 1(33333 3Џ3333 3м  3$3<~ SYS$DASSGN[P1 3 3 溏PP<~ SYS$DASSGNЎP ^QSUB&*ЬRЂSЂTЬRЂUbVSUTVЬ RUVb QADD&'ЬRЂSЂTЬRЂUbVSUTVЬ RUVbHFINDACE QADD ^QSUBREPLENT(PDATA( PCODE%*[EVERHART.JTDEMO]JTLICACE.OBJ_VAX62;3+,. / 4 - 0123KPWO56 >7ޗ>89GHJ 2JTLICACE0 4-FEB-1997 12:24 VAX MACRO V5.4-3MACRO JTLICACE JTLICACE, SYS$ASSIGN SYS$DASSGNSYS$QIOW . ABS .P$ABS$PPPPPP( PDATAP<0QQQLCGEQFCAE@L' QSYS LCGEQQQQ #  QDEVI Q Q  PCODEP REPLENT&}< $ 3 3  3ЏCE   3 [Z|~jk SYS$ASSIGN33?RЬ Q(ab,L@L?P3P3XX|~|~<2~<~ SYS$QIOWP`Y1 3XX|~|~<6~<~ SYS$QIOW3X)X|~|~<6~<~ SYS$QIOW<PP<~ SYS$DASSGNЎPPP<~ SYS$DASSGNЎP FINDACE&Pм?QЬR(ab?|\VV3PP3P3 $ 3 3  3ЏCE   3 [Z|~jk SYS$ASSIGN333 3(33333 3Џ3333 3м  3$3,\0\WMW|~|~<2~<~ SYS$QIOWVVP 1(33333 3Џ3333 3м  3$3<~ SYS$DASSGN[P1 3 3 溏PP<~ SYS$DASSGNЎP ^QSUB&*ЬRЂSЂTЬRЂUbVSUTVЬ RUVb QADD&'ЬRЂSЂTЬRЂUbVSUTVЬ RUVbHFINDACE QADD ^QSUBREPLENT(PDATA( PCODE*[EVERHART.JTDEMO]JTLICNAM.OBJ;1+,:. / 4 - 0123 KPWO56@~27289GHJ/JTLIC0 3-NOV-1996 17:11 VAX MACRO V5.4-3MACRO JTLICNAM  JTLIC3 DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR . ABS .P$ABS$-PPPPPPPPPPPA CDEV_DATAP3PIDQ&Q DSC$K_DTYPE_T%Q C3DeviceQ&Q Q((MQu;AAA@ Aa`a`aa`` !!! Aa`a`a` Aa`a``a`aa A``a```aaaa !! ! !!!! A`a``a``@A`aaaa AAA Aaa @aaa`aa` a`a`aaa`a`a `a aaaa`aaa``aaaa aa`aa`a`a`aa`a a``a`aa                        Q 3OPA0:Q&Q Q& DSC$K_DTYPE_T%& DSC$K_DTYPE_T%EACF, Copyright 1994 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Licensed exclusively to: {customername} {orgazization} {phone} May not be used without a valid license.Q CDEV_CODEP LICMSG&R*STЏUUd[ZVWXVWWXX Џ!P1LXUܞRS|~ >@ SAFETY013.A: [EVERHART.JTDEMO]JTLICNAM.OBJ;1;146 cb SYS$BRKTHRUWR<~b SYS$SNDOPRP1 LICMSG0 CDEV_DATAA CDEV_CODE!*[EVERHART.JTDEMO]JTLICNAM.OBJ_A;1+,;. / 4 - 0123KPWO560N27e289GHJ ??JTLICV1 3-NOV-1996 17:09AMAC V3.0-23  . ABS . . BLANK . $ABS$A CDEV_DATA CDEV_CODEP$LINKAGE DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR(JLICMSG = 4=PID  DSC$K_DTYPE_T2=47= G4=Deviceu=(M4=u4;4=AAA@ Aa`a`aa`` !!! Aa`a`a` Aa`a``a`aa A``a```aaaa !! ! !!!! A`a``a``@A`aaaa AAA Aaa @aaa`aa` a`a`aaa`a`a `a aaaa`aaa``aaaa aa`aa`a`a`aa`a a``a`aa                        =PC 4=OPA0:= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4=EACF, Copyright 1994 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Licensed exclusively to: {customername} {orgazization} {phone} May not be used without a valid license. =>C~^^~ (0޴8@H>P^X~` GhG(mG%Q@qC*{  d{![!,,-HJ/HIDCECJKE0C4@@4`@4@ 4@A:GvI.%1@ 4`A4GWJF>>C0MG([ { "(ޢG,4G8mG޶G tG@Zk(m@MCG[ HmGTG@Zk4GG^~ (0ޤ8@H>P^X~`hCkG! 4G, SYS$BRKTHRUW4m# SYS$BRKTHRUW4(@, SYS$BRKTHRUW40GP SYS$SNDOPR4@m# SYS$SNDOPR4L@P SYS$SNDOPR =0 ;=p/ =;  SYS$BRKTHRUW"""   SYS$SNDOPR" $*[EVERHART.JTDEMO]JTLICNAM.OBJ_AXP6;1+,<. / 4 - 0123KPWO56 q07e089GHJ ??JTLICV1 8-NOV-1996 00:34AMAC V2.1-13 `$LINKAGE CDEV_CODEA CDEV_DATA $ABS$ . BLANK . . ABS . DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR(JLICMSG =0 ;=p/ =;=@  SYS$SNDOPR"  SYS$BRKTHRUW"""  =>C~^^~ (0޴8@H>P^X~` GhG(mGqC*{  %Q@d{![!/,,-HHJ/IDCECJKE0C4@@4`@4@ 4@A9GvI.%1@ 4`A4GWJF>>CPMG([ { "(ޢG,4GXmG޶G tG@ZkGTG(m@MC[ HmG@Zk4GG^~ (0ޤ8@H>P^X~`hCk! 4G0 SYS$BRKTHRUW4m# SYS$BRKTHRUW4,@0 SYS$BRKTHRUW4<GT SYS$SNDOPR4Hm# SYS$SNDOPR4P@T SYS$SNDOPR = 4=PID  DSC$K_DTYPE_T2=47= G4=Deviceu=(M4=u4;4=AAA@ Aa`a`aa`` !!! Aa`a`a` Aa`a``a`aa A``a```aaaa !! ! !!!! A`a``a``@A`aaaa AAA Aaa @aaa`aa` a`a`aaa`a`a `a aaaa`aaa``aaaa aa`aa`a`a`aa`a a``a`aa                        =PC 4=OPA0:= DSC$K_DTYPE_T2=4= DSC$K_DTYPE_T2=4=EACF, Copyright 1994 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Licensed exclusively to: {customername} {orgazization} {phone} May not be used without a valid license. $*[EVERHART.JTDEMO]JTLICNAM.OBJ_VAX5;1+,=. / 4 - 0123 KPWO56d7;89GHJ/JTLIC017-NOV-1996 13:27 VAX MACRO V5.4-3MACRO JTLICNAM  JTLIC3 DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR . ABS .P$ABS$-PPPPPPPPPPPA CDEV_DATAP3PIDQ&Q DSC$K_DTYPE_T%Q C3DeviceQ&Q Q((MQu;AAA@ Aa`a`aa`` !!! Aa`a`a` Aa`a``a`aa A``a```aaaa !! ! !!!! A`a``a``@A`aaaa AAA Aaa @aaa`aa` a`a`aaa`a`a `a aaaa`aaa``aaaa aa`aa`a`a`aa`a a``a`aa                        Q 3OPA0:Q&Q Q& DSC$K_DTYPE_T%& DSC$K_DTYPE_T%EACF, Copyright 1994 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Licensed exclusively to: {customername} {orgazization} {phone} May not be used without a valid license.Q CDEV_CODEP LICMSG&R*STЏUUd[ZVWXVWWXX Џ!P1LXUܞRS|~ cb SYS$BRKTHRUWR<~b SYS$SNDOPRP1 LICMSG0 CDEV_DATAA CDEV_CODE%*[EVERHART.JTDEMO]JTLICNAM.OBJ_VAX62;3+,>. / 4 - 0123KPWO5617`u^89GHJ/JTLIC0 4-NOV-1996 09:08 VAX MACRO V5.4-3MACRO JTLICNAM  JTLIC3 DSC$K_DTYPE_T SYS$BRKTHRUW SYS$SNDOPR . ABS .P$ABS$-PPPPPPPPPPPA CDEV_DATAP3PIDQ&Q DSC$K_DTYPE_T%Q C3DeviceQ&Q Q((MQu;AAA@ Aa`a`aa`` !!! Aa`a`a` Aa`a``a`aa A``a```aaaa !! ! !!!! A`a``a``@A`aaaa AAA Aaa @aaa`aa` a`a`aaa`a`a `a aaaa`aaa``aaaa aa`aa`a`a`aa`a a``a`aa                        Q 3OPA0:Q&Q Q& DSC$K_DTYPE_T%& DSC$K_DTYPE_T%EACF, Copyright 1994 General Cybernetic Enterprises (603) 465 9517, Everhart@Arisia.GCE.Com Licensed exclusively to: {customername} {orgazization} {phone} May not be used without a valid license.Q CDEV_CODEP LICMSG&R*STЏUUd[ZVWXVWWXX Џ!P1LXUܞRS|~ cb SYS$BRKTHRUWR<~b SYS$SNDOPRP1 LICMSG0 CDEV_DATAA CDEV_CODE*[EVERHART.JTDEMO]JTLICTST.OBJ;4+,?. / 4 $- 0123 KPWO56@:7@ x89GHJ8 JTLICTST$MAIN0115-Sep-1996 16:15DEC Fortran V6.1-68 JTLICTST$MAIN9P icond not right, =  enter keystring: JTLICTST$MAINPP[JTGLMSKPRR8 FOR$WRITE_SFR FOR$IO_L_V FOR$IO_ENDFOR$STOP  JTLICTST$MAINJTGLMSKJTPRTSYIKGETKIC$CODE2$PDATA $LOCALFOR$STOP FOR$IO_END FOR$IO_L_V FOR$WRITE_SFP C$*[EVERHART.JTDEMO]JTLICTST.OBJ_VAX5;2+,@. / 4 $- 0123 KPWO56G'党77A党89GHJ8 JTLICTST$MAIN0114-Sep-1996 16:5314-Sep-1996 16:53VAX FORTRAN V5.9-173 JTLICTST$MAIN9P icond not right, =  enter keystring: JTLICTST$MAINPP[JTGLMSKP\\8 FOR$WRITE_SF\ FOR$IO_L_V FOR$IO_ENDFOR$STOP  JTLICTST$MAINJTGLMSKJTPRTSYIKGETKIC$CODE2$PDATA$$LOCALFOR$STOP FOR$IO_END FOR$IO_L_V FOR$WRITE_SFP C%*[EVERHART.JTDEMO]JTLICTST.OBJ_VAX62;1+,A. / 4 (- 0123KPWO56rbQ7 KR89GHJ8 JTLICTST$MAIN0110-Jul-1996 10:40Digital Fortran V6.4-165 JTLICTST$MAIN9P icond not right, =  enter keystring: JTLICTST$MAINPP[JTGLMSKPRR8 FOR$WRITE_SFR FOR$IO_L_V FOR$IO_ENDFOR$STOP  JTLICTST$MAINJTGLMSKJTPRTSYIKGETKIC$CODE2$PDATA $LOCALFOR$STOP FOR$IO_END FOR$IO_L_V FOR$WRITE_SFP C*[EVERHART.JTDEMO]JTLINK.COM;17+,C. / 4@ - 0123 KPWO56@@S7@F 089GHJ ?@ SAFETY013.AC [EVERHART.JTDEMO]JTLINK.COM;176;146@ *$ $set verify $set noon $link jtdolog3$link jtdriver+sys$system:sys.stb/sel+sys$input/optbase=0@$link jtdmn+jtlic+jtopn+jtoprmsg+jttrnlnm+sys$system:sys.stb/sel"$link jtauthmaint+jtmodace+jtauthm $set noverify *[EVERHART.JTDEMO]JTMAKSPC.COM;31+,D./ 4Y - 0123 KPWO 56th7@gh89GHJ$! make space on a device.$! @makspc device nblks!$! free up nblks space on device.H$! Note this one just selects. A sorting pass to record size and/or dateB$! and sort on those to get oldest/biggest first needs to be added!$! though this version is usable.$! We use two methods:J$! 1. Purge the delete wastebasket of files deleted "long enough" ago, and!$! stop if enough space is freed.L$! 2. Shelve files until enough space is freed (or nothing else eligible for$! shelving can be found.$!G$! Default for purging deleted files is things deleted over an hour ago$! get deleted finally.$!$dvc=p1 $nblks=p2$if dvc .eqs. "" then goto done$if nblks .le. 0 then goto done$find:==$gcy$sys:findB$! It is expected the selections will be set up per system and per$! server by a script.K$! We can switch between devices here if we need to, but should do the best$! we can on selection.G$if f$trnlnm("gcy$scratch") .eqs. "" then ass sys$scratch: gcy$scratch:Q$if f$search("gcy$scratch:mksin.dat") .nes. "" then delete gcy$scratch:mksin.dat."$! Do not alter the following lineB$! Set fdefault minimum size to move and minimum age to move here. $dayago=2$oldday="yesterday" $minal=10$secondsago=3600"$! start with 1 hour ago deletions"$! Reset "dayago" or "minal" below $!+++$$$===$!#$ inispc=f$getdvi(dvc,"FREEBLOCKS")$if secondsago .gt.0$ then3$! First get rid of files deleted over an hour ago.B$! If this is tailored so "secondsago" becomes some other interval-$! then get rid of stuff deleted before then."$ jtdelmaint:==$gcy$sys:jtdelmaint-$ jtdelmaint sys$sysdevice/PURGE:'secondsago'$ needspc=inispc + nblks#$ spcnow=f$getdvi(dvc,"FREEBLOCKS")9$ ! If enough space is freed, no need to shelve anything.$$ if spcnow .gt. needspc then exit 1$ endifL$! Stop after purge of deleted files if the age threshold is over 9999 days.!$ If dayago .gt. 9999 then exit 1$today=f$time()#$day=f$integer(f$cvt(today,,"day"))%$mon=f$integer(f$cvt(today,,"month"))#$yr=f$integer(f$cvt(today,,"year"))$day = day - dayago$daylp:$if (day .lt. 1)$ thenC$ ! compute date some number of days ago. Go back a month at a time)$ ! if this is more than just a few days.$ dpm=31$ yrd=0$ if mon .eq. 1 then yrd = -1$ if mon .eq. 3 then dpm = 28$ if mon .eq. 5 then dpm = 30$ if mon .eq. 7 then dpm = 30$ if mon .eq. 12 then dpm = 30$ day = day + dpm$ mon = mon -1$ if mon .lt. 1 $ then$ mon=12 $ yr = yr -1$ endifF$! Date could be a couple months, so keep trying if one is not enough.+$! Note we're sloppy about leap years here.$ dayago = dayago - dpm"$ if dayago .gt. 0 then goto daylp$ endif $ mstr="Jan"$ if mon .eq. 2 then mstr="Feb"$ if mon .eq. 3 then mstr="Mar"$ if mon .eq. 4 then mstr="Apr"$ if mon .eq. 5 then mstr="May"$ if mon .eq. 6 then mstr="Jun"$ if mon .eq. 7 then mstr="Jul"$ if mon .eq. 8 then mstr="Aug"$ if mon .eq. 9 then mstr="Sep" $ if mon .eq. 10 then mstr="Oct" $ if mon .eq. 11 then mstr="Nov" $ if mon .eq. 12 then mstr="Dec" $ oldday=" "/$oldday=f$string(day)+"-"+mstr+"-"+f$string(yr)J$find/char=(nocontig,nodirec,backup)/alloc=('minal',250000)/org=noindexed-A/out=gcy$scratch:mksin.dat/crea=(17-nov-1858,'oldday')/match=AND-C/revision=(17-nov-1858,'oldday')/expir=(17-nov-1858,'oldday') 'dvc'A$! This gets a list of files. Now edit it to a list we can USE byA$! eliminating any files of with SYS in the path or with ? in the$! path.G$if f$file_attributes("gcy$scratch:mksin.dat","eof") .lt. 1 then exit 1%$open/read ifil gcy$scratch:mksin.datM$if f$search("gcy$scratch:min.dat") .nes. "" then delete gcy$scratch:min.dat.$$open/write ofil gcy$scratch:min.dat $vlin=" " $editloop:'$read/end=editend/err=editend ifil vlin=$if f$locate("?",vlin) .lt. f$length(vlin) then goto editloop=$if f$locate(":",vlin) .ge. f$length(vlin) then goto editloop?$if f$locate("SYS",vlin) .lt. f$length(vlin) then goto editloopB$if f$locate("VMS$CO",vlin) .lt. f$length(vlin) then goto editloop)$! Don't try to swap virtual disks either?$if f$locate("DSK",vlin) .lt. f$length(vlin) then goto editloop$! check for installed fileC$if f$file_attributes(vlin,"KNOWN") .eqs. "TRUE" then goto editloopJ$if f$file_attributes(vlin,"STORED_SEMANTICS") .nes. "" then goto editloopF$if f$file_attributes(vlin,"NOBACKUP") .eqs. "TRUE" THEN GOTO EDITLOOP1$! directories are contiguous so this omits them.A$if f$file_attributes(vlin,"CTG") .eqs. "TRUE" THEN GOTO EDITLOOP@$if f$file_attributes(vlin,"ORG") .EQS. "IDX" THEN GOTO EDITLOOP $set noonA$! following tests will fail before vms v6, but are useful after.4$! Thus we tell DCL to ignore errors on these tests.8$if f$file(vlin,"MOVE") .eqs. "FALSE" then goto editloop=$if f$file(vlin,"SHELVABLE") .EQS. "FALSE" then goto editloop$set on3$! Following line is a marker...don't mess with it. $! Add checks on filenames below $!+++@@@===$!$write ofil vlin$goto editloop $editend: $close ifil $close ofil$! 5$! Now mark files for move till we have enough space.#$!inispc=f$getdvi(dvc,"FREEBLOCKS")$needspc=inispc + nblks#$jtauthmaint:==$gcy$sys:jtauthmaint$open ofil gcy$scratch:min.dat$spclop:%$read/end=endspc/err=endspc ofil vlinY$jtauthmaint 'vlin'\I+H+M+X+U*<*>K*<*>N*<*>TV"$spcnow=f$getdvi(dvc,"FREEBLOCKS")7$! Stop migrating files when we have freed enough room.($if spcnow .lt. needspc then goto spclop$endspc: $close ofil$done:$exit 1$*[EVERHART.JTDEMO]JTMARK_FILES.COM;91+,E.H/ 4dH@- 0123 KPWOA56]&7S 089GHJ$ $set noverify'$! Copyright (c) 1994 Glenn C. Everhart$! All Rights Reserved$ask:==inquire$emit:==write sys$output$set command sys$system:zmenu $fcnstr=" " $allflg="No" $ffnm=" "$modlop: $ffnm=" "$ffnm="" $allflg="No"1$if p1 .nes. "" .and. p1 .nes. " " then ffnm = p1 $p1 = " "$p1 = ""$wild=0 $wldfile=" " $wldctr=0$write sys$output ""$write sys$output ""$ write sys$output -"M<>[?4l[?8h",-"(B)07[?6l8#6"Q$if ffnm .eqs. "" .or. ffnm .eqs. " " then ask ffnm "File(s) to mark (? for dir)"$if ffnm .eqs. "" then exit*$if f$locate("?",ffnm) .lt. f$length(ffnm)$then*$ inquire fdcmd "Directory of what files:"$ dircmd="dir " + fdcmd$ spawn dircmd=$ inquire fdcmd "Type a return or enter when ready to go on>" $ goto modlop$endif#$if f$length(ffnm) .le. 2 then exit $fnm=ffnm$if f$search(fnm,4) .eqs. ""$ then$ emit "%EACF-F-No such file" $goto modlop$endif8$if f$locate("*",ffnm) .lt. f$length(ffnm) then wild = 18$if f$locate("%",ffnm) .lt. f$length(ffnm) then wild = 1 $wldfile=ffnm$wldlop:$if wild .eq. 0$then"$if wldctr .gt. 0 then goto modlop$fnm=f$search(ffnm,3)$wldctr=wldctr+1$endif$if wild .ne. 0$then$wldctr=wldctr+1$fnm=f$search(wldfile,3)!$if fnm .eqs. "" then goto modlop $flnm=fnm=$if allflg .eqs. "Yes" .and. fcnstr .nes. " " then goto aplwc$endif#$jtauthmaint:==$gcy$sys:jtauthmaint$flnm=f$search(fnm)$if flnm .eqs. "" $ then9$ emit "%EACF-F-No such file found or file inaccessible"$ goto modlop$ endif$on error then goto loseprt$open fubar 'flnm' $goto nofubar $loseprt: $set noon $close fubar!$emit "%EACF-F-File inaccessible"$exit 8 $nofubar: $close fubar $set noon$jta_fusr="None"$jta_ftty="None"$jta_fimg="None"$jta_mxpv="None"$jta_cksm="None"$jta_bkpu="None"$$jta_itim="YYYYYYYYYYYYYYYYYYYYYYYY"$jta_pswd="0000000000000000" $jta_zcmd=" " $jta_usrs=" " $jta_ttys=" " $jta_imgs=" " $jta_cslk=" " $jta_insp=" " $jta_bpri=" " $jta_idnt=" " $jta_prnd=" "$jta_surw="R/W" $jta_rprv=" " $acfcmd=0 $!set noon$ jtauthmaint 'flnm'\%SYMS$set on-$if JTA_BPRI .EQS. " " THEN JTA_BPRI = "None"-$if JTA_Idnt .eqs. " " then JTA_IDNT = "None"-$if JTA_RPRV .eqs. " " then jta_rprv = "None"-$if jta_cslk .eqs. " " then jta_cslk = "None"$csftf=0 $cksf=" "3$if jta_cksm .nes. "0000000000000000" then cksf="*" $pswf=" " $acfcmd=0<$if jta_zcmd .nes. " " .and. jta_zcmd .nes. "" then acfcmd=1 $skyf=" " $sekey=" " $stident=" "$sident=jta_idnt$if f$length(jta_idnt) .ge. 16$then$aaa=0%$ttt="aaa=%x"+f$extract(0,8,jta_idnt)$'ttt')$zidnt=f$identifier(aaa,"number_to_name")%$if zidnt .nes. "" then stident=zidnt$endif$prvsym=="0000000000000000" $ptitle="Max Privs To Open File" $filpwd=" "$smptr=1$domenu:?$zmenu/POINTER="-->"/SYMBOLS/initial='f$string(smptr)'5 Extended Access Control Facility - File Marking File 'flnm': ^ Edit max-privs-to-open mask (current: 'JTA_MXPV')9 ^ Set base priority override (current: 'JTA_BPRI'). ^ Edit permitted user list ('JTA_USRS'). ^ Edit forbidden user list ('JTA_FUSR')/ ^ Edit permitted term. list ('JTA_TTYS')/ ^ Edit forbidden term. list ('JTA_FTTY')/ ^ Edit permitted image list ('JTA_IMGS')/ ^ Edit forbidden image list ('JTA_FIMG'). ^ Edit backup account list ('JTA_BKPU')+ ^ Edit time-use profile ('JTA_ITIM')? ^ Edit replacement priv mask (when file open) 'jta_rprv'A ^ Set backup user access [Readonly/Read-Write] 'JTA_SURW'# ^ 'cksf'Set file tamper checkD ^ 'pswf'Set file password ^ Set AccFail-action cmd 'jta_zcmd'H ^ 'skyf'Enter security key ^'jta_prnd'Set "paranoid mode" opn chks. ^ Set conditional softlink ('jta_cslk')= ^ Grant identifier on open/revoke on close ('stident') ^ Quit, make no changes' ^ Done, update file controls now. ^ Perform database maintenance commands. ^ Apply selected mods to all wild files$smptr = choice$write sys$output " "$write sys$output " " $goto xxxdoch$aplwc: $choice=19 $xxxdoch:#$if choice .eq. 18 then goto wldlop$if choice .eq. 21$ then$ allflg="Yes" $ choice=19$ endif$if choice .eq. 22$ then$! Access fail action command=$ ask ackk "Enter cmd to run if access is rejected (or NONE)"$ if ackk .eqs. "NONE"$ then $ acfcmd=0 $ jta_zcmd="" $ goto domenu$ endif#$ if ackk .eqs. "" then goto domenu $ acfcmd=1$ jta_zcmd=ackk $ goto domenu$ endif$if choice .eq. 23$ then$ if jta_prnd.eqs." "$ then$ jta_prnd="*"$ else$ jta_prnd=" "$ endif $ goto domenu$ endif$if choice .eq. 17$ then$$ask vidnt "Enter identifier to tag"#$if vidnt .eqs. "" then goto domenu,$nident=f$identifier(vidnt,"name_to_number")$stident=vidnt$ttt=f$fao("!XL",nident)$sident=ttt+"00000000" $ goto domenu$endif$if choice .eq. 16$ then$! cond. softlink6$ask cffk "Enter device:file to open if access denied"0$if f$search(cffk) .nes. "" then jta_cslk = cffk2$if f$search(cffk) .eqs. "" then jta_cslk = "None" $ goto domenu$ endif$if choice .eq. 20$ then$mntlop:%$zmenu/POINTER="-->"/SYMBOLS+ Extended Access Control Facility MAINTENANCE COMMANDS ^ Delete this entry: ^ Remove all database entries for now-deleted files+ ^ Create listing of all files marked= ^ Repair deleted ACEs (ANY such are a security issue!)/ ^ Change or delete a string in all lists6 ^ Generate report file of files in the database ^ Done with this menu$if choice .eq. 1$then0$! Remove ACE markings as well as file markings.$jtauthmaint 'flnm'\Z-X+$jtauthmaint 'flnm'\%DELETE $goto mntlop$endif$if choice .eq. 2$then$ jtauthmaint 'flnm'\%PURGE $ goto mntlop$endif$if choice .eq. 3$ then$ jtauthmaint 'flnm'\%LIST7$ write sys$output "List file created is ",JTA_LISTFILE $ wait 0:0:20 $ goto mntlop$ endif$if choice .eq. 4$ then$ jtauthmaint 'flnm'\%REGEN $ goto mntlop$ endif$if choice .eq. 5$ then$ ask olds "String to remove"0$ ask news "String to replace it with (or none)")$ ask cfm "Confirm edits as we go? [y/n]"#$ cfm=f$edit(cfm,"collapse,upcase") $ cfms=""2$ if f$extract(0,1,cfm) .eqs. "Y" then cfms="CONF" $ ass/user sys$command sys$input3$ jtauthmaint 'flnm'\%GBLEDIT'cfms' `'olds'`'news'` $ goto mntlop$ endif$ if choice .eq. 6$ then$ jtauthmaint 'flnm'\%REPORT6$ write sys$output "List file created is ",JTA_RPTFILE $ wait 0:0:20 $ goto mntlop$ endif"$if choice .eq. 7 then goto wldlop$ endif$if choice .eq. 15$then$on error then goto skfb$set term /noecho/$ write sys$output "Enter volume security key:"$ write sys$output " "%$ read/prompt="Key>" sys$command ktxt/$ write sys$output "Reenter key to confirm OK:"$ write sys$output " "%$ read/prompt="Key>" sys$command key2$! inquire key2 "Reenter>"$skfb:$ set term /echoO$ if ktxt .nes. key2 then write sys$output "Keys do not match. No key entered."&$ if ktxt .nes. key2 then goto domenu $$ktxt=f$edit(ktxt,"COLLAPSE,UPCASE"))$if f$length(ktxt) .le.3 then goto domenu $skyf="*" $sekey=ktxt $goto domenu$endif$if choice .eq. 19$ then5$! Here concoct jtauthmaint call to update everything$if skyf .eqs. " "$ then $ kneed=0@$ if jta_rprv .nes. "None" .and. jta_rprv .nes. " " then kneed=1*$ if f$length(sident) .ge. 16 then kneed=1'$ if jta_bpri .nes. "None" then kneed=1*$ if kneed .eq. 1 .and. allflg .nes. "Yes"$ thenG$ write sys$output "%EACF-W-NoKey Security key needed for some options"A$ write sys$output " and not entered. Continue to mark files [Y]"$ kndc=0$ ask kndt "Continue?"%$ kndt=f$edit(kndt,"collapse,upcase")3$ if f$extract(0,1,kndt) .eqs. "N" then goto domenu$ endif$ endif$insme=0 $fcnstr="X+"$if pswf .eqs. "*"$then $fcnstr=fcnstr+"Y+<"+filpwd+">"$insme=1$else$fcnstr=fcnstr+"Y-< >"$endif4$if skyf .eqs. "*" then fcnstr=fcnstr+"K<"+sekey+">"2$if jta_rprv .nes. "None" .and. jta_rprv .nes. " "$ then8$ if skyf .eqs. "*" then fcnstr=fcnstr+"P<"+jta_rprv+">"$ endif$if jta_mxpv .nes. "None"$then$insme=1 $fcnstr=fcnstr+"V<"+jta_mxpv+">"$endifM$! set flags to run cmd file when util opens & when files open with util open$! These are &% and &&.0$if jta_prnd .eqs. "*" then fcnstr=fcnstr+"&%&&":$if jta_bpri .nes. "None" then fcnstr=fcnstr+"#S"+jta_bpri2$if jta_usrs .nes. " " .and. jta_usrs .nes. "None"$then$insme=1!$fcnstr=fcnstr+"U*<"+jta_usrs+">"$endif?$ if acfcmd .eq. 1 then fcnstr = fcnstr + "Z<" + jta_zcmd + ">"2$if jta_cslk .nes. " " .and. jta_cslk .nes. "None"$then$insme=1 $fcnstr=fcnstr+"C<"+jta_cslk+">"$endif$if f$length(sident) .ge. 16$then$fcnstr=fcnstr+"I<"+sident+">"$endif2$if jta_fusr .nes. " " .and. jta_fusr .nes. "None"$then$insme=1!$fcnstr=fcnstr+"V*<"+jta_fusr+">"$endif2$if jta_ttys .nes. " " .and. jta_ttys .nes. "None"$then$insme=1!@@ SAFETY013.AE $[EVERHART.JTDEMO]JTMARK_FILES.COM;91dH\j>$fcnstr=fcnstr+"K*<"+jta_ttys+">"$endif2$if jta_ftty .nes. " " .and. jta_ftty .nes. "None"$then$insme=1!$fcnstr=fcnstr+"L*<"+jta_ftty+">"$endif2$if jta_imgs .nes. " " .and. jta_imgs .nes. "None"$then$insme=1!$fcnstr=fcnstr+"N*<"+jta_imgs+">"$endif2$if jta_fimg .nes. " " .and. jta_fimg .nes. "None"$then$insme=1!$fcnstr=fcnstr+"O*<"+jta_fimg+">"$endif$if cksf .eqs. "*"$then$insme=1$fcnstr=fcnstr+"Z+"$endif$if cksf .eqs. " "$then$fcnstr=fcnstr+"Z-"$endifP$if jta_bkpu .nes. " " .and. jta_bkpu .nes. "None" .and. jta_bkpu .nes. "%None%"$then$insme=1!$fcnstr=fcnstr+"Q*<"+jta_bkpu+">"$endif$if f$length(jta_itim) .ge. 24$then$insme=1 $fcnstr=fcnstr+"T<"+jta_itim+">"$endifJ$if jta_surw .nes. "None" .and. jta_surw .nes. "" .and. jta_surw .nes. " "$then$insme=10$if jta_surw .eqs. "R/W" then fcnstr=fcnstr+"R-"0$if jta_surw .eqs. "R/O" then fcnstr=fcnstr+"R+"$endif'$if insme .ne.0 then fcnstr=fcnstr+"I+"@$!sho sym fcnstr !*****************************debug************>$!wait 0:0:10 !**********************debug********************$$jtauthmaint 'flnm'\'fcnstr' $! $ goto wldlop$endif$if choice .eq. 10$ then$! time choice$wrktim=jta_itimC$if f$length(wrktim) .lt. 24 then wrktim="YYYYYYYYYYYYYYYYYYYYYYYY" $csav=choice$gtptr=1$gtmu:?$zmenu/POINTER="-->"/SYMBOLS/initial='f$string(gtptr)'. Time Usage Permission Editing (by hour). Current Profile 'wrktim'0 0 111111111122220 012345678901234567890123J Key: Y - checked acc. N - No access except bkp D - no access at allN U - Unchecked acc P - Priv checks onlt R - Readonly access only X - R/W chks only> ^ 0-1AM ^ 12N-1PM ^ Quit this menu, no changes7 ^ 1-2AM ^ 1-2PM ^ Exit, apply changes ^ 2-3AM ^ 2-3PM ^ 3-4AM ^ 3-4PM ^ 4-5AM ^ 4-5PM ^ 5-6AM ^ 5-6PM ^ 6-7AM ^ 6-7PM ^ 7-8AM ^ 7-8PM ^ 8-9AM ^ 8-9PM ^ 9-10AM ^ 9-10PM ^ 10-11AM ^ 10-11PM ^ 11-12AM ^ 11-12M $gtptr=choice!$if choice .eq. 25 then goto cavc$if choice .eq. 26$ then$ jta_itim=wrktim $ goto cavc$endif $ptr=choice-$ask fcn2do "Give code for this hour access:""$if fcn2do .eqs. "" then goto gtmu$fcn2do=f$extract(0,1,fcn2do)$fcn2do=f$edit(fcn2do,"upcase")"$if fcn2do .eqs. "" then goto gtmu9$if f$locate(fcn2do,"YNDUPRX-----") .GT. 7 then goto gtmu<$! now insert the action code for this time into the string.A$! eliminate boundary effects by tacking extra chars on the ends.$ws2="."+wrktim+"."$llft=26-ptr-1>$ws2=f$extract(0,ptr,ws2) + fcn2do + f$extract(ptr+1,llft,ws2)$wrktim=f$extract(1,24,ws2) $goto gtmu$cavc: $choice=csav $ goto domenu$endif$if choice .eq. 13$ then$ if cksf .eqs. "*"$ then $ cksf=" " $ goto domenu$ endif$ if cksf .eqs. " "$ then $ if f$file(flnm,"eof") .gt. 100$ thenE$ emit "Security check requires reading the whole file at each open."A$ ask fbckq "File is over 100 blocks long. Are you sure [Y/N][N]"$ fbckq=f$extract(0,1,fbckq)'$ fbckq=f$edit(fbckq,"upcase,collapse")%$ if fbckq .nes. "Y" then goto domenu$ endif $ cksf="*"$ endif $ goto domenu$ endif$if choice .eq. 14$ then$ if pswf .eqs. "*"$ then $ pswf=" " $ goto domenu$ endif$ if pswf .eqs. " "$ then $ pswf="*"$ on error then goto fpwfb$ set term /noecho)$ write sys$output:"Enter file password:"$ write sys$output " "0$ read/prompt="FilePassword>" sys$command filpwd1$ write sys$output "Reenter to confirm spelling:"$ write sys$output " "1$ read/prompt="FilePassword>" sys$command filpwd2$fpwfb:$ set term /echo$ if filpwd.nes.filpwd2$ then $ filpwd=""P$ write sys$output "%EACF-W-file password spellings not confirmed. Not entered."$ endif"$ if filpwd .eqs. "" then pswf=" "$ endif $ goto domenu$ endif$if choice .eq. 1$ then$ prvsym==jta_mxpv>$ if f$length(prvsym) .lt. 16 then prvsym=="0000000000000000"1$ ptitle="Privileges Permitted For Opening File"$ svpsm=prvsym$ gosub prvget$ if prvsym .eqs. "BAIL"$ then$ prvsym=svpsm $ goto domenu$ endif$ jta_mxpv=prvsym $ goto domenu$endif$ if choice .eq. 11$ then$ prvsym==jta_rprv=$ if f$length(prvsym) .lt. 16 then prvsym=="0000000000000000"3$ ptitle="Privilege Mask to Replace all priv masks"$ svpsm=prvsym$ gosub prvget$ if prvsym .eqs. "BAIL"$ then$ prvsym=svpsm $ goto domenu$ endif$ jta_rprv=prvsym $ goto domenu$endif$ if choice .eq. 12$ then$ if JTA_SURW .eqs. "R/W"$ then$ jta_surw = "R/O" $ goto domenu$ endif/$ if JTA_SURW .eqs. "R/O" then jta_surw = "R/W" $ goto domenu$ endif$if choice .eq. 2$ then?$ ask bpr "Enter base priority for process with this file open"d$ if bpr .eqs. "" .or. bpr .eqs. "NONE" .or. bpr .eqs. "None" .or. bpr .eqs. "none" then goto domenu$ if bpr .lt.0.or.bpr.gt. 31$then$jta_bpri="None" $goto domenu$endif$ jta_bpri=f$string(bpr)$! base prio symbol is now set. $ goto domenu$endif$if choice .eq. 3$ then$ chcsv=choice$usrlst=jta_usrs$ucmu:%$zmenu/POINTER="-->"/SYMBOLS# Edit Permitted User List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add users to list ^ Remove users from list ^ Replace list$ ^ Quit, leave user list alone ^ Done with this menu$if choice .eq. 1$then%$ask uad "Enter users to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uad $goto ucmu$endif$if choice .eq. 2$then*$ask uad "Enter users to remove from list")$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto ucmu$endif$if choice .eq. 3$then$ask uad "Enter user list"$if uad .eqs. "" then uad="*" $usrlst=uad $goto ucmu$endif $if choice .eq 4 then goto c3dun$if choice.eq. 5 $then$jta_usrs=usrlst $goto c3dun$endif$c3dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 4$ then$ chcsv=choice$usrlst=jta_fusr$vcmu:%$zmenu/POINTER="-->"/SYMBOLS# Edit Forbidden User List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add users to list ^ Remove users from list ^ Replace list$ ^ Quit, leave user list alone ^ Done with this menu$if choice .eq. 1$then%$ask uad "Enter users to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uad $goto vcmu$endif$if choice .eq. 2$then*$ask uad "Enter users to remove from list")$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto vcmu$endif$if choice .eq. 3$then$ask uad "Enter user list"$if uad .eqs. "" then uad="*" $usrlst=uad $goto vcmu$endif $if choice .eq 4 then goto c4dun$if choice.eq. 5 $then$jta_fusr=usrlst $goto c4dun$endif$c4dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 5$! permitted terminal list$ then$ chcsv=choice$usrlst=jta_ttys$wcmu:%$zmenu/POINTER="-->"/SYMBOLS' Edit Permitted Terminal List# Current user list: 'usrlst'. * is wild card, & means omit this test- ^ Add terminals (or acc ports) to list. ^ Remove terminals / accports from list. ^ Replace list of terminals / acc ports( ^ Quit, leave terminal list alone ^ Done with this menu$if choice .eq. 1$then)$ask uad "Enter terminals to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uadO$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif $goto wcmu$endif$if choice .eq. 2$then.$ask uad "Enter terminals to remove from list")$if uad .nes. "" then usrlst=usrlst - uadO$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto wcmu$endif$if choice .eq. 3$then$ask uad "Enter terminal list"$if uad .eqs. "" then uad="*"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif $usrlst=uad $goto wcmu$endif $if choice .eq 4 then goto c5dun$if choice.eq. 5 $then$jta_ttys=usrlst $goto c5dun$endif$c5dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 6$! forbidden terminal list$ then$ chcsv=choice$usrlst=jta_ftty$xcmu:%$zmenu/POINTER="-->"/SYMBOLS' Edit Forbidden Terminal List# Current user list: 'usrlst'. * is wild card, & means omit this test) ^ Add terminals / accports to list. ^ Remove terminals / accports from list ^ Replace list( ^ Quit, leave terminal list alone ^ Done with this menu$if choice .eq. 1$then)$ask uad "Enter terminals to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uadO$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif $goto xcmu$endif$if choice .eq. 2$then.$ask uad "Enter terminals to remove from list"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif)$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto xcmu$endif$if choice .eq. 3$then$ask uad "Enter terminal list"$if uad .eqs. "" then uad="*"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif $usrlst=uad $goto xcmu$endif $if choice .eq 4 then goto c6dun$if choice.eq. 5 $then$jta_ftty=usrlst $goto c6dun$endif$c6dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 7$! permitted images edit$ then$ chcsv=choice$usrlst=jta_imgs$ycmu:%$zmenu/POINTER="-->"/SYMBOLS% Edit Permitted Images List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add Images to list ^ Remove Images from list ^ Replace list% ^ Quit, leave image list alone ^ Done with this menu$if choice .eq. 1$then&$ask uad "Enter images to add to list"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif+$if uad .nes. "" then usrlst=usrlst+","+uad $goto ycmu$endif$if choice .eq. 2$then+$ask uad "Enter images to remove from list"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif)$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto ycmu$endif$if choice .eq. 3$then$ask uad "Enter image list"$if uad .eqs. "" then uad="*"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif $usrlst=uad $goto ycmu$endif $if choice .eq 4 then goto c7dun$if choice.eq. 5 $then$jta_imgs=usrlst $goto c7dun$endif$c7dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 8$! Forbidden images edit$ then$ chcsv=choice$usrlst=jta_fimg$aycmu:%$zmenu/POINTER="-->"/SYMBOLS% Edit Forbidden Images List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add Images to list ^ Remove Images from list ^ Replace list% ^ Quit, leave image list alone ^ Done with this menu$if choice .eq. 1$then&$ask uad "Enter images to add to list"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif+$if uad .nes. "" then usrlst=usrlst+","+uad $goto aycmu$endif$if choice .eq. 2$then+$ask uad "Enter images to remove from list"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif)$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto aycmu$endif$if choice .eq. 3$then$ask uad "Enter image list"$if uad .eqs. "" then uad="*"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif $usrlst=uad $goto aycmu$endif $if choice .eq 4 then goto c8dun$if choice.eq. 5 $then$jta_fimg=usrlst $goto c8dun$endif$c8dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 9$! backup user edit$ then$ chcsv=choice$usrlst=jta_bkpu$bycmu:%$zmenu/POINTER="-->"/SYMBOLS Edit Backup User List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add Users to list ^ Remove Users from list ^ Replace list$ ^ Quit, leave user list alone ^ Done with this menu$if choice .eq. 1$then%$ask uad "Enter users to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uad $goto bycmu$endif$if choice .eq. 2$then*$ask uad "Enter users to remove from list")$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto bycmu$endif$if choice .eq. 3$then)$ask uad "Enter backup (super) user list""$if uad .eqs. "" then uad="%None%" $usrlst=uad $goto bycmu$endif $if choice .eq 4 then goto c9dun$if choice.eq. 5 $then$jta_bkpu=usrlst $goto c9dun$endif$c9dun:$ choice=chcsv $ goto domenu$endif $if wild .ne. 0 then goto wldlop $goto modlopF$! Privilege mask generating subroutine. Toggles privs or allows privsJ$! to be all set or reset via menu. Output hex string in "prvsym" ready to!$! use for jtauthmaint et. alia. $! By Glenn Everhart, 5/19941$! Defaults to a mask with tmpmbx and netmbx set.$prvget: $set noverify$!set comm sys$system:zmenu $pmf0=" " $pmf1=" " $pmf2=" " $pmf3=" " $pmf4=" " $pmf5=" " $pmf6=" " $pmf7=" " $pmf8=" " $pmf9=" " $pA@ SAFETY013.AE $[EVERHART.JTDEMO]JTMARK_FILES.COM;91dH2mf10=" " $pmf11=" " $pmf12=" " $pmf13=" " $pmf14=" " $pmf15=" " $pmf16=" " $pmf17=" " $pmf18=" " $pmf19=" " $pmf20=" " $pmf21=" " $pmf22=" " $pmf23=" " $pmf24=" " $pmf25=" " $pmf26=" " $pmf27=" " $pmf28=" " $pmf29=" " $pmf30=" " $pmf31=" " $qmf0=" " $qmf1=" " $qmf2=" " $qmf3=" " $qmf4=" " $qmf5=" " $qmf6=" " $qmf7=" " $qmf8=" " $qmf9=" " $qmf10=" " $qmf11=" " $qmf12=" " $qmf13=" " $qmf14=" " $qmf15=" " $qmf16=" " $qmf17=" " $qmf18=" " $qmf19=" " $qmf20=" " $qmf21=" " $qmf22=" " $qmf23=" " $qmf24=" " $qmf25=" " $qmf26=" " $qmf27=" " $qmf28=" " $qmf29=" " $qmf30=" " $qmf31=" "$plo1=0$plo2=0$phi1=0$phi2=0)$s1="plo1[0,32]=%x"+f$extract(4,4,prvsym)$'s1')$s2="plo2[0,32]=%x"+f$extract(0,4,prvsym)$'s2'*$s3="phi1[0,32]=%x"+f$extract(12,4,prvsym)$'s3')$s4="phi2[0,32]=%x"+f$extract(8,4,prvsym)$'s4' $prvlo1=plo1 $prvlo2=plo2 $prvhi1=phi1 $prvhi2=phi2$!prvlo1=32768 $!prvlo2=16 $!prvhi1=0 $!prvhi2=0 $!prvstr = ""$bt0=1$bt1=2$bt2=4$bt3=8$bt4=16 $bt5=%x20 $bt6=%x40 $bt7=%x80 $bt8=%x100 $bt9=%x200 $bt10=%x400 $bt11=%x800 $bt12=%x1000 $bt13=%x2000 $bt14=%x4000 $bt15=%x8000$xbt0=%xffff - 1$xbt1=%xffff - 2$xbt2=%xffff - 4$xbt3=%xffff - 8$xbt4=%xffff - 16$xbt5=%xffff - %x20$xbt6=%xffff - %x40$xbt7=%xffff - %x80$xbt8=%xffff - %x100$xbt9=%xffff - %x200$xbt10=%xffff - %x400$xbt11=%xffff - %x800$xbt12=%xffff - %x1000$xbt13=%xffff - %x2000$xbt14=%xffff - %x4000$xbt15=%xffff - %x8000E$! now set syms to express initial values of privs so they come in asA$! previously set and don't have to be all re-entered every time.$pbt=0$pl1is:$ktst= plo1 .and. bt'pbt'#$if ktst .ne. 0 then pmf'pbt' = "*" $pbt=pbt+1$if pbt.le.15 then goto pl1is$pl2is: $ppbt=pbt-16$ktst= plo2 .and. bt'ppbt'#$if ktst .ne. 0 then pmf'pbt' = "*" $pbt=pbt+1$if pbt .le. 31 then goto pl2is$pbt=0$ph1is:$ktst = phi1 .and. bt'pbt'#$if ktst .ne. 0 then qmf'pbt' = "*" $pbt=pbt+1$if pbt.le.15 then goto ph1is$ph2is: $ppbt=pbt-16$ktst= phi2 .and. bt'ppbt'#$if ktst .ne. 0 then qmf'pbt' = "*" $pbt=pbt+1$if pbt .le. 31 then goto ph2is$smptr=1 $dopvmenu: $dopvmnu:?$zmenu/POINTER="-->"/SYMBOLS/initial='f$string(smptr)'! 'ptitle' Privilege Set UpG ^ Done setup ^ 'pmf17' MOUNT ^ 'qmf5' U05 ^ 'qmf25' U25G ^ Set all priv^ 'pmf18' OPER ^ 'qmf6' SECURITY ^ 'qmf26' U26G ^ Clr all priv^ 'pmf19' EXQUOTA ^ 'qmf7' U07 ^ 'qmf27' U27L ^ 'pmf0' CMKRNL ^ 'pmf20' NETMBX ^ 'qmf8' U08 ^ 'qmf28' U28L ^ 'pmf1' CMEXEC ^ 'pmf21' VOLPRO ^ 'qmf9' ACNT ^ 'qmf29' U29M ^ 'pmf2' SYSNAM ^ 'pmf22' PHY_IO ^ 'qmf10' U10 ^ 'qmf30' U30M ^ 'pmf3' GRPNAM ^ 'pmf23' BUGCHK ^ 'qmf11' U11 ^ 'qmf31' U31O ^ 'pmf4' ALLSPOOL ^ 'pmf24' PRMGBL ^ 'qmf12' U12 ^ Set NO maskS ^ 'pmf5' DETACH ^ 'pmf25' SYSGBL ^ 'qmf13' ALTPRI ^ Make no changes: ^ 'pmf6' DIAGNOSE ^ 'pmf26' PFNMAP ^ 'qmf14' U14: ^ 'pmf7' LOG_IO ^ 'pmf27' SHMEM ^ 'qmf15' U15: ^ 'pmf8' GROUP ^ 'pmf28' SYSPRV ^ 'qmf16' U16: ^ 'pmf9' NOACNT ^ 'pmf29' BYPASS ^ 'qmf17' U17; ^ 'pmf10' PRMCEB ^ 'pmf30' SYSLCK ^ 'qmf18' U18; ^ 'pmf11' PRMMBX ^ 'pmf31' SHARE ^ 'qmf19' U19: ^ 'pmf12' PSWAPM ^ 'qmf0' UPGRADE ^ 'qmf20' U20: ^ 'pmf13' SETPRI ^ 'qmf1' DOWNGRADE ^ 'qmf21' U21: ^ 'pmf14' SETPRV ^ 'qmf2' GRPPRV ^ 'qmf22' U22: ^ 'pmf15' TMPMBX ^ 'qmf3' READALL ^ 'qmf23' U23: ^ 'pmf16' WORLD ^ 'qmf4' U04 ^ 'qmf24' U24$! 1-20 21-40 41-60 61-67$if choice .eq. 68$then$prvsym=="None"$return$endif$if choice .eq. 69$then$prvsym="BAIL"$return$endif $smptr=choice!$if choice .eq. 1 then goto pmsks&$if choice .gt. 3 .and. choice .lt. 20$ then$ bchc= choice - 4$ tmsk=prvlo1 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvlo1 = prvlo1 .and. xbt'bchc'$ pmf'bchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvlo1 = prvlo1 .or. bt'bchc'$ pmf'bchc' = "*"$ endif$ goto dopvmenu$ endif($ if choice .gt. 19 .and. choice .lt. 36$ then$ bchc= choice - 20$ bbchc = choice - 4$ tmsk=prvlo2 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvlo2 = prvlo2 .and. xbt'bchc'$ pmf'bbchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvlo2 = prvlo2 .or. bt'bchc'$ pmf'bbchc' = "*"$ endif$ goto dopvmenu$ endif($ if choice .gt. 35 .and. choice .lt. 52$ then$ bchc= choice - 36$ bbchc = choice - 36$ tmsk=prvhi1 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvhi1 = prvhi1 .and. xbt'bchc'$ qmf'bbchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvhi1 = prvhi1 .or. bt'bchc'$ qmf'bbchc' = "*"$ endif$ goto dopvmenu$ endif($ if choice .gt. 51 .and. choice .lt. 68$ then$ bchc= choice - 52$ bbchc = choice - 36$ tmsk=prvhi2 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvhi2 = prvhi2 .and. xbt'bchc'$ qmf'bbchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvhi2 = prvhi2 .or. bt'bchc'$ qmf'bbchc' = "*"$ endif$ goto dopvmenu$ endif$ if choice .eq. 2$ then$! set all privs $pmf0="*" $pmf1="*" $pmf2="*" $pmf3="*" $pmf4="*" $pmf5="*" $pmf6="*" $pmf7="*" $pmf8="*" $pmf9="*" $pmf10="*" $pmf11="*" $pmf12="*" $pmf13="*" $pmf14="*" $pmf15="*" $pmf16="*" $pmf17="*" $pmf18="*" $pmf19="*" $pmf20="*" $pmf21="*" $pmf22="*" $pmf23="*" $pmf24="*" $pmf25="*" $pmf26="*" $pmf27="*" $pmf28="*" $pmf29="*" $pmf30="*" $pmf31="*" $qmf0="*" $qmf1="*" $qmf2="*" $qmf3="*" $qmf4="*" $qmf5="*" $qmf6="*" $qmf7="*" $qmf8="*" $qmf9="*" $qmf10="*" $qmf11="*" $qmf12="*" $qmf13="*" $qmf14="*" $qmf15="*" $qmf16="*" $qmf17="*" $qmf18="*" $qmf19="*" $qmf20="*" $qmf21="*" $qmf22="*" $qmf23="*" $qmf24="*" $qmf25="*" $qmf26="*" $qmf27="*" $qmf28="*" $qmf29="*" $qmf30="*" $qmf31="*" $prvlo1=65535 $prvlo2=65535 $prvhi1=65535 $prvhi2=65535 $plo1=65535 $plo2=65535 $phi1=65535 $phi2=65535$ goto dopvmnu$ endif$ if choice .eq. 3$ then$! clear all privs $pmf0=" " $pmf1=" " $pmf2=" " $pmf3=" " $pmf4=" " $pmf5=" " $pmf6=" " $pmf7=" " $pmf8=" " $pmf9=" " $pmf10=" " $pmf11=" " $pmf12=" " $pmf13=" " $pmf14=" " $pmf15=" " $pmf16=" " $pmf17=" " $pmf18=" " $pmf19=" " $pmf20=" " $pmf21=" " $pmf22=" " $pmf23=" " $pmf24=" " $pmf25=" " $pmf26=" " $pmf27=" " $pmf28=" " $pmf29=" " $pmf30=" " $pmf31=" " $qmf0=" " $qmf1=" " $qmf2=" " $qmf3=" " $qmf4=" " $qmf5=" " $qmf6=" " $qmf7=" " $qmf8=" " $qmf9=" " $qmf10=" " $qmf11=" " $qmf12=" " $qmf13=" " $qmf14=" " $qmf15=" " $qmf16=" " $qmf17=" " $qmf18=" " $qmf19=" " $qmf20=" " $qmf21=" " $qmf22=" " $qmf23=" " $qmf24=" " $qmf25=" " $qmf26=" " $qmf27=" " $qmf28=" " $qmf29=" " $qmf30=" " $qmf31=" " $prvlo1=0 $prvlo2=0 $prvhi1=0 $prvhi2=0$plo1=0$plo2=0$phi1=0$phi2=0$ goto dopvmnu$ endif$pmsks:$prvl==prvlo1+65536*prvlo2$prvh==prvhi1+65536*prvhi2$lll=f$fao("!XW",prvlo1)$l2ll=f$fao("!XW",prvlo2)$llh=f$fao("!XW",prvhi1)$l2lh=f$fao("!XW",prvhi2) $prvsym:=='l2ll''lll''l2lh''llh'$return *[EVERHART.JTDEMO]JTMODACE.OBJ;77+,F. / 4 - 0123 KPWO56(񩆚7P^X~`h GG0pP9aKz@KYG|/K # ~^>mMC ?"GGxM@Zk- $,4<>^ ~#0ͦV-Y0"עMZ#:xJY K8G: ####8GG(m2_"M: JG"0ޢ4޶8ޢ< ޶( ?#HMPm@Zk@#Gq(m[,@-)hעX|3B` ####8 GG(m6_"ͦ6 JG"04~~8<~ (~ ?#HMPm@Zk@#GXM: #8 (ͦ#M: K!`####8GG(m6_"< JG"0~4^~^8~<^ ~(^ ?#HMPm@Zk@#G(-HGG^~ (0ޤ8@H>P^X~`hp#k .W JG3p#~(^0^8~@HP޴X`h>p^x~ GGPGC MZ# # ͦ" m {# -(9# 0"(m##C/YK; (ͦ"V#@8####GG0m ]2_"@H"0ޢ4޶8ޢ< ޶( ?#Mm@Zk@#G ]0m[@G(0^8~@HPޤX`h>p^x~#k.X JXG4GOTS$MOVE4@OTS$MOVE4GSYS$QIOW4m#8SYS$QIOW4@SYS$QIOW4hGtSYS$QIOW4lm#8SYS$QIOW4p@tSYS$QIOW4 G,SYS$QIOW4$m#8SYS$QIOW4(@,SYS$QIOW4GSYS$QIOW4m#SYS$QIOW4@SYS$QIOW| |;;;L;P;;;=0 ;=p/ ="";;; SYS$QIOW""" ;;;OTS$MOVE=0(;=/ ;;D;;<; $*[EVERHART.JTDEMO]JTMODACE.OBJ_AXP6;7+,H. / 4 0- 0123KPWO56]z7^z89GHJBBJTMODACEV112-SEP-1996 20:58AMAC V2.1-13 $LINKAGEPCODEPDATA $ABS$ . BLANK . . ABS .SYS$QIOWOTS$MOVE(JREPLENT(J` FILACC =0 ;= ="";=@ SYS$QIOW""" OTS$MOVE=00 ;=  =>C~^^ ~(08޴@HP>X^`~h GpxG(ͦp:K{`KzG1/1K 6>C?" ~^V >CGG PM@ZkLBPX`h$,4<>^ ~CPT6XKw KGT(>CG<!80\#G^|"0ޢTG<4G4~G޶@M~ J8ޢ<~ ޶(~Hm@Zk(C]T#@4! GGG4G3C(>CG<!80\#|"^0ޢ<4~޶@M~ J8ޢ<~ ޶(~Hm@ZkC(4GO!OϢF`>Co#@M<G8G0o"G~4G0ޢG/4޶Hm J8ޢ< ޶(@ZkCHG^ ~(08ޤ@HP>X^`~hpxCkGTG.X J8GT>C~0^8^@~HPX޴`hp>x^~ B@ SAFETY013.AH $[EVERHART.JTDEMO]JTMODACE.OBJ_AXP6;7 4GGPC`@ (0c/zK6@o4G>C M<A8G0GA@H ]TG0ޢ4G4Gm޶8ޢ< ޶(@ZkC ]mD[@G08^@~HPXޤ`hp>x^~Ck/Y KyG4GOTS$MOVE4@OTS$MOVE4dGSYS$QIOW4m#SYS$QIOW4@SYS$QIOW4G$SYS$QIOW4m#SYS$QIOW4 @$SYS$QIOW4TGSYS$QIOW4m#SYS$QIOW4@SYS$QIOW4G SYS$QIOW4m#`SYS$QIOW4@ SYS$QIOW =H@<4= 0\=|=( GCEV= @L4=4='4= 4= 4= =  $*[EVERHART.JTDEMO]JTMODACE.OBJ_VAX5;7+,I. / 4 - 0123 KPWO567 89GHJ2JTMODACE017-NOV-1996 13:27 VAX MACRO V5.4-3MACRO JTMODACE JTMODACESYS$QIOW . ABS .P$ABS$PPPPPPDATA P<0QQQGCEVQ@L' QPCODEP REPLENT&}<?RЬ Q(ab,L@L?P3P3XX|~|~<2~<~ SYS$QIOWPIB1XX|~|~<6~<~ SYS$QIOW3X)X|~|~<6~<~ SYS$QIOW<PP .FILACC&мRЬS||3|3|3| 3|(3|03c<3 <TUU|~d|~D<2~[?4l[?8h",-"(B)07[?6l8#6"Q$if ffnm .eqs. "" .or. ffnm .eqs. " " then ask ffnm "File(s) to move (? for dir)"$if ffnm .eqs. "" then exit*$if f$locate("?",ffnm) .lt. f$length(ffnm)$then*$ inquire fdcmd "Directory of what files:"$ dircmd="dir " + fdcmd$ spawn dircmd $ goto modlop$endif#$if f$length(ffnm) .le. 2 then exit $fnm=ffnm$if f$search(fnm,4) .eqs. ""$ then$ emit "%HSM-F-No such file" $goto modlop$endif8$if f$locate("*",ffnm) .lt. f$length(ffnm) then wild = 18$if f$locate("%",ffnm) .lt. f$length(ffnm) then wild = 1 $wldfile=ffnm$wldlop:$if wild .eq. 0$then"$if wldctr .gt. 0 then goto modlop$fnm=f$search(ffnm,3)$wldctr=wldctr+1$endif$if wild .ne. 0$then$wldctr=wldctr+1$fnm=f$search(wldfile,3)!$if fnm .eqs. "" then goto modlop $flnm=fnm=$if allflg .eqs. "Yes" .and. fcnstr .nes. " " then goto aplwc$endif#$JTauthmaint:==$gcy$sys:JTauthmaint$flnm=f$search(fnm)$if flnm .eqs. "" $ then#$ emit "%HSM-F-No such file found"$ goto modlop$ endif$JTa_fusr="None"$JTa_ftty="None"$JTa_fimg="None"$JTa_mxpv="None"$JTa_cksm="None"$JTa_bkpu="None"$$JTa_itim="YYYYYYYYYYYYYYYYYYYYYYYY"$JTa_pswd="0000000000000000" $JTa_usrs=" " $JTa_ttys=" " $JTa_imgs=" " $JTa_cslk=" " $JTa_insp=" " $JTa_bpri=" " $JTa_idnt=" "$JTa_surw="R/W" $JTa_rprv=" " $set noon$ JTauthmaint 'flnm'\%SYMS$set on-$if JTA_BPRI .EQS. " " THEN JTA_BPRI = "None"-$if JTA_Idnt .eqs. " " then JTA_IDNT = "None"-$if JTA_RPRV .eqs. " " then JTa_rprv = "None"-$if JTa_cslk .eqs. " " then JTa_cslk = "None"$csftf=0 $cksf=" "3$if JTa_cksm .nes. "0000000000000000" then cksf="*" $pswf=" " $skyf=" " $sekey=" " $stident=" "$sident=JTa_idnt$if f$length(JTa_idnt) .ge. 16$then$aaa=0%$ttt="aaa=%x"+f$extract(0,8,JTa_idnt)$'ttt')$zidnt=f$identifier(aaa,"number_to_name")%$if zidnt .nes. "" then stident=zidnt$endif$prvsym=="0000000000000000" $ptitle="Max Privs To Open File" $filpwd=" "$smptr=1$domenu:?$zmenu/POINTER="-->"/SYMBOLS/initial='f$string(smptr)'1 Hierarchical Storage Facility - File Moving File 'flnm', ^ Set normal softlink to another file< ^ Set R/O softlink to another file, moving this there4 ^ Mark and move this file now to backing area+ ^ Quit, make no changes to this file. ^ Perform database maintenance commands- ^ Move and mark all selected files now$smptr = choice$write sys$output " "$write sys$output " " $goto xxxdoch$aplwc: $choice=4 $xxxdoch:"$if choice .eq. 4 then goto wldlop$if choice .eq. 6$ then$ allflg="Yes" $ choice=4$ endif$if choice .eq. 1$ then $! softlink%$ask cffk "Enter device:file to open":$if f$search(cffk) .nes. "" then JTa_cslk = f$search(cffk)$if f$search(cffk) .eqs. ""$then$on warning then goto fubard!$ backup 'flnm' 'cffk'/owner=orig $ set noon$ JTa_cslk = f$search(cffk)$endif1$ if f$file(flnm,"EOF") .EQ. f$file(cffk,"EOF") -1 .and. f$file(flnm,"FFB") .eq. f$file(cffk,"FFB")$ thenB$! Comment out the file truncate. Let user truncate his own files.!$! file/end=1/first_free=0 'flnm'$! set file/truncate 'flnm'$ endif$ cffk = f$search(cffk)$ JTauthmaint 'flnm'\H<'cffk'> $ goto wldlop$fubard: $ set noon $ goto domenu$ endif$if choice .eq. 2$ then$! r/o softlink%$ask cffk "Enter device:file to open":$if f$search(cffk) .nes. "" then JTa_cslk = f$search(cffk)$if f$search(cffk) .eqs. ""$then$on warning then goto fubardx!$ backup 'flnm' 'cffk'/owner=orig $ set noon$ JTa_cslk = f$search(cffk)$endif1$ if f$file(flnm,"EOF") .EQ. f$file(cffk,"EOF") -1 .and. f$file(flnm,"FFB") .eq. f$file(cffk,"FFB")$ then $ file/end=1/first_free=0 'flnm'$ set file/truncate 'flnm'$ endif$ cffk = f$search(cffk) $ JTauthmaint 'flnm'\#<'cffk'>M+ $ goto wldlop $fubardx: $ set noon $ goto domenu$ endif$if choice .eq. 5$ then$mntlop:%$zmenu/POINTER="-->"/SYMBOLS' Hierarchical Storage Manager MAINTENANCE COMMANDS ^ Delete this entry: ^ Remove all database entries for now-deleted files+ ^ Create listing of all files marked ^ Repair deleted ACEs/ ^ Change or delete a string in all lists ^ Done with this menu$if choice .eq. 1$then0$! Remove ACE markings as well as file markings.$JTauthmaint 'flnm'\Z-X+$JTauthmaint 'flnm'\%DELETE $goto mntlop$endif$if choice .eq. 2$then$ JTauthmaint 'flnm'\%PURGE $ goto mntlop$endif$if choice .eq. 3$ then$ JTauthmaint 'flnm'\%LIST $ goto mntlop$ endif$if choice .eq. 4$ then$ JTauthmaint 'flnm'\%REGEN $ goto mntlop$ endif$if choice .eq. 5$ then$ ask olds "String to remove"0$ ask news "String to replace it with (or none)"-$ JTauthmaint 'flnm'\%GBLEDIT `'olds'`'news'` $ goto mntlop$ endif"$if choice .eq. 6 then goto wldlop$ endif$if choice .eq. 3$ then5$! Here concoct JTauthmaint call to update everything $fcnstr="X+"$insme=1($if f$file_attributes(flnm,"ALQ") .eq. 0$ then0$! File has already been moved. Don't redo this.L$! However allow redo of markings since they may have been corrupted somehow)$fcnstr=fcnstr+"V"+"M+"$ else+$fcnstr=fcnstr+"V"+"M+H+"$ endif'$if insme .ne.0 then fcnstr=fcnstr+"I+""$fcnstr=fcnstr+"X+u*<*>k*<*>n*<*>"$$JTauthmaint 'flnm'\'fcnstr' $! $ goto wldlop$endif $if wild .ne. 0 then goto wldlop $goto modlop*[EVERHART.JTDEMO]JTNTAUTH.OBJ;5+,N.?/ 4?<- 0123KPWO=56,7U89GHJ@@NTUFMNT 1-MAY-1996 21:23Digital Fortran 77 T7.0-1x x$DATA$)$BSS$\$IODATA$i|$CODE$$LINK$FFIIDDFOWNKIUICJPIJUNKFSZCXAB_UIC(JXNTUFMNT SYS$GETJPIWLIB$GET_FOREIGN DFOR$OPEN DFOR$HANDLERLIB$WAIT(JIVLEN(JFGETFID DFOR$CLOSE DFOR$EXIT DFOR$REWRITE_FMT DFOR$READ_SEQ_FMT DFOR$WRITE_SEQ_FMT DFOR$READ_KEY_FMT LIB$SPAWN DFOR$SET_REENTRANCYSYS$OPEN GETFIDDID(JxIUFCK SYS$CONNECT(JhGTXAB0J( PRIV_USEROPEN(JhXABSET SYS$DISPLAY(JXXABGET OTS$MOVEMOTS$FILLOTS$MOVE OTS$INDEX, ,6 | |=d\6 $Curr. UIC=\ Enter new one if desired, hex>76P76H76$ Enter group, hex, 0 to end:764 RWDCEONIS = rd,wrt,del,ctl,exe,OwnChg,NoAcc,Inh,Sys76"$EnterPC@ SAFETY013.AN [EVERHART.JTDEMO]JTNTAUTH.OBJ;5_A;11?> def ACE flags or Q if done:760$ Enter user/grp ID or -1=all, -2=own, hex (z8):76$Want a command [Y/N][N]:76 $Enter cmd:764 RWDCEONIS = rd,wrt,del,ctl,exe,OwnChg,NoAcc,Inh,Sys76"$Enter def ACE flags or Q if done:760$ Enter user/grp ID or -1=all, -2=own, hex (z8):76$Want a command [Y/N][N]:76 $Enter cmd:7 =#4G~^^~޴> ^(~08@޵HPcGH[#"GP{@Zk0bP-_'Hb@Z#,&$S&8B 3 "$@"S" '&4s?$H$"L #(3{#0s"8"@S"DS("@b "H#Ӳ ! ,<34GLGPG"GG@Zk0B&xB"&8 <"@b"D}b8"@="R"GG@Zk0BGG`TG@ZkBG@Zk.JFB8G 8 G%vJ¥""0¤4GXBG@=B"& H}GG@ZkB4GG@ZkXB G`B"G@ZkB4GG@ZkhB4GPݶG4G`#8?%]4G}G] tGpb TGp@!x=8"]"}GI"b"]p"G}?%@ZkW4G@=GhBH=GP}G8=x"xݴ8 =G"=I"pbb"pp"]G?%}=…!]ݴ}$@Zk3lC8 B"*v@IbGAA@G8}b"8"GG@Zk0@"B"bGL!8]I"b"8"G@Zk0_% J!`!X!_xB?%@G8L"H})!P]"XGGb@b"`]8"H"G@ZkGDBl4G&Db8"8@ZkG?@B HG@=L"b" GG@b"@" G@Zk 4G_BX"b"GGb"GG@Zk0@"B"bG @Gb"@"G@Zk PMAC 0@A "-"G!1?J G0 BR J3v J@BtS@JGtF-?BbGb"G@ZkBb""GGb"GG@Zk0BL"b"!H@ݵGG@b"@"G@ZkB4G?"GB"@Zk0@ B4G?"GxB"@Zk0@ C4GB4G?"GB"@Zk0@ B4G?"GB"@Zk0@<D4GB4G?"GB"@Zk0@B 4G?"G@B"@Zk0@ CG 4GB4G?"GB"@Zk0@ B4G?"GHB"@Zk0@P A DG P AB4G?"GB"@Zk0@ B4G?"G8B"@Zk0@ A DG AB4G?"G(B"@Zk0@ B4G?"G(B"@Zk0@!A DG !AB4G?"G B"@Zk0@ B4G?"G0B"@Zk0@"A DG "AB4G?"GB"@Zk0@ B4G?"G`B"@Zk0@$A DG $AB4G?"GB"@Zk0@ B4G?"GhB"@Zk0@(A DG (AB4G?"GB"@Zk0@ B4G?"GPB"@Zk0@0A DG 0AB4G?"GB"@Zk0@ B4G?"GXB"@Zk0@ # DG)!Bb""GGb"GG@Zk0B@"b" @=GGb"@"G@Zk00@AQ B JMA * 1 0BMR@J4v@JaBuS`JFML4A E͢xIBb0"7J" FGGb"GG@ZkBL"H"bG@ݵG@b"@"G@ZkX"B"bGE8EjGb"GG@Zk0"!BL"b"X)!H=@ݵGG@b"@"G@Zk GG.AG.15A1AJ4UABq./1A4A7uAqJ7AdB`./QA:A:AJ.AB7//qAG7K$C ,/A,AH@G} @*p @p B1FS_AW@JUMA@6q@B VB4G "B)I Bi @A ")!5Uu B0B) B 0@A")!5?0`B!"H3v`J3D -`_#_#A G-65`CAI7U`CA6.,1@CA*u`C6J A$B 7-,Q@C;`CG7I$A .,q@C:@CJBGGBH"@L"bGG@b"@"G@Zk¥ 0"XBD"GX)!G@ZkBGGGG@Zk /A G -&5A&A6UA I6AA&,*1A9uA9A&H5A$@ /*QA5A/AKGC,*qAH@ 5.*A.A5J$B GGc%8 GB3v`Jb!aB`"@}GGb"@"GG@Zk0¤_&B@"b" @GR"b"@"G@ZkƠðG`4GhB_&X""ϵtGH=R"@b"P@"X=G`IpbʒIh}$vI@ZkBb"tGGb"GG@ZkRI@DBRI4G?"G B"@Zk%H0.vIBj@I&HDDDXGX!GG?"@ZkBG@ZkXB"GG@Zk08$ = 8 x!L !xBGH_&@}"PGXݶR"`@b"b@"hP"G@ZkGDBl8"Db4G8@ZkG@XBGGG@ZkB#G ϡ"OGHGb@b" ,@"$̱G(LG,048@@ZkGB$"b"GGb"GG@ZkBd"b"GGb"GG@Zk0¥?!B"bG!@ݵ8=G@b"8"GG@ZkB4G?"GB"@Zk0@4G B4G?"GxB"@Zk0@ CG4GB4G?"GB"@Zk0@ B4G?"GB"@Zk0@<D4GB`4G?"GB"@Zk0@B 4G?"G@B"@Zk0@ CG4GB4G?"GB"@Zk0@ B4G?"GHB"@Zk0@ P@ DGP@B4G?"GB"@Zk0@ B4G?"G8B"@Zk0@@ DG@B4G?"G(B"@Zk0@ B4G?"G(B"@Zk0@ @ DG@B4G?"G B"@Zk0@ B4G?"G0B"@Zk0@@ DG@B4G?"GB"@Zk0@ B4G?"G`B"@Zk0@@ DG@B4G?"GB"@Zk0@ B4G?"GhB"@Zk0@@ DG@B4G?"GB"@Zk0@ B4G?"GPB"@Zk0@@ DG@B4G?"GB"@Zk0@ B4G?"GXB"@Zk0@g! DG Bb""GGb"GG@Zk0B"b"O!8]GGb"8"G@Zko4l ` R`I<*v`I@l@`SHtG@E4 " E4,"BbG!?HG @4,b"GG@ZkB"@ݵGbG8=@b"8"GG@ZkΥ"B"bGE8EhGb"GG@ZkB @"bG8G@b"8"GG@Zk GG AGi,%5AAiH!UAd@`,'1`AA2uAHA@!.'Q`A5AA!J/A$B .'q`AGJB.'`A+`AJBG}C* pCp@CZGI@W`KC@`%q`C eC4G8c @A( A(@ hc !#c# A0A袯 A0@c ! 0 A8K)v I  G8,` _?# AG .15 CA J U CBQ.:1@A5u CQJADB@.:Q@9 CGJB u-:q@'@uIdA`?GGB@"bG8ݶG@b"8"GG@ZkB%b!"GGb"GG@ZkB"bGGb"GG@ZkBb0"4G@ZkcG]4G]}ݤ= ](}08@ݥHP`#kG#? ~4G^^~ (0G[G{G$ @ZkG.#.tG BJQ #J(bF$D$"G2v@JDD"@ZkG]G]} (0@#kG#4G~^^ ~(0G[G{GG@ZkBGb4G@Zk " G!G$#.$"'C.b0JR PJd!s"2FC="S"@ Gb="`!S"d!s"@ݢ "4G`!d!G]] }(0@#k0?D#D k0!&H&H3kG#$0 ~4G^^~ (GGGJ.J"$P.G'p.JAJ4FS aJUJvJSFFJ>Ct@8[G@{@Zk?$(B0b! DG G4G@Zk$.$# '#.Gb#JQ !JFC@X¦_W6GGHBGPb4G@ZkG]]} (0#kG 0. 0 P.{!JR AJ2F3kG14G3 7q B 7B45 BG#"BGy/85BB`ByKdC%`8/ 1B;UB8KB$C / QB9uBBK4BCy/ qB5ByKdC` wB qB B0`B`/45B`KGdC` qB51BGkG01?JX1"0k<XGtDFOR$SET_REENTRANCY<lb#XDFOR$SET_REENTRANCY<p@tDFOR$SET_REENTRANCY4GT SYS$GETJPIW4b#X SYS$GETJPIW4P@T SYS$GETJPIW4`GLIB$GET_FOREIGN4b#XLIB$GET_FOREIGN4@LIB$GET_FOREIGN4G OTS$MOVEM 4@ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4G4OTS$MOVE40@4OTS$MOVE4 4GDOTS$FILL4 @@DOTS$FILL4DG\OTS$MOVE4X@\OTS$MOVE4 \GlOTS$FILL4 h@lOTS$FILL4lG DFOR$OPEN4b#X DFOR$OPEN4@ DFOR$OPEN4 G DFOR$OPEN4Hb#X DFOR$OPEN4@ DFOR$OPEN< GDFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT< G DFOR$READ_SEQ_FMT< b#XDFOR$READ_SEQ_FMT< @ DFOR$READ_SEQ_FMT<0GDFOR$READ_KEY_FMT<hb#XDFOR$READ_KEY_FMT<@DFOR$READ_KEY_FMT4GLIB$WAIT4b#XLIB$WAIT4@LIB$WAIT< G DFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT< @ DFOR$WRITE_SEQ_FMT< G@DFOR$WRITE_SEQ_FMT< b#XDFOR$WRITE_SEQ_FMT< <@@DFOR$WRITE_SEQ_FMT< HGtDFOR$READ_SEQ_FMT< Pb#XDFOR$READ_SEQ_FMT< p@tDFOR$READ_SEQ_FMT< GDFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT< G DFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT< @ DFOR$WRITE_SEQ_FMT< GDDFOR$READ_SEQ_FMT< b#XDFOR$READ_SEQ_FMT< @@DDFOR$READ_SEQ_FMT4DG\ OTS$INDEX4X@\ OTS$INDEX4dG| OTS$INDEX4x@| OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4 @ OTS$INDEX4$G< OTS$INDEX48@< OTS$INDEX4DG\ OTS$INDEX4X@\ OTS$INDEX4tG OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G, OTS$INDEX4(@, OTS$INDEX44GL OTS$INDEX 4H@L OTS$INDEX4dG| OTS$INDEX4x@| OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX4$ G< OTS$INDEX48 @< OTS$INDEX4T Gl OTS$INDEX4h @l OTS$INDEX4t G OTS$INDEX4 @ OTS$INDEX<  G DFOR$WRITE_SEQ_FMT< b#XDFOR$WRITE_SEQ_FMT<  @ DFOR$WRITE_SEQ_FMT<  G DFOR$READ_SEQ_FMT<  b#XDFOR$READ_SEQ_FMT<  @ DFOR$READ_SEQ_FMT< T G DFOR$WRITE_SEQ_FMT<X b#XDFOR$WRITE_SEQ_FMT<  @ DFOR$WRITE_SEQ_FMT<  G DFOR$READ_SEQ_FMT<  b#XDFOR$READ_SEQ_FMT<  @ DFOR$READ_SEQ_FMT<  G DFOR$WRITE_SEQ_FMT< b#XDFOR$WRITE_SEQ_FMT<  @ DFOR$WRITE_SEQ_FMT<  G, DFOR$READ_SEQ_FMT<  b#XDFOR$READ_SEQ_FMT< ( @, DFOR$READ_SEQ_FMT< GD DFOR$REWRITE_FMT<( b#XDFOR$REWRITE_FMT<@ @D DFOR$REWRITE_FMT4P Gh OTS$MOVE4d @h OTS$MOVE4 h G OTS$FILL4 | @ OTS$FILL< 4GpDFOR$WRITE_SEQ_FMT<<b#XDFOR$WRITE_SEQ_FMT< l@pDFOR$WRITE_SEQ_FMT< xGDFOR$READ_SEQ_FMT< b#XDFOR$READ_SEQ_FMT< @DFOR$READ_SEQ_FMT4G DFOR$OPEN4b#X DFOR$OPEN4@ DFOR$OPEN4G8 DFOR$CLOSE4b#X DFOR$CLOSE44@8 DFOR$CLOSE4LGh OTS$INDEX4d@h OTS$INDEX4tG OTS$MOVEM4@ OTS$MOVEM4 D@ SAFETY013.AN [EVERHART.JTDEMO]JTNTAUTH.OBJ;5_A;11? 4#GOTS$FILL4 @OTS$FILL4GOTS$MOVE4@OTS$MOVE<G4DFOR$READ_KEY_FMT<b#XDFOR$READ_KEY_FMT<0@4DFOR$READ_KEY_FMT4<G`LIB$WAIT4Pb#XLIB$WAIT4\@`LIB$WAIT4lGOTS$MOVE4@OTS$MOVE< GDFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT < GDFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT<  @DFOR$WRITE_SEQ_FMT< G8DFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT< 4@8DFOR$WRITE_SEQ_FMT< @GtDFOR$READ_SEQ_FMT< Hb#XDFOR$READ_SEQ_FMT< p@tDFOR$READ_SEQ_FMT4tG OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4 G( OTS$INDEX4$@( OTS$INDEX4,GH OTS$INDEX4D@H OTS$INDEX4\Gt OTS$INDEX4p@t OTS$INDEX4|G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G4 OTS$INDEX40@4 OTS$INDEX4LGd OTS$INDEX4`@d OTS$INDEX4lG OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4 G$ OTS$INDEX4 @$ OTS$INDEX4<GT OTS$INDEX4P@T OTS$INDEX4\Gt OTS$INDEX4p@t OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX< GDFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT< G8DFOR$READ_SEQ_FMT< b#XDFOR$READ_SEQ_FMT< 4@8DFOR$READ_SEQ_FMT< |GDFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT< GDFOR$READ_SEQ_FMT< b#XDFOR$READ_SEQ_FMT< @DFOR$READ_SEQ_FMT< GDFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT<  @DFOR$WRITE_SEQ_FMT< GDDFOR$READ_SEQ_FMT<  b#XDFOR$READ_SEQ_FMT< @@DDFOR$READ_SEQ_FMT<,G\DFOR$REWRITE_FMT<8b#XDFOR$REWRITE_FMTX X<X@\DFOR$REWRITE_FMT4\G DFOR$CLOSE4db#X DFOR$CLOSE4@ DFOR$CLOSE4G DFOR$CLOSE4b#X DFOR$CLOSE4@ DFOR$CLOSE4G DFOR$EXIT4b#X DFOR$EXIT4@ DFOR$EXIT4!DGdSYS$OPEN4"Pb#SYS$OPEN4!`@dSYS$OPEN4%xG GETFIDDID4&b# GETFIDDID4%@ GETFIDDID4!GSYS$OPEN4"b#xSYS$OPEN4!@SYS$OPEN4#G, SYS$CONNECT4$ b#x SYS$CONNECT4#(@, SYS$CONNECT4!GSYS$OPEN4"b#SYS$OPEN4!@SYS$OPEN4G SYS$DISPLAY4 b# SYS$DISPLAY4@ SYS$DISPLAY4# G4 SYS$CONNECT4$(b# SYS$CONNECT4#0@4 SYS$CONNECT\ \ =0;=8-8  9  Dev:file or (n,s,v)>@= GCY$CM:NTREGIST.REG_USR` DFOR$EXIT= :=c=e=d=r=w=i=s=o=n=A DFOR$READ_KEY_FMT8 OTS$MOVEM=Q=R= DFOR$CLOSE8OTS$FILL=  =0 DFOR$READ_SEQ_FMT DFOR$WRITE_SEQ_FMT8 OTS$INDEX=0;=` 7 DFOR$HANDLER=@;;=8;;8OTS$MOVE; DFOR$OPEN=x=q=X=@48       2 3    LIB$WAIT=N8=O@=IP DFOR$REWRITE_FMT=Sh=Dp=Wx=E=C= SYS$GETJPIW DFOR$SET_REENTRANCY;= GCY$CM:NTREGIST.REG_FIL LIB$GET_FOREIGN=0h;=0X; ;=0(;=0 0 SYS$DISPLAY!SYS$OPEN# SYS$CONNECT;=0;=0;=@  ;=0;=@< % GETFIDDIDH H=80/ NTUFMNTDigital Fortran 77 T7.0-1 = 4X4= NTUFMNT4=c[>                   ( ( ( + + + + + + / / / /  / 1 /7 / # : 7 7 C C C C I G G I  Q S V U X Z j k n n n oȸ ~    eN SP S S S S          \N SD S S S S SN UN SL S S$ S S                                        ! # $ ( ( ( .M SP S S S S 3 5 5 5 6 5 5 5 5 5M SD S1 S S S @X$ $= l4. .=  4=  = . .=  4=  = . .=  4=  = _. .=  4=  = . .=  4=  = : := 4=  = 44= FGETFID4=kcb K K K  K K   ,O$ $= X4: := 4=  = 4x4= IUFCK4=~     " " " " " " " " $ $= 4: := 4=  = 4h4= GTXAB4=3+* : : : : :DN N= 4 4= @ = (44= PRIV_USEROPEN(4=}| : : : : tR tR tR tR R ~R R$$ $= h4: := 44= 0t t= X44= XABGETX4= S: := x4= ( = 44= IVLEN4=ogf S S S S< S S S S S S S $ $= 4: := `4= w w= h44= XABSETh4= }S: := x4=  =  X!*[EVERHART.JTDEMO]JTNTAUTH.OBJ_A;4+,O.6/ 464- 0123KPWO556`8{7@`z{89GHJ@@NTUFMNT 6-NOV-1996 21:52  Digital Fortran 77 T7.1-61x x$DATA$H*$BSS$\$IODATA$iT$CODE$$LINK$FFIIDDFOWNKIUICJPIJUNKFSZCXAB_UIC(JXNTUFMNT SYS$GETJPIWLIB$GET_FOREIGN DFOR$OPEN DFOR$HANDLERLIB$WAIT(JPIVLEN(JFGETFID DFOR$CLOSE DFOR$EXIT DFOR$REWRITE_FMT DFOR$READ_SEQ_FMT DFOR$WRITE_SEQ_FMT DFOR$READ_KEY_FMT LIB$SPAWN DFOR$SET_REENTRANCYSYS$OPEN GETFIDDID(JxIUFCK SYS$CONNECT(JhGTXAB0J PRIV_USEROPEN(J@XABSET SYS$DISPLAY(J XABGET OTS$MOVEMOTS$FILLOTS$MOVE OTS$INDEX, ,6 | |=d\6 $Curr. UIC=\ Enter new one if desired, hex>76P76H76$ Enter group, hex, 0 to end:764 RWDCEONIS = rd,wrt,del,ctl,exe,OwnChg,NoAcc,Inh,Sys76"$Enter def ACE flags or Q if done:760$ Enter user/grp ID or -1=all, -2=own, hex (z8):76$Want a command [Y/N][N]:76 $Enter cmd:764 RWDCEONIS = rd,wrt,del,ctl,exe,OwnChg,NoAcc,Inh,Sys76"$Enter def ACE flags or Q if done:760$ Enter user/grp ID or -1=all, -2=own, hex (z8):76$Want a command [Y/N][N]:76 $Enter cmd:7 =#"^4GH[~^~޴> ^(~08@޵HE@ SAFETY013.AO ![EVERHART.JTDEMO]JTNTAUTH.OBJ_A;4F;16 s>cG#GP{@Zk0bP-_',&& @Z# "$@""3'Hb&$S?$8B$"L # {#S""S"(" "H# ! G(3G0sG84G@"DSGӲ ,4s<3HLP@b@Zk0B&&b""xBx "C88"<@="@R"D}GGb@Zk0BG`GTG@ZkBG@Zk.J%vJBF5C 5 C¥""0"XB4GGx! @=H}GB"G@ZkB4GG@Zk0XB`B"x"G@ZkB4GG@Zk4G$]hBG4G4GG`?#8" tGTG@"Pݶp"}G=Gp"}b"8Gx=pb@ZkU0¦8]#]4GhBGGG4G"x"G@"@=H=GP}G}b""p"}G8=pxݶ= pb@Zk.#u$!v H !@ Bb8"8}GGb"8"G@Zk08"B @"b"8=GGb"8"G@Zk0"!#_%08" J!`!X!xBG@8}L"H}"P}GXG`]@b"޶8"H"Gb@ZkGlDBb4G&@88"@Zká?@ BGH@=L" "GG @b"@"Gb@Zk 4GBbX""GGb"GG@Zk0bBb@" "@GGb"@"G@Zk PLAC 0@A ","G!1?J4 BR J3v>J@BtS@J_&tF,?BbGR"b"G@ZkB_&b""GR"b"GG@Zk0B_&bx!L"H"@}GR"@b"@"G@ZkB4G?"GB"@Zk0@G B4G?"GxB"@Zk0@ C4GB4G?"GB"@Zk0@B 4G?"GB"@Zk0@<D_4GB4G?"GB"@Zk0@B 4G?"G@B"@Zk0@ C_4GB4G?"GB"@Zk0@ BPA4G?"GHB"@Zk0@ D_PAB4G?"GB"@Zk0@ BA4G?"G8B"@Zk0@ D_AB4G?"G(B"@Zk0@ BA4G?"G(B"@Zk0@ D_AB4G?"G B"@Zk0@ BA4G?"G0B"@Zk0@ D_AB4G?"GB"@Zk0@ BA4G?"G`B"@Zk0@ D_AB4G?"GB"@Zk0@ BA4G?"GhB"@Zk0@ D_AB4G?"GB"@Zk0@ BA4G?"GPB"@Zk0@ D_AB4G?"GB"@Zk0@ B#4G?"GXB"@Zk0@ D_!B_&b""GR"b"GG@Zk0B_&b @"@="GR"b"@"G@Zk00@AQ B JLA ʱ 0B 1LFJ4GJaBu`JFLG4@ E̢'vHB_&b0""GR"b"GG6JD@ZkB_&HbL"@}"GR"@b"@"G@ZkB_&b EX"5Ap"GR"b"GG@Zk0¥B!X!_&HݵL"b"@}GR"@b"@"G@ZkG G_ AG-,15`AA4U`A-HA$@ q.01@7u`A:`AqJAdB`.0Q@A+`AJ GB7/0q@7K$C ,0@'@H@G GS_A}A* pAULAp B4G1F "W@J@6q@B B@.N B B5U @A"! B.0B B 0@A5"!?-I0`B3v`J E `_#_ A G/65@A7U@KAC6.+1@C.u@ @6JA$B W-+Q@CGWIDA@.+q@C:@CJBGB_&H@L""GR"@b"b@"G@Zk¥ 0BXBXJ!D"GG@ZkBGG@Zk GGGA G- 5@7U@I@AA.)1AWA%u@JEAB7/)QA0@'@7KPA$C .)qAGJBP.)A-APJDB@G% G4vJ!B8Bb"@}GGb"@"GG@Zk0Bb@" "@GGb"@"G@Zk`"X 4G4GtGhBpbH]b"@}@"PGX"`]Gh@ZkBb"tGGb"GG@Zk GG=B,IeSH4G-vI?"G B"@Zk0EDGXX!GGB?"@ZkBG@ZkXB"GG@Zk0 = | 8b$8  Lk!!xBGH"@GPGXݶ@b"`@"hP"~Gb@Zk GlDB8"4GFAb8@Zkê_A@XBGGG@Zk  BGH"bG G$@b"( @",G0G8@ݶ@ZkBb$""GGb"GG@ZkBbd""GGb"GG@Zk0B bx!"@G8G@b"8"GG@ZkB4G?"GB"@Zk0@ 4G B4G?"GxB"@Zk0@ C4GB4G?"GB"@Zk0@B 4G?"GB"@Zk0@<D_4GB4G?"GB"@Zk0@B 4G?"G@B"@Zk0@ C_4GB4G?"GB"@Zk0@ B P@4G?"GHB"@Zk0@ D_P@B4G?"GB"@Zk0@ B@4G?"G8B"@Zk0@ D_@B4G?"G(B"@Zk0@ B@4G?"G(B"@Zk0@ D_@B4G?"G B"@Zk0@ B@4G?"G0B"@Zk0@ D_@B4G?"GB"@Zk0@ B@4G?"G`B"@Zk0@ D_@B4G?"GB"@Zk0@ B@4G?"GhB"@Zk0@ D_@B4G?"GB"@Zk0@ B @4G?"GPB"@Zk0@ D_@B4G?"GB"@Zk0@ Bg 4G?"GXB"@Zk0@ D_ Bb""GGb"GG@Zk0Bb "8ݴ"GGb"8"G@Zk0̤d ` < tG@lH H !Aa ID0 " E4 BbGGb"GG G0JB4 "@ZkBb@"8GG@b"8"GG@ZkBb" E"5AhGGb"GG@ZkBb@"8ݴGG@b"8"GG@ZkGAGg,)5@0U@gH  Ad@`),&1@A3u@)HA$@ P.&Q@6@%@PJADB@.&q@GJB/&@$@KCGM_A} C*@p C@LAp`C4G{G8 WH)q@ 'A  @(H `@ i@ @ @A ! g@0`@ g@ 0@A !9"K 0A-vI -G8`_#_#AGA.55`CA)U`CAJ ADB@.41@C$u`C;`CJAB.4Q@CGJB/4q@C:@CKCGB@"bG8G@b"8"GG@Zk$B b"GGb"GG@ZkBb"GGb"GG@ZkBb0"4G@ZkcG]]}ݤ= ](}08@ݥH4GP#kGG#? ^4G^ ~(0G~GG[{$@ZkC.GtGc. B(bCJS cJrF$G D"4vJ@ZkG]] }(0@#k#4G^[ ^(G~G>{@ZkBb4G@Zk ? G0 =$Q.'q.$1"QJS qJrFbC="!S"!s"@ b="!S"!s"@ݢ "!!4GG] ](0#kG0?D#@ k_0!&H&H3k#$0 ^4G^ ~(G~G>GJ"$P.'p.J.JUJ4FAJS aJvJrFFCJ>u@8[@{G@Zk?$! G@ (B0bG4G@Zk$.'#.$# Gb#JQ !J0FC@X¦_W6GHBPb4G@ZkG]] }(0#k 0.P. 0 {!JR AJQF3kGGG14G3 6q B45 B BG#"BGx/75BB`BxKdC%`7/ 1B;UB7KB$C / QB9uB4BKBCy/ qB5ByKdC` vB qB BGy/0`B51B45ByKdC` qBGkGGG01?JX1"0k<GpDFOR$SET_REENTRANCY<hb#XDFOR$SET_REENTRANCY<l@pDFOR$SET_REENTRANCY4GP SYS$GETJPIW4Hb#X SYS$GETJPIW4L@P SYS$GETJPIW4hGLIB$GET_FOREIGN4b#XLIB$GET_FOREIGN4@LIB$GET_FOREIGN4G OTS$MOVEM4@ OTS$MOVEM 4 GOTS$FILL4 @OTS$FILL4 G4OTS$MOVE40@4OTS$MOVE4 4GDOTS$FILL4 @@DOTS$FILL4HG\OTS$MOVE4X@\OTS$MOVE4 \GlOTS$FILL4 h@lOTS$FILL4xG DFOR$OPEN4b#X DFOR$OPEN4@ DFOR$OPEN4G DFOR$OPEN4b#X DFOR$OPEN4@ DFOR$OPEN< GDFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT< GDFOR$READ_SEQ_FMT< b#XDFOR$READ_SEQ_FMT< @DFOR$READ_SEQ_FMT<DGDFOR$READ_KEY_FMT<b#XDFOR$READ_KEY_FMT<@DFOR$READ_KEY_FMT4GLIB$WAIT4b#XLIB$WAIT4@LIB$WAIT< GDFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT<  @DFOR$WRITE_SEQ_FMT< G@DFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT< <@@DFOR$WRITE_SEQ_FMT< DGtDFOR$READ_SEQ_FMT< Hb#XDFOR$READ_SEQ_FMT< p@tDFOR$READ_SEQ_FMT< GDFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT< GDFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT<  @DFOR$WRITE_SEQ_FMT< GLDFOR$READ_SEQ_FMT< b#XDFOR$READ_SEQ_FMT< H@LDFOR$READ_SEQ_FMT4LGd OTS$INDEX4`@d OTS$INDEX4pG OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G  OTS$INDEX4@  OTS$INDEX44GL OTS$INDEX4H@L OTS$INDEX4TGp OTS$INDEX4l@p OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4 @ OTS$INDEX4$G< OTS$INDEX48@< OTS$INDEX4DG` OTS$INDEX4\@` OTS$INDEX 4tG OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4 G, OTS$INDEX4( @, OTS$INDEX44 GP OTS$INDEX4L @P OTS$INDEX4d G| OTS$INDEX4x @| OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX<  G DFOR$WRITE_SEQ_FMT< b#XDFOR$WRITE_SEQ_FMT<  @ DFOR$WRITE_SEQ_FMT<  G DFOR$READ_SEQ_FMT<  b#XDFOR$READ_SEQ_FMT<  @ DFOR$READ_SEQ_FMT< l G DFOR$WRITE_SEQ_FMT<t b#XDFOR$WRITE_SEQ_FMT<  @ DFOR$WRITE_SEQ_FMT<  G DFOR$READ_SEQ_FMT<  b#XDFOR$READ_SEQ_FMT<  @ DFOR$READ_SEQ_FMT<  G DFOR$WRITE_SEQ_FMT< b#XDFOR$WRITE_SEQ_FMT<  @ DFOR$WRITE_SEQ_FMT<  GT DFOR$READ_SEQ_FMT< 0 b#XDFOR$READ_SEQ_FMT< P @T DFOR$READ_SEQ_FMT<D Gx DFOR$REWRITE_FMT<h b#XDFOR$REWRITE_FMT<t @x DFOR$REWRITE_FMT4 G OTS$MOVE4 @ OTS$MOVE4  G OTS$FILL4  @ OTS$FILL< tGDFOR$WRITE_SEQ_FMT<xb#XDFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT< GDFOR$READ_SEQ_FMT< b#XDFOR$READ_SEQ_FMT< @DFOR$READ_SEQ_FMT4G0 DFOR$OPEN4b#X DFOR$OPEN4,@0 DFOR$OPEN40GT DFOR$CLOSE44b#X DFOR$CLOSE4P@T DFOR$CLOSE4`G OTS$INDEX4@ OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4GOTS$MOVE4@OTS$MOVE<G8DFOR$READ_KEY_FMT<0b#XDFOR$READ_KEY_FMT<4@8DFOR$READ_KEY_FMT4DGdLIB$WAIT4Xb#XLIB$WAIT4`@dLIB$WAIT4pF@ SAFETY013.AO ![EVERHART.JTDEMO]JTNTAUTH.OBJ_A;4F;16"$GOTS$MOVE4@OTS$MOVE< GDFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT< GDFOR$WRITE_SEQ_FMT <b#XDFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT< G0DFOR$WRITE_SEQ_FMT< b#XDFOR$WRITE_SEQ_FMT< ,@0DFOR$WRITE_SEQ_FMT< 4GlDFOR$READ_SEQ_FMT< <b#XDFOR$READ_SEQ_FMT< h@lDFOR$READ_SEQ_FMT4lG OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G  OTS$INDEX4@  OTS$INDEX4$G@ OTS$INDEX4<@@ OTS$INDEX4TGl OTS$INDEX4h@l OTS$INDEX4tG OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G  OTS$INDEX4@  OTS$INDEX4G0 OTS$INDEX4,@0 OTS$INDEX4DG\ OTS$INDEX4X@\ OTS$INDEX4dG OTS$INDEX4|@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G  OTS$INDEX4@  OTS$INDEX44GL OTS$INDEX4H@L OTS$INDEX4TGp OTS$INDEX4l@p OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX< GDFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT< G0DFOR$READ_SEQ_FMT< b#XDFOR$READ_SEQ_FMT< ,@0DFOR$READ_SEQ_FMT< pGDFOR$WRITE_SEQ_FMT<tb#XDFOR$WRITE_SEQ_FMT< @DFOR$WRITE_SEQ_FMT< GDFOR$READ_SEQ_FMT< b#XDFOR$READ_SEQ_FMT< @DFOR$READ_SEQ_FMT< GDFOR$WRITE_SEQ_FMT<b#XDFOR$WRITE_SEQ_FMT<  @DFOR$WRITE_SEQ_FMT< G@DFOR$READ_SEQ_FMT< b#XDFOR$READ_SEQ_FMT< <@@DFOR$READ_SEQ_FMT<$GTDFOR$REWRITE_FMT<0b#XDFOR$REWRITE_FMT<P@TDFOR$REWRITE_FMT4XG DFOR$CLOSE 4`b#X DFOR$CLOSE4|@ DFOR$CLOSE4G DFOR$CLOSE4b#X DFOR$CLOSE4@ DFOR$CLOSE4G DFOR$EXIT4b#X DFOR$EXIT4@ DFOR$EXIT4!DGTSYS$OPEN4"Hb#SYS$OPEN4!P@TSYS$OPEN4%lG GETFIDDID4&pb# GETFIDDID4%@ GETFIDDID4!GSYS$OPEN4"b#xSYS$OPEN4!@SYS$OPEN4#G  SYS$CONNECT4$b#x SYS$CONNECT4#@  SYS$CONNECT4!lG|SYS$OPEN4"pb#SYS$OPEN4!x@|SYS$OPEN4G SYS$DISPLAY4 b# SYS$DISPLAY4@ SYS$DISPLAY4#G SYS$CONNECT4$b# SYS$CONNECT4#@ SYS$CONNECT\ \ =0P;=8-8  9  Dev:file or (n,s,v)>@= GCY$CM:NTREGIST.REG_USR` DFOR$EXIT= :=c=e=d=r=w=i=s=o=n=A DFOR$READ_KEY_FMT8 OTS$MOVEM=Q=R= DFOR$CLOSE8OTS$FILL=  =0 DFOR$READ_SEQ_FMT DFOR$WRITE_SEQ_FMT8 OTS$INDEX=0;=P\ 7 DFOR$HANDLER=@;;=8;;8OTS$MOVE; DFOR$OPEN=x=q=X=@48       2 3    LIB$WAIT=N8=O@=IP DFOR$REWRITE_FMT=Sh=Dp=Wx=E=C= SYS$GETJPIW DFOR$SET_REENTRANCY;= GCY$CM:NTREGIST.REG_FIL LIB$GET_FOREIGN=0@;=0 ; ;=0;=0 0 SYS$DISPLAY!SYS$OPEN# SYS$CONNECT;=0;=0;=0  ;=0;=@$ % GETFIDDID X%*[EVERHART.JTDEMO]JTNTAUTH.OBJ_VAX62;1+,P.u/ 4ur8- 0123KPWOs56皇789GHJ@@NTUFMNT 11-JUL-1996 15:10Digital Fortran 77 T7.0-1 $DATA$5$BSS$\$IODATA$i%$CODE$8$LINK$FFIIDDFOWNKIUICJPIJUNKFSZCXAB_UIC(JNTUFMNT SYS$GETJPIWLIB$GET_FOREIGN DFOR$OPEN DFOR$HANDLERLIB$WAIT(J$IVLEN(J| FGETFID DFOR$CLOSE DFOR$EXIT DFOR$REWRITE_FMT DFOR$READ_SEQ_FMT DFOR$WRITE_SEQ_FMT DFOR$READ_KEY_FMT LIB$SPAWN DFOR$SET_REENTRANCYSYS$OPEN GETFIDDID(J@`!IUFCK SYS$CONNECT(J"GTXAB0J# PRIV_USEROPEN(J %XABSET SYS$DISPLAY(Jx$XABGET OTS$MOVEMOTS$FILLOTS$MOVE OTS$INDEX OTS$DIV_I, ,6 | |=d\6 $Curr. UIC=\ Enter new one if desired, hex>76P76H76$ Enter group, hex, 0 to end:764 RWDCEONIS = rd,wrt,del,ctl,exe,OwnChg,NoAcc,Inh,Sys76"$Enter def ACE flags or Q if done:760$ Enter user/grp ID or -1=all, -2=own, hex (z8):76$Want a command [Y/N][N]:76 $Enter cmd:764 RWDCEONIS = rd,wrt,del,ctl,exe,OwnChg,NoAcc,Inh,Sys76"$Enter def ACE flags or Q if done:760$ Enter user/grp ID or -1=all, -2=own, hex (z8):76$Want a command [Y/N][N]:76 $Enter cmd:7 =#~^^ ~(08cG#G"4GBb@ZkG0"vJ`HF, 0"QAJ`SH@FQ 0b "0"0KvJG"0"YXKvJVGY¦$"0b۲"$! 00G0BvHq JD 0bJ`SHF( 0H"0 G0B ڦJy KF ڶ-"0b ;8HvJ6D ;"L! 0(0"1"0B,2G00vHs`JD0 00J`SHF0P 040"@9#0B8:G0b8;&HvJ6D8;? 0808Ja H!F800"0! 0B@20b8s"0Dt0H0L0P4GGG0b0 "GGBb@Zk0"H0Ha`""_&R"x]0#"C|&"ݲC=x"="0BDR"GGHBPb@Zk0"L0Dp0#"0B#R"TGB@ZkGB@Zk0¦#.JB80#GC8G20"#9?G C8*G, 0# HH@ 0"#!!&H&H @!  0"xB"G`B@Zk4GGB@Zk0"0B"G`B@Zk4GGB@ZkG0Pײ4G`Gh4Gp4GX=8b"0P0BZ#4G]tGG}TG`_"]4G]@"tG=X= =G}TG"G_&R""GxBb@ZkG4G@=GH=GP}4G88b"0P0#4GtGG=TGx"ݶ4G]@#}tG=8="=G=TG"G_&R""GxBb@ZkG0"#!!&H&H @!  0TP"11v J!B& 4G0bTSXb"P"x"G_&R"x"8GBb@ZkXb"0X x"G_&R"x"8@"GBb@ZkG0"X!P0b"0"X1"`_"=x]P¦"ݶG' {#}8"L! >"G_&R"x""GxBb@ZkG0"(0(0"(1&F 0B\0\"4G(B0b@Zk0`0"(! 4G0"`0B`R0@Pbs0Xt0pզvJpն0pKp0"l0Btzv`Ktz0t !Ht 0x0v Jx00BxraJxrb"0X"Gxݶ"G_&R"x"8L"GBb@Zk4G0"d4G0"hHb""G_&R"G8X"GBb@ZkXb"0l x"G_&R"x"8@"GBb@Zk0l 0"d! L0l0Cx0"d10 B0Bd24G0pvJs`JFp0¦r".JWJCxKF>0"l9?0BdZ0bh[Hb""G_&R"G8"GBb@ZkHb""G_&R"G8"GBb@Zkb" 0"! =x"G_&R"x"8L"GBb@Zk0p0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@4G0"p?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@4G0"p0"p! ?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0t0C0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0tPC0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0tC0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0tC0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0tC0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0tC0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0tC0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0tC0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0t#0"tHb""G_&R"G8"GBb@ZkXb"0l x"G_&R"x"8@"GBb@Zk0l0"t!$# 0dN0"t10Cx00BdR0@B0bdS0dN0lﵢ0Cx0¦d֢0B0dײ0v#8/8KY8KACzXK:G8?0bh{`O4`C0p &H{`K;Dp 0d0"hHb""G_&R"G80"GBb@Zkb" 0"! =x"G_&R"x"8L"GBb@Zk0D@8 DmHb""G_&R"G8X" =GBb@Zkb" 0"X! =x"G_&R"x"8L"GBb@Zk""$ x0X"C|x"TGb@0"x0x}B>0"x1p BGBb@Zk0|0|4G0⦀ײ0 C0"d9 O0"! L0CT!0Cx90d0B0"d0BR0@B0bS0BZ DC_0bx{0xJ{S`KFx0hﵢN4B0¦xvJuJFx0X#""?$`! x=C|x"TGb@0"b"0X"0"1x="G_&R"x"8L"GBb@Zk0# HH@ y0X"0B #R"G@ SAFETY013.AP %[EVERHART.JTDEMO]JTNTAUTH.OBJ_VAX62;1u >G`B@ZkGGB@Zk""?$! x=0X"C|x"TGb@0"0TP"11v J!B& 4G0bTSXb"P"x"G_&R"x"8GBb@ZkXb"0X x"G_&R"x"8@"GBb@ZkG0"X!P0@"Qv@JQ@bJ@բvJղ@Kb"0"90BXZ#4G]x=4GXBR"]}TGݶ"tG_&R"x"GxBb@ZkGhb""tG_&R"GGBb@Zk@ HH@"!!"H&H @0JJ@"11$J&J @BR0bXvJr@JFX0@¦XJ8KFX@"90BXzfKy KyGXz0@"!XJ18JFX?"4G0X"B"B@Zk00"9 0"a0X"0BXR"?"B@ZkGB@Zk0`"0BXR"G`B@Zkb"0¦"x"0X ݶxG&8"8BLZ#^"G_&R"x""GxBb@ZkG0"(0(0"(1&F 0B\0\"4G(B0b@Zk00"(! 4G0"0BR?@0"0BXR"G`B@ZkP¦֢08ײ@ 0"<@0"@0D0"HQv@JHQ0bHJH0LUv@KLU0bLۢJL۲0PvKP0"PHPb"0"! =Gx="G_&R"x"8L"GBb@Zk4G0"h4G0"dHb""G_&R"G8p"GBb@ZkHb""G_&R"G8"GBb@Zkb" 0"! =x"G_&R"x"8L"GBb@Zk0p0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@4G0"p?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@4G0"p0"p! ?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0t0C0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0tPC0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0tC0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0tC0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0tC0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0tC0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0tC0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0tC0"t?"4G0"B"B@Zk0@ ?"4G0"B"B@Zk0@0t#0"tHb""G_&R"G8"GBb@ZkXb"0l x"G_&R"x"8@"GBb@Zk0l0"t!$# 0dN0"t10CP00BdR0@B0bdS0dN0lﵢ0CP0¦d֢0B0dײ0N#8/8KY8KACzXK:G8?0bh{`O4`C0H &H{`K;DH 0d0"hHb""G_&R"G8"GBb@Zkb" 0"! =x"G_&R"x"8L"GBb@Zk0D@8 DmHb""G_&R"G8D"GBb@Zkb" 0"X! =x"G_&R"x"8L"GBb@Zk""$ x0X"C|x"TGb@0"x0x}B>0"x1p BGBb@Zk0|0|u4G0⦀ײ0 C0"d9 O0"! L0CT!0CP90d0B0"d0BR0@B0bS0BZ CC_0bx{0PJ{S`KFP0hﵢN4B0¦PvJuJFP0#""?$x! x=C|x"TGbD@0"b"0" =4,0"1x="G_&R"x"8L"GBb@Zkhb""G_&R"GGBb@Zkhb""G_&R"GGBb@Zk"4GBb@Zk4GcG]] }(08@#k#~ ^(^0~8GGG=]? b34G$G4G0B8b@Zk"$$C.c.CJS cJSF4բJղG"B R"tG B(b@Zk$G ](]0}8@#k#~ ^(^0~8GG=]4G4GBb@Zk"@$@$4G0B8b@Zk"@$@$G?" B2G)}$s"..JU JF¦D$vH$Ø"H$!D$0"H$D$"H$1"BL$R"bP$s"G@b@ӘH$BL$R bSP$ GG ](]0}8@#kGGGGGGբ6JJFua0JJGk#~ ^(^0~8GGG=]J , H4DJ"0.rHQ0J2F0>$# a..aJT JtFC4G0b@G4GBb@Zk8"T$8T$?&1"FG4G B(b@Zk8"T$$"0.P.0JR PJ2FC4G8b@H_W@"!8T$8"T$1=4GBb@ZkG ](]0}8@#kGGG "Q.q.QJS qJSF4Gk#GGGGr.rJ0@`JR4Gݦ$6$ B!$ @0@=$ݦ$֢$75B6BWBB.JB $0@=$ݦ$֢ B$GGGG#k.W JFGGG@_FtBF@GVJs1`JFGk<@GLDFOR$SET_REENTRANCY<Db#DFOR$SET_REENTRANCY<H@LDFOR$SET_REENTRANCY4G SYS$GETJPIW4b# SYS$GETJPIW4@ SYS$GETJPIW4GLIB$GET_FOREIGN4 b#LIB$GET_FOREIGN4 @LIB$GET_FOREIGN44G< OTS$MOVEM48@< OTS$MOVEM4 @GHOTS$FILL4 D@HOTS$FILL4GOTS$MOVE4@OTS$MOVE4 GOTS$FILL4 @OTS$FILL4GOTS$MOVE4@OTS$MOVE4  GOTS$FILL4 @OTS$FILL4G DFOR$OPEN4b# DFOR$OPEN4@ DFOR$OPEN4G DFOR$OPEN4b# DFOR$OPEN4@ DFOR$OPEN<GDFOR$WRITE_SEQ_FMT<b#DFOR$WRITE_SEQ_FMT<@DFOR$WRITE_SEQ_FMT<LGXDFOR$READ_SEQ_FMT<Pb#DFOR$READ_SEQ_FMT<T@XDFOR$READ_SEQ_FMT< GDFOR$READ_KEY_FMT< b#DFOR$READ_KEY_FMT< @DFOR$READ_KEY_FMT4$G0LIB$WAIT4(b#LIB$WAIT4,@0LIB$WAIT<GDFOR$WRITE_SEQ_FMT<b#DFOR$WRITE_SEQ_FMT<@DFOR$WRITE_SEQ_FMT<\GhDFOR$WRITE_SEQ_FMT<`b#DFOR$WRITE_SEQ_FMT <d@hDFOR$WRITE_SEQ_FMT<GDFOR$READ_SEQ_FMT<b#DFOR$READ_SEQ_FMT<@DFOR$READ_SEQ_FMT<d Gp DFOR$WRITE_SEQ_FMT<h b#DFOR$WRITE_SEQ_FMT<l @p DFOR$WRITE_SEQ_FMT< G DFOR$WRITE_SEQ_FMT< b#DFOR$WRITE_SEQ_FMT< @ DFOR$WRITE_SEQ_FMT< G DFOR$READ_SEQ_FMT< b#DFOR$READ_SEQ_FMT< @ DFOR$READ_SEQ_FMT4 G OTS$INDEX4 @ OTS$INDEX4, G4 OTS$INDEX40 @4 OTS$INDEX4\ Gd OTS$INDEX4` @d OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX4< GD OTS$INDEX4@ @D OTS$INDEX4t G| OTS$INDEX4x @| OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX4, G4 OTS$INDEX40 @4 OTS$INDEX4P GX OTS$INDEX4T @X OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX4@ GH OTS$INDEX4D @H OTS$INDEX4d Gl OTS$INDEX4h @l OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX<GDFOR$WRITE_SEQ_FMT< b#DFOR$WRITE_SEQ_FMT<@DFOR$WRITE_SEQ_FMT<DGPDFOR$READ_SEQ_FMT<Hb#DFOR$READ_SEQ_FMT<L@PDFOR$READ_SEQ_FMT<PG\DFOR$WRITE_SEQ_FMT<Tb#DFOR$WRITE_SEQ_FMT<X@\DFOR$WRITE_SEQ_FMT<GDFOR$READ_SEQ_FMT<b#DFOR$READ_SEQ_FMT<@DFOR$READ_SEQ_FMT<GDFOR$WRITE_SEQ_FMT<b#DFOR$WRITE_SEQ_FMT<@DFOR$WRITE_SEQ_FMT< G,DFOR$READ_SEQ_FMT <$b#DFOR$READ_SEQ_FMT<(@,DFOR$READ_SEQ_FMT4G OTS$DIV_I4b# OTS$DIV_I4@ OTS$DIV_I<GDFOR$REWRITE_FMT<b#DFOR$REWRITE_FMT<@DFOR$REWRITE_FMT4G$OTS$MOVE4 @$OTS$MOVE4 ,G4OTS$FILL4 0@4OTS$FILL<GDFOR$WRITE_SEQ_FMT<b#DFOR$WRITE_SEQ_FMT<@DFOR$WRITE_SEQ_FMT<GDFOR$READ_SEQ_FMT<b#DFOR$READ_SEQ_FMT<@DFOR$READ_SEQ_FMT4G DFOR$OPEN4b# DFOR$OPEN4@ DFOR$OPEN4 G DFOR$CLOSE4 b# DFOR$CLOSE4 @ DFOR$CLOSE4G OTS$INDEX4@ OTS$INDEX4 G OTS$MOVEM4@ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL44G<OTS$MOVE48@<OTS$MOVE< GDFOR$READ_KEY_FMT< b#DFOR$READ_KEY_FMT< @DFOR$READ_KEY_FMT4GLIB$WAIT4b#LIB$WAIT4@LIB$WAIT4@GHOTS$MOVE4D@HOTS$MOVE<G$DFOR$WRITE_SEQ_FMT<b#DFOR$WRITE_SEQ_FMT< @$DFOR$WRITE_SEQ_FMT<dGpDFOR$WRITE_SEQ_FMT<hb#DFOR$WRITE_SEQ_FMT<l@pDFOR$WRITE_SEQ_FMT<GDFOR$WRITE_SEQ_FMT<b#DFOR$WRITE_SEQ_FMT<@DFOR$WRITE_SEQ_FMT<GDFOR$READ_SEQ_FMT<b#DFOR$READ_SEQ_FMT<@DFOR$READ_SEQ_FMT4G OTS$INDEX4 @ OTS$INDEX4,G4 OTS$INDEX40@4 OTS$INDEX4\Gd OTS$INDEX4`@d OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G  OTS$INDEX4@  OTS$INDEX4<GD OTS$INDEX4@@D OTS$INDEX4tG| OTS$INDEX4x@| OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX 4G OTS$INDEX4@ OTS$INDEX4,G4 OTS$INDEX40@4 OTS$INDEX4PGX OTS$INDEXH9 qc`mfp&O^qj1 lU']"b) VzXh)X2sK$ jF.Ԫ(ϖƚ4<.J|rDO,])IcNrijF\?²{J|ig$g/Ue{$߇P8Mt!" nyXi9u|l!/|C KJof( h@Αe!0AD*S/b2POg &%)ԍ5ZG^~mIjD%cߠZ.6Y" 4Xdة:5@vȟŜػk(#PKZ+~lva5pޝX9hRq*8D*Rpg:ЙA @=^>]',LlڧBuVĻ{f>p)QvBD xg@ESkWNؚ})9U%.<ܜlhZU({12u/*̴msC6s ?@]WǮpS4w߼BelP:5?l`e]"W23W12Iߓ6`z)4Z6~]w'2, ^I~*"EN9u՛4\Efƹ梙ic\V\[ 扙f7trCnkLzCA5,ɲ([X2 t @+.i S7.`ZxpcC)'_c%;H: a^mڹG^Hr͉E6+DUSzLCBv0RmĿV@++c*0pqV/d[WaK En8Z\';dHrb_<ӫ+-wkBsm?_cStwj~N,zA3I:g#Vl3iN-6&ˮtbIfMP{4BsK9s*ҷ$?כu+b@"(nP;)B_n>ջ*Y8Pn˩υ~Zuэ)I.sU<0 ,|$ U3{f$8+o(g 7eTl\]o /@;mN]ϊDG$*"}V:AV qJB:zQx083 1X18$ NYwp.ԋEr`mOcrrݐ:D[W}ov.r1u}t1 >o{b%8;>9~RnF9duW{?U=:S)|V; Qk@x0x(q>5Nk\,/&vU)9D n/OK或Ltm0jtMFQtѴtGh2vy):&0ŏQ9RoV A{cZPb7ݷ!=5d[i!PR]QU73Ծv3SC H=xQX_v-d8 \Dn1%AwJkE;-ȃ۶ Z kY 4 48D"SEgQwf .}YVA¸we/8څD))g.Jj\2pvyk7Gcx:9agNhIAf8G}컬/>"#)>O1D-]]2pP{L]_jdC7CPAL(UkD?X^'H%E Ĉ۔vhWzJ-@1oU"J`:G[Ty>i6')8y"BvqPP[YDe}b'mJeyA#(uh3|&DXu}-ǮpefXr5 tkZp*3@:;&;p~ޠ{uQLjRbf ;PJË0fj Oq6H10&]<2u}n]][+Rehhw;K>X#٬pF;s2ĕu=Q+`&E`ech|QD3uL~a~<⩬]߃ܽT&|v b̻k׬<Z ކY G+z&?\PT_mCVx-C&W>[B::`WӨG3 '騬T}j G٤ E8/{H2!6a**2}\l([jMSl~~CJR;#|_a7цAS?o?ȋFUkpǕȹѪ1Tm+)娬Yһ&d]}u&ƩrʊT LR+NwO-2)A GU9;5/Úkx}es'8U~nG˥lr=6U[t>$<ݹ WxoOP70d/FwjsXE_*5\ B l䴁h|e\- xu{gH 5FXÈ=S~0"{&w] kB^ޒnwz\g9Tt=&9>Za2Xl8`q*&i}ՙK(mIJA,h2IS;Y,:5[ W)sRPCĀK2nZ\S>H_P,)E&XzQUiXvFCLp\"^j kh\MV|3y UQ#[-4#is!}#;8w?6lT?czp{ˌƼ ֗ I:+S:>#41pdR,F(dKye !eU ¹ DC>>58T){|l"Rr|.!;z8&Td)załlTzssJ+g쪰bYD>ڠRtD[ cLd# F H;"r=1H|~\#TT_cB:kFQ8' r@-QAX;IXbZpAZ@j;7Ş)h-xpiDIbRSCZ yhwh8{I%56&TR8EVNzrkG]6VLI+!Kܫ~,7E00_%DH=ߕw}z!lv~=hJS:nV $K# z_PmJc",^Zxaե F,P$G8 0aT9f1ϧ¬zܵI$dU+B N\1$P_}LTdNԃ ֧UHgTUhP6\FLTmƯu/U^ 6I/F1u_bU8_y;C}ɏtmigUjNl 2d/Oy}Ĩb\pxCb]I|U` lNm?-bڊF]ŀX9Bhhv͵MV|lX @y4"ToxV, ajΪ DSsw}pV"& @q c:A6 ޔOԿ>ZT7BMtNM\u2D_ݲ09$vVK4'X ] V16WbIVǡ yS!׽ۭ.i6ۨ}LrU"%[ $V. 7w`Q!!S%&EymD9 UqmM QR0E|K,\6F)\IwZo`qj ]>{?*a-RbMoB`MZb,*]K*5t}#iz)sΨmĕbEނ ԀqWmǯ{Lۑդ%qF ֹfBBL[d9yteIߵ%p >C&y;OD?͋bq=6׆y20KŜ+A{ҫ˕dksw3D`:(4k-RA#0q A&(J$]'`vvp4̮ "˝'Me.{"҇Gٝ: L=ĂuudX 9\IOMlofQAYTNgH& Zd= XZbȖd e\s>ˊZBzV=V =A;ilCD|p졹W5LkX60<}\%~fkr/*v#$l$Z0Jۍu,7nerUDZ>DBb*lp"VH Odߢv_c{X$  ;Êg)Pbwm;@ͺ/ 1x%(1Ʒgǯwg,n}$GᲛA0[ɘ+FIl|΍kH Fzn!Y(3?:| ?#:C;jY[Xv]Dsʩ>{)d ?qwX%3 ./cO95v() 'TMw5稊,n)e˃9Aߣ*heh_q#rp69Lqt֡ KYJi`t9bPT!M1TJ4ٸω~N-^ +%z$1M!h(h&a#A8O<]1V~{Zj;EϛR6tZ!a wvxN3d&~fEܕHNCl\[wH=T,y2-*rgr*HhQNs]6f1L~F n ZUYXsO^q-kLʴpSBe2}*︄ףMBY}P\2yK\pp٢Eb> 3'2t.!+(CJ%$ ]+b֤;,T+]5Ow)ӍE퐗rߑwm:g.FG0r9[GR77ר,`λUOj}k 쏑a v]1ZT]L"XLW**̹"*ftS{)%kʺS>Cb'gWx1kϥTl\0"G KN{7!+YP r@:iJI-4$ ͎ʨ8 T?\'7{wў6Oh5ۻ5fs1?ccڶDPt!iէKB)zIO{ap(^5b$qy@jW=\Ylym>涑E$IHhFEfzZ¾|(">; 8(OK 8e8JPx2dbC`w}9X;y0TZ!uiIm cyQ*D϶$ Sȏ'!HAA\ G̅\8و}Ua}g1TqA{}d_H`%٢j'vAo ,ثFI߿8x漟c-W F "i:tcDFȖ^ ZV{ݪy,GO'x$xJ ?l*:Tl9qt PR`?;ةA@eeB9cG5GX\Ԟi8!Adwp 8MzOIy2NX-V>*T Sq>il;q6"=.Q(5*h6*zr0*~V^AW&ytApS%L %#UDr?z*r}?}>q)DKd+y M(Qt0hh$DN*HUϑy ?i//7R/+ 1le!4ނR- 7)7ƅ &8s#9HI7uد rad7#B)^¶4@QM-X4~(\y^Wz49pߟ}7 jBp&£u7dA5BU6LZ qȚn^Ѭe`3GW۹峨{Ҕ HPZOA:^,%͓\Kv[Q b`v( zHTB;-j3מt RLeJ 3>jM)6.*$\2 yl8GJ H>\#uspCRG{4 K"4,*~mpj<9;mp;&ν"z1]xZzh/Nz@P>d2@ X""z,E;q2s$_>[|>Օ@ϙϬKL)Q,Oaj>SΌkd'A 񠐽p"LǓ6t<{x |s}VhPD7Xso:l1drRԤӔEx$|B}Bj#=-Hvu(kSB!S&A]/Ͻ/*|P6j{aUy]m-^%Ua^chu89k>a~+ЯHv]ݒJ=6R˲hFS F;4C3r;}&xz=.oy6\Uuxwn@C*0;-s0cl@L۹wJ&E9d&$cb8Jf{0ʳ )MHrp|ȭ Gfrp5,.\C0Ao:vSi0>N ͎X3IwHfv0(S^m +q eiR?W'z; /w٘ g佸 ]7foeG'X]*3H-Kc# = }i.CF|EhY.ʜnG+##(-*QtZT@Ź̓JfRYy(X6~"+"M&1PSJ8eH )e=jewkNvMd24'濆4 VSs|/,zzFز9]%9k8nk R`>!̽I<%Y|nBKl i_y5\e)0pS}<&׸ɼVn*! HPr뀮[|e$Vτ % Z % {~ zdx̛פgt֢c%HƵ,6ZY6 M:Q);!Tv;:,ǩ&b`oM+T &/t,tiϝI hY/_xaU_QV~n<ȡ}+.IJB16Eе N2HyЈhb8aYԲX M1X.98Ғ#;WY  wp5`>2][[xV|_U%n@~Sޱ]{p sV_0[ 41\n/E;~;/\u{WwԷ AD%}&Dwp=Ov lq+S o߼mxB9%JƸmnavugFv1o5q.bJAtΚ"L\ Nd]bI@5,Js;B(I+< 6X.kH4f*E ;Qs|7޲H-b[v2}2!$klp :" T  vQ#zMr{ b #Me/0h9N-[hQJk}v}˚:&4F޷(@ܾ?(6mGb~ioHT$?܂B)T0QH "fËh$\3K^Q?-5N[;j_QE8! )3]?G:J%$eXglo8GCCEJE32(+!߳Seؾ;ḿhP[a|4gŜryE#-3ù]y H (*o95ys#XG'# EIoz8*4bw05Ct _D%nJJr\6et$x6/;\#)GcQxjބI`=xA'x âӨ+|g)ʊO?UB2qSoS\OD诿UV[d?e7Ax6Lzp߯a]IT`1~h .]|(E1q?D C@M`2dBQ@s%ƛ90<_:UbS`@/iqIƂFt\ [;x(J= pi@׀R )BiO{ժ3\3I4TΞF K`%@>A!.XP9QX :Ө1!:GHOV)g؞.*YN_jNgё r=\'睝TFx\)l0 ?HF!,}xYĹwgʭ%.X &.̮Ʉ:l=FM __aZH724].AL_,wONxzqTMT_(Wbkj{c(ɞxgƉM?Al-Hyna*Hk̿x.)vP,pϙ"T">mlt EE_!-lĎNfHBWtkZy}"Eӷ݅V.AМ|=]$$N*Ai!%| twE$VD|1-Aӽ3cwYvmv<:Wfg; cRur/C?rb&nlb$}%aYS~6YH{, SENys`I}D=*  $qmf17=* @GHJ I@ SAFETY013.AP %[EVERHART.JTDEMO]JTNTAUTH.OBJ_VAX62;1u>-4T@X OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4 @ OTS$INDEX4@GH OTS$INDEX4D@H OTS$INDEX4dGl OTS$INDEX4h@l OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX<GDFOR$WRITE_SEQ_FMT< b#DFOR$WRITE_SEQ_FMT<@DFOR$WRITE_SEQ_FMT<DGPDFOR$READ_SEQ_FMT<Hb#DFOR$READ_SEQ_FMT<L@PDFOR$READ_SEQ_FMT<PG\DFOR$WRITE_SEQ_FMT<Tb#DFOR$WRITE_SEQ_FMT<X@\DFOR$WRITE_SEQ_FMT<GDFOR$READ_SEQ_FMT<b#DFOR$READ_SEQ_FMT<@DFOR$READ_SEQ_FMT<GDFOR$WRITE_SEQ_FMT<b#DFOR$WRITE_SEQ_FMT<@DFOR$WRITE_SEQ_FMT< G,DFOR$READ_SEQ_FMT<$b#DFOR$READ_SEQ_FMT<(@,DFOR$READ_SEQ_FMT4G OTS$DIV_I4b# OTS$DIV_I4@ OTS$DIV_I<GDFOR$REWRITE_FMT<b#DFOR$REWRITE_FMT<@DFOR$REWRITE_FMT4  G DFOR$CLOSE4  b# DFOR$CLOSE4  @ DFOR$CLOSE4 0 G< DFOR$CLOSE4 4 b# DFOR$CLOSE4 8 @< DFOR$CLOSE4D GP DFOR$EXIT4H b# DFOR$EXIT4L @P DFOR$EXIT4# G SYS$OPEN4$ b#SYS$OPEN4# @ SYS$OPEN4!(!G4! GETFIDDID4",!b# GETFIDDID4!0!@4! GETFIDDID4#!G!SYS$OPEN4$!b#@SYS$OPEN4#!@!SYS$OPEN4%!G! SYS$CONNECT4&!b#@ SYS$CONNECT4%!@! SYS$CONNECT4##G#SYS$OPEN4$#b#SYS$OPEN4##@#SYS$OPEN4'#G# SYS$DISPLAY4(#b# SYS$DISPLAY4'#@# SYS$DISPLAY4%H$GT$ SYS$CONNECT4&L$b# SYS$CONNECT8 84%P$@T$ SYS$CONNECT  ;= Dev:file or (n,s,v)> = GCY$CM:NTREGIST.REG_USR@ DFOR$EXIT= :`=Eh=Op=Cx=W=D OTS$DIV_I DFOR$REWRITE_FMT=S=N=ILIB$WAIT=@48       2 3     DFOR$READ_KEY_FMT=q8=r<= DFOR$CLOSE;8OTS$FILL;p DFOR$READ_SEQ_FMT=8 DFOR$WRITE_SEQ_FMT8 OTS$INDEX=0;=@< 7 DFOR$HANDLER=;;;=;= 8OTS$MOVE=  DFOR$OPEN=x8=R@=QH8 OTS$MOVEM=XT=Ai`=nd=`sp=ox=d=w=e=c= SYS$GETJPIW DFOR$SET_REENTRANCY=808  9  GCY$CM:NTREGIST.REG_FIL LIB$GET_FOREIGN=0 | ;=@ ! GETFIDDID#SYS$OPEN=0 `!;=@  ;p% SYS$CONNECT;= 0";==0 #;=@ ' SYS$DISPLAY ;;; ;= 0x$;== 0$;== 0%;=H H=80/ NTUFMNTDigital Fortran 77 T7.0-1I I=E=72i4-9XZRA0:[EVERHART]JTNTAUTH.FOR;22O O=KCB=,z3AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$DVIDEFO O=KCB=Y7AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$JPIDEFO O=KCB=Z2AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$ACLDEFO O=KCB=j2AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$ACEDEFOO O=KCB= AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$RMSDEFO O=KCB=f #AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$FABDEF_O O=KCB=$AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$RABDEFR R=NFE@ $AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2 $XABFHCDEFO O=KCB= AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$RMSDEFO O=KCB= f #AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$FABDEFO O=KCB= $AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$RABDEFOR R=NFE@ $AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2 $XABFHCDEFR R=NFE@"HFAS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2 $SYSSRVNAMO O=KCB=Y$AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$XABDEFO O=KCB=Y$AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$XABDEFO O=KCB=f #AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$FABDEFO O=KCB= AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$RMSDEFO O=KCB=$AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$RABDEFR R=NFE@$AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2 $XABFHCDEFR R=NFE@"HFAS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2 $SYSSRVNAMO O=KCB= AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$RMSDEFTR R=NFE@"HFAS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2 $SYSSRVNAMO O=KCB=f #AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$FABDEFO O=KCB=$AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$RABDEFMO O=KCB=Y$AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$XABDEFR R=NFE@&$AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2 $XABPRODEFR R=NFE@&$AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2 $XABPRODEFX X=TL      C   |N ,8 - N{ 9 |  s : t   P ;     R    NS    T   PQU R a"V e" )"Z " )"w " N#$x $$ 'y ' 'z ' PK({ L( [:| F: = = O O NP P Q Q )R R ghR .R gR = == 44= NTUFMNT4=> + + + / / / Cммм ȼ   мMмм 5, $ $= 84 =<4.  4= IOSB  e4=H@:  4=JPIITM $e4=  4=MEKIOS:  4=JP2ITM e4=<4.  4= IFID e4=<4.   4= IDID )e4=<4. 4=I4FID re4=<4.  4=I4DID e4= 4= FILSIZ 4= MSKACC 4=A9IUIC. 4=DEFACL 4e4="84=REGNAM e4=<4.  4= DEF2 e4= 4=)!DEFLEN4=DEFCMD  e4=" 84= DFC :e4=" 84= DFC2 he4=<4. @ 84= IDFC e4=<4. 84=I2DFC e4=. . . `JTUS3 UIC IFID *e4= `IDID Ye4=KFLGSGRPLSTGRPLENACEDEFACELENDEFCMDDEFLEN ACES e4= CH e4= 84=USRREC e4= 4=USRWRC e4= . . xJTFL3FIDNAM e4=+# UIC IDID e4=`KFLGSGRPLSTGRPLENACEDEFACELENDEFCMDDEFLEN ACES @e4= CH oe4= I4CH 4=FILREC e4= p'4=FILWRK e4= 4= OWNUIC4=D<ACCPORL.  4= IPRV e4= 4=( LPRVS$4=IMGSPB =e4=" -4= RGU ne4=" .4= RGF e4="/4V V =WRKARG e4="14=WRKFNM e4=  4= CCOL 4= LLUIC$4= CMDLENH4= UNAML 4= TTYSPL$4=)!IMGSPL 4=TTYSPB e4=" (4=UNAMB e4=" x4=RJASC e4="@L4=ACCPOR e4="@4=WRKCHR Je4="34=CMDLIN {e4=  (4=KK < 4= 9999 ,4=II 4= 6009 4= 6999 04J@ SAFETY013.AP %[EVERHART.JTDEMO]JTNTAUTH.OBJ_VAX62;1u>L= LNRG 4= 999844=-%ISYSU 100 101 p4= 10584= KKUIC p4=140 6300 <4= XTIM@4= IGOTU D4= IPOS H4= IINI 84=200 3330 L4=KGP 3331 p 4=202 3332 P4= IQTT4==5JFLGS 3333 3334 3335 X4= LDC \4= ILDC `4=N d4= LUR h4= LDFC  4= 405 4= 9898 l4= ICL <4= 240p4=!IGOTF 3336 p4=D<402 3337 3338 3339 3340l l=h`_ : := T 4= | = | 44= FGETFID| 4=" K $ $=  4 =FGETFID84!4,47 4=0 4C` 4I 4O 4U 4[ 4a@ 4gx 4m 4s 4y 40 4T 4 4 4 4 4D 4h 4 4 44 44484D4 404`4444 4@4x44$4*40046T4<4B4H4N 4TD4Zh4`4f4l4=. . . . . . . . . FABDEF FAB$B_BID FAB$B_BLN FAB$W_IFI  e4=-% FAB$L_FOP e4=yq@ FAB$L_STS` FAB$L_STV FAB$L_ALQ FAB$W_DEQ FAB$B_FAC 7e4=-% FAB$B_SHR fe4=SK FAB$L_CTX FAB$B_RTV FAB$B_ORG e4=-% FAB$B_RAT e4=D< FAB$B_RFM FAB$B_JOURNAL  e4=`XFAB$B_RU_FACILITY   FAB$L_XAB@ FAB$L_NAM` FAB$L_FNA FAB$L_DNA FAB$B_FNS FAB$B_DNS FAB$W_MRS FAB$L_MRN FAB$W_BLS FAB$B_BKS FAB$B_FSZ FAB$L_DEV  FAB$L_SDC@ FAB$W_GBCP FAB$B_ACMODES P "e4=-%X FAB$B_RCF X Qe4=+# ` 'FAB e4=. . . . RABDEF =WO  RAB$B_BID RAB$B_BLN RAB$W_ISI  "e4=-% RAB$L_ROP ="e4= l"e4=  ( RAB$B_ROP10 RAB$B_ROP28 RAB$B_ROP3@ RAB$L_STS` RAB$L_STV` RAB$W_STV0p RAB$W_STV2 RAB$W_RFA "e4= RAB$L_RFA0 RAB$W_RFA4  RAB$L_CTX  RAB$B_RAC RAB$B_TMO RAB$W_USZ RAB$W_RSZ  RAB$L_UBF@ RAB$L_RBF` RAB$L_RHB RAB$L_KBF RAB$L_PBF RAB$B_KSZ RAB$B_PSZ RAB$B_KRF RAB$B_MBF RAB$B_MBC RAB$L_BKT RAB$L_DCT RAB$L_FAB RAB$L_XAB RAB "e4=KCIUNIT.  4= IFID %e4=<4.   4= IDID 9&e4= 4=FILSIZ. .  XABFHCDEF`     @ XAB$B_RFOH XAB$B_ATR H &e4= P XAB$W_LRL` XAB$L_HBK` XAB$W_HBK0p XAB$W_HBK2 XAB$L_EBK XAB$W_EBK0 XAB$W_EBK2 XAB$W_FFB  XAB$B_HSZ XAB$W_MRZ XAB$W_DXQ XAB$W_GBC &e4=<40XAB$W_VERLIMIT@ XAB$L_SBN44=XABFHC &e4= 44= ISTAT 4!4= 9999: := D!4=  = `!4@4= IUFCK`!4=2*)  " $ $= !4E E ='IUFCK. . . . . . . . . FABDEF FAB$B_BID FAB$B_BLN FAB$W_IFI  N)e4=-% FAB$L_FOP })e4=yq@ FAB$L_STS` FAB$L_STV FAB$L_ALQ FAB$W_DEQ FAB$B_FAC )e4=-% FAB$B_SHR )e4=SK FAB$L_CTX FAB$B_RTV FAB$B_ORG  *e4=-% FAB$B_RAT 9*e4=D< FAB$B_RFM FAB$B_JOURNAL  h*e4=`XFAB$B_RU_FACILITY   FAB$L_XAB@ FAB$L_NAM` FAB$L_FNA FAB$L_DNA FAB$B_FNS FAB$B_DNS FAB$W_MRS FAB$L_MRN FAB$W_BLS FAB$B_BKS FAB$B_FSZ FAB$L_DEV  FAB$L_SDC@ FAB$W_GBCP FAB$B_ACMODES P *e4=-%X FAB$B_RCF X *e4=+# ` FAB *e4=#. . . . RABDEF  RAB$B_BID RAB$B_BLN RAB$W_ISI  .e4=-% RAB$L_ROP .e4= .e4=  ( RAB$B_ROP10 RAB$B_ROP28 RAB$B_ROP3@ RAB$L_STS` RAB$L_STV` RAB$W_STV0p RAB$W_STV2 RAB$W_RFA /e4= RAB$L_RFA0 RAB$W_RFA4  RAB$L_CTX  RAB$B_RAC RAB$B_TMO RAB$W_USZ RAB$W_RSZ  RAB$L_UBF@ RAB$L_RBF` RAB$L_RHB RAB$L_KBF RAB$L_PBF RAB$B_KSZ RAB$B_PSZ RAB$B_KRF RAB$B_MBF RAB$B_MBC RAB$L_BKT RAB$L_DCT RAB$L_FAB RAB$L_XAB RAB ?/e4= LUN 54= ISTAT  4= LFIL 4= NFFREE $54= IXAB(54= INEXT @"4= 100 ,54= IEOF054=IFFREE: := "4= X~ ~= "44= GTXAB"4= "$ $= "4 =. . FHCDEF` XAB$B_COD XAB$B_BLN  XAB$L_NXT@ XAB$B_RFOH XAB$B_ATR H (3e4= P XAB$W_LRL` XAB$L_HBK` XAB$W_HBK0p XAB$W_HBK2 XAB$L_EBK XAB$W_EBK0 XAB$W_EBK2 XAB$W_FFB  XAB$B_HSZ XAB$W_MRZ XAB$W_DXQ XAB$W_GBC W3e4=LD0XAB$W_VERLIMIT@ XAB$L_SBN 9XAB 3e4=5-8INEXT %IEOF$IFFREE: :=  #4= \ = #44= PRIV_USEROPEN#4=+#" : $ $= @#4` `=% PRIV_USEROPEN. . . . . . . . . FABDEF FAB$B_BID FAB$B_BLN FAB$W_IFI  6e4=-% FAB$L_FOP A6e4=yq@ FAB$L_STS` FAB$L_STV FAB$L_ALQ FAB$W_DEQ FAB$B_FAC p6e4=-% FAB$B_SHR 6e4=SK FAB$L_CTX FAB$B_RTV FAB$B_ORG 6e4=-% FAB$B_RAT 6e4=D< FAB$B_RFM FAB$B_JOURNAL  ,7e4=`XFAB$B_RU_FACILITY   FAB$L_XAB@ FAB$L_NAM` FAB$L_FNA FAB$L_DNA FAB$B_FNS FAB$B_DNS FAB$W_MRS FAB$L_MRN FAB$W_BLS FAB$B_BKS FAB$B_FSZ FAB$L_DEV  FAB$L_SDC@ FAB$W_GBCP FAB$B_ACMODES P [7e4=-%X FAB$B_RCF X 7e4=+# ` 'FAB 7e4=#. . . . RABDEF  RAB$B_BID RAB$B_BLN RAB$W_ISI  G;e4=-% RAB$L_ROP v;e4= ;e4=  ( RAB$B_ROP10 RAB$B_ROP28 RAB$B_ROP3@ RAB$L_STS` RAB$L_STV` RAB$W_STV0p RAB$W_STV2 RAB$W_RFA ;e4= RAB$L_RFA0 RAB$W_RFA4  RAB$L_CTX  RAB$B_RAC RAB$B_TMO RAB$W_USZ RAB$W_RSZ  RAB$L_UBF@ RAB$L_RBF` RAB$L_RHB RAB$L_KBF RAB$L_PBF RAB$B_KSZ RAB$B_PSZ RAB$B_KRF RAB$B_MBF RAB$B_MBC RAB$L_BKT RAB$L_DCT RAB$L_FAB RAB$L_XAB RAB <e4= UNIT. . .  XABPRODEF1     @ XAB$W_PRO @ (?e4=G?P XAB$B_MTACCXXAB$B_PROT_OPT X W?e4=bZ` XAB$L_UIC` XAB$W_MBMp XAB$W_GRPXAB$Q_PROT_MODE ?e4=XAB$B_PROT_MODE XAB$L_ACLBUF XAB$W_ACLSIZ XAB$W_AK@ SAFETY013.AP %[EVERHART.JTDEMO]JTNTAUTH.OBJ_VAX62;11ukCLLEN XAB$L_ACLCTX  XAB$L_ACLSTS @ `        @ `  854=XABPRO ?e4=   4= LUIC 4=C;OWNUIC. 4= PRIVILEGE Ae4=  454= III: := \$4= dw w= x$44= XABGETx$4= Rq$ $= $4i i=. . .  XABPRODEF1     @ XAB$W_PRO @ Be4=G?P XAB$B_MTACCXXAB$B_PROT_OPT X Be4=bZ` XAB$L_UIC` XAB$W_MBMp XAB$W_GRPXAB$Q_PROT_MODE Be4=#XAB$B_PROT_MODE XAB$L_ACLBUF XAB$W_ACLSIZ XAB$W_ACLLEN XAB$L_ACLCTX  XAB$L_ACLSTS @ `        @ `  $XABPRO -Ce4=  4=L_UIC: := $4= 4 = $44= IVLEN$4=0(' S0 S S S$ $= $4! !=`X9IVLEN3,)J&3&& 6ARG Ee4= %LEN D%4=1 54=N 54=K l%4= 2: := %4= z z= %4 4= XABSET%4= Sg$ $= %4 =B:. . .  XABPRODEF1XABPRODEF$$_FILL_1XABPRODEF$$_FILL_2XABPRODEF$$_FILL_3 XABPRODEF$$_FILL_4@ XAB$W_PRO @ Fe4=G?P XAB$B_MTACCXXAB$B_PROT_OPT X Fe4=bZ` XAB$L_UIC` XAB$W_MBMp XAB$W_GRPXAB$Q_PROT_MODE Ge4=XAB$B_PROT_MODE XAB$L_ACLBUF XAB$W_ACLSIZ XAB$W_ACLLEN XAB$L_ACLCTX  XAB$L_ACLSTS@XABPRODEF$$_FILL_10`XABPRODEF$$_FILL_11XABPRODEF$$_FILL_12XABPRODEF$$_FILL_13XABPRODEF$$_FILL_14XABPRODEF$$_FILL_15XABPRODEF$$_FILL_16 XABPRODEF$$_FILL_17@XABPRODEF$$_FILL_18`XABPRODEF$$_FILL_19XABPRODEF$$_FILL_20XABPRODEF$$_FILL_21$XABPRO 5Ge4=  4=L_UIC: := %4= < =   *[EVERHART.JTDEMO]JTNTAUTHM.OBJ;3+,Q. / 4X - 0123KPWO56G'+7!|89GHJCC JTNTAUTHMV1 1-MAY-1996 21:11AMAC X3.0-18  . ABS .8 . BLANK . $ABS$($LINKAGE0J GETFIDDIDX X=@8#~^^ ~(08GCC(bG G$c GCc  Y/c J\KyJG%C?Gc F/RJ yJ\KGG?c . W/|KVJZ WKF K\GW?>G^ ~(08@#kV/ JZ VKYGV?V/ JZ VKYGV?d d=0 ;=@< ="" "*[EVERHART.JTDEMO]JTNTAUTHM.OBJ_A;1+,R. / 4T - 0123KPWO56*.17:.189GHJCC JTNTAUTHMV129-MAY-1996 21:18AMAC X3.0-18  . ABS .4 . BLANK . $ABS$($LINKAGE0J GETFIDDIDT T=<4#~^^ ~(08GC(bGC$c Cc G YJc G /yJ\KG$?CRJc G /yJ\KG?c G .|KVJFW/ KZ WK\GW?>G^ ~(08@#kV/ JZ VKYGV?V/ JZ VKYGV?d d=0 ;=@< ="" &*[EVERHART.JTDEMO]JTNTAUTHM.OBJ_VAX62;1+,S.6/ 46/- 0123KPWO056皇789GHJ"CC JTNTAUTHMV111-JUL-1996 15:09AMAC V3.0-19  . ABS .4 . BLANK . $ABS$($LINKAGE0J GETFIDDIDT T=<4#~^^ ~(08GC(bGC$c Cc G YJc G /yJ\KG$?CRJc G /yJ\KG?c G .|KVJFW/ KZ WK\GW?>G^ ~(08@#kV/ JZ VKYGV?V/ JZ VKYGV?d d=0 ;=@< =""A A=1)( JTNTAUTHMAMAC V3.0-19311DG G=C;50lQ)@:ZRA0:[EVERHART]AXPDEFS.MAR;2D D=@872+ZRA0:[EVERHART]JTNTAUTHM.MAR;2v v=  6  f # 2  $4= $L1 4= $L2 4= $L3 t4= $L4 4= $L5 4= $L6 = ACE$L_SPARE1 ACE$L_SPARE2"FIB$M_CACHING_OPTIONS_MBZ"FIB$S_CACHING_OPTIONS_MBZ" FIB$V_CACHING_OPTIONS_MBZ#ATR$C_CACHE_POLICY_DEFAULTACE$S_RMSATR_V50%ATR$C_CACHE_POLICY_WRITETHRU(ATR$S_ATR_CACHING_OPTIONS_FLAGS ACE$S_OIL_S64I64"ATR$M_CACHING_OPTIONS_MBZ"ATR$S_CACHING_OPTIONS_MBZ" ATR$V_CACHING_OPTIONS_MBZ NAM$C_RMS20 ACE$S_OIL_S128ACE$K_RMSATR_MINOR_V50 NAM$C_FCS11 NAM$C_RMS11 NAM$C_RMS32 NAM$M_FILL_1 NAM$V_FILL_1'JATR$C_FILE_ATTR_CACHING_POLICY'KATR$C_FILE_DATA_CACHING_POLICY'ATR$S_FILE_ATTR_CACHING_POLICY'ATR$S_FILE_DATA_CACHING_POLICY8 NAM$C_BLN_V28 NAM$K_BLN_V2 NAM$M_FILL_2 NAM$V_FILL_2 FIB$S_FIBDEF14NAM$R_FNB_BITS0NAM$M_WILD_SFD14NAM$R_FNB_BITS1NAM$V_WILD_SFD1 ATR$C_ODS1NAM$M_WILD_SFD24NAM$R_FNB_BITS2NAM$V_WILD_SFD2 ACE$S_FID ACE$W_FID0 FAB$L_DNA, FAB$L_FNA ATR$C_ODS2NAM$M_WILD_SFD3NAM$V_WILD_SFD3$ FAB$L_XAB FAB$M_MSB FAB$V_MSB ACE$M_READ ACE$V_READ* ATR$C_DUMMY_0 ATR$S_DUMMY_0NAM$M_WILD_SFD4NAM$V_WILD_SFD4ALPHA FAB$B_FAC FAB$C_VFCD FAB$L_SDC FAB$M_ESC FAB$M_RWC FAB$V_ESC FAB$V_RWCH FAB$W_GBC ACE$B_SIZE ACE$B_TYPE ACE$C_KEYID NAM$M_WILD_SFD5NAM$V_WILD_SFD5 FAB$B_BID FAB$C_BID FAB$M_TMD FAB$M_UPD FAB$V_TMD FAB$V_UPD ACE$M_WRITE ACE$Q_CDATE ACE$S_CDATE ACE$V_WRITE@ ATR$C_ODS64@NAM$M_WILD_SFD6NAM$V_WILD_SFD6 FAB$M_EXE FAB$M_MSE FAB$V_EXE FAB$V_MSE ACE$M_DELETE ACE$V_DELETENATR$C_MAX_PLUS1NAM$M_WILD_SFD7NAM$V_WILD_SFD7K FAB$B_RCF FAB$C_UDF FAB$M_CIF FAB$M_NEF FAB$M_PPF@ FAB$M_SCF FAB$M_TEF FAB$V_CIF FAB$V_NEF FAB$V_PPF FAB$V_SCF FAB$V_TEF ACE$C_DIRDEF2 ACE$S_ACEDEF ACE$M_EXECUTE ACE$M_FAILURE ACE$V_EXECUTE ACE$V_FAILUREACE$C_RESERVEDACE$S_RESERVEDACE$V_RESERVEDACE$M_XLATE_DECACE$V_XLATE_DECBIGPAGE FAB$B_ORG FAB$M_CTG FAB$M_ORG FAB$S_ORG FAB$V_CTG FAB$V_ORG FAB$M_SHRUPD FAB$V_SHRUPDACE$C_MAX_CODEACE$M_PROTECTED ACE$V_PROTECTEDFAB$M_AIFAB$M_BIFAB$V_AIFAB$V_BI0 FAB$C_HSH FAB$C_STMLF ACE$C_LENGTH ACE$K_LENGTH@ FAB$M_PPF_IND FAB$V_PPF_INDACE$S_AUDITNAMEACE$S_INFO_TYPEACE$T_AUDITNAMEACE$V_INFO_TYPE ACE$C_OIL ACE$S_OIL@ FAB$M_UPI FAB$V_UPI FAB$W_IFI NAM$L_ESA NAM$L_RSAP FAB$S_FABDEFACE$L_BRAND_NAME4 NAM$L_FNBFAB$S_LNM_MODEFAB$V_LNM_MODEACE$M_BACKUP_DONEACE$M_NOPROPAGATEACE$V_BACKUP_DONE ACE$V_NOPROPAGATE FAB$M_BLK FAB$M_RCK FAB$M_WCK FAB$V_BLK FAB$V_RCK FAB$V_WCK FIB$L_WCC0 NAM$L_WCC FAB$M_PPIFI FAB$V_PPIFIFAB$S_CHAN_MODEFAB$S_FILE_MODEFAB$V_CHAN_MODEFAB$V_FILE_MODE FAB$C_REL FAB$M_DEL FAB$M_NIL FAB$M_SPL FAB$V_DEL FAB$V_NIL FAB$V_SPL FIB$S_DID FIB$S_FID FIB$W_DID FIB$W_FID NAM$B_BID = NAM$C_BID NAM$M_PWD NAM$S_DID NAM$S_FID NAM$V_PWD* NAM$W_DID$ NAM$W_FID ACE$C_ALARM2 ACE$S_RMSJNL FAB$M_RCF_AI FAB$M_RCF_BI FAB$V_RCF_AI FAB$V_RCF_BIACE$C_RMSJNL_AIACE$C_RMSJNL_BI FAB$B_RFM FAB$C_STM( FAB$L_NAM FAB$M_NAM FAB$V_NAM ACE$C_INFO FIB$M_WILD FIB$V_WILD FIB$M_TRUNC FIB$S_ALLOC FIB$V_TRUNC" FIB$W_ALLOC ACE$S_VOLNAM ACE$T_VOLNAM FIB$M_ALCONB FIB$V_ALCONB ACE$M_CONTROL ACE$V_CONTROL FIB$C_ACCDATA, FIB$C_ALCDATA FIB$C_DIRDATA FIB$C_EXTDATA FIB$K_ACCDATA, FIB$K_ALCDATA FIB$K_DIRDATA FIB$K_EXTDATAACE$C_RMSATR_MAJOR_IDACE$C_RMSATR_MINOR_IDACE$K_RMSATR_MAJOR_IDACE$K_RMSATR_MINOR_IDACE$W_RMSATR_MAJOR_ID ACE$W_RMSATR_MINOR_IDSTEP2 FAB$B_BLNP FAB$C_BLNP FAB$K_BLN8 FAB$L_MRN FAB$M_FTN FAB$M_PRN FAB$M_TRN FAB$V_FTN FAB$V_PRN FAB$V_TRN NAM$L_RLF NAM$M_PPF NAM$V_PPF; NAM$B_NAME8 NAM$B_NODE< NAM$B_TYPEL NAM$L_NAME@ NAM$L_NODEP NAM$L_TYPE NAM$M_NODE NAM$V_NODE ACE$M_HIDDEN ACE$V_HIDDEN __TEMP_COUNT ACE$W_FID_NUM@FAB$M_JOURNAL_FILEFAB$S_CALLERS_MODEFAB$V_CALLERS_MODEFAB$V_JOURNAL_FILEACE$M_JOURNAL_DISABLEDACE$V_JOURNAL_DISABLED FAB$M_BIO@ FAB$M_BRO FAB$M_DMO@ FAB$M_KFO FAB$M_RWO@ FAB$M_SQO FAB$M_UFO FAB$V_BIO FAB$V_BRO FAB$V_DMO FAB$V_KFO FAB$V_RWO FAB$V_SQO FAB$V_UFO FIB$B_WSIZE FIB$C_SPACE FIB$M_WRITE FIB$V_WRITE FAB$M_SHRDEL FAB$V_SHRDEL FIB$C_POSEND FIB$M_EXTEND FIB$M_NOREAD FIB$M_REWIND FIB$S_SD_FID FIB$V_EXTEND FIB$V_NOREAD FIB$V_REWINDT FIB$W_SD_FID NAM$M_QUOTED NAM$V_QUOTED ACE$B_FID_RVN ACE$W_FID_RVN FIB$M_NOTRUNC FIB$V_NOTRUNC __TEMP_RESULT FIB$C_ADD_QUOTA FIB$C_DSA_QUOTA FIB$C_ENA_QUOTA FIB$C_EXA_QUOTA FIB$C_MOD_QUOTAFIB$C_REM_QUOTA ACE$C_CSS ACE$C_VMS FAB$L_FOP FAB$M_INP FAB$M_OFP FAB$M_SUP FAB$M_TMP FAB$V_INP FAB$V_OFP FAB$V_SUP FAB$V_TMP FIB$M_ALDEF FIB$V_ALDEF FAB$C_MAXRFM@ FIB$M_UPDATE FIB$V_UPDATE FAB$B_JOURNAL FIB$M_FINDFID FIB$M_MARKBAD FIB$S_LOC_FID FIB$V_FINDFID FIB$V_MARKBAD" FIB$W_LOC_FID *ACE$Q_MODIFICATION_TIME ACE$S_MODIFICATION_TIME8ATR$C_VDATR$S_VDFAB$M_CRFAB$V_CR ATR$C_UIC ATR$S_UIC FAB$C_SEQ FAB$L@ SAFETY013.AS &[EVERHART.JTDEMO]JTNTAUTHM.OBJ_VAX62;16 <L_ALQ FAB$W_DEQ FIB$C_RFI NAM$C_DVI NAM$M_IFI NAM$S_DVI NAM$T_DVI NAM$V_IFI\ FIB$S_FIBDEF` NAM$S_NAMDEF FIB$M_EXECUTE FIB$M_MOD_USE@ FIB$M_NOPLACE FIB$M_NOWRITE FIB$V_EXECUTE FIB$V_MOD_USE FIB$V_NOPLACE FIB$V_NOWRITE NAM$M_SLPARSE NAM$V_SLPARSE FIB$M_NORECORDFIB$V_NORECORDNAM$M_WILDCARDNAM$M_WILD_UFDNAM$V_WILDCARDNAM$V_WILD_UFDFIB$W_CNTRLFUNC`NAM$C_BLN_DIRWC`NAM$K_BLN_DIRWC9 ATR$C_PVD: ATR$C_SVD; ATR$C_VPDs ATR$S_PVDs ATR$S_SVDX  =ATR$S_VPD FAB$B_SHR FAB$C_VAR ACE$C_CUST ACE$W_FLAGS FIB$C_FLUSH ACE$B_RJRVER ACE$S_RMSATR ACE$W_FID_SEQ@ NAM$M_SRCHNMF NAM$V_SRCHNMFHFIB$C_MOVEFILEHFIB$K_MOVEFILEFIB$M_NOCHARGEFIB$V_NOCHARGENAM$M_EXP_NAMENAM$M_EXP_TYPENAM$V_EXP_NAMENAM$V_EXP_TYPEACE$B_VOLNAM_LEN FIB$M_NO_READ_DATA FIB$V_NO_READ_DATAFAB$M_ATFAB$V_AT> FAB$B_BKS5 FAB$B_DNS4 FAB$B_FNS FAB$L_STS FAB$M_NFS FAB$M_POS FAB$V_NFS FAB$V_POS< FAB$W_BLS6 FAB$W_MRS ACE$C_AUDIT ADDRESSBITS ACE$L_ACCESS\ FIB$C_LENGTH\ FIB$K_LENGTHFIB$C_FID_CACHEFIB$C_VBN_CACHEFIB$M_PROPAGATEFIB$M_SUPERSEDEFIB$V_PROPAGATE FIB$V_SUPERSEDE NAM$M_WILD_NAMENAM$M_WILD_TYPENAM$V_WILD_NAMENAM$V_WILD_TYPEFIB$C_ADD_THREADFIB$C_EXA_THREADFIB$C_REM_THREADACE$C_APPLICATIONFAB$M_RUFAB$V_RU FAB$B_RAT FAB$M_CBT FAB$M_DLT FAB$M_GET FAB$M_PUT FAB$V_CBT FAB$V_DLT FAB$V_GET FAB$V_PUT FIB$C_CYL NAM$B_ESL NAM$B_RSL ATR$W_SIZE ATR$W_TYPE FAB$C_STMCR ACE$M_SUCCESS ACE$V_SUCCESS FIB$C_NOFLUSH.FIB$B_AGENT_MODEFIB$C_BFRD_CACHEFIB$C_FLUSH_FILEFIB$C_WRITEBEHINDFIB$M_ALT_GRANTEDFIB$V_ALT_GRANTED FIB$M_DLOCK FIB$V_DLOCK ACE$M_DEFAULT ACE$V_DEFAULT ACE$C_NEW_OWNERFIB$C_FLUSH_CACHEFIB$C_QUOTA_CACHE&ACE$L_BACKUP_SEQNO ACE$B_RMSATR_FIXLEN ACE$L_KEY FAB$B_RTV@ FAB$L_DEV FAB$L_STV FAB$M_MXV FAB$V_MXV FIB$C_LBN FIB$C_VBN NAM$B_BLN` NAM$C_BLN` NAM$K_BLN FIB$L_ACCTL FIB$M_ONCYL FIB$M_SPOOL FIB$V_ONCYL FIB$V_SPOOL FIB$W_EXCTL FIB$W_NMCTL FIB$M_NOLOCK FIB$M_READCK FIB$V_NOLOCK FIB$V_READCK NAM$M_SYNCHK NAM$V_SYNCHKACE$L_GRP_PROT ACE$L_OWN_PROTACE$L_SYS_PROTACE$L_WOR_PROTATR$C_HDR1_ACCATR$S_HDR1_ACCACE$L_OIL_FLAGSACE$Q_IMAGE_IDSACE$S_IMAGE_IDSMATR$C_POSIX_DATA@ATR$S_POSIX_DATAFIB$C_EXTENT_CACHE FAB$M_DFW FAB$V_DFW ATR$S_ATRDEF FAB$M_SHRGET FAB$M_SHRPUT FAB$V_SHRGET FAB$V_SHRPUT FIB$M_DIRACL FIB$V_DIRACL ATR$C_ASCNAME ATR$C_BAKDATE ATR$C_CREDATE6 ATR$C_EFFDATE ATR$C_EXPDATE7 ATR$C_RCDDATE' ATR$C_READACE ATR$C_REVDATEV ATR$S_ASCNAME ATR$S_BAKDATE ATR$S_CREDATE ATR$S_EFFDATE ATR$S_EXPDATE ATR$S_RCDDATE ATR$S_READACE ATR$S_REVDATEJ FAB$B_ACMODES@ FAB$M_SYNCSTS FAB$V_SYNCSTS FIB$M_RMSLOCK FIB$M_WRITECK FIB$V_RMSLOCK FIB$V_WRITECK(ATR$C_RESERVED|ATR$S_RESERVEDACE$C_RMSJNL_AT.ATR$C_FILE_SPECATR$S_FILE_SPECDAP$K_SNADTF_FSACE$L_INFO_FLAGSACE$M_STATISTICSACE$R_FID_FIELDSACE$V_STATISTICSFIB$C_CHECK_PATH!FIB$C_FILE_SYNCHFIB$C_VALIDATE_FILE FAB$C_FIX FAB$C_IDX FAB$L_CTX NAM$B_NOP ATR$C_FLUSH FIB$L_EXVBN FIB$M_ALCON FIB$V_ALCON ACE$L_JNLIDX FAB$M_RCF_RU FAB$V_RCF_RU FIB$M_ALLNAM  =FIB$V_ALLNAM? FAB$M_PPF_RAT FAB$S_PPF_RAT FAB$V_PPF_RAT FIB$C_ILLEGAL FIB$C_NEXTVOL FIB$M_CONTROL FIB$V_CONTROLMATR$C_MAX_CODE3ATR$C_NEXT_ACEATR$S_NEXT_ACEFAB$R_FAC_BITSFAB$R_FOP_BITSFAB$R_IFI_BITSFAB$R_ORG_BITSFAB$R_RAT_BITSKFAB$R_RCF_BITSFAB$R_SHR_BITSFIB$M_BLK_LOCKFIB$V_BLK_LOCK ACE$C_RMSJNL_RU&ACE$S_RMSJNL_RUAATR$C_VOLUME_ID ATR$S_VOLUME_ID ACE$R_CLASS_PROTACE$T_INFO_STARTFIB$M_WILDFID_FLAG FIB$V_WILDFID_FLAGFIB$M_FLUSH_ON_CLOSEFIB$S_FLUSH_ON_CLOSEFIB$V_FLUSH_ON_CLOSE FAB$M_ASY FAB$V_ASY FIB$M_SEQNO FIB$V_SEQNO\ FIB$C_F64LEN FIB$C_MTALEN\ FIB$K_F64LEN FIB$K_MTALEN FIB$M_FILCON FIB$V_FILCON ACE$B_FID_NMX FAB$M_ONLY_RU FAB$V_ONLY_RU FIB$M_ALL_MEM FIB$V_ALL_MEM FIB$W_DID_NUM FIB$W_FID_NUM" FIB$W_LOC_NUM* NAM$W_DID_NUM$ NAM$W_FID_NUMFAB$C_RFM_DFLTFIB$C_LOCK_VOLFIB$C_UNLK_VOLFIB$L_CNTRLVAL ATR$C_BLOCKSIZE2ATR$C_GRANT_ACE1ATR$C_RU_ACTIVEATR$S_BLOCKSIZEATR$S_GRANT_ACEATR$S_RU_ACTIVE+ATR$C_PRIVS_USEDATR$S_PRIVS_USEDACE$W_RMSJNL_FLAGSFIB$C_WRITETHROUGHFIB$C_VALIDATE_VOLUMEFIB$C_WRITEBACK_CACHE FIB$C_WRITETHRU_CACHE? FAB$B_FSZ: NAM$B_DIR= NAM$B_VERH NAM$L_DIRT NAM$L_VER FIB$C_REMAP ATR$C_NOFLUSH! FIB$B_ALALIGN FIB$B_DID_RVN FIB$B_FID_RVN& FIB$B_LOC_RVN FIB$W_DID_RVN FIB$W_FID_RVN& FIB$W_LOC_RVN. NAM$B_DID_RVN( NAM$B_FID_RVN. NAM$W_DID_RVN( NAM$W_FID_RVN FAB$M_NEVER_RUFAB$V_NEVER_RUFIB$M_MOD_PERMFIB$V_MOD_PERMFIB$C_REWINDFILFIB$C_REWINDVOLFIB$M_NOCOPYACLFIB$V_NOCOPYACLNAM$C_MAXRSSLCLNAM$M_NOCONCEALNAM$V_NOCONCEALATR$C_WRITEBEHIND ACE$C_SUBSYSTEM_IDS!@ACE$K_RMSATR_ORG_MAX_LEN!@ACE$K_RMSATR_SEM_MAX_LEN!ACE$_RMSATR_ORGANIZATION NAM$B_ESS NAM$B_RFS NAM$B_RSS NAM$C_UFS FIB$M_ALLTYP FIB$V_ALLTYP@FIB$L_MOV_SVBNACE$S_RMSATR_VDWFIB$M_CHANGE_VOLFIB$V_CHANGE_VOL-ATR$C_ACCESS_MODE5ATR$C_BACKUP_DONEATR$S_ACCESS_MODEATR$S_BACKUP_DONEFATR$C_ABSTRACT_FID%ATR$S_ABSTRACT_FIDACE$C_RMS_ATTRIBUTESACE$K_RMS_ATTRIBUTESACE$R_FID_RVN_FIELDS ATR$C_SEMASK ATR$S_SEMASK FIB$M_ALL_GRP FIB$V_ALL_GRP&ATR$C_ACLLENGTHATR$S_ACLLENGTH FIB$L_DID_RECNUMFIB$L_FID_RECNUM FIB$W_DID_DIRNUMFIB$W_FID_DIRNUMTFIB$W_SD_FID_NUM,ATR$C_MATCHING_ACEATR$S_MATCHING_ACEJFAB$R_ACMODES_BITS FAB$R_JOURNAL_BITSEATR$C_COPYRIGHT_FIDDATR$C_VOLUME_SET_ID%ATR$S_COPYRIGHT_FIDATR$S_VOLUME_SET_IDACE$W_RMSATR_VARIANTACE$_RMSATR_SEMANTICS!FIB$C_UPDATE_FIL_PROFILE!FIB$C_UPDATE_VOL_PROFILE NAM$C_CPMFS FIB$M_ALLVER@ FIB$M_LOWVER FIB$M_NEWVER FIB$V_ALLVER FIB$V_LOWVER FIB$V_NEWVER@ NAM$M_LOWVER NAM$V_LOWVER ATR$C_STATBLK ATR$S_STATBLK FIB$M_ALT_REQ FIB$V_ALT_REQ FIB$W_DID_SEQ FIB$W_FID_SEQ$ FIB$W_LOC_SEQ, NAM$W_DID_SEQ& NAM$W_FID_SEQNAM$M_WILD_GRPNAM$V_WILD_GRPXFIB$B_SD_FID_RVNX =FIB$W_SD_FID_RVN9 NAM$B_DEVD NAM$L_DEV ATR$C_FPRO ATR$C_RPRO ATR$S_FPRO ATR$S_RPRO FIB$M_EXACT FIB$V_EXACT ATR$C_FILNAM ATR$S_FILNAM FIB$B_ALOPTS8 FIB$L_STATUS FIB$M_CURPOS FIB$V_CURPOS NAM$C_MAXRSS NAM$C_NO_RFS NAM$C_RMS32S NAM$C_RT11FS ATR$C_ACLEVEL ATR$C_JOURNAL% ATR$C_READACL ATR$S_ACLEVEL ATR$S_JOURNAL ATR$S_READACL FIB$M_HIGHVER FIB$V_HIGHVER@ NAM$M_EXP_DIR NAM$M_EXP_VER NAM$M_GRP_MBR NAM$M_HIGHVER NAM$V_EXP_DIR NAM$V_EXP_VER NAM$V_GRP_MBR NAM$V_HIGHVERATR$C_BACKLINKATR$S_BACKLINKFIB$C_CLSEREXCPACE$R_FID_OVERLAYATR$M_FLUSH_ON_CLOSEATR$S_FLUSH_ON_CLOSEATR$V_FLUSH_ON_CLOSE ACE$W_APPLICATION_FLAGS(FIB$L_LOC_ADDRFIB$M_ALLOCATRFIB$M_MOD_OVERFIB$V_ALLOCATRFIB$V_MOD_OVER NAM$M_ROOT_DIRNAM$M_WILD_DIRNAM$M_WILD_MBRNAM$M_WILD_VER NAM$V_ROOT_DIRNAM$V_WILD_DIRNAM$V_WILD_MBRNAM$V_WILD_VERATR$C_WRITETHROUGH ACE$C_RMSJNL_RU_DEFAULT ACE$S_RMSJNL_RU_DEFAULT? ATR$C_DIR> ATR$C_PTR@ ATR$C_XAR ATR$S_DIR- ATR$S_PTR ATR$S_XAR ATR$C_UIC_RO ATR$S_UIC_RO FIB$C_DEFAULT FIB$C_USEREOT NAM$C_MS_DOSFSNAM$C_TOPS10FSNAM$C_TOPS20FSNAM$M_DIR_LVLS@NAM$M_SRCHXABSNAM$R_NOP_BITS0NAM$R_WCC_BITSNAM$S_DIR_LVLSNAM$V_DIR_LVLSNAM$V_SRCHXABSATR$C_ALCONTROL$ATR$C_DELETEACL ATR$C_USERLABELATR$S_ALCONTROLATR$S_DELETEACLPATR$S_USERLABELFIB$M_PRSRV_ATRFIB$V_PRSRV_ATR/ATR$C_CLASS_MASKATR$S_CLASS_MASKVFIB$W_SD_FID_SEQ GATR$C_BIBLIOGRAPHIC_FID %ATR$S_BIBLIOGRAPHIC_FID"ACE$L_RMS_ATTRIBUTE_FLAGS ATR$L_ADDR ATR$C_FILTYP ATR$S_FILTYPFIB$M_NOHDREXT FIB$V_NOHDREXT,FIB$W_VERLIMIT4ATR$C_DELETE_ALLATR$S_DELETE_ALL!FAB$B_RU_FACILITYFAB$R_FAC_OVERLAYFAB$R_FOP_OVERLAYFAB$R_IFI_OVERLAYFAB$R_ORG_OVERLAYFAB$R_RAT_OVERLAYKFAB$R_RCF_OVERLAYFAB$R_SHR_OVERLAYACE$K_RMSATR_MINOR_VDW ATR$C_UCHAR ATR$S_UCHAR NAM$M_SVCTX NAM$V_SVCTX ATR$C_DIRSEQ ATR$S_DIRSEQ FIB$C_DSA_DW FIB$C_ENA_DW NAM$M_EXP_DEV NAM$V_EXP_DEV4FIB$L_ACL_STATUS<FIB$L_ALT_ACCESS*NAM$R_DID_FIELDS$NAM$R_FID_FIELDS FIB$M_NOCOPYOWNERFIB$V_NOCOPYOWNERACE$R_FID_RVN_OVERLAY= ATR$C_BOOT< ATR$C_VDSTG ATR$S_BOOT ATR$S_VDST FIB$L_EXSZ ATR$C_FILVER ATR$C_HEADER ATR$S_FILVER ATR$S_HEADER0 FIB$L_ACLCTXFIB$C_FORCE_MVNAM$M_CNCL_DEV NAM$V_CNCL_DEVFIB$M_WRITETHRUFIB$V_WRITETHRUDFIB$L_MOV_VBNCNT@FIB$M_NOCOPYPROTFIB$V_NOCOPYPROTFIB$M_FASTRDSQNOSFIB$V_FASTRDSQNOSNAM$C_ULTRIX11_FS NAM$C_ULTRIX32_FSFIB$C_CHECK_PROTECTION ATR$C_RECATTR ATR$S_RECATTR FIB$B_DID_NMX FIB$B_FID_NMX' FIB$B_LOC_NMX/ NAM$B_DID_NMX) NAM$B_FID_NMX#ATR$C_FNDACETYP#ATR$C_FNDACLTYPATR$S_FNDACETYPATR$S_FNDACLTYPNAM$M_SEARCH_LIST NAM$V_SEARCH_LISTFIB$M_EXCLPREVIOUSFIB$V_EXCLPREVIOUS#FIB$C_WRITE_BARRIER ATR$C_EXPDAT ATR$S_EXPDAT@  =FIB$M_SEQONLY FIB$V_SEQONLYATR$B_STRUCVERHATR$C_CACHE_SEQATR$S_CACHE_SEQFIB$M_FILE_CONTENTSFIB$S_FILE_CONTENTSFIB$V_FILE_CONTENTSJFAB$R_ACMODES_OVERLAY FAB$R_JOURNAL_OVERLAY ATR$C_DEFAULT ATR$C_ASCDATES#ATR$S_ASCDATES@FIB$M_NOVERIFYFIB$V_NOVERIFY)ATR$C_HIGHWATERATR$S_HIGHWATER.NAM$R_DID_RVN_FIELDS(NAM$R_FID_RVN_FIELDSJFIB$W_DIR_HDRSEQ_INCR EVAXYFIB$B_SD_FID_NMX"FIB$C_CACHING_OPTIONSPFIB$L_CACHING_OPTIONSFIB$M_FILE_ATTRIBUTESFIB$S_FILE_ATTRIBUTESFIB$V_FILE_ATTRIBUTESNFIB$W_DIR_DATASEQ_INCRHFIB$W_FILE_HDRSEQ_INCR#ACE$W_APPLICATION_FACILITYATR$C_ADDACLENT ATR$C_DELACLENTATR$C_ENDLBLAST"ATR$C_FNDACLENT!ATR$C_MODACLENTATR$S_ADDACLENTATR$S_DELACLENTATR$S_ENDLBLASTATR$S_FNDACLENTATR$S_MODACLENT LFIB$W_FILE_DATASEQ_INCRATR$B_STRUCLEV/FIB$B_RU_FACILITYFIB$M_ALIAS_ENTRYFIB$V_ALIAS_ENTRY*NAM$R_DID_OVERLAY$NAM$R_FID_OVERLAY4NAM$R_FNB_OVERLAYNAM$R_NOP_OVERLAY0NAM$R_WCC_OVERLAYBATR$C_VOLUME_FLAGSATR$S_VOLUME_FLAGSIATR$C_FILE_SYSTEM_INFOATR$S_FILE_SYSTEM_INFOATR$M_FILE_CONTENTSATR$S_FILE_CONTENTSATR$V_FILE_CONTENTS"FIB$C_FLUSH_FILE_CONTENTS0ATR$C_BUFFER_OFFSETATR$S_BUFFER_OFFSET%ATR$C_CACHE_POLICY_WRITEBACKLATR$C_CACHING_OPTIONSATR$M_FILE_ATTRIBUTESATR$S_CACHING_OPTIONSATR$S_FILE_ATTRIBUTESATR$V_FILE_ATTRIBUTES.NAM$R_DID_RVN_OVERLAY(NAM$R_FID_RVN_OVERLAY$FIB$C_FLUSH_FILE_ATTRIBUTESCATR$C_ESCAPE_SEQUENCES ATR$S_ESCAPE_SEQUENCES = 44= GETFIDDID4=' 8$ ? H H=D<=$ARG04$ARG15$ARG26$ARG3. .=  4=  = 4 = 4 =  *[EVERHART.JTDEMO]JTOPN.OBJ;91+,T.H/ 4HE- 0123 KPWOF56 B!#7@m#89GHJM@ SAFETY013.AT [EVERHART.JTDEMO]JTOPN.OBJ;91J_VAX62;1Hj>2OPNFILT0113-Jan-1997 21:41DEC Fortran V6.1-68OPNFILTP JTD$DB:OP)).GDB JTD$DB:OP).GDB JTD$DB:OP)$)$.GDB JTD$DB:OP$)$.GDB$@gcy$sys:filtall  ))) %EACF-F-File access to fid   by PID  rejected code:)%EACF - reject tty:) image:) username:) accpor:))$@GCY$CM:FILRST )     ) ) $@GCY$CM:FILRST )     NLA0:NONAME ) OPNFILT @GCY$PARAND*JTAUTHMAINT.EXE*: ** WARNING** File ACE missing **X()\Z(R(<#>S(P   T T        ( @L$  LIB$SYS_TRNLOG@P``xpDL`h STR$MATCH_WILD@TXX`H@H @  ! OPRMSG@@(0DLlhh @08LTt@  (@<DX@ t|P[^Ь,8Ь@LЬ T `ԭLIB$SYS_TRNLOGPk)\ ԭ <찏,>@ D찏H찏J$L$P T찏V(XH\웏@`찏-bLdhl찏npޫtx찏zˤ|ޫ ˀ˄ˈˌTSTULKPQA8 P@8  SYS$GETJPIW QA8P@8QA8$ SYS$GETJPIWDIVLENPHPIVLENP \IVLENP$hIVLENP$1ZZQ(AtIVLENPTT-$$ T$ˀ$˄TˈˌːSTR$MATCH_WILDP$ Z$˜$ˠˬSTR$MATCH_WILDP$TSTULKPRB8ːSC8˔UE8U QA8Z TD8Xˏ?UYˏUVѭYVЏʏUUPRB`SQALTPԭUE`잼 ˼˸GETIDRB8<QA8@T<>WDP LIB$INDEXPPPPTTVV@UYU\Fi`l LIB$INDEXPPPTPPWխ1R|ˈ LIB$INDEXPRӭQaQXɭQhˬ˘˜IVLENPV FOR$REWRITE_SFV˨ˬˬ˨ FOR$IO_T_DS FOR$IO_ENDTSTULKYYP FOR$UNLOCKZZPSX˴ LIB$INDEXPPPPSSVV@YQYFa LIB$INDEXPPPSPPXS1X1"` FOR$WRITE_IF UUe FOR$IO_T_DS߫d FOR$IO_X_DA Vf FOR$IO_L_RSYYXZUZIe FOR$IO_T_DSTUUWVYVEi FOR$IO_T_DSݫ FOR$IO_L_V FOR$IO_ENDSXU FOR$WRITE_IF UUe FOR$IO_T_DS߫d FOR$IO_X_DA Vf FOR$IO_L_RTTWYWDi  FOR$IO_T_DSݫ FOR$IO_L_V FOR$IO_ENDIVLENPSˬ $IVLENPU FOR$REWRITE_SFU0ˬ40 FOR$IO_T_DS FOR$IO_ENDS8<@JTSPAWNPVV1~~t FOR$READ_KFˬPL FOR$IO_T_DS FOR$IO_ENDPWWYYCVZjZXɭZhˬX\IVLENPS FOR$REWRITE_SFShˬlh FOR$IO_T_DS FOR$IO_END FOR$UNLOCKRRP FOR$UNLOCKTTP POK OPNFILTJTSPAWN LIB$SPAWN SYS$GETJPIWSTR$MATCH_WILDLIB$SYS_TRNLOGTSTULKIVLENGETID LIB$INDEX FOR$CLOSEFOR$OPENLIB$WAITOPRMSGCHKACRJ2ASC$CODE$PDATA4$LOCAL0ILICCRJCODDBNS@EXFLKIUICJPIJUNK FOR$UNLOCK FOR$IO_END FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$IO_X_DA FOR$READ_KFFOR$REWRITE_SF FOR$WRITE_IF=PBPNPP0PUPPPBP\P,GPIPPP*P/PPSPFHPTPG PPPPPP9-P AP/|P PPPPPPPwP/P6"P-'PSPXP ~PPPAPPPP^ P-F P* P 5 P ? P'p P{ PO P- P P] P P@& P PI PK PB!P *P:PHRPq_PdPPKPB2P ;PJPQPPPvPP/P PW Pw$0GETID0113-Jan-1997 21:41DEC Fortran V6.1-68 GETID GETIDP  P<[ЬЬ$RPB`QQQRRRBQQRRQ$SRTDT$UQD <GETID$CODE$PDATA($LOCALG-P2P8P:PP@PBP$DP07+0CHKAC0113-Jan-1997 21:41DEC Fortran V6.1-68 CHKACPEZ$ CHKACQ @*JTAUTHMAINT.EXE*B(U(V(I(J(K(L(S()LNM$PROCESS_TABLEP    X p$  (@Lhh,$4< (( STR$MATCH_WILD@$``hh,$4:@,H: ITMCHK@=@,H= ITMCHK@@@,H@ ITMCHK@C@$C ITMCHK@F@$(F ITMCHK@0I@$ PI ITMCHK@XI@4xI ITMCHK@L@$ L ITMCHK@L@4L ITMCHK@@OR (T@HT EXTTRNLNM@xP [Ь4@Ь HЬ\hЬp| |,~ˀVަ ˄ˈˊ$ˌ$ː ˔˖(˘H˜@ˠ-ˢLˤƌ˨ˬˮ˰ޫ˴˸˺˼ޫ޼Wg޻@Xըި4 SYS$GETJPIWըШ` SYS$GETJPIWIVLENPH IVLENP IVLENP$$IVLENPƌ$1YYQ(A0IVLENPT-$$ T$<$@TDHLSTR$MATCH_WILDP$ Y$X$\hSTR$MATCH_WILDP$gt FOR$SECNDSFaFPJPRRRRSCHQRTDaU1SCHRDbDYIHUDeD1ըިˀ|GTPRVըШXˈJGTPRVS UEHRbRR$YIHP`SS11ըި4˜˔ SYS$GETJPIWШ4 ըШ` ˴ SYS$GETJPIWRS11IVLENPHIVLENP IVLENP$IVLENPƌ`QAHITMCHKիѫ\RBHQaQQ1Ш UըUʏUUѫ1P@HSDcNUEHRDbN1YIHUDeP1SCHYDiYUEHSDcRYIHUDeXШ PըPʏPPѫ1QAHUDeX1`QAH8<ITMCHKիի`TDH`dITMCHKիի1`VFHˈˌITMCHKի ի`RBH˰˴ITMCHKիի1`UEHITMCHKի`QAHITMCHKիի`SECH(,ITMCHKի@ի1`QAHPTITMCHK¹1իի1(VFHRbR,SCHQaQ1`P@Hp| LIB$INDEXPV1V1VXX@R`SCHQRˈHaˌ˘ LIB$INDEXP1VPUU1(SCHQa,RBHUe PVXV`SCHQVˤHa˨ˬFILCK(TDHScSѫSѫS1,YIHRbRѫ Rѫ R1TVFHP`YXTDHScS1HRbVFHP`PPʏPPː FOR$WRITE_IFˀ FOR$IO_X_DA FOR$IO_END EXTTRNLNMPSWPUICLIB$SYS_TRNLOG SWPUICVVTVUERTRREV  FOR$READ_IF߫( FOR$IO_L_R FOR$IO_END $  FOR$READ_IF߫, FOR$IO_L_R FOR$IO_ENDXX(RR(X,SS,Y(Y(XTDHVfVV,V,ggs CHKAC SYS$GETJPIWLIB$SYS_TRNLOG EXTTRNLNMSTR$MATCH_WILDIVLEN FOR$SECNDSGTPRVJGTPRVSITMCHK LIB$INDEXFILCKSWPUIC$CODEf$PDATA$LOCALRJCODKIUICJPIJUNK@EXFL FOR$IO_END FOR$IO_L_R FOR$IO_X_DA FOR$READ_IF FOR$WRITE_IFkP PXPPRP'PPPPP'P?PEPYPPPP9PN@ SAFETY013.AT [EVERHART.JTDEMO]JTOPN.OBJ;91J_VAX62;1H7> 0PP=PPPP[PaP3tPj~PPKPP PPVPP8PP)P 2PLPXP(qPP\PP(PPPyP  PR&P5POP^P}lP{PPPPP0P APSP dPwsPP[P")PVP}P P.P P P_S 1ITMCHK0113-Jan-1997 21:41DEC Fortran V6.1-68 ITMCHK ITMCHKP),&P,@`t|P[}PQ} PQ }PQмV޼Wg LIB$INDEXP1P1PPR,R@ 4 LIB$INDEXPX1X1,~XX^(XnXZZX,Xn PQ^H LIB$INDEXPgTIVLENPZh LIB$INDEXPYYZYVtxYQQ|ˀ˄STR$MATCH_WILDP$YZYR,RI gv ITMCHKSTR$MATCH_WILD LIB$INDEXIVLEN$CODE $PDATA$LOCALI8PDPjPvPPPPPLPP-!j0IVLEN0113-Jan-1997 21:41DEC Fortran V6.1-68 IVLEN IVLENYPP[}PQPмRPRRQPQSSTDTT RPSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C0FILCK0113-Jan-1997 21:41DEC Fortran V6.1-68 FILCKYP FILCKP )    IUFCK  P|[}PQP ޼Rb޼ ScTbcP$ FOR$INQUIRE8FOR$OPENP1UQQl FOR$CLOSEbTc  FOR$READ_SFk FOR$IO_L_R FOR$IO_X_DA FOR$IO_ENDTkPQQbcVUQQVVcUUVVckTt FOR$CLOSEbb |FILCKIUFCK FOR$INQUIREFOR$OPEN FOR$CLOSE$CODER$PDATA$LOCALFSZC FOR$IO_END FOR$IO_L_R FOR$IO_X_DA FOR$READ_SF0BPaPP]PZP(PF: 0IUFCK0113-Jan-1997 21:41DEC Fortran V6.1-68 IUFCK IUFCKPP PD D P[ЬЬ$84SYS$OPENPRR@< SYS$CONNECTPRRP$QARbRkRHDGTXABkkRkЫЫPz IUFCK SYS$CONNECTSYS$OPENGTXAB$CODE$PDATA\$LOCALFSZC)PxX FOR$WRITE_IFX  FOR$IO_T_DS($($ FOR$IO_T_DS FOR$IO_END,IVLENP4ӭ FOR$DELETE FOR$UNLOCKѫ$1ӭVTSTULK@ LIB$SPAWNP1p EXTTRNLNMʏPѫ8)1,n (ˌIVLENPW˼W˘˔˜ˠLIB$FID_TO_NAMEʏPˏ,VV0Pի0,n (,n ˼ SYS$GETJPIW  (SYS$CHECK_ACCESSʏPPTLIB$SYS_TRNLOGP0TY1T<1LIB$CVT_FROM_INTERNAL_TIME LIB$CVT_FROM_INTERNAL_TIME40 FOR$WRITE_IFݫ< FOR$IO_L_V FOR$IO_END<8 FOR$WRITE_IFݫ@ FOR$IO_L_V FOR$IO_END"D@ FOR$WRITE_IF?˼ FOR$IO_W_R?˾ FOR$IO_W_R? FOR$IO_W_R FOR$IO_ENDݏ.SAVW­^(˔nZ^(nZV,Vn PQ^HIVLENPZZ^(ZnZV^(nVX,Xn PQ^Z˜ FOR$WRITE_IFYTXT FOR$IO_T_DS FOR$IO_L_R FOR$IO_L_R(\`\ FOR$IO_T_DSZdhd FOR$IO_T_DS FOR$IO_ENDlIVLENPVˀLIB$SYS_TRNLOGܑY1DխVː˔˘JTSPAWNխ1ˬFOR$OPENPFOR$OPENP FOR$WRITE_IFݫ< FOR$IO_L_V FOR$IO_END FOR$WRITE_IFݫ@ FOR$IO_L_V FOR$IO_END"$  FOR$WRITE_IF?˼ FOR$IO_W_R?˾ FOR$IO_W_R? FOR$IO_W_R FOR$IO_ENDݏ.SAV­^(˔nЭZZX^(nXZ,Zn PQ^(IVLENPYY^(YnYV^(nVZ,Zn PQ^Y FOR$WRITE_SFY484 FOR$IO_T_DSW<˔@< FOR$IO_T_DS(DHD FOR$IO_T_DS FOR$IO_ENDL FOR$CLOSEխ޼hXЭ\DELDOЫPDѫDӭӭӭӭխTSTULKﰫ4ptx LIB$SPAWNЫPPOKYESdelsav:# DELFILTDELDOLIB$CVT_FROM_INTERNAL_TIMELIB$FID_TO_NAMELIB$SYS_TRNLOGSYS$CHECK_ACCESSJTSPAWN EXTTRNLNM SYS$GETJPIWMYMODE LIB$INDEXIVLENFIXFID FOR$CLOSEFOR$OPENLIB$WAITCHKAC FOR$INQUIRETSTULK LIB$SPAWN $CODE$PDATA$$LOCAL0ILICCRJCODDBNS FOR$UNLOCK FOR$DELETE FOR$IO_END FOR$IO_W_R FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$READ_KF FOR$WRITE_SF FOR$WRITE_IFDPP>PPPCPO/PBPPPC8PRP XPcPuP9P!P/P&PPP$P<PwXP _PThPKwP<PPPuPR%P)pP P&PPPPP!PP P P PPPPP%P]{PPPUPNP PPP P P P P P P PK P$u P{ P P P  P, P" PO  2EXTFILT0113-Jan-1997 21:41DEC Fortran V6.1-68EXTFILTJP$@GCY$CM:MAKSPC )$)  $@GCY$CM:MAKSPC $$)  EXTFILTQ:P P$4$H,LDP[Ь޻VPЦ`ЦdQQRR,R 8 LIB$INDEXPPP,P DIVLENPWЦ ЦЦЦUUPP,P PIVLENPRզ\ FOR$WRITE_IFW\`\ FOR$IO_T_DSRdhd FOR$IO_T_DSߦ FOR$IO_L_Rߦ< FOR$IO_L_R FOR$IO_ENDզ\  FOR$WRITE_IFߦ\ FOR$IO_L_RRlpl FOR$IO_T_DSߦ FOR$IO_L_Rߦ< FOR$IO_L_R FOR$IO_ENDtIVLENPˀ˄ˈ LIB$SPAWNP EXTFILT LIB$SPAWN LIB$INDEXIVLENv$CODER$PDATA$LOCAL0ILICCRJCOD FOR$IO_END FOR$IO_L_R FOR$IO_T_DS FOR$WRITE_IF& PVP[PPS PI4(v0GETPV0113-Jan-1997 21:41DEC Fortran V6.1-68 GETPV GETPVpPPP|[}PQмR޼ P`޼QaSRSTDT`UTUU`aVTVVaUU`VVaRSH |GETPVZ$CODE$PDATA $LOCAL'P1HPPPZ1GETFNM0113-Jan-1997 21:41DEC Fortran V6.1-68 GETFNM P) GETFNMa()P DtDDP|[}PQP м SS8Ь ޫPFOR$INI_DES1_R2RDFOR$OPENP1>,T޼U FOR$READ_SF< FOR$IO_T_DS FOR$IO_ENDt LIB$INDEXPˈ LIB$INDEXPPV˜ LIB$INDEXpPPVVVPP˨Fˬ˨ FOR$READ_IFk FOR$IO_L_R߫ FOR$IO_L_R߫ FOR$IO_L_R FOR$IO_ENDkRBdeRS1L˰ FOR$CLOSE |GETFNMFOR$OPEN LIB$INDEX FOR$CLOSE$CODE $PDATA$LOCAL FOR$IO_END FOR$IO_L_R FOR$IO_T_DS FOR$READ_SF FOR$READ_IFFOR$INI_DES1_R2:PFPJP5) 1GETFNB0113-Jan-1997 21:41DEC Fortran V6.1-68 GETFNB P) GETFNBt()P DtDDP[}PQP м 8Ь ޫPFOR$INI_DES1_R2RDFOR$OPENP1޼S FOR$READ_SF< FOR$IO_T_DS FOR$IO_ENDt LIB$INDEXPˈ LIB$INDEXPPT˜ LIB$INDEXpPPTTTPP˨Dˬ˨ FOR$READ_IFk FOR$IO_L_R߫ FOR$IO_L_R߫ FOR$IO_L_R FOR$IO_ENDkR>˴˰VBSETc1H˼ FOR$CLOSE GETFNBFOR$OPEN LIB$INDEXVBSET FOR$CLOSE$CODE $PDATA$LOCAL FOR$IO_END FOR$IO_L_R FOR$IO_T_DS FOR$READ_SF FOR$READ_IFFOR$INI_DES1_R27PBPFP5) 3LOGLATCH0113-Jan-1997 21:41DEC Fortran V6.1-68LOGLATCHLOGLATCH5PEACF_LE$$TLNM$SYSTEMTPP \ LIB$SYS_TRNLOG@PT    t LIB$SET_LOGICAL@|O@ SAFETY013.AT [EVERHART.JTDEMO]JTOPN.OBJ;91J_VAX62;1H? LIB$SET_LOGICAL@ LIB$SET_LOGICAL@PP[޼RbLIB$SYS_TRNLOGPb<LIB$SET_LOGICAL LOGLATCHLIB$SYS_TRNLOGLIB$SET_LOGICALLIB$GET_FOREIGN)$CODE$PDATA$LOCALP)1GETEXF0113-Jan-1997 21:41DEC Fortran V6.1-68 GETEXF P) GETEXF,QPP[}PQIVLENPFOR$OPENPR FOR$READ_SFRP@@D@ FOR$IO_T_DS FOR$IO_ENDR RH FOR$CLOSE GETEXFIVLENFOR$OPEN FOR$CLOSE$CODE$PDATAP$LOCAL@EXFL FOR$IO_END FOR$IO_T_DS FOR$READ_SF,PS:PE=PB  1RJ2ASC0113-Jan-1997 21:41DEC Fortran V6.1-68 RJ2ASC RJ2ASCIP P|[}PQмV,n V, V, V,2 V,K V,b V ,{ V@, V, V, V, V, V,  PTime of Day Access rejectPrivs too high for accessUser on forbid. user listUser not on permit listImage on forbid. img listImage not on permit listTerminal on forbid listAccport on forbid listTerm or accpor not permitFile tamper checksum failFile password not enteredUser filter routine rejctE |RJ2ASC$CODE$$PDATA$LOCAL[ P 0P @P PP `P pP P P P P P P 2IGETCAP0113-Jan-1997 21:41DEC Fortran V6.1-68IGETCAPIGETCAPPLPP[ԫJTGLMSKkP8 FOR$EXIT_WЫPi IGETCAPJTGLMSK FOR$EXIT_WI$CODE$PDATA$LOCAL0ILICC*P"89GHJ.@@OPNFILT 13-JAN-1997 21:35  Digital Fortran 77 T7.1-61 $DATA$L$BSS$8$IODATA$iĆ$CODE$8 $LINK$0ILICCRJCODDBNS@EXFLKIUICJPIJUNKFSZC(JOPNFILTLIB$SYS_TRNLOG(J TSTULK SYS$GETJPIW(JKIVLENSTR$MATCH_WILD(J0@0B0@0"@99#?0bD @/@K@K@4G0D0G0"1"TGb @D? D 0H0<%0B2@e0t0u3gJgJ4G0 "0BR"GTB?"B@ZkGPB@Zk?"4G0 "pB"HB@Zk0@00"9 C0"!!@9D 035B0 "0B R"?"B@ZkGPB@Zk`""&"`ݲ0 Cd`"TG8b@0"LD0"HE0bSL0PŢ0⦐ײ0x3gJgJ4G0 "0BR"GTB?"B@ZkGPB@Zk""$ `0¦ "Cdݲ`"TG8bW@0"PT$B"?"0bLs0 "0P0¦ "0 "h`=xp}ݶ"?&1"`}"@GBb@Zk""8 `"`]"tGBb@ZkT!B"? T"0"P10b s"0 "h`=p}x="?&1"`}"@,"GBb@Zk""8 `"`]"tGBb@ZkT%B"? 0L0" 1"0bPs0 "0 "h`=x=p}"?&1"`}"@X"GBb@Zk""8 `"`]"tGBb@ZkT!B"? T"0"P10b s"0 "h`=p}x="?&1"`}"@"GBb@Zk""8 `"`]"tGBb@Zk""$ `0 "Cd`"TG8b@0"T""&"`0b s"Cd}`"TG8b@0"X080"<1F0B\0b<s`4G0\0¦T֢6B0`ײB"#"H9B(Z#0b{#h}`0"1"x=Gp}]=p""?&1"`}"@"GBb@ZkX""0 `"`]"tGBb@ZkX"" `"`]"tGBb@ZkX""0` 5@0" ! h=`0b\s"p}"`]"tGBb@Zk""$ `0"Cd`"TG8bF@0"d0d0"1"0vJ_&F`Cd=0h"#`"GGGGGGBb@Zk0"0hGxb@TGGp"! 0X0pBr0B "pB_BR"GPB@ZkJ0XpPb""TG_&R"GGBb@Zk0X`p"0B R"?"B@ZkGPB@Zk4GH=GPGX=4G =@`b"0"X10B R"4G]=tG=GTG="4G]@#}tGݶ@#GTG="TG_&R""GBb@ZkGG0l00"QAJQ0bb"0""Gh`0"9#p=xݶ?$8! =@"$1"#>"TG_&R"`"p"GBb@ZkG0"00"p0BR0bsuhB@`4G0p0¦֢0uBsr0C0"t0t"4GBb@Zk0l 1@0"l0l0"1$B: 0Bx0b,s00tF2`0,0¦000b"0"9#_#Gh=`]0"px}&8"@$"#"TG_&R"`"p"GBb@ZkG0"0%0B2e0t00¦֢uB0B0t0t"4GBb@Zk0x0@0"x0xB0"p10BDR @b"&!"`Cd}`"4GBb@Zk0X0"|0|?&F0B0bs05B`0\0¦֢4G0\0"T99 C0B`:B"#H"(! 0"1"h=`}0"xGpݶ=pBZ#]"?&1"`}"@"GBb@ZkX""0 `"`]"tGBb@ZkX"" `"`]"tGBb@ZkX""0` 5@0" ! h=`0b\s"p}"`]"tGBb@Zk""$ `0"Cd`"TG8b @0"d0d0"1"0vJ_&F`Cd=0h"#`"GGGGGGBb@Zk0"0hGxb@TGGK0"|! &0D0"10B|RAF0b|S4G00"G0BR"GGGb@05@c@?"TG0`"XB"HB@Zk0@00"9V 0"!05 @@?"10B4G0C`"B"HB@Zk0@00"9D 0"!00@!1 @0"10BR0bs4`B2UB35@B0"0B`R"GTB?"B@ZkGPB@Zk0¦G0G6  @"7"67""?$! `=0"Cd`"TG8b @0"?"4G0"xB"HB@Zk0@=@7?"4G0"xB"HB@Zk0@00"935 C0"0BR"?"B@ZkGPB@Zk0"G0¦G"7B! """?'9#`=0"Cd`"TG8b @0"0Т"HB 24GyB#!C!D C # C#"GB"B@ZkB_BGB@ZkB#0CF C # C#`ݷ`GB_B(R"GB@ZkA"GB@Zk4GyB#!C!D C # C#"GB"B@Zk`]GB@Zk0"0BR"G?"B@ZkA"GB@ZkGPB@Zk""$ `0"9#Cd=`"TG8bS @0"d`B""0"1"0bs"h}`p="?&1"`}"@0"GBb@ZkX""0 `"`]"tGBb@Zk""0 `"`]"tGBb@Zk0d0"d!"1B0"GB0BR"GB@ZkGPB@ZkG""&"`ݲ0#Cd`"TG8b @0"d0dh""0BR"0vJ&F`Cd]`"TG@BHb@Zk0"0?"hB20bs5`B`h0& "`ݲ0#Cd0"`="TGb@`B" 0"! 0 "h`p="?&1"`}"@<"GBb@ZkX""0 `"`]"tGBb@ZkX""0 `"`]"tGBb@Zk""Gh"! `=0BR"p]h"`]"tGBb@Zk""$ `0 "Cd`"TG8b @0"00" 1"0vJ_&F`Cd=`"4GBb@ZkB" " !""$1b$s"H("¦֢L"0 #=}=ݶ"?&1"}"@"GBb@Zk""$ `0 "Cd`"TG8bV @0"00" 1"0vJ_&F`Cd=`"4GBb@ZkP@ SAFETY013.AU [EVERHART.JTDEMO]JTOPN.OBJ_A;38VAX62;1K>@?"TG0`" B"HB@Zk0@00"9W 0"!05 @@?"10B4G0C`"B"HB@Zk0@00"9E 0"!00@!1 @0"10BR0bs4`B2UB35@B0"0B`R"GTB?"B@ZkGPB@Zk0¦G0G6  @"7"67""?$ =! `=0"Cd`"TG8b @0"?"4G0"xB"HB@Zk0@=@7?"4G0"xB"HB@Zk0@00"935 C0"0BR"?"B@ZkGPB@Zk0"G0¦G"7B! """?'9#`=0"Cd`"TG8b @0"0Т"HB 24GyB#!C!D C # C#"GB"B@ZkB_BGB@ZkB#0CF C # C#`ݷ`GB_B(R"GB@ZkA"GB@Zk4GyB#!C!D C # C#"GB"B@Zk`]GB@Zk0"0BR"G?"B@ZkA"GB@ZkGPB@Zk""$ `0"9#Cd=`"TG8bD @0"d`B""0"1"0bs"h}`p="?&1"`}"@0"GBb@ZkX""0 `"`]"tGBb@Zk""0 `"`]"tGBb@Zk0d0"d!"1B0"GB0BR"GB@ZkGPB@Zk""&"`ݲ0#Cd`"TG8b @0"d0d0"1"0vJ_&F`Cd=0"#`"GGGGGGBb@Zk0"G0,"0.0J Ba d"S.RSJGJ0T0]B TG0⦜ײ#D/{KZDK[GD?0K$,$H$@d.r$HSdJrFd>00B00¦֢B0⦤ײ4G0"0Bڠ0b{0`0 B0"!@0"115 B0BQB,R"r.rJ!".uqJTJF>0¦֢0B0⦨ײ00C0"0BZ FC_"TG_&R"tG`Bhb@Zk0@GT"TG_&R"tG`Bhb@Zk0@GG0"X!p D0X00"|1( 0BR"""&s"`}Cd]`"TG8bX @0"b"0"0"1h`="TG_&R"`"@"GBb@Zk"TG_&R"tG`Bhb@Zk> 0">"0"@?"TG0`"B"HB@Zk0@00"9 C0"!! * ) 0PB0"0BR05@B@"1pB4G0C`"B"HB@Zk0@00"9= C0"!!   001B0"0BR0bsSB21@B0T4G0¦0|4G0b[@?"tG0`"0B"HB@Zk0@:G0"0"(!"0D2 0"X10B|R2F0bX30"""&"`Cd`"TG8b@0"b"0"0"1h`="TG_&R"`"@"GBb@Zk4G0"GxbW@00@G0"! D "TG_&R"tG`Bhb@Zk00@Gy? 00?"0B2@?"TG0`"(B"HB@Zk0@00"9 C0"!! * ) 0PB0"0BR05@B@"1pB4G0C`"B"HB@Zk0@00"9= C0"!!   001B0"0BR0bsSB21@B0T0B0¦֢BF8B""0BTZ:AC0b {#0\ 00"!!5 @8C0C`! 0"9005B90C0C`"0"1"=}]0"1"=G==0bs"}"?&1"}"@"GBb@Zk0@0"! @D-B""0"T11!B0b s"0\"00¦֢65B5B0C`"0⦄"}=0"! =Gݶ0BZ#]"?&1"}"@d"GBb@Zk""$ `0"Cd`"TG8b@0"0"""_&R"`]Cd`"TG8b@0"b"0"0"1h`="TG_&R"`"@"GBb@Zk0""0"! vH&D`Cd=`"TG@BHb@Zk0"0Xb"0"1"_"Gh=`]0"px'8{#}@"$! #>"TG_&R"`"p"GBb@ZkGG0"G00"10BRuHB *@0bs`0X0|F0¦X0"""'#`Cd`"TG8ba@0"b"0"0"1h`="TG_&R"`"@"GBb@Zk"TG_&R"tG`Bhb@Zk00"!@G"TG_&R"tG`Bhb@Zk00@G "TG_&R"tG`Bhb@Zk00@GcG]]} (ݤ08@P#kQ?! OGGGG4GPtP]R2@.PJJP=P}s`BP /=BtF``P]R21@B@B%@P01B\B=CkPЀBP}P]R0BBPPP=11@1"q.QqJ'JP4PP]RBP}P=10 BP4P]R0@BPP4GP=qP@PP]RB0@"0.0Jt"S.uJRSJUFS>Pݦ֢0BP=ѲPB@"r.SrJr>".UJ>P=1"BPݦ6Gk`#~p^x^~cG#GGGG@}8G40v J`H F40, B4raJ`SH`F4r` 8` ""<_"b<Hr@JD< <J`HF<`$ "D`B$R"bHSGLvHpJDL "LQAJ`SH@FLQ`( bP`H"TGBTHq JDT- bTJ`HFT`L \`"1"B`2GbdvHpJDd d4!J`SH Fd4 Bh"blGlHq JDl BlJ`HFl bt"1"x4|B4Ge0$"4GGb4s""GGBb@Zk"0"D@\dt4G"1"Gb4s""GGBb@Zk"T""& "P`b(s"CT}P"TGb@`"H""& "P`bs"CT}P"TGb@`" ""&"P`b$s"CT}P"TGb@`"$x""&@"P`bLs"CT}P"TGb@`"`$yBv4GB2bs"tN"xC?"hB@Zk8""&"Pݲ#CTP"TGb|@Ә"`$0Br`B$"B_BR"GB@ZkI`$`"$9#7vJ?$FP=CT=BR"8vK&GX}C\]P"X="TGHBPb@Zk"%?&1"B'BR0@BbSB`$"`$"5vJ'FPCT'{#X}C\ݲP"X="TGHBPb@Zk"%?&1"B4GEHh"4GBb@Zk"!lBa*TW _p"10 BB2bsB`4G¦75Bw@/KBB"995 Cy@Y/YK C(C b{4`G`"!!5 @a@.J @(@ $ G"1"TGBb@Zk T$0""1"TGXB`b@Zk #D"1$C2Fb3F¦֢TFײ"9GD@0$"4GGb4s""GGBb@Zk"0"D0@\dt4G"1"Gb4s""GGBb@Zk" #FBbs$tFu¦֢⦤FTG"BZb{[G@T""$ P`("CTP"TGb]@`"H""& "P`bs"CT}P"TGbO@`" ""&"P`b$s"CT}P"TGbA@`"$x""&@"P`bLs"CT}P"TGb3@`"4G"B"l@& "P`¦("CTݲ'#XC\]'@{#`}d}P"`"H1"X]"`}""G0bD@Ә"!5 @ \PF.$B2d`0F¦5B85Cx@8/8KC CBZ4@Gb[ 5@`@ , H@ @05Bp@0.0JB BBR25@Br@r.rJ@B5KB1@45Bt@.JBUB ¦֢65Bv@.JBB$8D@b"!0 D "15 B 05Bp@p.pJB BBR4@FUè"l@& "Pݲ`"(9#CT='{#X}C\?&@1"`=dP"`"H1"X]"`}""G0b@Ә"!!D0"1' B"l@& "P`¦("CTݲ'#XC\]'@{#`}d}P"`"H1"X]"`}""G0b@Ә"! D0"1t B"l@&"P`¦$"CTݲ'#XC\]'@{#`}d}P"`"$1"X]"`}""G0bf@Ә"!$D0"1' B"l@&"P`¦$"CTݲ'#XC\]'@{#`}d}P"`"$1"X]"`}""G0b?@Ә `?="!"D0"1& 8B"l@& "P`¦"CTݲ'#XC\]'@{#`}d}P"`" 1"X]"`}""G0b@Ә8" l@?&@1"P=`bLs"CT}&"XC\='@#`dP"`"1"X]"`}""G0b@ ""1BR2Fb3X"l@& "P`"9#CT='{#X}C\&@"`dݲP"`" 1"X]"`}""G0b@G""1BR2Fb3"l@&@"P`"L9#CT='{#X}C\&@"`dݲP"`"1"X]"`}""G0b@G""1BR2Fb3(,âFl@?"TG`"B"B@Zk0@"9 C"!! \ [ 4B@?"10Bp@4G`"B"B@Zk0@"9J "!0@#! C (#B2,ct¦֢B4B5Bw@B5vJ_'FPTP""1"BR"tGbJ@ "(#BBRbsSFT(âB$,B"9BZ:Gb;,#@T#X0FcBr¦5vJBpB"Gb{#X}P="1"h=G`}"?&1"P}""G(B0b@Zk "! &"PCT=&s"X}C\&"`ݲ#Cd"GP]"X}"`""GxBb@Zk"5B'"1"TGBb@Zk ?$! P=CT_&R"X]"C\P""1"X]"tGBb@Zk"""1"TGBb@Zk4G"B" BR25@BbrBs".J¦֢ Fز"995 CBZ_G_GP]"GBP]"4GhB@Zk0@"BB"¦"XݶGP="1"`="?&1"P}""GHBPb@ZkHNB""$! X=GP="`"?&1"P}""GHBPb@ZkH9"!p L0"1BR2Fb3F¦"T#BZ:C b{`G"TBRBX#bs3B F¦X㢘B _#"Yb{`G"4GcGp]x]}#k#~(^0^8~@HPGGGG]Gc]?"TG"]B@Zk0@"! @" "14 B_"3UB"C"GTB?"B@ZkG B@Zk?"4G"PB"B@Zk0@"! @"} |"1BR35 B25@B"1B"GB B"4GB@ZkG B@Zk?"4G"(B"B@Zk0@#=\,""&"bs"C}"TGbY@"?"4G" B"B@Zk0@"9"! 9@B0D: $BR21@B1v J&3F=C⦤"2v@J_'ZF ]C$" ="TGBb@Zk"%?&1"BBRbs rB@"3B"BR"GTB?"B@ZkG B@Zk4GG(]0]8}@HP`#kGGGGr.rJ+@`JR4Gݦ6 B @0@=ݦ֢65BVB.JB 0@=ݦ֢ BGGGGk.W JF@#~^^~޴cGGGGGe.eJ`J8}"CbSGXb"8=C1!JH@="! P="?"_&R"@"GhBpb@Zk8b"8C H4GH@P=4GX4G`hBZ#p]TGx="TG_&R"@"G(B0b@ZkG4G00"1!N0BR2Bb34JJ5JJBb""TG_&R"GGHBPb@Zk "eÈb"BR"@]"P"H"TG_&R"@""GxBb@ZkG7"4G"BR FB_dC".TJJtBdpN"9C9#Y/YYK'KOB 8O= C"#0 B#0Bbs fBb""TG_&R"GGHBPb@Zk""QAJpSJPFQbSDcG]]}ݤ#k.T JF$#~ ^(^0~8GG=]4G4G B(b@Zk "& &4G0B8b@Zk "& &G?"B2G)}$s"..JU JF ¦&v & "&! &0 "& & "&1" B&R" b&s"G@b@ & B&RbS &GG ](]0}8@#kGGGGGGբ6JJBua0JJGk0#~^^~cGGG8=" '4G'G"'1v HpJ0D'14G'@AJaS HAF'@G$'"$'1""'!B'G'0&H`H D'0TG"'QXJ`H@F'QtG"('('""'B''"''GB'vHq JD' "'J`SHF'( "'B'R""'A''"'\#B&2GBb@Zk"''pF"'C"SF@,'t4G¦0'0'N0'Ox@C?"0'90 CB0':b0'{lCd"6h"6B6r3gJgJ4G."B6R"GTB?"B@ZkGB@Zk?"4G." B"B@Zk0@ '" '9 C" '!!@9D  '35B."B.R"?"B@ZkGB@Zk""&"`ݲ. Cd`"b#_"4'#60 #B62c6t¦66w3gJgJ4G/"B6R"GTB?"B@ZkGB@Zkx""$ `"/! Cd=`"b#t_"8'`#% B"G"4'1b.s"8'/"¦D;"hݶ`x}p="?&1"`}"<"GpBxb@ZkX"" `"`]"tGBb@Zk`!pB"G`""8'1b/s"D;"h`=p}x="?&1"`}"`"GpBxb@ZkX"" `"`]"tGBb@Zk`%B"? 4'".1"b8's/"0"h`=x=p}"?&1"`}""GpBxb@ZkX"" `"`]"tGBb@Zk`!pB"? `""8'1b/s"0"h`=p}x="?&1"`}""GpBxb@ZkX"" `"`]"tGBb@ZkP""$ `0"Cd`"b#_"<'`#% B"""4'1b.s"8'/"¦2"hݶ`x}p="?&1"`}""GpBxb@ZkX"" `"`]"tGBb@Zk`!pB"? `""8'1b/s"2"h`=p}x="?&1"`}" "GpBxb@ZkX"" `"`]"tGBb@ZkP""$ `2"Cd`"b#|_"@'<#&0@#B&2b&s `?4"@U"&"b?s"8GBb@Zk&?$! D&D4GB '2 bs`<'4 uB0" B_BR"GB@ZkJ<' b""TG_&R"GGpBxb@Zk<'` "B0R"?"B@ZkGB@Zk4GH=GPGX=4G@b""<'1B0R"4G]=tG=GTG="4G]@#}tGݶ@#GTG="TG_&R""GPBXb@ZkGOTGD'0"&QAJ&Q`b"(""Gh`"&9#p=xݶ?$8! =Q@ SAFETY013.AU [EVERHART.JTDEMO]JTOPN.OBJ_A;38VAX62;1B>7"\1"#>"TG_&R"`"p"G@BHb@ZkG"H'H'"H'1BH'RuHB @bH'sfB`DL'L'"4GBb@ZkD' 1@"D'D'"p(1BP'2bP'saFP't4G¦T'4G?" '9 _'Z#`]8 Cd&"hB9R"Cl]T'""?1"B(R"`}"h"Hb#_T'5@" & "`Cd=&s"h}:"Cl`""&1"h]"tGBb@Zk"X'X'0F"X'B'R "SF\'T\'¦X'֢5B&YB:8KKC#3"?"GB@Zk4G`' ""?$! `=¦D;"Cdݲ`"b#>_"d'"&!&0"&1B&24GX't ' ¦d'֢D;"6vJ'F`ݲCd$ h" _=3! Cl=`""&1"h]"b`'s"Gh'"G`Bhb@Zk"X'X'0F"X'Bh'R0@Fbl'SX'l'K3"?"GB@Zk4G`'ײ@?"TGx("B"B@Zk0@p'"p'95 "p'!05 @@?"10B4GCx("0B"B@Zk0@t'"t'9# "t'!p'0@!1 @"t'1Bt'Rbp's4`B2UB35@B3"Bx(R"GTB?"B@ZkGB@Zk¦t'֢p'6B6QB`' ?' 9#"( (5b"`'"31"h=`B'Z#p]"?"_&R"`"GBb@Zk'G(b6 @4GG#TG"&1"Gb's"'"GGBb@Zk"X'("4G8B"0B@Zk3"4G8B"0B@Zk4GX'ײ '8""`'9"3! 9v K?&1G`=Cd=& "hB(Z#Cl]`="h]"b's"GBb@Zk"X'X'0F"X'BX'R5@B@b'spFv`>"?"GB@Zkx'@?"TGx("B"B@Zk0@p'"p'9a "p'!05 @@?"10B4GCx("0B"B@Zk0@t'"t'9O "t'!p'0@!1 @"t'1Bt'Rbp's4`B2UB35@B>"Bx(R"GTB?"B@ZkGB@Zk¦t'֢p'6B6QBx'HB"#"x'9">! `'3"";1"h=`x=p="?&1"`}"h"GpBxb@Zk""$ `;"Cd`"b#_"|'4G'0"'1_"2F "TG_&R"GG0B8b@Zk"TG_&R"tGBb@Zk"T'!5 @" '?"F!B 'R5@B@G(bE@ ?$! `=CdBl'R"#^`"GGGGGGPBXb@Zk"X'tGGPFK@""B"& s"`}Cd=&"hݲCl]?' 9#p=b'{#Ct}&"G`]"h}"p"'"GBb@Zk"X'X'0F"X'BX'R @b'sy`B `'4JJBS&YE"B3"?"GB@Zk4G`'ײ""'#`D; Cd`"b#:_"d'"&!&0"&1B&2bd'sD;"3v`J&uF`}Cd'#hb3{#Cl}`""&1"h]"b`'s"Gh'"G`Bhb@Zk"X'X'0F"X'Bh'R0@Fbl'SX'l' 3"?"GB@Zk4G`'ײ ?' 9#(" (!#TG"&1"Gb's"'"GGBb@Zk"X'("4G8B"0B@ZkM3"4G8B"0B@ZkF8"¦`'֢3"6vJ'F`ݲCd?& 1"h=b(s"Cl}`="h]"b's"GBb@Zk"X'X'0F"X'B"& s"`}Cd]&"hݲ1#Cl`""&1"h]"tGBb@Zk"l'X'"11?F B5+BV BX'R@  ""'1"GtGPBXb@Zk"'""'1"GtGPBXb@Zk"'B"4"h4G`}'"p"?&1"`}""GpBxb@ZkB"4 hG`b's"p}"?&1"`}""GpBxb@Zk@B"4 "&! hG`=p="?&1"`}""GpBxb@Zk""& `"`]"tGBb@Zk""& `"`]"tGBb@Zkd'35@GaB#7CF C # C#"GB_BD;R"B@ZkB"GB@Zk4"W"G?"B@ZkGB@Zk""?'9#`=4#Cd`"b#_"'"'!"pB"GB@ZkB4R"G?"B@Zk4"G?"33B]"B@ZkGB@Zk¦'֢B⦐'ײB"#@'"29#"7! h=`x=p"?&1"`}""GpBxb@Zk""& `"`]"tGBb@Zk""& `"`]"tGBb@Zk""`'"3! 'B4R"h=`x]p"`]"tGBb@ZkP""$ `7"Cd`"b#_"'" & "`Cd=&s"h}1"Cl`""&1"h]"tGBb@Zk"X'1FB5 B:G4GB'2b's`'8""7"4vJ&F`Cd`"TGBb@Zk"X''b"""G4G=]"4G=TG}tG=4G=TGݶ"G_&R""GPBXb@ZkGPb"" G4Gh=`"p4GxTG=TG}= n=TG]"G_&R"`"GPBXb@ZkGB""4! h=4G`='"p"?&1"`}""GpBxb@ZkB"4 hG`b's"p}"?&1"`}""GpBxb@Zk@B"4 "&! hG`=p="?&1"`}""GpBxb@Zk""& `"`]"tGBb@Zk""& `"`]"tGBb@Zkd'35@GaB#7CF C # C#"GB_BD;R"B@ZkB"GB@Zk4"W"G?"B@ZkGB@Zk""?'9#`=4#Cd`"b#_"'"'!"pB"GB@ZkB4R"G?"B@Zk4"G?"33B]"B@ZkGB@Zk¦'֢B⦐'ײHb"'4 "d'9"D;! `'3"h`x=p="G_&R"`""GBb@Zkb""G_&R"GGpBxb@ZkG'"x(! &@"`Cd=&""'1"G`}"GpBxb@Zk"''uB"'1 FFtGG4GB'R@Fb's"tF@%`'F!¦'֢G(b@|'";! vH&D`Cd=b's"#~`"GGGGGGPBXb@Zk"X'GGcG]]}#ks"`#~x^^~cG#GG8=#_"2D A@PF4G@=@ 4GBA2AN"A1 Nq@1C0I0A0@"ABARDB_\"4F`"8FB4Fr3gJgJ4G4C"B4FR"GTB?"B@ZkGB@Zk?"4G4C"B"B@Zk0@A"A! @ABF "A135 B4C"B4CR"?"B@ZkGB@Zk""&"Hݲ4C CLH"b#_" A#4F0 #B8F2c0CxBIZd [C_b""G_&R"GGBb@ZkcG]]}ݤ#k&.Q &J0FL. JV JF>0#~^^~޴cGGGG8]G.JJ@8}sX}XPP=H=Jb"@]C2AJ4Gh`]4Gp="x4G]TG"G_&R"`"GBb@ZkGtb"? J"h`="G_&R"`" "GBb@ZkGW?"4GJ"B"(B@Zk0@?"4GJ"B"(B@ZkP@J?"4GJ"`B"(B@Zk"JJ"J! C?B"J"J115 B0BbJs"qBh=`¦J"pݶBJZ#x]J "?&1"`}" "GB ~= b@ZkG"J!J0"J10 BBJ2G"J1"TG0B8b@Zk0@0b""G_&R"GGBb@ZkcG]]}ݤ#k%.Q %J0FV#~(^0^8GG=  & "C?$P! =L C""L1"]"tGBb@Zk"KK4G]2 b"0"P"& "ݲC}?'9#=C$ C$"=" ]"GGG@BHb@Zk"KG(]0]8@#kp#~h^p^x~cGGGcH""$ 8C<=8"b#_p"lL0b"p"lL!@}8=_"H]4GP4GXTG`]"G_&R"8"GBb@ZkG*P"4Gp"pLb"pBpLR"TNPCR""@]8"G_&R"8""G0B8b@ZkG p"pL!P0p"pL10 BpBpL2pbpLsdBb""G_&R"GGBb@ZkcGh]p]x}#kGGGGG!"GG]@Zk"]"G0]@ZkPF"X]"G0]@ZkF"]"G0]@ZkF"]"G0]@ZkF"]"G0]@ZkF"8]"G0]@ZkF"`]"G0]@ZkF"]"G0]@Zk"F"@]"G0]@Zk"F"x]"G0]@Zk"F"]"G0]@Zk"F"]"G0]@ZkGk#~^^ GG? 0tL"4G(B0b@Zk"xLtL"BxLRR"@8"4GHBPb@Zk"! ""G]] 0#kGG 0=Gkp#~h^p^x~cGGG#.#J5` J8=cB"8C0JP}H|L `GX="?&1"H}"("GBb@Zk@|L"4G8B@b@Zk 0b""G_&R"G("GBb@ZkcGh]p]x}#kC.R CJQFà#~H^P^XcGG0b""L! @="TG_&R"@"GBb@ZkL "TG_&R"tGBb@Zk8cGH]P]X`#k4%GLIB$SYS_TRNLOG4&b#LIB$SYS_TRNLOG4%@LIB$SYS_TRNLOG4G SYS$GETJPIW4b# SYS$GETJPIW4@ SYS$GETJPIW4G SYS$GETJPIW4b# SYS$GETJPIW4@ SYS$GETJPIW4 G(OTS$MOVE4$@(OTS$MOVE4 GOTS$STRCMP_EQLP4 @OTS$STRCMP_EQLP4!GSTR$MATCH_WILD4"b#STR$MATCH_WILD4! @STR$MATCH_WILD4!GSTR$MATCH_WILD4"b#STR$MATCH_WILD4!@STR$MATCH_WILD4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4G OTS$INDEX4@ OTS$INDEX4D GL OTS$MOVEM4H @L OTS$MOVEM4P GX OTS$FILL4T @X OTS$FILL4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL< G DFOR$WRITE_INT_FMT< b#DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT_XMIT < b#DFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT<0 G< DFOR$WRITE_INT_FMT<4 b#DFOR$WRITE_INT_FMT<8 @< DFOR$WRITE_INT_FMT<T G` DFOR$WRITE_INT_FMT_XMIT<X b#DFOR$WRITE_INT_FMT_XMIT<\ @` DFOR$WRITE_INT_FMT_XMIT< G DFOR$WRITE_INT_FMT< b#DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT<X Gd DFOR$WRITE_INT_FMT<\ b#DFOR$WRITE_INT_FMT<` @d DFOR$WRITE_INT_FMT<| G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT< G DFOR$WRITE_INT_FMT< b#DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT< GDFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<<GHDFOR$WRITE_INT_FMT_XMIT<@b#DFOR$WRITE_INT_FMT_XMIT<D@HDFOR$WRITE_INT_FMT_XMIT4G LIB$SPAWN4b# LIB$SPAWN4@ LIB$SPAWN4 HGPOTS$STRCMP_EQLP4 L@POTS$STRCMP_EQLP4G DFOR$CLOSE4b# DFOR$CLOSE4@ DFOR$CLOSE4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4hGt DFOR$OPEN4lb# DFOR$OPEN4p@t DFOR$OPEN< GDFOR$READ_KEY_FMT<b#DFOR$READ_KEY_FMT<@R@ SAFETY013.AU [EVERHART.JTDEMO]JTOPN.OBJ_A;38VAX62;18>VDFOR$READ_KEY_FMT4#GLIB$WAIT4$b#LIB$WAIT4#@LIB$WAIT<GDFOR$READ_KEY_FMT<b#DFOR$READ_KEY_FMT<@DFOR$READ_KEY_FMT4#G LIB$WAIT4$b#LIB$WAIT4#@ LIB$WAIT,GOPRMSG, b#OPRMSG,@OPRMSG<pG|DFOR$WRITE_INT_FMT<tb#DFOR$WRITE_INT_FMT<x@|DFOR$WRITE_INT_FMT<GDFOR$WRITE_INT_FMT_XMIT<b#DFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT_XMIT<b#DFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT <GDFOR$WRITE_INT_FMT_XMIT<b#DFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT4G LIB$SPAWN4b# LIB$SPAWN4@ LIB$SPAWN4TG\ OTS$INDEX4X@\ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4 G(OTS$FILL4$@(OTS$FILL4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4 G(OTS$FILL4$@(OTS$FILL4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4hGp OTS$MOVEM4l@p OTS$MOVEM4xG OTS$MOVEM4|@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4 GOTS$FILL4@OTS$FILL<GDFOR$WRITE_INT_FMT<b#DFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT<GDFOR$WRITE_INT_FMT_XMIT<b#DFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT_XMIT<b#DFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT4G  OTS$MOVEM4@  OTS$MOVEM4$G,OTS$FILL4(@,OTS$FILL, GJTSPAWN, b#JTSPAWN, @JTSPAWN<`GlDFOR$WRITE_INT_FMT<db#DFOR$WRITE_INT_FMT<h@lDFOR$WRITE_INT_FMT<GDFOR$WRITE_INT_FMT_XMIT<b#DFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT_XMIT<b#DFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT_XMIT<b#DFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT,\GhOPRMSG, `b#OPRMSG,d@hOPRMSG<GDFOR$WRITE_INT_FMT<b#DFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT,pG|OPRMSG , tb#OPRMSG,x@|OPRMSG4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4PGX OTS$MOVEM4T@X OTS$MOVEM4\GdOTS$FILL4`@dOTS$FILL4G OTS$INDEX4@ OTS$INDEX4 G$ OTS$INDEX4 @$ OTS$INDEX4P GX OTS$MOVEM4T @X OTS$MOVEM4\ Gd OTS$FILL4` @d OTS$FILL4uMT4OGO DFOR$CLOSE4Ob# DFOR$CLOSE4O@O DFOR$CLOSE47`PGlPSYS$OPEN48dPb#SYS$OPEN47hP@lPSYS$OPEN49PGP SYS$CONNECT4:Pb# SYS$CONNECT49P@P SYS$CONNECT,IxSGSMYMODE,J|Sb#MYMODE,IS@SMYMODE4\TGdT OTS$MOVEM4`T@dT OTS$MOVEM4hTGpTOTS$FILL4lT@pTOTS$FILL4TGT OTS$INDEX4T@T OTS$INDEX4TGT OTS$MOVEM4T@T OTS$MOVEM4TGTOTS$FILL4T@TOTS$FILL4UGU OTS$MOVEM4U@U OTS$MOVEM4UGUOTS$FILL4U@UOTS$FILL<4VG@VDFOR$WRITE_INT_FMT<8Vb#DFOR$WRITE_INT_FMT<trb#DELDO,=xr@|rDELDO4XsGds LIB$SPAWN4\sb# LIB$SPAWN4`s@ds LIB$SPAWN4tGt OTS$MOVEM4t@t OTS$MOVEM4tGtOTS$FILL4t@tOTS$FILL4tGt OTS$INDEX4t@t OTS$INDEX48uG@u OTS$MOVEM4DFOR$WRITE_INT_FMT<hwGtwDFOR$WRITE_INT_FMT_XMIT<lwb#DFOR$WRITE_INT_FMT_XMIT<pw@twDFOR$WRITE_INT_FMT_XMIT<wGwDFOR$WRITE_INT_FMT_XMIT<wb#DFOR$WRITE_INT_FMT_XMIT<w@wDFOR$WRITE_INT_FMT_XMIT4xG(x LIB$SPAWN4 xb# LIB$SPAWN4$x@(x LIB$SPAWN4(zG4z DFOR$OPEN4,zb#X DFOR$OPEN40z@4z DFOR$OPEN<5tzGzDFOR$READ_SEQ_FMT<6xzb#XDFOR$READ_SEQ_FMT<5|z@zDFOR$READ_SEQ_FMT4zGz OTS$INDEX4z@z OTS$INDEX4zGz OTS$INDEX4z@z OTS$INDEX4zGz OTS$INDEX4z@z OTS$INDEX<-{G{DFOR$READ_INT_FMT<.{b#XDFOR$READ_INT_FMT<-{@{DFOR$READ_INT_FMT4(|G4| DFOR$CLOSE4,|b#X DFOR$CLOSE40|@4| DFOR$CLOSE4d}Gp} DFOR$OPEN4h}b# DFOR$OPEN4l}@p} DFOR$OPEN<5}G}DFOR$READ_SEQ_FMT<6}b#DFOR$READ_SEQ_FMT<5}@}DFOR$READ_SEQ_FMT4}G} OTS$INDEX4}@} OTS$INDEXX X4}G~ OTS$INDEX4~@~ OTS$INDEX4$~G,~ OTS$INDEX4(~@,~ OTS$INDEX<-~G~DFOR$READ_INT_FMT<.~b#DFOR$READ_INT_FMT<-~@~DFOR$READ_INT_FMT,MGVBSET,Nb#VBSET,M @VBSET4<GH DFOR$CLOSE4@b# DFOR$CLOSE4D@H DFOR$CLOSE4%GLIB$SYS_TRNLOG4&b# LIB$SYS_TRNLOG4%@LIB$SYS_TRNLOG4OGLIB$SET_LOGICAL4Pb# LIB$SET_LOGICAL4O@LIB$SET_LOGICAL4\Gh DFOR$OPEN4`b#` DFOR$OPEN4d@h DFOR$OPEN<5ЁG܁DFOR$READ_SEQ_FMT<6ԁb#` DFOR$READ_SEQ_FMT<5؁@܁DFOR$READ_SEQ_FMT44G@ DFOR$CLOSE48b#` DFOR$CLOSE4<@@ DFOR$CLOSE4GOTS$FILL4@OTS$FILL4GOTS$MOVE4@OTS$MOVE4ĂĜOTS$MOVE4Ȃ@̂OTS$MOVE4GOTS$MOVE4@OTS$MOVE4G OTS$MOVE4@ OTS$MOVE4$G,OTS$MOVE4(@,OTS$MOVE4DGLOTS$MOVE4H@LOTS$MOVE4dGlOTS$MOVE4h@lOTS$MOVE4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4̃GԃOTS$MOVE4Ѓ@ԃOTS$MOVE4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE,Q\GhJTGLMSK,R`b#H JTGLMSK,Qd@hJTGLMSK4SG DFOR$EXIT4Tb#H DFOR$EXIT4S@ DFOR$EXIT<-GDFOR$READ_INT_FMT<.b# DFOR$READ_INT_FMT<-@DFOR$READ_INT_FMT,UGKGETKI,Vb# KGETKI,U@KGETKI<KGDFOR$WRITE_SEQ_FMT<Lb# DFOR$WRITE_SEQ_FMT<K@DFOR$WRITE_SEQ_FMT43hGt DFOR$INQUIRE44lb# DFOR$INQUIRE43p@t DFOR$INQUIRE4G DFOR$UNLOCK4b# DFOR$UNLOCK4@ DFOR$UNLOCK == := *JTAUTHMAINT.EXE*0= 88888@ DFOR$OPEN=AX8; DFOR$CLOSE=88  8 = GCY$PARAND= 88  88 8OTS$MOVE= @ SYS$GETJPIW; JTSPAWN8OTS$STRCMP_EQLP=8 =8 ; ;=\ =)0 DFOR$REWRITE_FMT=H= P=8` DFOR$WRITE_INT_FMT=(DFOR$WRITE_INT_FMT_XMIT8 OTS$MOVEM ;=0;=P8 7 DFOR$HANDLER=$;;;8 OTS$INDEX8OTS$FILL=  DFOR$UNLOCK; ;=(= 0 DFOR$READ_KEY_FMT LIB$SPAWNOPRMSG= 8 88 8 !STR$MATCH_WILD=888#LIB$WAIT;=R(=Z(= S(=<#>%LIB$SYS_TRNLOG==X(=hZ8       2 3   A ** WARNING** File ACE missing **`= 8h;=xp ;= 065 ] i H x$ $= L/4: := 14=  =  1484= CHKAC 14=JB Ȑ gܠȁ  ! !>@ )ܬ  9 G($ $= l14: := 0H4= 8 = XH44= ITMCHKXH4=.&% Nlؘ$$ $= H4: := lK4= 8 = K44= IVLENK4=3+*    $ $= K4: := PL4=  = hL44= FILCKhL4=_WV      0 $ $= L4: := O4=  = (P44= IUFCK(P4=3+*  !$ $= TP4: := dQ4= X = Q44= GTXABQ4=  !$ $= Q4: := Q4= \ = Q44= DELFILTQ4=TL ; , >ج̄ ?  /? /? /? 8? 8? 8? ]? ]? g? ? ? ? ? ?U@ SAFETY013.AU [EVERHART.JTDEMO]JTOPN.OBJ_A;38VAX62;104 Ȱ ?O ?̠0 @̠F 5@ 5@ :@ :@( > $ $= R4: := ts4= ! = s44= EXTFILTs4=]UT Y@, {@ج @ @̜ q@ N$ $= s4: := ^~޵cGG@&H= "P]b""`C X&PB"\}G`X"d71"Xb`]"@Zk"7!'vH!  3@&,&"`B?? (""' s"G0J6J$"2AJXB5J'bVBG #$"B((#HH#' G $ g H*L( ;aK(7"`C '0'_&('#8R"81>J8wK"0J,Dz2B0'4'B8 7"@,7"D GHGL:GKP`b# @4G @=GGG0!"7"PB#Xb4GG@Zk@\="GG0 7"G\= \@PB4GXb\]#G@Zk4GG!1@A4Q@(P.AGPJ8q@DB@(.AG0@J0@B(y/G0@0@yK"dC ` @AG(P.GPJDB@GHȲ4GG:1 CA8Q C.AGJ5q CB,AG0BH0B@.G0B0BJGB 9 CAG.JB G H4G? 31 @A$"$.5Q @AJGB$.$ G0@J0@B9q @A$Q"$Q/G0@RK0@DC @! @A$#$.GGJB G$4GG21 BALU#L.G'q BJAB9Q BAL L4,0BG H1 B$@ L.L{"A0BJGB L,L"0BGHG@0B"Gb"H{#sG>!I!BGG?"@Zk4G"_ 1BA1QB7,AG7H$@ .0 CGJGB5qBA0 C.GJB 6BA0 CX.GXJDB@0 Cy"GG""$(G BG$"GGG@Zk1?'BCb9#9D&C0@`=F$#dBh`"lh="TG@Zk%?$! D $(@1v JB&b3B`=&$H"d]""hlݲ`"h="TG@Zk%$ D`b#@4GE G@ %@=k! } C &_&,8D4G$ѡ 4G2D6!F +D0D` FHPݦ."U/v"B"JZUK{J"[GU?,U#u/61"6,H[zKV.pH7HpGz?.SJu"`SJWJ"F>U/{0H "ZPK"[GP?P]Pr.R"C rJ 0`F @Ӑ4G@]G?"F#<G@:TBB85JGJG@ZkG@B@ZkB4G?"GB"@Zk0@@= C@D9 1@F BGGG?"@Zk@BG@Zk4GG_ 1B@3QB5.@G5J0qB$B& t/@0BGtKdC`.0BGJB7B@0Bz/GzKdC`0B6"?51B@G,H@0BV#G_GGGH84GbGGxTBBDk!L9G;gKPygK8 x?"G@Zk@BG@ZkG4GG!1BaA2QB.rAGJB#S/0BGSK0BDC@;qB{ApA/0BGKC3,0BG3HG$@ 7BwA0B.GJB0BV"_GTyG? `? $`4aHp?&h="1"xB"h}"BGb"@Zk IB"p}""bh]"htG@Zk"@""Bh]"btG8 h@Zk@_"?&T T"1" Bph}"h]0B"x"b@"G@ZkB Ip}"b""hh]"tG@Zk@"B""bh]"8 htG@Zk@_"#aH?&T 1"`@"h}" Bp"h]B"l"bGx}@ZkB$Ip}"b""hh]"tG@Zk@}"B""bh]"8c h}tG@Zk@}?"@"0B"Th}"bG"`@c Bp}T h=?&b1"x=@ZkB(Ip}"b""hh]"tG@Zk@"B""bh]"8 htG@Zk4G +1@k@2Q@.r@GJ6q@B.v@0AGJ$@B7/d@0AG7KG$C ,0AGH@0A( ?G G4G"51B@GW.:QB0`BWJ0`BDB@@G,0`B0`BS"HG@!qB@4B$.@G$J$B /GKC_GEG⥧CB"dGG!p6Z#h?&](`AB1"x"b@B"h}""G@Zk"B""bh]"H( ptG Hh@Zk"B8""bh]"h=tG@Zk"@8""Bh]"btG0 h@Zk B"b8""hh]" =tG@ZkB(1A p(Ibh"""h]"tG@ZkBd h"b""h]"tG@Zk4G!_ 1AA3QA!.AG!J$B .0@GJGB7qAA0@X/GXKDC @(AA0@.GJB0@'"?GC4vJ&BBhl#078#b>h"GGGGGG@Zk 070D`b#@TGxGGGoGR"` B@Zk;B_&b"TGR"b"GG@ZkB"GG?"@Zk@BG@Zk4GpGxGݶ$HhtGG4GTG= }@"]h#_&]"ݶR"b""=TG]GBb@ZklGG X8 _"$X8 p_%hJ!66! x=TGG0Jb"#B8""h"bx"G@Zk GG G_AuHA_AuHA2F0DD FE `Bh"4Gbh@Zk/1A DE/@EG,"&x8"p_&6! ="TG8"#BR"b"p"b"G@ZkDB@]@u@6R"*JF2R DBh"b4Gh@Zk0AO!_ç@Ah"D B?$b!! h=x l4G@Zk\D%8Db?& MEACEB d8s"G!ph6""b/`Ax"1"@B"h}"G@Zk"¥""Bh]"btGHΠ(!pݵ&Hhݴ@ZkB"b8""h=h]"tG@Zk@ݥ"B8""bh]"0 hݴtG@ZkB!b"hݵ8""h]"tG@Zk/1AB !/Ipb"h""h]"tG@Zkd=!B"h=""bh]"tG@Zk4G!'1AAG-3qAAIGA!QAA0@P.GPJDB@.0@GJB -AA0@7/G7K$C 0@F#_GC;v`K?%B iCh=l#070"b>h"GGGGGG@Zk`b# 070D@TGT % MEd 4G="@=GHhb#P} AE@@?"d"B" 8EBTG@Zk0@~B&1A@ @1@4Gd"B"@Zk0@s"AB 1@0A @ 1@I)!dD"GGTBG?"@Zk@BG@ZkG?"BG!G@Zk4G?#'1 C'AG.2q C2AJB.Q C.A0C .GG J$B .0CGJB 9 C9A0C:,G:H$@ 0C GB4G?"G8B"@Zk0@ 8B4G?"G8B"@ZkB0@ 1@GGG?"@Zk@BG@ZkGBG?"@Zk4G 81@8A!Q@,!A q@H A@.0AJB .0A J$B &@&A0A.JB0A"GB4GB"G GH:B8@<CGG<CGGGGG@ZkGBG@ZkGBGG@Zk7C¥<@BGG<CGGGGG(N"G@ZkGBG@ZkGBGG@Zk4GBA<BGG4GGGB"G@ZkBGG@ZkB""GG?"@ZkGBG@ZkGB?"G33B]"@Zk@BGG@Zk81BAG.,G1qB.HA$@ QBA0@.GGJB.0@GJB 7BA0@-GIA0@"GGb?#B?&p=8s"h=6"x "bG"1"0B"h}"G@Zk¤"B8""bP]"6  PݴtG@Zk"@ݤ""BP]"btG0 Pݴ@Zk B&@GGBGGG@ZkG@B@Zk4G !1@AG/0q@AKGC.Q@A0@.GJBq.0@GqJdB ` @A0@t/GtKdC`0@"GC7vJ0B'8bBPTP"""TG@ZkC0D `" ɰG8E\¥B"`4GB87!,G@ZkG@BG@Zkx¦ h⦠ζ0".P Dp¤p"PBδ.N D`X0".!DHb@hBnbNn"D`"0.$D`¤"Bδb.Nn(D("B.N0D `Bb¦Nnζ!H"0.0 H"BP DPb.Nn DH"XBb.Nn!D8 B0b0¦Nnζ""$B BE)!p= h69#8J!x=b""G0B"h}"G@Zk ="B8""bP]"6!O!P]tG@Zk"@8""BP]"btG0 P=V@ SAFETY013.AV "[EVERHART.JTDEMO]JTOPN.OBJ_AXP6;1162;1>@Zk"B8""bP]"PtG@ZkGB"pݵ""hh]"btG@Zk 4G!_ 1A AG!. 0A 0A!J 0A$B 3QA3AG. 0AJGB7qA7A.AX/.AGXKDC@.GJB,"?G%CB!bF%BPT=P"4G@Zk"bGBB" h}"p=8k!ht"!!HbGx=@Zk"B""bh]"$g$ ptG+aIh}@Zk( Hg"B""ph]"+aIbh}tG@ZkL g"B""ph]"+aIh}btG@Zk 4G _!1@!AGP.GPJDB@4Q@4A 0`A.GJB8q@8A 0`Ay/GyKdC ` @ A 0`AP.GPJDB@ 0`A"GCBFBPݲT=P"b4G@ZkTGB@?"d"B"@Zk 0@z`B)1`A@#@1 C4Gd"B"@Zk0@o"`A 1@B 0`A  @ 1@I)!dD"GGTBG?"@ZkG@B@ZkbGB?"Gk!G@Zk4G#_!1C!A1QC,1AGH@.0 CGJB5qC5A0 C.G8CJB 8A0 CW.GWJDB@0 Cy"GGB4G?"G8B"@Zk0@ 8B4G?"G8B"@ZkB0@ 1@GGG?"@Zk@BG@ZkGBG?"@Zk4G#!1C!A QC. A2qCJ2AB .8C8A0 C J0 C$B .0 C0 C9 JBu/uKdC`?G Ǣ4GHGBB"@<CGG<C GGGGGG@ZkBGG@ZkBGGG@ZkB<@ABGG<CGGGGG(G"G@ZkGBG@ZkGBGG@Zk4GB@<7@G G4GGGB"G@ZkBGG@ZkB?#"GG?"@ZkGBG@ZkGB?"G33B]"@Zk@BGG@Zk61 CvA*Q C,jAGHG@.1q CqA0AJGB.9 CyA0AJGB :,0AGG:H$@ 0A GGb"B Gp=8s"h6"x "b"G0B"h}"G@Zk"8""BP]"btG6  P@Zk@"B""b@]"0 @tG@ZkB '@GGBGGG@Zk@BG@Zk4G _!1@aAG/0q@pAKGC*Q@jA0A.GJBq.0AGqJdB ` @`A0At/GtKdC`0A"GC FB A@D}# =!b>@"GGGGGG@Zk0-GIElH-!LII% H=! TG ,aiI@ HD D`6qAPB AR"G B0/ G@r-0C0-@PCI0,KrIqI@ qEr=H0.pC.r"yHJWJ@!FkJ>R/!0a/B BZNKaKKGN?`oK2.CR" BQ/J F/>G@R-0B03/JRI B3K0Ck2K KER=R"Bb"TGGtG@ZkdAkGB"bTGGtG@ZkdA`\pE\?@ 4G ,1@@1Q@.,@G.H5q@$@ . 0 AGGJB@ 0 A/GKC '@@ 0 Ay/GyKdC` 0 AO GbB%&HH8s"@ݴ!b""TGGb"@"G@ZkB"bTGGtG@ZkBTG@?"d"B"@Zk0@ C @> E>! BP@81@@?#@18C4Gd"B"@Zk0@?!=@ @ ,E 1@@.1@@BtG@?"d"@B"@Zk0@ 4GD`?# G 4GG>E\䱰? _01 @@Gq.5Q @;q @qJGdB`@ 0 AV/GVKDC@@ 0 A/GKC ! @@ 0 A-GIA 0 AO!GBB/IH"8R"@"b_&TGR"b"@"G@Zk`b#@d0A`"_&"TG)R" E BtGb@Zkd0AGBTG@?"d"B"@Zk0@ C @?!E!B P@81 A@?#@18C4Gd"B"@Zk0@!=@ @E 1@ @/1@ C C$8G K!L¦!aAB_"p "!!Hh]8"b"x="GB"h}"G@Zk"""B@]"btG6 H@@ZkB` b"@8""@]"tG@Zk 1 AB@ Abd! H= H@"""@]"tG@Zk 1@B@ Abd! H= H@"""@]"tG@Zk\ B"@""b@]" /=tG@Zk)!b! /E= B+aAp? h=8s"b c }+aIx}@""GB"h}"G@Zk"""B@]"btG6!H@@ZkB`d!b"@}8""@]"tG@Zk&1@B@&Abd!H&H@ݴ"""@]"tG@Zk\}!B"@}""b@]"tG@Zk4G!&1A AG-3qAAIGA!QAA0`@P.GPJDB@.0`@GJB /AA0`@7/G7K$C 0`@C#_G G 4G!01A@GQ.5QAGQJDB@@ 0`A.GJB8qA@ 0`As,GsHd@ `.A@ 0`A,GH@ 0`AOk#GBB&HH"8R"b"@ݴTGGb"@"G@Zk C0B)v I8b$#A@}@"D""TG@Zk0D"[bH?$@8! 6c h}p81"x_&=#B">TGbR"b"@"h"G@ZkGGG@u@D:\D\ 4G /1`@@0Q`@-@GI4q`@Aq.@ 0 AGqJGdB`. 0 AGJB #`@@ 0 AX/GXKDC@ 0 AOi#GBB&HH"8J!@ݴb"TGGb"@"G@ZkB"bTGGtG@ZkdAàB_&b"TGR"tG@Zkd0A GB_&b"TGR"tG@ZkX}0`AGc]]}ݤ=]}ݥ #k,0 4G@HH @@2Da Gp/"/.rKa/K!#JwK[yK"wGy?/"yWJa#XKG?wJA.#! R[JWF[>G0/0@.""0KWJ{!K"F>! /"XK?1/Y7K7?kG#GG~p^x^~޴>^~޵cGGG(¤0,?&#Hf "(" 1"3~JGFqB8$"$g"f&&s"2^Jb&0J3eJ "TBBF('"H"& _& fR"(2DJ0L'"3aJ`)!rB F(&xt"8fG"8&0J,F_&R"&1!J2wDJs"B02B4|t"8& 4GH=4GD@&DfGH(LPQ0$"@BGbh"@Zk$(D="G BG\h"bGGD4G@Zk4GG_01 @@5Q @(q.@GqJ9q @dB`(/@G0@K0@C(:.G0@0@:J"$B ! @@G(.GJBGH4GG51`C@6Q`Cq.@GqJ4q`CdB`.@G;`CJ@B0.G0@C0@C0J0@C$B ,G0@CGH@: ?G 4G#61C@$Q"$q.G QCrJ9qCdB`@$A#$a/@G$"zK0BdC`$5.G0B0B7J0B$B 8C@$r"$2,GP#3HG$@ _G$Dz4GG 1B@LQ"Lq.GrJdB `!QB@L#LP/0BGXKGDC@4qB@Lv#L6.0BG;J$B 7B@Lr"L.0BGJB0B#G$GHbZ#p@(¥{# G>!!_8BGG?"@Zk4G"_81BA1QB.AGJB.0 @GJGB5qBA0 @,GH@ 7BA0 @Y.GYJDB@0 @a"G$'BGG$"GGG@Zk%-ChB!pb/G$C#CGP=$' T=CX\ݱP"X="TG@Zk%_%J!$! DA?FhBA&P}$'"T="Xp"\pbP"X="TG@Zk DH 4GGXBh"`b4G@Zk" `T4FWP]Pݡ0A AAjD2`D@!-IEE E DGGTG@Bb@ZkDP"GTG@BTdbP}@Zk I$e LEICDC   TF  $(4GG B0$"Gbh"GG@ZkD04G(D="GD@B\Gbh"GDG@Zk i$EɠlDCiDɰC+T D+4GG21 B@7Q B(.@GJ;q BB(X/ @G1 BXK @DC@(L-G0B0BLI0BDA @( ,0BG HG@GHg4GG91C@7QCr, @ GrH;qCd@`*-@ G8C*I@ `?=$A . G0B0BJ0BB q.0B G"qJGdB`G G4G? *1 @@$9!$,7Q @@ HG@$.$0";q @@JGB$.$"! @@JGB$X.0`@$!0`@LJ0`@0`@DBG@C#_ G G$'4GG11B @L"Lj.7QB@vJGdB`L/L!;qB@ KGCLr,L2 0B@aHGd@`L:-0@L 0@&I0@0@$AG #? G G$4GG@} c $P}(!T Xݰ_%#\@J!`%!`]d=H'"P"X]"`}"@"8b#@@(b C5@ D \PF$D?F0@FS8@F@.!ˢJ4FE˲EE8EXEE @dE(" GH=0E8E4D P}b"TH'"XݰP"\}X]"`]`}"d=@"8b#@@EP}x" TH'"XݰP"\=X]"`]`}"d=@"8b#@@D%!$!PTݱ"Xݰ$'"\P"`]X]"d=`}"@"8b#@@E"P$'"TݱX]"Xݰ`}"\P"`]@"d=8b#@@DP}T@ Xݰ '"\P"`]X]"d=`}"@"8b#u@ӌ'"@P"X]"`}"<%@!PL!T@" Xݰ\=@"`]8b#d= a@@ݡ D (B"P} '"TP"Xݰ`}"\]X]"`]@"d=8b#M@@ˡE˱CPT" Xݰ'"\=P"`]X]"d=`}"@"8b#9@@ݡD/(e`,>XBTG@?"`"B"@Zk0@ A A@?!D1XB 0A@1*A4G`"B"@Zk0@'@##  @#C,% vH%8= @<}@`J!PT]P"<="8]"b#@(Š!<=ˡ8&E`E˱&E`,DK OEKDTX% (B%G(¤G"XR"1v JhB Xݴ)!"2?&P1"h]B"pbP}"`ݵGG@Zk$(c B%P}Tݰ!%X \!`bD"dݰGP]"X}"`"t"G@Zk8D("BbG1"TG@ZkP"("X]"BtGP}TݰXt1"\ݰb@ZkTG(("Bb"1"@Zk4G G_@8B0PA-GGI0@AEDPBP]"4G@Zk@8BPPA.GGP@AJBFFPP]"4G@Zk@8BpPA-GGIp@AEDPPABP]"4G@Zk@8BG,G`@H @ADDDPBP]"4G@Zk ("%B!Xݴ"Pݵ"b"`GHB"P}"G@Zk(B@B Xݴ"Pݵ!`"bGHB"P}"G@Zk0j!ʠThAhDjDʰDED#X E E E H}4GSGGcp]x]}ݤ=]}ݥ#k+"0D+H=G#G~^ ^(~08@޴HPXG3GRG BGTG?"G@Zk0@" @¤ @0@1D B5BX GGGTBG?"@ZkGB@Zk B4G?"GHB"@Zk0@?# @ @"Gw B51@ BGGBG B"4G@ZkGB@Zk B4G?"G(B"@Zk0@9#_GG_ B4G?"G B"@Zk0@G @ @&FO #21@0Bs"8b3F&C4BSF= TB]"ݰ="TG@Zk%?$! D @5"5 B5BGGGTBG?"@ZkBG@Zk4G"_11B@G.JB6QB@0 @w/GwKdC qB@0 @x.G0BxJGdB@0 @T/GTKDC_0 @!"?4GIJG] ](}08@ݤHPX`#k14G!q B !B2 21 B&`% GB0@B.0@0@0@J31@BBB%.G0@J4Q@BBB.G @J5q@BBB.G2@BJ @B B0@4,0@B @21@B4H$@ GkGk #~^^~޴>^cG0,GGG0HC?%B(!HРG䠀)!B8= ?"8"Hݴ@b"L G@@"bGP=@ZkHݴ4G@4GP_%X]J!`]TG8"BTG8GhPb"b@"px=G@Zk0¤g"TGGƠb"L GGF@P RJP 4G(vIE Bb"@Zk  @@K "TGBGb(b" 8O=H "8"8"GG@Zk"'⤀Bp""b8]"X @8"tG@Zk"4GH !?G'.G"Q2JwB'JLB#&CBd`0`Bd0B B GB"bTGGb"GG@ZkhSI¤C'vHL DL CCcG]]}ݤ=]#kp.S pJaFR#4G~^ ^(~0GG0B=8b@ZkG` B4G(b@ZkG`? G0$G=$Q.'q.$1"QJS qJ="SFBbC6R"6s"@ GB="b6R"6s"@4Gb686;G] ](}0@#k0?D#D kG0!&H&H3k#$ ~?$^! ^!W$H~G޴>^~޵cGG@GHGH¤H⤰ B0J% bBHG1!J00"!BtG4 ?&%0J 1"B@= 4 \%( &HG 0J L@ZkH C  p@EP}4G`5!@=G_q @#Ѣp4Gв" 1"@=GHHdY#!hyG,#GXTBx?"xB HHG@ZkBG@Zk4GxB?"GB"@Zk0@ C@ 1@0D xBGGG?"@ZkGB@Zk4GG!1BA2QB.AGJ;qBB&S/A0BGSKDC@.0BGJB7BA0B3,G3H$@ 0BV#_ 1BAG.GJB0Bv"GGG y4GH¥?"GxXY$!G:GKXGK GGxBTB@ZkGB@ZkG4GG_81BA2QB.AGJB'S/0BGSKDC!@;qBA0B.GJB7BA0B.GJB0B#:1BAG@.G@JDB@0B"GGG`yH GG%` 1"`;IB?&X"p1"h}B"bX}"P"G@Zk !IhB"`ݵ""pbX]"XtG@Zk"@""hBX]"pbtG X@Zk@H"GB"` `" 11"t" B`=?&X}1"h"bX}"G@ZkhB !I`ݵ"pb""XX]"tG@Zk@"hB""pbX]" XtG@Zk@_"HB0I?&` 1"&J!X}" B`]"X]B"pGh"b@ZkhB !I`ݵ"pb""XX]"tG@Zk@"hB""pbX]" XtG@Zk@_"?&1"` `"X}" B`]"X]B"h"bG@Zk !IhB"`ݵ""pbX]"XtG@Zk"@""hBX]"pbtG X@Zk4G? _01 @PAGq.qJdB`5Q @UA0@/GGKC9q @YA0@:.G:J$B ! @AA0@.GJB0@"G@Hb G/I`X?&(c "!@B`}"X1"pB"bX}"h"G@ZkhB-!I`ݵ"pb""XX]"tG@Zk@"hB""pbX]"!XtG@Zk@"Hb?&1"`` (c B"B`}X}"X"b4"hG@Zk)!IhB"`ݵ""pbX]"X=tG@Zk!hB"Xݵ""pbX]"tG@Zk 4G!Hb/1A2QAG(c o@r@.JB. 0 AGJGB6qAv@ 0 A7/G7K$C .An@ 0 A,GH@ 0 A) ?GH<mx,"@|L"!TGoG`BbGG@ZkH%!ϡ! E@0¥GGnGR"G`B@Zk;B_&b"nTGR"b"GG@Zk"xBGG?"@ZkGB@Zk 4G`GhGpݶX+aI]tG}G4G=TG} ]@"X]!_&ݶ"R"]b"=TG]"xBGb@ZkH"%_%TG8!J! G!p!)!H"TG`=GXݵb"! h=X"p}h"x#J#B"Gba@ZkD4G@u@D0D xBX"W@ SAFETY013.AV "[EVERHART.JTDEMO]JTOPN.OBJ_AXP6;1162;1>8bX@Zk$1@4GH4G X=?&H1"`=."d/"h=lX"GG`}"h" b# _X`"H"h]"tG 8D}@HB%B !`$bhb!d} h0J!l]1"@Zk ݡ !0D E J*v@IJ!e@Hb8DkY`A D_HXBB"4G)!G@ZkBGG@ZkH 4G4GG 1"_81BBGy-3qBByIGdA`5QBB _=0 @P.GPJDB@t/0 @GtKdC `6B B0 @j-GjIdA`0 @"GHHC1v J"X#t 4G_'T:B`=?'H"9#H`"XBh]"d1"h=}"lG`b8"G@Zk GHb 0@E_A8+TG@?"d "0 D<+?@B"AE+ xB@ZkXB0@GB"4G@ZkBGG@Zk 4GxB91C@ 9A1y@4Gd"B"@Zk0@@ 1@xB 0C# @#1`@dI"G @GTBG?"@ZkGB@Zk-Q@ ?'" 9#hB$'*I'c h, #`]"p?"pbGb"`"G@Zk, b# @4GTH#BTGbH="GG "GG@ZkGB4GB"@ZkBG4GB"@Zk4G C-vIHB?$PbA`='d #hl8"`="h]"GG@ZkG0D8D EuxBTG@?"d "@B"@Zk0@H"B"XB4G`49#G@ZkGBG@ZkB"axB$1C@!$A1A4Gd"@Zk0@W@ 1@xB 0C$ @$1@dI"G @GTBG?"@ZkGB@ZkH" Q@B" Hb1)!h=`ݶ "x="pGB"`}"G@ZkhB"h""`]`]"pbtG@Zk4G _$1`@ $AG-GIA!Q`@!A0AP.GPJDB@3q`@3A0A.GJB #`@#A0A7/G7K$C 0ACO#_G 4G@kL]! E B_&b"TGR"GG@ZkXB_&`b"TGR"tG@Zk 0EX8D = b##E`8E%HM@k! !X}\#B<!X"bGGGGGG@ZktGt?% )!H ?$B! PEDH%X=k!B ! \X!`}H"d]Gh=X]"l`}"bh"D"G@ZkS%YE!0D,I EHb@Dcy`@D"Hb4GXBB"4G)k!G@ZkGBG@Zk4G G_H!1@A-Q@AG 1!A A/(q@AAK*@AC ,0AGA HG@5.0AG5J$B .0AGJB0AN#_G CHbG%H¦CH"!H-DXB%X}c (@`=_%dJ!h]"`"l}1"`bh]"}"G8"G@ZkH¥0D@B"8.4G0 D<.?@D HbXB)k!G@ZkGBG@Zk4G & "HDzTGBH="#bGG "GG@ZkBG4GB"@Zk4G3HbBB")k!G@Zk8"+GCHBDPb@`ݰ&d} "hl`="h]"GG@ZkHH H"0DB`"`=' d1"h]h]"ltGb@Zk<D8Dj GH""BGbtGH1"@ZkH""BGbtGL1"@ZkH¤H"¥$B4G* hݴ` !pb"GhB"`}"GG@ZkH"  BGh "LQ"`?&p]b"1"hB"`}"G@Zk B Gh?&`}h"b"p}1"@B"`}"G@ZkhB pb"`""`]"tG@Zk hB"`""pb`]"tG@ZkXGHxB,1AA<CGG<CG 1!GGGGGGG@ZkxBB"G@ZkXBGGG@Zk"xBGG?"@ZkGB@Zk4GG 1 @@0Q @.@GJGBq.0 CGGqJdB`4q @@0 C.GJB ! @@0 C8.G8J$B 0 CY"_GGXB"xB"G@ZkxBGG?"@ZkGxB?"G33B]"@ZkBG@Zk#"@H"H"B"T1"B-!h"`(9#?&x=7Jbp1"`}"G@Zk"H""hB`]"pbtG `@Zk"H""hB`]"pbtG  `=@ZkH$HhB"pb"") h``]"tG@ZkhB.Ihݴ"`ݵ""pb`]"tG@Zk4G !1@AGP.0A0APJ0ADB@4Q@AG.0AGJB8q@AGy/yKdC ` @AGP.PJDB@"G`=H"X" H"GB`"d=')!h]1"bh]"l=tG@Zk 4G)CH`"P=8"" ?E 8+E) TGP@ B EA`db@ZkP=!G ! 4GݵTGtG=%xB 4G=!}"=G]b"=Gb"G@ZkxBhTG`ݵ"pGx=G}`"}G]}bb"@ZkH⥨?&B"hݴH/!`1"bhB"p=`}""G@Zk !"?&BL!h")!`b "p1"hB"`}"G@ZkBF!h]?&`}h"b" n=p}1"@B"`}"G@ZkhB pb"`""`]"tG@Zkc hB"`}""pb`]"tG@ZkGHB AxB<CGG<CG 1J!G GGGGGG@ZkxBB"G@ZkXBGGG@Zk"xBGG?"@ZkGB@Zk4GG/1`@@G.GGJB8Q`@@0A-GIA(q`@@0A-GIA #`@@0A5.G5J$B 0AN"_GGXBG"xB"G@ZkGxBG?"@ZkxBG?"G33B]"@ZkGB@ZkB@_&hݴ Hb`t""GR"b"`"G@Zk"X}""hBX]"`]tG+aIpbX}@ZkH"hB""pbX]") `XtG@Zk_&B"bGR"b"GG@ZkPHb%H@! HBTc PݱT}"@] ="PbP}"G@ZkHBP HbtG Pk Eu`A lE4`EG4G !LݠH¥b# DH"ADED_%1)!@@nP!B@"bG#v`HGj@@}D=#G޵GGG@ZkGGGc]]}ݤ=]}ݥ #kp#4G~X^`^h~px޴cGGG#GPDR  _a B `a"! ` "#\â4G`9#@BGز?"GX GJGHTBG@ZkGB@Zk@B4G?"GB"@Zk0@ C@ 1@0D @BGGG?"@ZkBG@Zk4GG_!1B!C2QB.2CGJ;qBB&S/;CG0BSK0BDC@.G0B0BJV#B7B7CG3,3H$@ _ 1B C0B.Gv"JGBGGGc C4GGx?"XX@B  GJGHTB GG@ZkGB@Zk4GG61C@2QC.@GJ;qCB"S/0BGSK3CDC@@@.0BGJBT/0BGTKGDC @8C@0B@.G@JDB@0B"G¤XcGp?& +`PB @ݴ!!H8"P=1"XbB"H=8}"H"G@Zk H0B"@`""8b8]"8tG@Zk# 0B"8b""8=8]"tG@Zk0B8 8"8b""8]"tG@ZkX#p_"X") PB?&@ݴ1"8]B"H"Xb8}""G@Zk%H0B"@`""8b8]"8tG@Zk 0B"8b""88]"tG@Zk0B8 8"8b""8]"tG@Zk4G _%1@@2Q@.@GJB.0`@GJGB6q@@0`@7/G7K$C $@@0`@,GH@0`@# ?GC0vJ&pBB8<ݰ"8"xbGGGGGG@ZkGcX]4G`]h}pxݤ#k14GG GBҢx/vBWBxKBBҲ0BҲ0B0B B0Bk0#~p^x^~޴>^cG,GGGGH0CB Hb@=4G8?"H=$P=4GX= `}TGh=G"GGb"8"G@Zk!PBq"J!)!_B"@]GbG8b"8"GG@ZkVB4G?"GB"@Zk0@B4G?"GB"@ZkP@B4G?"GB"@Zk @PB?81CB @XA@= H8r"H}b ""GB"8}"G@ZkP"B""b8]""8"tG@Zk""P"B8]"btG"8"@ZkPP"0@e@"!q@"0`B0%.wJ @VJF>eB_&b"GR"b"GG@ZkcGp]x]}ݤ=]#k0,A 0H D_. JV JF>@#~p^x^~޴cG0,GGG0HC!!H0B4G8b@"8=$H}4GP X}TG`="hGG`b"8"G@Zk j`⤨! _B"@GbG8ݴXb"8"GG@ZkO0B4G?"GPB"@Zk0@0B4G?"GPB"@ZkP@0B4G?"GXB"@Zk @B?81CpB @A@= H8r"H}xb ""GB"8}"G@Zk"@B""Hb8]""8"tG@Zk"""@B8]"HbtG"8"@Zk""TGBb1"G@Zk$0 @$G`B_&hb"GR"pb"GG@ZkGcp]x]}ݤ# ~=k.T JFiG#_&~PR" ^tG(^0~8@GGGp"$p" 0B "@! "] 1"=]"8b@Zk4G#& "PB "'@b"} #`"Xb"="]"GGG@ZkG ](]0}8@P#k@#4GTG~h^p^x~޴>cGG_11 @BG.J2Q @BB#.0@GJ3q @BB.1 @0@JBBG.! @BJ0@BG r.0@GrJGdB`0@"G2AJ@"@B$8]4GH}c P=TGX=G`"HbGPb"8"G@Zk0p"4G! > )!_B"@G8Gbhb"8"GG@Zk İ@0@pB_&xb"GR"b"GG@ZkGch]p]x}ݤ=#k1GGТGG]@]"4G@Zk]GG@ZkPFF#F(F-F2F7F<JA0JPFFFKFPGk]GH]"G@ZkPF]G]"G@ZkF]G ]"G@ZkF]G]"G@ZkF]G]"G@ZkF]G]"G@ZkF]G8]"G@ZkF]G]"G@ZkJ]GX]"G@Zk0JPF]Gh]"G@ZkF]Gx]"G@ZkF]G]"G@ZkGkG# ~4G^^~ G{G((B0b"@Zk ("8"4G!#HBPb@Zk? GG]D]} 0#kG; k#~X^`^h~pxcG0,G0H0bC!!H0G@Bc @"8=PB"P}8}"H=?&Hb1"GG@ZkGBb4G@Zk `B_&hb ""GR"pb"GG@ZkcGX]`]h}px#k0.Q 0J!Fà#0_&~G@^TGH^R"PGcGG8=PB"Xb8b"8"@Zk0_&"TGR"tG@BHb@ZkcG@]H]P`#k4GLIB$SYS_TRNLOG4b# LIB$SYS_TRNLOG4@LIB$SYS_TRNLOG45<GX SYS$GETJPIW46Db# SYS$GETJPIW45T@X SYS$GETJPIW45G SYS$GETJPIW46b# SYS$GETJPIW45@ SYS$GETJPIW4hG|OTS$MOVE4x@|OTS$MOVE410GLOTS$STRCMP_EQLP41H@LOTS$STRCMP_EQLP4-TGSTR$MATCH_WILD4.\b# STR$MATCH_WILD4-@STR$MATCH_WILD4-GSTR$MATCH_WILD4.b# STR$MATCH_WILD4-@STR$MATCH_WILD4%G OTS$MOVEM4%@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4G OTS$INDEX4@ OTS$INDEX4%G OTS$MOVEM4% @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4% G8 OTS$MOVEM4%4 @8 OTS$MOVEM48 GD OTS$FILL4@ @D OTS$FILL<'H G\ DFOR$WRITE_INT_FMT<(P b# DFOR$WRITE_INT_FMT<'X @\ DFOR$WRITE_INT_FMT<#` G DFOR$WRITE_INT_FMT_XMIT<$p b# DFOR$WRITE_INT_FMT_XMIT<# @ DFOR$WRITE_INT_FMT_XMIT <# G DFOR$WRITE_INT_FMT_XMIT<$ b# DFOR$WRITE_INT_FMT_XMIT<# @ DFOR$WRITE_INT_FMT_XMIT<' G DFOR$WRITE_INT_FMT<( b# DFOR$WRITE_INT_FMT<' @ DFOR$WRITE_INT_FMT<# G DFOR$WRITE_INT_FMT_XMIT<$ b# DFOR$WRITE_INT_FMT_XMIT<# @ DFOR$WRITE_INT_FMT_XMIT<#( GH DFOR$WRITE_INT_FMT_XMIT<$0 b# DFOR$WRITE_INT_FMT_XMIT<#D @H DFOR$WRITE_INT_FMT_XMIT<'t G DFOR$WRITE_INT_FMT<( b# DFOR$WRITE_INT_FMT<' @ DFOR$WRITE_INT_FMT<# G DFOR$WRITE_INT_FMT_XMIT<$ b# DFOR$WRITE_INT_FMT_XMIT<# @ DFOR$WRITE_INT_FMT_XMIT<# G DFOR$WRITE_INT_FMT_XMIT<$ b# DFOR$WRITE_INT_FMT_XMIT<# @ DFOR$WRITE_INT_FMT_XMIT<'$ GH DFOR$WRITE_INT_FMT<(8 b# DFOR$WRITE_INT_FMT<'D @H DFOR$WRITE_INT_FMT<#H Gp DFOR$WRITE_INT_FMT_XMIT<$X b# DFOR$WRITE_INT_FMT_XMIT<#l @p DFOR$WRITE_INT_FMT_XMIT<#x G DFOR$WRITE_INT_FMT_XMIT<$ b# DFOR$WRITE_INT_FMT_XMIT<# @ DFOR$WRITE_INT_FMT_XMIT<'G@DFOR$WRITE_INT_FMT<((b# DFOR$WRITE_INT_FMT<'<@@DFOR$WRITE_INT_FMT<#HGtDFOR$WRITE_INT_FMT_XMIT<$Pb# DFOR$WRITE_INT_FMT_XMIT<#p@tDFOR$WRITE_INT_FMT_XMIT<#xGDFOR$WRITE_INT_FMT_XMIT<$b# DFOR$WRITE_INT_FMT_XMIT<#@DFOR$WRITE_INT_FMT_XMIT<#GDFOR$WRITE_INT_FMT_XMIT<$b# DFOR$WRITE_INT_FMT_XMIT<#@DFOR$WRITE_INT_FMT_XMIT<#GDFOR$WRITE_INT_FMT_XMIT<$b# DFOR$WRITE_INT_FMT_XMIT<#@DFOR$WRITE_INT_FMT_XMIT<#GDFOR$WRITE_INT_FMT_XMIT<$b# DFOR$WRITE_INT_FMT_XMIT<# @DFOR$WRITE_INT_FMT_XMIT<#G4DFOR$WRITE_INT_FMT_XMIT<$ b# DFOR$WRITE_INT_FMT_XMIT<#0@4DFOR$WRITE_INT_FMT_XMIT4)G$ LIB$SPAWN4*b# LIB$SPAWN4) @$ LIB$SPAWN41hGpOTS$STRCMP_EQX@ SAFETY013.AV "[EVERHART.JTDEMO]JTOPN.OBJ_AXP6;1162;1>WLP41l@pOTS$STRCMP_EQLP4tG DFOR$CLOSE4|b# DFOR$CLOSE4@ DFOR$CLOSE4%G OTS$MOVEM4%@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4PG\ DFOR$OPEN4Tb# DFOR$OPEN4X@\ DFOR$OPEN<CGDFOR$READ_KEY_FMT<Db# DFOR$READ_KEY_FMT<C@DFOR$READ_KEY_FMT4A(GDLIB$WAIT 4B8b# LIB$WAIT4A@@DLIB$WAIT<CGDFOR$READ_KEY_FMT<Db# DFOR$READ_KEY_FMT<C@DFOR$READ_KEY_FMT4AG LIB$WAIT4Bb# LIB$WAIT4A@ LIB$WAIT,YDGhOPRMSG,ZLb# OPRMSG,Yd@hOPRMSG<'GDFOR$WRITE_INT_FMT<(b# DFOR$WRITE_INT_FMT<'@DFOR$WRITE_INT_FMT<#GDFOR$WRITE_INT_FMT_XMIT<$b# DFOR$WRITE_INT_FMT_XMIT<#@DFOR$WRITE_INT_FMT_XMIT<#G8DFOR$WRITE_INT_FMT_XMIT<$ b# DFOR$WRITE_INT_FMT_XMIT<#4@8DFOR$WRITE_INT_FMT_XMIT<#@G`DFOR$WRITE_INT_FMT_XMIT<$Hb# DFOR$WRITE_INT_FMT_XMIT<#\@`DFOR$WRITE_INT_FMT_XMIT<#`GDFOR$WRITE_INT_FMT_XMIT<$hb# DFOR$WRITE_INT_FMT_XMIT<#@DFOR$WRITE_INT_FMT_XMIT<#GDFOR$WRITE_INT_FMT_XMIT<$b# DFOR$WRITE_INT_FMT_XMIT<#@DFOR$WRITE_INT_FMT_XMIT<#GDFOR$WRITE_INT_FMT_XMIT<$b# DFOR$WRITE_INT_FMT_XMIT<#@DFOR$WRITE_INT_FMT_XMIT4)G LIB$SPAWN4*b# LIB$SPAWN4)@ LIB$SPAWN44G@ OTS$INDEX4<@@ OTS$INDEX4HGl OTS$INDEX4h@l OTS$INDEX4%|G OTS$MOVEM4%@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4GOTS$MOVE4@OTS$MOVE4tG OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4%G OTS$MOVEM4%@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4GOTS$MOVE4@OTS$MOVE4%G OTS$MOVEM4%@ OTS$MOVEM4%G OTS$MOVEM4%@ OTS$MOVEM4GOTS$MOVE4@OTS$MOVE4%G$ OTS$MOVEM4% @$ OTS$MOVEM4%(G4 OTS$MOVEM4%0@4 OTS$MOVEM48GHOTS$MOVE4D@HOTS$MOVE4%LGx OTS$MOVEM4%t@x OTS$MOVEM4%xG OTS$MOVEM4%@ OTS$MOVEM4%G OTS$MOVEM4%@ OTS$MOVEM4%G OTS$MOVEM4%@ OTS$MOVEM 4%G OTS$MOVEM4%@ OTS$MOVEM4GOTS$FILL4@OTS$FILL<'GDFOR$WRITE_INT_FMT<(b# DFOR$WRITE_INT_FMT<'@DFOR$WRITE_INT_FMT<#GDFOR$WRITE_INT_FMT_XMIT<$b# DFOR$WRITE_INT_FMT_XMIT<#@DFOR$WRITE_INT_FMT_XMIT<#GDFOR$WRITE_INT_FMT_XMIT<$b# DFOR$WRITE_INT_FMT_XMIT<#@DFOR$WRITE_INT_FMT_XMIT4% GD OTS$MOVEM4%@@D OTS$MOVEM4HGPOTS$FILL4L@POTS$FILL,SGJTSPAWN,Tb# JTSPAWN,S@JTSPAWN4XGlOTS$MOVE4h@lOTS$MOVE4pG|OTS$FILL4x@|OTS$FILL<'pGDFOR$WRITE_INT_FMT<(b# DFOR$WRITE_INT_FMT<'@DFOR$WRITE_INT_FMT<#GDFOR$WRITE_INT_FMT_XMIT<$b# DFOR$WRITE_INT_FMT_XMIT<#@DFOR$WRITE_INT_FMT_XMIT<#G DFOR$WRITE_INT_FMT_XMIT<$b# DFOR$WRITE_INT_FMT_XMIT<# @ DFOR$WRITE_INT_FMT_XMIT<# G$ DFOR$WRITE_INT_FMT_XMIT<$ b# DFOR$WRITE_INT_FMT_XMIT<# @$ DFOR$WRITE_INT_FMT_XMIT<#( GL DFOR$WRITE_INT_FMT_XMIT<$@ b# DFOR$WRITE_INT_FMT_XMIT<#H @L DFOR$WRITE_INT_FMT_XMIT,Y G !OPRMSG,Z b# OPRMSG,Y!@ !OPRMSG<'0!Gh!DFOR$WRITE_INT_FMT<(X!b# DFOR$WRITE_INT_FMT<'d!@h!DFOR$WRITE_INT_FMT<#p!G!DFOR$WRITE_INT_FMT_XMIT<$x!b# DFOR$WRITE_INT_FMT_XMIT<#!@!DFOR$WRITE_INT_FMT_XMIT<#!G!DFOR$WRITE_INT_FMT_XMIT<$!b# DFOR$WRITE_INT_FMT_XMIT<#!@!DFOR$WRITE_INT_FMT_XMIT<#!G!DFOR$WRITE_INT_FMT_XMIT<$!b# DFOR$WRITE_INT_FMT_XMIT<#!@!DFOR$WRITE_INT_FMT_XMIT,Y"G"OPRMSG,Z"b# OPRMSG,Y"@"OPRMSG4"G" OTS$INDEX4"@" OTS$INDEX4"G# OTS$INDEX4#@# OTS$INDEX4%#GL# OTS$MOVEM4%H#@L# OTS$MOVEM4P#GX#OTS$FILL4T#@X#OTS$FILL4`#Gt#OTS$MOVE4p#@t#OTS$MOVE4$G,$ OTS$INDEX4($@,$ OTS$INDEX48$GP$ OTS$INDEX4L$@P$ OTS$INDEX4%P$Gp$ OTS$MOVEM4%l$@p$ OTS$MOVEM4p$G|$OTS$FILL 4x$@|$OTS$FILL4$G$OTS$MOVE4$@$OTS$MOVE4%(%G`% OTS$MOVEM4%\%@`% OTS$MOVEM4%`%Gp% OTS$MOVEM4%l%@p% OTS$MOVEM4p%G%OTS$MOVE4%@%OTS$MOVE4%%G% OTS$MOVEM4%%@% OTS$MOVEM4%%G% OTS$MOVEM4%%@% OTS$MOVEM4%G%OTS$MOVE4%@%OTS$MOVE4%%G& OTS$MOVEM4% &@& OTS$MOVEM4%&G & OTS$MOVEM4%&@ & OTS$MOVEM4% &G<& OTS$MOVEM4%8&@<& OTS$MOVEM4%@&GL& OTS$MOVEM4%H&@L& OTS$MOVEM4%P&Gh& OTS$MOVEM4%d&@h& OTS$MOVEM4h&Gx&OTS$FILL4t&@x&OTS$FILL<' 'G\'DFOR$WRITE_INT_FMT<(@'b# DFOR$WRITE_INT_FMT<'X'@\'DFOR$WRITE_INT_FMT<#h'G'DFOR$WRITE_INT_FMT_XMIT<$p'b# DFOR$WRITE_INT_FMT_XMIT<#'@'DFOR$WRITE_INT_FMT_XMIT<#'G'DFOR$WRITE_INT_FMT_XMIT<$'b# DFOR$WRITE_INT_FMT_XMIT<#'@'DFOR$WRITE_INT_FMT_XMIT4%'G' OTS$MOVEM4%'@' OTS$MOVEM4'G'OTS$FILL4'@'OTS$FILL4)(G( LIB$SPAWN4*(b# LIB$SPAWN4)(@( LIB$SPAWN4d*G* DFOR$UNLOCK4h*b# DFOR$UNLOCK4|*@* DFOR$UNLOCK4*G* DFOR$UNLOCK4*b# DFOR$UNLOCK4*@* DFOR$UNLOCK<[h+G+DFOR$REWRITE_FMT<\+b# DFOR$REWRITE_FMT<[+@+DFOR$REWRITE_FMT4+G+ DFOR$UNLOCK4+b# DFOR$UNLOCK4+@+ DFOR$UNLOCK4+G+ OTS$INDEX4+@+ OTS$INDEX4+G$, OTS$INDEX4 ,@$, OTS$INDEX4L,Gd, OTS$INDEX4`,@d, OTS$INDEX<[0-Gl-DFOR$REWRITE_FMT<\L-b# DFOR$REWRITE_FMT<[h-@l-DFOR$REWRITE_FMT4-G- DFOR$UNLOCK4-b# DFOR$UNLOCK4-@- DFOR$UNLOCK4-G- OTS$INDEX4-@- OTS$INDEX4-G. OTS$INDEX4.@. OTS$INDEX<'h.G.DFOR$WRITE_INT_FMT<(.b# DFOR$WRITE_INT_FMT<'.@.DFOR$WRITE_INT_FMT<#.G.DFOR$WRITE_INT_FMT_XMIT <$.b# DFOR$WRITE_INT_FMT_XMIT<#.@.DFOR$WRITE_INT_FMT_XMIT<#.G.DFOR$WRITE_INT_FMT_XMIT<$.b# DFOR$WRITE_INT_FMT_XMIT<#.@.DFOR$WRITE_INT_FMT_XMIT<#/G4/DFOR$WRITE_INT_FMT_XMIT<$ /b# DFOR$WRITE_INT_FMT_XMIT<#0/@4/DFOR$WRITE_INT_FMT_XMIT<#8/Gl/DFOR$WRITE_INT_FMT_XMIT<$D/b# DFOR$WRITE_INT_FMT_XMIT<#h/@l/DFOR$WRITE_INT_FMT_XMIT<#p/G/DFOR$WRITE_INT_FMT_XMIT<$/b# DFOR$WRITE_INT_FMT_XMIT<#/@/DFOR$WRITE_INT_FMT_XMIT<'/G/DFOR$WRITE_INT_FMT<(/b# DFOR$WRITE_INT_FMT<'/@/DFOR$WRITE_INT_FMT<#/G0DFOR$WRITE_INT_FMT_XMIT<$0b# DFOR$WRITE_INT_FMT_XMIT<#0@0DFOR$WRITE_INT_FMT_XMIT<#0G<0DFOR$WRITE_INT_FMT_XMIT<$ 0b# DFOR$WRITE_INT_FMT_XMIT<#80@<0DFOR$WRITE_INT_FMT_XMIT<#@0Gt0DFOR$WRITE_INT_FMT_XMIT<$L0b# DFOR$WRITE_INT_FMT_XMIT<#p0@t0DFOR$WRITE_INT_FMT_XMIT<#x0G0DFOR$WRITE_INT_FMT_XMIT<$0b# DFOR$WRITE_INT_FMT_XMIT<#0@0DFOR$WRITE_INT_FMT_XMIT<[1G2DFOR$REWRITE_FMT<\1b# DFOR$REWRITE_FMT<[ 2@2DFOR$REWRITE_FMT,S2G@2JTSPAWN,T2b# JTSPAWN,S<2@@2JTSPAWN<C2G2DFOR$READ_KEY_FMT<D2b# DFOR$READ_KEY_FMT<C2@2DFOR$READ_KEY_FMT<[3G3DFOR$REWRITE_FMT<\3b# DFOR$REWRITE_FMT<[3@3DFOR$REWRITE_FMT43G3 DFOR$UNLOCK43b# DFOR$UNLOCK43@3 DFOR$UNLOCK43G4 DFOR$UNLOCK43b# DFOR$UNLOCK43@4 DFOR$UNLOCK44G04 DFOR$UNLOCK44b# DFOR$UNLOCK4,4@04Y@ SAFETY013.AV "[EVERHART.JTDEMO]JTOPN.OBJ_AXP6;11D5;1Ӄ>v DFOR$UNLOCK457G8 SYS$GETJPIW467b# SYS$GETJPIW458@8 SYS$GETJPIW458GD8 SYS$GETJPIW46(8b# SYS$GETJPIW45@8@D8 SYS$GETJPIW4;G$;OTS$MOVE4 ;@$;OTS$MOVE41;G;OTS$STRCMP_EQLP41;@;OTS$STRCMP_EQLP4-;G<<STR$MATCH_WILD4.;b#STR$MATCH_WILD4-8<@<<STR$MATCH_WILD4-`<G<STR$MATCH_WILD4.<b#STR$MATCH_WILD4-<@<STR$MATCH_WILD47<G<DFOR$SECNDS_VF48<b#DFOR$SECNDS_VF47<@<DFOR$SECNDS_VF,/<=GH=GTPRV,0@=b#GTPRV,/D=@H=GTPRV,;\=Gp=JGTPRVS ,<d=b#JGTPRVS,;l=@p=JGTPRVS45=G= SYS$GETJPIW46=b# SYS$GETJPIW45=@= SYS$GETJPIW45 >G4> SYS$GETJPIW46>b# SYS$GETJPIW450>@4> SYS$GETJPIW4DGD OTS$INDEX4D@D OTS$INDEX4EG0E OTS$INDEX4,E@0E OTS$INDEX<'FGPFDFOR$WRITE_INT_FMT<(8Fb#DFOR$WRITE_INT_FMT<'LF@PFDFOR$WRITE_INT_FMT49\FGF EXTTRNLNM4:Fb# EXTTRNLNM49F@F EXTTRNLNM,3FGFSWPUIC,4Fb#SWPUIC,3F@FSWPUIC4FGGLIB$SYS_TRNLOG4Fb#LIB$SYS_TRNLOG4G@GLIB$SYS_TRNLOG,3GG$GSWPUIC,4Gb#SWPUIC,3 G@$GSWPUIC44GGlGOTS$MOVE4hG@lGOTS$MOVE4pGGGOTS$MOVE4G@GOTS$MOVE4GGGOTS$MOVE4G@GOTS$MOVE4GG(HOTS$MOVE4$H@(HOTS$MOVE<8HGpHDFOR$READ_INT_FMT<PHb#DFOR$READ_INT_FMT<lH@pHDFOR$READ_INT_FMT<xHGHDFOR$READ_INT_FMT<Hb#DFOR$READ_INT_FMT<H@HDFOR$READ_INT_FMT4IGI OTS$INDEX4I@I OTS$INDEX4%JGDJ OTS$MOVEM4%@J@DJ OTS$MOVEM4HJGPJOTS$FILL4LJ@PJOTS$FILL4PJGhJ OTS$INDEX4dJ@hJ OTS$INDEX4%JGJ OTS$MOVEM4%J@J OTS$MOVEM4JGJOTS$FILL4J@JOTS$FILL4JGJ OTS$INDEX4J@J OTS$INDEX4JGK OTS$INDEX4K@K OTS$INDEX4-,KGpKSTR$MATCH_WILD4.4Kb#@STR$MATCH_WILD4-lK@pKSTR$MATCH_WILD4%KGK OTS$MOVEM4%K@K OTS$MOVEM4KGKOTS$FILL4K@KOTS$FILL4NG@N DFOR$INQUIRE40Nb# DFOR$INQUIRE4cb# DFOR$DELETE4=d@d DFOR$DELETE4dG8d DFOR$UNLOCK4 db# DFOR$UNLOCK44d@8d DFOR$UNLOCK4)dGd LIB$SPAWN4*db# LIB$SPAWN4)d@d LIB$SPAWN49eGDe EXTTRNLNM4:0eb# EXTTRNLNM49@e@De EXTTRNLNM4eGeOTS$MOVE4e@eOTS$MOVE4eGeOTS$FILL4e@eOTS$FILL4M|fGfLIB$FID_TO_NAME4Nfb#LIB$FID_TO_NAME4Mf@fLIB$FID_TO_NAME4gG$gOTS$MOVE4 g@$gOTS$MOVE4(gG4gOTS$FILL40g@4gOTS$FILL45PgGg SYS$GETJPIW46`gb# SYS$GETJPIW45|g@g SYS$GETJPIW4IgGgOTS$STRCMP_LEQS4Ig@gOTS$STRCMP_LEQS4IgGgOTS$STRCMP_LEQS4Ig@gOTS$STRCMP_LEQS<KgGhSYS$CHECK_ACCESS<Lgb#SYS$CHECK_ACCESS<Kg@hSYS$CHECK_ACCESS4hG@hLIB$SYS_TRNLOG48hb#LIB$SYS_TRNLOG4ROM_INTERNAL_TIMEDGh@hLIB$CVT_FROM_INTERNAL_TIMEDGhGhLIB$CVT_FROM_INTERNAL_TIMEDHhb#LIB$CVT_FROM_INTERNAL_TIMEDGh@hLIB$CVT_FROM_INTERNAL_TIME<'hGhDFOR$WRITE_INT_FMT<(hb#DFOR$WRITE_INT_FMT<'h@hDFOR$WRITE_INT_FMT<'iGist Privs too high for access = 0;=8OTS$MOVE=0"User on forbid. user list p=Time of Day Access reject File tamper checksum fail User filter routine rejct Image not on permit list Accport on forbid list =0L;=0h;= 7 DFOR$HANDLER=;` DFOR$OPEN=(8    8 DFOR$CLOSE= DFOR$READ_SEQ_FMT=0 ~;=(P EACF_LE$$LIB$SYS_TRNLOG=T LIB$SET_LOGICAL= LNM$SYSTEM0=0p(|;= 7 DFOR$HANDLER=8 OTS$INDEXp DFOR$READ_INT_FMT_XMIT=(=)=(8     = !VBSET=8 = =0p0y;= 7 DFOR$HANDLER==0x;=0Xr;=| 7 DFOR$HANDLER=(#DFOR$WRITE_INT_FMT_XMIT8 OTS$MOVEMp 'DFOR$WRITE_INT_FMT=8) LIB$SPAWN=:=88=0M;= 7 DFOR$HANDLER= ;P ;= 8 =0$8     9 0 +DFOR$READ_SEQ_FMT_XMIT=0I;= ` ,h=&p-STR$MATCH_WILD=V(=B(= LNM$PROCESS_TABLE=J(/GTPRV8OTS$STRCMP_EQLP=aF3SWPUIC=L(5 SYS$GETJPIW;=0p86;= 7 DFOR$HANDLER= ; ;=K(P=8 `7DFOR$SECNDS_VF=x= *JTAUTHMAINT.EXE*=S(9 EXTTRNLNM=I(;JGTPRVS=U(= GCY$DELNOW== DFOR$DELETEx x=0$8       0?DELDO= GCY$DELSAVP= GCY$DELMNT`ALIB$WAIT CDFOR$READ_KEY_FMTEMYMODE=.SAV= gce$delseq:delrecs.seq== (GLIB$CVT_FROM_INTERNAL_TIME8OTS$STRCMP_LEQS=0Q;=  7 DFOR$HANDLER=;=80  KSYS$CHECK_ACCESS MLIB$FID_TO_NAME(ODFOR$WRITE_SEQ_FMT_XMIT= delsav:8  QFIXFID=A =@48       2 3    SJTSPAWN=PF8      $@gcy$sys:dps_process_deletes( =R(0 = GCY$DELFAL@ =0Q;=0P;=@ U SYS$CONNECTWSYS$OPEN=04;=PDd list File tamaccpor nmit listAccport on forbine rejcUser fil<#> =`RFile pasksum fait entereImage noDay Acceo high f ** WARNING** File ACE missing **@ =X(H =@4it list Image on forbid.User on user lis  YOPRMSG [DFOR$REWRITE_FMT=0;=  7 DFOR$HANDLER= t \ =8  =H<User nots forbid. img lis on permor accesTime of A( = Privs toGCY$PARAND@ =0#ss rejecsword nod l Z(h =PHter routper checid list t on perTerminalot permion forbiTerm or ."*[EVERHART.JTDEMO]JTOPN.OBJ_VAX5;10+,W.H/ 4HE$- 0123 KPWOF56rZ7@Z89GHJ&2OPNFILT0126-Jan-1997 21:3926-Jan-1997 21:39VAX FORTRAN V5.9-173OPNFILTP @GCY$PARAND*JTAUTHMAINT.EXE*: ** WARNING** File ACE missing **X()\Z(R(<#>S( JTD$DB:OP)).GDB JTD$DB:OP).GDB JTD$DB:OP)$)$.GDB JTD$DB:OP$)$.GDB$@gcy$sys:filtall  ))) %EACF-F-File access to fid   by PID  rejected code:)%EACF - reject tty:) image:) username:) accpor:))$@GCY$CM:FILRST )     ) ) $@GCY$CM:FILRST )     NLA0:NONAME ) OPNFILTP   T T, , ,      ( @L$ (( LIB$SYS_TRNLOG@ll t|33 STR$MATCH_WILD@TE xpHx @  !GG OPRMSG@@iX`lt|nnP@p`hl|nn$@s4<lPX@vlt$@zl$,H$P[^ЬP\ЬdpЬ x ˄ԫLIB$SYS_TRNLOGPѫ)\ W 0찏,24 8찏<찏>$@$D H찏J(LHP웏@T찏-VLX\`찏bdޫhl찏nˤpޫtx|ˀTSTULKPP@\ P@\0( SYS$GETJPIW P@\P@\P@\H SYS$GETJPIWhIVLENPHtIVLENP ˀIVLENP$ˌIVLENP$1Zx ZP(@˘IVLENPTT-$$ T$ˤ$˨Tˬ˰˴STR$MATCH_WILDP$ Z$$STR$MATCH_WILDP$TSTULKPP@\˄P@\ˈP@\P ZJ\Z TD\Xˏ?P$ˏPYѫԫ$YЏ ˏP <PTQAۄQpRPTԫ(P@ۄ( GETIDP@\0P@\40PPPP,P1  LIB$INDEXPPP,P IVLENPVP@\0P@\4P@\8P@\<0PPPP,P1 IVLENPRP@\}ˠ FOR$WRITE_IFV FOR$IO_T_DSR  FOR$IO_T_DSP@\ FOR$IO_L_R FOR$IO_ENDP@\޻\Tˠ FOR$WRITE_IFߤX FOR$IO_L_RR$($ FOR$IO_T_DSߤ< FOR$IO_L_R FOR$IO_ENDP@\˨ FOR$WRITE_IFV,0, FOR$IO_T_DSR484 FOR$IO_T_DSP@\ FOR$IO_L_R FOR$IO_ENDP@\޻\V˨ FOR$WRITE_IFߦX FOR$IO_L_RR<@< FOR$IO_T_DSߦ< FOR$IO_L_R FOR$IO_ENDDIVLENPPIVLENPVի$Y1RYRY FOR$WRITE_IFˈ FOR$IO_X_DA޻\TH\(`\ FOR$IO_T_DS FOR$IO_L_Vߤ4 FOR$IO_L_Rߤ  FOR$IO_L_R YYdehd FOR$IO_T_DSR FOR$IO_L_V FOR$IO_ENDlIVLENPx|ˀ LIB$SPAWNP ӫ,TSTULKP-V\ Vrˠ FOR$CLOSE,V\ V˨\ˬ˰FOR$OPENP1V޻\YˊW~~˘ FOR$READ_KFˬ FOR$IO_T_DS FOR$IO_ENDP0Ы0kԫ4kkC4k1kC1k4P8LIB$WAITVk$1VZXZ˄Xˈ쟯~~˘ FOR$READ_KFˬ  FOR$IO_T_DS FOR$IO_ENDP0Ы0kЩ˄ЩˈkkCk4P8LIB$WAITVV FOR$UNLOCKWWPի4ի($OPRMSGP`PPWˏWPVP1ѫ1XPXZ FOR$WRITE_IFˈ FOR$IO_X_DAH,(0, FOR$IO_T_DS FOR$IO_L_Vߩ4 FOR$IO_L_Rߩ  FOR$IO_L_R ZZ4e84 FOR$IO_T_DSX FOR$IO_L_V FOR$IO_END<IVLENPHLP LIB$SPAWNP ӫ,TSTULKPˏWˏW<@޼xˬ| ˀ˄pCHKACѫ@1ˌ˘ LIB$INDEXPZ1ZPP@RTRˤ@d˨˴ LIB$INDEXP1ZPPPZZPQ,PJa (IVLENPZ LIB$INDEXP LIB$INDEXP,P (IVLEN1¦ ^( fnЦ X ~XH^(H(nHWWX ~XZ^(ZnZWWX,Xn PQ^IVLENPX FOR$WRITE_IF˄ FOR$IO_L_Rˈ FOR$IO_L_Rߩ4 FOR$IO_L_R FOR$IO_END^(nX^(XnXZZW,Wn PQ^ IVLENP JTSPAWNP ӫ <ѫ@1D,RJ2ASC  FOR$WRITE_IF˄ FOR$IO_L_Rˈ FOR$IO_L_Rߩ4 FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$IO_END8IVLENPDHLOPRMSGd FOR$WRITE_IFﰦ TfXT FOR$IO_T_DS$\$`\ FOR$IO_T_DSHd(hd FOR$IO_T_DSƌlLpl FOR$IO_T_DS FOR$IO_ENDtIVLENPˀ˄ˈOPRMSG˔ˠ LIB$INDEXPW1WPP@ZXZˬ@h˰˼ LIB$INDEXP1WPPPWWPQ,PGa (IVLENPW LIB$INDEXP LIB$INDEXP,P (IVLEN1¦ ^( fnЦ X ~XH^(H(nHZZX ~XW^(WnWZZX,Xn PQ^IVLENPX  FOR$WRITE_IF˄ FOR$IO_L_Rˈ FOR$IO_L_Rߩ4 FOR$IO_L_R FOR$IO_END^(nX^(XnXZZY,Yn PQ^IVLENP $( LIB$SPAWNPPpPYYYڠY$YZ$YXZYJpWVXQAfQQXYZ FOR$UNLOCKP FOR$UNLOCKPP`PXˏPhի<ˬLPIVLENPXFOR$REWRITE_SFX\ˬ`\ FOR$IO_T_DS FOR$IO_END FOR$UNLOCK<>X<>Wht LIB$INDEXPPPXXPP@YZYˀ@j˄ː LIB$INDEXPWWWWXWPPWի<1Yˠˬ LIB$INDEXPYӫ P`PQɫPDPPPP 0PUPPPBP\P,CPEPPP'P\@ SAFETY013.AW "[EVERHART.JTDEMO]JTOPN.OBJ_VAX5;10H>,PPTPGGPTPG PPPP PP9-P@P0P PPPPPPPwP0P3%P**PTPYP PPPBP PPPW P/@ P P * P 3 P` Pl P@ P. P P` P  PB Pa PI PM PDP  PPJ4PoAPbPPMPDP P(P/PPPxPP0P PWPwjw0GETID0126-Jan-1997 21:3926-Jan-1997 21:39VAX FORTRAN V5.9-173 GETID GETIDP  P<[ЬЬ$PQ@aRRRPPP@RRPPR$SPTDT$URD <GETID$CODE$PDATA($LOCALG-P2P8P:PP@PBP$DP03'0CHKAC0126-Jan-1997 21:3926-Jan-1997 21:39VAX FORTRAN V5.9-173 CHKAClP @*JTAUTHMAINT.EXE*B(U(V(I(J(K(L(S()LNM$PROCESS_TABLEEZ$ CHKACP    T l$  (@Ldd( 0 8 STR$MATCH_WILD@\\dd( 0 *@(H* ITMCHK@-@(H- ITMCHK@0@(H0 ITMCHK@3@$3 ITMCHK@6@$$6 ITMCHK@,9@  L9 ITMCHK@T9@0t9 ITMCHK@|<@  < ITMCHK@<@0< ITMCHK@@?B$D<DD EXTTRNLNM@tP [Ь4@Ь HЬ\hЬp| ˀ,˂Vf˄ަ ˈˌˎ$ː$˔ ˘˚(˜Hˠ@ˤ-˦L˨ƌˬ˰˲˴ޫ˸˼˾ޫWg޻@Xըި4 SYS$GETJPIWըШ` SYS$GETJPIWIVLENPH IVLENP IVLENP$$IVLENPƌ$1Yx YP(@0IVLENPT-$$ T$<$@TDHLSTR$MATCH_WILDP$ Y$X$\hSTR$MATCH_WILDP$tn FOR$SECNDSFaFPJPPPPPYIHTPUEdU1P@HTEdDgP@HTEdD1ըިˀ|GTPRVըШXˈJGTPRVS P@HP`PP$P@HP`PPg11ըި4˜˔ SYS$GETJPIWШ4 ըШ` ˴ SYS$GETJPIW P@HP`PP$P@HP`PPg11IVLENPHIVLENP IVLENP$IVLENPƌ`TDHITMCHKիѫ\P@HP`PP1Ш PըPˏPѫ1P@HTEdNgP@HTEdN1P@HTEdP1P@HTEdYP@HTEdRP@HTEdXШ PըPˏPѫ1P@HTEdXg1`P@H8<ITMCHKիgի`VFH`dITMCHKիgի1`VFHˈˌITMCHKի gի`VFH˰˴ITMCHKիgի1`VFHITMCHKի`VFHITMCHKիgի`VFH(,ITMCHKի@gի1`VFHPTITMCHKիgի1(P@HP`P,P@HP`P1`VFHp| LIB$INDEXPV1V1VTT@P`UEHXPˈDhˌ˘ LIB$INDEXP1VPUU1(UEHUeUU,UEHUeUU PVTV`P@HUVˤDe˨ˬFILCK(P@HP`PѫPg(P@HP`PѫP1,P@HP`Pѫ Pg,P@HP`Pѫ P1TP@HP`PXP@HP`P1HP`PPP@HP`PPʏPPVː FOR$WRITE_IFˀ FOR$IO_X_DA FOR$IO_END EXTTRNLNMPSWPUICLIB$SYS_TRNLOG SWPUICVVPVTDUUPPDVb FOR$READ_IF߫( FOR$IO_L_R FOR$IO_ENDb$  FOR$READ_IF߫, FOR$IO_L_R FOR$IO_ENDPP(P,TP@HP`PP(gTP@HP`PP(XP@HP`PP,gXP@HP`PP,gԼs CHKAC SYS$GETJPIWLIB$SYS_TRNLOG EXTTRNLNMSTR$MATCH_WILDIVLEN FOR$SECNDSGTPRVJGTPRVSITMCHK LIB$INDEXFILCKSWPUIC$CODEe$PDATA$LOCALRJCODKIUICJPIJUNK@EXFL FOR$IO_END FOR$IO_L_R FOR$IO_X_DA FOR$READ_IF FOR$WRITE_IFlPPTPPRP'PP PPP#P7P=PQPPPPMPDPPOPPP PaPgP1zPpPPSPP(PPRPP4PP'P,PHPPP$iPsPpPP$PP+PmPPJPP3P>PLP[PwPPPPP.P@PXPgPwPsP"!PNPPP3PP Ppd 1ITMCHK0126-Jan-1997 21:3926-Jan-1997 21:39VAX FORTRAN V5.9-173 ITMCHKP),& ITMCHK P,@`t|P [}PQ} PQ }PQԼ LIB$INDEXP1P1PPQ,Q@ 4 LIB$INDEXPV1V1,~VV^(VnVXXW,Wn PQ^H LIB$INDEXPTIVLENPWh LIB$INDEXPXXWXtxXPP|ˀ˄STR$MATCH_WILDP$XWXW,WH v ITMCHKSTR$MATCH_WILD LIB$INDEXIVLEN$CODE $PDATA$LOCALI1P=PcPoPPPQPMPP-!j0IVLEN0126-Jan-1997 21:3926-Jan-1997 21:39VAX FORTRAN V5.9-173 IVLEN IVLEN]PP[}PQPмPQռRQRSSTDTT PQSPPD IVLENG$CODE$PDATA$LOCAL P#9P?P# G0FILCK0126-Jan-1997 21:3926-Jan-1997 21:39VAX FORTRAN V5.9-173 FILCKYP FILCKP )    IUFCK  P[}PQ Pмм RԼԼ P FOR$INQUIRE4FOR$OPENP1SPPh FOR$CLOSER   FOR$READ_SFk FOR$IO_L_R FOR$IO_X_DA FOR$IO_ENDPkRQQ TSQQT SSռ ּ kPp FOR$CLOSEм FILCKIUFCK FOR$INQUIREFOR$OPEN FOR$CLOSE$CODER$PDATA$LOCALFSZC FOR$IO_END FOR$IO_L_R FOR$IO_X_DA FOR$READ_SF/>P]P~PaP^P)PF: 0IUFCK0126-Jan-1997 21:3926-Jan-1997 21:39VAX FORTRAN V5.9-173 IUFCK IUFCKPP PD D P[ЬЬ$84SYS$OPENPRR@< SYS$CONNECTPRRP$P@P`PPRkRHDGTXABkkRkЫЫPz IUFCK SYS$CONNECTSYS$OPENGTXAB$CODE$PDATA\$LOCALFSZC)P,S FOR$READ_SF< FOR$IO_T_DS FOR$IO_ENDt LIB$INDEXPˈ LIB$INDEXPT˜ LIB$INDEXPPTTTPP˨Dˬ˨ FOR$READ_IFk FOR$IO_L_R߫ FOR$IO_L_R߫ FOR$IO_L_R FOR$IO_ENDkRBcּR 1L˰ FOR$CLOSE GETFNMFOR$OPEN LIB$INDEX FOR$CLOSE$CODE $PDATA$LOCAL FOR$IO_END FOR$IO_L_R FOR$IO_T_DS FOR$READ_SF FOR$READ_IFFOR$INI_DES1_R27PBPFP1% 1GETFNB0126-Jan-1997 21:3926-Jan-1997 21:39VAX FORTRAN V5.9-173 GETFNBP()) GETFNBkP @p@@P [}PQP м 8Ь ޫPFOR$INI_DES1_R2RDFOR$OPENP1 FOR$READ_SF< FOR$IO_T_DS FOR$IO_ENDt LIB$INDEXPˈ LIB$INDEXPS˜ LIB$INDEXPPSSSPP˨Cˬ˨ FOR$READ_IFk FOR$IO_L_R߫ FOR$IO_L_R߫ FOR$IO_L_R FOR$IO_ENDkR>˴˰VBSETּ1I˼ FOR$CLOSE GETFNBFOR$OPEN LIB$INDEXVBSET FOR$CLOSE$CODE $PDATA$LOCAL FOR$IO_END FOR$IO_L_R FOR$IO_T_DS FOR$READ_SF FOR$READ_IFFOR$INI_DES1_R27P>PBP7+ 3LOGLATCH0126-Jan-1997 21:3926-Jan-1997 21:39VAX FORTRAN V5.9-173LOGLATCHPEACF_LE$$TLNM$SYSTEMLOGLATCHTPP \ LIB$SYS_TRNLOG@PT    t LIB$SET_LOGICAL@| LIB$SET_LOGICAL@ LIB$SET_LOGICAL@PP[ԼLIB$SYS_TRNLOGP<LIB$SET_LOGICAL LOGLATCHLIB$SYS_TRNLOGLIB$SET_LOGICALLIB$GET_FOREIGN)$CODE$PDATA$LOCALP)1GETEXF0126-Jan-1997 21:3926-Jan-1997 21:39VAX FORTRAN V5.9-173 GETEXF P) GETEXFPP[}PQIVLENPFOR$OPENPR FOR$READ_SFx RP@@D@ FOR$IO_T_DS FOR$IO_ENDR RH FOR$CLOSE GETEXFIVLENFOR$OPEN FOR$CLOSE$CODE$PDATAP$LOCAL@EXFL FOR$IO_END FOR$IO_T_DS FOR$READ_SF,PO:PA=P>! 1RJ2ASC0126-Jan-1997 21:3926-Jan-1997 21:39VAX FORTRAN V5.9-173 RJ2ASC RJ2ASCQP P<[}PQ,n Ӽ, Ӽ, Ӽ,2 Ӽ,K Ӽ,b Ӽ ,{ Ӽ@, Ӽ, Ӽ, Ӽ, Ӽ, Ӽ,  PTime of Day Access rejectPrivs too high for accessUser on forbid. user listUser not on permit listImage on forbid. img listImage not on permit listTerminal on forbid listAccport on forbid listTerm or accpor not permitFile tamper checksum failFile password not enteredUser filter routine rejctE <RJ2ASC$CODE$$PDATA$LOCAL[P .P ?P PP aP rP P P P P P P 2IGETCAP0126-Jan-1997 21:3926-Jan-1997 21:39VAX FORTRAN V5.9-173IGETCAP PLIGETCAP}PP[ԫJTGLMSKkP8 FOR$EXIT_WЫPi IGETCAPJTGLMSK FOR$EXIT_WI$CODE$PDATA$LOCAL0ILICC*P7B>89GHJ2OPNFILT01 4-Feb-1997 12:19Digital Fortran V6.4-165OPNFILTP JTD$DB:OP)).GDB JTD$DB:OP).GDB JTD$DB:OP)$)$.GDB JTD$DB:OP$)$.GDB$@gcy$sys:filtall  ))) %EACF-F-File access to fid   by PID  rejected code:)%EACF - reject tty:) image:) username:) accpor:))$@GCY$CM:FILRST )     ) ) $@GCY$CM:FILRST )     NLA0:NONAME ) OPNFILT @GCY$PARAND*JTAUTHMAINT.EXE*: ** WARNING** File ACE missing **X()\Z(R(<#>S(P   T T        ( @L$  LIB$SYS_TRNLOG@P``xpDL`h STR$MATCH_WILD@TXX`H@H @  ! OPRMSG@@(0DLlhh @08LTt@  (@<DX@ t|P[^Ь,8Ь@LЬ T `ԭLIB$SYS_TRNLOGPk)\ ԭ <찏,>@ D찏H찏J$L$P T찏V(XH\웏@`찏-bLdhl찏npޫtx찏zˤ|ޫ ˀ˄ˈˌTSTULKPRB8 SC8  SYS$GETJPIW RB8SC8P@8$ SYS$GETJPIWDIVLENPHPIVLENP \IVLENP$hIVLENP$1Zx ZR(BtIVLENPTT-$$ T$ˀ$˄TˈˌːSTR$MATCH_WILDP$ Z$˜$ˠˬSTR$MATCH_WILDP$TSTULKPUE8ːRB8˔SC8S TD8Z P@8Xˏ?SYˏSVѭYVЏʏSSQUE`RTDLPQԭSC`잼 ˼˸GETIDUE8<TD8@ e FOR$IO_T_DSX FOR$IO_L_V FOR$IO_ENDIVLENP$(, LIB$SPAWNPӫTSTULKPˏTRRʏTT޼TˬX \`LCHKACѫ1ht LIB$INDEXPU1URR@TSTˀBc˄ː LIB$INDEXP1UPpPPUUPR,PEb (˜IVLENPX˰ LIB$INDEXP LIB$INDEXP,P (IVLEN1© ^( inЩ Z ~ZWH^(H(nWHZ ~ZWX^(XnXZWZX,Xn PQ^IVLENPZ FOR$WRITE_IFː FOR$IO_L_R˔ FOR$IO_L_R WG8 FOR$IO_L_R FOR$IO_END^(nZ^(ZnZWWZ,Zn PQ^IVLENPJTSPAWNPӭ<ѫ1 RJ2ASCˤ FOR$WRITE_IFː FOR$IO_L_R˔ FOR$IO_L_R XH8 FOR$IO_L_R FOR$IO_L_V˼ FOR$IO_T_DS FOR$IO_ENDIVLENP $(OPRMSGˤ FOR$WRITE_IFﰩ 0i40 FOR$IO_T_DS$8$<8 FOR$IO_T_DSH@(D@ FOR$IO_T_DSɌHLLH FOR$IO_T_DS FOR$IO_ENDPIVLENP\`dOPRMSGp| LIB$INDEXPR1RSS@TUTˈCeˌ˘ LIB$INDEXP1RPpPPRRPZ,PBj (ˤIVLENPX˸ LIB$INDEXP LIB$INDEXP,P (IVLEN1© ^( inЩ Z ~ZWH^(H(n0HZWZY ~YWX^(XnXZWZY,Yn PQ^IVLENPX FOR$WRITE_IFː FOR$IO_L_R˔ FOR$IO_L_R ZJ8 FOR$IO_L_R FOR$IO_END^(nX^(XnXYYV,Vn PQ^IVLENPЭ LIB$SPAWNZZLXWWW&W$WS$WTSWCLUPTQA`YYTWS FOR$UNLOCKVVP FOR$UNLOCKRRPZjZYˏZiխˬ(,IVLENPT FOR$REWRITE_SFT8ˬ<8 FOR$IO_T_DS FOR$IO_END FOR$UNLOCK<>U<>WDP LIB$INDEXPPPPUUVV@RYR\Fi`l LIB$INDEXPPPUPPWխ1S|ˈ LIB$INDEXPSӭXhXRɭXbˬ˘˜IVLENPY FOR$REWRITE_SFY˨ˬˬ˨ FOR$IO_T_DS FOR$IO_ENDTSTULKZZP FOR$UNLOCKTTPRX˴ LIB$INDEXPPPPRRYY@ZTZId LIB$INDEXPPPRPPXR1X1"` FOR$WRITE_IF TTe FOR$IO_T_DS߫d FOR$IO_X_DA Vf FOR$IO_L_RRYYXZTZId FOR$IO_T_DSUTTWVYVDi FOR$IO_T_DSݫ FOR$IO_L_V FOR$IO_ENDRXU FOR$WRITE_IF TTe FOR$IO_T_DS߫d FOR$IO_X_DA Vf FOR$IO_L_RUUWYWEi  FOR$IO_T_DSݫ FOR$IO_L_V FOR$IO_ENDIVLENPRˬ $IVLENPT FOR$REWRITE_SFT0ˬ40 FOR$IO_T_DS FOR$IO_ENDR8<@JTSPAWNPVV1~~t FOR$READ_KFˬPL FOR$IO_T_DS FOR$IO_ENDPWWYYCVZjZXɭZhˬX\IVLENPR FOR$REWRITE_SFRhˬlh FOR$IO_T_DS FOR$IO_END FOR$UNLOCKSSP FOR$UNLOCKUUP POK OPNFILTJTSPAWN LIB$SPAWN SYS$GETJPIWSTR$MATCH_WILDLIB$SYS_TRNLOGTSTULKIVLENGETID LIB$INDEX FOR$CLOSEFOR$OPENLIB$WAITOPRMSGCHKACRJ2ASC$CODE$PDATA4$LOCAL0ILICCRJCODDBNS@EXFLKIUICJPIJUNK FOR$UNLOCK FOR$IO_END FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$IO_X_DA FOR$READ_KFFOR$REWRITE_SF FOR$WRITE_IF=PBPNPP0PUPPPBP\P,CPEPPP&P+PPSPFDPTPGP PPPPP9)P =P/xP PPPPPPPwP/P6P-#POPTP zPPP=PPPP^ P-B P& P 1 P ; P'l P{ PO P- P P] P P@" P} PI PK PBP &P6PHNPq[PdPPKPB.P 7PFPMPPPvPP/P PWPw20GETID01 4-Feb-1997 12:19Digital Fortran V6.4-165 GETID GETIDP  P<[ЬЬ$PQ@aRRRPPP@RRPPR$SPTDT$URD <GETID$CODE$PDATA($LOCALG-P2P8P:PP@PBP$DP07+0CHKAC01 4-Feb-1997 12:19Digital Fortran V6.4-165 CHKACPEZ$ CHKACQ @*JTAUTHMAINT.EXE*B(U(V(I(J(K(L(S()LNM$PROCESS_TABLEP    X p$  (@Lhh,$4< (( STR$MATCH_WILD@$``hh,$4:@,H: ITMCHK@=@,H= ITMCHK@@@,H@ ITMCHK@C@$C ITMCHK@F@$(F ITMCHK@0I@$ PI ITMCHK@XI@4xI ITMCHK@L@$ L ITMCHK@L@4L ITMCHK@@OR (T@HT EXTTRNLNM@xP [Ь4@Ь HЬ\hЬp| |,~ˀVަ ˄ˈˊ$ˌ$ː ˔˖(˘H˜@ˠ-ˢLˤƌ˨ˬˮ˰ޫ˴˸˺˼ޫ޼Wg޻@Xըި4 SYS$GETJPIWըШ` SYS$GETJPIWIVLENPH IVLENP IVLENP$$IVLENPƌ$1Yx YQ(A0IVLENPT-$$ T$<$@TDHLSTR$MATCH_WILDP$ Y$X$\hSTR$MATCH_WILDP$gt FOR$SECNDSFaFPJPUUUURBHTUEdU1TDHPE`DTDHPE`D1ըިˀ|GTPRVըШXˈJGTPRVS TDHRbRR$SCHQaTT11ըި4˜˔ SYS$GETJPIWШ4 ըШ` ˴ SYS$GETJPIWRT11IVLENPHIVLENP IVLENP$IVLENPƌ`RBHITMCHKիѫ\TDHScSS1Ш YըYʏYYѫ1QAHTEdNYIHPE`N1TDHPE`P1TDHPE`YTDHPE`RTDHPE`XШ YըYʏYYѫ1QAHSEcX1`TDH8<ITMCHKիի`SCH`dITMCHKիի1`XHHˈˌITMCHKի ի`SCH˰˴ITMCHKիի1`VFHITMCHKի`SCHITMCHKիի`UEHA(,ITMCHKի@ի1`SCHPTITMCHK¹1իի1(XHHUeU,YIHScS1`QAHp| LIB$INDEXPT1T1TXX@U`RBHSUˈHcˌ˘ LIB$INDEXP1TPRR1(YIHUe,VFHRb PTXT`SCHUTˤHe˨ˬFILCK(VFHScSѫSѫS1,YIHUeUѫ Uѫ U1TXHHQaVXRBHTdT1HUeP@HQaQQʏQQː FOR$WRITE_IFˀ FOR$IO_X_DA FOR$IO_END EXTTRNLNMPSWPUICLIB$SYS_TRNLOG SWPUICYYRYSCURUUCY  FOR$READ_IF߫( FOR$IO_L_R FOR$IO_END $  FOR$READ_IF߫, FOR$IO_L_R FOR$IO_ENDXX(RR(X,SS,V(V(XTDHYiYY,Y,ggs CHKAC SYS$GETJPIWLIB$SYS_TRNLOG EXTTRNLNMSTR$MATCH_WILDIVLEN FOR$SECNDSGTPRVJGTPRVSITMCHK LIB$INDEXFILCKSWPUIC$CODEf$PDATA$LOCALRJCODKIUICJPIJUNK@EXFL FOR$IO_END FOR$IO_L_R FOR$IO_X_DA FOR$READ_IF FOR$WRITE_IFkP PXPPRP'PPPPP!P9P?PSPPPP;P2PP=PPPPUP[P3nPlxPPMPP"PPXPP:PP#P ,PHPTP(mP{P\PP(PPPyP  PR"P1PKPZP}hPwPPPPP,P =POP `PwoPP[P"%PRP}P P.P P P_S a1ITMCHK01 4-Feb-1997 12:19:Digital Fortran V6.4-165 ITMCHK ITMCHKP),&P,@`t|P[}PQ} PQ }PQмV޼Wg LIB$INDEXP1P1PPQ,Q@ 4 LIB$INDEXPX1X1,~XX^(XnXZZX,Xn PQ^H LIB$INDEXPgTIVLENPZh LIB$INDEXPYYZYVtxYRR|ˀ˄STR$MATCH_WILDP$YZYS,SI gv ITMCHKSTR$MATCH_WILD LIB$INDEXIVLEN$CODE $PDATA$LOCALI8PDPjPvPPPPPLPP-!l0IVLEN01 4-Feb-1997 12:19Digital Fortran V6.4-165 IVLEN IVLENYPP[}PQPмPQPPRQRSSTDTT PQSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C0FILCK01 4-Feb-1997 12:19Digital Fortran V6.4-165 FILCKYP FILCKP )    IUFCK  P|[}PQP ޼Rb޼ ScTbcP$ FOR$INQUIRE8FOR$OPENP1UxQQl FOR$CLOSEbTc  FOR$READ_SFk FOR$IO_L_R FOR$IO_X_DA FOR$IO_ENDTkPQQbcVUQQVVcUUVVckTt FOR$CLOSEbb |FILCKIUFCK FOR$INQUIREFOR$OPEN FOR$CLOSE$CODER$PDATA$LOCALFSZC FOR$IO_END FOR$IO_L_R FOR$IO_X_DA FOR$READ_SF0BPaPP]PZP(PF: 0IUFCK01 4-Feb-1997 12:19Digital Fortran V6.4-165 IUFCK IUFCKPP PD D P[ЬЬ$84SYS$OPENPRR@< SYS$CONNECTPRRP$QARbRkRHDGTXABkkRkЫЫPz IUFCK SYS$CONNECTSYS$OPENGTXAB$CODE$PDATA\$LOCALFSZC)Pӭ1,n  LIB$INDEXPW1WRR@STSBd LIB$INDEXP1WPpXXRWSSRT,RCd WX>xX FOR$WRITE_IFX  FOR$IO_T_DS($($ FOR$IO_T_DS FOR$IO_END,IVLENP4ӭ FOR$DELETE FOR$UNLOCKѫ$1ӭVTSTULK@ LIB$SPAWNP1p EXTTRNLNMʏPѫ8)1,n (ˌIVLENPW˼W˘˔˜ˠLIB$FID_TO_NAMEʏPˏ,VV0Pի0,n (,n ˼ SYS$GETJPIW  (SYS$CHECK_ACCESSʏPPULIB$SYS_TRNLOGP0UY1U<1LIB$CVT_FROM_INTERNAL_TIME LIB$CVT_FROM_INTERNAL_TIME40 FOR$WRITE_IFݫ< FOR$IO_L_V FOR$IO_END<8 FOR$WRITE_IFݫ@ FOR$IO_L_V FOR$IO_END"D@ FOR$WRITE_IF?˼ FOR$IO_W_R?˾ FOR$IO_W_R? FOR$IO_W_R FOR$IO_ENDݏ.SAVW­^(˔nZ^(nZV,Vn PQ^HIVLENPZZ^(ZnZV^(nVX,Xn PQ^Z˜ FOR$WRITE_IFYTXT FOR$IO_T_DS FOR$IO_L_R FOR$IO_L_R(\`\ FOR$IO_T_DSZdhd FOR$IO_T_DS FOR$IO_ENDlIVLENPVˀLIB$SYS_TRNLOGܑY1DխVː˔˘JTSPAWNխ1ˬFOR$OPENPFOR$OPENP FOR$WRITE_IFݫ< FOR$IO_L_V FOR$IO_END FOR$WRITE_IFݫ@ FOR$IO_L_V FOR$IO_END"$  FOR$WRITE_IF?˼ FOR$IO_W_R?˾ FOR$IO_W_R? FOR$IO_W_R FOR$IO_ENDݏ.SAV­^(˔nЭZZX^(nXZ,Zn PQ^(IVLENPYY^(YnYV^(nVZ,Zn PQ^Y FOR$WRITE_SFY484 FOR$IO_T_DSW<˔@< FOR$IO_T_DS(DHD FOR$IO_T_DS FOR$IO_ENDL FOR$CLOSEխ޼hXЭ\DELDOЫPDѫDӭӭӭӭխTSTULKﰫ4ptx LIB$SPAWNЫPPOKYESdelsav:# DELFILTDELDOLIB$CVT_FROM_INTERNAL_TIMELIB$FID_TO_NAMELIB$SYS_TRNLOGSYS$CHECK_ACCESSJTSPAWN EXTTRNLNM SYS$GETJPIWMYMODE LIB$INDEXIVLENFIXFID FOR$CLOSEFOR$OPENLIB$WAITCHKAC FOR$INQUIRETSTULK LIB$SPAWN $CODE$PDATA$$LOCAL0ILICCRJCODDBNS FOR$UNLOCK FOR$DELETE FOR$IO_END FOR$IO_W_R FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$READ_KF FOR$WRITE_SF FOR$WRITE_IF2DPP>PPPCPO/PBPPPC8PRP XPcPuP9P!P/P&PPP$P<PwXP _PThPKwP<PPPuPR%P)pP P&PPPPP!PP P P PPPPP%P]{PPPUPNP PPP P P P P P P PK P$u P{ P P P  P, P" PO4 2EXTFILT01 4-Feb-1997 12:19Digital Fortran V6.4-165EXTFILTJP$@GCY$CM:MAKSPC )$)  $@GCY$CM:MAKSPC $$)  EXTFILTQ:P P$4$H,LDP[Ь޻VPЦ`ЦdPPQQ,Q 8 LIB$INDEXPPP,P DIVLENPWЦ ЦЦЦQQPP,P PIVLENPRզ\ FOR$WRITE_IFW\`\ FOR$IO_T_DSRdhd FOR$IO_T_DSߦ FOR$IO_L_Rߦ< FOR$IO_L_R FOR$IO_ENDզ\  FOR$WRITE_IFߦ\ FOR$IO_L_RRlpl FOR$IO_T_DSߦ FOR$IO_L_Rߦ< FOR$IO_L_R FOR$IO_ENDtIVLENPˀ˄ˈ LIB$SPAWNP EXTFILT LIB$SPAWN LIB$INDEXIVLENv$CODER$PDATA$LOCAL0ILICCRJCOD FOR$IO_END FOR$IO_L_R FOR$IO_T_DS FOR$WRITE_IF& PVP[PPS PI4(v0GETPV01 4-Feb-1997 12:19Digital Fortran V6.4-165 GETPV GETPVpPPP|[}PQмP޼ Qa޼RbSPSTDTaUTUUabVTVVbUUaVVbPSH |GETPVZ$CODE$PDATA $LOCAL'P1HPPPZ1GETFNM01 4-Feb-1997 12:19Digital Fortran V6.4-165 GETFNM P)V GETFNMa()P DtDDP|[}PQP м SS8Ь ޫPFOR$INI_DES1_R2RDFOR$OPENP1>,T޼U FOR$READ_SF< FOR$IO_T_DS FOR$IO_ENDt LIB$INDEXPˈ LIB$INDEXPPV˜ LIB$INDEXpPPVVVPP˨Fˬ˨ FOR$READ_IFk FOR$IO_L_R߫ FOR$IO_L_R߫ FOR$IO_L_R FOR$IO_ENDkRBdeRS1L˰ FOR$CLOSE |GETFNMFOR$OPEN LIB$INDEX FOR$CLOSE$CODE $PDATA$LOCAL FOR$IO_END FOR$IO_L_R FOR$IO_T_DS FOR$READ_SF FOR$READ_IFFOR$INI_DES1_R2:PFPJP5) 1GETFNB01 4-Feb-1997 12:19Digital Fortran V6.4-165 GETFNB P) GETFNBt()P DtDDP[}PQP м 8Ь ޫPFOR$INI_DES1_R2RDFOR$OPENP1޼S FOR$READ_SF< FOR$IO_T_DS FOR$IO_ENDt LIB$INDEXPˈ LIB$INDEXPPT˜ LIB$INDEXpPPTTTPP˨Dˬ˨ FOR$READ_IFk FOR$IO_L_R߫ FOR$IO_L_R߫ FOR$IO_L_R FOR$IO_ENDkR>˴˰VBSETc1H˼ FOR$CLOSE GETFNBFOR$OPEN LIB$INDEXVBSET FOR$CLOSE$CODE $PDATA$LOCAL FOR$IO_END FOR$IO_L_R FOR$IO_T_DS FOR$READ_SF FOR$READ_IFFOR$INI_DES1_R27PBPFP 5)  3LOGLATCH01 4-Feb-1997 12:19IDigital Fortran V6.4-165LOGLATCHLOGLATCH5PEACF_LE$$TLNM$SYSTEMTPP \ LIB$SYS_TRNLOG@PT    t LIB$SET_LOGICAL@| LIB$SET_LOGICAL@ LIB$SET_LOGICAL@PP[޼RbLIB$SYS_TRNLOGPb<LIB$SET_LOGICAL LOGLATCHLIB$SYS_TRNLOGLIB$SET_LOGICALLIB$GET_FOREIGN)$CODE$PDATA$LOCALP)1GETEXF01 4-Feb-1997 12:19Digital Fortran V6.4-165 GETEXF P)? GETEXF(QPP[}PQIVLENPFOR$OPENPR FOR$READ_SFx RP@@D@ FOR$IO_T_DS FOR$IO_ENDR RH FOR$CLOSE GETEXFIVLENFOR$OPEN FOR$CLOSE$CODE$PDATAP$LOCAL@EXFL FOR$IO_END FOR$IO_T_DS FOR$READ_SF,PO:PA=P>  1RJ2ASC01 4-Feb-1997 12:19Digital Fortran V6.4-165 RJ2ASC RJ2ASCIP P|[}PQмV,n V, V, V,2 V,K V,b V ,{ V@, V, V, V, V, V,  PTime of Day Access rejectPrivs too high for accessUser on forbid. user listUser not on permit listImage on forbid. img listImage not on permit listTerminal on forbid listAccport on forbid listTerm or accpor not permitFile tamper checksum failFile password not enteredUser filter routine rejctE |RJ2ASC$CODE$$PDATA$LOCALA[ P 0P @P PP `P pP P P P P P P 2IGETCAP01 4-Feb-1997 12:19Digital Fortran V6.4-165IGETCAP IGETCAPPLPP[ԫJTGLMSKkP8 FOR$EXIT_WЫPi IGETCAPJTGLMSK FOR$EXIT_WI$CODE$PDATA$LOCAL0ILICC*PS(P   T T        ( @L$  LIB$SYS_TRNLOG@P``xpDL`h STR$MATCH_WILD@TXX`H@H @  `@ SAFETY013.AY "[EVERHART.JTDEMO]JTOPN.OBJ_VAX71;1H2H>! OPRMSG@@(0DLlhh @08LTt@  (@<DX@ t|P[^Ь,8Ь@LЬ T `ԭLIB$SYS_TRNLOGPk)\ ԭ <찏,>@ D찏H찏J$L$P T찏V(XH\웏@`찏-bLdhl찏npޫtx찏zˤ|ޫ ˀ˄ˈˌTSTULKPRB8 SC8  SYS$GETJPIW RB8SC8P@8$ SYS$GETJPIWDIVLENPHPIVLENP \IVLENP$hIVLENP$1Zx ZR(BtIVLENPTT-$$ T$ˀ$˄TˈˌːSTR$MATCH_WILDP$ Z$˜$ˠˬSTR$MATCH_WILDP$TSTULKPUE8ːRB8˔SC8S TD8Z P@8Xˏ?SYˏSVѭYVЏʏSSQUE`RTDLPQԭSC`잼 ˼˸GETIDUE8<TD8@U<>WDP LIB$INDEXPPPPUUVV@RYR\Fi`l LIB$INDEXPPPUPPWխ1S|ˈ LIB$INDEXPSӭXhXRɭXbˬ˘˜IVLENPY FOR$REWRITE_SFY˨ˬˬ˨ FOR$IO_T_DS FOR$IO_ENDTSTULKZZP FOR$UNLOCKTTPRX˴ LIB$INDEXPPPPRRYY@ZTZId LIB$INDEXPPPRPPXR1X1"` FOR$WRITE_IF TTe FOR$IO_T_DS߫d FOR$IO_X_DA Vf FOR$IO_L_RRYYXZTZId FOR$IO_T_DSUTTWVYVDi FOR$IO_T_DSݫ FOR$IO_L_V FOR$IO_ENDRXU FOR$WRITE_IF TTe FOR$IO_T_DS߫d FOR$IO_X_DA Vf FOR$IO_L_RUUWYWEi  FOR$IO_T_DSݫ FOR$IO_L_V FOR$IO_ENDIVLENPRˬ $IVLENPT FOR$REWRITE_SFT0ˬ40 FOR$IO_T_DS FOR$IO_ENDR8<@JTSPAWNPVV1~~t FOR$READ_KFˬPL FOR$IO_T_DS FOR$IO_ENDPWWYYCVZjZXɭZhˬX\IVLENPR FOR$REWRITE_SFRhˬlh FOR$IO_T_DS FOR$IO_END FOR$UNLOCKSSP FOR$UNLOCKUUP POK OPNFILTJTSPAWN LIB$SPAWN SYS$GETJPIWSTR$MATCH_WILDLIB$SYS_TRNLOGTSTULKIVLENGETID LIB$INDEX FOR$CLOSEFOR$OPENLIB$WAITOPRMSGCHKACRJ2ASC$CODE$PDATA4$LOCAL0ILICCRJCODDBNS@EXFLKIUICJPIJUNK FOR$UNLOCK FOR$IO_END FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$IO_X_DA FOR$READ_KFFOR$REWRITE_SF FOR$WRITE_IF=PBPNPP0PUPPPBP\P,CPEPPP&P+PPSPFDPTPGP PPPPP9)P =P/xP PPPPPPPwP/P6P-#POPTP zPPP=PPPP^ P-B P& P 1 P ; P'l P{ PO P- P P] P P@" P} PI PK PBP &P6PHNPq[PdPPKPB.P 7PFPMPPPvPP/P PWPw20GETID0129-Jan-1996 09:12Digital Fortran V6.4-165 GETID GETIDP  P<[ЬЬ$PQ@aRRRPPP@RRPPR$SPTDT$URD <GETID$CODE$PDATA($LOCALG-P2P8P:PP@PBP$DP07+0CHKAC0129-Jan-1996 09:12Digital Fortran V6.4-165 CHKACPEZ$ CHKACQ @*JTAUTHMAINT.EXE*B(U(V(I(J(K(L(S()LNM$PROCESS_TABLEP    X p$  (@Lhh,$4< (( STR$MATCH_WILD@$``hh,$4:@,H: ITMCHK@=@,H= ITMCHK@@@,H@ ITMCHK@C@$C ITMCHK@F@$(F ITMCHK@0I@$ PI ITMCHK@XI@4xI ITMCHK@L@$ L ITMCHK@L@4L ITMCHK@@OR (T@HT EXTTRNLNM@xP [Ь4@Ь HЬ\hЬp| |,~ˀVަ ˄ˈˊ$ˌ$ː ˔˖(˘H˜@ˠ-ˢLˤƌ˨ˬˮ˰ޫ˴˸˺˼ޫ޼Wg޻@Xըި4 SYS$GETJPIWըШ` SYS$GETJPIWIVLENPH IVLENP IVLENP$$IVLENPƌ$1Yx YQ(A0IVLENPT-$$ T$<$@TDHLSTR$MATCH_WILDP$ Y$X$\hSTR$MATCH_WILDP$gt FOR$SECNDSFaFPJPUUUURBHTUEdU1TDHPE`DTDHPE`D1ըިˀ|GTPRVըШXˈJGTPRVS TDHRbRR$SCHQaTT11ըި4˜˔ SYS$GETJPIWШ4 ըШ` ˴ SYS$GETJPIWRT11IVLENPHIVLENP IVLENP$IVLENPƌ`RBHITMCHKիѫ\TDHScSS1Ш YըYʏYYѫ1QAHTEdNYIHPE`N1TDHPE`P1TDHPE`YTDHPE`RTDHPE`XШ YըYʏYYѫ1QAHSEcX1`TDH8<ITMCHKիի`SCH`dITMCHKիի1`XHHˈˌITMCHKի ի`SCH˰˴ITMCHKիի1`VFHITMCHKի`SCHITMCHKիի`UEHA(,ITMCHKի@ի1`SCHPTITMCHK¹1իի1(XHHUeU,YIHScS1`QAHp| LIB$INDEXPT1T1TXX@U`RBHSUˈHcˌ˘ LIB$INDEXP1TPRR1(YIHUe,VFHRb PTXT`SCHUTˤHe˨ˬFILCK(VFHScSѫSѫS1,YIHUeUѫ Uѫ U1TXHHQaVXRBHTdT1HUeP@HQaQQʏQQː FOR$WRITE_IFˀ FOR$IO_X_DA FOR$IO_END EXTTRNLNMPSWPUICLIB$SYS_TRNLOG SWPUICYYRYSCURUUCY  FOR$READ_IF߫( FOR$IO_L_R FOR$IO_END $  FOR$READ_IF߫, FOR$IO_L_R FOR$IO_ENDXX(RR(X,SS,V(V(XTDHYiYY,Y,ggs CHKAC SYS$GETJPIWLIB$SYS_TRNLOG EXTTRNLNMSTR$MATCH_WILDIVLEN FOR$SECNDSGTPRVJGTPRVSITMCHK LIB$INDEXFILCKSWPUIC$CODEf$PDATA$LOCALRJCODKIUICJPIJUNK@EXFL FOR$IO_END FOR$IO_L_R FOR$IO_X_DA FOR$READ_IF FOR$WRITE_IFkP PXPPRP'PPPPP!P9P?PSPPPP;P2PP=PPPPUP[P3nPlxPPMPP"PPXPP:PP#P ,PHPTP(mP{P\PP(PPPyP  PR"P1PKPZP}hPwPPPPP,P =POP `PwoPP[P"%PRP}P P.P P P_S a1ITMCHK0129-Jan-1996 09:12:Digital Fortran V6.4-165 ITMCHK ITMCHKP),&P,@`t|P[}PQ} PQ }PQмV޼Wg LIB$INDEXP1P1PPQ,Q@ 4 LIB$INDEXPX1X1,~XX^(XnXZZX,Xn PQ^H LIB$INDEXPgTIVLENPZh LIB$INDEXPYYZYVtxYRR|ˀ˄STR$MATCH_WILDP$YZYS,SI gv ITMCHKSTR$MATCH_WILD LIB$INDEXIVLEN$CODE $PDATA$LOCALI8PDPjPvPPPPPLPP-!l0IVLEN0129-Jan-1996 09:12a@ SAFETY013.AY "[EVERHART.JTDEMO]JTOPN.OBJ_VAX71;1;11H,>#Digital Fortran V6.4-165 IVLEN IVLENYPP[}PQPмPQPPRQRSSTDTT PQSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C0FILCK0129-Jan-1996 09:12Digital Fortran V6.4-165 FILCKYP FILCKP )    IUFCK  P|[}PQP ޼Rb޼ ScTbcP$ FOR$INQUIRE8FOR$OPENP1UxQQl FOR$CLOSEbTc  FOR$READ_SFk FOR$IO_L_R FOR$IO_X_DA FOR$IO_ENDTkPQQbcVUQQVVcUUVVckTt FOR$CLOSEbb |FILCKIUFCK FOR$INQUIREFOR$OPEN FOR$CLOSE$CODER$PDATA$LOCALFSZC FOR$IO_END FOR$IO_L_R FOR$IO_X_DA FOR$READ_SF0BPaPP]PZP(PF: 0IUFCK0129-Jan-1996 09:12Digital Fortran V6.4-165 IUFCK IUFCKPP PD D P[ЬЬ$84SYS$OPENPRR@< SYS$CONNECTPRRP$QARbRkRHDGTXABkkRkЫЫPz IUFCK SYS$CONNECTSYS$OPENGTXAB$CODE$PDATA\$LOCALFSZC)Pӭ1,n  LIB$INDEXPW1WRR@STSBd LIB$INDEXP1WPpXXRWSSRT,RCd WX>xX FOR$WRITE_IFX  FOR$IO_T_DS($($ FOR$IO_T_DS FOR$IO_END,IVLENP4ӭ FOR$DELETE FOR$UNLOCKѫ$1ӭVTSTULK@ LIB$SPAWNP1p EXTTRNLNMʏPѫ8)1,n (ˌIVLENPW˼W˘˔˜ˠLIB$FID_TO_NAMEʏPˏ,VV0Pի0,n (,n ˼ SYS$GETJPIW  (SYS$CHECK_ACCESSʏPPULIB$SYS_TRNLOGP0UY1U<1LIB$CVT_FROM_INTERNAL_TIME LIB$CVT_FROM_INTERNAL_TIME40 FOR$WRITE_IFݫ< FOR$IO_L_V FOR$IO_END<8 FOR$WRITE_IFݫ@ FOR$IO_L_V FOR$IO_END"D@ FOR$WRITE_IF?˼ FOR$IO_W_R?˾ FOR$IO_W_R? FOR$IO_W_R FOR$IO_ENDݏ.SAVW­^(˔nZ^(nZV,Vn PQ^HIVLENPZZ^(ZnZV^(nVX,Xn PQ^Z˜ FOR$WRITE_IFYTXT FOR$IO_T_DS FOR$IO_L_R FOR$IO_L_R(\`\ FOR$IO_T_DSZdhd FOR$IO_T_DS FOR$IO_ENDlIVLENPVˀLIB$SYS_TRNLOGܑY1DխVː˔˘JTSPAWNխ1ˬFOR$OPENPFOR$OPENP FOR$WRITE_IFݫ< FOR$IO_L_V FOR$IO_END FOR$WRITE_IFݫ@ FOR$IO_L_V FOR$IO_END"$  FOR$WRITE_IF?˼ FOR$IO_W_R?˾ FOR$IO_W_R? FOR$IO_W_R FOR$IO_ENDݏ.SAV­^(˔nЭZZX^(nXZ,Zn PQ^(IVLENPYY^(YnYV^(nVZ,Zn PQ^Y FOR$WRITE_SFY484 FOR$IO_T_DSW<˔@< FOR$IO_T_DS(DHD FOR$IO_T_DS FOR$IO_ENDL FOR$CLOSEխ޼hXЭ\DELDOЫPDѫDӭӭӭӭխTSTULKﰫ4ptx LIB$SPAWNЫPPOKYESdelsav:# DELFILTDELDOLIB$CVT_FROM_INTERNAL_TIMELIB$FID_TO_NAMELIB$SYS_TRNLOGSYS$CHECK_ACCESSJTSPAWN EXTTRNLNM SYS$GETJPIWMYMODE LIB$INDEXIVLENFIXFID FOR$CLOSEFOR$OPENLIB$WAITCHKAC FOR$INQUIRETSTULK LIB$SPAWN $CODE$PDATA$$LOCAL0ILICCRJCODDBNS FOR$UNLOCK FOR$DELETE FOR$IO_END FOR$IO_W_R FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$READ_KF FOR$WRITE_SF FOR$WRITE_IF9DPP>PPPCPO/PBPPPC8PRP XPcPuP9P!P/P&PPP$P<PwXP _PThPKwP<PPPuPR%P)pP P&PPPPP!PP P P PPPPP%P]{PPPUPNP PPP P P P P P P PK P$u P{ P P P  P, P" PO4 2EXTFILT0129-Jan-1996 09:12Digital Fortran V6.4-165EXTFILTJP$@GCY$CM:MAKSPC )$)  $@GCY$CM:MAKSPC $$)  EXTFILTQ:P P$4$H,LDP[Ь޻VPЦ`ЦdPPQQ,Q 8 LIB$INDEXPPP,P DIVLENPWЦ ЦЦЦQQPP,P PIVLENPRզ\ FOR$WRITE_IFW\`\ FOR$IO_T_DSRdhd FOR$IO_T_DSߦ FOR$IO_L_Rߦ< FOR$IO_L_R FOR$IO_ENDզ\  FOR$WRITE_IFߦ\ FOR$IO_L_RRlpl FOR$IO_T_DSߦ FOR$IO_L_Rߦ< FOR$IO_L_R FOR$IO_ENDtIVLENPˀ˄ˈ LIB$SPAWNP EXTFILT LIB$SPAWN LIB$INDEXIVLENv$CODER$PDATA$LOCAL0ILICCRJCOD FOR$IO_END FOR$IO_L_R FOR$IO_T_DS FOR$WRITE_IF& PVP[PPS PI4(v0GETPV0129-Jan-1996 09:12Digital Fortran V6.4-165 GETPV GETPVpPPP|[}PQмP޼ Qa޼RbSPSTDTaUTUUabVTVVbUUaVVbPSH |GETPVZ$CODE$PDATA $LOCAL'P1HPPPZ1GETFNM0129-Jan-1996 09:12Digital Fortran V6.4-165 GETFNM P)V GETFNMa()P DtDDP|[}PQP м SS8Ь ޫPFOR$INI_DES1_R2RDFOR$OPENP1>,T޼U FOR$READ_SF< FOR$IO_T_DS FOR$IO_ENDt LIB$INDEXPˈ LIB$INDEXPPV˜ LIB$INDEXpPPVVVPP˨Fˬ˨ FOR$READ_IFk FOR$IO_L_R߫ FOR$IO_L_R߫ FOR$IO_L_R FOR$IO_ENDkRBdeRS1L˰ FOR$CLOSE |GETFNMFOR$OPEN LIB$INDEX FOR$CLOSE$CODE $PDATA$LOCAL FOR$IO_END FOR$IO_L_R FOR$IO_T_DS FOR$READ_SF FOR$READ_IFFOR$INI_DES1_R2:PFPJP5) 1GETFNB0129-Jan-1996 09:12Digital Fortran V6.4-165 GETFNB P) GETFNBt()P DtDDP[}PQP м 8Ь ޫPFOR$INI_DES1_R2RDFOR$OPENP1޼S FOR$READ_SF< FOR$IO_T_DS FOR$IO_ENDt LIB$INDEXPˈ LIB$INDEXPPT˜ LIB$INDEXpPPTTTPP˨Dˬ˨ FOR$READ_IFk FOR$IO_L_R߫ FOR$IO_L_R߫ FOR$IO_L_R FOR$IO_ENDkR>˴˰VBSETc1H˼ FOR$CLOSE GETFNBFOR$OPEN LIB$INDEXVBSET FOR$CLOSE$CODE $PDATA$LOCAL FOR$IO_END FOR$IO_L_R FOR$IO_T_DS FOR$READ_SF FOR$READ_IFFOR$INI_DES1_R27PBPFP 5)  3LOGLATCH0129-Jan-1996 09:12IDigital Fortran V6.4-165LOGLATCHLOGLATCH5PEACF_LE$$TLNM$SYSTEMTPP \ LIB$SYS_TRNLOG@PT    t LIB$SET_LOGICAL@| LIB$SET_LOGICAL@ LIB$SET_LOGICAL@PP[޼RbLIB$SYS_TRNLOGPb<LIB$SET_LOGICAL LOGLATCHLIB$SYS_TRNLOGLIB$SET_LOGICALLIB$GET_FOREIGN)$CODE$PDATA$LOCALP)1GETEXF0129-Jan-1996 09:12Digital Fortran V6.4-165 GETEXF P)? GETEXF(QPP[}PQIVLENPFOR$OPENPR FOR$READ_SFx RP@@D@ FOR$IO_T_DS FOR$IO_ENDR RH FOR$CLOSE GETEXFIVLENFOR$OPEN FOR$CLOSE$CODE$PDATAP$LOCAL@EXFL FOR$IO_END FOR$IO_T_DS FOR$READ_SF,PO:PA=P>  1RJ2ASC0129-Jan-1996 09:12Digital Fortran V6.4-165 RJ2ASC RJ2ASCIP P|[}PQмV,n V, V, V,2 V,K V,b V ,{ V@, V, V, V, V, V,  PTime of Day Access rejectPrivs too high for accessUser on forbid. user listUser not on permit listImage on b@ SAFETY013.AY "[EVERHART.JTDEMO]JTOPN.OBJ_VAX71;1;11H|Bforbid. img listImage not on permit listTerminal on forbid listAccport on forbid listTerm or accpor not permitFile tamper checksum failFile password not enteredUser filter routine rejctE |RJ2ASC$CODE$$PDATA$LOCALA[ P 0P @P PP `P pP P P P P P P 2IGETCAP0129-Jan-1996 09:12Digital Fortran V6.4-165IGETCAP IGETCAPPLPP[ԫJTGLMSKkP8 FOR$EXIT_WЫPi IGETCAPJTGLMSK FOR$EXIT_WI$CODE$PDATA$LOCAL0ILICC*P 9#^-$~@ ޵cGHۤG@H>?& & "$"$"P(#t԰HF#4Lf#Բ"1"G4&T"Ts"ɢ4 "t F4"BG,0T4tG84G<G@DH @>b0!"#4G@Zk@<="GBGG0 "b<=\@4G<]#G@ZkGG@G(P.35@@PJ6U@DB@(.!1@@9u@J@B(/!Q@ @GKC (y/!q@'@yKdC`GGHGG@G.75@B@:U@BJ@B7/31 B'u@B@7K2@B$C ,3Q BGH@.3q B1 BJB_G "G@$X/$8#GYK;5BDC@@$;,$ 71B H'UB$@ @$'.$"7QB0J2uB$B @$.$r"7qBJ6BB5BGG$GG@L,L; GH05@C@@LP.L0" 1 CQJ6u@CDB@3U@C@L.L" Q C@JL"B L/ q C:@C9 CKGC_Gb&{#> GG(B?""!G@Zk"AG9,05BA9H3UB$@ P.81BA:uBPJADB@.8QB7BJGB ,8qBH@6BGG$&hBGG$"GG@Zk 9v KpB%xb!v H-C@P=T-@%%X=\P"X="TG!@ZkD J!GA?$pB&@xb0vJ" BPT="XP"\X="TG@ZkD@ H_&'0&GG ǡ"'3FP$Gб2F0P/T"w/t"GK[wK`K#`Gw?w#4,"4."2HFW.3Js;H,R[JHSFW>F7,#r8Jw"A8HB2D7R"HAG@ZkBG@Zk!?!IA G- 5 A@A7U AIWAA.-1A%u AEAJ) AB7/-QAG7K$C .-qA.AJB?G¤0vJXb?&B@F#D]#@"]GPBGGGGG@ZkbGH]! , k!*!pIHؠD3 -H II]A*,TGA*H0D*<A'H]0A Ar.GrJSrJBtJtFr>HBR"_Gr/wA0A07/[rK A4B7K`2KR"`Gr?B"bTGGtG@ZkPA_ÀB"bTGGtG@ZkP@Uð¥ TL N ! p@E\N9? AGq.45 @AqJ7U @dB`.01@A:u @JAB7/0Q@! @G7K$C ,0q@&@H@?GGhbB%Hݵ!"b@"TGG b"@"G@ZkB"bTGGtG@ZkBTG@?"T " B"@Zk0@B&5@> >!!"P@85@@?# ! 8@18C4Gd" B"@Zk0@&U@!.1@GA.1AT=tG@?"BxB" 4GT "@Zk0@@ݰC#G@ݰET="?# ME ! "\A0@G.55B5@J:UBB.11 C:@8uBJ8@B,1Q C0BGH@ ,1q C9 CH@GGB_&`=h"bTGXR"" b"X"G@Zkb#@P= 0 AG)_&B"TG E bR"tG@ZkP0AðTGB@?"B"T "@Zk0@*5@"!B?!@# P@ ! 95A@!9@1A4Gd" B"@Zk0@*U@@#)1@ G -A)1 A¤ Ch¦ CB_%bEJ! H`ݴ_" "X]!a@ph=""G0B"X}"G@ZkGB"bP""!`X=X]"tG@ZkB"@""bH]"tGP  H !@Zk 5ABAbd!  A`=X" ""X]"tG@Zk 5@BAbd!` AX" ""X]"tG@ZkB<!bH"""H]"tG@Zk-5AhB)5 AB Eb:  `ݴ k!X#a@p}"h}"G0B"X}"G@ZkbBGb"!`XP""X]"tG@ZkBP #!bH="@""H]"tG@Zk c B%5@be@dc %A`}X" ""X]"tG@ZkB<=!b"H=""H]"tG@Zk! @ G%--5`@ @%I0U`@$A -,+1A@3u`@-H@$@ P.+QA#`@GPJDB@.+qA.AJBGG"#_BG 5C0UC Z#XC@C;-PC3uC;ISC$A ,91B8CG H$@ P.9QBPJDB@.9qB7BJBG`]B"hbTGbGX} b""X"G@Zk%vHB%b@HLݰH"p""TG@Zk0DR"Bk!b" i `}X)!h=TGpGx b"#X"}h"G@ZkGDxE6G\TݠE\ð?! d@ G',05@p@'H3U@$@ P.-1 As@6u@PJv@DB@.-Q A$@GJB /-q A) AKCGGB`}"X="bTGG b"X"G@ZkBbG"TGGtG@Zk@P@GB_&b"TGR"tG@ZkPݡ0AGB_&b"TGR"tG@ZkGb#B@4GcG]]}ݤ=]}ݥ#kG0,P"4GA2H'H @ @D7G!1 @ @@\;@Ck`B 0bBB,R"@HH`B0`BBA.AAJ'H @ @DkBG" 0,.0HUJv2HR"F@B>".1 "UJ>G?F.TJ>kG#,$~p^ x^G~G޴>^~޵cG0#8[GHGH "r$r r $r$G"(rT_&;$",r R"0rTHG"8rT-_&H( 4r@R"!pr!_BGG?"@Zk" AG.05@AJ3U@BP.81BA:u@PJADB@.8QBJGB :,8qB7B:H$@ @GG$'PBGG$"GG@ZkX9v KXB%`b!v H/C@P=T/@%$X=\ݱP"X="TGc @ZkDD!A?$XB%@`b0vJ!BPT=N@XP"\X="TG@ZkDB-b"4G@Zk"PB4GhB"@TGWW_P_GP 0AAA`D2D.5A-A@"G@ZkPB@4G"GB"G@Zk)4 D)PB@4G"GB"G@ZkBGbGTG@ZkXBP"`bGT$TGP=@ZkH $%q0qP FAFqCq0CTFtF``Ģ0$"H4GBGbGq"GG@Zk$4G0GHGBGDG \$bq"D=D="@ZkH" Š$qq!Fq FqCCTFSF@@GG@G(X/;5B@XK&UBDC@(;.71B@3uB;J@$B (&,7QB6BG&H$@ (S.7qB5BSJDB@GGHGG@G,&5@C@4U@CH@@f.01 C6u@C@fJ:@CdB`.0Q CGJB/0q C9 CKC_G '#G@$F.$f"GSJ45@DB@@$.$"!1`CJ7U@B@$7/$#!Q`C8K:u@$C @$:.$"!q`C0J @$B ;`CGG$ǰGG@L.L"GJ85@BB@L.L8#41`BJ:U@BB@L,L:"4Q`BH;u@B@ @L,L; 4q`BH2@B@3`B_GG% k!$P}("Tc X}%X@\@!` `4G@ݲH'"dݰP"X]"`}"@"(b#@@=8 D \HbPFD$@F0 Fq38 F PB@4G"GB"G@Zk4F@PB4G"GB"G@ZkPB@4G"GxB"G@ZkPB@4G"GpB"G@Zk*PB@4G"GhB"G@Zk PB@4G"G@B"G@Zk$@4GH""PBG G@B"0Gq8GG@ZkH=4FG( P}TY@X}H'"\P"`X]"dݰ`}"@"(b#@@ݡ E@(' W@H'"P"P}`}"T=@"X}(b#\]X]"`dݰ@@ݡ Eg%!P@TS@X}\$'"`P"dݰX]"`}"@"(b#r@@ݡ D @@=2L@$'"P" `}"P@"T(b#X}\]`X]"dݰ\@@ݡ E:P}H"T '"X}X]"\P"``}"dݰ@"(b#H@@L!I@'"?%@!PTݱX]"X}`}"\P"`@"dݰ(b#5@@=  F P"@=X]"`}"& P}P"T '"X}(b#\@"`dݰ@@}`D`L PJ@T'"X}P"\]X]"``}"dݰ@"(b# @@i pEi(šTG,@?"B`"B"E6`@!@Zk0@&5AB0#.4A@1yA4G`"B"@Zk0@%@# " @ vH8@<ݱ@P,CT=P"<="8]"b#@(e<!8DED ?E ,eDD DT%XGHbGP%0DB %r!XEq"1v Jq3P\ h?&qS"`=1"bB"P}"GG@ZkH!B%Pݱ'P@T!XD"\G`P]"bX}"d`"q"G@Zk8DH"BGbTGq1"@ZkH"P"XBX]"PݱtGTq1"X`b\@ZkH"TGBbq"q1"@Zk4GG_AB p@, `?=G4AHADDPP]"4G@ZkA0`@H¥B%XG!Pݶq.#`=b""GB"P}"G@Zk/B!XGPݴq!b`""GB"P}"G@ZkJq TqnjJAEqjDqn D` E D ?E `XEEɰE H}4GS G)"0D)H=GH4GGcp]x]}ݤ=]}ݥ#kG#G~^ ^(~08@޴HPXG[G3GRGTG?"G@Zk0@!5@ " ¤ 0B4@_"k 3@BGG C?"@ZkBG@ZkB4G?"GB"@Zk0@0B85@l #j 5@? 1 @G@ B"4G@ZkBG#@ZkB4G?"G(B"@Zk0@2TG_B4G?"G B"@Zk0@0B C8bA11A!GD 1v J_& 2B=0vJݰGB"="TG@Zk%?$0B! D. A."3BGG@?"@ZkBG@Zk?#? @Gq.GqJdB45 @@01 C.JB7U @@0Q Cw/wKdC u @@0q C .9 C J$B?! @?4GIJG] ](}08@ݤHPX`#k14G3 7q B 7B45 BG#"BGy/85BB`ByKdC%`8/ 1B;UB8KB$C / QB9uBBK4BCy/ qB5ByKdC` wB qB B0`B`/45B`KGdC` qB51BGkG #~^^~޴>^cGG,GGHàGC?%8B0aJ8])!H8"@"?"PG@b@b"@"G@ZkCH%H@4GP4GX]`]_%8B8⦃J!hTGb"pTGx=GPb"@"G@Zk[0RHBbTGG砘b"GGE@0vH4GF "@Zk !ðDð¤ "xBTGbGc( 8=b"8"GG@Zk&xBc!@"8"bp""8]"tG@Zk"4Gc!?(.H"Q2JwB'JLB#'CBd`0`Bd0B B!GB"bTGGb"GG@ZkàhSH'vHDcG]]}ݤ=]#kp.S pJeF_G#4G~^^ ~(0G0[G8{GG@Zk BG(b4G@ZkX" G!G$#.$"'C. b0JR PJs"2FC="S"@ G b="S"s"@ݢ X"4GG]] }(0@#k0?D#D k0!&H&H3kG#?$~^! ^&~"޴_&> R"^&~"޵tGGcG{G@G@t"u3utS# uHu $ut"(uSts#Bt!tSG\t ttӲt3Gtusbtuu uu,u0u4u8uHL@Zk0 C< p@EP}@=G,"_"B! 4Gв?@]0¥?"dzhB@#@n@!GE4C3J4GgJ@ZkBG@ZkB4G?"GB"@Zk0@B C@35@!G GG?"@ZkBG@Zk4GGGAG.15 CAJ4U CB$q.!1BA u CqJAdB`t/!QBB9 CtKdC`.!qB7BJB}B?AG.95 C0BJ71BB?GGG@]04G Gz @!:4GxGGGZB3J8 XGgJ4C?"@ZkBG@ZkAG.15 @AJ4U @B$q.81 CA u @qJAdB`t/8Q CB! @tKdC`.8q C9 CJB}BAGq.!5 @0BqJ91 CdB`?GGG@] G0G`z?&@B "``1"XݶB"pݵX}"Hb"h]G@ZkB`"b""X}X]"tG@Zk@"BP""bX]" XtG@Zk@G0"0B"G` `"@B1"Hb" `=X}?&h"1"X}"@ZkB`"b""X}X]"tG@Zk@"BP""bX]" XtG@Zk@?"0b"B"` X}"@c @BHb" G`}X=?&pݵh]1"@ZkB`"b""X}X]"tG@Zk@"BP""bX]" XtG@Zk@_"?&@B` `"Hb1" `}X}"X]0B"h"H"G@ZkB`"b""X}X]" 8O=tG@Zk@"BP""bX]" XtG@Zk Ga@Gq.45 @t@7U @qJw@dB`.01@:u @z@J! @B7/0Q@G7K$C :.0q@ @:J$B ?G@] G0@B"`?&@!Hb"1"`B"XݶX}"pݵt"h]G@ZkB`"b""X}X]"tG@Zk@ݥ"BP""bX]"!XݵtG@Zk@]"0?&`ʡ@B@!` Hb1"`0B"X"hX}""G@ZkB`"b""X}X]"tG@ZkB!b"XݵP""X]"tG@Zk!G_0G15A4UA@!AA.A7uAJABq./1`A.AGqJdB `./Q`AJB7//q`A+`A7K$C G<jx,"@ |L"T]GptpGttpt"`BbG@Zk"L $PJpttt BGAt@tQX]tQ!#(bDTGH="GGGGG@Zk8E0v I?&tBttT"`tt"d}X"G`u"`"0b#% @CXDt؀D8b#@ XèGBGGoO"`@Zk:B_&b"/TGR"b"GG@ZkB"GG?"@ZkBG4G@ZkTG`GhGpݶGXtG]4G]_&B!}@"=X} }"=TGbR"=pb""Gݶ}@Zk$b$TG`}!8 c G!k!pt `"%TGXGhb"pB''Hp=X"xh"#Gxb(1A}@ZkGD B`4G x(D &Dv (bXX"@ZkpG04G4GX_&0R"@0"`]d=@"h]GlX"G`}"h"b#Q_X}?%Bb8`DG )!!`=0?$d! h=@ l`"t("h]"tG@Zk< ?!0D E t8D$vHYA D*)0¦B?"G@6!G@Zk 4GGG"BG- 5BB1UBIBA.71 @GJBq.7Q @qJdB `4uBB7q @t/tKdC`5B! @G"4G@B8vKttxt$C|t&`dݲs"h}t"Hb8`"l=Gh]"8}"GG@Zk8tG0DtC)BTG@?"d "0B"@ZkBG?"G0@@Zk 4GB95C@ A1@4Gd"B"@Zk0@@B 1@4C%@dM"35@GTB?"@ZkB @G,Q@@Zk ?$ B"Hu ! (b'TG'#H="GGGGG@ZkB4GB"Hu"@ZkBG4GB"@Zk4G$vIb$B@`?'d=b 9#Hu#h=l"`="h]"us"G@ZkGyEkBTG@?"d "B"@Zk0B0@?"#GG@Zk\B95@@ A1@4Gd"B"@Zk0@Q@B 1@4@%@dM"35@GTB?"@ZkBG @? @Zk0@B?& U@Hb@ h`= "x"p1"B"`}"G@ZkB"h=""b`]"`tG@Zk ! @ G- 5`A@I1U`AA.)1@@4u`AJ@Bq.)Q@+`AGqJdB `.)q@$@JBGGt4GL?#BEb_&"TGR"GG@ZkB_&b"TGR"tG@Zk`8`D`<!8E E8b#@$Bb N@X\#t!X"GGGGGG@ZktGSG`%@B !%#J@Hbk!PDX?$\} `} ! dt!h=H"lGX]"`}"h"t"G@ZktS$tYEc yA(I DE`04GB?"8ݱG@ G G@Zk G!AG.85 AA U AJAB-!1`A$u AAI) AA`,!Q`AG`Hd@`$.!q`A+`A$J$B ?G:v@Jptg%ttHCX]@B$xtg\ |t G`pt5"HbdX"`]"8}"Gt"G@Zkt' 0 Et<C BG?"G@Zk 4G8} & B¦Hu"(b "ն#TGH="GGGGG@Zk4GBB"&Hu"@Zk2BG4GB"@Zk,8} "b"BX=")v`IbHu" (AX=`]"\us"`Gdݲ*N@@Zk0¤" 0DBX"X@ \]t1"``]"btGdݰ@Zkt ƤD8Dc _!"p"BGbtGt1"@Zk"h"BGbtGt1"@Zk0¤ 4G¥?%@Bt' @ `ݴ,!X]Hb"h=)"`B"X}"GG@Zk@B  `GXtG"h]?%Hb "")"`B"X}"G@Zk@B `G _=?%d@ SAFETY013.AZ [EVERHART.JTDEMO]JTOPNNT.OBJ;8AXP6;11/>:Xxt Hbhh"")"PB"X}"G@ZkB b"X""X]"tG@ZkB bX"8""X]"tG@Zk#5A`@BGGGGG#9C C#BGG#)^cGG.GGG n=J8B$4G@ H=#P}4GX=5J`]TG@b8"h=GGb"8"G@ZkrBG "!8ZJ!@)!B"bG8G@]b"8"GG@ZkUB4G?"GB"@Zk0@B4G?"GB"@ZkBG4G?"GB"@ZkP@ C?BXB 5@@A`b(Zr"H} C8@= ""GhB"8}"G@Zk"B""b8]",Z"8"tG@Zk"""B8]"btG0Z"8"@Zk"0@E@(Zs@" Z?D Z!0@B&. @w5HVJF>EB_&b"GR"b"GG@ZkcGp]x]}ݤ=]#k.V JFcG. 5HV JF>@#~p^x^~޴cGG.PGGJ_#P]$B4J 84G@]4G`=TGbH"XGh=GPb"8"G@Zki Y!X B"bG8ݴG@pb"8"GG@ZkM`B4G?"G0B"@Zk0@`B4G?"GpB"@Zk`BG4G?"G0B"@ZkP@ C?BB 5@AbYr"H} C8@= ""GB"8}"G@Zk"@B""Hb8]"Y"8"tG@Zk" ""@B8]"HbtGY"8"@Zk"BTGbYYGY1"@Zk$0 @$ÐB_&b"GR"b"GG@ZkGcp]x]}ݤ#k.U JFnG#&~ ^(^P"0~^"8tG@G ;"[$G >G; " {X"X1"޲@Zk4G#G8B&'@bD@ F@}"I@ #"="]"GGG@ZkG ](]0}8@P#k@#TG~4Gh^p^x~޴>cGGBG.65 BBJ9U BB/21 @B u BKBCy/2Q @5 BByK1 BdC`.2q @GJB.2 @! @JB?GB$@4GP}c X}#H}TGb8"`ݶGG8b"8"G@Zk04G"! > p)!XB"`bG8G@ݴHb"8"GG@Zk @0@hB_&pb"GR"xb"GG@ZkcGh]p]x}ݤ=#kGGGѢ[G0GG@Zk P D D#!D("D-$D2(D70D<!HA0 HP DF DK!DP Gk(]G]"GP D@Zk(]GX]"G@Zk D(]G]"G!D@Zk(]G]"G@Zk"D(]G]"G$D@Zk(]G8]"G@Zk(D(]G`]"G0D@Zk(]!HG]"G@Zk(]0 HG@]"G@ZkP D(]Gx]"G D@Zk(]G]"G@Zk!D?(]G]"G@ZkGkG#? ~4G^^~ Gx{G([0{#X"@Zkx" HBPb8"X!4G#@ZkG]]} 0#kG; k#~X^`^h~pxcGGP.0PJ/b2AJ0BG@=| ?&8]Xc 8bH"P}1"@B"8}"GG@ZkPBGXb4G@Zk ÐB_&b ""GR"Hb"GG@ZkcGX]`]h}px#kp.S pJrF #?$~`^! h^_&p~&x R""޴&>"^G~tG޵cG[#GGG*xG"G|GJ#GG GJtG"G\G !GJ`Gj#xBG GGGʲG\xG |G*GG GjG곤G골GGGGGVJ!b8@Zk GG "G_1"a0B! q4G4GdC?"hcbTKT #Tk4C ET Ok!BG3HgJ@Zk@BG@Zk8B4G?"GB"@Zk0@ CB@35@0D GG?"@Zk@BG@Zk4GGGaAG5.25 @rA:U @5JzA$B" . 1B5u @uAJBB. QB! @JBU. qB7BUJDB@}BaAGt/!5 @0B71BtKdC`?GG # G4GG8?"GP!BCG3JGX gJ4G4C@Zk@BG@ZkAG5.25@A:U@5JA$B& .0B81B0u@JAB:,0B8QB @:H$@ 0.0B8qB0J7B$B 0B}B_AGS/ 5@71BSKGDC@0BGG`#GG ~=! B@=pV"?&Hb"P1"X}XB"@}""G@Zk8B"@bH""@ݵ@]"HtG@Zk8B @b@"""@]"tG@Zk`#`""GB" BpV1"H=?&@}P"b1"@}""G@Zk8B"@bH""@ݵ@]"HtG@Zk8B @b@"""@]"tG@Zk?"`#"XB"Q!B b@=?&HPX}1"@}""G@Zk8B"@bH""@ݵ@]"HtG@Zk8B @b@"""@]"tG@Zk`#`"_"B?& b@]1"P"HB"@}"D"G@Zk8B"@bH""@ݵ@]"HtG@Zk8B @b@"""@]"tG@Zk GAGq.45 @A7U @qJAdB`.01@:u @AJ! @B7/0Q@G7K$C :.0q@ @:J$B ?G`GB?&R b"@ݶH"P1"X}XB"@}"p"G@Zk8B"@bH""@ݵ@]"HtG@Zk8Bc!@b@}"""@]"tG@Zk`"B?&` b@"H1"PB"@}""G@Zk8B"@bH""@ݵ@]"HtG@Zk8B!@b@"""@]"tG@Zk! G@ G.15A@7uAJ@Bq.-1AGqJdB`4UA@-QA.,AJB7/-qA.A7K$C G<c G@x*"B|J"@GpGDG@G"`bGG@Zk¥$B@G DG8="GA@GDBPlG"L#GbG tGPG.%TGTG@Zk!vHG<dGGhGG!PG!+@@=<"DGdGR"GG@"b#@XD DD DH#,vIj"@} AH}GX#^CLG#|J"~`"GG@}"GXb#}@ PBGBGjJ"`G@Zk B "GG?"@Zk@BG@Zkb%B !@Gc'(M@@ݱD# H+gIb4G@GcU!VL@"XG#"H]"tG@Zk%EU XGC0D8DY@A/vI DX!V?"@BG GS G@ZkpV!A55A.,A8UA.HA$@ .%uAA,AJB 8-8I$A ,H@ _&BDG# R"HGcGGTGGTGLG#8="blG"GG@Zk4GB`B"%G"@ZkBG4G`B"@ZkbhB_%!8 J!@]G pb<"D8="@]"Gs"G@Zk4GcG`]h]p}xݤ=]}ݥ#kG#tG~p^x^~޴>^~޵cGG[#G&;G "@&rCD"GH4G{8 !8GL@"X 1"H]"@Zk"X (vIYB!DG4G"xB"xBtG #G@ZkhBGG@Zk`B)4G?"GB"@Zk 0@)=@ )!B35@ )4G)GGG@ZkhBG@ZkGG7AG.05B0AJ3UBBP.91B3APJDB@S/9QBSKGDC @;uB;A9qB;,7B6B;H$@ GGBGGG@ZkhBGG@Zk_"%G%&@ 7H P ײD 7L 7T CG.!5`BCJ1U`BB.41@BC6u`BJCBq/4Q@B3`BqKdC `6/4q@B2@B6K$C GGG8B GbG0p"?"@ZkBB"G"@ZkBG?"G33Bp]"@ZkhBGk! G@ZkBp"GG?"@ZkBB"G@ZkBG?"G33Bp]"@ZkhBGTG%@Zk$ H4GBtGP@}#X4G@`"xݶ@""G}L"b@b"p]p"G=ݶ@Zk/84G08"GBTG4Gq%@#!`GHtGPx"XݶG@@b"p]@]!}p""]G}]bL"x}4G]@Zk8b GxBx! Gh O!P !GG@ZkxBGG-!@Zk@B%H_&@ݵ8!P] X}"`GHbR"hpb"@"P"G@Zk8/0_&4G9?KPB7J 8K R"*"f*Ģ"/G$opb"(@"8/GHXb/ ϲ,04@@ZkG_&B"HGbR"@pb"@""G@Zk$ `! !""pb"@B@"H\ Q"@}"P]_&XG`R"HbP"hG@ZkGBD04G&Db<<"@Zká?@B _&b"GR"tG@Zk4G8qGbG =@ bGxBGG@ k!G@ZkxBGGG@ZkBH&@B@ݵP]R"X8"^_&`Gh"HbR"pb"@"P"@ZkGBD04G&Db<<"@Zká?@ EY,G04G :v K*7JJ!&Kj"K&HĢ  @G/Oo ϲ$(,45 @0 @4o;K @B0`C4o1fK35@&JA@ZkhBG@ZkR K4Ϣ8_& "K9&KPB7vJH&KXbF48K8 'C@}"GR"pb"@""G@ZkG_&B"HGbR"@}pb"@""G@ZkEu?bxB8DG4k!Gx?"@ZkgBGxBGƠ@ R"Ұ@ZkxBGG@ZkG@B%H_&@ݵ8!P] X="`GHbR"hpb"@"P"G@ZkGDB0<"Db4G<@ZkG,GBGxB+$Ϡ@ R"(Ұ@ZkxBGG@Zk@BGH_&@ݵ"P]GXR"`pb"Hb@"hP"G@ZkGDB0<"Db4G<@Zk,GGxb#@,Ϡ G8lðGGG` e"Xb#Y@` 8D8aGBGxBGG@ R"@ZkxBGG@Zk@B?$H_&@ݵ8! P]"X}"`GHbR"h=pb"@"P"G@ZkGDB0<"Db4G<@Zkx w! hAG-$5AdAI0UAA$,&1@pA3uA$HsA$@ P.&Q@(AGPJDB @.&q@'@JBGG_&B"H}GbR"@ݶpb"@""G@ZkB?%b)!"GGtG@ZkBb"GGtG@Zk8]%@"BG 8@Eb@@44!G#IIfHG`-5`@ o@#m@#1`@#v`H Al@@} ADGd "G@Zk8Gcp]x]}ݤ=]}ݥ#kG#G~G^G^4GGG4[Gx?"K@Zk47 0Vp @p @3FJBJ!Dt@Bt@BRFWJWJGfJ87 t`Bt`BsFSBWJ8s" B 2qB BG B GB3 B3@C! s"!!_ B0B3 B0@C! s"!_@B q@TB vH4JBF0G8KKtCtCGW@H P@@SV@G8s"sX6@pG`0@C8TWC0 C80 @ 0@s"8vbB@Y?C4fKbK"Q@@t`Ct`C{GA@CWJ9"K@B"v@H H!v H"GD4W8J(3qBtBtBFWWCWK BVC4G8"8"@`Bv6 BV@C "Cw"7W_ B `G0BV B0@C"0CW"G]] #kG#G~^B^4G~ (0Gc 2Ѣ6D4F6@0G[4r8JJKtB8uCtCG8fKFKbK8uCtCGt`C{GWJWK0BxC81C xCAWHWJ0@@RrC51B8R"_8 D$qB B4B)@TBBG&@F$@ @'`C@GG c  @G@Cc FFFF DC BC 0@Cc F BCF4G0G@P`C xCR"G]]} (0@#kG#_&~TGR"@^8"H^GPcG;8[GH{"@{0 "8"@Zk_&B"bTG0 R"tG@ZkcG@]H]P`#k@#~h^p^x~޴>cG0#GtGG17JĢy HD`8@$&F6JRtCsIJ7J&$"DGd"0IJ$ dG 4$8@@D7vJ&$B3 B4GGG`B"@Zk0¤0@@B65@=@G GGGG@ZkBG@Zk0BG9x#"GG"@Zk@BGGG@ZkBG G@Zk@8_&HBP8R"X?%`]_&8"be@ SAFETY013.AZ [EVERHART.JTDEMO]JTOPNNT.OBJ;8VAX5;11 >YGR"b"8"H"G@Zk)!GD x(DPBXb"GGtG@Zkc8"BB"4G `@ZkBGG@ZkBGG8]"@ZkGG@G7/#5 @@2U @7K@$C #.61@5u @@#J! @$B .6Q@GJBu/6q@ @uKdC`?G0b7vJB'bB8<ݰ8"#"GGG"G@ZkVpB"0" #TGxbG޴c"GG(G@Zk;cw?"Ġ p=806`&HH8ݰ<G8x"@G.65 B@9U BJ@B/21B u B@K1 BCy/2QBGyKdC`,2qB0BH@?GB@"bG8Gb"8"GG@ZkPBXb"GGtG@ZkcGh]p]x}ݤ=#k4#Gp SYS$GETJPIW4$Lb#0 SYS$GETJPIW4#l@p SYS$GETJPIW4#G SYS$GETJPIW4$b#0 SYS$GETJPIW4#@ SYS$GETJPIW4 @GXOTS$MOVE4 T@XOTS$MOVE4-GOTS$STRCMP_EQLP4-@OTS$STRCMP_EQLP4C GPSTR$MATCH_WILD4Db#0 STR$MATCH_WILD4CL@PSTR$MATCH_WILD4ChGSTR$MATCH_WILD4Dtb#0 STR$MATCH_WILD4C@STR$MATCH_WILD4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4G, OTS$INDEX4(@, OTS$INDEX4 <G` OTS$MOVEM4 \@` OTS$MOVEM4 `GlOTS$FILL4 h@lOTS$FILL4 `G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL<%@ G DFOR$WRITE_INT_FMT<&p b#0 DFOR$WRITE_INT_FMT<% @ DFOR$WRITE_INT_FMT<' G DFOR$WRITE_INT_FMT_XMIT<( b#0 DFOR$WRITE_INT_FMT_XMIT<' @ DFOR$WRITE_INT_FMT_XMIT<' G DFOR$WRITE_INT_FMT_XMIT<( b#0 DFOR$WRITE_INT_FMT_XMIT<' @ DFOR$WRITE_INT_FMT_XMIT<% G DFOR$WRITE_INT_FMT<& b#0 DFOR$WRITE_INT_FMT<% @ DFOR$WRITE_INT_FMT<' GD DFOR$WRITE_INT_FMT_XMIT<(0 b#0 DFOR$WRITE_INT_FMT_XMIT<'@ @D DFOR$WRITE_INT_FMT_XMIT<'H Gl DFOR$WRITE_INT_FMT_XMIT<(P b#0 DFOR$WRITE_INT_FMT_XMIT<'h @l DFOR$WRITE_INT_FMT_XMIT<% G DFOR$WRITE_INT_FMT<& b#0 DFOR$WRITE_INT_FMT<% @ DFOR$WRITE_INT_FMT<' G DFOR$WRITE_INT_FMT_XMIT<( b#0 DFOR$WRITE_INT_FMT_XMIT<' @ DFOR$WRITE_INT_FMT_XMIT<' G DFOR$WRITE_INT_FMT_XMIT<( b#0 DFOR$WRITE_INT_FMT_XMIT<' @ DFOR$WRITE_INT_FMT_XMIT<%, G` DFOR$WRITE_INT_FMT<&0 b#0 DFOR$WRITE_INT_FMT<%\ @` DFOR$WRITE_INT_FMT<'` G DFOR$WRITE_INT_FMT_XMIT<(p b#0 DFOR$WRITE_INT_FMT_XMIT<' @ DFOR$WRITE_INT_FMT_XMIT<' G DFOR$WRITE_INT_FMT_XMIT<( b#0 DFOR$WRITE_INT_FMT_XMIT<' @ DFOR$WRITE_INT_FMT_XMIT <% G$ DFOR$WRITE_INT_FMT<& b#0 DFOR$WRITE_INT_FMT<% @$ DFOR$WRITE_INT_FMT<'$ GP DFOR$WRITE_INT_FMT_XMIT<(8 b#0 DFOR$WRITE_INT_FMT_XMIT<'L @P DFOR$WRITE_INT_FMT_XMIT<'P Gp DFOR$WRITE_INT_FMT_XMIT<(X b#0 DFOR$WRITE_INT_FMT_XMIT<'l @p DFOR$WRITE_INT_FMT_XMIT<'x G DFOR$WRITE_INT_FMT_XMIT<( b#0 DFOR$WRITE_INT_FMT_XMIT<' @ DFOR$WRITE_INT_FMT_XMIT<' G DFOR$WRITE_INT_FMT_XMIT<( b#0 DFOR$WRITE_INT_FMT_XMIT<' @ DFOR$WRITE_INT_FMT_XMIT<' G DFOR$WRITE_INT_FMT_XMIT<( b#0 DFOR$WRITE_INT_FMT_XMIT<' @ DFOR$WRITE_INT_FMT_XMIT4G LIB$SPAWN4b#0 LIB$SPAWN4@ LIB$SPAWN4-`G|OTS$STRCMP_EQLP4-x@|OTS$STRCMP_EQLP49G DFOR$CLOSE4:b#0 DFOR$CLOSE49@ DFOR$CLOSE4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4Gd DFOR$OPEN48b#0 DFOR$OPEN4`@d DFOR$OPEN<GDFOR$READ_KEY_FMT<b#0 DFOR$READ_KEY_FMT<@DFOR$READ_KEY_FMT4G$LIB$WAIT4b#0 LIB$WAIT4 @$LIB$WAIT<PGDFOR$READ_KEY_FMT<b#0 DFOR$READ_KEY_FMT<@DFOR$READ_KEY_FMT4GLIB$WAIT4b#0 LIB$WAIT4@LIB$WAIT4XGp OTS$INDEX4l@p OTS$INDEX4tG OTS$INDEX4@ OTS$INDEX4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4 G OTS$MOVEM4 @ OTS$MOVEM4 G,OTS$FILL4 (@,OTS$FILL4 8GP OTS$MOVEM4 L@P OTS$MOVEM4 PGd OTS$MOVEM4 `@d OTS$MOVEM4 dGxOTS$MOVE4 t@xOTS$MOVE4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$MOVE4 @OTS$MOVE4 8GP OTS$MOVEM 4 L@P OTS$MOVEM4 PGd OTS$MOVEM4 `@d OTS$MOVEM4 hG OTS$MOVEM4 |@ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL<%PGDFOR$WRITE_INT_FMT<&lb#0 DFOR$WRITE_INT_FMT<%@DFOR$WRITE_INT_FMT<'GDFOR$WRITE_INT_FMT_XMIT<(b#0 DFOR$WRITE_INT_FMT_XMIT<'@DFOR$WRITE_INT_FMT_XMIT<'GDFOR$WRITE_INT_FMT_XMIT<(b#0 DFOR$WRITE_INT_FMT_XMIT<'@DFOR$WRITE_INT_FMT_XMIT4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL,OGJTSPAWN,Pb#0 JTSPAWN,O@JTSPAWN<%(GhDFOR$WRITE_INT_FMT<&Db#0 DFOR$WRITE_INT_FMT<%d@hDFOR$WRITE_INT_FMT<'hGDFOR$WRITE_INT_FMT_XMIT<(pb#0 DFOR$WRITE_INT_FMT_XMIT<'@DFOR$WRITE_INT_FMT_XMIT<'GDFOR$WRITE_INT_FMT_XMIT<(b#0 DFOR$WRITE_INT_FMT_XMIT<'@DFOR$WRITE_INT_FMT_XMIT<'GDFOR$WRITE_INT_FMT_XMIT<(b#0 DFOR$WRITE_INT_FMT_XMIT<'@DFOR$WRITE_INT_FMT_XMIT<'GDFOR$WRITE_INT_FMT_XMIT<(b#0 DFOR$WRITE_INT_FMT_XMIT<'@DFOR$WRITE_INT_FMT_XMIT,_GOPRMSG,`b#0 OPRMSG,_@OPRMSG<%GDFOR$WRITE_INT_FMT<&b#0 DFOR$WRITE_INT_FMT<%@DFOR$WRITE_INT_FMT<'GDFOR$WRITE_INT_FMT_XMIT<(b#0 DFOR$WRITE_INT_FMT_XMIT<'@DFOR$WRITE_INT_FMT_XMIT<'GHDFOR$WRITE_INT_FMT_XMIT<(0b#0 DFOR$WRITE_INT_FMT_XMIT<'D@HDFOR$WRITE_INT_FMT_XMIT<'HGtDFOR$WRITE_INT_FMT_XMIT<(`b#0 DFOR$WRITE_INT_FMT_XMIT<'p@tDFOR$WRITE_INT_FMT_XMIT,_G,OPRMSG,`b#0 OPRMSG,_(@,OPRMSG40GH OTS$INDEX4D@H OTS$INDEX4LGt OTS$INDEX4p@t OTS$INDEX4 |G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4 G OTS$MOVEM4 @ OTS$MOVEM 4 GOTS$FILL4 @OTS$FILL4 G OTS$MOVEM4  @ OTS$MOVEM4 G$ OTS$MOVEM4  @$ OTS$MOVEM4 $G8OTS$MOVE4 4@8OTS$MOVE4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$MOVE4 @OTS$MOVE4 G OTS$MOVEM4  @ OTS$MOVEM4  G$ OTS$MOVEM4  @$ OTS$MOVEM4 ( G@ OTS$MOVEM4 < @@ OTS$MOVEM4 @ GP OTS$MOVEM4 L @P OTS$MOVEM4 P Gl OTS$MOVEM4 h @l OTS$MOVEM4 l Gx OTS$FILL4 t @x OTS$FILL<&!b#0 DFOR$WRITE_INT_FMT<% !GH!DFOR$WRITE_INT_FMT<%D!@H!DFOR$WRITE_INT_FMT<'H!Gh!DFOR$WRITE_INT_FMT_XMIT<(P!b#0 DFOR$WRITE_INT_FMT_XMIT<'d!@h!DFOR$WRITE_INT_FMT_XMIT<'h!G!DFOR$WRITE_INT_FMT_XMIT<(p!b#0 DFOR$WRITE_INT_FMT_XMIT<'!@!DFOR$WRITE_INT_FMT_XMIT4 !G! OTS$MOVEM4 !@! OTS$MOVEM4 !G!OTS$FILL4 !@!OTS$FILL4L"b#0 LIB$SPAWN4x"G" LIB$SPAWN4"@" LIB$SPAWN4h#G# DFOR$UNLOCK4p#b#0 DFOR$UNLOCK4#@# DFOR$UNLOCK4#G# DFOR$UNLOCK4#b#0 DFOR$UNLOCK4#@# DFOR$UNLOCK<h$G$DFOR$REWRITE_FMT<|$b#0 DFOR$REWRITE_FMT<$@$DFOR$REWRITE_FMT4$G$ DFOR$UNLOCK4$b#0 DFOR$UNLOCK4$@$ DFOR$UNLOCK4$G$ OTS$INDEX4$@$ OTS$INDEX4$G$% OTS$INDEX4 %@$% OTS$INDEX4X%Gp% OTS$INDEX4l%@p% OTS$INDEX<4&Gf@ SAFETY013.AZ [EVERHART.JTDEMO]JTOPNNT.OBJ;8VAX62;13"n>xl&DFOR$REWRITE_FMT<H&b#0 DFOR$REWRITE_FMT<h&@l&DFOR$REWRITE_FMT4&G& DFOR$UNLOCK4&b#0 DFOR$UNLOCK4&@& DFOR$UNLOCK4&G& OTS$INDEX4&@& OTS$INDEX4&G(' OTS$INDEX4$'@(' OTS$INDEX<%\'G'DFOR$WRITE_INT_FMT<&d'b#0 DFOR$WRITE_INT_FMT<%'@'DFOR$WRITE_INT_FMT<''G'DFOR$WRITE_INT_FMT_XMIT<('b#0 DFOR$WRITE_INT_FMT_XMIT <''@'DFOR$WRITE_INT_FMT_XMIT<''G (DFOR$WRITE_INT_FMT_XMIT<('b#0 DFOR$WRITE_INT_FMT_XMIT<'(@ (DFOR$WRITE_INT_FMT_XMIT<'(G@(DFOR$WRITE_INT_FMT_XMIT<((b#0 DFOR$WRITE_INT_FMT_XMIT<'<(@@(DFOR$WRITE_INT_FMT_XMIT<'D(Gt(DFOR$WRITE_INT_FMT_XMIT<(L(b#0 DFOR$WRITE_INT_FMT_XMIT<'p(@t(DFOR$WRITE_INT_FMT_XMIT<'t(G(DFOR$WRITE_INT_FMT_XMIT<(|(b#0 DFOR$WRITE_INT_FMT_XMIT<'(@(DFOR$WRITE_INT_FMT_XMIT<%(G(DFOR$WRITE_INT_FMT<&(b#0 DFOR$WRITE_INT_FMT<%(@(DFOR$WRITE_INT_FMT<'(G)DFOR$WRITE_INT_FMT_XMIT<((b#0 DFOR$WRITE_INT_FMT_XMIT<')@)DFOR$WRITE_INT_FMT_XMIT<')G@)DFOR$WRITE_INT_FMT_XMIT<($)b#0 DFOR$WRITE_INT_FMT_XMIT<'<)@@)DFOR$WRITE_INT_FMT_XMIT<'D)Gx)DFOR$WRITE_INT_FMT_XMIT<(L)b#0 DFOR$WRITE_INT_FMT_XMIT<'t)@x)DFOR$WRITE_INT_FMT_XMIT<'x)G)DFOR$WRITE_INT_FMT_XMIT<()b#0 DFOR$WRITE_INT_FMT_XMIT<')@)DFOR$WRITE_INT_FMT_XMIT<*G*DFOR$REWRITE_FMT<*b#0 DFOR$REWRITE_FMT<*@*DFOR$REWRITE_FMT,O*G$+JTSPAWN,P+b#0 JTSPAWN,O +@$+JTSPAWN<0+G+DFOR$READ_KEY_FMT<8+b#0 DFOR$READ_KEY_FMT<+@+DFOR$READ_KEY_FMT<D,Gt,DFOR$REWRITE_FMT<X,b#0 DFOR$REWRITE_FMT<p,@t,DFOR$REWRITE_FMT4t,G, DFOR$UNLOCK4x,b#0 DFOR$UNLOCK4,@, DFOR$UNLOCK4,G, DFOR$UNLOCK4,b#0 DFOR$UNLOCK4,@, DFOR$UNLOCK4,G, DFOR$UNLOCK4,b#0 DFOR$UNLOCK4,@, DFOR$UNLOCK4#/G/ SYS$GETJPIW4$/b#H SYS$GETJPIW4#/@/ SYS$GETJPIW4#/G0 SYS$GETJPIW4$/b#H SYS$GETJPIW4#0@0 SYS$GETJPIW4 2G2OTS$MOVE4 2@2OTS$MOVE4-83GT3OTS$STRCMP_EQLP4-P3@T3OTS$STRCMP_EQLP4C\3G3STR$MATCH_WILD4Dd3b#H STR$MATCH_WILD4C3@3STR$MATCH_WILD4C3G3STR$MATCH_WILD4D3b#H STR$MATCH_WILD4C3@3STR$MATCH_WILD4K3G4DFOR$SECNDS_VF4L4b#H DFOR$SECNDS_VF4K4@4DFOR$SECNDS_VF4-4Gt4OTS$STRCMP_EQLP4-p4@t4OTS$STRCMP_EQLP4-x4G4OTS$STRCMP_EQLP4-4@4OTS$STRCMP_EQLP4-4G4OTS$STRCMP_EQLP 4-4@4OTS$STRCMP_EQLP,E4G4GTPRV,F4b#H GTPRV,E4@4GTPRV,I4G5JGTPRVS,J4b#H JGTPRVS,I5@5JGTPRVS4#h5G5 SYS$GETJPIW4$t5b#H SYS$GETJPIW4#5@5 SYS$GETJPIW4#5G5 SYS$GETJPIW4$5b#H SYS$GETJPIW4#5@5 SYS$GETJPIW4-9G<9OTS$STRCMP_EQLP4-89@<9OTS$STRCMP_EQLP4-P9Gl9OTS$STRCMP_EQLP4-h9@l9OTS$STRCMP_EQLP4-p9G9OTS$STRCMP_EQLP4-9@9OTS$STRCMP_EQLP4-9G9OTS$STRCMP_EQLP4-9@9OTS$STRCMP_EQLP4-9G9OTS$STRCMP_EQLP4-9@9OTS$STRCMP_EQLP4-9G9OTS$STRCMP_EQLP4-9@9OTS$STRCMP_EQLP4-:G@:OTS$STRCMP_EQLP4-<:@@:OTS$STRCMP_EQLP4=G4= OTS$INDEX40=@4= OTS$INDEX4<=Gh= OTS$INDEX4d=@h= OTS$INDEX<%$>G>DFOR$WRITE_INT_FMT<&h>b#H DFOR$WRITE_INT_FMT<%|>@>DFOR$WRITE_INT_FMT4M>G> EXTTRNLNM4N>b#H EXTTRNLNM4M>@> EXTTRNLNM,G>G>SWPUIC,H>b#H SWPUIC,G>@>SWPUIC4?G(?LIB$SYS_TRNLOG4?b#H LIB$SYS_TRNLOG4$?@(?LIB$SYS_TRNLOG,G0?GD?SWPUIC,H4?b#H SWPUIC,G@?@D?SWPUIC4 T?G?OTS$MOVE4 ?@?OTS$MOVE</?G?DFOR$READ_INT_FMT<0?b#H DFOR$READ_INT_FMT</?@?DFOR$READ_INT_FMT</?G@DFOR$READ_INT_FMT<0?b#H DFOR$READ_INT_FMT</@@@DFOR$READ_INT_FMT4LAGtA OTS$INDEX4pA@tA OTS$INDEX4 AGA OTS$MOVEM4 A@A OTS$MOVEM4 AGAOTS$FILL4 A@AOTS$FILL4AGA OTS$INDEX4A@A OTS$INDEX4 AGB OTS$MOVEM4 B@B OTS$MOVEM4 BG(BOTS$FILL4 $B@(BOTS$FILL4(BG@B OTS$INDEX4 LIB$FID_TO_NAME4WV@VLIB$FID_TO_NAME4VGW OTS$INDEX4W@W OTS$INDEX4 WG WOTS$FILL4 W@ WOTS$FILL4(WGLW OTS$INDEX4HW@LW OTS$INDEX4 XWGW OTS$MOVEM4 |W@W OTS$MOVEM4 WGWOTS$FILL4 W@WOTS$FILL4#WGW SYS$GETJPIW4$Wb# SYS$GETJPIW4#W@W SYS$GETJPIW4!WGWOTS$STRCMP_LEQS4!W@WOTS$STRCMP_LEQS4!XGXOTS$STRCMP_LEQS4!X@XOTS$STRCMP_LEQS<),XGlXSYS$CHECK_ACCESS<*@Xb# SYS$CHECK_ACCESS<)hX@lXSYS$CHECK_ACCESS4|XGX OTS$INDEX 4X@X OTS$INDEX4 XGXOTS$FILL4 X@XOTS$FILL4XGX OTS$INDEX4X@X OTS$INDEX4 XGY OTS$MOVEM4  Y@Y OTS$MOVEM4 YG$YOTS$FILL4  Y@$YOTS$FILL<%(YGhYDFOR$WRITE_INT_FMT<&4Yb# DFOR$WRITE_INT_FMT<%dY@hYDFOR$WRITE_INT_FMT<'hYGYDFOR$WRITE_INT_FMT_XMIT<(xYb# DFOR$WRITE_INT_FMT_XMIT<'Y@YDFOR$WRITE_INT_FMT_XMIT4Y,ZGXZ DFOR$DELETE4Z4Zb# DFOR$DELETE4YTZ@XZ DFOR$DELETE4XZGxZ DFOR$UNLOCK4`Zb# DFOR$UNLOCK4tZ@xZ DFOR$UNLOCK4ZGZ LIB$SPAWN4Zb# LIB$SPAWN4Z@Z LIB$SPAWN4M[G[ EXTTRNLNM4N$[b# EXTTRNLNM4M|[@[ EXTTRNLNM4 [G[OTS$FILL4 [@[OTS$FILL4Wx\G\LIB$FID_TO_NAME4X\b# LIB$FID_TO_NAME4W\@\LIB$FID_TO_NAME4 \G\OTS$FILL4 \@\OTS$FILL4#]GH] SYS$GETJPIW4$ ]b# SYS$GETJPIW4#D]@H] SYS$GETJPIW4!P]Gd]OTS$STRCMP_LEQS4!`]@d]OTS$STRCMP_LEQS4!h]G|]OTS$STRCMP_LEQS4!x]@|]OTS$STRCMP_LEQS<)]G]SYS$CHECK_ACCESS<*]b# SYS$CHECK_ACCESS<)]@]SYS$CHECK_ACCESS4]G^LIB$SYS_TRNLOG4]b# LIB$SYS_TRNLOG4^@^LIB$SYS_TRNLOGDU8^GP^LIB$CVT_FROM_INTERNAL_TIMEDV@^b# LIB$CVT_FROM_INTERNAL_TIMEDUL^@P^LIB$CVT_FROM_INTERNAL_TIMEDUX^Gp^LIB$CVT_FROM_INTERNAL_TIMEDV`^b# LIB$CVT_FROM_INTERNAL_TIMEDUl^@p^LIB$CVT_FROM_INTERNAL_TIME<%^G^DFOR$WRITE_INT_FMT<&^b# DFOR$WRITE_INT_FMT<%^@^DFOR$WRITE_INT_FMT<%^G^DFOR$WRITE_INT_FMT<&^b# DFOR$WRITE_INT_FMT<%^@^DFOR$WRITE_INT_FMT<%_G@_DFOR$WRITE_INT_FMT<&_b# DFOR$WRITE_INT_FMT<%<_@@_DFOR$WRITE_INT_FMT<'@_Gd_DFOR$WRITE_INT_FMT_XMIT<(H_b# DFOR$WRITE_INT_FMT_XMIT<'`_@d_DFOR$WRITE_INT_FMT_XMIT<'d_G_DFOR$WRITE_INT_FMT_XMIT<(l_b# DFOR$WRITE_INT_FMT_XMIT<'_@_DFOR$WRITE_INT_FMT_XMIT4 _G` OTS$MOVEM4 _@` OTS$MOVEM4 `G` OTS$MOVEM4  `@` OTS$MOVEM4 `G$`OTS$MOVE 4  `@$`OTS$MOVE4 $`G<` OTS$MOVEM4 8`@<` OTS$MOVEM4 <`GH`OTS$FILL4 D`@H`OTS$FILL4 `G`OTS$MOVE4 `@`OTS$MOVE4 `Ga OTS$MOVEM4 `@a OTS$MOVEM4 aGa OTS$MOVEM4 a@a OTS$MOVEM4 aG,aOTS$FILL4 (a@,aOTS$FILL<%0aGtaDFOR$WRITE_INT_FMT<&8ab# DFOR$WRITE_INT_FMT<%pa@taDFOR$WRITE_INT_FMT<'xaGaDFOR$WRITE_INT_FMT_XMIT<(ab# DFOR$WRITE_INT_FMT_XMIT<'a@aDFOR$WRITE_INT_FMT_XMIT<'aGaDFOR$WRITE_INT_FMT_XMIT<(ab# DFOR$WRITE_INT_FMT_XMIT<'a@aDFOR$WRITE_INT_FMT_XMIT<'aGaDFOR$WRITE_INT_FMT_XMIT<(ab# DFOR$WRITE_INT_FMT_XMIT<'a@aDFOR$WRITE_INT_FMT_XMIT<'aGbDFOR$WRITE_INT_FMT_XMIT<(ab# DFOR$WRITE_INT_FMT_XMIT<'b@bDFOR$WRITE_INT_FMT_XMIT4bGbLIB$SYS_TRNLOG4bb# LIB$SYS_TRNLOG4b@bLIB$SYS_TRNLOG,ObG0cJTSPAWN,Pcb# JTSPAWN,O,c@0cJTSPAWN48cGc DFOR$OPEN4Dcb# DFOR$OPEN4c@c DFOR$OPEN4cGc DFOR$OPEN4cb# DFOR$OPEN4c@c DFOR$OPEN<%dG4dDFOR$WRITE_INT_FMT<&db# DFOR$WRITE_INT_FMT<%0d@4dDFOR$WRITE_INT_FMT<%4dGtdDFOR$WRITE_INT_FMT<&Ldb# DFOR$WRITE_INT_FMT<%pd@tdDFOR$WRITE_INT_FMT<%tdGdDFOR$WRITE_INT_FMT<&db# DFOR$WRITE_INT_FMT<%d@dDFOR$WRITE_INT_FMT<'dGdDFOR$WRITE_INT_FMT_XMIT<(db# DFOR$WRITE_INT_FMT_XMIT<'d@dDFOR$WRITE_INT_FMT_XMIT<'dGdDFOR$WRITE_INT_FMT_XMIT<(db# DFOR$WRITE_INT_FMT_XMIT<'d@dDFOR$WRITE_INT_FMT_XMIT4 PeGhe OTS$MOVEM4 de@he OTS$MOVEM4 heG|e OTS$MOVEM4 xe@|e OTS$MOVEM4 |eGeOTS$MOVE4 e@eOTS$MOVE4 eGe OTS$MOVEM4 e@e OTS$MOVEM4 eGeOTS$FILL4 e@eOTS$FILL4 DfG\fOTS$MOVE4 Xf@\fOTS$MOVE4 \fGpf OTS$MOVEM4 lf@pf OTS$MOVEM4 pfGf OTS$MOVEM4 f@f OTS$MOVEM4 fGfOTS$FILL4 f@fOTS$FILL<fGfDFOR$WRITE_SEQ_FMT <fb# DFOR$WRITE_SEQ_FMT<f@fDFOR$WRITE_SEQ_FMT<SfGfDFOR$WRITE_SEQ_FMT_XMIT<Tfb# DFOR$WRITE_SEQ_FMT_XMIT<Sf@fDFOR$WRITE_SEQ_FMT_XMIT<SfGgDFOR$WRITE_SEQ_FMT_XMIT<Tgb# DFOR$WRITE_SEQ_FMT_XMIT<Sg@gDFOR$WRITE_SEQ_FMT_XMIT49gGDg DFOR$CLOSE4:$gb# DFOR$CLOSE49@g@Dg DFOR$CLOSE,QPgGgDELDO,Rpgb# DELDO,Qg@gDELDO4gG@h LIB$SPAWN4 hb# LIB$SPAWN4Ppb#xDFOR$READ_INT_FMT_XMIT<=hp@lpDFOR$READ_INT_FMT_XMIT<=xpGpDFOR$READ_INT_FMT_XMIT<>pb#xDFOR$READ_INT_FMT_XMIT<=p@pDFOR$READ_INT_FMT_XMIT49pGq DFOR$CLOSE4:pb#x DFOR$CLOSE49q@q DFOR$CLOSE4qG0r DFOR$OPEN4rb# DFOR$OPEN4,r@0r DFOR$OPEN<7HrGxrDFOR$READ_SEQ_FMT<8Prb#DFOR$READ_SEQ_FMT<7tr@xrDFOR$READ_SEQ_FMT4|rGr OTS$INDEX4r@r OTS$INDEX4rGr OTS$INDEX4r@r OTS$INDEX4rGr OTS$INDEX4r@r OTS$INDEX</rG sDFOR$READ_INT_FMT<0rb#DFOR$READ_INT_FMT</s@ sDFOR$READ_INT_FMT<=(sGLsDFOR$READ_INT_FMT_XMIT<>0sb#DFOR$READ_INT_FMT_XMIT<=Hs@LsDFOR$READ_INT_FMT_XMIT<=XsGxsDFOR$READ_INT_FMT_XMIT<>`sb#DFOR$READ_INT_FMT_XMIT<=ts@xsDFOR$READ_INT_FMT_XMIT,?sGsVBSET,@sb#VBSET,?s@sVBSET49sGs DFOR$CLOSE4:sb# DFOR$CLOSE49s@s DFOR$CLOSE4TtGtLIB$SYS_TRNLOG4xtb#LIB$SYS_TRNLOG4t@tLIB$SYS_TRNLOG4;tGuLIB$SET_LOGICAL4<tb#LIB$SET_LOGICAL4;t@uLIB$SET_LOGICAL4 vG\v DFOR$OPEN44vb# DFOR$OPEN4Xvh@ SAFETY013.AZ [EVERHART.JTDEMO]JTOPNNT.OBJ;8P;2>@\v DFOR$OPEN<7vGvDFOR$READ_SEQ_FMT<8vb#DFOR$READ_SEQ_FMT<7v@vDFOR$READ_SEQ_FMT49vGv DFOR$CLOSE4:vb# DFOR$CLOSE49v@v DFOR$CLOSE4 8wGPwOTS$FILL4 Lw@PwOTS$FILL4 wGwOTS$MOVE4 w@wOTS$MOVE4 wGwOTS$MOVE4 w@wOTS$MOVE4 wGxOTS$MOVE4 x@xOTS$MOVE4  xG xOTS$MOVE4 x@ xOTS$MOVE4 (xG@xOTS$MOVE4 DFOR$READ_KEY_FMT<b#`DFOR$READ_KEY_FMT<Ȝ@̜DFOR$READ_KEY_FMT4G DFOR$UNLOCK4b#` DFOR$UNLOCK4@ DFOR$UNLOCK4 GOTS$MOVE4 @OTS$MOVE4 G,OTS$MOVE4 (@,OTS$MOVE4 ,G@OTS$MOVE4 <@@OTS$MOVE4ԝG SYS$ASSIGN4ܝb#` SYS$ASSIGN4@ SYS$ASSIGN4G\SYS$QIOW40b#`SYS$QIOW4X@\SYS$QIOW<GLDFOR$WRITE_SEQ_FMT<(b#`DFOR$WRITE_SEQ_FMT<H@LDFOR$WRITE_SEQ_FMT4LGh DFOR$UNLOCK4Pb#` DFOR$UNLOCK4d@h DFOR$UNLOCK =0C; SYS$ASSIGN DFOR$READ_KEY_FMT DFOR$WRITE_SEQ_FMT8 OTS$INDEX8OTS$FILL=8X8OTS$MOVE=0h;= 7 DFOR$HANDLER=p;h;8 OTS$MOVEM DFOR$UNLOCK=.SYS$QIOW=$=0@;=` 7 DFOR$HANDLER=  DFOR$INQUIRE=#=0 ;=@< =0h;=   LIB$SPAWN=_FILLIB$SYS_TRNLOG DFOR$OPEN DFOR$REWRITE_FMTLIB$WAIT=0pX;= 7 DFOR$HANDLER= A;=@48       2 3   X= GCY$CM:NTREGIST.REGp= GCY$NONTCHK=_USRFIXFID= GCY$DELMNT=:=8OTS$STRCMP_LEQS# SYS$GETJPIW=8  %DFOR$WRITE_INT_FMT= =0`z;= 7 DFOR$HANDLER=@('DFOR$WRITE_INT_FMT_XMIT=8X;=88h= p )SYS$CHECK_ACCESS+MYMODE= 8OTS$STRCMP_EQLP=0Xy;= 7 DFOR$HANDLER= /DFOR$READ_INT_FMT=8 =1KGETKI=0y;;=0y;=0 @3JTGLMSK=L`5 DFOR$EXIT=Term or accpor not permit Terminal on forbid list File password not entered User on forbid. user list Time of Day Access reject Image on forbid. img list = 0(w;=User not on permit list Image not on permit list Privs too high for access File tamper checksum fail User filter routine rejct Accport on forbid list =0h u;= 7 DFOR$HANDLER=;= 8    ` 7DFOR$READ_SEQ_FMT9 DFOR$CLOSE==0  t;=(P EACF_LE$$=T ;LIB$SET_LOGICAL= LNM$SYSTEM=0pq;= 7 DFOR$HANDLER= (  =DFOR$READ_INT_FMT_XMIT=(8     P=)`?VBSET= x=0pn;= 7 DFOR$HANDLER==0n;=0Xh;=| 7 DFOR$HANDLER==0D;= 7 DFOR$HANDLER= ; ;= 8  8=0$8     9 ` ADFOR$READ_SEQ_FMT_XMIT=0A;= ` ,=&CSTR$MATCH_WILD=R=Y=P= LNM$PROCESS_TABLE=S(=J(= R?V4x߼ EGTPRV=8  GSWPUIC=D8 =N@ ;=0ph.;= 7 DFOR$HANDLER= ; ;=X =K( =L( IJGTPRVS=U = *JTAUTHMAINT.EXE* KDFOR$SECNDS_VF=I( M EXTTRNLNM=V( =B( =U( =0 OJTSPAWN= GCY$DELFALP QDELDO= GCY$DELNOWp (SDFOR$WRITE_SEQ_FMT_XMIT=delsav: (ULIB$CVT_FROM_INTERNAL_TIME=.SAV = =0H;=  7 DFOR$HANDLER=@;=  WLIB$FID_TO_NAME=8 = gce$delseq:delrecs.seq =($@gcy$sys:dps_process_deletes@ Y DFOR$DELETE=R(X =0$8        = GCY$DELSAV =( 8      =0H;=0G;=@ [ SYS$CONNECT]SYS$OPEN=0`-;=(ttHPPX0 =0;= 7 DFOR$HANDLER= \p _OPRMSG=  =X( =8  =A = <#> =Z( =H H=80/ OPNFILTDigital Fortran 77 T7.0-1 = 40 4= OPNFILT4= rrrrrrrrrr 6 9 4  = 4 6  8  9  :r =  >  L B  C 4 G H M _ ^ ^ ` yD x { x x c y4 x { x x d yd x x e y` x { x j f j yD x { x l k m m i q            @           y4 x x x x y x x          yP x { x x {      yD x { x x  yD x { x x     yD x { x x                          $                ! * -J .L y {H x x 7 7 / 8 9@0 x, x < > >:0 >< x y< x { x x A @5 yD x { x x G G T T U" yD x { x x \ؔ ^ ^ ^ ^ ^ yD x { x x c c f j m  n  y {0 x x w w x y0 x, x | ~ ~0 ~ x y< x { x x   y4 x { x x            z     yD x { x x          yD x { x x                              yD x { x x  x  , x {( x x         ^ yD x { x x  ( zX$ $= 4. .=  4=  = . .=  4=  = . .=  4=  = Y. .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = F. .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = R. .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = O. .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = W. .=  4=  = . .=  4=  = : :=  -4= `- = `-4 4= GETID`-4=]UT   # $ 2 2 2 5 N N= -4`.4= > >= h.4H 4= CHKACh.4= ; ; ; ; ; ; ;            ;    z y4 x { x x x y {$ x x w y { x x x v yL x x { x  q y { x x           % * 1 1 1 2 7 7 8 9 ; ;: yD x { x x @8 y4 x { x x A7 yd x x B6 yd x x C8 F K M Z ] [ ] d i k t t |                               /     T$ $= /4. .=  g.4=  = . .=  g.4=  = O. .=  g.4=  = . .=  g.4j@ SAFETY013.AZ [EVERHART.JTDEMO]JTOPNNT.OBJ;8TV2.OBJ;7U<=  = . .=  g.4=  = . .=  g.4=  = . .=  g.4=  = . .=  g.4=  = . .=  g.4=  = : := @4=  = A4p4= ITMCHKA4= m m n Z \ _ ` h i i i g k 2 y {T x x p0$ $= A4. .=  A4=  = S: := C4=  = C44= IVLENC4=ogf x t y x< x x x x x y x $ $= C4: := D4= ; ;= D44= FILCKD4=               P       < $$ $= dE4: := HG4=  = G4 4= IUFCKG4=~             O$ $= G4: := H4=  = H4 4= GTXABH4=3+* 1 1 1 1 1N N= H4H4= @ = H4 4= DELFILTH4=  1 1 1 1 1 1 1 1 1 1 1 1 4 4 4  4  4  4 4 1 4 4 4 4 4  4(  4 4 4 4 4 4 4 4 4 44 x yD x x x y x x x^- 4 4 xg- yg- 4 4 { yD x x x y x x xf- 4 4 4 {q- {q- y y4 x { x xp- 4 y x y0 x {( x xu- 4 4 4 4 4  5 5 5 5 5 5 5 5 5 5 !5 "5 "5 "5 "5 "5  +5 (5 +5 +5 *5 +5 *5 +5 *5 +5 *5 15 .5 15  >5 >5 @5 H5 M5 P5 P5 y y {< x- W5 V5 W5 Z5 a5 a5 i5 j5 j5 o5 o5 o5 u5 5 5 5 5 5X y yD x { x x. 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 yG. { y4 x { x xD. 5 5 5 5 5 5 5 5 5 5  5  5O 5 yu. { x yP x { xq. 5 5 5 5 5 5 5 5 y yD x { x xy. 5 5 5 5 5 6| y.@ { x y< x { x x. 6m 6 6 6 6 #6 #6 #6 )6 :6T$ $= I4. .=  H4=  = $. .=  H4=  = . .=  H4=  = D. .=  H4=  = . .=  H4=  = . .=  H4=  = . .=  H4=  = . .=  H4=  = . .=  H4=  = . .=  H4=  = : := Ph4= E E= h44= EXTFILTh4= C6 C6" C6 C6" `6 e6 e6 e6 f6 f6 e6 i6 h6 h6 h64 x y4 x x x x y x x. r6 y. p6 r6 q6 q6 { yP x { x x {. t6 {. w6 w6U z6 z6 y y4 x { x x.4$ $= h4. .=  h4=  = . .=  h4=  = . .=  h4=  = : := m4= x = n44= GETPVn4=D<; 6 6 6 6 6 6$ $= 0n4: := n4= x = n4x4= GETFNMn4=wv 6  6 6 6 6 6 6 6 6< 6$ $= n4: := q4=  = q44= GETFNBq4=TLK 6  6 6 64 6$ $= q4: := s4=  =  t44=LOGLATCH t4=[SR 6  6  6  6  6  6  6  6 $ $= ht4: := u4=  =  u44= GETEXF u4=won 6 y/D { yP x { x x/ 7< 7 78$ $= lu4. .=  u4=  = : := v4=  = (w404= RJ2ASC(w4=ldc 7 7 7 7 7 7 !7 "7 #7 $7 $ $= Dw4N N= w4y4=  = y44= IGETCAPy4=aYX )7 )7  )7  07 )7  07 =7 =7 B7$ $= @y4: := y4= w w= y44= SETCAP1y4= H7: := y4=  = y44= KGETKSy4=% L7$ L7$ $= y4: := z4=  = z44= CREFILTz4= c7 c7 c7 c7 c7 c7 c7 c7 c7 c7 c7 c7 :  : :  :  : c7 : ": :' 4: ':   A: A: A: B: B: A: E: D:4 x y4 x x x x y x x2 J: x2 y2 M: N: M: { y$ x x x x x y x { x2 P: S: S: {2 {2 y y4 x { x x {2 \: {2 y y { x x x2 a: b: c: f:  s: s: s: w: w: x: }: z: ~:  : : : :9 :$ : : : : : : : : :| : : {4 x, x?3 : : : : : : : : T$ $= {4. .=  z4=  = . .=  z4=  = . .=  z4=  = . .=  z4=  = . .=  z4=  = : := 4=  G G= X44= NTCHKX4= : :¬ : : : ; ; : ; ; ; ; ; ; ; ; y y { x x4 ; y-4 ; ; ; ; { yD x x x/4 ; ; ;( ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;  ;  ; ; ;  ;  ; ; ; ; ; ; ; ; ; ; ; ;  ; ; ; ; ; ; ; ; ; ;  < < < < <  <  <  < <  < < < < < < < < < < < "< &< &< +< +< +< 0< .< 0< 9< 8< :< 9< >< >< >< C< A< C< N< U< Y< Z< Z< Z< _< ]< ]< _< y yD x { x x4H e< e< l< l< l< l< o<X$ $= 4. .=  W4=  = . .=  W4=  = . .=  W4=  = : := 4= 0 0= h4X4= CPYDEFh4= y< y< y< < < < < < < < < < < < < < < < < < < < < < < < < <  < < < < < < < < < < < < < <? < < < < < < <$ $= 4: := 4= \ \=  484= CHKACL 4= < <5 <3 <9 <1 < < < < < = = = <n < < = = = = =, = = = =($ $= T4: := 4=  = 44= TSTULK4=\TS = = = = = = = "= "=$ $= P4: := 4= r r= 4`4= FILCRE4=  ,= ,= ,= ,= A A A A A ,= A  A A A  A A A  A !A A +A )A )A  4A 1A  5A 9A ;A :A >A ;A >A) >A* ?A@ y y4 x { x x9 OA OA [A VA \A [A y y4 x { x x98$ $= 4. .=  4=  = . .=  4=  = : := h4=  =  0!*[EVERHART.JTDEMO]JTOPNNT.OBJ_A;13+,[./ 4- 0123KPWO56`QE|7|89GHJk@ SAFETY013.A[ ![EVERHART.JTDEMO]JTOPNNT.OBJ_A;13.OBJ;7#>@@OPNFILT 6-NOV-1996 21:49  Digital Fortran 77 T7.1-61 $DATA$$BSS$t$IODATA$i$CODE$ $LINK$0ILICCRJCODDBNS@EXFLKIUICJPIJUNKFSZC(JpOPNFILT(J TSTULK SYS$GETJPIW(JGIVLENSTR$MATCH_WILD(Jl+GETID LIB$SPAWN(J0 HNTCHK DFOR$CLOSE DFOR$HANDLER DFOR$OPENLIB$WAIT(JP-CHKACJTSPAWN(J0 RJ2ASCOPRMSG DFOR$REWRITE_FMT DFOR$READ_KEY_FMT DFOR$WRITE_INT_FMT DFOR$WRITE_INT_FMT_XMITDFOR$SECNDS_VFGTPRVJGTPRVS(JDITMCHK(JHFILCK EXTTRNLNMSWPUICLIB$SYS_TRNLOG DFOR$READ_INT_FMT DFOR$INQUIRE(J`LLIUFCK DFOR$READ_SEQ_FMTSYS$OPEN SYS$CONNECT(JMGTXAB(JNDELFILTMYMODEFIXFIDLIB$FID_TO_NAME SYS$CHECK_ACCESS DFOR$DELETE(LIB$CVT_FROM_INTERNAL_TIMEDELDO DFOR$WRITE_SEQ_FMT(JpEXTFILT(JuGETPV(JvGETFNM(JxyGETFNBVBSET0J|LOGLATCHLIB$SET_LOGICALLIB$GET_FOREIGN(J }GETEXF(J dIGETCAPJTGLMSK DFOR$EXIT(J` SETCAP1(Jx $KGETKSKGETKI(J @CREFILT(Jp hFILCRE DFOR$UNLOCK(J CPYDEF(J CHKACL(J@ `TSTU12 SYS$ASSIGNSYS$QIOWOTS$MOVEOTS$STRCMP_EQLP OTS$MOVEMOTS$FILL OTS$INDEXOTS$STRCMP_LEQS OTS$DIV_I OTS$DIV_L( (= =|t6 JTD$DB:OPHHW.GDB76 JTD$DB:OPWHW.GDB76 JTD$DB:OPH$H$W.GDB76 JTD$DB:OPW$H$W.GDB76$@gcy$sys:filtall \ @H@[@[@[@H76H76[ 76%EACF-F-File access to fid [  by PID [ rejected code:[@H76%EACF - reject tty:H image:H username:H accpor:H76H76$@GCY$CM:FILRST H \ \ V  H H \76$@GCY$CM:FILRST H \ \ V  NLA0:NONAME H \76EZ$\\76[76DQQQQQQQQQQQQQQQQ76H$HW:76$W$HW:76 JTD$DB:OPHHW.GDB76 JTD$DB:OPWHW.GDB76 JTD$DB:OPH$H$W.GDB76 JTD$DB:OPW$H$W.GDB76H76$@GCY$SYS:DEL_SHELVED H H76W 76W76$@gcy$cm:fildel H \ \ H H76\76H,H,H76$@GCY$CM:MAKSPC H$HW V 76$@GCY$CM:MAKSPC $W$HW V 76H76M76H76M76H76\763 Key error. Key appears invalid in form. Unentered.76H$HW:76$W$HW:76 JTD$DB:OPHHW.GDB76 JTD$DB:OPWHW.GDB76 JTD$DB:OPH$H$W.GDB76 JTD$DB:OPW$H$W.GDB76H76H76H7 =#~^^~ (޴08@cGGGGG8}0G0"Qv@JpJPFQ,"0bHpSJD 0"B R"0P"0 &Js`J3F  0PXJ`H@FP$ 0"b$s"0pG0 v Jr@J2F  0paJ`SH`Fp( 0"BHR"0PG0 &Js`J3F - 0PXJ`H@FPL 0"bs"0pG0 v Jr@J2F  0paJ`SH`Fp 0"0BR"0PG0 &Js`J3F  0PXJ`H@FP0 0"0bs"0p0B00"pF4GGPb*@G" % 0%"#4GG0bs"0"GG`Bhb@Zk0" 00"E@\e0t#4G0"1"G0bs"0"GG`Bhb@Zk0" (""& "`b(s"Cd}`"TGb @"H,""& "`bs"Cd}`"TGb@" ""&"`b$s"Cd}`"TGb@"$@""&@"`bLs"Cd}`"TGb@"$yBy4G0B20bs"tN0"8C?"B@Zk""&"`ݲ0#Cd`"TGb@0"$00BrB$"0B_BR"GB@ZkI$0"$9#7vJ?$F`=Cd=0BR"8vK&Gh}Cl]`"h="TGBb@Zk0"0%?&1"B'0BR0@B0bS0B$x"$"5vJ'F`Cd'{#h}Clݲ`"h="TGBb@Zk0"0%?&1"BGPb&)@4GG@ %00%0B2e0 t 0¦$0 %0B$:$e0(`?$0,00" 10B,R2F0b030&0,0¦ ֢0,F0 ز4G0B4:04@0b4{{@{#;,;H"P.q0HRPJQFP>0b4s0`B04t04"tG0¦80 ?#G4G0b8[G0"1"TGb@D? D0<0<%0B2@e0t0u3gJgJ4G0"0BR"GTB?"8B@ZkGB@Zk?"4G0"B"HB@Zk0@00"9 C0"!!@9D 035B0"0BR"?"8B@ZkGB@Zk""&"`ݲ0 Cd`"TGb@0"@D0"HE0bSL0PŢ0ײ0x3gJgJ4G0"0BR"GTB?"8B@ZkGB@Zk""$ `0¦"Cdݲ`"TGb@0"DT$B"?"0b@s0"0D0¦"0"h`=xp}ݶ"?&1"`}"@G`Bhb@Zkp""8 `"`]"tGBb@ZkT!B"? T"0"D10bs"0"h`=p}x="?&1"`}"@,"G`Bhb@Zkp""8 `"`]"tGBb@ZkT%B"? 0@0"1"0bDs0"0"h`=x=p}"?&1"`}"@X"G`Bhb@Zkp""8 `"`]"tGBb@ZkT!B"? T"0"D10bs"0"h`=p}x="?&1"`}"@"G`Bhb@Zkp""8 `"`]"tGBb@Zk""$ `0"Cd`"TGb@0"H""&"`0bs"Cd}`"TGb@0"L00u0"H11 B0BP2`B""H("0¦"hݶ`}0"9#x=Gp}"1"="?&1"`}"@"G`Bhb@Zk""0 `"`]"tGBb@Zk"" `"`]"tGBb@Zk""0P 5@0"! h=`"`]"tGBb@Zk""$ `0"Cd`"TGb@0"T0T0"1"0vJ_&F`Cd=0\"#`"GGGGGGBb@Zk0"X0\GPb5'@TGGO0"!000"10B20bLs0"3v`J&uF`}Cd08""0BR"0bs"0"`"Gb @0"\0\UB0"\1 BFGPb'@GG x"! 0L0xBr0B"xB_BR"GB@ZkJ0LxXb""TG_&R"GGBb@Zk0L`x"0BR"?"8B@ZkGB@Zk4GH=GPGX=4G@b"0"L10BR"4G]=tG=GTG="4G]@#}tGݶ@# =GTG="TG_&R""G@BHb@ZkG0"Jb"0" 1"_"Gh=`]0"px'8{#}@"! #>"TG_&R"`"p"GBb@ZkG0"00"10BRuHBl k@0bsfB `0`0`"4GBb@Zk0@|0"d0$0"(1Ft0B$R0bS0(0b"0¦ ""Ghݶ`0b{#p}x&8"@"#"TG_&R"`"p"GBb@ZkG0"0%0B2e0t00¦֢uB0B6P0`0`"4GBb@Zk0d0@0"d0dB#0"< 10Bh20bhs &tF0u0¦h֢F0hײ4G0"l0l"G0B R"GGGb@0l5@c@?"TG0D "B"HB@Zk0@0p0"p9V 0"p!05 @@?"10B4G0CD "B"HB@Zk0@0t0"t9D 0"p!0t0@!1 @0"t10BtR0bps4`B2UB35@B0"0BD R"GTB?"8B@ZkGB@Zk0¦G0G6  @"7"67""?$! `=0"Cd`"TGb @0"x?"4G0"B"HB@Zk0@=@7?"4G0"B"HB@Zk0@0p0"p935 C0"0BR"?"8B@ZkGB@Zk0"G0¦G"7B! """?'9#`=0"Cd`"TGb @0"x0xТ"HB 24GyB#!C!D C # C#"GB"8B@ZkB_BG8B@ZkB#0CF C # C#`ݷ`GB_B(R"G8B@ZkA"G8B@Zk4GyB#!C!D C # C#"GB"8B@Zk`]G8B@Zk0"0BR"G?"8B@ZkA"G8B@ZkGB@Zk""$ `0"9#Cd=`"TGb- @0"TB""0"1"0bs"h}`p="?&1"`}"@("G`Bhb@Zk""0 `"`]"tGBb@Zkp""0 `"`]"tGBb@Zk0T0"T!"1B0"GB0BR"G8B@ZkGB@ZkG""&"`ݲ0#Cd`"TGb @0"T0Tp""0BR"0vJ&F`Cd]`"TGBb@Zk0"X0X?"B20bls5`Bu`0|& "`ݲ0#Cd0|"`="TGb@ӰB" 0"! 0"h`p="?&1"`}"@4"G`Bhb@Zk""0 `"`]"tGBb@Zk""0 `"`]"tGBb@Zk0""G"! `=0BR"p]h"`]"tGBb@Zk""$ `0"Cd`"TGbu @0"00"1"0vJ_&F`Cd=`"4GPBXb@ZkB" " !""$1b$s"H("¦֢L"0#=}=ݶ"?&1"}"@"G`Bhb@Zk""$ `0"Cd`"TGb0 @0"00"1"0vJ_&F`Cd=`"4GPBXb@Zk@?"TG0D "B"HB@Zk0@0p0"p9W 0"p!05 @@?"10B4G0CD "B"HB@Zk0@0t0"t9E 0"p!0t0@!1 @0"t10BtR0bps4`B2UB35@B0"0BD R"GTB?"8B@ZkGB@Zk0¦G0G6  @"7"67""?$! `=0"Cd`"TGb @0"x?"4G0"B"HB@Zk0@=@7?"4G0"B"HB@Zk0@0p0"p935 C0"0BR"?"8B@ZkGB@Zk0"G0¦G"7B! """?'9#`=0"Cd`"TGb @0"x0xТ"HB 24GyB#!C!D C # C#"GB"8B@ZkB_BG8B@ZkB#0CF C # C#`ݷ`GB_B(R"G8B@ZkA"G8B@Zk4GyB#!C!D C # C#"GB"8B@Zk`]G8B@Zk0"0BR"G?"8B@ZkA"G8B@ZkGB@Zk""$ `0"9#Cd=`"TGb @0"TB""0"1"0bs"h}`p="?&1"`}"@("G`Bhb@Zk""0 `"`]" =tGBb@Zkp""0 `"`]"tGBb@Zk0T0"T!"1B0"GB0BR"G8B@ZkGB@Zk""&"`ݲ0#Cd`"TGb @0"T0T0"1"0vJ_&F`Cd=0X"#`"GGGGGGBb@Zk0"XG0 0.0J B[ d"S.RSJGJ0T0]B TG0⦄ײ#D/{KZDK[GD?0E$,$H$@d.r$HSdJrFd>00B00¦֢B0⦌ײ4G0"0Bڠ0b{0`0 B0"!@0"115 B0BQB r.rJ!".uqJTJF>0¦֢0B0⦐ײ00C0"0BZ FC_GPb"@0@G6GPb"@0@G.0"< !p D0< 00"h1# 0B R"""&s"`}Cd]`"TGb> @0"b"0 "0"1h`="TG_&R"`"@"GBb@ZkGPb!@> 0">"0"@?"TG0D "B"HB@Zk0@00"9 C0"!! * ) 0PB0"0BR05@B@"1pB4G0CD "B"HB@Zk0@00"9= C0"!!   001B0"0BR0bsSB21@B0T4G0¦0h4G0b[@?"tG0D "0B"HB@Zk0@:G0"0" !"0D2 0"< 10BhR2F0b< 30 """&"`Cd`"TGb@0"b"0 "0"1h`="TG_&R"`"@"GBb@Zk4G0"GPb^!@00@Gvp"! D GPbR!@00@Gj? 00?"0B2@?"TG0D "(B"HB@Zk0@00"9 C0"!! * ) 0PB0"0BR05@B@"1pB4G0CD "B"HB@Zk0@00"9= C0"!!   001B0"0BR0bsSB21@B0T0B0¦֢BF8B""0BHZ:AC0b{#0@ 00"!!5 @8C0CD ! 0"9005B90C0CD "0"1"=}]0"1"=G==0bs"}"?&1"}"@"G`Bhb@Zk0@0"! @D-B""0"H11!B0bs"0@ "00¦֢65B5B0CD "0"}=0"! =Gݶ0BZ#]"?&1"}"@\"G`Bhb@Zk""$ `0"Cd`"TGb@0"0 """_&R"`]Cd`"TGb@0"b"0 "0"1h`="TG_&R"`"@"GBb@Zk0 ""0"! vH&D`Cd=`"TGBb@Zk0"0Xb"0" 1"_"Gh=`]0"px'8{#}@"! #>"TG_&R"`"p"GBb@ZkGG0"G00"10BRuHB *@0bs`0< 0hF0¦< 0 """'#`Cd`"TGbQ@0"b"0 "0"1h`="TG_&R"`"@"GBb@ZkGPb@00"!@GGPb@00@GGPb@00@GcG]]} (ݤ08@P#k ?! GGGG4Gt]R2@.PJJ=l@ SAFETY013.A[ ![EVERHART.JTDEMO]JTOPNNT.OBJ_A;13.OBJ;7/> }s`BBtF``]R21@B@B%@01B\B=CkЀB}Ø]R0BBPØ=11@1"q.QqJ'J4]RB}Ø=10 B4Ø]R0@BP4G=q@]RB0@"0.0Jt"S.uJRSJUFS>ݦ֢0B=ѲB@"r.SrJr>".UJ>=1"Bݦ6Gk`#~p^x^~cG#GGGG@}8G0v J`H F0, BraJ`SH`Fr  ""_"bHr@JD J`HF$ "B$R"bSGvHpJD "QAJ`SH@FQ( bH"GBHq JD- bJ`HFL "1"B2GbvHpJD 4!J`SH F4P B"bGHq JD BJ`HF /= b"1"4B4GeX0$"4GGbs" "GGBb@Zk" 0"$D@\d$t4G"$1"Gbs" "GGBb@Zk" ""& "Pb(s"CT}P"TGb@Ӡ"H""& "Pbs"CT}P"TGb@Ӡ" l""&"Pb$s"CT}P"TGb@Ӡ"$""&@"PbLs"CT}P"TGb@Ӡ"$yBv4GB(2b(s"tN"C?"B@Zk|""&"Pݲ#CTP"TGb{@",$0B,rB$"B_BR"G`B@ZkI$,"$9#7vJ?$FP=CT=BR"8vK&GX}C\]P"X="TG8B@b@Zk"00%?&1"B'B(R0@Bb(S(B$ "$"5vJ'FPCT'{#X}C\ݲP"X="TG8B@b@Zk"00%?&1"B4GEG"4GXB`b@Zk4"4!hBa*TW _8p"810 BB82b8s8B`4G¦8875Bw@/KBB"8995 Cy@Y/YK C(C Xb{4`GX`"8!!5 @a@.J @(@ $ G"1"TGxBb@Zk T$<0<""1"TGBb@Zk #D"1$C2Fb3FX¦֢TFXײ"9GD@0$"4GGbs" "GGBb@Zk" 0"$D0@\d$t4G"$1"Gbs" "GGBb@Zk"  #FBbs$tFu¦֢FXTGX"BZb{[G@""$ P("CTP"TGb\@Ӡ"H""& "Pbs"CT}P"TGbN@Ӡ" l""&"Pb$s"CT}P"TGb@@Ӡ"$""&@"PbLs"CT}P"TGb2@Ӡ"4G"@B"l@& "P¦("CTݲ'#XC\]'@{#`}d}P""H1"X]"`}"@"G0bC@@"@!5 @ \PF-$BD2d`DD0F¦DD5B885Cx@8/8KC CXBZ4@GXb[8 5@`@ , H@ @805Bp@0.0JB BB8R25@Br@r.rJ@B5KB1@845Bt@.JBUB ¦8֢65Bv@.JBB$D8D@bD"D!0 DD "D15 B 805Bp@p.pJB BXBR4@FXUH"l@& "Pݲ"(9#CT='{#X}C\?&@1"`=dP""H1"X]"`}"@"G0b@@X"!!DX0"@1' B"l@& "P¦("CTݲ'#XC\]'@{#`}d}P""H1"X]"`}"@"G0b@@X"! DX0"@1s B"l@&"P¦$"CTݲ'#XC\]'@{#`}d}P""$1"X]"`}"@"G0be@@X"!$DX0"@1' B"l@&"P¦$"CTݲ'#XC\]'@{#`}d}P""$1"X]"`}"@"G0b>@@X"!"DX0"@1% B"l@& "P¦"CTݲ'#XC\]'@{#`}d}P"" 1"X]"`}"@"G0b@@" l@?&@1"P=bLs"CT}&"XC\='@#`dP""1"X]"`}"@"G0b@ "H@X"1BHR2FXb3@X8"l@& "P"9#CT='{#X}C\&@"`dݲP"" 1"X]"`}"@"G0b@G"H@X"1BHR2FXb3@8"l@&@"P"L9#CT='{#X}C\&@"`dݲP""1"X]"`}"@"G0b@G"H@X"1BHR2FXb3@(,âFl@?"TG`"B"B@Zk0@L"L9 C"L!! \ [ L4B@?"10Bp@4G`"hB"B@Zk0@P"P9J "P!L0@#! C (#BT2,cXtL¦P֢BL4B5Bw@B5vJ_'FPTP""T1"B `?=XR"tGxbI@ "HT(#BXBRbHsSFXTT(âB#X,BX"9BHZ:GXb;X,#@T#X0FcBr¦5vJ\\BB"Gb{#X}P="1"h=G`}"?&1"P}""GBb@Zk "! &"PCT=&s"X}C\&"`ݲ#Cd$"GP]"X}"`""GBb@Zk"``5B'P"d1"TGBb@Zk ?$! P=CT_&R"X]"C\P""1"X]"tGBb@Zk"hd""D1"TGBb@Zk4G"llB"pBlR25@BbrB.Jh¦h֢pFhز"l995 CBhZ_G_GP]"GBP]"4GB@Zkl0@"llB@B"¦"XݶGP="t1"`="?&1"P}""GBb@ZkHN@B""! X=GP=x"`"?&1"P}""GBb@ZkH9P"!p L|0"t1B|R2Fbt3x|F¦x"HT#BtZ:C Xb{H`GX"TBtRBX#bxs3B XHFX¦XxB _#"HYXb{H`GX"4GcGp]x]}#k#~(^0^8~@HPGGGG]Gc]?"TG"]8B@Zk0@  "! @ " "14 B_"3UB  "C"GTB?"(B@ZkGB@Zk?"4G  "B"8B@Zk0@  "! @ "} | "1 BR35 B25@B"1B  "GB B"4G(B@ZkGB@Zk?"4G  "(B"8B@Zk0@#=\,""&" b s"C}"TGbY@ "?"4G  " B"8B@Zk0@  "9 "! 9@ B0D: $ BR21@B1v J&3F=C  "2v@J_'ZF ]C$" ="TGBb@Zk "   %?&1"B BR bs rB@ "3B  " B R"GTB?"(B@ZkGB@Zk4GG(]0]8}@HP`#kGGGGr.rJ+@`JR4Gݦ&6& B& @0@= &ݦ &֢65BVB.JB &0@=&ݦ&֢ B &GGGGk.W JF@#~^^~޴cGGGGGe.eJ`J8}"&Cb&SG &Xb"8=C1!JH@=" &! P="?"_&R"@"GhBpb@Zk8b"8C H4G &H@P=4GX4G`hBZ#p]TGx="TG_&R"@"GBb@ZkG4G$&00"1!N0BR2Bb&3&4JJ&5JJBb""TG_&R"GGXB`b@Zk& &"cÈb"B&R"@]0&"P"H"TG_&R"@""GxBb@ZkG5"&4G"(&B(&R FB_d(&C/&.TJJtBdpN$&"(&9C/&Y/YYK'KOB$& C"$&#0 B#(&0B(&b(&s fBb""TG_&R"GGXB`b@Zk"&&"&QAJpSJPF&Qb&SDcG]]}ݤ#k.T JF&#~ ^(^0~8GG=]4G4G B(b@Zk@"0.@0.4G0B8b@Zk@"0.@0.G?"B2G)}$s"..JU JF@¦4.v@8.@"8.!@4.0@"8.@4.@"8.1"@B<.R"@b@.s"G@b@@8.@B<.RbS@@.GG ](]0}8@#kGGGGGGբ6JJBua0JJGk0#~^^~cGGG8=".4G.G"`/1v HpJ0D`/14G`/@AJaS HAF`/@G.".1""d/!Bh/Gh/0&H`H Dh/0TG"h/QXJ`H@Fh/QtG"..""p/Bt/x/"|//GB8/vHq JD8/ 8O= "8/J`SHF8// ""BPFR"GTB?"B@ZkGB@Zk?"4GP>"B" B@Zk0@.".9 C".!!@9D .35BP>"BP>R"?"B@ZkGB@Zkh""&"`ݲP> Cd`"b#_".#PF0 #BTF2cXFt¦\FPFw3gJgJ4GP?"BPFR"GTB?"B@ZkGB@Zk""$ `"P?! Cd=`"b#`_".`#% B"G".1bP>s".P?"¦J"hݶ`x}p="?&1"`}"4"G8B@b@ZkH"" `"`]"tGBb@Zk`!B"G`"".1bP?s"J"h`=p}x="?&1"`}"X"G8B@b@ZkH"" `"`]"tGBb@Zk`%B"? ."P>1"b.sP?"P@"h`=x=p}"?&1"`}""G8B@b@ZkH"" `"`]"tGBb@Zk`!B"? `"".1bP?s"P@"h`=p}x="?&1"`}""G8B@b@ZkH"" `"`]"tGBb@Zk""$ `P@"Cd`"b#_".`#% B""".1bP>s".P?"¦PB"hݶ`x}p="?&1"`}""G8B@b@ZkH"" `"`]"tGBb@Zk`!B"? `"".1bP?s"PB"h`=p}x="?&1"`}""G8B@b@ZkH"" `"`]"tGBb@Zk""$ `PB"Cd`"b#h_".<#H.0@#BL.2bH.s `O4"OU"H."bOs"8GBb@ZkH.?$! DL.D4GB.2Lc\.tP¦`.G.#TG"p.1"Gb8/s"t."GG8B@b@Zk"..5B0"H.1Bd.2bL.sh.t.¦P@"5vJ&F`Cdݲ."".1"Bd.R"b\.s"/"`"Gbh@"..UB".1 BF G(b@G3P"! .0PBrBP@"PB_BR"GB@ZkJ⦴.P0b""TG_&R"GGBb@Zk.`P"BP@R"?"B@ZkGB@Zk4GH=GPGX=4G@b"".1BP@R"4G]=tG=GTG="4G]@#}tGݶ@#GTG="TG_&R""GB b@ZkG.TG.0"L.QAJL.Qb"7""Gh`"H.9#p=xݶ?$8! ="T1"#>"TG_&R"`"p"GxBb@ZkG"..".1B.RuHB @b.sfB`.."4GBb@Zk. 1@".."71B.2b.saF.t4G¦.4GO".9 _'Z#`]PH Cd&"hBPIR"Cl].""O1"B7R"`}"h"0b#_.5@" & "`Cd=&s"h}PJ"Cl`""l.1"h]"tGBb@Zk"..0F".B.R "SF.T.¦.֢5Bl.YBPJ8KKC#yPC"?"GB@Zk4G. ""?$! `=¦J"Cdݲ`"b#_"."H.!P.0"L.1BT.24G.t. ¦.֢J"6vJ'F`ݲCd$ h"PC! Cl=`""H.1"h]"b.s"G."GhBpb@Zk"..0F".B.R0@Fb.S..KPC"?"GB@Zk4G.ײ@?"TG8"B" B@Zk0@.".95 ".!05 @@?"10B4GC8"B" B@Zk0@.".9# ".!.0@!1 @".1B.Rb.s4`B2UB35@BPC"B8R"GTB?"B@ZkGB@Zk¦.֢.6B6QB. ?' 9#"//5#TG"p.1"Gb8/s"t."GG8B@b@Zk"./"4GxB"0B@ZkPC"4GxB"0B _=@Zk4G.ײ.8"".9"PC! 9v K?&1G`=Cd=& "hB/Z#Cl]`="h]"b`/s"GBb@Zk"..0F".B.R5@B@b.spFv`N"?"GB@Zk.@?"TG8"B" B@Zk0@.".9a ".!05 @@?"10B4GC8"B" B@Zk0@.".9O ".!.0@!1 @".1B.Rb.s4`B2UB35@BN"B8R"GTB?"B@ZkGB@Zk¦.֢.6B6QB.XB"#".9"N! .PC""PK1"h=`x=p="?&1"`}"`"G8B@b@Zk""$ `PK"Cd`"b#_".4G.0".1_"2F "TG_&R"GGBb@ZkG(b2@H".!5 @" .?"F!B.R5@B@G(b@ ?$! `=CdB.R"#^`"GGGGGGXB`b@Zk".tGGHPFK8""B"& s"`}Cd=&"hݲCl]?' 9#p=b/{#Ct}p."G`]"h}"p"."GBb@Zk"..0F".B.R @b.sy`B `/4JJBS&YE"BPC"?"GB@Zk4G.ײ""'#`J Cd`"b#_"."H.!P.0"L.1BT.2b.sJ"3v`J&uF`}Cd'#hbPC{#Cl}`""H.1"h]"b.s"G."GhBpb@Zk"..0F".B.R0@Fb.S.. PC"?"GB@Zk4G.ײ ?' 9#/"/!#TG"p.1"Gb8/s"t."GG8B@b@Zk"./"4GxB"0B@ZkMPC"4GxB"0B@ZkF8"¦.֢PC"6vJ'F`ݲCd?& 1"h=b/s"Cl}`="h]"b`/s"GBb@Zk"..0F".B"& s"`}Cd]&"hݲPA#Cl`""X.1"h]"tGBb@Zk".."PA1?F B5+BV B.R@ (""/1"GtGHBPb@Zk"/(""/1"GtGHBPb@Zk"/pB"PD"h4G`}/"p"?&1"`}""G8B@b@ZkpB"YD hG`b/s"p}"?&1"`}""G8B@b@ZkB"^D "P.! hG`=p="?&1"`}""G8B@b@Zk@""R. `"`]"tGBb@Zk""T. `"`]"tGBb@Zk.35@GaB#7CF C # C#"GB_BJR"B@ZkB"GB@ZkjD"W"G?"B@ZkGB@Zk""?'9#`=PD#Cd`"b#_" /" /!"xB"GB@ZkBPDR"G?"B@Zkm@ SAFETY013.A[ ![EVERHART.JTDEMO]JTOPNNT.OBJ_A;13.OBJ;7S>?PD"G?"33B]"B@ZkGB@Zk¦ /֢B /ײ0B"#."PB9#"PG! h=`x=p"?&1"`}""G8B@b@Zk""H. `"`]"tGBb@Zk""L. `"`]"tGBb@Zk""."PC!  /BPDR"h=`x]p"`]"tGBb@Zk""$ `PG"Cd`"b#P_"/x" & "`Cd=&s"h}PA"Cl`""X.1"h]"tGBb@Zk".PAFB5 B:G4GB/2b.s`/8""PG"4vJ&F`Cd`"TGBb@Zk"..b"""G4G=]"4G=TG}tG=4G=TGݶ"G_&R""GB b@ZkGHb"" G4Gh=`"p4GxTG=TG}=TG]"G_&R"`"GB b@ZkGpB""PD! h=4G`=/"p"?&1"`}""G8B@b@ZkpB"YD hG`b/s"p}"?&1"`}""G8B@b@ZkB"^D "P.! hG`=p="?&1"`}""G8B@b@Zk@""R. `"`]"tGBb@Zk""T. `"`]"tGBb@Zk.35@GaB#7CF C # C#"GB_BJR"B@ZkB"GB@ZkjD"W"G?"B@ZkGB@Zk""?'9#`=PD#Cd`"b#__" /" /!"xB"GB@ZkBPDR"G?"B@ZkPD"G?"33B]"B@ZkGB@Zk¦ /֢B /ײXb" /PD ".9"J! . n=PC"h`x=p="G_&R"`""GBb@Zk0b""G_&R"GGBb@ZkG."8! &@"`Cd=H."".1"G`}"GhBpb@Zk"//uB".1 FFtGG4GB.R@Fb.s"tF@%`.F!¦.֢G(b@."PK! vH&D`Cd=b/s"#~`"GGGGGGXB`b@Zk".GG(b@GcG]]}#ks"`#~x^^~cG#GG8=#_"2D P@PF4G@=@ 4GBP2PN"P1 Nq@1CX0P0@"PBPRDB_\"U`"UBUr3gJgJ4GR"BUR"GTB?"B@ZkGB@Zk?"4GR"PB"B@Zk0@P"P! @PBF "P135 BR"BRR"?"B@ZkGB@Zk8""&"HݲR CLH"b#A_"P#U0 #BU2cUt¦UUw3gJgJ4GS"BUR"GTB?"B@ZkGB@Zk4""$ H"S! CL=H"b#_"PX#. hB"""P1bRs"PS"¦P"PݶH`}X=ph"?&1"H}","GBb@Zkp"" H"H]"tGBb@Zk""8 H"H]"tGBb@ZkX*pB"? X""P1bSs"P"PH=Xh}`="?&1"H}"h"GBb@Zkp"" H"H]"tGBb@Zk""8 H"H]"tGBb@Zkl""$ HP"CLH"b#_"P"P!P"!v H?&1DH=CLP"H"GGGGGG(B0b@Zk"P4G@@cGx]]}#k_R"GGGGGGԢ4G@Yw@Y B'=@Y115 BBq.qJDYwpN=DY1B``NDYwB`A0@BA  `0`B`]@YR0@B@YW=@Y1 6B?Gk0#~^^~޴cGGGGGG.JJ8ƠdP}PHH=@=PY8b"8]C2AJ4G`ݴX]4Gh="p4Gx]TG"G_&R"X"GBb@ZkG~0b"? hY"`X="G_&R"X""G0B8b@ZkGa?"4GhY"0B"B@Zk0@?"4GhY"0B"B@ZkP@TY?"4GhY" B"B@Zk"XYXY"TY! C?XB"XY"TY115 B0BbhYs"qB`=X¦\Y"hݶB`YZ#p]dY x"?&1"X}""GBb@ZkG"\Y!HY0"PY10 BBPY2bPYsT`N@HY"'.wJVJF>0CBPYZd [C_b""G_&R"GGBb@ZkcG]]}ݤ#k&.Q &J0FL. JV JF>0#~^^~޴cGGGG8]G.JJ@8}sX}XPP=H=(pZb"@]C2AJ4Gh`]4Gp="x4G]TG"G_&R"`"G8B@b@ZkGtb"? (Z"h`="G_&R"`"8"GBb@ZkGW?"4G(Z"B"@B@Zk0@?"4G(Z"B"@B@ZkP@(tZ?"4G(Z"B"@B@Zk("xZ(xZ("tZ! C?B"(xZ("tZ115 B0B(bZs"qBh=`(¦|Z"pݶ(BZZ#x](Z "?&1"`}"8"G(B0b@ZkG("|Z!(hZ0("pZ10 B(BpZ2G("|Z1"TG8B@b@Zk0@Pb""G_&R"GGBb@ZkcG]]}ݤ#k%.Q %J0FV#~(^0^8GG=  & "C?$P! =[ C""[1"]"tGBb@Zk"[[4G]2 b"0"P"& "ݲC}?'9#=C$ C$"=" ]"GGG@BHb@Zk"[G(]0]8@#kp#~h^p^x~cGGGcH""$ 8C<=8"b#]_Ӏ"[0b""[!@}8=_"H]4GP4GXTG`]"G_&R"8"GBb@ZkG*"4G" ~=[ b"B[R"TNCR""@]8"G_&R"8""G B(b@ZkG "[!0"[10 BB[2b[sdBb""G_&R"GGBb@ZkcGh]p]x}#kGGGGG!"GG]@Zk"]"GH]@ZkPF"X]"GH]@ZkF"]"GH]@ZkF"]"GH]@ZkF"]"GH]@ZkF"8]"GH]@ZkF"`]"GH]@ZkF"]"GH]@Zk"F"@]"GH]@Zk"F"x]"GH]@Zk"F"]"GH]@Zk"F"]"GH]@ZkGk#~^^ GG "\"4G(B0b@Zk"\\"B\RR"@8"4GHBPb@ZkG]] 0#kGG =Gkp#~h^p^x~cGGG#.#J5` J8=cB"8C0JP}H(\ `GX="?&1"H}"8"G(B0b@Zk@(\"4G8B@b@Zk 0b""G_&R"G8"GBb@ZkcGh]p]x}#kC.R CJQF`#~x^^~cG#GG@=8]l\4G`\GB\vHq JD\4G\0!H`SH D\0G"p\Bp\R""\A\G"\1&H`H D\1TGB\J`HF\tG"t\"t\1"\0B\\"\]GB\vHq JD\ "\J`SHF\] "\BX\R""\AG\ &JpJ0F\  "\AXJ`H@F\A<\ \"@\1""\!B\\\\#"L\1G`Bhb@Zk"d\d\pF"h\C"SF@x\t4G¦|\|\N|\Ox@Cl"|\90 CB|\:b|\{lCd" jh"$jB jr3gJgJ4G e"B jR"GTB?"B@ZkGB@Zk?"4G e"XB"B@Zk0@\\"\\9 C"\\!!@9D \\35B e"B eR"?"B@ZkGB@Zk@""&"Hݲ e CLH"b#8_"\# j0 #B$j2c(jt¦,j jw3gJgJ4G f"B jR"GTB?"B@ZkGB@Zkp""$ H" f! CL=H"b#_"\`#% pB"G"\1b es"\ f"¦k"PݶH`}X=ph"?&1"H}"0"GBb@Zk "" H"H]"tGBb@Zk`!xB"G`""\1b fs"k"PH=Xh}`="?&1"H}"T"GBb@Zk "" H"H]"tGBb@Zk`%pB"? \" e1"b\s f" g"PH=`=Xph}"?&1"H}""GBb@Zk "" H"H]"tGBb@Zk`!xB"? `""\1b fs" g"PH=Xh}`="?&1"H}""GBb@Zk "" H"H]"tGBb@Zkt""$ H g"CLH"b#m_"\`#% pB"""\1b es"\ f"¦ h"PݶH`}X=ph"?&1"H}""GBb@Zk "" H"H]"tGBb@Zk`!xB"? `""\1b fs" h"PH=Xh}`="?&1"H}""GBb@Zk "" H"H]"tGBb@Zkt""$ H h"CLH"b#_"\<# \0@#B$\2b \s `l4"lU" \"b ls"@GBb@Zk \?$! D$\D4GBl\2bl\sq`L0\Pâ4\ײTG"L\1"Gb\s"P\"GGBb@Zk"\tG"\GbD\SH\\¦ g"5vJ&FHCLݲ\""<\1"BD\R"b0\s" ]"H"Gpb@"\\UB"\1 BF/B\RFB@4GGb\sfB&`l"\բ⦜lW"H`"B hZ#6vJ'FPݲCT]P"\ \ ~<\""0\1"H}" ]"TG0b@ ("\!(pB g"(B_BR"GhB@Zk⦈\("\y("B gR"?"B@ZkGB@ZkTG¦\6$\J$\4G\4G l5\5Bp""_& R" =H]CL=_'Z#P]" k! CT=H""8\1"P]"tGBb@Zk"\\0F"\Bd\R "SF\T\¦\֢5Bx8\YBt k8KKC#m i"?"GB@Zk4G\ ""?$! H=¦k"CLݲH"b#_"\" \!(\0"$\1B,\24G\t & "]]ضTG"L\1"Gb\s"P\"GGBb@Zk"\]"4GPB"B@Zk. i"4GPB"B@Zk'4G⦐\ײl\""\9" i! 9v K?&1GH=CL=& "PB]Z#CT]H="P]"b\s"GBb@Zk"\\0F"\4GGcGx]]}#k s" Ð#~(^0^8~@HP޴X`cG#GHG@]G8Gc4G"?& 1"=C&"pm C"p"m1"]"tG B(b@Zkp"mpm0Fp"mpBmR5@B@pbmsY`B `pm4JJB"GG#ppv"HB"tGHB@ZkGGB@ZkpXn"C"GHB@Zk?"4G"@B"B@Zk0@pmp"m9= C p"m!35 @pXn"C"GxB@ZkGB@Zk8""&"ݲpXn C"b##_p"mp"mapXn"pBXnR"GxB@ZkGB@ZkGpmײpm@p"m@=!pm5p"mDpbmS""&"pbpv{#C}"b#_p"mp"mappw"pBpvR"?"xB@ZkB"GxB@ZkGB@Zkp¦mvppy"pBpvR"?"xB@ZkB"GxB@ZkGB@ZkpmBpm34Gx=Gݶ4G4Gp]b"pmpBpwZ#4G]tGG=}TG`_"]4G]@#tG=p=#=G}TG ="G_&R""GBb@ZkG34G0"13 4GX]G`Ghݶ4GPb"pBmZpbpy{#4G}]tG=GTG?#=4G}@_#]tG]P"GݶTG "G_&R""GBb@ZkG4G0pn"pBmR"GHB@ZkpBXnR"GHB@Zkb"0¦""Gݶp"n! =&8"B\Z#^"G_&R"""GBb@ZkGp"mpmp"n1 BpB nR@Bpb(ns`Bp0nB050¦V0w0$0B$:d0(`%0 00",00Uv@J0U0¦4vv`J4v08vJ8b"0#G]"G_&R""\"GPBXb@ZkGb"0"! =G="G_&R""\"GBb@ZkGb"0"@! `"=pm"Gݶ?'9#=b\{#~"G_&R"""GBb@ZkGp"mpmp"m1&B pBmpm"4G B(b@Zkpmp"m! 4Gp"mpBmR@pb"pm""G_&R""GBb@Zkpm"G_&R"tG`Bhb@Zk4G%pmpn"pBmR"GHB@ZkpBXnR"GHB@Zkb"0"! "G=ݶpn &8"B\Z#^"G_&R"""GBb@ZkGp"mpmp"m1&B pBmpm"4G B(b@Zkpmp"m! 4Gp"mpBmR@pbms`BpmBtB`4Gp¦mpnBp nCp"(n9 CpB0nZ@C0b00"!0P$0B$20b(0¦ 0T0b,00vK00"4!v K4!04PAK4P0"X11"J&J% 4G0b0Jr@JF00051"J&J0¦X֦6JJ0X7JJB0bX{;bKfK;5`C6B35B00B@R"GTBxB@ZkGB@Zk0X HH0088H`H D080"8vJ80¦0֦6JJBpnղb"0"p"n1="G_&R""\"GPBXb@ZkGb"0"! pn="G_&R""\"GBb@ZkGp"m! @pmB0@ 0"0B?"HB@Zkp¦m֢5Bpm@=9pm pn"pBmR"GHB@ZkpBXnR"GHB@Zkp"mb"0¦""Gݶpn"&8"b\{#~"G_&R"""GBb@ZkGp"mpmp"m1&B pBmpm" p=4G B(b@Zkpmp"m! 4Gp"m0B,RX@0b$spmt0(p¦mp⦸mpmFUpn"pBmR"GHB@ZkpBXnR"GHB@Zkp"mb"0 ? G=pn"ݶ&8"b\{#~"G_&R"""GBb@ZkGp"mpmp"m1&B pBmpm"4G B(b@Zkpmp"m! 4Gp"m0B,R_00"1"TGb@0,GvH0"@1"0BR"pbns"Gxb@pnp"m!5 @f pn"pBmR"GHB@ZkpBXnR"GHB@Zkb"0¦""Gݶp"n! =&8"B\Z#^"G_&R"""GBb@ZkGp"mpmp"m1&B pBmpm"4G B(b@Zk0 ""?$! =C"b#_p"np"m! b"0"p"n1="G_&R""\"GBb@ZkGp" np nGbP@Ӡ5@00"!!&H&H+ 00JJ&0"11&J&J0BR2DJFJ2B0bs3fJfJ35`B13B11 B0Cs"1v J&4F=C}"GGGGpn"GBb@Zkp"mGcG(]0]8}@HPݤX`p#k#~^^~ GGGG"X"?"V@Zk4G4vJ`HF44WAJ4W4x3dJfJ t V Zp@CG0V8v@Zk$(08!$H&Ht @G V(v@Zk,05JJtBG V(v@Zk00u6,!40641 #B V(R0@Bv(SV(Z@OBv4{`OC8{8z40@44 B60! L!u @07v Ja H!F07V0R@N0WAKrS@JRG0W4x;fKfKt`CG V(v@Zk,$6(!B$068V$Rv,sV4zv4{ bC(`4LC8<<F6(!0 @(06810 BV82v(s`NBV4Z@OC8Z8Sv4{0`C4`4 B,pN5UB4vJuJF4681 N4waJqS JqF4w8X:FKFKt@CG V(v@Zk@85JJtBG V(v@ZkD(n@ SAFETY013.A[ ![EVERHART.JTDEMO]JTOPNNT.OBJ_A;13.OBJ_A;22>^NB8vJuJF86D1 N8waJqS JqF8wVD:4G4`4 B6(!0 @(0(NB6@1 NC8185V@R0@Bv@SV4Z0@C4@v4{ yCG]]} 0#k#~^^GGGGGGBp4H VwSB@4GpHp4L vWrB@4GpL4G5pTHR@F0JJ0uBGTt@Zk4@p4P0JJGTt@Zkp4TpPp4T1B01BpTX4v3fJfJ0u`BGTt@Zk4@p4\40JJGTt@Zkp4`p\p4dpT\Rpt`sSB21@BpThZpth[pdp4lpl BVp4l1 NB81ptp3pTlR@N@BB8RpTtZptt{{#*`pt p4L!8 DD"pt7BptX3pTPRpTxZptx{ yC#`p4t!pxLB  @ p4x10 Bpx0ptxs yBpTpRHF@pTHZptp{[Gp4HApHD p4l1P Bptl3pTlR BB_G]] #k#~H^P^XcGGb"P"|! @="TG_&R"@"G B(b@ZkP| "TG_&R"tGBb@Zk8cGH]P]X`#k#~H^P^XcGG`b" "! @="G_&R"@"GBb@Zk  "G_&R"tGPBXb@Zk8`b" "! @="G_&R"@"GBb@Zk  "G_&R"tGPBXb@Zk8cGH]P]X`#k@#~^^~cG#G`X=P]GH@8c88`?&1"BH2bs"LtPXG"BR"bSP`" Qv@J Q}Ds$&tBu,X"$X]R(tv`Jr@JrF(t_"0vHr@JD0tG=81 bs&"tBBrG0JuSJF0=8144GbSG4G8B"HB H=TL@Zk0@"!= @ 35B"8]G8B@ZkGB@Zk¦֢⦈ײ"!!5 @"BR"GB@ZkBR"GG8B@ZkGB@Zkb"¦!""Gxݶp"&8"@bh{#~"G_&R"p""GBb@Zkhh=0"BRbsuhB@`"G_&R"tG B(b@Zk@p"0B"4GB@ZkBR"GB@Zk"Gp]"B@Zk""?$ ! p="Ctp"@b#_""!"!v H?&1Dp=Ctp""1"GGG"G@BHb@Zk"n"1BRbs"~bs"~H" (TGbs"GGGPBXb@Zk"H"1E BRbS"..JVJF! 8KK"BZ#z/,zK@H`G"!"B R2FJFJbS!"""&"pݲCtp"@b#n_"b""!! x=p"G_&R"p"@h"GBb@Zk"G_&R"tG B(b@ZkcG]]}#k4G SYS$GETJPIW4b#p SYS$GETJPIW4@ SYS$GETJPIW4DGP SYS$GETJPIW4Hb#p SYS$GETJPIW4L@P SYS$GETJPIW4xGOTS$MOVE4|@OTS$MOVE4GOTS$STRCMP_EQLP4@OTS$STRCMP_EQLP4 LGXSTR$MATCH_WILD4 Pb#pSTR$MATCH_WILD4 T@XSTR$MATCH_WILD4 GSTR$MATCH_WILD4 b#pSTR$MATCH_WILD4 @STR$MATCH_WILD4G OTS$MOVEM4@ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4G OTS$INDEX4 @ OTS$INDEX4\Gd OTS$MOVEM4`@d OTS$MOVEM4 hGpOTS$FILL4 l@pOTS$FILL4 G OTS$MOVEM4 @ OTS$MOVEM4  G OTS$FILL4  @ OTS$FILL< G DFOR$WRITE_INT_FMT< b#pDFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT_XMIT< b#pDFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT<H GT DFOR$WRITE_INT_FMT<L b#pDFOR$WRITE_INT_FMT<P @T DFOR$WRITE_INT_FMT<l Gx DFOR$WRITE_INT_FMT_XMIT<p b#pDFOR$WRITE_INT_FMT_XMIT<t @x DFOR$WRITE_INT_FMT_XMIT< G DFOR$WRITE_INT_FMT< b#pDFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT_XMIT< b#pDFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT<p G| DFOR$WRITE_INT_FMT<t b#pDFOR$WRITE_INT_FMT<x @| DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT_XMIT< b#pDFOR$WRITE_INT_FMT_XMIT < @ DFOR$WRITE_INT_FMT_XMIT< G DFOR$WRITE_INT_FMT< b#pDFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT_XMIT< b#pDFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT< G DFOR$WRITE_INT_FMT_XMIT< b#pDFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT< G( DFOR$WRITE_INT_FMT_XMIT< b#pDFOR$WRITE_INT_FMT_XMIT<$ @( DFOR$WRITE_INT_FMT_XMIT4 G LIB$SPAWN4 b#p LIB$SPAWN4 @ LIB$SPAWN4GOTS$STRCMP_EQLP4@OTS$STRCMP_EQLP4G( DFOR$CLOSE4 b#p DFOR$CLOSE4$@( DFOR$CLOSE4DGL OTS$MOVEM4H@L OTS$MOVEM4 PGXOTS$FILL4 T@XOTS$FILL4!G DFOR$OPEN4"b#p DFOR$OPEN4! @ DFOR$OPEN< GDFOR$READ_KEY_FMT< b#pDFOR$READ_KEY_FMT< @DFOR$READ_KEY_FMT4G LIB$WAIT4b#pLIB$WAIT4@ LIB$WAIT< GDFOR$READ_KEY_FMT< b#pDFOR$READ_KEY_FMT< @DFOR$READ_KEY_FMT4PG\LIB$WAIT4Tb#pLIB$WAIT4X@\LIB$WAIT4G  OTS$INDEX4@  OTS$INDEX4`Gh OTS$INDEX4d@h OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4|G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4,G4 OTS$MOVEM40@4 OTS$MOVEM4<GD OTS$MOVEM4@@D OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL<PG\DFOR$WRITE_INT_FMT <Tb#pDFOR$WRITE_INT_FMT<X@\DFOR$WRITE_INT_FMT<xGDFOR$WRITE_INT_FMT_XMIT<|b#pDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT_XMIT<b#pDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT4G OTS$MOVEM4@ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL,`GlJTSPAWN,db#pJTSPAWN,h@lJTSPAWN<$G0DFOR$WRITE_INT_FMT<(b#pDFOR$WRITE_INT_FMT<,@0DFOR$WRITE_INT_FMT<LGXDFOR$WRITE_INT_FMT_XMIT<Pb#pDFOR$WRITE_INT_FMT_XMIT<T@XDFOR$WRITE_INT_FMT_XMIT<pG|DFOR$WRITE_INT_FMT_XMIT<tb#pDFOR$WRITE_INT_FMT_XMIT<x@|DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT_XMIT<b#pDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT, G,OPRMSG,$b#pOPRMSG,(@,OPRMSG<GDFOR$WRITE_INT_FMT<b#pDFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT,4G@OPRMSG,8b#pOPRMSG,<@@OPRMSG4TG\ OTS$INDEX4X@\ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4  G(OTS$FILL4 $@(OTS$FILL4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4  G(OTS$FILL4 $@(OTS$FILL4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4hGp OTS$MOVEM4l@p OTS$MOVEM4xG OTS$MOVEM4|@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4  GOTS$FILL4 @OTS$FILL<GDFOR$WRITE_INT_FMT<b#pDFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT<GDFOR$WRITE_INT_FMT_XMIT<b#pDFOR$WRITE_INT_FMT_XMIT <@DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT_XMIT<b#pDFOR$WRITE_INT_FMT_XMIT<@DFOR$WRITE_INT_FMT_XMIT4 G OTS$MOVEM4 @ OTS$MOVEM4 $ G, OTS$FILL4 ( @, OTS$FILL4 G LIB$SPAWN4 b#p LIB$SPAWN4 @ LIB$SPAWN<#G#DFOR$REWRITE_FMT< #b#pDFOR$REWRITE_FMT<#@#DFOR$REWRITE_FMT4L#GT# OTS$INDEX4P#@T# OTS$INDEX4#G# OTS$INDEX4#@# OTS$INDEX4\$Gd$ OTS$INDEX4`$@d$ OTS$INDEX<%G(%DFOR$REWRITE_FMT< %b#pDFOR$REWRITE_FMT<$%@(%DFOR$REWRITE_FMT4%G% OTS$INDEX4%@% OTS$INDEX4 &G(& OTS$INDEX4$&@(& OTS$INDEX<|'G'DFOR$WRITE_INT_FMT<'b#pDFOR$WRITE_INT_FMT<'@'DFOR$WRITE_INT_FMT<P(G\(o@ SAFETY013.A[ ![EVERHART.JTDEMO]JTOPNNT.OBJ_A;13.OBJ_A;220%>}DFOR$WRITE_INT_FMT<T(b#pDFOR$WRITE_INT_FMT<X(@\(DFOR$WRITE_INT_FMT<)G)DFOR$REWRITE_FMT< )b#pDFOR$REWRITE_FMT<)@)DFOR$REWRITE_FMT,H)GT)JTSPAWN,L)b#pJTSPAWN,P)@T)JTSPAWN< )G)DFOR$READ_KEY_FMT< )b#pDFOR$READ_KEY_FMT< )@)DFOR$READ_KEY_FMT<*G*DFOR$REWRITE_FMT<*b#pDFOR$REWRITE_FMT<*@*DFOR$REWRITE_FMT40G0 SYS$GETJPIW40b# SYS$GETJPIW4 0@0 SYS$GETJPIW4d0Gp0 SYS$GETJPIW4h0b# SYS$GETJPIW4l0@p0 SYS$GETJPIW41G1OTS$MOVE41@1OTS$MOVE42G 2OTS$STRCMP_EQLP42@ 2OTS$STRCMP_EQLP4 l2Gx2STR$MATCH_WILD4 p2b#STR$MATCH_WILD4 t2@x2STR$MATCH_WILD4 3G3STR$MATCH_WILD4  3b#STR$MATCH_WILD4 3@3STR$MATCH_WILD4+H3GT3DFOR$SECNDS_VF4,L3b#DFOR$SECNDS_VF4+P3@T3DFOR$SECNDS_VF,-P4G\4GTPRV,.T4b#GTPRV,-X4@\4GTPRV,%4G4JGTPRVS,&4b#JGTPRVS,%4@4JGTPRVS445G@5 SYS$GETJPIW485b# SYS$GETJPIW4<5@@5 SYS$GETJPIW45G5 SYS$GETJPIW45b# SYS$GETJPIW45@5 SYS$GETJPIW 4d>Gl> OTS$INDEX4h>@l> OTS$INDEX4>G> OTS$INDEX4>@> OTS$INDEX<@G@DFOR$WRITE_INT_FMT<@b#DFOR$WRITE_INT_FMT<@@@DFOR$WRITE_INT_FMT4/AG A EXTTRNLNM40Ab# EXTTRNLNM4/A@ A EXTTRNLNM,)HAGTASWPUIC,*LAb#SWPUIC,)PA@TASWPUIC4#AGALIB$SYS_TRNLOG4$Ab#LIB$SYS_TRNLOG4#A@ALIB$SYS_TRNLOG,)AGASWPUIC,*Ab#SWPUIC,)A@ASWPUIC4lBGtBOTS$MOVE4pB@tBOTS$MOVE<'BGBDFOR$READ_INT_FMT<(Bb#DFOR$READ_INT_FMT<'B@BDFOR$READ_INT_FMT<',CG8CDFOR$READ_INT_FMT<(0Cb#DFOR$READ_INT_FMT<'4C@8CDFOR$READ_INT_FMT4DGD OTS$INDEX4D@D OTS$INDEX4LEGTE OTS$MOVEM4PE@TE OTS$MOVEM4 XEG`EOTS$FILL4 \E@`EOTS$FILL4tEG|E OTS$INDEX4xE@|E OTS$INDEX4EGE OTS$MOVEM4E@E OTS$MOVEM4 EGEOTS$FILL4 E@EOTS$FILL4FGF OTS$INDEX4 F@F OTS$INDEX4tFG|F OTS$INDEX4xF@|F OTS$INDEX4 GGGSTR$MATCH_WILD4 Gb#STR$MATCH_WILD4  G@GSTR$MATCH_WILD4tGG|G OTS$MOVEM4xG@|G OTS$MOVEM4 GGGOTS$FILL4 G@GOTS$FILL41XIGdI DFOR$INQUIRE42\Ib# DFOR$INQUIRE41`I@dI DFOR$INQUIRE4!IGI DFOR$OPEN4"Ib# DFOR$OPEN4!I@I DFOR$OPEN4PJG\J DFOR$CLOSE4TJb# DFOR$CLOSE4XJ@\J DFOR$CLOSE<3JGJDFOR$READ_SEQ_FMT<4Jb#DFOR$READ_SEQ_FMT<3J@JDFOR$READ_SEQ_FMT4KGK DFOR$CLOSE4Kb# DFOR$CLOSE4K@K DFOR$CLOSE45LGLSYS$OPEN46Lb#`SYS$OPEN45L@LSYS$OPEN47LGL SYS$CONNECT48Lb#` SYS$CONNECT47L@L SYS$CONNECT,EOGPMYMODE,FOb#MYMODE,EO@PMYMODE4PGP OTS$MOVEM4P@P OTS$MOVEM4 PGPOTS$FILL4 P@POTS$FILL 4QGQ OTS$INDEX4Q@Q OTS$INDEX4TQG\Q OTS$MOVEM4XQ@\Q OTS$MOVEM4 `QGhQOTS$FILL4 dQ@hQOTS$FILL4QGR OTS$MOVEM4R@R OTS$MOVEM4 RGROTS$FILL4  R@ROTS$FILL<RGRDFOR$WRITE_INT_FMT<Rb#DFOR$WRITE_INT_FMT<R@RDFOR$WRITE_INT_FMT<RGRDFOR$WRITE_INT_FMT_XMIT<Rb#DFOR$WRITE_INT_FMT_XMIT<R@RDFOR$WRITE_INT_FMT_XMIT<_b#SYS$CHECK_ACCESS<=_@_SYS$CHECK_ACCESS4 _G_OTS$FILL4 _@_OTS$FILL4`G` OTS$INDEX4 `@` OTS$INDEX4P`GX` OTS$INDEX4T`@X` OTS$INDEX4`G` OTS$MOVEM4`@` OTS$MOVEM4 `G`OTS$FILL4 `@`OTS$FILL<`aGlaDFOR$WRITE_INT_FMT<dab#DFOR$WRITE_INT_FMT<ha@laDFOR$WRITE_INT_FMT4;aGa DFOR$DELETE4<ab# DFOR$DELETE4;a@a DFOR$DELETE4bGb LIB$SPAWN4bb# LIB$SPAWN4b@b LIB$SPAWN4/$cG0c EXTTRNLNM40(cb# EXTTRNLNM4/,c@0c EXTTRNLNM4 cGcOTS$FILL4 c@cOTS$FILL4CpdG|dLIB$FID_TO_NAME4Dtdb#LIB$FID_TO_NAME4Cxd@|dLIB$FID_TO_NAME4 dGdOTS$FILL4 d@dOTS$FILL48eGDe SYS$GETJPIW4eb#SYS$CHECK_ACCESS<=e@eSYS$CHECK_ACCESS4#PfG\fLIB$SYS_TRNLOG4$Tfb#LIB$SYS_TRNLOG4#Xf@\fLIB$SYS_TRNLOGDAfGfLIB$CVT_FROM_INTERNAL_TIMEDBfb#LIB$CVT_FROM_INTERNAL_TIMEDAf@fLIB$CVT_FROM_INTERNAL_TIMEDAfGfLIB$CVT_FROM_INTERNAL_TIMEDBfb#LIB$CVT_FROM_INTERNAL_TIMEDAf@fLIB$CVT_FROM_INTERNAL_TIME<,gG8gDFOR$WRITE_INT_FMT<0gb#DFOR$WRITE_INT_FMT <4g@8gDFOR$WRITE_INT_FMT<xgGgDFOR$WRITE_INT_FMT<|gb#DFOR$WRITE_INT_FMT<g@gDFOR$WRITE_INT_FMT<gGgDFOR$WRITE_INT_FMT<gb#DFOR$WRITE_INT_FMT<g@gDFOR$WRITE_INT_FMT<gGgDFOR$WRITE_INT_FMT_XMIT<gb#DFOR$WRITE_INT_FMT_XMIT<g@gDFOR$WRITE_INT_FMT_XMIT<hG hDFOR$WRITE_INT_FMT_XMIT<hb#DFOR$WRITE_INT_FMT_XMIT<h@ hDFOR$WRITE_INT_FMT_XMIT4thG|h OTS$MOVEM4xh@|h OTS$MOVEM4hGh OTS$MOVEM4h@h OTS$MOVEM4hGh OTS$MOVEM4h@h OTS$MOVEM4 hGhOTS$FILL4 h@hOTS$FILL4hp@ SAFETY013.A[ ![EVERHART.JTDEMO]JTOPNNT.OBJ_A;13.OBJ_A;22>GiOTS$MOVE4i@iOTS$MOVE4iGi OTS$MOVEM4i@i OTS$MOVEM44iGb# SYS$CHECK_ACCESS<=@SYS$CHECK_ACCESS4#GLIB$SYS_TRNLOG4$b#0 LIB$SYS_TRNLOG4#@LIB$SYS_TRNLOG4pGxOTS$MOVE4t@xOTS$MOVE4 GOTS$FILL4 @OTSq<cbxcg HHqlA;22Ct"'ɥͬ[rRRdt]b8*ؘ*z.xZTOD a4mL?Kz F7/Ey_)Y&|xlv-Fu7eܷ\Fs"''܈^Q5mMUevIW*ǜ**+2n*7Fl~ @p,!7F*b10N-V\%b&rr^o>ijuUYyyF'9?>ZQG\,\`bբ)ewF9%v_ETW[3e˲!L۟$7AI]U-}EF]Vxѫ״)Љ#_ cU.e/ub Ӏ7xCK^ Ci{!G0FI(}.ܴv=ԠcRZ 6xq|:Vn辋sJN3g p:}ǨN\S܇Ϫ]_yWoAN @5ͣmqlvqbQށ5d#"oӣ!m> as({ri92T(?=DRxXI{Irц5TNämPjRM *-+f7BLv I&!fޫ1Q@$P| *CP2]tq 8A3!7 FEk@()sH''}p*༅`;-x_S3@, G sjmS8JHI 9h߶Kj?7t{^/#gV8  :ud 9L[F1:U>)o֤Tg[y@Aή$Bj~;Rݓ iPP sf&fISոC=i$S?:% N靝C__{Y tHz40ET_0-N1 KK[`m^!&3D&Yx되5 ې#<;,w$ ~RdSވ|=WVrva 2/뵽(Wd2nǞ (Ajd m'k{9&(Fv)"2 qytd,Sj/qjck'i< 9ߡ#RHv}̻1bk񂺘zq :PE3@dC}FH &RztTy?cN/PJfSCaZedLxkP %rdbP2̟A|_>Њ0&1*;JyG3S/ +uS ieԼw)X6n\-հҽN  E/\aG}PVVYrdl;Edt^61m;˄Xnhn^%u`Ao} Q%]eO~vFt_rZ/|pHdr}OWo,%󄚏 Cz\Tt9CWl1+|O;Z1¹]G>VFʾF7ߤwp,$ւWSP;6W=f-3H}&gVa-Bp \*TdAa-ޓZ|DZl6H,v-o$ #7(-;k 1 `\|)Y}lj 8n-^LJ^٥@RW]}**++k+ j(xtJjW{ZpКs/CTlO"9jbf /;MN 5Ngm\-: y)WogqJ9!qR;tͬ\8Lu]4Ochp0N?0;;lG.aYeP.A٬ 5Q-ǥܒ O$eD JGuI bh>Al, )K2$=P86yCTPyD]=."ݷ]rqFjE m2]틕\:Q孎^Y7uXx]llϯ'¼e52#U^rAfVdrzK0+NB%aeD@hg`ZH WYR1x@Sd)pQ+`@Mn,S xPsd'$ ݸHt=/&%g-1GuʜO=S3x̬TƖfZӂ ੥h~W$#e1ctK[Q<{7yW@8g>J\6gpTLt N>mZ\"q&O(L:k's ʠcgu5d($VK#"8XZYxY Y-|ܦƂԎ}X7ce)?G헒$81/FژzmGȉO.' QGh|xG5)ZE[4_(G&}0qj<= ф.ZF})9Q/|w+w9n; |pLw*՘fBwhmgmعeE 8xɷEsy&a}kѫfSo[Tș& +[kَ)B>&NK)Dv}RYNjTůc# ~kK5XWV/]LǐIr˻nS t۹* J42aTxVl@9"3'ߟrA[PM@*q@ Kl/¡g-BMF"W`A-E6:(rs M$1HE;y] aa\"&n1ۖA7:_' ^?򺿡?޿(|͹ 2EAޡ 뽄dC0_" s Q,G#Hy{oYǿ'1#po%Ɨi:~W 0+`Dm >4`gn#t*q+$'ei&ɕA5V [p5sۋyLMG9}aIQpBC+\t&EpWAPW-`nR"Y$V LaqIUFO#\w#-+[YomaYs#JQܿg4q6u@zO~O7C1jQv׬8[aiwmKON׮Ε}[.BJ#Ğ ,=i#M(J*v!?Ye{ cS1 \0x@U O<:v4(yGy(e/\g t >T-s\(q2nBN?95N+l'KRUи48XIgHOS ұTm%k]tӕS/h9b-_7 '*!nc^f”h22=}lNAW@/ōNNIvm]!(Z'e,GGX|(..4LJ4P̖eӸřԽcWul]jA0nڤA4ݲPW%qoOۀ|7 JG9N,þM UţǞ f|7q o$| Yxsx2,g)IhށJYwj/?h&|ül'b0 ΁YB0P*ECUGgʪ ^gOz xz\mJ<}ڍT%7h*~K/vʫ#e]؋,,˩ъ}p^ m_vSc0w&7'x)Q=2 %MKAWO Ȉ~Ad_lߘ*6gd ](۸-aǤpKv* h(OdcNb]Rq]yѤ_ý4cp$cClv"e[v蟽=v scI/mBxjy4WNqPф8q'v:xS~P7{vN#/pzݸ9a|fL!9|):Q}MF)XT y^JRe?惯 *7sěυL A~UIM/Z}`& þ\`Уd$3ueh`5FCKjdW43x2@]ccij@_vm׆TQZ +$J)-6Pٽ kS۪:ҝhMVADH_T㵊8чVD2MW[B%y- Uv3?̝TOx oq8 mp02{-`)ӨfVgF,J=g^4ƴG/ *C0h섏(c1\]a oJ'r-D|[L9א f5ߪԢ^u0@w~W=QdemUZ1)ʡ[ΣlQnd)76aǭȒ5n[λ4q | lP0!N8>m_u١*g˽ys@? 7 豵n k1HU-0V S7٪㦑Un+l7gL6sXɀ|0]@6 H3NBgc%O1!=GkpZD 2x&"YE`iޕջ1[p Kn%KU,r9]ѻ݋*Fc1jju~͢}prfcwb׃˗5I'_7EHΈgla5j.n͘z4q9Iw ,(R눓cK?UH.q%Jv:=@EB)΂5{s>׏ObjT_>Uj.(,#f'>+f. c1q_%6m/ 408$39\eA=,kβAOH_KYs_zǾn^B}#1 r(6'=:Y*}:HdS1n6;:یΘ6rG{43W@^uSL`4ޘMì._DfΰME+BpHCJ\5j3]d؞ w# t/+"찓~;3-_n3a s_ ̉}߾:n}f^B^auKu5!0` Y3((^I-؈AO`7 NxM5?6uJ387@mV,8e KXJ3kWs;BΩh&l M-R*?d5),S:)dA:?y8=vy52n_L@QYJIPF1r- ҪMЍ'P3mywaP{?ˁ-g֨[0zbvI7Zt]^`究&bW l\ 16kb?(v&q:v!gLL >\٭\o,MpEs¡Wk48f 2DNZ>F9nBهа|A(s=5j[){;l$v2U0sU }S_X~K)-E=:<- |T7hUli>{_ApUE }o`p&>w~\)J(1( &ld[)ZJ* ƜxQX~{3;8?buibiXt q{l4&ۑXv*Oi]B6ͥo[:3ҏi'-Z0}|ߺz}!8FS5ae-'!}$j ,с{r$+0 JBL!% =3&6 lV颛V`dqdh "V{cG3Kٲ܏iA,ovB3#;a6;v(Q'BGShHCCJ9NC\Fg͸Jp~sb}Xc"OLg0 $:t#<3=^ZK2tF,&Doؓ #Slye,#Wmz &xP*| foN_enF єPJDO5Xg x|cR'P prx'0kQ)Ѹz v58}x|,YhbLAⲭ'~:q}>RʧGh !p 6*VB#Ϟ΢g=|IZ€&}Z?p_b{^f(H [ku%vzϳ>|$x9sk8  \77)d磙HfxQn >-j)9d!^J^)`{$5|OD>SZp=+) YNN :^3)J9TTD?٭x)ueʞsѪrVSbf/klqUS~Y6n+[FIZ|X> X./CH/@f\kjPuSδߨu'iU1'Ib8SqJ<ؘ{e܌gBAns65/xI%_xg5VG1BˁzzH@OJP Zgn/w5PU Á2g{ jE+-A eP^y#?ΌOӫxfI}@RХ*` s,QT mNFkkf3>VZHqk>!zi&3eژs+W$aPc- |B y &e=gTƍ~ddH=%ֆ^g2Qװsb1{ZsG&lk/-Gð#_URJ5x&`7LIW+Kp ND7Ѥ"NSZ7PUu4.CcxՐ n"&fWygֆ11 ~-ܯ4_UϢD$$hC>uL0ҀR?[e~;eH`a9U3Imv@Rȋﲕyv*ga'6!gP#ZX1GģX'f'0lPz"&2piL$d?2]z$:OG)xAobb7  .86hQ  ʫsr,AK/H{ͽ6 T]րiE bxU.gjۮA.}M!1 Zw%&S7@ KW"YK"S| }+0kocX,qA%5teEj-+)$o5G,AɐdCCԽ{]΢-l8Uˎȝ4څTO<] :=}tαmV:}> L@hPfr`UJd`Fs& p,㭅8yFC?)TTmnm_&>/(xɏܟyW.Oa*6L_hзy2{qz~8r;:4;cMbKs .QxfXMl<$YBv#Lyj= D֕+5weQdt,A10d!& Qc7x,8W 'g{ "opAN8߭ >=͑K>zARI;B^<U6`RBaR|{Uab kh U8.uzVh:~'Lt.Cοr?7a7GiՃJ`Q׎:1A_[E@k~뇕IJ[̍m潍YCCsH}T$9qo< ]S;ơ:x+^Cf[4" ,N_^ s @>ОW>2e˅O|[I^d& jBtus|r~^hl8{?7)!wZ6eҫ%@k*]e:2hC^S靮y鲾 ؿ6jS@SԗL5m?,ѡ ͵rLdգky'=XChb ,ےimeoRpBk9*6R`e~"~K]]4J ]b ;dc4dSl 4ؐ2{vW=d;bvat W 9#XQ/50 O:trR$Ϫd@bX߾~iJ@By\ c{ AiShl/W)ᗂ Zm<a_EխXժ@߀Z.lӎڥjE^9- [pFߤ.:H[ ̌t3/w5ߢk<ⓛ7'puB]d# UF[9}`nA:^ p 'uГxbgnjY Gբ~WNt2\WNA1To՟uJfMTh{v diڐ#Zp; jJu)niXIn%0-ǗZM:w0t N͓/YZu@2JK*AC# "ԹTͰ86]˿}, `qW 5S*f0 BXUiSҵx;Qn"|D)-&Sp?H1ssJcrîH6h+񠰌qw/:6@Gf̈}Гe6W'o&Ns>=b?`FV(^hL@BWH`W>ҳ\d sԄ$̩ a(e٤~xF90hT{˺t)f`i+Fel{0>Th;yht/HZ ;jvfC+z 8?e8eߐ|\x&Dv(Z3OP 7v`ל0]I0\l#=RK;&1v䄎yAҍԝ5` gJ]x0[%4%{\hT,DdR֘n8fp]'KoLM3$.LY`<04%oĔwnTYvvp3uJ(M)'y2Yg}N!U:Bcg*-` 1u>-PN?lHwZ9ى,cran7m^m1aYn,խ;ng]_zvJK|a։\ym_nǃyxJ^N8.1hxtH*O*fF;":q"[s ~8>S[_X4p7n鿲@sےl.{ebD\t r)!HV&!~TJ$:Ln ;+piNs=%|~P0ɜ^eº{V4 'Xߖjn}&0"BOaJzP&;%á,%8jGtoml=PT%Ph,lDʺScʍ1|?r1{Ex˧]b1ʈNI +O=&iz4K)[9[LGA~LІfn_tE&OKgjЛ>@u۬Tư>jETNa+@ȿT!YCKccquQ,+F#if x_>A<$ݪ,nBt GZJ/=WXd*o|;s~d>\ qc_p`sKFAgX|TRC:L{L2],ƺS' ;罛G"ˬf]J[!GKi΍|<{!gӦ?@$}Ѥkhۉ˕rd\vQΙ;hD1tdMxzy63 JK8v|=Dfueا[edSI+0`+)f|3d'ni@O Br>1WtVh2UT_)ǎJ0Fl%ꓰi:lۻ'YoPA fgʌ5:XԷ2vaL3Wb:)<+X$F xF}03QK? *J;AB U?(_wϽ!k0;8k>I 9Dy;e{4;*+4cIēU8~b.!DIQ> %7.i1Y;u!fxDgf |5Zv 2f׾ 0d;sdQZFۼ6R[L@pV@6]-d& Crc1ܲuMf[erG_ob). '2P߽-G؛M̩%d&9CU^?1Yx#b":N]]@_%&E.;wOQL֟e>$BP">~h wAοߛ$L4 Uکē1q>pw2_Ck#ǚ"y8ϵ9eF0wi] L833 CIë$V.а=4sÂe?5qɈ .a;aԀ49oQ/CTjQL 9pWmmodCaeݮHR!9$;vq/^)v\ K3ѴT 4)`݅6BĮaДTC')SVf[gS S jNZr vn <=sܷ_EEnЈGu>D?dS Mr~Ȏ8EN֏&*AR7< 7)ہoe5.&#GMQ%:NPѲ _^1-(!w3_;{&*{.*@yV(l4ׁvZ.W?(vwwQX~ϛ A<QJOl.9x>ެw~\B@7x.gi<܄(VthF}z uATZj&QGueKEoP]/;zT55i@W5ODWO=WD&Rke/wYwEQ7@uiSv=T@_jU`AHlc@#!m|;{1 ys{qAB<y+QYy#ëܼe{㓫5NM2,9Q_Y5 =lbR5g zE~;7o9zc4y{5ٽ/㭖@Z〪T] m$=2Ӏah?0eIEcMjt\x ]{(<;PRyXֿ. aFCSEbZP{ |'PL=R)M@3hoP\_ QGQSTFW p$kh(dh=ʗMNm2Xz8CG2uPmX3Q̏r@ SAFETY013.A[ ![EVERHART.JTDEMO]JTOPNNT.OBJ_A;13.OBJ_A;22>$FILL4GOTS$MOVE4@OTS$MOVE4G OTS$INDEX4@ OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4TG\ OTS$MOVEM4X@\ OTS$MOVEM4 `GhOTS$FILL4 d@hOTS$FILL4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4  G(OTS$FILL4 $@(OTS$FILL4DGL OTS$MOVEM4H@L OTS$MOVEM4TG\ OTS$MOVEM4X@\ OTS$MOVEM4 `GhOTS$FILL4 d@hOTS$FILL4!4G@ DFOR$OPEN4"8b#0 DFOR$OPEN4!<@@ DFOR$OPEN4! G DFOR$OPEN4"b#0 DFOR$OPEN4!@ DFOR$OPEN4@GHOTS$MOVE4D@HOTS$MOVE4TG\OTS$MOVE4X@\OTS$MOVE< G̖DFOR$READ_KEY_FMT< Ėb#0 DFOR$READ_KEY_FMT< Ȗ@̖DFOR$READ_KEY_FMT<I̗GؗDFOR$WRITE_SEQ_FMT<JЗb#0 DFOR$WRITE_SEQ_FMT<Iԗ@ؗDFOR$WRITE_SEQ_FMT<G$DFOR$REWRITE_FMT<b#0 DFOR$REWRITE_FMT< @$DFOR$REWRITE_FMT< GDFOR$READ_KEY_FMT< b#0 DFOR$READ_KEY_FMT< @DFOR$READ_KEY_FMT4ܘGLIB$WAIT4b#0 LIB$WAIT4@LIB$WAIT41@GL DFOR$INQUIRE42Db#0 DFOR$INQUIRE41H@L DFOR$INQUIRE4UlGx DFOR$UNLOCK4Vpb#0 DFOR$UNLOCK4Ut@x DFOR$UNLOCK4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE < G(DFOR$READ_KEY_FMT<  b#0 DFOR$READ_KEY_FMT< $@(DFOR$READ_KEY_FMT4lGxLIB$WAIT4pb#0 LIB$WAIT4t@xLIB$WAIT4G$ OTS$MOVEM4 @$ OTS$MOVEM4 (G0OTS$FILL4 ,@0OTS$FILL<IG̜DFOR$WRITE_SEQ_FMT<JĜb#0 DFOR$WRITE_SEQ_FMT<IȜ@̜DFOR$WRITE_SEQ_FMT<GDFOR$REWRITE_FMT<b#0 DFOR$REWRITE_FMT<@DFOR$REWRITE_FMT4TG\OTS$MOVE4X@\OTS$MOVE4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE< $G0DFOR$READ_KEY_FMT< (b#0 DFOR$READ_KEY_FMT< ,@0DFOR$READ_KEY_FMT4tGLIB$WAIT4xb#0 LIB$WAIT4|@LIB$WAIT4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE< GDFOR$READ_KEY_FMT< b#0 DFOR$READ_KEY_FMT< @DFOR$READ_KEY_FMT4ԟGLIB$WAIT4؟b#0 LIB$WAIT4ܟ@LIB$WAIT4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE< GDFOR$READ_KEY_FMT< b#0 DFOR$READ_KEY_FMT< @DFOR$READ_KEY_FMT4`GlLIB$WAIT4db#0 LIB$WAIT4h@lLIB$WAIT<GDFOR$REWRITE_FMT<b#0 DFOR$REWRITE_FMT<@DFOR$REWRITE_FMT4ԢG LIB$SPAWN4آb#0 LIB$SPAWN4ܢ@ LIB$SPAWN4PGXOTS$MOVE4T@XOTS$MOVE4YG OTS$DIV_I4Zv# OTS$DIV_I4Y@ OTS$DIV_I4WܣG OTS$DIV_L4Xv# OTS$DIV_L4W@ OTS$DIV_L4WG OTS$DIV_L4Xv# OTS$DIV_L4W @ OTS$DIV_L4WG OTS$DIV_L4Xv# OTS$DIV_L4W@ OTS$DIV_L4WPG\ OTS$DIV_L4XTv# OTS$DIV_L4WX@\ OTS$DIV_L4WxG OTS$DIV_L4X|v# OTS$DIV_L4W@ OTS$DIV_L4W@GL OTS$DIV_Lh h 4XDt# OTS$DIV_L4WH@L OTS$DIV_L4WhGt OTS$DIV_L4Xlt# OTS$DIV_L4Wp@t OTS$DIV_L4WG OTS$DIV_L4Xt# OTS$DIV_L4W@ OTS$DIV_L4WبG OTS$DIV_L4Xܨt# OTS$DIV_L4W@ OTS$DIV_L41G DFOR$INQUIRE42b# DFOR$INQUIRE41 @ DFOR$INQUIRE4U4G@ DFOR$UNLOCK4V8b# DFOR$UNLOCK4U<@@ DFOR$UNLOCK41G DFOR$INQUIRE42b#@ DFOR$INQUIRE41@ DFOR$INQUIRE4UثG DFOR$UNLOCK4Vܫb#@ DFOR$UNLOCK4U@ DFOR$UNLOCK41G DFOR$INQUIRE42b#@ DFOR$INQUIRE41@ DFOR$INQUIRE4U<GH DFOR$UNLOCK4V@b#@ DFOR$UNLOCK4UD@H DFOR$UNLOCK4DGL OTS$INDEX4H@L OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4خGOTS$MOVE4ܮ@OTS$MOVE4G OTS$MOVEM4@ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL< hGtDFOR$READ_KEY_FMT< lb#p DFOR$READ_KEY_FMT< p@tDFOR$READ_KEY_FMT4UįGЯ DFOR$UNLOCK4Vȯb#p DFOR$UNLOCK4U̯@Я DFOR$UNLOCK4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4[G SYS$ASSIGN4\b#p SYS$ASSIGN4[@ SYS$ASSIGN4]G SYS$QIOW4^b#p SYS$QIOW4]@ SYS$QIOW<IHGTDFOR$WRITE_SEQ_FMT<JLb#p DFOR$WRITE_SEQ_FMT<IP@TDFOR$WRITE_SEQ_FMT4UhGt DFOR$UNLOCK4Vlb#p DFOR$UNLOCK4Up@t DFOR$UNLOCK =;;=:  DFOR$CLOSE0 ;=A@=@48       2 3   x=R(=Z(=88  8 =S(= 8;=@OPRMSG SYS$GETJPIW; LIB$SPAWN STR$MATCH_WILD DFOR$READ_KEY_FMT;=0=)4= @=88OTS$FILL(DFOR$WRITE_INT_FMT_XMIT; ;=0;=P8 7 DFOR$HANDLER=0;8 OTS$MOVEM;8 OTS$INDEX ; DFOR$WRITE_INT_FMT= ;=\ DFOR$REWRITE_FMT=  ;=8 (8OTS$STRCMP_EQLP=8888 8JTSPAWNLIB$WAIT= 88888p0 ;8OTS$MOVE=(88  88 =<#>! DFOR$OPEN=A== 8 8 =(*JTAUTHMAINT.EXE*=X(= 0l+;==(@;=I(P#LIB$SYS_TRNLOG= LNM$PROCESS_TABLE%JGTPRVS==B( 'DFOR$READ_INT_FMT)SWPUIC=K(=0pP-;=,< 7 DFOR$HANDLER=;=L(=8 =U( +DFOR$SECNDS_VF=aF@-GTPRV=8 `/ EXTTRNLNM=V(x=J(=0(D;= `$< ,=&== 0G;==0H;=4 7 DFOR$HANDLER= ;=8,8     9 8 01 DFOR$INQUIRE 3DFOR$READ_SEQ_FMT= X`;=0 LL;=@ 5SYS$OPEN7 SYS$CONNECT;= 0M;= 88= GCY$DELNOW=( 8      9DELDO= GCY$DELSAV ; DFOR$DELETE= GCY$DELMNT<=0# gce$delseq:delrecs.seq`=.SAVp =SYS$CHECK_ACCESS==8==0N;=,< 7 DFOR$HANDLER=8OTS$STRCMP_LEQS  = (ALIB$CVT_FROM_INTERNAL_TIME=888 CLIB$FID_TO_NAME=delsav: EMYMODE=@GFIXFID=0$8       x=88 IDFOR$WRITE_SEQ_FMT= GCY$DELFAL=($@gcy$sys:dps_process_deletes==0xp;=$ 7 DFOR$HANDLER== 0u;==0v;=4 7 DFOR$HANDLER= (H=(8     h= 8   x=0y;=0| 7 DFOR$HANDLER=KVBSET=0(|;=(@ EACF_LE$$s@ SAFETY013.A[ ![EVERHART.JTDEMO]JTOPNNT.OBJ_A;13A;26~L =T  MLIB$SET_LOGICAL= LNM$SYSTEM =0h};=( 7 DFOR$HANDLER=0$8    p =Term or accpor not permit Terminal on forbid list File password not entered User on forbid. user list Time of Day Access reject Image on forbid. img list = 0;=User not on permit list Image not on permit list Privs too high for access File tamper checksum fail User filter routine rejct Accport on forbid list =0d;=0 0 OJTGLMSK=LP Q DFOR$EXIT= 0;==0h$;=$ 7 DFOR$HANDLER=  SKGETKI=0x@;=( 7 DFOR$HANDLER=p ;@ ; ;=_FIL = GCY$NONTCHK =_USR( ;=0(H;=p4 7 DFOR$HANDLER=`;=p =.x = GCY$CM:NTREGIST.REG U DFOR$UNLOCK=# ;=0;=0 W OTS$DIV_LY OTS$DIV_I=0;=  =0H;=`  7 DFOR$HANDLER==0H`;=`  7 DFOR$HANDLER==0h;=$ 7 DFOR$HANDLER= $ [ SYS$ASSIGN]SYS$QIOW /$*[EVERHART.JTDEMO]JTOPNNT.OBJ_VAX62;1+,\./ 4- 0123KPWO56皇7}89GHJ2@@OPNFILT 11-JUL-1996 14:58Digital Fortran 77 T7.0-1  $DATA$$BSS$t$IODATA$iX$CODE$ $LINK$0ILICCRJCODDBNS@EXFLKIUICJPIJUNKFSZC(JOPNFILT(J TSTULK SYS$GETJPIW(JDKIVLENSTR$MATCH_WILD(J.GETID LIB$SPAWN(JH ܗNTCHK DFOR$CLOSE DFOR$HANDLER DFOR$OPENLIB$WAIT(J/CHKACJTSPAWN(J@ RJ2ASCOPRMSG DFOR$REWRITE_FMT DFOR$READ_KEY_FMT DFOR$WRITE_INT_FMT DFOR$WRITE_INT_FMT_XMITDFOR$SECNDS_VFGTPRVJGTPRVS(J HITMCHK(J8LFILCK EXTTRNLNMSWPUICLIB$SYS_TRNLOG DFOR$READ_INT_FMT DFOR$INQUIRE(JPIUFCK DFOR$READ_SEQ_FMT DFOR$READ_SEQ_FMT_XMITSYS$OPEN SYS$CONNECT(JtQGTXAB(JQDELFILTMYMODEFIXFIDLIB$FID_TO_NAME SYS$CHECK_ACCESS DFOR$DELETE(LIB$CVT_FROM_INTERNAL_TIMEDELDO DFOR$WRITE_SEQ_FMT DFOR$WRITE_SEQ_FMT_XMIT(JuEXTFILT(JzGETPV(J {GETFNM DFOR$READ_INT_FMT_XMIT(JlGETFNBVBSET0JLOGLATCHLIB$SET_LOGICALLIB$GET_FOREIGN(J0 ؃GETEXF(J LIGETCAPJTGLMSK DFOR$EXIT(Jp SETCAP1(J KGETKSKGETKI(J ,CREFILT(JH 4FILCRE DFOR$UNLOCK(J CPYDEF(J PCHKACL SYS$ASSIGNSYS$QIOWOTS$MOVEOTS$STRCMP_EQLP OTS$MOVEMOTS$FILL OTS$INDEXOTS$STRCMP_LEQS OTS$DIV_I OTS$DIV_L( (= =|t6 JTD$DB:OPHHW.GDB76 JTD$DB:OPWHW.GDB76 JTD$DB:OPH$H$W.GDB76 JTD$DB:OPW$H$W.GDB76$@gcy$sys:filtall \ @H@[@[@[@H76H76[ 76%EACF-F-File access to fid [  by PID [ rejected code:[@H76%EACF - reject tty:H image:H username:H accpor:H76H76$@GCY$CM:FILRST H \ \ V  H H \76$@GCY$CM:FILRST H \ \ V  NLA0:NONAME H \76EZ$\\76[76DQQQQQQQQQQQQQQQQ76H$HW:76$W$HW:76 JTD$DB:OPHHW.GDB76 JTD$DB:OPWHW.GDB76 JTD$DB:OPH$H$W.GDB76 JTD$DB:OPW$H$W.GDB76H76$@GCY$SYS:DEL_SHELVED H H76W 76W76$@gcy$cm:fildel H \ \ H H76\76H,H,H76$@GCY$CM:MAKSPC H$HW V 76$@GCY$CM:MAKSPC $W$HW V 76H76M76H76M76H76\763 Key error. Key appears invalid in form. Unentered.76H$HW:76$W$HW:76 JTD$DB:OPHHW.GDB76 JTD$DB:OPWHW.GDB76 JTD$DB:OPH$H$W.GDB76 JTD$DB:OPW$H$W.GDB76H76H76H7 = #~^^~޴>cGGGGG8}0G0"Qv@JpJPFQ,"0bHpSJD 0"B R"0P"0 &Js`J3F  0PXJ`H@FP$ 0"b$s"0pG0 v Jr@J2F  0paJ`SH`Fp( 0"BHR"0PG0 &Js`J3F - 0PXJ`H@FPL 0"bs"0pG0 v Jr@J2F  0paJ`SH`Fp 0"0BR"0PG0 &Js`J3F  0PXJ`H@FP0 0"0bs"0p0B00"PF4GGXb+@G % 0%"#4GG0bs"0"GGxBb@Zk0" 00"E@\e0t#4G0"1"G0bs"0"GGxBb@Zk0" 8""& "`b(s"Cd}`"TGHb@"H4""& "`bs"Cd}`"TGHb@" ""&"`b$s"Cd}`"TGHb@"$""&@"`bLs"Cd}`"TGHb@"$yBy4G0B20bs"tN0"@C?"B@Zk""&"`ݲ0#Cd`"TGHb@0"$00BrB$"0B_BR"GB@ZkI$0"$9#7vJ?$F`=Cd=0BR"8vK&Gh}Cl]`"h="TGBb@Zk0"0%?&1"F'0BR0@B0bS0B$ "$"5vJ'F`Cd'{#h}Clݲ`"h="TGBb@Zk0"0%?&1"FGXb*@4GG %00%0B2e0 t 0¦$0 %0B$:$e0(`0" !&0D0",10B R0&SF0 T4G0¦000@00x@#8/8KW#,{K@HD<000B0"00"011"?tG0B4r0 "F4G0"4ٲG0"1"TGHb @D? D 080<%0B2@e0t0u3gJgJ4G0"0BR"GTB?"B@ZkGB@Zk?"4G0"hB"PB@Zk0@00"9 C0"!!@!G 035B0"0BR"?"B@ZkGB@Zk""&"`ݲ0 Cd`"TGHb@0"<D0"HE0bSL0PŢ0ײ0x3gJgJ4G0"0BR"GTB?"B@ZkGB@Zk""$ `0¦"Cdݲ`"TGHb@0"@T+B"?"0b<s0"0"h`=xp}"?&1"`}"GhBpb@Zk""0@0"! h=`"`]"tG8B@b@Zk""8 `"`]"tG8B@b@ZkT(B"? T"0"1"h=`=p"?&1"`}","GhBpb@Zk""0@0"! h=`"`]"tG8B@b@Zk""8 `"`]"tG8B@b@ZkT,B"? 0<0"1"0bs"h}`=x=p"?&1"`}"X"GhBpb@Zk""0@0"! h=`"`]"tG8B@b@Zk""8 `"`]"tG8B@b@ZkT(B"? T"0"1"h=`=p"?&1"`}""GhBpb@Zk""0@0"! h=`"`]"tG8B@b@Zk""8 `"`]"tG8B@b@Zk""$ `0"Cd`"TGHb@0"D""&"`0bs"Cd}`"TGHb@0"H0,0"D11 B0BL2B""0"h`}0⦼"xGp="?&1"`}""GhBpb@Zk""H"(! h=`"`]"tG8B@b@Zk"" `"`]"tG8B@b@Zk""0 `"`]"tG8B@b@Zk"" `"`]"tG8B@b@Zkx""0L 5@0"! h=`"`]"tG8B@b@Zk""$ `0"Cd`"TGHbX@0"P0P0"1"0vJ_&F`Cd=0X"#`"GGGGGGBb@Zk0"T0XGXb(@TGG0"!000"10B20bHs0"3v`J&uF`}Cd04""0BR"0bs"0"`"G`b9"@0"X0XXF0"X1 F GXb(@GG"! 0H0Br0B"B_BR"GB@ZkJ0Hb""TG_&R"GGBb@Zk0H`"0BR"?"B@Zk =GB@Zk4GH=GPGX=4G@b"0"H10BR"4G]=tG=GTG="4G]@#}tGݶ@#GTG="TG_&R""GxBb@ZkG?0"Jxb"0" 1"_"Gh=`]0⦼"px'8{#}"! #>"TG_&R"`"p"GBb@ZkG0"00"10BRxHFl k@0bsfF `0\0\"4GBb@Zk0D0"`0$0"(1F0B$R0bS0(0xb"0¦ ""Ghݶ`0b{#p}x&8""#"TG_&R"`"p"GBb@ZkG0"0%0B2e0t00¦֢xF0F@0\0\"4GBb@Zk0`0@0"`0`B0"8 10Bd20bds &tF0u0¦d֢F0dײ4G0"h0h"G0B R"GGG b@0h8Ds@?"TG0@ "(B"PB@Zk0@0l0"l9f 0"l!05 @@?"10B4G0C@ "B"PB@Zk0@0p0"p9T 0"l!0p0@!1 @0"p10BpR0bls4`B2UB35@B0"0B@ R"GTB?"B@ZkGB@Zk0¦G0G6  @"7"67""?$! `=0"Cd`"TGHb @0"t?"4G0"B"PB@Zk0@=@7?"4G0"B"PB@Zk0@0l0"l935 C0"0BR"?"B@ZkGB@Zk0"G0¦G"7B! """?'9#`=0"Cd`"TGHbV @0"t0tТ"HB 24GyB@G###!C C##`"GB"B@ZkB_BGB@Zk"G`]"B@ZkB!CG###)C C##"GB_B(R"GB@ZkA"GB@Zk "G]"B@Zk4GyBBG###!C C##"GB"B@ZkI"GB@Zk"0BR"G?"B@ZkA"GB@Zk0"G?"33B]"B@ZkGB@Zk""$ `0")! Cd=`"TGHb @0"P B"? 0"0"1"h=`=p"?&1"`}"("GhBpb@Zk""0")!`="`]"tG8B@b@Zk""0%!`="`]"tG8B@b@Zk0"P)0P? 1 @0"GB0BR"GB@ZkGB@ZkG""&"`ݲ0#Cd`"TGHb @0"P 0"P!0""0"!v H_&2D`=Cd`"TGBb@Zk0"T 0"T! ""0BhR8@F@bs0xt& "`0⦼"Cd0x"`="TG8b@ӈB"?!0 0"! h=`=p"?&1"`}"4"GhBpb@Zk""0")!`="`]"tG8B@b@Zk""0%!`="`]"tG8B@b@Zk""")!`="`]"tG8B@b@Zkx"" G0 h`="`]"tG8B@b@Zk""?%)!`=0"! Cd=`"TGHb @0"| 0"|!0"!v H?&1D`=Cd`"4GhBpb@ZkB"?! "! 0"h`=x=p"?&1"`}""GhBpb@Zk"""$)$ h`="`]"tG8B@b@Zk"""H)( h`="`]"tG8B@b@Zkx""")L h`="`]"tG8B@b@Zk""?%)!`=0"! Cd=`"TGHb @0"| 0"|!0"!v H?&1D`=Cd`"4GhBpb@Zk@?"TG0@ "B"PB@Zk0@0"l 0lg0"l905 C@? 10@4G0C@ "B"PB@Zk0@0"p 0pU0"l90"p!!C!1 @0p00"p10BlR4@B15B35 B0"0B@ R"GTB?"B@ZkGB@Zk0¦G0G6 7 @6""7""?'9#`=0"Cd`"TGHb[ @0"t ?"4G0"B"PB@Zk0@=@7?"4G0"B"PB@Zk0@0l0"l935 C0"0BR"?"B@ZkGB@Zk0" G0"G "6B)!!  ""'#`0"Cd`"TGHb @0"t 0"t!HТ" 4GwB!CG### C C##`"GB"B@ZkB_BGB@Zk"G`]"B@Zk B!AG###7C t@ SAFETY013.A\ $[EVERHART.JTDEMO]JTOPNNT.OBJ_VAX62;16'>C##"GB_B(R" =GB@Zk@"GB@Zk"G]"B@Zk4GiBBG### C C##"GB"B@ZkW"GB@Zk"0BR"G?"B@Zk@"GB@Zk0"G?"33B]"B@ZkGB@Zk""?'9#`=0"Cd`"TGHb @0"P B"? 0"0"1"h=`=p"?&1"`}"("GhBpb@Zk""0")!`="`]"tG8B@b@Zk""0%!`="`]"tG8B@b@Zk0"P)0P? 1 @0"GB0BR"GB@ZkGB@Zk""&"`ݲ0#Cd`"TGHb[ @0"P 0"P!0"!v H?&1D`=Cd0T"#`"GGGGGGBb@Zk0"T G0" ! .JF`D"2.Q2J'J0b30]B TG0¦"$/zJY$K:G$?0b{J`,H@.rHPJF>0"10 B0b30B04G0⦌ײ0ؠ0"90B:0b{ fC#`0") @00"!!5 @ @?@0C ! .J) A.qJRAJQFA>0bs0`B0t00B0¦0⦐ BGXbl#@0") AGuGXbd#@0") AGm0"8 !p D08 00"d1# 0B R"""&s"`}Cd]`"TGHb @0" xb"0" ! 0h=`"TG_&R"`""GBb@ZkGXb4#@>?!0 >? 00@?"TG0@ "XB"PB@Zk0@00"99#0"))!* ) 0"!P @000"105 B@_"1PB4G0C@ "B"PB@Zk0@00"))!0"99#  0"!!1 @000"10BR2B11 B0b34G00¦d֢4G0B@?"tG0@ "PB"PB@Zk0@:G0" 0" 9? !G2 08 0"d1F0B8 0b s"""&"`Cd}`"TGHb6 @0" xb"0" ! 0h=`"TG_&R"`""GBb@Zk 4G0 GXb"@0")0 AGP"! D GXb"@0")0 AG? 00?"0B2@?"TG0@ "HB"PB@Zk0@00"99#0"))!* ) 0"!P @000"105 B@_"1PB4G0C@ "B"PB@Zk0@00"))!0"99#  0"!!1 @000"10BR2B11 B0b30 C0 CF[B""0D7B0BZ#0b{#h}`ݶx]p"?&1"`}""GhBpb@ZkX""0")!h=G`="`]"tG8B@b@Zk""0"< )!`="`]"tG8B@b@Zk""0")0 5@) A0C@ h`="`]"tG8B@b@Zk""0")0 5@) A0C@ h`="`]"tG8B@b@Zk""0")!`="`]"tG8B@b@Zk0"))!0  EIB"? 0D0B0"1"0bs"h}`=x=p"?&1"`}"\"GhBpb@ZkX""0")!h=G`="`]"tG8B@b@Zk""0"< )!`="`]"tG8B@b@Zk""0")0 5@) A0C@ h`="`]"tG8B@b@Zk""0")!`="`]"tG8B@b@Zk""?%)!`=0"! Cd=`"TGHb @0" 0" ! ""&"`Cd=`"TGHb@0" xb"0" ! 0h=`"TG_&R"`""GBb@Zk0")""0 )v I?$!E`=Cd`"TGBb@Zk0" 0"!X xb"0 "?"Gh`=0¦"pݶx]_'8Z#] #"TG_&R"`"p"GBb@ZkGG0"G0"00"1x(F* 0BR@0b8 s0dtF08 u0¦ """&"`Cdݲ`"TGHb@0" xb"0" ! 0h=`"TG_&R"`""GBb@ZkGXb!@0")0 AGGXb @0")0 AGGXb @0"I0@@GcG]]}ݤ=#k_?! ]GGGG4GXtX]R2@.PJJX=X}s`BXBtF``X]R21@B@B%@X01B\B=CkXЀBX}X]R0BBXPX=11@1"q.QqJ'JX4XX]RBX}X=10 BX4X]R0@BXP4GX=qX@XX]RB0@"0.0Jt"S.uJRSJUFS>Xݦ /=֢0BX=ѲXB@"r.SrJr>".UJ>X=1"BXݦ6Gk`#~p^x^~cG#GGGG@}8G0v J`H F0, BraJ`SH`FrH H ""_"bHr@JD J`HFH$ "HB$R"bSGvHpJD "QAJ`SH@FQH( bHH"GBHq JD- bJ`HFHL H"1"B2GbvHpJD 4!J`SH F4 B"bGHq JD BJ`HF b"1"4B4Ge0$"4GGbs""GGBb@Zk" 0"$D@\d$t4G"$1"Gbs""GGBb@Zk" ""& "PHb(s"CT}P"TGb@H"H""& "PHbs"CT}P"TGb@H" ""&"PHb$s"CT}P"TGb@H"$h""&@"PHbLs"CT}P"TGb@H"H$yBv4GB(2b(s"tN"C?"B@Zk,""&"Pݲ#CTP"TGb@Ӏ",H$0B,rHB$"B_BR"GHB@ZkIH$,H"$9#7vJ?$FP=CT=BR"8vK&GX}C\]P"X="TG8B@b@Zk"00%?&1"F'B(R0@Bb(S(BH$p"H$"5vJ'FPCT'{#X}C\ݲP"X="TG8B@b@Zk"00%?&1"F4GEh"4GxBb@Zk4"4!lBa*TW _8p"810 BB82b8s8"`4G¦88885C1Bx@4G"B"GHB@ZkV"89"8!!5 @1!Ca@4G"8B"GHB@Zk4F"89"8!!5 @1!Ca@4G"8B"GHB@Zk3G"1"TGBb@Zk T$<0<""1"TGBb@Zk #D"1$C2Fb3F¦֢TFײ"9GD@0$"4GGbs""GGBb@Zk" 0"$D0@\d$t4G"$1"Gbs""GGBb@Zk"  #FBbs$tFu¦֢FTG"BZb{[G@""$ PH("CTP"TGb@H"H""& "PHbs"CT}P"TGb|@H" ""&"PHb$s"CT}P"TGbn@H"$h""&@"PHbLs"CT}P"TGb`@H"4G"@B"l@& "PH¦("CTݲ'#XC\]'@{#`}d}P"H"H1"X]"`}"@"G0bq@Ӏ@"@!8 D \PF[$BD2d`DD0F¦DD8FK8"8995 C1Cy@4G"B"GHB@Zk"!4 D78"8995 C1Cy@4G"B"GHB@Zk("8!875B17@w@4G"B"GHB@Zk8"8995 C1Cy@4G"B"GHB@Zk@"8!875B17@w@4G"pB"GHB@Zk8"8995 C1Cy@4G"@B"GHB@Zk$$D7"DD0F"DBDR8@F@b8s845B1tBt@4G"@B"GHB@Zk"!4 D7h#l@& "PHB(R"CT]&"XC\_'@Z#`]d=P"H"H1"X]"`}"@"G0b@Ӏ@"!!D0"@1' `B"l@& "PH¦("CTݲ'#XC\]'@{#`}d}P"H"H1"X]"`}"@"G0b@Ӏ@"! D0"@1~ B"l@&"PH¦$"CTݲ'#XC\]'@{#`}d}P"H"$1"X]"`}"@"G0bp@Ӏ@"!$D0"@1' B"l@&"PH¦$"CTݲ'#XC\]'@{#`}d}P"H"$1"X]"`}"@"G0bI@Ӏ@"!"D0"@10 B"l@& "PH¦"CTݲ'#XC\]'@{#`}d}P" `?=H" 1"X]"`}"@"G0b"@Ӏ@" l@?&@1"P=HbLs"CT}&"XC\='@#`dP"H"1"X]"`}"@"G0b@ "H@"1BHR2Fb3@X"l@& "PH"9#CT='{#X}C\&@"`dݲP"H" 1"X]"`}"@"G0b@G"H@"1BHR2Fb3@"l@&@"PH"L9#CT='{#X}C\&@"`dݲP"H"1"X]"`}"@"G0b@G"H@"1BHR2Fb3@(,âFl@?"TG`"B"B@Zk0@L"L99#"L!! \ [ L4B@?"10Bp@4G`"B"B@Zk0@P"P9J "P!L0@#! C (#BT2,cXtL¦P֢BL4B5Bw@B5vJ_'FPTP""T1"BXR"tGb[@ "HT(#FBRbHsSFTT(âF.X,F"9BHZ:Gb;X,#DT#X0FcBr¦5vJ\\BB"Gb{#X}P="1"h=G`}"?&1"P}"8"GBb@Zk "! &"PCT=&s"X}C\&"`ݲ#Cd$"GP]"X}"`""GxBb@Zk"``8F'"d1"TGBb@Zk ?$! P=CT_&R"X]"C\P""1"X]"tGBb@Zk"hd""D1"TGBb@Zk4G"llB"pBlRbls35`B2SBBCs".Jh¦h֢pFhز"l9BlZ:5@C1:Cbh{GGP}"GBP]"4G@B@ZkG0B@Zkl0@"llBHB"¦"XݶGP=t"`"?&1"P}"8"GXB`b@ZkHNHB""! X=GP=x"`"?&1"P}"8"GXB`b@ZkH9"!p L|0"t1B|R2Fbt3x|F¦x"HT#BtZ:G b{H`G"TBtRFX#bxs3F HF¦X㢀xF _#"HYb{H`G"4GcGp]x]}#k#~(^0^8~@HPGGGG]Gc]?"TG"]B@Zk0@!"!!! !" "!14 B_"3UB ""C"GTB?"pB@ZkG`B@Zk?"4G ""B"B@Zk0@!"!!! !"} |"!1B!R35 B25@B"1B ""GB B"4GpB@ZkG`B@Zk?"4G ""(B"B@Zk0@#=\,""&"b "s"C}"TGbY@Ӱ"!?"4G "" B"B@Zk0@"""9"!! 9@"B0D: $B"R21@B1v J&3F=C ""2v@J_'ZF ]C$" ="TGhBpb@Zk"""%?&1"FB"Rb!s SB@""3B ""B "R"GTB?"pB@ZkG`B@Zk4GG(]0]8}@HP`#k#GGGGr.rJ0@`JR4Gݦ (6 ( B! ( @0@=(ݦ(֢(75B6BWBB.JB  (0@= (ݦ (֢ BÀ(GGGG#k.W JF0#~^^~޴cGGGGGe.eJ`J8}h"(Chb (SGh$(pb"8=C1!JPH=h"$(! X="?"_&R"H"G`Bhb@Zk8b"8C H4Gh$(PHX=4G`4GhpBZ#x]TG="TG_&R"H"GBb@ZkG4Gh((00"1!N0BR2Bhb(3h(4JJh(5JJF0b""TG_&R"GGBb@Zkh( h ("nb"hB(R"H]"TG_&R"H" "GBb@ZkGE""h"4(! P=_"H]"H]"tGBb@ZkG7h"(4Gh",(hB,(R FB_dh,(hC4(".TJJtBdpNh((h",(9hC4(9#Y/YYK'KOBh(( C 8O=h"((#0 B#h,(0Bh,(hb,(s fB0b""TG_&R"GGBb@Zkh"(h(h"(QAJpSJPF(Qhb(SDcG]]}ݤ#k.T JF#~ ^(^0~8GG=]4G4G B(b@Zk"40404G0B8b@Zk"4040G?"B2G)}$s"..JU JF¦80v<0ø"<0!800"<080"<01"B@0R"bD0s"G@b@Ӹ<0B@0RbSD0GG ](]0}8@#kGGGGGGբ6JJFua0JJGk0#~^^~cGGG8=P"04GP0GP"11v HpJ0D114GP1@AJaS HAF1@GP0P"01"P"1!PB1GP10&H`H D10TGP"1QXJ`H@F1QtGP"0P0"P"1PB1P1P"1P1GPBd1vHq JDd1 P"d1J`SHFd1P1 P"h1PB0R"P"l1AGPl1 &JpJ0Fl1  P"l1AXJ`H@Fl1AP0 Pt1P"01"P"x1!PB|1P1P1\#P"|01GBb@ZkP"0P0pFP"0C"SF|@P0t4GP¦0P⦴0NP0Ox@PC8SP"090 CPB0:Pb0{lCdP"|IhP"IPB|Ir3gJgJ4GP|@"PB|IR"GTB?"B@ZkGB@Zk?"4GP|@"B"pB@Zk0@P0P"09 CP"0!!@!G P035BP|@"PB|@R"?"B@ZkGB@Zk ""&"`ݲP|@ Cd`"b#x_P"0#P|I0 #PBI2cPItP¦IP|Iw3gJgJ4GP|A"PB|IR"GTB?"B@ZkGB@Zk""$ `P"|A! Cd=`"b#N_P"0`#, B"GP"01Pb|@s"PM"h`x}p="?&1"`}"4"GBb@Zk""P0P"|A! h=`"`]"tGXB`b@Zk"" `"`]"tGXB`b@Zk`(B"G`"P"M1"h=`=p"?&1"`}"X"GBb@Zk""P0P"|A! h=`"`]"tGXB`b@Zk"" `"`]"tGXB`b@Zk`,B"? P0P"|@1"Pb|Cs"h}`=x=p"?&1"`}""GBb@Zk""P0P"|A! h=`"`]"tGXB`b@Zk"" `"`]"tGXB`b@Zk`(B"? `"P"|C1"h=`=p"?&1"`}""GBb@Zk""P0P"|A! h=`"`]"tGXB`b@Zk"" `"`]"tGXB`b@Zk""$ `P|C"Cd`"b#_P"0`#, B""P"01Pb|@s"P|E"h`x}p="?&1"`}""GBb@Zk""P0P"|A! h=`"`]"tGXB`b@Zk"" `"`]"tGXB`b@Zk`(B"? `"P"|E1"h=`=p"?&1"`}""GBb@Zk""P0P"|A! h=`"`]"tGXB`b@Zk"" `"`]"tGXB`b@Zk""$ `P|E"Cd`"b#,_P"0<#PL00@#PBP02PbL0s `PS4"PSU"PL0"Pb9B@Zk4GH=GPGX=4G@b"P"01PB|CR"4G]=tG=GTG="4G]@#}tGݶ@#GTG="TG_&R""GBb@ZkG5TGP00P"P0QAJP0Qb"P9""Gh`P"L09#p=xݶ?$8! ="T1"#>"TG_&R"`"p"GBb@ZkGP"0P0P"01PB0RxHF @Pb0sfF`P0P0"4GBb@ZkP0 1@P"0P0P"(:1PB02Pb0saFP _=0t4GP¦04GP_`"T`"T!`T"!v H?&1DH=CL`T"H"GGGGGG8B@b@Zk`"T4G@@cGh]p]x}#k_R"GGGGGGԢ4G0l]w0l] B+0=l]10]l]R25@B12BB_Br.rJ0p]wpN0=p]1B``N0p]wB`A0@BA  `0`B`0]l]R0@B0l]W0=l]1 6B?Gk #~^^~޴cGGGGGG.JJ8ƠdX}X=P=P]H]b|]Pb"8C H4Ghݴ`4Gp="x4G]=TG"G_&R"`"G`Bhb@ZkG`b"? ]"h`="G_&R"`""G@BHb@ZkGs?"4G]"0B"8B@Zk0@?"4G]"0B"8B@ZkP@]?"4G]"B"8B@Zk"]]"]! C?pB"]"]115 B0Bb]s"qBh=`¦]"pݶ"?&1"`}""GBb@ZkG"""]! `="`]"tG@BHb@ZkGh"""]! `="`]"tG@BHb@ZkG"]!t]0"|]10 BB|]2b|]sT`N@t]"'.wJ ~=VJF>0CB|]Zd [Cz_b""G_&R"GGBb@ZkcG]]}ݤ#k&.Q &J0F:. JV JF> #~^^~޴cGGGG8]G.JJ@8}s`}`=X=X]P]b^b"@C H4Gph4Gx="4G]=TG"G_&R"h"GBb@ZkGb"? ^"ph="G_&R"h"`"GBb@ZkGi?"4G^"B"B@Zk0@?"4G^"B"B@ZkP@^?"4G^"B"B@Zk"^^"^! C?B"^"^115 B0Bb^s"qBp=h¦^"xݶ"?&1"h}"`"GBb@ZkGP"""^! h="h]"tGBb@ZkG"""^! h="h]"tGBb@ZkG"^!^0"^10 BB^2G"^1"TG0B8b@Zk0@pb""G_&R"GG@BHb@ZkcG]]}ݤ#k%.Q %J0FD#~ ^(^0~8GGG  & "C ?$P! =h_ C"h"_1"]"tGBb@Zkh"_h_4G# b"0"P"& "ݲC }?'9#=C$ C"="]"GGG@BHb@Zkh"_G ](]0}8@#kp#~h^p^x~cGGGcH""$ 8C<=8"b#_"$`0b""$`!@}8=_"H]4GP4GXTG`]"G_&R"8"GPBXb@ZkG*"4G"(`Pb"B(`R"TNCR""@]8"G_&R"8""G0B8b@ZkG "(`!0"(`10 BB(`2b(`sdBb""G_&R"GGBb@ZkcGh]p]x}#kGGGGG!"GG]@Zk"]"G]@ZkPF"X]"G]@ZkF"]"G]@ZkF"]"G]@ZkF"]"G]@ZkF"8]"G]@ZkF"`]"G]@ZkF"]"G]@Zk"F"@]"G]@Zk"F"x]"G]@Zk"F"]"G]@Zk"F"]"G]@ZkGk#~^^~ GG @" ,`"4G(B0b@Zk "0` ,`@" B0`RR"@8"4GHBPb@Zk@`GG]]} 0#kGG =Gkp#~p^x^~cGGG#.#J5` J8=cB"8C0JX}P4` hG`="?&1"P}"h"GBb@ZkH4`"4G8B@b@Zk 0b""G_&R"Gh"GBb@ZkcGp]x]}#kC.R CJQFp#~h^p^x~cG#GG@=8]h`4Gh`GhB\avHq JD\a4Gh\a0!H`SH D\a0Gh"`hB`R"h"`aAhdaGh"da1&H`H Dda1TGhBdaJ`HFdatGh"`h"`1"hla0hBpahtah"xah|aGhB4avHq JD4a h"4aJ`SHF4aha h"8ahB`R"h"Xb{#C}"pb#+_"}"}a"0B?"B@Zk`B"GB@Zk0"G?"33B]"B@ZkGB@Zk¦}v"0B?"B@ZkB"GB@Zk0"G?"33B]"B@ZkGB@Zk}B }34G=Gݶ4G4Gx]Hb"}0BZ#4G]tGG=}TG`_"]4G]@#tG=x=#=G }TG(="G_&R""G8B@b@ZkG 4G0"13 4G`]GhGpݶ4GXHb"B}Z0b{#4G}]tG=GTGx?#=4G}@_#]tG]X"G ݶTG("G_&R""G8B@b@ZkG4G0T}"B}R"GxB@ZkB}R"GxB@Zk8b"0¦"x"Gݶ"T}! =&8"B\Z#^"G_&R"""GxBb@ZkG"$}$}"T}1 BB\}R@Bbd}s`Bl}B050¦V0w0#0B:c0`$000"0Uv@JU0¦vv`Jv0 p=vJ8b"0#G]"G_&R""\"GBb@ZkG8b"0"! =G="G_&R""\"GhBpb@ZkG8b"0" ! `"=(}"Gݶ?'9#=b\{#~"G_&R"""GxBb@ZkG",},}",}1&F B0}0}"4GBb@Zk4}",}! 4G"4}B4}R @"G_&R"tG8B@b@Zk4G!8}T}"B|R"GxB@ZkB}R"GxB@Zk8b"0"! x"G=ݶT} &8"B\Z#^"G_&R"""GxBb@ZkG",},}",}1&F B0}0}"4GBb@Zk4}",}! 4G"4}B4}R@b|s`B}BtF`4G¦8}T}B\}C"d}9 CBl}Z@C0b00"!0P#0B20b0¦0 0b0vK0"!v K!0PAKP0" 11"J&J& 4G0bJr@JF051"J&J0¦ ֦6JJ0 7JJB0b {;bKfK;5`C6B35B0"0B R"GTBB@ZkGB@Zk00 8 8H98K9D 0צvJ׶05JJB<}8b"0"1"B<}R=]"G_&R""\"GBb@ZkG8b"0"! <}="G_&R""\"GhBpb@ZkG"|! @}B0D 08"0BR"x?"xB@Zk¦8}֢8F|H=9| T}"B|R"GxB@ZkB}R"GxB@Zk"4}8b"0¦"x"GݶT}"&8"b\{#~"G_&R"""GxBb@ZkG",},}",}1&F B0}0}"4GBb@Zk4}",}! 4G"4}0BRR@0bs|t0¦|T}"B|R"GxB@ZkB}R"GxB@Zk4}8b"0#x?#G=T}"&8"b\{#~"G_&R"""GxBb@ZkG",},}",}1&F B0}0}"4GBb@Zk4}",}! 4G"4}0BR_0"0"81"TGb@0GvP0" 1"0B8R"b@}s"Gb@@}"8}!8 Df T}"B|R"GxB@ZkB}R"GxB@Zk8b"0¦"x"Gݶ"T}! =&8"B\Z#^"G_&R"""GxBb@ZkG",},}",}1&F B0}0}"4GBb@Zk08 \""?$x! =C"pb#_"D}",}! 8b"08""D}1="G_&R""\"GhBpb@ZkG"H}H}"G_&R"tG8B@b@Zk"G_&R"tG8B@b@Zk0p HH-8D+ 0p0JJ&0"p11&J&J0BpR2DJFJ2B0bps3fJfJ35`B13B11 B0Cts"1v J&4F=C}"GGGGL}"GBb@Zk"}GcG]]}ݤ#k#~^^~ GGGG"X"x?"V@Zk4G4vJ`HF44WAJ4W4x3dJfJp1tp1Vp1Zp@CG0V8v@Zkt1x108!$H&Ht @G V(v@Zk|105JJtBG V(v@Zk11u6|1!10611 #B Vx1R0@Bvx1SVx1Z@OBv1{`OC8{8z10@11 B61! L!u @07v Ja H!F07V1R@N0WAKrS@JRG0W4x;fKfKt`CG V(v@Zk|1t16x1!Bt1061Vt1Rv|1sV1zv1{ bC(`1LC811F6x1!0 @x106110 BV12vx1s`NBV1Z@OC8Z8Sv1{0`C1`1 B|1pN5UB4vJuJF4611 N4waJqS JqF4w8X:FKFKt@CG V(v@Zk185JJtBG V(v@Zk1x1NB8vJuJF8611 N8waJqS JqF8wV1:4G1`1 B6x1!0 @x10x1NB611 NC8185V1R0@Bv1SV1Z0@C1@v1{ yCG]]}  H=  0#k#~^^GGGGGGBÈ41 VwSF@4G141 vWrF@4G14G5T1R@F0JJ0uBGTt@Zk4@410JJGTt@Zk411411B01BT14v3fJfJ0u`BGTt@Zk4@4140JJGTt@Zk41141T1Rt1sSB21@BT1Zt1[1411 BV411 NB81t13T1R@N@BB8RT1Zt1{{#*`1 41!8 DD"17Ft13T1RT1Zt1{ yC#`41!1LB  D 4110 B10t1s yBÈT1RHF@T1Zt1{[G41A1D 411P Bt13T1R BB_G]] #k#~@^H^P~XcGG0b"h"1! 8="TG_&R"8"G B(b@Zkh1 "TG_&R"tGpBxb@ZkGcG@]H]P}X`#k@#~^^~cG#GXP=H]G@8cX=10B12&s"02t01"02020"2G0b1S0`2"01H010"1q0Bd20bh2vHh2D$&B0`20"t2P]R0l2@P}s0p2vJs`JFp2"0x25v JpJ0Fx25tG01]8R@0b1s&"tB0"1qG0x2JuSJFx2]8R0|2TG0b2302G4GB"B@Zk0@020"2!= @ 0235B0 2"]GB@ZkGB@Zk0¦2֢01ײ02010"2!!5 @0@2"0B1R"GxB@Zk0B 2R"GGB@ZkGB@Zk8b"0¦9"x"Gpݶh0@2"x&8"bh{#~"G_&R"h"x"GxBb@Zk``=0 200" 20B 2R0b 2sxhF@`"G_&R"tG8B@b@Zk8h"0B"4GxB@Zk0B 2R"GxB@Zk0 2"Gh]"xB@ZkH""?$ ! h=0 2"Clh"pb#N_0"20"2!0 2"!v H?&1Dh=Clh"0"11"GGG02"G8B@b@Zk0"202n0"110B1R0b1s"~0b1s"~0⦐2" (TG0b1s"GGGHBPb@Zk0"202H0"11E 0Bd2R0b1S01"..JVJF090h28KK0"10B1Z#z/,zK@H`G0"90d20"20Bh2R2FJFJ0b2S09"\""&x"hݲClh"pb#_0"28b"0"9! 02p=h"G_&R"h"h"GBb@Zk"G_&R"tG8B@b@ZkcG]]}#k4G SYS$GETJPIW4b# SYS$GETJPIW4@ SYS$GETJPIW4HGT SYS$GETJPIW4Lb# SYS$GETJPIW4P@T SYS$GETJPIW4|GOTS$MOVE4@OTS$MOVE4GOTS$STRCMP_EQLP4@OTS$STRCMP_EQLP4PG\STR$MATCH_WILD4Tb#STR$MATCH_WILD4X@\STR$MATCH_WILD4GSTR$MATCH_WILD4b#STR$MATCH_WILD4@STR$MATCH_WILD4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4G OTS$INDEX4@ OTS$INDEX4 @GH OTS$MOVEM4 D@H OTS$MOVEM4 LGTOTS$FILL4 P@TOTS$FILL4 G OTS$MOVEM4 @ OTS$MOVEM 4 G OTS$FILL4 @ OTS$FILL< G DFOR$WRITE_INT_FMT< b#DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT<  G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT<  @ DFOR$WRITE_INT_FMT_XMIT<  G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT<  @ DFOR$WRITE_INT_FMT_XMIT<0 G< DFOR$WRITE_INT_FMT<4 b#DFOR$WRITE_INT_FMT<8 @< DFOR$WRITE_INT_FMT< d Gp DFOR$WRITE_INT_FMT_XMIT<h b#DFOR$WRITE_INT_FMT_XMIT< l @p DFOR$WRITE_INT_FMT_XMIT<  G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT<  @ DFOR$WRITE_INT_FMT_XMIT< G DFOR$WRITE_INT_FMT< b#DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT<  G( DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< $ @( DFOR$WRITE_INT_FMT_XMIT< @ GL DFOR$WRITE_INT_FMT_XMIT<D b#DFOR$WRITE_INT_FMT_XMIT< H @L DFOR$WRITE_INT_FMT_XMIT< G DFOR$WRITE_INT_FMT< b#DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT<  G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT<  @ DFOR$WRITE_INT_FMT_XMIT<  G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT<  @ DFOR$WRITE_INT_FMT_XMIT< G DFOR$WRITE_INT_FMT< b#DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT<  G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT<  @ DFOR$WRITE_INT_FMT_XMIT< ( G4 DFOR$WRITE_INT_FMT_XMIT<, b#DFOR$WRITE_INT_FMT_XMIT< 0 @4 DFOR$WRITE_INT_FMT_XMIT< L GX DFOR$WRITE_INT_FMT_XMIT<P b#DFOR$WRITE_INT_FMT_XMIT< T @X DFOR$WRITE_INT_FMT_XMIT< p G| DFOR$WRITE_INT_FMT_XMIT<t b#DFOR$WRITE_INT_FMT_XMIT< x @| DFOR$WRITE_INT_FMT_XMIT<  G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT<  @ DFOR$WRITE_INT_FMT_XMIT4DGP LIB$SPAWN4Hb# LIB$SPAWN4L@P LIB$SPAWN4pGxOTS$STRCMP_EQLP4t@xOTS$STRCMP_EQLP4!G DFOR$CLOSE4"b# DFOR$CLOSE4!@ DFOR$CLOSE4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4G DFOR$OPEN4 b# DFOR$OPEN 4@ DFOR$OPEN< G,DFOR$READ_KEY_FMT<$b#DFOR$READ_KEY_FMT<(@,DFOR$READ_KEY_FMT4GLIB$WAIT4b#LIB$WAIT4@LIB$WAIT<XGdDFOR$READ_KEY_FMT<\b#DFOR$READ_KEY_FMT<`@dDFOR$READ_KEY_FMT4GLIB$WAIT4b#LIB$WAIT4@LIB$WAIT4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4 dGl OTS$MOVEM4 h@l OTS$MOVEM4 pGxOTS$FILL4 t@xOTS$FILL4G OTS$INDEX4 @ OTS$INDEX40G8 OTS$INDEX44@8 OTS$INDEX4 dGl OTS$MOVEM4 h@l OTS$MOVEM4 pGxOTS$FILL4 t@xOTS$FILL4 PGX OTS$MOVEM4 T@X OTS$MOVEM4 dGl OTS$MOVEM4 h@l OTS$MOVEM4xGOTS$MOVE4|@OTS$MOVE4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4GOTS$MOVE4@OTS$MOVE4 4G< OTS$MOVEM4 8@< OTS$MOVEM4 DGL OTS$MOVEM4 H@L OTS$MOVEM4 `Gh OTS$MOVEM4 d@h OTS$MOVEM4 pGx OTS$MOVEM4 t@x OTS$MOVEM4 Gw@ SAFETY013.A\ $[EVERHART.JTDEMO]JTOPNNT.OBJ_VAX62;16;15>w OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL<G(DFOR$WRITE_INT_FMT< b#DFOR$WRITE_INT_FMT<$@(DFOR$WRITE_INT_FMT< DGPDFOR$WRITE_INT_FMT_XMIT<Hb#DFOR$WRITE_INT_FMT_XMIT< L@PDFOR$WRITE_INT_FMT_XMIT< hGtDFOR$WRITE_INT_FMT_XMIT<lb#DFOR$WRITE_INT_FMT_XMIT< p@tDFOR$WRITE_INT_FMT_XMIT4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL,,G8JTSPAWN,0b#JTSPAWN,4@8JTSPAWN<GDFOR$WRITE_INT_FMT<b#DFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT< G$DFOR$WRITE_INT_FMT_XMIT<b#DFOR$WRITE_INT_FMT_XMIT<  @$DFOR$WRITE_INT_FMT_XMIT < <GHDFOR$WRITE_INT_FMT_XMIT<@b#DFOR$WRITE_INT_FMT_XMIT< D@HDFOR$WRITE_INT_FMT_XMIT< dGpDFOR$WRITE_INT_FMT_XMIT<hb#DFOR$WRITE_INT_FMT_XMIT< l@pDFOR$WRITE_INT_FMT_XMIT< GDFOR$WRITE_INT_FMT_XMIT<b#DFOR$WRITE_INT_FMT_XMIT< @DFOR$WRITE_INT_FMT_XMIT,GOPRMSG, b#OPRMSG,@OPRMSG<`GlDFOR$WRITE_INT_FMT<db#DFOR$WRITE_INT_FMT<h@lDFOR$WRITE_INT_FMT< GDFOR$WRITE_INT_FMT_XMIT<b#DFOR$WRITE_INT_FMT_XMIT< @DFOR$WRITE_INT_FMT_XMIT< GDFOR$WRITE_INT_FMT_XMIT<b#DFOR$WRITE_INT_FMT_XMIT< @DFOR$WRITE_INT_FMT_XMIT< GDFOR$WRITE_INT_FMT_XMIT<b#DFOR$WRITE_INT_FMT_XMIT< @DFOR$WRITE_INT_FMT_XMIT,pG|OPRMSG,tb#OPRMSG,x@|OPRMSG4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4 PGX OTS$MOVEM4 T@X OTS$MOVEM4 \GdOTS$FILL4 `@dOTS$FILL4G OTS$INDEX4@ OTS$INDEX4G$ OTS$INDEX4 @$ OTS$INDEX4 PGX OTS$MOVEM4 T@X OTS$MOVEM4 \GdOTS$FILL4 `@dOTS$FILL4 <GD OTS$MOVEM4 @@D OTS$MOVEM4 PGX OTS$MOVEM4 T@X OTS$MOVEM4dGlOTS$MOVE4h@lOTS$MOVE4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4GOTS$MOVE4@OTS$MOVE4  G( OTS$MOVEM4 $ @( OTS$MOVEM4 0 G8 OTS$MOVEM4 4 @8 OTS$MOVEM4 L GT OTS$MOVEM4 P @T OTS$MOVEM4 \ Gd OTS$MOVEM4 ` @d OTS$MOVEM4 | G OTS$MOVEM4  @ OTS$MOVEM4  G OTS$FILL4  @ OTS$FILL<!G!DFOR$WRITE_INT_FMT< !b#DFOR$WRITE_INT_FMT<!@!DFOR$WRITE_INT_FMT< 0!Gb#SYS$OPEN47\P@`PSYS$OPEN49|PGP SYS$CONNECT4:Pb# SYS$CONNECT49P@P SYS$CONNECT,ISGSMYMODE,JSb#MYMODE,IS@SMYMODE4 TGT OTS$MOVEM4 T@T OTS$MOVEM4 TGTOTS$FILL4 T@TOTS$FILL4TGT OTS$INDEX4T@T OTS$INDEX4 $UG,U OTS$MOVEM4 (U@,U OTS$MOVEM4 0UG8UOTS$FILL4 4U@8UOTS$FILL4 UGU OTS$MOVEM4 U@U OTS$MOVEM4 UGUOTS$FILL4 U@UOTS$FILL<hVGtVDFOR$WRITE_INT_FMT<lVb#DFOR$WRITE_INT_FMT<pV@tVDFOR$WRITE_INT_FMT< VGVDFOR$WRITE_INT_FMT_XMIT<Vb#DFOR$WRITE_INT_FMT_XMIT< V@VDFOR$WRITE_INT_FMT_XMIT< VGVDFOR$WRITE_INT_FMT_XMIT<Vb#DFOR$WRITE_INT_FMT_XMIT< V@VDFOR$WRITE_INT_FMT_XMIT<WGWDFOR$WRITE_INT_FMT<Wb#DFOR$WRITE_INT_FMT<W@WDFOR$WRITE_INT_FMT< DWGPWDFOR$WRITE_INT_FMT_XMIT <HWb#DFOR$WRITE_INT_FMT_XMIT< LW@PWDFOR$WRITE_INT_FMT_XMIT< hWGtWDFOR$WRITE_INT_FMT_XMIT<lWb#DFOR$WRITE_INT_FMT_XMIT< pW@tWDFOR$WRITE_INT_FMT_XMIT<WGWDFOR$WRITE_INT_FMT<Wb#DFOR$WRITE_INT_FMT<W@WDFOR$WRITE_INT_FMT< WGXDFOR$WRITE_INT_FMT_XMIT<Xb#DFOR$WRITE_INT_FMT_XMIT< X@XDFOR$WRITE_INT_FMT_XMIT<  XG,XDFOR$WRITE_INT_FMT_XMIT<$Xb#DFOR$WRITE_INT_FMT_XMIT< (X@,XDFOR$WRITE_INT_FMT_XMIT<pXG|XDFOR$WRITE_INT_FMT<tXb#DFOR$WRITE_INT_FMT<xX@|XDFOR$WRITE_INT_FMT< XGXDFOR$WRITE_INT_FMT_XMIT<Xb#DFOR$WRITE_INT_FMT_XMIT< X@XDFOR$WRITE_INT_FMT_XMIT< XGXDFOR$WRITE_INT_FMT_XMIT<Xb#DFOR$WRITE_INT_FMT_XMIT< X@XDFOR$WRITE_INT_FMT_XMIT<\YGhYDFOR$WRITE_INT_FMT<`Yb#DFOR$WRITE_INT_FMT<dY@hYDFOR$WRITE_INT_FMT< YGYDFOR$WRITE_INT_FMT_XMIT<Yb#DFOR$WRITE_INT_FMT_XMIT< Y@YDFOR$WRITE_INT_FMT_XMIT< YGYDFOR$WRITE_INT_FMT_XMIT<Yb#DFOR$WRITE_INT_FMT_XMIT< Y@YDFOR$WRITE_INT_FMT_XMIT<ZGZDFOR$WRITE_INT_FMT<Zb#DFOR$WRITE_INT_FMT< Z@ZDFOR$WRITE_INT_FMT< 8ZGDZDFOR$WRITE_INT_FMT_XMIT<Zb#FIXFID,=Z@ZFIXFID4|[G[ SYS$GETJPIW4[b# SYS$GETJPIW4[@[ SYS$GETJPIW4\G\OTS$STRCMP_EQLP4\@\OTS$STRCMP_EQLP4!\G\ DFOR$CLOSE4"\b# DFOR$CLOSE4!\@\ DFOR$CLOSE4 \G] OTS$MOVEM4 \@] OTS$MOVEM4 ]G ]OTS$FILL4 ]@ ]OTS$FILL4]G] DFOR$OPEN4 ]b# DFOR$OPEN4]@] DFOR$OPEN<T^G`^DFOR$READ_KEY_FMT<X^b#DFOR$READ_KEY_FMT<\^@`^DFOR$READ_KEY_FMT4^G^LIB$WAIT4^b#LIB$WAIT4^@^LIB$WAIT4/_G_LIB$SYS_TRNLOG40_b#LIB$SYS_TRNLOG4/_@_LIB$SYS_TRNLOG4 `G`OTS$FILL4 `@`OTS$FILL4?taGaLIB$FID_TO_NAME4@xab#LIB$FID_TO_NAME 4?|a@aLIB$FID_TO_NAME4 aGaOTS$FILL4 a@aOTS$FILL4bGb OTS$INDEX4b@b OTS$INDEX4HbGPb OTS$INDEX4Lb@Pb OTS$INDEX4 bGb OTS$MOVEM4 b@b OTS$MOVEM4 bGbOTS$FILL4 b@bOTS$FILL4DcGPc SYS$GETJPIW4Hcb# SYS$GETJPIW4Lc@Pc SYS$GETJPIW4AhcGpcOTS$STRCMP_LEQS4Alc@pcOTS$STRCMP_LEQS4AcGcOTS$STRCMP_LEQS4Ac@cOTS$STRCMP_LEQS<CdGdSYS$CHECK_ACCESS<Ddb#SYS$CHECK_ACCESS<C d@dSYS$CHECK_ACCESS4 \dGddOTS$FILL4 `d@ddOTS$FILL4dGd OTS$INDEX4d@d OTS$INDEX4dGd OTS$INDEX4d@d OTS$INDEX4 @eGHe OTS$MOVEM4 De@He OTS$MOVEM4 LeGTeOTS$FILL4 Pe@TeOTS$FILL<eGeDFOR$WRITE_INT_FMT<eb#DFOR$WRITE_INT_FMT<e@eDFOR$WRITE_INT_FMT< eGfDFOR$WRITE_INT_FMT_XMIT<eb#DFOR$WRITE_INT_FMT_XMIT< e@fDFOR$WRITE_INT_FMT_XMIT4MlfGxf DFOR$DELETE4Npfb# DFOR$DELETE4Mtf@xf DFOR$DELETE4gG$g LIB$SPAWN4gb# LIB$SPAWN4 g@$g LIB$SPAWN4#gGg EXTTRNLNM4$gb# EXTTRNLNM4#g@g EXTTRNLNM4 0hG8hOTS$FILL4 4h@8hOTS$FILL4?iGiLIB$FID_TO_NAME4@ib#LIB$FID_TO_NAME4? i@iLIB$FID_TO_NAME4 hiGpiOTS$FILL4 li@piOTS$FILL4iGi SYS$GETJPIW4ib# SYS$GETJPIW4i@i SYS$GETJPIW4AiGiOTS$STRCMP_LEQS4Ai@iOTS$STRCMP_LEQS4A jGjOTS$STRCMP_LEQS4Aj@jOTS$STRCMP_LEQS<CtjGjSYS$CHECK_ACCESS<Dxjb#SYS$CHECK_ACCESS<C|j@jSYS$CHECK_ACCESS4/jGjLIB$SYS_TRNLOG40jb#LIB$SYS_TRNLOG4/j@jLIB$SYS_TRNLOGDEDkGPkLIB$CVT_FROM_INTERNAL_TIMEDFHkb#LIB$CVT_FROM_INTERNAL_TIMEDELk@PkLIB$CVT_FROM_INTERNAL_TIMEDElkGxkLIB$CVT_FROM_INTERNAL_TIMEDFpkb#LIB$CVT_FROM_INTERNAL_TIMEDEtk@xkLIB$CVT_FROM_INTERNAL_TIME<kGkDFOR$WRITE_INT_FMT<kb#DFOR$WRITE_INT_FMT <k@kDFOR$WRITE_INT_FMT< lGlDFOR$WRITE_INT_FMT<lb#DFOR$WRITE_INT_FMT<l@lDFOR$WRITE_INT_FMT<XlGdlDFOR$WRITE_INT_FMT<\lb#DFOR$WRITE_INT_FMT<`l@dlDFOR$WRITE_INT_FMT< lGlDFOR$WRITE_INT_FMT_XMIT<lb#DFOR$WRITE_INT_FMT_XMIT< l@lDFOR$WRITE_INT_FMT_XMIT< lGlDFOR$WRITE_INT_FMT_XMIT<lb#DFOR$WRITE_INT_FMT_XMIT< l@lDFOR$WRITE_INT_FMT_XMIT4 mGm OTS$MOVEM4  m@m OTS$MOVEM4 mG m OTS$MOVEM4 m@ m OTS$MOVEM4,mG4mOTS$MOVE40m@4mOTS$MOVE4 HmGPm OTS$MOVEM4 Lm@Pm OTS$MOVEM4 TmG\mOTS$FILL4 Xm@\mOTS$FILL4mGmOTS$MOVE4m@mOTS$MOVE4 mGm OTS$MOVEM4 m@m OTS$MOVEM4 mGm OTS$MOVEM4 m@m OTS$MOVEM4 mGmOTS$FILL4 m@mOTS$FILL<PnG\nDFOR$WRITE_INT_FMT<Tnb#DFOR$WRITE_INT_FMT<Xn@\nDFOR$WRITE_INT_FMT< xnGnDFOR$WRITE_INT_FMT_XMIT<|nb#DFOR$WRITE_INT_FMT_XMIT< n@nDFOR$WRITE_INT_FMT_XMIT< nGnDFOR$WRITE_INT_FMT_XMIT<nb#DFOR$WRITE_INT_FMT_XMIT< n@nDFOR$WRITE_INT_FMT_XMIT< nGnDFOR$WRITE_INT_FMT_XMIT<nb#DFOR$WRITE_INT_FMT_XMIT< n@nDFOR$WRITE_INT_FMT_XMIT< oGoDFOR$WRITE_INT_FMT_XMIT< ob#DFOR$WRITE_INT_FMT_XMIT< o@oDFOR$WRITE_INT_FMT_XMIT4/oGoLIB$SYS_TRNLOG40ob#LIB$SYS_TRNLOG4/o@oLIB$SYS_TRNLOG, pGpJTSPAWN,pb#JTSPAWN,p@pJTSPAWN4pGp DFOR$OPEN4 pb# DFOR$OPEN4p@p DFOR$OPEN4qG q DFOR$OPEN4 qb# DFOR$OPEN4q@ q DFOR$OPEN<PqG\qDFOR$WRITE_INT_FMT<Tqb#DFOR$WRITE_INT_FMT<Xq@\qDFOR$WRITE_INT_FMT<qGqDFOR$WRITE_INT_FMT<qb#DFOR$WRITE_INT_FMT<q@qDFOR$WRITE_INT_FMT<qGqDFOR$WRITE_INT_FMT<qb#DFOR$WRITE_INT_FMT<q@qDFOR$WRITE_INT_FMT< rGrDFOR$WRITE_INT_FMT_XMIT<rb#DFOR$WRITE_INT_FMT_XMIT< r@rDFOR$WRITE_INT_FMT_XMIT< 8rGDrDFOR$WRITE_INT_FMT_XMIT<,Kt@tDELDO4uGu LIB$SPAWN4ub# LIB$SPAWN4u@u LIB$SPAWN4  wGw OTS$MOVEM4 w@w OTS$MOVEM4 wG wOTS$FILL4 w@ wOTS$FILL44wGPb# FIXFID,=T@XFIXFID4ؒG SYS$GETJPIW4ܒb# SYS$GETJPIW4@ SYS$GETJPIW4GOTS$STRCMP_EQLP4@OTS$STRCMP_EQLP4 ȔGД OTS$MOVEM4 ̔@Д OTS$MOVEM4 ԔGܔOTS$FILL4 ؔ@ܔOTS$FILL4/hGtLIB$SYS_TRNLOG40lb# LIB$SYS_TRNLOG4/p@tLIB$SYS_TRNLOG4 GOTS$FILL4 @OTS$FILL4GȖ SYS$GETJPIW4b# SYS$GETJPIW4Ė@Ȗ SYS$GETJPIW4AGOTS$STRCMP_LEQS4A@OTS$STRCMP_LEQS4AGOTS$STRCMP_LEQS4A@OTS$STRCMP_LEQS<C|GSYS$CHECK_ACCESS<Db# SYS$CHECK_ACCESS<C@SYS$CHECK_ACCESS4/GLIB$SYS_TRNLOG40b#H LIB$SYS_TRNLOG4/@LIB$SYS_TRNLOG4G OTS$MOVE4@ OTS$MOVE4 GOTS$FILL4 @OTS$FILL4hGp OTS$INDEX4l@p OTS$INDEX4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL 4 @OTS$FILL4  G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4 G OTS$MOVEM4 @ OTS$MOVEM4 ĚG̚ OTS$MOVEM4 Ț@̚ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4  G OTS$MOVEM4 @ OTS$MOVEM4 G$ OTS$MOVEM4  @$ OTS$MOVEM4 <GD OTS$MOVEM4 @@D OTS$MOVEM4 HGPOTS$FILL4 L@POTS$FILL4G( DFOR$OPEN4  b#H DFOR$OPEN4$@( DFOR$OPEN4G DFOR$OPEN4 b#H DFOR$OPEN4@ DFOR$OPEN4(G0Oz@ SAFETY013.A\ $[EVERHART.JTDEMO]JTOPNNT.OBJ_VAX62;16;15>TS$MOVE4,@0OTS$MOVE4<GDOTS$MOVE4@@DOTS$MOVE<GDFOR$READ_KEY_FMT<b#H DFOR$READ_KEY_FMT<@DFOR$READ_KEY_FMT<;GDFOR$WRITE_SEQ_FMT<<b#H DFOR$WRITE_SEQ_FMT<;@DFOR$WRITE_SEQ_FMT<G DFOR$REWRITE_FMT<b#H DFOR$REWRITE_FMT<@ DFOR$REWRITE_FMT<xGDFOR$READ_KEY_FMT<|b#H DFOR$READ_KEY_FMT<@DFOR$READ_KEY_FMT4ȟGԟLIB$WAIT4̟b#H LIB$WAIT4П@ԟLIB$WAIT4[G$ DFOR$UNLOCK4\b#H DFOR$UNLOCK4[ @$ DFOR$UNLOCK4HGPOTS$MOVE4L@POTS$MOVE4\GdOTS$MOVE4`@dOTS$MOVE<ȠGԠDFOR$READ_KEY_FMT<̠b#H DFOR$READ_KEY_FMT<Р@ԠDFOR$READ_KEY_FMT4G$LIB$WAIT4b#H LIB$WAIT4 @$LIB$WAIT4 ̢GԢ OTS$MOVEM4 Т@Ԣ OTS$MOVEM4 آGOTS$FILL4 ܢ@OTS$FILL<;hGtDFOR$WRITE_SEQ_FMT<<lb#H DFOR$WRITE_SEQ_FMT<;p@tDFOR$WRITE_SEQ_FMT<GģDFOR$REWRITE_FMT<b#H DFOR$REWRITE_FMT<@ģDFOR$REWRITE_FMT4G OTS$MOVE4@ OTS$MOVE4LGTOTS$MOVE4P@TOTS$MOVE4`GhOTS$MOVE4d@hOTS$MOVE <ԤGDFOR$READ_KEY_FMT<ؤb#H DFOR$READ_KEY_FMT<ܤ@DFOR$READ_KEY_FMT4$G0LIB$WAIT4(b#H LIB$WAIT4,@0LIB$WAIT4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE<G(DFOR$READ_KEY_FMT< b#H DFOR$READ_KEY_FMT<$@(DFOR$READ_KEY_FMT4lGxLIB$WAIT4pb#H LIB$WAIT4t@xLIB$WAIT4,G4OTS$MOVE40@4OTS$MOVE4@GHOTS$MOVE4D@HOTS$MOVE<GDFOR$READ_KEY_FMT<b#H DFOR$READ_KEY_FMT<@DFOR$READ_KEY_FMT4GLIB$WAIT4b#H LIB$WAIT4@LIB$WAIT<GDFOR$REWRITE_FMT<b#H DFOR$REWRITE_FMT<@DFOR$REWRITE_FMT4[ĨGШ DFOR$UNLOCK4\Ȩb#H DFOR$UNLOCK4[̨@Ш DFOR$UNLOCK4[G DFOR$UNLOCK4\b#H DFOR$UNLOCK4[@ DFOR$UNLOCK4G LIB$SPAWN4b#H LIB$SPAWN4@ LIB$SPAWN4G$OTS$MOVE4 @$OTS$MOVE4_xG OTS$DIV_I4`|v# OTS$DIV_I4_@ OTS$DIV_I4]G OTS$DIV_L4^v# OTS$DIV_L4]@ OTS$DIV_L4]ЪGܪ OTS$DIV_L4^Ԫv# OTS$DIV_L4]ت@ܪ OTS$DIV_L4]īGЫ OTS$DIV_L4^ȫv# OTS$DIV_L4]̫@Ы OTS$DIV_L4]G( OTS$DIV_L4^ v# OTS$DIV_L4]$@( OTS$DIV_L4]DGP OTS$DIV_L4^Hv# OTS$DIV_L4]L@P OTS$DIV_L4] G OTS$DIV_L4^t# OTS$DIV_L4]@ OTS$DIV_L4]4G@ OTS$DIV_L4^8t# OTS$DIV_L4]<@@ OTS$DIV_L4]|G OTS$DIV_L4^t# OTS$DIV_L4]@ OTS$DIV_L4]G OTS$DIV_L4^t# OTS$DIV_L4]@ OTS$DIV_L41ԱG DFOR$INQUIRE42رb# DFOR$INQUIRE41ܱ@ DFOR$INQUIRE4[G DFOR$UNLOCK4\b# DFOR$UNLOCK4[ @ DFOR$UNLOCK 4G OTS$INDEX4 @ OTS$INDEX4 HGP OTS$MOVEM4 L@P OTS$MOVEM4 TG\OTS$FILL4 X@\OTS$FILL4GOTS$MOVE4@OTS$MOVE4 G OTS$MOVEM4 @ OTS$MOVEM4 GȴOTS$FILL4 Ĵ@ȴOTS$FILL<,G8DFOR$READ_KEY_FMT<0b#H DFOR$READ_KEY_FMT<4@8DFOR$READ_KEY_FMT4[G DFOR$UNLOCK4\b#H DFOR$UNLOCK4[@ DFOR$UNLOCK4GOTS$MOVE4@OTS$MOVE4GȵOTS$MOVE4ĵ@ȵOTS$MOVE4صGOTS$MOVE4ܵ@OTS$MOVE4a`Gl SYS$ASSIGN4bdb#H SYS$ASSIGN4ah@l SYS$ASSIGN4cضGSYS$QIOW4dܶb#H SYS$QIOW4c@SYS$QIOW<; GDFOR$WRITE_SEQ_FMT<<b#H DFOR$WRITE_SEQ_FMT<;@DFOR$WRITE_SEQ_FMT4[,G8 DFOR$UNLOCK4\0b#H DFOR$UNLOCK4[4@8 DFOR$UNLOCK = A8 =Z( =;=X(8= H;;;= pOPRMSG SYS$GETJPIW; ;=) DFOR$REWRITE_FMT8OTS$MOVE;==8= 8OTS$FILL;8 OTS$MOVEM ;=0;= 7 DFOR$HANDLER=D;( DFOR$WRITE_INT_FMT_XMIT;8 OTS$INDEX ;p DFOR$WRITE_INT_FMT=8= =8 =88== =\ DFOR$READ_KEY_FMTLIB$WAITJTSPAWNSTR$MATCH_WILD8OTS$STRCMP_EQLP LIB$SPAWN=@(= *JTAUTHMAINT.EXE*<= @ ;=AP=S(X=<#>`=R(hH ;=: DFOR$OPEN=@48       2 3   ! DFOR$CLOSE= 0.;==(=V( =U((=R0# EXTTRNLNM= LNM$PROCESS_TABLEX=8 `%JGTPRVS=Ux=P=B('SWPUIC=N=K(=L(=0p/;=< 7 DFOR$HANDLER=;=D=X=8  )DFOR$READ_INT_FMT=aF0+DFOR$SECNDS_VF-GTPRV;`/LIB$SYS_TRNLOG=J(x=Y=I(=0( H;= `< ,=&== 0DK;==08L;= 7 DFOR$HANDLER= ;=( 8     9 01 DFOR$INQUIRE= 8 P;=` 3DFOR$READ_SEQ_FMT 5DFOR$READ_SEQ_FMT_XMIT=0 P;=@ 7SYS$OPEN9 SYS$CONNECT;= 0tQ;= GCY$DELFAL= GCY$DELNOW=($@gcy$sys:dps_process_deletes  ;DFOR$WRITE_SEQ_FMT=PD8      8       =FIXFID==(delsav:gce$delseq:delrecs.seq= =  ?LIB$FID_TO_NAME==0Q;=< 7 DFOR$HANDLER=8OTS$STRCMP_LEQS=80 CSYS$CHECK_ACCESS(ELIB$CVT_FROM_INTERNAL_TIME(GDFOR$WRITE_SEQ_FMT_XMIT=.SAVpIMYMODE= GCY$DELMNT=GCY$DELSAVKDELDO=M DFOR$DELETE==0hu;= 7 DFOR$HANDLER== 0z;==0{;= 7 DFOR$HANDLER= (` ODFOR$READ_INT_FMT_XMIT=(8     =0l;=| 7 DFOR$HANDLER=QVBSET=0 ;=(@ EACF_LE$$ =T  SLIB$SET_LOGICAL= LNM$SYSTEM0 =0h؃;= 7 DFOR$HANDLER=0$8     =Term or accpor not permit Terminal on forbid list File password not entered User on forbid. user list Time of Day Access reject Image on forbid. img list = 0;=User not on permit list Image not on permit list Privs too high for access File tamper checksum fail User filter routine rejct Accport on forbid list =0L;=0 @ UJTGLMSK=L` W DFOR$EXIT= 0;==0p;= 7 DFOR$HANDLER=  YKGETKI=0h,;= 7 DFOR$HANDLER=H ;=_FIL  ; ;= GCY$CM:NTREGIST.REG8 =.@ ;=0ܗ;=| 7 DFOR$HANDLER=;[ DFOR$UNLOCK= = GCY$NONTCHKx_USR =0;=0 ] OTS$DIV_L_ OTS$DIV_I=0P;=  =0@;=` 7 DFOR$HANDLER=#=04;= 7 DFOR$HANDLER= $ {@ SAFETY013.A\ $[EVERHART.JTDEMO]JTOPNNT.OBJ_VAX62;1;34ϫ>a SYS$ASSIGNcSYS$QIOWH H=80/ OPNFILTDigital Fortran 77 T7.0-1H H=D<61@Q:ZRA0:[EVERHART]JTOPNNT.FOR;38O O=KCB=Y7AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$JPIDEFO O=KCB=zGAS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$STRDEFPO O=KCB=Y7AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$JPIDEFO O=KCB=zGAS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$STRDEFO O=KCB=zGAS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$STRDEFO O=KCB=f #AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$FABDEFO O=KCB=$AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$RABDEF R R=NFE@ $AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2 $XABFHCDEFR R=NFE@ "HFAS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2 $SYSSRVNAMO O=KCB= Y$AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$XABDEFOO O=KCB= Y$AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$XABDEFO O=KCB= f #AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$FABDEFO O=KCB=$AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$RABDEFDR R=NFE@$AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2 $XABFHCDEFR R=NFE@"HFAS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2 $SYSSRVNAMO O=KCB=Y7AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$JPIDEFO O=KCB=Z2AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$ACLDEF$O O=KCB=2AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$CHPDEFO O=KCB=2AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$ARMDEFO O=KCB=Q_=AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$PSLDEFO O=KCB=Y7AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$JPIDEFO O=KCB=Z2AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$ACLDEFO O=KCB=2AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$CHPDEFYO O=KCB=2AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$ARMDEFO O=KCB=Q_=AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$PSLDEFN N=JBA<MX7AS"SYS$COMMON:[SYSLIB]FORSYSDEF.TLB;2$IODEF0 0=,$    c+ E * Lv cI  cWd m N         P[  \   k o  )   )   N- . % & Pv w 1 :2 3  3 Cc3 d3 4 4 mn4 o4 ,4 7 8 8 C8 8 k9 l9 m9 9 ,: io= @( r8 8= 44= OPNFILT4=rȐ jܠ< ج Ȕ       ഼̼ ?Ă _ _഼̼ ج z  ȸ , ,  ,   @    <  $ $= P4 =]U,OPNFILT. @ )BUF ne4=OG. (OUTACE e4=NF. 'INACE e4=0( 8VCHN  4= CACE Ye4=<4.  4=BCACE e4=<4.  4=MDACE e4=<4.  4=ICAPAB e4= 4=G?RJCODE. . . $. @JTDB5 IFID we4= @ITIM e4= MAXPRV e4= @CHKSUM e4= CSOFTL e4= PSWD .e4=?7KFLGSIFILSIZ LISTS ]e4= CH re4=  4=DSKREC e4=<4. 4=IDWRK e4=<4. 4=PRVWRK e4=<4. 4=IDWRK2 Ce4=<4.  4= I2DW e4="4=CIDWRK e4=<4. 4=IPNOW e4=  4= IPNOWL 4= TTYSPL $4=C;IMGSPL.  $4= IOSB e4=H@:  4=JPIITM e4=  ,4=MEKIOS:  4=JP2ITM 0e4="(4=DBNAM e4="(4=DBNAM2 e4="4=DBNSHR e4= 4=*"LDBNSHR(4=WRKLST *e4=<4.  (4= WKNM [e4=<4.  (4= WKN4 e4=<4. 04=MYDID e4="(4=CWKNM 7e4="  (4= CW1 ge4=" (4= CW2 e4=" (4= CWA1 e4="(4=CWRKN e4="  4=TTYSPB "e4="  (4=UNAMB Se4=" 4=RJASC e4=<4.  4=JNKACL e4="@ L4=ACCPOR e4= 4=)!NEFILE(4=WFSCR ?e4=XP:  oe4= 4=EFILES e4="(4=EFSCR e4=  4= ACCPORL  4=A9IUIC.  84= IPRV *e4=" $4=IMGSPB se4="(4=WRKARG e4=  @4= CCOL H4= UNAMLD4= KNTALLH4= LLUICL4= LPRVS P4=KKT4= KKPID 04= 833 |4= 831 X4= N831\4= LSPEC 4= 832 `4= LLLd4= MYACCMDh4= IDID1l4= IDID2p4=MYRUNFGS t4=Nx4=MYMSKACC|4= LDVCN 4= LCW1 4=H@LCW2 100 101 9100 91014= LDBN2 4= LDBN4="LDBN24 56094= LWFSCR 4= KKK 4= KKKK -4= 9999 4=8 6300 4=10 4= XTIM4= IKKKI 4= 21184= IKFLGS4= ISACCOK 4= III 4= IIJ4= LEFSCR 4=813 812 l4= 9631 4=IIII 1124= LCWA1 113 !4= 1813 4= LACE 4=MM 4= MMM 4= MMMM 4= N111#4= 29999#4= 19999 4= LLCH 63014= LROSB4= IRHISB4=  = IRFNS4= IINSWP 4= LOSB4= IHISB 4=,$IFNS 989 9794= LWARG4=ISTATa a=]UT : := -4= . = .44= GETID.4=>65  $ H 3$ $= .4 4444D44t4 4*4046h4@ 4F44Lh4VT4\h4b|4h4s4y84d44444T44 4T4@4T4h444$ 4P 4  4 !4 $4" T%4( %4. H'44 '4=ME.  %IBUF  e4=NF. $IDWRK  e4=  (4= ILOC .4=10 ,4= IOP /4= 100 /4= 200 .4= 300 .4= 400 .4= 500 .4= 600 /4= 700 04= ILEN 44= ISB 84= N: := /4=  = |@ SAFETY013.A\ $[EVERHART.JTDEMO]JTOPNNT.OBJ_VAX62;1;34>/44= CHKAC/4=@8 <Ȑ ܠȴȂ  3X ܬ   ($ $= 004 =]U)ISACCOK.  (BUF h#e4=@8. . . $. @JTDB5 IFID #e4= @ITIM #e4= MAXPRV #e4= @CHKSUM #$e4= CSOFTL R$e4= PSWD g$e4=.&KFLGSLISTS $e4= CH $e4=$'DSKREC $e4=ME. @ @UACE %e4=NF. @8MDACE &e4=<4.  <4= IFID i&e4= 4=C;RJCODE.  D4= IPRV &e4=<4.  L4= IOSB  'e4=H@:  4=JPIITM T'e4=  T4=MEKIOS:  4=JP2ITM 'e4="4=CLOGNM (e4= X4= CLOGLN  4= IUIC\4= LLUIC 4=*"ACCPORL $4=IMGSPB (e4="  4=TTYSPB (e4="  (4=UNAMB (e4="@ L4=ACCPOR )e4=  4= TTYSPL $4= IMGSPL H4= UNAML`4= LPRVS4=_WNEFILE:  ))e4= 4=EFILES )e4="8 4=EFSCR )e4=  d4=KKh4= KKPID 54= 833 ,54= 831 l4= N831p4= LSPEC 54= 832 t4= LLL x4=XX |4= IHR G4= 1000 G4= 9000 4= IPCB 4= IGOT :4=10 4= III <4=20 =4= 210 ?4= 310 A4=50 4= IZZZ `C4=304= ILOFN 4= IHFN 4  = IC1 4= IC2 4=IIII 324= ISTAT 0E4= 3324= IMYUIC 4=II 4=N 4=M 33 G4= 9011 4= IH1 4= IH2 4= KUIC G4= 893o o=kcb : := G4= ( =  H44= ITMCHK H4=.&% lؘ$$ $= \H4% %=A,044G,44M,|64S,64Y,74_,:4e,,;4k,d;4q,;4w,;4}, <4,<4,A4,B4,E4=)SELST -e4=C; (SELLBGNSTR >-e4=4,'LISTS o-e4=0( IGOTP"4=MYLST -e4= 8"4= IPTNS  K4= 999 <"4= MYLL I4=10 @"4= ILLD"4= ICOMM H"4= LLL K4= 900G G=C;: : :=  K4= 8 = DK44= IVLENDK4=0(' v0 z  v$ $= pK4Y Y=KC9IVLEN3,)J&3&&N.xH4T.H4^.I4d.lI4n.I4t.J4z.K4= 6ARG .e4= %LEN K4=1 P(4=N T(4=K L4= 2: := L4=  = 8L44= FILCK8L4=_WV      0 $ $= L4 =YQ:30T8&3&& )FNAM  0e4=)! (ICS1 'ICS2  4= LFIL 4=C;NFFREE. x(4=WRKBUF 0e4=  X(4= WBL\(4= I4TST `(4=@8I4X. \(4=I2TST 1e4=<4.  `(4= I2X Y1e4=  d(4= I2SVh(4= IRECL O4= 999 l(4= IPAR $N4=100 2000 |O4= 990 TO4= 200 p(4= N: := O4=  = P44= IUFCKP4=2*)   $ $= HP4E E ='IUFCK. . . . . . . . . FABDEF FAB$B_BID FAB$B_BLN FAB$W_IFI  2e4=-% FAB$L_FOP 2e4=yq@ FAB$L_STS` FAB$L_STV FAB$L_ALQ FAB$W_DEQ FAB$B_FAC 2e4=-% FAB$B_SHR 3e4=SK FAB$L_CTX FAB$B_RTV FAB$B_ORG H3e4=-% FAB$B_RAT w3e4=D< FAB$B_RFM FAB$B_JOURNAL  3e4=`XFAB$B_RU_FACILITY   FAB$L_XAB@ FAB$L_NAM` FAB$L_FNA FAB$L_DNA FAB$B_FNS FAB$B_DNS FAB$W_MRS FAB$L_MRN FAB$W_BLS FAB$B_BKS FAB$B_FSZ FAB$L_DEV  FAB$L_SDC@ FAB$W_GBCP FAB$B_ACMODES P 3e4=-%X FAB$B_RCF X 4e4=+# ` FAB 34e4=#. . . . RABDEF  RAB$B_BID RAB$B_BLN RAB$W_ISI  7e4=-% RAB$L_ROP 7e4= 8e4=  ( RAB$B_ROP10 RAB$B_ROP28 RAB$B_ROP3@ RAB$L_STS` RAB$L_STV` RAB$W_STV0p RAB$W_STV2 RAB$W_RFA N8e4= RAB$L_RFA0 RAB$W_RFA4  RAB$L_CTX  RAB$B_RAC RAB$B_TMO RAB$W_USZ RAB$W_RSZ  RAB$L_UBF@ RAB$L_RBF` RAB$L_RHB RAB$L_KBF RAB$L_PBF RAB$B_KSZ RAB$B_PSZ RAB$B_KRF RAB$B_MBF RAB$B_MBC RAB$L_BKT RAB$L_DCT RAB$L_FAB RAB$L_XAB RAB }8e4= LUNx04= ISTAT  4= LFIL 4= NFFREE |04= IXAB04= INEXT P4= 100 04= IEOF04=IFFREE: := XQ4= X~ ~= tQ44= GTXABtQ4= $ $= Q4 =. . FHCDEF` XAB$B_COD XAB$B_BLN  XAB$L_NXT@ XAB$B_RFOH XAB$B_ATR H f<e4= P XAB$W_LRL` XAB$L_HBK` XAB$W_HBK0p XAB$W_HBK2 XAB$L_EBK XAB$W_EBK0 XAB$W_EBK2 XAB$W_FFB  XAB$B_HSZ XAB$W_MRZ XAB$W_DXQ XAB$W_GBC <e4=LD0XAB$W_VERLIMIT@ XAB$L_SBN 9XAB <e4=5-8INEXT %IEOF$IFFREE: := Q4= \ = Q44= DELFILTQ4=e] 1 , 4ج 4 Ѐ $5 $5 $5 -5 -5 -5 R5܁ R5 \5 w5 5 5 5 5Ȱ 5O 5̠ 5 5T̠ 6 %6 %6, 4 $ $= R4 =]U)DELFILT. d 'BUF ~Ae4=JB 8VCHN. d S4= BBUF Ae4=<4.  4=ICAPAB Be4= 4=G?RJCODE. . . $. @JTDB5 IFID xBe4= @ITIM Be4= MAXPRV Be4= @CHKSUM Be4= CSOFTL Ce4= PSWD /Ce4=?7KFLGSIFILSIZ LISTS ^Ce4= CH sCe4= :4=DSKREC Ce4=<4.  I4= WKNM De4=<4.  I4= WKN4 De4=<4. 04=IDWRK AEe4= }@ SAFETY013.A\ $[EVERHART.JTDEMO]JTOPNNT.OBJ_VAX62;1;34>>104=( LDELC04=CIDWRK Ee4=<4.  04= I2DW Ee4="I4=CWKNM Fe4=" @4= CW1 DFe4=" A4= CW2 rFe4=" B4= CWA1 Fe4="C4=DBNAM Fe4="D4=CDELC Fe4="E4=DBNAM2 /Ge4="4=DBNSHR `Ge4="F4=DELFNM Ge4="G4=OFILSP Ge4= 4=D<LDBNSHR.  04= UFID He4=<4. 04=UFID4 MHe4="I4=CWRKN He4="J4=CWFID He4=" K4= UACE He4="L4=MDACE &Ie4="M4=CDROK VIe4="@N4=DVCNM Ie4="N4=DELSHV Ie4="  h14=CXLGN Ie4=" 14=RJASC Je4=<4. 24=JNKACL GJe4=<4. 04=MYDID Je4=<4. 04=IDWRK2 Je4="Q4=JNKACE 'Ke4= 04=C;LCDROK.  04= JDID hKe4= 04=C;PIDEXT.  14= JPI3 Ke4=<4.  04= IOSB  Le4=  04= JUL 04=A9CCOL. 14=JPI32 nLe4=<4.  14= IPI3 Le4= 04= IDELSH04= MYUIC04=C;MYUICL. 14=IPI32 0Me4=" 24=JPIUSR zMe4="R4=SHLVFL Me4=  04= MODE04= MAJMODE04= IMSPECIAL04= IPACTYP04= IRWACX04= LDVCN 04=N 04= LCW1 14=H@LCW2 8100 8101 100 101 14=.&LDBN 9100 910114= LDBN2 14=MYACCMSK 14= KKK `\4= 768 14= KKKK f4= 9999 14= IWC ]4=8 6300 14= KIOS ^4=10  14= XTIM$14= IKFLGS(14= ISACCOK,14= IIJJII014= LDFNM414= LLDVC814= IACPS <14= KK1 @14= KK2D14="LSHLVFL 804H14= LDELSHV (k4= 9990 t4= 9880L14= LCXLGN P14=II T14= IJUL X14=<4ISEC 1002 1003 1004 \14= LOFS 9898`14= LCWFIDd14= ISTAT p4= 3980 q4= 3981 1090 t4= 9997 u4= 9998  = : := u4= ($ = u44= EXTFILTu4=\TS E6, g6ج y6 |6̜$ ]6 $ $= 0v4 =@EXTFILTQT4QT4%Q(U4/QU49Q\4?Q\4IQ`4OQa4UQb4[QLb4aQb4kQlc4qQc4wQ`d4}Qd4Qd4QDe4Q4h4Qli4Qi4Qj4Q m4Q0m4QLm4Qm4Qm4Qm4Qr4Qr4Qr4Q8s4QPs4Rps4=LD.  'BUF Re4=JB 8VCHN.  0]4= BBUF Se4=<4.  4=ICAPAB MSe4= 4=)!RJCODE 0U4= WCMD Se4=<4.  0Z4= WKN4 Se4=  U4='CCOL0Z4=CWKNM .Te4=" 0W4= CW1 ^Te4=" 0X4= CW2 Te4=" 0Y4= CWA1 Te4=<4.  0Z4= WKNM Te4="0Z4=CWRKN 2Ue4=" 0[4= UACE bUe4="0\4=MDACE Ue4= U4= LDVCN U4=N U4= LCW1  U4=,$LCW2 100 101 $U4= LDBN (U4= IXX,U4=ISTAT5 5=1)( : := z4=  = z44= GETPVz4=' 6 6$ $=  {4 =P@Vw4JV8w4PVw4ZV4x4= 9PWD Ve4=5- 8LPWD %ILO $IHI {4=1 ]4=N ]4= KHAR: := {4=  = {4 4= GETFNM{4==54 6 0 6$ $= H|4 =[S:30T8&3&&*NUMFIL We4=pd  &&&& &&&TX& )NUMS We4=)! (NMAX 'NGOT ]4=?7I4.  ]4= I2 Xe4=" ]4= REC Xe4=  ]4= NNUM 4= 999 |4=100 1000 ~4= 900 ]4= LLO ]4=LHI 2000 ]4= IIF1 ]4= IIF2 ]4= IIF3# #= : := 4=  = l44= GETFNBl4=@87 6 , 6$ $= 4X X=C;:30T@&3&&Y8}4Y\}4Y}4= )NUMFIL EZe4=pd  &&&& &&&T`& (NUMS Ze4=)! 8NMAX 'NGOT ^4=?7I4.  ^4= I2 O[e4=" ^4= REC [e4=  ^4= NNUM p4= 999 X4=100 1000 H4= 900 ^4= LLO ^4=LHI 2000 ^4= IIF1 ^4= IIF2 ^4= IIF3# #= _: := p4= @ = 44=LOGLATCH4= 6$ $= Ђ4 =+# 'IGOT^\4d\4j\4= `4=CLOGNM \e4="P `4= WCMD ]e4=  _4=II _4= KK: := 4= , = ؃40 4= GETEXF؃4=(  6  7$$ $=  4 =4,'EFILE ]e4= 4=_WNEFILE:   ^]e4= 4=EFILES ]e4=  h`4= LEFI @4= 9999 l`4=N 1000 @4= 200: := h4=  = 4@ 4= RJ2ASC4=" 7$ $= 4b b=B::ICODE  %IMSG ^e4_ _=[SR : := D4=  = L4 4= IGETCAPL4=" +7 $ $= l4  ='IGETCAPp`4= IMASK t`4= KKK+_41_Ѕ47_4=_4C_04I_P4O_p4~@ SAFETY013.A\ $[EVERHART.JTDEMO]JTOPNNT.OBJ_VAX62;1_A;31>PU_4[_4a_Ԇ4g_4m_4s_@4=<4.  4=ICAPAB _e4: := ؇4= z z= 4p 4= SETCAP14= G7$ $= 4 =<4.  4=ICAPAB `e4: := 4=  = 4 4= KGETKS4=% N7 N7$ $= T4< <=XP:30T8&3&& 'KEY 6ae4=<4. x`4=KINTS ae4= 1 ̈4=99 2: := 4= | |= ,4 4= CREFILT,4= e7 , C:ج U: Ђ :D :9 : : : : ( @: $ $= l4 =]U(CREFILT. d 'BUF Uce4=]U @VCHN. 8OUTFID ce4=<4. d {4= BBUF ce4=<4.  4=ICAPAB ?de4=<4. `4=MYDID de4= 4=C;RJCODE.  r4= WKNM de4=<4.  r4= WKN4 -ee4=<4. `4=IDWRK vee4= `4=( LDELC`4=CIDWRK ee4=<4.  `4= I2DW fe4="r4=CWKNM Ife4=" i4= CW1 yfe4=" j4= CW2 fe4=" k4= CWA1 fe4="l4=DBNAM ge4="m4=CDELC 4ge4="n4=DBNAM2 dge4="4=DBNSHR ge4="o4=DELFNM ge4="p4=OFILSP ge4= 4=D<LDBNSHR.  `4= UFID 9he4=<4. `4=UFID4 he4="r4=CWRKN he4="s4=CWFID he4=" t4= UACE ,ie4="u4=MDACE [ie4="v4=CDROK ie4="`w4=DVCNM ie4="w4=DELSHV ie4=" 8a4=CXLGN je4=" Xa4=RJASC Lje4= `4=C;LCDROK.  `4= JDID je4= `4= MYUIC`4=C;MYUICL. a4=JNKACL je4=<4. `4=  =IDWRK2 ?ke4= `4=C;PIDEXT.  xa4= JPI3 ke4=<4.  `4= IOSB ke4=  `4= JUL `4=A9CCOL. xa4=JPI32 Gle4=<4.  a4= IPI3 le4= `4=C;IDELSH. a4=IPI32 le4=" a4=JPIUSR 4me4="z4=SHLVFL eme4=  `4= MODE`4= MAJMODE`4= IMSPECIAL`4= IPACTYP`4= IRWACX`4= LDVCN `4=N `4= LCW1 a4=H@LCW2 8100 8101 100 101 a4=.&LDBN 9100 9101a4= LDBN2  a4= KKKa4=MYACCMSK a4= KKKK P4= 9990a4= MYFIDLa4= MYFIDH  a4= IWC 4=8 6300 4=10$a4= ISACCOK(a4= IIJJII,a4= LDFNM0a4= LLDVC 4= 9880 4= 9997 4= 9998W W=SKJ : := 4= 2 2= ܗ4H 4= NTCHKܗ4= : ;̨ ; ; ; ; ; ; ; ; ; ; ; ; ;$ < -< -< -< @< @< @< \<@ \< \< g< q< q<0$ $= <4 =5-*NTCHKPMSKACC (IUICo4o84o4o44o4o̔4o4o4o4=ME.  HIFID re4=ME.  'IDID Ire4=OG. @DEFACL re4=6.8RREGNAM re4="4=REGNAM se4=<4.  ~4= DEF2 @se4= 4=)!DEFLEN4=DEFCMD se4=" 4= RG1 se4=" 4= RG2 se4=" 4= RG3 &te4=" 4= CMD1 Tte4=" 4= CMD2 te4=. . <`JTUS3 UIC IFID te4= `IDID te4=KFLGSGRPLSTGRPLENACEDEFACELENDEFCMDDEFLEN ACES ue4= CH %ue4= 4=USRREC :ue4= `4=USRWRC :ue4= . <xJTFL3FIDNAM jve4=+# UIC IDID ve4=`KFLGSGRPLSTGRPLENACEDEFACELENDEFCMDDEFLEN ACES ve4= CH ve4= I4CH4=FILREC ve4= 84=FILWRK ve4=" }4=FIDNAM xe4=" }4=FDNMWK Ixe4=<4. }4=NFFID zxe4=<4. }4=NFDID xe4="}4=DVCNAM ye4=" 8}4= CFID ?ye4=" @}4= CDID nye4=" H}4= WFID ye4="0}4=CDROK ye4=  = P}4=C;LCDROK.  8}4= FFID  ze4=<4.  @}4= FDID Uze4=<4.  H}4= FWFD ze4="` 4= WR1 ze4="` 4= WR2 {e4= 4= IUOPN4= IFOPN T}4= KKK X}4= IDOT\}4= LDVCN `}4= LNRG d}4= LNRN 4= 9999 6300 h}4=II Ȟ4= 220 4= 222 4=1 l}4= UIC p}4= KIOS t}4= XTIMx}4= IGOTU|}4= INEWFIL 44=2 }4= LNRC |4= 223 ̣4= 224 h4=5 T4=15 4=16 }4= IGOT 4=22 }4= LFWK }4= IOS}4=KKKKK0 = : := 4=   = 4 4= CPYDEF4=RJI {<( <( <  <$ $= 4Y Y= |4|l4|4|4}4 }4}4!}@4+},41}@47}L4=}`4C}Т4M}4S}P4Y}d4_}4e}4@ SAFETY013.A\ $[EVERHART.JTDEMO]JTOPNNT.OBJ_VAX62;1_A;31%="ok}04q}D4=. . xJTFL3FIDNAM }e4=+# UIC IDID ~e4=`KFLGSGRPLSTGRPLENACEDEFACELENDEFCMDDEFLEN ACES @~e4= CH o~e4=#<INREC ~e4= ;OUTREC ~e4=  p4= III t4=IV x4=IO |4= IBGN 4= IGRG 4=N1 4= IOL 4=2 4= KKK 4= IDC 4= IDL; ;=7/. : := 44= h = P4 4= CHKACLP4=JBA <1$ = ==$ $= |4 =<MSKACCF 4L4R4Xت4^̫4d$4jL4=. . . `JTUS3 UIC IFID e4= `IDID ,e4=KFLGSGRPLSTGRPLENACEDEFACELENDEFCMDDEFLEN ACES [e4= CH e4=$;USRREC e4= . . xJTFL3FIDNAM e4=+# UIC IDID Ȃe4=`KFLGSGRPLSTGRPLENACEDEFACELENDEFCMDDEFLEN ACES e4= CH &e4=$:FILREC ;e4= 9IGOT4= MSKWRK4= MSKOWN4= IGRPLO4= IGRPLN 4= IGH4= IACELO4= IACELN 4= LLO 4= LHI D4=1 4=N14= LOACEķ4= IHIACE 4=2 ܰ4=3 ȷ4=N3 h4= 800 l4= 999) )=% : := l4= 4y y= 4 4= TSTULK4= = $ $= 4X X= ̷4= ISOPN 4= 999: := 4=  = 44H 4= FILCRE44=xw .= @A @A @A0 QA $ $= 4  =XMYUIC]4c<4i4o4=NF. PMYDID e4=E=HLNAME'FILNAME e4=OG. @DEFACL )e4=IA8 IALLOCLASS DVCNAM e4=kcMFIDLMFIDH. ^ IBUF ׇe4="  4=DEVNAM  e4=. . <`JTUS3 UIC IFID Qe4= `IDID e4=KFLGSGRPLSTGRPLENACEDEFACELENDEFCMDDEFLEN ACES e4= CH Ĉe4= 4=USRREC وe4= . <xJTFL3FIDNAM e4=+# UIC IDID e4=`KFLGSGRPLSTGRPLENACEDEFACELENDEFCMDDEFLEN ACES 1e4= CH Fe4= 4=FILREC [e4=" з4= WFID qe4=<4.  з4= FDAL e4=" @4=FIDNAM e4=<4.  ط4= IOSB e4=. MYFIB`FLAGS FIDLO@FIDHI`DIDLODIDHI CTXNMCTLEXCTL EXSZ PAD2 ce4= `4=MYFIB e4=<4. 4=NMDSC be4=<4. 4=FIBDS e4= 4=C;DVCHNL.  4=OWNATR e4=" 4= CHIN Qe4= 4= ICHIN 4= KUIC4= IOFUNC4= MYFIDL4= MYFIDH 4= IDOT 6300  4=II 4= LDVN 4= KKKK 4=KQ 4= LFR 84= 1C C=?76 : := 84= $4 4: 4@L4J4P4Z4`ĵ4fܵ4 =  2 *[EVERHART.JTDEMO]JTOPNV3.OBJ_A;1+,]./ 4- 0123KPWO56#7 9#89GHJ@@OPNFILT 13-JAN-1997 21:46  Digital Fortran 77 T7.1-61 $DATA$X$BSS$|$IODATA$iԵ$CODE$$LINK$0ILICCRJCODDBNS@EXFLKIUICJPIJUNKFSZC(JOPNFILTLIB$SYS_TRNLOG(J TSTULK SYS$GETJPIW(JKIVLENSTR$MATCH_WILD(J/GETIDOPNCRE LIB$SPAWN DFOR$CLOSE DFOR$HANDLER DFOR$OPENLIB$WAITOPRMSG(J81CHKACJTSPAWN(Jp ȂRJ2ASC DFOR$UNLOCK DFOR$REWRITE_FMT DFOR$READ_KEY_FMT DFOR$WRITE_INT_FMT DFOR$WRITE_INT_FMT_XMITDFOR$SECNDS_VFGTPRVJGTPRVS(JHITMCHK(JLFILCK EXTTRNLNMSWPUIC DFOR$READ_INT_FMT DFOR$INQUIRE(JPIUFCK DFOR$READ_SEQ_FMTSYS$OPEN SYS$CONNECT(JQGTXAB(J@RDELFILTMYMODEFIXFIDLIB$FID_TO_NAME SYS$CHECK_ACCESS DFOR$DELETE(LIB$CVT_FROM_INTERNAL_TIMEDELDO DFOR$WRITE_SEQ_FMT(J tEXTFILT(J@xGETPV(JXyGETFNM(J|GETFNBVBSET0J LOGLATCHLIB$SET_LOGICALLIB$GET_FOREIGN(J` GETEXF(JH IGETCAPJTGLMSK DFOR$EXIT(J HSETCAP1(J dKGETKSKGETKI(J8 (CREFILT0J 0MYDEFCHK(J FILCRE(J CPYDEF(J` lCHKACL(J TSTU12 SYS$ASSIGNSYS$QIOWOTS$MOVEOTS$STRCMP_EQLP OTS$MOVEMOTS$FILL OTS$INDEXOTS$STRCMP_LEQS OTS$DIV_I OTS$DIV_L( (= =|6 JTD$DB:OPHHW.GDB76 JTD$DB:OPWHW.GDB76 JTD$DB:OPH$H$W.GDB76 JTD$DB:OPW$H$W.GDB76$@gcy$sys:filtall \ @H@[@[@[@H@V76H76[ 76%EACF-F-File access to fid [  by PID [ rejected code:[@H76%EACF - reject tty:H image:H username:H accpor:H76H76$@GCY$CM:FILRST H \ \ V  H H \76$@GCY$CM:FILRST H \ \ V  NLA0:NONAME H \76EZ$\\76[76DQQQQQQQQQQQQQQQQ76H$HW:76$W$HW:76 JTD$DB:OPHHW.GDB76 JTD$DB:OPWHW.GDB76 JTD$DB:OPH$H$W.GDB76 JTD$DB:OPW$H$W.GDB76H76$@GCY$SYS:DEL_SHELVED H H76W 76W76$@gcy$cm:fildel H \ \ H H76\76H,H,H76$@GCY$CM:MAKSPC H$HW V 76$@GCY$CM:MAKSPC $W$HW V 76H76M76H76M76H76\763 Key error. Key appears invalid in form. Unentered.76H$HW:76$W$HW:76 JTD$DB:OPHHW.GDB76 JTD$DB:OPWHW.GDB76 JTD$DB:OPH$H$W.GDB76 JTD$DB:OPW$H$W.GDB76H76H76H7 =#~^^~ (޴08@cGGGGG8}0"?& 1"`=Cd$ h0B R"Cl]`"0"1"h]"tG@BHb@Zk0"00"1Y B 0B R2FJFJ@BR"@4G0t0G0⦬vKvJG,"0"YAKvSJVGY¦"0b۲ 0""0"QFJpJPFQ"0bJpJF$"0$"0G0BڦvJy KFڶ"0bHvSJD( 0""H1"0B2G0Js`JF-"0JpJFL"0"9#0B:G0bvHvJD 0"!!J`SH F! 0B0b s"0tG0JuJF"088KpJ0G80"0B0¦"0b۲0"0"0hBR@F@Gb @4GG % 0%"#4GG0bs"0"GGBb@Zk0"00"E@\e0t#4G0"1"G0bs"0"GGBb@Zk0"$""& "`b(s"Cd}`"TGb@"H ""& "`bs"Cd}`"TGb@" x""&"`b$s"Cd}`"TGb@"$0""&@"`bLs"Cd}`"TGb@"$yB}4G0B20bs"tN0"C?"(B@ZkP""&"`ݲ0#Cd`"TGb@0" 0 YB0"$10B rB$"0B_BR"GB@ZkI$0 "$9#7vJ?$F`=Cd=0BR"8vK&Gh}Cl]`"h="TGBb@Zk0"$0$%?&1"B'0BR0@B0bS0B$"$"5vJ'F`Cd'{#h}Clݲ`"h="TGBb@Zk0"$0$%?&1"BGb@4GG %00%0B2e0(t 0¦,$00?'0B4:0b({04`G0"8 &0"40B(R0b4sSF0<T05B0¦80< '#0"0B(Z0b{[G0(@4G0@0@ SAFETY013.A]  [EVERHART.JTDEMO]JTOPNV3.OBJ_A;1.OBJ_A;31>0"@1@0b@ss@s"S.SJ".vTJUJF>0@0B0@0"@99#?0bD @/@K@K@4G0D0tG0"Hq0B(R"TF@4G0¦HG0"1"TGb @D? D 0L0<%0B2@e0t0u3gJgJ4G0 "0BR"GTB?"8B@ZkGB@Zk?"4G0 "B"HB@Zk0@00"9 C0"!!@9D 035B0 "0B R"?"8B@ZkGB@Zk""&"`ݲ0 Cd`"TGb@0"PD0"HE0bSL0PŢ0⦐ײ0x3gJgJ4G0 "0BR"GTB?"8B@ZkGB@Zk""$ `0¦ "Cdݲ`"TGbe@0"TT$`B"?"0bPs0 "0T0¦ "0 "h`=xp}ݶ"?&1"`}"@GBb@Zk""8 `"`]"tGBb@ZkT!XB"? T"0"T10b s"0 "h`=p}x="?&1"`}"@,"GBb@Zk""8 `"`]"tGBb@ZkT%`B"? 0P0" 1"0bTs0 "0 "h`=x=p}"?&1"`}"@X"GBb@Zk""8 `"`]"tGBb@ZkT!XB"? T"0"T10b s"0 "h`=p}x="?&1"`}"@"GBb@Zk""8 `"`]"tGBb@Zkx""$ `0 "Cd`"TGb@0"Xx""&"`0b s"Cd}`"TGb@0"\0B 0"GTGBb@ZkGG0"8!0<0D 0"`0B<R@4G0`t0X5B0¦dB""H"(9#0BZ#h]`0"xGp==¦"ݶ"?&1"`}"@"GBb@ZkX""0 `"`]"tGBb@ZkX"" `"`]"tGBb@ZkP""0d 5@0" ! h=`0b`s"p}"`]"tGBb@ZkP""$ `0"Cd`"TGbF@0"h0h0"1"0vJ_&F`Cd=0l"#`"GGGGGGBb@Zk0"0lGb@TGGp"! 0\0pBr0B "pB_BR"GB@ZkJ0\pb""TG_& =R"GGBb@Zk0\`p"0B R"?"8B@ZkGB@Zk4GH=GPGX=4G@b"0"\10B R"4G]=tG=GTG="4G]@#}tGݶ@#GTG="TG_&R""GBb@ZkGG0p00"QAJQ0bb"0""Gh`0"9#p=xݶ?$8! =@"$1"#>"TG_&R"`"p"GBb@ZkG0"00"t0BR0bsuhB@`4G0t0¦֢0uBsr0C0"x0x"4GBb@Zk0p 1@0"p0p0"1$B: 0B|0b,s00tF2`0,0¦000b"0"9#_#Gh=`]0"px}&8"@$"#"TG_&R"`"p"GBb@ZkG0"0%0B2e0t00¦֢uB0B0x0x"4GBb@Zk0|0@0"|0|B0"t10BDR @b"&!"`Cd}`"4GBb@Zk0X0"0?&F0B0bs05B`0`0¦֢4G0`0"X99 C0Bd:B"#H"(! 0"1"h=`}0"xGpݶ=BZ#]"?&1"`}"@"GBb@ZkX""0 `"`]"tGBb@ZkX"" `"`]"tGBb@ZkP""0d 5@0" ! h=`0b`s"p}"`]"tGBb@ZkP""$ `0"Cd`"TGb @0"h0h0"1"0vJ_&F`Cd=0l"#`"GGGGGGBb@Zk0"0lGb@TGGK0"! &0D0"10BRAF0bS4G00"G0BR"GGGb@05@c@?"TG0`"B"HB@Zk0@00"9V 0"!05 @@?"10B4G0C`"B"HB@Zk0@00"9D 0"!00@!1 @0"10BR0bs4`B2UB35@B0"0B`R"GTB?"8B@ZkGB@Zk0¦G0G6  @"7"67P""?$! `=0"Cd`"TGb @0"?"4G0"B"HB@Zk0@=@7?"4G0"B"HB@Zk0@00"935 C0"0BR"?"8B@ZkGB@Zk0"G0¦G"7B! "P""?'9#`=0"Cd`"TGb @0"0Т"HB 24GyB#!C!D C # C#"GB"8B@ZkB_BG8B@ZkB#0CF C # C#`ݷ`GB_B(R"G8B@ZkA"G8B@Zk4GyB#!C!D C # C#"GB"8B@Zk`]G8B@Zk0"0BR"G?"8B@ZkA"G8B@ZkGB@ZkP""$ `0"9#Cd=`"TGbS @0"hB""0"1"0bs"h}`p="?&1"`}"@0"GBb@ZkX""0 `"`]"tGBb@Zk""0 `"`]"tGBb@Zk0h0"h!"1B0"GB0BR"G8B@ZkGB@ZkGP""&"`ݲ0#Cd`"TGb @0"h0h""0BR"0vJ&F`Cd]`"TG@BHb@Zk0"0?"pB20bs5`B`p0& "`ݲ0#Cd0"`="TGpb@ӐB" 0"! 0 "h`p="?&1"`}"@<"GBb@ZkX""0 `"`]"tGBb@ZkX""0 `"`]"tGBb@Zk ""Gp"! `=0BR"p]h"`]"tGBb@Zkx""$ `0 "Cd`"TGb @0"00" 1"0vJ_&F`Cd=`"4GBb@Zk0B" " !""$1b$s"H("¦֢L"0 #=}=ݶ"?&1"}"@"GBb@Zkx""$ `0 "Cd`"TGbV @0"00" 1"0vJ_&F`Cd=`"4GBb@Zk@?"TG0`"(B"HB@Zk0@00"9W 0"!05 @@?"10B4G0C`"B"HB@Zk0@00"9E 0"!00@!1 @0"10BR0bs4`B2UB35@B0"0B`R"GTB =?"8B@ZkGB@Zk0¦G0G6  @"7"67P""?$! `=0"Cd`"TGb @0"?"4G0"B"HB@Zk0@=@7?"4G0"B"HB@Zk0@00"935 C0"0BR"?"8B@ZkGB@Zk0"G0¦G"7B! "P""?'9#`=0"Cd`"TGb @0"0Т"HB 24GyB#!C!D C # C#"GB"8B@ZkB_BG8B@ZkB#0CF C # C#`ݷ`GB_B(R"G8B@ZkA"G8B@Zk4GyB#!C!D C # C#"GB"8B@Zk`]G8B@Zk0"0BR"G?"8B@ZkA"G8B@ZkGB@ZkP""$ `0"9#Cd=`"TGbD @0"hB""0"1"0bs"h}`p="?&1"`}"@0"GBb@ZkX""0 `"`]"tGBb@Zk""0 `"`]"tGBb@Zk0h0"h!"1B0"GB0BR"G8B@ZkGB@ZkP""&"`ݲ0#Cd`"TGb @0"h0h0"1"0vJ_&F`Cd=0"#`"GGGGGGBb@Zk0"G0,"0.0J Ba d"S.RSJGJ0T0]B TG0⦠ײ#D/{KZDK[GD?0K$,$H$@d.r$HSdJrFd>00B00¦֢B0⦨ײ4G0"0Bڠ0b{0`0 B0"!@0"115 B0BQB,R"r.rJ!".uqJTJF>0¦֢0B0⦬ײ00C0"0BZ FC_"TG_&R"tG`Bhb@Zk0@GT"TG_&R"tG`Bhb@Zk0@GG0"X!p D0X00"1( 0BR"""&s"`}Cd]`"TGbX @0"b"0"0"1h`="TG_&R"`"@"GBb@Zk"TG_&R"tG`Bhb@Zk> 0">"0"@?"TG0`"B"HB@Zk0@00"9 C0"!! * ) 0PB0"0BR05@B@"1pB4G0C`"B"HB@Zk0@00"9= C0"!!   001B0"0BR0bsSB21@B0T4G0¦0⦀4G0b[@?"tG0`"XB"HB@Zk0@:G0"0"(!"0D2 0"X10BR2F0bX30"""&"`Cd`"TGb@0"b"0"0"1h`="TG_&R"`"@"GBb@Zk4G0"GbW@00@Gh"! D "TG_&R"tG`Bhb@Zk00@Gy? 00?"0B2@?"TG0`"B"HB@Zk0@00"9 C0"!! * ) 0PB0"0BR05@B@"1pB4G0C`"B"HB@Zk0@00"9= C0"!!   001B0"0BR0bsSB21@B0T0B0¦֢BF8`B""0BXZ:AC0b {#0\ 00"!!5 @8C0C`! 0"9005B90C0C`"0"1"=}]0"1"=G==0bs"}"?&1"}"@"GBb@Zk0@0"! @D-B""0"X11!B0b s"0\"00¦֢65B5B0C`"0⦄"}=0"! =Gݶ0BZ#]"?&1"}"@d"GBb@ZkP""$ `0"Cd`"TGb@0"0"""_&R"`]Cd`"TGb@0"b"0"0"1h`="TG_&R"`"@"GBb@Zk0P""0"! vH&D`Cd=`"TG@BHb@Zk0"0Xb"0"1"_"Gh=`]0"px'8{#}@"$! #>"TG_&R"`"p"GBb@ZkGG0"G00"10BRuHB *@0bs`0X0F0¦X0"""'#`Cd`"TGba@0"b"0"0"1h`="TG_&R"`"@"GBb@Zk"TG_&R"tG`Bhb@Zk00"!@G"TG_&R"tG`Bhb@Zk00@G "TG_&R"tG`Bhb@Zk00@GcG]]} (ݤ08 /=@P#kC?! AGGGG4G(t(]R2@.PJJ(=(}s`B(BtF``(]R21@B@B%@(01B\B=Ck(ЀB(}(]R0BB(P(=11@1"q.QqJ'J(4((]RB(}(=10 B(4(]R0@B(P4G(=q(@((]RB0@"0.0Jt"S.uJRSJUFS>(ݦ֢0B(=Ѳ(B@"r.SrJr>".UJ>(=1"B(ݦ6Gk`#~p^x^~cG#GGGG@}8Gx40v J`H F40, xB4raJ`SH`F4r@ x8@ "x"<_"xb<Hr@JD< x<J`HF<@$ x"D@B$R"xbHSGxLvHpJDL x"LQAJ`SH@FLQ@( xbP@H"xTGxBTHq JDT- xbTJ`HFT@L x\@"1"xB`2GxbdvHpJDd xd4!J`SH Fd4 xBhx"xblGxlHq JDl xBlJ`HFlx xbtx"1"xx4x|xBx4Ge0$"4GGxb4s"x"GGHBPb@Zkx"0x"D@\dxt4Gx"1"Gxb4s"x"GGHBPb@Zkx"l""& "P@b(s"CT}P"TG8b@@"Hh""& "P@bs"CT}P"TG8b@@" ""&"P@b$s"CT}P"TG8b@@"$x""&@"P@bLs"CT}P"TG8b@@"@$yBv4GxB2xbs"tNx"`C?"pB@Zk""&"Pݲx#CTP"TG8b|@x"@$0xBr@B$"xB_BR"G8B@ZkI@$x@"$9#7vJ?$FP=CT=xBR"8vK&GX}C\]P"X="TG(B0b@Zkx"x%?&1"B'xBR0@BxbSxB@$0"@$"5vJ'FPCT'{#X}C\ݲP"X="TG(B0b@Zkx"x%?&1"B4GEHh"4GBb@Zkxx"!lBa*TW _xpx"10 BxB2xbsxB`4Gx¦x75Bw@/KBBx"995 Cy@Y/YK C(C b{4`G`x"!!5 @a@.J @(@ $ Gx"1"TGBb@Zk T$x0x"x"1"TGXB`b@Zkx #Dxx"1$C2Fxb3xxF¦֢TFײxx"9GD@0$"4GGxb4s"x"GGHBPb@Zkx"0x"D0@\dxt4Gx"1"Gxb4s"x"GGHBPb@Zkx"x #FxBxbs$tFxux¦֢x⦤FTG"xBZxb{[G@l""$ P@("CTP"TG8b]@@"Hh""& "P@bs"CT}P"TG8bO@@" ""&"P@b$s"CT}P"TG8bA@@"$x""&@"P@bLs"CT}P"TG8b3@@"4Gx"B"l@& "P@¦("CTݲ'#XC\]'@{#`}d}P"@"H1"X]"`}"x"G0bD@xx"!5 @ \PF.$xB2d`xx0Fx¦x5Bx85Cx@8/8KC CBZ4@Gb[x 5@`@ , H@ @x05Bp@0.0JB BxBR25@Br@r.rJ@B5KB1@x45Bt@.JBUB x¦֢65Bv@.JBB$x8D@xbx"!0 Dx x"15 B x05Bp@p.pJB BBR4@FUð"l@& "Pݲ@"(9#CT='{#X}C\?&@1"`=dP"@"H1"X]"`}"x"G0b@x"!!D0x"1' B"l@& "P@¦("CTݲ'#XC\]'@{#`}d}P"@"H1"X]"`}"x"G0b@x"! D0x"1t B"l@&"P@¦$"CTݲ'#XC\]'@{#`}d}P"@"$1"X]"`}"x"G0bf@x"!$D0x"1' B"l@&" `?=P@¦$"CTݲ'#XC\]'@{#`}d}P"@"$1"X]"`}"x"G0b?@x"!"D0x"1& 8B"l@& "P@¦"CTݲ'#XC\]'@{#`}d}P"@" 1"X]"`}"x"G0b@x8" l@?&@1"P=@bLs"CT}&"XC\='@#`dP"@"1"X]"`}"x"G0b@ x"x"1xBR2Fb3xX"l@& "P@"9#CT='{#X}C\&@"`dݲP"@" 1"X]"`}"x"G0b@Gx"x"1xBR2Fb3x"l@&@"P@"L9#CT='{#X}C\&@"`dݲP"@"1"X]"`}"x"G0b@Gx"x"1xBR2Fb3x(,âFl@?"TG`"0B"B@Zk0@xx"9 Cx"!! \ [ x4B@?"10Bp@4G`"B"B@Zk0@xx"9J x"!x0@#! C (#xB2,cxtxx¦֢Bx4B5Bw@B5vJ_'FPTP"x"1"xBR"tGbJ@ x"x(#BBRxbsSFTx(âB$x,B"9xBZ:Gb;x,#@T#X0FcxBrx¦5vJxxxBpB"Gxb{#X}P=x"1"h=G`}"?&1"P}""GBb@Zk x"! &"PCT=&s"X}C\&"`ݲx#Cdx"GP]"X}"`"x@ SAFETY013.A]  [EVERHART.JTDEMO]JTOPNV3.OBJ_A;1.OBJ_A;31]{>-"GxBb@Zkx"x5B'x"1"TGBb@Zkx ?$! P=CT_&R"X]x"C\P"x"1"X]"tGBb@Zkx"x"x"1"TGBb@Zk4Gx"xBx" xBR25@BxbrBs".Jxx¦֢x Fxزx"995 CxBZ_G_GP]x"GBP]"4GpB@Zkx0@x"xBB"x¦"XݶGP=x"1"`="?&1"P}""GHBPb@ZkHNB"x"$! X=GP=x"`"?&1"P}""GHBPb@ZkH9"!p Lx0x"1xBR2Fxb3xxFx¦"xT#xBZ:C b{x`G"TxBRBX#xbs3B xF¦XxB _#x"Yb{x`G"4GcGp]x]}#k#~(^0^8~@HPGGGG]Gc]?"TG"]B@Zk0@"! @" "14 B_"3UB"C"GTB?"B@ZkGB@Zk?"4G"PB"B@Zk0@"! @"} |"1BR35 B25@B"1B"GB B"4GB@ZkGB@Zk?"4G"(B"B@Zk0@#=\,""&"bs"C}"TGbY@"?"4G" B"B@Zk0@"9"! 9@B0D: $BR21@B1v J&3F=C⦤"2v@J_'ZF ]C$" ="TGBb@Zk"%?&1"BBRbs rB@"3B"BR"GTB?"B@ZkGB@Zk4GG(]0]8}@HP`#kGGGGr.rJ+@`JR4Gݦ6 B @0@=ݦ֢65BVB.JB 0@=ݦ֢ BðGGGGk.W JF@#~^^~޴cGGGGGe.eJ`J8}"CbSGXb"8=C1!JH@="! P="?"_&R"@"GhBpb@Zk8b"8C H4GH@P=4GX4G`hBZ#p]TGx="TG_&R"@"G8B@b@ZkG4G00"1!N0BR2Bb34JJ5JJBb""TG_&R"GGBb@Zk "eÈb"BR"@]"P"H"TG_&R"@""GxBb@ZkG7"4G"BR FB_d 8O=C".TJJtBdpN"9C9#Y/YYK'KOB㲘 C"#0 B#0Bbs fBb""TG_&R"GGBb@Zk""QAJpSJPFQbSDcG]]}ݤ#k.T JF$#~ ^(^0~8GG=]4G4G B(b@Zk"&&4G0B8b@Zk"&&G?"B2G)}$s"..JU JF¦&v&"&!&0"&&"&1"B&R"b&s"G@b@&B&RbS&GG ](]0}8@#kGGGGGGբ6JJBua0JJGk0#~^^~cGGG8=" '4G'G"'1v HpJ0D'14G'@AJaS HAF'@G$'"$'1""'!B'G'0&H`H D'0TG"'QXJ`H@F'QtG"('('""'B''"''GB'vHq JD' "'J`SHF'( "'B'R""'A''"'\#B&2GBb@Zk"''pF"'C"SF@,'t4G¦0'0'N0'Ox@C?"0'90 CB0':b0'{lCd"6h"6B6r3gJgJ4G."B6R"GTB?"B@ZkG`B@Zk?"4G."B"B@Zk0@ '" '9 C" '!!@9D  '35B."B.R"?"B@ZkG`B@Zk""&"`ݲ. Cd`"b#_"4'#60 #B62c6t¦66w3gJgJ4G/"B6R"GTB?"B@ZkG`B@Zkx""$ `"/! Cd=`"b#t_"8'`#% B"G"4'1b.s"8'/"¦D;"hݶ`x}p="?&1"`}"<"GPBXb@Zk@"" `"`]"tGpBxb@Zk`!B"G`""8'1b/s"D;"h`=p}x="?&1"`}"`"GPBXb@Zk@"" `"`]"tGpBxb@Zk`%B"? 4'".1"b8's/"0"h`=x=p}"?&1"`}""GPBXb@Zk@"" `"`]"tGpBxb@Zk`!B"? `""8'1b/s"0"h`=p}x="?&1"`}""GPBXb@Zk@"" `"`]"tGpBxb@Zk""$ `0"Cd`"b#_"<'`#% B"""4'1b.s"8'/"¦2"hݶ`x}p="?&1"`}""GPBXb@Zk@"" `"`]"tGpBxb@Zk`!B"? `""8'1b/s"2"h`=p}x="?&1"`}" "GPBXb@Zk@"" `"`]"tGpBxb@Zk""$ `2"Cd`"b#|_"@'<#&0@#B&2b&s `?4"@U"&"b?s"8GBb@Zk&?$! D&D4GB '2bs`<'4uB0"B_BR"GB@ZkJ<' b""TG_&R"GGBb@Zk<'`"B0R"?"B@ZkG`B@Zk4GH=GPGX=4G@8b""<'1B0R"4G]=tG=GTG="4G]@#}tGݶ@#GTG="TG_&R""G`Bhb@ZkGOTGD'0"&QAJ&QHb"(""Gh`"&9#p=xݶ?$8! ="\1"#>"TG_&R"`"p"G0B8b@ZkG"H'H'"H'1BH'RuHB @bH'sfB`0L'L'"4GBb@ZkD' 1@"D'D'"p(1BP'2bP'saFP't4G¦T'4G?" '9 _'Z#`]8 Cd&"hB9R"Cl]T'""?1"B(R"`}"h"Hb#_T'5@" & "`Cd=&s"h}:"Cl`""&1"h]"tGBb@Zk"X'X'0F"X'B'R "SF\'T\'¦X'֢5B&YB:8KKC#3"?"G`B@Zk4G`' ""?$! `=¦D;"Cdݲ`"b#>_"d'"&! _=&0"&1B&24GX't ' ¦d'֢D;"6vJ'F`ݲCd$ h"3! Cl=`""&1"h]"b`'s"Gh'"G`Bhb@Zk"X'X'0F"X'Bh'R0@Fbl'SX'l'K3"?"G`B@Zk4G`'ײ@?"TGx("xB"B@Zk0@p'"p'95 "p'!05 @@?"10B4GCx("0B"B@Zk0@t'"t'9# "t'!p'0@!1 @"t'1Bt'Rbp's4`B2UB35@B3"Bx(R"GTB?"B@ZkG`B@Zk¦t'֢p'6B6QB`' ?' 9#"( (5b"`'"31"h=`B'Z#p]"?"_&R"`"GBb@Zk'G8b6 @4GG#TG"&1"Gb's"'"GGBb@Zk"X'("4G(B"0B@Zk3"4G(B"0B@Zk4GX'ײ '8""`'9"3! 9v K?&1G`=Cd=& "hB(Z#Cl]`="h]"b's"GBb@Zk"X'X'0F"X'BX'R5@B@b'spFv`>"?"G`B@Zkx'@?"TGx("B"B@Zk0@p'"p'9a "p'!05 @@?"10B4GCx("0B"B@Zk0@t'"t'9O "t'!p'0@!1 @"t'1Bt'Rbp's4`B2UB35@B>"Bx(R"GTB?"B@ZkG`B@Zk¦t'֢p'6B6QBx'HB"#"x'9">! `'3"";1"h=`x=p="?&1"`}"h"GPBXb@Zk""$ `;"Cd`"b#_"|'4G'0"'1_"2F "TG_&R"GG0B8b@Zk"TG_&R"tGBb@Zk"T'!5 @" '?"F!B 'R5@B@G8bE@ ?$! `=CdBl'R"#^`"GGGGGGBb@Zk"X'tGGPFK@""B"& s"`}Cd=&"hݲCl]?' 9#p=b'{#Ct}&"G`]"h}"p"'"GBb@Zk"X'X'0F"X'BX'R @b'sy`B `'4JJBS&YE"B3"?"G`B@Zk4G`'ײ""'#`D; Cd`"b#:_"d'"&!&0"&1B&2bd'sD;"3v`J&uF`}Cd'#hb3{#Cl}`""&1"h]"b`'s"Gh'"G`Bhb@Zk"X'X'0F"X'Bh'R0@Fbl'SX'l' 3"?"G`B@Zk4G`'ײ ?' 9#(" (!#TG"&1"Gb's"'"GGBb@Zk"X'("4G(B"0B@ZkM3"4G(B"0B@ZkF8"¦`'֢3"6vJ'F`ݲCd?& 1"h=b(s"Cl}`="h]"b's"GBb@Zk"X'X'0F"X'B"& s"`}Cd]&"hݲ1#Cl`""&1"h]"tGBb@Zk"l'X'"11?F B5+BV BX'R@  ""'1"GtGPBXb@Zk"'""'1"GtGPBXb@Zk"'B"4"h4G`}'"p"?&1"`}""GPBXb@ZkB"4 hG`b's"p}"?&1"`}""GPBXb@Zk@B"4 "&! hG`=p="?&1"`}""GPBXb@Zk""& `"`]"tGpBxb@Zk""& `"`]"tGpBxb@Zkd'35@GaB#7CF C # C#"GB_BD;R"B@ZkB"GB@Zk4"W"G?"B@ZkG`B@Zk""?'9#`=4#Cd`"b#_"'"'!"pB"GB@ZkB4R"G?"B@Zk4"G?"33B]"B@ZkG`B@Zk¦'֢B⦐'ײB"#@'"29#"7! h=`x=p"?&1"`}""GPBXb@Zk""& `"`]"tGpBxb@Zk""& `"`]"tGpBxb@Zk""`'"3! 'B4R"h=`x]p"`]"tGpBxb@Zk""$ `7"Cd`"b#_"'" & "`Cd=&s"h}1"Cl`""&1"h]"tGBb@Zk"X'1FB5 B:G4GB'2b's`'8""7"4vJ&F`Cd`"TGBb@Zk"X''b"""G4G=]"4G=TG}tG=4G=TGݶ" n=G_&R""G`Bhb@ZkGPb"" G4Gh=`"p4GxTG=TG}=TG]"G_&R"`"G`Bhb@ZkGB""4! h=4G`='"p"?&1"`}""GPBXb@ZkB"4 hG`b's"p}"?&1"`}""GPBXb@Zk@B"4 "&! hG`=p="?&1"`}""GPBXb@Zk""& `"`]"tGpBxb@Zk""& `"`]"tGpBxb@Zkd'35@GaB#7CF C # C#"GB_BD;R"B@ZkB"GB@Zk4"W"G?"B@ZkG`B@Zk""?'9#`=4#Cd`"b#_"'"'!"pB"GB@ZkB4R"G?"B@Zk4"G?"33B]"B@ZkG`B@Zk¦'֢B⦐'ײHb"'4 "d'9"D;! `'3"h`x=p="G_&R"`""GBb@Zk b""G_&R"GGBb@ZkG'"x(! &@"`Cd=&""'1"G`}"GpBxb@Zk"''uB"'1 FFtGG4GB'R@Fb's"tF@%`'F!¦'֢G8b@|'";! vH&D`Cd=b's"#~`"GGGGGGBb@Zk"X'GGcG]]}#ks"`#~x^^~cG#GG8=#_"2D A@PF4G@=@ 4GBA2AN"A1 Nq@1C0I0A0@"ABARDB_\"4F`"8FB4Fr3gJgJ4G4C"B4FR"GTB?"B@ZkG@B@Zk?"4G4C"pB"B@Zk0@A"A! @ABF "A135 B4C"B4CR"?"B@ZkG@B@Zkl""&"Hݲ4C CLH"b#_Ӡ" A#4F0 #B8F2c0CXBIZd [C_b""G_&R"GGBb@ZkcG]]}ݤ#k&.Q &J0FL. JV JF>0#~^^~޴cGGGG8]G.JJ@8}sX}XPP=H=Jb"@]C2AJ4Gh`]4Gp="x4G]TG"G_&R"`"GBb@ZkGtxb"? J"h`="G_&R"`""GBb@ZkGW?"4GJ"B"B@Zk0@?"4GJ"B"B@ZkP@J?"4GJ"`B"B@Zk"JJ"J! C?B"J" ~=J115 B0BbJs"qBh=`¦J"pݶBJZ#x]J "?&1"`}""GBb@ZkG"J!J0"J10 BBJ2G"J1"TG0B8b@Zk0@Pb""G_&R"GG@BHb@ZkcG]]}ݤ#k%.Q %J0FV#~(^0^8GG=  & "C?$P! =L C""L1"]"tGBb@Zk"KK4G]2 b"0"P"& "ݲC}?'9#=C$ C$"=" ]"GGG@BHb@Zk"KG(]0]8@#kp#~h^p^x~cGGGcH""$ 8C<=8"b#_P"lL0b"P"lL!@}8=_"H]4GP4GXTG`]"G_&R"8"GBb@ZkG*8"4GP"pLb"PBpLR"TN8CR""@]8"G_&R"8"`"G0B8b@ZkG P"pL!80P"pL10 BPBpL2PbpLsdBb""G_&R"GGBb@ZkcGh]p]x}@ SAFETY013.A]  [EVERHART.JTDEMO]JTOPNV3.OBJ_A;1.OBJ_A;2>L#kGGGGG!"GG]@Zk"]"G8]@ZkPF"X]"G8]@ZkF"]"G8]@ZkF"]"G8]@ZkF"]"G8]@ZkF"8]"G8]@ZkF"`]"G8]@ZkF"]"G8]@Zk"F"@]"G8]@Zk"F"x]"G8]@Zk"F"]"G8]@Zk"F"]"G8]@ZkGk#~^^ GG "htL"4G(B0b@Zkh"xLhtL"hBxLRR"@8"4GHBPb@Zk"! ""G]] 0#kGG H=Gkp#~h^p^x~cGGG#.#J5` J8=cB"8C0JP}H|L `GX="?&1"H}""GBb@Zk@|L"4G8B@b@Zk 0b""G_&R"G"GBb@ZkcGh]p]x}#kC.R CJQFà#~H^P^XcGG0b""L! @="TG_&R"@"GBb@ZkL "TG_&R"tGBb@Zk8cGH]P]X`#k`#~x^^~cG#GG@=8]xL4GxLGxB\MvHq JD\M4Gx\M0!H`SH D\M0Gx"LxBLR"x"`MAxdMGx"dM1&H`H DdM1TGxBdMJ`HFdMtGx"Lx"L1"xlM0xBpMxtMx"xMx|MGxB4MvHq JD4M x"4MJ`SHF4MxM x"8MxBLR"x"k  b#DFOR$WRITE_INT_FMT_XMIT< $ @( DFOR$WRITE_INT_FMT_XMIT< G DFOR$WRITE_INT_FMT< b#DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT<  G DFOR$WRITE_INT_FMT_XMIT<  b#DFOR$WRITE_INT_FMT_XMIT<  @ DFOR$WRITE_INT_FMT_XMIT,%D GP OPNCRE,&H b#OPNCRE,%L @P OPNCRE<G DFOR$WRITE_INT_FMT<b#DFOR$WRITE_INT_FMT<@ DFOR$WRITE_INT_FMT< 8GDDFOR$WRITE_INT_FMT_XMIT< <b#DFOR$WRITE_INT_FMT_XMIT< @@DDFOR$WRITE_INT_FMT_XMIT< \GhDFOR$WRITE_INT_FMT_XMIT< `b#DFOR$WRITE_INT_FMT_XMIT< d@hDFOR$WRITE_INT_FMT_XMIT< GDFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @DFOR$WRITE_INT_FMT_XMIT4<GH LIB$SPAWN4@b# LIB$SPAWN4D@H LIB$SPAWN4GOTS$STRCMP_EQLP4@OTS$STRCMP_EQLP4#G DFOR$CLOSE4$b# DFOR$CLOSE4#@ DFOR$CLOSE4  G OTS$MOVEM4 @ OTS$MOVEM4G OTS$FILL4@ OTS$FILL4'G DFOR$OPEN4(b# DFOR$OPEN4'@ DFOR$OPEN<pG|DFOR$READ_KEY_FMT<tb#DFOR$READ_KEY_FMT<x@|DFOR$READ_KEY_FMT4 GLIB$WAIT4b#LIB$WAIT4@LIB$WAIT<GDFOR$READ_KEY_FMT<b#DFOR$READ_KEY_FMT<@DFOR$READ_KEY_FMT4xGLIB$WAIT4|b#LIB$WAIT4@LIB$WAIT,GOPRMSG,b#OPRMSG,@OPRMSG<GDFOR$WRITE_INT_FMT<b#DFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT< GDFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @DFOR$WRITE_INT_FMT_XMIT< G(DFOR$WRITE_INT_FMT_XMIT<  b#DFOR$WRITE_INT_FMT_XMIT< $@(DFOR$WRITE_INT_FMT_XMIT < `GlDFOR$WRITE_INT_FMT_XMIT< db#DFOR$WRITE_INT_FMT_XMIT< h@lDFOR$WRITE_INT_FMT_XMIT4G LIB$SPAWN4b# LIB$SPAWN4@ LIB$SPAWN4 G OTS$INDEX4 @ OTS$INDEX4 G OTS$INDEX4 @ OTS$INDEX4 xG OTS$MOVEM4 |@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4 G$ OTS$INDEX4  @$ OTS$INDEX4 DGL OTS$INDEX4 H@L OTS$INDEX4 xG OTS$MOVEM4 |@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4 dGl OTS$MOVEM4 h@l OTS$MOVEM4 xG OTS$MOVEM4 |@ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 $G, OTS$MOVEM4 (@, OTS$MOVEM4 4G< OTS$MOVEM4 8@< OTS$MOVEM4 TG\ OTS$MOVEM4 X@\ OTS$MOVEM4 dGl OTS$MOVEM4 h@l OTS$MOVEM4pGxOTS$FILL4t@xOTS$FILL<GDFOR$WRITE_INT_FMT<b#DFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT< G$DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT<  @$DFOR$WRITE_INT_FMT_XMIT< <GHDFOR$WRITE_INT_FMT_XMIT< @b#DFOR$WRITE_INT_FMT_XMIT< D@HDFOR$WRITE_INT_FMT_XMIT4 |G OTS$MOVEM4 @ OTS$MOVEM4GOTS$FILL4@OTS$FILL,G JTSPAWN,b#JTSPAWN,@ JTSPAWN<GDFOR$WRITE_INT_FMT<b#DFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT< GDFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @DFOR$WRITE_INT_FMT_XMIT< GDFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @DFOR$WRITE_INT_FMT_XMIT< LGXDFOR$WRITE_INT_FMT_XMIT< Pb#DFOR$WRITE_INT_FMT_XMIT< T@XDFOR$WRITE_INT_FMT_XMIT,GOPRMSG,b#OPRMSG,@OPRMSG<`GlDFOR$WRITE_INT_FMT<db#DFOR$WRITE_INT_FMT<h@lDFOR$WRITE_INT_FMT,GOPRMSG ,b#OPRMSG,@OPRMSG4 G OTS$INDEX4 @ OTS$INDEX4 <GD OTS$INDEX4 @@D OTS$INDEX4 G OTS$MOVEM4 @ OTS$MOVEM4GOTS$FILL4@OTS$FILL4 X G` OTS$INDEX4 \ @` OTS$INDEX4  G OTS$INDEX4  @ OTS$INDEX4  G OTS$MOVEM4  @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4 !G! OTS$MOVEM4 !@! OTS$MOVEM4 !G! OTS$MOVEM4 !@! OTS$MOVEM4 "G" OTS$MOVEM4  "@" OTS$MOVEM4 "G " OTS$MOVEM4 "@ " OTS$MOVEM4 `"Gh" OTS$MOVEM4 d"@h" OTS$MOVEM4 p"Gx" OTS$MOVEM4 t"@x" OTS$MOVEM4 "G" OTS$MOVEM4 "@" OTS$MOVEM4 "G" OTS$MOVEM4 "@" OTS$MOVEM4"G"OTS$FILL4"@"OTS$FILL<,#G8#DFOR$WRITE_INT_FMT<0#b#DFOR$WRITE_INT_FMT<4#@8#DFOR$WRITE_INT_FMT< T#G`#DFOR$WRITE_INT_FMT_XMIT< X#b#DFOR$WRITE_INT_FMT_XMIT< \#@`#DFOR$WRITE_INT_FMT_XMIT< x#G#DFOR$WRITE_INT_FMT_XMIT< |#b#DFOR$WRITE_INT_FMT_XMIT< #@#DFOR$WRITE_INT_FMT_XMIT4 #G# OTS$MOVEM4 #@# OTS$MOVEM4#G#OTS$FILL4#@#OTS$FILL4\$Gh$ LIB$SPAWN4`$b# LIB$SPAWN4d$@h$ LIB$SPAWN4%G% DFOR$UNLOCK4%b# DFOR$UNLOCK4%@% DFOR$UNLOCK4$&G0& DFOR$UNLOCK4(&b# DFOR$UNLOCK4,&@0& DFOR$UNLOCK<&G&DFOR$REWRITE_FMT<&b#DFOR$REWRITE_FMT<&@&DFOR$REWRITE_FMT4&G' DFOR$UNLOCK4&b# DFOR$UNLOCK4'@' DFOR$UNLOCK4 0'G8' OTS$INDEX4 4'@8' OTS$INDEX4 'G' OTS$INDEX4 '@' OTS$INDEX4 @(GH( OTS$INDEX4 D(@H( OTS$INDEX<)G )DFOR$REWRITE_FMT<)b#DFOR$REWRITE_FMT<)@ )DFOR$REWRITE_FMT4\)Gh) DFOR$UNLOCK4`)b# DFOR$UNLOCK4d)@h) DFOR$UNLOCK 4 )G) OTS$INDEX4 )@) OTS$INDEX4 *G * OTS$INDEX4 *@ * OTS$INDEX<t+G+DFOR$WRITE_INT_FMT<x+b#DFOR$WRITE_INT_FMT<|+@+DFOR$WRITE_INT_FMT<H,GT,DFOR$WRITE_INT_FMT<L,b#DFOR$WRITE_INT_FMT<P,@T,DFOR$WRITE_INT_FMT<-G -DFOR$REWRITE_FMT<-b#DFOR$REWRITE_FMT<-@ -DFOR$REWRITE_FMT,@-GL-JTSPAWN,D-b#JTSPAWN,H-@L-JTSPAWN<-G-DFOR$READ_KEY_FMT<-b#DFOR$READ_KEY_FMT<-@-DFOR$READ_KEY_FMT<.G.DFOR$REWRITE_FMT<.b#DFOR$REWRITE_FMT<.@.DFOR$REWRITE_FMT4.G. DFOR$UNLOCK4.b# DFOR$UNLOCK4.@. DFOR$UNLOCK4/G/ DFOR$UNLOCK4/b# DFOR$UNLOCK4/@/ DFOR$UNLOCK4D/GP/ DFOR$UNLOCK4H/b# DFOR$UNLOCK4L/@P/ DFOR$UNLOCK484GD4 SYS$GETJPIW4<4b#8 SYS$GETJPIW4@4@D4 SYS$GETJPIW44G4 SYS$GETJPIW44b#8 SYS$GETJPIW44@4 SYS$GETJPIW45G5OTS$MOVE45@5OTS$MOVE486G@6OTS$STRCMP_EQLP4<6@@6OTS$STRCMP_EQLP46G6STR$MATCH_WILD46b#8STR$MATCH_WILD46@6STR$MATCH_WILD4<7GH7STR$MATCH_WILD4@7b#8STR$MATCH_WILD4D7@H7STR$MATCH_WILD4+|7G7DFOR$SECNDS_VF4,7b#8DFOR$SECNDS_VF4+7@7DFOR$SECNDS_VF,)8G8GTPRV,*8b#8GTPRV,)8@8GTPRV,18G8JGTPRVS,28b#8JGTPRVS,18@8JGTPRVS4h9Gt9 SYS$GETJPIW4l9b#8 SYS$GETJPIW4p9@t9 SYS$GETJPIW49G9 SYS$GETJPIW49b#8 SYS$GETJPIW49@9 SYS$GETJPIW4 BGB OTS$INDEX4 B@B OTS$INDEX4 BGB OTS$INDEX4 B@B OTS$INDEX<DGDDFOR$WRITE_INT_FMT<Db#8DFOR$WRITE_INT_FMT<D@DDFOR$WRITE_INT_FMT43HEGTE EXTTRNLNM44LEb#8 EXTTRNLNM43PE@TE EXTTRNLNM,-|EGESWPUIC,.Eb#8SWPUIC,-E@ESWPUIC4!EGELIB$SYS_TRNLOG4"Eb#8LIB$SYS_TRNLOG 4!E@ELIB$SYS_TRNLOG,-EGFSWPUIC,.Fb#8SWPUIC,-F@FSWPUIC4FGFOTS$MOV@ SAFETY013.A]  [EVERHART.JTDEMO]JTOPNV3.OBJ_A;1.OBJ_A;2>E4F@FOTS$MOVE</GGGDFOR$READ_INT_FMT<0Gb#8DFOR$READ_INT_FMT</G@GDFOR$READ_INT_FMT</dGGpGDFOR$READ_INT_FMT<0hGb#8DFOR$READ_INT_FMT</lG@pGDFOR$READ_INT_FMT4 $IG,I OTS$INDEX4 (I@,I OTS$INDEX4 IGI OTS$MOVEM4 I@I OTS$MOVEM4IGIOTS$FILL4I@IOTS$FILL4 IGI OTS$INDEX4 I@I OTS$INDEX4 JG J OTS$MOVEM4 J@ J OTS$MOVEM4$JG,JOTS$FILL4(J@,JOTS$FILL4 @JGHJ OTS$INDEX4 DJ@HJ OTS$INDEX4 JGJ OTS$INDEX4 J@J OTS$INDEX4db# DFOR$DELETE4=d@e DFOR$DELETE4eG e DFOR$UNLOCK4eb# DFOR$UNLOCK4e@ e DFOR$UNLOCK4eGe LIB$SPAWN4eb# LIB$SPAWN4e@e LIB$SPAWN43TfG`f EXTTRNLNM44Xfb# EXTTRNLNM43\f@`f EXTTRNLNM4fGfOTS$FILL4f@fOTS$FILL4IgGgLIB$FID_TO_NAME4Jgb#LIB$FID_TO_NAME4Ig@gLIB$FID_TO_NAME4hG hOTS$FILL4h@ hOTS$FILL4hhGth SYS$GETJPIW4lhb# SYS$GETJPIW4ph@th SYS$GETJPIW4EhGhOTS$STRCMP_LEQS4Eh@hOTS$STRCMP_LEQS4EhGhOTS$STRCMP_LEQS4Eh@hOTS$STRCMP_LEQS<CiGiSYS$CHECK_ACCESS<Dib#SYS$CHECK_ACCESS<Ci@iSYS$CHECK_ACCESS4!iGiLIB$SYS_TRNLOG4"ib#LIB$SYS_TRNLOG4!i@iLIB$SYS_TRNLOGDGiGiLIB$CVT_FROM_INTERNAL_TIMEDHib#LIB$CVT_FROM_INTERNAL_TIMEDGi@iLIB$CVT_FROM_INTERNAL_TIMEDGjGjLIB$CVT_FROM_INTERNAL_TIMEDH jb#LIB$CVT_FROM_INTERNAL_TIMEDGj@jLIB$CVT_FROM_INTERNAL_TIME<\jGhjDFOR$WRITE_INT_FMT<`jb#DFOR$WRITE_INT_FMT<dj@hjDFOR$WRITE_INT_FMT<jGjDFOR$WRITE_INT_FMT<jb#DFOR$WRITE_INT_FMT<j@jDFOR$WRITE_INT_FMT<jGkDFOR$WRITE_INT_FMT<jb#DFOR$WRITE_INT_FMT<j@kDFOR$WRITE_INT_FMT< kG(kDFOR$WRITE_INT_FMT_XMIT<  kb#DFOR$WRITE_INT_FMT_XMIT < $k@(kDFOR$WRITE_INT_FMT_XMIT< DkGPkDFOR$WRITE_INT_FMT_XMIT< Hkb#DFOR$WRITE_INT_FMT_XMIT< Lk@PkDFOR$WRITE_INT_FMT_XMIT4 kGk OTS$MOVEM4 k@k OTS$MOVEM4 kGk OTS$MOVEM4 k@k OTS$MOVEM4 kGk OTS$MOVEM4 k@k OTS$MOVEM4kGkOTS$FILL4k@kOTS$FILL4,lG4lOTS$MOVE40l@4lOTS$MOVE4 DlGLl OTS$MOVEM4 Hl@Ll OTS$MOVEM4 dlGll OTS$MOVEM4 hl@ll OTS$MOVEM4plGxlOTS$FILL4tl@xlOTS$FILL<lGlDFOR$WRITE_INT_FMT<lb#DFOR$WRITE_INT_FMT<l@lDFOR$WRITE_INT_FMT< mG mDFOR$WRITE_INT_FMT_XMIT< mb#DFOR$WRITE_INT_FMT_XMIT< m@ mDFOR$WRITE_INT_FMT_XMIT< (mG4mDFOR$WRITE_INT_FMT_XMIT< ,mb#DFOR$WRITE_INT_FMT_XMIT< 0m@4mDFOR$WRITE_INT_FMT_XMIT< tmGmDFOR$WRITE_INT_FMT_XMIT< xmb#DFOR$WRITE_INT_FMT_XMIT< |m@mDFOR$WRITE_INT_FMT_XMIT4!mGnLIB$SYS_TRNLOG4"nb#LIB$SYS_TRNLOG4!n@nLIB$SYS_TRNLOG,xnGnJTSPAWN,|nb#JTSPAWN,n@nJTSPAWN4'nGo DFOR$OPEN4(ob# DFOR$OPEN4'o@o DFOR$OPEN4'loGxo DFOR$OPEN4(pob# DFOR$OPEN4'to@xo DFOR$OPEN<oGoDFOR$WRITE_INT_FMT<ob#DFOR$WRITE_INT_FMT<o@oDFOR$WRITE_INT_FMT<pGpDFOR$WRITE_INT_FMT< pb#DFOR$WRITE_INT_FMT<p@pDFOR$WRITE_INT_FMT<TpG`pDFOR$WRITE_INT_FMT<Xpb#DFOR$WRITE_INT_FMT<\p@`pDFOR$WRITE_INT_FMT< |pGpDFOR$WRITE_INT_FMT_XMIT< pb#DFOR$WRITE_INT_FMT_XMIT< p@pDFOR$WRITE_INT_FMT_XMIT< pGpDFOR$WRITE_INT_FMT_XMIT< pb#DFOR$WRITE_INT_FMT_XMIT< p@pDFOR$WRITE_INT_FMT_XMIT4 qG q OTS$MOVEM4 q@ q OTS$MOVEM4 qGq OTS$MOVEM4 q@q OTS$MOVEM4 0qG8q OTS$MOVEM4 4q@8q OTS$MOVEM44 qGq OTS$MOVEM4 q@q OTS$MOVEM4qGqOTS$FILL 4q@qOTS$FILL<MXrGdrDFOR$WRITE_SEQ_FMT<N\rb#DFOR$WRITE_SEQ_FMT<M`r@drDFOR$WRITE_SEQ_FMT4#rGr DFOR$CLOSE4$rb# DFOR$CLOSE4#r@r DFOR$CLOSE,?rGrDELDO,@rb#DELDO,?r@rDELDO4sGs LIB$SPAWN4sb# LIB$SPAWN4s@s LIB$SPAWN4  uG(u OTS$MOVEM4 $u@(u OTS$MOVEM4,uG4uOTS$FILL40u@4uOTS$FILL4 HuGPu OTS$INDEX4 Lu@Pu OTS$INDEX4 uGu OTS$MOVEM4 u@u OTS$MOVEM4uGuOTS$FILL4u@uOTS$FILL4 DvGLv OTS$MOVEM4 Hv@Lv OTS$MOVEM4PvGXvOTS$FILL4Tv@XvOTS$FILL<vGwDFOR$WRITE_INT_FMT<vb#DFOR$WRITE_INT_FMT<w@wDFOR$WRITE_INT_FMT< wG(wDFOR$WRITE_INT_FMT_XMIT<  wb#DFOR$WRITE_INT_FMT_XMIT< $w@(wDFOR$WRITE_INT_FMT_XMIT< @wGLwDFOR$WRITE_INT_FMT_XMIT< Dwb#DFOR$WRITE_INT_FMT_XMIT< Hw@LwDFOR$WRITE_INT_FMT_XMIT<wGwDFOR$WRITE_INT_FMT<wb#DFOR$WRITE_INT_FMT<w@wDFOR$WRITE_INT_FMT< wGwDFOR$WRITE_INT_FMT_XMIT< wb#DFOR$WRITE_INT_FMT_XMIT< w@wDFOR$WRITE_INT_FMT_XMIT< wGwDFOR$WRITE_INT_FMT_XMIT< wb#DFOR$WRITE_INT_FMT_XMIT< w@wDFOR$WRITE_INT_FMT_XMIT4xGx LIB$SPAWN4xb# LIB$SPAWN4x@x LIB$SPAWN4'zGz DFOR$OPEN4(zb#X DFOR$OPEN4'z@z DFOR$OPEN<7zGzDFOR$READ_SEQ_FMT<8zb#XDFOR$READ_SEQ_FMT<7z@zDFOR$READ_SEQ_FMT4 {G{ OTS$INDEX4 {@{ OTS$INDEX4 ${G,{ OTS$INDEX4 ({@,{ OTS$INDEX4 L{GT{ OTS$INDEX4 P{@T{ OTS$INDEX</{G{DFOR$READ_INT_FMT<0{b#XDFOR$READ_INT_FMT</{@{DFOR$READ_INT_FMT4#|G| DFOR$CLOSE4$|b#X DFOR$CLOSE4#|@| DFOR$CLOSE4'}G} DFOR$OPEN4(}b# DFOR$OPEN4'}@} DFOR$OPEN<7~G ~DFOR$READ_SEQ_FMT<8~b#DFOR$READ_SEQ_FMT<7~@ ~DFOR$READ_SEQ_FMT4 <~GD~ OTS$INDEX4 @~@D~ OTS$INDEX 4 `~Gh~ OTS$INDEX4 d~@h~ OTS$INDEX4 ~G~ OTS$INDEX4 ~@~ OTS$INDEX</ G,DFOR$READ_INT_FMT<0$b#DFOR$READ_INT_FMT</(@,DFOR$READ_INT_FMT,OhGtVBSET,Plb#VBSET,Op@tVBSET4#G DFOR$CLOSE4$b# DFOR$CLOSE4#@ DFOR$CLOSE4!XGdLIB$SYS_TRNLOG4"\b# LIB$SYS_TRNLOG4!`@dLIB$SYS_TRNLOG4QGLIB$SET_LOGICAL4Rb# LIB$SET_LOGICAL4Q@LIB$SET_LOGICAL4'Ǵ DFOR$OPEN4(āb#` DFOR$OPEN4'ȁ@́ DFOR$OPEN<74G@DFOR$READ_SEQ_FMT<88b#` DFOR$READ_SEQ_FMT<7<@@DFOR$READ_SEQ_FMT4#G DFOR$CLOSE4$b#` DFOR$CLOSE4#@ DFOR$CLOSE4GOTS$FILL4@OTS$FILL4GOTS$MOVE4 @OTS$MOVE4(G0OTS$MOVE4,@0OTS$MOVE4HGPOTS$MOVE4L@POTS$MOVE4hGpOTS$MOVE4l@pOTS$MOVE4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4ȃGЃOTS$MOVE4̃@ЃOTS$MOVE4GOTS$MOVE4@OTS$MOVE4 GOTS$MOVE4@OTS$MOVE40G8OTS$MOVE44@8OTS$MOVE4TG\OTS$MOVE4X@\OTS$MOVE4xGOTS$MOVE4|@OTS$MOVE,SḠJTGLMSK,TĄb#H JTGLMSK,SȄ@̄JTGLMSK4UG DFOR$EXIT4Vb#H DFOR$EXIT4U@ DFOR$EXIT</GDFOR$READ_INT_FMT<0b# DFOR$READ_INT_FMT</@DFOR$READ_INT_FMT,WGKGETKI,Xb# KGETKI,W@KGETKI<MDGPDFOR$WRITE_SEQ_FMT<NHb# DFOR$WRITE_SEQ_FMT<ML@PDFOR$WRITE_SEQ_FMT45̆G؆ DFOR$INQUIRE46Іb# DFOR$INQUIRE45Ԇ@؆ DFOR$INQUIRE4G DFOR$UNLOCK4b# DFOR$UNLOCK4@ DFOR$UNLOCK,K$G0MYMODE,L(b#8 MYMODE,K,@0MYMODE 4 G OTS$MOVEM4  @ OTS$MOVEM4GOTS$FILL4@OTS$FILL4 0G8 OTS$INDEX4 4@8 OTS$INDEX4 G OTS$MOVEM4 @ OTS$MOVEM4GOTS$FILL4@OTS$FILL4 ,G4 OTS$MOVEM4 0@4 OTS$MOVEM48G@OTS$FILL4<@@OTS$FILL<GDFOR$WRITE_INT_FMT<b#8 DFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT< GDFOR$WRITE_INT_FMT_XMIT< b#8 DFOR$WRITE_INT_FMT_XMIT<  @DFOR$WRITE_INT_FMT_XMIT<lGxDFOR$WRITE_INT_FMT<pb#8 DFOR$WRITE_INT_FMT<t@xDFOR$WRITE_INT_FMT< GDFOR$WRITE_INT_FMT_XMIT< b#8 DFOR$WRITE_INT_FMT_XMIT< @DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT< b#8 DFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT< ,G8DFOR$WRITE_INT_FMT_XMIT< 0b#8 DFOR$WRITE_INT_FMT_XMIT< 4@8DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT<b#8 DFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT< GčDFOR$WRITE_INT_FMT_XMIT< b#8 DFOR$WRITE_INT_FMT_XMIT< @čDFOR$WRITE_INT_FMT_XMIT<dGpDFOR$WRITE_INT_FMT<hb#8 DFOR$WRITE_INT_FMT<l@pDFOR$WRITE_INT_FMT< GDFOR$WRITE_INT_FMT_XMIT< b#8 DFOR$WRITE_INT_FMT_XMIT< @DFOR$WRITE_INT_FMT_XMIT<GDFOR$WRITE_INT_FMT<b#8 DFOR$WRITE_INT_FMT<@DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT_XMIT< b#8 DFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT,AGFIXFID,Bb#8 FIXFID,A@FIXFID4,G8 SYS$GETJPIW40b#8 SYS$GETJPIW44@8 SYS$GETJPIW4GOTS$STRCMP_EQLP4@OTS$STRCMP_EQLP4 G$ OTS$MOVEM4  @$ OTS$MOVEM4(G0OTS$FILL4,@0OTS$FILL4!GȒLIB$SYS_TRNLOG4"b#8 LIB$SYS_TRNLOG4!Ē@ȒLIB$SYS_TRNLOG4TG\OTS$FILL4X@\OTS$FILL4G SYS$GETJPIW4b#8 SYS$GETJPIW4@ SYS$GETJPIW4E4G<OTS$STRCMP_LEQS4E8@<OTS$STRCMP_LEQS4EPGXOTS$STRCMP_LEQS 4ET@XOTS$STRCMP_LEQS<CДGܔSYS$CHECK_ACCESS<DԔb#8 SYS$CHECK_ACCESS<Cؔ@ܔSYS$CHECK_ACCESS4!ؕGLIB$SYS_TRNLOG4"ܕb# LIB$SYS_TRNLOG4!@LIB$SYS_TRNLOG4XG`OTS$MOVE4\@`OTS$MOVE4hGpOTS$FILL4l@pOTS$FILL4GOTS$MOVE4@OTS$MOVE4 G OTS$INDEX4 @ OTS$INDEX4 ؖG OTS$MOVEM4 ܖ@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4 <GD OTS$MOVEM4 @@D OTS$MOVEM4HGPOTS$FILL4L@POTS$FILL4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4GOTS$FILL4 @OTS$FILL4 ,G4 OTS$MOVEM4 0@4 OTS$MOVEM4 <GD OTS$MOVEM4 @@D OTS$MOVEM4HGPOTS$FILL4L@POTS$FILL4'G( DFOR$OPEN4( b# DFOR$OPEN4'$@( DFOR$OPEN4'G DFOR$OPEN4(b# DFOR$OPEN4'@ DFOR$OPEN4(G0OTS$MOVE4,@0OTS$MOVE4<GDOTS$MOVE4@@DOTS$MOVE<GDFOR$READ_KEY_FMT<b# DFOR$READ_KEY_FMT<@DFOR$READ_KEY_FMT<MGDFOR$WRITE_SEQ_FMT<Nb# DFOR$WRITE_SEQ_FMT<M@DFOR$WRITE_SEQ_FMT<G DFOR$REWRITE_FMT<b# DFOR$REWRITE_FMT<@ DFOR$REWRITE_FMT<tGDFOR$READ_KEY_FMT<xb# DFOR$READ_KEY_FMT<|@DFOR$READ_KEY_FMT4ĜGМLIB$WAIT4Ȝb# LIB$WAIT4̜@МLIB$WAIT45(G4 DFOR$INQUIRE46,b# DFOR$INQUIRE450@4 DFOR$INQUIRE4TG` DFOR$UNLOCK4Xb# DFOR$UNLOCK4\@ SAFETY013.A]  [EVERHART.JTDEMO]JTOPNV3.OBJ_A;1_A;29h)>@` DFOR$UNLOCK4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE<GDFOR$READ_KEY_FMT<b# DFOR$READ_KEY_FMT< @DFOR$READ_KEY_FMT4TG`LIB$WAIT4Xb# LIB$WAIT 4\@`LIB$WAIT4 G OTS$MOVEM4  @ OTS$MOVEM4GOTS$FILL4@OTS$FILL<MGDFOR$WRITE_SEQ_FMT<Nb# DFOR$WRITE_SEQ_FMT<M@DFOR$WRITE_SEQ_FMT<GDFOR$REWRITE_FMT<b# DFOR$REWRITE_FMT<@DFOR$REWRITE_FMT4@GHOTS$MOVE4D@HOTS$MOVE4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE<GDFOR$READ_KEY_FMT<b# DFOR$READ_KEY_FMT<@DFOR$READ_KEY_FMT4`GlLIB$WAIT4db# LIB$WAIT4h@lLIB$WAIT4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE<pG|DFOR$READ_KEY_FMT<tb# DFOR$READ_KEY_FMT<x@|DFOR$READ_KEY_FMT4G̣LIB$WAIT4ģb# LIB$WAIT4ȣ@̣LIB$WAIT4xGOTS$MOVE4|@OTS$MOVE4GOTS$MOVE4@OTS$MOVE<GDFOR$READ_KEY_FMT<b# DFOR$READ_KEY_FMT<@DFOR$READ_KEY_FMT4HGTLIB$WAIT4Lb# LIB$WAIT4P@TLIB$WAIT<ԥGDFOR$REWRITE_FMT<إb# DFOR$REWRITE_FMT<ܥ@DFOR$REWRITE_FMT4GȦ LIB$SPAWN4b# LIB$SPAWN4Ħ@Ȧ LIB$SPAWN48G@OTS$MOVE4<@@OTS$MOVE4[G OTS$DIV_I4\v# OTS$DIV_I4[@ OTS$DIV_I4YħGЧ OTS$DIV_L4Zȧv# OTS$DIV_L4Y̧@Ч OTS$DIV_L4YG OTS$DIV_L4Zv# OTS$DIV_L4Y@ OTS$DIV_L4YG OTS$DIV_L4Zv# OTS$DIV_L4Y@ OTS$DIV_L4Y8GD OTS$DIV_L4Z<v# OTS$DIV_L4Y@@D OTS$DIV_L4Y`Gl OTS$DIV_L4Zdv# OTS$DIV_L4Yh@l OTS$DIV_L4Y(G4 OTS$DIV_L4Z,t#` OTS$DIV_L4Y0@4 OTS$DIV_L4YPG\ OTS$DIV_L4ZTt#` OTS$DIV_L4YX@\ OTS$DIV_L, , 4YG OTS$DIV_L4Zt#` OTS$DIV_L4Y@ OTS$DIV_L4YG̬ OTS$DIV_L4ZĬt#` OTS$DIV_L4YȬ@̬ OTS$DIV_L45G DFOR$INQUIRE46b# DFOR$INQUIRE45@ DFOR$INQUIRE4G$ DFOR$UNLOCK4b# DFOR$UNLOCK4 @$ DFOR$UNLOCK45PG\ DFOR$INQUIRE46Tb# DFOR$INQUIRE45X@\ DFOR$INQUIRE4|G DFOR$UNLOCK4b# DFOR$UNLOCK4@ DFOR$UNLOCK4 G OTS$INDEX4 @ OTS$INDEX4 ıG̱ OTS$MOVEM4 ȱ@̱ OTS$MOVEM4бGرOTS$FILL4Ա@رOTS$FILL4G OTS$MOVE4@ OTS$MOVE4 0G8 OTS$MOVEM4 4@8 OTS$MOVEM4<GDOTS$FILL4@@DOTS$FILL<GDFOR$READ_KEY_FMT<b# DFOR$READ_KEY_FMT<@DFOR$READ_KEY_FMT4G DFOR$UNLOCK4b# DFOR$UNLOCK4 @ DFOR$UNLOCK4(G0OTS$MOVE4,@0OTS$MOVE4<GDOTS$MOVE4@@DOTS$MOVE4TG\OTS$MOVE4X@\OTS$MOVE4]ܳG SYS$ASSIGN4^b# SYS$ASSIGN4]@ SYS$ASSIGN4_TG`SYS$QIOW4`Xb# SYS$QIOW4_\@`SYS$QIOW<MGDFOR$WRITE_SEQ_FMT<Nb# DFOR$WRITE_SEQ_FMT<M@DFOR$WRITE_SEQ_FMT4G DFOR$UNLOCK4b# DFOR$UNLOCK4@ DFOR$UNLOCK =X(8;=;=A(=H<8       2 3   Ah=S(p=R(x= GCY$PARAND=88  8 ;= 8=Z(= 88888JTSPAWN=8 =8 8888;; LIB$SPAWN=8 = =)( ;= 8=8@ DFOR$WRITE_INT_FMT8OTS$FILL`( DFOR$WRITE_INT_FMT_XMIT; ;=0;=P8 7 DFOR$HANDLER=$;8 OTS$MOVEM;8 OTS$INDEX==  DFOR$UNLOCK;==\ DFOR$REWRITE_FMT DFOR$READ_KEY_FMT ;@OPRMSG= 8 8 `STR$MATCH_WILD8OTS$STRCMP_EQLP SYS$GETJPIWLIB$WAIT= 8OTS$MOVE=@!LIB$SYS_TRNLOG= <#>=88  88 p ;# DFOR$CLOSE=0" ** WARNING** File ACE missing **@%OPNCRE' DFOR$OPEN=(*JTAUTHMAINT.EXE*|=:= 0/;==(=I(;= LNM$PROCESS_TABLE=U()GTPRV+DFOR$SECNDS_VF=B( -SWPUIC=L(8=0p1;=,< 7 DFOR$HANDLER=;=K( /DFOR$READ_INT_FMT1JGTPRVS=aF8 3 EXTTRNLNM=V(=J(=0(H;= `$< ,=&== 0K;==0L;=4 7 DFOR$HANDLER= ;=8,8     9 8 5 DFOR$INQUIRE 7DFOR$READ_SEQ_FMT= ;=0 P;=@ 9SYS$OPEN; SYS$CONNECT;= 0Q;= = DFOR$DELETE= GCY$DELNOW@=( 8      ?DELDO= GCY$DELSAVAFIXFID=8/8  gce$delseq:delrecs.seq=.SAV CSYS$CHECK_ACCESS===0@R;=,< 7 DFOR$HANDLER=$ $ 8OTS$STRCMP_LEQS=88=888(GLIB$CVT_FROM_INTERNAL_TIME ILIB$FID_TO_NAME= delsav:pKMYMODE= GCY$DELMNT=0$8       =88 MDFOR$WRITE_SEQ_FMT=88=($@gcy$sys:dps_process_deletes= GCY$DELFAL=0x t;=$ 7 DFOR$HANDLER== 0x;==0y;=4 7 DFOR$HANDLER= (=(8     = 8   =0|;=0| 7 DFOR$HANDLER=OVBSET=0(;=(@ EACF_LE$$0 =T@  QLIB$SET_LOGICAL= LNM$SYSTEM` =0h;=( 7 DFOR$HANDLER=0$8     =Term or accpor not permit Terminal on forbid list File password not entered User on forbid. user list Time of Day Access reject Image on forbid. img list = 0Ȃ;=User not on permit list Image not on permit list Privs too high for access File tamper checksum fail User filter routine rejct Accport on forbid list =0;=0 p SJTGLMSK=L U DFOR$EXIT= 0H;==0hd;=$ 7 DFOR$HANDLER=  WKGETKI=0H;=`  7 DFOR$HANDLER=#=0x(;=( 7 DFOR$HANDLER= ; ;=_FIL ` ;=. =GCY$NOMyDefChk ;=0(0;=p4 7 DFOR$HANDLER=;= = GCY$CM:NTREGIST.REG =_USR  ; ;=0;=0 @ Y OTS$DIV_L[ OTS$DIV_I=0l;=  =0H;=`  7 DFOR$HANDLER==0;=$ 7 DFOR$HANDLER= $ ] SYS$ASSIGN_SYS$QIOWI I=910 OPNFILTDigital Fortran 77 T7.1-61d d= 44= OPNFILT4=rȐ ܠ< ج( Ȕ    $ $ < <( WȔ഼̼ T  ഼̼ Tؼ z b иH 5 5j$ 9 9 K K J J N 4  $ $= L4: :=@ SAFETY013.A]  [EVERHART.JTDEMO]JTOPNV3.OBJ_A;1_AXP6;10AU  `/4= / = /44= GETID/4=>65 l x H $ $= /4: := |14=  = 1484= CHKAC14=JB Ȑ vܠȁ  0 0>@ 8ܬ  H V($ $= 14: := H4= 8 = H44= ITMCHKH4=.&% ]lؘ$W$ $=  I4: := K4= 8 = K44= IVLENK4=3+*    G$ $= L4: := L4=  = L44= FILCKL4=_WV      0 $ $= (M4: := LP4=  = P44= IUFCKP4=3+* / !$ $= P4: := Q4= X = Q44= GTXABQ4=  !$ $= Q4: := 8R4= \ = @R44= DELFILT@R4=TL ; , ?ج̄ ?  >? >? >? G? G? G? l? l? v? ? ? ? ? ?Ȱ ?O @̠0 @̠F D@ D@ I@ I@( ? $ $= xR4: := s4= ! =  t44= EXTFILT t4=]UT h@, @ج @ @̜ @ $ $= Dt4: := x4=  = x4@4= GETPVx4=' @ @$ $= x4: := y4=  = y4X4= GETFNMy4==54 @ 0 @$ $= z4: := |4= < = |44= GETFNB|4=@87 @ , @$ $= L}4: := 4=  = 4 4=LOGLATCH4=! A$ $= 4: := 4= , = 4` 4= GETEXF4=*"! A  0A$$ $= H4: := 4=  = Ȃ4p 4= RJ2ASCȂ4=$ :A#$ $= 4: := 4=  = 4H 4= IGETCAP4=' NA$ $= 4: := 04= z z= H4 4= SETCAP1H4= pA$ $= P4: := \4=  = d4 4= KGETKSd4=% wA wA$ $= 4: := P4= { {= 4 4= TSTULK4= A$ $= 4: :=  4= } }= (48 4= CREFILT(4= A , Dج̄ D Ё DD D9 D E E E$ D $ $= h4: := 4= = == 04 4=MYDEFCHK04= %E E F F F F F F F F F 2F PF PF PF$ jF F F F F F FM F F F F F F0$ $= 4: := Ԧ4=  = 4 4= CPYDEF4=RJI F( F( G  G$ $= ,4: := P4= h = l4` 4= CHKACLl4=JBA G1$ kG dG$ $= 4: := 4= 4| |= 4 4= TSTU124= }G$ $= Į4: := 4=  = 4 4= FILCRE4=~ G K K K0 K K $ $= 4: := 4= , =  0 *[EVERHART.JTDEMO]JTOPRMSG.OBJ;75+,^. / 4 r- 0123 KPWO56`7x89GHJ1OPRMSG0115-Sep-1996 16:15DEC Fortran V6.1-68 OPRMSG OPRMSGPP[}PQPk\ISYS$DISK:$MK<>P<I<SA()GCEVP P`  8 X  $Ldae@ X!nPnDpDpp,D@` @  crtwy0wDL   ||w      t8tN@4<PX@lHP PD D8PP\[^˜˞ޫ ˠޫˤ˨˪ޫˬ˰˴˸˼,n ԫˤ),kL LL\\ 1Lq1yLQ1n(PLˬPV,I FVV\,\ˬ PˬVV\,\FL F{PVL(1vVVVM`߫6߫,߫"+ǏRzS{SUUxRRRRUP1n, PAVˬP1A$4P , ˬ P@,@ @@_,A @lyPP,P@ @xPV\\VQQQTTRB@9\TTPPVV˄@@ˈ˄߫$T,T@ @ի1˔P\\V,V@ \V,VL@ @ˠ&PV,V@ "t˔cVˬ˰ˬMݫ$7Dի1˼[P\,\@@ @=PV,V@@ @PV,V@ tݫVݫ$5P@tP1!~~\q|W\PRRSS4P(Prԭ ˤ˦ԭ˨˪X`=P, Xt"P XXQAˈ PR[RQQSS˔AF˘ˤRPPRPUU,RRPP˰BF˴˸0˜4˞PS1խ1SQQTTAFnSPPσ SSPPCF*?d  XXYYZ2ˠ2ˢ2˨2˪^(n~XXZ,n ZHPQ^YX PWWZ1խ1W\\QQ,LF0<WPP=WWPPHGFLH^?d@=PFXXYY\2ˠ2ˢ2˨2˪^(n~XX\T,n THPQ^YXZD\;\WW^(WLFnWYZZ^(ZFnZVYVW,Wn FPQ^1lP1խzw^@F|x߫8Ybի8Hѫ8Bë8ZZˠˢˀR2˨2˪XZ~~XR(nBQ^X XWXIW W,X WHHH ˔˘˜P˸ ЫV_fZWjX1XPYeYWW@QXRQGbeYTPTT@UXVU^(UDfn^S\YY^(YXnYW\WV,Vn @XPQ^X PY)~X^(XnX\\VA(~VXY^(YXnY\X\W,Wn @XPQ^ѭ|խ|lqLyP[ЬЬ,(PRR"QAP`409RP[}PQRRQPPQAQQ PR|h[}PQмR޼ P`޼QaSR1STDT`UTUU`aVTVVaUU`VVaRS[}PQPмRPR RQPQSSTDTT RPSPPjPЪQiRЩSSPRQkP̫Q̏RP̏lQPQxPPPQRQQ<QQnQxQQSQQn<QQn nQQ QQnЎQЎPPQhЬ[ЬZЬ YЬXtP<ЬRТ(SЬT$SЃ< }0PP(ЎPrfd,[0TWsmNW|~\|~H<2~<r?RЬ Q(ab,@?XX|~|~<2~< ~ PIB1XX|~|~<6~<~ fX_)X|~Q|~A<6~8 0A()8 I8  9  \Dev:file or (n,s,v)>`SYS$DISK( pP8       2 3   88P<00@ @`0 (  ""@ SAFETY013.Af ![EVERHART.JTDEMO]JTRPLACE.EXE_A;3X5;7;10- >00H 0lR0 / ""0 @@< "08 / ""026M76M76 JTD$DB:OPHHW.GDB76 JTD$DB:OPWHW.GDB76\76V7#4G~^^~޴ >(^0~8@H޵PXcGG0{HB"0@B G CZk4GBGBZk=&0" H0_&"0¤d"R"E h!"#0J84WJ@_Gla"0B'cEBXB{#& @}s"Dݰ @"H}H="HR"LG`bG LcZk0G8BGTGH GDZkBGBZkG.JBG8G 8 G B4GTGB"uIZk0@0G@BGx GBZkC0B"@B4G!GBZk4GBG]BZk!1@ 8BGGGGCZkGBRBZk 8BTG6BGGGTBGTGCZkGBDBZk4GG91 @@1Q @.@GJ:q @B.@0BGJB.0BGJB ! @@0Bu.GuJdB`0B7#?G0b GX)1 AB)1 AH Hݴ)!I@=p;"P=?&b"1"B"@}"GQZk0¤"B(""b@]"t&!@=tG"TZkBx&!@="b""@]"tGTZk? x&#I!ED AHX pt& H0B&x&BqS Jpa Hb vH0"R"8B1D0" D"@'R"DP#)!HS@"L=|1"@bH]"tGz}Zk|ƠGGG-)!IHB4G"4G@=TGP_&X=tG`ݴR"h"bb"@"GvZk"B_&btGR"b"GGdxZkB4GGGxB"HZk0"0@0GG| "8BGCZkBGAZk'0¤P#@4G0G Dݰ#Bb@]"G\"GG@ZkG0"0b8Bdc GGGBZkGBpAZkGC"GD D@BAZk4GBGcAZkB4GGGxB"aHZk0@ 8B 1@GGGGBZkBGQAZk4GG_'1 Cg@G.GJB5Q Cu@0CP.GPJDB@3q Cs@0Ct/GtKdC `9 Cy@0C.GJB0C"GG!1@4GB0 @a@4GPB"PEZk*B81 @0Bx@G4GPB"GEZk9Q @ B0By@G4GPB">EZkB8q @0Bx@G4GPB"5EZk0B#! @B0 @a@4GPB"*EZk0B6#!1 @?0B)1B0B'@Bi@H'H@H_%r"P}J!b "GB"@}"GGPZk0G8BGGh GZBZkBG@Zk4G0"GGB")!t BGZk0"0@8B81@G(! 9 CGGGGBBZkBG@ZkG8BGGTBGG7BZkGB@Zk4GG81Bx@1QB.q@GJ:qBB.0BGJBz@0B;/GG;K$C 7Bw@0Bu.GuJdB`0B#G08B GGH!GGGBZkBG}@Zk_%B?#H=J!@=GX= "b"PGB"@}"G,yZkXB+aIH"`b""@}@]"tGv{Zk0"XB""`b@]"!@tGl{Zk0b4GGGhB"{BSGZk0@8BG9CGGGTBGGAZkBGA@Zk4GBGGB"?GZk0@8B8CGG 4GGGTBGGAZkGB,@Zk!1 Ca@G,3q C 0AH 0A@5Q Cu@GP. 0A 0APJ "DB@s@Gt/GtKdC `9 Cy@G,H@G0b8B GGHk!GGGAZkBGZk_%0"BJ!H=8"@ݶh #P="bGB"@}"GxZkXB,IH}"`b""@@]"tGzZk0b"XB""`b@]"c @}tGzZk 4G +1`@+A2Q`@.2AGJ 0AB.G 0A 0AJ 0AB6q`@6A#`@7/#AG7KG$C ,GH@, ?G4GH} GP}GX0J@}tG=Gx 4G}TG"@_"$@=#c B"]TG}G=xb"Gx"b`tZk%8! G_0¥4G<!hB"!Hݵ@}TGPGX=b"`@"hP"pbGQiZkD@" DB4Gb@QZkG<0" G 4G()()!pSJ0B vHB!>HB"F D G0*0J!1>J*TGLFZk0@@ @BGB"4GZkB4GG<Zk4G@B4GTGGB"8FZk0@ @TG0A@C@8 .q!KPJF>BTGTGGB"$FZk%0@%!*B0CTG19@4GAhB"FZk@P@0B,@0b81C @CD 0AD @HALH"0D="R"s"@00L 4G  :v@K!>HpSJF:D BTGTGGB"EZk0@Z4GXB0CTG19@AhB"EZk@0P@B81Cb @A HP=H `GX]d""GpB"H}"GzNZk09GGb#G"GGD<@B"0¦4G @!H@B"$H0H H&H6HJ0AHA /1A`"~ZkG@BG~ZkH"@B4G`]"~Zk0"8B8BGG9#GBH]"4G@ZkGB~Zk@BTGTGGhB"EZk0@GzyB0@TG1C4GAhB"EZk@$1@BP@bAP= @0 HHG `d"X]"GpB"H}"GNZkG0XGGb#G"G;@0¦*@]0H"@B H1&H0@B@]!$HJH&J&H6BB 681@B`"8B"4G~ZkG@BG~ZkH"@B4G`]"~Zk09B8BG=A GBGH]"4GZkBG+~ZkB@GD 61A8BGTGtGB @/CGGGTBGZkBG~ZkTGBTGGhB"EZk0@GB4GTGGB" EZk0@UT0BAPTGH/ bp"X="GB"H}"GMZkGB0"G0G AA"E8G'@ 1#vHG 1"b#!>HaD1_;@X"JB"04G@(FI@B*DI!0@IEHFI @@L~Zk@BH]"4G~Zk@BGG ~Zk@BP"GX]"~Zk$1@0"G@BP]"G)!GB}Zk@@} "@&0"8B7JEV'?DGC#!!@!BŶ@GGZkGB}Zk-HI=!,GH< Y-JGIG=0BH" b8="|GGG E AH}GLݰGzZkGG8="b#GtG^=@B4G8bzZkTG0@?"@B"-!0/B"d"cDZk0@0B*1@@!!A1A4Gd"B"VDZk@8Bd "GP@A B.A#g@dL"GGTBG~ZkGB@}Zk 4G@ 0&1@ G @d8#d8-G9I$A /Q@@d( d. 0`A GJB7q@@dG!dg, 0`A GjHd@ `$@ @d d- 0`A GIA 0`A"G@}04G yC"<CGGG<CG8BGGGGGG~Zk8BB"G~Zk@BGGGC}ZkTG@8B<6@GGGGB"Gp~Zk8BGGl~Zk<@_!8B*XAd"G8EBGGG`~ZkBG|Zk_& `XBGH!@`b"TGR"b"@"GHZkG HB @_&8"PbTGR"b"8"GGZkB_&b"TGR"b"GGqsZkBb@"4GDEZkGc]4G]}ݤ =(]0}8@HݥPX`#k?! # ~4G^^~ (0GGGb0BG8bc {ZkG.TG/.GJb#Q /JF##"CG2GJC:@G]G]} (0@#kG4GG_11 @BG.0@0@J2Q @BB.G0@J3q @BB.! @BJGBQ.0@G"QJDB@Gk14GG GBҢx/vBWBxKBBҲ0BҲ0B0B B0Bk14G!q B !B2 21 B&`% GB0@B.0@0@0@J31@BBB%.G0@J4Q@BBB.G @J5q@BBB.G2@BJ @B B0@4,0@B @21@B4H$@ GkGk>C^~ R'i#*&Il"D+C"DDCC9D>CDCC7D wHC>>C @"@!C>+,`A8H4>4`A!C>>ޢ! H#@B޲+,C~^ ^(~08@޴HPX>`^h~px GG C C CC;A_4GG ^(~08@ޤHPX>`^h~pxCkGGG>C~^^ ~(08GCC(bG@G$Ce@T@YT`@/J\KyJG ?G^ ~(08CkV/ JZ VKYGV?>C~8^@^H~PX`޴hpx>^~ GG/K,@8- p8:K{`K"zGA =%@ = 8 >C(MGGCG_BABZkCG8@^H~PX`ޤhpx>^~CkR/[ RKGGGG>C^^~ (޴08 GͦV#/6/X KY:K?6?6#VZR@KV>CްGG ~&C^G>6 G $,| 0`CC|0U_C0>C(M #M<G8G0GGG0ޢ <4~޶ J~8ޢ<~ ޶(~0m~Zk-CѠQ@1 08C4G>^ ~ޠC TG>^ ~ޠC^~ (ޤ08CkGCEV0: #(  ( >C~^^ ~(08޴@HP>X^`~h GpxG(ͦp:K{`KzG1/1K 6>C?" ~^V >CGG PM5@ZkLBPX`h$,4<>^ ~CPT6XKw KGT(>CG<!80\#G^|"0ޢTG<4G4~G޶@M~ J8ޢ<~ ޶(~Hm|Zk(C]T#@4! GGG4G3C(>CG<!80\#|"^0ޢ<4~޶@M~ J8ޢ<~ ޶(~Hm|ZkC(4GO!OϢF`>Co#@M<G8G0o"G~4G0ޢG/4޶Hm J8ޢ< ޶(|ZkCHG^ ~(08ޤ@HP>X^`~hpxCkGTG.X J8GT>C~0^8^@~HPX޴`hp>x^~ GGPC`@ (0c/zK6@o4G>C M<A8G0GA@H ]TG0ޢ4G4Gm޶8ޢ< ޶(6|ZkC ]mD[@G08^@~HPXޤ`hp>x^~Ck/Y KyG<0GCEV@p'H HTXp@Xx  ` PPp @ DEC$FORRTL@LIBRTL@LIBOTS@SYS$PUBLIC_VECTORS+JTMODACEDEC Fortran V6.2-508JTMODACEr  s  x v t t v t y x  x t t u x x z { | }     W V V V W V                    t v s t s t s t s  $                   t s s t v s t s       t s s t s@ SAFETY013.Af ![EVERHART.JTDEMO]JTRPLACE.EXE_A;3AXP6;10-[ $ s t v t s    t s t s s t v t s                      " " $ % % + - 0 0 6 8 3 6 6 3 4 D( 1 H J N J M M N O K Q R SD ? b b d d g h j j l j k j j k j k  s | | | } | ~       ^ v s s s s   T         00`FGETFID0b    D J J J K K,4  ILENS S W V W V$ W V V V GETPV; f _ g g h f xIVLEN s o s s t s t s t s s s s s s  y ( SYS$IODEFAMAC X2.0-13265I[ hp  [ - *[EVERHART.JTDEMO]JTRPLACE.OBJ;74+,g./ 4*- 0123 KPWO56>7x89GHJ3JTMODACE0115-Sep-1996 16:13DEC Fortran V6.1-68JTMODACEFP, JTD$DB:OP)).GDB JTD$DB:OP).GDBJTMODACEQ@Dev:file or (n,s,v)>\ISYS$DISK:$MK<>P<I<SA() PP P`      X   $ L L LIB$GET_FOREIGN@d a  e@e LIB$SYS_TRNLOG@   XFGETFIDn  Pn  Dp  Dp p , D @` @   c r t w   y 0wDL    | |w         t t N@4<PX@lHPd [^˜˞ޫ ˠޫˤ˨˪ޫˬ˰˴˸˼,n ԫˤLIB$GET_FOREIGN,kL LL\\ 1Lq1LQ1(PLˬ LIB$INDEXPV,I FVV\,\ˬ PˬVV\,\FL FILENPVL(1vVVVM FOR$READ_IF߫ FOR$IO_L_R߫ FOR$IO_L_R߫ FOR$IO_L_R FOR$IO_ENDǏRzS{SUUxRRRRULIB$SYS_TRNLOGP1, PVˬFOR$OPENP1$ FOR$CLOSE4 LIB$INDEXP , ˬ P@ SYS$GETDVIW,@ @@_,A @l LIB$INDEXPP,P@ @xIVLENPV\\VQQQTTRB@9\TTPPVV˄@@ˈ˄ FOR$READ_IF߫$ FOR$IO_L_R FOR$IO_ENDT,T@ @ի1˔ LIB$INDEXP\\V,V@ \V,VL@ @ˠIVLENPV,V@ t FOR$WRITE_IF˔ FOR$IO_T_DSVˬ˰ˬ FOR$IO_T_DSݫ$ FOR$IO_L_V FOR$IO_ENDի1˼ LIB$INDEXP\,\@@ @ LIB$INDEXPV,V@@ @IVLENPV,V@ t FOR$WRITE_IFݫ FOR$IO_L_VV FOR$IO_T_DSݫ$ FOR$IO_L_V FOR$IO_ENDIVLENP@FOR$OPENP1~~\ FOR$READ_KU| FOR$IO_X_SE FOR$IO_ENDPRRSS4P(PLIB$WAITԭˤ˦ԭ˨˪X` LIB$INDEXP, Xt LIB$INDEXPXXQAˈ LIB$INDEXPRRQQSS˔AF˘ˤ LIB$INDEXRPPRPUU,RRPP˰BF˴˸GETPV0˜4˞ LIB$INDEXPS1խ1SQQTTAF LIB$INDEXSPP6SSPPCF FOR$READ_IF?d FOR$IO_X_DA FOR$IO_ENDJTSCRXXYYZ2ˠg2ˢ2˨2˪^(n~XXZ,n ZHPQ^YX  LIB$INDEXPWWZ1խ1W\\QQ,LF0< LIB$INDEXWPP6WWPPHGFLH FOR$READ_IF?d FOR$IO_X_DA FOR$IO_ENDPJTSCRXXYY\2ˠ2ˢ2˨2˪^(n~XX\T,n THPQ^YXZ\\WW^(WLFnWYZZ^(ZFnZVYVW,Wn FPQ^1l LIB$INDEXP1խ<@F|x FOR$READ_IF߫8 FOR$IO_L_R FOR$IO_ENDի8ѫ8ë8ZZˠˢˀJTSCR2˨2˪XZ~~XR(nBQ^X XWXW W,X WHHH ˔˘˜ SYS$ASSIGN˸REPLENTЫ SYS$DASSGNVfZjX1X LIB$INDEXPYYWW@QXRQGb LIB$INDEXYTPTT@UXVU^(UDfn^S\YY^(YXnYW\WV,Vn @XPQ^X IVLENPY)~X^(XnX\\VA(~VXY^(YXnY\X\W,Wn @XPQ^ѭFOR$REWRITE_SU| FOR$IO_X_SE FOR$IO_ENDխ FOR$WRITE_SU| FOR$IO_X_SE FOR$IO_END FOR$CLOSEFOR$EXITPPGCEV JTMODACEFGETFID SYS$ASSIGN SYS$DASSGNLIB$SYS_TRNLOGLIB$GET_FOREIGN LIB$INDEXILENFOR$OPEN FOR$CLOSE SYS$GETDVIWIVLENLIB$WAITGETPVJTSCRREPLENTFOR$EXIT $CODE$PDATA$LOCAL FFFIII FFIIDD FOR$IO_END FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$IO_X_DA FOR$IO_X_SE FOR$READ_KU FOR$WRITE_SUFOR$REWRITE_SU FOR$READ_IF FOR$READ_IF FOR$WRITE_IFIvPPyPnPPPPnPAPAPPHPP&PPP!PPRPmP P[PP%PPPP{PDP;PPzPwPH PBVPIPPePPym 2FGETFID0115-Sep-1996 16:13DEC Fortran V6.1-68FGETFIDFGETFID4PP PD DP4[ЬЬ,(SYS$OPENPRRQAP`40GETFIDRPo FGETFIDSYS$OPENGETFIDS$CODE$PDATAp$LOCAL FFIIDD,P"!S/ILEN0115-Sep-1996 16:13DEC Fortran V6.1-68 ILEN ILENIPPP[}PQRRQPPQAQQ PRA ILEN3$CODE$PDATA $LOCAL)P30GETPV0115-Sep-1996 16:13DEC Fortran V6.1-68 GETPV GETPVpPPP|[}PQмR޼ P`޼QaSRSTDT`UTUU`aVTVVaUU`VVaRSH |GETPVZ$CODE$PDATA $LOCAL'P1HPPPZ0IVLEN0115-Sep-1996 16:13DEC Fortran V6.1-68 IVLEN IVLENYPP[}PQPмRPRRQPQSSTDTT RPSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C"*[EVERHART.JTDEMO]JTRPLACE.OBJ_A;15+,h.?/ 4?9- 0123KPWO:56=7=89GHJAAJTMODACE 11-SEP-1996 20:43Digital Fortran 77 T7.0-10 0$DATA$$BSS$$IODATA$iL"$CODE$$LINK$ FFFIII FFIIDD0JJTMODACELIB$GET_FOREIGN(JILENLIB$SYS_TRNLOG(JFGETFID DFOR$OPEN DFOR$HANDLER DFOR$CLOSE SYS$GETDVIW(Jd!IVLENLIB$WAIT(Jl GETPVJTSCR SYS$ASSIGNREPLENT SYS$DASSGN DFOR$EXITDFOR$WRITE_SEQ DFOR$REWRITE DFOR$READ_INT_FMT DFOR$READ_KEY DFOR$WRITE_INT_FMT DFOR$WRITE_INT_FMT_XMIT DFOR$READ_INT_FMT_XMIT DFOR$SET_REENTRANCYSYS$OPENGETFIDOTS$FILL OTS$MOVEMOTS$MOVE OTS$INDEX OTS$DIV_IOTS$STRCMP_LEQP =6M76M76 JTD$DB:OPHHW.GDB76 JTD$DB:OPWHW.GDB76\76V7 =P#~^^~cGG"4GBb@ZkG0"vJ`HFG0"QAJ`SH@FQ0< 0b04"0G0KvJGTG0"YXKvJVGY0¦8"0b۲0"00"0B 0@0"TGG8B@Zk0D0H0L0"P0¦T0"(0$0X0"\0BrFr"_'Z#X]0"C\'#`CdX"`="0B R"GG0B8b@Zk0"`0 p0"0BR"TGB@ZkG8B@Zk0¦.JB$0GC8G0"9?G C8*G 0h"0BR"G@B@ZkTG4G0"B"B@Zk0@0d0"B"4G@B@Zk4GG8B@Zk0"d9 0"d!35 @0h"0BhR"GB@ZkG8B@Zk0¦d֢0dTG3@0"0BR"GTBTGB@ZkG8B@Zk'P#X0"h! C\=X"4GPb@0"h0FBF0"h111 B0Bl2B"0bls35`B0 "`X}0p"h"?&1"X}"HGPBXb@Zk""0t X"X]"tGBb@Zkh""0x X"X]"tGBb@Zk0x?"@BHb@Zk0|0x"F0xײ0p0"|9?$!OC0p00"p10Brv`Jq JqFr0BtZ0bHzS@KD0x0զJtJFն07!K70"0"@B"&s"X}C\]'P{#`}0"CdX"0"1"`]"tGBb@Zk0"0D0"q0"0BR"GB@ZkG8B@Zk;Pb"0¦h֢0h"4G`Xݶ4Gh=h"pxTG"tG_&R"X"GpBxb@ZkGb""tG_&R"GGBb@ZkG4G0h"xB"B@Zk0@00"y0"0BhR"GB@ZkG8B@Zk?$P! X=0⦸"C\#4GGX]"0b0,"GGBb@Zk04`0 "0B R"GB@ZkG8B@Zk0" !?D @+D 0 "0B R"G@B@Zk4GG8B@ZkG4G0 "xB"B@Zk0@00"9 0"!35 @0 "0B R"GB@ZkG8B@Zk""&"Xݲ0 C\X"TGbQ@0"4G0"0BR0bs2SB0@B0T00¦֢05B1B4G0C "XB"GB@Zk 0⦐0B00"9 C?0"!0 @00B"0"10bs35`B13B0 "B`}X=0BZ#h]"?&1"X}"H "GPBXb@Zk035@0 "0B R"GB@ZkG8B@Zk0"8!m G4G0 "pB"B@Zk0@00"935 C0("0B R"GB@ZkG8B@Zk0"!G3B0 "0B R"GTBGB@ZkG8B@Zk""&"X0 #C\X"TGb@0"0p0H"0B R"GB@ZkG8B@ZkPB""G0#`Xݶ0"(! p=h"?&1"X}"H"GBb@Zk""00"H! `=X"X]"tGBb@Zkh""0 X"X]"tGBb@Zk08xG4G0 "pB"B@Zk0@00"9G39@0 "0B R"GTBGB@ZkG8B@ZkG4G0 "pB"B@Zk0@00"9G39@0 "0B R"GTBGB@ZkG8B@Zk""&"Xݲ0 C\X"TGbN@0"0p0H"0B R"GB@ZkG8B@ZkB""0"`Xݶ08 h"?&1"X}"HD"GBb@Zk""00"H! `=X"X]"tGBb@Zkh""0 X"X]"tGBb@Zk\""$ X0"C\X"TGb @0"4G@GH]GP4G8ݶb"00"9#4G=tG=G=]TG"TG}@#tG8]"]G]TGݶ"TG_&R""GpBxb@ZkG*4G00b"G0BR"`]"X"hp=x'8{#}"TG_&R"X"h"GBb@ZkG0"a00"1 @ SAFETY013.Ah "[EVERHART.JTDEMO]JTRPLACE.OBJ_A;15XP6;10?> 0BRFF @0b0"4GBb@Zk0"!00v Ja H!F0BR0bJrS@JF00¦vJ08!K80BTG4G0"B"B@Zk0@ 0"@B"4G@B@Zk4GG8B@Zk4G0"TG4G0"pB"B@Zk0@00C0" =0"!025B12@0"GBpB"4GB@ZkG8B@ZkTGTG0"(B"B@Zk0@0`0"`9J 0"`!4 @TG10B4G0C"`B"B@Zk0@00"90"`!!C0 @000"10B`R12B0 B0b300`55B4B0¦"B4vJ&FX\X"0"1"0BR"0bs"GXb@00"vJ`HF0"10BraJqS JqFr4G04TGTG0"B"B@Zk0@0`0"`9 0"! 0`4BTG10B4G0C"`B"B@Zk0@00"90"`!!C0 @000"10B`R12B0 B0b3B"00`55B4B0¦"B`X0b{#p}Gh"?&1"X}"Hp"GPBXb@ZkGT0"0"1"0BR"0bs"GBb@Zk00@0"0B0"0BR2FJFJ0bS04JJ00¦֦6JJ0ײ08KK0"0BZ0b{ 5`C!@Cp"B"4G@B@Zk0BR"G@B@ZkX"4Gp]"@B@Zk0"GBGX]"4GB@ZkG8B@Zk0¦֢B0⦴ײTGTG0"hB"B@Zk0@0`0"`90"!0`0"1 0B`R4@BTG1pB4G0C"`B"B@Zk0@00"90"`!!C0 @000"10B20bs0`3tB0`B0uB"0¦֢0`75B6B0BZ#WC`Xݶ0#pGh="?&1"X}"Hp"GPBXb@ZkGv0"0"1"0BR"0bs"GBb@Zk00@0"0B0"0BR2FJFJ0bS04JJ00¦֦6JJ0ײ08KK0"0BZ0b{ 5`C!@Cp"`B"4G@B@Zk0BR"G@B@ZkX"4Gp]"@B@Zk0"GBGX]"4GB@ZkG8B@Zk0¦֢B0⦴ײ0=C0"99CG00"! 5@!5 @0TG3BTG1!B0"GB0BR"GTBB@ZkG8B@Zk6TG4G0"B"B@Zk0@0"`0`0"! B"0`0"`10BTB0bs"qB`=X0¦"hݶ"?&1"X}"H|"GPBXb@ZkGf0"!0"` _0"1G1QB0b300զvJtJFն0K0"0"1"0BR"0bs"GBb@Zk0 HH0"00JJ0"0BR0@B0bS00¦֢65B5BB0GGXh"HB"4G@B@ZkX]"4G@B@Zk0BR"G@B@Zk`"Gh]"@B@Zk0"GBG`]"GB@ZkG8B@Zk0"9 C0 0"!!@080¦֢T006JFFG0"QV@Jp1JPFQG0bJpQJF0BzaKz0  ?G4 G  0" VK 0¦ J 0 7!J 7EV?&GC1"0B201B0bs0"0BR"B@ZkG8B@Zk00" C9,A9H9<00¦B ".WJ>00B "0.Q0J0>0BR0bs"2v@J&TFX]C\}X"0"L1"GGGGGBb@Zk0"0"L1"0BR"tGBb@Zk0L4G0B8b@Zk0"0"BR0b S0@?"TG0l"`B"B@Zk0@0`0"`90 0"`!05 @@?"10B4G0Cl"B"B@Zk0@00"`90"!!C0 @000"`10B`R55 B25@B0bӢ@"3B@"1B0l"GB0BlR"GTBB@ZkG8B@Zk0l ""'@#XC\X"TGb'@0"0Т0"0Br4GyB@G###!C C##"G0B_BR"B@ZkB"GB@Zk"G]"@B@ZkTG`B!CG###$C C##"G`B"B@ZkA"GB@Zk@#1C0l"GBD"GB@ZkG8B@Zk0"!8 D Gb"0 `#X"TG_&R"X"GBb@ZkG0b"0 `"X"TG_&R"X"GBb@Zkb""TG_&R"GGBb@Zk"4GBb@Zk4GcG]]}#kc"a#~ ^(^0~8GGG=]? (b34Gp0 G4G0B8b@Zkp"0 p0 C.c.CJS cJSF(4(բJղG("TG B(b@Zkp0  =G ](]0}8@#kGGG!4G0h `0h 4G0PB0l 0}l s0]l R25@B3rB2@_B,H@ 0h 0B0}h 0]h RJB_0l GGkGGGGGGԢ4Gp wp  B+=p 1]p R25@B12BB_Br.rJt wpN=t 1B``Nt wB`A0@BA  `0`B`]p R0@Bp W=p 1 6B?GkGGGGr.rJ/@`JR4Gݦx 6x B!x  @0@=| ݦ| ֢| 75B6BWBB.JB x 0@=x ݦx ֢ B| GGGGk.W JF<'4G@DFOR$SET_REENTRANCY<(8b#DFOR$SET_REENTRANCY<'<@@DFOR$SET_REENTRANCY4G OTS$FILL4@ OTS$FILL4)GLIB$GET_FOREIGN4*b#LIB$GET_FOREIGN4)@LIB$GET_FOREIGN4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4`GhOTS$MOVE4d@hOTS$MOVE4|G OTS$INDEX4@ OTS$INDEX4GOTS$MOVE4@OTS$MOVE4GOTS$FILL4@OTS$FILL4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL40G8 OTS$MOVEM44@8 OTS$MOVEM4<GDOTS$FILL4@@DOTS$FILL<GDFOR$READ_INT_FMT<b#DFOR$READ_INT_FMT<@DFOR$READ_INT_FMT<!GDFOR$READ_INT_FMT_XMIT<"b#DFOR$READ_INT_FMT_XMIT<!@DFOR$READ_INT_FMT_XMIT<!8GDDFOR$READ_INT_FMT_XMIT<"<b#DFOR$READ_INT_FMT_XMIT<!@@DDFOR$READ_INT_FMT_XMIT4 PG\ OTS$DIV_I4 Tb# OTS$DIV_I4 X@\ OTS$DIV_I4+|GLIB$SYS_TRNLOG4,b#LIB$SYS_TRNLOG4+@LIB$SYS_TRNLOG4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4 (G4 DFOR$OPEN4,b# DFOR$OPEN4 0@4 DFOR$OPEN4XGd DFOR$CLOSE4\b# DFOR$CLOSE4`@d DFOR$CLOSE4xG OTS$INDEX4|@ OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4/G SYS$GETDVIW40 b# SYS$GETDVIW4/@ SYS$GETDVIW40G8 OTS$MOVEM 44@8 OTS$MOVEM4<GDOTS$FILL4@@DOTS$FILL4pGxOTS$MOVE4t@xOTS$MOVE4GOTS$FILL4@OTS$FILL4G OTS$INDEX4@ OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4GOTS$STRCMP_LEQP4@OTS$STRCMP_LEQP< G, DFOR$READ_INT_FMT<$ b#DFOR$READ_INT_FMT<( @, DFOR$READ_INT_FMT4L GT OTS$MOVEM4P @T OTS$MOVEM4X G` OTS$FILL4\ @` OTS$FILL4 G OTS$INDEX4 @ OTS$INDEX4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4\ Gd OTS$MOVEM4` @d OTS$MOVEM4h Gp OTS$FILL4l @p OTS$FILL< G DFOR$WRITE_INT_FMT<  b#DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT< G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT4@ GH OTS$INDEX4D @H OTS$INDEX4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4 G OTS$INDEX4 @ OTS$INDEX4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4P GX OTS$MOVEM4T @X OTS$MOVEM4\ Gd OTS$FILL4` @d OTS$FILL< G DFOR$WRITE_INT_FMT<  b#DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT< G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT4  G DFOR$OPEN4 b# DFOR$OPEN4  @ DFOR$OPEN4hGt DFOR$READ_KEY4lb# DFOR$READ_KEY 4p@t DFOR$READ_KEY41GLIB$WAIT42b#LIB$WAIT41@LIB$WAIT4`Gh OTS$INDEX4d@h OTS$INDEX4GOTS$MOVE4@OTS$MOVE4GOTS$FILL4@OTS$FILL4G OTS$INDEX4@ OTS$INDEX4 G OTS$MOVEM4@ OTS$MOVEM4G OTS$FILL4@ OTS$FILL44G< OTS$INDEX48@< OTS$INDEX4|G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX<GDFOR$READ_INT_FMT<b#DFOR$READ_INT_FMT<@DFOR$READ_INT_FMT,GJTSCR,b#JTSCR,@JTSCR4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4G OTS$INDEX4@ OTS$INDEX4tG| OTS$INDEX4x@| OTS$INDEX<8GDDFOR$READ_INT_FMT<<b#DFOR$READ_INT_FMT<@@DDFOR$READ_INT_FMT,pG|JTSCR,tb#JTSCR,x@|JTSCR4(G0OTS$MOVE4,@0OTS$MOVE4<GDOTS$MOVE4@@DOTS$MOVE4PGXOTS$MOVE4T@XOTS$MOVE4tG| OTS$MOVEM4x@| OTS$MOVEM4GOTS$FILL4@OTS$FILL4 G OTS$MOVEM4@ OTS$MOVEM4G OTS$FILL4@ @ SAFETY013.Ah "[EVERHART.JTDEMO]JTRPLACE.OBJ_A;15XP6;10?b *OTS$FILL48G@ OTS$INDEX4<@@ OTS$INDEX<GDFOR$READ_INT_FMT<b#DFOR$READ_INT_FMT<@DFOR$READ_INT_FMT,XGdJTSCR,\b#JTSCR,`@dJTSCR4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4 @OTS$MOVE 4G$OTS$MOVE4 @$OTS$MOVE4@GH OTS$MOVEM4D@H OTS$MOVEM4LGTOTS$FILL4P@TOTS$FILL4hGp OTS$MOVEM4l@p OTS$MOVEM4tG|OTS$FILL4x@|OTS$FILL4- G, SYS$ASSIGN4.$b# SYS$ASSIGN4-(@, SYS$ASSIGN,#LGXREPLENT,$Pb#REPLENT,#T@XREPLENT4 dGp SYS$DASSGN4 hb# SYS$DASSGN4 l@p SYS$DASSGN4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL40G8 OTS$MOVEM44@8 OTS$MOVEM4@GH OTS$MOVEM4D@H OTS$MOVEM4TG\OTS$MOVE4X@\OTS$MOVE4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4,G8 DFOR$REWRITE40b# DFOR$REWRITE44@8 DFOR$REWRITE4xGDFOR$WRITE_SEQ4|b#DFOR$WRITE_SEQ4@DFOR$WRITE_SEQ4G DFOR$CLOSE4b# DFOR$CLOSE4@ DFOR$CLOSE4%G DFOR$EXIT4&b# DFOR$EXIT4%@ DFOR$EXIT45@GLSYS$OPEN46Db#SYS$OPEN45H@LSYS$OPEN,3GGETFID,4b#GETFID,3@GETFID === 8  9  ;=@ DFOR$READ_KEY=@48       2 3   8OTS$STRCMP_LEQP=A=SDFOR$WRITE_SEQ DFOR$REWRITE=\=(Dev:file or (n,s,v)>=K< SYS$DASSGN OTS$DIV_I;;=A(0 DFOR$OPEN=8 H=8 P=8` DFOR$CLOSEJTSCR==8(DFOR$WRITE_INT_FMT_XMIT;;8 OTS$INDEX8 OTS$MOVEM=0;= 7 DFOR$HANDLER=;8OTS$FILL8OTS$MOVE; DFOR$READ_INT_FMT=>(= 0=$8=:@=P DFOR$WRITE_INT_FMT=)h=Ip !DFOR$READ_INT_FMT_XMIT=8==P<#REPLENT= =% DFOR$EXIT 'DFOR$SET_REENTRANCY=@ )LIB$GET_FOREIGN= SYS$DISK=88=9=(=I<0=M@+LIB$SYS_TRNLOG- SYS$ASSIGN/ SYS$GETDVIW1LIB$WAIT=0 ;=@ 3GETFID5SYS$OPEN= 0;== 0l ;== 0d!;=I I=910 JTMODACEDigital Fortran 77 T7.0-1 = 44=JTMODACE4=~| < ̀   y(  $ $= ,4: := 4=  = 44= FGETFID4="  $ $=  4: := 4=  = 44= ILEN4=# \0 _ $ $= 4: := d 4=  = l 44= GETPVl 4=' h o$ $=  4: := \!4=  = d!44= IVLENd!4=0(' x0 |  x$ $= !4: := 4"4=  =  $*[EVERHART.JTDEMO]JTRPLACE.OBJ_AXP6;5+,i.?/ 4?8- 0123KPWO956@^z7=_z89GHJAAJTMODACE 12-SEP-1996 21:15DEC Fortran V6.2-508 $DATA$$BSS$$IODATA$i!$CODE$$LINK$ FFFIII FFIIDD0JJTMODACELIB$GET_FOREIGN(JdILENLIB$SYS_TRNLOG(JFGETFID DFOR$OPEN DFOR$HANDLER DFOR$CLOSE SYS$GETDVIW(J IVLENLIB$WAIT(JGETPVJTSCR SYS$ASSIGNREPLENT SYS$DASSGN DFOR$EXITDFOR$WRITE_SEQ DFOR$REWRITE DFOR$READ_INT_FMT DFOR$READ_KEY DFOR$WRITE_INT_FMT DFOR$WRITE_INT_FMT_XMIT DFOR$READ_INT_FMT_XMITSYS$OPENGETFIDOTS$MOVEOTS$FILL OTS$MOVEM OTS$INDEX OTS$DIV_IOTS$STRCMP_LEQS =6M76M76 JTD$DB:OPHHW.GDB76 JTD$DB:OPWHW.GDB76\76V7 =P#(~^^~cGGG0"0J`HFG0"Q2v^J`SH@FQ0 0"0"0"G0 !9Hr@J2D TG001'J`H F00 0"0B00"0 0"0"B"4G@B@Zk4GG8B@Zk00"000"0B0b00B 0bD?$! X=0"\_&R"`]"dX"`="0BR"GG B(b@Zk0"00"0BR"GTGB@ZkG8B@Zk0¦.JB 0G8G0"9?G8*G 0x"0BR"G@B@ZkTG4G0"@B"B@Zk0@00"B"4G@B@Zk4GG8B@Zk0"9 0"!!1 @0x"0BxR"GGB@ZkG8B@Zk0¦֢0TG @0"0BR"GTBGTGB@ZkG8B@Zk'P#X0"x! \=X"4GXb@0"0FF0"111 B0B2B"0bs31`B0"3aJ`X}0 "h("?&1"X}"HGPBXb@ZkP""0$ X("X]"tGBb@Zkh""0( X("X]"tGBb@Zk0(?"Bb@Zk0,0("F0(ײ0 0",9?$!OC0 00" 10Br3Jq JqFr0B$Z0b vHzS@KD0(0զ6JtJFն0⦌79v>K70"0"_&R"X] \'P{#`}0"dX"0"41"`]"tGBb@Zk0"000.0"40"0BR"GGB@ZkG8B@Zk<Ðb"0¦֢0x"6J4G`Xݶ4Gh=pxTG("tG_&R"X"GpBxb@ZkGb"("tG_&R"GGBb@ZkG4G0x"xB"B@Zk0@040"490"0BxR"GGB@ZkG8B@Zk?$P! X=0"\#4GGX]"0b0"GGBb@Zk00"0BR"GGB@ZkG8B@Zk0"!?D+D 0"0BR"G@B@Zk4GG8B@ZkG4G0"xB"B@Zk0@080"89 0"8!!1 @0"0BR"GGB@ZkG8B@Zk""&"Xݲ0 \X"TGb3@0"<4G0"@0BK80BdTG4G0"B"B@Zk0@ 0"B"4G@B@Zk4GG8B@Zk4G0"dTG4G0"B"B@Zk0@0d0C0"d0" =d!!1 @TG0"!BQ.sJRQJSFQ>TGTG0"B"B@Zk0@00"9J 0"!0 @TG10B4G0C"`B"B@Zk0@0h0"h90"!!C0 @0h00"h10BR12B0 B0bl30h051B4B&4vJBX0C"\X"0"l1"0BpR"0bts"G`b@0p0"0J`HF0"t10Br3v~JqS JqFr4G0`4TGTG0"B"B@Zk0@00"9 0"`! 00BTG10B4G0C"`B"B@Zk0@0h0"h90"!!C0 @0h00"h10BR12B0 B0bl3B"0h051B4B0¦"B4JG`X0 ph("?&1"X}"Hp"GPBXb@ZkGT0"0"1"0BR"0bs"GBb@Zk0d0@0"d0dB0"h0BR2FJFJ0bS04JJ00¦֦6JJ0ײ08KK0"0BhZ0bd{ 1`C!@Cp"B"4G@B@Zk0BR"G@B@ZkX"4Gp]"@B@Zk0"GBGX]"4GB@ZkG8B@Zk0¦d֢B0dײTGTG0"B"B@Zk0@00"90"x!00"`1 0BR0@BTG1pB4G0C"`B"B@Zk0@0h0"h90"!!C0 @0h00"h10B|20bhs03tB0`B0luB"0¦h֢071B6B0BZ#WC6JG`Xݶ0"9#p=h}("?&1"X}"Hp"GPBXb@ZkGx0"0"1"0BR"0bs"GBb@Zk0d0@0"d0dB0"h0BR2FJFJ0bS04JJ00¦֦6JJ0ײ08KK0"0BhZ0bd{ 1`C!@Cp"B"4G@B@Zk0BR"G@B@ZkX"4Gp]"@B@Zk0"GBGX]"4GB@ZkG8B@Zk0¦d֢B0dײ0x=C0"h99CG@ SAFETY013.Ai $[EVERHART.JTDEMO]JTRPLACE.OBJ_AXP6;56;10?~>0x0"x! 1@!1 @0hTG:BTG!!B0"GBG0BR"GTBGB@ZkG8B@Zk3TG4G0"B"B@Zk0@0"0y0"`!v B"00"1"0BTG`X}0¦"hݶ("?&1"X}"H|"GPBXb@ZkG^0"! ?@0B0DV 0"1G1QB0b300զ6JtJFն0⦘8vK0"0"1"0BR"0bs"GBb@Zk0 HH0"00JJ0"0BdR0@B0bdS0d61B0FXh"B"4G@B@ZkX]"4G@B@Zk0BR"G@B@Zk`"Gh]"@B@Zk0"GB`]"G@B@Zk0dB0d0"d9!C0 0"d!V 0¦֢00?FvJ6F0G0Br3Jp1JpFrG05vJpQJF0Bz;~Kz0G4G0 9?K 0"!1v?J!0¦V2^JVEV_&GCR"0b S05B0dT0$"G0BR"GB@ZkG8B@Zk0d0C,@H<0"d90"9@.! VJ>0d0B0."Q0J0>0B4R&2v@JSBX]0BZ#\]X"0"1"GGGGGBb@Zk0"00"1"0BR"tG@BHb@Zk04G0B8b@Zk0"00"BR0bS0d@?"TG0|"hB"B@Zk0@00"92 0"!01 @@?"10B4G0C|"B"B@Zk0@0h0"90"h!!C0 @0h00"10BR51 B21@B0bhӢ@"7B@_#:RC0|"GBG0B|R"GTBGB@ZkG8B@Zk""$@ X0"|9#\=X"TGb@0"0Т0"0Bd4GB<CGG"G0BR"GB@ZkB"GB@ZkGG]"@B@ZkTG9@<CGGGGhB"GB@ZkGGB@Zk@? !7@0|"GBGGGB@ZkG8B@Zk0T8DGb"0"9#`="Xݶ("TG_&R"X"GBb@ZkG0Tb"0 `"X("TG_&R"X"GBb@Zkb"("TG_&R"GGBb@Zk"4G0B8b@Zk4GcG]]}#k{"y#~ ^(^0~8GGG=] 4G8B@2G4G8B@b@Zk8"@8@C.c.CJS cJSF4բ6vJղG"TG(B0b@Zk8@CG ](]0}8@#kGGG!4GxPx4G B]||01B0@P.PJ =DB @x0@x]xRR"_| GGkGGGGGGԢ4G=]R VB'@}s31`BB3.3J]2pN}sB@@N}sSB@! a0`Ba@@ 0 B }s0`B]r BGkGGGGr.rJ*@R4Gݦ B!  B0@ݦ01BPB,H@ ݦ֢0Bв=1 4B?GGGkGGk.V JF4G OTS$MOVE4@ OTS$MOVE4GOTS$FILL4@OTS$FILL4'GLIB$GET_FOREIGN4(b#LIB$GET_FOREIGN4'@LIB$GET_FOREIGN4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4PGXOTS$MOVE4T@XOTS$MOVE4lGt OTS$INDEX4p@t OTS$INDEX4GOTS$MOVE4@OTS$MOVE4GOTS$FILL4@OTS$FILL4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4(G0 OTS$MOVEM4,@0 OTS$MOVEM44G<OTS$FILL48@<OTS$FILL<GDFOR$READ_INT_FMT<b#DFOR$READ_INT_FMT<@DFOR$READ_INT_FMT<!GDFOR$READ_INT_FMT_XMIT<"b#DFOR$READ_INT_FMT_XMIT<! @DFOR$READ_INT_FMT_XMIT<!,G8DFOR$READ_INT_FMT_XMIT<"0b#DFOR$READ_INT_FMT_XMIT<!4@8DFOR$READ_INT_FMT_XMIT4#DGP OTS$DIV_I4$Hb# OTS$DIV_I4#L@P OTS$DIV_I4-hGtLIB$SYS_TRNLOG4.lb#LIB$SYS_TRNLOG4-p@tLIB$SYS_TRNLOG4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4 G$ DFOR$OPEN4b# DFOR$OPEN4  @$ DFOR$OPEN4HGT DFOR$CLOSE4Lb# DFOR$CLOSE4P@T DFOR$CLOSE4hGp OTS$INDEX4l@p OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4G SYS$GETDVIW4b# SYS$GETDVIW4@ SYS$GETDVIW4 G( OTS$MOVEM4$@( OTS$MOVEM4,G4OTS$FILL40@4OTS$FILL4\GdOTS$MOVE 4`@dOTS$MOVE4lGtOTS$FILL4p@tOTS$FILL4G OTS$INDEX4@ OTS$INDEX4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4`GhOTS$STRCMP_LEQS4d@hOTS$STRCMP_LEQS< G DFOR$READ_INT_FMT< b#DFOR$READ_INT_FMT< @ DFOR$READ_INT_FMT40 G8 OTS$MOVEM44 @8 OTS$MOVEM4< GD OTS$FILL4@ @D OTS$FILL4d Gl OTS$INDEX4h @l OTS$INDEX4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4H GP OTS$MOVEM4L @P OTS$MOVEM4T G\ OTS$FILL4X @\ OTS$FILL< G DFOR$WRITE_INT_FMT<  b#DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT< G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT40 G8 OTS$INDEX44 @8 OTS$INDEX4t G| OTS$MOVEM4x @| OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4 G OTS$INDEX4 @ OTS$INDEX4 G OTS$MOVEM4 @ OTS$MOVEM4 G OTS$FILL4 @ OTS$FILL4H GP OTS$MOVEM4L @P OTS$MOVEM4T G\ OTS$FILL4X @\ OTS$FILL< G DFOR$WRITE_INT_FMT<  b#DFOR$WRITE_INT_FMT< @ DFOR$WRITE_INT_FMT< G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT< G DFOR$WRITE_INT_FMT_XMIT< b#DFOR$WRITE_INT_FMT_XMIT< @ DFOR$WRITE_INT_FMT_XMIT4  G DFOR$OPEN4 b# DFOR$OPEN4  @ DFOR$OPEN4+`Gl DFOR$READ_KEY4,db# DFOR$READ_KEY4+h@l DFOR$READ_KEY4GLIB$WAIT4b#LIB$WAIT4@LIB$WAIT 4XG` OTS$INDEX4\@` OTS$INDEX4xGOTS$MOVE4|@OTS$MOVE4GOTS$FILL4@OTS$FILL4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4\Gd OTS$INDEX4`@d OTS$INDEX4pGx OTS$INDEX4t@x OTS$INDEX4G OTS$INDEX4@ OTS$INDEX<|GDFOR$READ_INT_FMT<b#DFOR$READ_INT_FMT<@DFOR$READ_INT_FMT,GJTSCR,b#JTSCR,@JTSCR4lGtOTS$MOVE4p@tOTS$MOVE4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4G OTS$INDEX4@ OTS$INDEX4XG` OTS$INDEX4\@` OTS$INDEX< G,DFOR$READ_INT_FMT<$b#DFOR$READ_INT_FMT<(@,DFOR$READ_INT_FMT,XGdJTSCR,\b#JTSCR,`@dJTSCR4GOTS$MOVE4@OTS$MOVE4$G,OTS$MOVE4(@,OTS$MOVE48G@OTS$MOVE4<@@OTS$MOVE4\Gd OTS$MOVEM4`@d OTS$MOVEM4hGpOTS$FILL4l@pOTS$FILL4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4 @OTS$FILL4(G0 OTS$INDEX4,@0 OTS$INDEX<GDFOR$READ_INT_FMT<b#DFOR$READ_INT_FMT<@DFOR$READ_INT_FMT,@GLJTSCR,Db#JTSCR,H@LJTSCR4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE44G< OTS$MOVEM48@< OTS$MOVEM4@GHOTS$FILL4D@HOTS$FILL 4/G SYS$ASSIGN40b# SYS$ASSIGN4/@ SYS$ASSIGN, G REPLENT, b#REPLENT, @ REPLENT4 ,G8 SYS$DASSGN4 0b# SYS$DASSGN4 4@8 SYS$DASSGN4G OTS$INDEX4@ OTS$INDEX4G OTS$INDEX4@ OTS$INDEX4TG\ OTS$MOVEM4X@\ OTS$MOVEM4`GhOTS$FILL4d@hOTS$FILL4G OTS$MOVEM4@ OTS$MOVEM4G OTS$MOVEM4@ OTS$MOVEM4GOTS$MOVE4@OTS$MOVE4,G4 OTS$MOVEM40@4 OTS$MOVEM4<GD OTS$MOVEM4@@D@ SAFETY013.Ai $[EVERHART.JTDEMO]JTRPLACE.OBJ_AXP6;56;10?4. OTS$MOVEM4hGp OTS$MOVEM4l@p OTS$MOVEM4tG|OTS$FILL4x@|OTS$FILL4G DFOR$REWRITE4b# DFOR$REWRITE4@ DFOR$REWRITE4% GDFOR$WRITE_SEQ4&b#DFOR$WRITE_SEQ4%@DFOR$WRITE_SEQ44G@ DFOR$CLOSE48b# DFOR$CLOSE4<@@ DFOR$CLOSE4)HGT DFOR$EXIT4*Lb# DFOR$EXIT4)P@T DFOR$EXIT43GSYS$OPEN44b#SYS$OPEN43@SYS$OPEN,1,G8GETFID,20b#GETFID,14@8GETFID LIB$WAIT SYS$GETDVIW=(8  9  M@=H=I<P=X8OTS$STRCMP_LEQS=Sh= SYS$DISK DFOR$REWRITE=@=(Dev:file or (n,s,v)> SYS$DASSGN REPLENT= ;;=A( DFOR$OPEN=8 =8  =80 DFOR$CLOSEJTSCR=X=8`(DFOR$WRITE_INT_FMT_XMIT;;8 OTS$INDEX8 OTS$MOVEM=0;= 7 DFOR$HANDLER=(;8OTS$FILL8OTS$MOVE; DFOR$READ_INT_FMT=>= =$=:=  DFOR$WRITE_INT_FMT=)8=I@ !DFOR$READ_INT_FMT_XMIT=8X=`=P<p# OTS$DIV_I=K<%DFOR$WRITE_SEQ=  'LIB$GET_FOREIGN) DFOR$EXIT=\+ DFOR$READ_KEY=9=88==@48       2 3   @@;P-LIB$SYS_TRNLOG=p/ SYS$ASSIGN=A=0 ;=@ 1GETFID3SYS$OPEN= 0d;== 0;== 0 ;=D D=4,+JTMODACEDEC Fortran V6.2-508 = 44=JTMODACE4=rؼ  ؼ, ܁ ȼ ؼؼ     0X 1 b)(  $ $= ,4: := T4=  = 44= FGETFID4="  $ $= 4: := D4=  = d44= ILENd4=# S V $ $= p4: := 4=  = 44= GETPV4=' _ f$ $=  4: :=  4=  =  44= IVLEN 4=3+* o s y o$ $=  4: := !4=  =  $*[EVERHART.JTDEMO]JTRPLACE.OBJ_VAX5;7+,j./ 4P- 0123 KPWO567p89GHJ3JTMODACE0117-Nov-1996 13:4217-Nov-1996 13:42VAX FORTRAN V5.9-173JTMODACEP@Dev:file or (n,s,v)>\ISYS$DISK:$MK<>P<I<SA(), JTD$DB:OP)).GDB JTD$DB:OP).GDBJTMODACEPP` P      p   t  d LIB$GET_FOREIGN@ !%% LIB$SYS_TRNLOG@   FGETFID. h.T,T0TTT0T|0TT< @   # 244H7\dx   97    <7    ?,    \  N@AD@P| [LNޫ PޫTXZޫ\`dhl,n ˠԫ˚˸LIB$GET_FOREIGN,kL LLPP 1Lq1LQ1(PLˬ LIB$INDEXP\,I F\\P,Pˬ Pˬ\\P,PLL FILENP\L(1\PFPPM FOR$READ_IF߫ FOR$IO_L_R߫ FOR$IO_L_R߫ FOR$IO_L_R FOR$IO_ENDǏPzQ{QQQxPPPPː˒Q˔˖ː˔LIB$SYS_TRNLOGP1, P\ˬ FOR$OPENP18 FOR$CLOSEH LIB$INDEXP , ˬ PT SYS$GETDVIW,@ @@_,A @ˀ LIB$INDEXPP,P@ @ˌIVLENP\TT\PPUUP@@9TUJUTT\\˘D@˜˘ FOR$READ_IF߫$ FOR$IO_L_R FOR$IO_ENDU,U@ @ի1˨ LIB$INDEXP\\P,P@ \P,PL@ @˴IVLENP\,\@ Lˈ FOR$WRITE_IF˨ FOR$IO_T_DS\ FOR$IO_T_DSݫ$ FOR$IO_L_V FOR$IO_ENDի1 LIB$INDEXP\,\@@ @ LIB$INDEXPU,U@@ @IVLENP\,\@ cˈ FOR$WRITE_IFݫ FOR$IO_L_V\ FOR$IO_T_DSݫ$ FOR$IO_L_V FOR$IO_ENDIVLENP@FOR$OPENP1(~~p FOR$READ_KUː FOR$IO_X_SE FOR$IO_ENDP0Ы0,ѫ,4P4dLIB$WAITԫ(hjԫ8lnԫP"PPWPsPP[PP-PPPPP@P7PPP|PMPGlPNPPcPP~r$ 2FGETFID0117-Nov-1996 13:4217-Nov-1996 13:42VAX FORTRAN V5.9-173FGETFIDFGETFID0PP PD DP0[ЬЬ,(SYS$OPENPRRP@P`PP40GETFIDRPo FGETFIDSYS$OPENGETFIDV$CODE$PDATAl$LOCAL FFIIDD,P%!V/ILEN0117-Nov-1996 13:4217-Nov-1996 13:42VAX FORTRAN V5.9-173 ILEN ILENLPPP[}PQPPQQQRBRR PPQPA ILEN6$CODE$PDATA $LOCAL)P60GETPV0117-Nov-1996 13:4217-Nov-1996 13:42VAX FORTRAN V5.9-173 GETPV GETPVlPPP [}PQԼ ԼмPQռQRBR SRS SRSռ ּ ռּPQH GETPVV$CODE$PDATA $LOCAL"P2EPMPV0IVLEN0117-Nov-1996 13:4217-Nov-1996 13:42VAX FORTRAN V5.9-173 IVLEN IVLEN]PP[}PQPмPQռRQRSSTDTT PQSPPD IVLENG$CODE$PDATA$LOCAL P#9P?P# G%*[EVERHART.JTDEMO]JTRPLACE.OBJ_VAX62;3+,./ 4>- 0123KPWO56tL>7n]>89GHJ3JTMODACE01 4-Feb-1997 12:22Digital Fortran V6.4-165JTMODACEFP, JTD$DB:OP)).GDB JTD$DB:OP).GDBJTMODACEQ@Dev:file or (n,s,v)>\ISYS$DISK:$MK<>P<I<SA() PP P`      X   $ L L LIB$GET_FOREIGN@d a  e@e LIB$SYS_TRNLOG@   XFGETFIDn  Pn  Dp  Dp p , D @` @   c r t w   y 0wDL    | |w         t t N@4<PX@lHPd [^˜˞ޫ ˠޫˤ˨˪ޫˬ˰˴˸˼,n ԫˤLIB$GET_FOREIGN,kL LL\\ 1Lq1LQ1(PLˬ LIB$INDEXPV,I FVV\,\ˬ PˬVV\,\FL FILENPVL(1vVVVM FOR$READ_IF߫ FOR$IO_L_R߫ FOR$IO_L_R߫ FOR$IO_L_R FOR$IO_ENDǏTzU{U\\xTTTT\@ SAFETY013.A %[EVERHART.JTDEMO]JTRPLACE.OBJ_VAX62;3;10LIB$SYS_TRNLOGP1, PVˬFOR$OPENP1$ FOR$CLOSE4 LIB$INDEXP , ˬ P@ SYS$GETDVIW,@ @@_,A @l LIB$INDEXPP,P@ @xIVLENPV\\VRRRTTSC@9\TTUUVV˄E@ˈ˄ FOR$READ_IF߫$ FOR$IO_L_R FOR$IO_ENDT,T@ @ի1˔ LIB$INDEXP\\V,V@ \V,VL@ @ˠIVLENPV,V@ t FOR$WRITE_IF˔ FOR$IO_T_DSVˬ˰ˬ FOR$IO_T_DSݫ$ FOR$IO_L_V FOR$IO_ENDի1˼ LIB$INDEXP\,\@@ @ LIB$INDEXPV,V@@ @IVLENPV,V@ t FOR$WRITE_IFݫ FOR$IO_L_VV FOR$IO_T_DSݫ$ FOR$IO_L_V FOR$IO_ENDIVLENP@FOR$OPENP1~~\ FOR$READ_KU| FOR$IO_X_SE FOR$IO_ENDPRRSS4P(PLIB$WAITԭˤ˦ԭ˨˪X` LIB$INDEXP, Xt LIB$INDEXPXXRBˈ LIB$INDEXPRRSSTT˔CF˘ˤ LIB$INDEXRPPRPVV,RRPP˰BF˴˸GETPV0˜4˞ LIB$INDEXPT1խ1TUURREF LIB$INDEXTPP6TTPPDF FOR$READ_IF?d FOR$IO_X_DA FOR$IO_ENDJTSCRXXYYZ2ˠ{2ˢ2˨2˪^(n~XXZ,n ZHPQ^YX  LIB$INDEXPWWZ1խ1W\\RR,LF0< LIB$INDEXWPP6WWPPHGFLH FOR$READ_IF?d FOR$IO_X_DA FOR$IO_ENDPJTSCRXXYY\2ˠ2ˢ2˨2˪^(n~XX\P,n PHPQ^YXZ\\WW^(WLFnWYZZ^(ZFnZVYVW,Wn FPQ^1l LIB$INDEXP1խ<@F|x FOR$READ_IF߫8 FOR$IO_L_R FOR$IO_ENDի8ѫ8ë8ZZˠˢˀJTSCR2˨2˪XZ~~XW(nGQ^X XZXZ Z,X ZHHH ˔˘˜ SYS$ASSIGN˸REPLENTЫ SYS$DASSGN\lVfX1X LIB$INDEXPYYZZ@RXSRJc LIB$INDEXYUPUU@\XV\^(\Efn\ZYY^(YXnYVZVW,Wn @XPQ^X IVLENPV)~X^(XnXWW\A(~\XV^(VXnVWXWZ,Zn @XPQ^ѭFOR$REWRITE_SU| FOR$IO_X_SE FOR$IO_ENDխ FOR$WRITE_SU| FOR$IO_X_SE FOR$IO_END FOR$CLOSEFOR$EXITPPGCEV JTMODACEFGETFID SYS$ASSIGN SYS$DASSGNLIB$SYS_TRNLOGLIB$GET_FOREIGN LIB$INDEXILENFOR$OPEN FOR$CLOSE SYS$GETDVIWIVLENLIB$WAITGETPVJTSCRREPLENTFOR$EXIT $CODE$PDATA$LOCAL FFFIII FFIIDD FOR$IO_END FOR$IO_L_R FOR$IO_L_V FOR$IO_T_DS FOR$IO_X_DA FOR$IO_X_SE FOR$READ_KU FOR$WRITE_SUFOR$REWRITE_SU FOR$READ_IF FOR$READ_IF FOR$WRITE_IFIvPPxPmPPPPmPAP@PPHPP&PPP!PPRPmP P[PP%PPPP{PDP;PPzPwPH PBVPIPPdPPym 2FGETFID01 4-Feb-1997 12:22Digital Fortran V6.4-165FGETFIDFGETFID4PP PD DP4[ЬЬ,(SYS$OPENPRRQAP`40GETFIDRPo FGETFIDSYS$OPENGETFIDS$CODE$PDATAp$LOCAL FFIIDD,P"!S/ILEN01 4-Feb-1997 12:22Digital Fortran V6.4-165 ILEN ILENLPPP[}PQPPQQQRBRR PPQPA ILEN6$CODE$PDATA $LOCAL)P60GETPV01 4-Feb-1997 12:22Digital Fortran V6.4-165 GETPV GETPVpPPP|[}PQмP޼ Qa޼RbSPSTDTaUTUUabVTVVbUUaVVbPSH |GETPVZ$CODE$PDATA $LOCAL'P1HPPPZ0IVLEN01 4-Feb-1997 12:22Digital Fortran V6.4-165 IVLEN IVLENYPP[}PQPмPQPPRQRSSTDTT PQSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C*[EVERHART.JTDEMO]JTRPTSPC.COM;4+,l./ 4O- 0123 KPWO567089GHJ&$! report space on a device.$! @rptspc device nblks!$! free up nblks space on device.H$! Note this one just selects. A sorting pass to record size and/or dateB$! and sort on those to get oldest/biggest first needs to be added!$! though this version is usable. $inispc=0 $toteof=0 $totalq=0 $totnfil=0$dvc=p1 $nblks=p2$if dvc .eqs. "" then goto done$if nblks .le. 0 then goto done$find:==$gcy$sys:findB$! It is expected the selections will be set up per system and per$! server by a script.K$! We can switch between devices here if we need to, but should do the best$! we can on selection.G$if f$trnlnm("gcy$scratch") .eqs. "" then ass sys$scratch: gcy$scratch:O$if f$search("gcy$scratch:min1.dat") .nes. "" then delete gcy$scratch:min1.dat.O$if f$search("gcy$scratch:min2.dat") .nes. "" then delete gcy$scratch:min2.dat.O$if f$search("gcy$scratch:min3.dat") .nes. "" then delete gcy$scratch:min3.dat.O$if f$search("gcy$scratch:mks1.dat") .nes. "" then delete gcy$scratch:mks1.dat.O$if f$search("gcy$scratch:mks2.dat") .nes. "" then delete gcy$scratch:mks2.dat.O$if f$search("gcy$scratch:mks3.dat") .nes. "" then delete gcy$scratch:mks3.dat."$! Do not alter the following lineB$! Set fdefault minimum size to move and minimum age to move here. $swpop="SWAP"$swploc=f$trnlnm("delsav") $dayago=7$oldday="yesterday" $minal=100 $medal=1000"$! Reset "dayago" or "minal" below $!+++$$$===$!$today=f$time()#$day=f$integer(f$cvt(today,,"day"))%$mon=f$integer(f$cvt(today,,"month"))#$yr=f$integer(f$cvt(today,,"year"))!$if minal .lt. 10 then minal = 10.$if medal+1 .lt. minal then medal = 10 * minal$day = day - dayago$daylp:$if (day .lt. 1)$ thenC$ ! compute date some number of days ago. Go back a month at a time)$ ! if this is more than just a few days.$ dpm=31$ yrd=0$ if mon .eq. 1 then yrd = -1$ if mon .eq. 3 then dpm = 28$ if mon .eq. 5 then dpm = 30$ if mon .eq. 7 then dpm = 30$ if mon .eq. 12 then dpm = 30$ day = day + dpm$ mon = mon -1$ if mon .lt. 1 $ then$ mon=12 $ yr = yr -1$ endifF$! Date could be a couple months, so keep trying if one is not enough.+$! Note we're sloppy about leap years here.$ dayago = dayago - dpm"$ if dayago .gt. 0 then goto daylp$ endif $ mstr="Jan"$ if mon .eq. 2 then mstr="Feb"$ if mon .eq. 3 then mstr="Mar"$ if mon .eq. 4 then mstr="Apr"$ if mon .eq. 5 then mstr="May"$ if mon .eq. 6 then mstr="Jun"$ if mon .eq. 7 then mstr="Jul"$ if mon .eq. 8 then mstr="Aug"$ if mon .eq. 9 then mstr="Sep" $ if mon .eq. 10 then mstr="Oct" $ if mon .eq. 11 then mstr="Nov" $ if mon .eq. 12 then mstr="Dec" $ oldday=" "/$oldday=f$string(day)+"-"+mstr+"-"+f$string(yr)K$find/char=(nocontig,nodirec,backup)/alloc=('minal','medal')/org=noindexed-@/out=gcy$scratch:mks1.dat/crea=(17-nov-1858,'oldday')/match=AND-C/revision=(17-nov-1858,'oldday')/expir=(17-nov-1858,'oldday') 'dvc'J$find/char=(nocontig,nodirec,backup)/alloc=('medal',250000)/org=noindexed-@/out=gcy$scratch:mks2.dat/crea=(17-nov-1858,'oldday')/match=AND-C/revision=(17-nov-1858,'oldday')/expir=(17-nov-1858,'oldday') 'dvc'F$find/char=(nocontig,nodirec,backup)/alloc=(10,'minal')/org=noindexed-@/out=gcy$scratch:mks3.dat/crea=(17-nov-1858,'oldday')/match=AND-C/revision=(17-nov-1858,'oldday')/expir=(17-nov-1858,'oldday') 'dvc'A$! This gets a list of files. Now edit it to a list we can USE byA$! eliminating any files of with SYS in the path or with ? in the$! path.F$if f$file_attributes("gcy$scratch:mks1.dat","eof") .lt. 1 then exit 1 $findfct=0$$open/read ifil gcy$scratch:mks1.datM$if f$search("gcy$scratch:min.dat") .nes. "" then delete gcy$scratch:min.dat.%$open/write ofil gcy$scratch:min1.dat $vlin=" " $editloop:'$read/end=editend/err=editend ifil vlin=$if f$locate("?",vlin) .lt. f$length(vlin) then goto editloop=$if f$locate(":",vlin) .ge. f$length(vlin) then goto editloop?$if f$locate("SYS",vlin) .lt. f$length(vlin) then goto editloopB$if f$locate("VMS$CO",vlin) .lt. f$length(vlin) then goto editloop)$! Don't try to swap virtual disks either?$if f$locate("DSK",vlin) .lt. f$length(vlin) then goto editloop$! check for installed fileC$if f$file_attributes(vlin,"KNOWN") .eqs. "TRUE" then goto editloopJ$if f$file_attributes(vlin,"STORED_SEMANTICS") .nes. "" then goto editloopF$if f$file_attributes(vlin,"NOBACKUP") .eqs. "TRUE" THEN GOTO EDITLOOP1$! directories are contiguous so this omits them.A$if f$file_attributes(vlin,"CTG") .eqs. "TRUE" THEN GOTO EDITLOOP@$if f$file_attributes(vlin,"ORG") .EQS. "IDX" THEN GOTO EDITLOOP $set noonA$! following tests will fail before vms v6, but are useful after.4$! Thus we tell DCL to ignore errors on these tests.8$if f$file(vlin,"MOVE") .eqs. "FALSE" then goto editloop=$if f$file(vlin,"SHELVABLE") .EQS. "FALSE" then goto editloop$set on3$! Following line is a marker...don't mess with it. $! Add checks on filenames below $!+++@@@===$!$write ofil vlin$goto editloop $editend: $close ifil $close ofil$findfct = findfct + 11$! Go thru the loop again if we haven't done yet.$ if findfct .eq. 1$ then$$open/read ifil gcy$scratch:mks2.datM$if f$search("gcy$scratch:min.dat") .nes. "" then delete gcy$scratch:min.dat.%$open/write ofil gcy$scratch:min2.dat$ goto editloop$ endif$ if findfct .eq. 2$ then$$open/read ifil gcy$scratch:mks3.datM$if f$search("gcy$scratch:min.dat") .nes. "" then delete gcy$scratch:min.dat.%$open/write ofil gcy$scratch:min3.dat$ goto editloop$ endif5$! Now mark files for move till we have enough space."$inispc=f$getdvi(dvc,"FREEBLOCKS")$needspc=inispc + nblks$open ofil gcy$scratch:min1.datG$! Normal operation in the next loop would be to outswap files. HoweverG$! allow the tailoring procedure to specify "LINK" or "RLNK" instead ofC$! "SWAP" for swpop variable. If those operations are done, we willI$! back the file up somewhere, truncate it "here", and make a RO-softlinkI$! or a normal softlink to the copy we just made. This will tie in nicelyL$! with packages like Virtual Branches or Squash (which can supply alternate$! locations for files). $ gtalq=0 $ gteof=0 $ gtnfil=0 $ totalq = 0 $ toteof = 0 $ totnfil = 0$spclop:%$read/end=endspc/err=endspc ofil vlin7$ thisal = f$file(f$edit(vlin,"upcase,collapse"),"ALQ")7$ thiseo = f$file(f$edit(vlin,"upcase,collapse"),"EOF")$ totnfil = totnfil + 1$ totalq = totalq + thisal$ toteof = toteof + thiseo $ goto spclop$endspc: $close ofil$ gtalq = gtalq + totalq$ gteof = gteof + toteof$ gtnfil = gtnfil + totnfilM$ write sys$output "For device ",dvc, "Current free blocks:",f$string(inispc)D$ write sys$output "Included File Grand Total Sizes where selecting"@$ write sys$output "files which might be outswappable/shelvable"$ write sys$output " "($ write sys$output "MEDIUM sized files:"D$ write sys$output "Number of files selectable: ",f$string(totnfil)E$ write sys$output "Number of blocks to EOF total: ",f$string(toteof)H$ write sys$output "Number of blocks allocated total: ",f$string(totalq)$open ofil gcy$scratch:min2.datG$! Normal operation in the next loop would be to outswap files. HoweverG$! allow the tailoring procedure to specify "LINK" or "RLNK" instead ofC$! "SWAP" for swpop variable. If those operations are done, we willI$! back the file up somewhere, truncate it "here", and make a RO-softlinkI$! or a normal softlink to the copy we just made. This will tie in nicelyL$! with packages like Virtual Branches or Squash (which can supply alternate$! locations for files). $ totalq = 0 $ toteof = 0 $ totnfil = 0 $spclop2:'$read/end=endspc2/err=endspc2 ofil vlin7$ thisal = f$file(f$edit(vlin,"upcase,collapse"),"ALQ")7$ thiseo = f$file(f$edit(vlin,"upcase,collapse"),"EOF")$ totnfil = totnfil + 1$ totalq = totalq + thisal$ toteof = toteof + thiseo $ goto spclop2 $endspc2: $close ofil$ gtalq = gtalq + totalq$ gteof = gteof + toteof$ gtnfil = gtnfil + totnfil'$ write sys$output "LARGE sized files:"D$ write sys$output "Number of files selectable: ",f$string(totnfil)E$ write sys$output "Number of blocks to EOF total: ",f$string(toteof)H$ write sys$output "Number of blocks allocated total: ",f$string(totalq)$open ofil gcy$scratch:min3.datG$! Normal operation in the next loop would be to outswap files. HoweverG$! allow the tailoring procedure to specify "LINK" or "RLNK" instead ofC$! "SWAP" for swpop variable. If those operations are done, we willI$! back the file up somewhere, truncate it "here", and make a RO-softlinkI$! or a normal softlink to the copy we just made. This will tie in nicelyL$! with packages like Virtual Branches or Squash (which can supply alternate$! locations for files). $ totalq = 0 $ toteof = 0 $ totnfil = 0 $spclop3:'$read/end=endspc3/err=endspc3 ofil vlin7$ thisal = f$file(f$edit(vlin,"upcase,collapse"),"ALQ")7$ thiseo = f$file(f$edit(vlin,"upcase,collapse"),"EOF")$ totnfil = totnfil + 1$ totalq = totalq + thisal$ toteof = toteof + thiseo $ goto spclop3 $endspc3: $close ofil$ gtalq = gtalq + totalq$ gteof = gteof + toteof$ gtnfil = gtnfil + totnfil'$ write sys$output "SMALL sized files:"D$ write sys$output "Number of files selectable: ",f$string(totnfil)E$ write sys$output "Number of blocks to EOF total: ",f$string(toteof)H$ write sys$output "Number of blocks allocated total: ",f$string(totalq)"$ write sys$output " GRAND TOTALS"C$ write sys$output "Number of files selectable: ",f$string(gtnfil)D$ write sys$output "Number of blocks to EOF total: ",f$s@ SAFETY013.Al [EVERHART.JTDEMO]JTRPTSPC.COM;4XP6;86;10OQtring(gteof)G$ write sys$output "Number of blocks allocated total: ",f$string(gtalq)&$ ask junkk "Type return to continue>"$done:$exit 1*[EVERHART.JTDEMO]JTSAVSPC.OBJ;7+,m. / 4 *- 0123 KPWO56@ KM7y89GHJ 8 JTSAVSPC$MAIN0115-Sep-1996 16:13DEC Fortran V6.1-68 JTSAVSPC$MAINP) JTSAVSPC$MAIN߀,fcn> GCY$STOREP h LIB$GET_FOREIGN@@` 4  `  ,  LIB$SET_SYMBOL@P [<LIB$GET_FOREIGN,k \\ 1q1Q1ADFOR$EXITTP FOR$READ_IF߫ FOR$IO_X_DA FOR$IO_ENDVDV, ` LIB$INDEXPW^()nW\\^(\n\YY\^(0n\X,Xn ˀPQ^WY,YG (lIVLENPxˀ|ˀFOR$OPENP1~~ FOR$READ_KF  FOR$IO_T_DS FOR$IO_ENDPWWY\YYC\ Rb$ScV FOR$DELETEV\ FOR$EXIT_WV14IVLENPX,X ,(X\ FOR$WRITE_SFX  FOR$IO_T_DS FOR$IO_END\FOR$REWRITE_SFX  FOR$IO_T_DS FOR$IO_END FOR$CLOSE(IVLENP( $LIB$SET_SYMBOLFOR$EXITP0PGCY$CM:QDBS.GDS> JTSAVSPC$MAINLIB$GET_FOREIGNFOR$EXIT LIB$INDEXIVLENFOR$OPEN FOR$EXIT_W FOR$CLOSELIB$SET_SYMBOL`$CODE7$PDATA$LOCAL FOR$DELETE FOR$IO_END FOR$IO_T_DS FOR$IO_X_DA FOR$READ_KF FOR$WRITE_SFFOR$REWRITE_SF FOR$READ_IF(P+3P >PGPOPYPP"P1&P/aP jPP P P PP-P-F: `0IVLEN0115-Sep-1996 16:13DEC Fortran V6.1-68 IVLEN IVLENYPP[}PQPмRPRRQPQSSTDTT RPSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C"*[EVERHART.JTDEMO]JTSAVSPC.OBJ_A;10+,n./ 4- 0123KPWO56O}7 h6}89GHJ"FF JTSAVSPC$MAIN 6-NOV-1996 21:51  Digital Fortran 77 T7.1-61 $DATA$$BSS$$IODATA$iT$CODE$$LINK$0J JTSAVSPC$MAINLIB$GET_FOREIGN DFOR$EXIT(J|IVLEN DFOR$OPEN DFOR$HANDLER DFOR$DELETE DFOR$CLOSELIB$SET_SYMBOL DFOR$REWRITE_FMT DFOR$WRITE_SEQ_FMT DFOR$READ_KEY_FMT DFOR$READ_INT_FMT DFOR$SET_REENTRANCY OTS$MOVEMOTS$FILLOTS$MOVE OTS$INDEX8 8= 6\76H7 =\T#~^^~cGG"4G`Bhb@Zk ?$! X=0"1"C\=&s"`}CdX"`="0BR"GGBb@Zk0"0p00B?"B@ZkG8B@Zk0¦.JB0GC5C0"9?G C5*C 0D@5@ 0"!?D @(@ P"4GBb@ZkxB"0 `GX0bs"p}Gh"?&1"X}"GBb@ZkGg0"0FBB4G0B200BR"?"@B@ZkTGG8B@Zk?"4G0pB"B@Zk0@00"935 CGaB#7CF C # C#"G0B_BB@ZkB"GB@Zk0"B"G@B@ZkW"G4GB@ZkG8B@Zk0?#3 C00BGTB?"B@ZkG8B@Zk0"0B?"@B@ZkP""'#X0⦀"C\X"TGHb@0"4G@GH]GP4G8ݶb"00"9#4G=tG=G=]TG4"4G} #tG8]"]G]TGݶ"TG_&R""G@BHb@ZkGb"0" ! `"G`=X0"hp=x?'89#=b {##~"TG_&R"X"h"GBb@ZkGG0"aG00" 0BR0bsuhB@`4G0 0¦֢0 ײ00"$0BZ5@C @"TG_&R"GG0B8b@Zk08D0" !D"4GBb@Zk0TT""?$! X=0BR"C\]X"TGHb{@0"0p0("0BR",?"B@ZkG8B@Zk0¦֢B0ײ0 b"0" 9#0`=X"TG_&R"X" "GBb@Zk0 5@b"0" ! 0`=X"TG_&R"X" "GBb@Zkb""TG_&R"GGpBxb@Zk0( ""?$,! X=C\X"TGHb'@0"X"0"1_& R"X]C\0("1v J&6F`=CdX"`="TGBb@ZkGP"4GBb@Zk4GcG]]}#kGGGGr.rJ+@`JR4G ݦ6  B  @0@ = ݦ֢65BVB.JB 0@ = ݦ֢ B GGGGk.W JF<0G<DFOR$SET_REENTRANCY<4b#DFOR$SET_REENTRANCY<8@<DFOR$SET_REENTRANCY4 GLIB$GET_FOREIGN4 b#LIB$GET_FOREIGN4 @LIB$GET_FOREIGN4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4@GL DFOR$EXIT4Db# DFOR$EXIT4H@L DFOR$EXIT< GDFOR$READ_INT_FMT< b#DFOR$READ_INT_FMT< @DFOR$READ_INT_FMT4GOTS$MOVE4@OTS$MOVE4GOTS$FILL4@OTS$FILL4 G OTS$INDEX4  @ OTS$INDEX4lGt OTS$MOVEM4p@t OTS$MOVEM4|G OTS$MOVEM4@ OTS$MOVEM4GOTS$MOVE4@OTS$MOVE4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL 4G OTS$MOVE4@ OTS$MOVE4G DFOR$OPEN4b# DFOR$OPEN4@ DFOR$OPEN<pG|DFOR$READ_KEY_FMT<tb#DFOR$READ_KEY_FMT<x@|DFOR$READ_KEY_FMT4G$ DFOR$DELETE4b# DFOR$DELETE4 @$ DFOR$DELETE4HGT DFOR$EXIT4Lb# DFOR$EXIT4P@T DFOR$EXIT4G OTS$MOVEM4@ OTS$MOVEM4GOTS$FILL4@OTS$FILL<$G0DFOR$WRITE_SEQ_FMT<(b#DFOR$WRITE_SEQ_FMT<,@0DFOR$WRITE_SEQ_FMT<|GDFOR$REWRITE_FMT<b#DFOR$REWRITE_FMT<@DFOR$REWRITE_FMT4G DFOR$CLOSE4b# DFOR$CLOSE4@ DFOR$CLOSE44G@LIB$SET_SYMBOL48b#LIB$SET_SYMBOL4<@@LIB$SET_SYMBOL4LGX DFOR$EXIT4Pb# DFOR$EXIT4T@X DFOR$EXIT, , DFOR$DELETE DFOR$OPEN= GCY$STORE@ DFOR$CLOSE DFOR$REWRITE_FMT=DBS.GDSp DFOR$READ_INT_FMT LIB$GET_FOREIGN8 OTS$INDEX= 8 DFOR$EXIT;8 OTS$MOVEM=0;=$ 7 DFOR$HANDLER=;8OTS$FILL8OTS$MOVE;=0 DFOR$SET_REENTRANCY= H=8 P=fcn>X=` DFOR$WRITE_SEQ_FMTLIB$SET_SYMBOL=,=@48       2 3   =GCY$CM: DFOR$READ_KEY_FMT= 0|;=O O=?76 JTSAVSPC$MAINDigital Fortran 77 T7.1-61 = 44= JTSAVSPC$MAIN4=qih Ġ999>>>쬨Ш$$ $= (4: := \4= | = |44= IVLEN|4=/'&W [`W$ $= 4: := <4=  =  $*[EVERHART.JTDEMO]JTSAVSPC.OBJ_AXP6;3+,o./ 4- 0123KPWO56`_z7 6_z89GHJ FF JTSAVSPC$MAIN 12-SEP-1996 21:26DEC Fortran V6.2-508` `$DATA$$BSS$$IODATA$i0$CODE$$LINK$0J JTSAVSPC$MAINLIB$GET_FOREIGN DFOR$EXIT(J\IVLEN DFOR$OPEN DFOR$HANDLER DFOR$DELETE DFOR$CLOSELIB$SET_SYMBOL DFOR$REWRITE_FMT DFOR$WRITE_SEQ_FMT DFOR$READ_KEY_FMT DFOR$READ_INT_FMT OTS$MOVEMOTS$FILLOTS$MOVE OTS$INDEX8 8= 6\76H7 =80P#~^^~cGG$ X0\$ `"dX"`="0BR"GGhBpb@Zk0"000BG?"B@ZkG8B@Zk0¦.JB0G8G0"9?G8*G 0D8D 0"!?D(D X"4GHBPb@ZkB"0 GG`X=0"ph"?&1"X}"@GxBb@ZkGj0"0FF4G0B200BR"?"B@ZkTGG8B@Zk?"4G0B"`B@Zk0@00"991 CG!C<CGG"G0BGB@ZkB"GB@ZkGG]"B@Zk"B"GB@ZkGG4GB@Zk0"GG33B]"B@ZkG8B@Zk0#8C00BGTBG?"B@ZkG8B@Zk0"0B?"B@Zk""?'9#X=0⦀"\X"TGb@0"4G@GH]GP4G8ݶXb"00"9#8K4G=tG=G=]TG4"4G} #tG8]"]G]TGݶ"TG_&R""GBb@ZkGb"0" ! `"G`=X0"hp=x?'89#=@b {##~"TG_&R"X"h"GHBPb@ZkGG0"aG00" 0BR_B0bsuhBSF@4G0 0¦֢0 ײ00"$0BZ8@G @"TG_&R"GGBb@Zk08D0" !D8"4GHBPb@Zk0V""?$! X=0BR"\]X"TGb{@0"00("0BR"G,?"B@ZkG8B@Zk0¦֢B0ײ0 b"0" 9#0 H`=X"TG_&R"X"@ "GBb@Zk0 8Db"0" ! 00J`=X"TG_&R"X"@ "GBb@Zkb""TG_&R"GGBb@Zk""$, X0("\X"TGb%@0"0?& 1"X=b"\}&0vJB`0("dX"`="TGBb@ZkGX"4GHBPb@Zk4GcG]]}#kGGGGr.rJ*@R4G8ݦ8 B!8  B0@8ݦ801BPB,H@ 8ݦ֢0B8в8=1 4B?GGGk8GGk.V JF4hGtLIB$GET_FOREIGN4lb#LIB$GET_FOREIGN4p@tLIB$GET_FOREIGN4 @ SAFETY013.Ao $[EVERHART.JTDEMO]JTSAVSPC.OBJ_AXP6;35;8yG OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4 G  DFOR$EXIT4b# DFOR$EXIT4 @  DFOR$EXIT<dGpDFOR$READ_INT_FMT<hb#DFOR$READ_INT_FMT<l@pDFOR$READ_INT_FMT4GOTS$MOVE4@OTS$MOVE4 GOTS$FILL4 @OTS$FILL4G OTS$INDEX4@ OTS$INDEX4 G$ OTS$MOVEM4  @$ OTS$MOVEM4 ,G4 OTS$MOVEM4 0@4 OTS$MOVEM4@GHOTS$MOVE4D@HOTS$MOVE4TG\OTS$MOVE4X@\OTS$MOVE4 hGp OTS$MOVEM4 l@p OTS$MOVEM4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL 4GOTS$MOVE4@OTS$MOVE4G DFOR$OPEN4b# DFOR$OPEN4@ DFOR$OPEN<PG\DFOR$READ_KEY_FMT<Tb#DFOR$READ_KEY_FMT<X@\DFOR$READ_KEY_FMT4G DFOR$DELETE4b# DFOR$DELETE4@ DFOR$DELETE4 ,G8 DFOR$EXIT40b# DFOR$EXIT4 4@8 DFOR$EXIT4 G OTS$MOVEM4 @ OTS$MOVEM4 GOTS$FILL4 @OTS$FILL< GDFOR$WRITE_SEQ_FMT<b#DFOR$WRITE_SEQ_FMT<@DFOR$WRITE_SEQ_FMT<hGtDFOR$REWRITE_FMT<lb#DFOR$REWRITE_FMT<p@tDFOR$REWRITE_FMT4G DFOR$CLOSE4b# DFOR$CLOSE4@ DFOR$CLOSE4G LIB$SET_SYMBOL4b#LIB$SET_SYMBOL4@ LIB$SET_SYMBOL4 ,G8 DFOR$EXIT40b# DFOR$EXIT4 4@8 DFOR$EXIT = DFOR$READ_KEY_FMT=@88       2 3   ,`LIB$SET_SYMBOL DFOR$WRITE_SEQ_FMT==8 =fcn>= =DBS.GDS;=88OTS$MOVE8 OTS$MOVEM=0;= 7 DFOR$HANDLER=;8OTS$FILL; DFOR$EXIT=8 OTS$INDEX LIB$GET_FOREIGN DFOR$READ_INT_FMT=GCY$CM:` DFOR$REWRITE_FMT DFOR$CLOSE= GCY$STORE DFOR$OPEN= DFOR$DELETE= 0\;=I I=910 JTSAVSPC$MAINDEC Fortran V6.2-508 = 44= JTSAVSPC$MAIN4= ج-999 >>>>@@ D@  ̰$$ $= (4: := 84= \ = \44= IVLEN\4=/'&W [aW$ $= l4: := 4=  =  $*[EVERHART.JTDEMO]JTSAVSPC.OBJ_VAX5;5+,p. / 4 ,- 0123 KPWO567 89GHJ 8 JTSAVSPC$MAIN0117-Nov-1996 13:4217-Nov-1996 13:42VAX FORTRAN V5.9-173 JTSAVSPC$MAIN0P׀,fcn> GCY$STORE) JTSAVSPC$MAINP h LIB$GET_FOREIGN@@` 4  ` ,   LIB$SET_SYMBOL@P [<LIB$GET_FOREIGN,k PP 1q1Q1ADFOR$EXIT!TP FOR$READ_IF߫ FOR$IO_X_DA FOR$IO_END\D\, ` LIB$INDEXPV^()nVPP^(Pn^SXXW^(0nW,Wn ˀPQ^VP,PF (lIVLENPxˀ|ˀFOR$OPENP1~~' FOR$READ_KF  FOR$IO_T_DS FOR$IO_ENDVPPCV P`$P`\ FOR$DELETE\V FOR$EXIT_W\1IVLENP\,\ ,(\V'  FOR$WRITE_SF\  FOR$IO_T_DS FOR$IO_ENDV'FOR$REWRITE_SF\  FOR$IO_T_DS FOR$IO_END FOR$CLOSE(IVLENP( $LIB$SET_SYMBOLFOR$EXITP0PGCY$CM:QDBS.GDS> JTSAVSPC$MAINLIB$GET_FOREIGNFOR$EXIT LIB$INDEXIVLENFOR$OPEN FOR$EXIT_W FOR$CLOSELIB$SET_SYMBOLZ$CODE7$PDATA$LOCAL FOR$DELETE FOR$IO_END FOR$IO_T_DS FOR$IO_X_DA FOR$READ_KF FOR$WRITE_SFFOR$REWRITE_SF FOR$READ_IF(P%3P>PGPOPYPP"P+&P/[P dPP P P PP-P-F: Z0IVLEN0117-Nov-1996 13:4217-Nov-1996 13:42VAX FORTRAN V5.9-173 IVLEN IVLEN]PP[}PQPмPQռRQRSSTDTT PQSPPD IVLENG$CODE$PDATA$LOCAL P#9P?P# G%*[EVERHART.JTDEMO]JTSAVSPC.OBJ_VAX62;2+,q. / 4 2- 0123KPWO56皇7e89GHJ 8 JTSAVSPC$MAIN0116-Sep-1996 10:43Digital Fortran V6.4-165 JTSAVSPC$MAINP) JTSAVSPC$MAIN߀,fcn> GCY$STOREP h LIB$GET_FOREIGN@@` 4  `  ,  LIB$SET_SYMBOL@P [<LIB$GET_FOREIGN,k \\ 1q1Q1ADFOR$EXITTP FOR$READ_IF߫ FOR$IO_X_DA FOR$IO_ENDVDV, ` LIB$INDEXPW^()nW\\^(\n\YY\^(0n\X,Xn ˀPQ^WY,YG (lIVLENPxˀ|ˀFOR$OPENP1~~ FOR$READ_KF  FOR$IO_T_DS FOR$IO_ENDPWWY\YYC\ Rb$ScV FOR$DELETEV\ FOR$EXIT_WV14IVLENPX,X ,(X\ FOR$WRITE_SFX  FOR$IO_T_DS FOR$IO_END\FOR$REWRITE_SFX  FOR$IO_T_DS FOR$IO_END FOR$CLOSE(IVLENP( $LIB$SET_SYMBOLFOR$EXITP0PGCY$CM:QDBS.GDS> JTSAVSPC$MAINLIB$GET_FOREIGNFOR$EXIT LIB$INDEXIVLENFOR$OPEN FOR$EXIT_W FOR$CLOSELIB$SET_SYMBOL`$CODE7$PDATA$LOCAL FOR$DELETE FOR$IO_END FOR$IO_T_DS FOR$IO_X_DA FOR$READ_KF FOR$WRITE_SFFOR$REWRITE_SF FOR$READ_IF(P+3P >PGPOPYPP"P1&P/aP jPP P P PP-P-F: `0IVLEN0116-Sep-1996 10:43Digital Fortran V6.4-165 IVLEN IVLENYPP[}PQPмPQPPRQRSSTDTT PQSPPD IVLENC$CODE$PDATA$LOCALP 5P;P  C*[EVERHART.JTDEMO]JTSETUP.COM;30+,r. / 4 - 0123 KPWO56 M7@189GHJ!$! set up logicals JT suite needs$pra$nm=f$device("*VDB*")!$if (nm .nes. "") then goto gotvd,$sysgen connect vdb0:/noada/driver=vdbdriver,$sysgen connect vdb1:/noada/driver=vdbdriver,$sysgen connect vdb2:/noada/driver=vdbdriver$set comm sys$system:asnvdm6)$asnv/assign vdb0: dc2:[zzdisks]test2.dsk)$asnv/assign vdb1: dc2:[zzdisks]test1.dsk$mou/sys vdb0: test2$mou/sys vdb1: test1$gotvd:$if p1 .eqs. "EXIT" then exit$ass/sys vdb1:[junk] jtd$db$! command processes live here:#$! filrst.com file fid1 fid2 filsiz$! makspc.com diskname nblks$ass/sys vdb1:[junk] gcy$cm$!ass/sys n gcy$delsav$ass/sys dkb0:[sysexe2] gcy$sys$jta*uthmaint:==$jtauthmaint$xjta:=="$usr$root:[everhart]jtauthmaint dka700:[y.everhart]junk.junk\ I+KS12U+<*>VPTY+$!jtau dka700:[y.everhart]junk.junk\ I+KS12U+<*>VPTY+N$! ctl mode: 1-open, 1024 = bogus fid chk, 40000x=look at files in driver onlyG$! 65792=chk close, 128=delete control, 16=create exam, 8=cbt on create@$! 32=cbt set, 512=space ctl, 2=chk modfify?, 16384=aldef-only, $! 4096=always ctl size$set comm sys$system:jtdmn$jtdo:==jtdmn/fcnmsk:70547$ass/sys "*.OBJ*" gcy$delexc$ass/sys "Y" gcy$delsav$ass/sys "Y" gcy$spwn2 $ass/sys dc3:[jnk] delsav$ass/sys dc3:[jnk] gcy$scratch$ass/sys vdb1:[junk] gce$delseq$ass/sys 0 jtdel$mode$jtdelmaint:==$jtdelmaint$dp&*[EVERHART.JTDEMO]JTSPACE_TAILOR.COM;16+,s./ 4Sl- 0123 KPWO56`i7pi89GHJ G$! Script to tailor "JTmakspc.com" script to makspc.com per site needs. $set noverify'$! Copyright (c) 1994 Glenn C. Everhart$! All Rights Reserved$ask:==inquire$emit:==write sys$output%$fsr=f$search("gcy$sys:JTmakspc.com")$if fsr .eqs. ""$ then:$ emit "%GCE - F - Cannot find template make-space script"$ exit$ endif$set command sys$system:zmenu$write sys$output ""$write sys$output ""$ write sys$output -"M<>[?4l[?8h",-"(B)07[?6l8#6"$! $minspc=100 $minage=7 $medspc=1000$bigshlv=250000 $minwb=3600 $sslist=""$smptr=1$domenu:?$zmenu/POINTER="-->"/SYMBOLS/initial='f$string(smptr)'% Site Space Policy DeterminationG ^ Set min size file to migrate when space is needed (now 'minspc')? ^ Set min age in days for files to be moved (now 'minage'): ^ Set largest "medium sized" file size (now 'medspc')B ^ Set largest file size eligible for shelving (now 'bigshlv')6 ^ Specify substrings of file patJT to leave alone, ^ Clear substring list (now "'sslist'")= ^ Report space occupied by files which would be selected4 ^ Run the space-making script to free max spaceH ^ Set time-in-wastebasket min. for files to be cleaned up ('minwb')1 ^ Done this menu, build the selection script# ^ Quit the menu, doing nothing$!$ if choice .eq. 11 then exit$ if choise .eq. 9$ thenA$ emit "When making space, the first action is to finally remove"C$ emit "files deleted more than N seconds ago. Here we select the"E$ emit "value of N. If N is 0 or negative, we do not do this purging"$ emit "action here."L$ ask xinwb "Give time (in sec.) since file deletion to leave file on disk:"%$ if xinwb .eqs. "" then xinwb="3600"$ minwb = 'xinwb' $ goto domenu$ endif$ smptr = choice$ if choice .eq. 1$ thenI$ emit "File sizes selected are, First: files between min and max medium"D$ emit "sized file; Second: files bigger than max medium size file;"B$ emit "Third: files smaller than min sized file but over 10 blks"D$ ask msz "Give min. file size to move, blocks [must be 10 or more]""$ if msz .eqs. "" then goto domenu$ mnsz=f$integer(msz)"$ if mnsz .lt. 10 then goto domenu$ minspc = mnsz $ goto domenu$ endif$ if choice .eq. 2$ thenO$ emit "If the minimum age to move is over 9999, we don't shelve files at all."+$ ask mag "Minimum age file to move (days)""$ if mag .eqs. "" then goto domenu$ mnag=f$integer(mag) $ if mag .lt. 2 then goto domenup@ SAFETY013.As &[EVERHART.JTDEMO]JTSPACE_TAILOR.COM;168S@$ minage = mnag $ goto domenu$ endif$ if choice .eq. 3$ thenI$ emit "File sizes selected are, First: files between min and max medium"D$ emit "sized file; Second: files bigger than max medium size file;"B$ emit "Third: files smaller than min sized file but over 10 blks"4$ ask mddd "Largest size of `medium` files (blocks)"#$ if mddd .eqs. "" then goto domenu$ mndd=f$integer(mddd)"$ if mndd .lt. 11 then goto domenu$ medspc = mndd $ goto domenu$ endif$ if choice .eq. 4$ thenI$ emit "File sizes selected are, First: files between min and max medium"D$ emit "sized file; Second: files bigger than max medium size file;"B$ emit "Third: files smaller than min sized file but over 10 blks"3$ ask mddd "Largest size of `large` files (blocks)"#$ if mddd .eqs. "" then goto domenu$ mndd=f$integer(mddd)*$ if mndd .lt. (medspc+2) then goto domenu$ bigshlv = mndd $ goto domenu$ endif$ if choice .eq. 5$ then=$ emit "Give a string to be protected, with normal wildcards"0$ emit "or several strings separated by commas."$ ask fsg "String""$ if fsg .eqs. "" then goto domenu5$ if sslist .nes. "" then sslist = sslist + "," + fsg&$ if sslist .eqs. "" then sslist = fsg $ goto domenu$ endif$ if choice .eq. 6$ then $ sslist = "" $ goto domenu$ endif$ if choice .eq. 7$ then$$ open/read mtp gcy$sys:JTrptspc.com$$ open/write mksf gcy$sys:rptspc.tmp$! find the +++$$$=== marker$x5rdl1:$ read/end=x5doend mtp fline$ lnln=f$length(fline)8$ if f$locate("+++$$$",fline) .lt. lnln then goto x5rde1$ write mksf fline $ goto x5rdl1$x5rde1:$$! insert minal and dayago variables$ write mksf fline*$ write mksf "$dayago = ",f$string(minage))$ write mksf "$minal = ",f$string(minspc))$ write mksf "$medal = ",f$string(medspc)-$ write mksf "$secondsago = ",f$string(minwb).$! now get to second marker which is +++@@@===$x5rdl2:$ read/end=x5doend mtp fline$ lnln=f$length(fline)8$ if f$locate("+++@@@",fline) .lt. lnln then goto x5rde2$ write mksf fline $ goto x5rdl2$x5rde2:$ write mksf fline-$! Now insert any filespec skip instructions.$! line is of formE$! $if f$locate("VMS$CO",vlin) .lt. f$length(vlin) then goto editloop$$if sslist .eqs. "" then goto x5rdl3$elnum=0C$! Get all file pathname parts and insert the desired cuts on them. $x5ellop:"$npart=f$element(elnum,",",sslist)#$if npart .eqs. "" then goto x5rdl3$elnum=elnum+1S$elst="$if f$locate(""" + npart + """,vlin) .lt. f$length(vlin) then goto editloop"$write mksf elst $goto x5ellop$x5rdl3: $! copy the rest of the template$ read/end=x5doend mtp fline$ write mksf fline $ goto x5rdl3 $x5doend: $close mtp $close mksf $nndvc = " "1$ask nndvc "What device do you want a report on?"$xnndvc = nndvc - ":"$xnndvc="*"+xnndvc+"*"B$if nndvc .eqs. "" .or. f$device(xnndvc) .eqs. "" then goto domenu"$emit "Script built. Executing..."&$ getfree = f$getdvi(nndvc,"maxblock")$ getfree = getfree / 10($ if getfree .lt. 100 then getfree = 1000$@gcy$sys:rptspc.tmp 'nndvc' 'f$string(getfree)' $wait 0:0:10 $set noverify $goto domenu$ endif$if choice .eq. 8$ then $ fline=" "$$ open/read mtp gcy$sys:JTmakspc.com$$ open/write mksf gcy$sys:makspc.com$! find the +++$$$=== marker$x6rdl1:$ read/end=x6doend mtp fline$ lnln=f$length(fline)8$ if f$locate("+++$$$",fline) .lt. lnln then goto x6rde1$ write mksf fline $ goto x6rdl1$x6rde1:$$! insert minal and dayago variables$ write mksf fline*$ write mksf "$dayago = ",f$string(minage))$ write mksf "$minal = ",f$string(minspc))$ write mksf "$medal = ",f$string(medspc).$! now get to second marker which is +++@@@===$x6rdl2:$ read/end=x6doend mtp fline$ lnln=f$length(fline)8$ if f$locate("+++@@@",fline) .lt. lnln then goto x6rde2$ write mksf fline $ goto x6rdl2$x6rde2:$ write mksf fline-$! Now insert any filespec skip instructions.$! line is of formE$! $if f$locate("VMS$CO",vlin) .lt. f$length(vlin) then goto editloop$$if sslist .eqs. "" then goto x6rdl3$elnum=0C$! Get all file pathname parts and insert the desired cuts on them. $x6ellop:"$npart=f$element(elnum,",",sslist)#$if npart .eqs. "" then goto x6rdl3$elnum=elnum+1S$elst="$if f$locate(""" + npart + """,vlin) .lt. f$length(vlin) then goto editloop"$write mksf elst $goto x6ellop$x6rdl3: $! copy the rest of the template$ read/end=x6doend mtp fline$ write mksf fline $ goto x6rdl3 $x6doend: $close mtp $close mksf $set noon*$copy gcy$sys:makspc.com gcy$cm:makspc.com$set on9$ask nndvc "What device do you want free space found on?"A$if nndvc .eqs. "" .or. f$search(nndvc) .eqs. "" then goto domenu"$emit "Script built. Executing..."&$ getfree = f$getdvi(nndvc,"maxblock")$ getfree = getfree / 10($ if getfree .lt. 100 then getfree = 1000$@gcy$sys:makspc.com 'nndvc' 'f$string(getfree)' $ goto domenu$ endif$ if choice .eq. 10$ then $! done setup, go edit the file. $ goto doedit$ endif$doedit: $ fline=" "$$ open/read mtp gcy$sys:JTmakspc.com$$ open/write mksf gcy$sys:makspc.com$! find the +++$$$=== marker$rdl1:$ read/end=doend mtp fline$ lnln=f$length(fline)6$ if f$locate("+++$$$",fline) .lt. lnln then goto rde1$ write mksf fline $ goto rdl1$rde1:$$! insert minal and dayago variables$ write mksf fline*$ write mksf "$dayago = ",f$string(minage))$ write mksf "$minal = ",f$string(minspc))$ write mksf "$medal = ",f$string(medspc)+$ write mksf "$maxswp = ",f$string(bigshlv)-$ write mksf "$secondsago = ",f$string(minwb).$! now get to second marker which is +++@@@===$rdl2:$ read/end=doend mtp fline$ lnln=f$length(fline)6$ if f$locate("+++@@@",fline) .lt. lnln then goto rde2$ write mksf fline $ goto rdl2$rde2:$ write mksf fline-$! Now insert any filespec skip instructions.$! line is of formE$! $if f$locate("VMS$CO",vlin) .lt. f$length(vlin) then goto editloop"$if sslist .eqs. "" then goto rdl3$elnum=0C$! Get all file pathname parts and insert the desired cuts on them.$ellop:"$npart=f$element(elnum,",",sslist)!$if npart .eqs. "" then goto rdl3$elnum=elnum+1S$elst="$if f$locate(""" + npart + """,vlin) .lt. f$length(vlin) then goto editloop"$write mksf elst $goto ellop$rdl3: $! copy the rest of the template$ read/end=doend mtp fline$ write mksf fline $ goto rdl3$doend: $close mtp $close mksf $set noon*$copy gcy$sys:makspc.com gcy$cm:makspc.com$set on$exit*[EVERHART.JTDEMO]JTSPAWN.OBJ;40+,t. / 4 f- 0123 KPWO56C_7`?y89GHJ 2JTSPAWN0115-Sep-1996 16:14DEC Fortran V6.1-68JTSPAWNJTSPAWNPGCY$SPWN1GCY$SPWN2GCY$SPWN3write sys$output "OK"$stop/id=0P    LIB$SYS_TRNLOG@   LIB$SYS_TRNLOG@ @ LIB$SYS_TRNLOG@X JRT1_SUB_PUT@ 44 JRT1_SUB_PUT@ JRT2_SUB_PUT@ 44 JRT2_SUB_PUT@  JRT3_SUB_PUT@ 4H4 JRT3_SUB_PUT@QP<[}PQPмT<PPDh1T4LIB$SYS_TRNLOGʏPxYxyDHL LIB$SPAWNЫ P JRT1_SUB_INITTtRLIB$SYS_TRNLOGʏPxYxy˄ˈˌ LIB$SPAWNЫ P JRT2_SUB_INITT˴LIB$SYS_TRNLOGʏPxYxy LIB$SPAWNЫ P JRT3_SUB_INITDhT1 JRT1_SUB_PUT JRT1_SUB_PUT<U  JRT1_SUB_GET-x ?-x APPUUPLIB$WAIT, JRT1_SUB_PUT JRT1_SUB_INITT148< JRT2_SUB_PUTL JRT2_SUB_PUTdUT JRT2_SUB_GET-x ?-x APPUUPdLIB$WAITt JRT2_SUB_PUT JRT2_SUB_INITT1|ˀ˄ JRT3_SUB_PUT˔ JRT3_SUB_PUT U˜ JRT3_SUB_GET-x ?-x APPUUPˬLIB$WAIT˼ JRT3_SUB_PUT JRT3_SUB_INITЫP?POKNG <JTSPAWNLIB$SYS_TRNLOG LIB$SPAWN JRT1_SUB_INIT JRT2_SUB_INIT JRT3_SUB_INIT JRT1_SUB_PUT JRT1_SUB_GETLIB$WAIT JRT2_SUB_PUT JRT2_SUB_GET JRT3_SUB_PUT JRT3_SUB_GET$CODEC$PDATAX$LOCAL)P/P?@P'HPPPsPCP+PPPCP*PP P<P+KPZPkPPP+PPP*P\P+kPzPP L g  !*[EVERHART.JTDEMO]JTSPAWN.OBJ_A;15+,u./ 4- 0123KPWO56k=>7@`>89GHJ@@JTSPAWN 11-SEP-1996 20:43Digital Fortran 77 T7.0-1  $DATA$$BSS$$IODATA$i $CODE$z$LINK$(JJTSPAWNLIB$SYS_TRNLOG LIB$SPAWN JRT1_SUB_INIT JRT2_SUB_INIT JRT3_SUB_INIT JRT1_SUB_PUT JRT1_SUB_GETLIB$WAIT JRT2_SUB_PUT JRT2_SUB_GET JRT3_SUB_PUT JRT3_SUB_GETOTS$STRCMP_EQLP, ,6  = #~ ^(^0~8@HG#GGGD.DJQ@J]4G "C@NCR@c8`FJ`" $ C=_&R"]  C" "1"]"tG@BHb@Zk " 0F "  B R'@ bsF`B8kF` FB8F 5vJ&FC BZ#^"GGGGGGBb@Zk "  GGBb@ZkXDJ" & "C=&s"} "C" "1"]"tG@BHb@Zk " 0F "  B R'@ bsF`B8kF` FB8F 5vJ&FC BZ#^"GGGGGGBb@Zk "  GGBb@ZkxDJ" & "C=&s"} "C" "1"]"tG@BHb@Zk " 0F "  B R'@ bsF`B8kF` FB8F 5vJ&FC BZ#^"GGGGGGBb@Zk "  GXGBb@ZkL4GC 8Fl "11v J_&2F=C"4GPBXb@Zk( ?$! =C"4GPBXb@Zk "&" BR"C]" " BR"tGBb@Zk  "!TG B"B"GB@Zk1 7TG B"B"GB@Zk#  "991 C "!  "4GBb@Zk` ?$ ! =C"4GPBXb@ZkGBb@ZkGG4GG#X Dl 0vJ?&FC}"4GBb@Zk( ?$! =C"4GBb@ZkG "&" BR"C]" " BR"tG`Bhb@Zk  "!TG B"B"GB@Zk1 7TG B"B"GB@Zk#  "991 C "!  "4GBb@Zk` ?$ ! =C"4GBb@ZkGBb@ZkGGs4GGp#x Dl 0vJ?&FC}"4GpBxb@Zk( ?$! =C"4GpBxb@ZkG "&" BR"C]" " BR"tGpBxb@Zk  "!TG B"B"GB@Zk1 7TG B"B"GB@Zk#  "991 C "!  "4GBb@Zk` ?$ ! =C"4GpBxb@ZkGBb@ZkGG4GGGG ](]0}8@HP#kd.S dJrF4GLIB$SYS_TRNLOG4b#LIB$SYS_TRNLOG4@LIB$SYS_TRNLOG4 xG LIB$SPAWN4 |b# LIB$SPAWN4 @ LIB$SPAWN4G JRT1_SUB_INIT4b# JRT1_SUB_INIT4@ JRT1_SUB_INIT4G LIB$SYS_TRNLOG4b#LIB$SYS_TRNLOG4@ LIB$SYS_TRNLOG4 G LIB$SPAWN4 b# LIB$SPAWN4 @ LIB$SPAWN4G JRT2_SUB_INIT4b# JRT2_SUB_INIT4@ JRT2_SUB_INIT44G@LIB$SYS_TRNLOG48b#LIB$SYS_TRNLOG4<@@LIB$SYS_TRNLOG4 G LIB$SPAWN4 b# LIB$SPAWN4 @ LIB$SPAWN4G JRT3_SUB_INIT4 b# JRT3_SUB_INIT4@ JRT3_SUB_INIT4`Gl JRT1_SUB_PUT4db# JRT1_SUB_PUT4h@l JRT1_SUB_PUT 4G JRT1_SUB_PUT4b# JRT1_SUB_PUT4@ JRT1_SUB_PUT4G JRT1_SUB_GET4b# JRT1_SUB_GET4@ JRT1_SUB_GET4  GOTS$STRCMP_EQLP4 @OTS$STRCMP_EQLP4 8G@OTS$STRCMP_EQLP4 <@@OTS$STRCMP_EQLP4GLIB$WAIT4b#LIB$WAIT4@LIB$WAIT4G JRT1_SUB_PUT4b# JRT1_SUB_PUT4@ JRT1_SUB_PUT4G JRT1_SUB_INIT4b# JRT1_SUB_INIT4@ SAFETY013.Au ![EVERHART.JTDEMO]JTSPAWN.OBJ_A;15VAX5;8  @ JRT1_SUB_INIT4 G( JRT2_SUB_PUT4  b# JRT2_SUB_PUT4 $@( JRT2_SUB_PUT4 HGT JRT2_SUB_PUT4 Lb# JRT2_SUB_PUT4 P@T JRT2_SUB_PUT4G JRT2_SUB_GET4b# JRT2_SUB_GET4@ JRT2_SUB_GET4 GOTS$STRCMP_EQLP4 @OTS$STRCMP_EQLP4 GOTS$STRCMP_EQLP4 @OTS$STRCMP_EQLP4<GHLIB$WAIT4@b#LIB$WAIT4D@HLIB$WAIT4 lGx JRT2_SUB_PUT4 pb# JRT2_SUB_PUT4 t@x JRT2_SUB_PUT4|G JRT2_SUB_INIT4b# JRT2_SUB_INIT4@ JRT2_SUB_INIT4G JRT3_SUB_PUT4b# JRT3_SUB_PUT4@ JRT3_SUB_PUT4G JRT3_SUB_PUT4b# JRT3_SUB_PUT4 @ JRT3_SUB_PUT4LGX JRT3_SUB_GET4Pb# JRT3_SUB_GET4T@X JRT3_SUB_GET4 GOTS$STRCMP_EQLP4 @OTS$STRCMP_EQLP4 GOTS$STRCMP_EQLP4 @OTS$STRCMP_EQLP4G LIB$WAIT4b#LIB$WAIT4 @ LIB$WAIT4( G4 JRT3_SUB_PUT4, b# JRT3_SUB_PUT40 @4 JRT3_SUB_PUT48 GD JRT3_SUB_INIT4< b# JRT3_SUB_INIT4@ @D JRT3_SUB_INIT  JRT2_SUB_GET JRT3_SUB_GET= GCY$SPWN10 JRT2_SUB_INIT JRT1_SUB_INIT=@` JRT2_SUB_PUT=NG LIB$SPAWN=OK8OTS$STRCMP_EQLP=0 ;=P< ;= write sys$output "OK"LIB$SYS_TRNLOG JRT1_SUB_PUT= $stop/id=0 JRT3_SUB_PUTLIB$WAIT;@ JRT3_SUB_INIT JRT1_SUB_GET= GCY$SPWN3p= GCY$SPWN2H H=80/ JTSPAWNDigital Fortran 77 T7.0-1  = 44= JTSPAWN4=ĤĤĤGb}($ $= P4: := d 4=   =  0@ SAFETY013.Av #[EVERHART.JTDEMO]JTSPAWN.OBJ_AXP6;7X62;5V#*[EVERHART.JTDEMO]JTSPAWN.OBJ_AXP6;7+,v./ 4B- 0123KPWO5647d489GHJ$@@JTSPAWN 5-OCT-1996 10:54DEC Fortran V6.2-508  $DATA$$BSS$$IODATA$i $CODE$z$LINK$(JJTSPAWNLIB$SYS_TRNLOG LIB$SPAWN JRT1_SUB_INIT JRT2_SUB_INIT JRT3_SUB_INIT JRT1_SUB_PUT JRT1_SUB_GETLIB$WAIT JRT2_SUB_PUT JRT2_SUB_GET JRT3_SUB_PUT JRT3_SUB_GETOTS$STRCMP_EQLP, ,6  = #~ ^(^0~8@HG#GGG$,$H,=TG= "!C@NCR@8DE& """=$  "" "1"]"tG@BHb@Zk " 0F "  B R$@ bsF8kF` F8F &5vJB "9#>"GGGGGGBb@Zk "  GGBb@ZkXDE?$ ! =""=&s"} "" "1"]"tG@BHb@Zk " 0F "  B R$@ bsF8kF` F8F &5vJB "9#>"GGGGGGBb@Zk "  GGBb@ZkxDE?$ ! =""=&s"} "" "1"]"tG@BHb@Zk " 0F "  B R$@ bsF8kF` F8F &5vJB "9#>"GGGGGGBb@Zk "  GCGBb@ZkL4GC 8Fe "1_&1v J2B="4GPBXb@Zk$ (""4GPBXb@Zk "&" BR"]" " BR"tGBb@Zk  "!TG "B"GB@Zk. 7TG "B"GB@ZkGG  "991 C "!  "4GBb@Zk$ `""4GPBXb@ZkGBb@Zk4GG#X De ?&0vJB"4GBb@Zk$ (""4GBb@ZkG "&" BR"]" " BR"tG`Bhb@Zk  "!TG "B"GB@Zk. 7TG "B"GB@ZkGG  "991 C "!  "4GBb@Zk$ `""4GBb@ZkGBb@Zk4GGi#x De ?&0vJB"4GpBxb@Zk$ (""4GpBxb@ZkG "&" BR"]" " BR"tGpBxb@Zk  "!TG "B"GB@Zk. 7TG "B"GB@ZkGG%  "991 C "!  "4GBb@Zk$ `""4GpBxb@ZkGBb@Zk4GGGG ](]0}8@HP#kD.R DJAF4GLIB$SYS_TRNLOG4b#LIB$SYS_TRNLOG4@LIB$SYS_TRNLOG4 \Gh LIB$SPAWN4 `b# LIB$SPAWN4 d@h LIB$SPAWN4G JRT1_SUB_INIT4b# JRT1_SUB_INIT4@ JRT1_SUB_INIT4GLIB$SYS_TRNLOG4b#LIB$SYS_TRNLOG4@LIB$SYS_TRNLOG4 |G LIB$SPAWN4 b# LIB$SPAWN4 @ LIB$SPAWN4G JRT2_SUB_INIT4b# JRT2_SUB_INIT4@ JRT2_SUB_INIT4GLIB$SYS_TRNLOG4b#LIB$SYS_TRNLOG4@LIB$SYS_TRNLOG4 G LIB$SPAWN4 b# LIB$SPAWN4 @ LIB$SPAWN4G JRT3_SUB_INIT4b# JRT3_SUB_INIT4@ JRT3_SUB_INIT4G$ JRT1_SUB_PUT4b# JRT1_SUB_PUT4 @$ JRT1_SUB_PUT4@GL JRT1_SUB_PUT4Db# JRT1_SUB_PUT4H@L JRT1_SUB_PUT4 4 4G JRT1_SUB_GET4b# JRT1_SUB_GET4@ JRT1_SUB_GET4 GOTS$STRCMP_EQLP4 @OTS$STRCMP_EQLP4 GOTS$STRCMP_EQLP4 @OTS$STRCMP_EQLP40G<LIB$WAIT44b#LIB$WAIT48@<LIB$WAIT4\Gh JRT1_SUB_PUT4`b# JRT1_SUB_PUT4d@h JRT1_SUB_PUT4lGx JRT1_SUB_INIT4pb# JRT1_SUB_INIT4t@x JRT1_SUB_INIT4 G JRT2_SUB_PUT4 b# JRT2_SUB_PUT4 @ JRT2_SUB_PUT4 G JRT2_SUB_PUT4 b# JRT2_SUB_PUT4 @ JRT2_SUB_PUT4$G0 JRT2_SUB_GET4(b# JRT2_SUB_GET4,@0 JRT2_SUB_GET4 XG`OTS$STRCMP_EQLP4 \@`OTS$STRCMP_EQLP4 GOTS$STRCMP_EQLP4 @OTS$STRCMP_EQLP4GLIB$WAIT4b#LIB$WAIT4@LIB$WAIT4 G JRT2_SUB_PUT4 b# JRT2_SUB_PUT4 @ JRT2_SUB_PUT4 G JRT2_SUB_INIT4b# JRT2_SUB_INIT4@ JRT2_SUB_INIT4XGd JRT3_SUB_PUT4\b# JRT3_SUB_PUT4`@d JRT3_SUB_PUT4G JRT3_SUB_PUT4b# JRT3_SUB_PUT4@ JRT3_SUB_PUT4G JRT3_SUB_GET4b# JRT3_SUB_GET4@ JRT3_SUB_GET4 GOTS$STRCMP_EQLP4 @OTS$STRCMP_EQLP4  G(OTS$STRCMP_EQLP4 $@(OTS$STRCMP_EQLP4pG|LIB$WAIT4tb#LIB$WAIT4x@|LIB$WAIT4G JRT3_SUB_PUT4b# JRT3_SUB_PUT4@ JRT3_SUB_PUT4G JRT3_SUB_INIT4b# JRT3_SUB_INIT4@ JRT3_SUB_INIT  JRT2_SUB_GET JRT3_SUB_GET= GCY$SPWN10 JRT2_SUB_INIT JRT1_SUB_INIT=@` JRT2_SUB_PUT=NG LIB$SPAWN=OK8OTS$STRCMP_EQLP=0 ;=P< ;= write sys$output "OK"LIB$SYS_TRNLOG JRT1_SUB_PUT= $stop/id=0 JRT3_SUB_PUTLIB$WAIT;@ JRT3_SUB_INIT JRT1_SUB_GET= GCY$SPWN3p= GCY$SPWN2C C=3+*JTSPAWNDEC Fortran V6.2-508 = 44= JTSPAWN4=̨̨̨($ $= 44: := 4=   =  #*[EVERHART.JTDEMO]JTSPAWN.OBJ_VAX5;8+,w. / 4 z- 0123 KPWO56_7`B89GHJ 2JTSPAWN0117-Nov-1996 13:4017-Nov-1996 13:40VAX FORTRAN V5.9-173JTSPAWNFPGCY$SPWN1GCY$SPWN2GCY$SPWN3write sys$output "OK"$stop/id=0JTSPAWNP    LIB$SYS_TRNLOG@   LIB$SYS_TRNLOG@ @ LIB$SYS_TRNLOG@X JRT1_SUB_PUT@ 44 JRT1_SUB_PUT@ JRT2_SUB_PUT@ 44 JRT2_SUB_PUT@  JRT3_SUB_PUT@ 4H4 JRT3_SUB_PUT@QP[}PQP<мP@h1Ѽ4LIB$SYS_TRNLOGʏPxYxyDHL LIB$SPAWNЫ P JRT1_SUB_INITѼtLIB$SYS_TRNLOGʏPxYxy˄ˈˌ! LIB$SPAWNЫ P JRT2_SUB_INITѼ˴LIB$SYS_TRNLOGʏPxYxy LIB$SPAWNЫ P JRT3_SUB_INITмP@hѼ1 JRT1_SUB_PUT JRT1_SUB_PUT<T  JRT1_SUB_GET-x ?-x APPTTPLIB$WAIT, JRT1_SUB_PUT JRT1_SUB_INITѼ148< JRT2_SUB_PUTL JRT2_SUB_PUTdTT JRT2_SUB_GET-x ?-x APPTTPdLIB$WAITt JRT2_SUB_PUT JRT2_SUB_INITѼ1|ˀ˄ JRT3_SUB_PUT˔ JRT3_SUB_PUT T˜ JRT3_SUB_GET-x ?-x APPTTPˬLIB$WAIT˼ JRT3_SUB_PUT JRT3_SUB_INITP?POKNG JTSPAWNLIB$SYS_TRNLOG LIB$SPAWN JRT1_SUB_INIT JRT2_SUB_INIT JRT3_SUB_INIT JRT1_SUB_PUT JRT1_SUB_GETLIB$WAIT JRT2_SUB_PUT JRT2_SUB_GET JRT3_SUB_PUT JRT3_SUB_GET$CODEC$PDATAX$LOCAL*P1PABP)JPRPxPBP*PPPFP-PPPLP+[PjP{PPP+PP P;PlP+{PPP M h $*[EVERHART.JTDEMO]JTSPAWN.OBJ_VAX62;3+,y. / 4 n- 0123KPWO56皇7A89GHJ 2JTSPAWN0116-Sep-1996 14:24Digital Fortran V6.4-165JTSPAWNJTSPAWNPGCY$SPWN1GCY$SPWN2GCY$SPWN3write sys$output "OK"$stop/id=0P    LIB$SYS_TRNLOG@   LIB$SYS_TRNLOG@ @ LIB$SYS_TRNLOG@X JRT1_SUB_PUT@ 44 JRT1_SUB_PUT@ JRT2_SUB_PUT@ 44 JRT2_SUB_PUT@  JRT3_SUB_PUT@ 4H4 JRT3_SUB_PUT@QP<[}PQPмT<PPDh1T4LIB$SYS_TRNLOGʏPxYxyDHL LIB$SPAWNЫ P JRT1_SUB_INITTtQLIB$SYS_TRNLOGʏPxYxy˄ˈˌ LIB$SPAWNЫ P JRT2_SUB_INITT˴LIB$SYS_TRNLOGʏPxYxy LIB$SPAWNЫ P JRT3_SUB_INITDhT1 JRT1_SUB_PUT JRT1_SUB_PUT<U  JRT1_SUB_GET-x ?-x APPUUPLIB$WAIT, JRT1_SUB_PUT JRT1_SUB_INITT148< JRT2_SUB_PUTL JRT2_SUB_PUTdUT JRT2_SUB_GET-x ?-x APPUUPdLIB$WAITt JRT2_SUB_PUT JRT2_SUB_INITT1|ˀ˄ JRT3_SUB_PUT˔ JRT3_SUB_PUT U˜ JRT3_SUB_GET-x ?-x APPUUPˬLIB$WAIT˼ JRT3_SUB_PUT JRT3_SUB_INITP?POKNG <JTSPAWNLIB$SYS_TRNLOG LIB$SPAWN JRT1_SUB_INIT JRT2_SUB_INIT JRT3_SUB_INIT JRT1_SUB_PUT JRT1_SUB_GETLIB$WAIT JRT2_SUB_PUT JRT2_SUB_GET JRT3_SUB_PUT JRT3_SUB_GET$CODEC$PDATAX$LOCAL-P3P?DP'LPTPwPCP+PPPCP*PPP@P+OP^PoPPP+PPP.P`P+oP~PP@ SAFETY013.Ay $[EVERHART.JTDEMO]JTSPAWN.OBJ_VAX62;362;5 0- M h  !*[EVERHART.JTDEMO]JTSUBPRC1.OBJ;35+,{. / 4 - 0123 KPWO56-7@jy89GHJ:JTSUBPRC_CONTROL015-SEP-1996 16:18 VAX MACRO V5.4-3MACRO JTSUBPRC1 JTSUBPRC_CONTROL+ LIB$SPAWN SYS$CREMBXSYS$QIOW . ABS .P$ABS$PPPPp$PDATAP 4Ld <JRT1_MBX_INPUTQ TJRT1_MBX_OUTPUTQ`$LOCALsPQhlQ QQTQQQQQ$CODEP  JRT1_SUB_GET&^ 3Џq  3ЬP`  3Р 3 SYS$QIOWPT<T3Џ   Z JRT1_SUB_INIT&\343 SYS$CREMBX^3L3 SYS$CREMBX LIB$SPAWN  JRT1_SUB_PUT&T\ 3Џp  3ЬP`  3Р 3 SYS$QIOWK JRT1_SUB_GETZ JRT1_SUB_INIT JRT1_SUB_PUT<$PDATAp$LOCAL`$CODE#*[EVERHART.JTDEMO]JTSUBPRC1.OBJ_A;14+,|. / 4  N- 0123KPWO56 7` 89GHJJJJTSUBPRC_CONTROLV113-APR-1996 19:26AMAC V3.0-13  . ABS . . BLANK . $ABS$p$PDATA`$LOCAL$CODE$LINKAGESYS$QIOW SYS$CREMBX LIB$SPAWNAMAC$EMUL_CALL0J JRT1_SUB_GET0J`0 JRT1_SUB_INIT0J JRT1_SUB_PUT8 8= 44L4d4=0$ <4=JRT1_MBX_INPUTL= T4=JRT1_MBX_OUTPUTd=  = h4l4= = 0T4=D=  =#~(^08 GG8m[R@K(-9#XKG( "q"ײC`/`K.( #WJF(#ܲ(m@M= ]":";PMXm@Zk= ]H35C`0ͦK35C `0m{#[R@KQ?#2G(08@#k# /Z KzGGG#~^ GG@(m{#HM(-9#Y( 0ͦ"6"8Mm@Zk(m{#PM(-9#Y( 0ͦ"6"8Mm@ZkX8m";"C~0^8 G@HG((OC\o4GZ@KR`K[G(O,/.J*@oA@ͦ[`KwG@o@8m<O0M=G ] /@ZkH= ](35`C`T4 K35 C`T75CRKGG08@HCkGGҲ/V KFG>C~^ GG(M0ͦCFC|\CMGC~^ G (G(OC\oGZ@Ky`KYG(O,.J@OAmZ@KVGͦ@OM G</ /@ZkG (Ck`/\ `KF4pm#AMAC$EMUL_CALL4xGAMAC$EMUL_CALL4@AMAC$EMUL_CALL4LG`AMAC$EMUL_CALL4Xm#HAMAC$EMUL_CALL4\@`AMAC$EMUL_CALL4|GAMAC$EMUL_CALL4m#HAMAC$EMUL_CALL4@AMAC$EMUL_CALL4GAMAC$EMUL_CALL4m#HAMAC$EMUL_CALL4@AMAC$EMUL_CALL4,m#AMAC$EMUL_CALL4@GXAMAC$EMUL_CALL4T@XAMAC$EMUL_CALL = h4l4= = 0T4=D=8 8= 44L4d4=0$ <4=JRT1_MBX_INPUTL= T4=JRT1_MBX_OUTPUTd=  %*[EVERHART.JTDEMO]JTSUBPRC1.OBJ_VAX5;6+,~. / 4 - 0123 KPWO56}党7党89GHJ:JTSUBPRC_CONTROL014-SEP-1996 16:46 VAX MACRO V5.4-3MACRO JTSUBPRC1 JTSUBPRC_CONTROL+ LIB$SPAWN SYS$CREMBXSYS$QIOW . ABS .P$ABS$PPPPp$PDATAP 4Ld <JRT1_MBX_INPUTQ TJRT1_MBX_OUTPUTQ`$LOCALsPQhlQ QQTQQQQQ$CODEP  JRT1_SUB_GET&^ 3Џq  3ЬP`  3Р 3 SYS$QIOWPT<T3Џ   Z JRT1_SUB_INIT&\343 SYS$CREMBX^3L3 SYS$CREMBX LIB$SPAWN  JRT1_SUB_PUT&T\ 3Џp  3ЬP`  3Р 3 SYS$QIOWK JRT1_SUB_GETZ JRT1_SUB_INIT JRT1_SUB_PUT<$PDATAp$LOCAL`$CODE&*[EVERHART.JTDEMO]JTSUBPRC1.OBJ_VAX62;2+,. / 4 - 0123KPWO56皇7@89GHJ:JTSUBPRC_CONTROL016-SEP-1996 10:34 VAX MACRO V5.4-3MACRO JTSUBPRC1 JTSUBPRC_CONTROL+ LIB$SPAWN SYS$CREMBXSYS$QIOW . ABS .P$ABS$PPPPp$PDATAP 4Ld <JRT1_MBX_INPUTQ TJRT1_MBX_OUTPUTQ`$LOCALsPQhlQ QQTQQQQQ$CODEP  JRT1_SUB_GET&^ 3Џq  3ЬP`  3Р 3 SYS$QIOWPT<T3Џ   Z JRT1_SUB_INIT&\343 SYS$CREMBX^3L3 SYS$CREMBX LIB$SPAWN  JRT1_SUB_PUT&T\ 3Џp  3ЬP`  3Р 3 SYS$QIOWK JRT1_SUB_GETZ JRT1_SUB_INIT JRT1_SUB_PUT<$PDATAp$LOCAL`$CODE!*[EVERHART.JTDEMO]JTSUBPRC2.OBJ;35+,. / 4 - 0123 KPWO567 My89GHJ:JTSUBPRC_CONTROL015-SEP-1996 16:18 VAX MACRO V5.4-3MACRO JTSUBPRC2 JTSUBPRC_CONTROL+ LIB$SPAWN SYS$CREMBXSYS$QIOW . ABS .P$ABS$PPPPp$PDATAP 4Ld <JRT2_MBX_INPUTQ TJRT2_MBX_OUTPUTQ`$LOCALsPQhlQ QQTQQQQQ$CODEP  JRT2_SUB_GET&^ 3Џq  3ЬP`  3Р 3 SYS$QIOWPT<T3Џ   Z JRT2_SUB_INIT&\343 SYS$CREMBX^3L3 SYS$CREMBX LIB$SPAWN  JRT2_SUB_PUT&T\ 3Џp  3ЬP`  3Р 3 SYS$QIOWK JRT2_SUB_GETZ JRT2_SUB_INIT JRT2_SUB_PUT<$PDATAp$LOCAL`$CODE#*[EVERHART.JTDEMO]JTSUBPRC2.OBJ_A;14+,. / 4  N- 0123KPWO56@, 7 I 89GHJJJJTSUBPRC_CONTROLV113-APR-1996 19:26AMAC V3.0-13  . ABS . . BLANK . $ABS$p$PDATA`$LOCAL$CODE$LINKAGESYS$QIOW SYS$CREMBX LIB$SPAWNAMAC$EMUL_CALL0J JRT2_SUB_GET0J`0 JRT2_SUB_INIT0J JRT2_SUB_PUT @ SAFETY013.A #[EVERHART.JTDEMO]JTSUBPRC2.OBJ_A;14X62;5  , 8 8= 44L4d4=0$ <4=JRT2_MBX_INPUTL= T4=JRT2_MBX_OUTPUTd=  = h4l4= = 0T4=D=  =#~(^08 GG8m[R@K(-9#XKG( "q"ײC`/`K.( #WJF(#ܲ(m@M= ]":";PMXm@Zk= ]H35C`0ͦK35C `0m{#[R@KQ?#2G(08@#k# /Z KzGGG#~^ GG@(m{#HM(-9#Y( 0ͦ"6"8Mm@Zk(m{#PM(-9#Y( 0ͦ"6"8Mm@ZkX8m";"C~0^8 G@HG((OC\o4GZ@KR`K[G(O,/.J*@oA@ͦ[`KwG@o@8m<O0M=G ] /@ZkH= ](35`C`T4 K35 C`T75CRKGG08@HCkGGҲ/V KFG>C~^ GG(M0ͦCFC|\CMGC~^ G (G(OC\oGZ@Ky`KYG(O,.J@OAmZ@KVGͦ@OM G</ /@ZkG (Ck`/\ `KF4pm#AMAC$EMUL_CALL4xGAMAC$EMUL_CALL4@AMAC$EMUL_CALL4LG`AMAC$EMUL_CALL4Xm#HAMAC$EMUL_CALL4\@`AMAC$EMUL_CALL4|GAMAC$EMUL_CALL4m#HAMAC$EMUL_CALL4@AMAC$EMUL_CALL4GAMAC$EMUL_CALL4m#HAMAC$EMUL_CALL4@AMAC$EMUL_CALL4,m#AMAC$EMUL_CALL4@GXAMAC$EMUL_CALL4T@XAMAC$EMUL_CALL = h4l4= = 0T4=D=8 8= 44L4d4=0$ <4=JRT2_MBX_INPUTL= T4=JRT2_MBX_OUTPUTd=  %*[EVERHART.JTDEMO]JTSUBPRC2.OBJ_VAX5;6+,. / 4 - 0123 KPWO56 S党7 党89GHJ:JTSUBPRC_CONTROL014-SEP-1996 16:47 VAX MACRO V5.4-3MACRO JTSUBPRC2 JTSUBPRC_CONTROL+ LIB$SPAWN SYS$CREMBXSYS$QIOW . ABS .P$ABS$PPPPp$PDATAP 4Ld <JRT2_MBX_INPUTQ TJRT2_MBX_OUTPUTQ`$LOCALsPQhlQ QQTQQQQQ$CODEP  JRT2_SUB_GET&^ 3Џq  3ЬP`  3Р 3 SYS$QIOWPT<T3Џ   Z JRT2_SUB_INIT&\343 SYS$CREMBX^3L3 SYS$CREMBX LIB$SPAWN  JRT2_SUB_PUT&T\ 3Џp  3ЬP`  3Р 3 SYS$QIOWK JRT2_SUB_GETZ JRT2_SUB_INIT JRT2_SUB_PUT<$PDATAp$LOCAL`$CODE&*[EVERHART.JTDEMO]JTSUBPRC2.OBJ_VAX62;2+,. / 4 - 0123KPWO56皇7@遘89GHJ:JTSUBPRC_CONTROL016-SEP-1996 10:35 VAX MACRO V5.4-3MACRO JTSUBPRC2 JTSUBPRC_CONTROL+ LIB$SPAWN SYS$CREMBXSYS$QIOW . ABS .P$ABS$PPPPp$PDATAP 4Ld <JRT2_MBX_INPUTQ TJRT2_MBX_OUTPUTQ`$LOCALsPQhlQ QQTQQQQQ$CODEP  JRT2_SUB_GET&^ 3Џq  3ЬP`  3Р 3 SYS$QIOWPT<T3Џ   Z JRT2_SUB_INIT&\343 SYS$CREMBX^3L3 SYS$CREMBX LIB$SPAWN  JRT2_SUB_PUT&T\ 3Џp  3ЬP`  3Р 3 SYS$QIOWK JRT2_SUB_GETZ JRT2_SUB_INIT JRT2_SUB_PUT<$PDATAp$LOCAL`$CODE!*[EVERHART.JTDEMO]JTSUBPRC3.OBJ;35+,. / 4 - 0123 KPWO56@7ry89GHJ:JTSUBPRC_CONTROL015-SEP-1996 16:18 VAX MACRO V5.4-3MACRO JTSUBPRC3 JTSUBPRC_CONTROL+ LIB$SPAWN SYS$CREMBXSYS$QIOW . ABS .P$ABS$PPPPp$PDATAP 4Ld <JRT3_MBX_INPUTQ TJRT3_MBX_OUTPUTQ`$LOCALsPQhlQ QQTQQQQQ$CODEP  JRT3_SUB_GET&^ 3Џq  3ЬP`  3Р 3 SYS$QIOWPT<T3Џ   Z JRT3_SUB_INIT&\343 SYS$CREMBX^3L3 SYS$CREMBX LIB$SPAWN  JRT3_SUB_PUT&T\ 3Џp  3ЬP`  3Р 3 SYS$QIOWK JRT3_SUB_GETZ JRT3_SUB_INIT JRT3_SUB_PUT<$PDATAp$LOCAL`$CODE#*[EVERHART.JTDEMO]JTSUBPRC3.OBJ_A;14+,. / 4  N- 0123KPWO56^ 7`j} 89GHJJJJTSUBPRC_CONTROLV113-APR-1996 19:27AMAC V3.0-13  . ABS . . BLANK . $ABS$p$PDATA`$LOCAL$CODE$LINKAGESYS$QIOW SYS$CREMBX LIB$SPAWNAMAC$EMUL_CALL0J JRT3_SUB_GET0J`0 JRT3_SUB_INIT0J JRT3_SUB_PUT8 8= 44L4d4=0$ <4=JRT3_MBX_INPUTL= T4=JRT3_MBX_OUTPUTd=  = h4l4= = 0T4=D=  =#~(^08 GG8m[R@K(-9#XKG( "q"ײC`/`K.( #WJF(#ܲ(m@M= ]":";PMXm@Zk= ]H35C`0ͦK35C `0m{#[R@KQ?#2G(08@#k# /Z KzGGG#~^ GG@(m{#HM(-9#Y( 0ͦ"6"8Mm@Zk(m{#PM(-9#Y( 0ͦ"6"8Mm@ZkX8m";"C~0^8 G@HG((OC\o4GZ@KR`K[G(O,/.J*@oA@ͦ[`KwG@o@8m<O0M=G ] /@ZkH= ](35`C`T4 K35 C`T75CRKGG08@HCkGGҲ/V KFG>C~^ GG(M0ͦCFC|\CMGC~^ G (G(OC\oGZ@Ky`KYG(O,.J@OAmZ@KVGͦ@OM G</ /@ZkG (Ck`/\ `KF4pm#AMAC$EMUL_CALL4xGAMAC$EMUL_CALL4@AMAC$EMUL_CALL4LG`AMAC$EMUL_CALL4Xm#HAMAC$EMUL_CALL4\@`AMAC$EMUL_CALL4|GAMAC$EMUL_CALL4m#HAMAC$EMUL_CALL4@AMAC$EMUL_CALL4GAMAC$EMUL_CALL4m#HAMAC$EMUL_CALL4@AMAC$EMUL_CALL4,m#AMAC$EMUL_CALL4@GXAMAC$EMUL_CALL4T@XAMAC$EMUL_CALL = h4l4= = 0T4=D=8 8= 44L4d4=0$ <4=JRT3_MBX_INPUTL= T4=JRT3_MBX_OUTPUTd=  %*[EVERHART.JTDEMO]JTSUBPRC3.OBJ_VAX5;6+,. / 4 - 0123 KPWO56党7`i党89GHJ:JTSUBPRC_CONTROL014-SEP-1996 16:47 VAX MACRO V5.4-3MACRO JTSUBPRC3 JTSUBPRC_CONTROL+ LIB$SPAWN SYS$CREMBXSYS$QIOW . ABS .P$ABS$PPPPp$PDATAP 4Ld <JRT3_MBX_INPUTQ TJRT3_MBX_OUTPUTQ`$LOCALsPQhlQ QQTQQQQQ$CODEP  JRT3_SUB_GET&^ 3Џq  3ЬP`  3Р 3 SYS$QIOWPT<T3Џ   Z JRT3_SUB_INIT&\343 SYS$CREMBX^3L3 SYS$CREMBX LIB$SPAWN  JRT3_SUB_PUT&T\ 3Џp  3ЬP`  3Р 3 SYS$QIOWK JRT3_SUB_GETZ JRT3_SUB_INIT JRT3_SUB_PUT<$PDATAp$LOCAL`$CODE&*[EVERHART.JTDEMO]JTSUBPRC3.OBJ_VAX62;2+,. / 4 - 0123KPWO56皇7z89GHJ:JTSUBPRC_CONTROL016-SEP-1996 10:35 VAX MACRO V5.4-3MACRO JTSUBPRC3 JTSUBPRC_CONTROL+ LIB$SPAWN SYS$CREMBXSYS$QIOW . ABS .P$ABS$PPPPp$PDATAP 4Ld <JRT3_MBX_INPUTQ TJRT3_MBX_OUTPUTQ`$LOCALsPQhlQ QQTQQQQQ$CODEP  JRT3_SUB_GET&^ 3Џq  3ЬP`  3Р 3 SYS$QIOWPT<T3Џ   Z JRT3_SUB_INIT&\343 SYS$CREMBX^3L3 SYS$CREMBX LIB$SPAWN  JRT3_SUB_PUT&T\ 3Џp  3ЬP`  3Р 3 SYS$QIOWK JRT3_SUB_GETZ JRT3_SUB_INIT JRT3_SUB_PUT<$PDATAp$LOCAL`$CODE*[EVERHART.JTDEMO]JTTODO.TXT;3+,. / 4D - 0123 KPWO56` O789GHJThings to add to JT interfaceD1. Keep database open for isam all the time the daemon runs...faster that way.A2. User customizable notice and/or actions when access is denied.,Try a .com file or the like for flexibility.A3. auth maint facility to re-apply ACL entries that someone might6have deleted, and report when one must have this done.A4. auth maint facility to delete records corresponding to deletedfiles.?5. auth maint facility to provide list of all files in database'6. test multiple disk access for daemon *[EVERHART.JTDEMO]JTTRNLNM.OBJ;75+,. / 4 - 0123 KPWO56-7@5!z89GHJ3 EXTTRNLNM015-SEP-1996 16:18 VAX MACRO V5.4-3MACRO JTTRNLNM  EXTTRNLNMEXE$ALONONPAGEDEXE$DEANONPAGED EXE$NAMPID EXE$SIGTORETLNM$SEARCH_ONE SCH$CLREF SCH$GL_SWPPID SCH$POSTEFSCH$QAST SMP$GL_FLAGS SMP$RELEASE SYS$CMKRNL SYS$LKWSET SYS$ULWSET SYS$WAITFRsys$system:sys.stb . ABS .P$ABS$%PPPPPPPPP EXTTRNLNM!PQQQQQ< < EXTTRNLNM&Ь Q?#^@Zk#(Gc=#MGm/ O "GGG"?##ޢ޶@ZkM#G0 m?"#?#@Zk#GpM"xm#?#@Zk(ͦ#G\dV"G8=`VY`60=@M JGG2B@ZkGBGG #P0ͦCM?##m޲##"#> ^@Zk#GCGHP^X~`hpx#k/Y KYGd!/Z !KFoGGG#~^^ ~(08~@ GHG-p\q# qGMm@Zk PM:0@ C`M? m@ZkGGGGGG^ ~(08~@HP#k #MG H ~G^> G@Zk@M>^ ~#Hm@Zkz H##WJFzQK_D⢠#WPJF_DzqKWpJF bⳐ-^#M#mG@Zk M#m#8 @Zk# "6M#m@Zk#m#{#^#[GG@-# #ͦM?" ~v ^$ >GG@Zk>^ ~##@M$#^Hm#@Zk#Mm "#G@Zk#@M^#Hm@ZkMCm_ @ZkGGGGG ZG"P#X{#k  k#^^~ (޴0 G8H# Mް/ <o O (mt GG#@ZkH-#ͦ#_ #ޠ#xq`KmG ŲEZp@KXGEM@Zk^~ (ޤ08@#kG#^^~ ( Gͦ# 6Gv`V#@K9GK'K!?D!.8J0Mt#GX""@ZkG# M_ $ (mG@ZkMmC@Zk^~ (0#k!/W 8K7FGGG##k4xGOTS$MOVE4@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4G$ SYS$LKWSET4m# SYS$LKWSET4 @$ SYS$LKWSET4 <G SYS$GETJPIW4 Dm# SYS$GETJPIW4 @ SYS$GETJPIW4 G SYS$CMKRNL4 m# SYS$CMKRNL4 @ SYS$CMKRNL4G SYS$WAITFR4m# SYS$WAITFR4@ SYS$WAITFR4G$OTS$MOVE4 @$OTS$MOVE4HG SYS$ULWSET4Xm# SYS$ULWSET4@ SYS$ULWSET<HGTEXE$CVT_EPID_TO_IPID<Lm#0EXE$CVT_EPID_TO_IPID<P@TEXE$CVT_EPID_TO_IPID4pGEXE$ALONPAGVAR4xm#0EXE$ALONPAGVAR4|@EXE$ALONPAGVAR4GOTS$ZERO4@OTS$ZERO,G0INI$BRK,(m#0INI$BRK,,@0INI$BRK4G SCH$IOLOCKW4m#0 SCH$IOLOCKW4@ SCH$IOLOCKW4G IOC$SEARCHDEV 4m#0 IOC$SEARCHDEV4@ IOC$SEARCHDEV4G SCH$IOUNLOCK4 m#0 SCH$IOUNLOCK4@ SCH$IOUNLOCK4HG|OTS$MOVE4x@|OTS$MOVE,GINI$BRK,m#0INI$BRK,`@ SAFETY013.A "[EVERHART.JTDEMO]JTTRNLNM.OBJ_A;186;21;15  @INI$BRK4 G SCH$CLREF4m#0 SCH$CLREF4 @ SCH$CLREF,GINI$BRK,m#0INI$BRK,@INI$BRK4!GSCH$QAST4"m#0SCH$QAST4!@SCH$QAST4#GLNM$SEARCH_ONE4$m#LNM$SEARCH_ONE4#@LNM$SEARCH_ONE4"m#SCH$QAST4!G$SCH$QAST4! @$SCH$QAST4GOTS$MOVE4@OTS$MOVE4'G SCH$POSTEF4(m# SCH$POSTEF4'@ SCH$POSTEF4%GEXE$DEANONPAGED4&m#EXE$DEANONPAGED4%@EXE$DEANONPAGED =0H ;=< =""";0;@OTS$MOVE@;`  SYS$LKWSET""  SYS$WAITFR"  SYS$ULWSET"" SYS$GETJPIW""" SYS$CMKRNL"=08;7 CTL$GL_PCB SCH$CLREF  IOC$SEARCHDEV(EXE$CVT_EPID_TO_IPID OTS$CALL_PROC EXE$ALONPAGVAROTS$ZERO=00;=P<( ;`=pINI$BRK7 SCH$GL_SWPPID OTS$MOVEM7 EXE$SIGTORET  SCH$IOLOCKW  SCH$IOUNLOCK !SCH$QAST=0`;; #LNM$SEARCH_ONE=0P; %EXE$DEANONPAGED ' SCH$POSTEF=0P; $*[EVERHART.JTDEMO]JTTRNLNM.OBJ_AXP6;8+,./ 4- 0123KPWO5637489GHJ"CC EXTTRNLNMV1 5-OCT-1996 10:51AMAC V2.1-13X X`$LINKAGE EXTTRNLNM  EXTTRNLND $ABS$ . BLANK . . ABS .JPI$_PID SYS$LKWSET SYS$GETJPIW SYS$CMKRNL SYS$WAITFR SYS$ULWSET EXE$SIGTORET EXE$CVT_EPID_TO_IPID SCH$GL_SWPPIDEXE$ALONPAGVARINI$BRK CTL$GL_PCB SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCK SCH$CLREFSCH$QASTPR$_IPLLNM$SEARCH_ONE SCH$POSTEFEXE$DEANONPAGEDOTS$MOVE OTS$CALL_PROCAMAC$EMUL_MTPR OTS$MOVEMOTS$ZERO0J EXTTRNLNM(JPQKAST =0H ;=< =""";=88P;OTS$MOVEP;`  SYS$ULWSET""  SYS$GETJPIW"""  SYS$CMKRNL" SYS$LKWSET"" SYS$WAITFR"=0; SCH$IOLOCKW OTS$MOVEM SCH$QAST  SCH$IOUNLOCK(EXE$CVT_EPID_TO_IPID OTS$CALL_PROC;0AMAC$EMUL_MTPROTS$ZERO=00;=P<( ;=INI$BRK7PR$_IPL;7 EXE$SIGTORET7 SCH$GL_SWPPID EXE$ALONPAGVAR ! SCH$CLREF # IOC$SEARCHDEV7 CTL$GL_PCB=0; ; %LNM$SEARCH_ONE=0; 'EXE$DEANONPAGED ) SCH$POSTEF=0; =>C~H^P^X~`hpx GG(== ](}08CA/AK OC@M JAA@Zk(=.J ϲCA J@MA2B@ZkGG>CP8ͦGMG>CmG޲CtG>^@Zk(CO=pMGGxmAO "GGGG>C>Cޢ޶@ZkGTGMC8 >Cm@Zk4G4GCM>Cm@Zk(ͦC\B8=`VY`60=@M J2B@ZkGGGG4G>CP8ͦC`MtG>CChm޲>C> ^@ZkCC/GHP^X~`hpxCk/Y KYGv!/Z !KF}G>C~^^ ~(08~@ GHG-`+B qMm@Zk hM:0@ C`pM? xm@ZkM>CmP GP @ZkCG^ ~(08~@HCkG >CMG H ~G^>GG@Zk@M>^ ~CHm@ZkGz HWJFCWPJzqK&WpJF b->CpM^xm>C@Zk MCm8 >C@ZkC 0M>Cm@Zkm ^C[@- >CM?"D@ ~Gm^>G@Zk^> ~D@C>C@M Hm^@Zk4GCMm>C@Zk@M^ HmC@ZkMCmG@ZkPM>CmGMPͦG@Zk4GCfG`4GmCk  kGG>C^^~ (޴0 G80>CM mAްAtGt O>C@ZkGxq`KG0- ޠCͦm ŲEZp@KXGEM@Zk^~ (ޤ08CkGG>C^^~ ( Gͦ>C 6v`V @_G9GK'K!!.8J Mt#!@4C@ZkGG M4GC$(m@ZkMmC@Zk^~ (Ck!/W 8K7FGGGk4lGOTS$MOVE4|@OTS$MOVE4GOTS$MOVE4@OTS$MOVE4 G SYS$LKWSET4 m# SYS$LKWSET4 @ SYS$LKWSET4Gh SYS$GETJPIW4m# SYS$GETJPIW4d@h SYS$GETJPIW4pG SYS$CMKRNL4m# SYS$CMKRNL4@ SYS$CMKRNL4 G SYS$WAITFR4 m# SYS$WAITFR4 @ SYS$WAITFR4GOTS$MOVE4@OTS$MOVE4G< SYS$ULWSET4m# SYS$ULWSET48@< SYS$ULWSET<GEXE$CVT_EPID_TO_IPID<m#PEXE$CVT_EPID_TO_IPID<@EXE$CVT_EPID_TO_IPID4G,EXE$ALONPAGVAR4 $m#PEXE$ALONPAGVAR4(@,EXE$ALONPAGVAR40GPAMAC$EMUL_MTPR48m#PAMAC$EMUL_MTPR4L@PAMAC$EMUL_MTPR4GOTS$ZERO4@OTS$ZERO,GINI$BRK,m#PINI$BRK,@INI$BRK4 @G\ SCH$IOLOCKW4Pm#P SCH$IOLOCKW4 X@\ SCH$IOLOCKW4#`G| IOC$SEARCHDEV$ $4$hm#P IOC$SEARCHDEV4#x@| IOC$SEARCHDEV4G SCH$IOUNLOCK4m#P SCH$IOUNLOCK4@ SCH$IOUNLOCK4GOTS$MOVE4@OTS$MOVE,,G@INI$BRK,4m#PINI$BRK,<@@INI$BRK4!LG` SCH$CLREF4"Pm#P SCH$CLREF4!\@` SCH$CLREF,`GxINI$BRK,lm#PINI$BRK,t@xINI$BRK4xGSCH$QAST4m#PSCH$QAST4@SCH$QAST4m#PAMAC$EMUL_MTPR4GAMAC$EMUL_MTPR4@AMAC$EMUL_MTPR4% GPLNM$SEARCH_ONE4&$m#LNM$SEARCH_ONE4%L@PLNM$SEARCH_ONE4xm#SCH$QAST4GSCH$QAST4@SCH$QAST48GLOTS$MOVE4H@LOTS$MOVE4)XGt SCH$POSTEF4*lm#  SCH$POSTEF4)p@t SCH$POSTEF4'tGEXE$DEANONPAGED4(xm# EXE$DEANONPAGED4'@EXE$DEANONPAGED = 4=JTA0:=JPI$_PID344=  $*[EVERHART.JTDEMO]JTTRNLNM.OBJ_VAX5;7+,. / 4 - 0123 KPWO56@ 789GHJ3 EXTTRNLNM017-NOV-1996 13:22 VAX MACRO V5.4-3MACRO JTTRNLNM  EXTTRNLNMEXE$ALONONPAGEDEXE$DEANONPAGED EXE$NAMPID EXE$SIGTORETLNM$SEARCH_ONE SCH$CLREF SCH$GL_SWPPID SCH$POSTEFSCH$QAST SMP$GL_FLAGS SMP$RELEASE SYS$CMKRNL SYS$LKWSET SYS$ULWSET SYS$WAITFRsys$system:sys.stb . ABS .P$ABS$%PPPPPPPPP EXTTRNLNM!PQQQQQ< < EXTTRNLNM&Ь Q7x>89GHJ3 EXTTRNLNM0 4-FEB-1997 12:21 VAX MACRO V5.4-3MACRO JTTRNLNM  EXTTRNLNMEXE$ALONONPAGEDEXE$DEANONPAGED EXE$NAMPID EXE$SIGTORETLNM$SEARCH_ONE SCH$CLREF SCH$GL_SWPPID SCH$POSTEFSCH$QAST SMP$GL_FLAGS SMP$RELEASE SYS$CMKRNL SYS$LKWSET SYS$ULWSET SYS$WAITFRsys$system:sys.stb . ABS .P$ABS$%PPPPPPPPP EXTTRNLNM!PQQQQQ< < EXTTRNLNM&Ь Q *Set area to hold DPS database files6 Set start intercept driver unit number (now 0)* *Set area for DPS executable images. Done this menu, process disk selection8 Remove a disk from an existing DPS configuration> Set images which are exempt from DPS (e.g. defraggers) Set area for scratch& Set area to save deleted files8 Set mode of deletion handling (current value: 0)& Enable volume space monitoring Quit, do nothingGIf you have rebooted since running VMSINSTAL, you will have to reselect@the area to hold DPS files. If not (as in the screen above), theDselection of this area has already been done (thus it is tagged withB*) and need not be repeated. The area selected at VMSINSTAL shouldBbe used for DPS images, since they will be there already. The areaBused to hold DPS databases is initially this same area, but may be reassigned.DThe "Set start intercept driver unit number" is used where more thanAone deletion daemon will exist in the system. You run this scriptBonce per daemon, and each disk you select to assign to that daemon@uses one intercept driver unit. Therefore you must set the start>intercept unit to something nonzero and greater than all units<currently set to be used should you select multiple daemons.?If you configure, for example, three disks for the first deleteBdaemon, that will use intercept units 0, 1, and 2. Therefore startFthe next time at unit 3. This sort of counting is simple and thereforeAis up to the user. (If a script tries to start using an interceptBunit that is already in use, the attempt to use it the second timewill be ignored.)FDPS stores files in a "wastebasket" area which can be anywhere on yourDsystem. It need not be accessible to anyone without privilege (sinceEthe undelete image and DPS itself have such) but must be able to holdDdeleted files during the period between deletion and actual removal.G(This area can be kept on a virtual disk if desired to limit its impacton the rest of the system.)H(In the case of rename mode, this name is just a directory specification-which must be there on any disks controlled).BThis area gets files being deleted and saves them so that they canDbe deleted later. (Note that to do immediate deletion, a process mayBdefine logical GCY$DELNOW to be "YES" in its process table and thedeletions will be permitted.) The menu item& Set area to save deleted filesBallows selection of this area. If you are going to use rename modeEbe sure it does NOT contain a device: specification, just a directory@which had better be there. Otherwise it should contain a device %specification as well as a directory.The Set area for scratchFis needed if you wish to define a scratch area to be used for possibleHfile access over net or for compression. It will define the logical areaIGCY$SCRATCH. If files are saved via command file, the command file can beCset up to compress the deleted files and later decompress them; theBFILDEL.COM and FILUNDEL.COM scripts will then need to be edited toDdo this. The scratch area also is needed for some files created when0making space on a volume by the default scripts.Space MonitoringCWith any "wastebasket" facility, a disk may fill up, and it will beDdesired to be able to handle this automatically in some fashion. TheDDPS system includes an optional space monitor which runs the commandEfile GCY$SYS:MAKSPC.COM to make room on a disk whenever a file createGor extend needs more space than exists on the volume. This command fileBmay simply run the deleted-file-purge command to expunge all filesEdeleted less than, say, 5 minutes ago on the disk in question, or mayAperform other maintenance type operations. Some example files areAfurnished with the system. By using such a facility, the undeleteGsystem becomes a "set it and forget it" utility in which files are keptBaround as long as possible and deleted when the room is needed forCother things. The menu item allows you to select this functionalityCor disable it. When selected, the item is flagged with * on screen. Mode SettingCThere are several modes for handling file deletion. When you selectthe item8 Set mode of deletion handling (current value: 0)?you enter a new menu which allows you to select how files being5deleted are to be treated. This menu looks like this: DPS MODES SETUP 11:57:406 --> * Run .COM file FILDEL.COM to process deletions6 Rename deleted files on volume to wastebasket/ Copy deleted files to wastebasket area0 Don't delete any files after processing? Delete file if no room for saving (else do not delete)8 Run GCY$CM:DELBAK.COM before wastebasket purges? Set files to ignore (allowing n:s}m|{YM?22-b-Jl\)*27Д~N,&,Q#q<|NV4!sU!ܾl0@($sq 5e$"/eɍNoY{T*|( LaY<6x,m~=aM4 Ame/ڑpn~P)Y1;-_ea c8G0ꬊDd]3kʬ<P5{J^DZ%-]krJo'߁M谆CU&G\4r_Nػͱٙ9sSDe}#cVJw"<`)cf@;1=Og'[YUǒaIv U$(t(zQA$>\9IS^Xwn5sCA j{֫Bzx.wh~D{W|km'7k(:6?hL՘4 @eCtZm^+xWAHof̯ǂ!76vwر竪 }&ĂZ-a㻏tuI`'A{]j58Ҷ0em'H^X;ØLG:<42*"瓿厔}u@b ŸkTas~R`F|݀(UfuGh :Z鎆r^dJ)Y )vDE˰R~6&_ % ;? rm ͆Mo g $XQ2ɠt2ѧy쥟|Gf'~bU  n <re´M}M}ٮlP8gW{hk)X}s1|(S?)U yѱ_%#bp)@slC`wxeNmxNQ윗5I.͛źr:zuTY%u伿kb _['p!L ^iJ E(^&OBo V^1ҋIÛhrcq#o7䶟6FYޥ=:,adUfHyJ55s\?;aaNCSmʀJ1%nT1ȅD ~mă)9[ѝ1{Ӗ4lSի`[v8[~C֙ 8 +Rz, !U>tƵHrJޓe;zwY5~95eK[ %kplvn05"^DדG2_|ħ'@hT+;i$;6S6 ʻ#-L #&eYG1߃@=)z9rp%Yr˛C70zTX==X;>P'7>>

tm@,w%15VU ٛH!53vBsaHmZ$|jHC0ʏ7yN 2̕5Xoc'Za=š"߻Z{t1a׍+Blp+A(2;~:^50B&·qGQ w}bVJp eO{ICB%Z]'ît^{IIYgMcCq|Ki,e(5!| ڧ/)gd/&*j0 J$!qJ$OG+tOo$3y Wn扲2售/cVR+N{-W#1u1tEk++)(ݷ} rаZ\%4ǃUw>]‰V=\{@!cx! bȵaRh Mѳ!ET&~*sOi_x{9Z>ු<wXIAG-a/B|@ nn,4lђpM> }WuUƾj D' Qy]#S9ߥ<㻢CEbTVFSh;X|mCx]o4rfFX3 gFћ[ce7a-zV;a+sJ$  %Q*esi(Kj&R,TúQ=RI-T- @`R\)u9Q`LKfiۍ$oӶ-g:`;ێ۫†bt6Ut^/i98*C=60̼5?%H'ySJUM5 6V,DQ|y'QF5*2VG/Yay}]\sY_<{d[Aj 5{l3ch']`jpY6(7cYRġ|ݥ~}6s㠽ՃI+i%(3{,Fg@b⇓9gW bX7cN|VQ  e$A'pt>i5hl%Н޺7GCfi #Deb l'~ D P$=~NɭABEu6 ):c0}xu躇T}5Thl0')23S'Dsg~;;׿)}LCoO`et{+3ǴЂ`2( ;l'JYm;'3 ֘ s$`S(5Gb!EaAj t73 Re5=ؖg{(*W8ϔڶ^Z IQ^в}^m؛/x[ W7b o ƐEpM&}t#sЍ<թ/m6xW?%@G<Ί&yao7WXK251$rW6D re"j{B-叀]´ݨ76J}V@6h򧨩7HBtfN: yn sG('&ߣl TcJknkY\^&mVT4axs0OAG {3#UN`<0z0&dYv§Y~_shga05Uz3uyp[Z2ZdrKAJ(ۃmF=b%8k];o[mEFc_Mr2'ZK 1)xU{vWb՟aސ&m4kKX,T ž9E_Nw2b 3$l BҎJ}jx {0^9<דy1$s",QTKtCY%Ld2  u_fctQ-++|\wRh$-lw>`jd#~bfĵB8 8#m伵eoѱHТü8tX oݥTPQ,A4PNuKW OT]g \Eq07Гpd[eZ=#6T%d&BZtt+2VW+϶Ɍ:. a ք{t ak`8se D/[]RkGyߦ'!/;yʴ~~_.4#a2dAVE jMRrвȢoM} Yz "$ :gk?vWo ΟOc it;#%VV *u^,t8G#UCDCӋf:+oYE>ҦD}ffu\31ٻ/уOZ%}AUIRQ|dӣ6{ ^JM:6H/Ycˇ1VI" b>ص膫PP1 3ן`Úݪc88.6X]M?!ȶ`( .7ҡa%+*|~tR3}3tT5314+t2;BQQ?9?gz1 Non.p{ʍmSE1]D ~QlYx/Hԣro4E칿ubECSX&Q#72Pu"@h,6' 0̵=3ڧLs8 J7?^/(5#)⊲Aht 4{<`PD!B:.lg3g-:=LߥC T/(GpWՍqd ճ)$58$umS旪k:sig_.DNfT!hGӻܢ.Kq0}^[#\]XW7hWoAw?8 i(ҵ 6ڱDAg=JO$m!Y1—:cW^˷ϨUaZ%zr#PrO=dvlʅJeO&[MD!p=7F SVJ 9 |*,t;C U"ԋDKV;|zArÃWG'ia:`Zxj K1{盾Wף.k8Z 7@%=~bINCZmU栟A0^X0gn@9Wk3fSQQtfhw.f`=r*7 '7?hrBseroAGE$[  f=38c#/[{.{>XN{-%gWPU*\Dsyq9AǕ-oPZ~)0_ &/A7m( :1/2S[* :MMǶu+c:qcR6;ZlRFˡ,MʤN()d9_ 4}?H"eh絶͛f:άK Fαos ?iXQ~(فw\Hq$c8a@ I9Tw]pOTw[ q0ǓVY>6UbD4౔G|;z&w=ڡ co+=Iڍ|1v1cNGI%XD}YuY4$B:@Aj[Kr+Ώ}®N=^`TT~D8!B2b#'$_Luj(WCsp*8[ xy`F#ޢчlѠn#tK.p-`eB6@w񌽩*'ɓL( 4 ]% f\ٌeN9ԵN_azkw3CN% StgzB;g.KD!^(:7v 81A"ߡXv> Ls,%$qAEg @9KفIl'~`ј‘Ƶϳ#\=Cq$܈k3 _ ^/y)Q{z9-%UDď ي3]wĊ̝Z|1MEǥ{2! }G[~w+բ|ϜMm|q'gJoAB? #qcZC&:}_S al[Z k"M/zXB#M/O\I[@=W&Opԑ'L 2*Lt5m/.@@ (tj[*ٛy6BNMeSiք@ܾ@ m.ت"ՕQ]/3 8YkN%n Kː:J4)FBg[RI+EaSpL<elC]:8ů4+|5uW^_^şbGT)=N*̫1@iĔ(iou$%!^V!t>ܒ(^@v٪5'prl7e`So'U< i`A`2L>FwMWcgLaU'@_;# R6;IC0PL.E [kL3D$ͿNؑ={-8 6CJ귂8 q&GH<'Ķ~ĩ׿Tͯ&V}ðPYj+a;я(،/~ǖ33%*:C&wS~/1'צ;Q8VhǾNL/?/1ol5aAcסʳbs 絭.RK>WgSSВZ* bQ$双O fhrDHEٗhEh>-߼P1ceߟ=t&< _Q UաSnf\{^!il 3Տx?mHߴ+ilB[reUTCʋ\#v!k%g7lAF&hM+-` >n}UYCz!@Κv8.M ;~tpݭtR ff fܛkR= (yUdEƎv]H}kȔ*pW5ǘ{ث/@%XIy5&∔~CQ3Մ(\83l1Pjjsa_Fa̘[)Jiϡ!k%1\`hƮZJrNR܅ICґKC^/ ձw)8ϼ, oj]^j!DA k m%_5KSȹ6ޯP)6jM) N&fxB- c~dM\֧v`j:W8v# Lo@$ h`ֶ< :z[bD< ɽM5ڛ!nm`4$C! ԅol+CfcIT$Ԧ1Vd:%'-n!zYQ.,d ]F})+kҲ{^bȑ}[X;܈$LNGiLwiOe(~O>=ÛH 6!=fs;p!>l"t㛴J`!CW9XY- ~N͵qYpxx+4MncQ3ܨ|SG-,#<؈>*V0ydrEl)9YI-Ӟ&J>D)I1ß|jΰ3Ǖ,7 Q';Xi1%e@kƑB)t⬳h)KWpK\g&kf7EIKJK!JToamQ!NisVʬ&/_iJ=fOeU]Nj_~ʨARw ! 9q.I*.Dvve" 6~-js#jȈ BlV_Jl%^47Z7O.3[+' C/Fa:G-"Hb䏝إGXM]ײ2wJ2zFxy}\1t l+QꙞeP%=fYh)\DI̡yp/J~ߡnTi ?.ZgIw[ϫzr!@U6 50@5 0 4B8'E%Tm( 0ꢖ`dj$}*l *)>P)Ӝ,]k]q!B+ݶE|_).k/co0wl)BE 4=kK6 |CJq¯: rgwTM#m%5?~xnE7$\|VT7dS[rSB́dd]rrY Tfg舝.?!QG?P"ZA  "лYEe).}yx`rt@"X5gT] 4tf)jhꯆEfr@`<|] %[x?hpN<J1W'*[ im\Axy]fB0^ׁUǴUaE:Z^>``uNc=I)ԏiȤ}{H 3-}]M t:,nGm?q6' CO(JB'?zD)`9UF}:~I4i…8r]n`*g2%S4>PH;ҟ̍vxCޒ1}+F[qmDal^^hY2 `1D1FQ" ǠBci3W=|tº^Bd?uf&Yy2m  -JOB5KMj:S秝H?+kdSXv *Zm܋( vjOQW7yn.63I z|e6ѭRh'w[z>6NmD𚉥s).r7]9\Zk (u˳=}8 !IBr^_z+=*GNp~Dr3#(9O*n@sW?@1:k:ڜ=)u>d%lf~ UCbūSfkb2&D9^xVP8H=xLP]7?<∷Q%;a!EQ*y:tkcm;L#۷H^Lk}];۝-|4054oB.ٗE5:n:ý)i`[bt.9{1Kc{UŐ\Jխsa#tS.W>ިlM^'JGPK_qOT?gcqt].],w18NeALi?4=m=\/_nCR>@]/֥0CUS<4=^wko-F[¼5 [wx+&~Pξ}&ōV4˶9\Ցs&0p++c S" /̈"c>y*:[КmƢ#&ᩨL&n61a^թ镌 o8JNhOͷZ0bʀ|"˼GLDC t]f@>2 ` G ,to*'+ )wsH:Rb4I;b %uW.ZG>e3}Ml U)Ȑ0D3lSR2 BPu*,bruU! $x^C8H9YtzeQy-RA8ը_+YYV3ܪͱS+s6>slO$G Sx~Ao.[HX65HzM#̧nf k/ӪϿi7 qt@KSE^*Ncq@FyefbޞsrC>.a*+㗶wSeFkA|xnPva[)QRt‹i-󺹱/гz`ψ싐g1^jQ4v7@!%xTSdKA-7f2 # 1kcC>ZRlb- u|f_>{z<E1acWJfl "DhrsarTV%Bx `kX0;Ƌ)xl_B tkI C于VpH}x͜#7sPH )\;MZ`u./.^-Lܒw:ي$ug&͚ ~A#V(!I{R}Q9RyRK#u\ EPFIVR8f*̗j\CkةZD`l=S-u1?\:^m~-(ZŔ5=Ȟ5<"x eiL9 aA8ȄIXf{!TD0D܇΁{B+aa&.iɸk-N+̝I'dLP?Op$^?mQѤ70'XI6].`y<귻3ű]ǡY_ PcڠˤD~L!VY<5g`q?ßD]MDT7*"04\7yOU9V%_o} !f6yx]/DiVnX+֬bo":~퍴HKW{Ġf\|;U@k8S=ד9vc}vߌmw_aآqtq jQxT~vxѯA[:2z mi 1DZMfTU#NB:d3{ C*^Ԅ^4@A1K(DUk^E3i}\o PqaEjy@֚<Hla;]kf?iJr=GJ.~{aW78$iWmfj܄>е7mOM|B!N>AtGӽ?e)"@`؃z9]$$ o~#$ЄY14PL+Q(WITG&W.KiCleTw,0n6 A6v{krdps.7h+vo uB"L)5of%$)9\%_x=&VΈ&,|=&Aji-"~[˷#02p4ъeIu:晭>|;3jKb=& 2nA(R;a0c Z#7$݄^V&y]ngZ[4,в7-W(A&[F1ԩӥaʨĻzpJSXGhr7&$,@1V-?WhH>mf<% &u19j] f8߷mkhov(U魕[j\6bى0@ kWW@KZe-{aw;GM<|nl DDιHV[ : !uoz9n5t" Zܶ_b/m[xon! 6u(0IGE\fþod$+k x0P BFPa[c(PYL*a)T`TL8߻j֌@yl0e iki9z *O!lɸ]YOKSYjW trxF"l-HE7ݒN9e.ߑ4QG\rZUd[Kz~T(^jmI((m ^s|ֹʡ|q2 !Vs,|Cﱾŭ'yC,xE"BEYr-zޚ})em=d3چd-zÍYջ}ĺMYJXIiGe*9Dأ8yU(S!pDKa)u}%\&qR) @9ܰ ab1k7Hɯog&m:DoA`AvSD]f (< ~X,%'S_OD,tNu2S,4>SA rP-0)$ R31 VHSh#NFS<>8(YqFB9 pZ^{G9|g߀ޘRENote that option 3 might lose some access control information.AThe undelete command uses the same methods, using FILUNDEL.COM to@undo the delete if method 1 above was chosen (all .COM files arein area GCY$SYS). DThe basic tradeoffs are space and speed. The .COM file method is farFthe most flexible, and methods 1 and 3 are not too different in speed,Cwhile the rename method is fastest, but does not clear space from aDdisk. Not however that DPS also can respond to a low-space situationAby running a command file GCY$SYS:MAKSPC.COM, so that where space3is low, the wastebasket cleanup utility can be run. OUT OF SPACE ACTIONThe fourth option,0 Don't delete any files after processingCis designed for use with mode 1 (.COM file) processing. It arrangesCthat the files are not deleted, but success is faked, when the .COM;file exits. (Normally the deletion proceeds at that point.)DThis can be used to allow a .COM file to create or append to a "workClist" file of files to be deleted, and let another detached processAperform the actual deletion processing of these files separately.AWhere this is done, typically files would be renamed to a scratchDarea, then copied somewhere and deleted from the scratch area as theBseparate process got to them. The delete operation by a user wouldBthen complete faster, though the file would not actually disappear<(nor the file ID become invalid) for some period afterwards.AThe item "Delete file if no room for saving (else do not delete)"Blets you select what to do where the wastebasket area is too smallAto hold a file. Basically the original file can either be deletedCor not deleted; this allows control over this action. Default is to5delete the file (as would have happened with no DPS).A Note that the FILDEL script supplied will perform space checksAand run the MAKSPC script itself, so that if that method is used,?the issue of deleting a file or not will usually be moot. It isBalso generally moot if separate daemons are used for the save area;disk from the other disks, or if the rename method is used. FILE PRESERVATIONFThe option that asks "Run GCY$CM:DELBAK.COM before wastebasket purges"Ballows you to create a command file which is run before any purgesBare done. If there is a desire to keep deleted files in a longterm=store somehow, this hook is present to allow this to be done.3Construction of the command file is up to the site. IGNORE-FILES LISTFThere may be some file types that should not be protected from delete.CAt some sites, *.OBJ, *.LIS, and *.MAP are examples, and others mayFbe found. By specifying parts of filenames to exclude from protection,<DPS can be set not to keep such files around for undeletion.CThe form of the list varies a bit depending on the mode of deletionEprocessing. Where rename or "callable-convert copy" modes are in use,Ethe strings are used in STR$MATCH_WILD and so must have * as wildcardFfields. Thus, to exclude *.OBJ* one would use a string containing justE*.OBJ* (which would allow FOO.OBJ;4, MUMBLE.OBJ;32, or BAR.OBJ_SAVE:5to be deleted at once).CIf one is using command procedure handling, the strings are handledFwith F$LOCATE, so any * characters are stripped before use. To excludeC*.OBJ* in that case one could just use the string ".OBJ". Note thatEmore elaborate tests can readily be inserted in the command file as aDper site test. Thus the complexity of the tests can be whatever yourDsite needs. Often, though, the built in tests will suffice. AllowingCsome files to be promptly deleted is a convenience feature designed1to speed up operation by not doing useless work. FThe ignore-files list may contain many such file specifiers, separated by commas. DISK SELECTIONB DPS can be separately tailored for each disk on the system or setEup for any collection of disks. Once mode and function setup is done,Ayou select the main menu "Done..." item and proceed to pick whichFdisks the daemon will apply to. As many (or few) disks as you like canFbe controlled. This means that if you want to leave, for example, yourGsystem disk uncontrolled by DPS but just use it on a user disk, you cando that.? The disk select menu shows mounted disks first, then all other@disks in the system, and can be scrolled to show different ones.#The menu looks something like this: DPS Configuration Disk Selection: Use arrows to move to selection. Use RETURN to select. End disk selection _ARISIA$DKA700: _ARISIA$DKB0: _ARISIA$DKB300: _ARISIA$DCA0: _ARISIA$DCA2: _ARISIA$DCA3: _ARISIA$DCA4: _ARISIA$DCA5: _ARISIA$VDB0: _ARISIA$VDB1: _ARISIA$DKB200: _ARISIA$DKB700: _ARISIA$DCA1: _ARISIA$DCA6: _ARISIA$DCA7: _ARISIA$FQA0: _ARISIA$FQA1: _ARISIA$FQA2:I Type H for help. Currently on item 1 of 151EMove the cursor (indicated by reverse video) to the desired disk and Cselect it. When done selecting disks, select the "End ..." item and(the setup script will produce two files, SYS$MANAGER:DPS_STARTUP.COM"which should be run from SYSTARTUPand  SYS$MANAGER:DPS_LOGIN.COMAwhich should be run from SYLOGIN.COM to define UNDELETE verbs andso on as needed. Use of UnDelete command:The undelete command is of form$undelete Band accepts wildcards which include any part of the device name orBfilename of the original file; it puts the file back where it cameAfrom, provided the file still exists in the wastebasket area. The@repeating batch job that the startup command file generates runsBsys$manager:jtpurge.com which purges the wastebasket daily. If the>purging should happen oftener or less often, edit this file toBadjust the times. With the default, files more than a day old will>be gone, but accidental deletions less long ago can be undone. EXPUNGE commandCThere are times when you will want to delete some files immediately?and irretrievably. The EXPUNGE command is provided for this. ItDsimply does an ASSIGN/USER "YES" GCY$DELNOW and then runs the DELETE=utility. The presence of this logical allows DPS to know that>this particular deletion is to be done without special action.A If, for example, you create a very large scratch file sometime,@you may want to delete it without having it fill the wastebasket>area. The EXPUNGE command is designed to make this simple, but explicit.  *[EVERHART.JTDEMO]JTUNDELETE.PS;5+,.H/ 4HF- 0123KPWOG569I7289GHJ %!PS-Adobe-2.1 %%Creator: DECwrite V3.0-2 %%+Copyright (c) 1990,1994 DIGITAL EQUIPMENT CORPORATION. %%+All Rights Reserved. %%DocumentFonts: (atend) %%EndComments %%BeginProcSet DEC_WRITE 1.10 save/DEC_WRITE_dict 150 dict def DEC_WRITE_dict begin/$D exch def/$I 0 def/$S 0 def/$C matrix def/$R matrix def/$L matrix def/$E matrix def/pat1{/px exch def/pa 8 array def 0 1 7{/py exch def/pw 4 string def 0 1 3{pw exch px py 1 getinterval putinterval}for pa py pw put}for}def/pat2{/pi exch def/cflag exch def save cflag 1 eq{eoclip}{clip}ifelse newpath{clippath pathbbox}stopped not{/ph exch def/pw exch def/py exch def/px exch def/px px 3072 div floor 3072 mul def/py py 3072 div floor 3072 mul def px py translate/pw pw px sub 3072 div floor 1 add cvi def/ph ph py sub 3072 div floor 1 add cvi def pw 3072 mul ph 3072 mul scale/pw pw 32 mul def/ph ph 32 mul def/px 0 def/py 0 def pw ph pi[pw 0 0 ph 0 0]{pa py get/px px 32 add def px pw ge{/px 0 def/py py 1 add 8 mod def}if}pi type/booleantype eq{imagemask}{image}ifelse}if restore}def/PS{/_op exch def/_np 8 string def 0 1 7{/_ii exch def/num _op _ii get def _np 7 _ii sub num -4 bitshift PX num 15 and 4 bitshift -4 bitshift PX 4 bitshift or put}for _np}def/PX{[15 7 11 3 13 5 9 1 14 6 10 2 12 4 8 0]exch get}def/FR{0.7200 0 $E defaultmatrix dtransform/yres exch def/xres exch def xres dup mul yres dup mul add sqrt}def/SU{/_sf exch def/_sa exch def/_cs exch def/_mm $C currentmatrix def/rm _sa $R rotate def/sm _cs dup $L scale def sm rm _mm _mm concatmatrix _mm concatmatrix pop 1 0 _mm dtransform/y1 exch def/x1 exch def/_vl x1 dup mul y1 dup mul add sqrt def/_fq FR _vl div def/_na y1 x1 atan def _mm 2 get _mm 1 get mul _mm 0 get _mm 3 get mul sub 0 gt{{neg}/_sf load concatprocs/_sf exch def}if _fq _na/_sf load setscreen}def/BO{/_yb exch def/_xb exch def/_bv _bs _yb _bw mul _xb 8 idiv add get def/_mk 1 7 _xb 8 mod sub bitshift def _bv _mk and 0 ne $I 1 eq xor}def/BF{DEC_WRITE_dict begin/_yy exch def/_xx exch def/_xi _xx 1 add 2 div _bp mul cvi def/_yi _yy 1 add 2 div _bp mul cvi def _xi _yi BO{/_nb _nb 1 add def 1}{/_fb _fb 1 add def 0}ifelse end}def/setpattern{/_cz exch def/_bw exch def/_bp exch def/_bs exch PS def/_nb 0 def/_fb 0 def _cz 0/BF load SU{}settransfer _fb _fb _nb add div setgray/$S 1 def}def/invertpattern{$S 0 eq{{1 exch sub}currenttransfer concatprocs settransfer}if}def/invertscreen{/$I 1 def/$S 0 def}def/revertscreen{/$I 0 def}def/setrect{/$h exch def/$w exch def/$y exch def/$x exch def newpath $x $y moveto $w $x add $y lineto $w $x add $h $y add lineto $x $h $y add lineto closepath}def/concatprocs{/_p2 exch cvlit def/_p1 exch cvlit def/_pn _p1 length _p2 length add array def _pn 0 _p1 putinterval _pn _p1 length _p2 putinterval _pn cvx}def/OF/findfont load def/findfont{dup DEC_WRITE_dict exch known{DEC_WRITE_dict exch get}if DEC_WRITE_dict/OF get exec}def mark/ISOLatin1Encoding 8#000 1 8#001{StandardEncoding exch get}for /emdash/endash 8#004 1 8#025{StandardEncoding exch get}for /quotedblleft/quotedblright 8#030 1 8#054{StandardEncoding exch get}for /minus 8#056 1 8#217 {StandardEncoding exch get}for/dotlessi 8#301 1 8#317{StandardEncoding exch get}for/space/exclamdown/cent/sterling/currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered /macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph /periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter /onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave /Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde /Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn /germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave /uacute/ucircumflex/udieresis/yacute/thorn/ydieresis 256 array astore def cleartomark /encodefont{findfont dup maxlength dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding exch def dup/FontName exch def currentdict definefont end}def/loads{/$/ISOLatin1Encoding load def/&/encodefont load def/*/invertpattern load def/+/revertscreen load def/-/invertscreen load def/:/concatprocs load def/^/setpattern load def/~/pat1 load def/_/pat2 load def/@/setrect load def/A/arcn load def/B/ashow load def/C/curveto load def/D/def load def/E/eofill load def/F/findfont load def/G/setgray load def/H/closepath load def/I/clip load def/J/fill load def/K/kshow load def/L/lineto load def/M/moveto load def/N/newpath load def/O/rotate load def/P/pop load def/R/grestore load def/S/gsave load def/T/translate load def/U/sub load def/V/div load def/W/widthshow load def/X/exch load def/Y/awidthshow load def/a/save load def/c/setlinecap load def/d/setdash load def/e/restore load def/f/setfont load def/g/initclip load def/h/show load def/i/setmiterlimit load def/j/setlinejoin load def/k/stroke load def/l/rlineto load def/m/rmoveto load def/n/currentfont load def/o/scalefont load def/p/currentpoint load def/q/setrgbcolor load def/r/currenttransfer load def/s/scale load def/t/setmatrix load def/u/settransfer load def/w/setlinewidth load def/x/matrix load def/y/currentmatrix load def}def end %%EndProcSet %%EndProlog %%BeginSetup DEC_WRITE_dict begin loads version cvi 23.0 gt { currentdict {dup type /arraytype eq {bind def} {pop pop} ifelse} forall} if 0.0100 0.0100 s %%EndSetup %%Page: 1 1 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (1) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 13002 -1638 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1800 o f 0.000000 0.000000 0.000000 q (Deletion Protection System) h 16167 -3338 M n 0.778 o f (\(GCE Undelete Facility\)) h 288 -6288 M n 1.143 o f (Overview:) h 288 -8988 M /Times-Roman-ISOLatin1 F 1200 o f 27.7 0 32 (How many times have you had requests of the form "I just accidentally deleted ****. What can) W 288 -10388 M (I do?"?) h 288 -12988 M 90.9 0 32 (One of the key problems in most computer sites is that people accidentally delete files, which) W 288 -14388 M 171.6 0 32 (then must be retrieved from backups, often with serious lost time and information repercus\255) W 288 -15788 M 9.4 0 32 (sions. In MSDOS systems, where there is one user only, it is possible when this happens to pick) W 288 -17188 M 125.1 0 32 (up the pieces of erroneously deleted files and to thus "Undelete" them. In multi\255user systems) W 288 -18588 M 57.3 0 32 (like VMS or Unix, disk space is shared and quickly reused, so that the pieces of these files are) W 288 -19988 M 14.4 0 32 (almost never intact. A deleted file is thus generally lost irretrievably once it is deleted. To avoid) W 288 -21388 M 121.1 0 32 (this, one must somehow change what the deletion operation means to the system, since these) W 288 -22788 M 93.1 0 32 (deletions may come as a result of programs other than DCL issuing the commands. Also, one) W 288 -24188 M 50.3 0 32 (must take care that deleting files doesn't result in allowing anyone on the system to go "dump\255) W 288 -25588 M (ster diving" in them.) h 288 -28188 M 48.8 0 32 (A related problem occurs in some sites needing permanent records \(e.g., essentially all govern\255) W 288 -29588 M 13.3 0 32 (ment sites, where regulations require that files like mail be kept for historical archives\). In these) W 288 -30988 M 53.0 0 32 (sites, the necessary cleanup to allow any disk space to be freed is cumbersome due to these re\255) W 288 -32388 M 42.0 0 32 (tention needs. A system which can allow deletion to occur normally but route deleted files first) W 288 -33788 M 128.3 0 32 (to a backup can vastly reduce the technical and administrative burdens@ SAFETY013.A  [EVERHART.JTDEMO]JTUNDELETE.PS;57CE.ZIP;1HQQ> of space management) W 288 -35188 M (without visible impact on the users.) h 288 -37788 M 119.1 0 32 (The Undeletion Facility is a system to deal with these problems. It is built into the VMS file) W 288 -39188 M 46.6 0 32 (system and temporarily preserves files that are deleted so that a RELIABLE "Undelete" is pos\255) W 288 -40588 M 62.3 0 32 (sible. In addition it is able to route files being permanently deleted to backing store before this) W 288 -41988 M 170.4 0 32 (is done if the site needs this. The system is intelligent enough to include or exempt various) W 288 -43388 M 180.6 0 32 (classes of files and to impose minimal overhead in providing its protections. Because it be\255) W 288 -44788 M 106.7 0 32 (comes part of the file system, it can preserve the files and preserve their protection, changing) W 288 -46188 M 192.1 0 32 (the meaning of deletion without affecting system operation. Because it can respond to low\255) W 288 -47588 M 223.4 0 32 (space conditions, it can also deal sensibly with situations where deletion is needed to gain) W 288 -48988 M 92.7 0 32 (space, and can operate in a totally automated way. Thus system management duties no longer) W 288 -50388 M 62.4 0 32 (need be tied up by retrieving just\255deleted files that turn out to have been important, and record) W 288 -51788 M (keeping can be made to conform to official requirements if such exist.) h 288 -54688 M /Times-Bold-ISOLatin1 F 1600 o f (User Manual:) h n 0.875 o f ( ) h 288 -57388 M /Times-Roman-ISOLatin1 F 1200 o f 22.8 0 32 (The Undeletion Facility allows undeletion of VMS files that were accidentally deleted, within a) W 288 -58788 M (period of time, and without generating security holes in one's file system.) h 288 -61388 M 97.7 0 32 (It operates by interception code which gains control at any delete request on a controlled vol\255) W 288 -62788 M (ume and which activates a delete daemon to perform the actual "deletion" operations. ) h -7200 7200 T showpage $P e %%Page: 2 2 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (2) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 64.8 0 32 (There are 3 major modes the system has: 1. ) W /Times-Italic-ISOLatin1 $ /Times-Italic & P /Times-Italic-ISOLatin1 F 1200 o f 64.8 0 32 (Rename) W /Times-Roman-ISOLatin1 F 1200 o f 64.8 0 32 ( the files deleted somewhere 2. ) W /Times-Italic-ISOLatin1 F 1200 o f 64.8 0 32 (Copy ) W /Times-Roman-ISOLatin1 F 1200 o f 64.8 0 32 (the) W 288 -2588 M (files deleted somewhere 3. ) h /Times-Italic-ISOLatin1 F 1200 o f (Run a site command file) h /Times-Roman-ISOLatin1 F 1200 o f ( to copy, rename, compress, etc. the files.) h 288 -5188 M 96.3 0 32 (The daemon can do 1 and 2 directly, and will check a logical name to see what filenames \(or) W 288 -6588 M 141.7 0 32 (parts thereof\) may be deleted immediately \(e.g., *.OBJ*\) so that saving easily\255recreated files) W 288 -7988 M 59.9 0 32 (can be avoided. The site command file option \(using a kept subprocess to avoid constant proc\255) W 288 -9388 M 183.3 0 32 (ess creation overhead\) allows ultimate flexibility where the customer so desires. A different) W 288 -10788 M (policy can be selected per disk if desired.) h 288 -13388 M 2.2 0 32 (The system is capable of detecting out\255of\255space conditions and running a site command script at) W 288 -14788 M 27.6 0 32 (that time if this is needed. This procedure is just spawned from the daemon if this is enabled. A) W 288 -16188 M 62.7 0 32 (mode control allows a site to decide whether deletion where no room exists for the new file or) W 288 -17588 M (not.) h 288 -20188 M (A cleanup process runs every hour or so and deletes older files.) h 288 -22788 M 169.1 0 32 (An) W /Times-Italic-ISOLatin1 F 1200 o f 169.1 0 32 ( undelete) W /Times-Roman-ISOLatin1 F 1200 o f 169.1 0 32 ( command exists which can restore a file \(or any wildcarded filenames\) to their) W 288 -24188 M 70.6 0 32 (original locations \(only\) so long as the file has not been removed entirely. There is also provi\255) W 288 -25588 M 66.7 0 32 (sion for allowing an EXPUNGE verb \(identical to the DELETE verb exactly except that a dif\255) W 288 -26988 M 37.7 0 32 (ferent copy of the image is used\) which will perform immediate deletions where this is needed,) W 288 -28388 M (not subject to undeletion.) h 288 -30988 M 170.4 0 32 (Finally, a hook in the cleanup daemon will allow deleted files to be recorded "somewhere".) W 288 -32388 M 44.3 0 32 (Where a HSM package is in use, this may consist of moving files to a nearline site and leaving) W 288 -33788 M (the headers around tagged for automatic retrieval.) h 288 -36388 M 15.5 0 32 (File ownership is left intact by the delete/undelete cycle where possible. \(Note that a system de\255) W 288 -37788 M (fined command file may fail to do this, but that is the site's responsibility.\)) h 288 -40388 M 105.3 0 32 (The facility offers also a space monitor such that a site script can be run if any file extend or) W 288 -41788 M 74.7 0 32 (create will exceed disk free space. This can be used to run the cleanup operation if desired, so) W 288 -43188 M 92.9 0 32 (that deleted files remain "in the trashcan" until space is needed, and the trashcan is then auto\255) W 288 -44588 M (matically emptied of anything older than a minimal period.) h 288 -47488 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1600 o f (Installation) h 288 -50188 M /Times-Roman-ISOLatin1 F 1200 o f 71.6 0 32 (Deletion Protection System \(DPS\) is installed with VMSINSTAL. You must select a directory) W 288 -51588 M 105.3 0 32 (into which DPS files will be placed. This can be anywhere, but it is good practice not to mix) W 288 -52988 M 43.3 0 32 (DEC and non\255DEC files, so it is suggested that sys$system not be used. This directory must be) W 288 -54388 M 161.1 0 32 (created before installation. As a protection against inadvertent use of a mis\255spelled directory) W 288 -55788 M (this is required.) h 288 -58388 M 168.8 0 32 (Once the software is installed, you must run the JT_SETUP_DEL script which is furnished.) W 288 -59788 M (This is done via the command) h 288 -62388 M ($ @GCY$SYS:JT_SETUP_DEL) h -7200 7200 T showpage $P e %%Page: 3 3 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (3) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q (and presents you with a menu which looks like this:) h 288 -3788 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f ( DPS SETUP 12:03:45) h 288 -6388 M ( \255\255> *Set area to hold DPS database files) h 288 -7788 M 5988 -7788 M (Set start intercept driver unit number \(now 0\)) h 288 -9188 M ( *Set area for DPS executable images) h 288 -10588 M 5988 -10588 M (Done this menu, process disk selection) h 288 -11988 M 5988 -11988 M (Remove a disk from an existing DPS configuration) h 288 -13388 M 5988 -13388 M (Set images which are exempt from DPS \(e.g. defraggers\)) h 288 -14788 M 5988 -14788 M (Set area for scratch) h 288 -16188 M 5988 -16188 M (Set area to save deleted files) h 288 -17588 M 5988 -17588 M (Set mode of deletion handling \(current value: 0\)) h 288 -18988 M 5988 -18988 M (Enable volume space monitoring) h 288 -20388 M 5988 -20388 M (Quit, do nothing) h 288 -22988 M /Times-Roman-ISOLatin1 F 1200 o f 148.8 0 32 (If you have rebooted since running VMSINSTAL, you will have to reselect the area to hold) W 288 -24388 M 50.1 0 32 (DPS files. If not \(as in the screen above\), the selection of this area has already been done \(thus) W 288 -25788 M 17.6 0 32 (it is tagged with *\) and need not be repeated. The area selected at VMSINSTAL should be used) W 288 -27188 M 117.5 0 32 (for DPS images, since they will be there already. The area used to hold DPS databases is in\255) W 288 -28588 M (itially this same area, but may be reassigned.) h 288 -31188 M 63.5 0 32 (The "Set start intercept driver unit number" is used where more than one deletion daemon will) W 288 -32588 M 68.3 0 32 (exist in the system. You run this script once per daemon, and each disk you select to assign to) W 288 -33988 M 157.6 0 32 (that daemon uses one intercept driver unit. Therefore you must set the start intercept unit to) W 288 -35388 M 35.3 0 32 (something nonzero and greater than all units currently set to be used should you select multiple) W 288 -36788 M 133.3 0 32 (daemons. If you configure, for example, three disks for the first delete daemon, that will use) W 288 -38188 M 17.3 0 32 (intercept units 0, 1, and 2. Therefore start the next time at unit 3. This sort of counting is simple) W 288 -39588 M 56.6 0 32 (and therefore is up to the user. \(If a script tries to start using an intercept unit that is already in) W 288 -40988 M (use, the attempt to use it the second time will be ignored.\)) h 288 -43588 M 42.4 0 32 (DPS stores files in a "wastebasket" area which can be anywhere on your system. It need not be) W 288 -44988 M 54.6 0 32 (accessible to anyone without privilege \(since the undelete image and DPS itself have such\) but) W 288 -46388 M 50.9 0 32 (must be able to hold deleted files during the period between deletion and actual removal. \(This) W 288 -47788 M (area can be kept on a virtual disk if desired to limit its impact on the rest of the system.\)) h 288 -50388 M 49.0 0 32 (\(In the case of rename mode, this name is just a directory specification which must be there on) W 288 -51788 M (any disks controlled\).) h 288 -54388 M 40.7 0 32 (This area gets files being deleted and saves them so that they can be deleted later. \(Note that to) W 288 -55788 M 63.1 0 32 (do immediate deletion, a process may define logical GCY$DELNOW to be "YES" in its proc\255) W 288 -57188 M (ess table and the deletions will be permitted.\)) h 288 -59788 M (The menu item) h 288 -62388 M 5988 -62388 M /Courier-ISOLatin1 F 1200 o f (Set area to save deleted files) h -7200 7200 T showpage $P e %%Page: 4 4 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (4) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 1.8 0 32 (allows selection of this area. If you are going to use rename mode be sure it does NOT contain a) W 288 -2588 M 102.4 0 32 (device: specification, just a directory which had better be there. Otherwise it should contain a) W 288 -3988 M (device specification as well as a directory.) h 288 -6588 M (The) h 288 -9188 M 5988 -9188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f (Set area for scratch) h 288 -11788 M /Times-Roman-ISOLatin1 F 1200 o f 55.2 0 32 (is needed if you wish to define a scratch area to be used for possible file access over net or for) W 288 -13188 M 107.5 0 32 (compression. It will define the logical area GCY$SCRATCH. If files are saved via command) W 288 -14588 M 104.1 0 32 (file, the command file can be set up to compress the deleted files and later decompress them;) W 288 -15988 M 171.0 0 32 (the FILDEL.COM and FILUNDEL.COM scripts will then need to be edited to do this. The) W 288 -17388 M 102.1 0 32 (scratch area also is needed for some files created when making space on a volume by the de\255) W 288 -18788 M (fault scripts.) h 288 -21688 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1600 o f (Space Monitoring) h 288 -24388 M /Times-Roman-ISOLatin1 F 1200 o f 91.7 0 32 (With any "wastebasket" facility, a disk may fill up, and it will be desired to be able to handle) W 288 -25788 M 68.7 0 32 (this automatically in some fashion. The DPS system includes an optional space monitor which) W 288 -27188 M 4.4 0 32 (runs the command file GCY$SYS:MAKSPC.COM to make room on a disk whenever a file cre\255) W 288 -28588 M 74.8 0 32 (ate or extend needs more space than exists on the volume. This command file may simply run) W 288 -29988 M 22.1 0 32 (the deleted\255file\255purge command to expunge all files deleted less than, say, 5 minutes ago on the) W 288 -31388 M 143.5 0 32 (disk in question, or may perform other maintenance type operations. Some example files are) W 288 -32788 M 87.8 0 32 (furnished with the system. By using such a facility, the undelete system becomes a "set it and) W 288 -34188 M 26.3 0 32 (forget it" utility in which files are kept around as long as possible and deleted when the room is) W 288 -35588 M 181.9 0 32 (needed for other things. The menu item allows you to select this functionality or disable it.) W 288 -36988 M (When selected, the item is flagged with * on screen.) h 288 -39888 M /Times-Bold-ISOLatin1 F 1600 o f (Mode Setting) h 288 -42588 M /Times-Roman-ISOLatin1 F 1200 o f (There are several modes for handling file deletion. When you select the item) h 288 -45188 M 5988 -45188 M /Courier-ISOLatin1 F 1200 o f (Set mode of deletion handling \(current value: 0\)) h 288 -47788 M /Times-Roman-ISOLatin1 F 1200 o f 22.2 0 32 (you enter a new menu which allows you to select how files being deleted are to be treated. This) W 288 -49188 M (menu looks like this:) h 288 -51788 M /Courier-ISOLatin1 F 1200 o f ( DPS MODES SETUP 11:57:40) h 288 -54388 M ( \255\255> * Run .COM file FILDEL.COM to process deletions) h 288 -55788 M ( ) h 5988 -55788 M (Rename deleted files on volume to wastebasket) h 288 -57188 M 5988 -57188 M (Copy deleted files to wastebasket area) h 288 -58588 M 5988 -58588 M (Don't delete any files after processing) h 288 -59988 M 5988 -59988 M (Delete file if no room for saving \(else do not delete\)) h 288 -61388 M 5988 -61388 M (Run GCY$CM:DELBAK.COM before wastebasket purges) h 288 -62788 M 5988 -62788 M (Set files to ignore \(allowing normal deletion of them\)) h 288 -64188 M 5988 -64188 M (Done this menu) h -7200 7200 T showpage $P e %%Page: 5 5 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (5) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 5988 -1188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q (Quit this menu, leave major modes alone) h 288 -4088 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1600 o f (Major Modes) h 288 -6788 M /Times-Roman-ISOLatin1 F 1200 o f (The first three selections are mutually exclusive. You select, when a file is deleted, to either:) h 288 -9388 M (1. Run a .COM file \(in a process that stays around so this doesn't need ) h 34488 -9388 M 2@ SAFETY013.A  [EVERHART.JTDEMO]JTUNDELETE.PS;56;3.ZIP;1Hf.025.6 0 32 ( the overhead of a new) W 288 -10788 M (process startup\) \(FILDEL.COM\) to move a copy of the file somewhere before deletion, or) h 288 -12188 M (2. Rename the file being deleted somewhere on the disk and fake successful deletion, or) h 288 -13588 M (3. Copy the file somewhere, within the daemon and using callable Convert.) h 288 -16188 M (Note that option 3 might lose some access control information.) h 288 -18788 M 107.4 0 32 (The undelete command uses the same methods, using FILUNDEL.COM to undo the delete if) W 288 -20188 M (method 1 above was chosen \(all .COM files are in area GCY$SYS\). ) h 288 -22788 M 137.6 0 32 (The basic tradeoffs are space and speed. The .COM file method is far the most flexible, and) W 288 -24188 M 27.6 0 32 (methods 1 and 3 are not too different in speed, while the rename method is fastest, but does not) W 288 -25588 M 141.6 0 32 (clear space from a disk. Not however that DPS also can respond to a low\255space situation by) W 288 -26988 M 44.0 0 32 (running a command file GCY$SYS:MAKSPC.COM, so that where space is low, the wastebas\255) W 288 -28388 M (ket cleanup utility can be run.) h 288 -31288 M /Times-Bold-ISOLatin1 F 1600 o f (OUT OF SPACE Action) h 288 -33988 M /Times-Roman-ISOLatin1 F 1200 o f (The fourth option,) h 288 -35388 M ( ) h 5988 -35388 M /Courier-ISOLatin1 F 1200 o f (Don't delete any files after processing) h 288 -37988 M /Times-Roman-ISOLatin1 F 1200 o f 125.4 0 32 (is designed for use with mode 1 \(.COM file\) processing. It arranges that the files are not de\255) W 288 -39388 M 110.9 0 32 (leted, but success is faked, when the .COM file exits. \(Normally the deletion proceeds at that) W 288 -40788 M (point.\)) h 288 -43388 M 126.3 0 32 (This can be used to allow a .COM file to create or append to a "work list" file of files to be) W 288 -44788 M 110.4 0 32 (deleted, and let another detached process perform the actual deletion processing of these files) W 288 -46188 M 82.3 0 32 (separately. Where this is done, typically files would be renamed to a scratch area, then copied) W 288 -47588 M 131.3 0 32 (somewhere and deleted from the scratch area as the separate process got to them. The delete) W 288 -48988 M 142.7 0 32 (operation by a user would then complete faster, though the file would not actually disappear) W 288 -50388 M (\(nor the file ID become invalid\) for some period afterwards.) h 288 -52988 M 176.9 0 32 (The item "Delete file if no room for saving \(else do not delete\)" lets you select what to do) W 288 -54388 M 99.9 0 32 (where the wastebasket area is too small to hold a file. Basically the original file can either be) W 288 -55788 M 17.4 0 32 (deleted or not deleted; this allows control over this action. Default is to delete the file \(as would) W 288 -57188 M 33.2 0 32 (have happened with no DPS\). Note that the FILDEL script supplied will perform space checks) W 288 -58588 M 66.3 0 32 (and run the MAKSPC script itself, so that if that method is used, the issue of deleting a file or) W 288 -59988 M 3.7 0 32 (not will usually be moot. It is also generally moot if separate daemons are used for the save area) W 288 -61388 M (disk from the other disks, or if the rename method is used.) h 288 -64138 M -7200 7200 T showpage $P e %%Page: 6 6 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (6) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1488 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1600 o f 0.000000 0.000000 0.000000 q (File Preservation) h 288 -4188 M /Times-Roman-ISOLatin1 F 1200 o f 121.6 0 32 (The option that asks "Run GCY$CM:DELBAK.COM before wastebasket purges" allows you) W 288 -5588 M 96.7 0 32 (to create a command file which is run before any purges are done. If there is a desire to keep) W 288 -6988 M 101.6 0 32 (deleted files in a longterm store somehow, this hook is present to allow this to be done. Con\255) W 288 -8388 M (struction of the command file is up to the site.) h 288 -11288 M /Times-Bold-ISOLatin1 F 1600 o f (IGNORE\255FILES List) h 288 -13988 M /Times-Roman-ISOLatin1 F 1200 o f 101.9 0 32 (There may be some file types that should not be protected from delete. At some sites, *.OBJ,) W 288 -15388 M 59.9 0 32 (*.LIS, and *.MAP are examples, and others may be found. By specifying parts of filenames to) W 288 -16788 M (exclude from protection, DPS can be set not to keep such files around for undeletion.) h 288 -19388 M 79.1 0 32 (The form of the list varies a bit depending on the mode of deletion processing. Where rename) W 288 -20788 M 75.8 0 32 (or "callable\255convert copy" modes are in use, the strings are used in STR$MATCH_WILD and) W 288 -22188 M 83.0 0 32 (so must have * as wildcard fields. Thus, to exclude *.OBJ* one would use a string containing) W 288 -23588 M 62.3 0 32 (just *.OBJ* \(which would allow FOO.OBJ;4, MUMBLE.OBJ;32, or BAR.OBJ_SAVE:5 to be) W 288 -24988 M (deleted at once\).) h 288 -27588 M 64.0 0 32 (If one is using command procedure handling, the strings are handled with F$LOCATE, so any) W 288 -28988 M 185.5 0 32 (* characters are stripped before use. To exclude *.OBJ* in that case one could just use the) W 288 -30388 M 103.3 0 32 (string ".OBJ". Note that more elaborate tests can readily be inserted in the command file as a) W 288 -31788 M 101.9 0 32 (per site test. Thus the complexity of the tests can be whatever your site needs. Often, though,) W 288 -33188 M 62.3 0 32 (the built in tests will suffice. Allowing some files to be promptly deleted is a convenience fea\255) W 288 -34588 M (ture designed to speed up operation by not doing useless work. ) h 288 -37188 M (The ignore\255files list may contain many such file specifiers, separated by commas.) h 288 -40088 M /Times-Bold-ISOLatin1 F 1600 o f (Disk Selection) h 288 -42788 M 5988 -42788 M /Times-Roman-ISOLatin1 F 1200 o f 41.6 0 32 (DPS can be separately tailored for each disk on the system or set up for any collec\255) W 288 -44188 M 76.0 0 32 (tion of disks. Once mode and function setup is done, you select the main menu "Done..." item) W 288 -45588 M 66.4 0 32 (and proceed to pick which disks the daemon will apply to. As many \(or few\) disks as you like) W 288 -46988 M 74.9 0 32 (can be controlled. This means that if you want to leave, for example, your system disk uncon\255) W 288 -48388 M (trolled by DPS but just use it on a user disk, you can do that.) h 288 -50988 M 5988 -50988 M 66.1 0 32 (The disk select menu shows mounted disks first, then all other disks in the system,) W 288 -52388 M (and can be scrolled to show different ones.) h 288 -54988 M (The menu looks something like this:) h 288 -57588 M -7200 7200 T showpage $P e %%Page: 7 7 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (7) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( DPS Configuration ) h 17388 -1188 M (Disk Selection) h 288 -2588 M ( Use arrows to move to selection. Use RETURN to select.) h 288 -5188 M ( End disk selection) h 288 -6588 M ( _ARISIA$DKA700:) h 288 -7988 M ( _ARISIA$DKB0:) h 288 -9388 M ( _ARISIA$DKB300:) h 288 -10788 M ( _ARISIA$DCA0:) h 288 -12188 M ( _ARISIA$DCA2:) h 288 -13588 M ( _ARISIA$DCA3:) h 288 -14988 M ( _ARISIA$DCA4:) h 288 -16388 M ( _ARISIA$DCA5:) h 288 -17788 M ( _ARISIA$VDB0:) h 288 -19188 M ( _ARISIA$VDB1:) h 288 -20588 M ( _ARISIA$DKB200:) h 288 -21988 M ( _ARISIA$DKB700:) h 288 -23388 M ( _ARISIA$DCA1:) h 288 -24788 M ( _ARISIA$DCA6:) h 288 -26188 M ( _ARISIA$DCA7:) h 288 -27588 M ( _ARISIA$FQA0:) h 288 -28988 M ( _ARISIA$FQA1:) h 288 -30388 M ( _ARISIA$FQA2:) h 288 -31788 M ( Type H for help.) h 17388 -31788 M (Currently on item 1 of 151) h 288 -34388 M /Times-Roman-ISOLatin1 F 1200 o f 84.4 0 32 (Move the cursor \(indicated by reverse video\) to the desired disk and select it. When done se\255) W 288 -35788 M (lecting disks, select the "End ..." item and the setup script will produce two files,) h 288 -38388 M 5988 -38388 M (SYS$MANAGER:DPS_STARTUP.COM) h 288 -40988 M (which should be run from SYSTARTUP) h 288 -43588 M (and ) h 288 -46188 M 5988 -46188 M (SYS$MANAGER:DPS_LOGIN.COM) h 288 -48788 M (which should be run from SYLOGIN.COM to define UNDELETE verbs and so on as needed.) h 288 -51688 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1600 o f (Use of UnDelete command:) h 288 -54388 M /Times-Roman-ISOLatin1 F 1200 o f (The undelete command is of form) h 288 -56988 M ($undelete ) h 288 -59588 M 142.3 0 32 (and accepts wildcards which include any part of the device name or filename of the original) W 288 -60988 M 139.0 0 32 (file; it puts the file back where it came from, provided the file still exists in the wastebasket) W 288 -62388 M 972.6 0 32 (area. The repeating batch job that the startup command file generates runs) W 288 -63788 M 36.2 0 32 (sys$manager:jtpurge.com which purges the wastebasket daily. If the purging should happen of\255) W -7200 7200 T showpage $P e %%Page: 8 8 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (8) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 71.7 0 32 (tener or less often, edit this file to adjust the times. With the default, files more than a day old) W 288 -2588 M (will be gone, but accidental deletions less long ago can be undone.) h 288 -5488 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1600 o f (EXPUNGE command) h 288 -8188 M /Times-Roman-ISOLatin1 F 1200 o f 2.1 0 32 (There are times when you will want to delete some files immediately and irretrievably. The EX\255) W 288 -9588 M 670.8 0 32 (PUNGE command is provided for this. It simply does an ASSIGN/USER "YES") W 288 -10988 M 23.5 0 32 (GCY$DELNOW and then runs the DELETE utility. The presence of this logical allows DPS to) W 288 -12388 M 29.3 0 32 (know that this particular deletion is to be done without special action. If, for example, you cre\255) W 288 -13788 M 7.3 0 32 (ate a very large scratch file sometime, you may want to delete it without having it fill the waste\255) W 288 -15188 M (basket area. The EXPUNGE command is designed to make this simple, but explicit. ) h 288 -16626 M -7200 7200 T showpage $P e %%Trailer $D end restore % DEC_WRITE_dict %%Pages: 8 %%DocumentFonts: Times-Roman %%+ Times-Bold %%+ Times-Italic %%+ Courier !*[EVERHART.JTDEMO]JTUNDELETE.RTF;1+,.Q/ 4QJ6- 0123 KPWOK56 !7Ou!89GHJ{\rtf1\ansi \deflang1024 {\fonttbl {\f0\fswiss AvantGarde;}{\f1\froman Bookman;}{\f2\fmodern Courier;}{ \f3\fswiss Helvetica;}{\f4\fswiss Helvetica Condensed;}{\f5 \fswiss Helvetica-Narrow;}{\f6\froman Lubalin Graph;}{\f7 \froman NewCenturySchlbk;}{\f8\froman Palatino;}{\f9\froman Souvenir;}{\f10 \ftech Symbol;}{\f11\froman Times-New-Roman;}{\f12\fscript ZapfChancery;}{\f13 \fdecor Zapf Dingbats;}{\f14\ftech DECtech;}{\f15\fswiss Arial;}{\f16 \fnil Arial Narrow;}{\f17\fnil Baskerville Old Face;}{\f18\fnil Bell MT;}{\f19 \froman Book Antiqua;}{\f20\froman Bookman Old Style;}{\f21\fnil Braquadocio;}{ \f22\fnil BriemScript;}{\f23\fnil Britannic;}{\f24\fnil Castellar;}{\f25 \fnil Centaur;}{\f26\fswiss Century Gothic;}{\f27\fnil Century Schoolbook;}{\f28 \fnil Contemporary;}{\f29\fnil Contemporary Brush;}{\f30\fmodern Courier New;}{ \f31\fnil Desdemona;}{\f32\fnil Eckmann;}{\f33\fnil Edda;}{\f34\fnil Elephant;}{ \f35\fnil Eurostile;}{\f36\fnil Fences;}{\f37\fnil Futura;}{\f38 \fnil Gill Sans Ultra Bold;}{\f39\fnil Lucida Blackletter;}{\f40 \froman Lucida Bright;}{\f41\fnil Lucida Bright Math Extension;}{\f42 \fnil Lucida Bright Math Italic;}{\f43\fnil Lucida Bright Math Symbol;}{\f44 \fscript Lucida Calligraphy;}{\f45\fnil Lucida Fax;}{\f46 \fnil Lucida Handwriting;}{\f47\fnil Lucida Sans;}{\f48 \fnil Lucida Sans Typewriter;}{\f49\fnil Monotype Corsiva;}{\f50 \fnil Monotype Sorts;}{\f51\fmodern Modern;}{\f52\fmodern Ms LineDraw;}{\f53 \fnil MT Extra;}{\f54\froman Roman;}{\f55\fscript Script;}{\f56\froman Times;}{ \f57\fnil WingDings;}{\f58\fnil WingDings;}{\f59\fdecor Zapf Dingbats;}{\f60 \fnil Albertus (W1);}{\f61\fnil Albertus Xb (W1);}{\f62\fnil Antique Olv (W1);}{ \f63\fnil CG Omega (W1);}{\f64\fnil CG Times (W1);}{\f65\fnil Clarendon Cd (W1) ;}{\f66\fnil Coronet (W1);}{\f67\fnil Courier (W1);}{\f68\fnil Garmond (W1);}{ \f69\fnil Letter Gothic (W1);}{\f70\fnil Line Printer (W1);}{\f71 \fnil Marigold (W1);}{\f72\fnil Univers (W1);}{\f73\fnil Univers Cd (W1);} } {\info {\title }{\author }{\revtim \yr1996\mo11\dy17}{\subject }}\paperw12240 \paperh15840\margl1440\margr1440\margt1498\margb1440\linemod0\sectd\sbkpage \footery720\headery720\endnhere \headery540 {\header \pard\plain \qj\fi0\li58\ri3663\sb0\sa120\sl-280\b0\i0\f56\fs24 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \par }\footery660 {\footer \pard\plain \qr\fi0\li7287\ri58\sb0\sa120\sl-280\b0\i0\f56\fs24 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {{\b0\i0\f56\fs24 {\field{\fldinst{page\* arabic}}} } }\par } \pard\plain \qc \fi0\li58\ri58\sb0\sa240\sl-360 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs36 Deletion Protection System\line {\b\i0\f56\fs28 (GCE Undelete Facility) }\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-360 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs32 Overview:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 How many times have you had requests of the form "I just accidentally deleted ** **. What can I do?"?\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 One of the key problems in most computer sites is tha@ SAFETY013.A ![EVERHART.JTDEMO]JTUNDELETE.RTF;17E.ZIP;1Q|>t people accidentally delet e files, which then must be retrieved from backups, often with serious lost time and informatio n repercus sions. In MSDOS systems, where there is one user only, it is possible when this happens to pick up the pieces of erroneously deleted files and to thus "Undelete" them. In multi -user systems like VMS or Unix, disk space is shared and quickly reused, so that the pieces of these files are almost never intact. A deleted file is thus generally lost irretrievably once it is deleted. To avoid this, one must somehow change what the deletion operation means to the system, s ince these deletions may come as a result of programs other than DCL issuing the commands. Also, one must take care that deleting files doesn't result in allowing anyone on the syst em to go "dump ster diving" in them.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 A related problem occurs in some sites needing permanent records (e.g., essentia lly all govern ment sites, where regulations require that files like mail be kept for historica l archives). In these sites, the necessary cleanup to allow any disk space to be freed is cumbersome d ue to these re tention needs. A system which can allow deletion to occur normally but route del eted files first to a backup can vastly reduce the technical and administrative burdens of space management without visible impact on the users.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The Undeletion Facility is a system to deal with these problems. It is built int o the VMS file system and temporarily preserves files that are deleted so that a RELIABLE "Unde lete" is pos sible. In addition it is able to route files being permanently deleted to backin g store before this is done if the site needs this. The system is intelligent enough to include or e xempt various classes of files and to impose minimal overhead in providing its protections. Be cause it be comes part of the file system, it can preserve the files and preserve their prot ection, changing the meaning of deletion without affecting system operation. Because it can respo nd to low- space conditions, it can also deal sensibly with situations where deletion is ne eded to gain space, and can operate in a totally automated way. Thus system management duties no longer need be tied up by retrieving just-deleted files that turn out to have been impo rtant, and record keeping can be made to conform to official requirements if such exist.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-340 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs32 User Manual:{\b\i0\f56\fs28 }\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The Undeletion Facility allows undeletion of VMS files that were accidentally de leted, within a period of time, and without generating security holes in one's file system.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 It operates by interception code which gains control at any delete request on a controlled vol ume and which activates a delete daemon to perform the actual "deletion" operati ons. \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 There are 3 major modes the system has: 1. {\b0\i \f56\fs24 Rename } the files deleted somewhere 2. {\b0\i \f56\fs24 Copy } the files deleted somewhere 3. {\b0\i \f56\fs24 Run a site command file } to copy, rename, compress, etc. the files.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The daemon can do 1 and 2 directly, and will check a logical name to see what fi lenames (or parts thereof) may be deleted immediately (e.g., *.OBJ*) so that saving easily-r ecreated files can be avoided. The site command file option (using a kept subprocess to avoid c onstant proc ess creation overhead) allows ultimate flexibility where the customer so desires . A different policy can be selected per disk if desired.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The system is capable of detecting out-of-space conditions and running a site co mmand script at that time if this is needed. This procedure is just spawned from the daemon if t his is enabled. A mode control allows a site to decide whether deletion where no room exists for t he new file or not.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 A cleanup process runs every hour or so and deletes older files.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 An{\b0\i \f56\fs24 undelete } command exists which can restore a file (or any wildcarded filenames) to their original locations (only) so long as the file has not been removed entirely. The re is also provi sion for allowing an EXPUNGE verb (identical to the DELETE verb exactly except t hat a dif ferent copy of the image is used) which will perform immediate deletions where t his is needed, not subject to undeletion.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Finally, a hook in the cleanup daemon will allow deleted files to be recorded "s omewhere". Where a HSM package is in use, this may consist of moving files to a nearline si te and leaving the headers around tagged for automatic retrieval.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 File ownership is left intact by the delete/undelete cycle where possible. (Note that a system de fined command file may fail to do this, but that is the site's responsibility.) \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The facility offers also a space monitor such that a site script can be run if a ny file extend or create will exceed disk free space. This can be used to run the cleanup operatio n if desired, so that deleted files remain "in the trashcan" until space is needed, and the trash can is then auto matically emptied of anything older than a minimal period.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-360 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs32 Installation\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Deletion Protection System (DPS) is installed with VMSINSTAL. You must select a directory into which DPS files will be placed. This can be anywhere, but it is good practi ce not to mix DEC and non-DEC files, so it is suggested that sys$system not be used. This dire ctory must be created before installation. As a protection against inadvertent use of a mis-sp elled directory this is required.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Once the software is installed, you must run the JT_SETUP_DEL script which is fu rnished. This is done via the command\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 $ @GCY$SYS:JT_SETUP_DEL\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 and presents you with a menu which looks like this:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 DPS SETUP 12:03:45\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 --> *Set area to hold DPS database files\line \tab Set start intercept driver unit number (now 0)\line *Set area for DPS executable images\line \tab Done this menu, process disk selection\line \tab Remove a disk from an existing DPS configuration\line \tab Set images which are exempt from DPS (e.g. defraggers)\line \tab Set area for scratch\line \tab Set area to save deleted files\line \tab Set mode of deletion handling (current value: 0)\line \tab Enable volume space monitoring\line \tab Quit, do nothing\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 If you have rebooted since running VMSINSTAL, you will have to reselect the area to hold DPS files. If not (as in the screen above), the selection of this area has alrea dy been done (thus it is tagged with *) and need not be repeated. The area selected at VMSINSTAL sh ould be used for DPS images, since they will be there already. The area used to hold DPS data bases is in itially this same area, but may be reassigned.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The "Set start intercept driver unit number" is used where more than one deletio n daemon will exist in the system. You run this script once per daemon, and each disk you sele ct to assign to that daemon uses one intercept driver unit. Therefore you must set the start int ercept unit to something nonzero and greater than all units currently set to be used should you select multiple daemons. If you configure, for example, three disks for the first delete daemon, that will use intercept units 0, 1, and 2. Therefore start the next time at unit 3. This sort of counting is simple and therefore is up to the user. (If a script tries to start using an intercept unit that is already in use, the attempt to use it the second time will be ignored.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 DPS stores files in a "wastebasket" area which can be anywhere on your system. I t need not be accessible to anyone without privilege (since the undelete image and DPS itself have such) but must be able to hold deleted files during the period between deletion and actual removal. (This area can be kept on a virtual disk if desired to limit its impact on the rest of the system.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 (In the case of rename mode, this name is just a directory specification which m ust be there on any disks controlled).\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 This area gets files being deleted and saves them so that they can be deleted la ter. (Note that to do immediate deletion, a process may define logical GCY$DELNOW to be "YES" in it s proc ess table and the deletions will be permitted.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The menu item\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab {\b0\i0\f2\fs24 Set area to save deleted files }\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 allows selection of this area. If you are going to use rename mode be sure it do es NOT contain a device: specification, just a directory which had better be there. Otherwise it should contain a device specification as well as a directory.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab {\b0\i0\f2\fs24 Set area for scratch }\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 is needed if you wish to define a scratch area to be used for possible file acce ss over net or for compression. It will define the logical area GCY$SCRATCH. If files are saved via command file, the command file can be set up to compress the deleted files and later dec ompress them; the FILDEL.COM and FILUNDEL.COM scripts will then need to be edited to do this. The scratch area also is needed for some files created when making space on a volume by the de fault scripts.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-360 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs32 Space Monitoring\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\@ SAFETY013.A ![EVERHART.JTDEMO]JTUNDELETE.RTF;1;4.ZIP;1Q|>'tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 With any "wastebasket" facility, a disk may fill up, and it will be desired to b e able to handle this automatically in some fashion. The DPS system includes an optional space mo nitor which runs the command file GCY$SYS:MAKSPC.COM to make room on a disk whenever a file cre ate or extend needs more space than exists on the volume. This command file may simply run the deleted-file-purge command to expunge all files deleted less than, say, 5 mi nutes ago on the disk in question, or may perform other maintenance type operations. Some example files are furnished with the system. By using such a facility, the undelete system becomes a "set it and forget it" utility in which files are kept around as long as possible and delete d when the room is needed for other things. The menu item allows you to select this functionality o r disable it. When selected, the item is flagged with * on screen.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-360 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs32 Mode Setting\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 There are several modes for handling file deletion. When you select the item\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab {\b0\i0\f2\fs24 Set mode of deletion handling (current value: 0) }\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 you enter a new menu which allows you to select how files being deleted are to b e treated. This menu looks like this:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 DPS MODES SETUP 11:57:40\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 --> * Run .COM file FILDEL.COM to process deletions\line \tab Rename deleted files on volume to wastebasket\line \tab Copy deleted files to wastebasket area\line \tab Don't delete any files after processing\line \tab Delete file if no room for saving (else do not delete)\line \tab Run GCY$CM:DELBAK.COM before wastebasket purges\line \tab Set files to ignore (allowing normal deletion of them)\line \tab Done this menu\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 \tab Quit this menu, leave major modes alone\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-360 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs32 Major Modes\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The first three selections are mutually exclusive. You select, when a file is de leted, to either:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 1. Run a .COM file (in a process that stays around so this doesn't need \tab the overhead of a new process startup) (FILDEL.COM) to move a copy of the file somewhere before deleti on, or\line 2. Rename the file being deleted somewhere on the disk and fake successful delet ion, or\line 3. Copy the file somewhere, within the daemon and using callable Convert.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Note that option 3 might lose some access control information.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The undelete command uses the same methods, using FILUNDEL.COM to undo the delet e if method 1 above was chosen (all .COM files are in area GCY$SYS). \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The basic tradeoffs are space and speed. The .COM file method is far the most fl exible, and methods 1 and 3 are not too different in speed, while the rename method is faste st, but does not clear space from a disk. Not however that DPS also can respond to a low-space si tuation by running a command file GCY$SYS:MAKSPC.COM, so that where space is low, the waste bas ket cleanup utility can be run.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-360 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs32 OUT OF SPACE Action\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The fourth option,\line \tab {\b0\i0\f2\fs24 Don't delete any files after processing }\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 is designed for use with mode 1 (.COM file) processing. It arranges that the fil es are not de leted, but success is faked, when the .COM file exits. (Normally the deletion pr oceeds at that point.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 This can be used to allow a .COM file to create or append to a "work list" file of files to be deleted, and let another detached process perform the actual deletion processing of these files separately. Where this is done, typically files would be renamed to a scratch ar ea, then copied somewhere and deleted from the scratch area as the separate process got to them. The delete operation by a user would then complete faster, though the file would not actual ly disappear (nor the file ID become invalid) for some period afterwards.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The item "Delete file if no room for saving (else do not delete)" lets you selec t what to do where the wastebasket area is too small to hold a file. Basically the original f ile can either be deleted or not deleted; this allows control over this action. Default is to dele te the file (as would have happened with no DPS). Note that the FILDEL script supplied will perform s pace checks and run the MAKSPC script itself, so that if that method is used, the issue of d eleting a file or not will usually be moot. It is also generally moot if separate daemons are used for the save area disk from the other disks, or if the rename method is used.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-340 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-340 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f7\fs28 {\b\i0\f56\fs32 File Preservation }\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The option that asks "Run GCY$CM:DELBAK.COM before wastebasket purges" allows yo u to create a command file which is run before any purges are done. If there is a desire to keep deleted files in a longterm store somehow, this hook is present to allow this to be done. Con struction of the command file is up to the site.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-360 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs32 IGNORE-FILES List\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 There may be some file types that should not be protected from delete. At some s ites, *.OBJ, *.LIS, and *.MAP are examples, and others may be found. By specifying parts of f ilenames to exclude from protection, DPS can be set not to keep such files around for undele tion.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The form of the list varies a bit depending on the mode of deletion processing. Where rename or "callable-convert copy" modes are in use, the strings are used in STR$MATCH_W ILD and so must have * as wildcard fields. Thus, to exclude *.OBJ* one would use a strin g containing just *.OBJ* (which would allow FOO.OBJ;4, MUMBLE.OBJ;32, or BAR.OBJ_SAVE:5 to be deleted at once).\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 If one is using command procedure handling, the strings are handled with F$LOCAT E, so any * characters are stripped before use. To exclude *.OBJ* in that case one could j ust use the string ".OBJ". Note that more elaborate tests can readily be inserted in the com mand file as a per site test. Thus the complexity of the tests can be whatever your site needs. Often, though, the built in tests will suffice. Allowing some files to be promptly deleted is a convenience fea ture designed to speed up operation by not doing useless work. \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The ignore-files list may contain many such file specifiers, separated by commas .\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-360 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs32 Disk Selection\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab DPS can be separately tailored for each disk on the system or set up for any col lec tion of disks. Once mode and function setup is done, you select the main menu "D one..." item and proceed to pick which disks the daemon will apply to. As many (or few) disks as you like can be controlled. This means that if you want to leave, for example, your syste m disk uncon trolled by DPS but just use it on a user disk, you can do that.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab The disk select menu shows mounted disks first, then all other disks in the syst em, and can be scrolled to show different ones.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The menu looks something like this:\par\page \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 DPS Configuration \tab Disk Selection\line Use arrows to move to selection. Use RETURN to select.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f2\fs24 End disk selection\line _ARISIA$DKA700:\line _ARISIA$DKB0:\line _ARISIA$DKB300:\line _ARISIA$DCA0:\line _ARISIA$DCA2:\line _ARISIA$DCA3:\line _ARISIA$DCA4:\line _ARISIA$DCA5:\line _ARISIA$VDB0:\line _ARISIA$VDB1:\line _ARISIA$DKB200:\line _ARISIA$DKB700:\line _ARISIA$DCA1:\line _ARISIA$DCA6:\line _ARISIA$DCA7:\line _ARISIA$FQA0:\line _ARISIA$FQA1:\line _ARISIA$FQA2:\line Type H for help.\tab Currently on item 1 of 151\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Move the cursor (indicated by reverse video) to the desired disk and select it. When done se lecting disks, select the "End ..." item and the setup script will produce two f iles,\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab SYS$MANAGER:DPS_STARTUP.COM\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 which should be run from SYSTARTUP\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 and \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \tab SYS$MANAGER:DPS_LOGIN.COM\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 which should be run from SYLOGIN.COM to define UNDELETE verbs and so on as neede d.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-360 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs32 Use of UnDelete command:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-28@ SAFETY013.A ![EVERHART.JTDEMO]JTUNDELETE.RTF;1;4.ZIP;1Q F0 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The undelete command is of form\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 $undelete \par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 and accepts wildcards which include any part of the device name or filename of t he original file; it puts the file back where it came from, provided the file still exists i n the wastebasket area. The repeating batch job that the startup command file generates runs sys$manager:jtpurge.com which purges the wastebasket daily. If the purging shoul d happen of\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 tener or less often, edit this file to adjust the times. With the default, files more than a day old will be gone, but accidental deletions less long ago can be undone.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-360 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs32 EXPUNGE command\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 There are times when you will want to delete some files immediately and irretrie vably. The EX PUNGE command is provided for this. It simply does an ASSIGN/USER "YES" GCY$DELNOW and then runs the DELETE utility. The presence of this logical allows DPS to know that this particular deletion is to be done without special action. If, fo r example, you cre ate a very large scratch file sometime, you may want to delete it without having it fill the waste basket area. The EXPUNGE command is designed to make this simple, but explicit. \par }!*[EVERHART.JTDEMO]JTUNDELETE.TXT;9+,. / 4I \- 0123 KPWO56 F7bĘ89GHJGCE Undeletion Facility@The Undeletion Facility allows undeletion of VMS files that wereEaccidentally deleted, within a period of time, and without generating$security holes in one's file system.BIt operates by interception code which gains control at any deleteBrequest on a controlled volume and which activates a delete daemon-to perform the actual "deletion" operations. HFor simplicity, the deletion daemon can use a secondary subprocess to do5actual operations. The modes this subprocess has are:A1. Rename files to "safe" area on the same disk and mark them for time, or?2. Copy files to "safe" area somewhere else and mark for time. IThe daemon also can use callable CONVERT to copy files or lib$rename_file@to accomplish these policies directly, using logicals to specifyGfiletypes to delete at once. The subprocess method will however provideCultimate flexibility where this is needed. Normally, the "built-in"Bmethod will be used for speed, but this can be selected separatelyBfor each daemon that runs (each daemon serving one or more disks).9Additional policy decisions are needed. These consist of:=1. File types that should be deleted immediately (e.g., ".OBJ5 files", or "files created more than 10 days ago").;2. What to do if space runs out at the destination area. An> additional command file is run by the system where space is? exhausted on the device by an extend or create (actually, itC runs before the extend or create is performed), but as a general: policy one can either allow the deletion or disallow it= in such a case. This must be a site option. Also an option= must be whether to report an I/O error on deletion or not,> since the system can fake a success or generate an error in" addition to doing the deletion.?The marking consists of a simple data record giving the time of=deletion and original file location & owner, which is used byCcleanup processes. This permits programmatic copy or rename without2messing with file ACLs, speeding up the operation.@A cleanup process runs every hour or so and deletes older files.?An option for an auto expunge operation on files at logout will be provided.=Both of these operate by command procedures running a cleanupCimage which can clean up old files or files from a particular user.=The system will allow deletions by any process specifying the2 io$_delete + io$m_create function instead of just8 io$_delete. The modifier is stripped off and the delete7 is done. This is used by an EXPUNGE program which will6 cause files to "really delete" with no possibility of undeletion.@A file restore command will allow replacing a file where it camefrom, with ownership unaltered.DFinally, a hook in the cleanup daemon will allow deleted files to beErecorded "somewhere". Where a HSM package is in use, this may consistAof moving files to a nearline site and leaving the headers aroundtagged for automatic retrieval.@A callable version of the cleanup utility will be provided also,?which can be furnished a disk, a time before which to clean up,or a user to clean up. CAn undelete utility (also available in callable version) will allow=restoration of files to their original locations provided theAcaller either has sysprv privilege or is the original file owner."Others will not be allowed access."*[EVERHART.JTDEMO]JTUNDELUSER.COM;9+,. / 4: - 0123 KPWO567ot189GHJ$! undelete user command!$jtdelmaint:==$gcy$sys:jtdelmaint$if p1 .eqs. ""$ then:$ write sys$output "%DPS-F-Nofile No filename to undelete"$ exit$endif$jtdelmaint 'p1'/%UNDEL*[EVERHART.JTDEMO]JTUSER.DOC;8+,. / 4I - 0123 KPWO 56`7`EbĘ89GHJ.Extended Access Control Facility - User Manual VERY PRELIMINARY & INCOMPLETECNote: The screen oriented menus do not yet include ALL functions ofCEACF. Notably missing is setup of the kernel mode marking currentlyChandled by a /filenum:filespec switch on the command to JTDMN. Thiswill be added to setup menus.=View of file marking main screen after file has been entered:5 Extended Access Control Facility - File Marking/ File VDB0:[EVERHART]ROBOTFLOW.TXT;5@ --> Edit max-privs-to-open mask (current: DFFFFFFFFFFFFFFF)3 Set base priority override (current: None)% Edit permitted user list (*)( Edit forbidden user list (None)& Edit permitted term. list (*)) Edit forbidden term. list (None)& Edit permitted image list (*)) Edit forbidden image list (None)( Edit backup account list (None)9 Edit time-use profile (YYYYYYYYYYYYYYYYYYYYYYYY); Edit replacement priv mask (active when file open): Set backup user access [Readonly/Read-Write] R/W Set file tamper check Set file password Enter security key( Set conditional softlink (None)5 Grant identifier on open/revoke on close ( ) Quit, make no changes' Done, update file controls now( Delete this entry from database>View of file marking menu after some user lists are edited andother fields are edited.5 Extended Access Control Facility - File Marking/ File VDB0:[EVERHART]ROBOTFLOW.TXT;5@ Edit max-privs-to-open mask (current: DFFFFFFFFFFFFFFF)3 Set base priority override (current: None)2 Edit permitted user list (EVERHART,GLENN)) Edit forbidden user list (FIELD)& Edit permitted term. list (*)) Edit forbidden term. list (None)+ Edit permitted image list (BACKUP)) Edit forbidden image list (None)( Edit backup account list (None)9 Edit time-use profile (YNNNNNYYYYYYYYYYYYYYYYYY); Edit replacement priv mask (active when file open): Set backup user access [Readonly/Read-Write] R/W Set file tamper check *Set file password *Enter security key9 Set conditional softlink (VDB0:[EVERHART]ND.TXT)5 Grant identifier on open/revoke on close ( ) Quit, make no changes' --> Done, update file controls now( Delete this entry from database Installation:BEACF is designed to (ultimately) be installed via VMSINSTAL. After>installation a JT_SETUP.COM script is used to configure it for@the disk devices in the system. This script generates the scriptArun at each system boot to turn EACF on. It is menu driven in twophases.? The first menu basically selects the storage areas for EACF's$databases. Its menu looks like this: EACF SETUP 12:07:55, --> *Set area to hold EACF database files. Done this menu, process disk selection9 Remove a disk from an existing EACF configuration Quit, do nothing@The second menu phase selects disks to be controlled by EACF and@gathers security key information for each of them. It looks likethis: EACF Configuration Disk Selection: Use arrows to move to selection. Use RETURN to select. End disk selection _ARISIA$DKA700: _ARISIA$DKB0: _ARISIA$DCA0: _ARISIA$DCA2: _ARISIA$DCA5: _ARISIA$FRA0: _ARISIA$FRA1: _ARISIA$FRA3: _ARISIA$FRA4: _ARISIA$VDB0: _ARISIA$VDB1: _ARISIA$VDB2: _ARISIA$DKB200: _ARISIA$DCA1: _ARISIA$DCA3: _ARISIA$DCA4: _ARISIA$DCA6: _ARISIA$DCA7:I Currently on item 3 of 151"Enter security key ( if none):D(One enters the security key at the prompt. It is used in validationEof certain ACE information. As a result, the configuration files need<to be kept secret; EACF itself can however be used for this.%*[EVERHART.JTDEMO]JT_MARK_FILES.COM;15+,.6/ 4d62x- 0123 KPWO356?d7C189GHJ $set noverify'$! Copyright (c) 1994 Glenn C. Everhart$! All Rights Reserved$ask:==inquire$emit:==write sys$output$set command sys$system:zmenu $ffnm=" "$modlop: $ffnm=" "$ffnm=""1$if p1 .nes. "" .and. p1 .nes. " " then ffnm = p1 $p1 = " "$p1 = ""$wild=0 $wldfile=" " $wldctr=0Q$if ffnm .eqs. "" .or. ffnm .eqs. " " then ask ffnm "File(s) to mark (? for dir)"$if ffnm .eqs. "" then exit*$if f$locate("?",ffnm) .lt. f$length(ffnm)$then*$ inquire fdcmd "Directory of what files:"$ dircmd="dir " + fdcmd$ spawn dircmd $ goto modlop$endif#$if f$length(ffnm) .le. 2 then exit $fnm=ffnm$if f$search(fnm,4) .eqs. ""$ then$ emit "%EACF-F-No such file" $goto modlop$endif8$if f$locate("*",ffnm) .lt. f$length(ffnm) then wild = 18$if f$locate("%",ffnm) .lt. f$length(ffnm) then wild = 1 $wldfile=ffnm$wldlop:$if wild .eq. 0$then"$if wldctr .gt. 0 then goto modlop$fnm=f$search(ffnm,3)$wldctr=wldctr+1$endif$if wild .ne. 0$then$wldctr=wldctr+1$fnm=f$search(wldfile,3)!$if fnm .eqs. "" then goto modlop$endif$jtauthmaint:==$jtauthmaint$flnm=f$search(fnm)$if flnm .eqs. "" $ then$$ emit "%EACF-F-No such file found"$ goto modlop$ endif$jta_fusr="None"$jta_ftty="None"$jta_fimg="None"$jta_mxpv="None"$jta_cksm="None"$jta_bkpu="None"$$jta_itim="YYYYYYYYYYYYYYYYYYYYYYYY"$jta_pswd="0000000000000000" $jta_usrs=" " $jta_ttys=" " $jta_imgs=" " $jta_cslk=" " $jta_insp=" " $jta_bpri=" " $jta_idnt=" "$jta_surw="R/W" $jta_rprv=" " $set noon$ jtauthmaint 'flnm'\%SYMS$set on-$if JTA_BPRI .EQS. " " THEN JTA_BPRI = "None"-$if JTA_Idnt .eqs. " " then JTA_IDNT = "None"-$if JTA_RPRV .eqs. " " then jta_rprv = "None"-$if jta_cslk .eqs. " " then jta_cslk = "None"$csftf=0 $cksf=" "3$if jta_cksm .nes. "0000000000000000" then cksf="*" $pswf=" " $skyf=" " $sekey=" " $stident=" "$sident=jta_idnt$if f$length(jta_idnt) .ge. 16$then$aaa=0%$ttt="aaa=%x"+f$extract(0,8,jta_idnt)$'ttt')$zidnt=f$identifier(aaa,"number_to_name")%$if zidnt .nes. "" then stident=zidnt$endif$prvsym=="0000000000000000" $ptitle="Max Privs To Open File" $filpwd=" "$smptr=1$domenu:?$zmenu/POINTER="-->"/SYMBOLS/initial='f$string(smptr)'5 Extended Access Control Facility - File Marking File 'flnm': ^ Edit max-privs-to-open mask (current: 'JTA_MXPV')9 ^ Set base priority override (current: 'JTA_BPRI'). ^ Edit permitted user list ('JTA_USRS'). ^ Edit forbidden user list ('JTA_FUSR')/ ^ Edit permitted term. list ('JTA_TTYS')/ ^ Edit forbidden term. list ('JTA_FTTY')/ ^ Edit permitted image list ('JTA_IMGS')/ ^ Edit forbidden image list ('JTA_FIMG'). ^ Edit backup account list ('JTA_BKPU')+ ^ Edit time-use profile ('JTA_ITIM')? ^ Edit replacement priv mask (when file open) 'jta_rprv'A ^ Set backup user access [Readonly/Read-Write] 'JTA_SURW'# ^ 'cksf'Set file tamper check ^ 'pswf'Set file password ^ 'skyf'Enter security key. ^ Set conditional softlink ('jta_cslk')= ^ Grant identifier on open/revoke on close ('stident') ^ Quit, make no changes' ^ Done, update file controls now( ^ Delete this entry from database$smptr = choice#$if choice .eq. 18 then goto wldlop$if choice .eq. 17$ then$$ask vidnt "Enter identifier to tag"#$if vidnt .eqs. "" then goto domenu,$nident=f$identifier(vidnt,"name_to_number")$stident=vidnt$ttt=f$fao("!XL",nident)$sident=ttt+"00000000" $ goto domenu$endif$if choice .eq. 16$ then$! cond. softlink6$ask cffk "Enter device:file to open if access denied"0$if f$search(cffk) .nes. "" then jta_cslk = cffk2$if f$search(cffk) .eqs. "" then jta_cslk = "None" $ goto domenu$ endif$if choice .eq. 20$ then$jtauthmaint 'flnm'\Z-X+$jtauthmaint 'flnm'\%DELETE $ goto wldlop$ endif$if choice .eq. 15$then$ask ktxt "Enter security key"$$ktxt=f$edit(ktxt,"COLLAPSE,UPCASE")@ SAFETY013.A %[EVERHART.JTDEMO]JT_MARK_FILES.COM;15IP;1d6> )$if f$length(ktxt) .le.3 then goto domenu $skyf="*" $sekey=ktxt $goto domenu$endif$if choice .eq. 19$ then5$! Here concoct jtauthmaint call to update everything$insme=0 $fcnstr="X+"6$if pswf .eqs. "*" then fcnstr=fcnstr+"Y+<"+filpwd+">"$if pswf .eqs. "*" then insme=14$if skyf .eqs. "*" then fcnstr=fcnstr+"K<"+sekey+">"2$if jta_rprv .nes. "None" .and. jta_rprv .nes. " "$ then8$ if skyf .eqs. "*" then fcnstr=fcnstr+"P<"+jta_rprv+">"$ endif$if jta_mxpv .nes. "None"$then$insme=1 $fcnstr=fcnstr+"V<"+jta_mxpv+">"$endif:$if jta_bpri .nes. "None" then fcnstr=fcnstr+"#S"+jta_bpri2$if jta_usrs .nes. " " .and. jta_usrs .nes. "None"$then$insme=1!$fcnstr=fcnstr+"U*<"+jta_usrs+">"$endif2$if jta_cslk .nes. " " .and. jta_cslk .nes. "None"$then$insme=1 $fcnstr=fcnstr+"C<"+jta_cslk+">"$endif$if f$length(sident) .ge. 16$then$fcnstr=fcnstr+"I<"+sident+">"$endif2$if jta_fusr .nes. " " .and. jta_fusr .nes. "None"$then$insme=1!$fcnstr=fcnstr+"V*<"+jta_fusr+">"$endif2$if jta_ttys .nes. " " .and. jta_ttys .nes. "None"$then$insme=1!$fcnstr=fcnstr+"K*<"+jta_ttys+">"$endif2$if jta_ftty .nes. " " .and. jta_ftty .nes. "None"$then$insme=1!$fcnstr=fcnstr+"L*<"+jta_ftty+">"$endif2$if jta_imgs .nes. " " .and. jta_imgs .nes. "None"$then$insme=1!$fcnstr=fcnstr+"N*<"+jta_imgs+">"$endif2$if jta_fimg .nes. " " .and. jta_fimg .nes. "None"$then$insme=1!$fcnstr=fcnstr+"O*<"+jta_fimg+">"$endif$if cksf .eqs. "*"$then$insme=1$fcnstr=fcnstr+"Z+"$endif$if cksf .eqs. " "$then$fcnstr=fcnstr+"Z-"$endifP$if jta_bkpu .nes. " " .and. jta_bkpu .nes. "None" .and. jta_bkpu .nes. "%None%"$then$insme=1!$fcnstr=fcnstr+"Q*<"+jta_bkpu+">"$endif$if f$length(jta_itim) .ge. 24$then$insme=1 $fcnstr=fcnstr+"T<"+jta_itim+">"$endifJ$if jta_surw .nes. "None" .and. jta_surw .nes. "" .and. jta_surw .nes. " "$then$insme=10$if jta_surw .eqs. "R/W" then fcnstr=fcnstr+"R-"0$if jta_surw .eqs. "R/O" then fcnstr=fcnstr+"R+"$endif'$if insme .ne.0 then fcnstr=fcnstr+"I+"@$!sho sym fcnstr !*****************************debug************>$!wait 0:0:10 !**********************debug********************$$jtauthmaint 'flnm'\'fcnstr' $! $ goto wldlop$endif$if choice .eq. 10$ then$! time choice$wrktim=jta_itimC$if f$length(wrktim) .lt. 24 then wrktim="YYYYYYYYYYYYYYYYYYYYYYYY" $csav=choice$gtptr=1$gtmu:?$zmenu/POINTER="-->"/SYMBOLS/initial='f$string(gtptr)'. Time Usage Permission Editing (by hour). Current Profile 'wrktim'0 0 111111111122220 012345678901234567890123J Key: Y - checked acc. N - No access except bkp D - no access at allN U - Unchecked acc P - Priv checks onlt R - Readonly access only X - R/W chks only> ^ 0-1AM ^ 12N-1PM ^ Quit this menu, no changes7 ^ 1-2AM ^ 1-2PM ^ Exit, apply changes ^ 2-3AM ^ 2-3PM ^ 3-4AM ^ 3-4PM ^ 4-5AM ^ 4-5PM ^ 5-6AM ^ 5-6PM ^ 6-7AM ^ 6-7PM ^ 7-8AM ^ 7-8PM ^ 8-9AM ^ 8-9PM ^ 9-10AM ^ 9-10PM ^ 10-11AM ^ 10-11PM ^ 11-12AM ^ 11-12M $gtptr=choice!$if choice .eq. 25 then goto cavc$if choice .eq. 26$ then$ jta_itim=wrktim $ goto cavc$endif $ptr=choice-$ask fcn2do "Give code for this hour access:""$if fcn2do .eqs. "" then goto gtmu$fcn2do=f$extract(0,1,fcn2do)$fcn2do=f$edit(fcn2do,"upcase")"$if fcn2do .eqs. "" then goto gtmu9$if f$locate(fcn2do,"YNDUPRX-----") .GT. 7 then goto gtmu<$! now insert the action code for this time into the string.A$! eliminate boundary effects by tacking extra chars on the ends.$ws2="."+wrktim+"."$llft=26-ptr-1>$ws2=f$extract(0,ptr,ws2) + fcn2do + f$extract(ptr+1,llft,ws2)$wrktim=f$extract(1,24,ws2) $goto gtmu$cavc: $choice=csav $ goto domenu$endif$if choice .eq. 13$ then$ if cksf .eqs. "*"$ then $ cksf=" " $ goto domenu$ endif$ if cksf .eqs. " "$ then $ cksf="*"$ endif $ goto domenu$ endif$if choice .eq. 14$ then$ if pswf .eqs. "*"$ then $ pswf=" " $ goto domenu$ endif$ if pswf .eqs. " "$ then $ pswf="*""$ ask filpwd "Enter file password""$ if filpwd .eqs. "" then pswf=" "$ endif $ goto domenu$ endif$if choice .eq. 1$ then$ prvsym==jta_mxpv>$ if f$length(prvsym) .lt. 16 then prvsym=="0000000000000000"1$ ptitle="Privileges Permitted For Opening File"$ gosub prvget$ jta_mxpv=prvsym $ goto domenu$endif$ if choice .eq. 11$ then$ prvsym==jta_rprv=$ if f$length(prvsym) .lt. 16 then prvsym=="0000000000000000"3$ ptitle="Privilege Mask to Replace all priv masks"$ gosub prvget$ jta_rprv=prvsym $ goto domenu$endif$ if choice .eq. 12$ then$ if JTA_SURW .eqs. "R/W"$ then$ jta_surw = "R/O" $ goto domenu$ endif/$ if JTA_SURW .eqs. "R/O" then jta_surw = "R/W" $ goto domenu$ endif$if choice .eq. 2$ then?$ ask bpr "Enter base priority for process with this file open"d$ if bpr .eqs. "" .or. bpr .eqs. "NONE" .or. bpr .eqs. "None" .or. bpr .eqs. "none" then goto domenu$ if bpr .lt.0.or.bpr.gt. 31$then$jta_bpri="None" $goto domenu$endif$ jta_bpri=f$string(bpr)$! base prio symbol is now set. $ goto domenu$endif$if choice .eq. 3$ then$ chcsv=choice$usrlst=jta_usrs$ucmu:%$zmenu/POINTER="-->"/SYMBOLS# Edit Permitted User List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add users to list ^ Remove users from list ^ Replace list$ ^ Quit, leave user list alone ^ Done with this menu$if choice .eq. 1$then%$ask uad "Enter users to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uad $goto ucmu$endif$if choice .eq. 2$then*$ask uad "Enter users to remove from list")$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto ucmu$endif$if choice .eq. 3$then$ask uad "Enter user list"$if uad .eqs. "" then uad="*" $usrlst=uad $goto ucmu$endif $if choice .eq 4 then goto c3dun$if choice.eq. 5 $then$jta_usrs=usrlst $goto c3dun$endif$c3dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 4$ then$ chcsv=choice$usrlst=jta_fusr$vcmu:%$zmenu/POINTER="-->"/SYMBOLS# Edit Forbidden User List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add users to list ^ Remove users from list ^ Replace list$ ^ Quit, leave user list alone ^ Done with this menu$if choice .eq. 1$then%$ask uad "Enter users to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uad $goto vcmu$endif$if choice .eq. 2$then*$ask uad "Enter users to remove from list")$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto vcmu$endif$if choice .eq. 3$then$ask uad "Enter user list"$if uad .eqs. "" then uad="*" $usrlst=uad $goto vcmu$endif $if choice .eq 4 then goto c4dun$if choice.eq. 5 $then$jta_fusr=usrlst $goto c4dun$endif$c4dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 5$! permitted terminal list$ then$ chcsv=choice$usrlst=jta_ttys$wcmu:%$zmenu/POINTER="-->"/SYMBOLS' Edit Permitted Terminal List# Current user list: 'usrlst'. * is wild card, & means omit this test- ^ Add terminals (or acc ports) to list. ^ Remove terminals / accports from list. ^ Replace list of terminals / acc ports( ^ Quit, leave terminal list alone ^ Done with this menu$if choice .eq. 1$then)$ask uad "Enter terminals to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uad $goto wcmu$endif$if choice .eq. 2$then.$ask uad "Enter terminals to remove from list")$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto wcmu$endif$if choice .eq. 3$then$ask uad "Enter terminal list"$if uad .eqs. "" then uad="*" $usrlst=uad $goto wcmu$endif $if choice .eq 4 then goto c5dun$if choice.eq. 5 $then$jta_ttys=usrlst $goto c5dun$endif$c5dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 6$! forbidden terminal list$ then$ chcsv=choice$usrlst=jta_ftty$xcmu:%$zmenu/POINTER="-->"/SYMBOLS' Edit Forbidden Terminal List# Current user list: 'usrlst'. * is wild card, & means omit this test) ^ Add terminals / accports to list. ^ Remove terminals / accports from list ^ Replace list$ ^ Quit, leave user list alone ^ Done with this menu$if choice .eq. 1$then)$ask uad "Enter terminals to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uad $goto xcmu$endif$if choice .eq. 2$then.$ask uad "Enter terminals to remove from list")$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto xcmu$endif$if choice .eq. 3$then$ask uad "Enter terminal list"$if uad .eqs. "" then uad="*" $usrlst=uad $goto xcmu$endif $if choice .eq 4 then goto c6dun$if choice.eq. 5 $then$jta_ftty=usrlst $goto c6dun$endif$c6dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 7$! permitted images edit$ then$ chcsv=choice$usrlst=jta_imgs$ycmu:%$zmenu/POINTER="-->"/SYMBOLS% Edit Permitted Images List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add Images to list ^ Remove Images from list ^ Replace list% ^ Quit, leave image list alone ^ Done with this menu$if choice .eq. 1$then&$ask uad "Enter images to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uad $goto ycmu$endif$if choice .eq. 2$then+$ask uad "Enter images to remove from list")$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto ycmu$endif$if choice .eq. 3$then$ask uad "Enter image list"$if uad .eqs. "" then uad="*" $usrlst=uad $goto ycmu$endif $if choice .eq 4 then goto c7dun$if choice.eq. 5 $then$jta_imgs=usrlst $goto c7dun$endif$c7dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 8$! Forbidden images edit$ then$ chcsv=choice$usrlst=jta_fimg$aycmu:%$zmenu/POINTER="-->"/SYMBOLS% Edit Forbidden Images List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add Images to list ^ Remove Images from list ^ Replace list% ^ Quit, leave image list alone ^ Done with this menu$if choice .eq. 1$then&$ask uad "Enter images to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uad $goto aycmu$endif$if choice .eq. 2$then+$ask uad "Enter images to remove from list")$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto aycmu$endif$if choice .eq. 3$then$ask uad "Enter image list"$if uad .eqs. "" then uad="*" $usrlst=uad $goto aycmu$endif $if choice .eq 4 then goto c8dun$if choice.eq. 5 $then$jta_fimg=usrlst $goto c8dun$endif$c8dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 9$! backup user edit$ then$ chcsv=choice$usrlst=jta_bkpu$bycmu:%$zmenu/POINTER="-->"/SYMBOLS Edit Backup User List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add Users to list ^ Remove Users from list ^ Replace list$ ^ Quit, leave user list alone ^ Done with this menu$if choice .eq. 1$then%$ask uad "Enter users to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uad $goto bycmu$endif$if choice .eq. 2$then*$ask uad "Enter users to remove from list")$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto bycmu$endif$if choice .eq. 3$then)$ask uad "Enter backup (super) user list""$if uad .eqs. "" then uad="%None%" $usrlst=uad $goto bycmu$endif $if choice .eq 4 then goto c9dun$if choice.eq. 5 $then$jta_bkpu=usrlst $goto c9dun$endif$c9dun:$ choice=chcsv $ goto domenu$endif $if wild .ne. 0 then goto wldlop $goto modlopF$! Privilege mask generating subroutine. Toggles privs or allows privsJ$! to be all set or reset via menu. Output hex string in "prvsym" ready to!$! use for jtauthmaint et. alia. $! By Glenn Everhart, 5/19941$! Defaults to a mask with tmpmbx and netmbx set.$prvget: $set noverify$!set comm sys$system:zmenu $pmf0=" " $pmf1=" " $pmf2=" " $pmf3=" " $pmf4=" " $pmf5=" " $pmf6=" " $pmf7=" " $pmf8=" " $pmf9=" " $pmf10=" " $pmf11=" " $pmf12=" " $pmf13=" " $pmf14=" " $pmf15=" " $pmf16=" " $pmf17=" " $pmf18=" " $pmf19=" " $pmf20=" " $pmf21=" " $pmf22=" " $pmf23=" " $pmf24=" " $pmf25=" " $pmf26=" " $pmf27=" " $pmf28=" " $pmf29=" " $pmf30=" " $pmf31=" " $qmf0=" " $qmf1=" " $qmf2=" " $qmf3=" " $qmf4=" " $qmf5=" " $qmf6=" " $qmf7=" " $qmf8=" " $qmf9=" " $qmf10=" " $qmf11=" " $qmf12=" " $qmf13=" " $qmf14=" " $qmf15=" " $qmf16=" " $qmf17=" " $qmf18=" " $qmf19=" " $qmf20=" " $qmf21=" " $qmf22=" " $qmf23=" " $qmf24=" " $qmf25=" " $qmf26=" " $qmf27=" " $qmf28=" " $qmf29=" " $qmf30=" " $qmf31=" "$plo1=0$plo2=0$phi1=0$phi2=0)$s1="plo1[0,32]=%x"+f$extract(4,4,prvsym)$'s1')$s2="plo2[0,32]=%x"+f$extract(0,4,prvsym)$'s2'*$s3="phi1[0,32]=%x"+f$extract(12,4,prvsym)$'s3')$s4="phi2[0,32]=%x"+f$extract(8,4,prvsym)$'s4' $prvlo1=plo1 $prvlo2=plo2 $prvhi1=phi1 $prvhi2=phi2$!prvlo1=32768 $!prvlo2=16 $!prvhi1=0 $!prvhi2=0 $!prvstr = ""$bt0=1$bt1=2$bt2=4$bt3=8$bt4=16 $bt5=%x20 $bt6=%x40 $bt7=%x80 $bt8=%x100 $bt9=%x200 $bt10=%x400 $bt11=%x800 $bt12=%x1000 $bt13=%x2000 $bt14=%x4000 $bt15=%x8000$xbt0=%xffff - 1$xbt1=%xffff - 2$xbt2=%xffff - 4$xbt3=%xffff - 8$xbt4=%xffff - 16$xbt5=%xffff - %x20$xbt6=%xffff - %x40$xbt7=%xffff - %x80$xbt8=%xffff - %x100$xbt9=%xffff - %x200$xbt10=%xffff - %x400$xbt11=%xffff - %x800$xbt12=%xffff - %x1000$xbt13=%xffff - %x2000$xbt14=%xffff - %x4000$xbt15=%xffff - %x8000E$! now set syms to express initial values of privs so they come in asA$! previously set and don't have to be all re-entered every time.$pbt=0$pl1is:$ktst= plo1 .and. bt'pbt'#$if ktst .ne. 0 then pmf'pbt' = "*" $p@ SAFETY013.A %[EVERHART.JTDEMO]JT_MARK_FILES.COM;15d6 (bt=pbt+1$if pbt.le.15 then goto pl1is$pl2is: $ppbt=pbt-16$ktst= plo2 .and. bt'ppbt'#$if ktst .ne. 0 then pmf'pbt' = "*" $pbt=pbt+1$if pbt .le. 31 then goto pl2is$pbt=0$ph1is:$ktst = phi1 .and. bt'pbt'#$if ktst .ne. 0 then qmf'pbt' = "*" $pbt=pbt+1$if pbt.le.15 then goto ph1is$ph2is: $ppbt=pbt-16$ktst= phi2 .and. bt'ppbt'#$if ktst .ne. 0 then qmf'pbt' = "*" $pbt=pbt+1$if pbt .le. 31 then goto ph2is$smptr=1 $dopvmenu: $dopvmnu:?$zmenu/POINTER="-->"/SYMBOLS/initial='f$string(smptr)'! 'ptitle' Privilege Set UpG ^ Done setup ^ 'pmf17' MOUNT ^ 'qmf5' U05 ^ 'qmf25' U25G ^ Set all priv^ 'pmf18' OPER ^ 'qmf6' SECURITY ^ 'qmf26' U26G ^ Clr all priv^ 'pmf19' EXQUOTA ^ 'qmf7' U07 ^ 'qmf27' U27L ^ 'pmf0' CMKRNL ^ 'pmf20' NETMBX ^ 'qmf8' U08 ^ 'qmf28' U28L ^ 'pmf1' CMEXEC ^ 'pmf21' VOLPRO ^ 'qmf9' ACNT ^ 'qmf29' U29M ^ 'pmf2' SYSNAM ^ 'pmf22' PHY_IO ^ 'qmf10' U10 ^ 'qmf30' U30M ^ 'pmf3' GRPNAM ^ 'pmf23' BUGCHK ^ 'qmf11' U11 ^ 'qmf31' u31O ^ 'pmf4' ALLSPOOL ^ 'pmf24' PRMGBL ^ 'qmf12' U12 ^ Set NO mask= ^ 'pmf5' DETACH ^ 'pmf25' SYSGBL ^ 'qmf13' ALTPRI: ^ 'pmf6' DIAGNOSE ^ 'pmf26' PFNMAP ^ 'qmf14' U14: ^ 'pmf7' LOG_IO ^ 'pmf27' SHMEM ^ 'qmf15' U15: ^ 'pmf8' GROUP ^ 'pmf28' SYSPRV ^ 'qmf16' U16: ^ 'pmf9' NOACNT ^ 'pmf29' BYPASS ^ 'qmf17' U17; ^ 'pmf10' PRMCEB ^ 'pmf30' SYSLCK ^ 'qmf18' U18; ^ 'pmf11' PRMMBX ^ 'pmf31' SHARE ^ 'qmf19' U19: ^ 'pmf12' PSWAPM ^ 'qmf0' UPGRADE ^ 'qmf20' U20: ^ 'pmf13' SETPRI ^ 'qmf1' DOWNGRADE ^ 'qmf21' U21: ^ 'pmf14' SETPRV ^ 'qmf2' GRPPRV ^ 'qmf22' U22: ^ 'pmf15' TMPMBX ^ 'qmf3' READALL ^ 'qmf23' U23: ^ 'pmf16' WORLD ^ 'qmf4' U04 ^ 'qmf24' U24$! 1-20 21-40 41-60 61-67$if choice .eq. 68$then$prvsym=="None"$return$endif $smptr=choice!$if choice .eq. 1 then goto pmsks&$if choice .gt. 3 .and. choice .lt. 20$ then$ bchc= choice - 4$ tmsk=prvlo1 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvlo1 = prvlo1 .and. xbt'bchc'$ pmf'bchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvlo1 = prvlo1 .or. bt'bchc'$ pmf'bchc' = "*"$ endif$ goto dopvmenu$ endif($ if choice .gt. 19 .and. choice .lt. 36$ then$ bchc= choice - 20$ bbchc = choice - 4$ tmsk=prvlo2 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvlo2 = prvlo2 .and. xbt'bchc'$ pmf'bbchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvlo2 = prvlo2 .or. bt'bchc'$ pmf'bbchc' = "*"$ endif$ goto dopvmenu$ endif($ if choice .gt. 35 .and. choice .lt. 52$ then$ bchc= choice - 36$ bbchc = choice - 36$ tmsk=prvhi1 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvhi1 = prvhi1 .and. xbt'bchc'$ qmf'bbchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvhi1 = prvhi1 .or. bt'bchc'$ qmf'bbchc' = "*"$ endif$ goto dopvmenu$ endif($ if choice .gt. 51 .and. choice .lt. 68$ then$ bchc= choice - 52$ bbchc = choice - 36$ tmsk=prvhi2 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvhi2 = prvhi2 .and. xbt'bchc'$ qmf'bbchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvhi2 = prvhi2 .or. bt'bchc'$ qmf'bbchc' = "*"$ endif$ goto dopvmenu$ endif$ if choice .eq. 2$ then$! set all privs $pmf0="*" $pmf1="*" $pmf2="*" $pmf3="*" $pmf4="*" $pmf5="*" $pmf6="*" $pmf7="*" $pmf8="*" $pmf9="*" $pmf10="*" $pmf11="*" $pmf12="*" $pmf13="*" $pmf14="*" $pmf15="*" $pmf16="*" $pmf17="*" $pmf18="*" $pmf19="*" $pmf20="*" $pmf21="*" $pmf22="*" $pmf23="*" $pmf24="*" $pmf25="*" $pmf26="*" $pmf27="*" $pmf28="*" $pmf29="*" $pmf30="*" $pmf31="*" $qmf0="*" $qmf1="*" $qmf2="*" $qmf3="*" $qmf4="*" $qmf5="*" $qmf6="*" $qmf7="*" $qmf8="*" $qmf9="*" $qmf10="*" $qmf11="*" $qmf12="*" $qmf13="*" $qmf14="*" $qmf15="*" $qmf16="*" $qmf17="*" $qmf18="*" $qmf19="*" $qmf20="*" $qmf21="*" $qmf22="*" $qmf23="*" $qmf24="*" $qmf25="*" $qmf26="*" $qmf27="*" $qmf28="*" $qmf29="*" $qmf30="*" $qmf31="*" $prvlo1=65535 $prvlo2=65535 $prvhi1=65535 $prvhi2=65535 $plo1=65535 $plo2=65535 $phi1=65535 $phi2=65535$ goto dopvmnu$ endif$ if choice .eq. 3$ then$! clear all privs $pmf0=" " $pmf1=" " $pmf2=" " $pmf3=" " $pmf4=" " $pmf5=" " $pmf6=" " $pmf7=" " $pmf8=" " $pmf9=" " $pmf10=" " $pmf11=" " $pmf12=" " $pmf13=" " $pmf14=" " $pmf15=" " $pmf16=" " $pmf17=" " $pmf18=" " $pmf19=" " $pmf20=" " $pmf21=" " $pmf22=" " $pmf23=" " $pmf24=" " $pmf25=" " $pmf26=" " $pmf27=" " $pmf28=" " $pmf29=" " $pmf30=" " $pmf31=" " $qmf0=" " $qmf1=" " $qmf2=" " $qmf3=" " $qmf4=" " $qmf5=" " $qmf6=" " $qmf7=" " $qmf8=" " $qmf9=" " $qmf10=" " $qmf11=" " $qmf12=" " $qmf13=" " $qmf14=" " $qmf15=" " $qmf16=" " $qmf17=" " $qmf18=" " $qmf19=" " $qmf20=" " $qmf21=" " $qmf22=" " $qmf23=" " $qmf24=" " $qmf25=" " $qmf26=" " $qmf27=" " $qmf28=" " $qmf29=" " $qmf30=" " $qmf31=" " $prvlo1=0 $prvlo2=0 $prvhi1=0 $prvhi2=0$plo1=0$plo2=0$phi1=0$phi2=0$ goto dopvmnu$ endif$pmsks:$prvl==prvlo1+65536*prvlo2$prvh==prvhi1+65536*prvhi2$lll=f$fao("!XW",prvlo1)$l2ll=f$fao("!XW",prvlo2)$llh=f$fao("!XW",prvhi1)$l2lh=f$fao("!XW",prvhi2) $prvsym:=='l2ll''lll''l2lh''llh'$return#*[EVERHART.JTDEMO]JT_RELNOTES.TXT;10+,. / 4G - 0123KPWO56C75JL89GHJNote about soft links:DSoft links on files should be made only to files on disks controlledGby EACF. If this isn't done, the user process channel to the file can'tBbe put back, and you may see odd errors. (None I've ever seen were?harmful, just "no such file" or "invalid directory format" thatBdisappear after you do enough to cause a new channel assign to the>channel, but they're annoying and could really scare someone.)FIf you stay on disks EACF controls, cross-disk links are perfectly OK.<The setup above doesn't do this...you'd need to duplicate itBon another disk or try the jtdmn /share:jta0: qualifier (since oneCEACF daemon can service many disks). The setup script will attemptto set up disks correctly.ANote my testing was done with the daemon running in one DECwindow)and with file access being run in others.Glenn C. EverhartEverhart@Arisia.GCE.Com 603 465 9517$*[EVERHART.JTDEMO]JT_REPTACTIVE.COM;1+,. / 4P - 0123 KPWO56 2䱚7%D屚89GHJ$! Report active Safety devices*$! Uses system logicals set up at startup.$! Logicals are:!$! Saf0_SRVPRCNM daemon proc name$! Saf0_SRVPID daemon PID$! Saf0_UDSKn user's disk n8$! Saf0_UJTn user's JT device n corresponding to disk n&$! Saf0_UFCNMKn function mask for JTnB$! Saf0_UGBMDn Mode parameter for this JT device (how to move...)$!P$! Saf0_UDSK1, Saf0_UJT1, Saf0_UFCNMK1, Saf0_UGBMD1 defined for disk 1 e.g. too.D$! SAFm_* logicals are defined for daemon m where m may be 0,1,2,...&$if f$device("*JT*") .eqs. 0 then exit$emit:==write sys$output$dmnno=0$dmnlop:$sdmnno=f$string(dmnno)'$prcn="Saf"+f$string(dmnno)+"_SRVPRCNM"%$prcp="Saf"+f$string(dmnno)+"_SRVPID"$tprcn=f$trnlnm(prcn)$ if tprcn.eqs. "" then exit$tprcp=f$trnlnm(prcp)$ if tprcp .eqs. "" then exitA$emit "Server ",f$string(dmnno)," PID: ",tprcp," Prcname: ",tprcn$dskno=0$dsklop: $! Report disks with this daemon$sdskno=f$string(dskno) $udk="Saf"+sdmnno+"_UDSK"+sdskno$tudk=f$trnlnm(udk)"$if tudk .eqs. "" then goto enddmn$ujt="Saf"+sdmnno+"_UJT"+sdskno$tujt=f$trnlnm(ujt)"$if tujt .eqs. "" then goto enddmn%$emit "Disk ",tudk," JT device ",tujt"$ufm="Saf"+sdmnno+"_UFCNMK"+sdskno$tufm=f$trnlnm(ufm)$vufm=f$integer(tufm) $sfcns=""4$if (vufm.and.1) .ne. 0 then sfcns=sfcns+"Open chk;"4$if (vufm.and.2) .ne. 0 then sfcns=sfcns+"Frag ctl;"6$if (vufm.and.128) .ne. 0 then sfcns=sfcns+"Del prot;"4$if (vufm.and.512) .ne.0 then sfcns=sfcns+"Spc ctl;"=$if (vufm.and.256) .ne.0 then sfcns=sfcns+"Close mon/softlk;"$emit "Functs:",sfcns!$ufm="Saf"+sdmnno+"_UGBMD"+sdskno$tufm=f$trnlnm(ufm)$emit "Mode:",tufm$enddsk:$dskno=dskno+1 $goto dsklop$enddmn:$dmnno=dmnno+1 $ goto dmnlop!*[EVERHART.JTDEMO]JT_REPTCTL.COM;1+,. / 4P - 0123 KPWO56ݲ7ݲ89GHJ $! Report active Safety devices*$! Uses system logicals set up at startup.$! Logicals are:!$! Saf0_SRVPRCNM daemon proc name$! Saf0_SRVPID daemon PID$! Saf0_UDSKn user's disk n8$! Saf0_UJTn user's JT device n corresponding to disk n&$! Saf0_UFCNMKn function mask for JTnB$! Saf0_UGBMDn Mode parameter for this JT device (how to move...)$!P$! Saf0_UDSK1, Saf0_UJT1, Saf0_UFCNMK1, Saf0_UGBMD1 defined for disk 1 e.g. too.D$! SAFm_* logicals are defined for daemon m where m may be 0,1,2,...&$if f$device("*JT*") .eqs. 0 then exit$emit:==write sys$output$dmnno=0$gddmn=0$dmnlop:$sdmnno=f$string(dmnno)'$prcn="Saf"+f$string(dmnno)+"_SRVPRCNM"%$prcp="Saf"+f$string(dmnno)+"_SRVPID"$tprcn=f$trnlnm(prcn)$$ if tprcn.eqs. "" then goto dmnexit$tprcp=f$trnlnm(prcp)%$ if tprcp .eqs. "" then goto dmnexit$ gddmn=dmnno+1A$emit "Server ",f$string(dmnno)," PID: ",tprcp," Prcname: ",tprcn$dskno=0$dsklop: $! Report disks with this daemon$sdskno=f$string(dskno) $udk="Saf"+sdmnno+"_UDSK"+sdskno$tudk=f$trnlnm(udk)"$if tudk .eqs. "" then goto enddmn$ujt="Saf"+sdmnno+"_UJT"+sdskno$tujt=f$trnlnm(ujt)"$if tujt .eqs. "" then goto enddmn%$emit "Disk ",tudk," JT device ",tujt"$ufm="Saf"+sdmnno+"_UFCNMK"+sdskno$tufm=f$trnlnm(ufm)$vufm=f$integer(tufm) $sfcns=""4$if (vufm.and.1) .ne. 0 then sfcns=sfcns+"Open chk;"4$if (vufm.and.2) .ne. 0 then sfcns=sfcns+"Frag ctl;"6$if (vufm.and.128) .ne. 0 then sfcns=sfcns+"Del prot;"4$if (vufm.and.512) .ne.0 then sfcns=sfcns+"Spc ctl;"=$if (vufm.and.256) .ne.0 then sfcns=sfcns+"Close mon/softlk;"$emit "Functs:",sfcns!$ufm="Saf"+sdmnno+"_UGBMD"+sdskno$tufm=f$trnlnm(ufm)$emit "Mode:",tufm$enddsk:$dskno=dskno+1 $goto dsklop$enddmn:$dmnno=dmnno+1 $ goto dmnlop $dmnexit:$! Now allow forcing exitD$emit "To alter any properties it is best to shut that server down,"$emit " edit, and restart."-$inquire fxx "Shut down any servers [Y/N][N]";$ if f$extract(0,1,f$edit(fxx,"collapse,upcase")) .eqs. "Y"$ then$ if gddmn .gt. 0$ then$ if gddmn .eq. 1$ then"$! Only one daemon so blow it away$ prcarmor:=$gcy$sys:prcarmor"$ prcarmor/clear/pid:'tprcp' nla0:$ forcex:==$gcy$sys:forcex$ forcex 'tprcp'$prcn="Saf0"+"_SRVPRCNM"$prcp="Saf0"+"_SRVPID"$deas/sys 'prcn'$deas/sys 'prcp'$ else5$! more than one daemon so better find which he wantsB$ inquire svidx "What is server number of the server to shut down"$ if svidx .eqs. "" then exit$ nsvr=f$integer(svidx))$ if nsvr.lt.0.or.nsvr.ge.gddmn then exit$sdmnno=f$string(nsvr)$$prcp="Saf"+f$string(nsvr)+"_SRVPID"$tprcn=f$trnlnm(prcp)$ if tprcn.eqs. "" then exit$ prcarmor:=$gcy$sys:prcarmor"$ prcarmor/clear/pid:'tprcn' nla0:$ forcex:==$gcy$sys:forcex$ forcex 'tprcn'&$prcn="Saf"+f$string(nsvr)+"_SRVPRCNM"$$prcp="Saf"+f$string(nsvr)+"_SRVPID"$deas/sys 'prcn'$deas/sys 'prcp'$ endif$ endif$ endif$exit#*[EVERHART.JTDEMO]JT_SEL_MARK.COM;25+,.H/ 4dHB- 0123 KPWOC5627e189GHJ  $set noverify'$! Copyright (c) 1994 Glenn C. Everhart$! All Rights Reserved$ask:==inquire$emit:==write sys$outputD$! Recognize if called by cswing since p1 will contain "mung" string $! in it.0$assign "@gcy$cm:jt_sel_mark" cswing$usercommand $cswmod=02$if p1 .eqs. "" .or. p1 .eqs. " " then goto notcsw:$if f$locate("MUNG",p1) .ge. f$length(p1) then goto notcswA$! Looks like a probable CSwing call. Set the mode up and use it. $cswmod=1$open/read cswsel 'p1' $goto proccs$notcsw:;$if f$search("gcy$cm:cswing.exe") .eqs. "" then goto proccs$cswing:==$gcy$cm:cswing $set noon)$emit "Select files, then type G to mark" $wait 0:0:04$ass/user sys$command sys$input $cswing -f$exit$proccs:$set command sys$system:zmenu $fcnstr=" " $allflg="No" $ffnm=" "$modlop: $ffnm=" "$ffnm="" $allflg="No"1$if p1 .nes. "" .and. p1 .nes. " " then ffnm = p1 $p1 = " "$p1 = ""$wild=0 $wldfile=" " $wldctr=0$if cswmod.eq.0$then1$if p1 .nes. "" .and. p1 .nes. " " then ffnm = p1$else$wild=1$read/end=cswxxx cswsel ffnm$endif $goto cswwww$cswxxx:$exit$cswwww: $p1 = " "$p1 = ""$write sys$output ""$!write sys$output ""$write sys$output ""$ write sys$output -"M<>[?4l[?8h",-"(B)07[?6l8#6"Q$if ffnm .eqs. "" .or. ffnm .eqs. " " then ask ffnm "File(s) to mark (? for dir)"$if ffnm .eqs. "" then exit*$if f$locate("?",ffnm) .lt. f$length(ffnm)$then*$ inquire fdcmd "Directory of what files:"$ dircmd="dir " + fdcmd$ spawn dircmd@$ inquire fdcmd "Type a "Return" or "Enter when ready to go on." $ goto modlop$endif#$if f$length(ffnm) .le. 2 then exit $fnm=ffnm$if f$search(fnm,4) .eqs. ""$ then$ emit "%EACF-F-No such file" $goto modlop$endif8$if f$locate("*",ffnm) .lt. f$length(ffnm) then wild = 18$if f$locate("%",ffnm) .lt. f$length(ffnm) then wild = 1 $wldfile=ffnm$wldlop:$if wild .eq. 0$then"$if wldctr .gt. 0 then goto modlop$fnm=f$search(ffnm,3)$wldctr=wldctr+1$endif$if wild .ne. 0$then$wldctr=wldctr+1$if cswmod .eq.0$then$fnm=f$search(wldfile,3)$else/$if wldctr.gt.1 then read/end=cswxxx cswsel fnm$if fnm .eqs. "" then exit$endif!$if fnm .eqs. "" then goto modlop $flnm=fnm$flnm=f$search(flnm,5)=$if allflg .eqs. "Yes" .and. fcnstr .nes. " " then goto aplwc$endif#$jtauthmaint:==$gcy$sys:jtauthmaint$flnm=f$search(fnm)$if flnm .eqs. "" $ then$$ emit "%EACF-F-No such file found"$ goto modlop$ endif$on error then goto loseprt$open fubar 'flnm' $goto nofubar $loseprt: $set noon $close fubar!$emit "%EACF-F-File inaccessible"$exit 8 $nofubar: $close fubar $set noon$jta_fusr="None"$jta_ftty="None"$jta_fimg="None"$jta_mxpv="None"$jta_cksm="None"$jta_bkpu="None"$$jta_itim="YYYYYYYYYYYYYYYYYYYYYYYY"$jta_pswd="0000000000000000" $jta_zcmd=" " $jta_usrs=" " $jta_ttys=" " $jta_imgs=" " $jta_cslk=" " $jta_insp=" " $jta_bpri=" " $jta_idnt=" " $jta_prnd=" "$jta_surw="R/Wp@ SAFETY013.A #[EVERHART.JTDEMO]JT_SEL_MARK.COM;256dH>>" $jta_rprv=" " $acfcmd=0 $!set noon$ jtauthmaint 'flnm'\%SYMS$set on-$if JTA_BPRI .EQS. " " THEN JTA_BPRI = "None"-$if JTA_Idnt .eqs. " " then JTA_IDNT = "None"-$if JTA_RPRV .eqs. " " then jta_rprv = "None"-$if jta_cslk .eqs. " " then jta_cslk = "None"$csftf=0 $cksf=" "3$if jta_cksm .nes. "0000000000000000" then cksf="*" $pswf=" " $acfcmd=0<$if jta_zcmd .nes. " " .and. jta_zcmd .nes. "" then acfcmd=1 $skyf=" " $sekey=" " $stident=" "$sident=jta_idnt$if f$length(jta_idnt) .ge. 16$then$aaa=0%$ttt="aaa=%x"+f$extract(0,8,jta_idnt)$'ttt')$zidnt=f$identifier(aaa,"number_to_name")%$if zidnt .nes. "" then stident=zidnt$endif$prvsym=="0000000000000000" $ptitle="Max Privs To Open File" $filpwd=" "$smptr=1$domenu:?$zmenu/POINTER="-->"/SYMBOLS/initial='f$string(smptr)'5 Extended Access Control Facility - File Marking File 'flnm': ^ Edit max-privs-to-open mask (current: 'JTA_MXPV')9 ^ Set base priority override (current: 'JTA_BPRI'). ^ Edit permitted user list ('JTA_USRS'). ^ Edit forbidden user list ('JTA_FUSR')/ ^ Edit permitted term. list ('JTA_TTYS')/ ^ Edit forbidden term. list ('JTA_FTTY')/ ^ Edit permitted image list ('JTA_IMGS')/ ^ Edit forbidden image list ('JTA_FIMG'). ^ Edit backup account list ('JTA_BKPU')+ ^ Edit time-use profile ('JTA_ITIM')? ^ Edit replacement priv mask (when file open) 'jta_rprv'A ^ Set backup user access [Readonly/Read-Write] 'JTA_SURW'# ^ 'cksf'Set file tamper checkD ^ 'pswf'Set file password ^ Set AccFail-action cmd 'jta_zcmd'H ^ 'skyf'Enter security key ^'jta_prnd'Set "paranoid mode" opn chks. ^ Set conditional softlink ('jta_cslk')= ^ Grant identifier on open/revoke on close ('stident') ^ Quit, make no changes' ^ Done, update file controls now. ^ Perform database maintenance commands. ^ Apply selected mods to all wild files$smptr = choice$write sys$output " "$write sys$output " " $goto xxxdoch$aplwc: $choice=19 $xxxdoch:#$if choice .eq. 18 then goto wldlop$if choice .eq. 21$ then$ allflg="Yes" $ choice=19$ endif$if choice .eq. 22$ then$! Access fail action command=$ ask ackk "Enter cmd to run if access is rejected (or NONE)"$ if ackk .eqs. "NONE"$ then $ acfcmd=0 $ jta_zcmd="" $ goto domenu$ endif#$ if ackk .eqs. "" then goto domenu $ acfcmd=1$ jta_zcmd=ackk $ goto domenu$ endif$if choice .eq. 23$ then$ if jta_prnd.eqs." "$ then$ jta_prnd="*"$ else$ jta_prnd=" "$ endif $ goto domenu$ endif$if choice .eq. 17$ then$$ask vidnt "Enter identifier to tag"#$if vidnt .eqs. "" then goto domenu,$nident=f$identifier(vidnt,"name_to_number")$stident=vidnt$ttt=f$fao("!XL",nident)$sident=ttt+"00000000" $ goto domenu$endif$if choice .eq. 16$ then$! cond. softlink6$ask cffk "Enter device:file to open if access denied"0$if f$search(cffk) .nes. "" then jta_cslk = cffk2$if f$search(cffk) .eqs. "" then jta_cslk = "None" $ goto domenu$ endif$if choice .eq. 20$ then$mntlop:%$zmenu/POINTER="-->"/SYMBOLS+ Extended Access Control Facility MAINTENANCE COMMANDS ^ Delete this entry: ^ Remove all database entries for now-deleted files+ ^ Create listing of all files marked= ^ Repair deleted ACEs (ANY such are a security issue!)/ ^ Change or delete a string in all lists6 ^ Generate report file of files in the database ^ Done with this menu$if choice .eq. 1$then0$! Remove ACE markings as well as file markings.$jtauthmaint 'flnm'\Z-X+$jtauthmaint 'flnm'\%DELETE $goto mntlop$endif$if choice .eq. 2$then$ jtauthmaint 'flnm'\%PURGE $ goto mntlop$endif$if choice .eq. 3$ then$ jtauthmaint 'flnm'\%LIST7$ write sys$output "List file created is ",JTA_LISTFILE $ wait 0:0:20 $ goto mntlop$ endif$if choice .eq. 4$ then$ jtauthmaint 'flnm'\%REGEN $ goto mntlop$ endif$if choice .eq. 5$ then$ ask olds "String to remove"0$ ask news "String to replace it with (or none)")$ ask cfm "Confirm edits as we go? [y/n]"#$ cfm=f$edit(cfm,"collapse,upcase") $ cfms=""2$ if f$extract(0,1,cfm) .eqs. "Y" then cfms="CONF" $ ass/user sys$command sys$input3$ jtauthmaint 'flnm'\%GBLEDIT'cfms' `'olds'`'news'` $ goto mntlop$ endif$ if choice .eq. 6$ then$ jtauthmaint 'flnm'\%REPORT6$ write sys$output "List file created is ",JTA_RPTFILE $ wait 0:0:20 $ goto mntlop$ endif"$if choice .eq. 7 then goto wldlop$ endif$if choice .eq. 15$then$on error then goto skfb$set term /noecho/$ write sys$output "Enter volume security key:"$ write sys$output " "%$ read/prompt="Key>" sys$command ktxt/$ write sys$output "Reenter key to confirm OK:"$ write sys$output " "%$ read/prompt="Key>" sys$command key2$! inquire key2 "Reenter>"$skfb:$ set term /echoO$ if ktxt .nes. key2 then write sys$output "Keys do not match. No key entered."&$ if ktxt .nes. key2 then goto domenu $$ktxt=f$edit(ktxt,"COLLAPSE,UPCASE"))$if f$length(ktxt) .le.3 then goto domenu $skyf="*" $sekey=ktxt $goto domenu$endif$if choice .eq. 19$ then5$! Here concoct jtauthmaint call to update everything$if skyf .eqs. " "$ then $ kneed=0@$ if jta_rprv .nes. "None" .and. jta_rprv .nes. " " then kneed=1*$ if f$length(sident) .ge. 16 then kneed=1'$ if jta_bpri .nes. "None" then kneed=1*$ if kneed .eq. 1 .and. allflg .nes. "Yes"$ thenG$ write sys$output "%EACF-W-NoKey Security key needed for some options"A$ write sys$output " and not entered. Continue to mark files [Y]"$ kndc=0$ ask kndt "Continue?"%$ kndt=f$edit(kndt,"collapse,upcase")3$ if f$extract(0,1,kndt) .eqs. "N" then goto domenu$ endif$ endif$insme=0 $fcnstr="X+"$if pswf .eqs. "*"$then $fcnstr=fcnstr+"Y+<"+filpwd+">"$insme=1$else$fcnstr=fcnstr+"Y-< >"$endif4$if skyf .eqs. "*" then fcnstr=fcnstr+"K<"+sekey+">"2$if jta_rprv .nes. "None" .and. jta_rprv .nes. " "$ then8$ if skyf .eqs. "*" then fcnstr=fcnstr+"P<"+jta_rprv+">"$ endif$if jta_mxpv .nes. "None"$then$insme=1 $fcnstr=fcnstr+"V<"+jta_mxpv+">"$endifM$! set flags to run cmd file when util opens & when files open with util open$! These are &% and &&.0$if jta_prnd .eqs. "*" then fcnstr=fcnstr+"&%&&":$if jta_bpri .nes. "None" then fcnstr=fcnstr+"#S"+jta_bpri2$if jta_usrs .nes. " " .and. jta_usrs .nes. "None"$then$insme=1!$fcnstr=fcnstr+"U*<"+jta_usrs+">"$endif?$ if acfcmd .eq. 1 then fcnstr = fcnstr + "Z<" + jta_zcmd + ">"2$if jta_cslk .nes. " " .and. jta_cslk .nes. "None"$then$insme=1 $fcnstr=fcnstr+"C<"+jta_cslk+">"$endif$if f$length(sident) .ge. 16$then$fcnstr=fcnstr+"I<"+sident+">"$endif2$if jta_fusr .nes. " " .and. jta_fusr .nes. "None"$then$insme=1!$fcnstr=fcnstr+"V*<"+jta_fusr+">"$endif2$if jta_ttys .nes. " " .and. jta_ttys .nes. "None"$then$insme=1!$fcnstr=fcnstr+"K*<"+jta_ttys+">"$endif2$if jta_ftty .nes. " " .and. jta_ftty .nes. "None"$then$insme=1!$fcnstr=fcnstr+"L*<"+jta_ftty+">"$endif2$if jta_imgs .nes. " " .and. jta_imgs .nes. "None"$then$insme=1!$fcnstr=fcnstr+"N*<"+jta_imgs+">"$endif2$if jta_fimg .nes. " " .and. jta_fimg .nes. "None"$then$insme=1!$fcnstr=fcnstr+"O*<"+jta_fimg+">"$endif$if cksf .eqs. "*"$then$insme=1$fcnstr=fcnstr+"Z+"$endif$if cksf .eqs. " "$then$fcnstr=fcnstr+"Z-"$endifP$if jta_bkpu .nes. " " .and. jta_bkpu .nes. "None" .and. jta_bkpu .nes. "%None%"$then$insme=1!$fcnstr=fcnstr+"Q*<"+jta_bkpu+">"$endif$if f$length(jta_itim) .ge. 24$then$insme=1 $fcnstr=fcnstr+"T<"+jta_itim+">"$endifJ$if jta_surw .nes. "None" .and. jta_surw .nes. "" .and. jta_surw .nes. " "$then$insme=10$if jta_surw .eqs. "R/W" then fcnstr=fcnstr+"R-"0$if jta_surw .eqs. "R/O" then fcnstr=fcnstr+"R+"$endif'$if insme .ne.0 then fcnstr=fcnstr+"I+"@$!sho sym fcnstr !*****************************debug************>$!wait 0:0:10 !**********************debug********************$$jtauthmaint 'flnm'\'fcnstr' $! $ goto wldlop$endif$if choice .eq. 10$ then$! time choice$wrktim=jta_itimC$if f$length(wrktim) .lt. 24 then wrktim="YYYYYYYYYYYYYYYYYYYYYYYY" $csav=choice$gtptr=1$gtmu:?$zmenu/POINTER="-->"/SYMBOLS/initial='f$string(gtptr)'. Time Usage Permission Editing (by hour). Current Profile 'wrktim'0 0 111111111122220 012345678901234567890123J Key: Y - checked acc. N - No access except bkp D - no access at allN U - Unchecked acc P - Priv checks onlt R - Readonly access only X - R/W chks only> ^ 0-1AM ^ 12N-1PM ^ Quit this menu, no changes7 ^ 1-2AM ^ 1-2PM ^ Exit, apply changes ^ 2-3AM ^ 2-3PM ^ 3-4AM ^ 3-4PM ^ 4-5AM ^ 4-5PM ^ 5-6AM ^ 5-6PM ^ 6-7AM ^ 6-7PM ^ 7-8AM ^ 7-8PM ^ 8-9AM ^ 8-9PM ^ 9-10AM ^ 9-10PM ^ 10-11AM ^ 10-11PM ^ 11-12AM ^ 11-12M $gtptr=choice!$if choice .eq. 25 then goto cavc$if choice .eq. 26$ then$ jta_itim=wrktim $ goto cavc$endif $ptr=choice-$ask fcn2do "Give code for this hour access:""$if fcn2do .eqs. "" then goto gtmu$fcn2do=f$extract(0,1,fcn2do)$fcn2do=f$edit(fcn2do,"upcase")"$if fcn2do .eqs. "" then goto gtmu9$if f$locate(fcn2do,"YNDUPRX-----") .GT. 7 then goto gtmu<$! now insert the action code for this time into the string.A$! eliminate boundary effects by tacking extra chars on the ends.$ws2="."+wrktim+"."$llft=26-ptr-1>$ws2=f$extract(0,ptr,ws2) + fcn2do + f$extract(ptr+1,llft,ws2)$wrktim=f$extract(1,24,ws2) $goto gtmu$cavc: $choice=csav $ goto domenu$endif$if choice .eq. 13$ then$ if cksf .eqs. "*"$ then $ cksf=" " $ goto domenu$ endif$ if cksf .eqs. " "$ then $ if f$file(flnm,"eof") .gt. 100$ thenE$ emit "Security check requires reading the whole file at each open."A$ ask fbckq "File is over 100 blocks long. Are you sure [Y/N][N]"$ fbckq=f$extract(0,1,fbckq)'$ fbckq=f$edit(fbckq,"upcase,collapse")%$ if fbckq .nes. "Y" then goto domenu$ endif $ cksf="*"$ endif $ goto domenu$ endif$if choice .eq. 14$ then$ if pswf .eqs. "*"$ then $ pswf=" " $ goto domenu$ endif$ if pswf .eqs. " "$ then $ pswf="*"$ on error then goto fpwfb$ set term /noecho)$ write sys$output:"Enter file password:"$ write sys$output " "0$ read/prompt="FilePassword>" sys$command filpwd1$ write sys$output "Reenter to confirm spelling:"$ write sys$output " "1$ read/prompt="FilePassword>" sys$command filpwd2$fpwfb:$ set term /echo$ if filpwd.nes.filpwd2$ then $ filpwd=""P$ write sys$output "%EACF-W-file password spellings not confirmed. Not entered."$ endif"$ if filpwd .eqs. "" then pswf=" "$ endif $ goto domenu$ endif$if choice .eq. 1$ then$ prvsym==jta_mxpv>$ if f$length(prvsym) .lt. 16 then prvsym=="0000000000000000"1$ ptitle="Privileges Permitted For Opening File"$ svpsm=prvsym$ gosub prvget$ if prvsym .eqs. "BAIL"$ then$ prvsym=svpsm $ goto domenu$ endif$ jta_mxpv=prvsym $ goto domenu$endif$ if choice .eq. 11$ then$ prvsym==jta_rprv=$ if f$length(prvsym) .lt. 16 then prvsym=="0000000000000000"3$ ptitle="Privilege Mask to Replace all priv masks"$ svpsm=prvsym$ gosub prvget$ if prvsym .eqs. "BAIL"$ then$ prvsym=svpsm $ goto domenu$ endif$ jta_rprv=prvsym $ goto domenu$endif$ if choice .eq. 12$ then$ if JTA_SURW .eqs. "R/W"$ then$ jta_surw = "R/O" $ goto domenu$ endif/$ if JTA_SURW .eqs. "R/O" then jta_surw = "R/W" $ goto domenu$ endif$if choice .eq. 2$ then?$ ask bpr "Enter base priority for process with this file open"d$ if bpr .eqs. "" .or. bpr .eqs. "NONE" .or. bpr .eqs. "None" .or. bpr .eqs. "none" then goto domenu$ if bpr .lt.0.or.bpr.gt. 31$then$jta_bpri="None" $goto domenu$endif$ jta_bpri=f$string(bpr)$! base prio symbol is now set. $ goto domenu$endif$if choice .eq. 3$ then$ chcsv=choice$usrlst=jta_usrs$ucmu:%$zmenu/POINTER="-->"/SYMBOLS# Edit Permitted User List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add users to list ^ Remove users from list ^ Replace list$ ^ Quit, leave user list alone ^ Done with this menu$if choice .eq. 1$then%$ask uad "Enter users to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uad $goto ucmu$endif$if choice .eq. 2$then*$ask uad "Enter users to remove from list")$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto ucmu$endif$if choice .eq. 3$then$ask uad "Enter user list"$if uad .eqs. "" then uad="*" $usrlst=uad $goto ucmu$endif $if choice .eq 4 then goto c3dun$if choice.eq. 5 $then$jta_usrs=usrlst $goto c3dun$endif$c3dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 4$ then$ chcsv=choice$usrlst=jta_fusr$vcmu:%$zmenu/POINTER="-->"/SYMBOLS# Edit Forbidden User List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add users to list ^ Remove users from list ^ Replace list$ ^ Quit, leave user list alone ^ Done with this menu$if choice .eq. 1$then%$ask uad "Enter users to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uad $goto vcmu$endif$if choice .eq. 2$then*$ask uad "Enter users to remove from list")$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto vcmu$endif$if choice .eq. 3$then$ask uad "Enter user list"$if uad .eqs. "" then uad="*" $usrlst=uad $goto vcmu$endif $if choice .eq 4 then goto c4dun$if choice.eq. 5 $then$jta_fusr=usrlst $goto c4dun$endif$c4dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 5$! permitted terminal list$ then$ chcsv=choice$usrlst=jta_ttys$wcmu:%$zmenu/POINTER="-->"/SYMBOLS' Edit Permitted Terminal List# Current user list: 'usrlst'. * is wild card, & means omit this test- ^ Add terminals (or acc ports) to list. ^ Remove terminals / accports from list. ^ Replace list of terminals / acc ports( ^ Quit, leave terminal list alone ^ Done with this menu$if choice .eq. 1$then)$ask uad "Enter terminals to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uadO$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif $goto wcmu$endif$if choice .eq. 2$then.$ask uad "Enter terminals to remove from list")$if uad .nes. "" then usrlst=usrlst - uadO$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) @ SAFETY013.A #[EVERHART.JTDEMO]JT_SEL_MARK.COM;25dH?:&$goto wcmu$endif$if choice .eq. 3$then$ask uad "Enter terminal list"$if uad .eqs. "" then uad="*"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif $usrlst=uad $goto wcmu$endif $if choice .eq 4 then goto c5dun$if choice.eq. 5 $then$jta_ttys=usrlst $goto c5dun$endif$c5dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 6$! forbidden terminal list$ then$ chcsv=choice$usrlst=jta_ftty$xcmu:%$zmenu/POINTER="-->"/SYMBOLS' Edit Forbidden Terminal List# Current user list: 'usrlst'. * is wild card, & means omit this test) ^ Add terminals / accports to list. ^ Remove terminals / accports from list ^ Replace list( ^ Quit, leave terminal list alone ^ Done with this menu$if choice .eq. 1$then)$ask uad "Enter terminals to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uadO$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif $goto xcmu$endif$if choice .eq. 2$then.$ask uad "Enter terminals to remove from list"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif)$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto xcmu$endif$if choice .eq. 3$then$ask uad "Enter terminal list"$if uad .eqs. "" then uad="*"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif $usrlst=uad $goto xcmu$endif $if choice .eq 4 then goto c6dun$if choice.eq. 5 $then$jta_ftty=usrlst $goto c6dun$endif$c6dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 7$! permitted images edit$ then$ chcsv=choice$usrlst=jta_imgs$ycmu:%$zmenu/POINTER="-->"/SYMBOLS% Edit Permitted Images List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add Images to list ^ Remove Images from list ^ Replace list% ^ Quit, leave image list alone ^ Done with this menu$if choice .eq. 1$then&$ask uad "Enter images to add to list"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif+$if uad .nes. "" then usrlst=usrlst+","+uad $goto ycmu$endif$if choice .eq. 2$then+$ask uad "Enter images to remove from list"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif)$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto ycmu$endif$if choice .eq. 3$then$ask uad "Enter image list"$if uad .eqs. "" then uad="*"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif $usrlst=uad $goto ycmu$endif $if choice .eq 4 then goto c7dun$if choice.eq. 5 $then$jta_imgs=usrlst $goto c7dun$endif$c7dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 8$! Forbidden images edit$ then$ chcsv=choice$usrlst=jta_fimg$aycmu:%$zmenu/POINTER="-->"/SYMBOLS% Edit Forbidden Images List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add Images to list ^ Remove Images from list ^ Replace list% ^ Quit, leave image list alone ^ Done with this menu$if choice .eq. 1$then&$ask uad "Enter images to add to list"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif+$if uad .nes. "" then usrlst=usrlst+","+uad $goto aycmu$endif$if choice .eq. 2$then+$ask uad "Enter images to remove from list"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif)$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto aycmu$endif$if choice .eq. 3$then$ask uad "Enter image list"$if uad .eqs. "" then uad="*"O$if f$locate("*",uad).ge.f$length(uad) .and. f$locate("&",uad).ge.f$length(uad)$then1$emit "%EACF-I-NoWild - Selection string lacks *" $wait 0:0:05$endif $usrlst=uad $goto aycmu$endif $if choice .eq 4 then goto c8dun$if choice.eq. 5 $then$jta_fimg=usrlst $goto c8dun$endif$c8dun:$ choice=chcsv $ goto domenu$endif$if choice .eq. 9$! backup user edit$ then$ chcsv=choice$usrlst=jta_bkpu$bycmu:%$zmenu/POINTER="-->"/SYMBOLS Edit Backup User List# Current user list: 'usrlst'. * is wild card, & means omit this test ^ Add Users to list ^ Remove Users from list ^ Replace list$ ^ Quit, leave user list alone ^ Done with this menu$if choice .eq. 1$then%$ask uad "Enter users to add to list"+$if uad .nes. "" then usrlst=usrlst+","+uad $goto bycmu$endif$if choice .eq. 2$then*$ask uad "Enter users to remove from list")$if uad .nes. "" then usrlst=usrlst - uad6$! get rid of extra commas that might be left in there$usrlst=usrlst-",,"$ll=f$length(usrlst)K$if f$extract(ll-1,1,usrlst) .eqs. "," then usrlst=f$extract(0,ll-1,usrlst) $goto bycmu$endif$if choice .eq. 3$then)$ask uad "Enter backup (super) user list""$if uad .eqs. "" then uad="%None%" $usrlst=uad $goto bycmu$endif $if choice .eq 4 then goto c9dun$if choice.eq. 5 $then$jta_bkpu=usrlst $goto c9dun$endif$c9dun:$ choice=chcsv $ goto domenu$endif $if wild .ne. 0 then goto wldlop $goto modlopF$! Privilege mask generating subroutine. Toggles privs or allows privsJ$! to be all set or reset via menu. Output hex string in "prvsym" ready to!$! use for jtauthmaint et. alia. $! By Glenn Everhart, 5/19941$! Defaults to a mask with tmpmbx and netmbx set.$prvget: $set noverify$!set comm sys$system:zmenu $pmf0=" " $pmf1=" " $pmf2=" " $pmf3=" " $pmf4=" " $pmf5=" " $pmf6=" " $pmf7=" " $pmf8=" " $pmf9=" " $pmf10=" " $pmf11=" " $pmf12=" " $pmf13=" " $pmf14=" " $pmf15=" " $pmf16=" " $pmf17=" " $pmf18=" " $pmf19=" " $pmf20=" " $pmf21=" " $pmf22=" " $pmf23=" " $pmf24=" " $pmf25=" " $pmf26=" " $pmf27=" " $pmf28=" " $pmf29=" " $pmf30=" " $pmf31=" " $qmf0=" " $qmf1=" " $qmf2=" " $qmf3=" " $qmf4=" " $qmf5=" " $qmf6=" " $qmf7=" " $qmf8=" " $qmf9=" " $qmf10=" " $qmf11=" " $qmf12=" " $qmf13=" " $qmf14=" " $qmf15=" " $qmf16=" " $qmf17=" " $qmf18=" " $qmf19=" " $qmf20=" " $qmf21=" " $qmf22=" " $qmf23=" " $qmf24=" " $qmf25=" " $qmf26=" " $qmf27=" " $qmf28=" " $qmf29=" " $qmf30=" " $qmf31=" "$plo1=0$plo2=0$phi1=0$phi2=0)$s1="plo1[0,32]=%x"+f$extract(4,4,prvsym)$'s1')$s2="plo2[0,32]=%x"+f$extract(0,4,prvsym)$'s2'*$s3="phi1[0,32]=%x"+f$extract(12,4,prvsym)$'s3')$s4="phi2[0,32]=%x"+f$extract(8,4,prvsym)$'s4' $prvlo1=plo1 $prvlo2=plo2 $prvhi1=phi1 $prvhi2=phi2$!prvlo1=32768 $!prvlo2=16 $!prvhi1=0 $!prvhi2=0 $!prvstr = ""$bt0=1$bt1=2$bt2=4$bt3=8$bt4=16 $bt5=%x20 $bt6=%x40 $bt7=%x80 $bt8=%x100 $bt9=%x200 $bt10=%x400 $bt11=%x800 $bt12=%x1000 $bt13=%x2000 $bt14=%x4000 $bt15=%x8000$xbt0=%xffff - 1$xbt1=%xffff - 2$xbt2=%xffff - 4$xbt3=%xffff - 8$xbt4=%xffff - 16$xbt5=%xffff - %x20$xbt6=%xffff - %x40$xbt7=%xffff - %x80$xbt8=%xffff - %x100$xbt9=%xffff - %x200$xbt10=%xffff - %x400$xbt11=%xffff - %x800$xbt12=%xffff - %x1000$xbt13=%xffff - %x2000$xbt14=%xffff - %x4000$xbt15=%xffff - %x8000E$! now set syms to express initial values of privs so they come in asA$! previously set and don't have to be all re-entered every time.$pbt=0$pl1is:$ktst= plo1 .and. bt'pbt'#$if ktst .ne. 0 then pmf'pbt' = "*" $pbt=pbt+1$if pbt.le.15 then goto pl1is$pl2is: $ppbt=pbt-16$ktst= plo2 .and. bt'ppbt'#$if ktst .ne. 0 then pmf'pbt' = "*" $pbt=pbt+1$if pbt .le. 31 then goto pl2is$pbt=0$ph1is:$ktst = phi1 .and. bt'pbt'#$if ktst .ne. 0 then qmf'pbt' = "*" $pbt=pbt+1$if pbt.le.15 then goto ph1is$ph2is: $ppbt=pbt-16$ktst= phi2 .and. bt'ppbt'#$if ktst .ne. 0 then qmf'pbt' = "*" $pbt=pbt+1$if pbt .le. 31 then goto ph2is$smptr=1 $dopvmenu: $dopvmnu:?$zmenu/POINTER="-->"/SYMBOLS/initial='f$string(smptr)'! 'ptitle' Privilege Set UpG ^ Done setup ^ 'pmf17' MOUNT ^ 'qmf5' U05 ^ 'qmf25' U25G ^ Set all priv^ 'pmf18' OPER ^ 'qmf6' SECURITY ^ 'qmf26' U26G ^ Clr all priv^ 'pmf19' EXQUOTA ^ 'qmf7' U07 ^ 'qmf27' U27L ^ 'pmf0' CMKRNL ^ 'pmf20' NETMBX ^ 'qmf8' U08 ^ 'qmf28' U28L ^ 'pmf1' CMEXEC ^ 'pmf21' VOLPRO ^ 'qmf9' ACNT ^ 'qmf29' U29M ^ 'pmf2' SYSNAM ^ 'pmf22' PHY_IO ^ 'qmf10' U10 ^ 'qmf30' U30M ^ 'pmf3' GRPNAM ^ 'pmf23' BUGCHK ^ 'qmf11' U11 ^ 'qmf31' U31O ^ 'pmf4' ALLSPOOL ^ 'pmf24' PRMGBL ^ 'qmf12' U12 ^ Set NO maskS ^ 'pmf5' DETACH ^ 'pmf25' SYSGBL ^ 'qmf13' ALTPRI ^ Make no changes: ^ 'pmf6' DIAGNOSE ^ 'pmf26' PFNMAP ^ 'qmf14' U14: ^ 'pmf7' LOG_IO ^ 'pmf27' SHMEM ^ 'qmf15' U15: ^ 'pmf8' GROUP ^ 'pmf28' SYSPRV ^ 'qmf16' U16: ^ 'pmf9' NOACNT ^ 'pmf29' BYPASS ^ 'qmf17' U17; ^ 'pmf10' PRMCEB ^ 'pmf30' SYSLCK ^ 'qmf18' U18; ^ 'pmf11' PRMMBX ^ 'pmf31' SHARE ^ 'qmf19' U19: ^ 'pmf12' PSWAPM ^ 'qmf0' UPGRADE ^ 'qmf20' U20: ^ 'pmf13' SETPRI ^ 'qmf1' DOWNGRADE ^ 'qmf21' U21: ^ 'pmf14' SETPRV ^ 'qmf2' GRPPRV ^ 'qmf22' U22: ^ 'pmf15' TMPMBX ^ 'qmf3' READALL ^ 'qmf23' U23: ^ 'pmf16' WORLD ^ 'qmf4' U04 ^ 'qmf24' U24$! 1-20 21-40 41-60 61-67$if choice .eq. 68$then$prvsym=="None"$return$endif$if choice .eq. 69$then$prvsym="BAIL"$return$endif $smptr=choice!$if choice .eq. 1 then goto pmsks&$if choice .gt. 3 .and. choice .lt. 20$ then$ bchc= choice - 4$ tmsk=prvlo1 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvlo1 = prvlo1 .and. xbt'bchc'$ pmf'bchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvlo1 = prvlo1 .or. bt'bchc'$ pmf'bchc' = "*"$ endif$ goto dopvmenu$ endif($ if choice .gt. 19 .and. choice .lt. 36$ then$ bchc= choice - 20$ bbchc = choice - 4$ tmsk=prvlo2 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvlo2 = prvlo2 .and. xbt'bchc'$ pmf'bbchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvlo2 = prvlo2 .or. bt'bchc'$ pmf'bbchc' = "*"$ endif$ goto dopvmenu$ endif($ if choice .gt. 35 .and. choice .lt. 52$ then$ bchc= choice - 36$ bbchc = choice - 36$ tmsk=prvhi1 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvhi1 = prvhi1 .and. xbt'bchc'$ qmf'bbchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvhi1 = prvhi1 .or. bt'bchc'$ qmf'bbchc' = "*"$ endif$ goto dopvmenu$ endif($ if choice .gt. 51 .and. choice .lt. 68$ then$ bchc= choice - 52$ bbchc = choice - 36$ tmsk=prvhi2 .and. bt'bchc'$ if tmsk .ne. 0$ then!$ prvhi2 = prvhi2 .and. xbt'bchc'$ qmf'bbchc' = " "$ endif$ if tmsk .eq. 0$ then$ prvhi2 = prvhi2 .or. bt'bchc'$ qmf'bbchc' = "*"$ endif$ goto dopvmenu$ endif$ if choice .eq. 2$ then$! set all privs $pmf0="*" $pmf1="*" $pmf2="*" $pmf3="*" $pmf4="*" $pmf5="*" $pmf6="*" $pmf7="*" $pmf8="*" $pmf9="*" $pmf10="*" $pmf11="*" $pmf12="*" $pmf13="*" $pmf14="*" $pmf15="*" $pmf16="*" $pmf17="*" $pmf18="*" $pmf19="*" $pmf20="*" $pmf21="*" $pmf22="*" $pmf23="*" $pmf24="*" $pmf25="*" $pmf26="*" $pmf27="*" $pmf28="*" $pmf29="*" $pmf30="*" $pmf31="*" $qmf0="*" $qmf1="*" $qmf2="*" $qmf3="*" $qmf4="*" $qmf5="*" $qmf6="*" $qmf7="*" $qmf8="*" $qmf9="*" $qmf10="*" $qmf11="*" $qmf12="*" $qmf13="*" $qmf14="*" $qmf15="*" $qmf16="*" $qmf17="*" $qmf18="*" $qmf19="*" $qmf20="*" $qmf21="*" $qmf22="*" $qmf23="*" $qmf24="*" $qmf25="*" $qmf26="*" $qmf27="*" $qmf28="*" $qmf29="*" $qmf30="*" $qmf31="*" $prvlo1=65535 $prvlo2=65535 $prvhi1=65535 $prvhi2=65535 $plo1=65535 $plo2=65535 $phi1=65535 $phi2=65535$ goto dopvmnu$ endif$ if choice .eq. 3$ then$! clear all privs $pmf0=" " $pmf1=" " $pmf2=" " $pmf3=" " $pmf4=" " $pmf5=" " $pmf6=" " $pmf7=" " $pmf8=" " $pmf9=" " $pmf10=" " $pmf11=" " $pmf12=" " $pmf13=" " $pmf14=" " $pmf15=" " $pmf16=" " $pmf17=" " $pmf18=" " $pmf19=" " $pmf20=" " $pmf21=" " $pmf22=" " $pmf23=" " $pmf24=" " $pmf25=" " $pmf26=" " $pmf27=" " $pmf28=" " $pmf29=" " $pmf30=" " $pmf31=" " $qmf0=" " $qmf1=" " $qmf2=" " $qmf3=" " $qmf4=" " $qmf5=" " $qmf6=" " $qmf7=" " $qmf8=" " $qmf9=" " $qmf10=" " $qmf11=" " $qmf12=" " $qmf13=" " $qmf14=" " $qmf15=" " $qmf16=" " $qmf17=" " $qmf18=" " $qmf19=" " $qmf20=" " $qmf21=" " $qmf22=" " $qmf23=" " $qmf24=" " $qmf25=" " $qmf26=" " $qmf27=" " $qmf28=" " $qmf29=" " $qmf30=" " $qmf31=" " $prvlo1=0 $prvlo2=0 $prvhi1=0 $prvhi2=0$plo1=0$plo2=0$phi1=0$phi2=0$ goto dopvmnu$ endif$pmsks:$prvl==prvlo1+65536*prvlo2$prvh==prvhi1+65536*prvhi2$lll=f$fao("!XW",prvlo1)$l2ll=f$fao("!XW",prvlo2)$llh=f$fao("!XW",prvhi1)$l2lh=f$fao("!XW",prvhi2) $prvsym:=='l2ll''lll''l2lh''llh'$return"*[EVERHART.JTDEMO]JT_SEL_MOVE.COM;5+,./ 4Q- 0123 KPWO56L7@-289GHJ $set noverify'$! Copyright (c) 1994 Glenn C. Everhart$! All Rights Reserved$ask:==inquire$emit:==write sys$outputD$! Recognize if called by cswing since p1 will contain "mung" string $! in it.0$assign "@gcy$cm:JT_sel_move" cswing$usercommand $cswmod=02$if p1 .eqs. "" .or. p1 .eqs. " " then goto notcsw:$if f$locate("MUNG",p1) .ge. f$length(p1) then goto notcswA$! Looks like a probable CSwing call. Set the mode up and use it. $cswmod=1$open/read cswsel 'p1' $goto proccs$notcsw:;$i@ SAFETY013.A "[EVERHART.JTDEMO]JT_SEL_MOVE.COM;516Q^Df f$search("gcy$cm:cswing.exe") .eqs. "" then goto proccs$cswing:==$gcy$cm:cswing $set noon)$emit "Select files, then type G to mark" $wait 0:0:04$ass/user sys$command sys$input $cswing -f$exit$proccs:$set command sys$system:zmenu $fcnstr=" " $allflg="No" $ffnm=" "$modlop: $ffnm=" "$ffnm="" $allflg="No"$wild=0 $wldfile=" " $wldctr=0$if cswmod.eq.0$then1$if p1 .nes. "" .and. p1 .nes. " " then ffnm = p1$else$wild=1$read/end=cswxxx cswsel ffnm$endif $goto cswwww$cswxxx:$exit$cswwww: $p1 = " "$p1 = ""$write sys$output ""$write sys$output ""$ write sys$output -"M<>[?4l[?8h",-"(B)07[?6l8#6"Q$if ffnm .eqs. "" .or. ffnm .eqs. " " then ask ffnm "File(s) to move (? for dir)"$if ffnm .eqs. "" then exit*$if f$locate("?",ffnm) .lt. f$length(ffnm)$then*$ inquire fdcmd "Directory of what files:"$ dircmd="dir " + fdcmd$ spawn dircmd $ goto modlop$endif#$if f$length(ffnm) .le. 2 then exit $fnm=ffnm$if f$search(fnm,4) .eqs. ""$ then$ emit "%HSM-F-No such file" $goto modlop$endif8$if f$locate("*",ffnm) .lt. f$length(ffnm) then wild = 18$if f$locate("%",ffnm) .lt. f$length(ffnm) then wild = 1 $wldfile=ffnm$wldlop:$if wild .eq. 0$then"$if wldctr .gt. 0 then goto modlop$fnm=f$search(ffnm,3)$wldctr=wldctr+1$endif$if wild .ne. 0$then$wldctr=wldctr+1$if cswmod .eq.0$then$fnm=f$search(wldfile,3)$else/$if wldctr.gt.1 then read/end=cswxxx cswsel fnm$if fnm .eqs. "" then exit$endif!$if fnm .eqs. "" then goto modlop $flnm=fnm=$if allflg .eqs. "Yes" .and. fcnstr .nes. " " then goto aplwc$endif#$JTauthmaint:==$gcy$sys:JTauthmaint$flnm=f$search(fnm)$if flnm .eqs. "" $ then#$ emit "%HSM-F-No such file found"$ goto modlop$ endif$JTa_fusr="None"$JTa_ftty="None"$JTa_fimg="None"$JTa_mxpv="None"$JTa_cksm="None"$JTa_bkpu="None"$$JTa_itim="YYYYYYYYYYYYYYYYYYYYYYYY"$JTa_pswd="0000000000000000" $JTa_usrs=" " $JTa_ttys=" " $JTa_imgs=" " $JTa_cslk=" " $JTa_insp=" " $JTa_bpri=" " $JTa_idnt=" "$JTa_surw="R/W" $JTa_rprv=" " $set noon$ JTauthmaint 'flnm'\%SYMS$set on-$if JTA_BPRI .EQS. " " THEN JTA_BPRI = "None"-$if JTA_Idnt .eqs. " " then JTA_IDNT = "None"-$if JTA_RPRV .eqs. " " then JTa_rprv = "None"-$if JTa_cslk .eqs. " " then JTa_cslk = "None"$csftf=0 $cksf=" "3$if JTa_cksm .nes. "0000000000000000" then cksf="*" $pswf=" " $skyf=" " $sekey=" " $stident=" "$sident=JTa_idnt$if f$length(JTa_idnt) .ge. 16$then$aaa=0%$ttt="aaa=%x"+f$extract(0,8,JTa_idnt)$'ttt')$zidnt=f$identifier(aaa,"number_to_name")%$if zidnt .nes. "" then stident=zidnt$endif$prvsym=="0000000000000000" $ptitle="Max Privs To Open File" $filpwd=" "$smptr=1$domenu:?$zmenu/POINTER="-->"/SYMBOLS/initial='f$string(smptr)'1 Hierarchical Storage Facility - File Moving File 'flnm', ^ Set normal softlink to another file< ^ Set R/O softlink to another file, moving this there4 ^ Mark and move this file now to backing area+ ^ Quit, make no changes to this file. ^ Perform database maintenance commands- ^ Move and mark all selected files now$smptr = choice$write sys$output " "$write sys$output " " $goto xxxdoch$aplwc: $choice=4 $xxxdoch:"$if choice .eq. 4 then goto wldlop$if choice .eq. 6$ then$ allflg="Yes" $ choice=4$ endif$if choice .eq. 1$ then $! softlink%$ask cffk "Enter device:file to open"0$if f$search(cffk) .nes. "" then JTa_cslk = cffk$if f$search(cffk) .eqs. ""$then$on warning then goto fubard!$ backup 'flnm' 'cffk'/owner=orig $ set noon$ JTa_cslk = cffk$endif1$ if f$file(flnm,"EOF") .EQ. f$file(cffk,"EOF") -1 .and. f$file(flnm,"FFB") .eq. f$file(cffk,"FFB")$ thenH$! Don't truncate the files for the user here. Let him truncate his own.!$! file/end=1/first_free=0 'flnm'$! set file/truncate 'flnm'$ endif$ cffk = f$search(cffk)$ JTauthmaint 'flnm'\H<'cffk'> $ goto wldlop$fubard: $ set noon $ goto domenu$ endif$if choice .eq. 2$ then$! r/o softlink%$ask cffk "Enter device:file to open"0$if f$search(cffk) .nes. "" then JTa_cslk = cffk$if f$search(cffk) .eqs. ""$then$on warning then goto fubardx!$ backup 'flnm' 'cffk'/owner=orig $ set noon$ JTa_cslk = cffk$endif1$ if f$file(flnm,"EOF") .EQ. f$file(cffk,"EOF") -1 .and. f$file(flnm,"FFB") .eq. f$file(cffk,"FFB")$ then $ file/end=1/first_free=0 'flnm'$ set file/truncate 'flnm'$ endif$ cffk = f$search(cffk) $ JTauthmaint 'flnm'\#<'cffk'>M+ $ goto wldlop $fubardx: $ set noon $ goto domenu$ endif$if choice .eq. 5$ then$mntlop:%$zmenu/POINTER="-->"/SYMBOLS' Hierarchical Storage Manager MAINTENANCE COMMANDS ^ Delete this entry: ^ Remove all database entries for now-deleted files+ ^ Create listing of all files marked ^ Repair deleted ACEs/ ^ Change or delete a string in all lists ^ Done with this menu$if choice .eq. 1$then0$! Remove ACE markings as well as file markings.$JTauthmaint 'flnm'\Z-X+$JTauthmaint 'flnm'\%DELETE $goto mntlop$endif$if choice .eq. 2$then$ JTauthmaint 'flnm'\%PURGE $ goto mntlop$endif$if choice .eq. 3$ then$ JTauthmaint 'flnm'\%LIST $ goto mntlop$ endif$if choice .eq. 4$ then$ JTauthmaint 'flnm'\%REGEN $ goto mntlop$ endif$if choice .eq. 5$ then$ ask olds "String to remove"0$ ask news "String to replace it with (or none)"-$ JTauthmaint 'flnm'\%GBLEDIT `'olds'`'news'` $ goto mntlop$ endif"$if choice .eq. 6 then goto wldlop$ endif$if choice .eq. 3$ then5$! Here concoct JTauthmaint call to update everything $fcnstr="X+"$insme=1($if f$file_attributes(flnm,"ALQ") .eq. 0$ then0$! File has already been moved. Don't redo this.L$! However allow redo of markings since they may have been corrupted somehow)$fcnstr=fcnstr+"V"+"M+"$ else+$fcnstr=fcnstr+"V"+"M+H+"$ endif'$if insme .ne.0 then fcnstr=fcnstr+"I+"=$fcnstr=fcnstr+"X+U*<*>K*<*>N*<*>T"$$JTauthmaint 'flnm'\'fcnstr' $! $ goto wldlop$endif $if wild .ne. 0 then goto wldlop $goto modlop!*[EVERHART.JTDEMO]JT_SETUP.COM;141+,.u/ 4up- 0123 KPWOq56@ŋ!7=!89GHJ" $!Setup generator for SDH/SafetyF$!Copyright (c) 1994,1995,1996 Glenn C. Everhart. All rights reserved.G$! Generates script to be run at startup time from the startup process. $!set symbol/verb/scope=noglobalF$! Define symbols we use so they aren't from the external environment. $set:=set $set noon+$! Be sure all files are close/nologd first$close/nolog jtmf$close/nolog strx$close/nolog jti$close/nolog jto$close/nolog dsvt$close/nolog tmp$close/nolog cfg$close/nolog d00d$close/nolog d1d$close/nolog d0d$del*ete:=delete $copy:=copy $write:=write$inquire:=inquire$if:=if$back*up:=backup$sysgen:=sysgen$sysman:=sysman $zmenu:=zmenu$ass*ign:=assign$def*ine:=define $close:=close $open:=open $read:=read $gosub:=gosub$! $aufmfg=" ""$jtauthmaint:=$gcy$sys:jtauthmaint $purge:=purge$ask:==inquire$emit:==write sys$outputD$oldprv=f$setprv("cmkrnl,sysprv,log_io,phy_io,tmpmbx,volpro,detach")E$tprv=f$privilege("cmkrnl,sysprv,log_io,phy_io,tmpmbx,volpro,detach")$if (tprv) then goto gotprv*$write sys$output "Not enough privileges."$exit$gotprv: $ edelsav="*" $vmldst=0$emit ""D$if (f$search("sys$system:JTdriver.exe") .nes. "") then goto seedrvr+$emit "%SDH-F-Cannot find driver. Exiting."$ exit $seedrvr: $goto tstdo$nocomp:#$emit "Component missing. Exiting."=$emit "Be sure all the component pieces exist in sys$system."$exit$tstdo:0$! Be sure all needed files exist in system area $if f$trnlnm("GCY$SYS") .nes. ""$then;$if f$search("gcy$sys:jtdmn.cld") .eqs. "" then goto nocompA$if f$search("gcy$sys:JtAuthMaint.exe") .eqs. "" then goto nocomp=$if f$search("gcy$sys:JtdoLog.exe") .eqs. "" then goto nocomp;$if f$search("gcy$sys:Jtdmn.exe") .eqs. "" then goto nocomp$endif$JTnum=0D$if f$search("sys$manager:SDH_Startup.com") .eqs. "" then goto gocfgF$emit "SYS$MANAGER:SDH_STARTUP.COM already exists. Delete if you wish"0$emit "to create a new one with this procedure.".$ask ovrd "Continue anyway, adding new server"K$if f$extract(0,1,f$edit(ovrd,"collapse,upcase")) .eqs. "Y" then goto gocfg$exit$gocfg:$fmk="/fcnmsk:66483" $fjtddb=" " $sjtddb=" " $fjtsys=" " $fparan="*" $sjtsys=" " $if f$trnlnm("GCY$SYS") .nes. ""$then $fjtsys="*"$sjtsys=f$trnlnm("GCY$SYS")$endif$if f$trnlnm("JTD$DB") .nes. ""$then $fjtddb="*"$sjtddb=f$trnlnm("JTD$DB")$endif$ndsk=0 $ndskst=ndsk $domkspc=0$set comm sys$system:zmenu$zmlc=4 $ choice=4F$! Combined setup; user can pick what he/she wants from all functions. $ vmldst=0 $ fswpo="*"$ strswpop="SWAP" $ flnko=" " $ frlko=" "$zmlc=5 $ choice=5$ goto xchoice2 $mdomenu:$mdomnu:4$zmenu/POINTER="-->"/SYMBOLS/initial='zmlc'- ?#6?[1;7mSafety HSM CONTROL/MAINTENANCE?[m; Selects how the "space finding" script marks and moves> files. (You need to run GCY$SYS:JTSPACE_TAILOR.COM also.)6 ^ 'fswpo'Use "Shelving" operations to move files? ^ 'frlko'Use "readonly softlink" operations to move files6 ^ 'flnko'Use "softlink" operations to move files' ^ Explain the file moving stylesN ^ Unshelve all files on a disk if space exists (assumes SDH is running)* ^ Stop a running SDH server cleanly2 ^ Start a server that is already configured= ^ 'fparan'Enable "check all opens" (paranoid mode) mode* ^ 'edelsav'Enable undelete functions ^ Quit, do nothing: ^ Exit and proceed to set up SDH configuration file$!$!zmlc = choice$ if choice .eq. 10 then exit$ if choice .eq. 9$ then$ if edelsav .eqs. " "$ then$ edelsav="*"$ else$ edelsav=" "$ endif $ goto mdomnu$ endif$ if choice .eq. 8$ then$ if fparan .eqs. " "$ then $ fparan="*"$ else $ fparan=" "$ endif $ goto mdomnu$ endif$ if choice .eq. 1$ then$ strswpop="SWAP" $ fswpo="*" $ flnko=" " $ frlko=" " $ goto mdomnu$ endif$ if choice .eq. 2$ then$ strswpop="LINK" $ fswpo=" " $ flnko="*" $ frlko=" " $ goto mdomnu$ endif$ if choice .eq. 3$ then$ strswpop="RLNK" $ fswpo=" " $ flnko=" " $ frlko="*" $ goto mdomnu$ endif$ if choice .eq. 4$ then$ copy sys$input sys$outputG The "styles" referred to are the ways that files are moved when movedE by automatic or semiautomatic means (e.g., when the disk fills up).5 These are configured according to your site policy.D There are 3 types of operations which can be used to move files to1 backing store when free space is being claimed.E in SHELVING, a file is copied to nearline storage and truncated toD zero blocks on the main disk. When the file is opened, it isF copied from nearline disk back to its original site and erasedF from nearline storage. Thus it is automatically retrieved when accessed.F in SOFTLINKs, the file is copied to nearline storage and any opens@ afterwards access the file directly on nearline storage.C The original file is truncated to zero blocks and kept as a? pointer so that the file acts as if still on main disk.E Be aware that the automatic unshelve menu item is ineffective% for softlinks of either type.G in READONLY SOFTLINKs, the file is copied to nearline storage. If itG is opened for read only, it is accessed on the nearline storageG and left there. If it is opened for any kind of write or updateE access, it is treated as shelved and unshelved automatically.C Softlinks require that files be kept on disk type storage, usingD anything that acts like a disk to VMS. Note too that if using theJ READONLY SOFTLINK method, if someone opens a file for read, and someoneD else opens it for update and updates it after, the first accessorH will not see the updates. Since the link will be deleted after inswapF (takes effect once it is closed by all readers), LATER readers willA however see the updates since the file will be on normal disk.$eod($ ask xjnkkk "Enter return to continue>" $ goto mdomnu$ endif$if choice .eq. 5$ then$! unshelve allC$ ask udevice "What device should have all files unshelved from it"'$ if udevice .eqs. "" then goto mdomenu$ JTa_summlen = "99999999999" $set noon0$ JTauthmaint 'udevice'[000000]corimg.sys\%PURGE/$ JTauthmaint 'udevice'[000000]corimg.sys\%SUMM?$ if f$integer(JTa_summlen) .ge. f$getdvi(udevice,"freeblocks")$ thenG$ emit "%SDH-F-NoRoom Not enough room on device to unshelve everything"H$ emit " You must delete some files to make room to unshelve all files."4$ emit " Total size of shelved files is",JTa_summlen $ wait 0:0:02 $ goto mdomnu$ endif0$ ! JTa_summfile is the filename of summary file$ open/read JTmf 'JTa_summfile' $ fillin=" "$ read/end=cJTmf JTmf fillin$ sJTmf:3$ fillin=f$extract(0,f$locate("(",fillin)-1,fillin)+$ fillin = f$edit(fillin,"upcase,collapse")$ ! force inswapF$! Following operation does so with minimal overhead, forcing reading.$ copy 'fillin' nla0: $ goto sJTmf$ cJTmf:$ close/nolog JTmf!$ delete 'f$search(JTa_summfile)' $ goto mdomnu$ endif$if choice .eq. 6$ then?$ emit "Please select FIRST device controlled by an SDH server";$ emit "The following commands contain the disks eligible:"<$ search/nohead/match=and sys$manager:JTm_d*.daemon hsa,deas>$ ask udevice "What device should have its SDH server stopped"'$ if udevice .eqs. "" then goto mdomenu)$ desdvc="Sf" + udevice - ":" - "_" - "_"+$ desdvc = f$edit(desdvc,"upcase,collapse") $ uctxt="" $ prclc3:$ uxpid=f$pid(uctxt)$ if uxpid .eqs. ""$ thenF$ emit "%SDH-W-Cannot find server. Specify the FIRST device which the"'$ emit " SDH server controls, please." $ goto mdomnu$ endif!$ prcnam=f$getjpi(uxpid,"prcnam")$ forcex :==$gcy$sys:forcex2$ if f$edit(prcnam,"upcase,collapse") .eqs. desdvc$ then$ forcex 'uxpid'D$! Now clean up any outstanding assigns that use the same JTAn unit.?$! Rely on our having put the JTdmn/deas in for the main one...$ fillin = " ",$ open/read strx sys$manager:SDH_Startup.com$v2strx:$ read/end=v1strx strx fillinD$ if f$locate(udevice,fillin) .ge. f$length(fillin) then goto v2strx-$! we found a line containing desired device.*$! now find JTAnnn: string and isolate it.$ close/nolog strx $ fillin=f$edit(fillin,"upcase")$ lJTa=f$locate("JTA",fillin)0$ fillin=f$extract(lJTa,f$length(fillin),fillin)3$ fillin = f$extract(0,f$locate(":",fillin),fillin)$ JTanam="/SHARE:"+fillin$JTdmn:==$gcy$sys:JTdmn,$ open/read strx sys$manager:SDH@ SAFETY013.A ![EVERHART.JTDEMO]JT_SETUP.COM;141XP6;6u>_Startup.com $ v3strx:$ read/end=v1strx strx fillinC$ if f$locate(JTanam,fillin) .ge. f$length(fillin) then goto v3strx'$ got one of the share lines. add /deas$ fillin = fillin - JTanam=$ fillin = "$JTdmn/deas"+f$extract(6,f$length(fillin),fillin) $ 'fillin' $ goto v3strx$v1strx:$ close/nolog strx $ goto mdomnu$ endif $ goto prclc3$ !$ endif$if choice .eq. 7$ thenC$! SDH startup won't start already active JT device daemons and the)$! /share ones should be ok to run twice.$ @sys$manager:SDH_Startup$ exit$ endif $xchoice2:$! default choice .eq. 11$JTnum=0$dtsts:E$if f$search("sys$manager:SDH_Startup.com") .eqs. "" then goto gocfg2F$emit "SYS$MANAGER:SDH_Startup.COM already exists. Delete if you wish"0$emit "to create a new one with this procedure."6$ask ovrd "Continue anyway, adding new server[Y/N][N]"K$if f$extract(0,1,f$edit(ovrd,"collapse,upcase")) .eqs. "Y" then goto gocfg$exit$gocfg2:$fmk="/fcnmsk:66451" $fJTddb=" " $sJTddb=" " $fJTsys=" " $sJTsys=" " $if f$trnlnm("GCY$SYS") .nes. ""$then $fJTsys="*"$sJTsys=f$trnlnm("GCY$SYS")$endif$if f$trnlnm("JTD$DB") .NES. ""$then $fJTddb="*"$sJTddb=f$trnlnm("JTD$DB")$endif$ndsk=0 $noutarea=0 $ndskst=ndsk $edelsav="*" $fdelsav=" " $sdelsav=""$if f$trnln("delsav") .nes. ""$then $fdelsav="*"$sdelsav=f$trnlnm("DELSAV")$delsv=sdelsav$endif $gblmode=0 $ignfiles=""$imgf=0$zmlc=1 $ spcmd=1 $fgcmm="*" $fgrnm=" " $fgcpy=" " $fgsca=" " $fgdla=" " $fgndl=" " $fgdrm=" " $fgdsv=" " $fgdog=" " $fgbkd=" " $fcspm="*" $fgign=" "*$if sjtddb .nes. "" then gcyscratch=sjtddb=$if sjtddb .nes. "" .and. sdelsav .eqs. "" then delsv=sjtddb"$if f$trnlnm("GCY$SCRATCH").nes.""$then#$gcyscratch=f$trnlnm("GCY$SCRATCH") $fgsca="*"$endif$if f$trnlnm("DELSAV").nes. ""$then$delsv=f$trnlnm("DELSAV")$sdelsav=delsv $fdelsav="*" $fgdla="*"$endifB$! Set up some defaults. We must have someplace where programs areE$! kept, but if that may be sys$system:, let us define that to be ok.E$! Also if it's sys$sysdevice:[eacf] that should be ok also. (That is'$! the default in kitinstal after all.)!$ if f$trnlnm("GCY$SYS") .eqs. ""$ then6$ if f$search("sys$system:jtdmn.exe") .nes. "" .and. -4 f$search("sys$system:jtauthmaint.exe") .nes. ""$ then&$! Looks like gcy$sys is in sys$system!$ ass/sys/exec sys$system gcy$sys $ fjtsys="*"$ sjtsys="SYS$SYSTEM:"$ endif$! Look in [EACF] now.?$ if f$search("SYS$SYSDEVICE:[EACF]jtdmn.exe") .nes. "" .and. -= f$search("SYS$SYSDEVICE:[EACF]jtauthmaint.exe") .nes. ""$ then0$! Looks like gcy$sys is in SYS$SYSDEVICE:[EACF]+$ ass/sys/exec SYS$SYSDEVICE:[EACF] gcy$sys $ fjtsys="*"$ sjtsys="SYS$SYSDEVICE:[EACF]"$ endif$ endif!$ if f$trnlnm("GCY$SYS") .nes. ""$ then$ If fjtddb .nes. "*"$ then>$ ! No default for database files. So default that area to the;$ ! same as the program files, just so THAT is defined now.+$ Ass/sys/exec 'f$trnlnm("GCY$SYS")' JTd$db $fJTddb="*"$sJTddb=f$trnlnm("JTD$DB")$if f$trnln("delsav") .eqs. ""$then*$Ass/sys/exec 'f$trnlnm("GCY$SYS")' delsav $fdelsav="*"$sdelsav=f$trnlnm("DELSAV")$delsv=sdelsav$endif*$if sjtddb .nes. "" then gcyscratch=sjtddb=$if sjtddb .nes. "" .and. sdelsav .eqs. "" then delsv=sjtddb"$if f$trnlnm("GCY$SCRATCH").eqs.""$then0$ ass/sys/exec 'f$trnlnm("GCY$SYS")' gcy$scratch#$gcyscratch=f$trnlnm("GCY$SCRATCH") $fgsca="*"$endif$ endif$ endif $ zmlc=12$domenu:$domnu:$ fgcysy=sjtsys$ fgcycm=sjtddb$ ffscrr=gcyscratch4$zmenu/POINTER="-->"/SYMBOLS/initial='zmlc', ?#6?[1;7mSafety (SDH) SETUP?[m 00:00:00= ^ 'fjtddb'Set area to hold SDH database files ('fgcycm'); ^ Set start intercept driver unit number (now 'ndsk')1 ^ 'fjtsys'Set area for SDH images ('fgcysy')A ^ Set images which are exempt from Safety (e.g. defraggers)- ^ 'fgsca'Set area for scratch ('ffscrr')A ^ 'fgdla'Set area to save deleted or shelved files ('delsv')@ ^ Set mode of deletion handling (current value: 'gblmode')4 ^ 'fcspm'Enable/Disable volume space monitoring7 ^ Remove a disk from Safety startup configuration> ^ Set file moving handling modes (experts only, please.) ^ Quit, do nothing. ^ Done this menu, process disk selection ^ HELP, please!!$if choice .eq. 13$ then$ type sys$inputG Help on setup menu, by item. For SIMPLE setup, pick the same area for questions 1, 3, 5, and 6.K1. Safety keeps information about files' safety attributes and locations inI databases of its own creation. These can be placed in any area, though a& fast disk is most desirable for this.C2. If you want to have several Safety servers, you need to select aC unit number for the JT pseudodevice that is not in use. Use a unitE number larger than the highest unit number you see in "show dev jta"9 after Safety starts. Most users just leave this at zero.G3. Safety images (the programs that are part of the package) don't haveE to be in sys$system, but can be anywhere. This question lets you sayC where. This can save a bit of space on your system disk if that is crowded.$eod$$ ask xfubar "Type Return for more>"$type sys$inputF4. Some images may need to run without Safety security constraints. IfD you KNOW they can be trusted, enter their full file specs. Up to 32H images can be so exempted. Wildcards in the name anywhere are OK, using= STRING wildcard rules (not "file spec" rules). (eg *BACKUP*)F5. Safety can be told to compress files for storage. This is done in aJ scratch area which you may specify (in case of WORM or similar storage orK for staging on tape (with some .COM files that are in the kit but normally not used).I6. Safety needs an area to act as the "wastebasket" to keep deleted filesJ in for a while. If using the .COM file mode (default, mode 0) this shouldD be a disk:[directory]. If using rename mode, make it instead just aE directory ([wastebasket] for example) and be sure it exists on every* disk where delete protection will be set.C7. Mode of deletion handling: controls whether files are deleted byF renaming, copy with callable CONVERT, or .COM file (the latter is the* default). Another menu comes up for this.$eod$$ ask xfubar "Type Return for more>"$type sys$inputE8. If file space monitoring is on, Safety can tell when a request forF file space will fail, and runs a script to make room if that happens.G This executes a site policy you select. Default is to delete any filesF deleted more than a few minutes ago, then, if space is still needed, G shelve any old files. Run the script JTSPACE_TAILOR.COM to select thisD policy. If using rename mode for deleted files, this is a very goodF thing to have. Default batch file deletes files finally that were put1 in the wastebasket over a day ago, runs nightly.G9. If you have run Safety as a demo and want to undo its file movementsI use this item. If a lot of files have been shelved and there is not roomL to put everything back, it will tell you. Otherwise it will pull everythingF back so you don't need Safety to unshelve any more. (Note that SafetyG need not ever shelve anything; that is up to your site policy or up toF whether you tell it to shelve something.) Note too that shelved filesF are given a name which uses the file ID, device name, and part of theE original filename, so they can be recovered by hand if need be also.* The remaining items are self explanatory.$ eod-$ ask xfubar "Type Return to return to menu>"$ goto mdomenu$ endif$if choice .eq. 10$ then$ goto mdomenu$ endif$if choice .eq. 11$ then$! close/nolog cfg$ exit$ endif $zmlc=choice$if choice .eq. 9$ then5$ if f$search("sys$manager:SDH_Startup.com") .eqs. ""$ then1$ emit "%SDH-W-no previous configuration exists." $ goto domnu$ endif$ emit " **** BEWARE *** "G$ emit " Don't remove disks if you have files shelved on them already."J$ emit " Instead run the separate unshelve script first to unshelve files"5$ emit " on the disk, THEN change the configuration."$ emit "Current configuration:"4$ search/nohigh sys$manager:SDH_Startup.com "$JTdmn" $ emit ""5$ ask drmv "Enter disk name to remove, NONE for none"9$ if drmv .eqs. "" .or. drmv .eqs. "NONE" then goto domnu $ text = " "+$ open/read JTi sys$manager:SDH_Startup.com,$ open/write JTo sys$manager:SDH_Startup.com$rlpu:$ read/end=clsm JTi text$ ltxt=f$length(text)6$ if f$locate(drmv,text) .ge. ltxt then write JTo text $ goto rlpu$clsm:$ close/nolog JTo$ close/nolog JTi $ goto domnu$ endif6$! Following choice is effectively not here this time.$if choice .eq. 9$ then $ vmldst=0F$ goto wundst ! *********** patch out multiple dests for v1 **********I$ emit "If multiple destinations are desired they will be selected after"K$ emit "disks being selected as source disks for this server are selected."J$ ask mdest "Should multiple disk areas be used for shelved files[Y/N][Y]"M$if f$extract(0,1,f$edit(mdest,"collapse,upcase")) .nes. "Y" then goto wundst$! multiple destinations $ vmldst = 12$ copy gcy$sys:JTfilsavmdsk.com gcy$sys:filsav.com2$ copy gcy$sys:JTfilrstmdsk.com gcy$sys:filrst.com$ pur gcy$sys:fil*.com $ goto domnu$wundst:-$ ask idsv "Give area to place shelved files"$ if idsv .nes. ""$ then$ on error then goto dsfu!$ open/write dsvt 'idsv'test.junk$ write dsvt "test"$ close/nolog dsvt$ delete 'idsv'test.junk.$ sdelsav=idsv$ delsv = sdelsav $ fdelsav="*".$ copy gcy$sys:JTfilsav.com gcy$sys:filsav.com.$ copy gcy$sys:JTfilrst.com gcy$sys:filrst.com $ goto domnu$dsfu::$emit "%SDH-W-Nodir - cannot write to this area. Ignored," $wait 0:0:05$on error then continue$ endif $ goto domnu$ endif$if choice .eq. 8$ then$ if fcspm .eqs. " "$ then $ spcmd=1 $ fcspm="*"$ else $ spcmd=0 $ fcspm=" "$ endif$ if domkspc .eq. 0$ thenF$ emit "You need to run the JTSPACE_TAILOR script to set up your site"G$ emit "space making policy. You may run this later but it is best run" $ emit "now.">$ ask mdkmk "Shall we set site space-making policy now [Y/N]?"=$ if f$extract(0,1,f$edit(mdkmk,"collapse,upcase")) .eqs. "Y"$ then$ @gcy$sys:jtspace_tailor $ domkspc=1$ endif$ endif $ goto domnu$ endif$if choice .eq. 7$ then $zmlcm = 1 $getmode:1$! set modes for this daemon in gblmode parameter5$zmenu/POINTER="-->"/SYMBOLS/initial='zmlcm'> ?#6?[1;7mSafety / Safety Deletion Modes Setup?[m 00:00:00< ^ 'fgcmm' Run .COM file FILDEL.COM to process deletions< ^ 'fgrnm' Rename deleted files on volume to wastebasketF ^ 'fgcpy' Copy deleted files to wastebasket area (sys undel only)6 ^ 'fgndl' Don't delete any files after processingE ^ 'fgdrm' Delete file if no room for saving (else do not delete)> ^ 'fgbkd' Run GCY$CM:DELBAK.COM before wastebasket purgesE ^ 'fgign' Set files to ignore (allowing normal deletion of them)H ^ 'fgdsv' Set to delete linked-to or shelved files (in del_shelved)H ^ 'fgdog' Set to delete files in link-delete script del_shelved.com0 ^ Quit this menu, leave major modes alone ^ Done this menu2 ^ HELP!! Give me some explanations please!!$ if choice .eq. 11$ then$ type sys$input: There are three major ways to handle deletion protection:D 1. Run a .COM file which will save the file in a "saved files" area; (optionally in compressed form there). Anyone can undelete' files since protections are preserved.H 2. Rename the file to a wastebasket area. It can be undeleted by anyone in this case.C 3. Run callable CONVERT to copy the file to a save area. It can be= restored by privileged users (since callable convert doesn't save protections).7Mode bits 0:1 are 0, 1, or 2 for the three cases above.BMost people do not need anything but to choose one of these modes.GNOTE that if you pick rename mode, the wastebasket directory must exist!on the same disk the file was on.$eod$$ ask xfubar "Type Return for more>"$type sys$input There are a number of overrides.D 1. You can set the system not to delete any files, but nevertheless@ save them. (Then you need somehow to delete them by other means@ (possibly using the EXPUNGE command) to reclaim space. Use only in very special situations.J 2. You can tell Safety that if it cannot save files, it should let deleteC succeed. Normally it won't. This normally can happen only when the@ delete area runs out of room and you aren't monitoring space in Safety.D 3. The DELBAK.COM procedure can be anything you like. If you say itC should be run before finally deleting files out of the wastebasketB it can be used for such things as backing the files to be deleted> to a tape, saving them offline before deleting them off disk.M 4. If you don't mind having delete work normally for some files (for example? .LIS or .MAP files) you can tell Safety to just let files likeC *.LIS* or *.MAP* be deleted. This procedure will ask for filenames? (or wildcards like *.LIS*) to allow to be deleted. These files? will then NOT be protected, but space from them gets reclaimed instantly.M 5. If you delete a file that is a softlink pointer to another file, normallyA only the softlink is deleted, not the file it points to. You canA however tell Safety to delete the file pointed to as well. This = also can set to delete shelved files instead of leaving them on the shelf as is the default.E 6. You can tell Safety to always use del_shelved.com to delete files@ instead of its normal methods. See the comments in the supplied; version for information about the arguments passed to that2 routine if selected. Normally this is not needed. The rest are self-explanatory.$eod2$ ask xfubar "Type Return to return to MODE menu>" $ goto domnu$ endif#$ if choice .eq. 10 then goto domnu$ zmlcm = choice$ if choice .eq. 11$ then$ mjmd=0$ if fgrnm.eqs."*" then mjmd=1$ if fgcpy.eqs."*" then mjmd=2$ gblmode=mjmd+$ if fgndl.eqs."*" then gblmode=gblmode + 4,$ if fgdrm.eqs."*" then gblmode=gblmode + 16,$ if fgbkd.eqs."*" then gblmode=gblmode + 64-$ if fgdsv.eqs."*" then gblmode=gblmode + 128-$ if fgdog.eqs."*" then gblmode=gblmode + 512 $ goto domnu$ endif$ if choice .eq. 8$ then$ if fgdsv .eqs. " "$ then $ fgdsv="*"$ else $ fgdsv=" "$ endif$ goto getmode $ endif$ if choice .eq. 9$ then$ if fgdog .eqs. " "$ then $ fgdog="*"$ else $ fgdog=" "$ endif$ goto getmode $ endif$ if choice .eq. 1$ then $ fgcmm="*" $ fgrnm=" " $ fgcpy=" "$ goto getmode $ endif$ if choice .eq. 2$ then $ fgcmm=" " $ fgrnm="*" $ fgcpy=" "$ goto getmode $ endif$ if choice .eq. 3$ then $ fgcmm=" " $ fgrnm=" " $ fgcpy="*"$ goto getmode $ endif$ if choice .eq. 4$ then$ if fgndl .eqs. " "$ then $ fgndl="*"$ else $ fgndl=" "$ endif$ goto getmode $ endif$ if choice .eq. 5$ then$ if fgdrm .eqs. " "$ then $ fgdrm="*"$ else $ fgdrm=" "$ endif$ goto getmode $ endif$ if choice .eq. 6$ then$ if fgbkd .eqs. " "$ then $ fgbkd="*"$ else $ fgbkd=" "$ endif$ goto getmode $ endif$ if choice .eq. 7$ then$ if fgign .eqs. " "$ then $ fgign="*"@$ emit "Enter file strings to ignore as normal wildcard STRINGS"E$ emit "Thus to omit *.OBJ, enter *.OBJ* since string matching rules"J$ emit "are used. Several specifications can be entered, comma separated.""$ ask ifs "Filestrings to ignore:"$ if ifs .eqs. "" $ then $ fgign=" "$ goto getmo@ SAFETY013.A ![EVERHART.JTDEMO]JT_SETUP.COM;141XP6;6uz>1de$ endif$ ignfiles=ifs$ else $ emit "Current ignore list is:"$ emit ignfiles/$ ask adf "Add more strings to ignore [Y/N][N]"K$ if f$extract(0,1,f$edit(adf,"collapse,upcase")) .nes. "Y" then goto Zoign$ ask adf "Filestring:"#$ if adf .eqs. "" then goto getmode$ ignfiles=ignfiles + "," + adf$ emit "New ignore list is:"$ emit ignfiles $ wait 0:0:03$ goto getmode$Zoign: $ fgign=" " $ ignfiles=""$ endif$ goto getmode $ endif $ goto domnu$ endif$if choice .eq. 5$then+$ask scr "Disk:[directory] for scratch use"=$if sjtddb .nes. "" .and. scr .eqs. "" then gcyscratch=sjtddb$$if scr .nes. "" then gcyscratch=scr $ fgsca=" "'$ if gcyscratch .nes. "" then fgsca="*" $goto domenu$endif$if choice .eq. 6$then&$ask dsv "Save area for deleted files"8$if sjtddb .nes. "" .and. dsv .eqs. "" then delsv=sjtddb:$if sjtddb .nes. "" .and. dsv .eqs. "" then sdelsav=sjtddb7$if sjtddb .nes. "" .and. dsv .eqs. "" then fdelsav="*"$if dsv .nes. ""$ then $ delsv=dsv$ sdelsav = dsv $ fdelsav="*"$ endif$ fgdla = fdelsav $goto domenu$endif$if choice .eq. 4$ then$ if fjtsys .nes. "*"$ then2$ emit "%SDH-E- Must define executable area first" $ goto domnu$ endif$copy sys$input sys$outputE In the following, please enter images that will be EXEMPT from SDHE access checks. That is, these images will be free to open files asD they like; access TO these images can be checked. The list shouldD include defragmenters and similar utilities you have. You can useC wildcards (e.g. *BACKUP.EXE*) to shorten strings, but BE CAREFULA with these. A wildcard path CAN BE SPOOFED. If you include theD FULL device:[directory]file.ext;version path, you can be sure theD image granted access is the one you want. Note the list is globalD to the whole system and can have at most 32 items. The file is in0 GCY$SYS:EXEMPT.IMAGES if you wish to edit it. /$ if f$search("gcy$sys:exempt.images") .eqs. ""$ then&$ open/write xim gcy$sys:exempt.images$ imgf=1$gim1:$ ask imst "Image path string"$ if imst .eqs. ""$ then$ close/nolog xim $ goto domnu$ endif$ write xim imst $ goto gim1$ else$ imgf=1'$ open/append xim gcy$sys:exempt.images$gim2:$ ask imst "Image path string"$ if imst .eqs. ""$ then$ close/nolog xim $ goto domnu$ endif$ write xim imst $ goto gim2$ endif $ goto domnu$endif#$if choice .eq. 12 then goto bldcfg$if choice .eq. 2$ then3$ ask dstrt "Enter start unit number for intercept"#$ if dstrt .eqs. "" then goto domnu$ ndsk=f$integer(dstrt) $ ndskst=ndsk $ goto domnu$ endif$if choice .eq. 3$ then5$ if f$search("sys$manager:SDH_startup.com") .eqs. ""$ then1$ emit "%SDH-W-no previous configuration exists." $ goto domnu$ endif$ emit "Current configuration:"4$ search/nohigh sys$manager:SDH_startup.com "$jtdmn" $ emit ""5$ ask drmv "Enter disk name to remove, NONE for none"9$ if drmv .eqs. "" .or. drmv .eqs. "NONE" then goto domnu $ text = " "+$ open/read JTi sys$manager:SDH_startup.com,$ open/write JTo sys$manager:SDH_startup.com$rlpu:$ read/end=clsm JTi text$ ltxt=f$length(text)6$ if f$locate(drmv,text) .ge. ltxt then write JTo text $ goto rlpu$clsm:$ close/nolog JTo$ close/nolog JTi $ goto domnu$ endif$if choice .eq. 1$then3$ask iarea "Give area for database files (dvc:dir)""$if iarea .eqs. "" then goto domnu2$!check if it exists by trying to put a file there$open/write tmp 'iarea'tfil.tmp$close/nolog tmp$ttt=iarea+"tfil.tmp"$if f$search(ttt) .nes. ""$then $del 'ttt'. $fjtddb="*" $sjtddb=iarea $goto domnu$endif8$emit "%SDH-E-Area does not exist or cannot be written." $wait 0:0:06 $goto domnu$endif$if choice .eq. 3$then5$ask iarea "Give area for executable files (dvc:dir)""$if iarea .eqs. "" then goto domnu2$!check if it exists by trying to put a file there$open/write tmp 'iarea'tfil.tmp$close/nolog tmp$ttt=iarea+"tfil.tmp"$if f$search(ttt) .nes. ""$then $del 'ttt'. $fjtsys="*" $sjtsys=iarea $goto domnu$endif8$emit "%SDH-E-Area does not exist or cannot be written." $wait 0:0:06 $goto domnu$endif$bldcfg:$if fjtddb .nes. "*"$then>$emit "SDH-F-Must define database location before disk select" $goto domnu$endif%$write sys$output "%SDH-I-Working..."4$if f$search("sys$manager:SDH_startup.com") .eqs. ""$then+$open/write cfg sys$manager:SDH_startup.com$else,$open/append cfg sys$manager:SDH_startup.com$endifS$write cfg "$! Define symbols we use so they aren't from the external environment."$write cfg "$set:=set"$write cfg "$set noon"$write cfg "$del*ete:=delete"$write cfg "$copy:=copy"$write cfg "$submit:=submit"$write cfg "$write:=write"$write cfg "$inquire:=inquire"$write cfg "$if:=if"$write cfg "$back*up:=backup"$write cfg "$zmenu:=zmenu"$write cfg "$ass*ign:=assign"$write cfg "$def*ine:=define"$write cfg "$close:=close"$write cfg "$open:=open"$write cfg "$read:=read"$write cfg "$gosub:=gosub"$!$write cfg "$sysgen:==$sysgen"$write cfg "$sysman:==$sysman"C$if f$getsyi("CPU").ge. 128 then write cfg "$sysgen:==mc sysman io")$ttt="$assign/sys/exec "+sjtddb+" jtd$db"$write cfg ttt($ttt="assign/sys/exec "+sjtddb+" jtd$db"$'ttt')$ttt="$assign/sys/exec "+sJTddb+" JTd$JT"$write cfg ttt($ttt="assign/sys/exec "+sJTddb+" JTd$JT"$'ttt')$ttt="$assign/sys/exec "+sjtddb+" gcy$cm"$write cfg ttt($ttt="assign/sys/exec "+sjtddb+" gcy$cm"$'ttt',$ttt="$assign/sys/exec "+sjtddb+" gce$delseq$write cfg ttt+$ttt="assign/sys/exec "+sjtddb+" gce$delseq$'ttt'*$ttt="$assign/sys/exec "+sjtsys+" gcy$sys"$write cfg ttt)$ttt="assign/sys/exec "+sjtsys+" gcy$sys"$'ttt'($ttt="$assign/sys/exec "+delsv+" delsav"$write cfg ttt'$ttt="assign/sys/exec "+delsv+" delsav"$'ttt'-$ttt="$assign/sys/exec "+delsv+" gcy$scratch"$copy gcy$sys:*.com gcy$cm:$pur gcy$cm:*.com$write cfg ttt'$write cfg "$set command gcy$sys:JTdmn",$ttt="assign/sys/exec "+delsv+" gcy$scratch"$'ttt'2$ttt="$assign/sys/exec "+gcyscratch+" gcy$scratch"$write cfg ttt1$ttt="assign/sys/exec "+gcyscratch+" gcy$scratch"$'ttt''$write cfg "$set command gcy$sys:jtdmn"1$write cfg "$jtau*thmaint:==$gcy$sys:jtauthmaint"$$jtau*thmaint:==$gcy$sys:jtauthmaint($write cfg "$jtdolog:==$gcy$sys:jtdolog"$gosub gen_dsk_syms$!set comm gcy$sys:zmenuZ$if f$search("sys$scratch:SDH_dsks.mnuscr") .nes. "" then del sys$scratch:SDH_dsks.mnuscr.+$copy sys$input sys$scratch:SDH_dsks.mnuscr ?#6?[1;7mSDH Configuration?[m Disk Selection: Use arrows to move to selection. Use RETURN to select.^ End disk selection^ 'dv1' 'dp1' 'dq1'^ 'dv2' 'dp2' 'dq2'^ 'dv3' 'dp3' 'dq3'^ 'dv4' 'dp4' 'dq4'^ 'dv5' 'dp5' 'dq5'^ 'dv6' 'dp6' 'dq6'^ 'dv7' 'dp7' 'dq7'^ 'dv8' 'dp8' 'dq8'^ 'dv9' 'dp9' 'dq9'^ 'dv10' 'dp10' 'dq10'^ 'dv11' 'dp11' 'dq11'^ 'dv12' 'dp12' 'dq12'^ 'dv13' 'dp13' 'dq13'^ 'dv14' 'dp14' 'dq14'^ 'dv15' 'dp15' 'dq15'^ 'dv16' 'dp16' 'dq16'^ 'dv17' 'dp17' 'dq17'^ 'dv18' 'dp18' 'dq18'^ 'dv19' 'dp19' 'dq19'^ 'dv20' 'dp20' 'dq20'^ 'dv21' 'dp21' 'dq21'^ 'dv22' 'dp22' 'dq22'^ 'dv23' 'dp23' 'dq23'^ 'dv24' 'dp24' 'dq24'^ 'dv25' 'dp25' 'dq25'^ 'dv26' 'dp26' 'dq26'^ 'dv27' 'dp27' 'dq27'^ 'dv28' 'dp28' 'dq28'^ 'dv29' 'dp29' 'dq29'^ 'dv30' 'dp30' 'dq30'^ 'dv31' 'dp31' 'dq31'^ 'dv32' 'dp32' 'dq32'^ 'dv33' 'dp33' 'dq33'^ 'dv34' 'dp34' 'dq34'^ 'dv35' 'dp35' 'dq35'^ 'dv36' 'dp36' 'dq36'^ 'dv37' 'dp37' 'dq37'^ 'dv38' 'dp38' 'dq38'^ 'dv39' 'dp39' 'dq39'^ 'dv40' 'dp40' 'dq40'^ 'dv41' 'dp41' 'dq41'^ 'dv42' 'dp42' 'dq42'^ 'dv43' 'dp43' 'dq43'^ 'dv44' 'dp44' 'dq44'^ 'dv45' 'dp45' 'dq45'^ 'dv46' 'dp46' 'dq46'^ 'dv47' 'dp47' 'dq47'^ 'dv48' 'dp48' 'dq48'^ 'dv49' 'dp49' 'dq49'^ 'dv50' 'dp50' 'dq50'^ 'dv51' 'dp51' 'dq51'^ 'dv52' 'dp52' 'dq52'^ 'dv53' 'dp53' 'dq53'^ 'dv54' 'dp54' 'dq54'^ 'dv55' 'dp55' 'dq55'^ 'dv56' 'dp56' 'dq56'^ 'dv57' 'dp57' 'dq57'^ 'dv58' 'dp58' 'dq58'^ 'dv59' 'dp59' 'dq59'^ 'dv60' 'dp60' 'dq60'^ 'dv61' 'dp61' 'dq61'^ 'dv62' 'dp62' 'dq62'^ 'dv63' 'dp63' 'dq63'^ 'dv64' 'dp64' 'dq64'^ 'dv65' 'dp65' 'dq65'^ 'dv66' 'dp66' 'dq66'^ 'dv67' 'dp67' 'dq67'^ 'dv68' 'dp68' 'dq68'^ 'dv69' 'dp69' 'dq69'^ 'dv70' 'dp70' 'dq70'^ 'dv71' 'dp71' 'dq71'^ 'dv72' 'dp72' 'dq72'^ 'dv73' 'dp73' 'dq73'^ 'dv74' 'dp74' 'dq74'^ 'dv75' 'dp75' 'dq75'^ 'dv76' 'dp76' 'dq76'^ 'dv77' 'dp77' 'dq77'^ 'dv78' 'dp78' 'dq78'^ 'dv79' 'dp79' 'dq79'^ 'dv80' 'dp80' 'dq80'^ 'dv81' 'dp81' 'dq81'^ 'dv82' 'dp82' 'dq82'^ 'dv83' 'dp83' 'dq83'^ 'dv84' 'dp84' 'dq84'^ 'dv85' 'dp85' 'dq85'^ 'dv86' 'dp86' 'dq86'^ 'dv87' 'dp87' 'dq87'^ 'dv88' 'dp88' 'dq88'^ 'dv89' 'dp89' 'dq89'^ 'dv90' 'dp90' 'dq90'^ 'dv91' 'dp91' 'dq91'^ 'dv92' 'dp92' 'dq92'^ 'dv93' 'dp93' 'dq93'^ 'dv94' 'dp94' 'dq94'^ 'dv95' 'dp95' 'dq95'^ 'dv96' 'dp96' 'dq96'^ 'dv97' 'dp97' 'dq97'^ 'dv98' 'dp98' 'dq98'^ 'dv99' 'dp99' 'dq99'^ 'dv100' 'dp100' 'dq100'^ 'dv101' 'dp101' 'dq101'^ 'dv102' 'dp102' 'dq102'^ 'dv103' 'dp103' 'dq103'^ 'dv104' 'dp104' 'dq104'^ 'dv105' 'dp105' 'dq105'^ 'dv106' 'dp106' 'dq106'^ 'dv107' 'dp107' 'dq107'^ 'dv108' 'dp108' 'dq108'^ 'dv109' 'dp109' 'dq109'^ 'dv110' 'dp110' 'dq110'^ 'dv111' 'dp111' 'dq111'^ 'dv112' 'dp112' 'dq112'^ 'dv113' 'dp113' 'dq113'^ 'dv114' 'dp114' 'dq114'^ 'dv115' 'dp115' 'dq115'^ 'dv116' 'dp116' 'dq116'^ 'dv117' 'dp117' 'dq117'^ 'dv118' 'dp118' 'dq118'^ 'dv119' 'dp119' 'dq119'^ 'dv120' 'dp120' 'dq120'^ 'dv121' 'dp121' 'dq121'^ 'dv122' 'dp122' 'dq122'^ 'dv123' 'dp123' 'dq123'^ 'dv124' 'dp124' 'dq124'^ 'dv125' 'dp125' 'dq125'^ 'dv126' 'dp126' 'dq126'^ 'dv127' 'dp127' 'dq127'^ 'dv128' 'dp128' 'dq128'^ 'dv129' 'dp129' 'dq129'^ 'dv130' 'dp130' 'dq130'^ 'dv131' 'dp131' 'dq131'^ 'dv132' 'dp132' 'dq132'^ 'dv133' 'dp133' 'dq133'^ 'dv134' 'dp134' 'dq134'^ 'dv135' 'dp135' 'dq135'^ 'dv136' 'dp136' 'dq136'^ 'dv137' 'dp137' 'dq137'^ 'dv138' 'dp138' 'dq138'^ 'dv139' 'dp139' 'dq139'^ 'dv140' 'dp140' 'dq140'^ 'dv141' 'dp141' 'dq141'^ 'dv142' 'dp142' 'dq142'^ 'dv143' 'dp143' 'dq143'^ 'dv144' 'dp144' 'dq144'^ 'dv145' 'dp145' 'dq145'^ 'dv146' 'dp146' 'dq146'^ 'dv147' 'dp147' 'dq147'^ 'dv148' 'dp148' 'dq148'^ 'dv149' 'dp149' 'dq149'^ 'dv150' 'dp150' 'dq150'*^ Other disk not in list (MUST be mounted)$eod$!$getdsk:1$zmenu/scroll/symbols sys$scratch:SDH_dsks.mnuscr$ choice = choice -1#$ if choice .eq. 0 then goto wrapup#$ if choice .ne. 0 then $aufmfg=" "$ if choice .eq. 151$ then$ ask dsk "Give disk name""$ if dsk .eqs. "" then goto getdsk6$ if f$getdvi(dsk,"MNT") .nes. "TRUE" then goto getdsk $ goto intac$ endif$ chcn=f$integer(choice)$ dp'chcn' = "*"$ dsk = dv'chcn'!$if dsk .eqs. "" then goto wrapup $goto intac$wildsk:$wild=1$dsk=f$device(,"DISK")!$if dsk .eqs. "" then goto wrapup5$if f$getdvi(dsk,"MNT") .nes. "TRUE" then goto wildsk$intac:$JTnm="JTA"+f$string(ndsk)+":"6$ccmd="$sysgen connect "+JTnm+"/noada/driver=JTdriver"1$if ndsk.eq.ndskst .and. f$getsyi("CPU") .ge. 128$then-$ccmd=ccmd-"JTdriver" + "sys$system:JTdriver"$endif $skfg=" " $fdfl=" " $fidsw=" " $kmon=" " $aufm=" "$ jta_listfile="" $set noon+$ jtauthmaint 'dsk'[000000]corimg.sys\%LIST3$ fidfl=f$edit(jta_listfile,"trim,collapse,upcase")$ fidfl=f$search(fidfl)/$ ffilfl=f$extract(0,f$locate(";",fidfl),fidfl)1$ if fidfl .nes. "" then fidsw="/FILENUM:"+Ffilfl$ pur 'ffilfl' $gndb=" "$ jta_listfile="" $set noon+$ jtauthmaint 'dsk'[000000]corimg.sys\%LIST3$ fidfl=f$edit(jta_listfile,"trim,collapse,upcase")$ fidfl=f$search(fidfl)/$ ffilfl=f$extract(0,f$locate(";",fidfl),fidfl)1$ if fidfl .nes. "" then fidsw="/FILENUM:"+Ffilfl $ aufm="*">$! Store the necessary command to generate the listing and the$! purge commands7$ autgna="$jtauthmaint "+dsk+"[000000]corimg.sys\%LIST"$ autpga="$purge "+Ffilfl $ aufmfg="*" $kmal=" "$kstr=""$ifrac=4$imin=10 $imax=100000 $ffgr="*" $fcnvl=66451)$if spcmd .eq. 0 then fcnvl = fcnvl - 512$zmlc=1$! Get the database created./$! That way we can protect them all at the end.4$if f$getdvi(dsk,"MNT") .nes. "TRUE" then goto fvmnu#$jtauthmaint:==$gcy$sys:jtauthmaint $set noon+$jtauthmaint 'dsk'[000000]corimg.sys\%PURGE)$jtauthmaint 'dsk'[000000]corimg.sys\Z-X+,$jtauthmaint 'dsk'[000000]corimg.sys\%DELETE$ if strswpop .nes. "SWAP"$ thenM$ ask qedit "Is this disk only a nearline disk softlink destination [Y/N][N]"<$if f$extract(0,1,f$edit(qedit,"upcase,collapse")) .eqs. "Y"$ then $fcnvl =65792 $goto xkyz$ endif$ endif$fvmnu:4$zmenu/POINTER="-->"/SYMBOLS/initial='zmlc'3 ?#6?[1;7m Safety / Safety DISK SETUP?[m 00:00:008 (Many sites will need at most to enter security key' and then select "Done this menu".)( ^ 'skfg' Enter security key for disk> ^ 'fdfl' Enter file of file IDs to load for kernel marking> ^ 'kmon' Examine only kernel-marked files for access tests? ^ 'aufm' Set to automatically kernel-mark all files on load> (This requires generating the file list at boot)9 ^ 'gndb' Generate filelist database and set to use itE ^ 'kmal' Act as if ALL files were kernel-marked (use if most are)/ ^ 'ffgr' Inhibit fragmentation on this disk ^ Quit, do nothing. ^ Done this menu, ^ HELP! Please explain this some more!$if choice .eq. 10$ then$type sys$inputHNormally, accept the defaults here and at most enter a disk security keyEand if you like, tell Safety to inhibit fragmentation (or not to; it toggles).CThe disk security key is just a string associated with the disk. ItAmust be given to set any file to change privileges or identifiers=of its process (so write it down and lock up the paper!) and Dshould not be divulged. This prevents such functions from being usedFunless someone knows this key. (Safety itself should be set to protectits startup script!)FSafety can also inhibit fragmentation on disks. If you select this, itBwill ask how to operate. Safety will do this by setting extends toBnormally be contiguous best try and by extending files by 1/Nth of@their current size (you pick the N, default being 4). Thus filesAgrow by decent amounts instead of tiny ones. This also boosts I/OFperformance; the boost has been measured as up to 30%, because OpenVMS5need not go to the disk bitmap so often to get space.ELeave the other options alone unless you have read and understood the3user manuals; the defaults here are generally best.$eod8$ ask xfubar "Type Return to return to disk setup menu>" $ goto fvmnu$ endif $zmlc=choice$if choice .eq. 8$ then$ close/nolog cfg$ exit$ endif$if choice .eq. 7$ then$ if ffgr .eqs. "*"$ then $ ffgr = " "$ else $ ffgr = "*"$if f$getsyi("cpu").gt.128$ thenL$ write sys$output "Warning: Do NOT use this function on a Spiralog volume." $ wait 0:0:05$ endif3$ ask sifrac "Enter fraction to extend file by 1/n"P$ if sifrac .nes. "" .and. f$integer(sifrac) .gt. 0 then ifrac=f$integer(sifrac)2$ ask simin "Enter min. file size to adjust, blks"L$ if simin .nes. "" .and. f$integer(simin) .gt. 0 then imin=f$integer(simin)5$ ask simin "Enter max size to force extend by, blks"L$ if simin .nes. "" .and. f$integer(simin) .gt. 0 then imax=f$integer(simin)$ endif $ goto fvmnu$ endif$if choice .eq. 1$ then$if skfg .eqs. " "$then-$ask skvl "Enter security key ( if none)"C$if skvl .eqs. "" .or. f$extract(0,1,skvl) .eqs. "@ SAFETY013.A ![EVERHART.JTDEMO]JT_SETUP.COM;141AX62;3u>P<" then goto xkyy,$kstr="/key:"+f$edit(skvl,"upcase,collapse") $skfg="*"$xkyy: $goto fvmnu$endif$if skfg .eqs. "*"$then $skfg=" "$kstr="" $goto fvmnu$endif$endif$if choice .eq. 2$then $fidsw = " " $fidfl=" ":$ask fidfl "Enter file of file IDs to load ( if none)"1$if fidfl .nes. "" .and. f$search(fidfl) .nes. ""$ then$ fidsw = "/FILENUM:"+FIDFL $ fdfl="*"$ endif $goto fvmnu$endif$if choice .eq. 3$then$if kmon .eqs. " "$ then$ fcnvl=328593)$if spcmd .eq. 0 then fcnvl = fcnvl - 512 $ kmon="*" $ kmal=" " $ goto fvmnu$ endif$if kmon .eqs. "*"$ then $ fcnvl=66449)$if spcmd .eq. 0 then fcnvl = fcnvl - 512 $ kmon=" " $ goto fvmnu$ endif$endif$if choice .eq. 4$ then$ if aufm .eqs. " "$ then<$! Use corimg.sys, a useless file that's on all VMS volumes.F$! We don't actually touch it here, but if we did it would do no harm.$ jta_listfile="" $set noon+$ jtauthmaint 'dsk'[000000]corimg.sys\%LIST3$ fidfl=f$edit(jta_listfile,"trim,collapse,upcase")$ fidfl=f$search(fidfl)/$ ffilfl=f$extract(0,f$locate(";",fidfl),fidfl)1$ if fidfl .nes. "" then fidsw="/FILENUM:"+Ffilfl$ purge 'ffilfl' $ aufm="*">$! Store the necessary command to generate the listing and the$! purge commands7$ autgna="$jtauthmaint "+dsk+"[000000]corimg.sys\%LIST"$ autpga="$purge "+Ffilfl $ aufmfg="*" $ goto fvmnu$ else $ aufmfg=" " $ aufm=" " $ fidsw=" " $ fidfl=" " $ goto fvmnu$ endif$endif$if choice .eq. 5$ then$ jta_listfile="" $set noon+$ jtauthmaint 'dsk'[000000]corimg.sys\%LIST3$ fidfl=f$edit(jta_listfile,"trim,collapse,upcase")$ fidfl=f$search(fidfl)/$ ffilfl=f$extract(0,f$locate(";",fidfl),fidfl)$ purge 'ffilfl'1$ if fidfl .nes. "" then fidsw="/FILENUM:"+Ffilfl $ gndb="*" $ goto fvmnu$endif$if choice .eq. 6$ then $ kmal="*" $ fcnvl=99217)$if spcmd .eq. 0 then fcnvl = fcnvl - 512 $ kmon=" " $ goto fvmnu$endif $if choice .eq. 9 then goto xkyz$xkyz:$ if vmldst .ne. 0$ then"$! enter multiple destinations now$ if ndsk .eq. ndskst$ thenI$! This is the first disk of the bunch, so we can form our logicals here. $strdsk = " "$strdsk = dsk - ":" $ choice=1 $ zactch=" "$zdpchx:$ chcn=f$integer(choice)$ zactch = dp'chcn'$ dp'chcn' = " ")$ if zactch .eqs. "*" then dp'chcn' = "I"$ choice = choice + 1%$ if choice .le. 150 then goto zdpchx $ mychcn=0$godsks:"$emit "Please select output disks" $wait 0:0:031$zmenu/scroll/symbols sys$scratch:JTM_dsks.mnuscr$ choice = choice -1$$ if choice .eq. 0 then goto dunitso$ chcn=f$integer(choice)$ dp'chcn' = "O"$ odsk = dv'chcn'#$if odsk .eqs. "" then goto dunitso%$if f$getdvi(odsk,"MNT") .nes. "TRUE"$ then@$ emit "%SDH-W-Notmounted Output disk must be mounted to select" $ goto godsks$ endif$! got a disk now...2$ ask idsv "Give directory to place shelved files"$ if idsv .nes. ""$ then$ on error then goto godsks2'$ open/write dsvt 'odsk''idsv'test.junk$ write dsvt "test"$ close/nolog dsvt$ delete 'idsv'test.junk.$ mychcn = mychcn + 1$ if mychcn .eq. 1$ then$ sdelsav=odsk+idsv $ fdelsav="*"3$ddmnm="sys$manager:JTM_o"+f$string(ndskst)+".oenv"$open/write d00d 'ddmnm'T$write d00d "$! Define symbols we use so they aren't from the external environment."$write d00d "$set:=set"$write d00d "$set noon"$write d00d "$del*ete:=delete"$write d00d "$copy:=copy"$write d00d "$write:=write"$write d00d "$inquire:=inquire"$write d00d "$if:=if"$write d00d "$back*up:=backup"$write d00d "$sysgen:=sysgen"$write d00d "$sysman:=sysman"$write d00d "$zmenu:=zmenu"$write d00d "$ass*ign:=assign"$write d00d "$def*ine:=define"$write d00d "$close:=close"$write d00d "$open:=open"$write d00d "$read:=read"$write d00d "$gosub:=gosub"$ endif$! Need assign to device$ ndvc=dsk - ":" $ mynum=" "$ mynum=f$fao("!ZW",mychcn)$ mytst="GH"+ndvc+"GDX"+mynum'$ ddddd="$ass/job "+odsk+idsv+" "+mytst$ write d00d ddddd$ goto dunitso $godsks2:/$ emit "%SDH-F-Cannot write to directory given" $ wait 0:0:03 $ goto godsks $dunitso:$ close/nolog d00d$ endif$ endif$ endifN$if skfg .eqs. " " then emit "%SDH-I-Nokey No security key for volume present"R$if skfg .eqs. " " then emit "Note: privs/ID/base-prio cannot be altered this dsk" $strdsk = " "$strdsk = dsk - ":"$strdsk = "JTD$" + strdskL$xcmd="$if f$device(""*JTA"+f$string(ndsk)+"*"") .nes. """" then goto xldJT"$xcmd=xcmd+f$string(ndsk)$write cfg xcmd$write cfg ccmd"$xyxxy="$xldJT"+f$string(ndsk)+":"$write cfg xyxxy$write sys$output " "$$write sys$output " ... working ..." $foost=""$ if ffgr .eqs. "*"$ thenD$! add 2 to fcnvl, use ifrac, imin, imax if inhibiting fragmentation$ fcnvl = fcnvl + 2Q$ foost = "/fract:"+f$string(ifrac)+"/min:"+f$string(imin)+"/max:"+f$string(imax)$ endif1$CCMD="$jtdmn/fcnmsk:"+f$string(fcnvl)+foost+kstrE$if ndsk .gt. ndskst then ccmd=ccmd+"/SHARE:JTA"+f$string(ndskst)+":"($if fidsw .nes. " " then ccmd=ccmd+fidsw'$ccmd=ccmd + "/mode:"+f$string(gblmode)"$cdcmd="$jtdmn/deas "+JTnm+" "+dsk@$! Pull in globally exempt images if a listfile exists for them.]$if f$search("gcy$sys:exempt.images") .nes. "" then ccmd=ccmd+"/exempt:gcy$sys:exempt.images"$ccmd=ccmd+" "+JTnm+" "+dsk?$! For the first disk of a group set the command file up first.$if ndsk .eq. ndskst$then5$ddmnm="sys$manager:SDH_d"+f$string(ndskst)+".daemon"4$dudmnm="sys$manager:SDH_d"+f$string(ndskst)+".undo"$open/write d1d 'dudmnm'$open/write d0d 'ddmnm'S$write d0d "$! Define symbols we use so they aren't from the external environment."$write d0d "$set:=set"$write d0d "$set noon"$write d0d "$del*ete:=delete"$write d0d "$copy:=copy"$write d0d "$write:=write"$write d0d "$inquire:=inquire"$write d0d "$if:=if"$write d0d "$back*up:=backup"$write d0d "$sysgen:=sysgen"$write d0d "$sysman:=sysman"$write d0d "$zmenu:=zmenu"$write d0d "$ass*ign:=assign"$write d0d "$def*ine:=define"$write d0d "$close:=close"$write d0d "$open:=open"$write d0d "$read:=read"$write d0d "$gosub:=gosub"S$write d1d "$! Define symbols we use so they aren't from the external environment."$write d1d "$set:=set"$write d1d "$set noon"$write d1d "$del*ete:=delete"$write d1d "$copy:=copy"$write d1d "$write:=write"$write d1d "$inquire:=inquire"$write d1d "$if:=if"$write d1d "$back*up:=backup"$write d1d "$sysgen:=sysgen"$write d1d "$sysman:=sysman"$write d1d "$zmenu:=zmenu"$write d1d "$ass*ign:=assign"$write d1d "$def*ine:=define"$write d1d "$close:=close"$write d1d "$open:=open"$write d1d "$read:=read"$write d1d "$gosub:=gosub"$$write d0d "$set comm gcy$sys:jtdmn"J$! Create a new filelist from the master database every time if requested.$write d0d "$set proc/priv=all"4$xddmnm="sys$manager:JTM_o"+f$string(ndskst)+".oenv",$write d0d "$define/job JTM$SWPOP ",strswpop4$write d0d "$if f$search("""+xddmnm+""") .nes. """""$write d0d "$then"$write d0d "$@"+xddmnm$write d0d "$endif"J$! Create a new filelist from the master database every time if requested.$if sdelsav .nes. ""$ then&$ttt="$assign/job "+sdelsav+" delsav:"$write d0d ttt$ endif*$if fidsw .nes. " " .and. aufmfg .eqs. "*"$ thenD$! Stash commands in config file to create a new filelist at startup$! (We purge the file too.)1$ write d0d "$jtauthmaint:==$gcy$sys:jtauthmaint"$ write d0d "$purge:=purge"$ write d0d autgna$ write d0d autpga$ endif7$! Set up a unique process name so we can recognize it./$dddd="$set proc/name=Sf"+dsk - ":" - "_" - "_"$write d0d ddddC$! Set up to create some system logicals so users can find out what4$! daemons are running & controlling what disks etc.J$! We will have to have a report procedure to get this information in userE$! readable form also. This will be better than trolling thru startup $! files to get the information.;$! We can also be sure the logicals get deleted at the end.;$! First let's get something that will refer to this server$ svunq="Saf"+f$string(ndskst)E$! Now we will build a logical string for various items: this processD$! name, this JT unit number, this disk name, functions enabled (the5$! function mask), and the PID of the server process.$! Use "svuws" as a work string/$! For server n, the following logicals exist:($! Logical SAFn_SRVPRCNM is process name'$! SAFn_SRVPID is process pidN$! SAFn_UDSKm is disk assigned to, for mth disk of this JT server n8$! SAFn_UJTm is JT unit assigned to mth disk:$! SAFn_UFCNMKm is function mask for this JT unit,$! fcnvl=fcnmsk used. gblmode is mode string+$ svuws="$ass/sys Sf"+dsk - ":" - "_" - "_"-$! Set up process name logical for the server$$ svuws = svuws+" "+svunq+"_SRVPRCNM$ write d0d svuws!$! Next, remember the process PID"$ mypid="'f$getjpi("""",""PID"")'"-$ svuws="$ass/sys "+mypid+" "+svunq+"_SRVPID"$ write d0d svuws"$! Now store the disk we are using8$ svuws="$ass/sys "+dsk+" "+svunq+"_UDSK"+f$string(ndsk)$ write d0d svuws5$! Now store the JT unit number we are using likewise8$ svuws="$ass/sys "+jtnm+" "+svunq+"_UJT"+f$string(ndsk)$ write d0d svuwsF$ svuws="$ass/sys "+f$string(fcnvl)+" "+svunq+"_UFCNMK"+f$string(ndsk)$ write d0d svuwsG$ svuws="$ass/sys "+f$string(gblmode)+" "+svunq+"_UGBMD"+f$string(ndsk)$ write d0d svuws6$!$c00c="$jtauthmaint "+dsk+"[000000]corimg.sys\%LIST"($!$if aufm .eqs. "*" then write d0d c00c'$if ignfiles .eqs. "" then ignfiles=" "0$write d0d "$assign """,ignfiles,""" gcy$delexc" $savccmd=ccmd$!write d0d ccmd/$! Generate deassign cmd to finish clean exits."$zzd0d="$JTdmn/deas "+JTnm+" "+dsk$write d1d zzd0d$dudc="$@"+dudmnm $sv2ccmd=dudc$!write d0d dudc$!write d0d "$logo"$sv3ccmd="$logo"$!close/nolog d0d,$write cfg "$define/job JTM$SWPOP ",strswpop,$write cfg "$define/sys JTM$SWPOP ",strswpop$write cfg "$rdyctr=0"@$if edelsav .eqs. "*" then write cfg "$ass/sys ""Y"" gcy$delsav"$if fparan .eqs. "*"$ then)$ttt="$assign/sys/exec ""OK"" GCY$PARAND"$ write cfg ttt($ttt="assign/sys/exec ""OK"" GCY$PARAND"$'ttt'$ endif$write cfg "$set noon"($write cfg "$install:==$install/command"<$write cfg "$install add gcy$sys:jtdelmaint.exe/priv=cmkrnl"=$write cfg "$install add gcy$sys:jtauthmaint.exe/priv=cmkrnl"9$write cfg "$install add gcy$sys:jtexfix.exe/priv=cmkrnl"9$write cfg "$install add gcy$sys:jtexset.exe/priv=cmkrnl"$write cfg "$set on"u$write cfg "$rdeau:==run/detach/buffer_limit=64000/enqueue_limit=60/io_direct=50/prio=4/io_buffered=50/file_limit=30"q$write cfg "$rdetsw:=='rdeau'/job_table_quo=1024/maximum_work=1500/page_file=15000/uic=[1,4]/subprocess_limit=10"S$write cfg "$rdetsw/input=",ddmnm,"/out=sys$manager:JTM_d0.log sys$system:loginout"[$!write cfg "$run/deta/auth/input=",ddmnm,"/out=sys$manager:SDH_d0.log sys$system:loginout"K$! Arrange to let the daemon get started before other disks start using it.H$! Test for a bit to ensure daemon comes online. Give up after 1 minute.>$! (Note: preceding assumes decent memory, quotas for daemon.)$write cfg "$wtlopp:"$write cfg "$wait 0:0:15"$write cfg "$rdyctr=rdyctr+1"R$write cfg "$ if (f$getdvi(""JTA",f$string(ndskst),":"",""sts"") .and. 16) .eq. 0"$write cfg "$ then"$! write d0d svuws1$write cfg "$ if rdyctr .lt. 15 then goto wtlopp"$write cfg "$ endif"R$write cfg "$ if (f$getdvi(""JTA",f$string(ndskst),":"",""sts"") .and. 16) .eq. 0"$write cfg "$ then"J$write cfg "$ write sys$output ""%SDH-F-daemon failed to start properly"""$write cfg "$ exit 2"$write cfg "$ endif"$endif$ if ndsk.gt.ndskst$ then5$ddmnm="sys$manager:SDH_d"+f$string(ndskst)+".daemon"4$dudmnm="sys$manager:SDH_d"+f$string(ndskst)+".undo"$open/append d1d 'dudmnm'$!open/append d0d 'ddmnm'"$! Now store the disk we are using8$ svuws="$ass/sys "+dsk+" "+svunq+"_UDSK"+f$string(ndsk)$ write d0d svuws5$! Now store the JT unit number we are using likewise8$ svuws="$ass/sys "+jtnm+" "+svunq+"_UJT"+f$string(ndsk)$ write d0d svuwsF$ svuws="$ass/sys "+f$string(fcnvl)+" "+svunq+"_UFCNMK"+f$string(ndsk)$ write d0d svuwsG$ svuws="$ass/sys "+f$string(gblmode)+" "+svunq+"_UGBMD"+f$string(ndsk)$ write d0d svuws$ write cfg ccmd$ write d1d cdcmd$! close/nolog d0d$ close/nolog d1d$ endif $ndsk=ndsk+1 $goto getdsk$wrapup:$close/nolog d1d$write d0d savccmd$write d0d sv2ccmd$write d0d "$logo"$close/nolog d0d&$copy gcy$sys:jtpurge.com sys$manager:C$write cfg "$submit/after=tomorrow/noprint sys$manager:jtpurge.com"$close/nolog cfg)$open/write cfg sys$manager:SDH_login.comS$write cfg "$! Define symbols we use so they aren't from the external environment."$write cfg "$set:=set"$write cfg "$set noon"$write cfg "$del*ete:=delete"$write cfg "$copy:=copy"$write cfg "$write:=write"$write cfg "$inquire:=inquire"$write cfg "$if:=if"$write cfg "$back*up:=backup"$write cfg "$sysgen:=sysgen"$write cfg "$sysman:=sysman"$write cfg "$zmenu:=zmenu"$write cfg "$ass*ign:=assign"$write cfg "$def*ine:=define"$write cfg "$close:=close"$write cfg "$open:=open"$write cfg "$read:=read"$write cfg "$gosub:=gosub"X$! Fullscreen security mark utility (file selection fullscreen; also marking fullscreen)0$write cfg "$markSDH:==@sys$manager:jt_sel_mark"Q$! no fullscreen select security mark (file selection by cmd, marking fullscreen)2$write cfg "$markfile:==@sys$manager:jtmark_files"0$write cfg "$jtauthorize:==$gcy$sys:jtauthorize"#$! Set an access password on a file7$write cfg "$filepassword:==@gcy$sys:jtenter_passwords"($write cfg "$jtdolog:==$gcy$sys:jtdolog".$! Undelete files whose names contain a string-$write cfg "$undelete:==@gcy$sys:jtundeluser":$! move files to secondary storage, with fullscreen select0$write cfg "$moveHSm:==@sys$manager:JT_sel_move"A$! move files to secondary storage, no fullscreen select of files2$write cfg "$movefile:==@sys$manager:JTmove_files"9$! Command to delete a file NOW with no undelete possible*$write cfg "$expunge:==@gcy$sys:jtexpunge"@$! Make a softlink from one file&version to another file&version $aqt:= """:$write cfg "$softl*ink:==@gcy$sys:jt_softlink",aqt,aqt,aqtC$! Report assignments or report and then allow shutdown of a server/$write cfg "$JTReport:==@gcy$sys:JT_REPTACTIVE"0$write cfg "$JTKillServer:==@gcy$sys:JT_REPTCTL"$fmds=f$string(gblmode)%$write cfg "$define jtdel$mode ",fmds$close/nolog cfg($! Protect the SDH databases by default./$! All are created as *.GDB in GCY$CM area now.$on error then goto dunprt2$set on$ptktl:$aaa=f$search("gcy$cm:*.gdb")$if aaa .nes. ""$ then$$ jtauthmaint:==$gcy$sys:jtauthmaint$ jtauthmaint 'aaa'\I+N*<*]JTAUTHMAINT.EXE;*,*]JTDMN.EXE;*,*]JTDOLOG.EXE;*,*]JTRPLACE.EXE;*,*]BACKUP.EXE*>O<*>Q*X+Z-V $ goto ptktl$ endif $ dunprt2: $set noon#$ set prot=(wo) gcy$sys:jtexfix.exeA$! jxfix is run from jtauthmaint, jtdmn, nowhere else, via spawn.H$! Have it protect itself since we don't know which account will be used$! $ write sys$output -"M<>[?4l[?8h",-"(B)07[?6l8"$emit "Add the line" $emit " "/$EMIT " $@SYS$MANAGER:SDH_STARTUP.COM" $emit " "H$emit " to your SYSTARTUP_V5.COM file now. The script can be run from"6$emit " a fully privileged account now if you wish." $emit " "$emit "Add the line" $emit " "%$emit " $@SYS$MANAGER:SDH_LOGIN.COM" $emit " "I$EMIT " to your SYLOGIN.COM file also to define symbols needed for SDH" $emit " "$exit$gen_dsk_syms:5$! generate symbols dv1 to dv150, mounted disks first*$! with disk names of di@ SAFETY013.A ![EVERHART.JTDEMO]JT_SETUP.COM;14174uosks on the system.9$! Fills these in with (no more disks...) message if none$n=0$SL1:$n = n+1$$dv'n' = "(No more disks on system)" $dp'n'=" "$dq'n' = ""$if n .lt. 150 then goto SL1$n=0$sl2: $ n = n+1$xsl2:$ dnm=f$device("*","DISK")$ if dnm .eqs. "" then goto sl3G$ if f$getdvi(dnm,"MNT") .nes. "TRUE" .and. dnm .nes. "" then goto xsl2G$!!! **** Next 2 lines omit system disks, a V1 hack to simplify testing3$! (It is better not to delprotect the system disk)'$! dnmsyst=dnm+"[000000]VMS$COMMON.DIR"/$! if f$search(dnmsyst) .nes. "" then goto xsl2 $ dv'n' = dnm $ dq'n' = f$getdvi(dnm,"volnam")$ssl2:$ if n .lt. 150 then goto sl2$sl3: $n = n - 1$tsl2: $ n = n+1$xtsl2:$ dnm=f$device("*","DISK") $ if dnm .eqs. "" then goto tsl3H$ if f$getdvi(dnm,"MNT") .eqs. "TRUE" .and. dnm .nes. "" then goto xtsl2 $ dv'n' = dnm$tssl2:$ if n .lt. 150 then goto tsl2$tsl3:$hiJT=n$return"*[EVERHART.JTDEMO]JT_SOFTLINK.COM;5+,. / 4R - 0123 KPWO56V*7 >!89GHJ $! JT_SOFTLINK.COM$!A$! This script should be installed with a command definition like)$! SOFTL*INK :== @GCY$SYS:JT_SOFTLINK """$!1$! so that it will receive the full command line.E$! This routine will parse the command which is expected to look likeF$! Softlink/TO:device[directory]file.typ srcdevice:[srcdir]srcfile.typ $! or like0$! softlink/REMOVE srcdevice:[srcdir]srcfile.typ$! $ srcfil = ""#$ if f$edit(p1,"collapse") .eqs. ""$ thenQ$ write sys$output "Usage: Softlink/TO:dev:[dir]dfile srcdev:[srcdir]srcfile.typ"P$ write sys$output "where srcfile.typ is the file on which the softlink will be"R$ write sys$output "and dfile is the file which will be opened instead due to the"$ write sys$output "softlink."$ exit$ endif6$ wrkcmd = f$edit(p1,"upcase,compress,trim,uncomment")$ dstfil = wrkcmd$ srcfil=dstfil$ ! must have /TO: in there$ ilo=f$locate("/TO:",dstfil)$ idel = f$locate("/RE",dstfil)?$ if ilo .ge. f$length(dstfil) .and. idel .ge. f$length(dstfil)$ then?$ write sys$output "%SOFTL- F - NODST - No /TO: file specified"$ exit$ endif$ if idel .ge. f$length(dstfil)$ then1$ dstfil = f$extract(ilo,f$length(wrkcmd),wrkcmd)$ srcfil = dstfil$ ispc = f$locate(" ",dstfil)$ if ispc .ge. f$length(dstfil)$ thenA$ write sys$output "%SOFTL- F - NOSRC - No source file specified"$ exit$ endif#$ dstfil = f$extract(0,ispc,dstfil)"$ dstfil=f$edit(dstfil,"collapse")$ dstfil = dstfil - "/TO:"2$ srcfil = f$extract(ispc,f$length(srcfil),srcfil)"$ srcfil=f$edit(srcfil,"collapse")&$ JTauthmaint :== $gcy$sys:JTauthmaint$ src = f$search(srcfil)$ if src .eqs. "" $ then@$ write sys$output "%SOFTL-F-NXSRC - Source file does not exist"$ exit$ endif$ dst = f$search(dstfil)$ if dst .eqs. "" $ then>$ write sys$output "%SOFTL-F-NXDST - /TO: file does not exist"$ exit$ endif$ JTauthmaint 'src'\H<>X+$ JTauthmaint 'src'\%DELETE$ JTauthmaint 'src'\H<'dst'>$ exit$ endif5$! Handle the /del version so we can remove softlinks$ ispc = f$locate(" ",dstfil)$ if ispc .ge. f$length(dstfil)$ thenA$ write sys$output "%SOFTL- F - NOSRC - No source file specified"$ exit$ endif2$ srcfil = f$extract(ispc,f$length(srcfil),srcfil)"$ srcfil=f$edit(srcfil,"collapse")&$ JTauthmaint :== $gcy$sys:JTauthmaint$ src = f$search(srcfil)$ if src .eqs. "" $ then@$ write sys$output "%SOFTL-F-NXSRC - Source file does not exist"$ exit$ endif$ JTauthmaint 'src'\H<>X+$ JTauthmaint 'src'\%DELETE $! now done!*[EVERHART.JTDEMO]KITINSTAL.COM;45+,.$/ 4W$$- 0123 KPWO%56@֞7l/֞89GHJ.'$ ! Close all [potentially] open files.$ !$ WS := WRITE SYS$OUTPUT$ CLOSE /NOLOG KIT_DATA$ !$ ! Take care of interrupts$ !3$ ON CONTROL_Y THEN GOTO CLEANUP_AND_EXIT_CONTROL_Y$ !!$ ! Dispatch to error processing.$ !3$ ON WARNING THEN GOTO CLEANUP_AND_EXIT_WITH_STATUS$ !#$ ! Determine the course of action.$ !.$ IF P1 .EQS. "VMI$_INSTALL" THEN GOTO INSTALL&$ IF P1 .EQS. "VMI$_IVP" THEN GOTO IVP3$ IF F$EXTRACT(0,5,P1) .EQS. "HELP_" THEN GOTO 'P1'$ EXIT VMI$_UNSUPPORTED$ !$ ! Install the product.$ ! $INSTALL:$ $ IVP = FALSE"$ VMI$CALLBACK CHECK_VMS_VERSION - GCY$VERSION "054"+$ MODIFY_STARTUP_DB_AVAILABLE = GCY$VERSION$ REQUIRED_SPACE = 8000$ SAFETY_SPACE = 1400$ VERSION = "050"+$ WD = "IF VMI$DEBUG THEN WRITE SYS$OUTPUT"$"$ VMI$CALLBACK CHECK_VMS_VERSION - GCY$VERSION "''VERSION'"%$ IF GCY$VERSION THEN GOTO VERSION_OK$ !#$ ! Indicate wrong version and exit$ !$WRONG_VERSION:$$ VMI$CALLBACK MESSAGE - E VERSION -B "This kit must be installed on an existing VMS''VERSION' system."$$ GOTO CLEANUP_AND_EXIT_WITH_FAILURE$ $VERSION_OK:$$ !-$ ! Check for disk space, exit if not enough.$ !&$ VMI$CALLBACK CHECK_NET_UTILIZATION - GCY$SPACE 'REQUIRED_SPACE'<$ IF .NOT. GCY$SPACE THEN GOTO CLEANUP_AND_EXIT_WITH_FAILURE$ !#$ ! Validate all sysgen parameters.$ !$ !/$ ! Set up for a conditional safe installation.$ !$ VMI$CALLBACK SET -" SAFETY CONDITIONAL 'SAFETY_SPACE'$ !($ ! Restore secondary save sets, if any.$ !$RESTORE_SECONDARY_SAVESET:$$ !$ ! Check for purging and IVP.$ !$ VMI$CALLBACK SET - PURGE ASK&$ IF IVP THEN VMI$CALLBACK SET IVP ASK$ !8$ ! Get the system startup command procedure parameters.$ !$1000$:3$ ON WARNING THEN GOTO CLEANUP_AND_EXIT_WITH_STATUS/$ XXX = F$TRNLNM("EACF_SYS","LNM$SYSTEM_TABLE")3$ IF XXX .EQS. "" THEN XXX = "SYS$SYSDEVICE:[EACF]"W$ write sys$output "Note: Put Safety code somewhere other than sys$system if possible."$ VMI$CALLBACK ASK GCY$SYS -/ "Enter directory for Safety programs" - "''XXX'" - DSZ ""?$ IF GCY$SYS .EQS. "^Z" THEN GOTO CLEANUP_AND_EXIT_WITH_FAILURE$ DEFINE EACF_SYS 'GCY$SYS'$ assign 'gcy$sys' gcy$sys:$$ assign/sys/exec 'gcy$sys' gcy$sys: $ set noon<$ write sys$output "Creating directory if it does not exist"$ crea/dir 'gcy$sys'$ set on$1010$:$$1020$:3$ ON WARNING THEN GOTO CLEANUP_AND_EXIT_WITH_STATUS$$ VMI$CALLBACK ASK GCY_GT_INTERNET -F "Can this system send to and receive mail from the Internet" - "N" - DBZ ""G$ IF GCY_GT_INTERNET .EQS. "^Z" THEN GOTO CLEANUP_AND_EXIT_WITH_FAILURE*$ IF .NOT. GCY_GT_INTERNET THEN GOTO 1040$$$1030$:3$ ON WARNING THEN GOTO CLEANUP_AND_EXIT_WITH_STATUS$ TYPE SYS$INPUT:$ DECK)The Internet address for EACF Support is: support@GCE.ComGPlease enter the VMSMail address necessary to reach support@GCE.MV.Com.$ EOD#$ VMI$CALLBACK ASK GCY_GT_SUPPORT - "VMSMail address is" - "Support@GCE.Com" - DSZ "".$ IF GCY_GT_SUPPORT .EQS. "^Z" THEN GOTO 1020$$ xxx = GCY_GT_SUPPORT$ gosub doubleQuote$ GCY_GT_SUPPORT == yyy$$1040$:$ WRITE SYS$OUTPUT ""8$ WRITE SYS$OUTPUT "No further questions will be asked."$ WRITE SYS$OUTPUT ""$ !%$ ! Create the necessary directories.$ !$ !N$ ! Construct the system startup command procedure that defines the per system$ ! environment.$ !J$ ! Add all identifiers BEFORE files are delivered (which may need to have$ ! acls set.)$ !$ ! Link the executable images.=$! (Note: this is for the VAX version and is done to simplify!$! distribution for the moment.) $oldloc=f$environment("default")$set def vmi$kwd$if f$getsyi("cpu") .lt. 128 $ then !vax $set noon$delete *.obj_a.L$! Use *.obj (vax/vms V6.1 compile) unless it looks like this VMS vers is V5$delete *.obj_a*.$delete *.exe_a*.$set on2$if f$extract(1,3,f$getsyi("version")) .ges. "6.2"$then$ copy *.obj_vax62 *.obj $ pur *.obj$ del *.obj_vax62.$endif2$if f$extract(1,3,f$getsyi("version")) .ges. "7.1"$then$ copy *.obj_vax71 *.obj $ pur *.obj$ del *.obj_vax71.$endif0$if f$extract(1,1,f$getsyi("version")) .lts. "6"$then $! VMS V5.x;$! Get object files compiled under VMS 5.5-2 and use those.$copy *.obj_vax5 *.obj $pur *.obj$endif8$if f$search("*.obj_vax5") .nes. "" then del *.obj_vax5.:$if f$search("*.obj_vax62") .nes. "" then del *.obj_vax62. $link jtdolog$link jtsavspc $set noon$macro prcarmor$set comm/obj prcarmor_cld.cld:$link/notrace prcarmor+prcarmor_cld+sys$system:sys.stb/sel$link/notrace forcexM$write sys$output "Note: a `%LINK-W-USRTFR...` message is normal, not an err"3$link jtdriver+sys$system:sys.stb/sel+sys$input/optbase=0$set onM$link/notrace jtdmn+jtlic+jtopn+jtoprmsg+jttrnlnm+jtdeldo+jtgetmrk+jtlicace+-B jted+jtspawn+jtsubprc1+jtsubprc2+jtsubprc3+sys$system:sys.stb/sel$link jtrplace+jtmodace+jtauthm4$link/notrace jtdelmaint+jted+sys$system:sys.stb/sel,$link/notrace jtexfix+sys$system:sys.stb/sel?$link/notrace jtexset+jtoprmsg+jtemitlog+sys$system:sys.stb/selO$link/notrace jtauthmaint+jtmodace+jtauthm+jtoprmsg+jted+sys$system:sys.stb/sel@$link/notrace jtexempt+jtemitlog+jtoprmsg+sys$system:sys.stb/sel@$link/notrace jtexedel+jtemitlog+jtoprmsg+sys$system:sys.stb/sel $set noon$rename jtfildel.com fildel.com$copy jtfilsav.com filsav.com$copy jtfilrst.com filrst.com$copy jtfiltall.com filtall.com!$copy jtfilundel.com filundel.com$copy jtmakspc.com makspc.com'$copy jtdel_shelved.com del_shelved.com$else$!AXPG$! we have *.obj_axp6 for VMS 6.x on AXP and *.obj_a for vms 7.x on AXPE$! except jtdriver_S264.obj_a is needed to be renamed to jtdriver.obj$ vrs=f$getsyi("version")1$ if f$extract(0,1,vrs) .nes. "V" then vrs="V7.1"!$ if f$extract(1,1,vrs) .eqs. "6"$then $ del *.obj.$ del *.obj_v*.$ rename *.obj_axp6 *.obj$else$! presume if not V6 it's V7 $ del *.obj.$ rename *.obj_a *.obj!$ copy forcex.obj_axp6 forcex.obj%$ copy JTDRIVER_S264.OBJ jtdriver.obj $ pur *.obj$endif $ del *.exe.$ rename *.exe_a *.exe$rename jtfildel.com fildel.com#$link/notrace/sysexe=select jtexfix6$link/notrace/sysexe=select jtexset+jtoprmsg+jtemitlog$copy jtfilsav.com filsav.com$copy jtfilrst.com filrst.com!$copy jtfilundel.com filundel.com$copy jtmakspc.com makspc.com$copy jtfiltall.com filtall.com'$copy jtdel_shelved.com del_shelved.com$link/notrace jtdolog$link/notrace jtsavspc$@jtdriverx.lnkR$link/notrace/nonative/sysexe=select jtdmn+jtlic+jtopn+jtoprmsg+jttrnlnm+jtdeldo+- jted+jtgetmrk+jtlicace+-& jtspawn+jtsubprc1+jtsubprc2+jtsubprc3'$link/notrace jtrplace+jtmodace+jtauthm+$link/notrace/sysexe=select jtdelmaint+jtedF$link/notrace/sysexe=select jtauthmaint+jtmodace+jtauthm+jtoprmsg+jted@$link/notrace/nonative/sysexe=select jtexempt+jtemitlog+jtoprmsg@$link/notrace/nonative/sysexe=select jtexedel+jtemitlog+jtoprmsg $set noon$macro prcarmor$set comm/obj prcarmor_cld.cld1$link/notrace/sysexe=select prcarmor+prcarmor_cld$link/notrace forcex$endif$set def 'oldloc'$ !$ set on $oldloc=f$environment("default")$set def vmi$kwd$copy zmenu.cld zmenu.cldx$copy zmenu.exe zmenu.exex($copy zmenu_scroll.exe zmenu_scroll.exex$set def 'oldloc'$ !($ ! Set up access to the kit data files.$ !+$VMI$CALLBACK PROVIDE_DCL_COMMAND JTDMN.CLD-$VMI$CALLBACK PROVIDE_DCL_COMMAND jtexfix.cld-$VMI$CALLBACK PROVIDE_DCL_COMMAND jtexset.cld)$VMI$CALLBACK PROVIDE_DCL_HELP JTHELP.HLP;$VMI$CALLBACK PROVIDE_FILE EACF_FLSCLD JTDMN.cld "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSCLD "[1,4]" "s:rwed,o:rwed,g:re,w:re"=$VMI$CALLBACK PROVIDE_FILE EACF_FLACLD jtexfix.exe "gcy$sys:"B$VMI$CALLBACK SECURE_FILE EACF_FLACLD "[1,4]" "s:rwed,o:rwed,g:re"=$VMI$CALLBACK PROVIDE_FILE EACF_FLBCLD jtexset.exe "gcy$sys:"B$VMI$CALLBACK SECURE_FILE EACF_FLBCLD "[1,4]" "s:rwed,o:rwed,g:re"F$VMI$CALLBACK PROVIDE_FILE EACF_FLSCZ JTenter_passwords.com "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSCZ "[1,4]" "s:rwed,o:rwed,g:re,w:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSCL2 JTEXEMPT.cld "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSCL2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"8$vmi$callback provide_file pcamm prcarmor.exe "gcy$sys:"A$vmi$callback secure_file pcamm "[1,4]" "s:rwed,o:rwed,g:re,w:re"6$vmi$callback provide_file pcafx forcex.exe "gcy$sys:"A$vmi$callback secure_file pcafx "[1,4]" "s:rwed,o:rwed,g:re,w:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSCL2 JTEXEDEL.cld "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSCL2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"A$VMI$CALLBACK PROVIDE_FILE EACF_FLSTY2 del_shelved.com "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSTY2 "[1,4]" "s:rwed,o:rwed,g:re,w:re";$VMI$CALLBACK PROVIDE_FILE EACF_FLSEXE jtdmn.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEXE "[1,4]" "s:rwed,o:rwed,g:re,w:re">$VMI$CALLBACK PROVIDE_FILE EACF_FQSEXE jtsavspc.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FQSEXE "[1,4]" "s:rwed,o:rwed,g:re,w:re"A$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX2 jtauthmaint.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEX2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"=$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX3 jtdolog.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEX3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"@$VMI$CALLBACK PROVIDE_FILE EACF_FLSFX3 jtdelmaint.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSFX3 "[1,4]" "s:rwed,o:rwed,g:re,w:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX4 jtexedel.exe "gcy$sys:"B$VMI$CALLBACK SECURE_FILE EACF_FLSEX4 "[1,4]" "s:rwed,o:rwed,g:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX5 jtexempt.exe "gcy$sys:"B$VMI$CALLBACK SECURE_FILE EACF_FLSEX5 "[1,4]" "s:rwed,o:rwed,g:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX6 jtrplace.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEX6 "[1,4]" "s:rwed,o:rwed,g:re,w:re"K$VMI$CALLBACK PROVIDE_FILE EACF_FLSEY7 jtdelmaint.doc "sys$common:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEY7 "[1,4]" "s:rwed,o:rwed,g:re,w:re"L$VMI$CALLBACK PROVIDE_FILE EACF_FLSEF7 jtauthmaint.doc "sys$common:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEF7 "[1,4]" "s:rwed,o:rwed,g:re,w:re"<$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX8 cswing.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEX8 "[1,4]" "s:rwed,o:rwed,g:re,w:re":$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP1 file.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP1 "[1,4]" "s:rwed,o:rwed,g:re,w:re":$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP3 find.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"E$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP4 find.hlp "sys$common:[syshlp]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP4 "[1,4]" "s:rwed,o:rwed,g:re,w:re"E$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP5 file.hlp "sys$common:[syshlp]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP5 "[1,4]" "s:rwed,o:rwed,g:re,w:re"M$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP6 jtmark_files.com "sys$common:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP6 "[1,4]" "s:rwed,o:rwed,g:re,w:re"L$VMI$CALLBACK PROVIDE_FILE HSM_FLSEP6 jtmove_files.com "sys$common:[sysmgr]"F$VMI$CALLBACK SECURE_FILE HSM_FLSEP6 "[1,4]" "s:rwed,o:rwed,g:re,w:re"L$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP7 jt_sel_mark.com "sys$common:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP7 "[1,4]" "s:rwed,o:rwed,g:re,w:re"K$VMI$CALLBACK PROVIDE_FILE HSM_FLSEP7 jt_sel_move.com "sys$common:[sysmgr]"F$VMI$CALLBACK SECURE_FILE HSM_FLSEP7 "[1,4]" "s:rwed,o:rwed,g:re,w:re"G$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP8 jteacf.doc "sys$common:[syshlp]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP8 "[1,4]" "s:rwed,o:rwed,g:re,w:re"@ SAFETY013.A ![EVERHART.JTDEMO]KITINSTAL.COM;45;6W$>I$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP9 jt_setup.com "sys$common:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP9 "[1,4]" "s:rwed,o:rwed,g:re,w:re"M$!VMI$CALLBACK PROVIDE_FILE DPS_FLSEP9 jt_setup_del.com "sys$common:[sysmgr]"G$!VMI$CALLBACK SECURE_FILE DPS_FLSEP9 "[1,4]" "s:rwed,o:rwed,g:re,w:re"N$!VMI$CALLBACK PROVIDE_FILE DPS_FLSER9 jt_setup_eacf.com "sys$common:[sysmgr]"G$!VMI$CALLBACK SECURE_FILE DPS_FLSER9 "[1,4]" "s:rwed,o:rwed,g:re,w:re"M$!VMI$CALLBACK PROVIDE_FILE DPS_FLSES9 jt_setup_hsm.com "sys$common:[sysmgr]"G$!VMI$CALLBACK SECURE_FILE DPS_FLSES9 "[1,4]" "s:rwed,o:rwed,g:re,w:re"5$vmi$callback provide_file cmf1 fildel.com "gcy$sys:"@$VMI$CALLBACK SECURE_FILE cmf1 "[1,4]" "s:rwed,o:rwed,g:re,w:re"5$vmi$callback provide_file cmf2 filrst.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"5$vmi$callback provide_file cmf3 filsav.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"6$vmi$callback provide_file cnf3 filtall.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cnf3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"7$vmi$callback provide_file cmf4 filundel.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf4 "[1,4]" "s:rwed,o:rwed,g:re,w:re"5$vmi$callback provide_file cmf5 makspc.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf5 "[1,4]" "s:rwed,o:rwed,g:re,w:re"8$vmi$callback provide_file cmf6 jtexpunge.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf6 "[1,4]" "s:rwed,o:rwed,g:re,w:re"6$vmi$callback provide_file cmf7 jtpurge.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf7 "[1,4]" "s:rwed,o:rwed,g:re,w:re":$vmi$callback provide_file cmf8 jtundeluser.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf8 "[1,4]" "s:rwed,o:rwed,g:re,w:re"G$VMI$CALLBACK PROVIDE_FILE EACF_FRDV JTDRIVER.EXE "sys$common:[sysexe]"E$VMI$CALLBACK SECURE_FILE EACF_FRDV "[1,4]" "s:rwed,o:rwed,g:re,w:re"9$VMI$CALLBACK PROVIDE_FILE EAF_ZMCL ZMENU.CLD "gcy$sys:"E$VMI$CALLBACK SECURE_FILE EAF_ZMCL "[1,4]" "s:rwed,o:rwed,g:re,w:re"9$VMI$CALLBACK PROVIDE_FILE EAF_ZMEX ZMENU.EXE "gcy$sys:"E$VMI$CALLBACK SECURE_FILE EAF_ZMEX "[1,4]" "s:rwed,o:rwed,g:re,w:re"A$VMI$CALLBACK PROVIDE_FILE EAF_ZMEX2 ZMENU_SCROLL.EXE "gcy$sys:"F$VMI$CALLBACK SECURE_FILE EAF_ZMEX2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"B$VMI$CALLBACK PROVIDE_FILE EACF_FLSD EACF_USER_MAN.TXT "sys$help:"F$VMI$CALLBACK SECURE_FILE EACF_FLSD "[1,4]" "s:rwed,o:rwed,g:re,w:re"7$vmi$callback provide_file dmf2 JTfilrst.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE dmf2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"7$vmi$callback provide_file dmf3 JTfilsav.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE dmf3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"7$vmi$callback provide_file cmf6 JTmakspc.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf6 "[1,4]" "s:rwed,o:rwed,g:re,w:re";$vmi$callback provide_file cmf7 JTfilsavmdsk.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf7 "[1,4]" "s:rwed,o:rwed,g:re,w:re";$vmi$callback provide_file cmf8 JTfilrstmdsk.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf8 "[1,4]" "s:rwed,o:rwed,g:re,w:re"=$vmi$callback provide_file cmf9 JTspace_tailor.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf9 "[1,4]" "s:rwed,o:rwed,g:re,w:re";$vmi$callback provide_file cmf10 JT_softlink.com "gcy$sys:"B$VMI$CALLBACK SECURE_FILE cmf10 "[1,4]" "s:rwed,o:rwed,g:re,w:re"8$vmi$callback provide_file cmf11 JTrptspc.com "gcy$sys:"B$VMI$CALLBACK SECURE_FILE cmf11 "[1,4]" "s:rwed,o:rwed,g:re,w:re"8$vmi$callback provide_file cmf12 JTcommand.doc sys$help:=$VMI$CALLBACK SECURE_FILE cmf12 "[1,4]" "s:rwed,o:rwed,g:re"5$! Copy a few files to sys$help: to document all this$set prot=(wo:re)/def#$copy vmi$kwd:eacfman.txt sys$help:$pur sys$help:eacfman.txt&$copy vmi$kwd:jtundelete.txt sys$help:$pur sys$help:jtundelete.txt$$copy vmi$kwd:prcarmor.txt sys$help:$pur sys$help:prcarmor.txt$! $oldloc=f$environment("default")$set def vmi$kwd$copy zmenu.cldx zmenu.cld$copy zmenu.exex zmenu.exe($copy zmenu_scroll.exex zmenu_scroll.exe#$copy zmenu.cld sys$common:[sysexe]#$copy zmenu.exe sys$common:[sysexe]*$copy zmenu_scroll.exe sys$common:[sysexe]$! copy the reports $copy jt_REPTACTIVE.COM gcy$sys:$copy JT_REPTCTL.COM gcy$sys:,$set file/own=[1,4] sys$common:[sysexe]zm*.*<$set prot=(s:rwed,o:rwed,g:re,w:re) sys$common:[sysexe]zm*.* $pur sys$common:[sysexe]zmenu*.*$set def 'oldloc'$ !O$ ! Install the product startup files and identify the startup command file for$ ! IVP.$ !$INSTALL_STARTUP:$ TYPE SYS$INPUT:$ DECKETo complete the installation of the Extended Access Control Facility,Ayou must run the procedure SYS$MANAGER:JT_SETUP.COM (for a screenoriented setup).?Then you must also modify the file SYS$MANAGER:SYSTARTUP_V5.COM! or SYSTARTUP_VMS.COM to contain:: $ IF F$SEARCH("SYS$MANAGER:SDH_STARTUP.COM") .NES. "" -+ THEN @SYS$MANAGER:SDH_STARTUP.COMCYou should run the file GCY$SYS:JTSPACE_TAILOR.COM to set your siteBpolicy on how to make space when the disk fills and space is being monitored.CSome documents can be found in sys$help: prcarmor.doc, eacfman.txt,jtundelete.txt, jtcommand.doc.$ EOD$ !$ ! Move data files.$ ! $MOVE_DATA:$$ !$ ! Installation Complete.$ !$INSTALL_COMPLETE:$2$ IF GCY_GT_INTERNET THEN CALL DIALHOME/OUTPUT=NL:$ GOTO CLEANUP_AND_EXIT$$ !$ ! Run the IVP, if one exists.$ !$IVP:$$ EXIT $STATUS$CLEANUP_AND_EXIT_CONTROL_Y:$ VMI$CALLBACK CONTROL_Y$ STATUS = VMI$_FAILURE $ GOTO CAE10$$$CLEANUP_AND_EXIT_WITH_STATUS:$ STATUS = $STATUS $ GOTO CAE10$$$CLEANUP_AND_EXIT_WITH_FAILURE:$ STATUS = VMI$_FAILURE $ GOTO CAE10$$$CLEANUP_AND_EXIT:$ STATUS = VMI$_SUCCESS$$CAE10$: $ EXIT STATUS $ doubleQuote: $ yyy = ""$ i = f$locate("""",xxx)9$ 23016: if (.not.(i .ne. f$length(xxx))) then goto 23018)$ yyy = yyy + f$extract(0,i+1,xxx) + """"$ xxx = f$extract(i+1,999,xxx)$ 23017: i = f$locate("""",xxx) $ goto 23016 $ 23018: $ yyy = yyy + xxx$ return $ dialhome: subroutine $ set noon)$ define/user support "''GCY_GT_SUPPORT'"H$ mail/noself/subject="EACF installed at ''F$TIME()'" SYS$INPUT: support$ deckFGeneral Cybernetic Engineering EACF, DPS, etc. installed successfully.$ eod$ set on$ exit$ endsubroutine#*[EVERHART.JTDEMO]KITINSTAL.COMV12;1+,.$/ 4W$"- 0123 KPWO#56O޲7M޲89GHJ"'$ ! Close all [potentially] open files.$ !$ WS := WRITE SYS$OUTPUT$ CLOSE /NOLOG KIT_DATA$ !$ ! Take care of interrupts$ !3$ ON CONTROL_Y THEN GOTO CLEANUP_AND_EXIT_CONTROL_Y$ !!$ ! Dispatch to error processing.$ !3$ ON WARNING THEN GOTO CLEANUP_AND_EXIT_WITH_STATUS$ !#$ ! Determine the course of action.$ !.$ IF P1 .EQS. "VMI$_INSTALL" THEN GOTO INSTALL&$ IF P1 .EQS. "VMI$_IVP" THEN GOTO IVP3$ IF F$EXTRACT(0,5,P1) .EQS. "HELP_" THEN GOTO 'P1'$ EXIT VMI$_UNSUPPORTED$ !$ ! Install the product.$ ! $INSTALL:$ $ IVP = FALSE"$ VMI$CALLBACK CHECK_VMS_VERSION - GCY$VERSION "054"+$ MODIFY_STARTUP_DB_AVAILABLE = GCY$VERSION$ REQUIRED_SPACE = 8000$ SAFETY_SPACE = 1400$ VERSION = "050"+$ WD = "IF VMI$DEBUG THEN WRITE SYS$OUTPUT"$"$ VMI$CALLBACK CHECK_VMS_VERSION - GCY$VERSION "''VERSION'"%$ IF GCY$VERSION THEN GOTO VERSION_OK$ !#$ ! Indicate wrong version and exit$ !$WRONG_VERSION:$$ VMI$CALLBACK MESSAGE - E VERSION -B "This kit must be installed on an existing VMS''VERSION' system."$$ GOTO CLEANUP_AND_EXIT_WITH_FAILURE$ $VERSION_OK:$$ !-$ ! Check for disk space, exit if not enough.$ !&$ VMI$CALLBACK CHECK_NET_UTILIZATION - GCY$SPACE 'REQUIRED_SPACE'<$ IF .NOT. GCY$SPACE THEN GOTO CLEANUP_AND_EXIT_WITH_FAILURE$ !#$ ! Validate all sysgen parameters.$ !$ !/$ ! Set up for a conditional safe installation.$ !$ VMI$CALLBACK SET -" SAFETY CONDITIONAL 'SAFETY_SPACE'$ !($ ! Restore secondary save sets, if any.$ !$RESTORE_SECONDARY_SAVESET:$$ !$ ! Check for purging and IVP.$ !$ VMI$CALLBACK SET - PURGE ASK&$ IF IVP THEN VMI$CALLBACK SET IVP ASK$ !8$ ! Get the system startup command procedure parameters.$ !$1000$:3$ ON WARNING THEN GOTO CLEANUP_AND_EXIT_WITH_STATUS/$ XXX = F$TRNLNM("EACF_SYS","LNM$SYSTEM_TABLE")3$ IF XXX .EQS. "" THEN XXX = "SYS$SYSDEVICE:[EACF]"W$ write sys$output "Note: Put Safety code somewhere other than sys$system if possible."$ VMI$CALLBACK ASK GCY$SYS -/ "Enter directory for Safety programs" - "''XXX'" - DSZ ""?$ IF GCY$SYS .EQS. "^Z" THEN GOTO CLEANUP_AND_EXIT_WITH_FAILURE$ DEFINE EACF_SYS 'GCY$SYS'$ assign 'gcy$sys' gcy$sys:$$ assign/sys/exec 'gcy$sys' gcy$sys: $ set noon<$ write sys$output "Creating directory if it does not exist"$ crea/dir 'gcy$sys'$ set on$1010$:$$1020$:3$ ON WARNING THEN GOTO CLEANUP_AND_EXIT_WITH_STATUS$$ VMI$CALLBACK ASK GCY_GT_INTERNET -F "Can this system send to and receive mail from the Internet" - "N" - DBZ ""G$ IF GCY_GT_INTERNET .EQS. "^Z" THEN GOTO CLEANUP_AND_EXIT_WITH_FAILURE*$ IF .NOT. GCY_GT_INTERNET THEN GOTO 1040$$$1030$:3$ ON WARNING THEN GOTO CLEANUP_AND_EXIT_WITH_STATUS$ TYPE SYS$INPUT:$ DECK)The Internet address for EACF Support is: support@GCE.ComGPlease enter the VMSMail address necessary to reach support@GCE.MV.Com.$ EOD#$ VMI$CALLBACK ASK GCY_GT_SUPPORT - "VMSMail address is" - "Support@GCE.Com" - DSZ "".$ IF GCY_GT_SUPPORT .EQS. "^Z" THEN GOTO 1020$$ xxx = GCY_GT_SUPPORT$ gosub doubleQuote$ GCY_GT_SUPPORT == yyy$$1040$:$ WRITE SYS$OUTPUT ""8$ WRITE SYS$OUTPUT "No further questions will be asked."$ WRITE SYS$OUTPUT ""$ !%$ ! Create the necessary directories.$ !$ !N$ ! Construct the system startup command procedure that defines the per system$ ! environment.$ !J$ ! Add all identifiers BEFORE files are delivered (which may need to have$ ! acls set.)$ !$ ! Link the executable images.=$! (Note: this is for the VAX version and is done to simplify!$! distribution for the moment.) $oldloc=f$environment("default")$set def vmi$kwd$if f$getsyi("cpu") .lt. 128 $ then !vax $set noon$delete *.obj_a.L$! Use *.obj (vax/vms V6.1 compile) unless it looks like this VMS vers is V5$delete *.obj_a*.$delete *.exe_a*.$set on2$if f$extract(1,3,f$getsyi("version")) .ges. "6.2"$then$ copy *.obj_vax62 *.obj $ pur *.obj$ del *.obj_vax62.$endif0$if f$extract(1,1,f$getsyi("version")) .lts. "6"$then $! VMS V5.x;$! Get object files compiled under VMS 5.5-2 and use those.$copy *.obj_vax5 *.obj $pur *.obj$endif8$if f$search("*.obj_vax5") .nes. "" then del *.obj_vax5.:$if f$search("*.obj_vax62") .nes. "" then del *.obj_vax62. $link jtdolog$link jtsavspc $set noonM$write sys$output "Note: a `%LINK-W-USRTFR...` message is normal, not an err"3$link jtdriver+sys$system:sys.stb/sel+sys$input/optbase=0$set onM$link/notrace jtdmn+jtlic+jtopn+jtoprmsg+jttrnlnm+jtdeldo+jtgetmrk+jtlicace+-B jted+jtspawn+jtsubprc1+jtsubprc2+jtsubprc3+sys$system:sys.stb/sel$link jtrplace+jtmodace+jtauthm4$link/notrace jtdelmaint+jted+sys$system:sys.stb/sel,$link/notrace jtexfix+sys$system:sys.stb/sel?$link/notrace jtexset+jtoprmsg+jtemitlog+sys$system:sys.stb/selO$link/notrace jtauthmaint+jtmodace+jtauthm+jtoprmsg+jted+sys$system:sys.stb/sel@$link/notrace jtexempt+jtemitlog+jtoprmsg+sys$system:sys.stb/sel@$link/notrace jtexedel+jtemitlog+jtoprmsg+sys$system:sys.stb/sel $set noon$rename jtfildel.com fildel.com$copy jtfilsav.com filsav.com$copy jtfilrst.com filrst.com$copy jtfiltall.com filtall.com!$copy jtfilundel.com filundel.com$copy jtmakspc.com makspc.com'$copy jtdel_shelved.com del_shelved.com$else$!AXPG$! we have *.obj_axp6 for VMS 6.x on AXP and *.obj_a for vms 7.x on AXPE$! except jtdriver_S264.obj_a is needed to be renamed to jtdriver.obj$ vrs=f$getsyi("version")1$ if f$extract(0,1,vrs) .nes. "V" then vrs="V7.1"!$ if f$extract(1,1,vrs) .eqs. "6"$then $ del *.obj.$ del *.obj_v*.$ rename *.obj_axp6 *.obj$else$! presume if not V6 it's V7 $ del *.obj.$ rename *.obj_a *.obj%$ copy JTDRIVER_S264.OBJ jtdriver.obj $ pur *.obj$endif $ del *.exe.$ rename *.exe_a *.exe$rename jtfildel.com fildel.com#$link/notrace/sysexe=select jtexfix6$link/notrace/sysexe=select jtexset+jtoprmsg+jtemitlog$copy jtfilsav.com filsav.com$copy jtfilrst.com filrst.com!$copy jtfilundel.com filundel.com$copy jtmakspc.com makspc.com$copy jtfiltall.com filtall.com'$copy jtdel_shelved.com del_shelved.com$link/notrace jtdolog$link/notrace jtsavspc$@jtdriverx.lnkR$link/notrace/nonative/sysexe=select jtdmn+jtlic+jtopn+jtoprmsg+jttrnlnm+jtdeldo+- jted+jtgetmrk+jtlicace+-& jtspawn+jtsubprc1+jtsubprc2+jtsubprc3'$link/notrace jtrplace+jtmodace+jtauthm+$link/notrace/sysexe=select jtdelmaint+jtedF$link/notrace/sysexe=select jtauthmaint+jtmodace+jtauthm+jtoprmsg+jted@$link/notrace/nonative/sysexe=select jtexempt+jtemitlog+jtoprmsg@$link/notrace/nonative/sysexe=select jtexedel+jtemitlog+jtoprmsg$endif$set def 'oldloc'$ !$ set on $oldloc=f$environment("default")$set def vmi$kwd$copy zmenu.cld zmenu.cldx$copy zmenu.exe zmenu.exex($copy zmenu_scroll.exe zmenu_scroll.exex$set def 'oldloc'$ !($ ! Set up access to the kit data files.$ !+$VMI$CALLBACK PROVIDE_DCL_COMMAND JTDMN.CLD-$VMI$CALLBACK PROVIDE_DCL_COMMAND jtexfix.cld-$VMI$CALLBACK PROVIDE_DCL_COMMAND jtexset.cld;$VMI$CALLBACK PROVIDE_FILE EACF_FLSCLD JTDMN.cld "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSCLD "[1,4]" "s:rwed,o:rwed,g:re,w:re"=$VMI$CALLBACK PROVIDE_FILE EACF_FLACLD jtexfix.exe "gcy$sys:"B$VMI$CALLBACK SECURE_FILE EACF_FLACLD "[1,4]" "s:rwed,o:rwed,g:re"=$VMI$CALLBACK PROVIDE_FILE EACF_FLBCLD jtexset.exe "gcy$sys:"B$VMI$CALLBACK SECURE_FILE EACF_FLBCLD "[1,4]" "s:rwed,o:rwed,g:re"F$VMI$CALLBACK PROVIDE_FILE EACF_FLSCZ JTenter_passwords.com "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSCZ "[1,4]" "s:rwed,o:rwed,g:re,w:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSCL2 JTEXEMPT.cld "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSCL2 "[1,4]" "s:rwed,o:rwed,g:re,w:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSCL2 JTEXEDEL.cld "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSCL2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"A$VMI$CALLBACK PROVIDE_FILE EACF_FLSTY2 del_shelved.com "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSTY2 "[1,4]" "s:rwed,o:rwed,g:re,w:re";$VMI$CALLBACK PROVIDE_FILE EACF_FLSEXE jtdmn.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEXE "[1,4]" "s:rwed,o:rwed,g:re,w:re">$VMI$CALLBACK PROVIDE_FILE EACF_FQSEXE jtsavspc.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FQSEXE "[1,4]" "s:rwed,o:rwed,g:re,w:re"A$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX2 jtauthmaint.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEX2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"=$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX3 jtdolog.exe "gcy$sys:"G$VMI$CALLBACK SECURE_F@ SAFETY013.A #[EVERHART.JTDEMO]KITINSTAL.COMV12;1W$p$"ILE EACF_FLSEX3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"@$VMI$CALLBACK PROVIDE_FILE EACF_FLSFX3 jtdelmaint.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSFX3 "[1,4]" "s:rwed,o:rwed,g:re,w:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX4 jtexedel.exe "gcy$sys:"B$VMI$CALLBACK SECURE_FILE EACF_FLSEX4 "[1,4]" "s:rwed,o:rwed,g:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX5 jtexempt.exe "gcy$sys:"B$VMI$CALLBACK SECURE_FILE EACF_FLSEX5 "[1,4]" "s:rwed,o:rwed,g:re">$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX6 jtrplace.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEX6 "[1,4]" "s:rwed,o:rwed,g:re,w:re"K$VMI$CALLBACK PROVIDE_FILE EACF_FLSEY7 jtdelmaint.doc "sys$common:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEY7 "[1,4]" "s:rwed,o:rwed,g:re,w:re"L$VMI$CALLBACK PROVIDE_FILE EACF_FLSEF7 jtauthmaint.doc "sys$common:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEF7 "[1,4]" "s:rwed,o:rwed,g:re,w:re"<$VMI$CALLBACK PROVIDE_FILE EACF_FLSEX8 cswing.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEX8 "[1,4]" "s:rwed,o:rwed,g:re,w:re":$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP1 file.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP1 "[1,4]" "s:rwed,o:rwed,g:re,w:re":$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP3 find.exe "gcy$sys:"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"E$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP4 find.hlp "sys$common:[syshlp]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP4 "[1,4]" "s:rwed,o:rwed,g:re,w:re"E$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP5 file.hlp "sys$common:[syshlp]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP5 "[1,4]" "s:rwed,o:rwed,g:re,w:re"M$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP6 jtmark_files.com "sys$common:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP6 "[1,4]" "s:rwed,o:rwed,g:re,w:re"L$VMI$CALLBACK PROVIDE_FILE HSM_FLSEP6 jtmove_files.com "sys$common:[sysmgr]"F$VMI$CALLBACK SECURE_FILE HSM_FLSEP6 "[1,4]" "s:rwed,o:rwed,g:re,w:re"L$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP7 jt_sel_mark.com "sys$common:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP7 "[1,4]" "s:rwed,o:rwed,g:re,w:re"K$VMI$CALLBACK PROVIDE_FILE HSM_FLSEP7 jt_sel_move.com "sys$common:[sysmgr]"F$VMI$CALLBACK SECURE_FILE HSM_FLSEP7 "[1,4]" "s:rwed,o:rwed,g:re,w:re"G$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP8 jteacf.doc "sys$common:[syshlp]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP8 "[1,4]" "s:rwed,o:rwed,g:re,w:re"I$VMI$CALLBACK PROVIDE_FILE EACF_FLSEP9 jt_setup.com "sys$common:[sysmgr]"G$VMI$CALLBACK SECURE_FILE EACF_FLSEP9 "[1,4]" "s:rwed,o:rwed,g:re,w:re"L$VMI$CALLBACK PROVIDE_FILE DPS_FLSEP9 jt_setup_del.com "sys$common:[sysmgr]"F$VMI$CALLBACK SECURE_FILE DPS_FLSEP9 "[1,4]" "s:rwed,o:rwed,g:re,w:re"M$VMI$CALLBACK PROVIDE_FILE DPS_FLSER9 jt_setup_eacf.com "sys$common:[sysmgr]"F$VMI$CALLBACK SECURE_FILE DPS_FLSER9 "[1,4]" "s:rwed,o:rwed,g:re,w:re"L$VMI$CALLBACK PROVIDE_FILE DPS_FLSES9 jt_setup_hsm.com "sys$common:[sysmgr]"F$VMI$CALLBACK SECURE_FILE DPS_FLSES9 "[1,4]" "s:rwed,o:rwed,g:re,w:re"5$vmi$callback provide_file cmf1 fildel.com "gcy$sys:"@$VMI$CALLBACK SECURE_FILE cmf1 "[1,4]" "s:rwed,o:rwed,g:re,w:re"5$vmi$callback provide_file cmf2 filrst.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"5$vmi$callback provide_file cmf3 filsav.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"6$vmi$callback provide_file cnf3 filtall.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cnf3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"7$vmi$callback provide_file cmf4 filundel.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf4 "[1,4]" "s:rwed,o:rwed,g:re,w:re"5$vmi$callback provide_file cmf5 makspc.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf5 "[1,4]" "s:rwed,o:rwed,g:re,w:re"8$vmi$callback provide_file cmf6 jtexpunge.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf6 "[1,4]" "s:rwed,o:rwed,g:re,w:re"6$vmi$callback provide_file cmf7 jtpurge.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf7 "[1,4]" "s:rwed,o:rwed,g:re,w:re":$vmi$callback provide_file cmf8 jtundeluser.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf8 "[1,4]" "s:rwed,o:rwed,g:re,w:re"G$VMI$CALLBACK PROVIDE_FILE EACF_FRDV JTDRIVER.EXE "sys$common:[sysexe]"E$VMI$CALLBACK SECURE_FILE EACF_FRDV "[1,4]" "s:rwed,o:rwed,g:re,w:re"9$VMI$CALLBACK PROVIDE_FILE EAF_ZMCL ZMENU.CLD "gcy$sys:"E$VMI$CALLBACK SECURE_FILE EAF_ZMCL "[1,4]" "s:rwed,o:rwed,g:re,w:re"9$VMI$CALLBACK PROVIDE_FILE EAF_ZMEX ZMENU.EXE "gcy$sys:"E$VMI$CALLBACK SECURE_FILE EAF_ZMEX "[1,4]" "s:rwed,o:rwed,g:re,w:re"A$VMI$CALLBACK PROVIDE_FILE EAF_ZMEX2 ZMENU_SCROLL.EXE "gcy$sys:"F$VMI$CALLBACK SECURE_FILE EAF_ZMEX2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"B$VMI$CALLBACK PROVIDE_FILE EACF_FLSD EACF_USER_MAN.TXT "sys$help:"F$VMI$CALLBACK SECURE_FILE EACF_FLSD "[1,4]" "s:rwed,o:rwed,g:re,w:re"7$vmi$callback provide_file dmf2 JTfilrst.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE dmf2 "[1,4]" "s:rwed,o:rwed,g:re,w:re"7$vmi$callback provide_file dmf3 JTfilsav.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE dmf3 "[1,4]" "s:rwed,o:rwed,g:re,w:re"7$vmi$callback provide_file cmf6 JTmakspc.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf6 "[1,4]" "s:rwed,o:rwed,g:re,w:re";$vmi$callback provide_file cmf7 JTfilsavmdsk.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf7 "[1,4]" "s:rwed,o:rwed,g:re,w:re";$vmi$callback provide_file cmf8 JTfilrstmdsk.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf8 "[1,4]" "s:rwed,o:rwed,g:re,w:re"=$vmi$callback provide_file cmf9 JTspace_tailor.com "gcy$sys:"A$VMI$CALLBACK SECURE_FILE cmf9 "[1,4]" "s:rwed,o:rwed,g:re,w:re";$vmi$callback provide_file cmf10 JT_softlink.com "gcy$sys:"B$VMI$CALLBACK SECURE_FILE cmf10 "[1,4]" "s:rwed,o:rwed,g:re,w:re"8$vmi$callback provide_file cmf11 JTrptspc.com "gcy$sys:"B$VMI$CALLBACK SECURE_FILE cmf11 "[1,4]" "s:rwed,o:rwed,g:re,w:re"8$vmi$callback provide_file cmf12 JTcommand.doc sys$help:=$VMI$CALLBACK SECURE_FILE cmf12 "[1,4]" "s:rwed,o:rwed,g:re"$! $oldloc=f$environment("default")$set def vmi$kwd$copy zmenu.cldx zmenu.cld$copy zmenu.exex zmenu.exe($copy zmenu_scroll.exex zmenu_scroll.exe#$copy zmenu.cld sys$common:[sysexe]#$copy zmenu.exe sys$common:[sysexe]*$copy zmenu_scroll.exe sys$common:[sysexe],$set file/own=[1,4] sys$common:[sysexe]zm*.*<$set prot=(s:rwed,o:rwed,g:re,w:re) sys$common:[sysexe]zm*.* $pur sys$common:[sysexe]zmenu*.*$set def 'oldloc'$ !O$ ! Install the product startup files and identify the startup command file for$ ! IVP.$ !$INSTALL_STARTUP:$ TYPE SYS$INPUT:$ DECKETo complete the installation of the Extended Access Control Facility,Ayou must run the procedure SYS$MANAGER:JT_SETUP.COM (for a screenoriented setup).?Then you must also modify the file SYS$MANAGER:SYSTARTUP_V5.COM! or SYSTARTUP_VMS.COM to contain:: $ IF F$SEARCH("SYS$MANAGER:SDH_STARTUP.COM") .NES. "" -+ THEN @SYS$MANAGER:SDH_STARTUP.COMCYou should run the file GCY$SYS:JTSPACE_TAILOR.COM to set your siteBpolicy on how to make space when the disk fills and space is being monitored.$ EOD$ !$ ! Move data files.$ ! $MOVE_DATA:$$ !$ ! Installation Complete.$ !$INSTALL_COMPLETE:$2$ IF GCY_GT_INTERNET THEN CALL DIALHOME/OUTPUT=NL:$ GOTO CLEANUP_AND_EXIT$$ !$ ! Run the IVP, if one exists.$ !$IVP:$$ EXIT $STATUS $CLEANUP_AND_EXIT_CONTROL_Y:$ VMI$CALLBACK CONTROL_Y$ STATUS = VMI$_FAILURE $ GOTO CAE10$$$CLEANUP_AND_EXIT_WITH_STATUS:$ STATUS = $STATUS $ GOTO CAE10$$$CLEANUP_AND_EXIT_WITH_FAILURE:$ STATUS = VMI$_FAILURE $ GOTO CAE10$$$CLEANUP_AND_EXIT:$ STATUS = VMI$_SUCCESS$$CAE10$: $ EXIT STATUS $ doubleQuote: $ yyy = ""$ i = f$locate("""",xxx)9$ 23016: if (.not.(i .ne. f$length(xxx))) then goto 23018)$ yyy = yyy + f$extract(0,i+1,xxx) + """"$ xxx = f$extract(i+1,999,xxx)$ 23017: i = f$locate("""",xxx) $ goto 23016 $ 23018: $ yyy = yyy + xxx$ return $ dialhome: subroutine $ set noon)$ define/user support "''GCY_GT_SUPPORT'"H$ mail/noself/subject="EACF installed at ''F$TIME()'" SYS$INPUT: support$ deckFGeneral Cybernetic Engineering EACF, DPS, etc. installed successfully.$ eod$ set on$ exit$ endsubroutine*[EVERHART.JTDEMO]MISC.OBJ_A;3+,.Z/ 4ZSd- 0123KPWOT56 Q*%7=*%89GHJ@@.MAIN.V1 4-NOV-1994 16:21AMAC V2.0-22  p$$$115_LINKAGE  U $$$115_DRIVER $$$105_PROLOGUE $$$110_DATA $ABS$ . BLANK . . ABS .0  DRIVER$DPT( JT$DPT( JT$DDT IOC$RETURN_SUCCESSIOC_STD$MNTVER IOC$RETURN IOC$RETURN_UNSUPPORTED( pV15A( xACLLIT0  DRIVER$FDT EXE$ILLIOFUNCACCFILT( GCEACL( GCEABA( GCEALA(GCETPL SMP$GL_FLAGS SMP$ACQUIRE SMP$AL_IPLVEC SMP$RELEASE CTL$GL_PCBCTL$GQ_PROCPRIV CTL$GL_PHD SCH$IOLOCKW IOC$SEARCHDEV SCH$IOUNLOCK EXE$DEANONPGDSIZ SYS$WAITFR SYS$CLREF EXE_STD$FINISHIO SCH$GL_PCBVEC SCH$GL_MAXPIXEXE_STD$ABORTIOEXE$ALONPAGVAREXE$WRTMAILBOX SYS$SETEF EXE_STD$WRITECHKIOC_STD$REQCOMSCH$QASTEXE$ALONONPAGED EXE$GQ_RIGHTSLISTEXE$DEANONPAGED OTS$CALL_PROCOTS$MOVE OTS$MOVEMOTS$ZERO OTS$DIV_I0JGETJTUCB(J0DOWAIT(JFDTLOP(JFDTXIT(J@FDTBXT(J POPOUT(J PORS(Jx0>FINDLDT(J0BVCSTP15(JCSTP2BAD0JP@Q GRANT_REVOKE =0;=@8@| F11 =00;=@| ;;=p=0;=7 SMP$AL_IPLVEC7 SMP$GL_FLAGS  SMP$ACQUIRE  SMP$RELEASE=0;=0;7 CTL$GL_PCB7CTL$GQ_PROCPRIV7 CTL$GL_PHD=0;=lR=0@;  SCH$IOLOCKW  IOC$SEARCHDEV SCH$IOUNLOCK=00 ;( EXE$DEANONPGDSIZ=00; SYS$CLREF"  SYS$WAITFR"=0 ;=/ = OTS$CALL_PROC=0;=/ =0@;=/ =0;(EXE_STD$FINISHIO"=00;=  x=0`;=0;=0@;= 7 SCH$GL_MAXPIX7 SCH$GL_PCBVEC EXE_STD$ABORTIO""=0 ;=0 ;=0);=  EXE$ALONPAGVARP;@ EXE$WRTMAILBOX=0P-;  SYS$SETEF"=0-;=01;= =02;= (EXE_STD$WRITECHK"""=05;OTS$MOVE7 EXE$ILLIOFUNC;=0`9;=0;;=@t =0P<;=P< !OTS$ZERO# OTS$MOVEM=@-x=00>;=0@?;=0p@;=0@;=@<  %IOC_STD$REQCOM""=0A;=0 0B;=/ ="  'SCH$QAST@;=0J;=P=08 @Q;= =""7EXE$GQ_RIGHTSLIST )EXE$ALONONPAGED +EXE$DEANONPAGED=0@;= - OTS$DIV_I==0C;=;==0( P;=P =0@";= =0PD;=0(pP;=P  =>C~^^~ (0޴8GC1'F1#CWpJC&&&"4GCYp KC:9'&H"LƲ|SJX&C?G:GX&4GXƢw1 KVRJFXƲG\X0KG\\FGvSKG_G\G\FG\WRJF\沀&?G:G&G^~ (0ޤ8CkG>C~^^~ (0޴8GC C([?' Fp9#C&CCG^~ (0ޤ8Ck>C^^~ GGEm>CG -GGpH*GGW@FGG/J0KC%GDj!/ ע@M>CHmpH@ZkCGCGFGCG^~Ck/0M>C8m@ZkCJ0KC*'p#08CJ_ GG>C^^~ (޴08@>H^P~X G;A_C Cm#G@CC^~ (ޤ08@>H^P~XCkGGG>C^^~ (0޴8@H>P^X~` Gh>C- gA>DKx0XC@ SAFETY013.A [EVERHART.JTDEMO]MISC.OBJ_A;3_AXP6;8Z{> AA/*-*I 4@A >C^~ (0ޤ8@H>P^X~`hCkG05 A0U A0u AJ/G,AKJK 4@Ak(GK /HIY K @ADCC>C@0@Cͦt0 A6 ,J/K H[ JKk @AD*,C /CC*HY K @A9DC>CAo@CJ,/j,JHV K @AjHJ/VDC[ JK0@{DC @A0#@ - 䰄?E0@C3 , /AK HY Kk @AD*,C.CC*HW J @A7DC>C6@CJ,J/j,JH[ JK @AjH /[DC0@Y K @AyDC0#@GG2BAGG>CG m#f@CZ?E0`C *-*I IASG. /WJ>X K ?KG?E0CK*-*I IACG8D<C"DDR&CC"8D&>CDCl"C6D wHC>C @"@C=%,="6H,B9">>! H#@!C>9%,7H#CC!CG 0 @6J?>$@!C>C!CG 0 @6J?$@CCCk>%/\ 6KC^^~ (޴08@>H^P~X G>CHM,~(^$> ް ~^>Dkx:0yC iA/*-*I 4@A >^ ~ޠ $>(^,~C^~ (ޤ08@>H^P~XCk/G05 A0U A0u AJ/,JK 4@AH /(GKY KIDC @AG0 A ,/*, HV K @A*HJ/J,DC[ JK @AJH /;Dj,CY K @AjH.YDCW J @AwDCG0 A ,J/*, H[ JK @A*H /J,DCY K @AJH.9Dj,CW J @AjHj/WDC\ jK @A|DCG0 A*-C0A*I IA CA).)J 05 B ˢ"FxG0 Ax*-*I IApmMm@Zk>CC(/ MC(K4A(mXKGC\PK'CXpK'>C> ~@Zk~ >C>|<1C||&|A0@C|A@k$#x 0. /4 A/ AKV KGI/YK' /yHK\KG&?TA .VJ' >A ?#/K$FuVKXKG#?AH/#XK";GwKZXKWG!H?0M8m@Zk.X JXG h/ HK[ hKyG h? /\ K ?h/\ vKF VK[ vKuGh?.W J7G KV JF>>C^^~ (޴08@>H^P~X G>Cm#>>C* @C Ckjm#>C! @CaG>C^~ (ޤ08@>H^P~XCk/MC4+>Cm@ZkCGG>C^^~ GGGGGGJ@  MG(m4G@ZkG4GMm@ZkJ_CJ@ TG>CMm ~^>G@Zk>^ ~C^~CkGG>C~^ ^(~08@޴HPX>`^h~px GGwHAAD/KK?4C0MG8mG@ZkGG>C~^ ^(~08@޴HPX>`^h~p =x GG4GA;@G ^(~08@ޤHPX>`^h~pxCkGGG>C~^ ^(~08@޴HPX>`^h~px GGGA@G ^(~08@ޤHPX>`^h~pxCkGGG>C^ GMGPCmCT#TG@ZkCkGGG>C~^^ ~(08޴@HP>X^`~hp Gx޵G>CC CCC0m#_CACG@G^ ~(08ޤ@HP>X^`~hpxޥCkG<C'(e#|GD0%4YC4CĢ 4BdE4zC$47CĢe4BD4XCƢvJJ45B C>CAf@4EACK>C^<>C Cx|ci0m#CI# ) `â>C> Fް_GC 21@Z'@mCMCCC>CG4C@Zkޠ >CTGGGG^C&GF|ɢ61B|ɲ4G||J0@C|JC  rAC'@lMGޠGCC >CPTGT#>Cm@ZkCZ>C^^~ (0޴8@H>P~X G>Cm# >b @C0x C-ktd KD M ˢѲkq+$뢄 KD8 0C8K>CA^#@^m#< @0 @C ˢCMm4+>C@ZkC>C^~ (0ޤ8@H>P~XCkGGG>C^^~ (޴08@>H^P~X G>C- gA>DKx0XC AA*-*I 4@A >C^~ (ޤ08@>H^P~XCk/G05 A0U A0u AJ/,JK 4@AH /(GKY KIDC @AG0 A ,/*, HV K @A*HJ/J,DC[ JK @AJH /;Dj,CY K @AjH.YDCW J @AwDCG0 A. ,J/K H[ JKk @AD*,C /CC*HY K @A9DJ,/Cj,CJHV K @AjHJ/VDC[ JK @A{DC GG2BAGG>CGm#@CG0 A*-*I IA~0 A*-*I IAx>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCCCf{`KgK45`CA@G^ ~(08ޤ@HP>X^`~hpxޥCkG>Cm# !_CGAC@<C((EPG$048CŢ4B e4CD%4YCŢ4CE4C$47C|KK45C`cpG>C~^ >ް E >~@ՠ@IZ@ޠ(4YA ^4CCG`G`ޠGG >^~^C~xG@pD @B11 B@GGG&>C G ~^ C>xZX ,@9Hx @eG `?"6DCw`K Dw Hb@@ DY/YKXKD 0`A>^ ~C$E2@ʢF/|-$j+`>C M ްՠY@ 4C'1@ ޠ C Ţ>CA>Cް ~j@~ ޠCC~4u@^C C3G>^ ~CCGMC4GCPmCT#TG@ZkC8MCGG@mCCC@Zk.X J8D>C~@^H^P~X`h޴px>^~ G޵G= =(]0}CCCCCf{`KgK45`CPm#/@G@H^P~X`hޤpx>^~ޥCkG>Cm# _CG@m#C@<C(EBG04CĢ4Bd E4zC4CĢe4BD4WCĢe4BxKK45C(F9>CGxGG@pD @B11 BGGG'GGG@pD @B11 B@GGG@.JAF(EDG.@J<pF /@K:TFuVKXKG =9?C(e#|G>CGG@GpD @B11 BGGGCGGG(# F!GPm#4GC@ӈ`/\ vKF`/\ vKF`/\ vKF VK[ vKuG`?G>C^ GA@CkGG>C^޴ (>0^8 G`>Cm#^ >G Cް>C_GC CC@ZGAmCMC>CG4C@Zk ޠ>^CCޤ (>0^8CkGMGޠCCC >C^CmG@Zk>C~@^H^P~X`h޴px>^~-pC޵G= =(]0}CCCCCPm#_G@H^P~X`hޤpx>^~ޥCkGf_'Z#{`KgK45`C`m#G>C _CG@m#C__<C0Ţ4Be4CD 4XC䢌Ţ4BE4CŢ4CE4CwJJ45B>C~^ >ްE >~@ ͦ@I֠\@ޠ h4[A^H4XCCGޠ >^~C(PF ("GB>CxDGGG@pD @B11 B@GGG75/@K`G8G>CGGxG@pD @B11 BFGGvGG@GpD @B11 B`GGiG@/KGjGPm#C_<Pm#C_5GG>C(~$^ >ް ~^><E4@ CDJ1@TJ`jC-)CwK4IA(E C%@F"|ʢ $>Cm ްGՠZ@4C'1@ޠ CŢ>C`m#@C>^~ ޠ >$^(~CSGPm#Cr_G(G$@/@XKp@G(e@#|G /@K|FuVKXKG{?@e;1`C@e `DE@@E.JuTFuKWJFt>>C@ް ~^`/zKl@0`G=; 9DȠ7Ţ>C M>>G ^G(~(m0>@ZkG>0@> ^(~0>C4@Š4@F<DTCw@K4@C4@ (Ţ"F`/@zK4@aG^~ ޠCG/Z KGG&/V KGGx.W JWGz`/\ vKF VK[ vKuG`?@/[ \KF KZ \KUG@?.X JxG.X JxGG>C^^~ (0޴8@H>P^X~` Gh MG(m@Zk^~ (0ޤ8@H>P^X~`hCkG>CGG G ~$K^>-I=?H?? ?(?0?8?@?H?P?X?`?h?p-Ip=TG>^ ~C>C C(~$^ >ް ~^>b<8 +"@ @ A @ K! @+ @ t@@KKk0M $ (˰,0 4+)8+ < )@+ D HK7L+P DTK8 4!X+,! H\ L`˲>C@M CHm~GC>C@Zk'~ C$?%D[GFGGG GGGG4G$M>Cm@ZkG4GCk`Mm>C@ZkCGpMCxmG>C@Zk>^ ~Cޠ >$^(~C:TGGGGGF>C^~ Ge#4G+0C0u BkMGm4G@ZkG MC(m@Zk4G~CkGG>C^^~ (0޴8@H>P^X~` Gh(G`G^~ (0ޤ8@H>P^X~`hCkGMGm@Zk>CG# G ~$K^>-I=?H?? ?(?0?8?@?H?P?X?`?h?p-Ip=Hx-Ix=^tG> ~Cpb>C C(~$^ >ް ~^>b<8 +"@ @ A /= @ K! @+ @ t@@KKkM $ (˰,0 4+)8+ < )@+ D HKT!A )/ -8KZ I!A:GL+)/8KmP+WTK$X+\ 8 4A`K,! H!d+Lh>CM Cm~G$C>C@Zk~ C&ͦ'?%d|GF$GGG)G$GG/ˢG4G( M>C(m@ZkG4GC0M8m>C@ZkCG4G/M>CmGC@Zk>^ ~Cޠ >$^(~CTGGG-GGF -Z I:GG>C~^^ ~(08޴@HP>X^`~hp Gx޵GCCCC4G;A_G^ ~(08ޤ@HP>X^`~hpxޥCkG>C~^^ ~(08޴@HP>X^`~hp Gx޵GC H`cCCC`KgG4KD;Aj_G^ ~(08ޤ@HP>X^`~hpxޥCkGxC|#>C MCC(mCC>CG@ZkCBD#G>C,~(^$> ް ~^>x@84U@6M|OC0B|@ͦ|d`% |C9AC`%& Mm@Zk: ~G0MC  >G^CޠCC $>(^,~8mC@Zk0MC8mCCCCG@Zk>^ ~ޠ $>(^,~C0MG8mGCCCCG@Zkx45@ CA4wA@ ~TGM4G>G^CCޠ $>(^,~CPmT#@ZkXA@GGG>C^^~ (0޴8@H>P^X~` Gh^~ (0ޤ8@H>P^X~`hCkG>C4G(~G$^G >ް>C ~^>-G>CG pHGGW@FGGCKo#e CtHI @i8+ )0*C&p"0B#4GEEM>CGG"OB@ZkGGCGMG( !墄>C~^ >h%!Gް(>C ~G^> H@Zk G> A^ AA ~ !AC >C(*0(B0'B)+1`A A @Ah"ޠ" >^C~C(貀˲| `>CM >CmpH@ZkCCGGF>G^~ ޠ >$^(~CA/M>Cm@ZkCnTGGG>C^^~ (^0~8 G>CC>8%Epm !CG>CG G>CGٔH>pH?ͦGGV@FGGZHCH@G 0 C3ʢ'p#0BJ_M: >CؔHM>CmpH@Zk WHCHFGCGF>C^~ (^0~8CkM>Cm@ZkC* G*+J0A@D hM#( ĢGQCFIJG0"@ C$?÷GG ` d>C~ ^CDG!#0@A고CGG>C~^^ (޴08G4GCCCC4GG^ (ޤ08CkGG>C~^ ^(~08@H GGC #X%G-'@#?G:GX%4G{1J4GXC8-@M\0K#GXE|7M>Cm! HC >@Zk >C>>C MG H ~G^>GG@ZkM>^? ~C,Em@@Zk@E>C MG HG ~^>GG@Zk>^ ~C4G/G ^(~08@HCkŢ4GFŲGGG>C^^~ (޴08@>H^P~X GxG,% D@H"@HCA@CA#@!08CA#@ Ga`ˢ0BC?G?DD^~ (ޤ08@>H^P~XCkCGG>C^^~ (޴0 `?=8@>H^P~X G>C C>A@JMm4*>C@ZkC_>CGG G ~$K^>.J>H??? .J >>^ ~>C^~ (ޤ08@>H^P~XCkGGG4GkGG>C~^^~ (08 GGCCEBFT xe(MG0mCCCtG@ZkG^~ (08CkG>C^^~ (޴08@>H^P~X G>CMm,~(^$> @ SAFETY013.A [EVERHART.JTDEMO]MISC.OBJ_A;3;1;146Z4>-ް ~^>CeG@ZkHm#_C~A>^ ~ޠ $>(^,~C%@^~ (ޤ08@>H^P~XCkGGG>C~^ ^(~08@޴HPX>`^h~px GG0M C8mG@Zk:>CG# G ~$K^>.J>H??? .J >H(.J(>^> ~CBy H C@Z@K8mYGBbGtG wq K0MĢ ŲXpKG@ZkpMGxm4G@Zk4GG ^(~08@ޤHPX>`^h~pxCk>C^^~ (޴08@>H^P~X G>C,~(^ C$> ް ~^>;GGG>C^^~ (޴08@>H^P~X-mC>CMmG,~4G(^$> ް ~^>@Zke>CMm~ ~^>CG>C@Zk> ^~C~C`G>^ ~ޠ $>(^,~C/^~ (ޤ08@>H^P~XCk@km#H_+!ͦC)  Kr@(e' #|G@,H@@%8 ?#DCw@KDwH IAYAD5/5K^ ~ޠ $>(^,~C@tÏG"B,H(A/4 AK0C 'AGGG|i$I_>C- ް,H נ[@0E(0YC'1@0ޠ C0墸>CCh<ŢȲ Hkh+( ˢ Ȳk$hX(H$,(04>C^><tJ8Ȳ8 4T<@,! Ha<hL!@(8 hMD4GHȲaLh !pmP(>^CC~G>C@Zk~ Cm4G>^ ~ޠ $>(^,~CIx60YCz>CMHG ~^>gAG@Zk>^ ~C+.Y JD\/ JZ \KYG\?/V KDmG>C^^~ (޴08@>H^P~X G>Cm#,~ C(^$> ްC ~^>%_C< CAa  @ @! @A K @"@ @j`*91 C* 䢁&F(MG0m4G@Zk0C54Gk>CM,~(^$> ް ~^>+t$ -ˢIJ kͦyPm#KD d_>^ ~ޠ $>(^,~C8K0@Cm#_&(m#0@(_$>Cx C|KJ ˢʲk0u`C}KHm#@`#>C> 'Gް*_GC @V'@MmCCCC>CG4C@Zkޠ >CTGGGGG/C$K@ TGJ K@* 71B(M>CG0m޲C>C4G@Zk Cktd KmD  ˢ ۲+;Pm#뢀 +$>C ^_ ^C4G>^ ~ޠ $>(^,~C/^~ (ޤ08@>H^P~XCk>Cm#_TGMC4G>GPCmT#G@Zk>C C0@&F|i;1`C 8O=|i`4G|I| 0C| >Cm#_TGMCG>GPCmT#@ZkޠGGC >CMCPTGT#>Cm@Zk $>(^,~0Cޠ $>(^,~CGGG>C?G~(^0^8~@ GHG= =]} 4GG>C?G~(^0^8~@-jCHG= =]} G]@>CCb` G=BCG>CCC^G;A@^CG(0^8~@HCkGGG>C~8^@^H~PX`޴hpx>޵ GGP= =(]0}CoGG/`GGGGG/$pM>CxmTG@ZkCTGGGCGG4G/[@ ! D@CwK(=GA!#1`@ `GGP@`MTGhm@ZkGn2@r@#1`@@0(H4GG8@^H~PX`ޤhpx>ޥCk/GG )I0MC8mC*@@ZkCG@@9"@:A@G@@Gz9H/T@@XKGY G?TGW/nKT@@ZWKNGVW?>C`HG%.%JSGM4qBFGABB@Zk M@ZkGC(ͦ C @/@MHm@Zk|[@C xGCP@qGDE0= #w`HM@Ca@`HHGG4qBF qBAB@Zk MD@Zk4G/$4GDz. 9HW JF>7/ KY 7K.G7?/Y K9F4PGd SMP$RELEASE4Xm# SMP$RELEASE4`@d SMP$RELEASE4G SMP$ACQUIRE4m# SMP$ACQUIRE4@ SMP$ACQUIRE4 G SCH$IOLOCKW4 m#  SCH$IOLOCKW4 @ SCH$IOLOCKW4( G IOC$SEARCHDEV4< m#  IOC$SEARCHDEV4 @ IOC$SEARCHDEV4  G SCH$IOUNLOCK4  m#  SCH$IOUNLOCK4  @ SCH$IOUNLOCK< G EXE$DEANONPGDSIZ< m#`EXE$DEANONPGDSIZ< @ EXE$DEANONPGDSIZ4xG SYS$WAITFR4m# SYS$WAITFR4@ SYS$WAITFR4 G SYS$CLREF4m# SYS$CLREF4 @ SYS$CLREF< GEXE$DEANONPGDSIZ< m#EXE$DEANONPGDSIZ< @EXE$DEANONPGDSIZ4G OTS$CALL_PROC4m# OTS$CALL_PROC4@ OTS$CALL_PROC<GEXE_STD$FINISHIO<m#0EXE_STD$FINISHIO<@EXE_STD$FINISHIO4\m#P OTS$CALL_PROC4hG OTS$CALL_PROC4@ OTS$CALL_PROC<GXEXE_STD$FINISHIO<Pm#PEXE_STD$FINISHIO<T@XEXE_STD$FINISHIO< TGlEXE$DEANONPGDSIZ< Xm#xEXE$DEANONPGDSIZ< h@lEXE$DEANONPGDSIZ<GEXE_STD$FINISHIO<m#EXE_STD$FINISHIO<@EXE_STD$FINISHIO4GEXE_STD$ABORTIO 4m#EXE_STD$ABORTIO4@EXE_STD$ABORTIO4X!m# OTS$CALL_PROC4d!G|! OTS$CALL_PROC4x!@|! OTS$CALL_PROC4!G!EXE_STD$ABORTIO4!m#EXE_STD$ABORTIO4!@!EXE_STD$ABORTIO4-(GD( OTS$DIV_I4.8(m# OTS$DIV_I4-@(@D( OTS$DIV_I4)G *EXE$ALONPAGVAR4*m#EXE$ALONPAGVAR4*@ *EXE$ALONPAGVAR4,G0,EXE$WRTMAILBOX4 ,m#EXE$WRTMAILBOX4,,@0,EXE$WRTMAILBOX4 ,G, SYS$CLREF4,m# SYS$CLREF4 ,@, SYS$CLREF4,G, SYS$WAITFR4,m# SYS$WAITFR4,@, SYS$WAITFR< ,G,EXE$DEANONPGDSIZ< ,m#EXE$DEANONPGDSIZ< ,@,EXE$DEANONPGDSIZ4-G- SYS$SETEF4-m#P SYS$SETEF4-@- SYS$SETEF< -G-EXE$DEANONPGDSIZ< -m#PEXE$DEANONPGDSIZ< -@-EXE$DEANONPGDSIZ4`.Gp.EXE$ALONPAGVAR4h.m#pEXE$ALONPAGVAR4l.@p.EXE$ALONPAGVAR4p0G0EXE$WRTMAILBOX4x0m#pEXE$WRTMAILBOX40@0EXE$WRTMAILBOX4 1G1 SYS$CLREF41m#p SYS$CLREF4 1@1 SYS$CLREF4,1G<1 SYS$WAITFR401m#p SYS$WAITFR481@<1 SYS$WAITFR< P1Gl1EXE$DEANONPGDSIZ< X1m#pEXE$DEANONPGDSIZ< h1@l1EXE$DEANONPGDSIZ<3G3EXE_STD$WRITECHK<3m#EXE_STD$WRITECHK<3@3EXE_STD$WRITECHK4`4Gl4 IOC$SEARCHDEV4d4m# IOC$SEARCHDEV4h4@l4 IOC$SEARCHDEV44G4EXE_STD$ABORTIO44m#EXE_STD$ABORTIO44@4EXE_STD$ABORTIO44G4EXE_STD$ABORTIO44m#EXE_STD$ABORTIO44@4EXE_STD$ABORTIO4,5GT5EXE_STD$ABORTIO445m#EXE_STD$ABORTIO4P5@T5EXE_STD$ABORTIO<5G5EXE_STD$FINISHIO<5m#EXE_STD$FINISHIO<5@5EXE_STD$FINISHIO4l7G7OTS$MOVE47@7OTS$MOVE47G8OTS$MOVE48@8OTS$MOVE48G8 SMP$RELEASE48m# SMP$RELEASE48@8 SMP$RELEASE489GH9 SMP$ACQUIRE4@9m# SMP$ACQUIRE4D9@H9 SMP$ACQUIRE4d:G: SMP$RELEASE 4x:m# SMP$RELEASE4:@: SMP$RELEASE4:G: SMP$ACQUIRE4:m# SMP$ACQUIRE4:@: SMP$ACQUIRE4<G =EXE$ALONPAGVAR4<m#0EXE$ALONPAGVAR4=@ =EXE$ALONPAGVAR4!=GP=OTS$ZERO4!L=@P=OTS$ZERO4T=G=EXE$ALONPAGVAR4x=m#0EXE$ALONPAGVAR4=@=EXE$ALONPAGVAR4!=G=OTS$ZERO4!=@=OTS$ZERO< ?G?EXE$DEANONPGDSIZ< ?m#EXE$DEANONPGDSIZ< ?@?EXE$DEANONPGDSIZ4%@G@IOC_STD$REQCOM4&@m#IOC_STD$REQCOM4%@@@IOC_STD$REQCOM< LAGAEXE$DEANONPGDSIZ< PAm#EXE$DEANONPGDSIZ< A@AEXE$DEANONPGDSIZ4xBGBEXE$ALONPAGVAR4Bm#EXE$ALONPAGVAR4B@BEXE$ALONPAGVAR4(0Cm#SCH$QAST4'TCGxCSCH$QAST4'tC@xCSCH$QAST4xCGC SYS$SETEF4Cm# SYS$SETEF4C@C SYS$SETEF4DGD SYS$SETEF4Dm# SYS$SETEF4D@D SYS$SETEF< DG EEXE$DEANONPGDSIZ< Dm#EXE$DEANONPGDSIZ< E@ EEXE$DEANONPGDSIZ44IGIEXE$WRTMAILBOX4XIm#EXE$WRTMAILBOX4I@IEXE$WRTMAILBOX4IG$JOTS$MOVE4 J@$JOTS$MOVE4pKGK SYS$SETEF4xKm#8 SYS$SETEF4K@K SYS$SETEF4$MGPM OTS$CALL_PROC4(Mm#8 OTS$CALL_PROC4LM@PM OTS$CALL_PROC4MGM SYS$SETEF4Mm#8 SYS$SETEF4M@M SYS$SETEF<NGOEXE_STD$FINISHIO<Om#8EXE_STD$FINISHIO< O@OEXE_STD$FINISHIO<hOGOEXE_STD$FINISHIO<Om#8EXE_STD$FINISHIO<O@OEXE_STD$FINISHIO<OGOEXE_STD$FINISHIO<Om#8EXE_STD$FINISHIO<O@OEXE_STD$FINISHIO4QGQ SMP$RELEASE4Qm#P SMP$RELEASE4Q@Q SMP$RELEASE4xRGR SMP$ACQUIRE4Rm#P SMP$ACQUIRE4R@R SMP$ACQUIRE4) SG8SEXE$ALONONPAGED4*(Sm#PEXE$ALONONPAGED4)4S@8SEXE$ALONONPAGED4#SGS OTS$MOVEM4#S@S OTS$MOVEM4!SGSOTS$ZERO4!S@SOTS$ZEROp p4+(TG4TEXE$DEANONPAGED4,,Tm#PEXE$DEANONPAGED4+@ SAFETY013.A [EVERHART.JTDEMO]MISC.OBJ_A;376;146Z,L0T@4TEXE$DEANONPAGED4#TGT OTS$MOVEM4#T@T OTS$MOVEM4!TGTOTS$ZERO4!T@TOTS$ZERO =0(,4H4=4= JTDRIVERX= 4= @ @ = p4=404>IOC$RETURN_SUCCESS4>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS>IOC$RETURN_SUCCESS=>IOC_STD$MNTVER> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN> IOC$RETURN_UNSUPPORTED> IOC$RETURN_UNSUPPORTED=> IOC$RETURN>IOC$RETURN_SUCCESS=44= GCEVflag=L|> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC>ACCFILT4P44 4> EXE$ILLIOFUNC> EXE$ILLIOFUNC4> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC> EXE$ILLIOFUNC=%&GCEV *[EVERHART.JTDEMO]PRCARMOR.CLD;2+,. / 4L - 0123 KPWO56V87`4889GHJDEFINE VERB prcarmor IMAGE sys$login:prcarmorL parameter p1,prompt="Device:",value(required,type=$device),label=Device+ qualifier PID,value(required,type=$infile) qualifier set qualifier clear*[EVERHART.JTDEMO]PRCARMOR.EXE;1+,. / 4 - 0123 KPWO56 :87N`889GHJ 0D`020598hPRCARMOR1.0`q9805-13QPQ  ?! LIBRTL_001 SETCLEAR$PID /gDevice(mS<`^,n䐏P;/ݬ^|VX^,n䐏Qݬf^PRݬl$լ ݬf  RP|VD^,nȐSȞo؞cܕlլݬfЬ̑lլ  lլ,n䞭l լ Ь l լЬlլ ݬf^<`^,n䐏Tl լЬ^<`^,n䐏Uxݬb^WMKP +)P /PwP1AeuP1"FhXP1ПXTp0мZПXXZVW889GHJ@ .TITLE PrcArmor ; Set or unset nodelete etc. bits for a process .IDENT /1.0/vms$v5=1;++;; Title: ; Prcarmor; ; Action:=; This program will set or clear the nodelete etc. bits for a7; process. Clearing will clear forcex pending etc. too.;; Calling sequence:;$; $ armor := $mydev:[mydir]prcarmor,; $ armor device/PID:nnnnnnnn[/set][/clear];; Environment:=; CMKRNL privilege required, I/O data base is locked, program; executed at elevated IPL.; ; Author:>; Glenn Everhart. Uses some code from ZDEC.MAR by Mark Oakley.;--  .SBTTL Symbols, Macros, Data .LIBRARY /SYS$LIBRARY:LIB.MLB/# $TPADEF ; Symbols for LIB$TPARSE.% $SSDEF ; Symbols for return status.# $UCBDEF ; Symbols for device ucb.( $STSDEF ; Symbols for returned status.( $DVIDEF ; Symbols for $GETDVI service.# $DCDEF ; Symbols for device type.% $DEVDEF ; SYM. FOR SDI TYPE DEVICE. $pcbdef ; pcb symbols+ .PSECT CDEV_DATA,RD,WRT,NOEXE,LONG,SHR,PICwrk: .long 0 ; scratchsetds: .ascid /SET/clrds: .ascid /CLEAR/"PIDDS: .ASCID /PID/ ; /PID switch#PIDVL: .word 32 ; length of buffer .byte dsc$k_dtype_t ;text type .byte 1 ;fixed static .address pidtx=pidtx: .blkl 8 ;text area for /pid:nnnnnnnn "nnnnnnnn" valuepidwk: .long 0 ;work storage'newpid: .long 0 ;pid to move device tosetfg: .long 0clrfg: .long 0P1DSC: .ascid /Device/; in .cld have a lineI; parameter p1,prompt="Device:",value(required,type=$device),label=Device(DEV_BUF: ; Buffer to hold device name. .BLKB 40DEV_BUF_SIZ = . - DEV_BUF5DEV_BUF_DESC: ; Descriptor pointing to device name. .LONG DEV_BUF_SIZ .ADDRESS DEV_BUF#PID: ; Owner of device (if any). .BLKL 12K_ARG: ; Argument list for kernel-mode routine. .LONG 2 ; 2 args9 .ADDRESS DEV_BUF_DESC ; Pass descriptor for device name., .address newpid ; PID to "give" device to. cmd_len = 80cmd_desc: .long cmd_len .address cmd_bufcmd_buf: .blkl cmd_len cld_len = 90cld_desc: .long cld_len .address cld_bufcld_buf: .blkl cld_lenonfg: .long 0offfg: .long 0CMD_NAME: .ASCID "PRCARMOR"7 ; Note: pid field must be nonzero or this is a no-op. ; UCB$L_PID is set... .macro check ?l blbs r0,l $exit_s r0l: .endm check .SBTTL Main program+ .PSECT CDEV_CODE,RD,NOWRT,EXE,LONG,SHR,PIC( .ENTRY CDEV,^M; Get the args.;; Get the command line; pushl #0 ; flags$ pushal cmd_desc ; resultant-length pushl #0 ; prompt$ pushal cmd_desc ; resultant-string calls #4,g^lib$get_foreign check;4; Append the newly gotten string to the command name; pushal cmd_desc pushal cmd_name pushal cld_desc calls #3,g^str$concat check;; Get DCL to parse it for us; pushl #0 ; prompt_string) pushal g^lib$get_input ; prompt_routine pushl #0 ; param_routine pushal prcarmor_cld ; table" pushal cld_desc ; command_string calls #5,g^cli$dcl_parse check clrl clrfg clrl setfg incl clrfg ;default clear;; see if /set or /clear given. Default is clear if neither. pushab setds calls #1,g^cli$present cmpl r0,#cli$_present bneq 3$ incl setfg clrl clrfg3$: pushab clrds calls #1,g^cli$present cmpl r0,#cli$_present bneq 4$ incl clrfg clrl setfg4$: clrl newpid pushab wrk ;return len* pushab dev_buf_desc ;descriptor to return pushab p1dsc ;get P1 (device)! calls #3,g^cli$get_value ;get it blbs r0,10$; (we need no device actually) ;; brw exit10$: clrl newpid# pushab pidds ; /pid:nnnn present? calls #1,g^cli$present cmpl r0,#cli$_present beql 20$ brw 30$20$:; saw /pid=nnnnn8; now get value and convert to binary in newpid from hex) pushab wrk ;length of return string here' pushab pidvl ;string to put chars into# pushab pidds ;want /pid:nnnn value0 calls #3,g^cli$get_value ;get "nnnnnnnn" string blbs r0,40$ brw 30$040$: ;now have string. Convert hex to bin now.' movl wrk,pidvl ;set correct length now pushl #1 ;flags...ignore blanks pushl #4 ;4 byte result! pushab newpid ;store result here* pushab pidvl ;get number from this string+ calls #4,g^ots$cvt_tz_l ;hex ascii to long;30$:5 $CMKRNL_S - ; Enter k-mode to claim device for pid ROUTIN=ArmSet,- ARGLST=K_ARG BLBS R0,80$ BRW EXIT80$:; leave ret code in r0EXIT: RET .SBTTL ArmSet Routine;++;; Functional Description:; Clear nodelete bit or set it.;; Calling Sequence:&; $CMKRNL_S ROUTIN=ArmSet,ARGLST=K_ARG;6; where K_ARG is an argument list. This list contains6; the number of arguments passes (always 2), followed6; by the address of a descriptor pointing to the name6; of a device and the address of the new PID from the; user.;; Formal Parameters:"; Descriptor for name of a device.;; Implicit Inputs:; I/O database.;; Implicit Outputs:&; Device error count is set to ArmSet.;; Completion Status:; Returned in R0.;; Side Effects:A; I/O database is locked (routine runs in kernel mode at elevated; IPL).;;--2 .ENTRY ArmSet,^M9 MOVL G^CTL$GL_PCB,R4 ;; Our PCB address is input to SCH ;; routines.- JSB G^SCH$IOLOCKW ;; Lock the I/O database. movl @8(ap),r10 ;;; get newpid movl g^ctl$gl_pcb,r8 ;our pcb movl r10,r60 beql 20$ ; Zero means it's us. Use PCB in R8;G; Scan through system PCBs checking their PID fields for our target one.; Put PCB address in R8 and use it to get PID.;0 movzwl sch$gl_maxpix,r7 ; Maximum process index0 lock lockname=sched ; Raise IPL, acquire MUTEX310$: movl @sch$gl_pcbvec[r7],r8 ; Get a PCB address* cmpl pcb$l_epid(r8),r6 ; Is this the one?$ beql 20$ ; Sure, jump out of loop$ sobgtr r7,10$ ; Nope, try another< unlock lockname=sched ; Failed... lower IPL, release MUTEX, movl #ss$_nonexpr,r0 ; Not on this node... $exit_s r0 ; Error out20$:; r8 is the pcb!; set/clear things by main force. unlock lockname=sched: tstl pcb$l_sts(r8) ;since we're back at ipl2, see if we # ;can fault this in if need be. tstl clrfg ;clearing? bneq 100$ ; if neq yes tstl setfg ;setting?- beql 999$ ;if eql doing nothing apparently ; setting4 bisl #pcb$m_nodelet,pcb$l_sts(r8) ;set nodelete bit movl #1,r0 brw armset_exit100$:Q bicl #,pcb$l_sts(r8) ;clr nodelete bit MOVL #SS$_NORMAL,R0 brb armset_exit999$: movl #ss$_badparam,r0 ArmSet_EXIT: PUSHL R0 ;;; Remember status.8 JSB G^SCH$IOUNLOCK ;;; Unlock I/O database (drop IPL). POPL R0 RET .END CDEV*[EVERHART.JTDEMO]PRCARMOR.OBJ;1+,. / 4 - 0123 KPWO56%87b889GHJ@ SAFETY013.A [EVERHART.JTDEMO]PRCARMOR.OBJ;1OM;91 w4PRCARMOR1.0 8-JUN-1996 17:48 VAX MACRO V5.4-3MACRO PRCARMOR*; Set or unset nodelete etc. bits for a PRCARMOR CLI$GET_VALUE CLI$PRESENT CLI$_PRESENT CTL$GL_PCB DSC$K_DTYPE_T OTS$CVT_TZ_L SCH$GL_MAXPIX SCH$GL_PCBVEC SCH$IOLOCKW SCH$IOUNLOCK SMP$ACQUIRE SMP$GL_FLAGS SMP$RELEASE SYS$CMKRNLSYS$EXIT . ABS .P$ABS$!PPPPPPPP CDEV_DATAP3SETQ&Q 3CLEARQ&Q  3PIDQ&Q DSC$K_DTYPE_T%/Q c3DeviceQ&Q Q((mQS CDEV_CODEP CDEV&[W[ CLI$PRESENTP CLI$_PRESENT W[ CLI$PRESENTP CLI$_PRESENT [WS_ CLI$GET_VALUEPS CLI$PRESENTP CLI$_PRESENT1A' CLI$GET_VALUEP1"'S' OTS$CVT_TZ_L SYS$CMKRNLP1 ARMSET&j CTL$GL_PCBT SCH$IOLOCKWмZ CTL$GL_PCBXZVW< SCH$GL_MAXPIXWPPPP SMP$GL_FLAGSP/P SMP$ACQUIREЎP SCH$GL_PCBVECGXѨdV(W SMP$GL_FLAGSP/P SMP$RELEASEЎPЏPPSYS$EXIT SMP$GL_FLAGSP/P SMP$RELEASEЎPը$[Wȏ$P1ʏ$PPP SCH$IOUNLOCKЎP$ ARMSET CDEV0 CDEV_DATA CDEV_CODE*[EVERHART.JTDEMO]PRCARMOR.TXT;2+,. / 4L - 0123 KPWO56`7@s89GHJ@Prcarmor is used to set or clear the nodelete bits in a process'<PCB so it either cannot be STOP/ID'd or can be. Works on vax or Alpha.to use prcarmor $prcarmor:==$[somewhere]prcarmor$$prcarmor/pid:victim-pid/clear nla0: (or /set)to build macro prcarmor set comm/obj prcarmor_cld; link/notrace prcarmor+prcarmor_cld+sys$system:sys.stb/sel/When running prcarmor you need cmkrnl at least.Aprcarmor can set the nodelete bit or clear it for a process. When@clearing it also clears delpen and forcex-pending so you can useAstop/id to get rid of the process. If you can compile forcex (or Cwrite another in something else...it's fairly simple) you can forceEexit instead, if you want exit handlers to run in the victim process.GFollowing is the CLD for prcarmor. It requires the nla0: in the commandDline due to my not deleting enough stuff from asnvd. I use it seldomCso this doesn't bother me. Can be built on alpha too; you link withC"link/sysexe=select prcarmor+prcarmor_cld" in that case and compile"prcarmor with macro/migr prcarmor.DEFINE VERB prcarmor IMAGE sys$login:prcarmorL parameter p1,prompt="Device:",value(required,type=$device),label=Device+ qualifier PID,value(required,type=$infile) qualifier set qualifier clear#*[EVERHART.JTDEMO]PRCARMOR_CLD.CLD;1+,. / 4L - 0123 KPWO56_j87889GHJDEFINE VERB prcarmorL parameter p1,prompt="Device:",value(required,type=$device),label=Device+ qualifier PID,value(required,type=$infile) qualifier set qualifier clear*[EVERHART.JTDEMO]SAFETY.PS;3+,.c/ 4c]- 0123 KPWO^56?k7Wk89GHJ*%!PS-Adobe-2.1 %%Creator: DECwrite V3.0-2 %%+Copyright (c) 1990,1994 DIGITAL EQUIPMENT CORPORATION. %%+All Rights Reserved. %%DocumentFonts: (atend) %%EndComments %%BeginProcSet DEC_WRITE 1.10 save/DEC_WRITE_dict 150 dict def DEC_WRITE_dict begin/$D exch def/$I 0 def/$S 0 def/$C matrix def/$R matrix def/$L matrix def/$E matrix def/pat1{/px exch def/pa 8 array def 0 1 7{/py exch def/pw 4 string def 0 1 3{pw exch px py 1 getinterval putinterval}for pa py pw put}for}def/pat2{/pi exch def/cflag exch def save cflag 1 eq{eoclip}{clip}ifelse newpath{clippath pathbbox}stopped not{/ph exch def/pw exch def/py exch def/px exch def/px px 3072 div floor 3072 mul def/py py 3072 div floor 3072 mul def px py translate/pw pw px sub 3072 div floor 1 add cvi def/ph ph py sub 3072 div floor 1 add cvi def pw 3072 mul ph 3072 mul scale/pw pw 32 mul def/ph ph 32 mul def/px 0 def/py 0 def pw ph pi[pw 0 0 ph 0 0]{pa py get/px px 32 add def px pw ge{/px 0 def/py py 1 add 8 mod def}if}pi type/booleantype eq{imagemask}{image}ifelse}if restore}def/PS{/_op exch def/_np 8 string def 0 1 7{/_ii exch def/num _op _ii get def _np 7 _ii sub num -4 bitshift PX num 15 and 4 bitshift -4 bitshift PX 4 bitshift or put}for _np}def/PX{[15 7 11 3 13 5 9 1 14 6 10 2 12 4 8 0]exch get}def/FR{0.7200 0 $E defaultmatrix dtransform/yres exch def/xres exch def xres dup mul yres dup mul add sqrt}def/SU{/_sf exch def/_sa exch def/_cs exch def/_mm $C currentmatrix def/rm _sa $R rotate def/sm _cs dup $L scale def sm rm _mm _mm concatmatrix _mm concatmatrix pop 1 0 _mm dtransform/y1 exch def/x1 exch def/_vl x1 dup mul y1 dup mul add sqrt def/_fq FR _vl div def/_na y1 x1 atan def _mm 2 get _mm 1 get mul _mm 0 get _mm 3 get mul sub 0 gt{{neg}/_sf load concatprocs/_sf exch def}if _fq _na/_sf load setscreen}def/BO{/_yb exch def/_xb exch def/_bv _bs _yb _bw mul _xb 8 idiv add get def/_mk 1 7 _xb 8 mod sub bitshift def _bv _mk and 0 ne $I 1 eq xor}def/BF{DEC_WRITE_dict begin/_yy exch def/_xx exch def/_xi _xx 1 add 2 div _bp mul cvi def/_yi _yy 1 add 2 div _bp mul cvi def _xi _yi BO{/_nb _nb 1 add def 1}{/_fb _fb 1 add def 0}ifelse end}def/setpattern{/_cz exch def/_bw exch def/_bp exch def/_bs exch PS def/_nb 0 def/_fb 0 def _cz 0/BF load SU{}settransfer _fb _fb _nb add div setgray/$S 1 def}def/invertpattern{$S 0 eq{{1 exch sub}currenttransfer concatprocs settransfer}if}def/invertscreen{/$I 1 def/$S 0 def}def/revertscreen{/$I 0 def}def/setrect{/$h exch def/$w exch def/$y exch def/$x exch def newpath $x $y moveto $w $x add $y lineto $w $x add $h $y add lineto $x $h $y add lineto closepath}def/concatprocs{/_p2 exch cvlit def/_p1 exch cvlit def/_pn _p1 length _p2 length add array def _pn 0 _p1 putinterval _pn _p1 length _p2 putinterval _pn cvx}def/OF/findfont load def/findfont{dup DEC_WRITE_dict exch known{DEC_WRITE_dict exch get}if DEC_WRITE_dict/OF get exec}def mark/ISOLatin1Encoding 8#000 1 8#001{StandardEncoding exch get}for /emdash/endash 8#004 1 8#025{StandardEncoding exch get}for /quotedblleft/quotedblright 8#030 1 8#054{StandardEncoding exch get}for /minus 8#056 1 8#217 {StandardEncoding exch get}for/dotlessi 8#301 1 8#317{StandardEncoding exch get}for/space/exclamdown/cent/sterling/currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered /macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph /periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter /onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave /Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde /Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn /germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave /uacute/ucircumflex/udieresis/yacute/thorn/ydieresis 256 array astore def cleartomark /encodefont{findfont dup maxlength dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding exch def dup/FontName exch def currentdict definefont end}def/loads{/$/ISOLatin1Encoding load def/&/encodefont load def/*/invertpattern load def/+/revertscreen load def/-/invertscreen load def/:/concatprocs load def/^/setpattern load def/~/pat1 load def/_/pat2 load def/@/setrect load def/A/arcn load def/B/ashow load def/C/curveto load def/D/def load def/E/eofill load def/F/findfont load def/G/setgray load def/H/closepath load def/I/clip load def/J/fill load def/K/kshow load def/L/lineto load def/M/moveto load def/N/newpath load def/O/rotate load def/P/pop load def/R/grestore load def/S/gsave load def/T/translate load def/U/sub load def/V/div load def/W/widthshow load def/X/exch load def/Y/awidthshow load def/a/save load def/c/setlinecap load def/d/setdash load def/e/restore load def/f/setfont load def/g/initclip load def/h/show load def/i/setmiterlimit load def/j/setlinejoin load def/k/stroke load def/l/rlineto load def/m/rmoveto load def/n/currentfont load def/o/scalefont load def/p/currentpoint load def/q/setrgbcolor load def/r/currenttransfer load def/s/scale load def/t/setmatrix load def/u/settransfer load def/w/setlinewidth load def/x/matrix load def/y/currentmatrix load def}def end %%EndProcSet %%EndProlog %%BeginSetup DEC_WRITE_dict begin loads version cvi 23.0 gt { currentdict {dup type /arraytype eq {bind def} {pop pop} ifelse} forall} if 0.0100 0.0100 s %%EndSetup %%Page: 1 1 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (1) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1638 M n 1.500 o f 0.000000 0.000000 0.000000 q (Software ) h 288 -3638 M (Product ) h 288 -5638 M (Description) h 288 -8538 M /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1400 o f (Safety ) h /Times-Roman-ISOLatin1 F 1400 o f (V1.1 \255 Comprehensive Data Safety for your VMS systems.) h 288 -11188 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f (Executive Summary:) h 288 -13788 M /Times-Roman-ISOLatin1 F 1200 o f 58.9 0 32 (There are many perils your data faces, and loss of data can cost time, money, and jobs. Intrud\255) W 288 -15188 M 212.7 0 32 (ers, disgruntled insiders, or hidden flaws in installed software can destroy records. What is) W 288 -16588 M (more, mistaken losses occur constantly.) h 288 -19188 M /Times-BoldItalic-ISOLatin1 F 1200 o f (Safety ) h /Times-Roman-ISOLatin1 F 1200 o f (protects your system and your critical data in three ways:) h 288 -21788 M 12.5 0 32 (1. A comprehensive security system adds extra checks for access to VMS files so that access by) W 288 -23188 M 161.7 0 32 (intruders or by people in non\255job\255required ways can be regulated or prevented. Access from) W 288 -24588 M 189.6 0 32 (programs doing background dirty work \(viruses, Trojans, worms, and the like, or even pro\255) W 288 -25988 M 140.5 0 32 (grams with security holes which can be exploited remotely \(like Java browsers\)\) can also be) W 288 -27388 M (blocked without damaging normal use.) h 288 -29988 M 33.2 0 32 (2. A deletion protection system provides a way to undelete files which were deleted by mistake) W 288 -31388 M 90.3 0 32 (and to optionally copy deleted files to backup facilities before removal. Unlike all other VMS) W 288 -32788 M 114.4 0 32 ("undelete" programs on the market, this facility does not rely on finding the disk storage that) W 288 -34188 M 57.7 0 32 (contained the file and reclaiming it before it is overwritten. Rather, it changes the semantics of) W 288 -35588 M 53.2 0 32 (the file system delete to use a "wastebasket" system and captures the file intact. Thus, this sys\255) W 288 -36988 M 85.3 0 32 (tem works reliably. No others do. This facility is also useful where you have a requirement to) W 288 -38388 M 126.0 0 32 (keep all files of a certain set of types, since the backup function can be used to capture such) W 288 -39788 M 77.3 0 32 (files while permitting otherwise normal system function. The shelving or linking functions are) W 288 -41188 M 166.6 0 32 (also available for moving copies offline if this is desired. The ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 166.6 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 166.6 0 32 ( protection features are) W 288 -42588 M 12.2 0 32 (fully integrated with the DPS subsystem, so that deletion protection does not involve destroying) W 288 -43988 M (file security.) h 288 -46588 M 33.2 0 32 (3.) W /Times-BoldItalic-ISOLatin1 F 1200 o f 33.2 0 32 ( ) W /Times-Roman-ISOLatin1 F 1200 o f 33.2 0 32 (When space runs out, hasty decisions about what to keep online often must be made, and the) W 288 -47988 M 23.4 0 32 (risk of accidentally losing something important is high. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 23.4 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 23.4 0 32 (protects you from running out of) W 288 -49388 M 22.8 0 32 (space. Space can be monitored and older items in the wastebasket deleted if it is becoming low,) W 288 -50788 M 63.3 0 32 (without manual intervention. In addition,) W /Times-BoldItalic-ISOLatin1 F 1200 o f 63.3 0 32 ( Safety) W /Times-Roman-ISOLatin1 F 1200 o f 63.3 0 32 ( is able to "shelve" files so that they are stored) W 288 -52188 M 30.9 0 32 (anywhere else desired on your system, and they are brought back automatically when accessed.) W 288 -53588 M 69.0 0 32 (Thus no manual arrangements need be made for reloading them.) W /Times-BoldItalic-ISOLatin1 F 1200 o f 69.0 0 32 ( Safety) W /Times-Roman-ISOLatin1 F 1200 o f 69.0 0 32 ( can also keep the files) W 288 -54988 M 82.4 0 32 (on secondary storage, keeping a "soft link" to the files at their original site so they will be ac\255) W 288 -56388 M 109.6 0 32 (cessed on the secondary storage instead. Also,) W /Times-BoldItalic-ISOLatin1 F 1200 o f 109.6 0 32 ( Safety) W /Times-Roman-ISOLatin1 F 1200 o f 109.6 0 32 ( can store files compressed, or can store) W 288 -57788 M 0.1 0 32 (them on secondary storage so that read access is done on the secondary storage, but write access) W 288 -59188 M 55.3 0 32 (causes the file to be copied back to its original site. Standard VMS utilities are used for all file) W 288 -60588 M 176.8 0 32 (movement, and moved files are also directly accessible in their swapped sites with sta@ SAFETY013.A [EVERHART.JTDEMO]SAFETY.PS;3S.COM;91c>ndard) W 288 -61988 M (VMS utilities. The VMS file system remains completely valid at all times.) h 288 -63388 M /Times-BoldItalic-ISOLatin1 F 1200 o f 8.7 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 8.7 0 32 ( gives you a full complement of tools for dealing with space issues automatically accord\255) W -7200 7200 T showpage $P e %%Page: 2 2 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (2) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 35.3 0 32 (ing to your site policy. These facilities are safe and easily understood. A comprehensive utility) W 288 -2588 M 98.0 0 32 (is provided by which you set your site policy to select which files are and are not eligible for) W 288 -3988 M 130.5 0 32 (automatic shelving. Also you are provided with screen oritented utilities for selecting files to) W 288 -5388 M 264.3 0 32 (shelve at any time. Access to the shelved files of course causes unshelving if the normal) W 288 -6788 M 97.2 0 32 (shelving\255by\255copy mode is used. Also, a simple set of rules permit locating shelved or softlink) W 288 -8188 M 173.1 0 32 (target files at any time, even without ) W /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 173.1 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 173.1 0 32 ( running. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 173.1 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 173.1 0 32 ( at no time invalidates your file) W 288 -9588 M (structures for normal VMS access...not even for an instant.) h 288 -12188 M (The major subsystems of ) h /Times-BoldItalic-ISOLatin1 F 1200 o f (Safety) h /Times-Roman-ISOLatin1 F 1200 o f ( will now be described.) h 288 -14938 M n 1.167 o f (The Security Function System:) h 288 -16388 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f (Summary: ) h 288 -17788 M /Times-Roman-ISOLatin1 F 1200 o f 128.7 0 32 (Managing access to data critical to your business using ACL facilities in native VMS can be) W 288 -19188 M (cumbersome and still is vulnerable to intruders or people acting in excess of their authority.) h 288 -21788 M 151.3 0 32 (Want to be sure your critical records can't be accessed save at authorized places, times, and) W 288 -23188 M (with the programs that are supposed to access them \(instead of, say, COPY.EXE\)?) h 288 -25788 M (Want to have protection against privileged users bypasssing access controls?) h 288 -28388 M (Want to be able to password protect individual files?) h 288 -30988 M (Want to be able to invisibly hide selected files from unauthorized intruders?) h 288 -33588 M 23.7 0 32 (Have you read that attacks on machines can happen because a Java browser points at a web site) W 288 -34988 M 113.7 0 32 (that damages the system \(as has been reported in the press\)? Want to be able to protect) W /Times-Bold-ISOLatin1 F 1200 o f 113.7 0 32 ( your) W 288 -36388 M /Times-Roman-ISOLatin1 F 1200 o f (systems?) h 288 -38988 M 85.3 0 32 (The ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 85.3 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 85.3 0 32 (security subsystem builds in facilities permitting all of these, and is not vulnerable) W 288 -40388 M 45.1 0 32 (to intruders who disable the AUDIT facility as all other commercial packages which purport to) W 288 -41788 M (monitor access are.) h 288 -44388 M /Times-Bold-ISOLatin1 F 1200 o f 68.8 0 32 (Description:) W /Times-Roman-ISOLatin1 F 1200 o f 68.8 0 32 ( When your business depends on critical files, or when you are obliged by law or) W 288 -45788 M 66.3 0 32 (contract to maintain confidentiality of data on your system, in most cases the options provided) W 288 -47188 M (by VMS for securing this data can be cumbersome and far too coarse\255grained.) h 288 -49788 M 122.2 0 32 (The problem is that certain kinds of access to data are often needed by people in a shop, but) W 288 -51188 M 40.6 0 32 (other access should be prevented and audited. Moreover, the wide system access that can come) W 288 -52588 M 60.9 0 32 (as a result of having system privileges often does not mean that it should be used to browse or) W 288 -53988 M 4.1 0 32 (disclose data stored on the system. A system manager will in general not, for example, have any) W 288 -55388 M 54.8 0 32 (valid reason to browse the customer contact file, the payroll database, or a contract negotiation) W 288 -56788 M 74.8 0 32 (file, save in a few cases where these files need to be repaired or reloaded from backups. Like\255) W 288 -58188 M 53.7 0 32 (wise, a payroll clerk may need read and write access to the payroll file, but not in general with) W 288 -59588 M 117.2 0 32 (the COPY utility, nor from a modem, nor in most cases at 4AM. Finally, a person who must) W 288 -60988 M 5.3 0 32 (have privileges to design a driver and test it should ordinarily not have the run of the file system) W 288 -62388 M (as well.) h -7200 7200 T showpage $P e %%Page: 3 3 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (3) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 6912 -6913 T N 288 -1188 M 0.000000 0.000000 0.000000 q 107.6 0 32 (Given examples like these, it is easy to see that simple authorization of user access to files is) W 288 -2588 M 170.9 0 32 (inadequate. While it is possible to build systems that grant identifiers to attempt some extra) W 288 -3988 M 50.1 0 32 (control, these can be circumvented by privilege, and create very long ACLs which become im\255) W 288 -5388 M (possible to administer over a long period as users come and go.) h 288 -7988 M 26.5 0 32 (What is needed is a mechanism that is secure, cannot be circumvented by turning on privileges,) W 288 -9388 M 119.7 0 32 (and which provides a simple to administer and fine grained control that lets you specify who) W 288 -10788 M 58.3 0 32 (can get at your critical files, with what images, when, from where, and with what privileges. It) W 288 -12188 M 155.4 0 32 (is also desirable to be able to control what privileges the images ever see, and to be able to) W 288 -13588 M 25.1 0 32 (check critical command files or images for tampering before use, so that they cannot be used as) W 288 -14988 M 99.8 0 32 (back doors to your system. It should be possible to demand extra authentication for particular) W 288 -16388 M 54.1 0 32 (files as well, and to prevent a malicious user from even seeing a particularly critical file unless) W 288 -17788 M (he can be permitted access.) h 288 -20388 M 158.7 0 32 (The) W /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 158.7 0 32 ( Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 158.7 0 32 (security subsystem is a VMS add\255in security package which provides abilities to) W 288 -21788 M 139.3 0 32 (control security problems due to intruders, to damage or loss by system "insiders" \(users ex\255) W 288 -23188 M 197.6 0 32 (ceeding their authority\), and to covert code \(worms and viruses\). It provides a much easier) W 288 -24588 M 199.8 0 32 (management interface to handle security permissions than bare VMS and provides facilities) W 288 -25988 M 49.0 0 32 (permitting control over even privileged file accesses, for cases where there are privileged users) W 288 -27388 M 14.9 0 32 (whose access should be limited. Unlike systems which only intercept the AUDIT output, EACF) W 288 -28788 M 131.2 0 32 (can and does protect against ANY file accesses, and can protect files against deletion by un\255) W 288 -30188 M (authorized people or programs in real time as well as against access.) h 288 -32788 M (The) h /Times-BoldItalic-ISOLatin1 F 1200 o f ( Safety ) h /Times-Roman-ISOLatin1 F 1200 o f (security subsystem offers the following capabilities:) h 288 -35388 M 68.5 0 32 (* ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 68.5 0 32 (Files) W /Times-Roman-ISOLatin1 F 1200 o f 68.5 0 32 ( can be ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 68.5 0 32 (password protected individually.) W /Times-Roman-ISOLatin1 F 1200 o f 68.5 0 32 ( If a file open or delete is attempted for such a) W 288 -36788 M (file and no password has been entered, the open or delete fails.) h 288 -39388 M 48.1 0 32 (* Access can be controlled by ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 48.1 0 32 (time of day.) W /Times-Roman-ISOLatin1 F 1200 o f 48.1 0 32 ( Added protections can be in place only some of the) W 288 -40788 M 53.1 0 32 (time, access can be denied some times of day, write accesses can be denied at certain times, or) W 288 -42188 M (various other modalities of access can be allowed.) h 288 -44788 M 3.2 0 32 (* You can control ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 3.2 0 32 (who ) W /Times-Roman-ISOLatin1 F 1200 o f 3.2 0 32 (may access a file, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 3.2 0 32 (where ) W /Times-Roman-ISOLatin1 F 1200 o f 3.2 0 32 (they may be \(or may not be\), ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 3.2 0 32 (with what images) W 288 -46188 M /Times-Roman-ISOLatin1 F 1200 o f 88.0 0 32 (they may or may not access the file, and ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 88.0 0 32 (with what privileges ) W /Times-Roman-ISOLatin1 F 1200 o f 88.0 0 32 (the file may be accessed. Thus,) W 288 -47588 M 27.6 0 32 (for instance, it is trivial to allow a clerk access to the payroll file with the payroll programs, but) W 288 -48988 M 104.0 0 32 (not with COPY or BACKUP, not on dialup lines, and not if they have unexpected privileges.) W 288 -50388 M 88.1 0 32 (The privilege checks are helpful where there are consultants working on a system who should) W 288 -51788 M 174.3 0 32 (be denied access to sensitive corporate information but who need privileges to develop pro\255) W 288 -53188 M 94.0 0 32 (grams. With this system you can be sure your proprietary plans or data stay in house, and are) W 288 -54588 M 171.1 0 32 (available only to those with business reasons to need them, not to everyone needing system) W 288 -55988 M 33.1 0 32 (privileges for unrelated reasons. Unlike packages using the VMS Audit facility's output \(which) W 288 -57388 M 233.1 0 32 (can be silently turned off by public domain code\), ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 233.1 0 32 (Safety cannot ) W /Times-Italic-ISOLatin1 $ /Times-Italic & P /Times-Italic-ISOLatin1 F 1200 o f 233.1 0 32 (be circumvented by well) W 288 -58788 M (known means.) h 288 -61388 M /Times-Roman-ISOLatin1 F 1200 o f 66.8 0 32 (* You can) W /Times-BoldItalic-ISOLatin1 F 1200 o f 66.8 0 32 ( hide files) W /Times-Roman-ISOLatin1 F 1200 o f 66.8 0 32 ( from unauthorized access. If someone not authorized to access a file tries) W 288 -62788 M 44.9 0 32 (to open it, they can be set to open instead some other file anywhere on the system. Meanwhile,) W 288 -64188 M /Times-BoldItalic-ISOLatin1 F 1200 o f 131.1 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 131.1 0 32 ( generates alarms and can execute site specific commands to react to the illegal access) W -6912 6913 T showpage $P e %%Page: 4 4 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (4) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 11.1 0 32 (before it can happen. This can be helpful in gathering evidence of what a saboteur is up to with\255) W 288 -2588 M (out exposing real sensitive files to danger. Normal access goes through transparently.) h 288 -5188 M 144.9 0 32 (* You can arrange that opening a file) W /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 144.9 0 32 ( grants identifiers) W /Times-Roman-ISOLatin1 F 1200 o f 144.9 0 32 ( to the process that opens it and that) W 288 -6588 M 107.6 0 32 (closing it revokes these identifiers. Set an interpretive file to do this and set it to be openable) W 288 -7988 M 207.0 0 32 (only by the interpreter and you have a protected subsystem capability that works for 4GLs) W 288 -9388 M 99.9 0 32 (which are interpretive. \() W /Times-BoldItalic-ISOLatin1 F 1200 o f 99.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 99.9 0 32 ( identifier granting, privilege modification, and base priority al\255) W 288 -10788 M (teration is protected by a cryptographic authenticator preventing forging or duplication.\)) h 288 -13388 M 39.7 0 32 (* You can actively) W /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f 39.7 0 32 ( prevent) W /Times-Roman-ISOLatin1 F 1200 o f 39.7 0 32 ( ) W /Times-Bold-ISOLatin1 F 1200 o f 39.7 0 32 (covert code \() W /Times-BoldItalic-ISOLatin1 F 1200 o f 39.7 0 32 (viruses) W /Times-Bold-ISOLatin1 F 1200 o f 39.7 0 32 ( and) W /Times-BoldItalic-ISOLatin1 F 1200 o f 39.7 0 32 ( worms) W /Times-Bold-ISOLatin1 F 1200 o f 39.7 0 32 (\) ) W /Times-Roman-ISOLatin1 F 1200 o f 39.7 0 32 (from running in two ways. First,) W 288 -14788 M /Times-BoldItalic-ISOLatin1 F 1200 o f 131.4 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 131.4 0 32 ( can attach a cryptographic checksum to a file such that the file will not open if it has) W 288 -16188 M 56.3 0 32 (been tampered with. Second, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 56.3 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 56.3 0 32 ( can attach a privilege mask to a file which will replace ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 56.3 0 32 (all) W 288 -17588 M /Times-Roman-ISOLatin1 F 1200 o f 30.8 0 32 (privilege masks for the process that opens it. By setting such a mask to minimal privileges, you) W 288 -18988 M 68.8 0 32 (can ensure that an untrusted image will never see a very privileged environment, and thus will) W 288 -20388 M 73.6 0 32 (be unable to perform privilege\255based intrusions into your system even if run from a privileged) W 288 -21788 M (user's account.) h 288 -24388 M 159.7 0 32 (* You can ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 159.7 0 32 (control base priority ) W /Times-Roman-ISOLatin1 F 1200 o f 159.7 0 32 (by image. Thus, a particularly CPU intensive image can be) W 288 -25788 M (made to run at lower than normal base priority even if it is run interactively.) h 288 -28388 M 55.6 0 32 (* You can run a site\255chosen script to further refine selection criteria. \(Some facilities for doing) W 288 -29788 M (additional checking while an image runs exist also.\)) h 288 -32388 M 146.4 0 32 (* You can have "suspect" images set a "paranoid" mode in which all file opens are checked) W 288 -33788 M 75.5 0 32 (with a site script which can report or veto access. This can be used to track or regulate what a) W 288 -35188 M 22.2 0 32 (Java applet can do, in case someone happens to browse a web site which exploits a Java hole to) W 288 -36588 M (browse your system or damage it.) h 288 -39188 M /Times-BoldItalic-ISOLatin1 F 1200 o f 35.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 35.9 0 32 ( allows you to exempt c@ SAFETY013.A [EVERHART.JTDEMO]SAFETY.PS;3J_AXP6;7co>5ertain images \(e.g., disk defragmenters\) from access checks, and) W 288 -40588 M 56.7 0 32 (it is possible to put a process into a temporary override mode also where this is needed. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 56.7 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 56.7 0 32 ( ) W 288 -41988 M 46.1 0 32 (facilities are controllable per disk, and impose generally negligible overhead. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 46.1 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 46.1 0 32 ( will work) W 288 -43388 M 45.1 0 32 (with any VMS file structure using the normal driver interfaces. Also, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 45.1 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 45.1 0 32 ( marking informa\255) W 288 -44788 M 28.9 0 32 (tion resides sufficiently in kernel space that it cannot be removed from lower access modes, yet) W 288 -46188 M (it uses a limited amount of memory regardless of volume size.) h 288 -48788 M 32.9 0 32 (Best of all, the ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 32.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 32.9 0 32 ( protection is provided ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 32.9 0 32 (within the file system ) W /Times-Roman-ISOLatin1 F 1200 o f 32.9 0 32 (and does not depend on the) W 288 -50188 M 50.8 0 32 (audit facility. Thus it prevents file access or loss BEFORE it happens, and does not have to re\255) W 288 -51588 M 10.9 0 32 (act to it afterwards. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 10.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 10.9 0 32 ( allows all of its security provisions to be managed together in a sim\255) W 288 -52988 M 47.9 0 32 (ple screen\255oriented display in which files, or groups of files, can be tagged with the desired se\255) W 288 -54388 M 41.0 0 32 (curity profiles or edited as desired. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 41.0 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 41.0 0 32 ( protections are in addition to normal VMS file pro\255) W 288 -55788 M 212.8 0 32 (tections, which are left completely intact. Therefore, no existing security is broken or even) W 288 -57188 M 130.6 0 32 (altered. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 130.6 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 130.6 0 32 ( simply adds additional checking which finally provides a usable machine en\255) W 288 -58588 M (coding of "need to know" for the files where it matters.) h 288 -61188 M 288 -62588 M -7200 7200 T showpage $P e %%Page: 5 5 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (5) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1338 M n 1.167 o f 0.000000 0.000000 0.000000 q (The ) h /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1400 o f (Safety) h /Times-Roman-ISOLatin1 F 1400 o f ( Deletion Protection Subsystem.) h 288 -2788 M 288 -5388 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f 102.5 0 32 (Description: ) W /Times-Roman-ISOLatin1 F 1200 o f 102.5 0 32 (The) W /Times-BoldItalic-ISOLatin1 F 1200 o f 102.5 0 32 ( Safety) W /Times-Roman-ISOLatin1 F 1200 o f 102.5 0 32 ( Deletion Protection System is designed to provide protection against) W 288 -6788 M 25.7 0 32 (accidental deletion of file types chosen by the site, and to allow files to be routed by the system) W 288 -8188 M 77.7 0 32 (to backup media before they are finally removed from the system. This is accomplished by an) W 288 -9588 M (add\255in to the VMS file system so that security holes are not introduced by the system's action.) h 288 -12188 M 53.3 0 32 (The user interface is an ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 53.3 0 32 (UNDELETE ) W /Times-Roman-ISOLatin1 F 1200 o f 53.3 0 32 (command which permits one or more files to be restored) W 288 -13588 M 39.6 0 32 (to their original locations provided it is issued within the site\255chosen time window after the un\255) W 288 -14988 M 196.8 0 32 (desired deletion took place. In addition, an ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 196.8 0 32 (EXPUNGE ) W /Times-Roman-ISOLatin1 F 1200 o f 196.8 0 32 (command is provided which allows) W 288 -16388 M 113.5 0 32 (files to be deleted at once, irretrievably, where space for such is required. Provision for auto\255) W 288 -17788 M (matic safe\255storing of files prior to final deletion is present also in ) h /Times-BoldItalic-ISOLatin1 F 1200 o f (Safety ) h /Times-Roman-ISOLatin1 F 1200 o f (DPS.) h 288 -20388 M /Times-BoldItalic-ISOLatin1 F 1200 o f 125.7 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 125.7 0 32 (DPS is implemented as a VMS file system add\255in which functions by intercepting the) W 288 -21788 M 46.5 0 32 (DELETE operation and allowing the file to be deleted to be copied or renamed to a "wastebas\255) W 288 -23188 M 62.9 0 32 (ket" holding area pending final action, and to be disposed of by a disposal agent. The supplied) W 288 -24588 M 43.6 0 32 (agent will allow a site script to save the files if this is desired, and then finally deletes any files) W 288 -25988 M 28.6 0 32 (which have been deleted more than some number N seconds ago. If the UNDELETE command) W 288 -27388 M 84.3 0 32 (is given, the file\(s\) undeleted are replaced in their original sites. The supplied system can also) W 288 -28788 M 62.6 0 32 (be configured to rename files to a wastebasket area or to copy them directly, for undeletion by) W 288 -30188 M (systems people only. \(These options are faster than the site command file option.\)) h 288 -32788 M /Times-BoldItalic-ISOLatin1 F 1200 o f 71.3 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 71.3 0 32 (DPS can be configured to omit certain file types from deletion protection \(for example,) W 288 -34188 M 33.0 0 32 (*.LIS* or *.MAP* could be omitted\), to include only certain files in the protected sets, or both.) W 288 -35588 M 21.8 0 32 (This can reduce the overhead of saving files which are likely to be easily recreated, or tailor the) W 288 -36988 M (system for such actions as saving all mail files \(by selecting *.MAI for inclusion\).) h 288 -39588 M 102.0 0 32 (In addition, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 102.0 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 102.0 0 32 (DPS monitors free space on disks, and when a file create or extend would) W 288 -40988 M 35.2 0 32 (cause space exhaustion, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 35.2 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 35.2 0 32 (DPS runs a site script. By setting this script to perform final de\255) W 288 -42388 M 84.2 0 32 (letions, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 84.2 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 84.2 0 32 (DPS can be run in a purely automatic mode in which deleted files are saved as) W 288 -43788 M (long as possible, but never less than some minimum period \(e.g., 5 or 10 minutes\).) h 288 -46388 M /Times-BoldItalic-ISOLatin1 F 1200 o f 143.7 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 143.7 0 32 (DPS files can be stored in any location accessible to VMS. If they are renamed, they) W 288 -47788 M 187.4 0 32 (must reside on the same disk they came from. Otherwise they can be stored in any desired) W 288 -49188 M (place.) h 288 -51788 M /Times-BoldItalic-ISOLatin1 F 1200 o f 50.7 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 50.7 0 32 (DPS is installed and configured using a screen oriented configuration utility to set it up,) W 288 -53188 M (and basically runs unattended once installed.) h 288 -55938 M n 1.167 o f (The ) h /Times-BoldItalic-ISOLatin1 F 1400 o f (Safety) h /Times-Roman-ISOLatin1 F 1400 o f ( Hierarchical Storage Management Subsystem) h 288 -57838 M 288 -59388 M /Times-Bold-ISOLatin1 F 1200 o f (Description:) h 288 -61988 M /Times-BoldItalic-ISOLatin1 F 1200 o f 58.4 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 58.4 0 32 ( HSM is an add\255in to the VMS I/O system which provides VMS with the ability to have) W 288 -63388 M 28.9 0 32 (transparent file migration between active and near line storage in one or more steps. When files) W -7200 7200 T showpage $P e %%Page: 6 6 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (6) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 21.3 0 32 (are migrated \("shelved"\) from normal disk storage to backing storage, a marking is left on them) W 288 -2588 M 188.7 0 32 (which is automatically read so that when the file is opened, it is automatically retrieved by) W 288 -3988 M /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 78.5 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 78.5 0 32 ( HSM from nearline storage. Thus, a user or program need not be aware at all that such) W 288 -5388 M 7.2 0 32 (shelving occurred and no operator intervention is needed to perform the "unshelving" operation.) W 288 -6788 M 199.9 0 32 (This is distinguished from operation where a user must first request an archived file be re\255) W 288 -8188 M 190.0 0 32 (loaded, which requires detailed advance knowledge of such needs. The files appear to have) W 288 -9588 M 66.4 0 32 (been on disk all the time, but in fact the online disk space is conserved. It is also distinct from) W 288 -10988 M 19.0 0 32 (modes of operation where a file's location visibly changes. These, too, require that programs be) W 288 -12388 M 146.7 0 32 (told where the new site is, which can be awkward. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 146.7 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 146.7 0 32 ( provides total transparency of file) W 288 -13788 M 199.7 0 32 (migration, invisible to programs and users apart from small delays where files must be un\255) W 288 -15188 M (shelved.) h 288 -17788 M 42.8 0 32 (In addition, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 42.8 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 42.8 0 32 ( provides two unique "soft link" abilities which complement unshelving, and) W 288 -19188 M (manages volume space.) h 288 -21788 M (The basic capabilities of the ) h /Times-BoldItalic-ISOLatin1 F 1200 o f (Safety) h /Times-Roman-ISOLatin1 F 1200 o f ( HSM subsystem are these:) h 288 -24388 M 117.8 0 32 (* Files can be shelved \(by space\255making script or by command\) and unshelved automatically) W 288 -25788 M 46.9 0 32 (from nearline storage when they are opened. The process opening the files then sees a success\255) W 288 -27188 M 62.6 0 32 (ful open with no side effects. Shelved files can be stored in compressed form if this is desired,) W 288 -28588 M (and can be stored in any desired location.) h 288 -31188 M 91.8 0 32 (* Files can be "soft linked" to other files, even across disks. This mode of access can be used) W 288 -32588 M 239.9 0 32 (for a sort of permanent shelving on another volume by truncating the original file to zero) W 288 -33988 M 64.5 0 32 (blocks. The soft link operates extremely fast and causes the file in question to be opened in its) W 288 -35388 M 102.3 0 32 (new location, with the channel restored on close so that again a program observes no change,) W 288 -36788 M 96.1 0 32 (but the file is accessed transparently at its new site. Where the new site is a read/write device) W 288 -38188 M (this can be most effective.) h 288 -40788 M 15.1 0 32 (* Files can be "soft linked" in a "readonly" mode to another file. In this mode, suitable for read\255) W 288 -42188 M 53.5 0 32 (only backing storage, whenever a file is opened for read\255only access, it is transparently and in\255) W 288 -43588 M 50.9 0 32 (stantly opened on its linked site, wherever that may be on nearline storage. When such a file is) W 288 -44988 M 50.0 0 32 (opened for any kind of writing, however, it is treated as a shelved file and is unshelved and re\255) W 288 -46388 M 22.2 0 32 (placed on normal disk before the open is done. Thus any read/write access will find the file in a) W 288 -47788 M 59.3 0 32 (suitable location for its open to succeed, transparently. \(Notice that soft linked storage must be) W 288 -49188 M 95.0 0 32 (on disks and must not be in compressed form. The decompression would induce an unwanted) W 288 -50588 M (delay in access.\)) h 288 -53188 M 79.5 0 32 (* Disk space can be managed. Whenever an extend or create \(or inswap\) would not have ade\255) W 288 -54588 M 52.4 0 32 (quate space on disk, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 52.4 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 52.4 0 32 ( starts a "make\255space" script which is tailored by a fullscreen utility) W 288 -55988 M 43.8 0 32 (to match site policy. This policy can select files based on access time, size, name, or character\255) W 288 -57388 M (istics for space making.) h 288 -59988 M /Times-BoldItalic-ISOLatin1 F 1200 o f 99.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 99.9 0 32 ( tailoring can be done either for the entire system or for any number of disks at a time.) W 288 -61388 M 60.3 0 32 (Thus it is possible to have a multi\255tier migration strategy with each tier managed by a separate) W 288 -62788 M /Times-BoldItalic-ISOLatin1 F 1200 o f 204.6 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 204.6 0 32 ( HSM server, so that files may migrate toward slower storage but still be retrievable) W 288 -64188 M 52.5 0 32 (transparently no matter how far down the hierarchy they have migrated. Features of ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 52.5 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 52.5 0 32 ( can) W -7200 7200 T showpage $P e %%Page: 7 7 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (7) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q (be separately enabled or disabled as well on a per server basis should this be desired.) h 288 -3788 M 10.2 0 32 (File migration can also be handled by a simple command which runs a menu driven selection of) W 288 -5188 M 128.9 0 32 (how the file is to migrate and in which mode. Provision exists to regenerate file markings in) W 288 -6588 M 58.5 0 32 (case they are lost or to audit the markings. Also, it is possible to specify exempt images which) W 288 -7988 M 49.8 0 32 (are not subject to file unshelving, or to set a process temporarily as exempt from unshelving or) W 288 -9388 M 18.6 0 32 (softlinks, so that operations which must view the disk without triggering unshelving can be eas\255) W 288 -10788 M (ily run.) h 288 -13388 M 93.8 0 32 (Where it is chosen to run ) W /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 93.8 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 93.8 0 32 ( in a lights\255out fashion \(with ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 93.8 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 93.8 0 32 ( reacting to low disk situ\255) W 28@ SAFETY013.A [EVERHART.JTDEMO]SAFETY.PS;3J;5_A;11c"T8 -14788 M 158.7 0 32 (ations by emptying older deleted files from the wastebasket and/or file migration to backing) W 288 -16188 M 147.4 0 32 (store\), the policy chosen for controlling such setting is handled by a full\255screen, easily used,) W 288 -17588 M 43.4 0 32 (tool which sets the policy. Should still greater flexibility be needed, the scripts used for a num\255) W 288 -18988 M 57.7 0 32 (ber of operations are supplied together with a full description of the command line interface of) W 288 -20388 M 160.2 0 32 (the underlying software. This facilitates linking ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 160.2 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 160.2 0 32 ( file management functions with other) W 288 -21788 M (packages should such be desired.) h 288 -24388 M /Times-BoldItalic-ISOLatin1 F 1200 o f 101.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 101.9 0 32 ( can be run in a mode where there is essentially no overhead at all imposed \(just a few) W 288 -25788 M 71.1 0 32 (instructions added along some paths and no disk access\) for any files except those which need) W 288 -27188 M 123.1 0 32 (softlinks or possible unshelving. There is no limit to how many files may be so marked on a) W 288 -28588 M 197.8 0 32 (disk. A fullscreen setup script allows one to select the ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 197.8 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 197.8 0 32 ( run modes. Even if ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 197.8 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 197.8 0 32 ( is) W 288 -29988 M 162.1 0 32 (forced to examine all files for its markings, the overhead imposes no added disk access and) W 288 -31388 M 28.9 0 32 (costs only a tiny added time \(typically a percent or two\) in open intensive applications. In addi\255) W 288 -32788 M 86.1 0 32 (tion, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 86.1 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 86.1 0 32 ( can be turned off or back on at any convenient point should this be desired. \(This) W 288 -34188 M (must be done using special tools provided for use by those specially authorized to do so.\)) h 288 -36788 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f (Support:) h 288 -39388 M /Times-BoldItalic-ISOLatin1 F 1200 o f 52.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 52.9 0 32 ( runs on VAX VMS 5.5 or greater or AXP VMS 6.1 or greater. The same facilities exist) W 288 -40788 M 64.5 0 32 (across all systems. HSM must be installed on each cluster node of a VMScluster where it is to) W 288 -42188 M 33.0 0 32 (be used but imposes no restrictions on types of disk it works for. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 33.0 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 33.0 0 32 ( will work with any file) W 288 -43588 M 66.4 0 32 (structure used by VMS, so long as a disk class device is used to hold it. It is specifically NOT) W 288 -44988 M (limited to use with ODS\2552 disks.) h 288 -47588 M 288 -48988 M /Times-BoldItalic-ISOLatin1 F 1200 o f 37.2 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 37.2 0 32 ( is available for 45 day trial use licenses or can be licensed permanently. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 37.2 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 37.2 0 32 ( is avail\255) W 288 -50388 M 125.1 0 32 (able for 45 day trial use licenses or can be licensed permanently. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 125.1 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 125.1 0 32 ( is required on every) W 288 -51788 M 55.3 0 32 (node of a cluster using it, or its benefits will not be available on nodes not having the software) W 288 -53188 M 76.9 0 32 (running. Apart from this, there are no problems with having ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 76.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 76.9 0 32 ( available on only part of a) W 288 -54588 M (VMS cluster.) h 288 -57188 M 288 -59788 M /Times-BoldItalic-ISOLatin1 F 1200 o f (Safety) h /Times-Roman-ISOLatin1 F 1200 o f ( is brought to you by) h 288 -62388 M (General Cybernetic Engineering) h 288 -63788 M (18 Colburn Lane) h -7200 7200 T showpage $P e %%Page: 8 8 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (8) h 288 -2626 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2626 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q (Hollis, NH 03049) h 288 -2588 M (603 465 9517) h 288 -3988 M ( Everhart@GCE.Com \(or Everhart@gce.mv.com\)) h 288 -5388 M 288 -6826 M -7200 7200 T showpage $P e %%Trailer $D end restore % DEC_WRITE_dict %%Pages: 8 %%DocumentFonts: Times-Roman %%+ Times-BoldItalic %%+ Times-Bold %%+ Times-Italic *[EVERHART.JTDEMO]SAFETYSPD.PS;3+,.Z/ 4ZX- 0123KPWOY56+}7 (~89GHJ(%!PS-Adobe-2.1 %%Creator: DECwrite V3.0-11 %%+Copyright (c) 1990,1994 DIGITAL EQUIPMENT CORPORATION. %%+All Rights Reserved. %%DocumentFonts: (atend) %%EndComments %%BeginProcSet DEC_WRITE 1.11 save/DEC_WRITE_dict 150 dict def DEC_WRITE_dict begin/$D exch def/$I 0 def/$S 0 def/$C matrix def/$R matrix def/$L matrix def/$E matrix def/pat1{/px exch def/pa 8 array def 0 1 7{/py exch def/pw 4 string def 0 1 3{pw exch px py 1 getinterval putinterval}for pa py pw put}for}def/pat2{/pi exch def/cflag exch def save cflag 1 eq{eoclip}{clip}ifelse newpath{clippath pathbbox}stopped not{/ph exch def/pw exch def/py exch def/px exch def/px px 3072 div floor 3072 mul def/py py 3072 div floor 3072 mul def px py translate/pw pw px sub 3072 div floor 1 add cvi def/ph ph py sub 3072 div floor 1 add cvi def pw 3072 mul ph 3072 mul scale/pw pw 32 mul def/ph ph 32 mul def/px 0 def/py 0 def pw ph pi[pw 0 0 ph 0 0]{pa py get/px px 32 add def px pw ge{/px 0 def/py py 1 add 8 mod def}if}pi type/booleantype eq{imagemask}{image}ifelse}if restore}def/PS{/_op exch def/_np 8 string def 0 1 7{/_ii exch def/num _op _ii get def _np 7 _ii sub num -4 bitshift PX num 15 and 4 bitshift -4 bitshift PX 4 bitshift or put}for _np}def/PX{[15 7 11 3 13 5 9 1 14 6 10 2 12 4 8 0]exch get}def/FR{0.7200 0 $E defaultmatrix dtransform/yres exch def/xres exch def xres dup mul yres dup mul add sqrt}def/SU{/_sf exch def/_sa exch def/_cs exch def/_mm $C currentmatrix def/rm _sa $R rotate def/sm _cs dup $L scale def sm rm _mm _mm concatmatrix _mm concatmatrix pop 1 0 _mm dtransform/y1 exch def/x1 exch def/_vl x1 dup mul y1 dup mul add sqrt def/_fq FR _vl div def/_na y1 x1 atan def _mm 2 get _mm 1 get mul _mm 0 get _mm 3 get mul sub 0 gt{{neg}/_sf load concatprocs/_sf exch def}if _fq _na/_sf load setscreen}def/BO{/_yb exch def/_xb exch def/_bv _bs _yb _bw mul _xb 8 idiv add get def/_mk 1 7 _xb 8 mod sub bitshift def _bv _mk and 0 ne $I 1 eq xor}def/BF{DEC_WRITE_dict begin/_yy exch def/_xx exch def/_xi _xx 1 add 2 div _bp mul cvi def/_yi _yy 1 add 2 div _bp mul cvi def _xi _yi BO{/_nb _nb 1 add def 1}{/_fb _fb 1 add def 0}ifelse end}def/setpattern{/_cz exch def/_bw exch def/_bp exch def/_bs exch PS def/_nb 0 def/_fb 0 def _cz 0/BF load SU{}settransfer _fb _fb _nb add div setgray/$S 1 def}def/invertpattern{$S 0 eq{{1 exch sub}currenttransfer concatprocs settransfer}if}def/invertscreen{/$I 1 def/$S 0 def}def/revertscreen{/$I 0 def}def/setrect{/$h exch def/$w exch def/$y exch def/$x exch def newpath $x $y moveto $w $x add $y lineto $w $x add $h $y add lineto $x $h $y add lineto closepath}def/concatprocs{/_p2 exch cvlit def/_p1 exch cvlit def/_pn _p1 length _p2 length add array def _pn 0 _p1 putinterval _pn _p1 length _p2 putinterval _pn cvx}def/OF/findfont load def/findfont{dup DEC_WRITE_dict exch known{DEC_WRITE_dict exch get}if DEC_WRITE_dict/OF get exec}def mark/ISOLatin1Encoding 8#000 1 8#001{StandardEncoding exch get}for /emdash/endash 8#004 1 8#025{StandardEncoding exch get}for /quotedblleft/quotedblright 8#030 1 8#054{StandardEncoding exch get}for /minus 8#056 1 8#217 {StandardEncoding exch get}for/dotlessi 8#301 1 8#317{StandardEncoding exch get}for/space/exclamdown/cent/sterling/currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered /macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph /periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter /onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave /Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde /Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn /germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave /uacute/ucircumflex/udieresis/yacute/thorn/ydieresis 256 array astore def cleartomark /encodefont{findfont dup maxlength dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding exch def dup/FontName exch def currentdict definefont end}def/loads{/$/ISOLatin1Encoding load def/&/encodefont load def/*/invertpattern load def/+/revertscreen load def/-/invertscreen load def/:/concatprocs load def/^/setpattern load def/~/pat1 load def/_/pat2 load def/@/setrect load def/A/arcn load def/B/ashow load def/C/curveto load def/D/def load def/E/eofill load def/F/findfont load def/G/setgray load def/H/closepath load def/I/clip load def/J/fill load def/K/kshow load def/L/lineto load def/M/moveto load def/N/newpath load def/O/rotate load def/P/pop load def/R/grestore load def/S/gsave load def/T/translate load def/U/sub load def/V/div load def/W/widthshow load def/X/exch load def/Y/awidthshow load def/a/save load def/c/setlinecap load def/d/setdash load def/e/restore load def/f/setfont load def/g/initclip load def/h/show load def/i/setmiterlimit load def/j/setlinejoin load def/k/stroke load def/l/rlineto load def/m/rmoveto load def/n/currentfont load def/o/scalefont load def/p/currentpoint load def/q/setrgbcolor load def/r/currenttransfer load def/s/scale load def/t/setmatrix load def/u/settransfer load def/w/setlinewidth load def/x/matrix load def/y/currentmatrix load def}def end %%EndProcSet %%EndProlog %%BeginSetup DEC_WRITE_dict begin loads version cvi 23.0 gt { currentdict {dup type /arraytype eq {bind def} {pop pop} ifelse} forall} if 0.0100 0.0100 s %%EndSetup %%Page: 1 1 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (1) h 288 -2629 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -36056 2700 T 7200 -7200 T N 288 -1638 M n 1.500 o f 0.000000 0.000000 0.000000 q (Software ) h 288 -3638 M (Product ) h 288 -5638 M (Description) h 288 -8838 M /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1800 o f (Safety ) h /Times-Roman-ISOLatin1 F 1800 o f (V1.2 ) h 288 -10538 M n 0.778 o f (Comprehensive Data Safety for your VMS systems.) h 288 -13338 M (from General Cybernetic Engineering) h 288 -16138 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1400 o f (Executive Summary:) h 288 -18788 M /Times-Roman-ISOLatin1 F 1200 o f 58.9 0 32 (There are many perils your data faces, and loss of data can cost time, money, and jobs. Intrud\255) W 288 -20188 M 212.7 0 32 (ers, disgruntled insiders, or hidden flaws in installed software can destroy records. What is) W 288 -21588 M (more, mistaken losses occur constantly.) h 288 -24338 M /Times-BoldItalic-ISOLatin1 F 1400 o f (Safety ) h /Times-Roman-ISOLatin1 F 1400 o f (protects your system and your critical data in three ways:) h 288 -26988 M n 0.857 o f 12.5 0 32 (1. A comprehensive security system adds extra checks for access to VMS files so that access by) W 288 -28388 M 4.8 0 32 (intruders or by people in non\255job\255required ways can be regulated or prevented. This allows your) W 288 -29788 M 42.8 0 32 (business \255 critical data to finally be protected against misuse, tampering, or abuse. Access from) W 288 -31188 M 189.6 0 32 (programs doing background dirty work \(viruses, Trojans, worms, and the like, or even pro\255) W 288 -32588 M 140.5 0 32 (grams with security holes which can be exploited remotely \(like Java browsers\)\) can also be) W 288 -33988 M 138.7 0 32 (blocked without damaging normal use. This active protection works three ways: by ) W /Times-Italic-ISOLatin1 $ /Times-Italic & P /Times-Italic-ISOLatin1 F 1200 o f 138.7 0 32 (checking) W 288 -35388 M 38.0 0 32 (integrity ) W /Times-Roman-ISOLatin1 F 1200 o f 38.0 0 32 (of your files against tampering, by ) W /Times-Italic-ISOLatin1 F 1200 o f 38.0 0 32 (preventing) W /Times-Roman-ISOLatin1 F 1200 o f 38.0 0 32 ( of ) W /Times-Italic-ISOLatin1 F 1200 o f 38.0 0 32 (untrusted images) W /Times-Roman-ISOLatin1 F 1200 o f 38.0 0 32 ( from ) W /Times-Italic-ISOLatin1 F 1200 o f 38.0 0 32 (gaining privi\255) W 288 -36788 M (lege) h /Times-Roman-ISOLatin1 F 1200 o f (, and by ) h /Times-Italic-ISOLatin1 F 1200 o f (regulating ) h /Times-Roman-ISOLatin1 F 1200 o f (what other parts of the system an image may access.) h 288 -39388 M 33.2 0 32 (2. A deletion protection system provides a way to undelete files which were deleted by mistake) W 288 -40788 M 90.3 0 32 (and to optionally copy deleted files to backup facilities before removal. Unlike all other VMS) W 288 -42188 M 114.4 0 32 ("undelete" programs on the market, this facility does not rely on finding the disk storage that) W 288 -43588 M 57.7 0 32 (contained the file and reclaiming it before it is overwritten. Rather, it changes the semantics of) W 288 -44988 M 53.2 0 32 (the file system delete to use a "wastebasket" system and captures the file intact. Thus, this sys\255) W 288 -46388 M 85.3 0 32 (tem works reliably. No others do. This facility is also useful where you have a requirement to) W 288 -47788 M 126.0 0 32 (keep all files of a certain set of types, since the backup function can be used to capture such) W 288 -49188 M 77.3 0 32 (files while permitting otherwise normal system function. The shelving or linking functions are) W 288 -50588 M 166.6 0 32 (also available for moving copies offline if this is desired. The ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 166.6 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 166.6 0 32 ( protection features are) W 288 -51988 M 12.2 0 32 (fully integrated with the DPS subsystem, so that deletion protection does not involve destroying) W 288 -53388 M (file security.) h 288 -55988 M 33.2 0 32 (3.) W /Times-BoldItalic-ISOLatin1 F 1200 o f 33.2 0 32 ( ) W /Times-Roman-ISOLatin1 F 1200 o f 33.2 0 32 (When space runs out, hasty decisions about what to keep online often must be made, and the) W 288 -57388 M 23.4 0 32 (risk of accidentally losing something important is high. ) W /Times-BoldItalic-ISOLatin1 @ SAFETY013.A [EVERHART.JTDEMO]SAFETYSPD.PS;3_A;11Z] >F 1200 o f 23.4 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 23.4 0 32 (protects you from running out of) W 288 -58788 M 22.8 0 32 (space. Space can be monitored and older items in the wastebasket deleted if it is becoming low,) W 288 -60188 M 63.3 0 32 (without manual intervention. In addition,) W /Times-BoldItalic-ISOLatin1 F 1200 o f 63.3 0 32 ( Safety) W /Times-Roman-ISOLatin1 F 1200 o f 63.3 0 32 ( is able to "shelve" files so that they are stored) W 288 -61588 M 30.9 0 32 (anywhere else desired on your system, and they are brought back automatically when accessed.) W 288 -62988 M 69.0 0 32 (Thus no manual arrangements need be made for reloading them.) W /Times-BoldItalic-ISOLatin1 F 1200 o f 69.0 0 32 ( Safety) W /Times-Roman-ISOLatin1 F 1200 o f 69.0 0 32 ( can also keep the files) W -7200 7200 T showpage $P e %%Page: 2 2 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (2) h 288 -2629 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 82.4 0 32 (on secondary storage, keeping a "soft link" to the files at their original site so they will be ac\255) W 288 -2588 M 109.6 0 32 (cessed on the secondary storage instead. Also,) W /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 109.6 0 32 ( Safety) W /Times-Roman-ISOLatin1 F 1200 o f 109.6 0 32 ( can store files compressed, or can store) W 288 -3988 M 0.1 0 32 (them on secondary storage so that read access is done on the secondary storage, but write access) W 288 -5388 M 55.3 0 32 (causes the file to be copied back to its original site. Standard VMS utilities are used for all file) W 288 -6788 M 176.8 0 32 (movement, and moved files are also directly accessible in their swapped sites with standard) W 288 -8188 M (VMS utilities. The VMS file system remains completely valid at all times.) h 288 -9588 M 288 -10988 M /Times-BoldItalic-ISOLatin1 F 1200 o f 8.7 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 8.7 0 32 ( gives you a full complement of tools for dealing with space issues automatically accord\255) W 288 -12388 M 35.3 0 32 (ing to your site policy. These facilities are safe and easily understood. A comprehensive utility) W 288 -13788 M 98.0 0 32 (is provided by which you set your site policy to select which files are and are not eligible for) W 288 -15188 M 130.5 0 32 (automatic shelving. Also you are provided with screen oritented utilities for selecting files to) W 288 -16588 M 264.3 0 32 (shelve at any time. Access to the shelved files of course causes unshelving if the normal) W 288 -17988 M 97.2 0 32 (shelving\255by\255copy mode is used. Also, a simple set of rules permit locating shelved or softlink) W 288 -19388 M 173.1 0 32 (target files at any time, even without ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 173.1 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 173.1 0 32 ( running. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 173.1 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 173.1 0 32 ( at no time invalidates your file) W 288 -20788 M (structures for normal VMS access...not even for an instant.) h 288 -23388 M (In addition ) h /Times-BoldItalic-ISOLatin1 F 1200 o f (Safety) h /Times-Roman-ISOLatin1 F 1200 o f ( contains functions to speed file access and inhibit disk fragmentation.) h 288 -25988 M (The major subsystems of ) h /Times-BoldItalic-ISOLatin1 F 1200 o f (Safety) h /Times-Roman-ISOLatin1 F 1200 o f ( will now be described.) h 288 -28738 M n 1.167 o f (The Security Function System:) h 288 -30188 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f (Summary: ) h 288 -31588 M /Times-Roman-ISOLatin1 F 1200 o f 128.7 0 32 (Managing access to data critical to your business using ACL facilities in native VMS can be) W 288 -32988 M (cumbersome and still is vulnerable to intruders or people acting in excess of their authority.) h 288 -35588 M 151.3 0 32 (Want to be sure your critical records can't be accessed save at authorized places, times, and) W 288 -36988 M (with the programs that are supposed to access them \(instead of, say, COPY.EXE\)?) h 288 -39588 M (Want to have protection against privileged users bypasssing access controls?) h 288 -42188 M (Want to be able to password protect individual files?) h 288 -44788 M (Want to be able to invisibly hide selected files from unauthorized intruders?) h 288 -47388 M 23.7 0 32 (Have you read that attacks on machines can happen because a Java browser points at a web site) W 288 -48788 M 113.7 0 32 (that damages the system \(as has been reported in the press\)? Want to be able to protect) W /Times-Bold-ISOLatin1 F 1200 o f 113.7 0 32 ( your) W 288 -50188 M /Times-Roman-ISOLatin1 F 1200 o f (systems?) h 288 -52788 M 85.3 0 32 (The ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 85.3 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 85.3 0 32 (security subsystem builds in facilities permitting all of these, and is not vulnerable) W 288 -54188 M 45.1 0 32 (to intruders who disable the AUDIT facility as all other commercial packages which purport to) W 288 -55588 M (monitor access are.) h 288 -58188 M /Times-Bold-ISOLatin1 F 1200 o f 68.8 0 32 (Description:) W /Times-Roman-ISOLatin1 F 1200 o f 68.8 0 32 ( When your business depends on critical files, or when you are obliged by law or) W 288 -59588 M 66.3 0 32 (contract to maintain confidentiality of data on your system, in most cases the options provided) W 288 -60988 M (by VMS for securing this data can be cumbersome and far too coarse\255grained.) h 288 -63588 M 122.2 0 32 (The problem is that certain kinds of access to data are often needed by people in a shop, but) W -7200 7200 T showpage $P e %%Page: 3 3 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (3) h 288 -2629 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -36056 2700 T 6912 -6913 T N 288 -1188 M 0.000000 0.000000 0.000000 q 40.6 0 32 (other access should be prevented and audited. Moreover, the wide system access that can come) W 288 -2588 M 60.9 0 32 (as a result of having system privileges often does not mean that it should be used to browse or) W 288 -3988 M 4.1 0 32 (disclose data stored on the system. A system manager will in general not, for example, have any) W 288 -5388 M 54.8 0 32 (valid reason to browse the customer contact file, the payroll database, or a contract negotiation) W 288 -6788 M 74.8 0 32 (file, save in a few cases where these files need to be repaired or reloaded from backups. Like\255) W 288 -8188 M 53.7 0 32 (wise, a payroll clerk may need read and write access to the payroll file, but not in general with) W 288 -9588 M 117.2 0 32 (the COPY utility, nor from a modem, nor in most cases at 4AM. Finally, a person who must) W 288 -10988 M 5.3 0 32 (have privileges to design a driver and test it should ordinarily not have the run of the file system) W 288 -12388 M (as well.) h 288 -14988 M 107.6 0 32 (Given examples like these, it is easy to see that simple authorization of user access to files is) W 288 -16388 M 170.9 0 32 (inadequate. While it is possible to build systems that grant identifiers to attempt some extra) W 288 -17788 M 50.1 0 32 (control, these can be circumvented by privilege, and create very long ACLs which become im\255) W 288 -19188 M (possible to administer over a long period as users come and go.) h 288 -21788 M 26.5 0 32 (What is needed is a mechanism that is secure, cannot be circumvented by turning on privileges,) W 288 -23188 M 119.7 0 32 (and which provides a simple to administer and fine grained control that lets you specify who) W 288 -24588 M 58.3 0 32 (can get at your critical files, with what images, when, from where, and with what privileges. It) W 288 -25988 M 155.4 0 32 (is also desirable to be able to control what privileges the images ever see, and to be able to) W 288 -27388 M 25.1 0 32 (check critical command files or images for tampering before use, so that they cannot be used as) W 288 -28788 M 99.8 0 32 (back doors to your system. It should be possible to demand extra authentication for particular) W 288 -30188 M 54.1 0 32 (files as well, and to prevent a malicious user from even seeing a particularly critical file unless) W 288 -31588 M (he can be permitted access.) h 288 -34188 M 158.7 0 32 (The) W /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 158.7 0 32 ( Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 158.7 0 32 (security subsystem is a VMS add\255in security package which provides abilities to) W 288 -35588 M 139.3 0 32 (control security problems due to intruders, to damage or loss by system "insiders" \(users ex\255) W 288 -36988 M 197.6 0 32 (ceeding their authority\), and to covert code \(worms and viruses\). It provides a much easier) W 288 -38388 M 199.8 0 32 (management interface to handle security permissions than bare VMS and provides facilities) W 288 -39788 M 49.0 0 32 (permitting control over even privileged file accesses, for cases where there are privileged users) W 288 -41188 M 14.9 0 32 (whose access should be limited. Unlike systems which only intercept the AUDIT output, EACF) W 288 -42588 M 131.2 0 32 (can and does protect against ANY file accesses, and can protect files against deletion by un\255) W 288 -43988 M (authorized people or programs in real time as well as against access.) h 288 -46588 M (The) h /Times-BoldItalic-ISOLatin1 F 1200 o f ( Safety ) h /Times-Roman-ISOLatin1 F 1200 o f (security subsystem offers the following capabilities:) h 288 -49188 M 68.5 0 32 (* ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 68.5 0 32 (Files) W /Times-Roman-ISOLatin1 F 1200 o f 68.5 0 32 ( can be ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 68.5 0 32 (password protected individually.) W /Times-Roman-ISOLatin1 F 1200 o f 68.5 0 32 ( If a file open or delete is attempted for such a) W 288 -50588 M (file and no password has been entered, the open or delete fails.) h 288 -53188 M 48.1 0 32 (* Access can be controlled by ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 48.1 0 32 (time of day.) W /Times-Roman-ISOLatin1 F 1200 o f 48.1 0 32 ( Added protections can be in place only some of the) W 288 -54588 M 53.1 0 32 (time, access can be denied some times of day, write accesses can be denied at certain times, or) W 288 -55988 M (various other modalities of access can be allowed.) h 288 -58588 M 3.2 0 32 (* You can control ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 3.2 0 32 (who ) W /Times-Roman-ISOLatin1 F 1200 o f 3.2 0 32 (may access a file, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 3.2 0 32 (where ) W /Times-Roman-ISOLatin1 F 1200 o f 3.2 0 32 (they may be \(or may not be\), ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 3.2 0 32 (with what images) W 288 -59988 M /Times-Roman-ISOLatin1 F 1200 o f 88.0 0 32 (they may or may not access the file, and ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 88.0 0 32 (with what privileges ) W /Times-Roman-ISOLatin1 F 1200 o f 88.0 0 32 (the file may be accessed. Thus,) W 288 -61388 M 27.6 0 32 (for instance, it is trivial to allow a clerk access to the payroll file with the payroll programs, but) W 288 -62788 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f 95.1 0 32 (not ) W /Times-Roman-ISOLatin1 F 1200 o f 95.1 0 32 (with COPY or BACKUP, not on dialup lines, and not if they have unexpected privileges.) W 288 -64188 M 221.5 0 32 (The privilege checks can be helpful where there are consultants working on a system who) W -6912 6913 T showpage $P e %%Page: 4 4 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (4) h 288 -2629 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q 81.8 0 32 (should be denied access to sensitive corporate information but who need privileges to develop) W 288 -2588 M 124.9 0 32 (programs, or in similar circumstances. You specify what privileges are permitted for opening) W 288 -3988 M 84.3 0 32 (the file, and ) W /Times-Italic-ISOLatin1 $ /Times-Italic & P /Times-Italic-ISOLatin1 F 1200 o f 84.3 0 32 (a process with excess privileges is) W /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 84.3 0 32 ( prevented) W /Times-Italic-ISOLatin1 F 1200 o f 84.3 0 32 ( from access) W /Times-Roman-ISOLatin1 F 1200 o f 84.3 0 32 (. Vital business data ac\255) W 288 -5388 M 99.6 0 32 (cess should not always be implied by someone having privilege. With this system you can be) W 288 -6788 M 66.5 0 32 (sure your proprietary plans or data stay in house, and are available only to those with business) W 288 -8188 M 82.0 0 32 (reasons to need them, not to everyone needing system privileges for unrelated reasons. Unlike) W 288 -9588 M 44.1 0 32 (packages using the VMS Audit facility's output \(which can be silently turned off by public do\255) W 288 -10988 M 87.9 0 32 (main code\), ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 87.9 0 32 (Safety cannot ) W /Times-Italic-ISOLatin1 F 1200 o f 87.9 0 32 (be circumvented by well known means.) W /Times-Roman-ISOLatin1 F 1200 o f 87.9 0 32 ( Its controls are designed to) W 288 -12388 M (leave evidence of what was done with them as well.) h 288 -14988 M 66.8 0 32 (* You can) W /Times-BoldItalic-ISOLatin1 F 1200 o f 66.8 0 32 ( hide files) W /Times-Roman-ISOLatin1 F 1200 o f 66.8 0 32 ( from unauthorized access. If someone not authorized to access a file tries) W 288 -16388 M 44.9 0 32 (to open it, they can be set to open instead some other file anywhere on the system. Meanwhile,) W 288 -17788 M /Times-BoldItalic-ISOLatin1 F 1200 o f 131.1 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 131.1 0 32 ( generates alarms and can execute site specific commands to react to the illegal access) W 288 -19188 M 11.1 0 32 (before it can happen. This can be helpful in gathering evidence of what a saboteur is up to with\255) W 288 -20588 M (out exposing real sensitive files to danger. Normal access goes through transparently.) h 288 -23188 M 144.9 0 32 (* You can arrange that opening a file) W /Times-BoldItalic-ISOLatin1 F 1200 o f 144.9 0 32 ( grants identifiers) W /Times-Roman-ISOLatin1 F 1200 o f 144.9 0 32 ( to the process that opens it and that) W 288 -24588 M 107.6 0 32 (closing it revokes these identifiers. Set an interpretive file to do this and set it to be openable) W 288 -25988 M 207.0 0 32 (only by the interpreter and you have a protected subsystem capability that works for 4GLs) W 288 -27388 M 99.9 0 32 (which are interpretive. \() W /Times-BoldItalic-ISOLatin1 F 1200 o f 99.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 99.9 0 32 ( identifier granting, privilege modification, and base priority al\255) W 288 -28788 M (teration is protected by a cryptographic authenticator preventing forging or duplication.\)) h 288 -31388 M 39.7 0 32 (* You can actively) W /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times@ SAFETY013.A [EVERHART.JTDEMO]SAFETYSPD.PS;3;4F;1Z>4-Bold-ISOLatin1 F 1200 o f 39.7 0 32 ( prevent) W /Times-Roman-ISOLatin1 F 1200 o f 39.7 0 32 ( ) W /Times-Bold-ISOLatin1 F 1200 o f 39.7 0 32 (covert code \() W /Times-BoldItalic-ISOLatin1 F 1200 o f 39.7 0 32 (viruses) W /Times-Bold-ISOLatin1 F 1200 o f 39.7 0 32 ( and) W /Times-BoldItalic-ISOLatin1 F 1200 o f 39.7 0 32 ( worms) W /Times-Bold-ISOLatin1 F 1200 o f 39.7 0 32 (\) ) W /Times-Roman-ISOLatin1 F 1200 o f 39.7 0 32 (from running in two ways. First,) W 288 -32788 M /Times-BoldItalic-ISOLatin1 F 1200 o f 131.4 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 131.4 0 32 ( can attach a cryptographic checksum to a file such that the file will not open if it has) W 288 -34188 M 56.3 0 32 (been tampered with. Second, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 56.3 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 56.3 0 32 ( can attach a privilege mask to a file which will replace ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 56.3 0 32 (all) W 288 -35588 M /Times-Roman-ISOLatin1 F 1200 o f 30.8 0 32 (privilege masks for the process that opens it. By setting such a mask to minimal privileges, you) W 288 -36988 M 68.8 0 32 (can ensure that an untrusted image will never see a very privileged environment, and thus will) W 288 -38388 M 73.6 0 32 (be unable to perform privilege\255based intrusions into your system even if run from a privileged) W 288 -39788 M (user's account.) h 288 -42388 M 159.7 0 32 (* You can ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 159.7 0 32 (control base priority ) W /Times-Roman-ISOLatin1 F 1200 o f 159.7 0 32 (by image. Thus, a particularly CPU intensive image can be) W 288 -43788 M (made to run at lower than normal base priority even if it is run interactively.) h 288 -46388 M 55.6 0 32 (* You can run a site\255chosen script to further refine selection criteria. \(Some facilities for doing) W 288 -47788 M (additional checking while an image runs exist also.\)) h 288 -50388 M 78.3 0 32 (* You can have "suspect" images set a "low\255integrity\255image" mode in which all file opens are) W 288 -51788 M 37.2 0 32 (checked with a site script which can report or veto access. This can be used to track or regulate) W 288 -53188 M 29.7 0 32 (what a Java applet can do, in case someone happens to browse a web site which exploits a Java) W 288 -54588 M (hole to browse your system or damage it.) h 288 -57188 M /Times-BoldItalic-ISOLatin1 F 1200 o f 35.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 35.9 0 32 ( allows you to exempt certain images \(e.g., disk defragmenters\) from access checks, and) W 288 -58588 M 121.4 0 32 (it is possible to put a process into a temporary override mode also \(leaving a record this was) W 288 -59988 M 159.5 0 32 (done\) where this is needed. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 159.5 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 159.5 0 32 ( facilities are controllable per disk, and impose generally) W 288 -61388 M 59.7 0 32 (negligible overhead. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 59.7 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 59.7 0 32 ( will work with any VMS file structure using the normal driver in\255) W 288 -62788 M 35.6 0 32 (terfaces. Also, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 35.6 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 35.6 0 32 ( marking information resides sufficiently in kernel space that it cannot be) W 288 -64188 M 95.5 0 32 (removed from lower access modes, yet it uses a limited amount of memory regardless of vol\255) W -7200 7200 T showpage $P e %%Page: 5 5 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (5) h 288 -2629 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -36056 2700 T 7200 -7200 T N 288 -1188 M 0.000000 0.000000 0.000000 q (ume size.) h 288 -3788 M 32.9 0 32 (Best of all, the ) W /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 32.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 32.9 0 32 ( protection is provided ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 32.9 0 32 (within the file system ) W /Times-Roman-ISOLatin1 F 1200 o f 32.9 0 32 (and does not depend on the) W 288 -5188 M 70.5 0 32 (audit facility. Thus it prevents file access or loss) W /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f 70.5 0 32 ( before) W /Times-Roman-ISOLatin1 F 1200 o f 70.5 0 32 ( it happens, and does not have to react) W 288 -6588 M 70.6 0 32 (to it afterwards. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 70.6 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 70.6 0 32 ( allows all of its security provisions to be managed together in a simple) W 288 -7988 M 8.9 0 32 (screen\255oriented display in which files, or groups of files, can be tagged with the desired security) W 288 -9388 M 10.2 0 32 (profiles or edited as desired. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 10.2 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 10.2 0 32 ( protections are in addition to normal VMS file protections,) W 288 -10788 M 248.8 0 32 (which are left completely intact. Therefore, no existing security is broken or even altered.) W 288 -12188 M /Times-BoldItalic-ISOLatin1 F 1200 o f 107.5 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 107.5 0 32 ( simply adds additional checking which finally provides a usable machine encoding of) W 288 -13588 M ("need to know" for the files where it matters.) h 288 -16188 M 288 -17588 M 288 -20338 M n 1.167 o f (The ) h /Times-BoldItalic-ISOLatin1 F 1400 o f (Safety) h /Times-Roman-ISOLatin1 F 1400 o f ( Deletion Protection Subsystem.) h 288 -21788 M 288 -24388 M /Times-Bold-ISOLatin1 F 1200 o f 102.5 0 32 (Description: ) W /Times-Roman-ISOLatin1 F 1200 o f 102.5 0 32 (The) W /Times-BoldItalic-ISOLatin1 F 1200 o f 102.5 0 32 ( Safety) W /Times-Roman-ISOLatin1 F 1200 o f 102.5 0 32 ( Deletion Protection System is designed to provide protection against) W 288 -25788 M 25.7 0 32 (accidental deletion of file types chosen by the site, and to allow files to be routed by the system) W 288 -27188 M 77.7 0 32 (to backup media before they are finally removed from the system. This is accomplished by an) W 288 -28588 M (add\255in to the VMS file system so that security holes are not introduced by the system's action.) h 288 -31188 M 53.3 0 32 (The user interface is an ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 53.3 0 32 (UNDELETE ) W /Times-Roman-ISOLatin1 F 1200 o f 53.3 0 32 (command which permits one or more files to be restored) W 288 -32588 M 39.6 0 32 (to their original locations provided it is issued within the site\255chosen time window after the un\255) W 288 -33988 M 196.8 0 32 (desired deletion took place. In addition, an ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 196.8 0 32 (EXPUNGE ) W /Times-Roman-ISOLatin1 F 1200 o f 196.8 0 32 (command is provided which allows) W 288 -35388 M 113.5 0 32 (files to be deleted at once, irretrievably, where space for such is required. Provision for auto\255) W 288 -36788 M (matic safe\255storing of files prior to final deletion is present also in ) h /Times-BoldItalic-ISOLatin1 F 1200 o f (Safety ) h /Times-Roman-ISOLatin1 F 1200 o f (DPS.) h 288 -39388 M /Times-BoldItalic-ISOLatin1 F 1200 o f 125.7 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 125.7 0 32 (DPS is implemented as a VMS file system add\255in which functions by intercepting the) W 288 -40788 M 46.5 0 32 (DELETE operation and allowing the file to be deleted to be copied or renamed to a "wastebas\255) W 288 -42188 M 62.9 0 32 (ket" holding area pending final action, and to be disposed of by a disposal agent. The supplied) W 288 -43588 M 43.6 0 32 (agent will allow a site script to save the files if this is desired, and then finally deletes any files) W 288 -44988 M 28.6 0 32 (which have been deleted more than some number N seconds ago. If the UNDELETE command) W 288 -46388 M 84.3 0 32 (is given, the file\(s\) undeleted are replaced in their original sites. The supplied system can also) W 288 -47788 M 62.6 0 32 (be configured to rename files to a wastebasket area or to copy them directly, for undeletion by) W 288 -49188 M (systems people only. \(These options are faster than the site command file option.\)) h 288 -51788 M /Times-BoldItalic-ISOLatin1 F 1200 o f 71.3 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 71.3 0 32 (DPS can be configured to omit certain file types from deletion protection \(for example,) W 288 -53188 M 33.0 0 32 (*.LIS* or *.MAP* could be omitted\), to include only certain files in the protected sets, or both.) W 288 -54588 M 21.8 0 32 (This can reduce the overhead of saving files which are likely to be easily recreated, or tailor the) W 288 -55988 M (system for such actions as saving all mail files \(by selecting *.MAI for inclusion\).) h 288 -58588 M 102.0 0 32 (In addition, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 102.0 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 102.0 0 32 (DPS monitors free space on disks, and when a file create or extend would) W 288 -59988 M 35.2 0 32 (cause space exhaustion, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 35.2 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 35.2 0 32 (DPS runs a site script. By setting this script to perform final de\255) W 288 -61388 M 84.2 0 32 (letions, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 84.2 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 84.2 0 32 (DPS can be run in a purely automatic mode in which deleted files are saved as) W 288 -62788 M (long as possible, but never less than some minimum period \(e.g., 5 or 10 minutes\).) h -7200 7200 T showpage $P e %%Page: 6 6 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (6) h 288 -2629 M -43342 74700 T 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -36056 2700 T 7200 -7200 T N 288 -1188 M /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q 143.7 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 143.7 0 32 (DPS files can be stored in any location accessible to VMS. If they are renamed, they) W 288 -2588 M 187.4 0 32 (must reside on the same disk they came from. Otherwise they can be stored in any desired) W 288 -3988 M (place.) h 288 -6588 M /Times-BoldItalic-ISOLatin1 F 1200 o f 50.7 0 32 (Safety ) W /Times-Roman-ISOLatin1 F 1200 o f 50.7 0 32 (DPS is installed and configured using a screen oriented configuration utility to set it up,) W 288 -7988 M (and basically runs unattended once installed.) h 288 -10738 M 288 -12338 M 288 -15138 M n 1.167 o f (The ) h /Times-BoldItalic-ISOLatin1 F 1400 o f (Safety) h /Times-Roman-ISOLatin1 F 1400 o f ( Storage Migration Subsystem) h 288 -17038 M 288 -18588 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f (Description:) h 288 -21188 M /Times-BoldItalic-ISOLatin1 F 1200 o f 68.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 68.9 0 32 ( has the ability to move files to secondary storage and automatically retrieve them when) W 288 -22588 M 58.9 0 32 (they are accessed. This backing can be similar to what HSM systems call "shelving", though it) W 288 -23988 M 61.3 0 32 (can be done in multiple levels, or it can be done in a way which permits files moved to secon\255) W 288 -25388 M 73.5 0 32 (dary storage to be accessed there as though the files remained online. This resembles what are) W 288 -26788 M 22.0 0 32 (called "soft links" in Unix systems, in that file opens are transparently redirected to a file stored) W 288 -28188 M 71.2 0 32 (somewhere else reachable on the system, and the channel reset to the original device on close.) W 288 -29588 M 34.6 0 32 (A "readonly link" mode acts like a soft link for readonly access, and like an unshelve operation) W 288 -30988 M 31.1 0 32 (where a file is opened read/write, should this be desired. Full control over this shelving and un\255) W 288 -32388 M (shelving is provided.) h 288 -34988 M 87.9 0 32 (This provides a great deal of flexibility in reclaiming space when the ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 87.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 87.9 0 32 ( space monitoring) W 288 -36388 M 50.9 0 32 (function detects that space is needed. Not only can previously deleted files be finally moved to) W 288 -37788 M 110.2 0 32 (backup destinations and deleted, but the system can migrate seldom accessed files to nearline) W 288 -39188 M (storage transparently. The site policy can drive this, or utilities provided can be used instead.) h 288 -41788 M 93.8 0 32 (Where it is chosen to run ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 93.8 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 93.8 0 32 ( in a lights\255out fashion \(with ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 93.8 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 93.8 0 32 ( reacting to low disk situ\255) W 288 -43188 M 158.7 0 32 (ations by emptying older deleted files from the wastebasket and/or file migration to backing) W 288 -44588 M 147.4 0 32 (store\), the policy chosen for controlling such setting is handled by a full\255screen, easily used,) W 288 -45988 M 43.4 0 32 (tool which sets the policy. Should still greater flexibility be needed, the scripts used for a num\255) W 288 -47388 M 57.7 0 32 (ber of operations are supplied together with a full description of the command line interface of) W 288 -48788 M 160.2 0 32 (the underlying software. This facilitates linking ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 160.2 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 160.2 0 32 ( file management functions with other) W 288 -50188 M (packages should such be desired.) h 288 -52788 M /Times-BoldItalic-ISOLatin1 F 1200 o f 101.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 101.9 0 32 ( can be run in a mode where there is essentially no overhead at all imposed \(just a few) W 288 -54188 M 71.1 0 32 (instructions added along some paths and no disk access\) for any files except those which need) W 288 -55588 M 123.1 0 32 (softlinks or possible unshelving. There is no limit to how many files may be so marked on a) W 288 -56988 M 197.8 0 32 (disk. A fullscreen setup script allows one to select the ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 197.8 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 197.8 0 32 ( run modes. Even if ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 197.8 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 197.8 0 32 ( is) W 288 -58388 M 162.1 0 32 (forced to examine all files for its markings, the overhead imposes no added disk access and) W 288 -59788 M 28.9 0 32 (costs only a tiny added time \(typically a percent or two\) in open intensive applications. In addi\255) W 288 -61188 M 86.1 0 32 (tion, ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 86.1 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 86.1 0 32 ( can be turned off or back on at any convenient point should this be desired. \(This) W 288 -62588 M (must be done using special tools provided for use by those specially authorized to do so.\)) h -7200 7200 T showpage $P e %%Page: 7 7 /$P a D g N 0 79200 T 7200 -2700 T N 288 -1188 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -7200 2700 T 43342 -74700 T N 9770 -1188 M 0.000000 0.000000 0.000000 q (7) h 288 -2629 M -43342 74700 @ SAFETY013.A [EVERHART.JTDEMO]SAFETYSPD.PS;3;4F;1Zq{ ST 7200 -74700 T N 288 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -7200 74700 T 36056 -2700 T N 17356 -1188 M 0.000000 0.000000 0.000000 q ( ) h 288 -2629 M -36056 2700 T 7200 -7200 T N 288 -1188 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f 0.000000 0.000000 0.000000 q (Support:) h 288 -3788 M /Times-BoldItalic-ISOLatin1 $ /Times-BoldItalic & P /Times-BoldItalic-ISOLatin1 F 1200 o f 52.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 52.9 0 32 ( runs on VAX VMS 5.5 or greater or AXP VMS 6.1 or greater. The same facilities exist) W 288 -5188 M 64.5 0 32 (across all systems. HSM must be installed on each cluster node of a VMScluster where it is to) W 288 -6588 M 33.0 0 32 (be used but imposes no restrictions on types of disk it works for. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 33.0 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 33.0 0 32 ( will work with any file) W 288 -7988 M 66.4 0 32 (structure used by VMS, so long as a disk class device is used to hold it. It is specifically NOT) W 288 -9388 M (limited to use with ODS\2552 disks.) h 288 -11988 M 288 -13388 M /Times-BoldItalic-ISOLatin1 F 1200 o f 37.2 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 37.2 0 32 ( is available for 45 day trial use licenses or can be licensed permanently. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 37.2 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 37.2 0 32 ( is avail\255) W 288 -14788 M 125.1 0 32 (able for 45 day trial use licenses or can be licensed permanently. ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 125.1 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 125.1 0 32 ( is required on every) W 288 -16188 M 55.3 0 32 (node of a cluster using it, or its benefits will not be available on nodes not having the software) W 288 -17588 M 76.9 0 32 (running. Apart from this, there are no problems with having ) W /Times-BoldItalic-ISOLatin1 F 1200 o f 76.9 0 32 (Safety) W /Times-Roman-ISOLatin1 F 1200 o f 76.9 0 32 ( available on only part of a) W 288 -18988 M (VMS cluster.) h 288 -21588 M 288 -24188 M /Times-BoldItalic-ISOLatin1 F 1200 o f (Safety) h /Times-Roman-ISOLatin1 F 1200 o f ( is brought to you by) h 288 -26788 M (General Cybernetic Engineering) h 288 -28188 M (18 Colburn Lane) h 288 -29588 M (Hollis, NH 03049) h 288 -30988 M (603 465 9517 voice) h 288 -32388 M (603 465 9518 fax) h 288 -33788 M 288 -35188 M (For orders, contact the above address or Sales@GCE.COM.) h 288 -36588 M (For technical information contact Info@GCE.Com) h 288 -39188 M 288 -40588 M (For support contact Support@GCE.Com) h 288 -43188 M 288 -44588 M 288 -45988 M 288 -47429 M -7200 7200 T showpage $P e %%Trailer $D end restore % DEC_WRITE_dict %%Pages: 7 %%DocumentFonts: Times-Roman %%+ Times-BoldItalic %%+ Times-Bold %%+ Times-Italic  *[EVERHART.JTDEMO]SAFETYSPD.RTF;1+,.Q/ 4QK- 0123 KPWOL56ݔ7L|89GHJ0{\rtf1\ansi \deflang1024 {\fonttbl {\f0\fswiss AvantGarde;}{\f1\froman Bookman;}{\f2\fmodern Courier;}{ \f3\fswiss Helvetica;}{\f4\fswiss Helvetica Condensed;}{\f5 \fswiss Helvetica-Narrow;}{\f6\froman Lubalin Graph;}{\f7 \froman NewCenturySchlbk;}{\f8\froman Palatino;}{\f9\froman Souvenir;}{\f10 \ftech Symbol;}{\f11\froman Times-New-Roman;}{\f12\fscript ZapfChancery;}{\f13 \fdecor Zapf Dingbats;}{\f14\ftech DECtech;}{\f15\fswiss Arial;}{\f16 \fnil Arial Narrow;}{\f17\fnil Baskerville Old Face;}{\f18\fnil Bell MT;}{\f19 \froman Book Antiqua;}{\f20\froman Bookman Old Style;}{\f21\fnil Braquadocio;}{ \f22\fnil BriemScript;}{\f23\fnil Britannic;}{\f24\fnil Castellar;}{\f25 \fnil Centaur;}{\f26\fswiss Century Gothic;}{\f27\fnil Century Schoolbook;}{\f28 \fnil Contemporary;}{\f29\fnil Contemporary Brush;}{\f30\fmodern Courier New;}{ \f31\fnil Desdemona;}{\f32\fnil Eckmann;}{\f33\fnil Edda;}{\f34\fnil Elephant;}{ \f35\fnil Eurostile;}{\f36\fnil Fences;}{\f37\fnil Futura;}{\f38 \fnil Gill Sans Ultra Bold;}{\f39\fnil Lucida Blackletter;}{\f40 \froman Lucida Bright;}{\f41\fnil Lucida Bright Math Extension;}{\f42 \fnil Lucida Bright Math Italic;}{\f43\fnil Lucida Bright Math Symbol;}{\f44 \fscript Lucida Calligraphy;}{\f45\fnil Lucida Fax;}{\f46 \fnil Lucida Handwriting;}{\f47\fnil Lucida Sans;}{\f48 \fnil Lucida Sans Typewriter;}{\f49\fnil Monotype Corsiva;}{\f50 \fnil Monotype Sorts;}{\f51\fmodern Modern;}{\f52\fmodern Ms LineDraw;}{\f53 \fnil MT Extra;}{\f54\froman Roman;}{\f55\fscript Script;}{\f56\froman Times;}{ \f57\fnil WingDings;}{\f58\fnil WingDings;}{\f59\fdecor Zapf Dingbats;}{\f60 \fnil Albertus (W1);}{\f61\fnil Albertus Xb (W1);}{\f62\fnil Antique Olv (W1);}{ \f63\fnil CG Omega (W1);}{\f64\fnil CG Times (W1);}{\f65\fnil Clarendon Cd (W1) ;}{\f66\fnil Coronet (W1);}{\f67\fnil Courier (W1);}{\f68\fnil Garmond (W1);}{ \f69\fnil Letter Gothic (W1);}{\f70\fnil Line Printer (W1);}{\f71 \fnil Marigold (W1);}{\f72\fnil Univers (W1);}{\f73\fnil Univers Cd (W1);} } {\info {\title }{\author }{\revtim \yr1996\mo11\dy17}{\subject }}\paperw12240 \paperh15840\margl1440\margr1440\margt1498\margb1440\linemod0\sectd\sbkpage \footery720\headery720\endnhere \headery540 {\header \pard\plain \qj\fi0\li58\ri3663\sb0\sa120\sl-280\b0\i0\f56\fs24 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \par }\footery660 {\footer \pard\plain \qr\fi0\li7287\ri58\sb0\sa120\sl-280\b0\i0\f56\fs24 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {{\b0\i0\f56\fs24 {\field{\fldinst{page\* arabic}}} } }\par } \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-400 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs36 Software \line Product \line Description\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-360 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i \f56\fs36 Safety {\ulnone \up0\dn0\strike0 {\b0\i0\f56\fs36 V1.2 \line {\b0\i0\f56\fs28 Comprehensive Data Safety for your VMS systems. } } }\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-320 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs28 from General Cybernetic Enterprises\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-320 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs28 Executive Summary:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 There are many perils your data faces, and loss of data can cost time, money, an d jobs. Intrud ers, disgruntled insiders, or hidden flaws in installed software can destroy rec ords. What is more, mistaken losses occur constantly.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-320 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i \f56\fs28 Safety {\ulnone \up0\dn0\strike0 {\b0\i0\f56\fs28 protects your system and your critical data in three ways: } }\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 1. A comprehensive security system adds extra checks for access to VMS files so that access by intruders or by people in non-job-required ways can be regulated or prevented. T his allows your business - critical data to finally be protected against misuse, tampering, or a buse. Access from programs doing background dirty work (viruses, Trojans, worms, and the like, or even pro grams with security holes which can be exploited remotely (like Java browsers)) can also be blocked without damaging normal use. This active protection works three ways: by {\b0\i \f56\fs24 checking integrity } of your files against tampering, by {\b0\i \f56\fs24 preventing } of {\b0\i \f56\fs24 untrusted images } from {\b0\i \f56\fs24 gaining privi lege } , and by {\b0\i \f56\fs24 regulating } what other parts of the system an image may access.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 2. A deletion protection system provides a way to undelete files which were dele ted by mistake and to optionally copy deleted files to backup facilities before removal. Unlike all other VMS "undelete" programs on the market, this facility does not rely on finding the di sk storage that contained the file and reclaiming it before it is overwritten. Rather, it change s the semantics of the file system delete to use a "wastebasket" system and captures the file intac t. Thus, this sys tem works reliably. No others do. This facility is also useful where you have a requirement to keep all files of a certain set of types, since the backup function can be used to capture such files while permitting otherwise normal system function. The shelving or linking functions are also available for moving copies offline if this is desired. The {\b\i \f56\fs24 Safety } protection features are fully integrated with the DPS subsystem, so that deletion protection does not in volve destroying file security.\par \pard\plain \widowctrl \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 3.{\b\i \f56\fs24 } When space runs out, hasty decisions about what to keep online often must be mad e, and the risk of accidentally losing something important is high. {\b\i \f56\fs24 Safety } protects you from running out of space. Space can be monitored and older items in the wastebasket deleted if it i s becoming low, without manual intervention. In addition,{\b\i \f56\fs24 Safety } is able to "shelve" files so that they are stored anywhere else desired on your system, and they are brought back automatically wh en accessed. Thus no manual arrangements need be made for reloading them.{\b\i \f56\fs24 Safety } can also keep the files \par \pard\plain \widowctrl \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 on secondary storage, keeping a "soft link" to the files at their original site so they will be ac cessed on the secondary storage instead. Also,{\b\i \f56\fs24 Safety } can store files compressed, or can store them on secondary storage so that read access is done on the secondary storage, but write access causes the file to be copied back to its original site. Standard VMS utilities a re used for all file movement, and moved files are also directly accessible in their swapped sites wi th standard VMS utilities. The VMS file system remains completely valid at all times.\line \line {\b\i \f56\fs24 Safety } gives you a full complement of tools for dealing with space issues automatical ly accord ing to your site policy. These facilities are safe and easily understood. A com prehensive utility is provided by which you set your site policy to select which files are and are not eligible for automatic shelving. Also you are provided with screen oritented utilities for se lecting files to shelve at any time. Access to the shelved files of course causes unshelving if t he normal shelving-by-copy mode is used. Also, a simple set of rules permit locating shelv ed or softlink target files at any time, even without {\b\i \f56\fs24 Safety } running. {\b\i \f56\fs24 Safety } at no time invalidates your file structures for normal VMS access...not even for an instant.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 In addition {\b\i \f56\fs24 Safety } contains functions to speed file access and inhibit disk fragmentation.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The major subsystems of {\b\i \f56\fs24 Safety } will now be described.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-300 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b0\i0\f56\fs28 The Security Function System:\line {\b\i0\f56\fs24 Summary: \line } } Managing access to data critical to your business using ACL facilities in native VMS can be cumbersome and still is vulnerable to intruders or people acting in excess of th eir authority.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Want to be sure your critical records can't be accessed save at authorized place s, times, and with the programs that are supposed to access them (instead of, say, COPY.EXE)? \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Want to have protection against privileged users bypasssing access controls?\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Want to be able to password protect individual files?\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Want to be able to invisibly hide selected files from unauthorized intruders? \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Have you read that attacks on machines can happen because a Java browser points at a web site that damages the system (as has been reported in the press)? Want to be able to protect{\b\i0\f56\fs24 your } systems?\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The {\b\i \f56\fs24 Safety } security subsystem builds in facilities permitting all of these, and is not vuln erable to intruders who disable the AUDIT facility as all other commercial packages whi ch purport @ SAFETY013.A  [EVERHART.JTDEMO]SAFETYSPD.RTF;1X62;1Q.:>to monitor access are.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b\i0\f56\fs24 Description: } When your business depends on critical files, or when you are obliged by law or contract to maintain confidentiality of data on your system, in most cases the o ptions provided by VMS for securing this data can be cumbersome and far too coarse-grained.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The problem is that certain kinds of access to data are often needed by people i n a shop, but \par\sect\sectd\sbkpage \pgwsxn12240\pghsxn15840\marglsxn1383 \margrsxn1498\margtsxn1441\margbsxn1498\footery749\headery749\headery540 {\header \pard\plain \qj\fi0\li116\ri3606\sb0\sa120\sl-280\b0\i0\f56\fs24 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \par }\footery660 {\footer \pard\plain \qr\fi0\li7344\ri2\sb0\sa120\sl-280\b0\i0\f56\fs24 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {{\b0\i0\f56\fs24 {\field{\fldinst{page\* arabic}}} } }\par } \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 other access should be prevented and audited. Moreover, the wide system access t hat can come as a result of having system privileges often does not mean that it should be us ed to browse or disclose data stored on the system. A system manager will in general not, for ex ample, have any valid reason to browse the customer contact file, the payroll database, or a con tract negotiation file, save in a few cases where these files need to be repaired or reloaded from backups. Like wise, a payroll clerk may need read and write access to the payroll file, but no t in general with the COPY utility, nor from a modem, nor in most cases at 4AM. Finally, a person who must have privileges to design a driver and test it should ordinarily not have the ru n of the file system as well.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Given examples like these, it is easy to see that simple authorization of user a ccess to files is inadequate. While it is possible to build systems that grant identifiers to atte mpt some extra control, these can be circumvented by privilege, and create very long ACLs which become im possible to administer over a long period as users come and go.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 What is needed is a mechanism that is secure, cannot be circumvented by turning on privileges, and which provides a simple to administer and fine grained control that lets you specify who can get at your critical files, with what images, when, from where, and with wha t privileges. It is also desirable to be able to control what privileges the images ever see, and to be able to check critical command files or images for tampering before use, so that they ca nnot be used as back doors to your system. It should be possible to demand extra authentication for particular files as well, and to prevent a malicious user from even seeing a particularly c ritical file unless he can be permitted access.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The{\b\i \f56\fs24 Safety } security subsystem is a VMS add-in security package which provides abilities to control security problems due to intruders, to damage or loss by system "insider s" (users ex ceeding their authority), and to covert code (worms and viruses). It provides a much easier management interface to handle security permissions than bare VMS and provides f acilities permitting control over even privileged file accesses, for cases where there are privileged users whose access should be limited. Unlike systems which only intercept the AUDIT ou tput, EACF can and does protect against ANY file accesses, and can protect files against de letion by un authorized people or programs in real time as well as against access.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The{\b\i \f56\fs24 Safety } security subsystem offers the following capabilities:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * {\b\i \f56\fs24 Files } can be {\b\i \f56\fs24 password protected individually. } If a file open or delete is attempted for such a file and no password has been entered, the open or delete fails.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * Access can be controlled by {\b\i \f56\fs24 time of day. } Added protections can be in place only some of the time, access can be denied some times of day, write accesses can be denied at ce rtain times, or various other modalities of access can be allowed.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can control {\b\i \f56\fs24 who } may access a file, {\b\i \f56\fs24 where } they may be (or may not be), {\b\i \f56\fs24 with what images } they may or may not access the file, and {\b\i \f56\fs24 with what privileges } the file may be accessed. Thus, for instance, it is trivial to allow a clerk access to the payroll file with the payroll programs, but {\b\i0\f56\fs24 not } with COPY or BACKUP, not on dialup lines, and not if they have unexpected privil eges. The privilege checks can be helpful where there are consultants working on a sys tem who \par\sect\sectd\sbkpage \pgwsxn12240\pghsxn15840\marglsxn1440 \margrsxn1440\margtsxn1498\margbsxn1440\footery720\headery720\headery540 {\header \pard\plain \qj\fi0\li58\ri3663\sb0\sa120\sl-280\b0\i0\f56\fs24 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \par }\footery660 {\footer \pard\plain \qr\fi0\li7287\ri58\sb0\sa120\sl-280\b0\i0\f56\fs24 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {{\b0\i0\f56\fs24 {\field{\fldinst{page\* arabic}}} } }\par } \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 should be denied access to sensitive corporate information but who need privileg es to develop programs, or in similar circumstances. You specify what privileges are permitted for opening the file, and {\b0\i \f56\fs24 a process with excess privileges is{\b\i \f56\fs24 prevented } from access } . Vital business data ac cess should not always be implied by someone having privilege. With this system you can be sure your proprietary plans or data stay in house, and are available only to tho se with business reasons to need them, not to everyone needing system privileges for unrelated re asons. Unlike packages using the VMS Audit facility's output (which can be silently turned off by public do main code), {\b\i \f56\fs24 Safety cannot {\b0\i \f56\fs24 be circumvented by well known means. } } Its controls are designed to leave evidence of what was done with them as well.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can{\b\i \f56\fs24 hide files } from unauthorized access. If someone not authorized to access a file tries to open it, they can be set to open instead some other file anywhere on the syst em. Meanwhile, {\b\i \f56\fs24 Safety } generates alarms and can execute site specific commands to react to the illegal access before it can happen. This can be helpful in gathering evidence of what a sabote ur is up to with out exposing real sensitive files to danger. Normal access goes through transpar ently.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can arrange that opening a file{\b\i \f56\fs24 grants identifiers } to the process that opens it and that closing it revokes these identifiers. Set an interpretive file to do this and se t it to be openable only by the interpreter and you have a protected subsystem capability that works for 4GLs which are interpretive. ({\b\i \f56\fs24 Safety } identifier granting, privilege modification, and base priority al teration is protected by a cryptographic authenticator preventing forging or dup lication.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can actively{\b\i0\f56\fs24 prevent } {\b\i0\f56\fs24 covert code ({\b\i \f56\fs24 viruses } and{\b\i \f56\fs24 worms } ) } from running in two ways. First, {\b\i \f56\fs24 Safety } can attach a cryptographic checksum to a file such that the file will not open if it has been tampered with. Second, {\b\i \f56\fs24 Safety } can attach a privilege mask to a file which will replace {\b\i \f56\fs24 all } privilege masks for the process that opens it. By setting such a mask to minimal privileges, you can ensure that an untrusted image will never see a very privileged environment, and thus will be unable to perform privilege-based intrusions into your system even if run fro m a privileged user's account.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can {\b\i \f56\fs24 control base priority } by image. Thus, a particularly CPU intensive image can be made to run at lower than normal base priority even if it is run interactively. \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can run a site-chosen script to further refine selection criteria. (Some f acilities for doing additional checking while an image runs exist also.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 * You can have "suspect" images set a "low-integrity-image" mode in which all fi le opens are checked with a site script which can report or veto access. This can be used to track or regulate what a Java applet can do, in case someone happens to browse a web site which ex ploits a Java hole to browse your system or damage it.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa0\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b\i \f56\fs24 Safety } allows you to exempt certain images (e.g., disk defragmenters) from access che cks, and it is possible to put a process into a temporary override mode also (leaving a r ecord this was done) where this is needed. {\b\i \f56\fs24 Safety } facilities are controllable per disk, and impose generally negligible overhead. {\b\i \f56\fs24 Safety } will work with any VMS file structure using the normal driver in terfaces. Also, {\b\i \f56\fs24 Safety } marking information resides sufficiently in kernel space that it cannot be removed from lower access modes, yet it uses a limited amount of memory regardle ss of vol\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 ume size.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Best of all, the {\b\i \f56\fs24 Safety } protection is provided {\b\i \f56\fs24 within the file system } and does not depend on the audit facility. Thus it prevents file access or loss{\b\i0\f56\fs24 before } it happens, and does not have to react to it afterwards. {\b\i \f56\fs24 Safety } allows all of its security provisions to be managed together in a simple screen-oriented display in which files, or groups of files, can be tagged with t he desired security profiles or edited as desired. {\b\i \f56\fs24 Safety } protections are in addition to normal VMS file protections, which are left completely intact. Therefore, no existing security is broken or e ven altered. {\b\i \f56\fs24 Safety } simply adds additional checking which finally provides a usable machine encodi ng of "need to know" for the files where it matters.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \line \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-300 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b0\i0\f56\fs28 The {\b\i \f56\fs28 Safety } Deletion Protection Subsystem.\line }\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b\i0\f56\fs24 Description: } The{\b\i \f56\fs24 Safety } Deletion Protection System is designed to provide protection against accidental deletion of file types chosen by the site, and to allow files to be r outed by the system to backup media before they are finally removed from the system. This is accompl ished by an add-in to the VMS file system so that security holes are not introduced by the s ystem's action.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 The user interface is an {\b\i \f56\fs24 UNDELETE } command which permits one or more files to be restored to their original locations provided it is issued within the site-chosen time wi ndow after the un desired deletion took place. In addition, an {\b\i \f56\fs24 EXPUNGE } command is provided which allows files to be deleted at once, irretrievably, where space for such is required. Pr ovision for auto matic safe-storing of files prior to final del@ SAFETY013.A  [EVERHART.JTDEMO]SAFETYSPD.RTF;1X62;1Q(8etion is present also in {\b\i \f56\fs24 Safety } DPS.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b\i \f56\fs24 Safety } DPS is implemented as a VMS file system add-in which functions by intercepting t he DELETE operation and allowing the file to be deleted to be copied or renamed to a "wastebas ket" holding area pending final action, and to be disposed of by a disposal agen t. The supplied agent will allow a site script to save the files if this is desired, and then fi nally deletes any files which have been deleted more than some number N seconds ago. If the UNDELETE com mand is given, the file(s) undeleted are replaced in their original sites. The suppli ed system can also be configured to rename files to a wastebasket area or to copy them directly, fo r undeletion by systems people only. (These options are faster than the site command file option .)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b\i \f56\fs24 Safety } DPS can be configured to omit certain file types from deletion protection (for e xample, *.LIS* or *.MAP* could be omitted), to include only certain files in the protect ed sets, or both. This can reduce the overhead of saving files which are likely to be easily recre ated, or tailor the system for such actions as saving all mail files (by selecting *.MAI for inclusi on).\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 In addition, {\b\i \f56\fs24 Safety } DPS monitors free space on disks, and when a file create or extend would cause space exhaustion, {\b\i \f56\fs24 Safety } DPS runs a site script. By setting this script to perform final de letions, {\b\i \f56\fs24 Safety } DPS can be run in a purely automatic mode in which deleted files are saved as long as possible, but never less than some minimum period (e.g., 5 or 10 minutes ).\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b\i \f56\fs24 Safety } DPS files can be stored in any location accessible to VMS. If they are renamed, they must reside on the same disk they came from. Otherwise they can be stored in any desired place.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b\i \f56\fs24 Safety } DPS is installed and configured using a screen oriented configuration utility to set it up, and basically runs unattended once installed.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-320 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs28 \line \par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-360 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs28 The {\b\i \f56\fs28 Safety } Storage Migration Subsystem\line {\b0\i0\f56\fs36 \line {\b\i0\f56\fs24 Description: } }\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b\i \f56\fs24 Safety } has the ability to move files to secondary storage and automatically retrieve t hem when they are accessed. This backing can be similar to what HSM systems call "shelvin g", though it can be done in multiple levels, or it can be done in a way which permits files m oved to secon dary storage to be accessed there as though the files remained online. This rese mbles what are called "soft links" in Unix systems, in that file opens are transparently redire cted to a file stored somewhere else reachable on the system, and the channel reset to the original de vice on close. A "readonly link" mode acts like a soft link for readonly access, and like an un shelve operation where a file is opened read/write, should this be desired. Full control over thi s shelving and un shelving is provided.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 This provides a great deal of flexibility in reclaiming space when the {\b\i \f56\fs24 Safety } space monitoring function detects that space is needed. Not only can previously deleted files be finally moved to backup destinations and deleted, but the system can migrate seldom accessed file s to nearline storage transparently. The site policy can drive this, or utilities provided can be used instead.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 Where it is chosen to run {\b\i \f56\fs24 Safety } in a lights-out fashion (with {\b\i \f56\fs24 Safety } reacting to low disk situ ations by emptying older deleted files from the wastebasket and/or file migratio n to backing store), the policy chosen for controlling such setting is handled by a full-scre en, easily used, tool which sets the policy. Should still greater flexibility be needed, the scri pts used for a num ber of operations are supplied together with a full description of the command l ine interface of the underlying software. This facilitates linking {\b\i \f56\fs24 Safety } file management functions with other packages should such be desired.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b\i \f56\fs24 Safety } can be run in a mode where there is essentially no overhead at all imposed (jus t a few instructions added along some paths and no disk access) for any files except tho se which need softlinks or possible unshelving. There is no limit to how many files may be so marked on a disk. A fullscreen setup script allows one to select the {\b\i \f56\fs24 Safety } run modes. Even if {\b\i \f56\fs24 Safety } is forced to examine all files for its markings, the overhead imposes no added disk access and costs only a tiny added time (typically a percent or two) in open intensive appl ications. In addi tion, {\b\i \f56\fs24 Safety } can be turned off or back on at any convenient point should this be desired. (T his must be done using special tools provided for use by those specially authorized to do so.)\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i0\f56\fs24 Support:\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b\i \f56\fs24 Safety } runs on VAX VMS 5.5 or greater or AXP VMS 6.1 or greater. The same facilities e xist across all systems. HSM must be installed on each cluster node of a VMScluster w here it is to be used but imposes no restrictions on types of disk it works for. {\b\i \f56 \fs24 Safety } will work with any file structure used by VMS, so long as a disk class device is used to hold it. It is specifically NOT limited to use with ODS-2 disks.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b\i \f56\fs24 \line Safety } is available for 45 day trial use licenses or can be licensed permanently. {\b \i \f56\fs24 Safety } is avail able for 45 day trial use licenses or can be licensed permanently. {\b\i \f56 \fs24 Safety } is required on every node of a cluster using it, or its benefits will not be available on nodes not h aving the software running. Apart from this, there are no problems with having {\b\i \f56\fs24 Safety } available on only part of a VMS cluster.\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b\i \f56\fs24\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 {\b\i \f56\fs24 Safety } is brought to you by\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 General Cybernetic Enterprises\line 18 Colburn Lane\line Hollis, NH 03049\line 603 465 9517 voice\line 603 465 9518 fax\line \line For orders, contact the above address or Sales@GCE.COM.\line For technical information contact Info@GCE.Com\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \line For support contact Support@GCE.Com\par \pard\plain \qj\fi0\li58\ri58\sb0\sa240\sl-280 \tx1198\tx2338\tx3478\tx4618\tx5758\tx6898\tx8038\tx9178\tx10318\tx11458\tx12598 \tx13738\tx14878\tx16018\tx17158 \ulnone \up0\dn0\strike0 \b0\i0\f56\fs24 \line \line \par } *[EVERHART.JTDEMO]SAFETYSPD.TXT;3+,.6/ 4J60- 0123KPWO1568+}7& (~89GHJ Software Product Description Safety V1.29 Comprehensive Data Safety for your VMS systems.- from General Cybernetic Engineering Executive Summary:J There are many perils your data faces, and loss of data can costD time, money, and jobs. Intruders, disgruntled insiders, orI hidden flaws in installed software can destroy records. What is1 more, mistaken losses occur constantly.E Safety protects your system and your critical data in three ways:I 1. A comprehensive security system adds extra checks for accessB to VMS files so that access by intruders or by people inJ non-job-required ways can be regulated or prevented. This allowsG your business - critical data to finally be protected againstA misuse, tampering, or abuse. Access from programs doingJ background dirty work (viruses, Trojans, worms, and the like, orB even programs with security holes which can be exploitedD remotely (like Java browsers)) can also be blocked withoutJ damaging normal use. This active protection works three ways: byC checking integrity of your files against tampering, byI preventing of untrusted images from gaining privilege, and byH regulating what other parts of the system an image may access.J 2. A deletion protection system provides a way to undelete filesF which were deleted by mistake and to optionally copy deletedI files to backup facilities before removal. Unlike all other VMSH "undelete" programs on the market, this facility does not relyA on finding the disk storage that contained the file andH reclaiming it before it is overwritten. Rather, it changes theD semantics of the file system delete to use a "wastebasket"F system and captures the file intact. Thus, this system worksH reliably. No others do. This facility is also useful where youI have a requirement to keep all files of a certain set of types,E since the backup function can be used to capture such filesI while permitting otherwise normal system function. The shelvingC or linking functions are also available for moving copiesI offline if this is desired. The Safety protection features areC fully integrated with the DPS subsystem, so that deletion? protection does not involve destroying file security.E 3. When space runs out, hasty decisions about what to keepH online often must be made, and the risk of accidentally losingI something important is high. Safety protects you from runningE out of space. Space can be monitored and older items in theJ 1 C wastebasket deleted if it is becoming low, without manualI intervention. In addition, Safety is able to "shelve" files soH that they are stored anywhere else desired on your system, andD they are brought back automatically when accessed. Thus noJ manual arrangements need be made for reloading them. Safety canI also keep the files on secondary storage, keeping a "soft link"I to the files at their original site so they will be accessed onH the secondary storage instead. Also, Safety can store filesI compressed, or can store them on secondary storage so that readJ access is done on the secondary storage, but write access causesG the file to be copied back to its original site. Standard VMSG utilities are used for all file movement, and moved files areG also directly accessible in their swapped sites with standardH VMS utilities. The VMS file system remains completely valid at all times.G Safety gives you a full complement of tools for dealing withI space issues automatically according to your site policy. TheseE facilities are safe and easily understood. A comprehensiveI utility is provided by which you set your site policy to selectF which files are and are not eligible for automatic shelving.C Also you are provided with screen oritented utilities forF selecting files to shelve at any time. Access to the shelvedJ files of course causes unshelving if the normal shelving-by-copyC mode is used. Also, a simple set of rules permit locatingD shelved or softlink target files at any time, even withoutC Safety running. Safety at no time invalidates your fileE structures for normal VMS access...not even for an instant.H In addition Safety contains functions to speed file access and% inhibit disk fragmentation.? The majo@ SAFETY013.A  [EVERHART.JTDEMO]SAFETYSPD.TXT;3X62;1J6Q> r subsystems of Safety will now be described.' The Security Function System: Summary:E Managing access to data critical to your business using ACLA facilities in native VMS can be cumbersome and still isE vulnerable to intruders or people acting in excess of their authority.I Want to be sure your critical records can't be accessed save atB authorized places, times, and with the programs that are> supposed to access them (instead of, say, COPY.EXE)?E Want to have protection against privileged users bypasssing access controls?? Want to be able to password protect individual files?? Want to be able to invisibly hide selected files from! unauthorized intruders?J 2 J Have you read that attacks on machines can happen because a JavaF browser points at a web site that damages the system (as hasI been reported in the press)? Want to be able to protect your systems?G The Safety security subsystem builds in facilities permittingJ all of these, and is not vulnerable to intruders who disable theJ AUDIT facility as all other commercial packages which purport to monitor access are.G Description: When your business depends on critical files, or= when you are obliged by law or contract to maintainC confidentiality of data on your system, in most cases theJ options provided by VMS for securing this data can be cumbersome% and far too coarse-grained.G The problem is that certain kinds of access to data are oftenJ needed by people in a shop, but other access should be preventedJ and audited. Moreover, the wide system access that can come as aH result of having system privileges often does not mean that itI should be used to browse or disclose data stored on the system.E A system manager will in general not, for example, have anyG valid reason to browse the customer contact file, the payrollG database, or a contract negotiation file, save in a few casesI where these files need to be repaired or reloaded from backups.I Likewise, a payroll clerk may need read and write access to theJ payroll file, but not in general with the COPY utility, nor fromG a modem, nor in most cases at 4AM. Finally, a person who mustJ have privileges to design a driver and test it should ordinarily6 not have the run of the file system as well.B Given examples like these, it is easy to see that simpleJ authorization of user access to files is inadequate. While it isJ possible to build systems that grant identifiers to attempt someD extra control, these can be circumvented by privilege, andJ create very long ACLs which become impossible to administer over- a long period as users come and go.A What is needed is a mechanism that is secure, cannot beE circumvented by turning on privileges, and which provides aE simple to administer and fine grained control that lets youG specify who can get at your critical files, with what images,J when, from where, and with what privileges. It is also desirableH to be able to control what privileges the images ever see, andB to be able to check critical command files or images forI tampering before use, so that they cannot be used as back doors? to your system. It should be possible to demand extraG authentication for particular files as well, and to prevent aF malicious user from even seeing a particularly critical file, unless he can be permitted access.H The Safety security subsystem is a VMS add-in security packageF which provides abilities to control security problems due toJ 3 B intruders, to damage or loss by system "insiders" (usersC exceeding their authority), and to covert code (worms andE viruses). It provides a much easier management interface to@ handle security permissions than bare VMS and providesA facilities permitting control over even privileged fileD accesses, for cases where there are privileged users whoseG access should be limited. Unlike systems which only interceptF the AUDIT output, EACF can and does protect against ANY fileJ accesses, and can protect files against deletion by unauthorizedD people or programs in real time as well as against access.J The Safety security subsystem offers the following capabilities:I * Files can be password protected individually. If a file openI or delete is attempted for such a file and no password has been, entered, the open or delete fails.J * Access can be controlled by time of day. Added protections canF be in place only some of the time, access can be denied someI times of day, write accesses can be denied at certain times, or< various other modalities of access can be allowed.J * You can control who may access a file, where they may be (orH may not be), with what images they may or may not access theI file, and with what privileges the file may be accessed. Thus,D for instance, it is trivial to allow a clerk access to theI payroll file with the payroll programs, but not with COPY orF BACKUP, not on dialup lines, and not if they have unexpectedI privileges. The privilege checks can be helpful where there areH consultants working on a system who should be denied access toD sensitive corporate information but who need privileges toI develop programs, or in similar circumstances. You specify whatJ privileges are permitted for opening the file, and a processJ with excess privileges is prevented from access. Vital businessD data access should not always be implied by someone havingF privilege. With this system you can be sure your proprietaryF plans or data stay in house, and are available only to thoseE with business reasons to need them, not to everyone needingH system privileges for unrelated reasons. Unlike packages usingG the VMS Audit facility's output (which can be silently turnedI off by public domain code), Safety cannot be circumvented byJ well known means. Its controls are designed to leave evidence of* what was done with them as well.H * You can hide files from unauthorized access. If someone notJ authorized to access a file tries to open it, they can be set toI open instead some other file anywhere on the system. Meanwhile,H Safety generates alarms and can execute site specific commandsJ to react to the illegal access before it can happen. This can beC helpful in gathering evidence of what a saboteur is up toH without exposing real sensitive files to danger. Normal access% goes through transparently.J 4 J * You can arrange that opening a file grants identifiers to theA process that opens it and that closing it revokes theseH identifiers. Set an interpretive file to do this and set it toF be openable only by the interpreter and you have a protectedJ subsystem capability that works for 4GLs which are interpretive.G (Safety identifier granting, privilege modification, and base= priority alteration is protected by a cryptographic; authenticator preventing forging or duplication.)J * You can actively prevent covert code ( viruses and worms) fromI running in two ways. First, Safety can attach a cryptographicG checksum to a file such that the file will not open if it hasI been tampered with. Second, Safety can attach a privilege maskJ to a file which will replace all privilege masks for the processJ that opens it. By setting such a mask to minimal privileges, youB can ensure that an untrusted image will never see a veryD privileged environment, and thus will be unable to performH privilege-based intrusions into your system even if run from a$ privileged user's account.I * You can control base priority by image. Thus, a particularlyJ CPU intensive image can be made to run at lower than normal base3 priority even if it is run interactively.H * You can run a site-chosen script to further refine selectionH criteria. (Some facilities for doing additional checking while$ an image runs exist also.)J * You can have "suspect" images set a "low-integrity-image" modeJ in which all file opens are checked with a site script which canF report or veto access. This can be used to track or regulateH what a Java applet can do, in case someone happens to browse aF web site which exploits a Java hole to browse your system or damage it.A Safety allows you to exempt certain images (e.g., diskH defragmenters) from access checks, and it is possible to put aG process into a temporary override mode also (leaving a recordI this was done) where this is needed. Safety facilities areJ controllable per disk, and impose generally negligible overhead.H Safety will work with any VMS file structure using the normalH driver interfaces. Also, Safety marking information residesE sufficiently in kernel space that it cannot be removed fromD lower access modes, yet it uses a limited amount of memory$ regardless of volume size.J Best of all, the Safety protection is provided within the fileD system and does not depend on the audit facility. Thus itH prevents file access or loss before it happens, and does notG have to react to it afterwards. Safety allows all of its@ security provisions to be managed together in a simpleI screen-oriented display in which files, or groups of files, canC be tagged with the desired security profiles or edited asJ 5 J desired. Safety protections are in addition to normal VMS fileF protections, which are left completely intact. Therefore, noJ existing security is broken or even altered. Safety simply addsE additional checking which finally provides a usable machinesD encoding of "need to know" for the files where it matters.3 The Safety Deletion Protection Subsystem.dI Description: The Safety Deletion Protection System is designedsI to provide protection against accidental deletion of file typesnD chosen by the site, and to allow files to be routed by theI system to backup media before they are finally removed from the J system. This is accomplished by an add-in to the VMS file systemC so that security holes are not introduced by the system'si action.lI The user interface is an UNDELETE command which permits one oroH more files to be restored to their original locations providedC it is issued within the site-chosen time window after theJ undesired deletion took place. In addition, an EXPUNGE command? is provided which allows files to be deleted at once,tH irretrievably, where space for such is required. Provision forD automatic safe-storing of files prior to final deletion is% present also in Safety DPS.fE Safety DPS is implemented as a VMS file system add-in whichaI functions by intercepting the DELETE operation and allowing the G file to be deleted to be copied or renamed to a "wastebasket"sG holding area pending final action, and to be disposed of by aiH disposal agent. The supplied agent will allow a site script toI save the files if this is desired, and then finally deletes anyeG files which have been deleted more than some number N secondsgJ ago. If the UNDELETE command is given, the file(s) undeleted areH replaced in their original sites. The supplied system can alsoH be configured to rename files to a wastebasket area or to copyF them directly, for undeletion by systems people only. (These@ options are faster than the site command file option.)F Safety DPS can be configured to omit certain file types fromE deletion protection (for example, *.LIS* or *.MAP* could benH omitted), to include only certain files in the protected sets,I or both. This can reduce the overhead of saving files which are F likely to be easily recreated, or tailor the system for suchB actions as saving all mail files (by selecting *.MAI for inclusion).iJ In addition, Safety DPS monitors free space on disks, and when aJ file create or extend would cause space exhaustion, Safety DPSE runs a site script. By setting this script to perform finalnJ 6 H deletions, Safety DPS can be run in a purely automatic mode inF which deleted files are saved as long as possible, but never@ less than some minimum period (e.g., 5 or 10 minutes).F Safety DPS files can be stored in any location accessible toJ VMS. If they are renamed, they must reside on the same disk theyG came from. Otherwise they can be stored in any desired place.yH Safety DPS is installed and configured using a screen oriented@ configuration utility to set it up, and basically runs$ unattended once installed.0 The Safety Storage Migration Subsystem Description:G Safety has the ability to move files to secondary storage andeJ automatically retrieve them when they are accessed. This backingG can be similar to what HSM systems call "shelving", though itaJ can be done in multiple levels, or it can be done in a way whichJ permits files moved to secondary storage to be accessed there asJ though the files remained online. This resembles what are called> "soft links" in Unix systems, in that file opens areB transparently redirected to a file stored somewhere elseH reachable on the system, and the channel reset to the originalG device on close. A "readonly link" mode acts like a soft linkJ for readonly access, and like an unshelve operation where a fileI is opened read/write, should this be desired. Full control over 3 this shelving and unshelving is pr@ SAFETY013.A  [EVERHART.JTDEMO]SAFETYSPD.TXT;3X62;11J6w*ovided.eG This provides a great deal of flexibility in reclaiming spacegI when the Safety space monitoring function detects that space isnH needed. Not only can previously deleted files be finally movedH to backup destinations and deleted, but the system can migrateF seldom accessed files to nearline storage transparently. TheG site policy can drive this, or utilities provided can be used  instead.I Where it is chosen to run Safety in a lights-out fashion (withrJ Safety reacting to low disk situations by emptying older deletedE files from the wastebasket and/or file migration to backing C store), the policy chosen for controlling such setting is D handled by a full-screen, easily used, tool which sets theI policy. Should still greater flexibility be needed, the scriptseF used for a number of operations are supplied together with aJ full description of the command line interface of the underlyingH software. This facilitates linking Safety file management? functions with other packages should such be desired.sJ 7 dC Safety can be run in a mode where there is essentially no F overhead at all imposed (just a few instructions added alongI some paths and no disk access) for any files except those which I need softlinks or possible unshelving. There is no limit to how J many files may be so marked on a disk. A fullscreen setup scriptJ allows one to select the Safety run modes. Even if Safety isD forced to examine all files for its markings, the overheadG imposes no added disk access and costs only a tiny added timeeI (typically a percent or two) in open intensive applications. In:I addition, Safety can be turned off or back on at any convenientoH point should this be desired. (This must be done using specialI tools provided for use by those specially authorized to do so.)e Support:J Safety runs on VAX VMS 5.5 or greater or AXP VMS 6.1 or greater.C The same facilities exist across all systems. HSM must bebJ installed on each cluster node of a VMScluster where it is to beI used but imposes no restrictions on types of disk it works for.oJ Safety will work with any file structure used by VMS, so long asH a disk class device is used to hold it. It is specifically NOT* limited to use with ODS-2 disks.F Safety is available for 45 day trial use licenses or can beH licensed permanently. Safety is available for 45 day trial useI licenses or can be licensed permanently. Safety is required oncG every node of a cluster using it, or its benefits will not besH available on nodes not having the software running. Apart fromJ this, there are no problems with having Safety available on only part of a VMS cluster.& Safety is brought to you by( General Cybernetic Engineering 18 Colburn Lane  Hollis, NH 03049 603 465 9517 voice 603 465 9518 faxA For orders, contact the above address or Sales@GCE.COM.t8 For technical information contact Info@GCE.Com- For support contact Support@GCE.Com "*[EVERHART.JTDEMO]UNZIP.ALPHA_EXE;1+,./ 4- 0123 KPWO5 6 789GHJ.h(W0HrWUNZIPV1.0A10-62$* $P $n @$2 $J$( 8,  DECC$SHR_0014 LIBRTL_0014" LIBOTS_001@^6SYS$PUBLIC_VECTORS_00100 #NN @w0!!hL/@x00NP$`0-#@0,`&0 0 0@&0LN/@"0'{-P pNPj M#,&0   (`H @-&0H @                                        `            @`      H   8     H L $PLPN0EM0H` ALM@NN`N Nh!&@ 0Mw8`%0 MPK/M&`'#00 0(HP ,x `#M@/0(  #P0p!0w @@'0@t ,/?zG{0@'`$<0j@ ؄&`9&00hPhPhPhPhPhPhPhPhPhPhPhPhPhg gPhPhPhPhPhPhPhPhPhPhxg(h#`' 0e` <LPLNN0c0 p9D#M0(`@< `0 Y0 0G@G"0PH @N0`E` @ h 0X:p `LL@L N0P_@ 0x]@< 0PJP 00D@< 0`Y 0U@ 00HP 0xW@ 0PP0Q` 0hMp 0x5 `@ ` 0E0H" P  @0X! 00`w0P 00x0@xP| `&,#@&0  0NP0LM@L0? `$@-pN@ @08P` #L 0-&#`00 { #0'@'N$@00z0 @0y0 M0w0 p000P @  0 '&0  0M`&,0h '`#`- @Gx 00h0 M #`$c A' -@t8 PLPNg'Kpȫy'&"#M@ L@L,M@x0MMN#"-`%#@&-N0P @N,0E0/@0LM0' P0N"e PH  E($-# Y `/p00H/@"`"0 080 00 %pLPH `-"y ,0  `#`& M/ "M0XP  &@ 0@| %)%0H? 0 0 N L@K0` 0@< 0`00 x0 00 00 p E("#N`N@x0L #MN@ #0` .-M@L `$0'MKpNM 00` L0P /`%@ P@N`'HHHH00P 0'L`0N$-0 x 8PhH  PhP0p AK@/PH @$PM`& @"0  `"`#,/y.L,M`K0`'yMPH %",/`-`"0' @"`#-`&@-PM-,M@ 0:`/,PM ,0(] `#`&yPH @/0(S 00:P 00G 00; 0 g` 8KP@EE &@FF@ SAFETY013.A "[EVERHART.JTDEMO]UNZIP.ALPHA_EXE;162;1y>*zipinfoii-Z-d-x ""[-Z] vms.cvms.cKKK .zip wass weressszipinfounzip zipinfounzip error [%s]: attempt to seek before beginning of zipfile %sZIPINFO_OPTSUNZIP_OPTScaution: not extracting; -d ignored error: can't allocate unzip buffers caution: both -n and -o specified; ignoring -o "-X" restore owner/protection info2.0 of 7 February 19945.1 of 7 February 1994"-Z" => ZipInfo mode (`unzip "-Z"' for usage).%d archive%s successfully processed. %d archive%s had warnings but no fatal errors. %d archive%s had fatal errors. %d file%s had no zipfile directory. 1 "zipfile" was a directory. %d "zipfiles" were directories. No zipfiles found. %s: can't find either %s or %s, so there. Archive: %s note: %s may be an executable, not an archive %sEmpty zipfile. warning [%s]: zipfile is empty caution: zipfile comment truncated note: didn't find end-of-central-dir signature at end of central dir. error: expected central file header signature not found (file #%u). (please check that you have transferred or created the zipfile in the appropriate BINARY mode--this includes ftp, Kermit, AND unzip'd zipfiles) error: must specify directory to which to extract with -d option error: -fn or any combination of -c, -l, -p, -t, -u and -v options invalid ZipInfo %s, by Newtware and the fine folks at Info-ZIP. List name, date/time, attribute, size, compression method, etc., about files in list (excluding those in xlist) contained in the specified .zip archive(s). "file[.zip]" may be a wildcard name containing *, ?, [] (e.g., "[a-j]*.zip"). usage: zipinfo [-12smlvhtz] file[.zip] [list...] [-x xlist...] or: unzip %s-Z%s [-12smlvhtz] file[.zip] [list...] [-x xlist...] main listing-format options: -s short Unix "ls -l" format (def.) -1 filenames ONLY, one per line -m medium Unix "ls -l" format -2 just filenames but allow -h/-t/-z -l long Unix "ls -l" format -v verbose, multi-page format miscellaneous options: -h print header line -t print totals for files listed or for all files -z print zipfile comment -x exclude filenames that follow from listing Remember that non-lowercase filespecs must be quoted in VMS (e.g., "Makefile"). UnZip %s, by Info-ZIP. Portions (c) 1989 by S. H. Smith. Send bug reports to authors at zip-bugs@wkuvx1.wku.edu; see README for details. Usage: unzip %s[-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir] Default action is to extract files in list, except those in xlist, to exdir; file[.zip] may be a wildcard. %s -c extract files to stdout/screen (CRT) -l list files (short format) -p extract files to pipe, no messages -v list files (verbose format) -f freshen existing files, create none -t test compressed archive data -u update files, create if necessary -z display archive comment -x exclude files which follow (in xlist) -d extract files into exdir modifiers: -q quiet mode (-qq => quieter) -n never overwrite existing files -a auto-convert any text files -o overwrite files WITHOUT prompting -aa treat ALL files as text -j junk paths (don't make directories) %c-U%c don't make names lowercase %-42s %c-V%c retain VMS version numbers %sExamples (see unzip.doc for more info): unzip data1 -x joe => extract all files except joe from zipfile data1.zip %s unzip -fo foo %-6s => quietly replace existing %s if archive file newer unzip "-V" foo "Bar" => must quote uppercase options and filenames in VMS%s: can't find zipfile directory in %s, %sand can't find %s, period. Zipfile is part of a multi-disk archive, and this is not the disk on which the central zipfile directory begins. error [%s]: zipfile is part of multi-disk archive (sorry, not yet supported). Warning: zipfile claims to be second disk of a two-part archive; attempting to process anyway. If no further errors occur, this archive was probably created by PAK v2.51 or earlier. This bug was reported to NoGate in March 1991 and was supposed to have been fixed by mid-1991; as of mid-1992 it still hadn't been. (If fur- ther errors do occur, archive was probably created by PKZIP 2.04c or later; UnZip does not yet support multi-part archives.) error [%s]: missing %ld bytes in zipfile (attempting to process anyway) error [%s]: NULL central directory offset (attempting to process anyway) warning [%s]: extra %ld bytes at beginning or within zipfile (attempting to process anyway) error [%s]: start of central directory not found; zipfile corrupt. %serror [%s]: reported length of central directory is %ld bytes too long (Atari STZIP zipfile? J.H.Holm ZIPSPLIT 1.1 zipfile?). Compensating... JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECJANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECHIMVFABVALLVKEYVFHCVDATVRDTVPROVMSVsys$output:%02d-%3s-%04d %02d:%02d:%02d.00[ Cannot create output file %s ] Can't create output file: %s [ Cannot open output file %s ] Can't create output file: %s [ File %s has illegal record format to put to screen ] sys$output:%02d-%3s-%04d %02d:%02d:%02d.00[ Cannot create output file %s ] Can't create output file: %s [ Cannot open output file %s ] Can't create output file: %s [ Cannot put to screen ] create_output_file: sys$parse failed. sys$assign failed. [ Create file QIO failed. [ Warning: Unknown block signature %s ] [ Write QIO failed ] [ Write QIO failed ] [ Write QIO failed ] [ Record too long (%d bytes) ] [ Warning, incomplete record of length %d ] [ Warning: Record too long (%d) ] [ Warning: Record too long (%d) ] [ WriteBuffer failed ] [ WriteBuffer failed ] [ WriteRecord failed ] [ WriteRecord failed ] [ Deaccess QIO failed ] %s[ VMS status = %d ] %s[ %s ] creating: %s mapname: conversion of %s failed sys$disk:[]sys$disk:[]   Error: zipfile is in variable-length record format. Please run "bilf l %s" to convert the zipfile to stream-LF record format. (bilf.c and make_bilf.com are included in the VMS UnZip source distribution.) %s exists: [o]verwrite, new [v]ersion or [n]o extract? (uppercase response [O,V,N] = do same for all files):  (08@H ؄*.zipctx=stm[%s] [ %s ] error: can't open zipfile [ %s ] error: zipfile read error error: zipfile probably corrupt (%s) bus errorsegmentation violationwarning: filename too long--truncating. warning: extra field too long (%d). Ignoring... End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. Can't get memory for argumentscentralcentrallseekEOFEOFlocallocalssVMSPKtesting warningerror [] warningerror . %-22s OK h!!!! "P"( skipping: %-22s need %s compat. v%u.%u (can do v%u.%u) skipping: %-22s compression method %d %s: bad filename length (%s) %s: bad extra field length (%s) file #%d: bad zipfile offset (%s): %ld %11s: %-22s %s%s %s: bad file comment length local header sig (attempting to re-compensate) local header sig file #%d: bad local header skipping: %-22s %svolume label replace %s? [y]es, [n]o, [A]ll, [N]one, [r]ename: NULL (assuming [N]one) new name: error: invalid response [%c] caution: filename not matched: %s caution: excluded filename not matched: %s At least one %serror was detected in %s. warning-Caution: zero files tested in %s. No errors detected in compressed data of %s. No errors detected in %s for the %d file%s tested. Caution: zero files tested in %s. skipping: %-22s encrypted (not supported) [empty] [text] [binary]extractingunshrinking error: not enough memory to unshrink %s error: not enough memory for unshrink operation unreducingexploding error: %s%s not enough memory to explode invalid compressed (imploded) data for error: %s not enough memory for explode operationinvalid compressed data for explode formatinflating error: %s%s not enough memory to inflate invalid compressed (deflated) data for error: %s not enough memory for inflate operationinvalid compressed data for inflate format%s: unknown compression method bad CRC %08lx (should be %08lx) error: %s not enough memory for inflate operationinvalid compressed data for the inflate formatwarning: unsupported extra field compression type--skipping error [%s]: bad extra field CRC %08lx (should be %08lx) %s %s: %ld bytes required to uncompress to %lu bytes; %s supposed to require %lu bytes%s%s%s %d file%s skipped because of unsupported compression or encoding.  #+3;CScscc !1Aa  0@` (incomplete l-tree) (incomplete d-tree)      sentryentriesisareentryentries-sAmigaVAX VMSUnixVM/CMSCP/MTOPS-20NT NTFSunknownshrunknormalmaximumfastnot yesnotextbinaryrdo hid sys lab dir arc fatamivmsunxcmsatrhpfmaczzzcpmt20ntf???storshrkre:1re:2re:3re:4toknu%03d%d.%dcomexebtmcmdbat%d.%d%d.%d%3d%% %7lu %s %s JanFebMarAprMayJunJulAugSepOctNovDecStoredShrunkReduce1Reduce2Reduce3Reduce4ImplodeToken%s %s %c%d%%%c%d%%Archive: %s %ld bytes %d file%s Archive: %s %ld %d End-of-central-directory record: ------------------------------- There is no zipfile comment. The zipfile comment is truncated. caution: zipfile comment truncated Central directory entry #%d: --------------------------- caution: filename not matched: %s caution: excluded filename not matched: %s MS-DOS, OS/2 or NT FATAtari STOS/2 or NT HPFSMacintoshZ-Systemnone (stored)reduced (factor 1)reduced (factor 2)reduced (factor 3)reduced (factor 4)implodedtokenizeddeflatedsuperfastunknown (%d) host operating system (created on): %s version of encoding software: %d.%d minimum operating system compatibility required: %s minimum software version required to extract: %d.%d compression method: %s size of sliding dictionary (implosion): %cK number of Shannon-Fano trees (implosion): %c compression sub-type (deflation): %s extended local header: %s file last modified on: %s 32-bit CRC value (hex): %.8lx compressed size: %lu bytes uncompressed size: %lu bytes length of extra field: %u bytes disk number on which file begins: disk %u apparent file type: %s VMS file attributes (%06o octal): %s Amiga file attributes (%06o octal): %s Unix file attributes (%06o octal): %s non-MSDOS external file attributes: %06lX hex MS-DOS file attributes (%02X hex): none There is an unknown extra field (skipping). There is no file comment. .r.-... %d.%d%s %s %7lu %c%c%2u-%s-%u %02u:%02u%u %s %u %02u:%02u:%02u Length Date Time Name ------ ---- ---- ---- Length Method Size Ratio Date Time CRC-32 Name ------ ------ ---- ----- ---- ---- ------ ----%s ("^" ==> case %s conversion) Unk:%03d%7lu %-7s%7lu %4s %02u-%02u-%02u %02u:%02u %08lx %c%7lu %02u-%02u-%02u %02u:%02u %c Actual offset of end-of-central-dir record: %9ld (%.8lXh) Expected offset of end-of-central-dir record: %9ld (%.8lXh) (based on the length of the central directory and its expected offset) This zipfile constitutes the sole disk of a single-part archive; its central directory contains %u %s. The central directory is %lu (%.8lXh) bytes long, and its (expected) offset in bytes from the beginning of the zipfile is %lu (%.8lXh). This zipfile constitutes disk %u of a multi-part archive. The central directory starts on disk %u; %u of its entries %s contained within this zipfile, out of a total of %u %s. The entire central directory is %lu (%.8lXh) bytes long, and its offset in bytes from the beginning of the zipfile in which it begins is %lu (%.8lXh). The zipfile comment is %u bytes long and contains the following text: ======================== zipfile comment begins ========================== ========================= zipfile comment ends =========================== %d file%s, %lu bytes uncompressed, %lu bytes compressed: %s%d.%d%% file security status: %sencrypted length of filename: %u characters length of file comment: %u characters MS-DOS file attributes (%02X hex): read-only MS-DOS file attributes (%02X hex): %s%s%s%s%s%s offset of local header from start of archive: %lu (%.8lXh) bytes This file has %lu bytes of OS/2 EA's @ SAFETY013.A "[EVERHART.JTDEMO]UNZIP.ALPHA_EXE;162;1>7in the local extra field. (May not match OS/2 "dir" amount due to storage method.) ------------------------- file comment begins ---------------------------- -------------------------- file comment ends ----------------------------- ------ ------ --- ------- %7lu %7lu %4s %-7u ------ ------- %7lu %-7u /p+x+++///0++++0+(0@0X0p0000+++0h,p,x,,,,,,,,,,,,,,,,,@-@def#NXFSi#:#-------.@Defl:#NXFSh-p-x----------AAAAAAAAA A  A  A  A  A AA       !"#$%&'()*+,-./0123456789:;<=>?@A  !"#$%&'()*+,-./0123456789:;<=>?@AB0w,aQ mjp5c飕d2yҗ+L |~-d jHqA}mQDžӃVlkdzbeO\lcc=  n;^iLA`rqgjm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-h p6666 ?????& #4G~^ ^(GG#8B  = > @blZk =hb# @(B4G0bGZZkG] ](0#kG#TG~^^ ~(08޴@HP>X^`~hpGG TG@B="HbeJZkGTG@B"Hb_JZkTGTG@B"HbYJZktGTG@B"HbSJZkGTGBb{Zk=a` GGG( b#tG G#@TGtG!G$"( b#G#@TGtG }$"c `=0B8bbzZkpbhD"G "H b#="tG#@ "="0b#@Gp4GGXD"H b#="0 "tG|#@TGGb# "="Z8@ =GG ?@#D G4Gb#&@} =c }b0#峦 } G G " h梞(b TpB$"fhZkO 4G ȢG G7BJpGBWK GP" @G12QBCJp`FSBW`JeF bGTGk@{`"G@b#@@ Gb#G4G@øx$"BTGbzZk DB &"D(1 B #JpF4BWJ5B HG0@pB $"hZk* 4G+D# ?@DG  ȢG G7BJpFBWJd"hPbF#[= :YCCKp DACW@K:CE |G 4G vG$"( GB$"BTGb/zZk¤4GB"b4GlZk&"4G"Bb kZkTGP⤠$"iA@ `E `bBbzZkG4GGb#Q@)b#)!(@G4Gb#GF@4GG]] }(08ݤ@HP=X]`}hp#kG#~^^~ (0޴8@HPGGGàGGG4G_%1@ , HEF@ _ ,@" R2HGJG?3EBiB\bB`kG0B "A2PB@FAG b0BGGG "GBGGb3G"GGBb23GGG"!G`Br3pB`FrG`40 @4G0BGG0b3G" (Br4B3pBF`FrGG"(Br0B0`BrGH" BG_"4BF}GHb "S4"TBrH"A2PB@FAGjHb0BeG8"G_G8B2[GHbGUGH4QG"GKGB2GG@bGAG@4=G`"A2PB@FAG4`b0B.TGS+GP"G%GP4!GPBr3pBrGGP"0BG4GB08"Rg1_BBSF``"!B?@DB?B?@rF`?B?BD BBR_BtF_BD _B?@AF @"TGpBxb1"xZk4G TG !  TG砈B(@?B'F "pBxb1"xZkG@%1@DG@b#ð@8`D3@GGð¤G]]} (0ݤ8@HP`#kG#C~^^ ~(0GG#HG`G@G D"0B8bd""GNxZkTG0B$"8bGHxZkTG$"G+@G0BtG8b 0D"G;xZkG0B$"8b0D"Hd"G3xZkTG0BP$"8bG-xZkTGTGTG0B$ $"8b">GTGGxZkG0$"D"8d"@"G0B8bxZkTG}G]]D }G(0@#k#G~^^~ (0޴8@H>P^X~`hp޵xGGG"¦G0G!.rH¤"BQ!J 2F!>rH6.Q6J2F6>7.rHQ7J2F7>GeZkB"&"eZkB"&"eZkGG G(¥ G G GG4G b#O@4G "/"5@m13F`(ABBBbyZk0B4G 8b%tZkGb#@G8D 0@GD 0`A 8D 0@A0AG 0 A@ @SFG/*`jA8F''AB$pB8DGxbFx G GC &"TG:vZk4Gb#@8D0@ G D 4G8D0AG 0 AG `@ DG0B4G 8bsZk4G0B8bsZk8 EjAh@g@`B(&"TGbPwZk!8 EjAh@g@ ` 8 EB0 8& bE0&"GGGX^`~hpx޵GG(G 0b#3@TGN`xBbGj_Zk_&R"E . %, %"GJA 1H0DFr C }C8`.e. GJ`b#S eJtFu@TGVGGpb#@4GOG"0¤!'"1D  (TGhB$pb"wZk Gb#4G@G G@Gb#4@ G*  ?&1"G @b#4GQFG@ G@b#/@ G  "4GHBPbEZkG(4G4G 0 G"1 B%F b4GHBPbEZkG@" 10vJR J5B5 B0D 1D G("!p 1"L3v@JR@JCCrF`0BTG bvZk tGD(" 1" vH 0"BtGD buZk tG `("0TGB bH 1"uZk 4Gb8k("0+`Am81" `B3CDG buZk TG` ,tG("@0 D B1"D buZk TG 0"GBGD(" b1"uZk 4Gl( D `"0" "hBP"pbTG!! 2DwZk ("tG0BD1" buZk 4GHBPb%EZkG<Dfm?" Bb @G{ZktGG.eA `0X¦B5V buZktGOGhGGtG E` bBb KKZk_"tGxB &bTZkbG˱tG5G&.A%@B &R0B0B%BPBbGbTGGӱ¥Gb#.@G "HB4GPbDZkTGGB"GbGtGtZk[ ?"BbGzZktGG#@ 0¦XB7X b(uZktGGGtGeD BbJZk_"tGxB&buTZkGe`tGG&#n@.@B &R0B0B.BPBbGGGb#TGsb3@GtGB"GbFtZkGx("3C0BD1" btZk TG?" Bb AGazZktGG+A 0¥XB.O btZktGGtG lEB GbGJZk_"tGxB &bTZkGtG}Gf/A cAi ¥Ơ.-A-A@ɰ -@GGb#3@4GG("!hBpbuZk GGb#A=@GGHb#@GG AeE G b4GHBPbCZkGA/("G0¤XB81"Dm bitZk4G ¥HBPbCZktG-G(G # !pl!x !0bL!¤,!,"fDDGG ¥!0⤘l!0,"ΡGhEGB b8tZk ݠG4DGG]] }(08ݤ@HP=X]`}hpxݥ#kG#~^^~ GGG0("!D 4GTG0vJ Gb#+@TGh"PBXb`"sZk4GG]G]} 0#k#G~^^GGG b#@" "4b0.!"JGABAF 4բFղ3 YWAC\BC8kGD$!!DG FxF FFsӢFӲGGG]] #k#TG~TG(^0^8~@GG"G b#0@tGrG b ]"=,4G =..=HG2J b#uJTJ"F>xVJ. "WJF>d@4G#GqSH b#0v HF# "Z@4G#GqH b#0?HF#"P@4G#GqSH b#0v HF#"F@4G#GqH b#0?HF#"F@4GG b#" @@4GG b#":@4GG b#"*@4G#GqH b#0?HF# " @#tSHP#`3v HX"CtFR JX9!F Y9 C#5GG(]0]8}@P#kGkG;FapC;,;HdGk#G~X^`^h~pxGG" bB#GRzZkBG4=dsZk4G<]B`Hb"_F@F<]jzZk4G',hB'= pb"H&zZktGU@u@P""D B41"CbrZkTGGGGX]`]h}px#kGp#~H^P^X~`hp޴xGG#b0b#@c <5@0U@k""`B0bG BҢGzZkG B"GyZk"9vK0GCCG# $" pF"`TGG6# pJ6,c#D@A9HTG0D9CPC4AJ2AJ6J@JFAFB21@BRJGG BC%J(=F,}!@#GvH"GyZkG BX"GyZk6J BJ(bXCDxF޶GG>$"0"GGctZkTG`B,#"hb("vZk$,"0$"d$"hpF$a.'A.tJR TJSFc@ײ.u#,4GBP JEH><bIyZk?$! GD Pb#@G0b#@4G9 BB8$"(bH"tG*tZk4GH"Gb#A@"b# %., %J@ HDC6@0b#l@G$ 4GBBb yZktGD` BB`$"bqZk4G0b#T@G4G%."r0HQ0J$`"2F0>p`F=pB4Gxb&yZktGGD BB$"(bH"sZk4GH"Gb# @"b# %., %J@ HDC @0b#$@G$ T C"SFc0"@B4GHb5J0xZktGD `B$"BbzqZk4G0b#@ӵ  t"xAC"pCp"p"x"Dx#G"G#G0B`bТ" B3GxZkG B"GxZkvK0GG Š f#4.&"#J?Gs JSF#?GXF(F/?G[Kw`KDGc D /"GKqKFGc@F@."G"JgJGGcGF B"TGborZkTG0b#@GB,& p D@G,"pF"B,., /d/J[ `KpGCMqZk"%%4D"4d.fH?@PB?BPSrJ1DfFr>P HZ}#GG5vJ BRJC }C9K8K6!KKCG$J/GF0CB81CFvH"xZkG BX"GxZk6J B (bJXCDxF޶GG%""GGrZkTG`Bhb,#""_uZk,0àdhð %"$q.$"'Q.$"pFtJR TJSFc: e4GB,,; bF HDH<<@ SAFETY013.A "[EVERHART.JTDEMO]UNZIP.ALPHA_EXE;162;1R>VwZk$ GDPb#t@G0b#4G@G/ BB(%"(bH"tGrZk4GH"Gb# @P"Šb# &., &JD HDC @0b#@G$ 4GBBbwZktGD` BBP%"bApZk4G0b#@G|4G$."r0HQ0J$`"2F0>p`FpB4GxbwZktGGD BBp%"(bH"XrZk4GH"Gb#o @X"b# $., $J@ HDCd @0b#@GL% T C"SFc0"@B4GHb5J06wZktGD `B%"BboZk4G0b#y@G+G ð t"xAC"pCp"p"%" DS@s@ @@BGGCÀ"GG#Gx%GG?Fx%¦GGòGB"Zt1" @`bBTGboZkTGG`" BGGvZkBGoZkG¦#xH B`"֢7=HFGvZk`"0""`B l hhbDhd`#ò!G`#4GwZkGb#" @TGGt,u B#"bGGHGH,, pHG!H0DG tZk"Gb# @TGØ㤬pH ѐHEǰH1@t J3_JtFB7JxHF,C#"$ H@ A.sH "RAJSFA>.J.xKa#WJF>.Z#J@`,qJA"@HD<@r.gK"SrJgFr>.wJ#TJF>8/zK pY8K:G8?(c5JpGB(G@J4JFvJF(ĶdG`($GK9'HTGzK:G(D#"B"bc"'!J1"JHtG'vHG@0$#` GGG (WsZk HH"Gb# @TG4GxGGGH]P]X}`hpݤx#kqFpFQsKRTJBSFqQ KS tJrFqq Gp Gq`J[sK`B`Gq J@ HD#qFpFz4HXKBGR 4HZ TKXGRqFpF8zJY;K`C:GX8 JZ [KYGXjq`Fp`FvKUJBFԢ KV JFԲq Dp D0rHQ3J`B2FP0 HR SJQFPlqFpFxJWJ CF JX KG^qFpFyJXK@CG7 JY :K8G7q`Fp`FvKUJBFԢ KV JFԲz/"$ [ zK`G?A. HR AJSFA>."V JF. KW JF>:/a#Y :K0G, J@ HD<r. KS rJgFr>. JT JF>8/ KY 8K:G8?@#~x^^~޴GG b44c D_ @¤0B#"G8btGmZk4G@BHbXjZk4GtGPB"HXbGZk4G(=, "&P0HJF0BQ.QJp@F@}. " B(bPtJJ^Zk4G D=, " B(bP0HJ^Zk4GD =, " B(bP0HJ^Zk D=, "Ơ4GP0HJF@0.0J ]. }" B(bPSJJs^Zk-fHHIE=%,%HFrH2FC.vHUJF>. #XJK< C9 C<C@ QGOPB"pGZGBtZkG- a'H#E= ".p F."p#JV Jp GFCTF>K (0B4Gp8btZkpG&pDN(p}"].4.SJ4"GxvJWJ@F>U/ZUKU?pc;,,  $H@ HpDDC D? '0B4Gp8bttZkGGx]G]}ݤ#kq Fp FrtJp GSuJBtFr JT JF?q Gp G(zaJ[gK@aG,:(z JA 'H;D,:qDpD((pKA1H B0D,(( KP JF,qDpDq2HPJ@BF( 2HQ 2J0F(G#G~^^~ (0޴8@H>P^X~`hGGG(b 8"p"!R H(v H&G G . Ju vH GF0*.*,j!4G+J@A +Hb#1DC GE 2,2"G1HGG{@G0"b#QEr."GGtJGk@$ c`"pFFE"pFCN@ÜGGb#E@bS."JGM@$ c`"pFDE"pFCL@äGGb#E XbS."JG/@G "b#QE r."GGtJG@G`"b#QE r."GGtJG@GH"b#QE r."GGtJG@|G%<%"0GtG EtPBXblZko-I  GD G fGTG0"#R J6v Jv"I`G.J y/yK 0AQ! .alKP JF >.9#J GG+B+`AGCV##_BXJ!WB,aK!@HD< .qKP JF >i.)!iJ GG4A4B@G e8DAŢ$ #=`pGE6!p E$2.'.$R"2JP J$l#F p`G)%Ee $J/A"' /$J!p@FJKX KG`R$K#p@Gc$.'.$!JU Jc#p`GF $e#p`G`GGG]]} (0ݤ8@H=P]X}`hp#k),A )H0DqFpFxHWJ CF HX KGqFpF!rKQ4JB2FA! KR TJQFAqFpFxHWJ CF HX KGqFpF!rKQ4JB2FA! KR TJQFAcI-J II LE.T JF,@ HD!. 1HT JF> Y/Z YK[G$ . lKP JF >#y.S yJtF(, K@ HD<0 . KP JF >1i/[ iKsG7qGpGZ`KJAI @ @EZ K@ H D:q Ep E{y4JStJByF;{ 4JY 4K3G;$l#p`G;q`Gp`GuJHI@E JU JF. q@Fp@F)sTKQ4JB3Fi) TK$K#S tJp@GqFi0q@Gp@G6`JY&K@ G6 J@ HD# q`G p`G aJ$e#p`GX K AG* JA )H8D*&q`Gp`GQsHRTJBSFqQ HS tJrFq#4G~^^~ (0GGbc Bb\Zk4GBb\Zk4GBb\Zk4GBb\Zk G4GBbP.p"0.SJQ 3J2FCG\Zk"4G1"BB1D Bbz\ZkG]]} (0@#kG#~^^ ~(08޴@HPGG]GGRR@JF2ABGGGRJ2vJGD G(B B0b4GGF[ZkGGjG @@0DHBGGG=qZk<5@6U@ JSG]GHBGGR"/qZkPGGG#JG 1@G_a@ `".J#7JGC7DC 1!H#1`@a@C"6 J" @.J#:CKGC:FC,v9J!!JGDH#a@D<9#!H 1@,!!HG#1`@EH<9#6 H 1@G]GGGb#GR"G@HBGPb4G[ZkGGG]] }(08ݤ@HP`#kG21 B{  G.G?FJ4!H5FFUBuBJG"21@BF? k#G~G^GGG 6Gv#_G9 G] #kGVGGGztG[@ZkG] #kG#~^^~ (0޴8@HGGGGGG_C-@ ' Q" @G@G GG1GpBGf@Ǣ2BGGGfpZk$@@B Q"_b#@ӰC'!' "b#11@GGG]]} (0ݤ8@HP#kG#G~^^~ (0޴8@HGGG¤#GG&@' 0B @BG"^Bb0B7J Bg"GGGG^G (@mZk HH\"Gb#@TG/Ǡ <? &&@'GBHB!FG&BDzFBGGGoZkGG $@@"("h"޶GGBbG (mZkȤ HHt"Gb#@TGE/h Ȱ0`@h2H?"6AJ@( G37HBGCb(C!~h"GGGG (lZk( &HH"Gb#@TG/(@$@&@Ȱ¦C' BV$B'"DBGGGoZkGG]]} (0ݤ8@HP#k#~^^~ (0޴8@H>P^X~`hGGGGGGŠ K(!1v J)v JG0FBPB*vJGGC2#B f@@"pA 0%"PBtGXbgZkTGtGBAGGGG5oZkGe$BGA@GGG*oZk#x@Ű@ #1`@ "Gb#2@TGTG "Gb#(@TGJG/A/QA屪C(@-g-IK gIhEGPB#B G/f@"Gb#@@#QA #1`@C ?G GBGG"nZkeGC?TG%@%"0tG @ϦDPB6vJXb!CgZkTG"b#1Q@@ӆDGGG]]} (0ݤ8@H=P]X}`hp#kGGG< q",`."UJJXFF1`0.! a"11 BTJJXFF'&a.! "11 BUuJJXFFa.! "11 BTtJJXFF11 Bq"!  G."UJJXFF`11 B! ?00@C1" 4G.""UJJF a.tJXFXF.! JFTG2kG#~^^ ~(08޴@HP>XGGGGGŠ tD "@FC,1"!@H8 DXCFD@GGb#I@TGDGGt`FF AF&1@4G `.JXFFt4GEGXAF@.JF3BFt;G ]"GGZ_%%" G)Cr# `P¦GpBtGxbfZk4GG&G@ GG i@ Q.teGGQJFu@JFtGGBG7"GmZk4G%)C ݢ7)@%6AG "Gb#)!G@TGm0)GG$@: GtEB6 G_FdBtE dB".B,_FtEdB!h@1@]"G_GG CG@=1@ b#@ݠ@GBG g@tG),F)Hr I2FtEGBGTG-tŦ$@"(PFpBCxb%"&@GtG6fZkTGt%h@G ?Et%b#@ӇDGG¤G%h@BG& $A%$@GGgmZkGG]] }(08ݤ@HP=X`#k#4G~^^ ~(0GGGXBb $mZkd"Gb#I@"b# . ,  JA H1DC>@$""qFpFQstHp DRTJSFWBQݢ#`* ( B4G(bmZk|"Gb#$@d"b# #., c #J@ HDC@TGGGG]] }(0@#kQ0`Hp D_FSFQݢ?q Dp D(yJXK@CG,7( JY :K8G,7G#4G~^^ ~(0GGGBb lZk"Gb#@"b# . ,  JA H1DC@$""qFpFQstHp DRTJSFWBQݢ#`* ( B4G(b}lZk"Gb#@d"b# #., c #J@ HDC@TGGGG]] }(0@#kQ0`Hp D_FSFQݢ?q Dp D(yJXK@CG,7( JY :K8G,7G#G~G^4G^tG GG@o![@ZkGo[@ZkG]] 0#kG#~`^h^p~xGGbc # " p F$"ppF} G`"D1"$`"p`F3â6 p D$W.'7/$"$"WJY 7K2G`pFA 0# a. A. !"S qJq>RQJQ>$.'.$" #JV Jp GF$U# p@G(b"GB{G lZk=="#`H9?K$" G=$/'.KV JF $#pG}8 B4G(bkZk4GBbkZkb#,_GG`]h]p}x#kq Fp FrtKSuJBtFr KT J$"FpFqFpFxJWJ CF JX KGq`Fp`F4p5JA5HB0D4 5JP JFrq Dp D0sTJ$"pFQ4JB3Fp0 TJS tJqFpt?qFpFyHWJ@CF5 HY :K7G5gq Gp GaJPJ BF: JA 1H0D:$U#p@Gtq@Gp@GrtKSvJBtFr KT JFqGpGu:JTJ@CF :JU JFv# "~G^^~ (0GG#(b  $ (BG!'H p.0"G0b A"SqJq>p. !."pJQ2JtrJG4F2> . ! P. 0"JRQJsJGSFQ> . "A.JRAJsJGSFA>0".P.JRQJsJ SFQ>.".H GJUJvJGF>G#c c"G (KhZk4GBGbhZkc%fHHH"Gb# @TGGG]]} (0@#k#G~G^G ^(~0GG =(B 8"G0b "="=]"aZk@"" }1" G}""C.PJ>@"1"BGbG}cZkG] ](}0@#k#G~G^^~ (0GGbc  GBQZk:BGGpQZkG("BP"!GjZk4GBG|cZkh"`HBD"$ FF"xDGGjZkGG$$"D.sqJ "SFQ>{uKD/P"4G[GU?(B0bjZkG_G(BP"0b4GjZkGK$(@%DYBP"G`jZk4GBòG|pcZk$`HB$# # ?F F$x$ "$dcZkGh."BxH WJ"F>G@jZkGG .wJ$#(B"0bF>$rPJ$.4G2F0>P"pjZkGG(BP"0b4GyjZkG 㳣$.D"㳠 2J@.UJ>G]]} (0@#kG4G#G#G~TG^^~ (GG0$` G! H @BHbSjZk B&$?"s",R">D1D3D2!Dr24G BG(b4GhZk4G B0vH(bhZk?" BG0HDJ HFvHPBA?@D@@@@!@0R"BPB!!H1JC HCCC2C0FCF2FP 7P^XGGGGGGG "Pb#9@@G B=" PZkG"/0¦" 4GPb#֢賶Bز%@XDTGG("=!=.@!Q=J=>G BbTGaZkG@"`G# .!"A!QJ'J?FG / i.tiHGSiJtFi>)!qG5d@wBO\Bk.G{KWJ>E/ZEK[GE?G"TGPb#@GG' =!U/I.Gs JRIJSFI>LG"4E."VJJFJ!AGF  /*#K%G ,GaIK@ HJ!D <)!I.Gs JGRIJSFI>(GG&.GvJWJF>GDC,9#YH'Kp G  G dD @eD`I.Gs JRIJSFI>G.viHUJF>)!. #J!XJKGG~H"@i/G![iKi?9D+ 0.P"bR2JsGJ_F_FrB.JF.""VJJFFvB.JF p," FfHHDDfBF-FI @E_/K$-I$I$=%,GyEKA%H9D%<@bBGiaZk`@G . Pb# J%F@ SAFETY013.A "[EVERHART.JTDEMO]UNZIP.ALPHA_EXE;162;1u>u @¤G8@GtGƠH"A8BEB1" b`ZkGTG,GH"tGH1" Bb`ZktG "tGPb#@GGPb#@GG]]} (0ݤ8@H=P]X`#kG#~^^~޴ (>0GGDGGp" =G" ¤0B(=0 ưưưư }`Zk`H0JF]/]K_C@GÐB"b="]"tGKhZktG =tG&P D 0J&}JBCGbG_Zk& HH @&&4GtGF ݢB6J$=bJ)1BG_Zk @&(]=2FJ!F FJ,=)1@B)1 A1"BGtGb_ZkG @&viJC."UJF>&8Cx##9`+G , " 1H"%F/ `.& `#tJ)1 A&؅F%)1 A@/ &`")1 A[KeG`@.&)1 A SJ "eF`&)! F&/z#Z#!1 @KeG`F&! ?F CƢ_B9BF&6BDz.PJ>n 8D' 0BI`Zk@@@GbG " 1111 G Ѡ?CѰ1"{0IF/ZPK[GP?1/XK?EGXDd0BG`ZkG ¦Gv"`tGV.gJR"zKWJF>V .6PJ)!F>68 D.JإF8X D#/"#KC%G #.!Z#(J%F VGG,trKyJGHD<,FHDVGBxDDa8"ZGG@BfZk"0Bd=G_Zk`H m"l ""G@BGlm,(AqI9DHGD'IaZkGG@BHb&yZk8DD,a(ItGGHD<G.="Jq@q.SqJq>x ¤ &".WJ>+ G_&CX#x/a:K [zKR&aGz?GGb#R"tG@3PBXb"GTG|aZk @BHbGxZk8D 4G'0B&"GLZkG`B!("G`LZk0B("GLZkGTGPBXbGZaZk @BHbGxZk8D4G0BG_Zk 'B@@4GG0BGLZk0BG^Zk& @&¦D֢tG G G0B"7",DHh^p~xGGGG"7BGbtGVrZktGBD'b{ZkxD"B @ tG".JF(B0bG[Zk' @G)4GH)'A2IBHhB?"pbGaZktGG"LB1@GbrZktG"GB (b{Zkx D B1!GCPB%@G G" CGj.GtGjJF(B0b5u[Zk"! G(C0!GCQB_ GhGC4G4B5B¦tGtG8B(@b7v[ZkGB%@$d@ @I4GE@AwIA DR xB⤐bG? BGbtG1@'qZk_"tGB#b9{Zk 9#!!GCB$ G CG+.tG+J"JF @b(BG0b3[Zk"! G#C0!GCQB_ GcGC4G4B5BtG"8B#9tG@b[Zk0@@ @ iEHX"!?@0D "tGBB"Rb1"[Zk"TG"B b1"~[ZkTGÀb"GXb#c$d@@_tGpG= ]- =! a."i, .!tJ .dH,h!4JKI$HJ JC+aICF"H"D/5vJW/ C,0vJW- hEuSJ +v`I}"&-6#-0vJ,w#&,K/C1Hr`If-[KF.f  2F;aK"S#HI'I&"WIHS-K qICJ(I)"I9!KwG4J:BK1!J0J;v`K&H ACPSIB1A6GPC;v`K&B%SC E9v K;bK 9v KECyGe@GG ](]0}8@HݤPX`=h]p}x#k#TG~8^@^H~PGG"b#p_tGG}" . = .".#A.!"J"x/J5J7/1!JJ. AJC8,W#`KCF:K2F6vJ";aK2v@J:AK.8H4.vSJ,J4,C2v@JCxGCt"4#WG;v`K"F3JJ.:v@K0.T"{S`KH3cJ9"K:v@K4H= C2AJ#yBp.zGJP/".5J2C ]" !"8K5JpJ.@KJ2.C:AK"J .2J "C/SC }"J.K4C.cKPJ F>J,a /"7JH`pJXK4JG?B . }" .  /5JJ.J KaJPJCF>1, p`JFA H"]"0D <(= .#aH.a. JѲBq B.`J&} 13aJQJC/wFc.$}#"4J,J vJ[/C7vJ;#6JFHK4vJ!JrJC9!KF2D4vJ[K8vK*= 5vJC4J,.;G8vKa.5vJ!/;v`KC.} A"8K.A#FJH;v`K,"CtJc.G2CJ:BK"#!KJH# ZBC.aJ6J 8K4Jq3aJCJBTCCYC$QC(GG8]@]H}P`#kG#~^^ ~(08޴@HP>X^`~hpxGGG`G G<5 B 0U B?G!@g/[gKg?H.HJ.G4GJGxF8B@bwZktGG8B4G@bwZk,!HtGØ4GxBb"ZZkG x¤d@"G BTGp1"bHYZk 4Gg@%vHG G8b#G_tG@¤$".PJ>J0F)D. GGJ!`"G."ɢ G!PJ4GJFB/KBbIZkG',"@0HHJ.s H RJJSFJ>.J.WJ>Ơa@ D#ƠH0D! $/Z:KGKEG`$ ! @.A!!.JQ*Jr J2F*>a.aJ! ,"-HHIv5IE=.J! !x"GBtGb1"XZkG`B?"ph¤('@HBC@Pb#@ @GGG^ZktGG+B x¦X⦈B6WbXZktG/dEGBGbtGznZk_"tGB(bxZkXGtGİ&@İA X'@ %A0*'B0b4G BbJZkhBGpb4GXJZktG GNx"Bb1"sXZk?"`"ph¤I*DAHB C@Pb#@ @GG]ZktG G-B X¦B5VbTXZktGEBbGGtGnZk_"tGB'bwZkX¤ GtG-A@xX"@,LA Bp G8b#_G xDGiG,0 0.H0J!!HC1D v Jk,0 0.P"p"H,2J0.!#H2BJH0J3aJ2@SBqBk#~^^~ (0޴8@GGG¤G7G_.#"F4GPJJFQB,H@(B0bHZkG#,"@0HH$.D"f'H4GP2JHJFtB.J(B0bHZkG$,"@0HH HHD#.%1@ #Jc @GG]]} (0ݤ8@P#kGc."4GPtJJFB.J(B0bxHZkG,c @HH,$ Ơ#H4GPHgHJF@Q.QJ@(B0bbHZkG, @HH H H `@4`DGGkG;FapC;,;HdGk#4G~^^~ (0޴8@GGGXBG`bGvZkGG%,G%Hq."0@BTtJJBBFG.1""WJJBBG 1/1"Q#Z:KGK_CDCzG,1 AH'H?@$DF`.1""AJ'H?@$DF /1"1#AK'H?@$DzG?hBGGWZk4G(B0@0bHZkG  8B@b4G_`ZkTG4GHBPbuZkxBGGEZk4G#(B0b@0 @P?@HZk4GG 8B @bG`ZkTG4GHBPbuZkGG%" "@P".1"UJJBBF/ '#UKJBBzG `, ' UHJBBBF_F.TJ> ."WJJBFG G/ g#W[KJBF D G, G"WRHJBFuF61Bò@ GGY1"z#yz`#!1 @#?G]]} (0ݤ8@P#kGkG;FapC;,;HdGk0#~P^X^`~hpx޴>^~޵GG# BRH#vH} (PBXbP@4G2HZkG C * =GJ1"0B B@1"0B BH PBXbPC4GHZkG C `- =GM1"0B B@1"0B B}`$}`}G$GGYAG81Cb#y9C#vK}@$TG_GB"GbtGaUZkGGxb#_TG" G`)TGGxb#!v HC_= @F= )TGGxb#R JCtG_= @F =)GGTGxb#)v IC_= A D =0b#i@0AK$MGx"G)!-! DtGG8b#R@J0@FC@=4G= )4G-AIpFAWJQBѱ,"I!_-! tGG8b#J0FC}@ =G = )4G-AIpFAWJQBѱ b#"@$0A$G(= 0 A)v I(=}$@A EV9GtGݰ4G0"tG0"B! $]biUZkTGB (bbUZktGݰ G}pG0Bh! -`m"GpG0"Bl! (dh"G0btGp"B 1"Bb?UZkH"@b0 4K8]<$=J?@J_A@]HH@BC1MHb2B?"GZZkG@G*@ 0¦B6WxbUZktGݰG@tG @E$BGbjZk_"tG Bb(YtZkGp"Gk`pQp1"0hq"BGG]bTZktGݰj#g@A H"+I*@A*GA@*@HGTGG@Gb#h\_Gpb0BGBp#pc ]pc"bTZktGݰBpBGBGbtGG TZkGnpG0bBp(p!0h"]bTZkTGTGݰ^BH("bTZk?"@BHbGZZkGtGGA̢1B@6FB b\jZk_"tG Bb-sZk 8 @ A GH""K 10B0B &BPBHbGGGb#TG@b_G Bxh"G(]b[TZktGݰÐBGbGGtGSZkG Bph"(G]bGTZktGGGb#_tG G @0p"B ]b1"5TZk]G0¤TGGTGxb#(vICM_G @D  pB0Bh*hJ! j"bBTZkh4GBbWFZktGGTGxb#RIC*_p0 A@E  Bl'l g"bGBSZkyG(BG8G  EGG b#4G_ C- D bGGb#4Gk_#!5@  GBFUÈ"B1RO `bsSF4`FÈGBFB`⦘¦֢F4Fp"0px@)!BG GbtGSZk4GB bPZk4GtGBGOblZkB8)" TGbSZk4GB bPZkG .q HP JF >]}4`F]."RJGJ65HBB\BkGBh)" tGbvSZkGBX)" TGbnSZk4GB bOZk?"tGBOGblZkPBGSZk `@,,!,H XE 1@`@q.SqJq>G b#4GG4G4G6_ CD)!h?G4Gͱ$D=0B)D)D pbBGbs""BGG/SZkD}]AY`@ 8E ETEÈ4G"`ȱp4Gb"h" G`0.`BQ0J0>ұj`¦֢pG Bt"bW"7"b"RZk4GBbjOZk&)v I!Ab\"AkG%G `Gb# _TGD[GGb#_TGDS"@! "E*p"8Fit1"Q""# $Q#q#9V K0 GC;GGG!1"BGbDGGGGGRZk4GB bOZk⥀"x¥.01 @ _"GGk31`Bk`Hբ.J"ղGGGb#x_G#"A/FO&i"1".vI0`BUJwFF>iG/GG@b#GtG_)} GG@b#GtG_vG¥ E$p@" t!b)M""- 8 E ""VJ0FCFG-# !Bb GGG8RZk4GBbNZkGGb# @G*EΡp"TG?AA1" EA.E0"0tGp"B1"BbRZk G,G") E$p@¥ t!bΡH""(8E ""VJ0FCFG(#$!BbGGGQZk4GBb_NZkGGh b#M@*͡.E$p@ "t!bO" ,"/8E ""VJ0FCFG4/#AAG2FB  D@xs"0""35E""7E!޵xS"3 >s" ~Gp0"x!1X!` H- P " E0E޵h"@M"޶p!G GGBGbtGEQZk4GT E GZG E$p"@ "t! blA" "!8D ""VJ0FCFG!#! BbGGGQZk4GB bMZkGGb# @G* tGp"A0BAAER  E H1" xE"8q"3DGGG /p xE0Gb!!0!-EGGBbPZkGxETE G# )! TGD] 4GEGGb#_!DPG &G  E& @AD AD 0tGp"BbBH1"PZk0¥Gp"BG f1"bPZk4GBb MZk TGD$GJp"@ "P1" p" X1"DBTGbPZkD 0tGp"BbB1"PZk4GDݰDݡc Ac MEݱ`<0A<H=)!H=@0@@$ AB@GBtG0=b:fZk_"tG¤BB*boZkH4ݡͱ}0`@}8=+,G0tGB,ObFPZktGtGݠ GG@ݡGntG `x"0bp")B 1"IAbI,PZk 0A! AB4GbjBZk HG ]GjtG `b0"p"kB 1"K@bK PZk0@J! @B4G bJBZkGGTGb#G_GtGB bGxDh"HOZkTG0¥⥐B/bOZkTGbB#bOZk=}4`E=¤tG(Ơ0@ QD] @p 8@E  !0 H!OEGG!G ¥pTG.`"G0bTGpc"`(= b+ Gp 8D GG X!$`G!EGGPBXb QZktG((}pb GC(] GXk! 8E !(EGGG G TGp D'"PBXbPZk(ݡ}A4E}GP]X]`}hpxݤ=]}ݥ#kG#~^^~ (GG# (b`B$0D0D1FF#!F !B0 F1BQ D1D $0F0F0WJDD$R #<5@B @G$FG V J!F0@F2w@J2F Gd3!D3.C"#"JX@F @,HGW%@;`@BHbGTG`TZkGGP@"UB5BbG`! 0Ba"!^TG^BNZkGKG#,"0HG"B@@BGHbTG?TZkTGG¦P@BUB`"b5B6v"G0BNZkG+G#GR HCaF `B PBBd4b0BNZkG$tG!0 D P"Bb0B1"NZkG GGGb#_4G(cdG]]} (0#k#4G~^ ^(~08@޴HPX>`^hpGG=GbG ]G}Š Pb#f_4G GG@b#"i_4G= G <A("B! @"1Ce 2G#GBGGUZk0"0GGG`b# @ "GxEtG"@B8Q"Hb2DGGQNZkGxETEG0"B!0@ BGGUZk GG ¦TG "@BHbh1"6NZk4G0 Ű$PG(1A O.G?F4HOJJ3FFSBBGs!(1AtFGGiF " @BGX1"HbG NZk4GG]G ](}08@ݤHPX=`]hp#kGkG;FapC;,;HdGk #G~X^`^h~px޴>^~޵G=!= ]_"}G =}r@`GGG0B"GGTZkG_5]"01B"Q?BQBGr0`Br]F}G4G_R?BCR@0 BS?BCs `0 BP?BC0 BU?BC0 B"B] G}ZQC@;G@_BC21@BS_BC@s`21@B_ G(BU 4G;AJ;AJ4I3!J u`CC2B `C/@ `B$`#`GP?BC0 BU?BC0B.0 BZ?BB5BC'0 BZ[?BBC:B @{0 B3!JZC;[C `B`{C2B GU?BC0 B2B5B B_[_B}"{BTG4BC,{GTGx,ݡ21@B="}"BG @GG21@Bs"@G1"p_G}#! GUBuCQ@A0@Q0@C ⥲CC_= =11`AAaAGGG!0G(Gp `A8`t=x=Gx]G$1@&@G =OAo!(} @ iA;iC 0AG`CG GG2iA G:I0@CSC@` 0@A!H!H@A; 5u @;AI:DC" 5@:1@CPpA) uC'`G"ZC0G"qB) 02QBRBGaB" 0@A!`p2ABRBG{B" 0@A 0;[B{CGqB 0@A 0@A!AI:qC 5@?@A `G"ZCpG;B 0@A@A:[B=G!B *AB*)@ }2IGA8BCgCC@bCPABp]4G[~Zk(" 0 GQ BA _Ep0"B _EUB԰0B}7I=ݰC71BE)8AGh^p~x޵GGG =@]0@@@p.pJ.J 8¥@B}jGA$@ "21@Q? G("Q21@BQ @ !.!J! GGGGb#_ G,I A CG lEA C_}hEA?@ a@ F CBA> xLE@lEBHGHGGb#GGtG_G>4G 4G8bG@BdG ](]0}8@HݤPX`=h]p}xݥ#kP.R PJ.SFJ?Q.R QJPF.P JFy.P JF.P JF?.P JFwÀ#~^^~ (0޴8@H>P^X~`hpGGhb`Š<JH"DK'@@C" !1@)?" GGP"01B  1,1H1" GGGGb#_ G*GI@ C  E@C?*vIH"(I'@&@I$ "_I31@Bi@" GGP¦71B 8Y/YK9#8 GGGGb#_ G+gI@ C  E@C?G0vJPE4GR(I"G%I'@*1@AF k!_@$@HGl41`B`" GGP "81CYz/zKZ#Y GGGGb#_ G-I@ C  E@C?&AsIP.0@DRPJSFP>p¦ְGGG(b#GGtG_G(I GI'@*1@AŰGG]]} (0ݤ8@H=P]X}`hp#kG#G~G^^~ (0޴8GG#b  zG_ @pA" !"_A" @%@4G @  @ a"  A" @ 0 @a" A"!"@@%@G /` @`!"` A"`?@ 0 @!"`?A"!"@@%@  @!" a"?` 0 @a"(¤GDG ?"@"_"GGb#_+GGGGqBqP#q" q1"0bq_[f"~GGGb#_b#G Z_G G"`b#0b!Dsl_ӠCG]]} (0ݤ8@#kG`#~ ^(^0~8@H޴PX`>h^p~x޵GG#bH(Š@"' 1 @ ?"GG001B "!,H1"!GGGGb#p_G(I@CD@C?D(&H$@?"@BH#@Gg41`B`" GG0"81CYz/zKZ#Y GGGGb#D_ G)$I@ C D@C?D(&H$@ 0B=@H# GG31@Bg@" GG0¦71B 8Y/YK9#8 GGGGb#_ G*DI@ C D@C?= ?"AD$A&H8 F8@F2F BH$@@4GGbCG k!5`0!_s@(#G61BͲ#GG0"bY:1@CY@;.J! ;GGGGb#_G.I@CDs@C?P@AD&H0@PBpA@vH$q@0_4Hs@B-`0""V@CBBBCCBBBB@9:H֢WBXCY?CVBwAxAyAvABCs@_ `G@@B0@s@@@`AG = !"GtGtGGG`b#_`b# G 8@E@_Go 8@C-I{ ACG G @$(-21 BM "GG0բ61Bղ 8/8K#GGGGb#T_G/I =@CD@C?=DPBP^X~`hp޵xG,GGGH G#.#J_BD #.GtG#J#"@8bG_XD .J C.CJ `8bGGGtG_#,c #HTG/4GxD C.CJ`.JG5BGBFG@ GG / K @G Gi/iKG F 4GGG FI.)!IJ , A%C G HFjG@.JG G ! A 4G^GGG (.h#!;J A GRGCb.4GsJFzB.J@(B0bGtZk HH#,#H HHG#.#Jh." GtJF,`GG.JG/GKA BGG4GZAC.JG@(B0btZkG!'H'HGG!'H'HGG-D(.0A(JA_! A G G\8b "#"GtG_VG GGQ8b "#"GtG_ GGHG D-I G?C@ G EEG A4G,-,I(B0bsZk HH G/G HH GG D@-4GI F @-I(B0bsZk HHc-cI HHGC-CI Ec 8bGGGtG_GG]]} (0ݤ8@H=P]X}`hpݥx#kG,H G0. P"Q J'J+F ,H@,""HG_kG$FX%F  ,"H_Gk4GkGkG;FapC;,;HdGk#~^^~ (0޴8@H>P^X~`hpxGGGG"G/GC4GG4GGG G_)1 A` JJ!r.rJFZR"_r."R"TtJJG5BBL\B kG0 B !G 4G !G TG GGGGGCs"F4G4G4G !G G !G G !G tG GGGGGC"F 4G4G4G !G TG G G 4G4GGB)1 AF G/4GC@ SAFETY013.A "[EVERHART.JTDEMO]UNZIP.ALPHA_EXE;162;1>b#_5GC  AFtFG tGGCW!B!\"BkbG G¦÷ Ab AFG+GGF&G@G"/GCBG]]} (0ݤ8@H=P]X}`hpx#kG#~^^~ (0޴8@GG#@G "0BBZkG 8B!Z#(z#GRJDHC:"Z#8`FzGBGbGGGBZk4G q8Bb` GBZk4GB("bBZkGX"`h "B@bGGBZkGd""ŠRJ Ţ!vHC8 FCUF޶0 "GGG"""!vHRHCC8F6F8`F%#RHF>C>0 " eGGtG~ ~BbBZk4GŠP"&vHBbBZk7B "bGTGBZk4GBb "BZk4GTGGb#%vHCA_4GBCb( "BZk4G`Bbp"yBZk¤4GPTGƠ&vHC Gb#'_TG8"XpBxb1"@Zk4GG]G]} (0ݤ8@P#kG#4G~^^~޴>^~޵GG#(G048@<H@BP@HbrZkGC4( 4=GH1"0B B@1"0B B b4G @BPCHbrZkGC8+8= GK1"0B B@1"0B B(G 8"G8LzaGz RH vH)G GGTGb#G_GtGpBG`"xbZkGG`b#_CL $%G!D F@xFF`FGѢFѲTGGTGb#7vJCw_ Cp@* p]0] 8bG+1!_))!`tG Gb#G_4=4G4= k4G++AcIpFpAWJQBQ`"is!_+k!`tG Gb#G_8=G8= )4G+iAcIpFpAWJQBQDh"i7`.tGTD3#v9HWJF>0vJAG0J`6JpF0vJ @."0.UJ0Jx4JF> G8AG" BbtG1"AZk/ = Ga.Gt!J"SaJw5JtFa>.#z8Ja#VJs;JF>!/"v4JY8K:G8?A.R[JSF[>.!  @GUJ/}"F>$e/}/wAB:aI[sKR@Ks?'v@K\BBkG\"P",6 6#v#@H</GXK?v.? FTGSyJy>V/"BZ[K[?zK P=/Y=K:GP=?FQ,GQ"utK@HGDDT}.TGT= vJSaJvFa>D`U.GU yKWJW]#F>W.Ga:KTJF>D`V}/GV"`J[vK`Gv?DX.TGyKTJFX>PD@Y.GY v`JUJ[}#F>[.GaJWJF>Z=/GZ#zJY8K:G8?  GGP= 5@G_.J`.@/JZ@KwKWG@? 0B"0B! /GzJY K0`B:G ?s#  = .!@vJTJCF>!  BGbTGDZk"@GWB,"1"3CB Eb+v`IGTGCZkGB@BGTBbJ!3B "GG@ZkGG".nE""vHUJP`EF>%/%D%"y7JXK`EG?&}/tGF&]#p:H[zKbEpGz?G .EFdEuJTJ4GF >$=.eF$]"w2KQ2J aE7F2>` =,GpKA=H0D = ]/G{KZ]K[G ]?G ]-GkHJ]I KE ]="]/DtGF"=#{yJZYKD[GY?#=,GEF# jJA HD4GFDTG*D %=/zJ&}#aKY3K0F:G3?&,G%F!]!@HrJD'.qUKGB۲DVJy}KbF>(.G,}!TGTJF(>CZk"@ GXC81"3XAG% Gk! KE# ;#1 '#<|A#$' # `A<|A29G =.Gr=HQ=J2F =>7G .Gv}JUJF >/G =/GzJY=K:G =?'G }-TGa}KK}I aE }=G ].tGsJR]JSF ]>G .GwJVJF >G ]/tG`KZ]K@G ]?G }/Gp=H[}KpG }?0@IDtGGCtJFEF!FDTGFF!.TGղ%FDTG!"GxJWJ PDGF PE>GeE$}-EED GEG$]#tHKzI'" tEz=x5K'.DCtGWJGF>%.%}!t FFpKITJ""F>x5H".#=#kyJ0DWJGF>#]-GDDJYIa}K KEY=(, FFb&"GHGD()]/j6KG,}!ZVKTGJGV?BRBZk"@TB3@@1"GBGbG-ZkBOA ="eG(J!'vHOAC O eRhE %GR,DGDGRJFGGRJFGBGbGGG6~Zk)% Ee`1!Bb#@ 0G@HD @LvIE9AC/ E% ( "BTGb~ZkHA0j! HA "0 J%"b#@BGbGGtG~Zk`b#@GTGRICGb#_ G G !0=GŠGTG&vHCGb#_ ! G E G G !0=  G !0=GBTGb  G}Zk4GBb "}Zk,E-! HE.DI%, GGaAARHe"aEESJCRH3AB(vI%H*v@I G vHG4G/vHtGG8FB'"bq~Zk0BG8b4GZZkG4G0B8bZZk`b#T@GA@B@b"!TG}ZkTGBbGpAZktGB@TBb2@"G}}ZkTGJ_AB @b0"*u}ZkTGBbGZAZktGB@F@b2@h"Gg}ZkTG GD_AB@b"$^}ZkTG@EGB"bPDDGR}ZktGŠ "DTDG/ G AE@X"$vH$H6HpD$vHD@@$BTGb9}ZkŠ!G!Bb "DTGG/}ZkTG BG!bDD"G$}Zk "%"b#@!BGbTGG}ZkTGB %"b}ZkTGB%@"b }ZkTGB%"b}ZkTGBH "b/vIC|ZkTGB"bRHC|ZkTGŠB "b&vHC|ZkTGEB"bR@IC|ZkTG B bE@"G|Zk$EGXD`"$AIRH$vH  l= _P.p"""RPJP>.G!oGTJ>.TGt=JVJ>/"BXK?_`}.S}JtF`}>pGa/Ga"yJXKc= G?c.Gz!KPJF>Db}.Gb]"t2JSrJtFr>Dd/TGd"aJXKG?De-Ge]#q:KOIg]"E=g}.GtRKSrJtFr>Df.Gf"x6HWJF>Dh=/TGrIY=K2Gh=?PD`i.Gi]#aJUJk"F>k.GxVKWJF>j=.Gj!rJQ/J2F/>.Gu}J=#TJ9#F>GGG`]#WCG_.J Z..ZJTJuYJF>9#0A/"0BZ#?Y.sKRYJSFY>9#/.G9#0.J zJQ0JG:F0>0,0HF @.4.9#@JQ4JutJ 5F4>T/TKEG_0B6 ?-"4GOI=.t0JG]"UJtGF>x"88DlG ? D#"}.Gt=JS}JtF}>.GxJWJF>G}/Go=K[}KoG}? /DtG%F "owJXKDG? }/GEFDG ]#%Da:J[zKDaGz?4G -FDTGF "sJOI "E= /aJ ="{JXKDG? ]/G%G!ZQKuJ[GQ?}.PDGEFSoJ=#uFo>=,tKG۲DA9Hp}K4D9<].="tGR]JPF]>]/"]"ZQKQ?GGxDA@E?$G! D#"#"}'#<<@&'"#00@<<@-Gp=HHIE=0HDtGGCtJFEF!FDTGFF .TGղ%FDTG "EoJWJPDF> -GD tKOI"E=D.f5KCDWJGtGGF>EG EE -DGeG "fTKHI "E=y5H . tfJ FWJFF> -uJG"HIv7KE==,0DGGA=HjG5D=<].eGP F:FRWJGVFW>,#hJ}"FH"D<-G]"tGOI==G}.Gt=JS}JtF}>G.GxJWJF>G}/Go=K[}KoG}?G=,TGpHA=H0D=oG.GxJWJF>gG]/tG{IZ]K[G]?_G1AI "!JTGBbzZkTG$Š`"D&vHGG(G8E "GTG!GD'"G" PD!!FOE'#G#D ' GDGDD" #GD(g#0!FGDG~ "GBbzZktG(Eh"BbGzZkTGRICC GtGb#B_ GG`!0\@B"TGJG@$vH8DGG"/8"4GBbezZkŠ"&vHB0"b4G[zZk4GTGEGb#*v@IC_ GG-!0x)G"B4GbCzZkG!!0lGŠGTGRHCGb#_ G@ 0]^GTG'vHCGb#_ G`!0}RŠ<@<H%BH '@<@]0@B2v@J@]GeGTGR`JCGb#_G 04GTG%vHCGb#_G 0(͠0ARH&vH A#GtG@"G8tGPB!XbwxZktGGLptxGGGGGG GGTGb#G_tGpBGh"GxbtGwZkTG 8b¤PB&XbFxZk 4G0`b#H'<=@H G! CH0B@}  D@=( AB  MbG8Ee DGG"GGvDI IE*IAC޴ JAJJA* @^<H}yZk4( G 4GotG `"8PB`1"DdAXbDxZk 0`A! eAB4G4b@jZk B G8=ʡ 8GhtG `"8PB1"GAXbGwZk 0A! AB4G8b jZk0G]]}ݤ=]}ݥ#k#~^^~ (0޴8@H>PG#0,G0HW.GJZ FG@3!J#vH 0AJvaJ2AJG@cF@J6J1!J%v`J#DAFF$v H J21@By@@ B)v@J8 GSB'F(vJF@'v J sG>"GGGGGG@"I?A l P! )@A i"G~GGGBbyZkG¤]] } (0ݤ8@H=P`#k,.@ HJDG?q.S qJtFG !v H8!D kGk #~`^h^p~x޴>^~޵GG#"0b G!0= @8D4ݰ8@D 4ݠ" A@!AØ4ݠ @@( " @BtGbsxZkb( HRHC>GGb#GTG_GtGKxBh"GbNvZkGFGb#_TGTGPCQG/b#!v HC _CT% T0F HB4G BbiZktGGTGb#RHC_ CX@* X]0]1 "1%G1!))!h ctGGb#s`J0`FC_4G"!!!_))!h CtGGb#R@J0@FC_GEBbRJCC1J6!J/FBG{Zk4vJX@Cϡ9J H6J4JxCJv!K8@J8BFF#GF C)vJ(v K&vJ'vJ*vK.AGGb#4@G89 C #K!G9!C0Ov$K!G9!CC /@8HGD @LvJF4BC "BGb GxZkRHRHC3AB1v J/4G GE` vH." H6HVJpD@.JwJF>8EBbH %"tGbxZk4% oGGLAGLG>G޶GX " " /GG >CGZ@K0@GDG(~/G޴ "GGGGGH0DD>BbbwZkhb#@TGG%vHb#@C_ G I!0=T@@ݠ8@@ݱ0AD(vI @D8GTG/vICGb#_ G@ 0]<Hݡ0ARH.vIHݱAb#@=D!U@G,G8'@HD'@LvHD'@C+tGaHtG@H=XB%G`buZkTGx¤XB&`buZktGNGPKTIXGGEGC@8¥HG D  @LvIE.AC "BGb GwZkG4@]"D=8 }"G/8ݠ`"D=tGGBbvZkGGb#GTG_tGGxBGp"GbtGtZkTG @"BXB *`bPuZk 4G00G`]h]p}xݤ=]}ݥ#k#G~G^GGG]G #kG&"B((TB0t?"GrzZkG!K(T0B0t6 HGBhzZkG]GG #kG!K(T0B0t6 HGBXzZkG]7CG #kG!BBG1J(TP?@0t!W!HpB6 J00@BGAzZkGG6B(T0J0tAB6WJa!@6J6BBG2zZk8CG]G #kG#~^^~ (G,"p GH .4GJGG$@ B(bSZk,H(@GGG B4G(bSZk,c H BTG(b4G SZkG]]} (0#kGkG;FapC;,;HdGk`#~ ^(^0~8@H޴PX`>h^p~x޵GG 4Gpb GXb G! vHG 1@ ݰ] b8( 4 '.4Gr'H@Q'J2F'>,/01 @ _"GG01B 0"1A.AJ! 1GGGGb#:_G # " .BQ0pHGCVJ>PFkBQb G/ g#[Kq`+G8K vH! @+K.D_GqLKWJGF>CGVHA`BHA_K4G(¤"48CB,a%K@HD<,@G61BƲ?"GGb0B71B.J"GGGGb#_G$  .#B0HGCUJ>0FKcB# G/#CCGK,,X.0A;GvxKRXJ H,HEVFHX>5BB!A-1AR}`XB=YC$,$HHK4G"58CB,qK@HD<-@(BG71B"GG¤,1A 0͡n.nJ!ͱGGGGb#_G!ˠ. @&HGCPJ> EA.cJ 7aJ3v`JJ8C uFG/k3`84GcC.fHPJF>*`(-,1 B !Bʡ.1Aʱ 0Ԣv.vJ"ԲGGGGb#@_G %.CA, IG CQ%J%> LE˱#@?."J+8J4vJ6K&1 C˰FE 48B4GG-r JANIE=*(l!1`B,`!0"71BT/TK" GGGGb#_ G! J.-IA CGRJJJ> D+B.JCK9J5vJ!K:ACKF#GV/-INACΡ A584G@%,s%JA%H3D%<,(*1BM"GG¦81C 0Uz/zKZ#UGGGGb#_G!ˠ%.C @&HGCQ%J%> FE#@C?A@.J]G`"8vKkr>%1@Gb#GG _ GG4G G¥xCTGΡNAΡDDݰtE G GtGAqI. 0 Ai"PJF>G]21@B]r`GGb#G_ GjtGA eB@!¤? JݡJ_A@ CƠpAJ,AH D*AI OA 0@A**A DE}G @G)D*A ABB FSFG.A`hB@GGGyZk(7*ABG@@8/61B- 0 A 0@A8KMIa&K@ E=@P.61B.RPJ 0 AJ 0@AsJSFP> GGGB@@GG6yZk 6A VA # GGb#GGtGs_ G ݠGGb#GtGe_G ](]0}8@HݤPX`=h]p}xݥ#k;/Y ;K:G.T JF9.U JFz.V JF.V JFGkG;FapC;,;HdGk`#&~"^4G ^(~08@޴HPX>`^h~px޵GGhb#vH0D  pBxbScZkGGb4GH" !`¤% B?#8!X"b@ #$j#E* ' +G X.sH"RXJSFX>.qH"UJF>.zH"WJF>P.sH#CRPJCSFP> G"X/`JZXK@GX?#C_@j"G@"_{ .`Kz3JA"UJ01 BF>.WJF>t@/`K"vJXKA#G?s/7Q B[uKvGu?l@,rK#uJ@Ha#D<.6q BPJF>d`,rKS#uJ¥@H01 BDM4GzJr#2`.CBVJF>,@81B? GG@"q31`Bq `t.J{#tGGGGb#_G $ (B .Br0HGCVJ>pF-BrP(CA-d:,:H@98C-G.5vJ,`G(:1 CH ? GG@01B "Q.JR"QGGGGb#H_G& $ .B0HGCUJ>0FMcB$$CAG:,:H@0FMcB$$CAG:,:H_@-;v`K@2,u2J FA2H5D2<<.afJ2"FVJF>: .xJ2 @CUJF>8 ,sJ TC2#FH @CD<GG/K/ G0@C2 Q.sK @C1#RQJSFQ>"" "? ,H(&HHDF"@ @FA/K"G%F/{KZFK[GF?0B B"?"_"j",H`&H'H#D?#`s/t3K[sKtGs?0@B @Bs"X"" 1"97q B 7B+")GF/FK:FKFKZ#,@,"H H0BH" "f.uJ3fJ0BfJ&#s"`.J 4J0BJ "0B B_ B ,H H H 0B B˲%0¤ )C1 .4GzJ#AWJF>) &01 @  @511 B5 bӢ/K"Ӳ GGGGb#_ G) $ .B00IGCUJ>0FMcB$$CAG:,:H@ ,1AHAG@S/TA`4,SKxTKA4H8D`4<-Il(IIh#HA,1A@H.LA ?"6,BHJ]=G`.G`U"=x5HTJB @F`>G 'GB6CuZk !B'ò5 3LAg 0A`P.S/'0BPJZSK{SJ1"[GS?'F"LAQ/ 0A`. cZQKJ0`B{KiF[GQ?c H4GGtG#b#_H "X"+1IA 1A(@)A ݢSA `.xJWJF>]@t/`TK[tK`G@t? 0 A 1A )AHAH.HJ2FJFJR" @ 0 A 1A `)AUA.J7JJ"+, ݰHs#HbC @#HCG4Gb#tGt_GG] ](}08@ݤHPX=`]h}pxݥ#kX. HR XJSFX>n. HU JF>o. HW JF>pP. HR PJSFP>qX/ JZ XK@GX?x. KU JF>/ KX KG?, K@ HD<, K@ HD<,@ HD,@ HDQ,@ HD.#r.V JxJF,".F HJD5, .A 5HJ0D.;F{FV JF_2, 2JA 2H5D2<. fJV JF>. JU JF>, JF HD<.0@CU JFG?Q. KR QJSFQ>.U JFf.S fJxFGF/ KZ FK[GF?.W JFs/ 3K[ sKtGs?&/Y &K:G0,A 0H DU.R UJSF/X KG.P JF,@ HDQ6.Q 6J7Fep/[ pKrGwP/Z PKHG. JW JF>.P JF.V JFGkG;FapC;,;HdGk#~^^~ (0޴8@HGGGG01@? GG011 B0 h .J! GGGG(b#_G0@G_%01 @ _"GGb41B hբ.J"ղGGGG(b#_GE!!HE H0A0 @@BQ@q@!1 @0@ R@r@!1 @0@?&1@DGDGG]]} (0ݤ8@HP#kGP#~0^8^@~HPX޴`hp>x^~޵GG =]}ݠ"@0A@.1AAJ,2AH 2.2J@4G G$G(=G,dA$`PGE51@B@" GGX51B (Br.Js"r GGGGb#_ G*NIA C jDAC?ݠ`*aHPb%1AG@6@I/1A# K31@Bk@" GGX¦71B (8Y/YK9#8 GGGGb#_ G,I@ CG LE@ C? =G]FQ?B QBlF CbA?xlE̢ @P.61B8/RPJ 0A8K 0@As0KSFP>E GG(b#GGtG_ G,4G4G4GGG G(b#tGs_GP.IvI@,A.AıGGG0]8]@}HPXݤ`hp=x]}ݥ#kp.2A,S pJHtF]?.U J2.F2JZ_.U JFV.P JF .P JF.P JF GP#~0^8^@~HPX޴`hp>x^~޵GG =]}ݠ8"@0A@.1AAJ,2AH 2.2J@4G G$G(=G,dA$`pGE51@B@" GGx51B HBr.Js"r GGGGb#:_ G*NIA C jDAC?ݠ`*aHpb%1AG@6@I/1A# K31@Bk@" GGx¦71B H8Y/YK9#8 GGGGb#_ G,I@ CG LE@ C? =G]FQ?B QBlF CbA?xlE̢ @P.61B8/RPJ 0A8K 0@As0KSFP>E GGHb#GGtG_ G,4G4G4GGG@GHb#tG_Gp.I0vI(@,A.AıGGG0]8]@}HPXݤ`hp=x]}ݥ#kp.2A,S pJHtF]?.U J2.F2JZ_.U JFV.P JF .P JF.P JF GP#~(^0^8~@HP޴X`h>p^x~޵GG =]}xݠ@@@p.@pJJ.JM "4G} G G G ݱGA$@G/21 BO ? GG@21@B@ @"1,H! 1GGGGHb#^_G#kH aACEA C?C#I/1`AA6`H,1A#$21 BD "GGբ61Bղ 8/8K#GGGGHb#4_G(IAChDAC?&"G BtqHq. 0@AUEtGSqJtFq>GGb#_ G -aH+AIG(Ib$1`A@6I"#01 @ _"GGb41B բ.J"ղGGGGHb#_G/I@CE@C?ݠE(Ib$@G@I$ GC31@Bc@" GG¦71B 8Y/YK9#8 GGGGHb#_ G)$I@ CG  E@C?=G ]FQ?B QBiFCb@?xlDBɢ<I%b@0J$@CK@C$¤G91C&#GG !1 @ 0Q.QJ1"0GGGGHb#_G.I@CE@C?@@%.%JGiGQFR_B rBFCb@ɢ<I)/OA0J)v ICK$@G@C/A#@¥Gn 1`C` ø01B "Qr.rJR"QGGGGHb#J_G&H}@CE@C G= %EI?A )@ FC@? xD@i<I#@0`J$@CK@C$¥G61Bβ#GG"bY:1@CY@ , H GGGGHb#_G%H@CE@C?c@@#.#J`iGQFR_B rBFC@ɢ<I)0J)v ICK+@ C C)aA"G%:1 CE  ø"a#1`@a `0Q.QJ1"0GGGGHb#_G.I aACEaA CE-I (AI+aA&A$ Gc !_E G*@G FOA!a@!BBAFtFG)6A `B@GGGkZk VAA(7OAB BG@@GGGkZk VAA@@-61B. 0@A0AIWJ`IF> @@8/P.61B 0@A8KRPJs0K0ASFP>CE GGb#GGtG_ G ?4G4GGGGb#tG_G+aIpv`Ihb@(A+ AcGGG(]0]8}@HPݤX`h=p]x}ݥ#kP.R PJ.SFJ?Q.R QJPF.P JF.P JF-P#~(^0^8~@HP޴X`h>p^x~޵GG =]}ݠ@@@p.@pJJ.JM X"4G} G G G ݱGA$@ G/21 BO ? GG(@21@B@ @"1,H! 1GGGGb#_G#kH aACEA C?C#I/1`AA6`H,1A# $21 BD "GG(բ61Bղ 8/8K#GGGGb#_G(IAChDAC?&"G BtqHq. 0@AUEtGSqJtFq>GGb#>_ G -aH+AIG(I b$1`AӀ@6I"#01 @ _"GG(b41B բ.J"ղGGGGb#t_G/I@CEӀ@C?ݠE(I b$р@G@I$ GC31@Bc@" GG(¦71B 8Y/YK9#8 GGGGb#H_ G)$I@ CG  E@C?=G ]FQ?B QBiFCb@?xlDBɢ<I%b@0J$@CK@C$ ¤G91C&#GG( !1 @ 0Q.QJ1"0GGGGb# _G.I@CE@C?@@%.%JGiGQFR_B rBFCb@ɢ<I)@ SAFETY013.A "[EVERHART.JTDEMO]UNZIP.ALPHA_EXE;162;1:/OA0J)v ICK$@G@C/A#@ ¥Gn 1`C` (01B "Qr.rJR"QGGGGb#_G&H}@CE@C G= %EI?A )@ FC@? xD@i<I#@0`J$@CK@C$ ¥G61Bβ#GG("bY:1@CY@ , H GGGGb#_G%H@CE@C?c@@#.#J`iGQFR_B rBFC@ɢ<I)0J)v ICK+@ C C)aA" G%:1 CE  ("a#1`@a `0Q.QJ1"0GGGGb#R_G.I aACEaA CE-I (AI+aA&A$ Gc !_E G*@G FOA!a@!BBAFtFG)6A B@GGG7iZk VAA(7OAB `BG@@GGGuiZk VAA@@-61B. 0@A0AIWJ`IF> @@8/P.61B 0@A8KRPJs0K0ASFP>CE GGb#GGtG_ G ?4G4GGGGb#tG_G +aIv`Ib@(A+ AcGGG(]0]8}@HPݤX`h=p]x}ݥ#kP.R PJ.SFJ?Q.R QJPF.P JF.P JF-à#?$~@ ! ^G(^0~8@H޴PXGG#0b#b8c @G Dh"RJ4G =F?"G_G?"G= `b#">_"GGG_G8D GG@¤Gb#_GxbGGG `b#"GG_4GG8D G`b#_GGGb#n_G`bG= RH"PD"GG`b#G>Ge_4GG8D  G`b#_G4G`b#_Gb# }]=_+GG= `b#"XbG>GGGG>_4GG8DG`b#_G4G`b#_4GG`b#_G/b# }]=n_GG4G`b#_4GG`b#_vG8¤Gb#@G_pbGGpG `b#"GGG_4GG8D G`b#p_G\GGb#_cG`bGS R`H"P`D `GG`b#GG_4GG `8`DG`b#P_G4G`b#K_G7G}b# ]=_#GG `b#"XbGGGGG_4GG `8`DG`b#+_G4G`b#&_G}b# ]=T_GG4G`b#_G4G`b#_GG ](]0}8@HݤPX`#kTTLDhh ` p P `p  p     p p   `  X$ % &  0 H$P%h%%&('0'NP` 0p 0 @ P   0 00`p`p 0@P`p`0@Pp@PPp` 0!p& @  p 0 p Pp *@DECC$SHR@LIBRTL@LIBOTS@SYS$PUBLIC_VECTORS*[EVERHART.JTDEMO]UNZIP.EXE;9+,./ 4- 0123 KPWO56e2;7cĘ89GHJ*0D`02051;JpUNZIP UNZIP 5.12@1;05-13   @(h# ?n )m4%  ? ! VAXCRTL_001! LIBRTL_001O! MTHRTL_001*zipinfoii-Z-d-x%d "" Remember that non-lowercase filespecs must be quoted in VMS (e.g., "Makefile"). [-Z] KKK .zip s were wassssunzipzipinfo unzipzipinfoArchive: %s %sEmpty zipfile. SYS$INPUT(line too long--try again) [%s] %s password: Enter password: password incorrect--reenter: centralcentrallseekEOFEOFlocallocalwarning-sssVMSPK[empty] [text] [binary]testextract unreduc explod errorwarning [] errorwarning .inflat %-22s OK ctx=stmbus errorsegmentation violation[%s] %s%s [ %s ] (incomplete l-tree) (incomplete d-tree) sentriesentryareisentriesentry-snormalmaximumfastsuperfast not noyesbinarytextrdo hid sys lab dir arc fatamivmsunxcmsatrhpfmaczzzcpmt20ntfqdsaco???storshrkre:1re:2re:3re:4toknu%03d%d.%d.r.-... %d.%dcomexebtmcmdbat%d.%d%d.%d%s %s %7lu %c%c%3d%% %7lu %s %s StoredShrunkReduce1Reduce2Reduce3Reduce4ImplodeToken%s %s %s Error: zipfile is in variable-length record format. Please run "bilf l %s" to convert the zipfile to stream-LF record format. (bilf.c and make_bilf.com are included in the VMS UnZip source distribution.) sys$output:JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC%02d-%3s-%04d %02d:%02d:%02d.00[ Cannot create output file %s ] Can't create output file: %s [ Cannot open output file %s ] Can't create output file: %s [ File %s has illegal record format to put to screen ] sys$output:JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC%02d-%3s-%04d %02d:%02d:%02d.00[ Cannot create output file %s ] Can't create output file: %s [ Cannot open output file %s ] Can't create output file: %s [ Cannot put to screen ] create_output_file: sys$parse failed. sys$assign failed. [ Create file QIO failed. %s exists: [o]verwrite, new [v]ersion or [n]o extract? (uppercase response [O,V,N] = do same for all files): IMVFABVALLVKEYVFHCVDATVRDTVPROVMSV[ Warning: Unknown block signature %s ] [ Write QIO failed ] [ Write QIO failed ] [ Write QIO failed ] [ Record too long (%d bytes) ] [ Warning, incomplete record of length %d ] [ Warning: Record too long (%d) ] [ Warning: Record too long (%d) ] [ WriteBuffer failed ] [ WriteBuffer failed ] [ WriteRecord failed ] [ WriteRecord failed ] [ Deaccess QIO failed ] %s[ VMS status = %d ] %s[ %s ] creating: %s mapname: conversion of %s failed sys$disk:[]sys$disk:[]VAX CV5.5-2 VMSOpenVMS (%.4s for VAX)V5.5-2 on Aug 30 1994UNZIP_OPTSUNZIPOPTZIPINFO_OPTSZIPINFOOPTcaution: not extracting; -d ignored error: must specify directory to which to extract with -d option error [%s]: reported length of central directory is %d bytes too long (Atari STZip zipfile? J.H.Holm ZIPSPLIT 1.1 zipfile?). Compensating... error: -fn or any combination of -c, -l, -p, -t, -u and -v options invalid caution: both -n and -o specified; ignoring -o error: can't allocate unzip buffers vms.cunzip "-V" foo "Bar" => must quote uppercase options and filenames in VMS"-X" restore owner/protection info *, ?, [] (e.g., "[a-j]*.zip")ZipInfo %s, by Newtware and the fine folks at Info-ZIP. List name, date/time, attribute, size, compression method, etc., about files in list (excluding those in xlist) contained in the specified .zip archive(s). "file[.zip]" may be a wildcard name containing %s. usage: zipinfo [-12smlvhtTz] file[.zip] [list...] [-x xlist...] or: unzip %s-Z%s [-12smlvhtTz] file[.zip] [list...] [-x xlist...] main listing-format options: -s short Unix "ls -l" format (def.) -1 filenames ONLY, one per line -m medium Unix "ls -l" format -2 just filenames but allow -h/-t/-z -l long Unix "ls -l" format -v verbose, multi-page format miscellaneous options: -h print header line -t print totals for listed files or for all -z print zipfile comment %c-T%c print file times in sortable decimal format -x exclude filenames that follow from listing UnZip special compilation options: %s UnZip and ZipInfo environment options: %16s: %s [none] Latest sources and executables are always in ftp.uu.net:/pub/archiving/zip, at least as of date of this release; see "Where" for other ftp and non-ftp sites. Usage: unzip %s[-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir] Default action is to extract files in list, except those in xlist, to exdir; file[.zip] may be a wildcard. %s "-Z" => ZipInfo mode (`unzip "-Z"' for usage). -p extract files to pipe, no messages -l list files (short format) -f freshen existing files, create none -t test compressed archive data -u update files, create if necessary -z display archive comment -x exclude files which follow (in xlist) -d extract files into exdir modifiers: -q quiet mode (-qq => quieter) -n never overwrite existing files -a auto-convert any text files -o overwrite files WITHOUT prompting -aa treat ALL files as text -j junk paths (don't make directories) -v be verbose/print version info %c-C%c match filenames case-insensitively %c-L%c make (some) names lowercase %-42s %c-V%c retain VMS version numbers %sExamples (see unzip.doc for more info): unzip data1 -x joe => extract all files except joe from zipfile data1.zip %s unzip -fo foo %-6s => quietly replace existing %s if archive file newer %d archive%s successfully processed. %d archive%s had warnings but no fatal errors. %d archive%s had fatal errors. %d file%s had no zipfile directory. 1 "zipfile" was a directory. %d "zipfiles" were directories. No zipfiles found. %s: can't find zipfile directory in %s, %sand can't find %s, period. %s: can't find either %s or %s, so there. note: %s may be a plain executable, not an archive Zipfile is part of a multi-disk archive, and this is not the disk on which the central zipfile directory begins. warning [%s]: zipfile claims to be last disk of a multi-part archive; attempting to process anyway, assuming all parts have been concatenated together in order. Expect "errors" and warnings...true multi-part support doesn't exist yet (coming soon). warning [%s]: extra %ld bytes at beginning or within zipfile (attempting to process anyway) error [%s]: missing %ld bytes in zipfile (attempting to process anyway) error [%s]: NULL central directory offset (attempting to process anyway) warning [%s]: zipfile is empty error [%s]: start of central directory not found; zipfile corrupt. %s caution: zipfile comment truncated envargs: can't get memory for arguments skipping: %-22s need %s compat. v%u.%u (can do v%u.%u) skipping: %-22s compression method %d %s: bad filename length (%s) %s: bad extra field length (%s) file #%d: bad zipfile offset (%s): %ld %8sing: %-22s %s%s%s %s: %ld bytes required to uncompress to %lu bytes; %s supposed to require %lu bytes%s%s%s %s: bad file comment length local header sig file #%d: bad local header (attempting to re-compensate) skipping: %-22s %svolume label replace %s? [y]es, [n]o, [A]ll, [N]one, [r]ename: NULL (assuming [N]one) new name: error: invalid response [%c] At least one %serror was detected in %s. Caution: zero files tested in %s. skipping: %-22s unable to get password skipping: %-22s incorrect password %d file%s skipped because of incorrect password. (may instead be incorrect password) No errors detected in compressed data of %s. No errors detected in %s for the %d file%s tested. %d file%s skipped because of unsupported compression or encoding. error: %s%s %s error: %s%s not enough memory to invalid compressed data to inflateexplodeunshrink%s: unknown compression method bad CRC %08lx (should be %08lx) warning: unsupported extra field compression type--skipping error [%s]: bad extra field CRC %08lx (should be %08lx) @ SAFETY013.A [EVERHART.JTDEMO]UNZIP.EXE;9;38VAX62;1"> error: can't open zipfile [ %s ] error: cannot create %s error: zipfile read error %s: write error (disk full?). Continue? (y/n/^C) error: zipfile probably corrupt (%s) End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. warning: filename too long--truncating. warning: extra field too long (%d). Ignoring... +      #+3;CScscc !1Aa  0@` %s ("^" ==> case %s conversion) %c%d%%Unk:%03d%7lu %-7s%7lu %4s %02u-%02u-%02u %02u:%02u %08lx %c%7lu %02u-%02u-%02u %02u:%02u %c ------ ------ --- ------- %7lu %7lu %4s %-7u ------ ------- %7lu %-7u Archive: %s %ld bytes %d file%s Archive: %s %ld %d End-of-central-directory record: ------------------------------- Actual offset of end-of-central-dir record: %9ld (%.8lXh) Expected offset of end-of-central-dir record: %9ld (%.8lXh) (based on the length of the central directory and its expected offset) This zipfile constitutes the sole disk of a single-part archive; its central directory contains %u %s. The central directory is %lu (%.8lXh) bytes long, and its (expected) offset in bytes from the beginning of the zipfile is %lu (%.8lXh). This zipfile constitutes disk %u of a multi-part archive. The central directory starts on disk %u; %u of its entries %s contained within this zipfile, out of a total of %u %s. The entire central directory is %lu (%.8lXh) bytes long, and its offset in bytes from the beginning of the zipfile in which it begins is %lu (%.8lXh). There is no zipfile comment. The zipfile comment is %u bytes long and contains the following text: ======================== zipfile comment begins ========================== ========================= zipfile comment ends =========================== The zipfile comment is truncated. caution: zipfile comment truncated Central directory entry #%d: --------------------------- %d file%s, %lu bytes uncompressed, %lu bytes compressed: %s%d.%d%% MS-DOS, OS/2 or NT FATAmigaVAX VMSUnixVM/CMSAtari STOS/2 or NT HPFSMacintoshZ-SystemCP/MTOPS-20NT NTFSQDOS (maybe)Acorn RISCOSnone (stored)shrunkreduced (factor 1)reduced (factor 2)reduced (factor 3)reduced (factor 4)implodedtokenizeddeflated There are an extra %ld bytes preceding this file. unknown (%d) host operating system (created on): %s version of encoding software: %d.%d minimum operating system compatibility required: %s minimum software version required to extract: %d.%d compression method: %s size of sliding dictionary (implosion): %cK number of Shannon-Fano trees (implosion): %c compression sub-type (deflation): %s file security status: %sencrypted extended local header: %s file last modified on: %s 32-bit CRC value (hex): %.8lx compressed size: %lu bytes uncompressed size: %lu bytes length of filename: %u characters length of extra field: %u bytes length of file comment: %u characters disk number on which file begins: disk %u apparent file type: %s VMS file attributes (%06o octal): %s Amiga file attributes (%06o octal): %s Unix file attributes (%06o octal): %s non-MSDOS external file attributes: %06lX hex MS-DOS file attributes (%02X hex): none MS-DOS file attributes (%02X hex): read-only MS-DOS file attributes (%02X hex): %s%s%s%s%s%s offset of local header from start of archive: %lu (%.8lXh) bytes The central-directory extra field has ID 0x%04x (%s) and has %u data bytes. The local extra field has %lu bytes of OS/2 extended attributes (may not match OS/2 "dir" amount due to storage method).. The first 16 are%s: %02xPKWARE AVOS/2PKWARE VMSInfo-ZIP VMSASi UnixAcorn SparkFSunknown There is no file comment. ------------------------- file comment begins ---------------------------- -------------------------- file comment ends ----------------------------- JanFebMarAprMayJunJulAugSepOctNovDec%03d%2u-%s-%02u %02u:%02u%u %s %u %02u:%02u:%02u%02u%02u%02u.%02u%02u%02uCCCCCCCCCCCDDD<"D0D7DJD]DpDDDDMi#:#def#NXFS#'+/37;?CGKOSW[_dinsx,N}1N<N&M*M.M2M6M:M>MBMFMJMNMRMDefl:#NXFS N<"&*.26:>BFJ48<@DHLPTX\`@8 P*.zip   Lerror: expected central file header signature not found (file #%u). Compiled with %s%s for %s%s%s%s. AAAAAAAAA A  A  A  A  A AA       !"#$%&'()*+,-./0123456789:;<=>?@A  !"#$%&'()*+,-./0123456789:;<=>?@AB note: didn't find end-of-central-dir signature at end of central dir. caution: excluded filename not matched: %s caution: filename not matched: %s dddXd Length Method Size Ratio Date Time CRC-32 Name ------ ------ ---- ----- ---- ---- ------ ---- Length Date Time Name ------ ---- ---- ---- ?????@ dD (please check that you have transferred or created the zipfile in the appropriate BINARY mode--this includes ftp, Kermit, AND unzip'd zipfiles) error [%s]: attempt to seek before beginning of zipfile %sUnZip %s, by Info-ZIP. Portions (c) 1989 by S. H. Smith. Send bug reports to authors at zip-bugs@wkuvx1.wku.edu; see README for details. 5.12 of 28 August 19942.02 of 28 August 1994^uWY!TSSSRbSbS bS b]~ݼHPSмSSߧS^P/ߧ Sn^PѬDߧ ЬRݢP-bߤ)ߤ߬߬߬߬ﶃPR*6ߤߤ߬߬{߬߬fPRլR RyЬRbЬլ1UXSЬiSRb10[)Z1ߧb#P1bSPRPPVUbiRPP?UPXb@RPPSRbbSߤZk j+P'>i`j lvfzrl|fi rc;1sy;?Iûy@"nHr&sHOz;?PCv7%~VT:Ղ{@Qk:ɀJl 3Jpx z5>&n/»h׌NTɒ'֎uBD{IӋ^~M9ox=W1H8_y khL9 K8 !>ڤO2{M*Ґ:?u¹!8؜tmzNg#t;rn~<IvbiW;-'PCr:@05tm>%Є(gN9n~( O>g] 8H'ŚTVaNx<췤hۡ0PP?jI6"? 'y\|GLIU$5qQAEMh ]yzUt͘X5O)K?V+ ,pq^Lc{ )C͝[EP̨C<υnd`MTUed "b<-VNVN]2X'e*a_l>p|)ˢ?eƊC'̨9Ś tH%T91 mHwؚƮ`a3HtkB=d`=0>or5PDXv yiPc8dw|qJN)hCfґ?F¬/}3:՞B2# Odo 2bZ9Poyܿyy؝Β%޶#n^PHA쵦qףa&@y%V,_%oپ@9k!8W~hd~QɕMcUSH/iϬ"qK#ȱ,gЛG1L5CpGUbܴYL }#GQC,-^7UL2%d@cq}8[o?!d +f6`V?pܙ+h=]_j!LfO!9U3Ah Qm56/*$al[GcmԺv 1EZ @wTuM_[ܽ=tv/E*U ӈ +ZB4 e]S#Ze+5j7pJRhKcP"u#$g4l-W^A"/Xb+1iPxٓcF65;pǰ:v18_U6M~/_IYYy46@9}j#&,¥%s')D SHZh$e8U&Ve"+>zx/YN;~桶ʼn{Wxt%ze**ޗHh-G, ܍DU!Č7{B%?ϝ%/a_Fah"~"GXo>0ׁ(8:Ԙ{o8F?}B.#n3>l|EE*IK/+ԻH$!~RRJ9á(H70/quU04;7l\[1Go_EOpw6` 5RCRqLm-$7s&`A_#Y u@nq"O.x\z+ѹ 21"|u~P iL&."izھn^b7@K$ye~_LrQw1tX*EoQ"JbB5; bv'ab( O"Y C֤ hajPO_%JΚj,<9&|T}63=ZcPX+m(zjH ;XLk/~XGn\7XXtqJbF$/)NA0frKOrl+d!jX@6<.577d e'᣸#jqjE>'ϒ0ؖJpB0i"@U8h2\Ӱ>x23;QDdm-oQ@t6) oB|WX'V4Um@qOQRba5愩i xAel<P4zm͌C{YЏBίU.vyjMі$4Q!2`]ىnQ4: ^fǁp )9F GNe'+oIh%=M}l^BÈ[(E,ra.UsaTH~y}A Vܜ^M~KZ?C#p]fYePQ;,~>GZ}\nK r* vd՗6 ^UXKsE|qպ'el{ 9kbdH=VSq :#T3!LTԌi- :(U N o^T`ANߍ?}Y}>,@~؈* \>$:4d)Fݔ4e~0BU5ڡp_ću"F̘+>v)N nT'Δ>D eTgXfze` +b(UL8h=9G!.Fԍ] Ll\UVDt$! wFM|k@"AA!>e?H߱Gi7J2J%|ޭ=v @Vs7C Mch_o yum9kM,,KiLA)/-a}d*ǰ,|im4a Mu03 /Sj wDxl> I"Țǣ3 .Ҵz@4n^e{&{9sKvdC=I: p3 _p€8zFac薊 Y{aH 5lzԐ|{'RzAmT43dyf`.:3b@67cN_h>rTHy7T9֮ߌmPrx~u aNz .]|x!{@ L_!UZͽ3ރOQN(6+1mN) Hסص`ݑ3B^5Fu QJ7?gY]j7hl\ͅS+ /<3;a?l{'i:j(w#VO i s,%4f`bQT4_p7Ӹn}(GUSem E{WH Z(\-u#X.fh1@_Ϙtp ~:$f͋Ef4Mr\oMy++td\}"K!lI^쵼~F"&ȋ[ԍ; ]ӯ G?E/o`kdȾwd)Aq)^3d+DAMZCC՗ɢZ4Dm/ȢD[t3D.T_pO? {4GP>a܅0dEwaJ_[␘yl-6rד-Pv*UcR^L,wR::L]]?+ T5&!3!P§I(d A%lʾ,ܥɥkT#ZЮ7Ey_ X 6>{3(6M)j(n޻ "U)Jڻ  QwS >XVo'.]Vb6bt}2Kϓءj}_=N!*KM(wn#UܜQC5ASrxs`~&u JKhR;BIG,C,dg3eIɫ:xNEYd=5 (>^PPZp,@ߓŒA|Y*8ʌOR !!LZyV0E+S-f^z(Os N̚DU2I~7N(nբce '(j(1.h߄haO\,IzgY8hJm䂏 cOB! =Wbz0e[r9Yf rUX A#!',XHzH Ķ/xVx@~%-^Mf1u^G3CY:z:#&O3m3̾3PI*KJi2:IN36#:4W=߰<ɤ셋ABF1RSdzrQeHH:8{1D J*p X-QVqjwɧT1VAݍlTЏE|1o,5ȋ?KS~0SLHv<S -By+R}|-57*Ev(%g~ ?/]4W@-8~t#>ɼز@AE)[{6';uECQPg.yfoO2m2%Q왝1$/X뀽o w;0,~YR%oqxdungfF/'܄ I5 zgհ˿9GO ED~ӇݧSr.}nOd]ֳbQ "r ;\O:m"VwHNuX2օAI5U mrvwo݈;yhO<տiM Y&wp{R-ss;C=#2NN!dpT]L=Bb Yg Y4?_ΐ+&Zk*ӧ"W$%q5_Ԋe^ؿ5YhAGSvgDȬe4{&@Y~`1"[)٬wM1;P\޴IaDJ@ 9/dmimDz)"zy?$쥎xy ^d SNa=4NL6 (F3Q < \Y:9etHcО @PK\+'fSZtYGH8zNs%e(޻Yć^]Vdʌ.!+@{%-vW#C9maq#K|t>|y+q 1Ú`nWO+_P *c(e# zj+3X)Vୢ50nG g_u~ AkوA*U/^Gӽ]R/m"5A',fƋESv'\O{DU$Y<장mΆ!)MKnԥT^mʲIvy Hw5dsB ZxG*Ow>~]G2ӣhg@ A=&h0a\bɹッ-'e;e\J9/Q160C> հh`YX&dI~wI*~(eјt\:=@^ &Gvx4.#Ieb|=d., %DK7Hư@j2rIU- ]IvrMG$_BVN{08ϧ UWc#($ؾUW!Fy;X-&_ګV4K ͋p?k>0N*]tHv-*iN] mGix9ҚJNZvjɒy!XL!-Y%#FQ08P`MCf5 fa);.kY T{B]'w%԰)+9S7TOe:Il+ݺi]R8I\g'M?d\{[lbKSXŬI> sZסY .ņ`Jё"M> ~\[ Ia,[ɻJ*EIk -6@N 9)c*^z*:2' Yw龂0,ML|ۭ;Kҧ>\[-n`2L ׋ gMPj t|fzϞKt;J[W} & 7}v;Jzn,NX HIĸ%EόYgp;ڊD[ʢoδEγM:t$I7OXa`_bn9ӥM Ii~}n1y2@4Jj%12u~){PƇvv75k?"g = bV tX+iI:䠇Mu?6Y1km"ՈD,8`;5T.#폩bBk>A 1>i{#{6?Ub "ԦNc$4g"D2q/]q^Qt'g6%Ad5zho#4Sm94sdz(zMäK|IUꆜZ}eZDᕥ )؊( ƚx9m|=V3m^!E[}G*f'dO'p;7 Xѱ$Zl6/5n$؂Z饝Ц$rU%"k ŎXw'7A]_/.KmU;u]%[4`AvU(CuEU7Jp] ĖgB \JȲ>:p4EK&UUJ>j^c/E )1ڠy&F6y/a8fC]K7ls:BXl ǿ5, '™Y܌ih.wLk$tjl}TNT[vGG Hê1"!+EasͶyQVWQ}WH}n?,@ VZQneJl 9vLbgȿ:|>/,h9:9XP̚8#p9Dl37@(Twڭ;9UA㘏`9siY^o::a={&E#։1 fjZВAK'=OMUR+ -k+-@/E"p0fQ 9kF-TYv#QP"ͯ¢JJAYbKw:ӈԎ=0NlRXԿiC-]MrI8>x`.2?.S ;?tݮm ~IC6y_#zp ziƄj=Hy.j1xsf6[gX6 OH! gjS|rj@D.8HJ3f$e PٗQ#`#WlAX:4PGHV' uNF9Vr66PK"=J ,՟?S XƖ4 2o~tIɥy 1Tr#(< ڌ1e,5D) 0%;ϓ).?*k?5s?ݏ5'y9ˣj@*YVt$kvLAbW` C7x1ϼ,6 KfGwaJFkdt\X ܦB{j1A$*!5"n)*vkn-Ւ\L LGDzmߍ̊tQz!JK IW;\W)RQ{R)z/i,XٺC j2>G V =.YTbuEYW-ЗD4{=:R8خG-@K}Ys8"gF ۧ 2XzUCHQzU ?ȬA 4ͽx [q;(]X#f# EGza ;E.UQwE P5K>/Q}M~JTClNޣ>#Ղ;a9*z!%(PMe>+dMU?qyT-z.Xgm (zv$ p/FqUɇt|M3s.Gҧ< AvH/GZ[呪Ie,1)4SBW㤰5pK~gԉw.A".M+oVnl 8 _BmLVPh技}7ѤTz0?3k( SfMk2rx"K!^~PiVK.\yZ1_\Nց>7!D9JCAȝ sHT D SD_)?NH(ESm+QQ4vs9r7¯QжQuو7n4W2 $wzS/M5OW,FAOotPX dUb =<]Şv^kdׂ$)WO.~ad*`EݙrpW ,[ y]-1#?ߍ<⨊gAoDKf@E&÷= ߴ˵\5XOL/hp %pBHw-_#L6McZƏ<_¹vD5#T%_DFtkv80 䜫BsOͽ5.+l,v9;&hp~Hk;p/Y-f} W`.3̪,3'$f̢;rV~rig crrMWS`(Ā4zwXOC\ғ5 LX>`)Zs@3%6iU_D4FiЮ vfx,.1rvzLL9pikv]?f#aPOV68+,5=2.n2ujĐ-m2[.KKc"(}3NVכ9-&rёYwӴmʒ{.XaiȆm5r%j-WCpHGw8cHZX)wQp䦍 TQ?Wpc9~>0iӂ, \|gSXfl:C+̯!, __E:)zkZrKCuI)oUe!z?%gΊ}-eܼY6^Ć`*}!LȿZV򳃟-`ND2piqĭ#=s8#(W(tǐETGt!*9ޔn:) zo KM~ɣ{H|`3~Mvd8:^3 %rզ`}P]}j?5Q LޜZX*n\r+c8 [@k-S8 x{} C.tyT87>~Jus?բquvfV)MdMvJY79N<b) zꀶ"XY3(-NN/yf/F)VٓN]q*#D\>ٔk%gBs-4=??DP8\~IU.+y=/i5g9 a8}si@.0d`);8. AC/V{X02YG҆TNqvx]Vu}4x*,ŃrJ&3) 胞z:]<,9@,zr'$t%Ul"Nr5 ƍ Ac3_kՒ2 ="<X-؝BMH"/I0]Fl[kq`gh޹7,gDltb yg"ZMz,W6 Wm%:zN8[aĝj)©; cP>AK^KG]`5b">*>iLu &W8cv캻G;C"9[$ЄUN;%>.27cJW yeKʚQԭ:/#G`2SPA瞏=r3gLY@qW&sJk#J[uW% w=YpGRriC1`d_Au¥ '@"sqX/i#seb8ӓ0sP'O٬EsbiP Qq#bkl䌤{ˑtK7$>cf deraR!GԅꇅJGآbЎD&GkjwVc$M\%EwsJBFwW89Ң ޗi`EXDOytј%JniɦzrM8nRfWl/B?UȀiwo[r n%/7K{js -X"G{,`2J5H/v\AI+$^s>ˁ7 -6RQd-R0핸7>HUl[f>?aeX:n.iQEMxxi(xPotM +xM}AmWڱGcuI*؏aU9="xog- Hs7ԔqqA?"{Sq_5zA7S6Dk U8WA͓g| X]#L|T!WZEab(BM,AÛv0J11CY"!w+AL>Frt~t/Y64{ Af jKsZd.{#}&ѿ./= VS>w&%mlԤ9u! 9$D࿠HJk:2{<zhn*] S*0GYr wL 6}g*~5%"+x^Gژ*Z;B-R."4?  WZ[# U˻cQĹI94-r, e{5s>AxH?  kV4Cp e81w̦3cXs Lԓ|_5V^0vDe1ȓK*jIKBxEHHјZ {=52[V ʙSWH JǠO<5juW6Lo@Sgk$$"w=K"V \ep^}4 5oGņQxL6A#:>b^ RְwJ,cGp4>!OKR-ea] P_]+Z7CG 02g&/חn'&z3M'cP|OHʆ q_|OWL4I[؁e9ܕr2M5@5Wz^Se2%ó#|Wkj~ê|l݇~3Tq,`%yj8@h*;١QD:",YO¶ăIwI3$Qy9^9 -LE)Z3B+egMpdЭ* #Х?,$&BA21f1smkkcK'qf?ppƎO ַ=8J)c(H8inB>oW d!ٿ:ܷ4!AkfMnF kwÃB}iPR:Yf_P$7dd+13>lbƮJѺROAџ)G0Cc~v}?mSu[U}Cʛ_)bzi`'9ܯ$O6%҂y-cm8"Uvmÿm}<'|qe)$jta_surw="R/Wp@ SAFETY013.A [EVERHART.JTDEMO]UNZIP.EXE;9;38VAX62;1i>5PPSIPPj ߤ4kV1բRiìiPPP1di1Xoߧb$P\XRPRP diLPUbiRPP6UR@ì8PPPURb1 < ~P<~PİVM P-P^iWYUVZ[XԮSмTмTn1kЮR-1ZPRRPR `T1.PT-11TC1TPPC7``(<t 0Lt1?PS1wPS SePPQQQeS1RPe1GPSS1;Pe1/PS "S11PShS1h1P11SiS1Pi1PSkS1k1PSSgPPQQQgS1Pg1PSjS1j1PS rS1ue1jPS0SQPPRRR?SfPPQQQfS16P"f1)S$ePPQPQQeS1Pe1PSSePPQQQeS1Pe1PS S11PSiS1i1PSjS1j1PSSgPPQQQgSkPgg`g[PS 2SJP%?P:PS S*PPS SS Ю P֮ `T1nЮR-1(iiz%c ck!g2mHnRnRծ1nЮg1in1]e<~81@S6Rb漢b4bIbSu6b2D/P` DSPPSSՓ# ͓P` SPPSS﨓P` ԙSPPSSyﳙsP` SPPSSN{dPݮ3 g ` PUnЮP<^UƒRլ zT PrTwAߥߥKMiTScTc""&TcߥTcdDTScߥpTcTcI""&"""", T c Tcլ PP ^漢TUYԑ[nRԮPPpPߤv\\\Scߤz\\\cߤ~6\\\c|VXSZuPe1eni%R  RLXW\V\S\ Ă|svPRRV(PRLZPR S PRWXRL RRiֿPe1bXV\W\uZS\\lnhnnPSZѮ ԮneĄPPV#PLZPP  PWPXPPvQjP1'WS\V\Xĉ;X2ZS\W\V\&XĒRċRRXˡ V(V ęRPėRRV UW(W ĜRPĚRRW )S(S ğRPĝRRS ~Z< hPZZZ MXW\V\{ 3ek c,RUP^YW:YV,[}UT(hP3iP < PʏPQP@QQT1լ1HLR ǯSPǮSSRǦRǠRRŏ (6PlǸRDzRR oTLQP QQPЩaʝPPCP PJ $xEPZ1IxPZZ|1PPPRЏRR0EPZFS7v -%<~JP!gSSZZ?լZPH P8ZPRSż IZb\R!R~ZVPRPզ /զ*djf ZR8ž:ZVhզc-'U  RPRRŷeZZPPP lRzRP{ PQPPTTRSR6 PSLS^P< ~9?Pk3PT_Tk P MPTPPkT:@PP10XЦ RzRP{ PQPPTTRSRM$PSKSu6P< ~PVPk3P4TvTk"ePTPPkTR?PP.ePX~ŝ:Z [RzRP{ PQPPTTRSR%{PSKSMP< ~(.Pk3P TNTk=PTPPkT*"uPR& =d0P uPR $PRRZRZEZP^SﺇRT7T -b%<~EP!ETTPP ^QRSjCPcP\\ QPQQ c\T5c\Ь PP #*#*##***##P?Pc\"(c\Ь \\ \ \c\ c\c\ PP ^R߭=P3PbHTdPdPdPdPHScP cPcPdPdPТ7Т<\\PР РТP^5\<PPRiUiU[Pg hUheV P8PVV[[UxRUUUTRR TUUUU UZjSSUU1ScPVVPP UPUTTVRSRSiUiU[Pg hUheV P8PVV[[UxRUUUTRRTUUUUUZjSSUU1ScPVVPP UPUTTVRSRSiUiU[Pg hUheV P8PVV[[UxRUUUTRR TUUUU UZjSSUU1ScPVVPP UPUTTVRSRSiUiU[Pg hUheV P8PVV[[UxRUUUTRRTUUUUUZjSSUU1ScPVVPP UPUTTVRSRSѮ0ݮ4t>(Ԯ Ԯ0SST1PSSTTiUiU[Pg hUheV P(PVV[[UxTUUUSTTSUUUUUZjRRUU1RcPVVPP UPUSSVTRTRiUiU[Pg hUheV P(PVV[[UxTUUUSTTSUUnUUUZjRRUU1PRcPVVPP UPUSSVTRTRiUiU[Pg hUheV P(PVV[[UxTUUUSTTSUUUUUZjRRUU1RcPVVPP UPUSSVTRTRiUiU[Pg hUheV P(PVV[[UxTUUUSTTSUUnUUUZjRRUU1PRcPVVPP UPUSSVTRTRijpծHB:ŝijӵ<˵\lXzXP{ PQPPSSXT Pp1#X zijp1PTgT8P< ~4PvTUݮPŨijp1NSSE%P6yRSRR* SbT#PpPpPbSfņij11Q○1FTST PRRDRM1RNSfžij1PR1Ѯp1p1f P&FkP?P YT1wPP"1g:'2S-1G3T18 SS1hfijidٙ Q)hP#ijid4)RNbծpp )\lRRA1RPPAu ?PPn1Pn 4xzP~?Py.ijid<~fhf\PQQ\Lf QAfQT1P2P1P(\l~9ij1Pn\XPPPPpPpfŦij1Pb>R. fij"R~ePCPpPpe0ծh ݮhծd ݮdwЮpP֮PѮPT1)ݮ8P< ~4ЭﶶЭjnN1ծh?RS+BhLSBciіRR(ݮhܖծd?R +BdSBc iRRݮd ﻷP3p︭SP'Ui,禮iծpp֮H1,<"TTHXo1ծp0RѮt NS PNSSXĕjPXłQ<2RTRU,X xNS PkNSSX˸ŃX<2S$S INT>NTTSŷ.<"SJS "NT PNTTS"nծpXQłޔծH Ѯp p$<2Rծp pP<"R ծppЮpP|^-VjRUQe P`\\\x\\\UP QԶ2TTSQS S\U\PPSPPSQf\SDlT^LV^ZﻪRTW~XwYdjUdP<\\\dQ<\ʏ\P\PPdP< \\\d\Т d\Т# #!d\PdP\\ Pd\\\zSS*1ghcgh[QP \\\P\QPQP{\PPQQ~QSP \ \P Q{\PQPQߦ>jeiPSSkgh`ghXQP \\\P\QPQ{\PPQQ~QSP \ \P Q{\PQPQߦBjeiyP<\\(\#ghgh\jߥl*āYĀYYޤSP\ЮRPЮRRSSﵦߤweێ`*1qPڰuﶮmČYċYYĊSz\ЮRPЮRRSS-ă_܍R׍PS1S1F"6<4ΥXS RP4RRh*PXSR4RR <SRPRRS1DRaRRYwigaĤġ﫬Y ĞSPĝSSY ĕRPďRRĎ ^PļĻĺLY ķSPĶSS5Y ĮRPĨRRĦ 0YRPRR1=P瑩umnYYYSF\ЮRPЮRRSSľ+#PS1 <4PS RP4RR<*PPSR4RR SRPRRP.i`P﷡ﯡ2PRuyѮЮP8RR/)\\[1ЊQ٠Ŋ4\,Bn2fRծE‰P ^Z [GYhW`ViUkXЬ SS PTS~ PnSiggkhjP jigfPRPRTPTTSSgݬ0SSgSfSRЮP|^}UﺦVO< ~^d)PeP ﱝ7f@RPeSRSRRPSPPRfSR\RT\&cR^P\\Rcc~}ST\T\efR֦P^ @TֆS7gR-c 2Ѭ ߤc,Ѭ ߤc ۅP<^YVﶜZG[8TuS&UXMWW {|~k܅2ekυPdd1eRRcce1cRbPPP!fRpPecPPdX1mPcce1`PzWP{ PQPPnn1îW~kCPjnek7Pddn1enRRcce6PcRbPPPfRP ecPPdXcceepPnWjnRRǏ RYWX1WY1RPjjk< ~ek|Pdd ^ecce2PcQaPPPfQbP ecPPdXcceeGWXWY1rXHLT!(=(9ePecRjR߭P3PЮRRxRPRRPaЮRRxRPRRPERPb Ю RRxRP RRP%RPbЮRRxRPRRPRPbЮRRxRWЮRRxRRRWЮRRxRRRWRWRPƙRPbЮRRxRWЮRRxRRRWЮRRxRRRWRWRPRPbЮRRxRPRRPkRPb]TߙP^̘R*߭CP3PbӢԢբ֮ Ю S\x\P \\PخЮT\x\P\\PڮЮU\x\P\\PܮЮV\x\P\\P ޮ4Ю4W\x\PЮ4X\x\\\PЮ4Y\x\\\P4\\P 0Ю0Z\x\PЮ0[\x\\\PЮ0\\x\\\P0\\P,Ю,\\x\PЮ,\\x\\\PЮ,\\x\\\P,\\PЮ\\x\P\\P Ю \\x\P \\PЮ\\x\P\\PЮ\\x\P\\Pnn\\x\P\\P (Ю(\\x\PЮ(\\x\\\PЮ(\\x\\\P(\\P"$Ю$\\x\PЮ$\\x\\\PЮ$\\x\\\P$\\P&P ^9W:[VnլPЬPP1?PЬZ1XkPPSPTяZ <UPZUUPPY3PYZkRIbccRR  ScRR cdkSfTSRbDbRbPS޼TCdVYRxR,V RVR[ZZ(PZR(Bg,ZZ(YRxRZ[RRZRPZ[ZZ[RRZRZ[xVRRRRR[RЮ0SRC(P׮0Ю0RB VxVRRRRR[RЮ0SRCЮ R׮ R1aYY1Bо SծѮSSPP ^ЬRRТSRhvSRP ^XҕYW,T1SjЬ UPePePTPf gPg`SPhPSSTTPx\PPPR\\YSYRCkY" YPYk'VYRR\ZSZS1uYvR#\(P^iWfXgVRSf1PRbRPP @PPPP@PPP P@PP hhfÊߣL<~< ~PfPRbRPggxPUU#fTT\\ЬR\oR\fUPghWfRPRRPP^$XaYWQZ~S~RRBPgTgTVPh iTidU PIPUUVVTxRTTTSRRˏSTTSSRRBPgTgTVPh iTidU PPUUVVTxRTTTSRRˏSTTSSRRBPgTgTVPh iTidU PPUUVVTxRTTTSRRˏSTT SSRѮ Ѯ P[ծ k?VPR>Pg\g\UPh i\ilTPfPTTUU\xR\\\SRRKjTˏSD@ SSR[[ [KjTD@ [[߭߭|~@ -PU)U ЭVV\P\ЬT\lT\UP$ЭTsPkgg5fPfPTh iPi`S PPSSTTUU\ TuUkSSX|S3SDekkg\ЮS\14׮׮׮RU$^E|[kUkZ{I{kQ{R < P<Ѯe1"~e1gRgRTh iRibS PiPSSTT\\PPxe\RRje}e8gRgRTh iRibS PPSSTT\\jRЮSRCb5Pt*%<~zPQeQZZPP(^iTgSqZq[VԮ|W ԮԮ j-x|j~8QPWRgjBgRRXjLt,xCt~QPXR.tBhRR tjRjRpԮ PPP"!jRТ RR R R jR jR <~iP PPTpykRVR\l+ldePVWk\RRBg P\lV<p\\l-PldePVXo\RRBh\loV1B oPP 1.?PdPP1RP\l%lPP ^lP@PPl\l۔b  <~iP PP1<~iPPPvY PlPPcݮ G /GPBPP9<~iP PP<~iP PP <RR  ;P<~iP PP<~iP PP֮ Rhe+PBgk\Bl/eeLKRR=eWKX@R"o-Bh-l\Bl#c!LKRRnXK< R Ѯ P<^}ZbV=UnkѦ&SSSXkѦ&XX&~%K&S<RRS<RRS<RRSSXWWSSSfYRR TPTTX<RR SP SS[<RRWeJ<[RR <~kJߪJyJbSSrRS\l&lPP ^lP@PPl\l۔b;ʏ)JWg<RBgQ?PSRbR SPR1RRScP? RcP0RcP!RcPRcP1+x1#P8 ϪP< RBɨD8QSSRS\l%lPP ^lP@PPl\l۔bǏ8<~nP PnP<~OP PnPP^y*SЬP<`QQRxRPʏPPPPYxRPʏPPTQXЬP<`RRQxQPʏPPWxQPʏPPVʏRRRU~<2~,P4R5,4Rݢ,&P4@ D1ܐސޭ<&F[[RxRZʏZZxRYʏYYʏ[=Q6%Sϋ4Rݢ OxϷPX14P"<=l%$xP4R!4RԢ$4PRR><$R4Rݢ P̐84Xȏ̮̔̔8P"z<$+$϶PelAhAèĀÄA|A̘ǍA̐A|ÄA|A̔AXFdPP1!!!%?Pϔ tA&PttApAP tA P tAρxAP|^%V(\7#`#2P(P#l;,;Y#P4(`#(43l0PP@2P$|~$PPP2P 0SRSRR,E<,SRSRR,T>R>ScbRST<***<SʏSxRRS,T|~,|~ ~ PSS2 SSS/2PtAixAP^DV9Y"X"\ &WT1RLLRR>Ԣ1T!~8SP<1PT!_~SP@1PT!;~SϫPD1@ SAFETY013.A [EVERHART.JTDEMO]UNZIP.EXE;9XP6;1162;1E"PT!~SσPH1]PT1PU?1:< RR  R 1%nЮ S<\V\1PYVW> d"Dh'()Y#O?LwOnEgYМm?+M21>Qczn$)KߴJgS}gj{46t>:F#M`# <"//X Yt_E V,M8fS&˗4TT,+o3TwFo19nM3LiSQN0L2fNL;?KS1a/OW(&?YqXm!9ZuL8խ'bTuVS?eO9frg7NEMhþI'Moo5LowEa8|dszݓ)_KF ^wI#WƂ;Y~*0~m`AT撐bYtvɥEe჋j VJY]] KW??}!`sqiy2_37s TXCfpV)!8ΜLa D0e^Y•c| 3_VT"঍U.+( !/ d4`ˋ0\_+`gEa~_h(E0_/)ZrƬOw s" n0r. &YOSÍ8\` I/By?4Vg(RpYWoJ:aOA|71qkZS㓧\I߂SPT6G|J>jcֵ(ڢ i[]ߊ# nG6 ?7WYCz`=}%.{*JאGW+cxJpyx`f/}9g<Ęk0Ʋ" FCz`̸F`ds/X0B5說Y> {L 87|7D ?cxZC!KT?)㭔yִ񶜤X;Kzl?MQ=Fd W3 w`ѓE / ȹ|  Jο&*~;; Y{WɨIe_hPggwLqO7/%ɋA).oz t{r@q?_Ʊ^^ԋ?vΗ(ԏƽ&9STƽ60}8k4֢{t;gyw1}"*{gFӖFkVٺhи߫DŵXbQp/F9h1-ڳƗN^4#"bvi3:"hHNDh}zxP='|Cl3kC5J(͚ ۱G[hr35D.-30Q{*:$)-p\I/H ig:]u'w2>9}}X[ҍuk&莪dsd+[^r20Fv!IZj.F!!) *A4 և[n=O`4,kq +t0;K!ۚQͼO6fZ9Il?˝C3cǶ=ym ]3'_/GϫK5ԵѿG'HKULʗ{'!_/{/i|Yr%M̗ula YWbÊ\I/:Ro.uӬc%wUctX$xoǚuY2g]Ʈ&c-j]͆L9 D}ъ.[ml[1,c;Y 鍍vp4ɘh3 4K<)MA`Ǽ_x h[H \l5>ݭDz4VtlTfcW ٖ)8/*#,%O $9`c$;=Dx&gS8vR۫wjD.p~坬Jy z5?KG$gRN`\WDf9q6mfZ=R[{^'U2 {Rowv5:_Þ .-\@Vz*cbz}nxW/@^ "{kU4\0.hV}7E4{վD1]yu~z :,GtxS;aUtat$Ս1ý-lt߲/a?؏l&3'7?b|_쵯v増m]m^6_&E!lrR+/*!/0cz~ı_d_8|ġ]}5wrÖ*Hh/m^yX(,hx+Vh[#x.Υ],19.pLb4њ;u\ ~8b#q(Z:^b^aWkËX>9ScV<_XIưF7m:o;4ya6ݬñZYWGx.dx=x9 U۔)j}|'`X勬׶5^ɲ޺ȭőD`񋣌s-.j-C1bAej++u' t2X7Ř:2}ΰXŹ/=_PX?@ffIWq|017mqٞ2Fi4n\ `R)ET;Oc ;zD ǡwT1 r!p?'krNwn?GᴞQ5~M*{ }ZNX ~'65Û%RZp6f4xxX1DF{f{aOJũk=J2|)'mkM1kܙNޞOޠM㦞G|քݻ/hfPf?ggW8;8ea8Q̀\RY00bwFjgkgԁ?YyX8Sagp߰n6Q;d]Z.5wĘm dK Qct|}S oŴ60?jS?e8/n׈x\ݥ`..g%@|72n5R 1}Ԑ #i,]|ك*[pV)Ţ)^ه{mR>޾CA\c1"W⾩}o:\8}r;c!F #>X&Z'RҐ}HUD&("d+(Ν ԗJg~{~^ɭ?ޝ ֔ir['/)](3o=|cMI}@ ! 51QU}{:pއ뤫u'3ԱE뵅R/:d]-_1U.Dn~/=(cM?[C}~<땾Z<"<}ILJhV^=q$5Lwj߄B[Q?z:HM:O#܏Wjj+~yz]֯쯬_5Q/~f& Gni~)a2>(7.{>~=_61]+%ts]b=מco`Û3Q`!cx_^&α?ĚX`b_vXs.P3ycqb_K9?6gy<}BFxe9'/+n#g+yvy%Ĕt9xn~'~GHF47|D-I·FFə-Fd:mx?n (4Xܧ #Ԛ͠jڼC4EV3>TZL| )l4fmnOZ6^9l{}!_p>lF{ZCé.* ~ugl:jUYam2fK qbïݵ:(Y،v:U;YO*HC ǰ>"ڀg :z 1xxg:2҅AE峷oA~m@;gtʡ׻TsTAqhAvY} u`\P *pje kKe> *pA.S͡T2R{'pyT \C.e~٥pپ *pA.S͡T2R[/*r }qA.e9T \]ʸ/5β_ybhfc)L񨮜C{6rC7RLuUVI'*G Z09FJ 6"iw\F=kvڤLٶOwlܷHV_!!^?@lwЛFf!ȱn7 G&e}>oh6[`pl=iT8|_Χ|ܷI3CHgbqZV3cbWk񬗧ϯO/@ SAFETY013.A [EVERHART.JTDEMO]VDD64.ZIP;8XP6;11D5;1> B{,7òg#6k#g=13Z̯QndC;Y/Vs&Y$rB+A>+?lqD~^?"\~i|-g =`x\IߝF50F9ā}=?Qx&r}. b~h3YQ(0}͡qrpTF3?ịhZ;;cXzH7t8ľ3a^+Dz|*s[ l+Y #Yo~g o޵~tTϋ}݊#x(?P$vs+Ι+JE0 σ8^tK9ӹ*ܱ|bs|%wᢎUr)K Okaǧ^Ooyǧ_eC,C@lm`=/S]f ' hvwVG]LZO_zAؙ#x !{v&mcTOgF;s<*4sܬ{yZ|%KcnUUj+4.λTITrh27ztNw`f ݗx}9Xjx ˋK_K.y%UU~Lu<<΄L`Bnͳ>ڄ+6mX[k@Xָ~x2L ̭9 IF3x~u5͆'_zut}_T]IvE6{TEUV'6^-[şjWvׁ>mvICߥ ZxwmmvkW:ySknugOgj=q8{͖6ޜ # t*d8`4 (p };tԻ qɼ73}1:z8T^ӽYӋEdAx8ÁR/|wUHˌ@2+ԞPYx=^ /' +Ll^ߔ<[5t8 ;jƸ*2Uj#A/htW.f[;@I ٬>Mu I::05', 280[tJtn4 0/"Gf&Zb|6[jVU(Le鄇BjG䒺$:1 ,Cf,( X^.H$C9 (aT&D_ANUpK LJGwP6{ k#Ѽ:|7hђYFjbHHR[ 1: -vil/V@K)6|XB;% [Z}+ԏ{5)i:"GcRR ,0ac`A0iT XD3%iqߞT! Awl4~2fC 0uNjaZS*ttĢ4a`U#O3EV)X" q2SDc)$ /R,3ZϿC}7Nj&Ú X ?$Hnvv]pXA'LhtN0 yfih!/$/R*\3ĸQ!Uz3)h5[;1invt2=\}N fHʄL : h#tCK;4d#ؠ'L̤?69]_P#dAZ;)2] G6;O|C+Ao?=2~{n-.._vwvFF4ݶ;Q؃D%ۑ!aVLfqE0RMj!@4>};U))&E`‘T r2p:|IAm9޷]oq|oF6{:VW7zDZ@hG :ϕrwD8v{ėGT }ҼVSԪZj}s]S *ۨmx':hT@F"jjZzr{Wt36 luWˊ'?4!'M[6OG{]zE5e:Wa|C/5()Kߚz7"%A{iiQ7`Y-H+z-^: ԗ(=PQvޣƑRpXҰ}opjghV`ڮwn{4mjݐ"0_-&aYgT׭'s:7+ -dݘb ';2d*j }̐VG}*N7&=nd]Ld 'Ϻ$Vʠ޲'q,RkwhIsKR dcdا05H ¬{&6|  .GYүp+\Wm[eh4E>! u"?B!0=Ho1[=X$'bǐN] $ ^N;Yx="3Lk6$Rv8,xi'ıҞ8RWڣ҄ƽ^ hÁ^ήFgI;( 񩱴2@CsČ4ǜ-hX.g<0pz5c;$^o~x>Ru5դ487{ LyvL %.9LT2)_عx*CVr 4ᑓ44,'/. ]]#UA6 jvw"Ӓ~ ̟ =\ iֵOS#n~e^Cɍ拋 5,܅ و63o֥qN&̳Z(/ l^V 8XOIIzRt4[A%)tlCxow'"5;$Amuʺ&8EzLwZ 9 z4Id~Kȣ=œtz=HP+Jt'2[.@-̒%2Y(~-%!=$OQ }kQڎG!+g?DK4nyhf)!@x :X+) i@B`s2磷#ԁZ@mLMjL%4+Zd2Qxy* e|;_ݺ߫C~~rYg\?xwYtU6 ͔* PTC0a+fp:Qfh541ߓZq$?wvf,n#.75Vo׽M"pIC(e=Y˯Y{)NY~#n#UI|ayR7H[=<ѡvJ%vo5&rLVa:OqW[( d" !U3bg\PTS91BZ*셧9`1 ӭ|3|&}42} } G)Xig`8 }5?Cf4Wr0nw=_i݆0!/K qXX=x=Boo5oSzv5~lJ*ooVesQ6 )_,e4 z#C7u;{Kj#&> "JdO >im8͝ʜt_wlVǓ`@JvPϲQ:Omw_jdR&qKh6rrBn|/?vX obwQ ޯưy""_)aVnbFWaJʞ}Mf*勀\9.9q(}} Vp Td b}glQcbiyK"s&sXRP}wsK;xn&SkhGPPKݾ (;ca|D?p\>E#S!퉴 qh ?A|I960Z% K8"UTؤޥʻȕdD&jWV~U"{:&b ?{ ( lPGC?ǝ-~J;d*HF~:A93Ljshmr֘yM$xIG:EG;d0vHÈ$6朷`>Xk d4uCeOU&Gǎ|0 dWuIoL]6d35(Srd6vGNaloNu%g0_;CQDPaFrS%7ǔ/lʗ: >6%<ͺ'w5Q;qt] 鮩ߊ*2'.kNQ6 }lkz4IvtNT_|gMwnӗm4(nT.iП߭B:v^>7OKy ~3u!ђ':v.)RWiW":u< ߹7cڑOn<Ɵc3`< A@lyL߹.L $3˂3a!-N.E{5>K -mvjs\T*rxExoS&_xYʺw1] 50 To\nX .3OUĤ2u۹i,*nWUk>񻸝58\ r@X[ۥ\q'(2]*2,[Ki7Koeu7Kф4',' "`6o뿑R/~]w]hH8BmC &P;6JzqpPFacmߜZmoիV@Orٽu:GvPbOΨ2ZfW߼43z=uAtz]R˵[i-?rZkٿ_*?\mg! ׂ L99pޱt\#[M3?΍{̝BP켷ֳW.29OH@rZ͝;ʉ3˹5_ٌ`Bru)~#*)O&̫aw4. ׮gaN8w_Y 4`lb__)|ɣs B qy Np)~~O>9R{0Öe8?c/Js]'ʙNL7Yn8B&YZ|ԛoJATPQ⾒b} eh .yֿr~6> gvN\,'_+E d3_,,ǪPO/n([|pTkXw7/^5MUC۰diNoij/QlFIpn@ef0[<=`{s|ܰ.ƨT`_SoIA!sv8ح<&eQ<ǛuT /S<5m6Gp5<d .qwhC}fY}G<8?g֜4%r-{?<_xrH!B#.YN /ɓ ^'WGoיLFJ+KkgЋrB3{oeߪ{?yF۞ySxFT}jzxe<OFJ7^Q _OP,UxO{7^x0 420u#_7' _jdJӄ`Ԥr@Ks @&P3Di(T:Q:DNF yu``ESD`tx^A010`п)#\y!4r)_Bv_) +Фd(PBY"l`#O LWqQ 5~ oL]*u.{,0X6#\1K5!kZ95\^4+OꀵH[:Yfx!Hq%$$e[72[J$`7T)%:r)x~s O%U%u^ PZs_C:q[ԓF"\O6U!)N9Az_@DΑ$X[oA)5:r8Bpn5 CZ<3]>2Z:cR-FOߵ?TȄ5;G5JŶk@k2|ʙ0H,A9MG=Wc%>֫at2VfҩtV1O|l7_'\jjT!zeg \_]fЈWmpζi22]#gpHĖSgn^q2z+k؟! Eo1s* Vjoʱ=&S /*+pv-oI ZeT}1y~T׮,k4.Z59 ^FW&]?3p& 4^ѧw kY[;OJ[+@wX}MBS 6s;~x=k~#\9j`Tdr# } %{=Sc/(H# 3_s>h[9+@J8B>ѫ/#JRM^Fӯa< 81ĝn3#6^@ 8'qBu\fͮ_FeYruDVˣTpD?0O_naɡi@aeXqM\۬6)n.9r^f|f)tUeh}+-;E4Y%mՠ7>83Jwv|%k; 䰸Ωz1Ļl=If+&.B6@쐍2H9?=p d smLWn9&%"zFX`!^np̧c|vH F HTa_Ϻq ԨPֱ+0$ CUHʎv?@nA)g:MnygIƶ"I!W"MwީZcbFqP 0gd $bo=aʑlPS)'63|Ÿ'h"l'.!hۑN%2ǚr ,E6$ HENM;U$>q`$ KnWj*^8FƓW!+k7a5HaeIQ8$71Dah9lf=^6c-Hk14*2`uÅLlwN]8/^w3+pi2A\E_)%Ihuv@*@ouzWHI$KBoV5Γ^xFU*w޽Ce$[>0qѱ('7H7Zz]ҔB1QF;9!{XL%nz3d|y@/{[HMaVAKL[yL܇-b"5U=ӹ,f kRZ%I2'mmh9$&xFF>>3ݿPR#4'8na񱵤; Ap S%*]4yT֜eKMm`x.iF*4=4'7> ^bx=Jd~B1y)252*2JĺN$sVGZ̗,eP/͘%>>p,t":|pXmnx'?6e\jط~&s'uOIwpe0;c$3t\X8I_."JRahzd=z_78[~[Kz \!O= 4pLk'%;m/@ezVlbn^tX*$qc4 A{[pWDsKR\fE %xsrQK;eMmqN䎁%VYik&.y0LMaͣ\UY{ !=CaR(p\hnYI*[lF Jڀo&HF e1h=,=tĻr0Ω/69D^zGHHJ9A,)aR6J!y_@VN-G(~Me]ᄯwOm &'5lFoDxQ8v5z<,tQ\pSx9IJ !vR6qu9qFG(59y `4psf2gF!gOx Ԯ26ԸȢς\3=@֌~U)l1V]4LrI JG-aK[,Sm8XNXv lz;|HA:*Ok%D;@vPɖZaŚ?ټb=Fz؇\'r*:s:=\- $) (:ɴ\OILt̡RI@;O󷡈comdKޅٕUXǗ,->1y$ծ/$m-"2KB]Mhtz" qVM8w ݊O4^ڛ o6?5Gu2V0V#^`29bȻ!礙K$&}ghG4ќ^7mGyo5{+~g1'r=9WnYRӸ|`|ksR;G &A$5 ]nך/pENRk|K)mI{— I c-Ǜgb{FݐX|oa1X[IJ{a'm5שƗjLr wr+ͼ|0ie.>_ZFJowof=w xV@O|3T<9.#2B!ExЌ7adKan9+My@X+p-fOԇnwGKb 2uZKCnyU4HƧ76p1*^ h8VtGܘ˛v]0>w1y)+=c=P&{FNMڇ52"Vщ}3jTex#4|-H.\N; 3yV1JA^TO6ϾZTjlAlkbDۻ| [`X9b'|%Ad<@V؜!5򊷓Y9]*ΓDw#&FdD]\$|Jږ2$KE#V߫T8 f/ yzs[.' b_A0Gqi,7Q8XE#3LܶUvQU1@ SAFETY013.A [EVERHART.JTDEMO]VDD64.ZIP;8XP6;11D5;1>-K{r+u~nI}7h%QIPIg?c%Ah}[Ah2&j?P< dtCl\īB[Ykf<꟧sI23Y#I%Y&8Fa55b(PL`-581#n/xYFq^XvW`tU\k<nj*%a$~LNO"RqP"R^o#Dl`OɘCo{]~ZJ}} P>hRPKxO!< asnvd_64.objIMVMSVX6A7IM#VFABPBCm!ЦIMVFHC,;0?IM%VDAT<%ͱ{>ɕ{IMVPROX'b10IMVRDT=Rͱ{Z{pSי?W:WvV$om% !dٖkƲ6lwCpg:e f dIڝaR҄dXM.%0T3sw=9X*c~%3&zeNgy}Jyaks4pIcy֖e˝)%,^f\/Z=AX?%(嵞4?oBPr_Hglc÷ƺ`S7O{+*~6ښѬy$VRWES[CeWӂyo'쪘O)/U6uU7V`Sc>4cu>^.TDomMaO`eIKo>S۬co z[j5KmBxyh7|}Ce:1Pp.苴L_[O. $3t776`6oy}B[]XS_[Eع[4z+*[4 7hL_ȏf^y:^K+/%$,5!e%,Rvb(:-* vct4lгie(6Ⱦ ] PTU=4OE@1-M"JFg㾧,)b3\砰ОlzE?`XCh:]j-FGaaN̲SVgB+DbXzked2 eM**\ 0Λ5MDDϨ14tԖdMTDq_S5_CPά@m>NVdx+iDs5Nȑ/VgZlyYU[Ǡc Q%t8` kXKu^o _q w|]ѝLcݴp,/p_Rrb`5c!GI% "p_0fR,awfQ(Z#;h3nN\Q_H$ǘGaH*H$=`dQ_bH]GѨoJ[E6FØI3j4{mb7Ш]NoѨ_eL&+訅}b|٣w ]A~'ݎ7$-,[ 唛ړD~Rz5iro}īɴgc+Ѩ0.ōTh/Y폞Bf./%Dr{ޒ-⊠R7\SnZrC\c2yf雽hglq3<:fG쵣E쭣Nvh)u͖feXVX7{&vX"neo e}zǔoc'Ӈb~V7lFAFqǔ 'ړo]/[vǔ/Zʿk<C<C<C|!`>̇>v.|ϳ)>#GxV&kUⴭòUZIXsaSky^hJm|9ƮRj0.ᓾKnr2k+-u}uHSmn؃Fz^}0lqtundLۑ.3d7R-1_6_ƛnK-wݲ]6=d[6 \FE&قG٤lUH\uê/b/*qtj૤_&lf׼N*fIdoƒ\|mVͻ/>kAاfyTj]sxZ+> !h#;wX2m6>и>6қ2m mZ =S.[V.m3l\љh*q,u4?7"^Zk: k.̻.j[TrV#M1*.N]:8ϷIsy/:^M"yw&ektH\W |r@_֨99-R٬E*G͓|7ǎ[]T+j^P9+l_p"nL.G|f'm_?Ͳ9wrWٵV|8 &#Rb+ø"<kE# t |ԞT|/>zZA19S+ L+vm;r==%%~^fC\/|pƑsx)/\>3زk3iV>zΑhvM> lf5xQ^A@NX ·,KF?_ޓ9x\,vgb\] r&? Sj_a\.N돃AbcԧbGJ' |9:r݋[ ǧ5qB'.46 :Qܦ fo fu+uS8o Z-yȽ6%:-Uq{еS,3[7߼;L_ ;A)r}D9HGy-A/c-v\V43&JcrJtcnм??}7IU>XXUwf6%zCz 3sa=ogPisJvݹONSSS܋zg #ď(g@WNad7 n\lkPЏ5cC4%kyVNѓb-qeGo7ո7݊w7ߛp>ܿݏ{nܽ ^={{r|̆c0: ƘG<qߡoq=C<"]8:Җ#ihR ج-]#z].8`/4mw7aM~KG&a~KrqϦwA%;xm-`!2:y<;Q \F}#o-"'\M (L+a ԃq.j/k؆3\`?%&+<DH .gB[9αKȻiozO7(qt_lMۀɽ%urEMc;&yV09UůVavS;ЯXg~q &G3Է4 O^gm&E0--a2ZՁ ^W@gh0f? eÈpil=B|[jkJAD99n,] 'ϗwr1Cu!5eOyքVP+uni{I|X`([,Y}/5~*7~#q~&ekxm_wA׹bf(xl{ ;ι2տUo Y;RiOϽ??a1oz)B(kfof*3w26l#r<cA_7}= "Vgf=?XAYr6=c¥*A_{D$2hie(Ua3e|z0|N * f oA a+MzιF&=dժ+J{M#!7G/G|-f]V'}Zmg@ӂGsZ-hns䈩 8u_3mAyֻ358ad[ffY؏)pR&$a7xҟ>QFِ:UvdE5E4 ۃ,Kʜh h>fv[V-Wx̍QHfK}1VdJT e=4zneO)?FlO\+ ~mNU6. 5NLZ¤~C}ipsүҟnbYU~!88k<`'[QUkyk6(US…*;J&/gW#~hAŢ DVH؋V'5!}Dߙ8=feO=m폱g\#{n{vr[G%e aU3ӯKaWa2-Q 3sD-–"U_4Btl=9{Hldee6n`QCR= fϸFwb-!Ýf5ܽ݊tb"6i{}6u6Fb*c[lMg\#'-Oa{xgn1޽Otbbar&:l_.GbkwV[K7ma{s>almR2s Ö!޹o5$EKamBdQI2U[=9gubbaK1۵{f1Eb%%*{ M؞%7mikla%GEӋN鰝 65"msn<퉋K[۫gخ'iwJ2Cx:ΕDWS:l6Q93mfRm`Mik #ŒC،ʞ:l=ߍǤv4{5r.ŒCvSN m16qk:l-?E%%v>ɽ/@ 勄b~޲5:[[o [WqF=2̫8 }"i4+|kۛY55 GoC`ۇ|~+MytI*އf˨g! b6DG=“Xh+ոMmb˨!+nS`cMD"[<aЖQ[Dl,.fCHiaGm[ w`.a|lc[FrO$⌀gPoAhϸO؋d׍z0 ^xa>J z9 2{idNPc3(3ƗX-a!}kÛ=NOm/ay^r[-a-o8 ~g̴UIF\JɌAN34;^y 4*:ٍ?w"߆(2Rqu̠Q\@rg PKP!ٻ d asnvd_cld.objIMVMSVX6A7IM#VFABPBm!ЦIMVFHC,;;p IM%VDAT<%y{4{{IMVPROX'b10IMVRDT=Ry{uj@VRz2*CLd5MHYm(J8N>zho=yz#}:#{54kF7n6rēp[76.j|OLyH/xgs_4mMK=lܷʎM#Wy'QΆH|2)W !J4iu5ddR.AS3bI#o(xx&R<"J,ְ0ӦC9{#(\#`n5D*v|{}yΦCYQ_K^7;]3A&);͜<5L4*C/ћߵ)bax:y~kV燔-5l*ΌN3eWr)a4e n8=,v'U*݁%G%x)Qw_KUh-1K^wg𾭾#gIY-qFyVY8ڜ5*HN<1] "O EIgrfi_ C)"O !y@)4bOiQo>#gZL0rstZ*% bK~ )YsTʌ!:W-u&ɧW:~iz0K 7:>s?@Jwヲ [l1A=_I3㍑r!ҴC(?ph lCqk0UU?Yoz:~bggOwxuNM>yUwxxh߬Ҵ {)I=MZ/&}\CD9xj g;'[4S8D7pGYӧѱj6I^̇t6- [= Ѭ]@VY7X=lh.$ \L\uKGb,i-Ԅh9#G]*sY,9E53$ |j;awk0y$=,vu M7KfѷD*  H'E*Eeqfwܘ~*I#d8 pz6WIkm SS%p6XPcic;"UATcpsJ^sҀ6.㉉MvC͏uD'ThDB2r XliUb(Ju 3zoM֩P"Mݞ/Lgspgu!y*5m4mAj\PPB2'+.6#;ac #W4|FkO '1Wk:PKM4$ =asnvd_s264.objIMVMSVX6A7IM#VFABPBCm!ЦIMVFHC,;0?cIM%VDAT<%ԯ閍IMVPROX'b10IMVRDT=R[}PV2``.LXB$@E26c]]0 M&ihI݆I lLr>|8I|-4gMuϳڕv_iAv5컿y~ ȟ[y#m\o6=dmz`?8p; uk2f1v <4`vxԯt]>g-rV/=h8~3]C[DPh TɼbzU,M>GײA}߂{2!?zstygq8ckg n H}^>k,ݫ˖p}.w;[]11CtZ~BN#P7_K9-$E <sP{I?қ?Eѫ#| x ~{W3jnWsG;b_+;4 +kO Ǚl8%xM}ΖͼfT87A*>b?quww$ޮ_r[=QA:z \3&w}U pTv:\ ]Uق~vLn[I6!?t.k}g.gqM@ q}: 9Udȏt]j:F.1a+[뫒*1g3"HsԕՊ_KPHk#cE[_A>(0v[P":""nYȏ|3r.\0O,]_͎*E6zzt%D9ԩXf 9gD0!!#WW,y%_\Q_."~5M92U!c1ƗJf+w5ÁY 2[ 'gmlܙCʼnh<'z~8yb|x"3wN w<ܱEhcr+w>Y b-B;cFatpC"~ C!XtP"ɯ?շTG=y1:\'$rDuN!):\rBSX鼓[.\?=™is/=j-v]5P,`N)vaG++G?nEsS6lJY$|,t :vzc[6Camgv셶|}u ˃r[<5Rl}sGOF+`QO\!\nE;F1 v=7[@x6B/lud>$ɒ촠{h%[&k]ZKHvW "/p=Tb[lv^ R>GPK>G›E|nbߞ'̎\XbYjFMqSĬcK*Gy?|/|p_~?.v5厯fۏ6mxq6#= ~{ cLGNsЉqTO/ Aǧgt}1~4oO!C_ٌ?y/Yzƃ;+Q4 Xb,J_F>Ax肳cDkl5 qm5֏kl5v!\cGpuTZ[8aKkg̰eƎkm= v0.Æo""~, *` L4xY:_sY JMkN9mhpٙ Cp $8'@tQ:_?n>2Æ |2}h9 O޷>܉DHweq)ɶٴ X!!<ٗ$hy ĿsȆic;Qa:D5%0'w8{W&1'I$w؍{SQqqAC8*vP7&\} ۄ&T,;L+,|օ+"vc}NN9ǹ^wu;8XC{k]ܓ,A/Wo=? S;;p^{p1Kq~Ѕk r֌Ms!Wtx܆EhCev W{$Ev x.:7v'EiúU|l+|h;lPKu}c9g Gq BߨG /a\?&X\u.W(>J_m&_d]X?dWވhb+ ]%’2l9$޺M q=+VaO)Ŕv|MuNy5qQ6BxryB;9`ٙx6 9ăx9]1J2=}Q y}~9;ĭTp9IfP+3s%CVI2c I}'a P1,d95}K %.57Vf^a'-^'p d/LrM!3Mˎ2ns i= nos J2,gG*#rTe2U[mam%Y~qzq:pӲvv) ngE%~9ÍVCC@PsӲCyHq3aU+2ܴ7$3pS(X n$37̼γ 7-;č 9qI2XyI%ۜś-[].n y7nZv.1>K=ppln%AmtξQCr]Rscev0iQ/2܎V_3$Mˎr~f3w,<2 )wax#-Cn7^KPsk[|+3SeG9"Zn+ݏV)> s9^qw[ 7Vf^a,Mfhh6ʮd-F_+dj+*3vϬ w.Urc8Ys20oH;TVye+,14{IvҷD.Wrvvc1dzx\LG1B.|WN&W/E릸̵:ŻfP/kF}8|ޯU8&?:VfԶY8ʜ/#1O0)0{L a.b0F d0xy&0g҈^.S`\)p(eE\rx:!7`1+Lpd&fr>Nz) '|r,\9&u IX.|]_˰J?Æku q_FC U^JW3_<.+ԜȹO\uW }p; ؍ud,M[kq]k厡yg|$h+0C덯CD >` Z!&PŨB]n÷MBr N`2Gio k[s!y CcXq-DOuG'?B]8oFzXˁ?t.5#q[Cyg%n,BlQȬNWMcȣ?{4yJmK\Z7xweN_LPqkBuwo:ăG1Vxc96<}[]LyD]n%={OVkۉaj+dKxP[_]Lb+3@ vE_0ᝎ f(Yslv~F0,iV4zAc=O;Ӓ *I{7řxjk>1^ .M/Z)dPK P!0#]>U> vddriver.exeIMVMSVX6A7IM%VFABPBAm!ЦIMVFHC,;(0Q IM%VDAT<%uj{4mJ{IMVPROX'b10IMVRDT=Ruj{a|Y&Chb8nC[MibrǝHwKXdNHW@ SAFETY013.A [EVERHART.JTDEMO]VDD64.ZIP;8XP6;11;2߹>LJ %וʤ"Br&r R㤱֚qHQKer{Gdt>4K|>{:#B6BHN  _| ׫?Got4^߾xs_6:<mC<_\8Gc7cN}~_§ݳ}pˣ[w-[wg2oy 앞9]gaשdxT*>Ne•Sp m Gl<ԓ_ꌞOW=O6mIx# {1N>u]ݳbuQ<> ʇWO0wN5h롎0?[+ גBoLm ?{<{|Α/㍣ -djgυ5Odr?>S wyGsn;^{ix{KknGR4f^OqLtvd; M]sM2djU9Ǚ uy`^' x.\鉍W=GIw|yJs9ӼY۝IK ˲\xT>:=?]NgN#ߌl o./+xܹ{q/Ƴ,\ `wLxվlxpon.CkMrS}3,Cc`\cW&:Ƹ1c:Ƹ1cc:>pթ1ӡs2~KgR`싋=?Qx5GWWz1`iƧZ}<-_묶9(S]Vϲ~V_ԹZD."z3s'pOv0nĪ}{+Slڔ>/g0L?!5{rgėb[1//NEW7/{ؗ|eY̝Kɸ+t]`gUc aFs~os~Ss~tڐj]'c>g{NŮu"xpShߟI֕T=vm֎>||eーҵ}m>uRx>uMZ~K as\WW^\O8e%\ץ{:rUnM溜z_~c%!٣ί:}9tɆi]]';~Sh u\g,73?Oj\se| ?n}\gqw4xϧ~w[ض%ܻlXn[.1u=8c sخ}lyV{}"v1>+~̽cX8_-Q]ZGx}k:)-\_Ciyb~#^x/z2N&~zìcp$ո_;q$f_WL?/>ŗL?/>LߍMY3>i >2}Ox~~O\7}7M?o>?_kϫ|?l!/~M_Pw|5OIU#ϩo7MOU|eǗM?%T+_0!ϛYO|5OGT=JM_WϪ|?n _3}C+eO|?hLYo|W?>m4 L?᳦giӧ)| |d >33g-|s_7}LW鷫|C_2/T?>k=6}Q㓦߫G?5M_R|_7~P?d_4}E ?yW?>k OIӟPy?J|g?a_7_T?dK_4}S yӷ?>k6uOGQG7}[㛦 ӇMOkU|KcQ|+#a|!|)|5}/>O>Oᓦ߀O#gy0>oᛦߌ7LS?fWL]˦Rw|/~M?YQ4^L?MD/|?aQ~L_V|c_2A/R5ǧM_SO|dIoȼW?i0yLP/|_2%/_V[5UO'MC#Ϩ|^_Ko|7?aII|~)~ _6}?/~~_4}?/?ϛ>᳦giӧ)| |d >F7}7M?o>u|y~ǗM?%P _0Nϛ~X㳦ߣi?>i~D_g%o~7L?uW_1/~LK?EW?`C7}U㳦Pk4 L?o7MV?u_P_1E/~ZKE7?`7}K㳦i_Wo|doWӷ?i0}?n8~_3}+_×MK_M Os{|i| 4|>Y| 4f4aM߯5?b_6ǗLC㋦/|;?>oaϚ~ǧM_T|doo07}I㛦ߧ ӏ|?fWL@˦S|/M_U'?>m'MB#O|_C|g?a_7_T?dK_4}S yӷ?>k6uOGQ>7}[㛦 Ӈ.MOkU|KcQ|+#a|!|)|5}/>O>Oᓦ߀O#g~yy/>oᛦߌ7LS?fWL]˦Rw|/~M?YQ4^L?yo7MOU|eǗM?%T+_0!ϛYO|5OGTz_?i0yLP/|_2%/_V[5UO'MC#Ϩ|{yѿ4Mo>,|q$f_WL?/>ŗL?/>LߍMY3>i >2}?~f->oᛦߌ7LS?fWL]˦Rw|/~M?YQ4^L?^_ҿK4>o~T߯5ӗ?b_6ǗLP㋦|?>ogM?i?>i~R=?i0yLP/|_2%/_V[5UO'MC#Ϩ|{yп4Mo>u#|_1Rl~_2 h$~_0}7~7} gMߋӦOS7|63worgy޲d'VI&lN[}h;nRMONBƴoIDCv !V^-.Y֑4-HIGҫ-HDmU._:s{l7/J?1Mݿ߬~d[闌#scK3Eݿ1ݿ-cK0[t׍}W/}?>5^/}utόVݿcK_'tҏ}~?>7ݿ=c__KhK2Cݿ cM/}؏t׌SctW4?(7_Q/؏u%ݿ#c?Kd_K__K53ݿ~E/}ؗ~U/}u׌_Gݿ}}c_uݿc cQ ا_2H={ƾ&}GEcm[>)}/ng׌/H{'}"}cߐ~f~*7u~_o_2ύ}[/}?ku/tҷ}G/}oK_7]ݿ5c_{ݿսcK?3[uO}_/}aK?2_%c_tS~I/Z/}u76ݿuc?K_3O}K_gEݿc?K_tҏD/Y/}n짺{~Y/}t/ݿ-c_oUݿuc?K_3kScuW3'7__K?1ɛd~AOJd7I?>7 {w}M^ҷ}&}S_z'}ץϤ_>5ND{eƾ!})?(To/fݿ#cKdK_T/}/_4o_ߢn컺kqݿ髚___ߪ~b c_u/'u~gK5KӺ[~a_^/}j_={dƾK?3/_ؿ~d'闌˺sc?K3˺~~دoR/}د__Kz_nٿtό_O,0ҏ}*P%cI_/}#kkw_4Jߖe37;ƾ.}&}? w'W2K%7 KgAO}S/}a7_%c_طu~Q/L/}wt7ݿucK_3OK_c|#7=ݿ3cU/u ݿ#c_2Oύ@/}?kt/uҷP/}oK_7#ݿ5c_ݿ;w}~f_K?1cݿI/Ot/u~guwL/_K2__K_7sݿ5c>5Q/}c_uݿc-0ҏ}*P%cI_/}#kkw_4Jߖe37;ƾ.}&}? w'Wo7K.7 KgAO}S/}a7_%c_طu~Q/L/}wt7ݿucK_3OK_-u cK?3[uO}_/}aK?2_%c_tS~I/Z/}u76ݿuc?K_3O}K_gEݿc?K_tҏD/Y/}n짺{~Y/}t/ݿ-c_oUݿuc?K_3kScuWo5*7__K?1&ٿ(}~dS/Mύ}{]c_#W-cIߔaI_7u3kO>z_ٿoH_J?3J?~b웺 cY/طt/GtƾgK5c[ƾa_\/}j_j_Io{g~_/G>KdK_J/}/_4Oo_ߦnGkyݿ髻eƾK?3/_ؿ~d'闌˺sc?K3˺~~دoR/}د__Kz_fٿtό_O"0ҏ}*P%cI_/}#kkw_4Jߖe37;ƾ.}&}? w'Wo2K$7 KgAO}S/}a7_%c_طu~Q/L/}wt7ݿucK_3OK_*7=ݿ3cU/u ݿ#c_2Oύ@/}?kt/uҷP/}oK_7#ݿ5c_ݿ7}~f_K?1cݿI/Ot/u~guwL/_K2__K_7sݿ5c>5Q/} c_uݿcU/}a7JTK~sc }_Gz/}פHh-}g7ow׍}]L@ScO2K3cS'ƾ0uҏ}K/D/}nۺ{Qݿ]c~?e;~_uҧ6ueƾ~f_?~dsݿKIݿtw_Ec_om~fKSo ݿ3c_/KG~~ؿ>7Sݿ=ckg_/u7_5ݿ;;dƾK?3'>y_o>H?2C闌&~A=c^Iߑ~+}[ϤoJ0K勞5c ҧIH_m0K7}CRPcK_ͺGƾ~?>7mݿ=c__KhK2ݿ cE/}wu׌ScuW_}O/oK?1}ݿB/闌sc?K3O%ݿiݿ-c?K0t׍H/}?>SS{|y!|g%[Z~pH<$K<$z6bvo}WG$p|ٻ6y.{H Ivm~CņF>HKg7%w0p +/ɳ?4M.'?҆}On/#+ɒcw~~mD~֧}~t|G?uCܐ>=pA~O9v>!_׾g{;ɓwZk_> g~搁lmz!18K0lmz!18K0`: >8`,&=<@66= %|0``C0cp ` t`lЃ}p)XL~3ЁM v@88` F0ي&;S#(f`pp N`)<@66= %|0``C0cp `>f`pp N`x>lmz!18K0O`: >8`,& t`lЃ}p)XL t`lЃ}p)XL>&;S#$f`pp N`Y<@66= %$ t`lЃ}p)XL>&;S#f`pp N`x>lmz!18K0ɓx>lmz!18K0|0``C0cp ` t`lЃ}p)XL~3ЁM v@88` F0`: >8`,&?&;S#<f`pp N` x>lmz!18K0Sx>lmz!18K0/`: >8`,&&;S#2f`pp N`&;S# f`pp N`x>lmz!18K0ɯ`: >8`,&O`: >8`,&&;S#<&;S#f`pp N`2 t`lЃ}p)XL~3ЁM v@88` F0f`pp N`,f`pp N` 3ЁM v@88` F0"f`pp N`[x>lmz!18K0sx>lmz!18K03ЁM v@88` F0m<@66= %w|0``C0cp ` t`lЃ}p)XL t`lЃ}p)XL~3ЁM v@88` F0}<@66= %|0``C0cp `&;S#!f`pp N`%<@66= %<@66= /?s)y*~T'p Oa{ou߰:~_y?k֯;|_w_Ưt˧`n9~|?{C |nj?;^"ӯp7q¯W7ݯM>'7yq3n֗nzf ݌ݛśu37nFMz'OoF$xuv'ōH>N@޻ɻ7;u#7nD N'Ooz$_w=z /Gu.'ϯH޽M_끼q=ׯ=yz=W|z'b={uOz$﮻랼둼O{t=W"'yq-H_@^].z@^\䣫k<{W#ystUO޺W#yՓWyu%ϯ+|r%W"Z'ϯޕH޽<œƕH^œWyUEyt'U /H>_+OWWEn_yVU$W/'O@^]'\H> ٓyr$^v[yr$_vˁ痜/yɥ@^\KK<{"yz'o] K~}ɓyu1/o/z@^\䣋=y~1.FE7u17.FE7<ȫ |~5 |r!"&'/ޅH޽.ƅH^6yu>ϻ|r>#;tyO{]'o~}3ޓyu.Ϲ&ΓO\$sB@;ɻܷ_st'b-??:t O>9ȋ|tk'OމH= “NƉH^?ᾋ?:'H>:>F@;ɻw=yx o=yz.?y /|4wC=y>y$ݿ瞼5y$'O灼:t1O>9ȋc|t}/̓yX$s?[yX$s?c:Gz@^䣣?G=y~4FQ}tQO:G#yԓGyu$ϏOG?=p /GataOÑ{}?[yp$v?F@^COC8G܏)yQFQ>Gt~O>ȋ|ݿߓyo$w?O?_{t E>ݿϓOb_$sH@ɻ/_qKt'b%Vܯ+<_ 何H]qJxJ oD5œ+{t^O>ȋ|:ݿד{yoo$u{=yko o7<ȫ=| =|'{"hM'ޞH@='g=<ȫݑ|mw{@^tnOݑݿۓvH^힣w{tw f|>s#'@^"h~y|{Hޝߡg5 Y$3Oy+w]|+"h='wޮH~[ycW$r@@^.;=dg /vFNtNO 佝}[;ycg$t/;=y3W;"|2ݿÓOvbG$p#wwL#wB@^-G+eO>Yr$-J/{|9#yw7ٓyc9ח˞<]H>^{@^l=y=GvtvO#y}tvOn+|x+x%^q_TWm,Ŵfmr5g-A3.ԥq XKܦjNIȃc MhbӝIÉl`wgDu RlgN2οy9+ɮ'vEw%8U`vWW uDw$(p(A'; heߑxGQ : } |E8k%8+k:%8hkp-п-^[m δE%8VD[ݶhA 5n6oKVࠥKg[ioIp-х- ii?- Z 45Sgi_@' hjM 7ijM 44CgiC N44m_C 44n@[ ܫ3п.^]u o]uN5ح]uvl]5 IWSlM35"Ip5q$8^S`vM$ت)pP^UU jp*C' j[U Wةj]U<у{g= xߓध O]O {4ğ'AE{qW$ث(p HpW_xE7_`AY{eYg)YeN5-Kп,;e e_`AI{%q$+)p;/Ip% /IpNIx$*)pP^Qп(^QE ?QEN5-BNj 5.נQ _`قg u_dA v */HpNA킘 5li{y58˖y N8`7/zO^yvlER%+p^NDNgsɉ?'ɜ'rĊ&7Y;n=1 еVqLəIzaf]ZN?rut|sᜫDS|5O o;zѶ#D.NƶGv?^1=??_Q}GqI)5eLה2]S볦gZۇEn ǢD 6=lYs(>^12o?>@gGctݏ>d틅}Dg\|YI^G}O{\g_4m:^>2bӾtgx`ѧ67/JRUïJXwz)9NL7MMyOӱ7C,9˯Dy(^X*ǭ=nzx']JtN ak01Qf0`aMϊso{b׏%mv%C;@8bbAͻnss}s1}Qq,D9Oq y¼s=΋7gdrk 9sDC&&ҿSpnt8pyc8o$&M6?~ϙAop&9w8y'?T3YΟβgk7Jw]w+4U;7 l54! gi8Fh8ϸ':g'fEkp^Y?>p`[*>v֭-{vTe~˱^UuXyvfMO/tӇ',)UV̟ 5K?ձo0Np,J Ŵ|E뿬դ2sorFNiC.u:,TzB;8h-[58"o0 k c é:P[WhDU]\ժ X=_m-jSoVB 6f: VhfV;3?ԣ{@f>&-= |$h

{q쏱kDFo*ȣz/]W cv4 M“6%"|wO&VT-Zg7}ߏ4+Vz ]+׋iWCr.vJ+Vr.rS:nti-~ΰ2vJ[ҭc%jTjVf_Pie_uAUfqkr{ ̝fM*>RuJ/%vNpfU=G+UBUumzh;5u+7]UEu5gt6N:(wlq6TvUA>!`{ xNN}FDތ::T;p.8WdO~<'L{ө?gT+`#]EM(a9Y;e"_F#5UhN>ڢs`c&'S>'G ._y$j>@~μX`G6fj2{DBD3|oBͧ5N)<+C3pzo:fLahޓpbkaiX4y,C8 TT+ 0md_+&]ezKBc/J׈&cjOijmmE)޻w/-Qya9jadCiG+ ^7o8\DlM !Tbغw3)bաt* L&!:TGzyfkja$ /ZVkd|Wܯo>Eimр]mvкǫX)1P>@Bi]#Y?~D g<|WYЋ",Ex#t*n91UP'2V.O3>+ *3iLf>*=5*_ j>,>5x4(v `0ɰLּј&r+>oUhސY^Mdxz,Y w ogt@~"njkıZfPt41wsЪk P yzr61g{nmm |{ҰL9TahU u[>d|g~Fm̐ K5R'6E=Wu]pSP0h]Q1=ƺMCx?p쨏'J34HBu@>pHl8"d7BSA,]еcϔ8 Iz= q4x{xWS`>K؏@uTQxXH='K!V45#@(ڗkk4~TP7Qf !V<`ϫ 1~bWWI*ʮ5u~v^^:N @ON۵W5S}_\32 N"mUrfG,6]F ; EڹJKOuT^RW:-UA[v֫.Ume*)j=7ą5"$5f4%JՖ.NZ׵Bz"J;"6xNt͚yԻhZrNG>8]GU #mA,,;6wt\mV Rr"OȒ*A!n._nB%4ҞNّ8`_%jCAqX3b4lQ׵1Gv.PHbit-S؀nsͥ:jZK!סs(XZvZmiuz<<)גr=.B9ْV4bTZZ]ȿ_3]OTQǑUJש5i O*2=gK"åZ~Zti"8RJZJ#4 BvJtPեҲaXbZ[*~[9t'K+dV߫]O1=^b5[ZhQ,7_ZcuHA91{ ΅㤝eS4{zQ1Gt>C66ΌXr/ JGj_W~ IydiI?R=+Zް\K;zt*gqQJ^'.~5'1΄gu#zجŠ:xgF6_U&o2e4B3h@2*fJ6ܿe0HoBQ-Z|D bh2 H5g=P;Z8 =ftHzքb-°]?|;'iS!ZV( V'#jOmD;h'^:-]wBGG{xjx9.HTbvZ/Y -XH5̍0b:ZNFe_HkW$ĤhapqL?̔p2H*:8IHAU /Qn]1ɝPZZ>O$@LLKt 00OXlP,IKr([HYV.gt7ʿDr: r}\Ԭ&fz5 ."2M #Bjdgi)Lhaɘ.|OG@3AZ`vYgCc*oՂ@N *7C"[2Pד9-q/"'^c=HE']oI^ж^FZg.j9 4(!Ȋ`73'rx: ҰA To_.P5#.b?]L7 fיZۭ95A(6` 1[aWL 'rALg5wR/T#y+щ0hѤtCmo?VeyN~~Oċb/ jH\!P)lTCopWI.hP@}' FTgT$Wi(:V QZ:]1?*-.W94[@XowoN5sO dNrbxJ |4 #8'ӂx䔞s6\4tVjR%L$w_0Mן~#;uX/Qt~85FW˱RI/X!4jބ}a@L11~N8բlZ T[gQ5)ȌsXzo?Ѫ| y'&)xQا(5]1 f4C?lm=&$d)6՘U0Fn7Ypaq4?t`}@`:'cyr_>*JO=-بU{3xzE")4&x#ڈ5h/xAx֢:uwuC]#SE7-*]X\h=(92 خ4O} 02 i8eLZݧQMh,c "mW8=MxduLZvYnA*!m8hNh\r$;# nY%ocU~^TT x9+3h- 4AM 1q{qQjApeBl8^]=&ıG}-(٥a[eQ²,)Cbc}YboI, "H,12?dY hvwlt U٠ kr&ԝZMz'-1Ђ̢iVu2S} H N&jA`+ЈIJ9u~hwV;]'ae%H{nD.'~׬BnR7}j-^KI_[0! E5kGZU kUqD;$*sx3>C^< Bϧ0( ܀;N+ !ڬ/j<Mq6+4| mW0,w6ݞ_rvЪD,CHj4b֐Sf$zj0VJ-%ir̀ӎyt Xi/Ϳ֨qV~CJƣ{Ɏ~|9"L4 a'vaQieHx\&s~T}ڕl[x?Z=jb"Wkh"}5Z݄"%Eˌmt[Z&0YA[lό1O\[iQ~Eh6i!u~׬~ΥzaK!;}B%o!)|U%mш͹dsn^{e +^00ȇ1im^y^hAcliM@`_mNߪl|&(hqhXn͘븵d$[ΖoRQHYv}[;icxy [!(a/E VY^ ިwG&ݳ55#veu_(If :DyU* QO$ޛʦD`.i;ICp`!.UF|/2g4m"$cNG$Oӄ1NͲ #FrEczWxNݣ9BW>/al%ceh6!Eg}Wq6leO>fZ_mmoO1v3 $3 pm87%Nlz1|bԟ];HSNy@ ZNesx>W$ޜ}E{%F$]}{9Pco!o>eq\l@bJOs$~GPX 8hn"Qd !㘘$_aDl͊'9Þsr(OXs] Ezwq gvCNr C7ئ$ps&uX])A-}UNc:{a8lu0BnuWu^G0RtO xZaD?Nz4!8eӀnID8-{:GvIoe~o'%Aα}Ql3- lVasb6;@f< A&[Rjc 6 13 ЁŢgOGUZ귴WVU"*GL'`j;CcK?}]b˃0X'9tZo;"M$10 i]^s[UiN0^ޢ@DMUt&ѱx[L:F93pN*0\V-kfeH1|6']9yS|  /EsB㈷Þv1Mň/Ŏ ^8!ۈfpPSc (EWk?Pɴ`ӟ0"O>ЎDl2@}ꨍ7ހs    UBczpɅ':թkًiԗؗ ,e@ w=`b1'+ɜHm2.~RΌ^H" }Nx207>>.4="B:3(Y]ܷ8!36uD|EK4_W#jdap<^S3H("^cڔQ>g&T99nǑ- $zdWzt솔-e|vhqyPDF3oy1HX , d~*} &3 --$ R>ٲW5GyAXN`Ʉf{%e=Gxdg/i4W҆P6 su BdhOpn*ҕsi-Y}~{ht|N閦6y讪 -i'8Ijh}/R^G%9~3$Wv^xpx`vǹIH .@ I"O5:q4"3#FMIG`jx_-ȃ,{4g%*1ܐ 4AL@#rՆ "|]$9ՐA7cZqT#8f QRaQnĶtg ei3(1jM&v-C09/u PZX3|scM)j*L&$bOb:mQGLD8xp`G?X}n*vglq!M&An5ՅwO]}S%0G6ǣUٜXLy"^Ey?/[Fů=֡o$ȱ9Ҧl片ps*WPTڪz_tnݍ+uȨz=08xͺ<467㤷jhk ?>3׶^NgCbGz-v}I_4C XjjL9;p 0 B1H61Kr )rEHl ɚMc<(ԃ{Ιr8+I?8I>(v=d&rvivMN)t%fz£կ/9vD;k2*-SCt[xVTӒ{1XV8>2SO|\Zo-&Œ3x!6_x*Rd1z{U'ehFd{/V-KT[-zAwó˲>r9NW>'.KOCzrƷBM[sV.Wx^PK7S;5F7)q>}e =By8UH?RϓKѣ!ר7dXXݷηK87*-)75Bczq O K߮Jŵi8@<|+ҏ cAJ ,Svg$ŧ:3ևW&k)$CJ-Wq'8X 򐼩#$m`XkG@3$gW(30<'+j @Bf `G_ɰc93(^ᤖA%0Fn&BZxlD<Ւ΃\YztŲ69ee%x;`-!j-  o6әIkIW+))'_%:,|~AOhJϬTɸ|awYoV]4? l(+UZ J*7qQKLrMdh̩1ac3.][\=*_؞Eg,ƣy.J^(>g7?9Ĝ&iJ(B4,hF9԰+[Nګ8hxe SlHs$g¤T+ no;k;:5#}EP2mgI|&W{%#h`]baqE`׾1zM FM\uq"Yw.I'{})#Ž,ާmNEr&8uulh"gw[MrQ.8XܡY.D$Lk"pvya${A"S)lSfby|i#l1Cl=V;,f9WsROU]4ݙS\72<| eW{63A>''.!AOb\n#NM,ZV Lem>ˢːڸ1 *cCCteoO#D g>%yτKM`|^3ۗԇm=(ӑwEV 1.FH{ѡk4wE/tͺcoki };rQA:ѥNˀf=)XÔ& ,O{2uq02'V/z)TeXe@B0Ǘ+yU,21=Y{ږ zwJlZW0# "r^Oy'@҇ ?A7yI?v4j‡z;9hyT*SXo$&'lˊ[Fa$  ˊIr+܌2~ xf ,'Lk_$^9Fї : }X %a6̈Tnd8c #J' D[ %C<ΕԅޭѺŚWw4{;0cv| 9 QnV?WE;%V x[ΉjE/R$ːF`4cg-xH'TypʙC4lhJaUug0d\Yӫ4"s)&Y#0gYeG5 %3݋X~YexSk15jatێEX-׍#Pc ?@fhsbc QNM'f~f1f؆ 3$a&P̜93f.Έlq9Lчq0MiuILń,S6Y|ڷ_j/b( +G" Visڠ{%O)Tp`-)4{&/g7b<"O>Nc(ë ߟv*?2|fl* 2 d6|tԡ7zG6zҏTf/%aBCe > |ɑ#+N_#J|bs]{n5}.{?i8*(Sk:^hf>*nN/#x.B2GKIrmz&gAW*5T<}_%zD*2wx?N©8J֔}w8HQ5߿\(59-2D{g l4WK%DT[h@-Ht9yB9OK9y?-c9$˅..ɛXdf!i‚/* nN?rt*0U?Z`ymP V"2iBҷ"_Zfe}iѺn3O^4}Gm39#n~$fð l@1ǜopE#'3;c~UI>m2NsȽBk8~p‡tZ(1[JZջrzRM}7'tGZ˩ȦqdA/]٧ۑeEStEPs%I>:΂;n-#+)9gǽs"zKG^ĺ fR E45}V!\d"fKړWI,~+AQdA<bšQ::DXXTq{7t,JjHNbl|y-N)=q죠`b) 1\qZǐogC|*mʛt&̭䖕[IBz o%PsԌ3OrOUEh  ?l"kNC7pkAω=5շrwoLqYX7=O\J !r$seNOWC - :-䙮 dtԭtzmTQՈ4hXyZWC:#D~+QuH',fgx1x5}dUG%6.n!zjȮ֢3>IF^kt:tMJ\0qgH+&iL^s|EA"V8  g._G&afn,oQ UJH-.'mv^Dnmll戓H}J+pEϿhݫ&,-r٢8/le@∄_Cau%RO, (W"'}P Do l~0\e>0zyY~{Zr,, DOuщ3~0Qe^,~h´L>n{3;'7%t>9eF+13q93 _-y$ œ-7P|VW/ ujPwifB݀d{>% 4S'!_]n;y .ur{,+In1T|GR.ٺtֈ* fL/MފA)\ 0$O*ci=׉9s!H#zVw˘@ SAFETY013.A [EVERHART.JTDEMO]VDD64.ZIP;8AX5;10>9Qí[OLeH 갞7zVUB $7wq÷97 [HP"2n8䶷R?Gto?@~$Y DIٮ0ͭuyN3L9khe+`w7?~n4_}Љ<#\qϋ ~^کA a$_C-޳jvDW75>jI-e[f5/< u0$^C74fW'xp=`DynHxQ/ 3 NӨ'P_# |_.`r@f[<-"4kY^*o\3,cj  ℴt6Gfwf QR2̡JmA^Ӳ Ϳ..hQGȵ mI&ʎFb"C@#g(˸J|;#y=ZIUS9A>A774!@_YN>^/xmXfgL=Cpւ *É\ 5vn焷#}9:˙k4:{8.4A".Y ʄ%SA)d& |;>}9e8hbyv>0-M)F{H+G 5! dI~3 S#qu?6W;'Dok&g--O$yŗ9w9}Ye-?2(2fʰ9(rn$xOȿxCS.._úm'7Mu;/tЎ08|ZTUŠ3RT]6܊>oҬ3> &קC H9\%_2N\'gnq( J Doj iqYߥK\8!_$OB,q-ie{c+id[O9G-!^xFTB~2XK}m$\[#HK$dU%aٓi۪F@2 [ 7lZ}hIENy-~|e:I;ޝx'|7gb}djTm+zyn$NWK>}-N:VKzq(A=:&$"c]wmgHs941'yPTʾ’ŹڒDt=~T@DN%|ǒ7_ձ$Q޶vZxTEF& t>y=.DhEelg 'o\D;'B]f4kLTKDRG(r;Y&MվYv^!iMg2-ɵCh͝]vV$Tbc|ˣeo@^O3L *Zfb򕴓!>b9 sXX(͝43J =$r8GF| 1k~11ƹj¢ ɭ `q$kjYO8ʱ)F=)O,|car713ZSLږE+-X ֓T~v2!zOTtfnfX)Ah,򘒗*,{gı cͰ} .|(40LY#4dVV0`t\KxZ^I7nA[" ]e&gc2: 㪸!/f1{c<*4C_sLGn zC۪MTX$aW0.`cfӢx+)9!ԏ8A(9{pFp+ ō9" I,LQ97'8ur-;X\% XM:]aVv |v-:ӻ}=G;C`k3fFLDǾIWK\`7OXK4Mu|w8!8oU`sh(w!${1dEjgV\՟ۗ/_Z<ő:1Kjk^mqGvFLdE\&R[H]D$q@G|P#kcQF̈ϣM"݊9_%93_,ߪjz^tnٯn̗|8sNo?7h" 1D =Ƚa% ~d\Yv^# o?X,fk?;&%\VN 4Frpn(w̪w}nMv8 Y6JU2W4 ;Ahkso 3c'o}^Ly}A>rrbDWB7 bCOxἁ9>2WU1N@YK(#aA$J 4md8!q؎̈́1VTf,C{0mY~svWκ怃*KrPYGl?2 ݞ82\^M\#?0m¥;SKpAF DXfC<Ǭ38m> ܗrs'2 ,gЯxLFjblx0|svjCfIaPǭ[ !t'qcW,-7Q%\|f,= R͡F^{]ؓ El6MU\oPs .Kҏaq7Bo״yoJvULj>&z'NZCV_{Q^VGBlOI^c3nX?vb^T|xᢾ78͝f`jI}5cO*7Ʈ|U2;Jl~gkZH0!Fya}Q S깢T 敃&gjSNUOjK1 )b_^:ƜJ^P+1Ы ڤ>5X4H=Qb(.DW/!ൡ 1F)fYqr{ ,ErNIALG%M{*?0D {OEXZȶ{piֹY${LXhiś}ԃȔnFapq~̠6c|>mq3}kt+ ZQwY,m~|ߕG YQQ `C]b-YHt" hDSpS4Ibުl\|ZI0 %Neuc{$_dg=g,\gWˁMr[ 4WPԾY!Bf~ /fii\5r?7J^Mf^73 ]tLcSV2?'^ NEV sY,yVrRV?nFNC6gv|˺0\@8l n!)7FhL;wD&_Dxd!QwVaQom;yA<(?4"ßآst(,O%J:&.UE>6p#fGmRI8m[1L\C?duQ hV?.EJ&*ČCnrt;`˷? ]z&g =ĀgREWtwuֶ͛bjey s껙[>41"2`kO)ˡ7QqQ(5q it<~=C)Vƿ}.y" k<#}Խʭ#fw-qN0T} PFt@ûPKUO!,Otbvddriver_64.objIMVMSVX6A7IM$VFABPBm!ЦIMVFHC,;pIM%VDAT<%f{tۯ{IMVPROX'b10IMVRDT=Rf{ս\u}WZ,k[1$ge{Įh,-xR3mp;mp{Ӻɴ$!ɤ%0AL[ \O[J&1I I'&V6ۄ4u 19='/m|0zgΕKQ!ZhK$L/G޾ۯ{ہw\}sݍѦ?.ri4eRw3~5ŧ|1Y,hNp.Mzszm7ѻqmO=Gw+{#b?Abz|ݝ#>p۾ѹsх<򏷣Eُ:x{"zh?v/V29/bM2s_K^}dmGnmKKo_/[n]''_??xwۭGoYٷoSGYYGty嬾 >xou)|KSsd, _+ȟӯ&oy*n9|pGB_m5:Z:|:| ?}G%?~}B҃zs_n_󶥛Vn:t6%y;o?7{x8tgwVlփG+b78xxw,UoW}{,U~ݾtS?^;|te=CtZ#3|<% ǹ_ʿᕣ:w%y}?ճa+FxqÇn=s?3>U; ͸ljҌnqlo6wpc]'D.]/ܩC}[ȸt6Wq܍r⌋/:+ds9O* _^_t݊OoI?S|GJlFŏ6cd6& ^_bOoy}}+x}}kx}}x}}Lvvҿc6@HXD_;w!3~x}}㌏_7׷"׷&׷.7mI?H?J?Mq&#cl^_S?w!S[ 3>~l^_ߊO;p$3m^t] N䙼i6tK H?J?Nl^_^_^_^OD~&,כ#^oҏx K{g7MX7aGބz=כ#^oҏx K?&,ބW$Aބ3>_*fzכ#^oҏx K?&,ބz~MX7a;YGބz~MX^oٿk ^o"^o?Aބ3> z~MXɪK?&,Kכ#^oҏxu}ҏxJ2+#^ҏ/]oӊk-Aބ3>Eބ3~x g|z~MX7aGބ&,כ^Օ~MXכ#^oҏx K?&,7zL7O7ጟ ^op6ɪH?&,כ#^o3&,כ#^oҏx K!MX7a~'k,כx glx g|x gzVMX7aGބzóyNVK7aGބz&,כ#^oҏx K7ߺN7O*fz&,כ#^oҏx KQMX7aGބzټ~'k כ#^oҏx Kmכpo'כpƧכpO7ጏoބz;YuGބÀכ#^oҏx K?&,כ#^oҏx K?KGf(>7S7'o<=<dMX &,zg7aGބ=#^o&,כ#^oҏx Kބ~(Aބ3>Eބ3~x g|ټ~'"כ#^oҏx Kכ#^oҏx K?&,uMX7a~'k,כ M8M8SM8'כpz~MX7aGބf#^oҏx K?&,w^oҏx K?&,כzzbO7ጏ&,כ#^oҏx Kބz~MX7ao;YGބz~MX &W &)&M8? x K?&,dեzބz~MX7az~MX7aGބyNVW &)&M8?x;ҏxJ?+yWϿ#dy~O+zg^oL7aGބzބ>Aބ3>Eބ3~x g|f=#^oҏx K?&,z~MX7aGބכ#^oxNX7aKכp &)&M8ބz~MX7aټ~'%כ#^oҏx Kz~MX7aGބ/^o$כpƧd3~x g|W7aGބz~MX*&,כ#^oҏx K=yN@7aGބzx g ^o"^o?Aބ3>&,כ^U~MX? x K?&,כ#^oބz~MX7aټ~'+(Aބ3>Eބ3~x g|#כ#^oҏx K?&,? x K?K?;Y]G^W_G<=<dMXɏ^o'Y%כpƧכpO7ጏ|6ӪH?&,כ#^oכ#^oҏx K?&,mMX7a_zބOBK7O7ጟ ^ouMX7aGބz1Yҏx K?&,כx K?&,כ#^oSכpIz &)7}bVO7ጏ&&,כ#^oҏx Kބz~MX7a7}b#^oҏx K?&,? x gĘ ^o"^o?Aބ3>ۀכ#^oM%כMX7aGބz7aGބz~MXl~de ^o"^o?Aބ3> &,כ#^oҏx Kބz~o,Gބ z~MX'X_oI )̍ls'f3Aބ ^oL7aכ#^oҏx K?&,^oҏx K?7}b#^o73M8SM8'כp^oҏx K?&,כ?4Yҏx K?&,כw7aGބz~MXz>:Aބ3>_2~x g|0&,כ#^oҏx K1MX7aGބzM%כ#^oҏx K#כp &)&M8 x K?&,Yҏx Kכ#^oҏx K?&,=MX7aGބz29Yg'כpƧכpO7ጏ)&,כ#^oҏx K?ބz~o,Gބ1MX7aGބzx g &)& _7}N#^ҏxJ?+[L7ay&כ<MXI x K?&,Yҏx K^o;Gx g|x gzqMX7aGބzM%כ#^oҏx Kכ#^oҏx K?&,ބwz>1+'כp z~MX7aGބsכ#^oҏx K?&,O̒~MX7aGބ_^o;Px g|x gz^oҏx KlM%כ[MX7aGބz'7aGބz~MXl~'feR &)&M87aGބz~MXz~MXsz&,כ#^oҏx K^o ^o"^o?Aބ3>ɒ~MX7aGބ׿,#^ҏxJӀ#H 07}b<MX/^o™ ^o"^o?Aބ3>%MX7aGބz?Yҏx K?&,כ7aGބz~MXx gWx g| MM8x K?&,כ#^oˀכ#^oҏx K?&,7}b#^oҏx K?&,x g~x g|x gzW7aGބ>1K7aכ#^oҏx K?&,#MX7aGބz_oĬJ7O7ጟ ^o'MX7aGބzg7aGބ6_9Yҏx Ksכ#^oҏx K?&,zzz &7}N#^oҏx K?&,x K?&,כ#^oҿx K?K?7}N#^_JߌOϿdM8 x 3Aބ ^oҏx Ko,Gބz~MXO^oҏx K?&,כwM8M8SoĬ ^oz~MX7aGބKכ#^oҏx K?&,O̒~MX7aGބˀכpz%כpƧכpO7ጏx K?&,Yҏx KW7aGބz~MXބz~MX7aa62?Aބ3>Eބ3~x g|5MX7aGބz^oҏx K?7}b#^oҿx K?&,כ#^o?7dכpƧכpO7ጏs6sz~MX7a-MX7aGބz7aGބ6ɒ~MXz~o֏x g|x;?A3>#^ҏxJ?'L~g ^oL7ay&כO7aGބz~MXx 7O2~x g|כ#^oҏx K?&,x K?&,כ#^oO̒~MX7aGބ^o7O7ጟ ^o z~MXzބz~MX7a^oҏx K?&,כOz֏x g|x gz7aGބz~MXz~MXz7aGބz~MXz@֏x g|x gz۳M%כ#^oҏx Kˀכ#^oҏx K?&,ބz~o,GބzdכpƧכpO7ጏ^oҏx K?&,׿,[g>'K_Gzyg׷=w>y$3Aބ ^oL7ay&7Y?&?_goj哐_}$d||O_o^|5ZFDg|-NÈ쟯=,?~##_-F<Ⱦێzۖ=IW3zu;ne"<[Wnw$Bt~ \^wFmV;|derx]8[tSGYqv~s[{ G9\{믑Z:|:_C֥}չwv|}79#.r~+ '-w=-Eײcɵ?|}ޫ}=9l>ݺw_rjQ5!꿮 /^Y00EI Lt Lf``Ffl`&F Ll`*f`&10-10]S⫝S40 Lt Lj`ftA[W9Eh`bS105S70i DΏ)T L Lb`Zc`&50320c31010EI Lt Lf``Ffl`&&:p~ Lb`jn`20507S40 Lt Lj`fd`fb`  Ll`*f`&10-10]mW`8Eh`bS105S70i D10EI Lt Lf``Ffl`&&k8?h`Ⳙ9ss>s?|2^G#ow$swޢ֜EsN[=b^|ML]Q}n!ѧ(F>Qz"D9zso7zص艭O//D_}x.D\p2{;w~[o@BcvֹKo-T~$śo/;Q9_z<st-di>ݥ7|0?LuNK˫/=CWoG|5>e?~α|u8yqshJ+7q#O,2}?_O_{ї8o=#ś\tZяۋv~;?svi8wΉハz^8u}}q\|zoCo;Җ?_#~u>v=q[+bz2=^%֢v5gѧ>ۈl= @3g[ѷ?κO=ԵuMh$z~R4?>fk-OkanW[sC|'|Վ,fO/ov@=tvuP79/[h"4OTL>~^o}'zߡ=ܕ' s_}K|hN|~?K|-@ SAFETY013.A [EVERHART.JTDEMO]VDD64.ZIP;8AX62;9> ѧ>vũkIk?;_2/e]_wcWl:?Swˣg{;y%3Qӻ{a>w;~X}k~~+Ss/hGW|ˣo|6~nO<_Ox3x?&i>q7O3/r?Ǟs+[./%їiv~f>u;~f?=qjw"S@6{Γ7MD =hƯpO%y1U:=}t׹#Ns4GOm;vͶ҉ߠ{oǢWF|sx:cFұ7FwuX:Ac]'V҅ui[}oU[>~Ft>I9{6=c'' ?O38/>?{[>}g~ ?L~kf?Ms3r~p6{AgǨDt}gNاG|om>z.>@kh0u?Ngif_y2Bӥ ;%uD'?NINO~?O~y_sv#N9NU_v_r?NINO~?O~y_sv#N9NU_v_r?NINO~?O~y_sv#N9NU_v_r?NINO~?O~y_sv#N9NU_v_rNO~O~'<䗝qKNOOyɟnuCy_wO?tNi{NOtp<:Qz$ڦ}ԣ[ _:E:֞{u{om%v]ǶͿpƫK'v}e?w}vՖmǶG[O ^xds/~|wt,}`(}.M<܏O<:7GO\}yi!/E~eߦr =s9N8{ۣ]>~d}'whW^~zDEO+ѵ:r׌?e|ᕣ:tgaz~-ʘ9hsT}hO5s^Tm [O¾}w]Y޽Vξ;SЈgx[n}s[vbqtz9k[nDgx'T#z~=۪͜y}}K՛x= {F>{.ϟjen_5S}{,UܧA3r=qOW{3g` ̶݈jVq;)sڞft۫Wj}̭n~,Ko9]N?/͜ gf;[/?=zKѣqr'T$!OnϜمyqmqlwvжh{R ^̉/8^}GN_م̹mysmqBHնz=xCKvQTAv=qVTz3sgݓ+]ӻ2Fj{_6stz'Gvs=2y߬ьںkw_}˙ПrR.OƧoRb=,/=r;s߉pn$/|ڽ~Y蝵#痜@܌_~!*g0+D /]agqw~mϸ+ز0Y +lfl]6|=>9ײvf7k_Z}Hhn֙\ OL!@fbWə2ÜIW_y*z#*ȴCd2QxBd2RcBd@f#g;)ʙ2ÜI!=酞?OL;@z ='@z S=); =)L3Fux~r&0gRCdzOz =i4Bϟ'@z S=)'@z 3yd6r& I 3̙2^8@f#g'ə2ÜI!=酞OL;@z =Oz S =)ȔBz S=29ə2ÜI!=酞'@z =i_'@z S=)z S=Z'g s&L?@z~vL3@z~ jL9@z=@f#gux~r&0gRCdzz =i4B'@z S=)OL!@fyd6r&> O$L ~L/wx~Bdڡ2F">*؈*az~QoQY\j +A^OOtH$xr߀>xa<y{g\Sl dJ tp%0gX (YʡVABEX?kp&~lP-Vu&Y;hsL7~˱F ~ex7U E79 kZs{m' X9nz],x' -y?qi޵9>=}/3!;""l}gP(N`DU߾ZD@h_F[bn_Yt)<d7K~:>/r%̆.++ueK޲r\^Y8]pzŏUF8 6]?jV؈t޷%Ud9DkJsg} þdFPKP!,B asnvd.exeIMVMSVX6A7IM%VFABPBACm!ЦIMVFHC,;(0E IM%VDAT<%`{Ք{IMVPROX'b10IMVRDT=R`{PKns 5~: asnvd_64.marIMVMSVX6A7IM%VFABPBA@m!ЦIMVFHC,;  vIM#VDAT<%`ŋ2$Y1IMVPROX'b10IMVRDT=R`ŋ2PKxO!< ;Yasnvd_64.objIMVMSVX6A7IM#VFABPBCm!ЦIMVFHC,;0?IM%VDAT<%ͱ{>ɕ{IMVPROX'b10IMVRDT=Rͱ{PKP!ٻ d pasnvd_cld.objIMVMSVX6A7IM#VFABPBm!ЦIMVFHC,;;p IM%VDAT<%y{4{{IMVPROX'b1@ SAFETY013.A [EVERHART.JTDEMO]VDD64.ZIP;8AX62;9t0IMVRDT=Ry{PKs NC sasnvd_cld_64.cldIMVMSVX6A7IM%VFABPBA@m!ЦIMVFHC,; PIM%VDAT<%ݡjhojIMVPROX'b10IMVRDT=RݡjPKM4$ =|asnvd_s264.objIMVMSVX6A7IM#VFABPBCm!ЦIMVFHC,;0?cIM%VDAT<%ԯ閍IMVPROX'b10IMVRDT=RPKєs :8聹vddriver.buildIMVMSVX6A7IM%VFABPBA@m!ЦIMVFHC,; q|IM#VDAT<%klIMVPROX'b10IMVRDT=RkPK P!0#]>U> ߔvddriver.exeIMVMSVX6A7IM%VFABPBAm!ЦIMVFHC,;(0Q IM%VDAT<%uj{4mJ{IMVPROX'b10IMVRDT=Ruj{PK[^ mwN"vddriver_64.marIMVMSVX6A7IM$VFABPB@m!ЦIMVFHC,;  }IM%VDAT<%k{ՔX)IMVPROX'b10IMVRDT=Rk{PKUO!,Otb#vddriver_64.objIMVMSVX6A7IM$VFABPBm!ЦIMVFHC,;pIM%VDAT<%f{tۯ{IMVPROX'b10IMVRDT=Rf{PKs ?֖X,vddriver_64.optIMVMSVX6A7IM%VFABPBA @m!ЦIMVFHC,; <  IM%VDAT<%0s(RsIMVPROX'b10IMVRDT=R0sPK 7*[EVERHART.JTDEMO]VDDRIVER.MAR;4+,.Q/ 4QQO- 0123 KPWOP56m#27p,Z89GHJ4+ .TITLE VDDRIVER - VAX/VMS VIRT DISK DRIVER .IDENT 'V4g';I; Changed by making it fd1 type and adding nodename prefix characteristic/; so that hopefully it will now work with MSCP.;K; Added save/restore of IRP$L_MEDIA for second I/O completion (by VDDRIVER)N; so that error path code that assumes this field unaltered will work. 4/14/89; ;md$stat=1 ;d$$bug=1;x$$$dt=1 ;call xdeltaF; Note: define symbol VMS$V5 to assemble in VMS V5.x or later. Default>; assembly without this definition produces a VMS V4.x driver.; Glenn C. Everhart, 2/2/1989*; Merged in some of Marty Sasaki's changesvms$v5=1(; define v5$picky also for SMP operation v5$picky=1 ;USAPADDR=0 ;d$$bug=0; ; FACILITY:; 6; VAX/VMS VIRTUAL DISK DRIVER USING CONTIGUOUS FILES.; ; AUTHOR:; ; G. EVERHART;; ; ABSTRACT:; <; THIS MODULE CONTAINS THE TABLES AND ROUTINES NECESSARY TO<; PERFORM ALL DEVICE-DEPENDENT PROCESSING OF AN I/O REQUEST(; FOR VMS VIRTUAL DISKS ON CONTIG FILES.;; Note:=; This driver has an FDT table that will look just like other5; disks for everything, but will NOT do buffered I/O.;; In its' FDT routines, which will be dummies, it will just9; modify logical block numbers in the I/O packets, assume=; the buffered bit in irp$w_STS clear (like all disk drivers 7; except floppy drivers), do a range check to make sure=; the LBN used is in the legal range for this particular unit8; ov VD:, and reset things to call the real driver's FDT8; routines and let IT do the work. It will unbusy itself; before losing control.2; The idea is that only I/O "gets at the physical;; storage", so only that need be munged. Since this happens9; only for read/write logical/physical, we just leave OUR=; FDT routines in there for everything else. In just assuming>; the buffered bit in the I/O we MAY mess up some quotas (this<; will eventually get cleaned up), but won't lose buffers or?; otherwise mess up things. Since most drivers have nonbuffered;; I/O, we'll usually be just fine. (Disk drivers, that is.);; (In fact only RX01 class real drivers are buffered. Don't; put vd: units on those!!!)7; To call the "real" FDT routines we'll just reset the=; registers (and the IORP) to the real device and return. The@; exec routines that handle FDT routines will take it from there?; and do the FDT processing in the real driver. We just have to; let them work...5; The FDT routines are called from SYSQIOREQ.MAR for; future reference.8; The main work is in the start-IO area. There, the I/O=; packet is edited to relocate the I/O to the contiguous fileB; and sent to the real driver. First however we bash the IRP$L_PID:; field to get control back (via jsb) here. At that point,B; the UCB and IRP pointers are restored, the IRP returned to point?; at VD: (and the correct unit), and the normal IOC$REQCOM callC; is made to finish off the I/O packet in VD: context. (This allows>; any i/o splits to be handled correctly and SHOULD allow MSCP>; to work OK if enabled.) The vd: unit stays busy until reqcom?; calls free it. Normal reqcom completion in the host will freeB; THAT unit also; we don't need to mess with it. The VD: unit willA; eventually RSB its way back to normal processing in the rest of; VMS. ;>; The logical I/O FDT entry has been commented out to keep the@; operation simpler. It is OK as is, but things are cleaner with*; NO prospect of clobbering any arguments.;G; Note that ASNVD simply inserts a phony device structure for VD: unitsF; of 64 sectors per track, one track/cylinder, n cylinders. INIT seems0; to need this, though physical I/O is disabled.;-- .PAGE& .SBTTL EXTERNAL AND LOCAL DEFINITIONS; ; EXTERNAL SYMBOLS;  .library /SYS$SHARE:LIB/*; $ADPDEF ;DEFINE ADAPTER CONTROL BLOCK) $CRBDEF ;DEFINE CHANNEL REQUEST BLOCK# $DYNDEF ;define dynamic data types $DCDEF ;DEFINE DEVICE CLASS% $DDBDEF ;DEFINE DEVICE DATA BLOCK* $DEVDEF ;DEFINE DEVICE CHARACTERISTICS) $DPTDEF ;DEFINE DRIVER PROLOGUE TABLE( $EMBDEF ;DEFINE ERROR MESSAGE BUFFER( $IDBDEF ;DEFINE INTERRUPT DATA BLOCK% $IODEF ;DEFINE I/O FUNCTION CODES$ $DDTDEF ; DEFINE DISPATCH TBL... $ptedef $vadef& $IRPDEF ;DEFINE I/O REQUEST PACKET $irpedef& $PRDEF ;DEFINE PROCESSOR REGISTERS& $SSDEF ;DEFINE SYSTEM STATUS CODES& $UCBDEF ;DEFINE UNIT CONTROL BLOCK* $VECDEF ;DEFINE INTERRUPT VECTOR BLOCK $pcbdef $jibdefp1=0 ; first qio paramp2=4p3=8p4=12p5=16p6=20 ;6th qio param offsets# .IF DF,VMS$V5 ;VMS V5 + LATER ONLY $SPLCODDEF $cpudef .ENDC; 2; UCB OFFSETS WHICH FOLLOW THE STANDARD UCB FIELDS; ( $DEFINI UCB ;START OF UCB DEFINITIONS2;.=UCB$W_BCR+2 ;BEGIN DEFINITIONS AT END OF UCB*.=UCB$K_LCL_DISK_LENGTH ;v4 def end of ucb8; USE THESE FIELDS TO HOLD OUR LOCAL DATA FOR VIRT DISK.,$DEF UCB$W_VD_WPS .BLKW 1 ;Words per sector.1$DEF UCB$W_VD_CS .BLKW 1 ;CONTROL STATUS REGISTER4$DEF UCB$W_VD_DB .BLKW 1 ;UCB ADDRESS OF HOST DRIVER%$DEF UCB$W_VD_DPN .BLKW 1 ;(LONGWORD)8$DEF UCB$L_VD_DPR .BLKL 1 ;START LBN OF HOST CONTIG FILE$DEF UCB$L_VD_FMPR .BLKL 1 ;1$DEF UCB$L_VD_PMPR .BLKL 1 ;PREVIOUS MAP REGISTER0$DEF UCB$B_VD_ER .BLKB 1 ;SPECIAL ERROR REGISTER .BLKB 1 ;Reserved.'$DEF UCB$B_VD_LCT .BLKB 1 ;LOOP COUNTER5$DEF UCB$B_VD_XBA .BLKB 1 ;BUS ADDRESS EXTENSION BITS-$DEF UCB$W_VD_PWC .BLKW 1 ;PARTIAL WORD COUNT/$DEF UCB$W_VD_SBA .BLKW 1 ;SAVED BUFFER ADDRESS6$DEF UCB$L_VD_XFER .BLKL 1 ;TRANSFER FUNCTION CSR BITS3$DEF UCB$L_VD_LMEDIA .BLKL 1 ;LOGICAL MEDIA ADDRESS@$DEF UCB$Q_VD_EXTENDED_STATUS ; Area into which we do READ ERROR .BLKQ 1 ; REGISTER command.=$DEF UCB$Q_VD_SVAPTETMP ; Area in which we save UCB fields -% .BLKQ 1 ; SVAPTE, BOFF, and BCNT.=$DEF UCB$L_VD_MAPREGTMP ; Area in which we save CRB fields -+ .BLKL 1 ; MAPREG, NUMREG, and DATAPATH.D$DEF UCB$L_VD_SAVECS .BLKL 1 ; Area in which we save CS and DB regs.K; Add our stuff at the end to ensure we don't mess some fields up that some; areas of VMS may want.*$DEF UCB$HUCB .BLKL 1 ;ADDRESS OF HOST UCB'$DEF UCB$HLBN .BLKL 1 ;LBN OF HOST FILE.$DEF UCB$HFSZ .BLKL 1 ;SIZE OF HOST FILE, BLKS;$DEF UCB$PPID .BLKL 1 ;PID OF ORIGINAL PROCESS FROM IRQ BLKH; NOTE: It is important to ENSURE that we never clobber IRP$L_PID twice!F; therefore, adopt convention that UCB$PPID is cleared whenever we put?; back the old PID value in the IRP. Only clobber the PID where; UCB$PPID is zero!!!-$DEF UCB$stats .BLKL 1 ;STATUS CODE SAVE AREA0$DEF UCB$OBCT .BLKL 1 ;STORE FOR IRP$L_OBCNT too0$def ucb$lmedia .blkl 1 ;storage for IRP$L_MEDIA,$def ucb$owind .blkl 1 ; store irp$l_wind...)$def ucb$osegv .blkl 1 ; and irp$l_segvbnA; Since I/O postprocessing on virtual or paging I/O makes lots of>; assumptions about location of window blocks, etc., which are@; not true here (wrong UCB mainly), we'll bash the function code>; we send to the host driver to look like logical I/O is being@; done and save the real function code here. Later when VD: does@; I/O completion processing, we'll replace the original functionC; from here back in the IRP. This will be saved/restored along withD; ucb$ppid (irp$l_pid field) and so synchronization will be detected; with ucb$ppid usage.E; define extra fork blks to try to avoid double forking possibilities4$def ucb$l_vd_host_descr .blkl 2 ; char string descr$def ucb$vdcontfil .blkb 80;($DEF UCB$K_VD_LEN .BLKW 1 ;LENGTH OF UCB!;UCB$K_VD_LEN=. ;LENGTH OF UCB% $DEFEND UCB ;END OF UCB DEFINITONS  .SBTTL STANDARD TABLES; ; DRIVER PROLOGUE TABLE; >; THE DPT DESCRIBES DRIVER PARAMETERS AND I/O DATABASE FIELDSA; THAT ARE TO BE INITIALIZED DURING DRIVER LOADING AND RELOADING;  .PSECT $$$105_PROLOGUE VD_UNITS=64VD$DPT:: DPTAB - ;DPT CREATION MACRO$ END=VD_END,- ;END OF DRIVER LABEL0 ADAPTER=NULL,- ;ADAPTER TYPE = NONE (VIRTUAL)' FLAGS=DPT$M_SMPMOD, - ;SET TO USE SMP( DEFUNITS=32,- ;UNITS 0 THRU 1 thru 31' UCBSIZE=UCB$K_VD_LEN,- ;LENGTH OF UCB. MAXUNITS=VD_UNITS,- ;FOR SANITY...CAN CHANGE NAME=VDDRIVER ;DRIVER NAME2 DPT_STORE INIT ;START CONTROL BLOCK INIT VALUES8 DPT_STORE DDB,DDB$L_ACPD,L,<^A\F11\> ;DEFAULT ACP NAME3 DPT_STORE DDB,DDB$L_ACPD+3,B,DDB$K_PACK ;ACP CLASS .IF NDF,VMS$V52 DPT_STORE UCB,UCB$B_FIPL,B,8 ;FORK IPL (VMS V4.X)" .IFF ;DEFINE FOR VMS V5.X & LATERG DPT_STORE UCB,UCB$B_FLCK,B,SPL$C_IOLOCK8 ;FORK IPL (VMS V5.X + LATER) .ENDC?; NOTE THESE CHARACTERISTICS HAVE TO LOOK LIKE THE "REAL" DISK.8 DPT_STORE UCB,UCB$L_DEVCHAR,L,- ;DEVICE CHARACTERISTICS ; RANDOM ACCESS9 DPT_STORE UCB,UCB$L_DEVCHAR2,L,- ;DEVICE CHARACTERISTICS5 ; Prefix name with "node$" (like rp06)7 DPT_STORE UCB,UCB$B_DEVCLASS,B,DC$_DISK ;DEVICE CLASS: DPT_STORE UCB,UCB$W_DEVBUFSIZ,W,512 ;DEFAULT BUFFER SIZEE; FOLLOWING DEFINES OUR DEVICE "PHYSICAL LAYOUT". It's faked here andA; this structure (64 sectors/trk, 1 trk/cyl, nn cylinders) forcesB; VD: units to be in multiples of 64 blocks. It can be modified asB; appropriate. However, recall that one has 1 byte for sectors/trkA; and 16 bits for cylinder number and 1 byte for tracks/cylinder.D; The current structure allows vd: units as large as 65535*64 blocksH; (about 4 million blocks, or 2 gigabytes), which is probably big enoughG; for most purposes. The actual size is set up in ASNVD which finds theI; number of cylinders to "fit" in the container file. For emulating otherL; ODS-2 volumes, the appropriate physical structure should be emulated also.H; NO logic in this driver depends on this stuff. It just has to be there!; to keep INIT and friends happy.+ DPT_STORE UCB,UCB$B_TRACKS,B,1 ; 1 TRK/CYL? DPT_STORE UCB,UCB$B_SECTORS,B,64 ;NUMBER OF SECTORS PER TRACK9 DPT_STORE UCB,UCB$W_CYLINDERS,W,16 ;NUMBER OF CYLINDERSC; FAKE GEOMETRY TO MAKE TRANSLATION EASIER. HAVE PRIV'D IMAGE LATERF; RESET THE UCB$W_CYLINDERS TO WHATEVER'S DESIRED. JUST MAKE SURE IT'SA; A MULTIPLE OF 64 BLOCKS IN SIZE, WHICH OUGHT TO BE GOOD ENOUGH.* DPT_STORE UCB,UCB$B_DIPL,B,21 ;DEVICE IPL7 DPT_STORE UCB,UCB$B_ERTMAX,B,10 ;MAX ERROR RETRY COUNTF DPT_STORE UCB,UCB$W_DEVSTS,W,- ;INHIBIT LOG TO PHYS CONVERSION IN FDT ;...;?; don't mess with LBN; leave alone so it's easier to hack on...;6 DPT_STORE REINIT ;START CONTROL BLOCK RE-INIT VALUESQ; DPT_STORE CRB,CRB$L_INTD+VEC$L_ISR,D,VD_INT ;INTERRUPT SERVICE ROUTINE ADDRESSC DPT_STORE CRB,CRB$L_INTD+VEC$L_INITIAL,- ;CONTROLLER INIT ADDRESS D,VD_ctrl_INIT ;...= DPT_STORE CRB,CRB$L_INTD+VEC$L_UNITINIT,- ;UNIT INIT ADDRESS D,VD_unit_INIT ;...0 DPT_STORE DDB,DDB$L_DDT,D,VD$DDT ;DDT ADDRESS- DPT_STORE END ;END OF INITIALIZATION TABLE; ; DRIVER DISPATCH TABLE; >; THE DDT LISTS ENTRY POINTS FOR DRIVER SUBROUTINES WHICH ARE"; CALLED BY THE OPERATING SYSTEM.; ;VD$DDT: DDTAB - ;DDT CREATION MACRO DEVNAM=VD,- ;NAME OF DEVICE' START=VD_STARTIO,- ;START I/O ROUTINE0 FUNCTB=VD_FUNCTABLE,- ;FUNCTION DECISION TABLE-; CANCEL=0,- ;CANCEL=NO-OP FOR FILES DEVICE$; REGDMP=0,- ;REGISTER DUMP ROUTINE$; DIAGBF=0,- ;BYTES IN DIAG BUFFER ERLGBF=0 ;BYTES IN ;ERRLOG BUFFER; ; FUNCTION DECISION TABLE; 6; THE FDT LISTS VALID FUNCTION CODES, SPECIFIES WHICH4; CODES ARE BUFFERED, AND DESIGNATES SUBROUTINES TO2; PERFORM PREPROCESSING FOR PARTICULAR FUNCTIONS.; VD_FUNCTABLE:# FUNCTAB ,- ;LIST LEGAL FUNCTIONS ; MOUNT VOLUME#; no-op phys I/O for a test here...! FUNCTAB ,- ;BUFFERED FUNCTIONS ; MOUNT VOLUME. FUNCTAB VD_ALIGN,- ;TEST ALIGNMENT FUNCTIONS# ADVBLK,- ; READ VIRTUAL BLOCK READPBLK,-; WRITEPBLK,-$ WRITELBLK,- ; WRITE LOGICAL BLOCK# WRITEVBLK- ; WRITE VIRTUAL BLOCK >) functab vd_format,- ;point to host disk K; NOTE SEPARATE CALL FOR PHYSICAL I/O SO WE CAN JUST CONVERT TO LOGICAL ANDG; DO OUR THING... CONVERT TO A LOGICAL QIO THERE FOR "REAL" DRIVER ALSOA; SO IT CAN DO CONVERSION TO ITS IDEA OF PHYSICAL IF IT WISHES...;D; LEAVE NORMAL ACP CALLS IN SO FILE STRUCTURED STUFF ON OUR VD: UNIT; WILL WORK OK.;( FUNCTAB +ACP$READBLK,- ;READ FUNCTIONS# * FUNCTAB +ACP$WRITEBLK,- ;WRITE FUNCTIONS% ) FUNCTAB +ACP$ACCESS,- ;ACCESS FUNCTIONS2 , FUNCTAB +ACP$DEACCESS,- ;DEACCESS FUNCTION ) FUNCTAB +ACP$MODIFY,- ;MODIFY FUNCTIONS' & FUNCTAB +ACP$MOUNT,- ;MOUNT FUNCTION ; MOUNT VOLUMEC FUNCTAB +EXE$LCLDSKVALID,- ;LOCAL DISK VALID FUNCTIONS6 ;PACK ACKNOWLEDGE3 FUNCTAB +EXE$ZEROPARM,- ;ZERO PARAMETER FUNCTIONS ; AVAILABLE0 FUNCTAB +EXE$ONEPARM,- ;ONE PARAMETER FUNCTION * FUNCTAB +EXE$SENSEMODE,- ;SENSE FUNCTIONS' ' FUNCTAB +EXE$SETCHAR,- ;SET FUNCTIONS#  .PAGE .PSECT $$$115_DRIVER .SBTTL FDT Routines;++;7; vd_format - point to proper location on the host disk;F; With no function modifiers, this routine takes as arguments the nameE; of the host disk (the real disk where the virtual disk will exist),B; the size of the virtual disk, and the LBN where the virtual diskE; will start. After these are set up, the device is put online and is; software enabled.;D; This routine does virtually no checking, so the parameters must be ; correct.; ; Inputs:>; p1 - pointer to buffer. The buffer has the following format:?; longword 0 - starting LBN, where the virtual disk starts; on the real disk.@; longword 1 - virtual disk length, the number of blocks in; the virtual disk.@; longword 2 through the end of the buffer, the name of the-; virtual disk. This buffer must be blank$; padded if padding is necessary;; p2 - size of the above buffer;-- vd_format:< bicw3 #io$m_fcode,irp$w_func(r3),r0 ;mask off function code) bneq 20$ ;branch if modifiers, special);thus, normal io$_format will do nothing. rsb ;regular processing10$:+ movzwl #SS$_BADPARAM,r0 ;illegal parameter clrl r1 jmp g^exe$abortio20$: movl p1(ap),r0 ;buffer address" movl p2(ap),r1 ;length of buffer: jsb g^exe$writechk ;read access? doesn't return on error5 clrl irp$l_bcnt ;paranoia, don't need to do this...$ movl p1(ap),r0 ;get buffer address" movl (r0)+,- ;move starting lbn ucb$hlbn(r5) blss 10$% movl (r0)+,- ;size of virtual disk ucb$hfsz(r5) bleq 10$# movl (r0),- ;name of "real" disk ucb$l_vd_host_descr+4(r5)5 subl3 #8,p2(ap),- ;set length of name in descriptor ucb$l_vd_host_descr(r5) bleq 10$ ;bad length4 moval ucb$l_vd_host_descr(r5),r1 ;descriptor for...- jsb g^ioc$searchdev ;search for host device! blbs r0,30$ ;branch on success= movzwl #ss$_nosuchdev+2,r0 ;make an error, usually a warning clrl r1$ jmp g^exe$abortio ;exit with error30$:- addl3 ucb$hfsz(r5),- ;end of virtual device ucb$hlbn(r5),r02 cmpl ucb$l_maxblock(r1),r0 ; < end of real disk? blss 10$$ movl r1,ucb$hucb(r5) ;stash the ucb2 clrl ucb$ppid(r5) ; mark driver free of old pids2 bisw #ucb$m_valid,ucb$w_sts(r5) ;set volume valid2 bisw #ucb$m_online,ucb$w_sts(r5) ;set unit online4 movl ucb$l_irp(r5),r3 ;restore r3, neatness counts! movzwl #ss$_normal,r0 ;success' jmp g^exe$finishioc ;wrap things up.) .SBTTL CONTROLLER INITIALIZATION ROUTINE; ++; 2; VD_ctrl_INIT - CONTROLLER INITIALIZATION ROUTINE; ; FUNCTIONAL DESCRIPTION:; noop ; INPUTS:; R4 - CSR ADDRESS; R5 - IDB ADDRESS; R6 - DDB ADDRESS; R8 - CRB ADDRESS; +; THE OPERATING SYSTEM CALLS THIS ROUTINE:; - AT SYSTEM STARTUP; - DURING DRIVER LOADING(; - DURING RECOVERY FROM POWER FAILURE<; THE DRIVER CALLS THIS ROUTINE TO INIT AFTER AN NXM ERROR.;--.VD_ctrl_INIT: ;vd CONTROLLER INITIALIZATION) CLRL CRB$L_AUXSTRUC(R8) ; SAY NO AUX MEM RSB ;RETURN .PAGE- .SBTTL INTERNAL CONTROLLER RE-INITIALIZATION; ; INPUTS:; R4 => controller CSR (dummy) ; R5 => UCB; ctrl_REINIT: RSB ; RETURN TO CALLER .PAGE# .SBTTL UNIT INITIALIZATION ROUTINE>; MEDIA - MSCP media identifier to VMS device type conversion;; Functional description:;D; This macro produces one entry in the MSCP media identifier to VMS ; device type conversion table.; ; Parameters:;@; dd the two character prefered device controller name ( the DD ; part of DDCn )/; devnam the hardware device name ( e.g. RA81 )H; dtname if DT$_'devnam' is not a legal VMS device type, this parameter @; gives the correct VMS device type for the device ( should be /; used only when DT$_'devnam' is not correct );- .MACRO MEDIA DD, DEVNAM, DTNAME $$BEGIN$$=-1 $$MEDIA$$=0$$S$$=27 .IRPC $$L$$,

 $$TEMP$$ = ^A/$$L$$/ - ^X40 .IF GT $$TEMP$$+ $$MEDIA$$ = $$MEDIA$$ + <$$TEMP$$ @ $$S$$> .ENDC $$S$$ = $$S$$ - 5 .ENDR .IRPC $$L$$, .IF GE <$$S$$ - 7> $$TEMP$$ = ^A/$$L$$/ - ^X40 .IF GT $$TEMP$$+ $$MEDIA$$ = $$MEDIA$$ + <$$TEMP$$ @ $$S$$> .IF_FALSE, .IIF LT $$BEGIN$$, $$BEGIN$$ = <17-$$S$$>/5 .ENDC $$S$$ = $$S$$ - 5 .ENDC .ENDR! .IIF LT $$BEGIN$$, $$BEGIN$$ = 3) $$N$$ = %EXTRACT( $$BEGIN$$, 3, DEVNAM ) $$MEDIA$$ = $$MEDIA$$ + $$N$$; .LONG $$MEDIA$$ .ENDM MEDIA;++; ,; VD_unit_INIT - UNIT INITIALIZATION ROUTINE; ; FUNCTIONAL DESCRIPTION:; $; THIS ROUTINE SETS THE VD: ONLINE.; +; THE OPERATING SYSTEM CALLS THIS ROUTINE:; - AT SYSTEM STARTUP; - DURING DRIVER LOADING(; - DURING RECOVERY FROM POWER FAILURE; ; INPUTS:; 0; R4 - CSR ADDRESS (CONTROLLER STATUS REGISTER)(; R5 - UCB ADDRESS (UNIT CONTROL BLOCK); R8 - CRB ADDRESS; ; OUTPUTS:; ; THE UNIT IS SET ONLINE.0; ALL GENERAL REGISTERS (R0-R15) ARE PRESERVED.; ;-- MEDIA VD,RP06 ;define media ID(VD_unit_INIT: ;vd UNIT INITIALIZATION>; Don't set unit online here. Priv'd task that assigns VD unit<; to a file does this to ensure only assigned VDn: get used.:; BISW #UCB$M_ONLINE,UCB$W_STS(R5) ;SET UCB STATUS ONLINE;limit size of VD: data buffersvd_bufsiz=81929 movl #vd_bufsiz,ucb$l_maxbcnt(r5) ;limit transfers to 8k9 MOVB #DC$_DISK,UCB$B_DEVCLASS(R5) ;SET DISK DEVICE CLASSC; NOTE: we may want to set this as something other than an RX class>; disk if MSCP is to use it. MSCP explicitly will NOT serve an<; RX type device. For now leave it in, but others can alter.7; (There's no GOOD reason to disable MSCP, but care!!!):; movl #^Xb12c4001,ucb$l_media_id(r5) ; set media id as VD@ movl #$$media$$,ucb$l_media_id(r5) ; set media id as FR (get itG; (note the id might be wrong but is attempt to get it.) (used only for; MSCP serving.)> MOVB #DT$_FD1,UCB$B_DEVTYPE(R5) ;Make it foreign disk type 1/; (dt$_rp06 works but may confuse analyze/disk)G;;; NOTE: changed from fd1 type so MSCP will know it's a local disk and8;;; attempt no weird jiggery-pokery with the VD: device.G; MSCP may still refuse to do a foreign drive too; jiggery-pokery later'; to test if there's occasion to do so. RSB ;RETURN  .PAGE .SBTTL FDT ROUTINES ;++; 0; VD_ALIGN - FDT ROUTINE TO TEST XFER BYTE COUNT; ; FUNCTIONAL DESCRIPTION:; E; THIS ROUTINE IS CALLED FROM THE FUNCTION DECISION TABLE DISPATCHERB; TO CHECK THE BYTE COUNT PARAMETER SPECIFIED BY THE USER PROCESS/; FOR AN EVEN NUMBER OF BYTES (WORD BOUNDARY).; ; INPUTS:; (; R3 - IRP ADDRESS (I/O REQUEST PACKET)+; R4 - PCB ADDRESS (PROCESS CONTROL BLOCK)(; R5 - UCB ADDRESS (UNIT CONTROL BLOCK)+; R6 - CCB ADDRESS (CHANNEL CONTROL BLOCK)+; R7 - BIT NUMBER OF THE I/O FUNCTION CODE3; R8 - ADDRESS OF FDT TABLE ENTRY FOR THIS ROUTINE<; 4(AP) - ADDRESS OF FIRST FUNCTION DEPENDENT QIO PARAMETER; ; OUTPUTS:; ?; IF THE QIO BYTE COUNT PARAMETER IS ODD, THE I/O OPERATION IS?; TERMINATED WITH AN ERROR. IF IT IS EVEN, CONTROL IS RETURNED; TO THE FDT DISPATCHER.; ;--nolchk=0(VD_ALIGN: ;CHECK BYTE COUNT AT P1(AP)) BLBS 4(AP),10$ ;IF LBS - ODD BYTE COUNT RSB ;EVEN - RETURN TO CALLER910$: MOVZWL #SS$_IVBUFLEN,R0 ;SET BUFFER ALIGNMENT STATUS JMP G^EXE$ABORTIO ;ABORT I/O .PAGE .SBTTL START I/O ROUTINE;++; ; VD_STARTIO - START I/O ROUTINE; ; FUNCTIONAL DESCRIPTION:; G; THIS FORK PROCESS IS ENTERED FROM THE EXECUTIVE AFTER AN I/O REQUEST; PACKET HAS BEEN DEQUEUED.; ; INPUTS:; ); R3 - IRP ADDRESS (I/O REQUEST PACKET)); R5 - UCB ADDRESS (UNIT CONTROL BLOCK):; IRP$L_MEDIA - PARAMETER LONGWORD (LOGICAL BLOCK NUMBER); ; OUTPUTS:; =; R0 - FIRST I/O STATUS LONGWORD: STATUS CODE & BYTES XFERED/; R1 - SECOND I/O STATUS LONGWORD: 0 FOR DISKS; ; THE I/O FUNCTION IS EXECUTED.; ,; ALL REGISTERS EXCEPT R0-R4 ARE PRESERVED.; ;-- .if df,x$$$dtrwflg: .long 0 .endcREQUEUE: .if df,d$$bug, movl r3,dbgdta+68 ;store offending IRP here .endc .if df,x$$$dt jsb g^ini$brk .endc0 JMP G^EXE$INSIOQ ; REQUEUE packet to ourselves*; return to our caller direct from insioq.:; (note this also sets busy, so it will NOT loop forever.)#VD_STARTIO: ;START I/O OPERATION; ; PREPROCESS UCB FIELDS; ); ASSUME RY_EXTENDED_STATUS_LENGTH EQ 8D; CLRQ UCB$Q_VD_EXTENDED_STATUS(R5) ; Zero READ ERROR REGISTER area.; ; BRANCH TO FUNCTION EXECUTION3 bbs #ucb$v_online,- ; if online set software valid ucb$w_sts(r5),210$5216$: movzwl #ss$_volinv,r0 ; else set volume invalid' brw resetxfr ; reset byte count & exit210$:0 tstl ucb$hucb(r5) ; do we have any host device?- beql 216$ ; if eql no, flag invalid volume.1 ; THIS IS SAFETY FROM CONFIGURING FROM OUTSIDE5; BEFORE GOING ON, WE WANT TO ENSURE THE UCB IS FREE.. TSTL UCB$PPID(R5) ; MAKE SURE we haven't got ; a packet in process3 BNEQ REQUEUE ; IF a packet's in process, requeue* ; back to this driver; do NOT process ; immediately!?; Note...never seems to get to requeue (xdelta would catch it!)/; (that's a good sign; should never get there.). bisw #ucb$m_online,ucb$w_sts(r5) ; set online+ bisw #ucb$m_valid,ucb$w_sts(r5) ;set valid,; set ourselves as owners of channel for VD: movl ucb$l_crb(r5),r02 movl crb$l_intd+vec$l_idb(r0),r0 ;get idb address*; cmpl r5,idb$l_owner(r0) ;are we owners?&; beql 214$ ; if eql yes, all's well8; REQPCHAN ; gain access to controller in "standard" way214$:;:10$:; BBS #IRP$V_PHYSIO,- ;IF SET - PHYSICAL I/O FUNCTION; IRP$W_STS(R3),20$ ;...4 BBS #UCB$V_VALID,- ;IF SET - VOLUME SOFTWARE VALID UCB$W_STS(R5),20$ ;...2 MOVZWL #SS$_VOLINV,R0 ;SET VOLUME INVALID STATUS) BRW RESETXFR ;RESET BYTE COUNT AND EXIT20$:1; IF WE GET A SEGMENT TRANSFER HERE (LOGICAL I/O).; IT MUST BE UPDATED FOR HOST AND SHIPPED OUT."; OUR UCB HAS BLOCK NUMBER INFO...I; FIND OUT IF THIS IS LOGICAL OR PHYSICAL I/O FIRST. THEN IF IT IS BUGGER>; THE I/O PACKET USING UCB INFO AND SEND TO THE REAL DRIVER... ; ALSO ENSURE WE ARE UNBUSIED...;A EXTZV #IRP$V_FCODE,#IRP$S_FCODE,IRP$W_FUNC(R3),R1 ; GET FCN CODE5 case r1,<- ; Dispatch to function handling routine unload,- ; Unload nop,- ; Seek$ NOP,- ; Recalibrate(unsupported) nop,- ; Drive clear% NOP,- ; Release port(unsupported)% NOP,- ; Offset heads(unsupported) NOP,- ; Return to center nop,- ; Pack acknowledge NOP,- ; Search(unsupported)$ NOP,- ; Write check(unsupported) WRITEDATA,- ; Write data READDATA,- ; Read data% NOP,- ; Write header(unsupported)$ NOP,- ; Read header(unsupported) NOP,- ; Place holder NOP,- ; Place holder available,- ; Available (17) NOP,NOP,NOP,- ; 18-202 NOP,NOP,NOP,NOP,nop,nop,nop,NOP,NOP,nop,- ;21-302 NOP,NOP,NOP,NOP,nop,NOP,nop,nop,nop,NOP,- ;31-402 NOP,NOP,NOP,NOP,NOP,NOP,NOP,NOP,NOP,nop,- ;41-502 NOP,NOP,NOP,NOP,nop,NOP,NOP,NOP,NOP,NOP,- ;51-60 nop,- ;61 >,LIMIT=#1nop: ;unimplemented function brw fexl readdata: .if df,x$$$dt clrl rwflg brb rwcmn .endc writedata: .if df,x$$$dt movl #1,rwflgrwcmn: .endc; debug using sda to peek.; NOW VALIDATED I/O FCN... MODIFY AND SEND OFF .if df,d$$bug& MOVL #1,DBGDTA ;TELL THAT WE GOT HERE$ MOVL R5,DBGDTA+4 ;SAVE OUR UCB ADDR MOVL R3,DBGDTA+8 ; AND I/O PKT7 MOVL IRP$L_MEDIA(R3),DBGDTA+12 ;STORE BLK NUMBER GIVEN3 MOVL IRP$L_OBCNT(R3),DBGDTA+16 ;ALSO ORIG BYTE CNT# MOVL R1,DBGDTA+36 ;SAVE FCN OFFSET .endc2 CMPL IRP$L_MEDIA(R3),UCB$HFSZ(R5) ;BE SURE LBN OK blequ 65$1 brw Fatalerr ;dismiss I/o if not ok block number65$:0; HAVE TO BE CAREFUL WHAT WE SHIP TO REAL DRIVERC; Now that we know IRP$L_MEDIA is ok in IRP, save it for restore at; I/O completion by VDDRIVER$ movl irp$l_media(r3),ucb$lmedia(r5)$ ; Prepare to enter another context. ; SEND PKT OFF TO REAL DRIVER... .if df,x$$$dt$ cmpl irp$l_bcnt(r3),irp$l_obcnt(r3), beql 117$ ;branch if no split I/O going on% movl irp$l_segvbn(r3),r2 ;get segvbn* movl irp$l_media(r3),r1 ;and media fields jsb g^ini$brk117$: .endc9 ADDL2 UCB$HLBN(R5),IRP$L_MEDIA(R3) ;ADJUST LBN IN IO PKT .if df,d$$bug MOVL IRP$L_MEDIA(R3),DBGDTA+20 MOVL UCB$HLBN(R5),DBGDTA+24 MOVL UCB$HFSZ(R5),DBGDTA+28 MOVL IRP$L_SEGVBN(R3),DBGDTA+32 .endc;9; NOW we have to fix up the media address for the host...;; ... otherwise we confuse the heck out of things by makingD; ... the host (who is expecting a track/sect/cyl number) get reallyI; ... goofy numbers. Cheat by using exec routine after a bit more messup.;7 MOVL UCB$HUCB(R5),IRP$L_UCB(R3) ;FIX UP PTR IN I/O PKT; GRAB HOST PID/ TSTL UCB$PPID(R5) ; GUARD AGAINST DOUBLE BASH BNEQ 12$= MOVL IRP$L_PID(R3),UCB$PPID(R5) ; SAVE PROCESS ID IN VD: UCB; movzwl irp$w_sts(r3),ucb$stats(r5) ;save original fcn code5 movl irp$l_obcnt(r3),ucb$obct(r5) ;store obcnt field; belt 'n' suspenders next...9 movl irp$l_bcnt(r3),irp$l_obcnt(r3) ;and reset to actual% ; requested so driver NEVER sees) ; need to do postprocessing requeues* ; in host context. (we do that in OUR ; context.)4 movl irp$l_wind(r3),ucb$owind(r5) ;store window ptr< movl irp$l_segvbn(r3),ucb$osegv(r5) ;store segment vbn also0 brb 1200$ ;mousetrap loc for attempted dbl bash12$: .if df,x$$$dt3 jsb g^ini$brk ;break here ONLY if ppid was nonzero .endc1200$:9 MOVZWL UCB$W_UNIT(R5),-(SP) ; BUILD ADDRESS OF UCB STORE% ASHL #2,(SP),(SP) ; WITH OFFSET * 4 .IF DF,D$$BUG MOVAB VD_UCBTBL,DBGDTA+60 MOVAB VD_FXS0,DBGDTA+64 .ENDC/ MOVAB VD_UCBTBL,-(SP) ; GET TBL BASE IN STACK* ADDL2 (SP)+,(SP) ; NOW ADD BASE + OFFSET5 MOVL R5,@(SP)+ ; AND STORE UCB ADDRESS IN VD_UCBTBL$; (THIS ALLOWS US TO GET IT BACK...)9 MOVZWL @ SAFETY013.A [EVERHART.JTDEMO]VDDRIVER.MAR;41;1;11QQ,:UCB$W_UNIT(R5),-(SP) ; BUILD ADDRESS OF ENTRY NOW8 MULL2 #VD_FXPL,(SP) ; MULTIPLY OFFSET BY SIZE OF ENTRY7 MOVAB VD_FXS0,IRP$L_PID(R3) ;AND BASH PID IN IRP SO WE/ ; GET BACK CONTROL AT VD_FIXSPLIT (VIA JSB) ; WHEN HOST'S I/O IS DONE.3 ADDL2 (SP)+,IRP$L_PID(R3) ;SET TO ENTER IN CORRECT ; UNIT'S ENTRY .IF DF,D$$BUG* MOVL UCB$PPID(R5),DBGDTA+40 ;SAVE OLD PID, MOVL IRP$L_PID(R3),DBGDTA+44 ;AND NEW "PID", MOVZWL IRP$W_STS(R3),DBGDTA+48 ;STATUS BYTE/ MOVL #IRP$M_PHYSIO,DBGDTA+52 ;AND PHYS I/O BIT .ENDC' .if df,vms$v5 ;save our UCB for synchE; normally just call exe$insioqc to avoid SMP problems in V5.x and up .if df,relacq; movzbl ucb$b_flck(r5),-(sp) ;store fork lock info on stack .endc .endc7 MOVL UCB$HUCB(R5),R5 ;NOW POINT AT HOST UCB OURSELVES;;;;, MOVL IRP$L_MEDIA(R3),R0 ;GET LBN TO CONVERTD; Note that the host driver normally will get physical I/O addresses<; in this entry. Logical I/O is converted to physical in FDTB; routines for most drivers; the few exceptions inhibit conversion?; via IOC$CVTLOGPHY anyway. Therefore we must ALWAYS convert to ; physical.* JSB G^IOC$CVTLOGPHY ; LET THE EXEC DO IT!; Logical I/O... relocate it here,; Already adjusted the logical blk # earlier .if df,d$$bug4 MOVL IRP$L_MEDIA(R3),DBGDTA+56 ;SAVE FOR DEBUG EXAM .endcF; next op may mess up some regs. Also we cannot access the packet once%; we give it to the host driver thus:( .if ndf,vms$v5 ;this code is fine in V44 JMP G^EXE$INSIOQ ; INSERT PACKET INTO HOST'S QUEUE .iffH; for smp may need to release a spinlock on vd: ucb at this point before ; the jmp.D; Since this vd: unit is busy at this point, we won't get back hereK; until the I/O completion anyway, so we should be able to leave fork state5; and let exe$insioq re-enter it for our host driver.2; Main difficulty is releasing the correct fork... .if df,relacq .if ndf,v5$picky+ movl (sp)+,r0 ;restore our fork lock info- forkunlock R0 ;and release VD:'s spinlocksF; Notice that exe$insioq acquires and releases forklock. Since we wereA; called from this routine ultimately also, we should ensure thatE; when we return that we hold the proper VD: forklock to be released./; This will be conditioned by v5$picky defined.4 JMP G^EXE$INSIOQ ; INSERT PACKET INTO HOST'S QUEUE .iff ;v5$picky movl (sp),r0 ;get our lock ID1 forkunlock r0 ;release vd: spinlocks and so on8 jsb g^exe$insioq ;stash the IRP on host driver's queue;now get our forklock back+ movl (sp)+,r0 ;get r0 back as vd: lock id& forklock r0 ;and re-acquire lock so#; ;exe$insioq can dismiss it... rsb ;then return .endc ;v5$picky .iff ;relacq4 JMP G^EXE$INSIOQC ;insert packet but keep forklock .endc ;relacq .endc ;vms$v5;; WE Now have queued the work to the real driver. Since the9; I/O may have splits, just await done return and let the>; vd_fixsplit processing get done our cleanup. Because we need?; to await this, just return with VD: unit STILL BUSY to ensure9; that we don't get thru here until we're GOOD AND READY!402$:. BRW FEXL ;Else, branch to execute function.; ; UNLOAD and AVAILABLE Functions ; Clear UCB$V_VALID in UCB$W_STS;UNLOAD: AVAILABLE:8; BICW #UCB$M_VALID, - ;Clear sofware volume valid bit.; UCB$W_STS(R5),; BRB NORMAL ;Then complete the operation.; ; OPERATON COMPLETION; -FEXL: ; dummy entry ... should never get here*NORMAL: ;SUCCESSFUL OPERATION COMPLETE8 MOVZWL #SS$_NORMAL,R0 ;ASSUME NORMAL COMPLETION STATUS BRB FUNCXT ;FUNCTION EXIT!FATALERR: ;UNRECOVERABLE ERROR2 MOVZWL #SS$_DRVERR,R0 ;ASSUME DRIVE ERROR STATUS8RESETXFR: ; dummy entry ... should never really get here# MOVL UCB$L_IRP(R5),R3 ;GET I/O PKT5 MNEGW IRP$W_BCNT(R3),UCB$W_BCR(R5) ; RESET BYTECOUNT ; BRW FUNCXTFUNCXT: ;FUNCTION EXIT& CLRL R1 ;CLEAR 2ND LONGWORD OF IOSB REQCOM ; COMPLETE REQUEST .PAGE; PWRFAIL: ;POWER FAILURE: BICW #UCB$M_POWER,UCB$W_STS(R5) ;CLEAR POWER FAILURE BIT1 MOVL UCB$L_IRP(R5),R3 ;GET ADDRESS OF I/O PACKET5 MOVQ IRP$L_SVAPTE(R3),- ;RESTORE TRANSFER PARAMETERS UCB$L_SVAPTE(R5) ;...$ BRW VD_STARTIO ;START REQUEST OVER .if df,d$$bug&DBGDTA: .BLKL 6 ;AREA TO HOLD DISPLAYS .BLKL 20 .BLKL 20 .BLKL 40 .endcVD_INT:: VD_UNSOLNT:: POPR #^M% REI ;DUMMY RETURN FROM ANY INTERRUPT ;;; FIX SPLITS...; RETURN IRP TO OUR UCB ADDRESS ; THEN REQCOM;H; TRICK IS TO GET OUR UCB ADDRESS BACK WHEN WE REGAIN CONTROL. DO SO VIAI; JIGGERY-POKERY WITH THE ADDRESS WE CALL. STORE UCB ADDRESSES IN A TABLEE; INTERNALLY AND USE THE CALL ADDRESS TO GET WHERE WE ARE BACK AGAIN.;D; Note: On entry, r5 points at the IRP we're to handle. We bash thisA; information and regenerate it, since irp$l_ucb has already beenE; bashed and can't locate our UCB anyway. Therefore we let the returnC; address give us the VD: UCB address implicitly via local save andJ; restore; each VD: unit returns to a different entry point which preloadsE; r5 with a different offset. Once the ucb is located, ucb$l_irp getsD; back the IRP address. This is possibly extra work; one can imagineD; that some IRP fields like SEGVBN could be used to hold the vd: ucbE; address temporarily, since they are saved/restored internally. ThisG; would allow some address arithmetic to be dispensed with. The currentK; method is merely intended to work and NOT force us to let the host driverD; (and maybe other host software) look at bogus IRP fields, and alsoI; let us remain blissfully ignorant of how VMS handles IRPEs for purposesE; of this driver. (ecch...having to figure out a way to keep i/o postG; processing out of OUR IRPEs (for sure) while using them for temporary; storage... what a thought!);4; NOTE FOLLOWING CODE ASSUMES VD_UNITS IS 2 OR MORE.V_UNIT=0V_UNM=1 VD_FXS0:: MOVL I^#V_UNIT,R4 BRW VD_FIXSPLIT ;GO HANDLE?VD_FXPL==.-VD_FXS0 ;LENGTH IN BYTES OF THIS LITTLE CODE SEGMENT#V_UNIT=V_UNIT+4 ;PASS TO NEXT UNIT .MACRO XVEC LBLC VD_FXS'LBLC: MOVL I^#V_UNIT,R4 BRW VD_FIXSPLIT .ENDM- .REPEAT ; some extra for safety XVEC \V_UNM#V_UNIT=V_UNIT+4 ;PASS TO NEXT UNIT V_UNM=V_UNM+1 .ENDR VD_FIXSPLIT:; GET OLD PID..; IN OUR UCB$PPID LONGWORD...; .IF NDF,VMS$V5;; assume ipl$_synch = 8!; DSBINT ipl=#8 ; GO TO FORK IPL; .ENDC+; NOTE!!! PROBABLY NEEDS MODS FOR VMS V5!!!G;some cleanup for host needed here. Note that r5 enters as IRP address./; Use initial R5 to help reset host's system...+ movl irp$l_ucb(r5),r3 ;get host's UCB addr5 movl r5,r2 ;store entry IRP address for check later PUSHL R4 ;NEED TO WORK IN R5 MOVAB VD_UCBTBL,R5- ADDL2 (SP)+,R5 ;R5 NOW POINTS AT UCB ADDRESS. MOVL (R5),R5 ;NOW HAVE OUR UCB ADDRESS IN R5C decw ucb$w_qlen(r3) ;cleanup host's q len as ioc$iopost would have bgeq 6$- clrw ucb$w_qlen(r3) ;force queue length zero6$:. cmpl r2,ucb$l_irp(r5) ;got the correct IRP??? beql 7$ ;if eql yes( .iif df,x$$$dt,jsb g^ini$brk ;notify...F; MUST avoid screwup where we don't have the correct IRP since there'sH; no connection directly between IRP and UCB. VD: unit being busy shouldK; avoid this error, BUT we have no way to be certain of this w/o exhaustive; system code checks.- rsb ;else wrong IRP, don't do more damage.7$: ; notice stack is now clean too. movl r5,r4) FORK ;go fork on our UCB now (vd: ucb) movl r4,r5; .IF DF,VMS$V5; FORKLOCK SAVIPL=-(SP); .ENDC .if df,d$$bug5 movl r5,dbgdta+72 ;save ucb addr as flag we got here1 movl ucb$l_irp(r5),dbgdta+76 ;save irp addr also .endc. MOVL UCB$L_IRP(R5),R3 ; POINT R3 AT IRP AGAIN .if df,d$$bug5 movl r5,dbgdta+80 ;save ucb addr as flag we got here1 movl ucb$l_irp(r5),dbgdta+84 ;save irp addr also5 movl ucb$ppid(r5),dbgdta+88 ;save old pid field also .endc3 TSTL UCB$PPID(R5) ; ENSURE PID IS NONZERO AS SAVED BEQL 15$ ; SKIP BASH IF NOT5 MOVL UCB$PPID(R5),IRP$L_PID(R3) ;RESTORE THE OLD PIDG; since we may now have later parts of virtual, paging, or swapping I/O6; to do, restore saved byte counts and function codes.9 movl ucb$obct(r5),irp$l_obcnt(r3) ;restore orig byte cnt;; movl ucb$owind(r5),irp$l_wind(r3) ;restore window pointer> movl ucb$osegv(r5),irp$l_segvbn(r3) ;restore segment vbn also brb 1501$15$: .if df,x$$$dt';mousetrap if we EVER see 0 saved PID!! jsb g^ini$brk .endc= clrl irp$l_pid(r3) ;make sure we DON'T get back here anyway!?; this is actually an error condition and should NEVER occur...9 movl ucb$obct(r5),irp$l_obcnt(r3) ;restore orig byte cnt1501$: .if df,x$$$dt$ cmpl irp$l_bcnt(r3),irp$l_obcnt(r3)+ beql 17$ ;branch if no split I/O going on% movl irp$l_segvbn(r3),r2 ;get segvbn* movl irp$l_media(r3),r1 ;and media fields jsb g^ini$brk17$: .endc9 CLRL UCB$PPID(R5) ; ZERO SAVED PID FIELD FOR CLEANLINESS5 MOVL R5,IRP$L_UCB(R3) ;RESTORE VD: AS UCB IN IRP TOO6; GRAB R0 AND R1 AS REQCOM IN HOST DRIVER LEFT THEM...% MOVL IRP$L_MEDIA(R3),R0 ;GET BACK R0" MOVL IRP$L_MEDIA+4(R3),R1 ;AND R1@; R0, R1 ARE AS HOST DRIVER LEFT THEM. R5 POINTS TO CORRECT UCB.; ===> GO FOR IT !!!;E; Now restore the original IRP$L_MEDIA field of the IRP in case errorF; paths in IOC$REQCOM ever need it. Some very low XQP cache situationsD; may occasionally need this, though in reasonable sysgen configs itE; should never be needed. This is the one area that got bashed during;; the earlier I/O completion processing in the host driver.;$ MOVL UCB$LMEDIA(R5),IRP$L_MEDIA(R3);D; notice that for virtual I/O, the IRP's IRP$L_SEGVBN longword stillI; has the starting VIRTUAL block number of the I/O request in the contextI; of the virtual disk. This must be present as any second and later partsE; of the I/O request modify that field to compute where to go for theE; next I/O. Due to getting back here, the host driver need never knowG; about this; it is basically doing ONLY physical and logical I/O where8; this sort of completion jiggery-pokery does not occur.; - GCEI; Now go REALLY complete the I/O (possibly causing more I/O and certainlyL; ensuring the VD: I/O queue is emptied and VD: unbusied after all is done.)> JSB @#IOC$REQCOM ; GO COMPLETE THE I/O REQUEST IN VD: CONTEXT-; (OR DO I/O SPLIT NEXT PART IN VD: CONTEXT!)4; ALSO, RETURN **HERE**, SO WE CAN WRAP UP ALL ELSE.; .IF NDF,VMS$V5&; ENBINT ; RESTORE IPL TO IPL$_IOPOST; .IFF; FORKUNLOCK NEWIPL=(SP)+; .ENDC; rsb exits the fork level.C; IPL4 level exited at fork above, with stack intact at that point./; iopost saves/restores regs, so r5 bash is ok. RSB ; GET BACK TO HOST SOMETIME; BLOCK OF UCB ADDRESSES VD_UCBTBL:: .rept VD_UNITS .long 0 .endr; .BLKL VD_UNITS .LONG 0,0 ;SAFETY3 .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;more safety/VD_END: ;ADDRESS OF LAST LOCATION IN DRIVER .END*[EVERHART.JTDEMO]ZMENU.CLD;3+,. / 4P - 0123 KPWO5 6x?7KTZcĘ89GHJDefine Verb ZMENU Image "sys$system:ZMENU"0 Qualifier SCROLLING , Syntax=ZMENU_SCROLLING1 Parameter P1 , Value( Default="SYS$INPUT:" )' Qualifier SYMBOLS , NonnegatableI Qualifier POINTER , Default, Nonnegatable , Value( Default="-->" )C Qualifier ITEM , Default, Nonnegatable, Value( Default="^" )P Qualifier INITIAL , Default , Nonnegatable, Value(Type=$NUMBER,Default=1)$ Qualifier WIDE , Nonnegatable+ Qualifier NOINTERRUPT , Nonnegatable+ Qualifier TEXT , Nonnegatable, Value& Qualifier START0 , Nonnegatable% Qualifier BOUND , Nonnegatable% Qualifier DEBUG , Nonnegatable' Qualifier VERSION , NonnegatableDefine Syntax ZMENU_SCROLLING" Image "sys$system:ZMENU_SCROLL"0 Parameter P1 , Value(Required,Type=$INFILE)C Qualifier ITEM , Default, Nonnegatable, Value( Default="^" )$ Qualifier WIDE , Nonnegatable' Qualifier SYMBOLS , Nonnegatable*[EVERHART.JTDEMO]ZMENU.EXE;3+,.-/ 4-)- 0123 KPWO)56x?7<}89GHJ 0DX0205(-%ilFZMENU01-%i05-05  !#6 ( ?B!d FORRTL_001! LIBRTL_001[JP1.MENU)[22;132HVERSIONNSWC ZMENU Rev 1.005 Created 7-JAN-1992 12:00DEBUGSYMBOLSWIDETEXTNOINTERRUPTSTART0BOUNDINITIALPOINTERITEMMENU TEXT[!2UL;!2ULH[!UL;!ULH[2D 00:00:00ZMENU_TEXT[20H[J[20;24r[24H[K------------------------------------------------------------------------------E [7m H E L P [m Use arrow keys to move the pointer to the desired item.E Type RETURN, ENTER, DO, or SELECT to select the item.E Type CONTROL-W to refresh the screen.E [5;7m Type a blank to return to the menu. [m[H[2K[1;24rNONINT, ZMENU must be called only from INTERACTIVE processesEMPTY, the menu file contains no lines to displayINSUFF, the menu contains fewer than two selectable itemsBADQUAL, invalid /TEXT qualifierTEXT, missing or invalid text areaITEMCOL, the menu contains an item marker too close to the left marginCHOICE[?25h[1;24r[23H[m TT TT!UL SYS$INPUT:SYS$OUTPUT:SYS$COMMAND:!ULSYS$OUTPUT:[?3h[?3lSYS$OUTPUT  MENU ,(@T MENU(|SYMBOLS(qPOINTER$ITEM(INITIAL, NOINTERRUPT$@WIDE$dTEXT(START0$ BOUNDp  (   `D(/| d +  / `  `   `  D l $2W @D`DD .L @{ / "  @ SAFETY013.A [EVERHART.JTDEMO]ZMENU.EXE;3AX71;1;11->   ( 8 H /X ` "x E  p C SA GcA RWcA Y2Y\0cA RW1WA cX2XX\XRWRW1SPRWw1eD1d1;WdPUdRPS>C SB 7cB PWB cX2X\ WcB Q2QQ\QPWPWSPWWdX 1eM ceQC 1K[Ы\Rm( BV, <Ɣ @L3#m~ +#?f#ȫpƔ tp##fƔ !fiG/ G P2PPPPQ,n Q@bˀkL!1N22fPPˌƔ ː22PďP@Ɣ ˘˜d22WkGfŏWXkkPkXQ,n PAƔ kˬHƔ ˰ďWG˸˼zkkP22WďWkWX,n PH\PPkkPP\21!2  W\122XkX1WYŏkTYTP@b2]PWP  2 PPPk@ W@ *.YTP @ŏkTDƔ w!PPTQ AƔ Xk\Wi  a 2 P~Pt&  \|Hȿ[Cԫ P0 8P@ PPRdP2PPPPQ,n Q@ `P\2hPP^(Pn^SV^(nVVlV\^ptL\^ˈ{P˘hP˨UP˸BP/P9P* P'@2PP,P.< 20PPL(P\ktP ˄H﬿[A\ լ0KlAlClKll8Ѭ @HVѬW,W  WH LPѬ`լ 32PѬP&֬ŏP@lpP լ |ŏWGˈˌWPffPPTTPUTWP-U@ TWP, U@{Ь˰Ь ˴ˠP PPPP ˸,n PԬI[}PQPk}PQ PԼ V ^ H0[k1k2c\Rb\1>S2PŏbQPA  P\bL$JPPzPP{PPPP~^0,^ŏbPRRPSC@<@ HHм[8ŏPQQP\L ?A D$$ O[V2Wռ1}է PPX ^( nu^(nmnbZ ZYH~Y^(nYYYX^ X^קg1=g11Ѽ1sѧէ fkkѧPg,_֧P@X ^( n^(n~^(nH~^(n8X^< PP~^H@X^g1g1hէkf2XX]>YZ2ZZˠˤ2iPďP˨ZPQA=ˬ˰)ЫfYXFէkf2ˌː˔OP ¦2OPѫPЫfkf1ѼFV^(n§^(nЧXXY^(nY}~YYLYV^PTV^QѼ*gdhlP P|x"Ѽէˀ,n PԧH[XP H0@@8P0`(  h2 p ˄=˘||H[Ѽ5V<^(<ɮn ^( nEkEV^V^1Ѽ.V1^(1ʮn ^( n::V^V^1Ѽ6V9^(9Ǯn ^( nB BV^$(MV^1Ѽ.V ^( Įn ^( n)0)V^48V^qѼ.V"^("ﰮn ^( n+@+V^DHV^=Ѽ6VF^(Fn ^( nOPOV^TXV^`HH[!H[4A~^^$H[PP P  2,޼@$P P\X 2d`2Lp޼˄hPPˠ˜2˨ˤ޼PˬX ˴cPR˼ FPRRRVO[}PQP}PQP k<PP PQPQ ,  $NPQPQVzVR{RRRRWW RRX< RXRPQ P8+T|PT  PyTPPPPPkPTPTTPPPPP @PPP P@PPlQмQPP@PA`PЬQaRFSYcSޑR)*S SRԄ*P4bБԄS|PbSТޑPdTKݏlPެQ.T1}a ( f2f0P PLH 2@ SAFETY013.A [EVERHART.JTDEMO]ZMENU.EXE;3;8AXP6;11-&TP"H[}PQPk''[24;01H [22;080HK[Ы\TU_V22RkR @ Rk0B8 @*,ee eH 1~)eQe5e91 :PV 1^e? eHeh 1eA.d16dP@ @ 1$d1H2 d1@eB22 PdP1dRB B 1ddPd1 eC12 PdP1WdRRPfdQRS>C SA GcA RWcA Y2Y\0cA RW1WA cX2XX\XRWRW1SPRWw1eD1d1;WdPUdRPS>C SB 7cB PWB cX2X\ WcB Q2QQ\QPWPWSPWWdX 1eM ceQC 1K[Ы\Rm( BV, <Ɣ @L3#m~ +#?f#ȫpƔ tp##fƔ !fiG/ G P2PPPPQ,n Q@bˀkL!1N22fPPˌƔ ː22PďP@Ɣ ˘˜d22WkGfŏWXkkPkXQ,n PAƔ kˬHƔ ˰ďWG˸˼zkkP22WďWkWX,n PH\PPkkPP\21!2  W\122XkX1WYŏkTYTP@b2]PWP  2 PPPk@ W@ *.YTP @ŏkTDƔ w!PPTQ AƔ Xk\Wi  a 2 P~Pt&  \|Hȿ[Cԫ P0 8P@ PPRdP2PPPPQ,n Q@ `P\2hPP^(Pn^SV^(nVVlV\^ptL\^ˈ{P˘hP˨UP˸BP/P9P* P'@2PP,P.< 20PPL(P\ktP ˄H﬿[A\ լ0KlAlClKll8Ѭ @HVѬW,W  WH LPѬ`լ 32PѬP&֬ŏP@lpP լ |ŏWGˈˌWPffPPTTPUTWP-U@ TWP, U@{Ь˰Ь ˴ˠP PPPP ˸,n PԬI[}PQPk}PQ PԼ V ^ H0[k1k2c\Rb\1>S2PŏbQPA  P\bL$JPPzPP{PPPP~^0,^ŏbPRRPSC@<@ HHм[8ŏPQQP\L ?A D$$ O[V2Wռ1}է PPX ^( nu^(nmnbZ ZYH~Y^(nYYYX^ X^קg1=g11Ѽ1sѧէ fkkѧPg,_֧P@X ^( n^(n~^(nH~^(n8X^< PP~^H@X^g1g1hէkf2XX]>YZ2ZZˠˤ2iPďP˨ZPQA=ˬ˰)ЫfYXFէkf2ˌː˔OP ¦2OPѫPЫfkf1ѼFV^(n§^(nЧXXY^(nY}~YYLYV^PTV^QѼ*gdhlP P|x"Ѽէˀ,n PԧH[XP H0@@8P0`(  h2 p ˄=˘||H[Ѽ5V<^(<ɮn ^( nEkEV^V^1Ѽ.V1^(1ʮn ^( n::V^V^1Ѽ6V9^(9Ǯn ^( nB BV^$(MV^1Ѽ.V ^( Įn ^( n)0)V^48V^qѼ.V"^("ﰮn ^( n+@+V^DHV^=Ѽ6VF^(Fn ^( nOPOV^TXV^`HH[!H[4A~^^$H[PP P  2,޼@$P P\X 2d`2Lp޼˄hPPˠ˜2˨ˤ޼PˬX ˴cPR˼ FPRRRVO[}PQP}PQP k<PP PQPQ ,  $NPQPQVzVR{RRRRWW RRX< RXRPQ P8+T|PT  PyTPPPPPkPTPTTPPPPP @PPP P@PPlQмQPP@PA`PЬQaRFSYcSޑR)*S SRԄ*P4bБԄS|PbSТޑPdTKݏlPެQ.T1}a ( f2f0P PLH 2TP"H[}PQPkCYGo&s""?"!@Sk%|~!n#aG~CGo&s""?"!@Sk%H~!o&Hs"@ "?"@Sk%,~!%."*_"0JB'`.#J@ SAFETY013.A [EVERHART.JTDEMO]ZMENU.EXE_A;1VAX5;11'>;B?e/ #eK\C ."!F>BQFo&s""?"!@Sk%}!."JuB o&\s"H "?"@Sk%}!/= C_Y/e#~"KpC7 e."eJTB #GC8Go&s""?"!@Sk%}!e/#eK\C ."!F>BQFo&Ls""?"!@Sk%|!."JuB .#!G>CYGo&s""?"!@Sk%|!/e# "KpC+ O @o&\s"P "?"@Sk%H|!o=`BU/??#KB @/H"KpC e.h"eJTB #GC8Go&Ls""?"!@Sk%{!e/A#eK\C7$% D5@B`9GFBB37H<7HD@@ R"G .D.D. ;.GT GJGQ ;JU JJPF:GK0FFrC ZC$:1 CD;9 C@ &. # .Q BQFo&Ls""?"!@Sk%t!X#"FB%t!G#.#!G>CYGo&`o!s""?"!@Sk%s!4o`o&s" "?"@Sk%s!O'o'Z"4/"{O"@Zko& s" , "?"@Sk%Ps!+.# .<K"=k.O'Q sKo'<.?"L "TJtF<>@ZLo{@Zk%r!#GC8GO#NO'1o##n_"\oo'N"Z?"!{@Zk%|r!n"aF~BFO'ΰ"Poo'"Z!{?"@Zk%4r!#GC8Gqk/_# KK[ kK "Gqk?{KKO'p/p+"_"\K|Gp?t o'."To?"N!Z{@Zk%q!n"aF~BFO'Xoo'"Z?"!{@Zk%tq!&//Y &KK8G5J f/ F#GFZzK"GK9DC5DC!F5DCFД FG=DCF3DC4GF.f.T JfJF2FJv@///"Y 5KK8G5J"o/O#GZzKFGK"ECEC!FECFД FGECFEC4GFN"AF^BrFo&s""?"!@Sk%Hp!Z0ďJ•5JJB瀢O?#9&KvH:FK"YCfK YC0vKO'F HZo'H."ȃ{D 1@!B5 BA39@B""_""@Zko&s" "?"@Sk%o!.# GF/\J;KKfK9C5CaF5CxCVF"Ҕ`F F=C GzKY KVF3C;gK4 FYGVF/ {C3&/2/2"#U 4KK<KF5JY 4KBJXK tK B9F4?qtK"8F?f. F#.2f# /FfJT JX KF HH H8G ?xH+/Y5KG+?KG3.2/P JKF HHu@TBBRBD@BDDGDGT GGPFo&:GK,s"@ {# ZCk "?"@Sk%m!3&.2.2#KFQ E2C/6FEuSJEXK6FT@FF?6FPF ?G9'K3gJB sB 9C ?#k."": 8CO'AZAo'@ȃ{ "_"" 8C@Zk+.tJGD.FFDDFT FUJ@Fs"PFko&2GJs"@F> # ?" " RB@Sk%(l!B+3.2/2f# GP JKFF'H?#H: 8C4HKDBRB@BD 8CFDDFTG@@O'FPFZ9'Ko'@ȃ{"" 9C_".""@ZkE @ 3f.2F.2&"GS qJQJFrF1&J"&J D#B#BG#BFՔGF#BF#B4FFO'Hoo'Z "?"{@Zk%j!3f/2F/2&#[ yKYKzG9&K o&s" "?"@Sk%j!O'o'0Zo"?"8{@Zk 3&.2#2._"KQ #>//Z XK8KYG HH @`o&s" "?"@Sk%i!O'o'0Zo"8{?"@Zk F. # &."5JP \JyJ1G<> . /P JK;JF HfKHtCDD@87H07H@ " J5/@ #QBY 5K HYG5?yJ GU/;gK {CZUK:GU?<.Q qH\.R\J2F3H\>8ďfJgB F3gJ sB5@@ #Y/{K@GZYKFzGY?O'o'sCRB\BP?BBDDFD@FTF 9#F+PFZo8K "{ C?"@Zk%g!D 1@@@ 1" "Q.sJ;9@CRQJ@rFQ>0B B8BJ?#D@ @ @ C:CGFG1 f. F. &"S qJQJrF1&J&JY Bo&s" "?"@Sk%f!O'o'0ZWo"?"8{@Zk &/ / "OY 5KK8G HH @C`#ŏ ."!F>BQFo&s""?"!@Sk%\f!dį.aď.ao"U JJF`o&4s" "?"@Sk%$f!#GC8Go&s""?"!@Sk%e!Mm8!4m_FCJ0-F, 6@JM$͠Fp`G(nCm `n7J@AGNnCSkO'o'Z{@Zk##GC%\e!\Fho!kO`o&t s" "?"@Sk%e!!O'oo'Z0 "?"{@Zk%d!"FBFO'`oo'"Z?"!{@Zk%d!O'o'0Zo"8{?"@Zko&s"8 "?"@Sk%td!O'o'0Zo"8{?"@Zko&s"@ "?"@Sk%tH Bl. ACt "UJo&Ds"Fl>?"p˱@Sk%b!AEaG{GLCo&t s" "?"@Sk%Xb!01C0o&t s" "?"@Sk%0b!11C4/o&t s" "?"@Sk%b!21COo&t s" "?"@Sk%a! dį.ao"41CU J JGdį>uJa/XKFa?o&t s" "?"@Sk%a!91C/o&t s" "?"@Sk%ha!:1COo&t s" "?"@Sk%@a!%o& s" "?"@Sk% a!.o#/O'+.ܯo"P JKQ +JF Ho'H " HQF+>q HK.RKJ2FK>k?"Zo{@Zk%`!o&t s", "?"@Sk%`!0o& s"< "?"@Sk%l`!<M.L"o& HU JHs" H@/#GM>uH\ "?"L /XKFL ?P+@Sk%`!?ď/>o#K\ K [K1FKF?ď?&J|[K>.:B ?FPJ1'JG>> 1Bo&t s"t "?"@Sk%_!o& s" "?"@Sk%_!O'o'@ZH{@Zk#N"AF^B%p_!Fwo& s"o!ď! "?"@Sk%4_! o&s"0 "?"@Sk%_!O'o'0Zmo"?"8{@ZkL/A#LK;C" L.C"LJ3B",/K_#,KC`# o&s"8 "?"@Sk%x^!O'o'0Zo"?"8{@Zk,Y B @.l" /"JXKyuJ8G ?k/K# #zK\Co&s"@ "?"@Sk%]!O'o'0Zo"?"8{@Zk, y B@O'lo'Z_"ȃ{,"'Q`B4Y`B" ""@Zk/ &/o&IK/s"KY &KZ KK8G J #zGIK?zJP "Hk/?"[kK[GHk?L@Sk%4]! 5B o&s"` "?"@Sk% ]!O'o'0Zo"8{?"@Zk L/@.o". U JJF HH C$ LGF0@Cl8@CO' o'3JpBQ_B BDDFDAFTF09#Fl+PFZo8K{p "?" C@Zk%4\! L@o&s"| "?"@Sk%\!O'o'0Z5o"?"8{@ZklGFr{CQ_B;B\BCDDvFDO'vFTFAvF# PFZo5קJo' B "{?"@Zk%p[!F&"" _"YCYCO'$1@ЃZ%@<9@0 @@o'@A؃{0vH1"@ZkO'o'Z@ȃ{A@""_",""@Zko0`Bŏ8`B O'o' & ,Ps"?" "+Z{@Zk%Z!F lzCD 1@ @zC19B@o&s" "?"@Sk%PZ!O'o'0Zo"?"8{@ZkO'Z#P?" ". _"B@Zk _  M0!m,m_F(CJF 6@JmFpF$͠BM `7J@AFNBSkO'o'Z{@Zk#"FB%xY!G,ȍo! K9Z@K {H+zGKPJ8@B.0"xJUJG>+/k#(CKY/YK;CK.@?"s+JRKJrFK>+D0@/$1@$CKY/8B89@YK;C+~"$BQ.QJ3BD0@8B+k#/(CKY/YK;C +.k"(BJQ.QJ3BD0@8Cy Lz0`C ,8@k8`C 1hB 1 BB.0@/J29 BXKyuJD8G?\#n#aG~C%pV!Ge ؍o!27HA.q.T JqJF&HHO GF4AGE|C[CxCY_C CDDFDFFT FFPF2GJ RBO'o'ZAF{5 fBN"1""@Zk.#!G'>CDФYG."KnEA!FK. I1FR KJDrFK>r ICk. "?"BSkJ@SFk>˱o& /#>O/F G[ yKYKzG HK!1BH59BDB0@K@B[C`CGADD6F@D39@B[D6FT@F 1@6FPFD @3gJ9 C8A sBA@A@EGO'o'ZAG{9 BN"01""@Zkk&n@: n@0AEFO'1 CZo'FN"{+" "@Zk.D"@U J HGBG>o&uHď#1B@B97HDA#vFDx/DX/vFTF[ xKXKvF37HzGPFA8K5קJR"K B >.vH?/...JQ o&qH?"H˱@Sk%N!AEG8OGB@n#aG~CG/0Bo&C%tN!yGpo!볳O."/. O "R PJ0Jb QF,IIÂo .G.FJU J k.|CF H[CHS kJ HxCY_CF k> C!D9DF. Ds HFT FTJO'AFtF>" PFZoo'2GJ?" "{ RBc @Zk%LM!7H0C C8C_kO'doo'Z$ "?"{@Zk%L!n#aG~CGO&o&GFO'Wo'У2أS_""TT1HD= ]!FZ$K{F F= CFT FTF?"FPF5קJ" B@Zko&_#s";@Cn!0˱< @C, "?"@Sk%L!BGFExRBUCBSB`BDD6GD"1C6GT@G@6GPFO'A;gKR"<K {CZo'hoB09C{@A?"@ "@Zk%|K!#M !m_FMCJmFm6@J FpFB`7J@AFNBSkO'o'Z{@Zko&s"H "?"@Sk%J!_#GC8Go&s""Ȏo!?"!@Sk%J! OG$ůFqZCP?BB[C`CD!1BVFD @DVFAT`FZ# KO'hoVFPFZ4ׇJo' B{?" "@89B@Zk% J!po` ŏCO'o'@ZH{@Zko&s" "?"@Sk%I!o&u4J P A/aGXKF?{G0AX CEFO'o'ZF1C{N"'""@Zk.)E A +IT J@BF>o&t+I.˱?" A@Sk%XG!AEaGg{GHCu`B11B'29B3B,95 C@^gŏ|C`_G@fk" C T_C O'oo'Z, "?"{@Zk%F!."!F>BQFgE.1A0`B(o/8`B39ABoKo' 1C@q\K.O'!PJ99C0F>ZN"{ &""@ZkO'o'ZE.qA{N"+""5yB@Zk(//n/N#"/K[zK|KO'Gn?o'Z.B1B{+"N""@Zk.H_"n" SJT JO'F>tSJ#.o'9C'"UJ"F>Z.C{N"@Zk9k/_# KK[ kK"G9k?{KKE8/XB@ "?"\KPA|G8?<˱ Gg./rB81@Y 5K KrBYG.?o&yKpKKJ+. v@I8vJGQ+J  GF+>KFi.*FI.'"G.FIiJT JQJF Hg.HS qJ:HD@CX?CCDDvGDvGTGvGPF0J B.rF +JT J @F>t+JO'.A09#o'UJ @F>+?"Z "o{@Zk%B!/g/G#'"\ KzKO'GZo'K"{@Zk F_)E A@B0B B8B2' KF,./g#K.+"P JKR QJF qKO'rFK>rqK"k.o' "SqJ?"SFk>Zo{@Zk%A! 9C+: C k HH `C  _KFlsU`BY8qAGEGO'o'ZG{9yBN"+""@ZkGE<AG0 zCO'o'ZGN"{'""@Zk3AE pAxAaFO'o'ZsF{4@BN"+""@ZkN#AG'^C)E AؠBzGN"$K.)E !AAFM.Lk" 3IDT JBFM>t3IRFL.@ CT "UJo&?"P˱@Sk%(@!AEaG{GFCT @ SAFETY013.A [EVERHART.JTDEMO]ZMENU.EXE_A;1VAX62;136>ZuB5 G5@B`_'/"/dK#ek/"Y 5KK[ zK8G J?"Gek?{Jd/\KO'|Gd?h o'Zl "o{@Zk%|?!O'| oo'Zx "?"{@Zk%L?!O'o'0Zo"8{?"@Zk,1 B@g`j_o&s" "?"@Sk%>!O'Z#P?"". _"B@Zk _  U_##GC%>!8Go&!o&!o&!o&!o&!o&qKK.RPJ2FK>.k".#//O/JU JZ XK8KFYG3fJ8K xB`o&s"p "?"@Sk%2FJ3GFJq>3J \B \BB xB|GGzG_o&C%H;!yGBĐo!5C:."!F>BQFO'o'ZE{.AGN"/""4gB@ZkO'o'ZE{.1AN"+""89B@ZkK/E?# +KDZ KKCzGK?z+K@k/?" "[kK[Gk?O'˱oo'Z{@Zk%L:!AEAFRF&B5UB:#GC8GE;9FCO'o'Z.1A{GN"؄/""@ZkO'o'ZE{.1A09CN"+""@ZkK.:?" +JO'R KJo'rFK>r+JDk.P@?" "SkJXBSFk>˱Zo{@Zk%T9!AE!G9GCl{u`C:"FB0FO'o'ZE{.1A39GBGN" /""@ZkO'o'ZE{.1AN"+""59B@Zk!+/B# KDY +KXhCYG!+?y Ko' K/P@?"( "ZKK:G K?O'$˱Zo{@Zk%\8!AE!F1FBls`B:"FBGE:$CO'o'Z.A{GN"B/""@ZkO'EZ<9aCo'.1AN"+"{"@Zk1+.)" JO'Q +JDQF1+>q J8eB0K.o'0@8 "RKJ2F0K>?"4˱Zo{@Zk%d7!AEGGB{LZ@C:`#GCFO'o'ZE{.QA2Y$BGN"b/""@ZkO'o'ZE{.1AN"+""49aB@ZkA /+" JDX KxEC8GA ?xJO'@+/o'p@?"Y+KH "G@+?D˱Zo{@Zk%l6!AEFFC=LR@B9`"FBFO'o'ZE{.AGN"/""9C@ZkE;9ACO'o'Z.1A{N"+""@ZkQ .O# KO'P JD0FQ >pKIBP+.o'@Q+JFP+>T˱?"ZX "o{@Zk%t5!AEFFBO'`oo'Z` "{?"@Zk%85!O'o'0Zo"?"8{@Zk#.#!G>C%5!yGSŏ0o! 5B J_o&ﳌs"0o!4 "?"@Sk%4!"FBGO/o&s"?"YCn!˱ "YC@Sk%t4!o&\s"EBA "?"@Sk%L4!o&$ "++?"@Sk%.!D 1CN_&1 @ H@9dH@H?"YG0C9G0G Cw`K"0CG .59 @DH@F0@B@F9F@@`G3CG / F k#'BKP J5 BC1'J(1@@:9@@F 1B AC G _ E B)vH8 B:AAGZG+O'; )CZo'N"!B"{@Zk0AEFO'o'ZF1 C{N"+""@ZkO'4 Ao'Z)E Dȃ{ AJB"B_"."" *A@Zk @F ,F @KGCkGCx#N"AF^B%,!Foo&s"o!qB_ "?"@Sk%,!   B_  @ LDG*ŏ/*o#\K*ŏ?0/1&J: O'loo'Z "{?"@Zk%@,!O'( o'Z$ "o?"{@Zk%,!O'o'0Zo"?"8{@ZkO'oo'Z, "?"{@Zk%+!O'8 oo'Z4 "?"{@Zk%+!O'o'0Zo"8{?"@ZkK"KhoO'o'< "@k&0ŏs"`k?"HK4JJDZ{@Zk%,+!O't oo'Zp "?"{@Zk%*!O'o'0Zo"8{?"@Zk_0o!O'8Ko'K| Z?"ox "{@Zk%*!0/O'o'9&K?"&K+Z "o{@Zk%d*!O'o'0Zo"8{?"@ZkO'o'@ZH{@Zk#n#aG~C%,*!G To!O'o'+0rHQ J+ "QF+l?"s,kZ&Ps"{@Zk%)!o&s"0 "?"@Sk%)! /.k#9+/?"X KJY +KG J@ "YG9+?yJ8K/ZKK:G8K?O'<ko' LZo{@Zk% )! +.O'K."Qk.o'+JR KJS kJQF J?"FQk>s JX "P.TJtFP>TZo{@Zk%(! :_O'o'Zؓo!"ȃ{/"_"""@Zk!O'o'Zؓo!ȃ{"(/"_"""@Zk!#.#!G>C%0(!yGfO'o'Zؓo!"{3/"K"@Zk!o&s"G, "?"@Sk%'!O'o'Z&s"{< "?"@Zk%'!D#@O'E0Zo'Ahs"?"8{@Zk%l'!O'o'0Zo"8{?"@ZkO'd o'Z` "o?"{@Zk% '!O'o'0Zo"?"8{@Zk+GU(B@D 1@49`BO'D0ZEo'Ahs"8{?"@Zk%&!O'o'0Z o"?"8{@ZkO'o'@Z BDH{E@Zko&$s"ؓo! "?"@Sk%`&!<"GGBD"1@@:9 CO'o'@ZBDH{@Zko&$s"ؓo!$ "?"@Sk%&!<ŏ'{#GGBD"1@@19BO'o'@ZBDH{@Zk#N"AF^B%%!F ؕo!G,+8zHY K0+YG,+X#n#aG~C%t%!Gs ؕo!4+0 krHQ J8+QF4+"`O'h" Zo'&s" "{?"@Zk%$!O' o'Z "o?"{@Zk%$!O'o'0Zo"?"8{@Zk51C 5K/4+/4 #o'8+Z XK8K؃{ _"YGO'"ЃZG@Zk5 .4/4k#O'8+P JK"Fko'Zk"ȃ{_"4 "@Zk O' ?"+Zo'"L/"K"{@Zko&s" "?"@Sk%#!LRK_#"FB%#!G,ؕo!_"<K9Z@K${H@+zG<K@< 0vJ + 2B`O'oo'Z  "?"{@Zk%$#!O'o'0Z>o"8{?"@Zkg_#"FB%"!Gؕo!+ K@$k`W_+ 01C $KB@BD_" @` + H.8HO'T JKF>tHC.+# G8KUJo'F>,+&Zs" C{( "?"@Zk%"!O'4 oo'Z0 "?"{@Zk%!!O'o'0Zo"8{?"@Zk + "_#BD@!"Z@< zC@kkK_ K 51C$KB@BD?# 9@@? H`/0&HO'J[ `KBG`?{ H+"/ F0J&\Ks"|G?<+o'Z B?"{8 "@Zk% !O'D o'Z@ "o?"{@Zk% !O'o'0ZBo"?"8{@Zk + "_"BD@"R@4 rB@O'o'K@ZH{@ZkLؕo!&1C,k:[`K|H0+G,k O'o'@ZH{@Zk K11C+@hK ".ubJP#TJk#F>iK zK"/"@#Y"KYG"?K ?#bK .qK2KPJGJ0F>~K ubJ.\B _FTJ2GJF>lK  RBK {"KB/ZBKzGB?K "".rJQ"JQF">O'hk"PkZo'&s"L "{?"@Zk%!O'X o'ZT "o?"{@Zk%!O'o'0Zo"?"8{@Zk ".xJD?#UJh#G> { K@/ "&s"Z@K?"zG@? O'o'` \ "Z{@Zk%!O'h oo'Zd "?"{@Zk%!O'o'0Z0o"8{?"@Zk -k.,K.O',+"ZS qJQJo'0+rFȃ{_""", "@Zk/m.l" HU JO'Gm>uH+#l /o'| "?"XKFl ?p+Zo{@Zk% ! D 1@`A"#0.rK;9@CQ0JQF0>"k. HO'T J #F>tHo'. "?"UJF> Zo{@Zk%!D+o&s" "0 CK8 C?"@Sk%T!O'oo'Z "{?"@Zk%(!O'o'0Zo"?"8{@Zko&Ps" "?"@Sk%!DYA"FB0F.An"TJuH"1@F>!bA{#N/A/89@NK\Kp;K!F?ñ Ab @4A2 @EFO'o'ZFfA{1"N""5 `B@ZkO'o'Z"{)n@8 n@_"?""AI@Zk#GCD@FCFN.."sHRQJ#rFN>)E 0 AGO'o'pZGx{8B_"?""@Zkn#aG~CD@&CG.."rH"Q0J)EQF.> 0 AF 0@ 1@: @AO'o'Z8`Bȃ{`AF!@A"_"".""99@8@@Zk @aG{G @JEJO' o'Z&Ps"{ "?"@Zk%! @2A0 @EAFO'o'Z3 BfA{RF1"N""@Zk*n@4 n@9AE!G: CO'o'Z9G "{+"N"@Zk  O'JEZ@DhCo'&1@ HA(1@ȃ{49`BfA29@ A@5 A""_".""@Zk @GG @EK5@ !k#h ! H1H/O'&JK"\ K'BF?|H ?F.1'Jo'&PJs"G>K 1BZ?"{ "@Zk%4!O' oo'Z "?"{@Zk%!O'o'0Zo"8{?"@Zkf$k gB @gBK+ $KKkC` # @ ! H(.3HO'Q (JfJQF(>`BqHH. F3gJ"RHJo'2FH> sBZ&s"{?" "@Zk%$!O' oo'Z "?"{@Zk%!O'o'0Z o"8{?"@Zk " !9C+#: C@@$KO'$+o' "QB QBZo?"{@Zk%`!$B$BO'o'@ZH{@Zk#.#!G>C%(!yG h ,o!.JD7KG ."!F>BQFo&(s""?"!@Sk%!j K/+#..Z YKU JJvHF`F8Hp@K .Q JF >L.r.T JrJFUB O'o'Z"\/"{K"@ZkO'o'Z"{a/"K"@Zk/O'o'9&K?"&K+Z "o{@Zk%!O'8 oo'Z4 "?"{@Zk%!O'o'0Zo"8{?"@Zkď/o#K`O."/.O'o'R PJ0JQF0J?"J@ Z< "o{@Zk%$!O'o'0Zo"8{?"@Zko&s"D "?"@Sk%! n"aF~BFo&s""?"!@Sk%!+/ /"Y 5KK8G@[_##GC%!\F l|o!3uH+TJ+F Y K8TJ zH +YG+O'l /. vHKP JDF"FHo'FH "#1@@ @uHC F3 CBZo19@@?"{@Zk%!7H +BDY@<1@@YC09@@ _#N"AF^B%l!FW #GC8Go!o& s" E<;ACqHPJ+.A0F 4 "?"@Sk%! .O"o."T JrJF@BKo&ts"< "?"@Sk%!D#GC8Go&ts"0AN!8AT˱L "?"@Sk%\!E DAC ]. 1 A+D @\" HU JO'G]>uH(C\ /3 HBo'19 AXK?"F\ ?`+d "Zo{@Zk%!)E k (AKD0@4`B0@Ck8@C+/K/ #5 `B8KZ XK8 BYG 0 (AEm iC*vH< iC1A!FO'1F+o'Z2 BN"{)B"@Zk kE5AFO'o'ZF{8 BN"+" "@Zk JE E'CO'<9`CZo'(1A Bȃ{1 B."B"_"" GA@Zk @AFk/+#K/ @RF[ yKYKBzG @B =O.:":/.R PJ0JQFB k)E 3A0 A B8 ATo&s"t "?"@Sk% !Kl[o&s"| "?"@Sk% ! M8!m4m_F0MCJ,-FM6@J$( Fp F.Bm `.7J@A?FN.BSkO'o'Z{@Zk#N"AF^B%( !Fj #GC8GL0o! "?"Z;C< CnO'!˱o'Zo{@Zk% !o&s"EBA "?"@Sk% ! LRk0`B8`BK O'8Ko'4 Z( "o?"{@Zk%8 !O'@ o'Z< "o?"{@Zk% !O'o'0Zo"?"8{@ZkBD_#n#aG~C% !GQ  @o!+0rHQ J+QF+.J; /o&s"4 "X K ?O?"@Sk%d !O'Oo'Z "o?"{@Zk%8 !O' o'Z "o?"{@Zk% !O'o'0Z-o"?"8{@Zko& s" "?"@Sk% !<HlO{HKZ@KCzGlO G1"8K"@Zk5O'o'`Z?"h{"1F@Zk@GG`朆4H5$HHJG4CBGGJ C$KúB@GGGGG9J C$K/KFC8`G;gK {CDGGD$1@19BD_G_##GC% !8GMz/zKMm!_FCJ F6@JFpGC`7J@AGNCSkO'o'Z{@Zk#N"AF^B%x!F 8/8K mD/K[C-Q@1  _G_##GC%!8GLz/zK  D0.0JC@mS@_G_##GC%!8GL#!zC < 0.0JmD.JSB X@Y @_,A;@#v@HC@-_DQ.QJB2`_#TT@4!//"Y 5KK8GB&` @#@#v@HC@-_DQ.QJB`_#TT@ //"Y 5KK8GB`O'oo' Z?"({@Zk%X!O'o'@ZH{@ZkO'o'@ZGH{@Zk-.a.JaJ1H2GJ 2B U@O'o'@ZH{@ZkO' o'@ZH{@Zk, O'o'9 @ZH{@Zk#n#aG~C%!Go! ?  0B @8B@D+GFl "k?"usBTBBADTDG@Do&GT G\K@GPF:GK|s" ZC@Sk%! ? @DQK@RK@SK@1rs=`BUK@?#u# #C@DK@ o&s" "?"@Sk%!k 0`Ck cC8`CO'QK@1"(+o'Z&s"{?"$ "@Zk%,! K@kO'o', "0k?"Zo{@Zk%!O'o'0Zo"?"8{@Zk_#"FB%!GLo! K1@$ %$C$@O'e#8kZo'&s"4 "{?"@Zk%X!  O'o'@ < "Z?"o{@Zk%!O'o'0Z]o"8{?"@ZkcD0`@D b@@&B8`BG @$ DD0@D @@&C8`Ck\_O'oo'Z(o!{ "?"@Zk%l!O' oo'Z "?"{@Zk%<!O'o'0Zo"8{?"@ZkO'o'@ZH{@Zk#@ SAFETY013.A [EVERHART.JTDEMO]ZMENU.EXE_A;1VAX71;1A >yN"AF^B%!F@o!P!L/LK) /,? l/\ KlKG HH@<? @ ,? @@.O'.o'?"JU J "F3fJfJkZo{@Zk%P!O'o'0Zo"?"8{@Zk#GC8G/l/L#n.N"\ KzKSrJG&H( H"A # .;gK# J1CtJ'JFn>'/sJ4 C/Y'KKzJ"YG'?K#G.R\JrFG>,/ /k//Y 5KKzK\ K8GGBl.L.," /.S qJQJX KJrFG4B /L#l/ "+.K.zK\ KR PJ0JGQFPCR`/.""yJXK~#8G?g/gK\CEg.~?"G"At2JSrJ"Fg>/KD @:&C$=@"`A#"Q@1BD5/B'.GDFA8KVFDD'HVFT`FD@VFD @PFQ'JrH4ׇJQF'>AC0C BA"/0".3gJDJ\K4J8BK; B?GFGpHF?-l.,"L.S qJQJrF1&J&J$B,/" /Y 5KK8G5JJB@ .l#/P JKF;fKfKtC .*_"g"uSJTJF>G/ #'#{KZYKzGG?x "FB0Fo&d s""?"!@Sk%!M !m_F͠CJmF6@J FpFB`7J@AFNBSkO'o'Z{@Zk#"FB%8!G,/, ,K 1@ Q@a! `/c/A! \ KcKv`HGCGD@B.""."R PJ0JQFBP5fH$/# KY $Kd#YG$?yK {HD/ZDK:GD?/\ KF?|{H.PJG>D V 1@s$.#Q $J$>D.RDJD>..$/U JJY 8KF xJYG$?yxJD/ZXK:GD?a! {d 7/$" qH\ K?.PJ>D.R QJrFD>rqHd.SqJSFd> " 1@?./d#$/ {HJX KY $KG JYG$?yJD/ZDK:GD?/\ KF?|{H.PJG>"$A! D uHM !m_FMCJFm6@J FpFB`7J@AFNBSkO'o'Z{@Zk"FBG?#.;$KGaGFVG`G#VGO'o'pZ o"x{"_"!?"@Zk%!PF,., H,J5#N"AF^B%!FҀPo!8KO'o'Z&Ps"{ "?"@Zk%!O' oo'Z "?"{@Zk%T!O'o'0ZHo"8{?"@Zk/hO#@KO'o'9&K?"&K,+$ "Z\o{@Zk%!O'\ o'ZX "o?"{@Zk%!O'o'0Zoo"?"8{@Zk.ď#Jo.O./"O'S qJQJo'rF1&J` "&Jd+?"Zo{@Zk%P!O'o'0Zo"?"8{@ZkO'o'Z"{h/"tO"@Zk_#"FB%!Gro&s"o!h "?"@Sk%!%&  .`/!.@/JQ !J@K[ `Kv HvHzG0F GG2vH3v HSB o&s"& + "?"@Sk%T!O'o'Z"{ &"F"@Zk&//O'0˰o'Y &KK&8G5Js"JZ "{?"@Zk%!O'L oo'ZH "?"{@Zk%!O'o'0Zo"8{?"@Zk/f#K`F."&.O'o'R PJ0JQF0J?"JT ZP "o{@Zk%C%!yG#<Ko."2CGJSpJt0JHo!Fo>o&hs"5 C "?"@Sk%!_#.#!G>C%!yGP#GCFO'Z#`!?" ". GB@Zkm.P?"M"t2JSrJM#Fm>쯢-##"_ |?" NO'.lno'xoZ!{@Zk%!"FB0FO'α"N"Nm"nZo'&s""{?"!@Zk%\!Mm$!_FCJMF 6@JmFpF B`7J@AFNBSkO'o'Z{@Zk##GC%!8G0HN#AG^CzGO'xϠZ# "X!?"GB. @Zk-.Q# "rKQ0J #QF->o"O'#mf"|쏢"_ ?"  ,no'.Z!{@Zk%!#GCFO'α .".M"N"Too'Z"!{?"@Zk%!"FBG-#.L#"DNO'to?"no'Z!{@Zk%X! .?" JCA@ l?`"FBF#.#.#Lf"no'"NO'{!Z?"@Zk%!..#.MQ qKP.RPJ2FP>BDMm(!$͠_FCJF6@Jm FpFMB `7J@AFNBSkO'o'Z{@Zk#"FB%!GgD.#!G>CYGO'Z#xϠ "D!?"GB. @Zk/S#pmK\K_ F?/ -|OM.J3gJ`#GC8GM#m#NnO'_"No'f"Z"?"{!@Zk%!m"m?# / KB@ l` .?" JC@l`O'Z#?" ". GB@Zk"" _ ,/_#,KC`  L."LJ3B L/#LK;C ."!F>BQFm""nO'#o'f"Z"?"{!@Zk%x!.#!G>CYGO'α_"Nn#n#Zo'&s""{?"!@Zk%!7_`"FBGO'Z#`!?" ". GB@Zkm/M#T?#|:K[zK_ Gm?  |/-l.lJ2GJ@#GC8GN#NO'αm#n#Zo'&s""{?"!@Zk%,!O'o'@ZH{@ZkP"FB0FO'Z#`!?" ". GB@Zk.U_"m"uSJTJm#F>M#_""_ ?"|/ -nNO'o'xoN!Z{@Zk%\!n"aF~BFO'?#α". #o'Z&s"{"?"!@Zk%!O'o'@ZH{@ZkpE;7`KqE!;F;cK "N4Gn F EkpE27@JqE2F2CJ!R& " E FN4GNnNkpE87KqE8F8K!<' E F4G"n NNkpE;7`KqE;F!;cK "|{'N4GN Fn E $ΰnkpE27@JqE2F!2CJ "R&n4GN FN EkpE87KqE8F!8K "' EN F4GNnkpE;7`KqE;F;cK! {' " E FN4GnnnNkpE27@JqE2F!2CJ R& "N E FN4GnkpE87KqE8F!8K "<'N4GN Fn E $nkpE;7`KqE;F!;cK E|{' FN4G "(nnN$ΰ nkpE27@JqE2F2CJ!R& " E Fΰ4GNnNkpE87KqE8F!8K'  EN F4G ",nN($ΰ nkpE;7`KqE;F!;cK {'N "4Gΰ F E $nnkpE27@JqE2F!2CJ R& N EN F4G ",0nn($ΰ NkpE87KqE8F!8K " '4G F ENNn $ΰ(,0.4nkpE;7`KqE;F!;cK "{'n4G F ENNn $(,.0N4nkpE27@JqE2F!2CJ FR& E4G "N8n4N0.,($ΰNNnk3AJ> 1!BrF3BJ /FrF3DJ;BrFG`QK`[K2F;F0>k0.\KS[JGQ;J?3F0>krFF3DJ`qCp/[pKrFSPJ1$B{Fp?#F  F `P>B;bC`P>BG`P>B p/RQJ[qKrGp?kP>1$BP>P> P>B? 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p  0 @ P ` p  0 @ P ` p  0 @ P ` p  0 @ P ` p  0 @ P ` p  0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p@ SAFETY013.A [EVERHART.JTDEMO]ZMENU.EXE_A;1P;21 : 0@P`p 0@P`p 0@P`p 0@P`p  0 @ P ` p 0$$FV1.1May 18 1993 12:51:35ZMENU01-%iCGOCGO@@ACGOCGO@@A[H[2K@jqFF")Fj,Fj4F?F@FHFLFTF\F dF&kFZlFZsFzFFFF FFRFfFFFFFFFF:FNFFFFFGGG GGG GF$GJ*G^.Gf3Gr6GvEGHGLGOGXG:^GNgGvlGoG~GG G&G.G2GFGJGvGzGGGZGGGFGNGRHHH HHHHH H&H )H .H 1H 9H. HH QH YH: hH lH {H ~H H H H H2 H6 H: H> HZ H^ Hb Hv H H H H H H HV H^ Hz H I I. I. 1I :I OIVVIZIaIeImI>vI}IIIIIVIrIII&J*J*NJWJvJ~JJJJJ>J^JJJJJJJJBJjJK1Kf=KAKGKNKWK>eKjlKrsKzzKKKKKKKKKKKzKKKKLILLLULXL_LhLkLrL{L~LLL*L.L^LzL~LLLLLLLLbL~LM$M+MB 4M^ 7Mb @M~ HM JM `M eM mM!vM.!yM6!MJ!MR!Mf!Mn!Mv!M!M!M!M!M."M>"Mv"M"M"M#M"#NN#N#(N#-N#5N$QN$TN$sN$N>%Nz%N%N%N&N&N'N'N'N'O'O'O'$O"((O:(,O>(4Ob(9Oz(@T>>GTV>TTn>XTv>\Tz>`Tz>hT>nT>T?T?T @T@T@T@T@T@T@T@T@T@TAUJAULA UnA UA(UA0UA8UA@UBHU"BOUVBPUVBWUB`UBiUBqUBxUCUBCU^CUbCU~CUCUDUNDUDUDUDUEUEVE*VF0VF6VFcVGlVGrVGVHVHVHVIVIVI WJWJWJWK(WK1W&K4W*KIWNKaWKlWKtWKW4LWVLWfLWLWLWLW"MW&MWnMWzMWMWNW"NXjN XvNXNXN(XN1X&O8X.OAXJOJXrOMXvOPXzO^XO`X,PbXNPXPXPXPXZQXbQXjQXRX"R(YS*Y2S=YVS@YZSNYrSRYzSXYSZYShYSpYSsYSYTY>TYBTYTYTYTY*UY.UYjUYnUYUZUZU"ZVV*ZrV-ZvVCZVLZV]Z^WaZbWjZjWZWZWZWZXZ:XZfXZrXZXZXZYZYZ"Y [nY[Y)[Y;[Y=[YC[YR[Zd[Zf[&Zp[\]?\]A\&]L\2]Q\:]V\B]X\F]l\^]p\b]|\r]\v]\]\]\:^\j^\^]^]^]^]^1]*_4]._B]v_`]_j]_]_]_] `]`]`]`]`]2a]6a]~a!^a$^a0^Bb3^FbD^bG^bH^bZ^b^^bh^cl^&c^~c^c^c^c^c^c^d^&d^d^d _f._Nfp_Fgt_Jgy_Rg_g_g_"h_&h_>h_Rh_Zh_jh_nh_h_h `2i,`fi/`jiF`iM`iX`iZ`im`jt`Nj`j`Zk`k`k`l`>l`Bl`l`l`m`m`"maVmatm amHafnNarnWan`anbanaoaFoaboajoanoaoaoaoa:pa>paFp8bqHbqXbq`brcbrgb"rob>rrbBrwbNrbrbrbRsbzsb~sbsbsbsbsbtb$tbFtbzt ctctct-cu6c:u=cfuPcubcuqcv{cNvcvcvcvcvcvcwcwcwcwcwcwcwcwcxc"xc:xcJxcPxcrxcxcxcxcxcxcxdxdxdx#d.y,d:y4dFy:d^yGdyMdyNdySdy`dzfdzjd*zqdFzdhzdzdzdzd{d"{d&{dF{db{dj{d{d{e{ e{e6|e8|eZ|/ej|8er|=e~|Je|Pe|]e }_e}fe.}oe:}te>}xeF}{eJ}ej}er}e}e}e}e}e~e2~eZ~ef~er~e~fff"'fR6f;fPfYff\fjbfjfrfxf|ff&fZfȂfffff:f^fff΃fփfJfff&f*f g g g("gJ1gZ9ggBgggֈg&g*grg hhh. h"hʊ8h=hIh.PhJXh`h‹jhʋhhhNhdhhhhhh&hrhthiRii iBIiXiZhimiƐriΐ~i*iRiiʑiDifiiiJiRiniviijғj jjj j j%j.*j66jEjHjmjrrjzwjjޕjjj  @0FF!@=:p` G`  0? @@VP  8( $@ 8] R@ 60@$  !  P@p`,;h00P  @ ̐`A f" ` ,@0 8 ((d H0$T0@{ $H0R0@) A2{W 0 H@$ @@&x0ms av8| X  1 H@20a L & „ H@20a X` `p(H@($ !CW Q1Sp٣ T` 0P( 0@:68 qp,``P{@8@<= 3,``Ap`@L(G` $ U((P"D ` &C`KD C `D<20 pfHp@`.<@dae  ;&H+ L'< 0< H` @X;( lp y `̐ / @+p *` **T</^+ Py PUTT|  Hl0Ll0PlTlXl \l`ldlphltlPxl|lplll`lllllll0 lpl l ll 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p   0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p          0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p   0 @ P ` p         @ TIE$SHARE@ FORRTL_TV@ LIBRTL_TV0@P`p 0@P`p 0@P`p   0 @ P ` p         @ TIE$SHARE@ FORRTL_TV@ LIBRTL_TV#*[EVERHART.JTDEMO]ZMENU_SCROLL.EXE;3+,.$/ 4$ - 0123 KPWO 56x?7ꐙ89GHJ0DX0205(E)ij ZMENU_SCROLL01 E)i05-05   # $  ?B!d FORRTL_001! LIBRTL_001@ SAFETY013.A #[EVERHART.JTDEMO]ZMENU_SCROLL.EXE;3$<[2J Currently on item !UL of !UL [m [24;1H[7m Type H for help. [m[;1H[;1H[K[K[24;1H[K[46C[7m[m[;1H[7m[1;24r[1;1H[1;23rM[1;23r[23;1HDWIDESYMBOLSP1.MENUITEM[?25l)[18H[J[18;24r[24H[K-------------------------------- [7m H E L P [m ---------------------------------E Use CONTROL-W to refresh the screen. Use the up- and down-arrow keys to moveE to the desired selection. Use the prev- and next-screen keys to move faster.E When the desired selection is highlighted, press RETURN or ENTER or SELECT or E DO. If you want to quit without making a selection, press E or Q.EE[5;7m Type a blank to return to the menu. [mNONINT, ZMENU must be called only from INTERACTIVE processesEMPTY, the menu file contains no lines to displayINSUFF, the menu contains fewer than one selectable itemCHOICE_LINE!ULCHOICE[24;1H[?25h TT TT SYS$INPUT:SYS$OUTPUT:SYS$COMMAND:!ULSYS$OUTPUT:SYS$OUTPUT[?3h[?3l (h$@Xhg" |H ,Mggggg88g@ g4 D gq   ` \    h   \ ` X L o` QPp Q R FG 2 %ZMENU-F-    x  g$ G, H P d t  0h  # xx  t  0h   h   X x | X SYS$OUTPUT: t||4xt h 'h  #h  0h h!h (0`  $CMKRNLCMEXECSYSNAMGRPNAMALLSPODETACHDIAGNOLOG_IOGROUP ACNT PRMCEBPRMMBXPSWAPMALTPRISETPRVTMPMBXWORLD MOUNT OPER EXQUOTNETMBXVOLPROPHY_IOBUGCHKPRMGBLSYSGBLPFNMAPSHMEM SYSPRVBYPASSSYSLCKDhTh \hph(8h,lhh0P4V^7Ѽ0V8^(8Ón ^( nA AV^$(V^0HX[мRHI[RtRBP@QPQďPQ@= R<,PPPHLP`d%HP[PP P @2,޼@$P P\X 2d` 2p޼˄hPPˠ˜2˨ˤ޼Pˬ ˴PR˼ ~PRRROT[}PQP}PQP k<PP PQPQ ,  $PQPQVzVR{RRRRWW RRX< RXRPQ Pa K( f2f0P PLH  2TP "p8+T|PT  ӇPyTPPPPPkPTPTTPPPPP @PPP P@PPlQмQPP@PA`PЬQaRFSYcSޑR)*S SRԄ*P4bБԄS|PbSТޑPdTkݏlPެQNT1}HH[kIH<[}PQPkhE)i0!OZMENU_SCROLL_TV01V1.1$ $ $ $ $x$< $J!6d FORRTL_TV_0016 LIBRTL_TV_0016 TIE$SHARE_001[2J Currently on item !UL of !UL [m [24;1H[7m Type H for help. [m[;1H[;1H[K[K[24;1H[K[46C[7m[m[;1H[7m[1;24r[1;1H[1;23rM[1;23r[23;1HDWIDESYMBOLSP1.MENUITEM[?25l)[18H[J[18;24r[24H[K-------------------------------- [7m H E L P [m ---------------------------------E Use CONTROL-W to refresh the screen. Use the up- and down-arrow keys to moveE to the desired selection. Use the prev- and next-screen keys to move faster.E When the desired selection is highlighted, press RETURN or ENTER or SELECT or E DO. If you want to quit without making a selection, press E or Q.EE[5;7m Type a blank to return to the menu. [mNONINT, ZMENU must be called only from INTERACTIVE processesEMPTY, the menu file contains no lines to displayINSUFF, the menu contains fewer than one selectable itemCHOICE_LINE!ULCHOICE[24;1H[?25h TT TT SYS$INPUT:SYS$OUTPUT:SYS$COMMAND:!ULSYS$OUTPUT:SYS$OUTPUT[?3h[?3l (h$@Xhg" |H ,Mggggg88g@ g4 D gq   ` \    h   \ ` X L o` QPp Q R FG 2 %ZMENU-F-    x  g$ G, H P d t  0h  # xx  t  0h   h   X x | X SYS$OUTPUT: t||4xt h 'h  #h  0h h!h (0`  $CMKRNLCMEXECSYSNAMGRPNAMALLSPODETACHDIAGNOLOG_IOGROUP ACNT PRMCEBPRMMBXPSWAPMALTPRISETPRVTMPMBXWORLD MOUNT OPER EXQUOTNETMBXVOLPROPHY_IOBUGCHKPRMGBLSYSGBLPFNMAPSHMEM SYSPRVBYPASSSYSLCKDhTh \hph(8h,lhh0P4 @ SAFETY013.A %[EVERHART.JTDEMO]ZMENU_SCROLL.EXE_A;1;7)@>?@ SAFETY013.A %[EVERHART.JTDEMO]ZMENU_SCROLL.EXE_A;1;7)>^@ SAFETY013.A %[EVERHART.JTDEMO]ZMENU_SCROLL.EXE_A;1_A;22)Q>}@ SAFETY013.A %[EVERHART.JTDEMO]ZMENU_SCROLL.EXE_A;1_A;22)B>''O[^,: < YZUJWЇPXŏZQP^(PAn^SV ^( ݗn VVDVX^HL2 X^VYZ3VЦ pt`P\^(n$^($n^(n:x:\^|ˀ \^ ː ԫЦ P@æ PPի ˠ SY^(;nŏ P«^(@nЫXX\ ^( n \\ˬ\Y^˰˴D Y^Y IЦ *i1ji  ~1i i i P"i/Ѧ Ц P@\| XX1P P1i?Ѧ 1VPЦ \Ѧ {LrXæ QQ{\ P\q1! :iEiQ iHi? Pj1iAѦ 1צ iB1Ѧ 1֦ Ц P@c իDXŏ P«^(@$nЫ\^(.n\\\X^X^æ PPXPXkX1Ѧ 1Ѧ1Ѧ|צPPZZQIZZZ^(nŏPЦQA#QQ^(Q@{n^SWW\^(ﻔn\\\Z^Z^vѦoѦe֦֦ԭ^(qnŏPЦWGWW^(W@nWZZ\^(Tn\\ \^$(c^XkЦ 19iM)iQ P1Iﰚ[AP 4 (m+P`PˏPQ\Q\\\ÏPl" 8P@ PP\`Vpftˀ Wˬ~~߫ի ggP@g1f!˸f˼fj\)ëPЫQ,n PAf kf!1vgf*ݷ׷Pg@ηX@ SAFETY013.A %[EVERHART.JTDEMO]ZMENU_SCROLL.EXE_A;1_A;22)h>P,X PfXŏgX,f HdPPЫPgXPHgg1 g q PPggPPeN^4Hș[(8HX L B P|Hԙ[Ѽ1V<^(V^7Ѽ0V8^(8Ón ^( nA AV^$(V^0HX[мRHI[RtRBP@QPQďPQ@= R<,PPPHLP`d%HP[PP P @2,޼@$P P\X 2d` 2p޼˄hPPˠ˜2˨ˤ޼Pˬ ˴PR˼ ~PRRROT[}PQP}PQP k<PP PQPQ ,  $PQPQVzVR{RRRRWW RRX< RXRPQ Pa K( f2f0P PLH  2TP "p8+T|PT  ӇPyTPPPPPkPTPTTPPPPP @PPP P@PPlQмQPP@PA`PЬQaRFSYcSޑR)*S SRԄ*P4bБԄS|PbSТޑPdTkݏlPެQNT1}HH[kIH<[}PQPkqK{#P.'#RPJ2FP>./&.1"/U JJQ..Kq. FX/QJ8/P JS qJZ XK8KFrF`C B YG qC  A @AeGOA XJA5KGB!DF6G D5D6GT@G0A6GPF;gKEG {C FO'o'Z1 C{AF41"N""@Zk41A&n@2 n@EFO'o'ZF{59aBN"T/""@ZkEk/D0@DK# H[ zKo&GEk?{Hs"D/EBA\KL "|GD?H˱?"8C@Sk%h}!AEaF&"HBU/JE5/ 0@A IAX UK5KZ UKG0C KY5KFU?pKsFF5?8C8@B$51C F/ &/ #&Z XK8KPs"YGp ȧoO'` "?"tko'Z{@Zk%|!#GCFO'o'ZE{.qA2y B]/" G"N"@ZkO'o'ZE{.A4dB"+"N"@ZkO'o'ZE.qA{N"`/""8yB@ZkyK/:?# +KZ KKo&zGyK?z+Ks"xk/EXC "[kK?"[Gxk?|˱ PA@Sk%{!AEAFRF,Bo&s" "?"@Sk%t{! &/ " /f# &"Y 5KK"8G@Z@ZK./ f. F.P JK&/S qJQJFrF ;B0@ KY 5K4 ;BYG&?yK8@F/ZUK:GF?o&s" "?"@Sk%z!a1qA GE!FO'o'Z1F{2yBN"s/""@Zk . . f"G U JJFF`BYsB8 K2ACDDVGDEVGT`GAFVGPF<ׇK CO'o'Z3 0B{ARF41"N" "@Zk 8QAEG pAxAO'o'ZG{9YBN"v/""@Zk .E PA# IP J)E0F >LBo&pI+.s" ,AXACQ "˱?"@Sk%Dy!AEFFB.#!G>CYGo&ضs"/%"()!?"!@Sk%x!n#aG~CGo&s""?"!@Sk%x! F. " &.f". #R PJ0JT JQF J*_#F>tJ.UJF>)/8KC` .?" JC@2. "JuBo&̣s"?" "@Sk%x!O'o'0Zo&8{s"?"@ZkI/)#~#YK;C)._")JB`o&̣s"?" "@Sk%w!O'o'0Zo&8{s"?"@Zk.#JB o&̣s"?" "@Sk%\w!O'o'0Zo&8{s"?"@Zki/#iK\C."!F>BQFo&s""?"!@Sk%v!31@`B 3aJ3W`JAs&DsAs&Ds"k@ /?# KB0@. / f#P JKF`C5`Ce?. F" f.T JrJF@L@̧! F/ # &/Z XK8K!YG(CA; C&. " HQ 0JDQF&>qH 1@ F.49`BRPJ2F F> /?# KB<@. f# /ȧ/P JKF`CqC@.F/ &/ #. f" .Z XK8KȧoU JȧJYGC F C AHAȧ! F. &. "h!R PJ0JQF!pB"@4 pB&/ # IY 8KEYG&?yI 0A F/ A8`CZXK:G F?I.)" "QJ3BIO'&Z|uo' "?"{@Zk%t!)/E_#)KC` .Q?" JC@o&̣s"?" "@Sk%\t!O'o'0Zo&8{s"?"@Zk.H"JuBI/?#IK;C"FB0Fo&s""?"!@Sk%s!21@@B `2AJ2W@JAR&XRAR&XR"k,.A#JB / f/ F#\ KzKG@C5@C. f. &"R JqJT JUF81@B KSqJ4GyK>:9@B3Gq>!/B"KpC . F" f.ȧT JrJF@BUB|/ f/ &#Z KyK\ KPG0@C 9J[yK\Fr9J?8@C[Fy?/ . "f/F#X KJ[ zKG@Y@o&ȧ9s" " :K?"Gf?{:K/\K|G?@Sk%8r! R f. &" F.GFkS qJQJ0ArF BU1B4JGBDDGDEGT GFGPF:GK ZCO'1 CZo'AF{41"N" "@Zk3AEaFO'o'ZsF4@B{N"M/""@ZkK/E ЀA+# IZ YKo&zGK?zIs"Ek/C A "[yK?"[Gk?˱ؠB@Sk%p!AEAFRF(BF/&# / "f/ .X K[ yKJYKGzG 4CD< 4C(C0 C?"+`.F"f. " / &/rJT JY 5KKF8G@BB UB@./f#P JKF`CaC .f.F"T JrJF@B5@Bf/#F/f"Y xKXK[ xKO'o'ZRF3 B{"/"N"@Zk/".&"F.GX Kf.JQJGBZB9@KS qJ CDFvGDrF @DvGTGT/@vG4PF0J8A BEGO'o'ZAG{9 BN"41""@Zk'n@0A: n@ @@EFO'o'ZF1C{N"/""@Zk.E A IT JABF>o&tI.s"JE CUJ "F>˱?" LA@Sk%m!AEaG{GJCF."&.R PJ0JQFBB`/."/X KJGBB@&..f##\ ;JJQ ;JG0C {JPJF;>t{J8CF>F/4Af/EFXKY xK[ xKuIo&  /s"( "?"X KF  ?-,CM,C$˱@Sk%\k!EA!F1FB"`BFB B B:GXG8GuB.f#/ &" F.P JKR QJF qKrF F>rqK f.SqJSF f>w.M#JB o&̣s"?" "@Sk%j!O'o'0Zo&s"8{?"@Zki/Q#iK\C."!F>BQFo&s""?"!@Sk%0j!31@`B 3aJ3W`JAs&sAs&s"k|A#"FB%i!Go&ts"Xo! "?"@Sk%i!O'o'0Zo&s"8{?"@Zko&ls"?" "@Sk%|i!O'o'0Zo&8{s"?"@Zk.#!G>CYGo&s""?"!@Sk%(i!o&s"( "?"@Sk% i!$ #GF GD!D!DG DGE,1AGEF6FE F6FX@F39B6F B6F!"FBF#9@G!GFVG GDVGDGX`G%o&!VG@ls","VG< @?"!@Sk%h!o&(s"8 "?"@Sk%g!o&0s"@ "?"@Sk%g!o&(s"P "?"@Sk%g!o&s" D` "?"@Sk%g!K.+. "qk.O'R PJ0JS kJQF J&Fqk>s J p.o' "?"TJtFp>t˰ZHu{@Zk%(g!o&s" "?"@Sk%g!#GC8GO'DZ#N&O'ڂo#n#_"XtNo'Z"!{?"@Zk%f!"FBG'O'+#.#L|no'Z"!{?"@Zk%Pf!"FB0F&O'K"N"Puo'Z"!{?"@Zk%f!#GC8Go'O'T{o'"Z?"!{@Zk%e!0B'8BS@/"GUKFJ"9B5BaG5BVGڔ`G G=BVG3B4 GVG+. .#K.Q rK?"k.SkJSFk>o&˰0s"@Sk%d!-O'o'+"Z_"8 Bȃ{ B.""@"@Zko&s" "?"@Sk%d!+F#G+F/"[KgK9dC5dCAF5dC6Fє@FF=dC6F3dC4F6FHgO'0`B&/8`Bz/&KzKCȧo'0Bȧ/8Bg_"&"ȧ"T@ȧt"+"ȃ{:9 CO' 1 CZ89B(1B@Zk gGFO'P{C<JZo'CEEȃ{6FE@6FT@Fd"6FPF3gJ_" sBo&s"&" "@Zk @ XA'_#GF :C:CF:CGܔF"`G :CG:C4`GG' o&ls"?" "@Sk%b!O'o'0Zo&Qs"8{?"@ZkȧO@o&ls"?" "@Sk%Tb!O'o'0Zo&8{bs"?"@Zko&s"..U JJF@ @ O'Z# Hz//&1"[ zKGz?{H/\K|G?Q.̧R QJ JrFQ>rJ "q.SqJSFq>o&s"?"@Sk%a!O'o'@ZH{@Zk#"FB%ha!Go&s"`o! "?"@Sk%0a!o&s" "?"@Sk%a!o&s"( "?"@Sk%`!o&s"8 "?"@Sk%`!o&s"H "?"@Sk%`!o&s"X "?"@Sk%`!.#!G>CYGo&ضs""?"!@Sk%p`!n#aG~CGo&s""?"!@Sk%<`!&)" _"0.0JB& #(.JB? Mm!_FCJmF 6@JFp`GnC`7Jn@AGNnCSkO'o'Z{@Zk##GC%_!\Fl̊o!s5`B;"FBGE:'CO'o'Z.AG{"̄/"N"@ZkO'EZ<9aCo'.1AN"{+""@Zk+.E" JQ +JO'QF+>q J&K.DhBo'RKJ@2FK>˱?"Z "u{@Zk%^!AE!G9GC}l{U`C;"FB0FO'o'ZE{.1A39FBG"/"N"@ZkO'o'ZE{.1AN"+""59B@Zk+/:# KO&Y +KDYG+?y KXgCK/o'P@?"ZKK ":GK?O'˱rZ{@Zk%]!AEFFfB> uC: N#AG^CzGO'o'ZE.A{0CG"9/"N"@ZkO'o'ZE.1A{29!BN"+""@Zk!.A" kJT JO'F!>tkJo' .D0@?"UJ( "F >$˱8CZ{o'{@Zk%\!AEFFCO'O&Zo'\r0 "?"{@Zk%\\!O'o'0Zo&8{s"?"@Zk#"FB%4\!G,o!Y o&Ps"o!Gt "?"@Sk%[!@ZO@ȧ[@; G .Q@ +H0 JU JDG >BGD /FVFDDVFT`FX Ku+HO'o'AVFF ?49# +PFZ{o'4ׇJ{ "?" B@Zk%([!O'<Ko'Z&{Ps", "?"@Zk%Z!I/O'O&/"\ K Ho'FI?| HH .P JGH >P "L+?"Zr{@Zk%Z!o&s"d "?"@Sk%|Z!n"aF~BF&O'\uo'Z"?"{!@Zk%8Z!O'o'0Zo&7s"8{?"@Zk##GC@ SAFETY013.A %[EVERHART.JTDEMO]ZMENU_SCROLL.EXE_A;1_A;22)>%Z!8GO'o!0Z:FK @O'o'Z&{Ps" "?"@Zk%Y!O'o' Z "{o'?"{@Zk%Y!O'o'0Zo&8{`s"?"@Zk'O'0蜣o'&<Ks"K, ?"@ $ "Z{@Zk%Y!O'\ O&Zro'X "?"{@Zk%X!O'o'0Zo&s"8{?"@Zk.J+/K/o'?"+KZ KK` "YG8KO'Kd Z{o'{@Zk%pX!O'o'0Zo&s"8{?"@Zk'O'0蜣O&o'?"<KKp h "Zr{@Zk%X!O'& Zo't "?"{@Zk%W!O'o'0Zo&8{s"?"@Zk+/+Kk/O&/?" "kK\ KG:FKo'FKKO'r{Z@Zk%\W!O'o'0Zo&8{s"?"@Zk o&\s" "?"@Sk%W!O'&Zo't "?"{@Zk%V!Do&4s" "?"@Sk%V!O'&Zo'u "?"{@Zk%V!D@O''KZo'x "?"{@Zk%dV!O'o'0Zo&8{s"?"@ZkMm!_FCJMFm6@J Fp G.C`7J.@A?GN.CSkO'o'Z{@Zk#n#aG~C%U!G to!?#+81C0Q JrH +QF+TJl3+uH +F vH L +@ `O'o'+Z "_" lȃ{@Zk k.K"<..S rJQ sK?".TJtF>o&s"@Sk%T!D$ 1CM<!m, _F8mCJ4MF0-6@JM$͠FpG(Cm `7J@AGNCSkO'o'Z{@Zk&1 @H L@;dH@HZ"G2C{GrG`CwJ#2C2F K.99 @DHF0BF{F@@F5C5F +.`F "'C0JR PJ9 CGC3gJ(1@@<9@@QF sB AGC`G_ E B)vH8 B:AAGZGO'+; )CZo'N"!B{"@Zk0AEFO'o'ZF{1 CN"+""@ZkO'4 AZo')E D Aȃ{JB"B_"."" *A@Zk @F ,F @KGCkGCV#N"AF^B%dR!FEo&xs"Ќo!qB_ "?"@Sk%(R!   B_  @ LDGo'*{#/&/\K?011&J@ O'O&Z$ro' "?"{@Zk%Q!O'&( Zo't$ "?"{@Zk%tQ!O'o'0Zo&8{7s"?"@ZkO'&Zuo', "?"{@Zk%(Q!O''8 Zo'x4 "?"{@Zk%P!O'o'0Zo&8{Ns"?"@Zk+#+o'O&s"< "@KO'0{?"`kHK;fKfKDko'Z{@Zk%|P!O't 'Z|o'p "?"{@Zk%HP!O'o'0Zo&s"8{?"@ZkM !m_FMCJmFm6@J FpFB`7J@AFNBSkO'o'Z{@Zk/&Ќo!01O'O&o'1&Jx "&J|+Z?"r{@Zk%tO!o&O'0s&o' "3fJ?"fJkZt{@Zk%0O!O'o'0Zo&s"8{?"@ZkO'o'@ZH{@ZkO'o'Zxo!ȃ{"/"_"""@Zk!O'o'Zxo!"ȃ{ȅ/"_"""@Zk!#"FB%N!GvO'o'Zxo!{"Ӆ/"K"@Zk!o&s"G, "?"@Sk%,N!O'o'Z&{s"< "?"@Zk%N!D?#@@O'E0ZAo's&s"?"8{@Zk%M!O'o'0Zo&8{0s"?"@ZkO'd o'Z{o'` "?"{@Zk%pM!O'o'0Zo&?s"8{?"@ZkGUCD 1@29 BO'DE0ZAo's&s"8{?"@Zk%M!O'o'0Zo&Ys"8{?"@ZkO'o'@Z BDEH{@Zko&s"xo! "?"@Sk%L!&"<蔢GFBD"1@@89BO'o'@ZBDH{@Zko&s"xo!$ "?"@Sk%HL!O'?'uH ?G/9'Ko'&XKs"F?,KO' 9C{Z( "?"@Zk%HH!O'o'4 Z0 "{o'?"{@Zk%H!O'o'0Zo&8{s"?"@Zk + _"#BD@"\@a1 B@K_KK 91C+B$KD@BD# ;@? H.2&HO'P JFJ0F>p HAB .k" _F2GJQ Jo'F ><k&Zs" RB{8 "?"@Zk%G!O'D &Zto'@ "?"{@Zk%F!O'o'0Zo&s"8{?"@Zk + _#"BD@a"U@9 C@O'Ko'@ZH{@Zk xo!&1C,+0rHQ J0+QF,+k`O'o'@ZH{@Zk 41ChK #"/zKP#+"Y"K#YG"?iK pbK/@#\KF?K #"K Kb.tBJ5GJSbJJFb>~K zKB"/ F5JY"K BYG"?lK bK qK.PJ0F>K@K ".ubJTJF>O'h #P o'Z&s"{L "?"@Zk%D!O'X /'Zyo'T "?"{@Zk%D!O'o'0Zo&Hs"8{?"@Zk _#`/|@KD"O'[`Khk"G`? rJ ."o'\ "Q JQF > ?"``&Zs"{@Zk%(D!O'&h Zo'ud "?"{@Zk%C!O'o'0Zo&8{s"?"@Zk -K/, #,+/o'_"0+Z XKȃ{8K"YGO'"Z, "@Zk3m/lk# HO'\ KO&Fm?|H+"l .PJo'Gl >| "p+?"Zr{@Zk%(C! D 1@`A#"8/zJ49`BY8KYG8?#k/ HO'\ KO&F?|H+" .o'P JG > "+?"Zr{@Zk%B!Dk "?"0`B8`Bo&xs"@Sk%XB!O''Zxo' "?"{@Zk%(B!O'o'0Zo&s"8{?"@Zko&@s" "?"@Sk%A!DYA N#AG^CzG..A"rHQ0J"1@QF.>!bA.#A8/J!zJY8K39@YG8?û Ab` @1A< @E!FO'o'Z1F{fA2 BN"1""@ZkO'o'Z3 n@)n@{?""IA"_"@Zk.#!G>CD@BYG/n#pHn"\K)EF? 0 AaFO'o'pZsF8 Bx{_"?""@Zk#GCD@B8Gn/N#|H[zKN"Gn?)E 0 AAFO' 1@Zo' 0@49@ȃ{`ARF!@A8B8@_""".""5 @A@Zk @GG @JEJO' o'Z&{Ps" "?"@Zk%?! @<A: @EGO'0 `CZo'fAG{1"N""@ZkK*n@1 n@E4AFO'o'ZF5 rB{ "+"N"@ZkKJE D&1@@@O'o'ZCȃ{ HA(1@fA<9@ A2 A19B"_"".""@Zk @aFsF @E7 ! # ! H(/;H#fKY (KgCYG(?yH GH/;gK& {CZHKo':GH?O's"{Z "?"@Zk%0>!O'O& Zo'r "?"{@Zk%=!O'o'0Zo&8{s"?"@Zki$k gB @gBM+ $KKkE` # @ ! H(.3HO'fJQ (J`BQF(>qH FH.3gJ"o'RHJ sB2FH>&Zs"?"{ "@Zk%=!O'& Zo'u "?"{@Zk%tSJ.UJF>,y/Y/[ yKYKzGCK.+. "R PJ0JQF@_$ 5/_"/@/Y 5KKZ @K8G JzG@?zJ`/[`K[G`?<..Q CYG o!o&+s"0EQ JrH+4 "QF+?"<aC.A@Sk%1!o& s"#..U JJ F`Bko&s"< "?"@Sk%1!D.#!G>CYGo&s"0An!8AT˱L "?"@Sk%D1!E DAB ] / 1 AKD @\"X K HHC8G] ?xHo'\+/4 hB29 A?"Y5Kd "G\+?`KO'{o'Z{@Zk%0!)E (AD0@8B 0C8C K#k//9 B8`BzK\ K2 (AGME  B*vH1 B3AaFO'+o'ZsF4 JB{N")B"@Zk E9A!G: CO'o'Z9G{ "+"N"@Zk O'MJEEZgCo'(1A HBȃ{3 HB19B."B"_"" GA@Zk @F ./k#  @+P JKF8CF @8C O&R".r.T JrJF@BK )E 5A0 AKC8 ARo&xs"t "?"@Sk%.! o&xs"| "?"@Sk%.!+ L2 M8!m4m_F0MCJ,-FM6@J$( FpFBm `7J@AFNBSkO'o'Z{@Zk#"FB%.!GU,Po!K9Z@K{H+zGK+.+JAK.o&&s"RKJK>4 "T?"@Sk%-!&O''Uo'Z "x?"{@Zk%X-!O'/' Zo'y "?"{@Zk%$-!O'o'0Zo&8{s"?"@Zko&s" "?"@Sk%,!0HO'JlzB|H F[`K0JGlz BO'+o'Z "ȃ{8""_"@ZkO'O&Zo'r "?"{@Zk%d,!O'o'ZD{@H"_"?""@Zk5@AO' 1@Zo'`A59@{">1"8K"@Zk5O'o'`Z?"h{"1F@Zk@GGD9H:$HH'KzG 9C'CFYKCKð'CGFGG<YKCKKQG?B8 F1'J 1BKDG@FD$1@49`BDE_GC_#.#!G>C%+!yG.JMm!_FCJ F6@JFp F.B`7J.@A?FN.BSkO'o'Z{@Zk#N"AF^B%*!F 8/8K mD/K[C-Q@1  _G_##GC% *!8GLz/zK  D0.0JC@mS@_G_##GC%)!8GL#!zC < 0.0JmD.JSB X@Y @_,A<@#v@HC@-_DQ.QJB3`_#TT@4!//"Y 5KK8GB'` @$@#v@HC@-_DQ.QJB`_#TT@ //"Y 5KK8GB`O'' Zx|o'?"({@Zk%d(!O'o'@ZH{@ZkO'o'@ZGH{@Zk -0..0JJ2H3gJ SB X@O'o'@ZH{@ZkO',o'@ZH{@ZkLo' Z@O'H{@Z@Zk#n#aG~C%'!Go! ?  0B @8B@D+GlFk "?"usBTBBADTDG@Do&GT G\K@GPF|:GKs" ZC@Sk%'! ? @DQK@RK@SK@1rs=`BUK@?#u# #C@DK@ o&s" "?"@Sk%&! k0`C cCk8`CO'QK@1"(+Zo'&s"?"{$ "@Zk%8&! K@kO'&0ko'Z, "t?"{@Zk%%!O'o'0Zo& s"8{?"@Zk_##GC%%!8GFo! K3@$ EDC&`O'#8o'Z&s"{4 "?"@Zk%\%! +O'O&o'@+< "Z?"r{@Zk%%!O'o'0Zo&8{Ms"?"@ZkcD0`@D b@@fB8B?G @$ E@DD0@D @@fC8B_k_O'&Zuo'8o! "?"{@Zk%d$!O' 'Zxo' "?"{@Zk%0$!O'o'0Zo&s"8{?"@ZkO'o'@ZH{@Zk#.#!G>C%#!yGPo!!,.,J+l.,? L.S lJLJrF HH@!<? @,? @L/'l/?" "LK[ lKzG9&KO'&K+Zo'|{@Zk%<#!O'o'0Zo&8{s"?"@Zk"FB0F.l.L"N/.#T JrJZYKF&H$H( A #/"3gJK8C{JKzGN?'."zJ.Q'J; CJrK#QF'>K"'/Y4KYG'?,. .k..JQ g.gJTBEG/~#'#A{KZYK#zGG?.JD @2&B$=@"`A"#X@C<.D/BGDFA0J6GDD'H6GT@GD@6GD @PFXKyH;gK8G?AB5B {CA.{#0_#/:GKDTJK;gK0zCJ3 zC?FFFuHF>-L/,/ #Z XK8KYG8KKC`,. .#Q "FBGo&s""?"!@Sk%!Mm !_FCJ͠Fm6@J Fp G.C`7J.@A?GN.CSkO'o'Z{@Zk#n#aG~C%!G .,  J 1@ Q@a! `c.C.AS cJCJv`HrF#F! D@/."?#X KJGBP@;fH`.# KD"P J rH0F>pK$.Q$JF$>d.S rJFd>srH.TJtF>D V 1@s.#U J>/XK?b/B/.[ bKBKP JzG pA! RD 7d." uHS dJd>.TJ>/X K8G?xuH$/Y5KG$? " 1@?b/D"/ rH.bK\ KP JG DK0F>pDK$.Q$JF$>d.S rJFd>srH.TJtF>!  uXMm !_FCJMF6@Jm Fp G.C`7J.@A?GN.CSkO'o'Z{@ZkN#AG^CzG#1KG!FO'F_"NFpZ Fo'@ SAFETY013.A %[EVERHART.JTDEMO]ZMENU_SCROLL.EXE_A;1)H>o&s"Fx{"?"!_"@Zk%!PF`., XJ4#"FB%!Gu?#O'9'KZ#<C.Ko&qzKPJ\s"`o!0F>2 C "?"@Sk%P!_#"FB%D!G,lo!K9{HZ@K+zGKo&tR""O'M?#pso'"_ mf"?"  . !Z{@Zk%<!N#AG^CzG&O'α # "_"DtNo'Z"!{?"@Zk%!"FBG-#.L'#"NO'h|Dno'Z!?"{@Zk%!,._",JBA` ?"FBG.#.N#NlO'#f"nZo'"?"!{@Zk% !N..."mR PJ0J3v`JQFB.//" LY 5KKz/8G J[ zKGz?{J/\K|G? , Q. JR QJrFQ>rJq.SqJSFq>BDM(!m$͠_FCJFm6@J MFpF B`7J@AFNBSkO'o'Z{@ZkD"FBGO'/'Z#D!?"l٠ ". GB@Zkm/S_#|MK[mK&Gm?t/&_  p1 -l.lJ2GJ@"FBG-#M#.NO'l#f""nZo'?"!{@Zk%! " ,"-l.lJTB L/#LK;C O'Z#?" ". GB@Zk?"-M"M _ ."JuB , LM/"KpC L@lm.#JB L@n#aG~CG "-".O'L"o'f"NZ"?"{!@Zk%!"FBGM#NO'α.#.#nZo'&s""{?"!@Zk%\!O'o'@ZH{@Zk`#GCFO'Z#?" "`!. GB@Zkm.T?"M"t2JSrJ&Fm>'t_  p L/LK9'K l`"FB0FO'α"N"Nm"nZo'&s""{?"!@Zk%T!O'o'@ZH{@ZkP"FBGO'Z#`!?" ". BG@Zkm/U?#M#[zK|:K&Gm?/&tm"M"' O'p1"o'"-_ n?"N  lxZ!{@Zk%x!.#!G>CYGO'α_"Nn#n#Zo'&s""{?"!@Zk%!O'o'@ZH{@ZkpE57JqE!5F 5JN"4G F EkpE97 KqE9F9#K!9' " EN F4G.nNkpE<7KqE 1!BrF3BJ /FrF3DJ;BrFG`QK`[K2F;F0>k0.\KS[JGQ;J?3F0>krFF3DJ`qCp/[pKrFSPJ1$B{Fp?#F  F `P>B;bC`P>BG`P>B p/RQJ[qKrGp?kP>1$BP>P> P>B? 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p  0 @ P ` p  0 @ P ` p  0 @ P ` p  0 @ P ` p  0 @ P ` p  0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p  0 @ P ` p 0$v$jV1.1May 18 1993 12:51:35 ZMENU_SCROLL01 E)iCGOCGO@@ACGOCGO@@A@jgjj"jj$jFjzPjjjjjnj^jzkk!k6*kR,kV|kkkkkJkkkkkkk*k.kBk~kkkk kJ k^ k l l l l $l (l -l2 7lZ :l^ Ol Xl bl jl ll" pl& vl> lj l~ l l l l l* l^ lb lv l l l l l l" l& lf l l 9mx>y*>y>!y>py"@~yR@yJAyNAyVAyAyAy.Bz2B zJBz^B!zfB.zvB3zzBKzBNzB\zFC|zzCz~CzCzCzCzDz&DzRDzVDzDzDzDzFEzZE{E {lF"{F7{F:{FM{ G]{.Gb{NGs{Gv{G{G{H{rH{H{H{0I{RI{vI{I{&J{FJ{J|J |J|6K|:K'|K/|K?|LG|.LJ|2LQ|fLX|LZ|L|zM|M|M|M|M|*N|^N|zN|N|N}N }N}N(}VO+}ZO0}bO}P}P}Q}2Q}6Q}BQ}^Q}bQ}nQ}Q}R}NR}~R ~R~R~S&~"S-~RS@~SR~Sa~Tk~>Tv~T~T~T~T~T~ U~xU~U~U~U~U~U~U~V~V~*V~:V~@V~bV~rV~zV~V~V~V~V~VVVW*W$6W*NW7~W=W>WCWPWVXZXa:Xp\Xr~XXX YYY:YVY^YzYYYY 2Z 4Z VZfZ(nZ-zZ:Z@ZM[O[V2[_>[dB[hJ[kN[rn[zv[[[[ \.\B\j\ǀv\Ӏ\ހ\]^ >^n^&^+^@:_I_L_R_Z_b_h`l:`sB`zv`|`~aa"a.aVazaaaaƁfbρbӁbBcFcc.d6dHdjd'd(d*d@eEeQBeX^e`ehereffjfffff&g(g‚Jghnhhi9iH*jXj]jbjnju&k|nkklllă mɃmӃ.m؃6m݃JmRmmmmmm mmmm&Rn5n8n]JobRogZovoyopp0` !@@ H@P` @8p  @  Ā 1q 0$u @B@@0! ,$@1!@060 00@@86 I{>p  @  0 @ L &L@$00pB8 @( 8x0C @!@E2 80`@`t  3 0C``r ~{( P@<fX` +`( #0CAt!@HA@PP0) ~ p80pBpB X@  0 fP@ "d !Q"!@0I"<20 Ip@ $@Y?L?La |e@oXOx@8 @@ D$a 0@ ,d @r p$U+$U P 4$*T</^+0I $U+TTTD \ H0L`PT X\hPlpptx|`p   0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p   0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p            0 @ P ` p          0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p   0 @ P ` p         @ TIE$SHARE@ FORRTL_TV@ LIBRTL_TV   0 @ P ` p         @ TIE$SHARE@ FORRTL_TV@ LIBRTL_TV@ SAFETY013.A ![EVERHART.JTDEMO]VDD64_LRG+56LLEUf013_ $vBk"gA(x (86x9f\L!r25ic}Ɠ'`gxX̓ -_@@ a%^ި8) **?5),b$TPn%TH ɁVp1TUܵ'}[8γ r%_$+tQ9)aS~L܍4&)◿yfLʒm@ޤ@nT)"Hi q)ާk&} Na{&B=&?@\tIƤ2Ævo:@evp~C#mMf$m"3]/Lf7m{hӱ:wtoӝ*ixNPtΕ-:X-2dfیG/',vM"UZlYիv./N`@vt(~7Y[j]zm;qrn]֨S;|DZ*KH`wLyOH$ZFb! |Z]U'jtIwLiY~#]Dg$7h Kԯ[x9` lD5[ dyQu g>3!!V}Kq3]m=g<Qėxvh6>T )6WJY/ 7@K3ssj\ 2 mI5Na䔚U&qtxatOb13&eI/ppP/3.^B%͵A>;XdI6qꏒra|"v f ,hzF,N:+De>T ~Y^~ |J UOeDE )|x(8#vZ@Lx>: ~PmIz4fϭc)thdM)h*T8-%R9-ۘXt3?T]TT4J&6ߚo)6F}y #\6fHI -f^c %K ҃Vd^:PA"; $!<1K,LWGXkl @[/~r eנ+g{y8>G ˈJdTkkQFZ(_Rw$YhA. ["}8a,HJEk/DW{"e'XЁMkK &a&@ؙ2( U*⠑Zkc)e|NpuMvS1+@k-n.'\oaxRyLҽVz|<\\iobbTDl[Ha-!&O#vO yX=6ג6{p+L7RǓx["U|)KnMf'/!X[ 6uIClt_^ uuZ h<3<" NPv,OZ)t7Q-m'0 'J P%0^7<:.z>ӽ:iL䘣=VbGi ' s3;nAD]w<~Է%dTB,C@f0PtXIhB2e_*.>Sf:G5zR8 V'&iVzK` ~\CV=CE752NHm"ȫP{A0:5]B;%Y bZzъ'hT=lĀ ja mZDiZFd<(Dxu.9,,ujuAL*'xv.' kz:80r.M"-J$rT5q3G2gb'2*$+c4)d(9IV .s|e57I0z7i&w,2K%TZ9)DF妪15&+!r~{d c@~ !T@ 3V,kϙ0At!R+7-TJMLYoFH4;_@ [[BmK'd-7t=NZ^FFtDIX7K?xk%Qsqk8.#l=#.΍a[@>g'}SX*6qƄu_]N IUwR2Y-Oa>kQ2=itB|qo hf˹.&zWr]->ڣ5i$jס_2yVLq-$66_@CFoRJ\b$G 9{\ !:j6S(cϣyVšKb|ise| i]p=ܶ Tk/Z//b޿TXidNs+}B;?xeA1qÝ{iCwT@}K +.hMW|ՁKI\<d"MXWƳWĿ>ƄKOg+!*;< ?@CWXJ010E2 °t9<1zob( 蠝hj/g\RI- %h\Kz=NCtx:+'oxD26 C @k?+'6j5OYn>Qxq3ՇSeݷd1$]>'C+sJ .e;6XP$l Sc1 DMB)+'~?CpI4~IifSuމwkĴCQn8&Qcu@9(:!TzD3!ʈ4gʱ,#^J&B+nzbvW&íMRރoWOVYsIW95ZyE g\jFHyƙe1e*|t-/3)&/OEZbt$s-+?ʼn rJ)?F/B:G _6sxh&2YMOjt`j=_Sէ=hk{cCrԨF(9Zdj{׃0Ή= ,۹ Rx1"W޴O8}q>R }5Yi?;W}!C6PC25vxHMGJl}(Nd0$Пٔpz룹>oeı2e4k"ovԠ_EKݱy`SQ9dhL$bt1 3_>Ve" vW3S Iw@.=(}&ݞg3CfGZF~w 6SNP⧈%dj}+27.kⵉcҁoc7QhbNa*/e>ݴogD(vVW`'JNM|7j-lMT0aK^!x1L)-bvءd[UVn \!bjلK~0ݽ,P/;@d5{(v ?0 %riVM*dZw_Lϟ:{f8N-e#4O $H`n~ UAuV+)gB֡ᱨ0XJ,+ $mxY*=`X6IV)b79hul~FBJ.u N-J)ya#1͑ZQ Vҹ]wl?+ 9Ijҏ`N1܎!|V/qB{#`jԳeecGj)52ANEVr e>z`NͥY,gYD2$+bnixH-G9#IQhMMPH0(<{SC]ٱvcO6u!_w :Aefajg8o(%B\-n`|H a6x D2 o"wqT+UK4e՞]1U~⥸(JJXIQyohd: ? v+@@ g`Tay ̘I~z *40#-bkeK/  Ro)=B+:hbo@Zi/!aczN'W_pd(Y-MMxiI((}SI]d+0yC<|UEZ9uʳKrŰ_I`tnǷ9J{ dce.SvwJ+fq["wJ&U(tJ;d'R" qnɲcCټÅ$Vk'9 ~w` cg}ϝwJ\7=vsyeVdEcpT ڍv3OxE@.CBΗ{K!O#4=U>5eYERwѺ{RZ=`:b4Я9.C6zoC0?wNMX r_cnU@jszUmkytfl7+,bT&h:s6nŭw7!9rFG]SzEaY1y(;Hq]q$Yew34ӯSѫN?Y|.b*9^m鈹o¿0wtfC u߸A2UFuWS8w*}-@ׂJQ_㥴p Co< kU<V}ŊP+Lko@oݓWf iN_OrPb__)UyxlQ(]Ss׾?e(#|\WO>u%mC t 8c٩:V[b2R=6q}Q{}N8½sc  x5p3Da|8RKd 23c.9Uqs'E0̃=`d#j7ƌ3[5KB'bi| ;|Qoe 'TH644 A6oDJw8^m \+MFl 3%FBˊaG;˫("n:./:8]jxSojUBʚ4vN8S782e~\ BUt}H1tXIRHU-FwEh$ggaj N(|-ѕ7{bXM+ ;O@'V#lP~$obwB"Ae2=bF1\m*TgvVg>kïTR- dإyd[?@kw*{)#  w<) 4F^dF&h<ߑc 6`"e؅:7ڥz.')|x3Xl iBX=\DQ K,j޽F`A'6Wݲ:R 7yyb@78 }2H?njkMɃdEUzd`$΅RdўiO"ԦGyW#lR0%= :GNB!skU&'u&gIWI+OtAZ~x'VNO1L,AضYV?%Z9LoWfh wOk-cΚɵBÂ׃Z/vLExI~6kګ^RANBHice$A{ks7G]6tXcL:ڂR,΀QSG<7l-瞽.1l>3|El[0J4X8aSNy(ܤI%' Ή~JRٔJRT T{Z5y"k MxDQrZ[J[S6U C9M kE!H*.Y QmI LA!:"2Qƙ:&LK1rIKFڢ xuoCgE.O ݛ bɯ 5F:/gс[c&`{lUZ:\AS3G'ٗT*6Ĕ3,粗t_ԩ=bx=7EjqhJ7AB3vL73/ܖH6}\/B.Ոc辈Y樂Ӓc=YGBF0)':4KXxQUw+zsHk]R {C}/>w `TG.L Ö%q+{No f+y>;M+UnM$s<"*#-,#C&2}u0Yp^~7,Eth +9܍հĤt5~;SǸE.x^uIyFYb n̗i`+AKA_PEr9t&Rb% 7CHQ뫾PUTͦs:7fG!I*p[c?Gπ/H;*CFV2gdP Ÿ4û7Ww4Y}X" .2 vHI̧֑Nimq:g;4]Dw6PeyD;׎J3-E7IZlzLkG{U"-}` |u)qޓqӊڍ5>!)rWrpkrWpfGKòZߢ ڜ7(gsaH|YÊ_{a8a)o׹HqE(:B# Ý6-Jn꽱Y‡ 5g1)qcs͉5$L<3} kӧ vY+2"2YXl2JdЏڇ+I>eU-<YjK=#, -v_5aĹd8~ dAm`V.\vB}/CI%t hX$0&i)]H@,ʑ{VB3z$~`Sy;B C.&!0iWri0 hmOsv 9*WQ=M(Tƭ)o[| 6sڞ?nQ.Ҡb`k=8)l@"rUs r}A)aA2<Wa?ƺ{D~5X|lI$MY@VI:/BFD{SRFeS\)1B6)ڛ7CsZ'j*% -ĸK@iij)?ݗ:UMo.|ytjB)7>MnzJ9@I1!1۔#j o>|RUĔ08hDaeZ]Lt' 3ƠYbk83m]bZίZ7b9(LȆ-k[Ϲ^oӽ`&]}k Iku=0E;P]j["PDO I5_]אH5kk$}0Z"ۏ&ρ~J-S#* D] }`sS6g΃N bl㪗{ވǂ֘721mw C:E6΃Pr_i~f4&nPVk9+f&Qm l|^Kj&d@]OP%OEol.?~rzUJ0B;$eےAPb[apx݈ pawHx܊$k룭YWi5&`qq(}# tuL6ƥd[@Fȴ$^/]f~ΧgzbDAUcZ' E\adu |9ڐe>5`PzS.6cT SMVܲu'Z1yw&2ЪB$aSRAlg~rx;pNyc;ѺN_{+\ds%MeY%$2OaXtjfD+{T /?io .,hiP)a:*M4W,SSjӼ׷aw|e1|Tz7)yטoZ`F]>r 5>??^ S<9Yx  x-%DkOd"̤\,QA>X޸4ԆWqN-< 09[AiCcUe~k±Cr{u% (ͼNgr1<i@zS1~ wojeLzU?fR%{LT :zN3<$ykc%zv“ f KUGc/Cdˋ=җ$S;4|}Z<Sy͊?u \286}\zQw9 |9AOC &u]S,3`{zw(Z1,Q5DWap];\1&׋M {p Jg4#B '@E;\ _bl)@r>IW"x{^Eb yo5NbSxth@'ǜ\(.;Q\lE{[72[PfynuRTrAiY-}-sJ9mRzp>,B[B@žhkebS^HnYN90ڮTd` x;a#bˁ ԓK!^_Iǒ*f'~ ws#͹H%.ig溓oq5oL!H:`Ub ӾKeYUB/wˋ?*ݗgHZڱ>j{k[N;bCq|ygd(LPGmlOZjw5`@VCB@1 YF;]'K0[E\KAlGwtXA>DV0kʧ?04yZՑqȾ\cLh9tMp+9J=.ѡ^sҬ"\@, 4MyQc7$6SqԚMt-gʘvm;Jyf{m&V,."ɼZܹ&TFwu—/,/2ߛ yKqxr$z\;D.p Tˇ|NKGB)Z%2ch1^T&څKl3TZa=h {zbYV+=edVU x~T$1UZHjVs{ q{ ͞z:@\ao oH{n68´"i莵,Oug$lG|fu6K  5.Q/miY]ھz]_pTqXQbM@,Ri kϑM4 إY"A"qEi,e+OM>PyK`LT '|@ifśbsƚ@f1rQ Ք)ɛr侪]0 <4C]^UJ;a!LN> ^If$y pʿ(f4.kp;jϫ2@HW0}- c°ɴW 7L`)ITtP =jy׼@{ rdzR_*&sȉ& qѭf,®TPT>٨BDߠ6%՜4LiLJqs]= &(~c{:'E{L ^1幤sxy%•<7O<!D}i=\4|HT)t"A"9Qm""sJZFr?=HZk4GZ~7b`D@r*Ug6'J?/{BUՄ2;'5$93I$A$V #~:UZmQ [ߜ:9ժ+(f(4.k4Hqx$(yk7jyYһg/\/O / |p =#,d@ Kޜ d"XE⡑MFLĩ1DAc >ΑdLe~ߙD_:Mo?2eGGdO^H WLZ_"A#v[_Jy][ cYFG{ F>w)_]N^dž),,P Ǧ4ڍZ?}[|݇<>\ɆbX Zhڇ;홣5&/lGDNE;vL%q or{ };yr'y|a;ׄU+RNRœe?^[KLD^Y~tVYC7ۖf.h>4ţ_mb`o.β殅dV`[gOERYr^aWŘFD6b<Z‹FsZy 43S U l* h@/,vRE1t2J7'.IӀ"O7Qar=bңp #@N[\(2ITT.[Lلjقgv @'+]L߸5/x1hےH=Wb*k~_29G墏:tAو|2F-ct:SyTQNyxu@X9_+.t,A!x!@# $?{w=4  MSF^ SQ! 6B߇(%P].!Uoɡ?6t]@ɜ  ,ىnYQc'eFKEuKI?w}mE-#\D>Gzkk1^MrA@ :t>D, &6 Ȥ$<3S'!> >xbRB΀嶉R֠F4х>rvLEIƸ @ Zt9 f%G0ʫ 2~i8tRU3n|haSEU /$_ #:BsAz |8nCԻ $1?kfJKOn?Po ;)o Ⱦy6P <ǭ;_;΄OBXҷGd.k 8EZm(r,2z1)p0:H#A((nnA4:9:c\"ٛS1M-e-U,C 6S`n K\V36J NYIm_13ľcIh WnGstͦ;f_:QѮ ! p`:S9gpHLc(Ϲ`QcZ 0UʅXI>N\?BEqL|$Ij %?ꯉ}aZнn%o}#$))gZr- (=1x azL3ʵ"o ;뇂*zq}E6ppʨBJ(}7K&E}}A}?qT5~`!$HnXmd"x#(2eE̷h1e> TN&žΛcC)Hp^ydF@Gٙz1oxX[8E+)oB2Ge8P\%*J:rAR )^ #^1D_vQ(G X5&_C W7oZ6/UE`P`EO/˺*.QDE;yܲҹp,A@\|wt}$/FI3&N\KǖBesg 5!ܣ˺<.<`M&!ĚvcNO7q}nN!wJ&@ _K[ؗxAbρÄsBӁ=