$ od -c -N 50000 [Indigo]<Chipmonk>plamaker>PLAmaker-sources.dm!12 0000000 377 \0 \0 P L A M a k e r I m p l . 0000020 m e s a \0 373 230 \ 360 370 \0 \0 376 001 \0 355 0000040 200 - - P l a M a k e r I m p l 0000060 . m e s a \r - - a p r o g r 0000100 a m t o r u n w i t h i n 0000120 C h i p m o n k \r \r - - l a 0000140 s t m o d i f i e d b y C 0000160 a r y K o r n f e l d , O c 0000200 t o b e r 1 , 1 9 8 1 1 0000220 0 : 1 1 A M \r - - w r i t t 0000240 e n b y E . M c C r e i g 0000260 h t , A u g u s t 7 , 1 9 0000300 8 1 3 : 5 2 P M \r \r D I R 0000320 E C T O R Y \r I O D e f s , 0000340 \r I n l i n e D e f s , \r 0000360 p p d d e f s , \r p p d e 0000400 f s , \r p p d d d e f s , \r 0000420 S e g m e n t D e f s , \r 0000440 376 001 \0 213 306 S t r e a m D e f s 0000460 , \r S t r i n g D e f s , \r 0000500 S y s t e m D e f s , \r 0000520 Z o n e A l l o c D e f s ; \r \r 0000540 P l a M a k e r I m p l : P R 0000560 O G R A M \r I M P O R T S \r 0000600 I n l i n e D e f s , 0000620 p p d d d e f s , p p d d e f 0000640 s , p p d e f s , S e g m e 0000660 n t D e f s , S t r e a m D e 0000700 f s , \r I O D e f s , 0000720 S t r i n g D e f s , Z o n e 0000740 A l l o c D e f s = \r B E 0000760 G I N O P E N p p d d d e f 0001000 s , p p d d e f s , p p d e 0001020 f s , i o : I O D e f s ; \r 0001040 \r \r Z : 376 001 \0 263 4 U N C O 0001060 U N T E D Z O N E _ Z o n 0001100 e A l l o c D e f s . G e t A n 0001120 X M Z o n e [ ] ; \r \r P u n 0001140 t : S I G N A L = C O D E 0001160 ; \r \r \r - - A l l o f 0001200 t h e p e r i p h e r a l c 0001220 e l l s m u s t c o n t a i 0001240 n a n a d j a c e n t p a 0001260 i r o f b i t s , a n d \r 0001300 - - a l l o f t h e 0001320 c e n t e r c e l l s m u s 0001340 t c o n t a i n a r e c t 0001360 a n g u l a r q u a d o f 0001400 b i t s \r \r C e l l : T Y 0001420 P E = L O N G P O I N T E 0001440 R T O o b j e c t 376 001 \0 [ M 0001460 _ N I L ; \r D C e l l : 0001500 T Y P E = A R R A Y B O 0001520 O L E A N - - d a t a i n 0001540 c e l l - - O F C e l l ; \r 0001560 D C e l l P r : T Y P E 0001600 = A R R A Y B O O L E A N 0001620 - - d a t a i n e v e n 0001640 c e l l - - O F D C e l l 0001660 ; \r \r M A X I D L E N G T H 0001700 : C A R D I N A L = 1 0 0 0001720 ; \r S t o p C O D E : C H 0001740 A R A C T E R = ' * ; \r 0001760 H A S H S I Z E : C A R D I 0002000 N A L = 2 9 ; - - M a y 0002020 b e s m a l l f o r b i g 0002040 P L A ' s \r \r n a m e I n 0002060 376 001 \0 , 255 d e x : T Y P E = 0002100 [ 0 . . M A X I D L E N G T H 0002120 ) ; \r h a s h I n d e x : 0002140 T Y P E = [ 0 . . H A S H S 0002160 I Z E ) ; \r \r I O L i n k : 0002200 T Y P E = L O N G P O I 0002220 N T E R T O I O ; \r P T 0002240 e r m L i n k : T Y P E = 0002260 L O N G P O I N T E R T O 0002300 P r o d u c t T e r m ; \r I 0002320 O T e r m L i n k : T Y P E 0002340 = L O N G P O I N T E R T 0002360 O I O T e r m ; \r \r S t a 0002400 t e s : T Y P E = { A b s 0002420 e n t , A s s e r t , I n v 0002440 e r t } ; \r T B S t a t e s 0002460 : T Y P 376 001 \0 030 P E = { b 0002500 o t t o m , t o p } ; \r D 0002520 i r e c t i o n : T Y P E = 0002540 { v e r t i c a l , h o r i 0002560 z o n t a l , d i a g o n a l 0002600 , u p , d o w n , l e f t 0002620 , r i g h t , \r \t u p A n d L 0002640 e f t , u p A n d R i g h t , 0002660 d o w n A n d L e f t , d o 0002700 w n A n d R i g h t } ; \r \r 0002720 I O : T Y P E = R E C O R 0002740 D [ \r \t n e x t : I O L i n k 0002760 , \r \t T o p B o t t o m : T B 0003000 S t a t e s , \r \t p o s i t i o 0003020 n : C A R D I N A L , \r \t n a 0003040 m e : S E Q U E N C E l e n 0003060 g t h : C A R D I 376 001 \0 275 S N 0003100 A L O F C H A R A C T E R ] 0003120 ; \r \r P r o d u c t T e r m 0003140 : T Y P E = R E C O R D [ 0003160 \r \t n e x t : P T e r m L i n 0003200 k , \r \t o u t p u t : I O T e 0003220 r m L i n k , \r \t i n p u t : 0003240 I O T e r m L i n k ] ; \r \r 0003260 I O T e r m : T Y P E = R 0003300 E C O R D [ \r \t t e r m : S E 0003320 Q U E N C E t c o u n t : C 0003340 A R D I N A L O F S t a t e 0003360 s ] ; \r \r I O L I S T : T 0003400 Y P E = R E C O R D [ n o d 0003420 e : S E Q U E N C E I O c o 0003440 u n t : C A R D I N A L O F 0003460 I O L i n k ] ; \r \r H a 376 0003500 001 \0 304 s s h T a b l e : T Y P 0003520 E = A R R A Y h a s h I n 0003540 d e x O F I O L i n k ; \r 0003560 h a s h P T e r m : A R R A 0003600 Y h a s h I n d e x O F P 0003620 T e r m L i n k ; \r \r i n p 0003640 u t s , o u t p u t s : H a 0003660 s h T a b l e ; \r i n C o u 0003700 n t , o u t C o u n t : C A 0003720 R D I N A L ; \r i n p u t L 0003740 i s t , o u t p u t L i s t : 0003760 L O N G P O I N T E R T O 0004000 I O L I S T ; \r S c o u n 0004020 t : I N T E G E R _ 0 ; \r 0004040 P T e r m C o u n t , b o 0004060 i s t C o u n t , m i n B o i 0004100 s t S p 376 001 \0 377 323 a c e : C A 0004120 R D I N A L ; \r \r \r - - i n 0004140 : S t r e a m D e f s . S t r 0004160 e a m H a n d l e ; \r l i n 0004200 e : S T R I N G _ [ M A X 0004220 I D L E N G T H ] ; \r l i n 0004240 e I n : S T R I N G _ [ M 0004260 A X I D L E N G T H ] ; \r e 0004300 o l : B O O L E A N ; \r \r 0004320 P L A D e c o d e r , P L A D 0004340 a t a : D C e l l P r ; \r 0004360 P L A D e c o d e r D a t a , 0004400 P L A D e c o d e r D a t a T o 0004420 p , P L A D e c o d e r D a t 0004440 a B o t t o m , \r P L A 0004460 D e c o d e r T o p L e f t C o 0004500 r n e r , P L A 376 001 \0 030 032 D e 0004520 c o d e r B o t t o m L e f t C 0004540 o r n e r , \r P L A D e 0004560 c o d e r L e f t G n d , P L 0004600 A D e c o d e r G n d , P L A 0004620 D e c o d e r D a t a G n d , \r 0004640 P L A D a t a H G n d , 0004660 P L A D a t a V G n d , P L 0004700 A D a t a G n d , P L A D a t 0004720 a T o p G n d , \r P L A 0004740 D a t a B o t t o m G n d , P 0004760 L A D a t a R i g h t G n d , \r 0005000 P L A D a t a T o p R i 0005020 g h t C o r n e r , P L A D a 0005040 t a R i g h t , P L A D a t a 0005060 B o t t o m R i g h t C o r n e 0005100 r : C e l l ; \r P L A 376 001 0005120 \0 232 033 D e c o d e r L e f t , 0005140 P L A D a t a T o p , P L A D 0005160 a t a B o t t o m , P L A D e 0005200 c o d e r T o p , \r P 0005220 L A D e c o d e r B o t t o m , 0005240 P L A O u t M u x : D C e l 0005260 l ; \r - - c o l u m n : 0005300 F A L S E = > e v e n c o 0005320 l u m n , T R U E = > o d 0005340 d c o l u m n \r d e c o d 0005360 e C e l l , d a t a C e l l : 0005400 C e l l ; - - s a m p l 0005420 e s f o r m e a s u r e m e 0005440 n t s \r \r \r R d I D : P R 0005460 O C E D U R E [ i d : S T R 0005500 I N G ] = \r B E G I N 0005520 \r 376 001 \0 / 366 c h a r : 0005540 C H A R A C T E R ; \r i 0005560 : n a m e I n d e x ; \r 0005600 i _ 0 ; \r c h a r 0005620 _ i o . R e a d C h a r [ ] 0005640 ; \r W H I L E c h a r 0005660 = i o . S P O R c h a r 0005700 = i o . T A B O R c h a 0005720 r = i o . C R O R c h a 0005740 r = i o . L F D O \r 0005760 c h a r _ i o . R e a 0006000 d C h a r [ ] ; E N D L O O P 0006020 ; \r W H I L E c h a r 0006040 # i o . S P A N D c h a 0006060 r # i o . C R A N D c h 0006100 a r # i o . L F A N D c 0006120 h a r # i o 376 001 \0 E 363 . T A 0006140 B D O \r i d [ i ] 0006160 _ c h a r ; i _ i + 0006200 1 ; c h a r _ i o . R e 0006220 a d C h a r [ ] ; E N D L O O 0006240 P ; \r i d ^ . l e n g t 0006260 h _ i ; \r e o l _ 0006300 ( c h a r = i o . C R O 0006320 R c h a r = i o . L F ) ; 0006340 \r E N D ; \r \r R e a 0006360 d I O : P R O C E D U R E [ 0006400 S t o p C o d e : C H A R A C 0006420 T E R ] R E T U R N S [ c o 0006440 u n t : C A R D I N A L _ 0006460 0 , \r \t \t \t \t \t \t h a s h 0006500 T a b l e : H a s h T a b l e 0006520 ] = \r B E G I N 376 001 \0 0006540 216 237 \r T e r m : I O L 0006560 i n k ; \r i d : S T R 0006600 I N G _ [ M A X I D L E N G 0006620 T H ] ; \r i d 2 : S T 0006640 R I N G _ [ M A X I D L E N 0006660 G T H ] ; \r T B : T B 0006700 S t a t e s ; \r k , i 0006720 , h a s h : C A R D I N A L 0006740 ; \r \r F O R i I N 0006760 h a s h I n d e x D O h a s 0007000 h T a b l e [ i ] _ N I L 0007020 E N D L O O P ; \r \r D O 0007040 \r \r - - g e t t h e 0007060 n a m e o f t h e I O 0007100 t e r m a n d i t s p o s 0007120 i t i o n \r R d I D [ i 0007140 d ] 376 001 \0 231 313 ; \r I F 0007160 i d [ 0 ] = S t o p C o d e 0007200 T H E N E X I T ; \r 0007220 h a s h _ h a s h C o d e [ 0007240 i d ] ; \r R d I D [ i d 0007260 2 ] ; \r I F i d 2 [ 0 0007300 ] = ' t O R i d 2 [ 0 ] 0007320 = ' T \r \t T H E N T B 0007340 _ t o p \r \t E L S E 0007360 T B _ b o t t o m ; \r \r \r 0007400 - - c r e a t e a n 0007420 I O n o d e \r T e r m 0007440 _ Z . N E W [ I O [ i d . l 0007460 e n g t h ] ] ; \r S c o 0007500 u n t _ S c o u n t + 1 0007520 ; \r B E G I N O P E N 0007540 T e r m ; \r 376 001 \0 u 342 \t T o p 0007560 B o t t o m _ T B ; \r \t p o 0007600 s i t i o n _ c o u n t ; \r 0007620 \t c o u n t _ c o u n t + 0007640 1 ; \r \t F O R k I N [ 0 0007660 . . i d . l e n g t h ) D O \r 0007700 \t n a m e [ k ] _ i d [ 0007720 k ] ; \r \t E N D L O O P ; \r \t n 0007740 e x t _ h a s h T a b l e [ 0007760 h a s h ] ; \r \t h a s h T a b l 0010000 e [ h a s h ] _ T e r m ; \r 0010020 E N D ; \r \r E N 0010040 D L O O P ; \r \r R E T U 0010060 R N [ c o u n t , h a s h T a 0010100 b l e ] ; \r \r E N D ; \r \r \r 0010120 R e a d P T e r m s : P R 0010140 O C E D U R E [ ] 376 001 \0 216 0010160 004 = \r B E G I N \r 0010200 P T e r m , P T : P T e r 0010220 m L i n k _ N I L ; \r 0010240 i d : S T R I N G _ [ M 0010260 A X I D L E N G T H ] ; \r 0010300 a l l o c : B O O L E A N 0010320 _ T R U E ; \r d o n e 0010340 , f o u n d : B O O L E A N 0010360 _ F A L S E ; \r k , 0010400 o u t I D , h a s h : C A 0010420 R D I N A L _ 0 ; \r \r 0010440 P T e r m C o u n t _ 0 ; 0010460 \r \r D O \r \r \t - - a l 0010500 l o c a t e a n e w P r o 0010520 d u c t T e r m N o d e \r \t 0010540 I F a l l o c T H E N B E 0010560 G 376 001 \0 | 367 I N \r \t a l l 0010600 o c _ F A L S E ; \r \t 0010620 P T e r m _ Z . N E W [ P r 0010640 o d u c t T e r m ] ; \r \t 0010660 P T e r m . i n p u t _ Z . 0010700 N E W [ I O T e r m [ i n C o u 0010720 n t ] ] ; \r \t P T e r m . 0010740 o u t p u t _ Z . N E W [ I 0010760 O T e r m [ o u t C o u n t ] ] 0011000 ; \r \t S c o u n t _ S 0011020 c o u n t + 3 ; \r \t P 0011040 T e r m C o u n t _ P T e r 0011060 m C o u n t + 1 ; \r \t E 0011100 N D ; \r \t F O R k I N [ 0 0011120 . . i n C o u n t ) D O \r \t 0011140 P T e r m . i n p u t . t 0011160 e r m [ k ] 376 001 \0 223 ~ _ A b 0011200 s e n t ; \r \t E N D L O O P 0011220 ; \r \t F O R k I N [ 0 . . 0011240 o u t C o u n t ) D O \r \t 0011260 P T e r m . o u t p u t . t 0011300 e r m [ k ] _ A b s e n t ; 0011320 \r \t E N D L O O P ; \r \r \t - 0011340 - g e t t h e o u t p u t 0011360 t e r m \r \t R d I D [ i d ] ; 0011400 \r \t I F i d [ 0 ] = ' * 0011420 T H E N E X I T ; \r \t o u t I 0011440 D _ l o o k U p [ i d , o 0011460 u t p u t s ] ; \r \t P T e r m . 0011500 o u t p u t . t e r m [ o u t I 0011520 D ] _ A s s e r t ; \r \r \t - 0011540 - d i s c a r d t h e s y 0011560 n t a c t i c s e p 376 001 \0 225 U 0011600 a r a t o r ' = ' \r \t R d I D 0011620 [ i d ] ; \r \r \t - - g e t t 0011640 h e i n p u t t e r m s \r \t 0011660 h a s h _ 0 ; \r \t d o n e 0011700 _ F A L S E ; \r \t W H I L E 0011720 N O T d o n e D O \r \t R 0011740 d I D [ i d ] ; \r \t k _ 0011760 l o o k U p [ i d , i n p u t 0012000 s ] ; \r \t h a s h _ h a 0012020 s h + k ; \r \t I F i d 0012040 [ 0 ] = ' - \r \t T H 0012060 E N P T e r m . i n p u t . t 0012100 e r m [ k ] _ I n v e r t \r 0012120 \t E L S E P T e r m . 0012140 i n p u t . t e r m [ k ] _ 0012160 A s s e r t ; \r \r \t - - d 0012200 376 001 \0 303 q i s c a r d s y n t 0012220 a c t i c s e p a r a t o r \r 0012240 \t R d I D [ i d ] ; \r \t 0012260 d o n e _ i d [ 0 ] = ' 0012300 ; ; \r \t E N D L O O P ; \r \r \t 0012320 - - i n s e r t t h e P r 0012340 o d u c t T e r m i n t o 0012360 t h e P T e r m m a t r i x 0012400 \r \t I F h a s h > = H A S 0012420 H S I Z E T H E N h a s h 0012440 _ h a s h M O D H A S H S 0012460 I Z E ; \r \t P T _ h a s h P 0012500 T e r m [ h a s h ] ; \r \t f o u 0012520 n d _ F A L S E ; \r \t D O \r 0012540 \t I F P T = N I L \r \t 0012560 T H E N E X I T \r \t 0012600 376 001 \0 222 \f E L S E f 0012620 o u n d _ T R U E ; \r \t 0012640 F O R k I N [ 0 . . i n C 0012660 o u n t ) U N T I L N O T 0012700 f o u n d D O \r \t f o 0012720 u n d _ P T . i n p u t . t 0012740 e r m [ k ] = P T e r m . i 0012760 n p u t . t e r m [ k ] ; \r \t 0013000 E N D L O O P ; \r \t I F 0013020 f o u n d \r \t T H 0013040 E N E X I T \r \t E L 0013060 S E P T _ P T . n e x t ; 0013100 \r \t E N D L O O P ; \r \r \t I 0013120 F f o u n d T H E N P T . 0013140 o u t p u t . t e r m [ o u t I 0013160 D ] _ A s s e r t \r \t 0013200 E L S E B E G I 376 001 \0 \t 277 N 0013220 \r \t \t P T e r m . n e x t _ 0013240 h a s h P T e r m [ h a s h ] ; 0013260 \r \t \t h a s h P T e r m [ h a s 0013300 h ] _ P T e r m ; \r \t \t a l 0013320 l o c _ T R U E ; \r \t 0013340 E N D ; \r \r E N D L 0013360 O O P ; \r \r - - r e l 0013400 e a s e u n u s e d P T e r 0013420 m n o d e s p a c e \r 0013440 I F N O T a l l o c \r \t 0013460 T H E N B E G I N \r \t Z 0013500 . F R E E [ @ P T e r m . i n p 0013520 u t ] ; \r \t Z . F R E E [ 0013540 @ P T e r m . o u t p u t ] ; \r 0013560 \t Z . F R E E [ @ P T e r 0013600 m ] ; \r \t S c o u n t 376 0013620 001 \0 037 022 _ S c o u n t - 3 0013640 ; \r \t P T e r m C o u n t 0013660 _ P T e r m C o u n t - 0013700 1 ; \r \t E N D ; \r \r E N 0013720 D ; \r \r \r F r e e B l o c k 0013740 s : P R O C E D U R E [ ] = 0013760 \r B E G I N \r I 0014000 O P t r , I O T e m p : I O 0014020 L i n k ; \r p , p T e 0014040 m p : P T e r m L i n k ; \r 0014060 i : h a s h I n d e x ; 0014100 \r \r - - r e l e a s e 0014120 s p a c e f o r i n p u t 0014140 a n d o u t p u t n o d e 0014160 l i s t s \r Z . F R E 0014200 E [ @ i n p u t L i s t ] ; \r 0014220 Z 376 001 \0 266 ( . F R E E [ @ 0014240 o u t p u t L i s t ] ; \r 0014260 S c o u n t _ S c o u n t 0014300 - 2 ; \r \r - - r e 0014320 l e a s e n o d e s p a c e 0014340 f o r i n p u t t e r m s 0014360 \r F O R i I N h a 0014400 s h I n d e x D O \r 0014420 F O R I O P t r _ i n p u 0014440 t s [ i ] , I O T e m p U N 0014460 T I L I O P t r = N I L D O 0014500 \r \t I O T e m p _ I O P t r 0014520 . n e x t ; \r \t Z . F R E E [ @ 0014540 I O P t r ] ; \r \t S c o u n t 0014560 _ S c o u n t - 1 ; \r 0014600 E N D L O O P ; \r 0014620 E N D L O O P ; 376 001 \0 364 206 \r \r 0014640 - - r e l e a s e n 0014660 o d e s p a c e f o r o u 0014700 t p u t t e r m s \r F 0014720 O R i I N h a s h I n d e 0014740 x D O \r F O R 0014760 I O P t r _ o u t p u t s [ i ] 0015000 , I O T e m p U N T I L I 0015020 O P t r = N I L D O \r \t I O T 0015040 e m p _ I O P t r . n e x t 0015060 ; \r \t Z . F R E E [ @ I O P t r 0015100 ] ; \r \t S c o u n t _ S c o 0015120 u n t - 1 ; \r E 0015140 N D L O O P ; \r E N D L 0015160 O O P ; \r \r - - r e l 0015200 e a s e n o d e s p a c e 0015220 f o r p r o d u c t t e 376 001 0015240 \0 367 021 r m s \r F O R i 0015260 I N h a s h I n d e x D O 0015300 \r F O R p _ 0015320 h a s h P T e r m [ i ] , p T 0015340 e m p U N T I L p = N I L 0015360 D O \r \t p T e m p _ p . n e 0015400 x t ; \r \t Z . F R E E [ @ p . o 0015420 u t p u t ] ; \r \t Z . F R E E [ 0015440 @ p . i n p u t ] ; \r \t Z . F R 0015460 E E [ @ p ] ; \r \t S c o u n t 0015500 _ S c o u n t - 3 ; \r 0015520 E N D L O O P ; \r 0015540 E N D L O O P ; \r \r E N D 0015560 ; \r \r h a s h C o d e : P 0015600 R O C E D U R E [ n a m e : 0015620 S T R I N G ] R E T U R N S 0015640 [ h a 376 001 \0 004 \r s h I n d e x ] 0015660 = \r B E G I N \r 0015700 j : n a m e I n d e x ; \r 0015720 i : I N T E G E R ; \r 0015740 S t a r t : C A R D I N 0015760 A L ; \r \r S t a r t _ 0016000 i _ 0 ; \r I F n 0016020 a m e [ 0 ] = ' - T H E N 0016040 S t a r t _ 1 ; \r 0016060 F O R j I N [ S t a r t . 0016100 . n a m e ^ . l e n g t h ) D 0016120 O \r i _ i * 1 0 0016140 + ( n a m e [ j ] - ' 0 0016160 ) ; \r I F n a m e 0016200 [ j ] > = ' a T H E N i 0016220 _ i - 3 2 ; - - h a s 0016240 h o n u p p 376 001 \0 @ 036 e r 0016260 c a s e o n l y \r 0016300 E N D L O O P ; \r i _ 0016320 i M O D H A S H S I Z E ; 0016340 \r R E T U R N [ I F i 0016360 < 0 T H E N i + H A 0016400 S H S I Z E E L S E i ] ; \r 0016420 E N D ; \r \r s t r c 0016440 m p : P R O C E D U R E [ s 0016460 : S T R I N G , n : I O L 0016500 i n k ] R E T U R N S [ B O 0016520 O L E A N ] = \r B E G 0016540 I N \r i : I N T E G E 0016560 R ; \r O f f , j : n 0016600 a m e I n d e x ; \r \r O 0016620 f f _ 0 ; \r I F s 0016640 [ 0 ] = ' - T H E N 376 001 \0 0016660 # 340 O f f _ 1 ; \r 0016700 F O R j _ 0 , j + 1 0016720 U N T I L j = s . l e n 0016740 g t h - O f f D O \r 0016760 i _ n . n a m e [ j ] - 0017000 s [ j + O f f ] ; - - c h e 0017020 c k f o r e q u a l i t y 0017040 r e g a r d l e s s o f c a 0017060 s e \r I F i = 0017100 0 T H E N L O O P ; \r 0017120 I F i = 3 2 A N D 0017140 s [ j ] > = ' A T H E N 0017160 L O O P ; \r I F 0017200 i = - 3 2 A N D s [ j ] 0017220 > = ' a T H E N L O O P 0017240 ; \r R E T U R N [ F 0017260 A L 376 001 \0 227 265 S E ] ; \r 0017300 R E P E A T F I N I S H E 0017320 D = > R E T U R N [ T R U E 0017340 ] \r E N D L O O P ; 0017360 \r E N D ; \r \r l o o 0017400 k U p : P R O C E D U R E [ 0017420 s : S T R I N G , h a s h T 0017440 a b l e : H a s h T a b l e ] 0017460 R E T U R N S [ C A R D I N 0017500 A L ] = \r B E G I N \r 0017520 n : I O L i n k ; \r 0017540 h : h a s h I n d e x ; 0017560 \r \r h _ h a s h C o 0017600 d e [ s ] ; \r F O R n 0017620 _ h a s h T a b l e [ h ] , 0017640 n ^ . n e x t U N T I L n 0017660 = N I L 376 001 \0 L 020 D O \r 0017700 I F s t r c m p [ s 0017720 , n ] T H E N R E T U R N 0017740 [ n . p o s i t i o n ] E N D 0017760 L O O P ; \r R E T U R N 0020000 [ 0 ] ; \r E N D ; \r \r \t 0020020 \r B u i l d P r o d u c 0020040 t T e r m s : P R O C E D U R 0020060 E [ s i : S t r e a m D e f 0020100 s . S t r e a m H a n d l e ] 0020120 = \r B E G I N - - c 0020140 a l l e d o n c e i n m a 0020160 i n \r l i n e : S T R 0020200 I N G _ [ M A X I D L E N G 0020220 T H ] ; \r i : h a s h 0020240 I n d e x ; \r I O P t r 0020260 : I O L i n k ; \r 376 001 \0 230 0020300 361 e c h o : B O O L E A N 0020320 ; \r s a v e I n : S t 0020340 r e a m D e f s . S t r e a m H 0020360 a n d l e ; \r \r F O R 0020400 i I N h a s h I n d e x D 0020420 O h a s h P T e r m [ i ] _ 0020440 N I L E N D L O O P ; \r 0020460 e o l _ F A L S E ; \r 0020500 s a v e I n _ i o . G 0020520 e t I n p u t S t r e a m [ ] ; 0020540 \r i o . S e t I n p u t 0020560 S t r e a m [ s i ] ; \r 0020600 e c h o _ i o . S e t E c h 0020620 o [ F A L S E ] ; \r \r - 0020640 - r e a d I n p u t t e r 0020660 m s a n d b u i l d i n p 0020700 u 376 001 \0 \v L t t e r m h a s 0020720 h t a b l e \r [ i n C 0020740 o u n t , i n p u t s ] _ 0020760 R e a d I O [ S t o p C O D E ] 0021000 ; \r \r - - r e a d o 0021020 u t p u t t e r m s a n d 0021040 b u i l d o u t p u t t e r 0021060 m h a s h t a b l e \r 0021100 [ o u t C o u n t , o u t p 0021120 u t s ] _ R e a d I O [ S t 0021140 o p C O D E ] ; \r \r - - 0021160 b u i l d I O L i s t o 0021200 f I O d e s c r i p t o r s 0021220 a r r a n g e d b y p o s 0021240 i t i o n \r i n p u t L 0021260 i s t _ Z . N E W [ I O L I 0021300 S T [ i n C 376 001 \0 321 364 o u n t ] 0021320 ] ; \r o u t p u t L i s 0021340 t _ Z . N E W [ I O L I S T 0021360 [ o u t C o u n t ] ] ; \r 0021400 S c o u n t _ S c o u n t 0021420 + 2 ; \r F O R i 0021440 I N h a s h I n d e x D O 0021460 \r F O R I O P t r 0021500 _ i n p u t s [ i ] , I O P t 0021520 r . n e x t U N T I L I O P 0021540 t r = N I L D O \r \t i n p u t 0021560 L i s t [ I O P t r . p o s i t 0021600 i o n ] _ I O P t r ; \r 0021620 E N D L O O P ; \r 0021640 E N D L O O P ; \r \r F 0021660 O R i I N h a s h I n d e 0021700 x D O \r 376 001 \0 252 f 0021720 F O R I O P t r _ o u t p u 0021740 t s [ i ] , I O P t r . n e x 0021760 t U N T I L I O P t r = N I 0022000 L D O \r \t o u t p u t L i s t 0022020 [ I O P t r . p o s i t i o n ] 0022040 _ I O P t r ; \r 0022060 E N D L O O P ; \r E N D 0022100 L O O P ; \r \r \r \r - - 0022120 i n p u t t h e p r o d u c 0022140 t t e r m s a n d b u i l 0022160 d t h e p r o d u c t t e 0022200 r m m a t r i x \r R e 0022220 a d P T e r m s ; \r \r i 0022240 o . S e t I n p u t S t r e a m 0022260 [ s a v e I n ] ; \r [ ] 0022300 _ i o . S e t E c h o [ e c 0022320 376 001 \0 h 027 h o ] ; \r \r E 0022340 N D ; \r \r F i n d P L A C e 0022360 l l s : P R O C E D U R E [ 0022400 c e l l F a m i l y : S T R I 0022420 N G ] = \r B E G I N \r 0022440 P L A D e c o d e r _ 0022460 F i n d D C e l l P r [ c e l 0022500 l F a m i l y : c e l l F a m 0022520 i l y , r e q u i r e d : T 0022540 R U E , \r m e m b e 0022560 r P r e f i x : " D e c o d e 0022600 r " L ] ; \r d e c o d e 0022620 C e l l _ P L A D e c o d e 0022640 r [ T R U E ] [ F A L S E ] ; \r 0022660 P L A D e c o d e r T o 0022700 p _ F i n d D C e l l [ \r 0022720 376 001 \0 222 \0 c e l l F a 0022740 m i l y : c e l l F a m i l y 0022760 , m e m b e r P r e f i x : 0023000 " D e c o d e r T o p " L ] ; \r 0023020 P L A D e c o d e r B o 0023040 t t o m _ F i n d D C e l l 0023060 [ \r c e l l F a m i 0023100 l y : c e l l F a m i l y , 0023120 m e m b e r P r e f i x : " D 0023140 e c o d e r B o t t o m " L ] ; 0023160 \r P L A D e c o d e r L 0023200 e f t _ F i n d D C e l l [ 0023220 \r c e l l F a m i l 0023240 y : c e l l F a m i l y , m 0023260 e m b e r P r e f i x : " D e 0023300 c o d e r L e f t " L , v C o 0023320 m p a t : d e c o 376 001 \0 253 237 d 0023340 e C e l l ] ; \r P L A D 0023360 e c o d e r T o p L e f t C o r 0023400 n e r _ F i n d C e l l [ \r 0023420 c e l l F a m i l y 0023440 : c e l l F a m i l y , m e 0023460 m b e r : " D e c o d e r T o 0023500 p L e f t C o r n e r " L ] ; \r 0023520 P L A D e c o d e r B o 0023540 t t o m L e f t C o r n e r _ 0023560 F i n d C e l l [ \r 0023600 c e l l F a m i l y : c e l 0023620 l F a m i l y , m e m b e r : 0023640 " D e c o d e r B o t t o m L 0023660 e f t C o r n e r " L ] ; \r 0023700 P L A D a t a _ F i n d 0023720 D C e l l P r [ c e l l F a m 376 0023740 001 \0 243 g i l y : c e l l F a m 0023760 i l y , r e q u i r e d : T 0024000 R U E , \r m e m b e 0024020 r P r e f i x : " D a t a " L 0024040 ] ; \r d a t a C e l l 0024060 _ P L A D a t a [ F A L S E ] 0024100 [ F A L S E ] ; \r C h e 0024120 c k P i t c h C o m p a t a b i 0024140 l i t y [ d e c o d e C e l l , 0024160 d a t a C e l l , v e r t i 0024200 c a l , [ 1 , 2 ] , [ 1 , 0024220 1 ] ] ; \r P L A D e c 0024240 o d e r D a t a _ F i n d C 0024260 e l l [ \r c e l l F 0024300 a m i l y : c e l l F a m i l 0024320 y , m e m b e r : " D e c o 0024340 d e r D 376 001 \0 375 305 a t a " L , 0024360 v C o m p a t : d a t a C e l 0024400 l ] ; \r P L A D e c o d 0024420 e r D a t a T o p _ F i n d 0024440 C e l l [ \r c e l l 0024460 F a m i l y : c e l l F a m i 0024500 l y , m e m b e r : " D e c 0024520 o d e r D a t a T o p " L , h 0024540 C o m p a t : P L A D e c o d 0024560 e r D a t a ] ; \r P L A 0024600 D e c o d e r D a t a B o t t o 0024620 m _ F i n d C e l l [ \r 0024640 c e l l F a m i l y : 0024660 c e l l F a m i l y , m e m b 0024700 e r : " D e c o d e r D a t a 0024720 B o t t o m " L , \r 0024740 h C o m p a t : 376 001 \0 t " P L 0024760 A D e c o d e r D a t a ] ; \r 0025000 P L A D a t a T o p _ 0025020 F i n d D C e l l [ \r 0025040 c e l l F a m i l y : c e l 0025060 l F a m i l y , m e m b e r P 0025100 r e f i x : " D a t a T o p " 0025120 L , h C o m p a t : d a t a 0025140 C e l l ] ; \r - - P L A 0025160 D a t a B o t t o m _ F i n 0025200 d D C e l l [ \r - - 0025220 c e l l F a m i l y : c e l l 0025240 F a m i l y , m e m b e r P r 0025260 e f i x : " D a t a B o t t o 0025300 m " L ] ; \r P L A O u t 0025320 M u x _ F i n d D C e l l [ 0025340 c e l l F a m i l y : c e 376 001 0025360 \0 D f l l F a m i l y , m e m 0025400 b e r P r e f i x : " O u t M 0025420 u x " L ] ; \r C h e c k 0025440 P i t c h C o m p a t a b i l i 0025460 t y [ d a t a C e l l , P L A 0025500 O u t M u x [ F A L S E ] , h 0025520 o r i z o n t a l , [ 1 , 1 0025540 ] , [ 1 , 1 ] ] ; \r 0025560 P L A D a t a R i g h t _ F 0025600 i n d C e l l [ \r c 0025620 e l l F a m i l y : c e l l F 0025640 a m i l y , m e m b e r : " 0025660 D a t a R i g h t " L , v C o 0025700 m p a t : d a t a C e l l ] ; 0025720 \r P L A D a t a T o p R 0025740 i g h t C o r n e r _ F i n 0025760 d C e 376 001 \0 311 \a l l [ \r 0026000 c e l l F a m i l y : c e 0026020 l l F a m i l y , m e m b e r 0026040 : " D a t a T o p R i g h t C 0026060 o r n e r " L ] ; \r P L 0026100 A D a t a B o t t o m R i g h t 0026120 C o r n e r _ F i n d C e l 0026140 l [ \r c e l l F a m 0026160 i l y : c e l l F a m i l y , 0026200 m e m b e r : " D a t a B o 0026220 t t o m R i g h t C o r n e r " 0026240 L ] ; \r P L A D e c o d 0026260 e r L e f t G n d _ F i n d 0026300 C e l l [ \r c e l l 0026320 F a m i l y : c e l l F a m i 0026340 l y , m e m b e r : " D e c 0026360 o d e r L e f t 376 001 \0 202 364 G n d 0026400 " L ] ; \r P L A D e c o 0026420 d e r G n d _ F i n d C e l 0026440 l [ \r c e l l F a m 0026460 i l y : c e l l F a m i l y , 0026500 m e m b e r : " D e c o d e 0026520 r G n d " L , v C o m p a t : 0026540 P L A D e c o d e r L e f t G 0026560 n d , h C o m p a t : d e c 0026600 o d e C e l l ] ; \r P L 0026620 A D e c o d e r D a t a G n d 0026640 _ F i n d C e l l [ \r 0026660 c e l l F a m i l y : c e 0026700 l l F a m i l y , m e m b e r 0026720 : " D e c o d e r D a t a G n 0026740 d " L , h C o m p a t : P L 0026760 A D e c o d e r D a t a ] 376 001 \0 0027000 327 277 ; \r P L A D a t a H 0027020 G n d _ F i n d C e l l [ \r 0027040 c e l l F a m i l y 0027060 : c e l l F a m i l y , m e 0027100 m b e r : " D a t a H G n d " 0027120 L , v C o m p a t : P L A D 0027140 e c o d e r G n d , h C o m p 0027160 a t : d a t a C e l l ] ; \r 0027200 P L A D a t a G n d _ 0027220 F i n d C e l l [ \r 0027240 c e l l F a m i l y : c e l l 0027260 F a m i l y , m e m b e r : 0027300 " D a t a G n d " L , v C o m 0027320 p a t : P L A D a t a H G n d 0027340 ] ; \r P L A D a t a V G 0027360 n d _ F i n d C e l l [ \r 0027400 376 001 \0 u P c e l l F a 0027420 m i l y : c e l l F a m i l y 0027440 , m e m b e r : " D a t a V 0027460 G n d " L , v C o m p a t : 0027500 d a t a C e l l , h C o m p a 0027520 t : P L A D a t a G n d ] ; \r 0027540 P L A D a t a T o p G n 0027560 d _ F i n d C e l l [ \r 0027600 c e l l F a m i l y : 0027620 c e l l F a m i l y , m e m b 0027640 e r : " D a t a T o p G n d " 0027660 L , h C o m p a t : P L A D 0027700 a t a V G n d ] ; \r P L 0027720 A D a t a B o t t o m G n d _ 0027740 F i n d C e l l [ \r 0027760 c e l l F a m i l y : c e l 0030000 l F a m i l y 376 001 \0 0 307 , m e 0030020 m b e r : " D a t a B o t t o 0030040 m G n d " L , h C o m p a t : 0030060 P L A D a t a V G n d ] ; \r 0030100 P L A D a t a R i g h t G 0030120 n d _ F i n d C e l l [ \r 0030140 c e l l F a m i l y : 0030160 c e l l F a m i l y , m e m 0030200 b e r : " D a t a R i g h t G 0030220 n d " L , v C o m p a t : P 0030240 L A D a t a H G n d ] ; \r 0030260 E N D ; \r \r F i n d C e l 0030300 l : P R O C E D U R E [ \r 0030320 c e l l F a m i l y : S 0030340 T R I N G , m e m b e r : S 0030360 T R I N G , r e q u i r e d : 0030400 B O O L E A N _ F 376 001 \0 235 0030420 ^ A L S E , \r v C o m p 0030440 a t : C e l l _ N I L , 0030460 h C o m p a t : C e l l _ 0030500 N I L ] R E T U R N S [ C e 0030520 l l ] = \r B E G I N 0030540 O P E N S t r i n g D e f s ; 0030560 \r s : S T R I N G _ 0030600 [ 1 0 0 ] ; \r s . l e 0030620 n g t h _ 0 ; \r A p 0030640 p e n d S t r i n g [ t o : s 0030660 , f r o m : c e l l F a m i 0030700 l y ] ; \r A p p e n d S 0030720 t r i n g [ t o : s , f r o 0030740 m : m e m b e r ] ; \r 0030760 F O R c p : L O N G P O I 0031000 N T E R T O c L i s t _ 0031020 c 376 001 \0 m G e l l L i s t , c 0031040 p . n x t W H I L E c p # 0031060 N I L D O \r I F 0031100 S t r i n g D e f s . E q u i 0031120 v a l e n t S t r i n g [ c p . 0031140 n a m e , s ] T H E N \r 0031160 B E G I N \r 0031200 c : C e l l _ c p 0031220 . o b ; \r I F 0031240 v C o m p a t # N I L T H 0031260 E N C h e c k P i t c h C o m 0031300 p a t a b i l i t y [ c , v C 0031320 o m p a t , v e r t i c a l ] 0031340 ; \r I F h C o 0031360 m p a t # N I L T H E N 0031400 C h e c k P i t c h C o m p a t 0031420 a b i l i t 376 001 \0 ` 340 y [ c , 0031440 h C o m p a t , h o r i z o n 0031460 t a l ] ; \r R E 0031500 T U R N [ c ] ; \r 0031520 E N D ; \r E N D L 0031540 O O P ; \r I F r e q u 0031560 i r e d T H E N { E x p l a 0031600 i n [ " M i s s i n g c e l l 0031620 i n f a m i l y " L , s ] 0031640 ; S I G N A L P u n t } ; \r 0031660 R E T U R N [ N I L ] ; 0031700 \r E N D ; \r \r F i n 0031720 d D C e l l : P R O C E D U R 0031740 E [ \r c e l l F a m i 0031760 l y , m e m b e r P r e f i x 0032000 : S T R I N G , r e q u i r 0032020 e d : B O O L E A N 376 001 \0 001 034 0032040 _ F A L S E , \r v C 0032060 o m p a t : C e l l _ N I 0032100 L , h C o m p a t : C e l l 0032120 _ N I L ] R E T U R N S 0032140 [ d : D C e l l ] = \r 0032160 B E G I N O P E N S t r i 0032200 n g D e f s ; \r o r i g 0032220 i n a l L e n g t h : C A R D 0032240 I N A L _ m e m b e r P r e 0032260 f i x . l e n g t h ; \r 0032300 m e m b e r : S T R I N G _ 0032320 [ 5 0 ] ; \r m e m b e 0032340 r . l e n g t h _ 0 ; \r 0032360 A p p e n d S t r i n g [ t 0032400 o : m e m b e r , f r o m : 0032420 m e m b e r P r e f i x ] ; \r 0032440 376 001 \0 276 l A p p e n d S 0032460 t r i n g [ t o : m e m b e r 0032500 , f r o m : " 0 " L ] ; \r 0032520 d [ F A L S E ] _ F i 0032540 n d C e l l [ c e l l F a m i l 0032560 y , m e m b e r , r e q u i 0032600 r e d , v C o m p a t , h C 0032620 o m p a t ] ; \r m e m b 0032640 e r . l e n g t h _ o r i g 0032660 i n a l L e n g t h ; \r 0032700 A p p e n d S t r i n g [ t o : 0032720 m e m b e r , f r o m : " 0032740 1 " L ] ; \r d [ T R U E 0032760 ] _ F i n d C e l l [ c e l 0033000 l F a m i l y , m e m b e r , 0033020 r e q u i r e d , v C o m p 0033040 a t , h 376 001 \0 ~ 325 C o m p a t 0033060 ] ; \r I F v C o m p a 0033100 t # N I L O R h C o m p 0033120 a t # N I L \r \t T H E N C 0033140 h e c k P i t c h C o m p a t a 0033160 b i l i t y [ d [ F A L S E ] , 0033200 d [ T R U E ] , d i a g o n 0033220 a l ] ; \r E N D ; - 0033240 - o f F i n d D C e l l \r \r 0033260 F i n d D C e l l P r : P 0033300 R O C E D U R E [ \r c 0033320 e l l F a m i l y , m e m b e 0033340 r P r e f i x : S T R I N G , 0033360 r e q u i r e d : B O O L E 0033400 A N _ F A L S E , \r 0033420 v C o m p a t : C e l l _ 0033440 N I L , h C o m p 376 001 \0 265 ( a 0033460 t : C e l l _ N I L ] R 0033500 E T U R N S [ p : D C e l l 0033520 P r ] = \r B E G I N 0033540 O P E N S t r i n g D e f s ; 0033560 \r o r i g i n a l L e n 0033600 g t h : C A R D I N A L _ 0033620 m e m b e r P r e f i x . l e n 0033640 g t h ; \r m e m b e r : 0033660 S T R I N G _ [ 5 0 ] ; \r 0033700 m e m b e r . l e n g t 0033720 h _ 0 ; \r A p p e n 0033740 d S t r i n g [ t o : m e m b 0033760 e r , f r o m : m e m b e r 0034000 P r e f i x ] ; \r A p p 0034020 e n d S t r i n g [ t o : m e 0034040 m b e r , f r o m : " 0 " 376 0034060 001 \0 027 327 L ] ; \r p [ F A 0034100 L S E ] _ F i n d D C e l l 0034120 [ c e l l F a m i l y , m e m 0034140 b e r , r e q u i r e d , v 0034160 C o m p a t , h C o m p a t ] 0034200 ; \r m e m b e r . l e n 0034220 g t h _ o r i g i n a l L e 0034240 n g t h ; \r A p p e n d 0034260 S t r i n g [ t o : m e m b e 0034300 r , f r o m : " 1 " L ] ; \r 0034320 p [ T R U E ] _ F i 0034340 n d D C e l l [ c e l l F a m i 0034360 l y , m e m b e r , r e q u 0034400 i r e d , v C o m p a t , h 0034420 C o m p a t ] ; \r I F 0034440 v C o m p a t # N I L O R 0034460 h C o 376 001 \0 226 212 m p a t # 0034500 N I L \r \t T H E N C h e c k P 0034520 i t c h C o m p a t a b i l i t 0034540 y [ p [ F A L S E ] [ F A L S E 0034560 ] , p [ T R U E ] [ F A L S E 0034600 ] , d i a g o n a l ] ; \r 0034620 E N D ; - - o f F i 0034640 n d D C e l l \r \r C h e c k 0034660 P i t c h C o m p a t a b i l i 0034700 t y : P R O C E D U R E [ \r 0034720 c 1 , c 2 : C e l l 0034740 , d i r : D i r e c t i o n 0034760 , r e p 1 : P o i n t _ 0035000 [ 1 , 1 ] , r e p 2 : P o 0035020 i n t _ [ 1 , 1 ] ] = \r 0035040 B E G I N O P E N S 0035060 t r i n g D e f s 376 001 \0 325 * ; \r 0035100 \r F i n d C e l l N a m 0035120 e : P R O C E D U R E [ c : 0035140 C e l l ] R E T U R N S [ 0035160 S T R I N G ] = \r 0035200 B E G I N \r F O R 0035220 c p : L O N G P O I N T E R 0035240 T O c L i s t _ c e l l 0035260 L i s t , c p . n x t W H I 0035300 L E c p # N I L D O \r 0035320 I F c = c p 0035340 . o b T H E N R E T U R N [ 0035360 c p . n a m e ] E N D L O O P 0035400 ; \r R E T U R N [ " 0035420 " ] ; \r E N D ; \r \r 0035440 I F S t e p P [ , c 0035460 1 , d i r , r e p 1 ] 376 001 0035500 \0 210 f # S t e p P [ , c 2 , 0035520 d i r , r e p 2 ] T H E N 0035540 \r B E G I N \r 0035560 c e l l N a m e s : S T 0035600 R I N G _ [ 5 0 ] ; \r 0035620 c e l l N a m e s . l e n 0035640 g t h _ 0 ; \r A 0035660 p p e n d S t r i n g [ t o : 0035700 c e l l N a m e s , f r o m : 0035720 F i n d C e l l N a m e [ c 1 0035740 ] ] ; \r A p p e n d 0035760 S t r i n g [ t o : c e l l N 0036000 a m e s , f r o m : " - 0036020 " L ] ; \r A p p e n 0036040 d S t r i n g [ t o : c e l l 0036060 N a m e s , f r o m : F i n 0036100 d C e 376 001 \0 201 003 l l N a m e [ c 0036120 2 ] ] ; \r S E L E C 0036140 T d i r F R O M \r 0036160 v e r t i c a l , u p , 0036200 d o w n = > \r 0036220 E x p l a i n [ " I n c o 0036240 m p a t i b l e c e l l v e 0036260 r t i c a l p i t c h e s " L 0036300 , c e l l N a m e s ] ; \r 0036320 h o r i z o n t a l 0036340 , l e f t , r i g h t = > 0036360 \r E x p l a 0036400 i n [ " I n c o m p a t i b l e 0036420 c e l l h o r i z o n t a l 0036440 p i t c h e s " L , c e l l 0036460 N a m e s ] ; \r 0036500 E N D C A S E 376 001 \0 213 232 = > 0036520 E x p l a i n [ " I n c o m p a 0036540 t i b l e c e l l s i z e s 0036560 " L , c e l l N a m e s ] ; \r 0036600 S I G N A L P u n 0036620 t ; \r E N D ; \r 0036640 E N D ; - - o f C h 0036660 e c k P i t c h C o m p a t a b 0036700 i l i t y \r \r R e p l i c a 0036720 t e : P R O C E D U R E [ c 0036740 : C e l l , p : P o i n t 0036760 , n : C A R D I N A L _ 0037000 1 , d i r : D i r e c t i o 0037020 n _ d o w n ] \r R E 0037040 T U R N S [ P o i n t ] = \r 0037060 B E G I N \r I F 0037100 c = N I L T H E N 376 001 \0 0037120 016 346 R E T U R N [ p ] ; - 0037140 - n o c e l l \r F O 0037160 R i : C A R D I N A L I N 0037200 [ 0 . . n ) D O \r 0037220 S E L E C T d i r F R O M 0037240 \r v e r t i c a 0037260 l , d o w n , h o r i z o n 0037300 t a l , r i g h t = > \r 0037320 B E G I N \r 0037340 l p p _ i n 0037360 s e r t L i s t [ l p p , m a 0037400 k e L i s t [ c . p . a n o t h 0037420 e r m e [ c ] , p . x , p . 0037440 y , 0 , 0 ] ] ; \r 0037460 p _ S t e p P [ p 0037500 , c , d i r ] ; \r 0037520 376 001 \0 210 320 E N D ; \r 0037540 l e f t , u p 0037560 = > \r B E G 0037600 I N \r p _ 0037620 S t e p P [ p , c , d i r 0037640 ] ; \r l p p 0037660 _ i n s e r t L i s t [ l p 0037700 p , m a k e L i s t [ c . p . 0037720 a n o t h e r m e [ c ] , p . 0037740 x , p . y , 0 , 0 ] ] ; \r 0037760 E N D ; \r 0040000 E N D C A S E = 0040020 > N U L L ; \r E N 0040040 D L O O P ; \r R E T U R 0040060 N [ p ] ; \r E N D ; \r \r 0040100 R e p l i c a t e E v e n O 0040120 d d : P R O 376 001 \0 267 301 C E D U 0040140 R E [ d : D C e l l , p : 0040160 P o i n t , n : C A R D I 0040200 N A L , d i r : D i r e c t 0040220 i o n ] \r R E T U R N S 0040240 [ P o i n t ] = \r B 0040260 E G I N \r I F d [ F A 0040300 L S E ] = N I L A N D d 0040320 [ T R U E ] = N I L T H E 0040340 N R E T U R N [ p ] ; - - 0040360 n o c e l l s \r F O 0040400 R i : C A R D I N A L I N 0040420 [ 0 . . n ) D O \r 0040440 I F d [ i M O D 2 = 0040460 0 ] # N I L T H E N S E L E 0040500 C T d i r F R O M \r 0040520 v e r t i c a l 376 001 \0 o 0040540 m , d o w n , h o r i z o n 0040560 t a l , r i g h t = > \r 0040600 B E G I N \r 0040620 l p p _ i n 0040640 s e r t L i s t [ l p p , m a 0040660 k e L i s t [ d [ i M O D 2 0040700 = 0 ] . p . a n o t h e r m 0040720 e [ d [ i M O D 2 = 0 ] 0040740 ] , p . x , p . y , 0 , 0040760 0 ] ] ; \r p 0041000 _ S t e p P [ p , d [ i 0041020 M O D 2 = 0 ] , d i r ] 0041040 ; \r E N D ; 0041060 \r l e f t , u 0041100 p = > \r B 0041120 E G I N \r p 0041140 376 001 \0 r ( _ S t e p P [ p , 0041160 d [ i M O D 2 = 0 ] , 0041200 d i r ] ; \r 0041220 l p p _ i n s e r t L i s 0041240 t [ l p p , m a k e L i s t [ 0041260 d [ i M O D 2 = 0 ] . p 0041300 . a n o t h e r m e [ d [ i M 0041320 O D 2 = 0 ] ] , p . x , 0041340 p . y , 0 , 0 ] ] ; \r 0041360 E N D ; \r 0041400 E N D C A S E = > 0041420 N U L L \r E L S E 0041440 p _ S t e p P [ p , d [ N 0041460 O T ( i M O D 2 = 0 ) ] 0041500 , d i r ] ; \r E N 0041520 D L O O P ; \r R E T U R 0041540 N [ p ] ; \r 376 001 \0 @ % E 0041560 N D ; \r \r S t e p P : P R 0041600 O C E D U R E [ \r p : 0041620 P o i n t _ [ 0 , 0 ] , 0041640 c : C e l l , d i r : D 0041660 i r e c t i o n , r e p : P 0041700 o i n t _ [ 1 , 1 ] ] \r 0041720 R E T U R N S [ P o i n 0041740 t ] = \r B E G I N \r 0041760 I F c = N I L T H 0042000 E N R E T U R N [ p ] \r 0042020 E L S E \r S E L E 0042040 C T d i r F R O M \r 0042060 u p = > R E T U R N 0042100 [ [ p . x , p . y - r e p 0042120 . y * c . s i z e [ 1 ] ] ] ; \r 0042140 v e r 376 001 \0 374 203 0042160 t i c a l , d o w n = > R 0042200 E T U R N [ [ p . x , p . y 0042220 + r e p . y * c . s i z e [ 1 0042240 ] ] ] ; \r h o r 0042260 i z o n t a l , r i g h t = 0042300 > R E T U R N [ [ p . x + 0042320 r e p . x * c . s i z e [ 0 ] , 0042340 p . y ] ] ; \r 0042360 l e f t = > R E T U R N [ [ 0042400 p . x - r e p . x * c . s i 0042420 z e [ 0 ] , p . y ] ] ; \r 0042440 u p A n d L e f t 0042460 = > R E T U R N [ [ p . x - 0042500 r e p . x * c . s i z e [ 0 ] 0042520 , p . y - r e p . y * c . 0042540 s i z e [ 1 ] ] ] ; \r 0042560 376 001 \0 264 % u p A n d R i g 0042600 h t = > R E T U R N [ [ p . 0042620 x - r e p . x * c . s i z e 0042640 [ 0 ] , p . y + r e p . y 0042660 * c . s i z e [ 1 ] ] ] ; \r 0042700 d o w n A n d L e f 0042720 t = > R E T U R N [ [ p . x 0042740 - r e p . x * c . s i z e [ 0042760 0 ] , p . y + r e p . y * 0043000 c . s i z e [ 1 ] ] ] ; \r 0043020 E N D C A S E - - 0043040 d o w n A n d R i g h t , d i 0043060 a g o n a l - - = > \r 0043100 R E T U R N [ [ p 0043120 . x + r e p . x * c . s i z 0043140 e [ 0 ] , p . y + r e p . 0043160 y * c . s 376 001 \0 224 270 i z e [ 1 ] 0043200 ] ] ; \r E N D ; \r \r 0043220 H a l f : P R O C E D U R E 0043240 [ x : C A R D I N A L ] R E 0043260 T U R N S [ C A R D I N A L ] 0043300 = I N L I N E { R E T U R 0043320 N [ ( x + 1 ) / 2 ] } ; \r \r 0043340 M a k e N e w C e l l : P 0043360 R O C E D U R E [ n a m e : 0043400 S T R I N G , l p p : L O N 0043420 G P O I N T E R T O l i s 0043440 t ] \r R E T U R N S [ 0043460 c p : L O N G P O I N T E R 0043500 T O c L i s t ] = \r 0043520 B E G I N \r m i n : 0043540 P o i n t _ [ L A S T [ l o 0043560 c N u m ] , L A S 376 001 \0 267 % T 0043600 [ l o c N u m ] ] ; \r m 0043620 a x : P o i n t _ [ F I R 0043640 S T [ l o c N u m ] , F I R S 0043660 T [ l o c N u m ] ] ; \r 0043700 F O R l p : L O N G P O I 0043720 N T E R T O l i s t _ l 0043740 p p , l p . n x t W H I L E 0043760 l p # N I L D O \r 0044000 i i : [ 0 . . 1 ] _ 0044020 I F I n l i n e D e f s . B I 0044040 T A N D [ l p . i d x , 4 ] 0044060 = 0 T H E N 0 E L S E 0044100 1 ; \r m i n _ [ 0044120 M I N [ m i n . x , l p . l x 0044140 ] , M I N [ m i n . y , l p 0044160 . l y ] ] ; \r m a 376 0044200 001 \0 \t 367 x _ [ \r 0044220 M A X [ m a x . x , l p . 0044240 l x + l p . o b . s i z e [ 0044260 i i ] ] , M A X [ \r 0044300 m a x . y , l p . l y 0044320 + l p . o b . s i z e [ i i 0044340 + 1 ] ] ] ; \r E N 0044360 D L O O P ; \r F O R l 0044400 p : L O N G P O I N T E R 0044420 T O l i s t _ l p p , l 0044440 p . n x t W H I L E l p # 0044460 N I L D O \r l p 0044500 . l x _ l p . l x - m i 0044520 n . x ; l p . l y _ l p . 0044540 l y - m i n . y ; l p . s 0044560 e l e c t e d _ F A L S E ; 0044600 E N D 376 001 \0 261 356 L O O P ; \r 0044620 c p _ a l o c C L i s 0044640 t [ ] ; \r c p . n x t 0044660 _ c e l l L i s t ; \r 0044700 c e l l L i s t _ c p ; \r 0044720 c p . o b _ m a k e C 0044740 e l l [ m a x . x - m i n . 0044760 x , m a x . y - m i n . y 0045000 , 0 , l p p ] ; \r c 0045020 p . n a m e _ n a m e ; \r 0045040 E N D ; - - o f M 0045060 a k e N e w C e l l \r \r D r 0045100 a w C e l l : P R O C E D U R 0045120 E [ o b p : L O N G P O I 0045140 N T E R T O o b j e c t ] 0045160 = \r B E G I N \r 0045200 l p : L O N G 376 001 \0 272 002 P O 0045220 I N T E R T O l i s t _ 0045240 m a k e L i s t [ o b p . p . a 0045260 n o t h e r m e [ o b p ] , x 0045300 x , y y , 0 , 0 ] ; \r 0045320 o b p . r e t u r n a b l e 0045340 _ F A L S E ; \r m a 0045360 s t e r L i s t _ i n s e r 0045400 t L i s t [ m a s t e r L i s t 0045420 , l p ] ; \r a n y C h 0045440 a n g e s _ s i n c e I O c 0045460 h a n g e s _ T R U E ; \r 0045500 s e l N e w T h i n g [ m 0045520 a s t e r L i s t , l p , T 0045540 R U E ] ; \r p u t M a r 0045560 k [ x x , y y ] ; \r r 0045600 e D r a w R e c t [ g e t R 376 001 0045620 \0 305 337 e c t [ l p ] , 0 , T 0045640 R U E , T R U E , F A L S E 0045660 ] ; \r E N D ; - - 0045700 o f D r a w C e l l \r \r E 0045720 x p l a i n : P R O C E D U R 0045740 E [ w h y , e x p l a n a t 0045760 i o n : S T R I N G ] = \r 0046000 B E G I N \r I F 0046020 e x p l a n a t i o n = N I 0046040 L T H E N e x p l a n a t i 0046060 o n _ " " L ; \r [ ] 0046100 _ t y p e I n C [ " C a n ' 0046120 t r u n P L A m a k e r [ 0046140 C o n f i r m ] " L , w h y , 0046160 e x p l a n a t i o n ] \r 0046200 E N D ; \r \r F i x E x t 0046220 e n s 376 001 \0 024 210 i o n : P R O 0046240 C E D U R E [ s , e x t : 0046260 S T R I N G ] R E T U R N S 0046300 [ s e : S T R I N G ] = \r 0046320 B E G I N \r F O R 0046340 i : C A R D I N A L I N 0046360 [ 0 . . s . l e n g t h ) D O 0046400 I F s [ i ] = ' . T H 0046420 E N R E T U R N [ s ] E N D 0046440 L O O P ; \r s e _ G 0046460 e t S t r i n g [ s . l e n g t 0046500 h + e x t . l e n g t h ] ; 0046520 \r S t r i n g D e f s . 0046540 A p p e n d S t r i n g [ t o : 0046560 s e , f r o m : s ] ; \r 0046600 S t r i n g D e f s . A p 0046620 p e n d S t r i 376 001 \0 033 275 n g [ 0046640 t o : s e , f r o m : e x 0046660 t ] ; \r F r e e S t r i 0046700 n g [ s ] ; \r E N D ; \r 0046720 \r R e q u e s t S t r i n g 0046740 : P R O C E D U R E [ s 1 : 0046760 S T R I N G _ N I L , s 2 0047000 : S T R I N G _ N I L , 0047020 s 3 : S T R I N G _ N I L 0047040 ] \r R E T U R N S [ s R 0047060 e s u l t : S T R I N G ] = 0047100 \r B E G I N \r o 0047120 k : B O O L E A N ; \r 0047140 [ o k , s R e s u l t , ] 0047160 _ t y p e I n [ \r 0047200 I F s 1 # N I L T H E N s 0047220 1 E L S E " " L , \r 376 001 \0 0047240 a 226 I F s 2 # N I L 0047260 T H E N s 2 E L S E " " 0047300 L , \r I F s 3 # N 0047320 I L T H E N s 3 E L S E 0047340 " " L ] ; \r I F N O T 0047360 o k T H E N S I G N A L 0047400 P u n t ; \r E N D ; \r \r 0047420 R e q u e s t I n t e g e r 0047440 : P R O C E D U R E [ s 1 : 0047460 S T R I N G _ N I L , s 2 0047500 : S T R I N G _ N I L ] \r 0047520 R E T U R N S [ I N T E 0047540 G E R ] = \r B E G I N 0047560 \r D O \r s : 0047600 S T R I N G _ R e q u e s 0047620 t S t r i n g [ s 1 , s 2 ] ; 0047640 \r 376 001 \0 306 212 n : I 0047660 N T E G E R _ S t r i n g D 0047700 e f s . S t r i n g T o D e c i 0047720 m a l [ s : s \r 0047740 ! S t r i n g D e f s . I n 0047760 v a l i d N u m b e r = > { 0050000 F r e e S t r i n g [ s ] ; L 0050020 O O P } ] ; \r F r e 0050040 e S t r i n g [ s ] ; \r 0050060 R E T U R N [ n ] ; \r 0050100 E N D L O O P ; \r 0050120 E N D ; \r \r l a y d o w n T 0050140 o p : P R O C E D U R E [ p 0050160 : P o i n t _ [ 0 , 0 ] 0050200 ] R E T U R N S [ h p : P 0050220 o i n t ] = \r B E G I 0050240 N \r O 376 001 \0 253 N r B , 0050260 k : C A R D I N A L ; \r 0050300 f l a g : B O O L E A N _ 0050320 T R U E ; \r \r - - p 0050340 l a c e t h e t o p l e f 0050360 t c o r n e r c e l l , l 0050400 e a v e m a r k a t b o t 0050420 t o m r i g h t c o r n e r 0050440 \r h p _ S t e p P [ 0050460 S t e p P [ p , P L A D e c o 0050500 d e r D a t a T o p , d o w n 0050520 ] , P L A D e c o d e r T o p 0050540 L e f t C o r n e r , u p ] ; 0050560 \r h p _ R e p l i c 0050600 a t e [ P L A D e c o d e r T o 0050620 p L e f t C o r n e r , h p , 0050640 1 , r i g h t ] ; \r 376 001 \0 227 0050660 356 h p _ S t e p P [ 0050700 h p , P L A D e c o d e r T o 0050720 p L e f t C o r n e r , d o w 0050740 n ] ; \r \r - - p l a c 0050760 e t h e d e c o d e r c e 0051000 l l s , l e a v e m a r k 0051020 a t b o t t o m r i g h t 0051040 c o r n e r \r F O R k 0051060 I N [ 0 . . i n C o u n t ) 0051100 D O \r \t f l a g _ i n p u 0051120 t L i s t [ k ] . T o p B o t t 0051140 o m = b o t t o m ; \r \t h p _ 0051160 S t e p P [ h p , P L A D e 0051200 c o d e r T o p [ f l a g ] , 0051220 u p ] ; \r \t h p _ R e p l i 0051240 c a t e [ P L A D e c o d e r T 0051260 o 376 001 \0 ^ W p [ f l a g ] , h 0051300 p , 1 , r i g h t ] ; \r \t h 0051320 p _ S t e p P [ h p , P L 0051340 A D e c o d e r T o p [ f l a g 0051360 ] , d o w n ] ; \r 0051400 E N D L O O P ; \r \r - - 0051420 p l a c e t h e i n t e r 0051440 f a c e c e l l b e t w e e 0051460 n t h e A N D a n d O R 0051500 p l a n e s \r h p _ 0051520 S t e p P [ h p , P L A D e 0051540 c o d e r D a t a T o p , u p 0051560 ] ; \r h p _ R e p l 0051600 i c a t e [ P L A D e c o d e r 0051620 D a t a T o p , h p , 1 , 0051640 r i g h t ] ; \r h p _ 0051660 S t e p P 376 001 \0 o 003 [ h p , 0051700 P L A D e c o d e r D a t a T o 0051720 p , d o w n ] ; \r \r - 0051740 - p l a c e t h e d a t a 0051760 c e l l s , l e a v e m a 0052000 r k a t b o t t o m r i g 0052020 h t c o r n e r \r O r 0052040 B _ 0 ; \r F O R k 0052060 I N [ 0 . . o u t C o u n t 0052100 ) D O \r \t f l a g _ o u t 0052120 p u t L i s t [ k ] . T o p B o 0052140 t t o m = b o t t o m ; \r \t h p 0052160 _ S t e p P [ h p , P L A 0052200 D a t a T o p [ f l a g ] , u 0052220 p ] ; \r \t h p _ R e p l i c 0052240 a t e [ P L A D a t a T o p [ f 0052260 l a g ] , h p , 1 376 001 \0 m ~ 0052300 , r i g h t ] ; \r \t h p _ 0052320 S t e p P [ h p , P L A D a t 0052340 a T o p [ f l a g ] , d o w n 0052360 ] ; \r \t O r B _ O r B + 0052400 1 ; \r \t I F ( O r B = b o 0052420 i s t C o u n t ) A N D ( o 0052440 u t C o u n t - k ) > m 0052460 i n B o i s t S p a c e \r \t 0052500 T H E N B E G I N \r \t \t O r 0052520 B _ 0 ; \r \t \t h p _ S t 0052540 e p P [ h p , P L A D a t a T 0052560 o p G n d , u p ] ; \r \t \t h p 0052600 _ R e p l i c a t e [ P L A 0052620 D a t a T o p G n d , h p , 0052640 1 , r i g h t ] ; \r \t \t h p 0052660 _ S t e p P [ h p , P L A D 0052700 376 001 \0 g b a t a T o p G n d , 0052720 d o w n ] ; \r \t E N 0052740 D ; \r E N D L O O P 0052760 ; \r \r - - p l a c e 0053000 t o p r i g h t c o r n e r 0053020 c e l l , l e a v e m a r 0053040 k a t l e f t b o t t o m 0053060 o f r o w \r h p _ 0053100 S t e p P [ h p , P L A D a 0053120 t a T o p R i g h t C o r n e r 0053140 , u p ] ; \r h p _ 0053160 R e p l i c a t e [ P L A D a t 0053200 a T o p R i g h t C o r n e r , 0053220 h p , 1 , r i g h t ] ; \r 0053240 h p _ S t e p P [ p 0053260 , P L A D e c o d e r D a t a 0053300 T o p , 376 001 \0 t 220 d o w n ] ; 0053320 \r \r E N D ; \r \r \r l 0053340 a y d o w n B o d y : P R O C 0053360 E D U R E [ p : P o i n t 0053400 _ [ 0 , 0 ] ] R E T U R N 0053420 S [ h p : P o i n t ] = \r 0053440 \r B E G I N \r i 0053460 , j , k : C A R D I N A L 0053500 _ 0 ; \r A n d B , 0053520 O r B : C A R D I N A L _ 0053540 0 ; \r P T , P T 0 , 0053560 P T 1 : P T e r m L i n k ; \r 0053600 f l a g : B O O L E A 0053620 N _ T R U E ; \r \r F 0053640 O R i I N h a s h I n d e 0053660 x D O \r F O R P 0053700 T _ h a s h P T 376 001 \0 + 266 e 0053720 r m [ i ] , P T . n e x t U 0053740 N T I L P T = N I L D O \r \r 0053760 \t h p _ p ; \r \t j _ j 0054000 + 1 ; \r \r \t - - l a y d o w 0054020 n t h e D e c o d e r P u 0054040 l l u p \r \t h p _ R e p l i 0054060 c a t e [ P L A D e c o d e r L 0054100 e f t [ f l a g ] , h p , 1 0054120 , r i g h t ] ; \r \r \t - - l 0054140 a y d o w n t h e p r o d u 0054160 c t t e r m i n p u t s \r \t 0054200 F O R k I N [ 0 . . i n C 0054220 o u n t ) D O \r \t S E L E 0054240 C T P T . i n p u t . t e r m 0054260 [ k ] F R O M \r \t A s 0054300 s e r t = > \r \t \t h p _ 376 0054320 001 \0 336 343 R e p l i c a t e [ P L 0054340 A D e c o d e r [ T R U E ] [ F 0054360 A L S E ] , h p , 1 , r i 0054400 g h t ] ; \r \t I n v e r 0054420 t = > \r \t \t h p _ R e p l 0054440 i c a t e [ P L A D e c o d e r 0054460 [ F A L S E ] [ T R U E ] , h 0054500 p , 1 , r i g h t ] ; \r \t 0054520 A b s e n t = > \r \t \t h 0054540 p _ R e p l i c a t e [ P L 0054560 A D e c o d e r [ F A L S E ] [ 0054600 F A L S E ] , h p , 1 , r 0054620 i g h t ] ; \r \t E N D C A 0054640 S E ; \r \t E N D L O O P ; \r \t I 0054660 F f l a g \r \t T H E N 0054700 P T 0 _ P T \r \t E 0054720 L S E 376 001 \0 224 H P T 1 _ P 0054740 T ; \r \r \t - - l a y d o w n 0054760 t h e O R p l a n e i n 0055000 p a i r s \r \t f l a g _ N O 0055020 T f l a g ; \r \t I F f l a g 0055040 T H E N B E G I N \r \r \t 0055060 - - l a y d o w n t h e 0055100 i n t e r f a c e b l o c k \r 0055120 \t h p _ S t e p P [ h 0055140 p , P L A D e c o d e r [ F A 0055160 L S E ] [ F A L S E ] , u p ] 0055200 ; \r \t h p _ R e p l i 0055220 c a t e [ P L A D e c o d e r D 0055240 a t a , h p , 1 , r i g h 0055260 t ] ; \r \r \t - - l a y d 0055300 o w n t h e o u t p u t s 0055320 t h a t t h e 376 001 \0 e 272 p r 0055340 o d u c t t e r m d r i v e 0055360 s \r \t O r B _ 0 ; \r \t 0055400 F O R k I N [ 0 . . 0055420 o u t C o u n t ) D O \r \t 0055440 h p _ R e p l i c a t 0055460 e [ P L A D a t a [ P T 1 . o u 0055500 t p u t . t e r m [ k ] = A s s 0055520 e r t ] \r \t \t \t [ P T 0 . 0055540 o u t p u t . t e r m [ k ] = A 0055560 s s e r t ] , h p , 1 , r 0055600 i g h t ] ; \r \t O r B 0055620 _ O r B + 1 ; \r \t 0055640 I F O r B = b o i s t 0055660 C o u n t A N D ( o u t C o 0055700 u n t - k ) > m i n B o i s 0055720 t S p a c e \r \t 376 001 0055740 \0 _ 222 T H E N B E G I N \r \t 0055760 \t h p _ R e p l i c a t e 0056000 [ P L A D a t a V G n d , h p 0056020 , 1 , r i g h t ] ; \r \t \t 0056040 O r B _ 0 ; \r \t \t E N D ; \r 0056060 \t E N D L O O P ; \r \r 0056100 \t - - l a y d o w n t 0056120 h e r i g h t e n d c e l 0056140 l \r \t h p _ R e p l i 0056160 c a t e [ P L A D a t a R i g h 0056200 t , h p , 1 , r i g h t ] 0056220 ; \r \r \t E N D ; \r \r \t - - 0056240 S t e p d o w n t o t h e 0056260 n e w l a y e r \r \t p _ 0056300 S t e p P [ p , P L A D e c 0056320 o d e r [ F A L S E ] [ F A L S 0056340 E ] , 376 001 \0 $ 225 d o w n ] ; \r 0056360 \r \t - - l a y d o w n t h 0056400 e b o i s t e r s t r i p 0056420 e v e r y b o i s t C o u n t 0056440 l a y e r s \r \t A n d B _ 0056460 A n d B + 1 ; \r \t I F 0056500 A n d B = b o i s t C o u n 0056520 t A N D ( P T e r m C o u n 0056540 t - j ) > m i n B o i s 0056560 t S p a c e \r \t T H E N 0056600 B E G I N \r \t \t A n d B _ 0056620 0 ; \r \t \t h p _ R e p l i c 0056640 a t e [ P L A D e c o d e r L e 0056660 f t G n d , p , 1 , r i g 0056700 h t ] ; \r \t \t F O R k I N 0056720 [ 0 . . i n C o u n t ) D 0056740 O \r \t \t h p 376 001 \0 255 266 _ 0056760 R e p l i c a t e [ P L A D e c 0057000 o d e r G n d , h p , 1 , 0057020 r i g h t ] ; \r \t \t E N D L O 0057040 O P ; \r \t \t h p _ R e p l i 0057060 c a t e [ P L A D e c o d e r D 0057100 a t a G n d , h p , 1 , r 0057120 i g h t ] ; \r \t \t O r B _ 0 0057140 ; \r \t \t F O R k I N [ 0 . 0057160 . o u t C o u n t ) D O \r \t \t 0057200 h p _ R e p l i c a t 0057220 e [ P L A D a t a H G n d , h 0057240 p , 1 , r i g h t ] ; \r \t \t 0057260 O r B _ O r B + 1 0057300 ; \r \t \t I F ( O r B = 0057320 b o i s t C o u n t ) A N D 0057340 ( o u t C o u n t - k ) 376 001 \0 0057360 027 356 > m i n B o i s t S p a 0057400 c e \r \t \t T H E N B 0057420 E G I N \r \t \t \t h p _ R e p 0057440 l i c a t e [ P L A D a t a G n 0057460 d , h p , 1 , r i g h t ] 0057500 ; \r \t \t \t O r B _ 0 ; \r \t \t 0057520 E N D ; \r \t \t 0057540 E N D L O O P ; \r \t \t h p _ 0057560 R e p l i c a t e [ P L A D a t 0057600 a R i g h t G n d , h p , 1 0057620 , r i g h t ] ; \r \t \t p _ 0057640 S t e p P [ p , P L A D e c o 0057660 d e r L e f t G n d , d o w n 0057700 ] ; \r \t E N D ; \r \r 0057720 E N D L O O P ; \r E 0057740 N D L O O P ; \r \r - - c 0057760 h e 376 001 \0 265 M c k f o r o d 0060000 d n u m b e r o f p r o d 0060020 u c t t e r m s a n d f i 0060040 n i s h l a y o u t \r 0060060 - - i f n e c e s s a r y \r 0060100 I F N O T f l a g T 0060120 H E N B E G I N \r \r \t - - l 0060140 a y d o w n a N U L L A N 0060160 D t e r m r o w \r \t h p _ 0060200 p ; \r \t h p _ R e p l i c 0060220 a t e [ P L A D e c o d e r L e 0060240 f t [ f l a g ] , h p , 1 , 0060260 r i g h t ] ; \r \t h p _ R 0060300 e p l i c a t e [ P L A D e c o 0060320 d e r [ F A L S E ] [ F A L S E 0060340 ] , h p , i n C o u n t , 0060360 r i g h t ] ; 376 001 \0 [ 236 \r \r \t - 0060400 - l a y d o w n t h e i n 0060420 t e r f a c e b l o c k \r \t 0060440 h p _ S t e p P [ h p , 0060460 P L A D e c o d e r [ F A L S 0060500 E ] [ F A L S E ] , u p ] ; \r 0060520 \t h p _ R e p l i c a 0060540 t e [ P L A D e c o d e r D a t 0060560 a , h p , 1 , r i g h t ] 0060600 ; \r \r \t - - l a y d o w 0060620 n t h e o u t p u t s t h 0060640 a t t h e p r o d u c t t 0060660 e r m d r i v e s \r \t O 0060700 r B _ 0 ; \r \t F O R 0060720 k I N [ 0 . . o u t C o u n 0060740 t ) D O \r \t h p _ 0060760 R e p l i c a t e [ P 376 001 \0 341 0061000 Y L A D a t a [ F A L S E ] \r \t 0061020 \t \t [ P T 0 . o u t p u t 0061040 . t e r m [ k ] = A s s e r t ] 0061060 , h p , 1 , r i g h t ] ; 0061100 \r \t O r B _ O r B 0061120 + 1 ; \r \t I F O 0061140 r B = b o i s t C o u n t 0061160 A N D ( o u t C o u n t - k ) 0061200 > m i n B o i s t S p a c e 0061220 \r \t T H E N B E 0061240 G I N \r \t \t h p _ R e p l 0061260 i c a t e [ P L A D a t a V G n 0061300 d , h p , 1 , r i g h t ] 0061320 ; \r \t \t O r B _ 0 ; \r \t \t 0061340 E N D ; \r \t E N D L O 0061360 O P ; \r \r \t - - l a y d 0061400 o 376 001 \0 \b \a w n t h e r i g 0061420 h t e n d c e l l \r \t 0061440 h p _ R e p l i c a t e [ P 0061460 L A D a t a R i g h t , h p , 0061500 1 , r i g h t ] ; \r \r \t 0061520 - - S t e p d o w n t o 0061540 t h e n e w l a y e r \r \t 0061560 p _ S t e p P [ p , 0061600 P L A D e c o d e r [ F A L S E 0061620 ] [ F A L S E ] , d o w n ] ; 0061640 \r \r \t E N D ; \r \r h p 0061660 _ p ; \r \r E N D ; \r \r 0061700 l a y d o w n B o t t o m : 0061720 P R O C E D U R E [ p : P 0061740 o i n t _ [ 0 , 0 ] ] R 0061760 E T U R N S [ h p : P o i n 0062000 t ] = \r \r 376 001 \0 033 251 B 0062020 E G I N \r O r B , k 0062040 : C A R D I N A L _ 0 ; \r 0062060 f l a g : B O O L E 0062100 A N _ T R U E ; \r \r 0062120 h p _ p ; \r h p 0062140 _ R e p l i c a t e [ P L A 0062160 D e c o d e r B o t t o m L e f 0062200 t C o r n e r , h p , 1 , 0062220 r i g h t ] ; \r F O R 0062240 k I N [ 0 . . i n C o u n 0062260 t ) D O \r \t f l a g _ i n 0062300 p u t L i s t [ k ] . T o p B o 0062320 t t o m = b o t t o m ; \r \t h p 0062340 _ R e p l i c a t e [ P L A 0062360 D e c o d e r B o t t o m [ f l 0062400 a g ] , h p , 1 , 376 001 \0 261 \0 0062420 r i g h t ] ; \r E 0062440 N D L O O P ; \r h p 0062460 _ R e p l i c a t e [ P L A D 0062500 e c o d e r D a t a B o t t o m 0062520 , h p , 1 , r i g h t ] ; 0062540 \r F O R k I N [ 0062560 0 . . o u t C o u n t ) D O \r 0062600 \t f l a g _ o u t p u t L i 0062620 s t [ k ] . T o p B o t t o m = 0062640 b o t t o m ; \r \t h p _ R e 0062660 p l i c a t e [ P L A O u t M u 0062700 x [ f l a g ] , h p , 1 , 0062720 r i g h t ] ; \r \t O r B _ O 0062740 r B + 1 ; \r \t I F O r B 0062760 = b o i s t C o u n t A N D 0063000 ( o u t C o u n t - k ) > 0063020 376 001 \0 211 017 m i n B o i s t S p a 0063040 c e \r \t T H E N B E G I N 0063060 \r \t \t h p _ R e p l i c a 0063100 t e [ P L A D a t a B o t t o m 0063120 G n d , h p , 1 , r i g h 0063140 t ] ; \r \t \t O r B _ 0 ; \r 0063160 \t \t E N D ; \r E N D 0063200 L O O P ; \r h p _ R 0063220 e p l i c a t e [ P L A D a t a 0063240 B o t t o m R i g h t C o r n e 0063260 r , h p , 1 , r i g h t ] 0063300 ; \r E N D ; \r \r \r o 0063320 k : B O O L E A N ; \r - - 0063340 b o d y H e i g h t , d e c o 0063360 d e r D a t a X , d a t a X , 0063400 d a t a R i g h t X : l o c 0063420 N u m ; \r 376 001 \0 023 335 - - c u 0063440 r P t : P o i n t ; \r - - 0063460 d e c o d e r W i d t h , w o 0063500 r d s P e r D a t a R o w , w 0063520 o r d C o u n t , w o r d W i 0063540 d t h : C A R D I N A L ; \r 0063560 - - l o g W o r d s P e r D a 0063600 t a R o w : I N T E G E R ; \r 0063620 f i l e N a m e , m e m N 0063640 a m e , c e l l F a m i l y , 0063660 P L A N a m e , w d P e r R 0063700 o w S t r : S T R I N G _ 0063720 N I L ; \r s : S t r e a m 0063740 D e f s . S t r e a m H a n d l 0063760 e _ N I L ; \r l p p : 0064000 L O N G P O I N T E R T O 0064020 l i s t _ N I L 376 001 \0 3 202 ; 0064040 - - l i s t o f c e l 0064060 l s a l r e a d y p l a c e 0064100 d \r \r - - M a i n 0064120 B o d y \r \r B E G 0064140 I N \r E N A B L E P u n t 0064160 = > G O T O E x i t ; 0064200 - - f o r e x i t s \r [ 0064220 o k , f i l e N a m e , ] 0064240 _ t y p e I n [ " " L , " D 0064260 a t a f i l e : " L , " . s 0064300 l i m f o r m a t " L ] ; \r 0064320 I F N O T o k T H E N 0064340 G O T O E x i t ; \r f i l 0064360 e N a m e _ F i x E x t e n 0064400 s i o n [ f i l e N a m e , " 0064420 . s l i m " L ] ; \r s _ 376 0064440 001 \0 205 \0 S t r e a m D e f s . 0064460 N e w B y t e S t r e a m [ \r 0064500 f i l e N a m e , S t r 0064520 e a m D e f s . R e a d ! \r 0064540 S e g m e n t D e f s . F 0064560 i l e N a m e E r r o r = > 0064600 { \r E x p l a i n [ 0064620 " C a n ' t f i n d . s l i 0064640 m f i l e " L , n a m e ] ; 0064660 G O T O E x i t } ] ; \r \r 0064700 [ o k , c e l l F a m i l y 0064720 , ] _ t y p e I n [ " C e 0064740 l l f a m i l y : " L , " " 0064760 L , " " L ] ; \r I F N O 0065000 T o k T H E N G O T O E 0065020 x i t ; \r [ o k , P L A N 0065040 a m e , 376 001 \0 e * ] _ t y 0065060 p e I n [ " N a m e o f c o 0065100 m p l e t e d P L A c e l l 0065120 : " L , " " L , " " L ] ; \r 0065140 I F N O T o k T H E N 0065160 G O T O E x i t ; \r F i 0065200 n d P L A C e l l s [ c e l l F 0065220 a m i l y ] ; \r \r - - B u 0065240 i l d t h e P L A ' s P r 0065260 o d u c t T e r m M a t r i 0065300 x \r B u i l d P r o d u c t 0065320 T e r m s [ s ] ; \r \r - - 0065340 C o n s t r u c t t h e P L 0065360 A s y m b o l \r B E G I N 0065400 \r f l a g : B O O L E 0065420 A N _ T R U E ; \r p 0065440 , h p : P o i 376 001 \0 346 333 n t 0065460 ; \r \r p _ h p _ 0065500 [ 0 , 0 ] ; \r b o i s 0065520 t C o u n t _ R e q u e s t 0065540 I n t e g e r [ " N u m b e r 0065560 o f M i n T e r m s b e t 0065600 w e e n G N D L i n e s : " 0065620 L ] ; \r m i n B o i s t 0065640 S p a c e _ R e q u e s t I 0065660 n t e g e r [ " M i n i m u m 0065700 n u m b e r o f M i n T e 0065720 r m s b e t w e e n G N D 0065740 l i n e s " L ] ; \r \r - 0065760 - l a y d o w n t h e t o 0066000 p o f t h e P L A \r 0066020 p _ l a y d o w n T o p [ 0066040 p ] ; \r \r - - l a 376 001 0066060 \0 k 350 y d o w n t h e b o d 0066100 y o f t h e P L A \r 0066120 p _ l a y d o w n B o d y 0066140 [ p ] ; \r \r - - l a y 0066160 d o w n t h e b o t t o m 0066200 o f t h e P L A \r p 0066220 _ l a y d o w n B o t t o m 0066240 [ p ] ; \r \r E N D ; \r \r 0066260 D r a w C e l l [ M a k e N e w 0066300 C e l l [ P L A N a m e , l p 0066320 p ] . o b ] ; \r P L A N a m 0066340 e _ N I L ; - - w e 0066360 g a v e t h e n a m e t o 0066400 t h e c e l l \r \r \r \r \r - - 0066420 w o r d s P e r D a t a R o w 0066440 _ 1 ; l o g W o r d s P e r 0066460 D a t 376 001 \0 371 260 a R o w _ 0 0066500 ; \r - - I F P L A O u t M u x 0066520 [ F A L S E ] # N I L T H E N 0066540 \r - - B E G I N \r - - t 0066560 : C A R D I N A L ; \r - - 0066600 [ o k , w d P e r R o w S t r 0066620 , ] _ t y p e I n [ " " L 0066640 , " W o r d s p e r r o w 0066660 : " L , " ( p o w e r o f 0066700 2 ) " L ] ; \r - - I F N O 0066720 T o k T H E N G O T O E 0066740 x i t ; \r - - t _ S t r 0066760 i n g D e f s . S t r i n g T o 0067000 N u m b e r [ s : w d P e r R 0067020 o w S t r , r a d i x : 1 0 0067040 ] ; \r - - F O R w o r d s 0067060 P e r D a t a R 376 001 \0 304 357 o w 0067100 _ 1 , 2 * w o r d s P e r D 0067120 a t a R o w W H I L E w o r 0067140 d s P e r D a t a R o w < t D 0067160 O \r - - l o g W o r d s 0067200 P e r D a t a R o w _ l o g 0067220 W o r d s P e r D a t a R o w + 0067240 1 ; \r - - E N D L O O P 0067260 ; \r - - E N D ; \r \r - - M B 0067300 . R e C a s t [ m e m : m b M 0067320 e m , n e w W o r d W i d t h 0067340 : m b M e m . w i d t h * w o 0067360 r d s P e r D a t a R o w ] ; \r 0067400 - - M B . S u p p r e s s D e f 0067420 a u l t W o r d s [ m e m : m 0067440 b M e m , d e f a u l t : F 0067460 A L S E ] ; \r - - [ d e c 376 001 \0 0067500 276 267 o d e r W i d t h , w o r 0067520 d C o u n t , w o r d W i d t 0067540 h ] _ M B . A n a l y z e M 0067560 e m o r y [ m b M e m ] ; \r \r - 0067600 - d e c o d e r W i d t h _ 0067620 d e c o d e r W i d t h + l o g 0067640 W o r d s P e r D a t a R o w ; 0067660 \r - - w o r d C o u n t _ w 0067700 o r d C o u n t + ( w o r d 0067720 C o u n t M O D 2 ) + 2 * l 0067740 o g W o r d s P e r D a t a R o 0067760 w ; \r \r - - b o d y H e i g h t 0070000 _ S t e p P [ , d e c o d 0070020 e C e l l , d o w n A n d R i 0070040 g h t , [ x : 1 , y : w 0070060 o r d C o u n t ] ] . y ; \r - - 0070100 d e 376 001 \0 276 347 c o d e r D a t a 0070120 X _ S t e p P [ , d e c o 0070140 d e C e l l , d o w n A n d R 0070160 i g h t , [ x : d e c o d e 0070200 r W i d t h , y : 1 ] ] . x 0070220 ; \r - - d a t a X _ S t e p 0070240 P [ [ d e c o d e r D a t a X , 0070260 0 ] , P L A D e c o d e r D 0070300 a t a , r i g h t ] . x ; \r - 0070320 - d a t a R i g h t X _ S t 0070340 e p P [ \r - - [ d a t a X , 0070360 0 ] , P L A D a t a [ F A L 0070400 S E ] [ F A L S E ] , r i g h 0070420 t , [ x : w o r d W i d t h 0070440 , y : 1 ] ] . x ; \r \r - - [ 0070460 ] _ R e p l i c a t e E v e 0070500 n O d d [ \r - 376 001 \0 201 X - P 0070520 L A D e c o d e r L e f t , S 0070540 t e p P [ [ 0 , 0 ] , P L A 0070560 D e c o d e r L e f t [ F A L S 0070600 E ] , l e f t ] , w o r d C 0070620 o u n t , d o w n ] ; \r - - [ 0070640 ] _ R e p l i c a t e [ \r - 0070660 - P L A D e c o d e r T o p 0070700 L e f t C o r n e r , S t e p 0070720 P [ [ 0 , 0 ] , P L A D e c 0070740 o d e r T o p L e f t C o r n e 0070760 r , u p A n d L e f t ] ] ; \r 0071000 - - [ ] _ R e p l i c a t e 0071020 [ \r - - P L A D e c o d e r 0071040 B o t t o m L e f t C o r n e r 0071060 , S t e p P [ \r - - [ 0 , 0071100 b o d y H e i g h t ] 376 001 \0 9 0071120 031 , P L A D e c o d e r B o t 0071140 t o m L e f t C o r n e r , l 0071160 e f t ] ] ; \r - - [ ] _ R e 0071200 p l i c a t e [ \r - - P L A 0071220 D e c o d e r T o p , S t e p 0071240 P [ [ 0 , 0 ] , P L A D e c 0071260 o d e r T o p , u p ] , d e 0071300 c o d e r W i d t h , r i g h 0071320 t ] ; \r - - [ ] _ R e p l i 0071340 c a t e [ P L A D e c o d e r B 0071360 o t t o m , [ 0 , b o d y H 0071400 e i g h t ] , d e c o d e r W 0071420 i d t h , r i g h t ] ; \r - - 0071440 [ ] _ R e p l i c a t e [ \r 0071460 - - P L A D e c o d e r D a 0071500 t a T o p , S t e p P [ [ d e 0071520 c 376 001 \0 031 w o d e r D a t a X , 0071540 0 ] , P L A D e c o d e r D 0071560 a t a T o p , u p ] ] ; \r - - 0071600 c u r P t _ R e p l i c a t 0071620 e [ P L A D e c o d e r D a t a 0071640 , [ d e c o d e r D a t a X , 0071660 0 ] , w o r d C o u n t / 2 0071700 , d o w n ] ; \r - - [ ] _ 0071720 R e p l i c a t e [ P L A D e c 0071740 o d e r D a t a B o t t o m , 0071760 c u r P t ] ; \r - - [ ] _ R 0072000 e p l i c a t e E v e n O d d [ 0072020 \r - - P L A D a t a T o p , 0072040 S t e p P [ [ d a t a X , 0 0072060 ] , P L A D a t a T o p [ F A 0072100 L S E ] , u p ] , \r - - 0072120 w o r d W 376 001 \0 \t v i d t h , 0072140 r i g h t ] ; \r - - [ ] _ 0072160 R e p l i c a t e [ \r - - P 0072200 L A D a t a T o p R i g h t C o 0072220 r n e r , S t e p P [ [ d a t 0072240 a R i g h t X , 0 ] , P L A 0072260 D a t a T o p R i g h t C o r n 0072300 e r , u p ] ] ; \r - - [ ] _ 0072320 R e p l i c a t e [ P L A D a 0072340 t a R i g h t , [ d a t a R i 0072360 g h t X , 0 ] , w o r d C o 0072400 u n t / 2 , d o w n ] ; \r - - 0072420 [ ] _ R e p l i c a t e [ P 0072440 L A D a t a B o t t o m R i g h 0072460 t C o r n e r , [ d a t a R i 0072500 g h t X , b o d y H e i g h t 0072520 ] ] ; \r - - I F w o 376 001 \0 346 200 0072540 r d s P e r D a t a R o w = 1 0072560 T H E N \r - - [ ] _ R e 0072600 p l i c a t e E v e n O d d [ P 0072620 L A D a t a B o t t o m , [ d 0072640 a t a X , b o d y H e i g h t 0072660 ] , w o r d W i d t h , r i 0072700 g h t ] \r - - E L S E \r - - 0072720 B E G I N \r - - c u r P t 0072740 _ [ d a t a X , b o d y H e 0072760 i g h t ] ; \r - - F O R i 0073000 : C A R D I N A L I N [ 0 0073020 . . w o r d W i d t h / w o r d 0073040 s P e r D a t a R o w ) D O \r 0073060 - - c u r P t _ R e 0073100 p l i c a t e [ P L A O u t M u 0073120 x [ F A L S E ] , c u r P t , 0073140 376 001 \0 4 212 1 , r i g h t ] ; 0073160 \r - - c u r P t _ R 0073200 e p l i c a t e [ P L A O u t M 0073220 u x [ T R U E ] , c u r P t , 0073240 w o r d s P e r D a t a R o w 0073260 / 2 - 1 , r i g h t ] ; \r - - 0073300 E N D L O O P ; \r - - 0073320 E N D ; \r - - M a k e D e c o 0073340 d e r B l o c k [ P L A D e c o 0073360 d e r , [ 0 , 0 ] , [ d e 0073400 c o d e r W i d t h , w o r d 0073420 C o u n t ] , m b M e m ] ; \r 0073440 - - M a k e D a t a B l o c k [ 0073460 P L A D a t a , [ d a t a X , 0073500 0 ] , [ w o r d W i d t h , 0073520 w o r d C o u n t / 2 ] , m 0073540 b M e m ] 376 001 \0 261 260 ; \r \r - - D 0073560 r a w C e l l [ M a k e N e w C 0073600 e l l [ P L A N a m e , l p p 0073620 ] . o b ] ; \r E X I T S E 0073640 x i t = > N U L L ; \r E 0073660 N D ; \r \r - - g i v e b 0073700 a c k a l l t h e s t o r 0073720 a g e w e a l l o c a t e d 0073740 \r \r - - F r e e B l o c k s [ ] 0073760 ; \r Z _ Z o n e A l l o 0074000 c D e f s . D e s t r o y A n X 0074020 M Z o n e [ Z ] ; \r I F f 0074040 i l e N a m e # N I L T H 0074060 E N F r e e S t r i n g [ f i 0074100 l e N a m e ] ; \r I F m e 0074120 m N a m e # N I L T H E N 0074140 F r e e S t r i n 376 001 \0 Y \a g 0074160 [ m e m N a m e ] ; \r I F 0074200 c e l l F a m i l y # N I L 0074220 T H E N F r e e S t r i n g 0074240 [ c e l l F a m i l y ] ; \r 0074260 I F P L A N a m e # N I L 0074300 T H E N F r e e S t r i n g 0074320 [ P L A N a m e ] ; \r I F 0074340 w d P e r R o w S t r # N I 0074360 L T H E N F r e e S t r i n 0074400 g [ w d P e r R o w S t r ] ; \r 0074420 I F s # N I L T H E 0074440 N s . d e s t r o y [ s ] ; \r 0074460 a n y C h a n g e s _ s 0074500 i n c e I O c h a n g e s _ 0074520 T R U E ; \r \r E N D . - - 0074540 o f P L A M a k e r I m p 376 0074560 \0 325 271 V l \r 032 ( 1 7 9 2 ) \ 3 b 0074600 1 2 B 2 9 9 b 1 2 B 2 4 4 7 b 4 0074620 B 4 3 9 b 6 B 8 4 8 b 1 0 B 1 8 0074640 7 5 b 1 0 B 9 0 1 b 8 B 4 0 5 b 0074660 6 B 4 6 5 b 6 B 2 6 9 b 1 7 B 1 0074700 1 9 2 b 1 2 B 2 9 5 9 b 8 B 7 6 0074720 5 b 9 B 7 1 7 b 1 1 B 7 3 5 b 2 0074740 3 B 1 2 6 b 1 2 B 8 7 3 b 9 B 6 0074760 1 4 b 1 6 B 7 8 5 b 5 B 7 7 3 b 0075000 4 B 7 8 b 1 1 B 8 3 4 b 8 B 3 8 0075020 3 b 7 B 1 8 0 b 1 2 B 3 0 7 b 1 0075040 3 B 3 0 1 b 1 4 B 3 0 7 b 1 0 B 0075060 1 6 2 6 b 1 1 B 3 2 2 8 b 1 3 B 0075100 1 1 2 0 b 1 7 B \r 377 \0 \0 P L A M 0075120 a k e r . c o n f i g \0 373 230 [ 250 0075140 354 \0 \0 376 001 \0 [ N - - P L A M a 0075160 k e r . c o n f i g \r - - m o 0075200 d i f i e d b y C a r y K 0075220 o r n f e l d : O c t o b e 0075240 r 1 , 1 9 8 1 1 0 : 0 6 0075260 A M \r - - w r i t t e n b 0075300 y M c C r e i g h t : A u 0075320 g u s t 7 , 1 9 8 1 5 : 0075340 0 2 P M \r \r P L A M a k e r : 0075360 C O N F I G U R A T I O N \r I 0075400 M P O R T S \r p p d d d e f 0075420 s , p p d d e f s , p p d e f s 0075440 , S e g m e n t D e f s , I O D 0075460 e f s , Z o n e A l l o c D e f 0075500 s , \r S t r e a m D e f s , 0075520 S t r i n g D e f s \r C O N T R 0075540 O L \r P l a 376 \0 8 205 ; M a k 0075560 e r I m p l = \r B E G I N \r P 0075600 l a M a k e r I m p l ; \r E N D 0075620 . \r 032 ( 1 7 9 2 ) \ 3 b 8 B 1 1 0075640 6 b 8 B \r 377 \0 \0 P L A m a k e r 0075660 - s o u r c e s . c m \0 373 227 343 O 0075700 327 \0 \0 376 \0 021 246 @ P L A M a k e r 0075720 I m p l . m e s a 377 \0 \0 P L A m 0075740 a k e r - s a v e . c m \0 373 227 365 0075760 316 , \0 \0 376 \0 312 307 205 f t p i n d 0076000 i g o c o n n / c c h i p m 0076020 o n k d i r / c > P L A m a 0076040 k e r s t / c P L A M a k e 0076060 r . c h i p b c d P L A M a k 0076100 e r . s y m b o l s d u m p / 0076120 c P L A m a k e r - s o u r c 0076140 e s . d m @ P L A m a k e r - 0076160 s o u r c e s . c m @ P L A M 0076200 a k e r . c o n f i g P L A m 0076220 a k e r - s o u r c e s . c m 0076240 P L A m a k e r - s a v e . c m 0076260 P L A m a k e r - d e l e t e 0076300 . c m 377 \0 \0 P L A m a k e r - d 0076320 e l e t e . c m \0 373 227 343 E 347 \0 \0 0076340 376 \0 232 031 7 d e l e t e @ P L A 0076360 m a k e r - s o u r c e s . c m 0076400 @ M a k e P L A . c o n f i g 0076420 P L A m a k e r - s a v e . c 0076440 m P L A m a k e r - d e l e t 0076460 e . c m \r @ . s y m b o l s . . 0076500 . @ d e l e t e M a k e P L 0076520 A . s y m b o l s \r @ . c h i p 0076540 b c d . . . @ d e l e t e M 0076560 a k e P L A . c h i p b c d \r 374 0076600