$ od -c -N 50000 [eris]<LispManual>1983Manual>LUhashfile.im!1
0000000 { B e g i n S u b S e c W H
0000020 E R E I S P a c k a g e } \r {
0000040 T i t l e W H E R E I S P a
0000060 c k a g e } \r { T e x t \r \r { i
0000100 n d e x W H E R E I S p a c
0000120 k a g e } \r \r { T a g W H E R
0000140 E I S p a c k a g e } \r \r T h e
0000160 W H E R E I S p a c k a g e
0000200 e x t e n d s t h e f u n
0000220 c t i o n { f n W H E R E I
0000240 S } ( { P a g e R e f F n
0000260 W H E R E I S } ) s u c h t
0000300 h a t , w h e n a s k e d
0000320 a b o u t a g i v e n n a
0000340 m e a s a f u n c t i o n
0000360 , { f n W H E R E I S } w
0000400 i l l c o n s u l t n o t
0000420 o n l y t h e c o m m a n d
0000440 s o f f i l e s t h a t
0000460 h a v e b e e n n o t i c e
0000500 d b y t h e f i l e p a
0000520 c k a g e ( { P a g e R e f
0000540 T a g F i l e P k g } ) b u
0000560 t a l s o h a s h f i l e
0000600 d a t a b a s e s ( { P a g e
0000620 R e f T a g H a s h f i l e
0000640 } ) t h a t a s s o c i a t
0000660 e f u n c t i o n n a m e s
0000700 w i t h f i l e n a m e s .
0000720 \r \r \r { F n D e f { F n N a m
0000740 e W H E R E I S } { F n A r
0000760 g s N A M E T Y P E F I L
0001000 E S F N } \r { T e x t \r B e h
0001020 a v e s e x a c t l y l i k
0001040 e t h e d e f i n i t i o n
0001060 o n { P a g e R e f F n
0001100 W H E R E I S } u n l e s s
0001120 { a r g T Y P E } = { l i s p
0001140 F N S } ( o r { l i s p
0001160 N I L } ) a n d { a r g F
0001200 I L E S } = { l i s p T } .
0001220 I n t h i s c a s e , {
0001240 f n W H E R E I S } w i l l
0001260 c o n s u l t , i n a d d
0001300 i t i o n t o t h e f i l
0001320 e s o n { v a r F I L E L
0001340 S T } , t h e h a s h f i l
0001360 e s t h a t a r e o n t
0001400 h e v a l u e o f { i n d
0001420 e x W H E R E I S . H A S H
0001440 V a r } { v a r W H E R E I S
0001460 . H A S H } . [ n o t e :
0001500 n o r m a l l y t h e u s e
0001520 r w i l l j u s t e n t e
0001540 r t h e f u l l n a m e o
0001560 f a f i l e o n t o { v
0001600 a r W H E R E I S . H A S H }
0001620 , b u t a s t h e { f n
0001640 W H E R E I S } b e g i n s
0001660 t o u s e i t , i t w
0001700 i l l c o n v e r t t h e
0001720 e n t r y i n t o a c o n
0001740 s o f t h e n a m e a n
0001760 d t h e h a s h f i l e
0002000 h a n d l e . ] \r \r M a n y s
0002020 y s t e m f u n c t i o n s ,
0002040 s u c h a s t h e e d i
0002060 t o r s , c a l l { f n W
0002100 H E R E I S } w i t h { a r
0002120 g F I L E S } = { l i s p T
0002140 } , s o l o a d i n g t h
0002160 i s p a c k a g e a u t o m
0002200 a t i c a l l y m a k e s a
0002220 n y i n f o r m a t i o n c
0002240 o n t a i n e d i n t h e
0002260 { f n W H E R E I S } d a t
0002300 a b a s e f i l e s a v a i
0002320 l a b l e t h r o u g h o u t
0002340 t h e s y s t e m . \r \r I n
0002360 f o r m a t i o n m a y b e
0002400 a d d e d t o a n e x i
0002420 s t i n g W H E R E I S h a
0002440 s h f i l e , o r b y c r
0002460 e a t i n g n e w d a t a b
0002500 a s e s . I t i s o f t
0002520 e n u s e f u l t o h a v
0002540 e a s e p a r a t e d a t
0002560 a b a s e f o r l a r g e
0002600 u s e r s y s t e m s . e
0002620 x p l i c i t l y c a l l i n
0002640 g t h e f o l l o w i n g
0002660 f u n c t i o n : \r \r { F n D e
0002700 f { F n N a m e W H E R E I
0002720 S N O T I C E } { F n A r g s
0002740 F I L E G R O U P N E W F L
0002760 G D A T A B A S E F I L E } \r
0003000 { T e x t \r I n s e r t s t h
0003020 e i n f o r m a t i o n a b
0003040 o u t a l l o f t h e f
0003060 u n c t i o n s o n t h e
0003100 f i l e s i n { a r g F I
0003120 L E G R O U P } i n t o t h
0003140 e { f n W H E R E I S } d
0003160 a t a b a s e c o n t a i n
0003200 e d o n { a r g D A T A B
0003220 A S E F I L E } . I f { a
0003240 r g D A T A B A S E F I L E }
0003260 i s { l i s p N I L } ,
0003300 t h e f i r s t e n t r y
0003320 o n { v a r W H E R E I S .
0003340 H A S H } i s u s e d . \r \r
0003360 { a r g F I L E G R O U P }
0003400 m a y b e s i m p l y a
0003420 l i s t o f f i l e s , i
0003440 n w h i c h c a s e e a c
0003460 h f i l e t h e r e o n i
0003500 s h a n d l e d d i r e c t
0003520 l y ; b u t i t m a y a
0003540 l s o b e a p a t t e r n
0003560 t o b e g i v e n a s
0003600 a f i l e g r o u p a r g u
0003620 m e n t t o { f n D I R E
0003640 C T O R Y } ( { P a g e R e f
0003660 F n D I R E C T O R Y } ) ,
0003700 s o { l i s p & } , { l
0003720 i s p $ } , e t c . m a y
0003740 b e u s e d . \r \r I
0003760 f { a r g N E W F L G } i
0004000 s n o n - { l i s p N I L }
0004020 , a n e w v e r s i o n
0004040 o f { a r g D A T A B A S E
0004060 F I L E } w i l l b e c r
0004100 e a t e d c o n t a i n i n g
0004120 t h e d a t a b a s e f o
0004140 r t h e f u n c t i o n s
0004160 s p e c i f i e d i n { a r
0004200 g F I L E G R O U P } . I
0004220 f { a r g N E W F L G } i
0004240 s a n u m b e r , t h e
0004260 h a s h f i l e w i l l b
0004300 e c r e a t e d w i t h {
0004320 a r g N E W F L G } e n t r
0004340 i e s . O t h e r w i s e ,
0004360 i t w i l l b e c r e a
0004400 t e d t o a l l o w 2 0 0
0004420 0 0 e n t r i e s . \r \r E x a
0004440 m p l e : \r T h e f o l l o w
0004460 i n g s e q u e n c e o f
0004500 a c t i o n s w i l l c a u
0004520 s e a l l o f t h e f i
0004540 l e s o n t h e P R O J E
0004560 C T d i r e c t o r y t o
0004600 b e n o t i c e d b y t h
0004620 e W H E R E I S p a c k a g
0004640 e . \r \r ( W H E R E I S N O T I
0004660 C E ' < P R O J E C T > * .
0004700 T ' < P R O J E C T > P R O J
0004720 E C T W H E R E I S . H A S H )
0004740 \r ( p u s h W H E R E I S . H
0004760 A S H ( F I N D F I L E ' <
0005000 P R O J E C T > P R O J E C T W
0005020 H E R E I S . H A S H ) ) \r } }
0005040 \r \r } { E n d S u b S e c W
0005060 H E R E I S P a c k a g e } \r
0005100 \r \r { B e g i n S u b S e c
0005120 H a s h F i l e s } \r { T i t
0005140 l e H a s h F i l e s } \r {
0005160 T e x t \r \r { i n d e x * B E
0005200 G I N * h a s h f i l e f
0005220 a c i l i t y } \r \r { T a g H
0005240 a s h f i l e } \r \r \r T h e h
0005260 a s h f i l e f a c i l i t
0005300 y p e r m i t s i n f o r m
0005320 a t i o n a s s o c i a t e d
0005340 w i t h s t r i n g o r
0005360 a t o m " k e y s " t o b
0005400 e s t o r e d o n a n d
0005420 r e t r i e v e d f r o m f
0005440 i l e s . T h e i n f o r
0005460 m a t i o n ( o r " v a l u
0005500 e s " ) a s s o c i a t e d
0005520 w i t h t h e k e y s i n
0005540 a f i l e m a y b e n
0005560 u m b e r s , s t r i n g s ,
0005600 o r a r b i t a r y I n
0005620 t e r l i s p e x p r e s s i
0005640 o n s . T h e a s s o c i
0005660 a t i o n s a r e m a i n t
0005700 a i n e d b y a h a s h i
0005720 n g s c h e m e t h a t m
0005740 i n i m i z e s t h e n u m
0005760 b e r o f f i l e o p e r
0006000 a t i o n s i t t a k e s
0006020 t o a c c e s s a v a l u
0006040 e f r o m i t s k e y . \r
0006060 \r A h a s h f i l e i s c
0006100 r e a t e d b y t h e f u
0006120 n c t i o n { f n C R E A T
0006140 E H A S H F I L E } : \r \r {
0006160 F n D e f { F n N a m e C R
0006200 E A T E H A S H F I L E } { F
0006220 n A r g s F I L E } \r { T e x
0006240 t \r A n e w v e r s i o n
0006260 o f { a r g F I L E } i s
0006300 o p e n e d a n d i n i t
0006320 i a l i z e d a s a h a s
0006340 h f i l e . A f t e r b e i
0006360 n g i n i t i a l i z e d ,
0006400 { a r g F I L E } i s l e
0006420 f t o p e n a n d { f n
0006440 C R E A T E H A S H F I L E }
0006460 r e t u r n s a s i t s v
0006500 a l u e a " h a s h f i l e
0006520 d a t u m , " a h a n d l
0006540 e o n t h e h a s h f i l
0006560 e t h a t m a y b e u s
0006600 e d a s a n a r g u m e n
0006620 t f o r m o s t o f t h
0006640 e f u n c t i o n s d e s c
0006660 r i b e d b e l o w . \r } } \r
0006700 \r { F n D e f { F n N a m e
0006720 O P E N H A S H F I L E } { F
0006740 n A r g s F I L E A C C E S
0006760 S } \r { T e x t \r R e - o p e n
0007000 s t h e p r e v i o u s l y
0007020 e x i s t i n g h a s h f i
0007040 l e { a r g F I L E } .
0007060 { a r g A C C E S S } m a y
0007100 b e { l i s p I N P U T }
0007120 ( o r { l i s p N I L } )
0007140 , i n w h i c h c a s e
0007160 { a r g F I L E } i s o p
0007200 e n e d f o r r e a d i n g
0007220 o n l y , o r { l i s p
0007240 B O T H } , i n w h i c h
0007260 c a s e { a r g F I L E }
0007300 i s o p e n f o r b o t h
0007320 i n p u t a n d o u t p u
0007340 t . C a u s e s a n e r
0007360 r o r { l i s p N O T A
0007400 H A S H F I L E } , { i n d e x
0007420 N O T A H A S H F I L E
0007440 E r r o r } i f { a r g F
0007460 I L E } i s n o t r e c o
0007500 g n i z e d a s a h a s h
0007520 f i l e . \r \r I f { a r g A
0007540 C C E S S } i s { l i s p
0007560 B O T H } a n d { a r g F
0007600 I L E } i s a h a s h f i
0007620 l e o p e n f o r r e a d
0007640 i n g o n l y , { f n O P
0007660 E N H A S H F I L E } a t t e
0007700 m p t s t o c l o s e i t
0007720 a n d r e - o p e n i t
0007740 f o r w r i t i n g . O t h
0007760 e r w i s e , i f { a r g
0010000 F I L E } d e s i g n a t e s
0010020 a n a l r e a d y o p e n
0010040 h a s h f i l e , { f n O
0010060 P E N H A S H F I L E } i s
0010100 a n o - o p . \r \r { f n O P
0010120 E N H A S H F I L E } r e t u
0010140 r n s a h a s h f i l e d
0010160 a t u m . \r } } \r \r { F n D e f
0010200 { F n N a m e H A S H F I L
0010220 E P } { F n A r g s X } \r {
0010240 T e x t \r R e t u r n s { a r
0010260 g X } i f { a r g X }
0010300 i s a h a s h f i l e d a
0010320 t u m ( i . e . , a v a l
0010340 u e r e t u r n e d b y {
0010360 f n C R E A T E H A S H F I L
0010400 E } o r { f n O P E N H A
0010420 S H F I L E } ) . I f { a
0010440 r g X } i s { l i s p N
0010460 I L } , r e t u r n s { v a
0010500 r S Y S H A S H F I L E } { i
0010520 n d e x S Y S H A S H F I L E
0010540 V a r } i f i t i s a
0010560 h a s h f i l e d a t u m .
0010600 I f { a r g X } i s
0010620 t h e n a m e o f a n o
0010640 p e n h a s h f i l e , r e
0010660 t u r n s t h e c o r r e s
0010700 p o n d i n g h a s h f i l e
0010720 d a t u m . O t h e r w i
0010740 s e , r e t u r n s { l i s
0010760 p N I L } . \r } } \r \r T h e
0011000 f o l l o w i n g f u n c t i
0011020 o n s r e q u i r e a n o
0011040 p e n h a s h f i l e a s
0011060 a n a r g u m e n t , i . e
0011100 . a n o b j e c t f o r
0011120 w h i c h { f n H A S H F I
0011140 L E P } i s n o n - { l i s
0011160 p N I L } . \r \r { F n D e f
0011200 { F n N a m e P U T H A S H
0011220 F I L E } { F n A r g s K E
0011240 Y V A L U E H A S H F I L E
0011260 } \r { T e x t \r P u t s { a r
0011300 g V A L U E } i n { a r g
0011320 H A S H F I L E } , i n d e
0011340 x e d u n d e r { a r g K
0011360 E Y } . I f { a r g V A
0011400 L U E } i s { l i s p N I
0011420 L } , a n y p r e v i o u s
0011440 e n t r y f o r { a r g
0011460 K E Y } i s d e l e t e d .
0011500 \r } } \r \r { F n D e f { F n
0011520 N a m e G E T H A S H F I L E
0011540 } { F n A r g s K E Y H A
0011560 S H F I L E } \r { T e x t \r R e
0011600 t u r n s t h e v a l u e
0011620 c o r r e s p o n d i n g t o
0011640 { a r g K E Y } i n { a
0011660 r g H A S H F I L E } . } }
0011700 \r \r { F n D e f { F n N a m e
0011720 H A S H F I L E P R O P } {
0011740 F n A r g s H A S H F I L E
0011760 P R O P } \r { T e x t \r R e t u
0012000 r n s t h e v a l u e o f
0012020 t h e { a r g P R O P }
0012040 p r o p e r t y o f { a r g
0012060 H A S H F I L E } . T h e
0012100 r e c o g n i z e d { a r g
0012120 P R O P } s a n d t h e
0012140 v a l u e s r e t u r n e d
0012160 a r e : \r \r { B e g i n L a b
0012200 e l e d L i s t T h e r e c
0012220 o g n i z e d P R O P s } \r \r
0012240 { L a b e l { l i s p N A M
0012260 E } } \r { I t e m \r T h e f u
0012300 l l n a m e o f t h e f
0012320 i l e . \r } \r \r { L a b e l {
0012340 l i s p A C C E S S } } \r { I
0012360 t e m \r { l i s p B O T H }
0012400 i f f i l e i s o p e n
0012420 f o r w r i t i n g , { l i
0012440 s p I N P U T } i f i t
0012460 i s r e a d - o n l y . \r } \r
0012500 \r { E n d L a b e l e d L i s
0012520 t T h e r e c o g n i z e d
0012540 P R O P s } \r \r } } \r \r \r { F
0012560 n D e f { F n N a m e C L O
0012600 S E H A S H F I L E } { F n A
0012620 r g s H A S H F I L E } \r { T
0012640 e x t \r C l o s e s t h e h
0012660 a s h f i l e a n d c l e
0012700 a r s a n y i n t e r n a l
0012720 b u f f e r s a s s o c i a
0012740 t e d w i t h i t . \r } } \r
0012760 \r { F n D e f { F n N a m e
0013000 M A P H A S H F I L E } { F n
0013020 A r g s H A S H F I L E M A
0013040 P F N } \r { T e x t \r F o r e
0013060 a c h e n t r y i n { a r
0013100 g H A S H F I L E } , p e r
0013120 f o r m s { l i s p ( { a r
0013140 g M A P F N } { a r g K E
0013160 Y } ( G E T H A S H F I L E
0013200 { a r g K E Y } { a r g H
0013220 A S H F I L E } ) ) } . I f
0013240 { a r g M A P F N } i s
0013260 a f u n c t i o n o f o n
0013300 l y o n e a r g u m e n t ,
0013320 p e r f o r m s { l i s p
0013340 ( { a r g M A P F N } { a r
0013360 g K E Y } ) } t h e r e b y
0013400 a v o i d i n g t h e c a
0013420 l l t o { f n G E T H A S
0013440 H F I L E } n e e d e d t o
0013460 o b t a i n t h e v a l u
0013500 e . { a r g K E Y } i s
0013520 t e m p o r a r y , a s f
0013540 o r { f n G E T H A S H F I
0013560 L E } . { a r g V A L U E
0013600 } i s a l s o t e m p o r
0013620 a r y , f o r { l i s p S
0013640 T R I N G } , { l i s p N U
0013660 M B E R } , a n d { l i s p
0013700 S Y M B O L T A B L E } f i
0013720 l e s . \r } } \r \r \r { F n D e
0013740 f { F n N a m e R E H A S H
0013760 F I L E } { F n A r g s H A
0014000 S H F I L E } \r { T e x t \r A f
0014020 t e r m a n y i n s e r t i
0014040 o n s a n d d e l e t i o n
0014060 s m u c h o f t h e s p
0014100 a c e i n a h a s h f i l
0014120 e m a y b e u n u s a b l
0014140 e . { f n R E H A S H F I
0014160 L E } r e c l a i m s t h a
0014200 t s p a c e b y r e h a s
0014220 h i n g a l l t h e k e y
0014240 s . } } \r \r \r { F n D e f { F
0014260 n N a m e C O P Y H A S H F I
0014300 L E } { F n A r g s H A S H
0014320 F I L E N E W N A M E F N
0014340 } \r { T e x t \r C a l l s { f
0014360 n C R E A T E H A S H F I L E
0014400 } t o o p e n { a r g N
0014420 E W N A M E } a s a h a s
0014440 h f i l e , t h e n m a p s
0014460 t h r o u g h a l l t h e
0014500 k e y s i n { a r g H A
0014520 S H F I L E } , d o i n g t
0014540 h e e q u i v a l e n t o f
0014560 : \r \r { l i s p c o d e \r ( P U
0014600 T H A S H F I L E \r { a r
0014620 g K E Y } \r ( G E T H A
0014640 S H F I L E { a r g K E Y }
0014660 { a r g H A S H F I L E } )
0014700 \r { a r g N E W H A S H
0014720 F I L E } ) } \r \r f o r e a c
0014740 h k e y { a r g K E Y } .
0014760 I n e s s e n c e , { f
0015000 n C O P Y H A S H F I L E }
0015020 c o p i e s { a r g H A S H
0015040 F I L E } t o { a r g N E
0015060 W N A M E } . \r \r I f { a r g
0015100 F N } i s g i v e n , t
0015120 h e n i t i s a p p l i e
0015140 d t o t h e s u c c e s s
0015160 i v e v a l u e s o f { a
0015200 r g H A S H F I L E } , t h
0015220 e o l d { a r g H A S H F
0015240 I L E } , a n d t h e n e
0015260 w h a s h f i l e , a n d
0015300 t h e v a l u e r e t u r n
0015320 e d i s u s e d a s t h
0015340 e v a l u e i n t h e n
0015360 e w f i l e . I n e f f
0015400 e c t , \r \r { l i s p c o d e \r
0015420 ( P U T H A S H F I L E \r
0015440 { a r g K E Y } \r ( { a
0015460 r g F N } ( G E T H A S H F
0015500 I L E { a r g K E Y } { a
0015520 r g H A S H F I L E } ) \r
0015540 { a r g H A S H F I
0015560 L E } \r { a r g
0015600 N E W H A S H F I L E } ) \r
0015620 { a r g N E W H A S H F I L
0015640 E } ) } \r \r i s e v a l u a t
0015660 e d f o r e a c h k e y .
0015700 T h u s , t h e u s e r
0015720 c a n i n t e r v e n e a
0015740 s e a c h k e y i s p r
0015760 o c e s s e d i n o r d e r
0016000 t o c o p y i n f o r m a
0016020 t i o n a s s o c i a t e d
0016040 w i t h t h e k e y . \r } }
0016060 \r \r \r { F n D e f { F n N a m
0016100 e H A S H F I L E S P L S T }
0016120 { F n A r g s H A S H F I L
0016140 E } \r { T e x t \r R e t u r n s
0016160 a " g e n e r a t o r " f
0016200 o r t h e k e y s i n {
0016220 a r g H A S H F I L E } t h
0016240 a t i s a c c e p t a b l e
0016260 a s a n a r g u m e n t
0016300 t o { f n F I X S P E L L }
0016320 ( { P a g e R e f F n F I
0016340 X S P E L L } ) . { i n d e x
0016360 g e n e r a t o r s f o r s
0016400 p e l l i n g c o r r e c t i
0016420 o n } { i n d e x s p e l l i
0016440 n g c o r r e c t i o n o n
0016460 h a s h f i l e s } T h
0016500 u s , { l i s p ( F I X S P
0016520 E L L B A D W O R D 7 0 (
0016540 H A S H F I L E S P L S T { a
0016560 r g H A S H F I L E } ) ) }
0016600 w i l l s p e l l i n g c o
0016620 r r e c t a w o r d u s i
0016640 n g t h e k e y s i n {
0016660 a r g H A S H F I L E } . \r }
0016700 } \r \r \r { F n D e f { F n N a
0016720 m e L O O K U P H A S H F I L
0016740 E } { F n A r g s K E Y V
0016760 A L U E H A S H F I L E C A
0017000 L L T Y P E } \r { T e x t \r A
0017020 g e n e r a l i z e d e n t r
0017040 y f o r i n s e r t i n g
0017060 a n d r e t r i e v i n g v
0017100 a l u e s ; p r o v i d e s
0017120 c e r t a i n o p t i o n s
0017140 n o t a v a i l a b l e w i
0017160 t h { f n G E T H A S H F I
0017200 L E } o r { f n P U T H A
0017220 S H F I L E } . { f n L O
0017240 O K U P H A S H F I L E } l o
0017260 o k s u p { a r g K E Y }
0017300 i n { a r g H A S H F I L
0017320 E } . { a r g C A L L T Y
0017340 P E } i s a n a t o m o
0017360 r a l i s t o f a t o m
0017400 s . T h e s e k e y w o r
0017420 d s a r e i n t e r p r e t
0017440 e d a s f o l l o w s : \r \r
0017460 { B e g i n L a b e l e d L i
0017500 s t C A L L T Y P E s } \r \r {
0017520 I n d e n t 1 5 p e r c e n t
0017540 } \r \r { L a b e l { l i s p
0017560 R E T R I E V E } } \r { T e x t
0017600 \r I f { a r g K E Y } i s
0017620 f o u n d , t h e n i f
0017640 { a r g C A L L T Y P E } i
0017660 s o r c o n t a i n s { l
0017700 i s p R E T R I E V E } , t
0017720 h e o l d v a l u e i s
0017740 r e t u r n e d f r o m { f
0017760 n L O O K U P H A S H F I L E
0020000 } ; o t h e r w i s e r e t
0020020 u r n s { l i s p T } . \r }
0020040 \r \r { N a m e { l i s p D E
0020060 L E T E } } \r { T e x t \r I f
0020100 { a r g C A L L T Y P E } i
0020120 s o r c o n t a i n s { l
0020140 i s p D E L E T E } , t h e
0020160 v a l u e a s s o c i a t e
0020200 d w i t h { a r g K E Y }
0020220 i s d e l e t e d f r o m
0020240 t h e f i l e . \r } \r \r {
0020260 N a m e { l i s p R E P L A
0020300 C E } } \r { T e x t \r I f { a
0020320 r g C A L L T Y P E } i s
0020340 o r c o n t a i n s { l i s
0020360 p R E P L A C E } , t h e
0020400 o l d v a l u e i s r e p
0020420 l a c e d w i t h { a r g
0020440 V A L U E } . \r } \r \r { N a m e
0020460 { l i s p I N S E R T } } \r
0020500 { T e x t \r I f { a r g C A
0020520 L L T Y P E } i s o r c o
0020540 n t a i n s { l i s p I N S
0020560 E R T } , { f n L O O K U P
0020600 H A S H F I L E } i n s e r t
0020620 s v a l u e a s t h e v
0020640 a l u e a s s o c i a t e d
0020660 w i t h { a r g K E Y } . \r
0020700 } \r \r \r { E n d L a b e l e d
0020720 L i s t C A L L T Y P E s } \r
0020740 \r \r I f { a r g K E Y } i
0020760 s n o t f o u n d , { f n
0021000 L O O K U P H A S H F I L E }
0021020 r e t u r n s { l i s p N
0021040 I L } . \r } } \r \r \r \r E x a m p
0021060 l e s : \r \r \r T o e i t h e r
0021100 r e t u r n a n o l d v
0021120 a l u e o r i n s e r t a
0021140 n e w v a l u e i n t h
0021160 e f i l e i f o n e d o
0021200 e s n o t a l r e a d y e
0021220 x i s t , p e r f o r m \r { l
0021240 i s p ( L O O K U P H A S H F
0021260 I L E { a r g K E Y } { a
0021300 r g N E W V A L U E } { a r
0021320 g H A S H F I L E } ' ( I N
0021340 S E R T R E T R I E V E ) ) }
0021360 . \r T h e v a l u e r e t u
0021400 r n e d w i l l b e { l i
0021420 s p N I L } i f { a r g
0021440 N E W V A L U E } w a s i n
0021460 s e r t e d , o r t h e o
0021500 l d v a l u e i f { a r g
0021520 K E Y } w a s f o u n d .
0021540 \r \r T o m e r e l y c h e
0021560 c k w h e t h e r { a r g
0021600 K E Y } e x i s t s i n t
0021620 h e f i l e w i t h o u t
0021640 a c t u a l l y r e t r i e v
0021660 i n g i t s v a l u e ( w
0021700 h i c h m a y b e e x p e
0021720 n s i v e f o r t h e m o
0021740 r e g e n e r a l v a l u e
0021760 t y p e s ) , p e r f o r m
0022000 { l i s p ( L O O K U P H A S
0022020 H F I L E { a r g K E Y }
0022040 N I L { a r g H A S H F I L
0022060 E } N I L ) } . \r \r T h e f
0022100 u n c t i o n { f n P U T H
0022120 A S H F I L E } c o u l d b
0022140 e d e f i n e d a s : \r \r {
0022160 l i s p c o d e \r ( L A M B D A
0022200 ( K E Y V A L U E H A S H
0022220 F I L E ) \r ( i f V A
0022240 L U E = N I L \r t h
0022260 e n ( L O O K U P H A S H F I
0022300 L E K E Y N I L H A S H F
0022320 I L E ' D E L E T E ) \r
0022340 e l s e ( L O O K U P H
0022360 A S H F I L E K E Y V A L U
0022400 E H A S H F I L E ' ( I N S
0022420 E R T R E P L A C E ) ) \r
0022440 V A L U E ) )
0022460 } \r \r \r A n d { f n G E T H
0022500 A S H F I L E } c o u l d b
0022520 e d e f i n e d a s : \r \r {
0022540 l i s p c o d e \r ( L A M B D A
0022560 ( K E Y H A S H F I L E ) \r
0022600 ( L O O K U P H A S H F
0022620 I L E K E Y N I L H A S H
0022640 F I L E ' R E T R I E V E ) )
0022660 } \r \r { n o t e H A S H i s
0022700 a n e w i m p l e m e n t
0022720 a t i o n o f t h e h a s
0022740 h f i l e p a c k a g e w h
0022760 i c h w o r k s i n b o t
0023000 h I n t e r l i s p - 1 0 a
0023020 n d I n t e r l i s p - D .
0023040 I t i s w r i t t e n i n
0023060 I n t e r l i s p a n d o
0023100 p e r a t i n g o n s t r e
0023120 a m s o f b y t e s . T h
0023140 i s p a c k a g e i m p l e
0023160 m e n t s t h e i n t e r f
0023200 a c e s d o c u m e n t e d
0023220 i n t h e I n t e r l i s p
0023240 R e f e r e n c e M a n u a
0023260 l ( a n d m a r k e d a s
0023300 I n t e r l i s p - 1 0 s p
0023320 e c i f i c ) a s w e l l
0023340 a s t h o s e o f t h e
0023360 o r i g i n a l i m p l e m e
0023400 n t a t i o n u s e d i n
0023420 E M Y C I N b a s e d s y s
0023440 t e m s , a n d w i l l b
0023460 e r e f e r r e d t o a s
0023500 t h e E M Y C I N p a c k
0023520 a g e . T h i s d o c u m e
0023540 n t o n l y d e a l s w i
0023560 t h d i f f e r e n c e s b
0023600 e t w e e n t h e v a r i o
0023620 u s p a c k a g e s . U s e
0023640 r s s h o u l d c o n s u l
0023660 t t h e I n t e r l i s p
0023700 R e f e r e n c e M a n u a l
0023720 a n d t h e E M Y C I N
0023740 d o c u m e n t a t i o n f o
0023760 r d e t a i l s . \r H a s h f
0024000 i l e s a r e c r e a t e d
0024020 b y c a l l i n g C R E A
0024040 T E H A S H F I L E . A " H
0024060 a s h F i l e " , a s r e f
0024100 e r e n c e d i n t h i s
0024120 d o c u m e n t , i s t h e
0024140 d a t u m r e t u r n e d
0024160 b y C R E A T E H A S H F I L
0024200 E o r O P E N H A S H F I L
0024220 E , c u r r e n t l y a n
0024240 a r r a y r e c o r d c o n
0024260 t a i n i n g t h e h a s h
0024300 f i l e n a m e , a n d t
0024320 h e n u m b e r o f s l o
0024340 t s i n t h e f i l e ,
0024360 t h e u s e d s l o t s a
0024400 n d o t h e r d e t a i l s
0024420 . A l l o t h e r f u n c
0024440 t i o n s w i t h h a s h f
0024460 i l e a r g u m e n t s u s
0024500 e t h i s d a t u m . A
0024520 N I L h a s h f i l e a r g
0024540 u m e n t r e f e r s t o
0024560 S Y S H A S H F I L E . K e y
0024600 s a r e s t r i n g s o r
0024620 a t o m s , a s i n t h
0024640 e o t h e r s y s t e m s .
0024660 \r I n t e r l i s p - 1 0 h a
0024700 s h f i l e s c a m e i n
0024720 s e v e r a l f l a v o r s ,
0024740 a c c o r d i n g t o t h
0024760 e v a l u e s s t o r e d
0025000 i n t h e m . T h i s s y
0025020 s t e m o n l y s u p p o r
0025040 t s t h e m o s t g e n e
0025060 r a l E X P R t y p e o f
0025100 h a s h f i l e s ; t h e
0025120 V A L U E T Y P E a n d I T
0025140 E M L E N G T H a r g u m e n
0025160 t s a r e i g n o r e d .
0025200 T h i s d i s t i n c t i o n
0025220 i s g e n e r a l l y i n
0025240 v i s i b l e t o t h e u
0025260 s e r . \r T w o k e y h a s
0025300 h i n g i s s u p p o r t e
0025320 d i n t h i s s y s t e m
0025340 . T h e f u n c t i o n s
0025360 t h a t m a n i p u l a t e
0025400 ' s e c r e t p a g e s ' d
0025420 o n o t e x i s t i n t
0025440 h i s i m p l e m e n t a t i
0025460 o n . \r W h e n r u n n i n g
0025500 i n I n t e r l i s p - 1 0
0025520 , H A S H w i l l l o a d
0025540 t h e D F O R 1 0 . C O M
0025560 p a c k a g e f r o m t h e
0025600 L i s p U s e r s d i r e c
0025620 t o r y . \r F u n c t i o n s \r
0025640 T h e f u n c t i o n s i m
0025660 p l e m e n t e d a r e : \r h
0025700 a s h f i l e d a t a [ h a s h
0025720 f i l e ] ( E M Y C I N ) \r c
0025740 l e a r h a s h f i l e s [ c l
0025760 o s e , r e l e a s e ] ( E M
0026000 Y C I N ) \r c o l l e c t k e y
0026020 s [ h a s h f i l e , d o u b l
0026040 e , m k s t r i n g ] ( E M Y
0026060 C I N ) \r \r \r G l o b a l V
0026100 a r i a b l e s \r \r \r T h e v
0026120 a r i a b l e s u s e d b y
0026140 t h e s y s t e m o f i
0026160 n t e r e s t t o t h e u
0026200 s e r . \r H A S H T E X T C H A
0026220 R ^ A T h e c h a r a
0026240 c t e r s e p a r a t i n g
0026260 t w o k e y h a s h k e y s
0026300 . \r H A S H F I L E R D T B L
0026320 O R I G T h e h a s h f
0026340 i l e r e a d t a b l e . \r
0026360 H F G R O W T H F A C T O R
0026400 3 T h e r a t i o n o f
0026420 t o t a l s l o t s t o
0026440 u s e d s l o t s w h e n
0026460 a h a s h f i l e i s c r
0026500 e a t e d . \r R E H A S H G A G
0026520 N I L F l a g s w h e
0026540 t h e r t o p r i n t m e
0026560 s s a g e w h e n r e h a s
0026600 h i n g ; i n i t i a l l y
0026620 o f f . \r H A S H F I L E D E F
0026640 A U L T S I Z E 5 1 2 S
0026660 i z e u s e d w h e n # E
0026700 n t r i e s i s o m i t e d
0026720 . \r H A S H L O A D F A C T O R
0026740 . 8 7 5 T h e r a t i
0026760 o , u s e d s l o t s / t o
0027000 t a l s l o t s , a t w h
0027020 i c h t h e s y s t e m r
0027040 e h a s h e s t h e f i l e
0027060 , i n i t i a l l y 7 / 8 .
0027100 \r S Y S H A S H F I L E N I
0027120 L T h e c u r r e n t h
0027140 a s h f i l e . \r \r I m p l e m
0027160 e n t a t i o n \r \r T h e h a
0027200 s h f i l e p a c k a g e v
0027220 i e w s f i l e s a s a
0027240 s e q u e n c e o f b y t e
0027260 s , r a n d o m l y a c c e
0027300 s s i b l e . N o n o t i c
0027320 e i s m a d e o f p a g
0027340 e s a n d i t i s a s s
0027360 u m e d t h a t t h e h o
0027400 s t c o m p u t e r b u f f
0027420 e r s I / O s u f f i e c i
0027440 e n t l y . \r H a s h f i l e
0027460 s c o n s i s t o f a l
0027500 a y e r o f p o i n t e r s
0027520 f o l l o w e d b y a s c
0027540 i i d a t a . P o i n t e r
0027560 s a r e 3 b y t e s w i
0027600 d e , p r e c e e d e d b y
0027620 a s t a t u s b y t e .
0027640 T h e p o i n t e r s p o i
0027660 n t t o k e y P N A M E S
0027700 i n t h e d a t a s e c
0027720 t i o n , w h e r e e a c h
0027740 k e y i s f o l l o w e d
0027760 b y i t s v a l u e . D
0030000 e l e t e d k e y p o i n t
0030020 e r s a r e r e u s e d ,
0030040 d e l e t e d d a t a s p a
0030060 c e i s n o t , s o r e
0030100 h a s h i n g i s r e q u i
0030120 r e d i f m a n y i t e m
0030140 s h a v e b e e n " r e p
0030160 l a c e d " . \r T h e d a t a
0030200 s e c t i o n s t a r t s
0030220 a t 4 * H A S H F I L E : S I
0030240 Z E + 9 , a n d c o n s
0030260 i s t s o f a l t e r n a t
0030300 i n g k e y s a n d v a l
0030320 u e s . A s d e l e t e d
0030340 d a t a i s n o t r e - w
0030360 r i t t e n , f i l e s s h
0030400 o u l d n o t b e a c c e
0030420 s s e d d i r e c t l y . \r \r
0030440 W h e n a k e y h a s h e
0030460 s i n t o a u s e d s l
0030500 o t , a p r o b e v a l u
0030520 e i s a d d e d t o i t
0030540 t o f i n d t h e n e x
0030560 t s l o t t o s e a r c h
0030600 . T h e p r o b e v a l u
0030620 e i s a s m a l l p r i
0030640 m e d e r i v e d f r o m
0030660 t h e o r i g i n a l h a s
0030700 h k e y . \r \r L i m i t a t i
0030720 o n s \r \r D u e t o t h e
0030740 p o i n t e r s i z e , o n
0030760 l y h a s h f i l e s o f
0031000 < 6 m i l l i o n i n t i
0031020 a l e n t r i e s c a n b
0031040 e c r e a t e d , t h o u g
0031060 h t h e s e c a n g r o w
0031100 t o 1 4 m i l l i o n e
0031120 n t r i e s b e f o r e a u
0031140 t o m a t i c r e h a s h i n
0031160 g e x c e e d s t h e p o
0031200 i n t e r l i m i t . T h e
0031220 t o t a l f i l e l e n g
0031240 t h i s l i m i t e d t o
0031260 1 6 m i l l i o n b y t e
0031300 s . N o r a n g e c h e c
0031320 k i n g i s d o n e f o r
0031340 t h e s e l i m i t s . \r
0031360 \r { i n d e x * E N D * h a
0031400 s h f i l e f a c i l i t y
0031420 } \r \r \r } { E n d S u b S e
0031440 c H a s h F i l e s } \r \r \r
0031460 \0 \0 % 263 \0 \0 \0 005 G A C H A \0 \n \0
0031500 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0
0031520 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0
0031540 \0 \0 003 N I L \0 003 N I L \0 \0 \0 \0 \0
0031560 \0 \0 \0 \0 \0 002 H \0 \0 \0 005 G A C H A
0031600 \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002
0031620 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0
0031640 \0 \0 \0 \0 \0 003 N I L \0 003 N I L \0 \0
0031660 \0 \0 \0 \0 \0 \0 \0 \0 001 266 \0 \0 \0 005 G A
0031700 C H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0031720 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002
0031740 001 \0 \0 \0 \0 \0 \0 \0 003 N I L \0 003 N I
0031760 L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 004 \0 \0 \0
0032000 005 G A C H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0
0032020 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0032040 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003 N I L \0
0032060 003 N I L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 177
0032100 \0 \0 \0 005 G A C H A \0 \n \0 \0 \0 \0 \0
0032120 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0
0032140 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003 N
0032160 I L \0 003 N I L \0 \0 \0 \0 \0 \0 \0 \0 \0
0032200 \0 \0 b \0 \0 \0 005 G A C H A \0 \n \0 \0
0032220 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0
0032240 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0
0032260 \0 003 N I L \0 003 N I L \0 \0 \0 \0 \0 \0
0032300 \0 \0 \0 \0 \0 \n \0 \0 \0 005 G A C H A \0
0032320 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0
0032340 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0
0032360 \0 \0 \0 \0 003 N I L \0 003 N I L \0 \0 \0
0032400 \0 \0 \0 \0 \0 \0 \0 \0 037 \0 \0 \0 005 G A C
0032420 H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0032440 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001
0032460 \0 \0 \0 \0 \0 \0 \0 003 N I L \0 003 N I L
0032500 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 005
0032520 G A C H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0
0032540 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0032560 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003 N I L \0 003
0032600 N I L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ' \0
0032620 \0 \0 005 G A C H A \0 \n \0 \0 \0 \0 \0 \0
0032640 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0
0032660 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003 N I
0032700 L \0 003 N I L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0032720 \0 / \0 \0 \0 005 G A C H A \0 \n \0 \0 \0
0032740 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0
0032760 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0
0033000 003 N I L \0 003 N I L \0 \0 \0 \0 \0 \0 \0
0033020 \0 \0 \0 \0 001 \0 \0 \0 005 G A C H A \0 \n
0033040 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0
0033060 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0
0033100 \0 \0 \0 003 N I L \0 003 N I L \0 \0 \0 \0
0033120 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 005 G A C H
0033140 A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0033160 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0
0033200 \0 \0 \0 \0 \0 \0 003 N I L \0 003 N I L \0
0033220 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 022 \0 \0 \0 005 G
0033240 A C H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0033260 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0033300 002 001 \0 \0 \0 \0 \0 \0 \0 003 N I L \0 003 N
0033320 I L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0
0033340 \0 005 G A C H A \0 \n \0 \0 \0 \0 \0 \0 \0
0033360 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0
0033400 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003 N I L
0033420 \0 003 N I L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0033440 001 \0 \0 \0 005 G A C H A \0 \n \0 \0 \0 \0
0033460 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0
0033500 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003
0033520 N I L \0 003 N I L \0 \0 \0 \0 \0 \0 \0 \0
0033540 \0 \0 \0 : \0 \0 \0 005 G A C H A \0 \n \0
0033560 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0
0033600 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0
0033620 \0 \0 003 N I L \0 003 N I L \0 \0 \0 \0 \0
0033640 \0 \0 \0 \0 \0 \0 = \0 \0 \0 005 G A C H A
0033660 \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002
0033700 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0
0033720 \0 \0 \0 \0 \0 003 N I L \0 003 N I L \0 \0
0033740 \0 \0 \0 \0 \0 \0 \0 \0 \0 . \0 \0 \0 005 G A
0033760 C H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0034000 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002
0034020 001 \0 \0 \0 \0 \0 \0 \0 003 N I L \0 003 N I
0034040 L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 W \0 \0 \0
0034060 005 G A C H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0
0034100 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0034120 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003 N I L \0
0034140 003 N I L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 N
0034160 \0 \0 \0 005 G A C H A \0 \n \0 \0 \0 \0 \0
0034200 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0
0034220 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003 N
0034240 I L \0 003 N I L \0 \0 \0 \0 \0 \0 \0 \0 \0
0034260 \0 \0 = \0 \0 \0 005 G A C H A \0 \n \0 \0
0034300 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0
0034320 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0
0034340 \0 003 N I L \0 003 N I L \0 \0 \0 \0 \0 \0
0034360 \0 \0 \0 \0 \0 o \0 \0 \0 005 G A C H A \0
0034400 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0
0034420 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0
0034440 \0 \0 \0 \0 003 N I L \0 003 N I L \0 \0 \0
0034460 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 \0 \0 005 G A C
0034500 H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0034520 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001
0034540 \0 \0 \0 \0 \0 \0 \0 003 N I L \0 003 N I L
0034560 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 005
0034600 G A C H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0
0034620 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0034640 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003 N I L \0 003
0034660 N I L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 017 \0
0034700 \0 \0 005 G A C H A \0 \n \0 \0 \0 \0 \0 \0
0034720 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0
0034740 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003 N I
0034760 L \0 003 N I L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0035000 \0 001 \0 \0 \0 005 G A C H A \0 \n \0 \0 \0
0035020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0
0035040 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0
0035060 003 N I L \0 003 N I L \0 \0 \0 \0 \0 \0 \0
0035100 \0 \0 \0 \0 255 \0 \0 \0 005 G A C H A \0 \n
0035120 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0
0035140 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0
0035160 \0 \0 \0 003 N I L \0 003 N I L \0 \0 \0 \0
0035200 \0 \0 \0 \0 \0 \0 001 Q \0 \0 \0 005 G A C H
0035220 A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0035240 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0
0035260 \0 \0 \0 \0 \0 \0 003 N I L \0 003 N I L \0
0035300 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 247 \0 \0 \0 005 G
0035320 A C H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0035340 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0035360 002 001 \0 \0 \0 \0 \0 \0 \0 003 N I L \0 003 N
0035400 I L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0
0035420 \0 005 G A C H A \0 \n \0 \0 \0 \0 \0 \0 \0
0035440 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0
0035460 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003 N I L
0035500 \0 003 N I L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0035520 247 \0 \0 \0 005 G A C H A \0 \n \0 \0 \0 \0
0035540 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0
0035560 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003
0035600 N I L \0 003 N I L \0 \0 \0 \0 \0 \0 \0 \0
0035620 \0 \0 \0 001 \0 \0 \0 005 G A C H A \0 \n \0
0035640 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0
0035660 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0
0035700 \0 \0 003 N I L \0 003 N I L \0 \0 \0 \0 \0
0035720 \0 \0 \0 \0 \0 \0 \f \0 \0 \0 005 G A C H A
0035740 \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002
0035760 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0
0036000 \0 \0 \0 \0 \0 003 N I L \0 003 N I L \0 \0
0036020 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 005 G A
0036040 C H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0036060 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002
0036100 001 \0 \0 \0 \0 \0 \0 \0 003 N I L \0 003 N I
0036120 L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 033 \0 \0 \0
0036140 005 G A C H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0
0036160 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0036200 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003 N I L \0
0036220 003 N I L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001
0036240 \0 \0 \0 005 G A C H A \0 \n \0 \0 \0 \0 \0
0036260 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0
0036300 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003 N
0036320 I L \0 003 N I L \0 \0 \0 \0 \0 \0 \0 \0 \0
0036340 \0 \0 " \0 \0 \0 005 G A C H A \0 \n \0 \0
0036360 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0
0036400 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0
0036420 \0 003 N I L \0 003 N I L \0 \0 \0 \0 \0 \0
0036440 \0 \0 \0 \0 \0 001 \0 \0 \0 005 G A C H A \0
0036460 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0
0036500 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0
0036520 \0 \0 \0 \0 003 N I L \0 003 N I L \0 \0 \0
0036540 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 005 G A C
0036560 H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0036600 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001
0036620 \0 \0 \0 \0 \0 \0 \0 003 N I L \0 003 N I L
0036640 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 031 \0 \0 \0 005
0036660 G A C H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0
0036700 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0036720 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003 N I L \0 003
0036740 N I L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0
0036760 \0 \0 005 G A C H A \0 \n \0 \0 \0 \0 \0 \0
0037000 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0
0037020 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 003 N I
0037040 L \0 003 N I L \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0037060 \0 001 \0 \0 \0 005 G A C H A \0 \n \0 \0 \0
0037100 \0 \0 \0 \0 \0 \0 \0 3 0 \0 U z 270
0037115