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