$ od -c -N 50000 [Indigo]<Casaba>bj>Sirocco-Derived>SiroccoAGImpl.Mesa!4 0000000 - - S i r o c c o A G I m p l 0000020 . m e s a \r - - C o p y r i 0000040 g h t 323 1 9 8 7 b y X e 0000060 r o x C o r p o r a t i o n . 0000100 A l l r i g h t s r e s 0000120 e r v e d . \r - - G e n e r 0000140 a t e d b y B J a c k s o n 0000160 . p a a t J u l y 1 6 , 0000200 1 9 8 7 3 : 1 1 : 3 3 a m 0000220 P D T \r - - u s i n g T 0000240 h r e e C a s a b a F o u r [ 0000260 1 . 2 ] o f J u n e 1 , 0000300 1 9 8 7 6 : 0 0 : 0 0 p m 0000320 P D T \r \r D I R E C T O R Y \r \t 0000340 S i r o c c o C G D e f , \r \t S 0000360 i r o c c o A T D e f , \r \t S i 0000400 r o c c o A G D e f ; \r \r S i r 0000420 o c c o A G I m p l : C E D A 0000440 R P R O G R A M I M P O R T 0000460 S S i r o c c o A G D e f E 0000500 X P O R T S S i r o c c o A G 0000520 D e f = \r B E G I N \r O P E N 0000540 S i r o c c o C G D e f , S 0000560 i r o c c o A T D e f , S i r 0000600 o c c o A G D e f ; \r \r - - P 0000620 r o g r a m e x p o r t P r o d 0000640 \r \r P r o g r a m e x p o r t P 0000660 r o d P r o c s : \t P U B L I C 0000700 P r o g r a m N o d e P r o c 0000720 s _ \r \t N E W [ P r o g r a m 0000740 N o d e P r o c s B o d y _ 0000760 [ P r o g r a m e x p o r t P r 0001000 o d M a k e S y m b o l T a b l 0001020 e ] ] ; \r \r B u i l d P r o g r 0001040 a m e x p o r t P r o d N o d e 0001060 : \t P U B L I C P R O C [ p o 0001100 s i t i o n : I N T , l e n 0001120 g t h : I N T , i d e x p o 0001140 r t : i d N o d e , d e c i 0001160 m a l p g m : d e c i m a l N 0001200 o d e , d e c i m a l v e r s 0001220 i o n : d e c i m a l N o d e 0001240 , I m p o r t L i s t : I m 0001260 p o r t L i s t N o d e , D e 0001300 c l a r a t i o n L i s t : D 0001320 e c l a r a t i o n L i s t N o 0001340 d e ] \r \t R E T U R N S [ P r o 0001360 g r a m N o d e ] = \r \t \t B E 0001400 G I N \r \t \t d a t a : \t P r o g 0001420 r a m e x p o r t P r o d D a t 0001440 a _ \r \t \t \t N E W [ P r o g r 0001460 a m e x p o r t P r o d D a t a 0001500 B o d y _ [ \r \t \t \t i d e x 0001520 p o r t , d e c i m a l p g m 0001540 , d e c i m a l v e r s i o n 0001560 , I m p o r t L i s t , D e 0001600 c l a r a t i o n L i s t ] ] ; 0001620 \r \t \t R E T U R N [ N E W [ P r 0001640 o g r a m N o d e B o d y _ [ p 0001660 o s i t i o n , l e n g t h , 0001700 P r o g r a m e x p o r t P r 0001720 o d P r o c s , d a t a ] ] ] 0001740 ; \r \t \t E N D ; \r \r \r - - I m 0001760 p o r t L i s t e m p t y P r o 0002000 d \r \r I m p o r t L i s t e m p 0002020 t y P r o d P r o c s : \t P U B 0002040 L I C I m p o r t L i s t N o 0002060 d e P r o c s _ \r \t N E W [ I 0002100 m p o r t L i s t N o d e P r o 0002120 c s B o d y _ [ I m p o r t 0002140 L i s t e m p t y P r o d B u i 0002160 l d R I B ] ] ; \r \r B u i l d I 0002200 m p o r t L i s t e m p t y P r 0002220 o d N o d e : \t P U B L I C P 0002240 R O C [ p o s i t i o n : I N 0002260 T , l e n g t h : I N T ] \r 0002300 \t R E T U R N S [ I m p o r t L 0002320 i s t N o d e ] = \r \t \t B E G 0002340 I N \r \t \t R E T U R N [ N E W [ 0002360 I m p o r t L i s t N o d e B o 0002400 d y _ [ p o s i t i o n , l e 0002420 n g t h , I m p o r t L i s t 0002440 e m p t y P r o d P r o c s , 0002460 N I L ] ] ] ; \r \t \t E N D ; \r \r 0002500 \r - - I m p o r t L i s t m o 0002520 r e P r o d \r \r I m p o r t L i 0002540 s t m o r e P r o d P r o c s : 0002560 \t P U B L I C I m p o r t L i 0002600 s t N o d e P r o c s _ \r \t N 0002620 E W [ I m p o r t L i s t N o d 0002640 e P r o c s B o d y _ [ I m 0002660 p o r t L i s t m o r e P r o d 0002700 B u i l d R I B ] ] ; \r \r B u i 0002720 l d I m p o r t L i s t m o r e 0002740 P r o d N o d e : \t P U B L I C 0002760 P R O C [ p o s i t i o n : 0003000 I N T , l e n g t h : I N T 0003020 , I m p o r t L i s t : I m 0003040 p o r t L i s t N o d e , I m 0003060 p o r t : I m p o r t N o d e 0003100 ] \r \t R E T U R N S [ I m p o r 0003120 t L i s t N o d e ] = \r \t \t B 0003140 E G I N \r \t \t d a t a : \t I m p 0003160 o r t L i s t m o r e P r o d D 0003200 a t a _ \r \t \t \t N E W [ I m p 0003220 o r t L i s t m o r e P r o d D 0003240 a t a B o d y _ [ \r \t \t \t I 0003260 m p o r t L i s t , I m p o r 0003300 t ] ] ; \r \t \t R E T U R N [ N E 0003320 W [ I m p o r t L i s t N o d e 0003340 B o d y _ [ p o s i t i o n , 0003360 l e n g t h , I m p o r t L i 0003400 s t m o r e P r o d P r o c s , 0003420 d a t a ] ] ] ; \r \t \t E N D ; 0003440 \r \r \r - - I m p o r t i n t e 0003460 r f a c e P r o d \r \r I m p o r 0003500 t i n t e r f a c e P r o d P r 0003520 o c s : \t P U B L I C I m p o 0003540 r t N o d e P r o c s _ \r \t N 0003560 E W [ I m p o r t N o d e P r o 0003600 c s B o d y _ [ I m p o r t 0003620 i n t e r f a c e P r o d B u i 0003640 l d S c o p e ] ] ; \r \r B u i l 0003660 d I m p o r t i n t e r f a c e 0003700 P r o d N o d e : \t P U B L I C 0003720 P R O C [ p o s i t i o n : 0003740 I N T , l e n g t h : I N T 0003760 , i d i n t e r f a c e : i 0004000 d N o d e , d e c i m a l p g 0004020 m : d e c i m a l N o d e , 0004040 d e c i m a l v e r s i o n : 0004060 d e c i m a l N o d e ] \r \t R E 0004100 T U R N S [ I m p o r t N o d e 0004120 ] = \r \t \t B E G I N \r \t \t d a 0004140 t a : \t I m p o r t i n t e r f 0004160 a c e P r o d D a t a _ \r \t \t 0004200 \t N E W [ I m p o r t i n t e r 0004220 f a c e P r o d D a t a B o d y 0004240 _ [ \r \t \t \t i d i n t e r f 0004260 a c e , d e c i m a l p g m , 0004300 d e c i m a l v e r s i o n ] 0004320 ] ; \r \t \t R E T U R N [ N E W [ 0004340 I m p o r t N o d e B o d y _ [ 0004360 p o s i t i o n , l e n g t h 0004400 , I m p o r t i n t e r f a c 0004420 e P r o d P r o c s , d a t a 0004440 ] ] ] ; \r \t \t E N D ; \r \r \r - - 0004460 D e c l a r a t i o n L i s t 0004500 e m p t y P r o d \r \r D e c l a 0004520 r a t i o n L i s t e m p t y P 0004540 r o d P r o c s : \t P U B L I C 0004560 D e c l a r a t i o n L i s t 0004600 N o d e P r o c s _ \r \t N E W 0004620 [ D e c l a r a t i o n L i s t 0004640 N o d e P r o c s B o d y _ 0004660 [ D e c l a r a t i o n L i s t 0004700 e m p t y P r o d B u i l d I t 0004720 e m T a b l e , D e c l a r a 0004740 t i o n L i s t e m p t y P r o 0004760 d B u i l d T y p e G r a p h ] 0005000 ] ; \r \r B u i l d D e c l a r a 0005020 t i o n L i s t e m p t y P r o 0005040 d N o d e : \t P U B L I C P R 0005060 O C [ p o s i t i o n : I N T 0005100 , l e n g t h : I N T ] \r \t 0005120 R E T U R N S [ D e c l a r a t 0005140 i o n L i s t N o d e ] = \r \t 0005160 \t B E G I N \r \t \t R E T U R N [ 0005200 N E W [ D e c l a r a t i o n L 0005220 i s t N o d e B o d y _ [ p o s 0005240 i t i o n , l e n g t h , D 0005260 e c l a r a t i o n L i s t e m 0005300 p t y P r o d P r o c s , N I 0005320 L ] ] ] ; \r \t \t E N D ; \r \r \r - 0005340 - D e c l a r a t i o n L i s 0005360 t m o r e P r o d \r \r D e c l a 0005400 r a t i o n L i s t m o r e P r 0005420 o d P r o c s : \t P U B L I C 0005440 D e c l a r a t i o n L i s t N 0005460 o d e P r o c s _ \r \t N E W [ 0005500 D e c l a r a t i o n L i s t N 0005520 o d e P r o c s B o d y _ [ 0005540 D e c l a r a t i o n L i s t m 0005560 o r e P r o d B u i l d I t e m 0005600 T a b l e , D e c l a r a t i 0005620 o n L i s t m o r e P r o d B u 0005640 i l d T y p e G r a p h ] ] ; \r 0005660 \r B u i l d D e c l a r a t i o 0005700 n L i s t m o r e P r o d N o d 0005720 e : \t P U B L I C P R O C [ p 0005740 o s i t i o n : I N T , l e 0005760 n g t h : I N T , D e c l a 0006000 r a t i o n L i s t : D e c l 0006020 a r a t i o n L i s t N o d e , 0006040 D e c l a r a t i o n : D e 0006060 c l a r a t i o n N o d e ] \r \t 0006100 R E T U R N S [ D e c l a r a t 0006120 i o n L i s t N o d e ] = \r \t 0006140 \t B E G I N \r \t \t d a t a : \t D 0006160 e c l a r a t i o n L i s t m o 0006200 r e P r o d D a t a _ \r \t \t \t 0006220 N E W [ D e c l a r a t i o n L 0006240 i s t m o r e P r o d D a t a B 0006260 o d y _ [ \r \t \t \t D e c l a 0006300 r a t i o n L i s t , D e c l 0006320 a r a t i o n ] ] ; \r \t \t R E T 0006340 U R N [ N E W [ D e c l a r a t 0006360 i o n L i s t N o d e B o d y _ 0006400 [ p o s i t i o n , l e n g t 0006420 h , D e c l a r a t i o n L i 0006440 s t m o r e P r o d P r o c s , 0006460 d a t a ] ] ] ; \r \t \t E N D ; 0006500 \r \r \r - - D e c l a r a t i o 0006520 n t y p e P r o d \r \r D e c l a 0006540 r a t i o n t y p e P r o d P r 0006560 o c s : \t P U B L I C D e c l 0006600 a r a t i o n N o d e P r o c s 0006620 _ \r \t N E W [ D e c l a r a t 0006640 i o n N o d e P r o c s B o d y 0006660 _ [ D e c l a r a t i o n t 0006700 y p e P r o d B u i l d I t e m 0006720 , D e c l a r a t i o n t y p 0006740 e P r o d B u i l d T y p e G r 0006760 a p h ] ] ; \r \r B u i l d D e c 0007000 l a r a t i o n t y p e P r o d 0007020 N o d e : \t P U B L I C P R O 0007040 C [ p o s i t i o n : I N T , 0007060 l e n g t h : I N T , i d 0007100 : i d N o d e , T y p e : 0007120 T y p e N o d e ] \r \t R E T U R 0007140 N S [ D e c l a r a t i o n N o 0007160 d e ] = \r \t \t B E G I N \r \t \t 0007200 d a t a : \t D e c l a r a t i o 0007220 n t y p e P r o d D a t a _ \r 0007240 \t \t \t N E W [ D e c l a r a t i 0007260 o n t y p e P r o d D a t a B o 0007300 d y _ [ \r \t \t \t i d , T y 0007320 p e ] ] ; \r \t \t R E T U R N [ N 0007340 E W [ D e c l a r a t i o n N o 0007360 d e B o d y _ [ p o s i t i o n 0007400 , l e n g t h , D e c l a r 0007420 a t i o n t y p e P r o d P r o 0007440 c s , d a t a ] ] ] ; \r \t \t E 0007460 N D ; \r \r \r - - D e c l a r a 0007500 t i o n c o n s t a n t P r o d 0007520 \r \r D e c l a r a t i o n c o n 0007540 s t a n t P r o d P r o c s : \t 0007560 P U B L I C D e c l a r a t i 0007600 o n N o d e P r o c s _ \r \t N 0007620 E W [ D e c l a r a t i o n N o 0007640 d e P r o c s B o d y _ [ D 0007660 e c l a r a t i o n c o n s t a 0007700 n t P r o d B u i l d I t e m , 0007720 D e c l a r a t i o n c o n s 0007740 t a n t P r o d B u i l d T y p 0007760 e G r a p h ] ] ; \r \r B u i l d 0010000 D e c l a r a t i o n c o n s t 0010020 a n t P r o d N o d e : \t P U B 0010040 L I C P R O C [ p o s i t i o 0010060 n : I N T , l e n g t h : 0010100 I N T , i d : i d N o d e , 0010120 T y p e : T y p e N o d e , 0010140 C o n s t a n t : C o n s t 0010160 a n t N o d e ] \r \t R E T U R N 0010200 S [ D e c l a r a t i o n N o d 0010220 e ] = \r \t \t B E G I N \r \t \t d 0010240 a t a : \t D e c l a r a t i o n 0010260 c o n s t a n t P r o d D a t a 0010300 _ \r \t \t \t N E W [ D e c l a r 0010320 a t i o n c o n s t a n t P r o 0010340 d D a t a B o d y _ [ \r \t \t 0010360 \t i d , T y p e , C o n s t 0010400 a n t ] ] ; \r \t \t R E T U R N [ 0010420 N E W [ D e c l a r a t i o n N 0010440 o d e B o d y _ [ p o s i t i o 0010460 n , l e n g t h , D e c l a 0010500 r a t i o n c o n s t a n t P r 0010520 o d P r o c s , d a t a ] ] ] 0010540 ; \r \t \t E N D ; \r \r \r - - T y 0010560 p e a l i a s P r o d \r \r T y p 0010600 e a l i a s P r o d P r o c s : 0010620 \t P U B L I C T y p e N o d e 0010640 P r o c s _ \r \t N E W [ T y p 0010660 e N o d e P r o c s B o d y _ 0010700 [ T y p e a l i a s P r o d B 0010720 u i l d T G P a i r , T y p e 0010740 a l i a s P r o d C a n o n i c 0010760 a l T y p e ] ] ; \r \r B u i l d 0011000 T y p e a l i a s P r o d N o d 0011020 e : \t P U B L I C P R O C [ p 0011040 o s i t i o n : I N T , l e 0011060 n g t h : I N T , i d : i 0011100 d N o d e ] \r \t R E T U R N S [ 0011120 T y p e N o d e ] = \r \t \t B E 0011140 G I N \r \t \t d a t a : \t T y p e 0011160 a l i a s P r o d D a t a _ \r 0011200 \t \t \t N E W [ T y p e a l i a s 0011220 P r o d D a t a B o d y _ [ 0011240 \r \t \t \t i d ] ] ; \r \t \t R E T U 0011260 R N [ N E W [ T y p e N o d e B 0011300 o d y _ [ p o s i t i o n , l 0011320 e n g t h , T y p e a l i a s 0011340 P r o d P r o c s , d a t a ] 0011360 ] ] ; \r \t \t E N D ; \r \r \r - - 0011400 T y p e i m p o r t P r o d \r \r 0011420 T y p e i m p o r t P r o d P r 0011440 o c s : \t P U B L I C T y p e 0011460 N o d e P r o c s _ \r \t N E W 0011500 [ T y p e N o d e P r o c s B o 0011520 d y _ [ T y p e i m p o r t 0011540 P r o d B u i l d T G P a i r , 0011560 T y p e i m p o r t P r o d C 0011600 a n o n i c a l T y p e ] ] ; \r 0011620 \r B u i l d T y p e i m p o r t 0011640 P r o d N o d e : \t P U B L I C 0011660 P R O C [ p o s i t i o n : 0011700 I N T , l e n g t h : I N T 0011720 , i d i n t e r f a c e : i 0011740 d N o d e , i d i t e m : i 0011760 d N o d e ] \r \t R E T U R N S [ 0012000 T y p e N o d e ] = \r \t \t B E 0012020 G I N \r \t \t d a t a : \t T y p e 0012040 i m p o r t P r o d D a t a _ 0012060 \r \t \t \t N E W [ T y p e i m p o 0012100 r t P r o d D a t a B o d y _ 0012120 [ \r \t \t \t i d i n t e r f a c 0012140 e , i d i t e m ] ] ; \r \t \t R 0012160 E T U R N [ N E W [ T y p e N o 0012200 d e B o d y _ [ p o s i t i o n 0012220 , l e n g t h , T y p e i m 0012240 p o r t P r o d P r o c s , d 0012260 a t a ] ] ] ; \r \t \t E N D ; \r \r 0012300 \r - - T y p e b o o l P r o d 0012320 \r \r T y p e b o o l P r o d P r 0012340 o c s : \t P U B L I C T y p e 0012360 N o d e P r o c s _ \r \t N E W 0012400 [ T y p e N o d e P r o c s B o 0012420 d y _ [ T y p e b o o l P r 0012440 o d B u i l d T G P a i r , T 0012460 y p e b o o l P r o d C a n o n 0012500 i c a l T y p e ] ] ; \r \r B u i 0012520 l d T y p e b o o l P r o d N o 0012540 d e : \t P U B L I C P R O C [ 0012560 p o s i t i o n : I N T , l 0012600 e n g t h : I N T ] \r \t R E T 0012620 U R N S [ T y p e N o d e ] = 0012640 \r \t \t B E G I N \r \t \t R E T U R 0012660 N [ N E W [ T y p e N o d e B o 0012700 d y _ [ p o s i t i o n , l e 0012720 n g t h , T y p e b o o l P r 0012740 o d P r o c s , N I L ] ] ] ; 0012760 \r \t \t E N D ; \r \r \r - - T y p 0013000 e c a r d 1 6 P r o d \r \r T y p 0013020 e c a r d 1 6 P r o d P r o c s 0013040 : \t P U B L I C T y p e N o d 0013060 e P r o c s _ \r \t N E W [ T y 0013100 p e N o d e P r o c s B o d y 0013120 _ [ T y p e c a r d 1 6 P r o 0013140 d B u i l d T G P a i r , T y 0013160 p e c a r d 1 6 P r o d C a n o 0013200 n i c a l T y p e ] ] ; \r \r B u 0013220 i l d T y p e c a r d 1 6 P r o 0013240 d N o d e : \t P U B L I C P R 0013260 O C [ p o s i t i o n : I N T 0013300 , l e n g t h : I N T ] \r \t 0013320 R E T U R N S [ T y p e N o d e 0013340 ] = \r \t \t B E G I N \r \t \t R E 0013360 T U R N [ N E W [ T y p e N o d 0013400 e B o d y _ [ p o s i t i o n , 0013420 l e n g t h , T y p e c a r 0013440 d 1 6 P r o d P r o c s , N I 0013460 L ] ] ] ; \r \t \t E N D ; \r \r \r - 0013500 - T y p e c a r d 3 2 P r o d 0013520 \r \r T y p e c a r d 3 2 P r o d 0013540 P r o c s : \t P U B L I C T y 0013560 p e N o d e P r o c s _ \r \t N 0013600 E W [ T y p e N o d e P r o c s 0013620 B o d y _ [ T y p e c a r d 0013640 3 2 P r o d B u i l d T G P a i 0013660 r , T y p e c a r d 3 2 P r o 0013700 d C a n o n i c a l T y p e ] ] 0013720 ; \r \r B u i l d T y p e c a r d 0013740 3 2 P r o d N o d e : \t P U B L 0013760 I C P R O C [ p o s i t i o n 0014000 : I N T , l e n g t h : I 0014020 N T ] \r \t R E T U R N S [ T y p 0014040 e N o d e ] = \r \t \t B E G I N 0014060 \r \t \t R E T U R N [ N E W [ T y 0014100 p e N o d e B o d y _ [ p o s i 0014120 t i o n , l e n g t h , T y 0014140 p e c a r d 3 2 P r o d P r o c 0014160 s , N I L ] ] ] ; \r \t \t E N D 0014200 ; \r \r \r - - T y p e i n t 1 6 0014220 P r o d \r \r T y p e i n t 1 6 P 0014240 r o d P r o c s : \t P U B L I C 0014260 T y p e N o d e P r o c s _ 0014300 \r \t N E W [ T y p e N o d e P r 0014320 o c s B o d y _ [ T y p e i 0014340 n t 1 6 P r o d B u i l d T G P 0014360 a i r , T y p e i n t 1 6 P r 0014400 o d C a n o n i c a l T y p e ] 0014420 ] ; \r \r B u i l d T y p e i n t 0014440 1 6 P r o d N o d e : \t P U B L 0014460 I C P R O C [ p o s i t i o n 0014500 : I N T , l e n g t h : I 0014520 N T ] \r \t R E T U R N S [ T y p 0014540 e N o d e ] = \r \t \t B E G I N 0014560 \r \t \t R E T U R N [ N E W [ T y 0014600 p e N o d e B o d y _ [ p o s i 0014620 t i o n , l e n g t h , T y 0014640 p e i n t 1 6 P r o d P r o c s 0014660 , N I L ] ] ] ; \r \t \t E N D ; 0014700 \r \r \r - - T y p e i n t 3 2 P 0014720 r o d \r \r T y p e i n t 3 2 P r 0014740 o d P r o c s : \t P U B L I C 0014760 T y p e N o d e P r o c s _ \r 0015000 \t N E W [ T y p e N o d e P r o 0015020 c s B o d y _ [ T y p e i n 0015040 t 3 2 P r o d B u i l d T G P a 0015060 i r , T y p e i n t 3 2 P r o 0015100 d C a n o n i c a l T y p e ] ] 0015120 ; \r \r B u i l d T y p e i n t 3 0015140 2 P r o d N o d e : \t P U B L I 0015160 C P R O C [ p o s i t i o n : 0015200 I N T , l e n g t h : I N 0015220 T ] \r \t R E T U R N S [ T y p e 0015240 N o d e ] = \r \t \t B E G I N \r 0015260 \t \t R E T U R N [ N E W [ T y p 0015300 e N o d e B o d y _ [ p o s i t 0015320 i o n , l e n g t h , T y p 0015340 e i n t 3 2 P r o d P r o c s , 0015360 N I L ] ] ] ; \r \t \t E N D ; \r 0015400 \r \r - - T y p e s i n k P r o 0015420 d \r \r T y p e s i n k P r o d P 0015440 r o c s : \t P U B L I C T y p 0015460 e N o d e P r o c s _ \r \t N E 0015500 W [ T y p e N o d e P r o c s B 0015520 o d y _ [ T y p e s i n k P 0015540 r o d B u i l d T G P a i r , 0015560 T y p e s i n k P r o d C a n o 0015600 n i c a l T y p e ] ] ; \r \r B u 0015620 i l d T y p e s i n k P r o d N 0015640 o d e : \t P U B L I C P R O C 0015660 [ p o s i t i o n : I N T , 0015700 l e n g t h : I N T ] \r \t R E 0015720 T U R N S [ T y p e N o d e ] 0015740 = \r \t \t B E G I N \r \t \t R E T U 0015760 R N [ N E W [ T y p e N o d e B 0016000 o d y _ [ p o s i t i o n , l 0016020 e n g t h , T y p e s i n k P 0016040 r o d P r o c s , N I L ] ] ] 0016060 ; \r \t \t E N D ; \r \r \r - - T y 0016100 p e s o u r c e P r o d \r \r T y 0016120 p e s o u r c e P r o d P r o c 0016140 s : \t P U B L I C T y p e N o 0016160 d e P r o c s _ \r \t N E W [ T 0016200 y p e N o d e P r o c s B o d y 0016220 _ [ T y p e s o u r c e P r 0016240 o d B u i l d T G P a i r , T 0016260 y p e s o u r c e P r o d C a n 0016300 o n i c a l T y p e ] ] ; \r \r B 0016320 u i l d T y p e s o u r c e P r 0016340 o d N o d e : \t P U B L I C P 0016360 R O C [ p o s i t i o n : I N 0016400 T , l e n g t h : I N T ] \r 0016420 \t R E T U R N S [ T y p e N o d 0016440 e ] = \r \t \t B E G I N \r \t \t R 0016460 E T U R N [ N E W [ T y p e N o 0016500 d e B o d y _ [ p o s i t i o n 0016520 , l e n g t h , T y p e s o 0016540 u r c e P r o d P r o c s , N 0016560 I L ] ] ] ; \r \t \t E N D ; \r \r \r 0016600 - - T y p e s t r i n g P r o 0016620 d \r \r T y p e s t r i n g P r o 0016640 d P r o c s : \t P U B L I C T 0016660 y p e N o d e P r o c s _ \r \t 0016700 N E W [ T y p e N o d e P r o c 0016720 s B o d y _ [ T y p e s t r 0016740 i n g P r o d B u i l d T G P a 0016760 i r , T y p e s t r i n g P r 0017000 o d C a n o n i c a l T y p e ] 0017020 ] ; \r \r B u i l d T y p e s t r 0017040 i n g P r o d N o d e : \t P U B 0017060 L I C P R O C [ p o s i t i o 0017100 n : I N T , l e n g t h : 0017120 I N T ] \r \t R E T U R N S [ T y 0017140 p e N o d e ] = \r \t \t B E G I 0017160 N \r \t \t R E T U R N [ N E W [ T 0017200 y p e N o d e B o d y _ [ p o s 0017220 i t i o n , l e n g t h , T 0017240 y p e s t r i n g P r o d P r o 0017260 c s , N I L ] ] ] ; \r \t \t E N 0017300 D ; \r \r \r - - T y p e u n s p 0017320 e c P r o d \r \r T y p e u n s p 0017340 e c P r o d P r o c s : \t P U B 0017360 L I C T y p e N o d e P r o c 0017400 s _ \r \t N E W [ T y p e N o d 0017420 e P r o c s B o d y _ [ T y 0017440 p e u n s p e c P r o d B u i l 0017460 d T G P a i r , T y p e u n s 0017500 p e c P r o d C a n o n i c a l 0017520 T y p e ] ] ; \r \r B u i l d T y 0017540 p e u n s p e c P r o d N o d e 0017560 : \t P U B L I C P R O C [ p o 0017600 s i t i o n : I N T , l e n 0017620 g t h : I N T ] \r \t R E T U R 0017640 N S [ T y p e N o d e ] = \r \t 0017660 \t B E G I N \r \t \t R E T U R N [ 0017700 N E W [ T y p e N o d e B o d y 0017720 _ [ p o s i t i o n , l e n g 0017740 t h , T y p e u n s p e c P r 0017760 o d P r o c s , N I L ] ] ] ; 0020000 \r \t \t E N D ; \r \r \r - - T y p 0020020 e a r r a y P r o d \r \r T y p e 0020040 a r r a y P r o d P r o c s : \t 0020060 P U B L I C T y p e N o d e P 0020100 r o c s _ \r \t N E W [ T y p e 0020120 N o d e P r o c s B o d y _ 0020140 [ T y p e a r r a y P r o d B u 0020160 i l d T G P a i r , T y p e a 0020200 r r a y P r o d C a n o n i c a 0020220 l T y p e ] ] ; \r \r B u i l d T 0020240 y p e a r r a y P r o d N o d e 0020260 : \t P U B L I C P R O C [ p o 0020300 s i t i o n : I N T , l e n 0020320 g t h : I N T , C o n s t a 0020340 n t : C o n s t a n t N o d e 0020360 , T y p e : T y p e N o d e 0020400 ] \r \t R E T U R N S [ T y p e N 0020420 o d e ] = \r \t \t B E G I N \r \t 0020440 \t d a t a : \t T y p e a r r a y 0020460 P r o d D a t a _ \r \t \t \t N E 0020500 W [ T y p e a r r a y P r o d D 0020520 a t a B o d y _ [ \r \t \t \t C 0020540 o n s t a n t , T y p e ] ] ; 0020560 \r \t \t R E T U R N [ N E W [ T y 0020600 p e N o d e B o d y _ [ p o s i 0020620 t i o n , l e n g t h , T y 0020640 p e a r r a y P r o d P r o c s 0020660 , d a t a ] ] ] ; \r \t \t E N D 0020700 ; \r \r \r - - T y p e s e q P r 0020720 o d \r \r T y p e s e q P r o d P 0020740 r o c s : \t P U B L I C T y p 0020760 e N o d e P r o c s _ \r \t N E 0021000 W [ T y p e N o d e P r o c s B 0021020 o d y _ [ T y p e s e q P r 0021040 o d B u i l d T G P a i r , T 0021060 y p e s e q P r o d C a n o n i 0021100 c a l T y p e ] ] ; \r \r B u i l 0021120 d T y p e s e q P r o d N o d e 0021140 : \t P U B L I C P R O C [ p o 0021160 s i t i o n : I N T , l e n 0021200 g t h : I N T , C o n s t a 0021220 n t : C o n s t a n t N o d e 0021240 , T y p e : T y p e N o d e 0021260 ] \r \t R E T U R N S [ T y p e N 0021300 o d e ] = \r \t \t B E G I N \r \t 0021320 \t d a t a : \t T y p e s e q P r 0021340 o d D a t a _ \r \t \t \t N E W [ 0021360 T y p e s e q P r o d D a t a B 0021400 o d y _ [ \r \t \t \t C o n s t 0021420 a n t , T y p e ] ] ; \r \t \t R 0021440 E T U R N [ N E W [ T y p e N o 0021460 d e B o d y _ [ p o s i t i o n 0021500 , l e n g t h , T y p e s e 0021520 q P r o d P r o c s , d a t a 0021540 ] ] ] ; \r \t \t E N D ; \r \r \r - - 0021560 T y p e e n u m P r o d \r \r T 0021600 y p e e n u m P r o d P r o c s 0021620 : \t P U B L I C T y p e N o d 0021640 e P r o c s _ \r \t N E W [ T y 0021660 p e N o d e P r o c s B o d y 0021700 _ [ T y p e e n u m P r o d B 0021720 u i l d T G P a i r , T y p e 0021740 e n u m P r o d C a n o n i c a 0021760 l T y p e ] ] ; \r \r B u i l d T 0022000 y p e e n u m P r o d N o d e : 0022020 \t P U B L I C P R O C [ p o s 0022040 i t i o n : I N T , l e n g 0022060 t h : I N T , E n u m e r a 0022100 t i o n : E n u m e r a t i o 0022120 n N o d e ] \r \t R E T U R N S [ 0022140 T y p e N o d e ] = \r \t \t B E 0022160 G I N \r \t \t d a t a : \t T y p e 0022200 e n u m P r o d D a t a _ \r \t 0022220 \t \t N E W [ T y p e e n u m P r 0022240 o d D a t a B o d y _ [ \r \t 0022260 \t \t E n u m e r a t i o n ] ] ; 0022300 \r \t \t R E T U R N [ N E W [ T y 0022320 p e N o d e B o d y _ [ p o s i 0022340 t i o n , l e n g t h , T y 0022360 p e e n u m P r o d P r o c s , 0022400 d a t a ] ] ] ; \r \t \t E N D ; 0022420 \r \r \r - - T y p e e r r o r P 0022440 r o d \r \r T y p e e r r o r P r 0022460 o d P r o c s : \t P U B L I C 0022500 T y p e N o d e P r o c s _ \r 0022520 \t N E W [ T y p e N o d e P r o 0022540 c s B o d y _ [ T y p e e r 0022560 r o r P r o d B u i l d T G P a 0022600 i r , T y p e e r r o r P r o 0022620 d C a n o n i c a l T y p e ] ] 0022640 ; \r \r B u i l d T y p e e r r o 0022660 r P r o d N o d e : \t P U B L I 0022700 C P R O C [ p o s i t i o n : 0022720 I N T , l e n g t h : I N 0022740 T , F i e l d L i s t : F i 0022760 e l d L i s t N o d e ] \r \t R E 0023000 T U R N S [ T y p e N o d e ] 0023020 = \r \t \t B E G I N \r \t \t d a t a 0023040 : \t T y p e e r r o r P r o d D 0023060 a t a _ \r \t \t \t N E W [ T y p 0023100 e e r r o r P r o d D a t a B o 0023120 d y _ [ \r \t \t \t F i e l d L 0023140 i s t ] ] ; \r \t \t R E T U R N [ 0023160 N E W [ T y p e N o d e B o d y 0023200 _ [ p o s i t i o n , l e n g 0023220 t h , T y p e e r r o r P r o 0023240 d P r o c s , d a t a ] ] ] ; 0023260 \r \t \t E N D ; \r \r \r - - T y p 0023300 e r e c o r d P r o d \r \r T y p 0023320 e r e c o r d P r o d P r o c s 0023340 : \t P U B L I C T y p e N o d 0023360 e P r o c s _ \r \t N E W [ T y 0023400 p e N o d e P r o c s B o d y 0023420 _ [ T y p e r e c o r d P r o 0023440 d B u i l d T G P a i r , T y 0023460 p e r e c o r d P r o d C a n o 0023500 n i c a l T y p e ] ] ; \r \r B u 0023520 i l d T y p e r e c o r d P r o 0023540 d N o d e : \t P U B L I C P R 0023560 O C [ p o s i t i o n : I N T 0023600 , l e n g t h : I N T , F 0023620 i e l d L i s t : F i e l d L 0023640 i s t N o d e ] \r \t R E T U R N 0023660 S [ T y p e N o d e ] = \r \t \t 0023700 B E G I N \r \t \t d a t a : \t T y 0023720 p e r e c o r d P r o d D a t a 0023740 _ \r \t \t \t N E W [ T y p e r e 0023760 c o r d P r o d D a t a B o d y 0024000 _ [ \r \t \t \t F i e l d L i s 0024020 t ] ] ; \r \t \t R E T U R N [ N E 0024040 W [ T y p e N o d e B o d y _ [ 0024060 p o s i t i o n , l e n g t h 0024100 , T y p e r e c o r d P r o d 0024120 P r o c s , d a t a ] ] ] ; \r 0024140 \t \t E N D ; \r \r \r - - T y p e 0024160 n u l l P r o d \r \r T y p e n u 0024200 l l P r o d P r o c s : \t P U B 0024220 L I C T y p e N o d e P r o c 0024240 s _ \r \t N E W [ T y p e N o d 0024260 e P r o c s B o d y _ [ T y 0024300 p e n u l l P r o d B u i l d T 0024320 G P a i r , T y p e n u l l P 0024340 r o d C a n o n i c a l T y p e 0024360 ] ] ; \r \r B u i l d T y p e n u 0024400 l l P r o d N o d e : \t P U B L 0024420 I C P R O C [ p o s i t i o n 0024440 : I N T , l e n g t h : I 0024460 N T ] \r \t R E T U R N S [ T y p 0024500 e N o d e ] = \r \t \t B E G I N 0024520 \r \t \t R E T U R N [ N E W [ T y 0024540 p e N o d e B o d y _ [ p o s i 0024560 t i o n , l e n g t h , T y 0024600 p e n u l l P r o d P r o c s , 0024620 N I L ] ] ] ; \r \t \t E N D ; \r 0024640 \r \r - - T y p e p r o c P r o 0024660 d \r \r T y p e p r o c P r o d P 0024700 r o c s : \t P U B L I C T y p 0024720 e N o d e P r o c s _ \r \t N E 0024740 W [ T y p e N o d e P r o c s B 0024760 o d y _ [ T y p e p r o c P 0025000 r o d B u i l d T G P a i r , 0025020 T y p e p r o c P r o d C a n o 0025040 n i c a l T y p e ] ] ; \r \r B u 0025060 i l d T y p e p r o c P r o d N 0025100 o d e : \t P U B L I C P R O C 0025120 [ p o s i t i o n : I N T , 0025140 l e n g t h : I N T , F i e 0025160 l d L i s t a r g : F i e l d 0025200 L i s t N o d e , F i e l d L 0025220 i s t r e s : F i e l d L i s 0025240 t N o d e , N a m e L i s t : 0025260 N a m e L i s t N o d e ] \r \t 0025300 R E T U R N S [ T y p e N o d e 0025320 ] = \r \t \t B E G I N \r \t \t d a 0025340 t a : \t T y p e p r o c P r o d 0025360 D a t a _ \r \t \t \t N E W [ T y 0025400 p e p r o c P r o d D a t a B o 0025420 d y _ [ \r \t \t \t F i e l d L 0025440 i s t a r g , F i e l d L i s 0025460 t r e s , N a m e L i s t ] ] 0025500 ; \r \t \t R E T U R N [ N E W [ T 0025520 y p e N o d e B o d y _ [ p o s 0025540 i t i o n , l e n g t h , T 0025560 y p e p r o c P r o d P r o c s 0025600 , d a t a ] ] ] ; \r \t \t E N D 0025620 ; \r \r \r - - T y p e c h o i c 0025640 e P r o d \r \r T y p e c h o i c 0025660 e P r o d P r o c s : \t P U B L 0025700 I C T y p e N o d e P r o c s 0025720 _ \r \t N E W [ T y p e N o d e 0025740 P r o c s B o d y _ [ T y p 0025760 e c h o i c e P r o d B u i l d 0026000 T G P a i r , T y p e c h o i 0026020 c e P r o d C a n o n i c a l T 0026040 y p e ] ] ; \r \r B u i l d T y p 0026060 e c h o i c e P r o d N o d e : 0026100 \t P U B L I C P R O C [ p o s 0026120 i t i o n : I N T , l e n g 0026140 t h : I N T , T y p e : T 0026160 y p e N o d e , U n i o n : 0026200 U n i o n N o d e ] \r \t R E T U 0026220 R N S [ T y p e N o d e ] = \r 0026240 \t \t B E G I N \r \t \t d a t a : \t 0026260 T y p e c h o i c e P r o d D a 0026300 t a _ \r \t \t \t N E W [ T y p e 0026320 c h o i c e P r o d D a t a B o 0026340 d y _ [ \r \t \t \t T y p e , 0026360 U n i o n ] ] ; \r \t \t R E T U R 0026400 N [ N E W [ T y p e N o d e B o 0026420 d y _ [ p o s i t i o n , l e 0026440 n g t h , T y p e c h o i c e 0026460 P r o d P r o c s , d a t a ] 0026500 ] ] ; \r \t \t E N D ; \r \r \r - - 0026520 C o n s t a n t d e r e f P r o 0026540 d \r \r C o n s t a n t d e r e f 0026560 P r o d P r o c s : \t P U B L I 0026600 C C o n s t a n t N o d e P r 0026620 o c s _ \r \t N E W [ C o n s t 0026640 a n t N o d e P r o c s B o d y 0026660 _ [ C o n s t a n t d e r e 0026700 f P r o d B u i l d A b s t r a 0026720 c t V a l u e , C o n s t a n 0026740 t d e r e f P r o d C o e r c e 0026760 , C o n s t a n t d e r e f P 0027000 r o d C a r d V a l u e , C o 0027020 n s t a n t d e r e f P r o d C 0027040 o n s t a n t T o R o p e ] ] ; 0027060 \r \r B u i l d C o n s t a n t d 0027100 e r e f P r o d N o d e : \t P U 0027120 B L I C P R O C [ p o s i t i 0027140 o n : I N T , l e n g t h : 0027160 I N T , i d : i d N o d e 0027200 ] \r \t R E T U R N S [ C o n s t 0027220 a n t N o d e ] = \r \t \t B E G 0027240 I N \r \t \t d a t a : \t C o n s t 0027260 a n t d e r e f P r o d D a t a 0027300 _ \r \t \t \t N E W [ C o n s t a 0027320 n t d e r e f P r o d D a t a B 0027340 o d y _ [ \r \t \t \t i d ] ] ; 0027360 \r \t \t R E T U R N [ N E W [ C o 0027400 n s t a n t N o d e B o d y _ [ 0027420 p o s i t i o n , l e n g t h 0027440 , C o n s t a n t d e r e f P 0027460 r o d P r o c s , d a t a ] ] 0027500 ] ; \r \t \t E N D ; \r \r \r - - C 0027520 o n s t a n t i m p o r t P r o 0027540 d \r \r C o n s t a n t i m p o r 0027560 t P r o d P r o c s : \t P U B L 0027600 I C C o n s t a n t N o d e P 0027620 r o c s _ \r \t N E W [ C o n s 0027640 t a n t N o d e P r o c s B o d 0027660 y _ [ C o n s t a n t i m p 0027700 o r t P r o d B u i l d A b s t 0027720 r a c t V a l u e , C o n s t 0027740 a n t i m p o r t P r o d C o e 0027760 r c e , C o n s t a n t i m p 0030000 o r t P r o d C a r d V a l u e 0030020 , C o n s t a n t i m p o r t 0030040 P r o d C o n s t a n t T o R o 0030060 p e ] ] ; \r \r B u i l d C o n s 0030100 t a n t i m p o r t P r o d N o 0030120 d e : \t P U B L I C P R O C [ 0030140 p o s i t i o n : I N T , l 0030160 e n g t h : I N T , i d i n 0030200 t e r f a c e : i d N o d e , 0030220 i d i t e m : i d N o d e ] 0030240 \r \t R E T U R N S [ C o n s t a 0030260 n t N o d e ] = \r \t \t B E G I 0030300 N \r \t \t d a t a : \t C o n s t a 0030320 n t i m p o r t P r o d D a t a 0030340 _ \r \t \t \t N E W [ C o n s t a 0030360 n t i m p o r t P r o d D a t a 0030400 B o d y _ [ \r \t \t \t i d i n 0030420 t e r f a c e , i d i t e m ] 0030440 ] ; \r \t \t R E T U R N [ N E W [ 0030460 C o n s t a n t N o d e B o d y 0030500 _ [ p o s i t i o n , l e n g 0030520 t h , C o n s t a n t i m p o 0030540 r t P r o d P r o c s , d a t 0030560 a ] ] ] ; \r \t \t E N D ; \r \r \r - 0030600 - C o n s t a n t e m p t y P 0030620 r o d \r \r C o n s t a n t e m p 0030640 t y P r o d P r o c s : \t P U B 0030660 L I C C o n s t a n t N o d e 0030700 P r o c s _ \r \t N E W [ C o n 0030720 s t a n t N o d e P r o c s B o 0030740 d y _ [ C o n s t a n t e m 0030760 p t y P r o d B u i l d A b s t 0031000 r a c t V a l u e , C o n s t 0031020 a n t e m p t y P r o d C o e r 0031040 c e , C o n s t a n t e m p t 0031060 y P r o d C a r d V a l u e , 0031100 C o n s t a n t e m p t y P r o 0031120 d C o n s t a n t T o R o p e ] 0031140 ] ; \r \r B u i l d C o n s t a n 0031160 t e m p t y P r o d N o d e : \t 0031200 P U B L I C P R O C [ p o s i 0031220 t i o n : I N T , l e n g t 0031240 h : I N T ] \r \t R E T U R N S 0031260 [ C o n s t a n t N o d e ] = 0031300 \r \t \t B E G I N \r \t \t R E T U R 0031320 N [ N E W [ C o n s t a n t N o 0031340 d e B o d y _ [ p o s i t i o n 0031360 , l e n g t h , C o n s t a 0031400 n t e m p t y P r o d P r o c s 0031420 , N I L ] ] ] ; \r \t \t E N D ; 0031440 \r \r \r - - C o n s t a n t f a 0031460 l s e P r o d \r \r C o n s t a n 0031500 t f a l s e P r o d P r o c s : 0031520 \t P U B L I C C o n s t a n t 0031540 N o d e P r o c s _ \r \t N E W 0031560 [ C o n s t a n t N o d e P r o 0031600 c s B o d y _ [ C o n s t a 0031620 n t f a l s e P r o d B u i l d 0031640 A b s t r a c t V a l u e , C 0031660 o n s t a n t f a l s e P r o d 0031700 C o e r c e , C o n s t a n t 0031720 f a l s e P r o d C a r d V a l 0031740 u e , C o n s t a n t f a l s 0031760 e P r o d C o n s t a n t T o R 0032000 o p e ] ] ; \r \r B u i l d C o n 0032020 s t a n t f a l s e P r o d N o 0032040 d e : \t P U B L I C P R O C [ 0032060 p o s i t i o n : I N T , l 0032100 e n g t h : I N T ] \r \t R E T 0032120 U R N S [ C o n s t a n t N o d 0032140 e ] = \r \t \t B E G I N \r \t \t R 0032160 E T U R N [ N E W [ C o n s t a 0032200 n t N o d e B o d y _ [ p o s i 0032220 t i o n , l e n g t h , C o 0032240 n s t a n t f a l s e P r o d P 0032260 r o c s , N I L ] ] ] ; \r \t \t 0032300 E N D ; \r \r \r - - C o n s t a 0032320 n t t r u e P r o d \r \r C o n s 0032340 t a n t t r u e P r o d P r o c 0032360 s : \t P U B L I C C o n s t a 0032400 n t N o d e P r o c s _ \r \t N 0032420 E W [ C o n s t a n t N o d e P 0032440 r o c s B o d y _ [ C o n s 0032460 t a n t t r u e P r o d B u i l 0032500 d A b s t r a c t V a l u e , 0032520 C o n s t a n t t r u e P r o d 0032540 C o e r c e , C o n s t a n t 0032560 t r u e P r o d C a r d V a l u 0032600 e , C o n s t a n t t r u e P 0032620 r o d C o n s t a n t T o R o p 0032640 e ] ] ; \r \r B u i l d C o n s t 0032660 a n t t r u e P r o d N o d e : 0032700 \t P U B L I C P R O C [ p o s 0032720 i t i o n : I N T , l e n g 0032740 t h : I N T ] \r \t R E T U R N 0032760 S [ C o n s t a n t N o d e ] 0033000 = \r \t \t B E G I N \r \t \t R E T U 0033020 R N [ N E W [ C o n s t a n t N 0033040 o d e B o d y _ [ p o s i t i o 0033060 n , l e n g t h , C o n s t 0033100 a n t t r u e P r o d P r o c s 0033120 , N I L ] ] ] ; \r \t \t E N D ; 0033140 \r \r \r - - C o n s t a n t u n 0033160 b o u n d e d P r o d \r \r C o n 0033200 s t a n t u n b o u n d e d P r 0033220 o d P r o c s : \t P U B L I C 0033240 C o n s t a n t N o d e P r o c 0033260 s _ \r \t N E W [ C o n s t a n 0033300 t N o d e P r o c s B o d y _ 0033320 [ C o n s t a n t u n b o u n 0033340 d e d P r o d B u i l d A b s t 0033360 r a c t V a l u e , C o n s t 0033400 a n t u n b o u n d e d P r o d 0033420 C o e r c e , C o n s t a n t 0033440 u n b o u n d e d P r o d C a r 0033460 d V a l u e , C o n s t a n t 0033500 u n b o u n d e d P r o d C o n 0033520 s t a n t T o R o p e ] ] ; \r \r 0033540 B u i l d C o n s t a n t u n b 0033560 o u n d e d P r o d N o d e : \t 0033600 P U B L I C P R O C [ p o s i 0033620 t i o n : I N T , l e n g t 0033640 h : I N T ] \r \t R E T U R N S 0033660 [ C o n s t a n t N o d e ] = 0033700 \r \t \t B E G I N \r \t \t R E T U R 0033720 N [ N E W [ C o n s t a n t N o 0033740 d e B o d y _ [ p o s i t i o n 0033760 , l e n g t h , C o n s t a 0034000 n t u n b o u n d e d P r o d P 0034020 r o c s , N I L ] ] ] ; \r \t \t 0034040 E N D ; \r \r \r - - C o n s t a 0034060 n t i n v e r t e d P r o d \r \r 0034100 C o n s t a n t i n v e r t e d 0034120 P r o d P r o c s : \t P U B L I 0034140 C C o n s t a n t N o d e P r 0034160 o c s _ \r \t N E W [ C o n s t 0034200 a n t N o d e P r o c s B o d y 0034220 _ [ C o n s t a n t i n v e 0034240 r t e d P r o d B u i l d A b s 0034260 t r a c t V a l u e , C o n s 0034300 t a n t i n v e r t e d P r o d 0034320 C o e r c e , C o n s t a n t 0034340 i n v e r t e d P r o d C a r d 0034360 V a l u e , C o n s t a n t i 0034400 n v e r t e d P r o d C o n s t 0034420 a n t T o R o p e ] ] ; \r \r B u 0034440 i l d C o n s t a n t i n v e r 0034460 t e d P r o d N o d e : \t P U B 0034500 L I C P R O C [ p o s i t i o 0034520 n : I N T , l e n g t h : 0034540 I N T , N u m b e r : N u m 0034560 b e r N o d e ] \r \t R E T U R N 0034600 S [ C o n s t a n t N o d e ] 0034620 = \r \t \t B E G I N \r \t \t d a t a 0034640 : \t C o n s t a n t i n v e r t 0034660 e d P r o d D a t a _ \r \t \t \t 0034700 N E W [ C o n s t a n t i n v e 0034720 r t e d P r o d D a t a B o d y 0034740 _ [ \r \t \t \t N u m b e r ] ] 0034760 ; \r \t \t R E T U R N [ N E W [ C 0035000 o n s t a n t N o d e B o d y _ 0035020 [ p o s i t i o n , l e n g t 0035040 h , C o n s t a n t i n v e r 0035060 t e d P r o d P r o c s , d a 0035100 t a ] ] ] ; \r \t \t E N D ; \r \r \r 0035120 - - C o n s t a n t n u m b e 0035140 r P r o d \r \r C o n s t a n t n 0035160 u m b e r P r o d P r o c s : \t 0035200 P U B L I C C o n s t a n t N 0035220 o d e P r o c s _ \r \t N E W [ 0035240 C o n s t a n t N o d e P r o c 0035260 s B o d y _ [ C o n s t a n 0035300 t n u m b e r P r o d B u i l d 0035320 A b s t r a c t V a l u e , C 0035340 o n s t a n t n u m b e r P r o 0035360 d C o e r c e , C o n s t a n 0035400 t n u m b e r P r o d C a r d V 0035420 a l u e , C o n s t a n t n u 0035440 m b e r P r o d C o n s t a n t 0035460 T o R o p e ] ] ; \r \r B u i l d 0035500 C o n s t a n t n u m b e r P r 0035520 o d N o d e : \t P U B L I C P 0035540 R O C [ p o s i t i o n : I N 0035560 T , l e n g t h : I N T , 0035600 N u m b e r : N u m b e r N o 0035620 d e ] \r \t R E T U R N S [ C o n 0035640 s t a n t N o d e ] = \r \t \t B 0035660 E G I N \r \t \t d a t a : \t C o n 0035700 s t a n t n u m b e r P r o d D 0035720 a t a _ \r \t \t \t N E W [ C o n 0035740 s t a n t n u m b e r P r o d D 0035760 a t a B o d y _ [ \r \t \t \t N 0036000 u m b e r ] ] ; \r \t \t R E T U R 0036020 N [ N E W [ C o n s t a n t N o 0036040 d e B o d y _ [ p o s i t i o n 0036060 , l e n g t h , C o n s t a 0036100 n t n u m b e r P r o d P r o c 0036120 s , d a t a ] ] ] ; \r \t \t E N 0036140 D ; \r \r \r - - C o n s t a n t 0036160 s t r i n g P r o d \r \r C o n s 0036200 t a n t s t r i n g P r o d P r 0036220 o c s : \t P U B L I C C o n s 0036240 t a n t N o d e P r o c s _ \r 0036260 \t N E W [ C o n s t a n t N o d 0036300 e P r o c s B o d y _ [ C o 0036320 n s t a n t s t r i n g P r o d 0036340 B u i l d A b s t r a c t V a l 0036360 u e , C o n s t a n t s t r i 0036400 n g P r o d C o e r c e , C o 0036420 n s t a n t s t r i n g P r o d 0036440 C a r d V a l u e , C o n s t 0036460 a n t s t r i n g P r o d C o n 0036500 s t a n t T o R o p e ] ] ; \r \r 0036520 B u i l d C o n s t a n t s t r 0036540 i n g P r o d N o d e : \t P U B 0036560 L I C P R O C [ p o s i t i o 0036600 n : I N T , l e n g t h : 0036620 I N T , r o p e : r o p e N 0036640 o d e ] \r \t R E T U R N S [ C o 0036660 n s t a n t N o d e ] = \r \t \t 0036700 B E G I N \r \t \t d a t a : \t C o 0036720 n s t a n t s t r i n g P r o d 0036740 D a t a _ \r \t \t \t N E W [ C o 0036760 n s t a n t s t r i n g P r o d 0037000 D a t a B o d y _ [ \r \t \t \t 0037020 r o p e ] ] ; \r \t \t R E T U R N 0037040 [ N E W [ C o n s t a n t N o d 0037060 e B o d y _ [ p o s i t i o n , 0037100 l e n g t h , C o n s t a n 0037120 t s t r i n g P r o d P r o c s 0037140 , d a t a ] ] ] ; \r \t \t E N D 0037160 ; \r \r \r - - C o n s t a n t c 0037200 h o i c e P r o d \r \r C o n s t 0037220 a n t c h o i c e P r o d P r o 0037240 c s : \t P U B L I C C o n s t 0037260 a n t N o d e P r o c s _ \r \t 0037300 N E W [ C o n s t a n t N o d e 0037320 P r o c s B o d y _ [ C o n 0037340 s t a n t c h o i c e P r o d B 0037360 u i l d A b s t r a c t V a l u 0037400 e , C o n s t a n t c h o i c 0037420 e P r o d C o e r c e , C o n 0037440 s t a n t c h o i c e P r o d C 0037460 a r d V a l u e , C o n s t a 0037500 n t c h o i c e P r o d C o n s 0037520 t a n t T o R o p e ] ] ; \r \r B 0037540 u i l d C o n s t a n t c h o i 0037560 c e P r o d N o d e : \t P U B L 0037600 I C P R O C [ p o s i t i o n 0037620 : I N T , l e n g t h : I 0037640 N T , i d : i d N o d e , 0037660 C o n s t a n t : C o n s t a 0037700 n t N o d e ] \r \t R E T U R N S 0037720 [ C o n s t a n t N o d e ] = 0037740 \r \t \t B E G I N \r \t \t d a t a : 0037760 \t C o n s t a n t c h o i c e P 0040000 r o d D a t a _ \r \t \t \t N E W 0040020 [ C o n s t a n t c h o i c e P 0040040 r o d D a t a B o d y _ [ \r 0040060 \t \t \t i d , C o n s t a n t ] 0040100 ] ; \r \t \t R E T U R N [ N E W [ 0040120 C o n s t a n t N o d e B o d y 0040140 _ [ p o s i t i o n , l e n g 0040160 t h , C o n s t a n t c h o i 0040200 c e P r o d P r o c s , d a t 0040220 a ] ] ] ; \r \t \t E N D ; \r \r \r - 0040240 - C o n s t a n t c o n s t r 0040260 u c t o r P r o d \r \r C o n s t 0040300 a n t c o n s t r u c t o r P r 0040320 o d P r o c s : \t P U B L I C 0040340 C o n s t a n t N o d e P r o c 0040360 s _ \r \t N E W [ C o n s t a n 0040400 t N o d e P r o c s B o d y _ 0040420 [ C o n s t a n t c o n s t r 0040440 u c t o r P r o d B u i l d A b 0040460 s t r a c t V a l u e , C o n 0040500 s t a n t c o n s t r u c t o r 0040520 P r o d C o e r c e , C o n s 0040540 t a n t c o n s t r u c t o r P 0040560 r o d C a r d V a l u e , C o 0040600 n s t a n t c o n s t r u c t o 0040620 r P r o d C o n s t a n t T o R 0040640 o p e ] ] ; \r \r B u i l d C o n 0040660 s t a n t c o n s t r u c t o r 0040700 P r o d N o d e : \t P U B L I C 0040720 P R O C [ p o s i t i o n : 0040740 I N T , l e n g t h : I N T 0040760 , C o n s t r u c t o r : C 0041000 o n s t r u c t o r N o d e ] \r 0041020 \t R E T U R N S [ C o n s t a n 0041040 t N o d e ] = \r \t \t B E G I N 0041060 \r \t \t d a t a : \t C o n s t a n 0041100 t c o n s t r u c t o r P r o d 0041120 D a t a _ \r \t \t \t N E W [ C o 0041140 n s t a n t c o n s t r u c t o 0041160 r P r o d D a t a B o d y _ 0041200 [ \r \t \t \t C o n s t r u c t o r 0041220 ] ] ; \r \t \t R E T U R N [ N E W 0041240 [ C o n s t a n t N o d e B o d 0041260 y _ [ p o s i t i o n , l e n 0041300 g t h , C o n s t a n t c o n 0041320 s t r u c t o r P r o d P r o c 0041340 s , d a t a ] ] ] ; \r \t \t E N 0041360 D ; \r \r \r - - C o n s t a n t 0041400 g r o u p i n g P r o d \r \r C o 0041420 n s t a n t g r o u p i n g P r 0041440 o d P r o c s : \t P U B L I C 0041460 C o n s t a n t N o d e P r o c 0041500 s _ \r \t N E W [ C o n s t a n 0041520 t N o d e P r o c s B o d y _ 0041540 [ C o n s t a n t g r o u p i 0041560 n g P r o d B u i l d A b s t r 0041600 a c t V a l u e , C o n s t a 0041620 n t g r o u p i n g P r o d C o 0041640 e r c e , C o n s t a n t g r 0041660 o u p i n g P r o d C a r d V a 0041700 l u e , C o n s t a n t g r o 0041720 u p i n g P r o d C o n s t a n 0041740 t T o R o p e ] ] ; \r \r B u i l 0041760 d C o n s t a n t g r o u p i n 0042000 g P r o d N o d e : \t P U B L I 0042020 C P R O C [ p o s i t i o n : 0042040 I N T , l e n g t h : I N 0042060 T , G r o u p i n g : G r o 0042100 u p i n g N o d e ] \r \t R E T U 0042120 R N S [ C o n s t a n t N o d e 0042140 ] = \r \t \t B E G I N \r \t \t d a 0042160 t a : \t C o n s t a n t g r o u 0042200 p i n g P r o d D a t a _ \r \t 0042220 \t \t N E W [ C o n s t a n t g r 0042240 o u p i n g P r o d D a t a B o 0042260 d y _ [ \r \t \t \t G r o u p i 0042300 n g ] ] ; \r \t \t R E T U R N [ N 0042320 E W [ C o n s t a n t N o d e B 0042340 o d y _ [ p o s i t i o n , l 0042360 e n g t h , C o n s t a n t g 0042400 r o u p i n g P r o d P r o c s 0042420 , d a t a ] ] ] ; \r \t \t E N D 0042440 ; \r \r \r - - E n u m e r a t i 0042460 o n o n e P r o d \r \r E n u m e 0042500 r a t i o n o n e P r o d P r o 0042520 c s : \t P U B L I C E n u m e 0042540 r a t i o n N o d e P r o c s 0042560 _ \r \t N E W [ E n u m e r a t i 0042600 o n N o d e P r o c s B o d y 0042620 _ [ E n u m e r a t i o n o n 0042640 e P r o d C a n o n i c a l E n 0042660 u m e r a t i o n , E n u m e 0042700 r a t i o n o n e P r o d C h e 0042720 c k E n u m e r a t i o n ] ] ; 0042740 \r \r B u i l d E n u m e r a t i 0042760 o n o n e P r o d N o d e : \t P 0043000 U B L I C P R O C [ p o s i t 0043020 i o n : I N T , l e n g t h 0043040 : I N T , i d : i d N o d 0043060 e , C o n s t a n t : C o n 0043100 s t a n t N o d e ] \r \t R E T U 0043120 R N S [ E n u m e r a t i o n N 0043140 o d e ] = \r \t \t B E G I N \r \t 0043160 \t d a t a : \t E n u m e r a t i 0043200 o n o n e P r o d D a t a _ \r 0043220 \t \t \t N E W [ E n u m e r a t i 0043240 o n o n e P r o d D a t a B o d 0043260 y _ [ \r \t \t \t i d , C o n 0043300 s t a n t ] ] ; \r \t \t R E T U R 0043320 N [ N E W [ E n u m e r a t i o 0043340 n N o d e B o d y _ [ p o s i t 0043360 i o n , l e n g t h , E n u 0043400 m e r a t i o n o n e P r o d P 0043420 r o c s , d a t a ] ] ] ; \r \t 0043440 \t E N D ; \r \r \r - - E n u m e 0043460 r a t i o n m o r e P r o d \r \r 0043500 E n u m e r a t i o n m o r e P 0043520 r o d P r o c s : \t P U B L I C 0043540 E n u m e r a t i o n N o d e 0043560 P r o c s _ \r \t N E W [ E n u 0043600 m e r a t i o n N o d e P r o c 0043620 s B o d y _ [ E n u m e r a 0043640 t i o n m o r e P r o d C a n o 0043660 n i c a l E n u m e r a t i o n 0043700 , E n u m e r a t i o n m o r 0043720 e P r o d C h e c k E n u m e r 0043740 a t i o n ] ] ; \r \r B u i l d E 0043760 n u m e r a t i o n m o r e P r 0044000 o d N o d e : \t P U B L I C P 0044020 R O C [ p o s i t i o n : I N 0044040 T , l e n g t h : I N T , 0044060 E n u m e r a t i o n v a l u e 0044100 : E n u m e r a t i o n N o d 0044120 e , E n u m e r a t i o n n e 0044140 x t : E n u m e r a t i o n N 0044160 o d e ] \r \t R E T U R N S [ E n 0044200 u m e r a t i o n N o d e ] = 0044220 \r \t \t B E G I N \r \t \t d a t a : 0044240 \t E n u m e r a t i o n m o r e 0044260 P r o d D a t a _ \r \t \t \t N E 0044300 W [ E n u m e r a t i o n m o r 0044320 e P r o d D a t a B o d y _ 0044340 [ \r \t \t \t E n u m e r a t i o n 0044360 v a l u e , E n u m e r a t i 0044400 o n n e x t ] ] ; \r \t \t R E T U 0044420 R N [ N E W [ E n u m e r a t i 0044440 o n N o d e B o d y _ [ p o s i 0044460 t i o n , l e n g t h , E n 0044500 u m e r a t i o n m o r e P r o 0044520 d P r o c s , d a t a ] ] ] ; 0044540 \r \t \t E N D ; \r \r \r - - U n i 0044560 o n o n e P r o d \r \r U n i o n 0044600 o n e P r o d P r o c s : \t P U 0044620 B L I C U n i o n N o d e P r 0044640 o c s _ \r \t N E W [ U n i o n 0044660 N o d e P r o c s B o d y _ 0044700 [ U n i o n o n e P r o d C a n 0044720 o n i c a l U n i o n , U n i 0044740 o n o n e P r o d E m p t y W o 0044760 r k T a b l e O f N a m e s ] ] 0045000 ; \r \r B u i l d U n i o n o n e 0045020 P r o d N o d e : \t P U B L I C 0045040 P R O C [ p o s i t i o n : 0045060 I N T , l e n g t h : I N T 0045100 , N a m e L i s t : N a m e 0045120 L i s t N o d e , T y p e : 0045140 T y p e N o d e ] \r \t R E T U R 0045160 N S [ U n i o n N o d e ] = \r 0045200 \t \t B E G I N \r \t \t d a t a : \t 0045220 U n i o n o n e P r o d D a t a 0045240 _ \r \t \t \t N E W [ U n i o n o 0045260 n e P r o d D a t a B o d y _ 0045300 [ \r \t \t \t N a m e L i s t , 0045320 T y p e ] ] ; \r \t \t R E T U R N 0045340 [ N E W [ U n i o n N o d e B o 0045360 d y _ [ p o s i t i o n , l e 0045400 n g t h , U n i o n o n e P r 0045420 o d P r o c s , d a t a ] ] ] 0045440 ; \r \t \t E N D ; \r \r \r - - U n 0045460 i o n m o r e P r o d \r \r U n i 0045500 o n m o r e P r o d P r o c s : 0045520 \t P U B L I C U n i o n N o d 0045540 e P r o c s _ \r \t N E W [ U n 0045560 i o n N o d e P r o c s B o d y 0045600 _ [ U n i o n m o r e P r o 0045620 d C a n o n i c a l U n i o n , 0045640 U n i o n m o r e P r o d E m 0045660 p t y W o r k T a b l e O f N a 0045700 m e s ] ] ; \r \r B u i l d U n i 0045720 o n m o r e P r o d N o d e : \t 0045740 P U B L I C P R O C [ p o s i 0045760 t i o n : I N T , l e n g t 0046000 h : I N T , U n i o n v a l 0046020 u e : U n i o n N o d e , U 0046040 n i o n n e x t : U n i o n N 0046060 o d e ] \r \t R E T U R N S [ U n 0046100 i o n N o d e ] = \r \t \t B E G 0046120 I N \r \t \t d a t a : \t U n i o n 0046140 m o r e P r o d D a t a _ \r \t 0046160 \t \t N E W [ U n i o n m o r e P 0046200 r o d D a t a B o d y _ [ \r 0046220 \t \t \t U n i o n v a l u e , U 0046240 n i o n n e x t ] ] ; \r \t \t R E 0046260 T U R N [ N E W [ U n i o n N o 0046300 d e B o d y _ [ p o s i t i o n 0046320 , l e n g t h , U n i o n m 0046340 o r e P r o d P r o c s , d a 0046360 t a ] ] ] ; \r \t \t E N D ; \r \r \r 0046400 - - F i e l d L i s t e m p t 0046420 y P r o d \r \r F i e l d L i s t 0046440 e m p t y P r o d P r o c s : \t 0046460 P U B L I C F i e l d L i s t 0046500 N o d e P r o c s _ \r \t N E W 0046520 [ F i e l d L i s t N o d e P r 0046540 o c s B o d y _ [ F i e l d 0046560 L i s t e m p t y P r o d C a n 0046600 o n i c a l F i e l d L i s t ] 0046620 ] ; \r \r B u i l d F i e l d L i 0046640 s t e m p t y P r o d N o d e : 0046660 \t P U B L I C P R O C [ p o s 0046700 i t i o n : I N T , l e n g 0046720 t h : I N T ] \r \t R E T U R N 0046740 S [ F i e l d L i s t N o d e ] 0046760 = \r \t \t B E G I N \r \t \t R E T 0047000 U R N [ N E W [ F i e l d L i s 0047020 t N o d e B o d y _ [ p o s i t 0047040 i o n , l e n g t h , F i e 0047060 l d L i s t e m p t y P r o d P 0047100 r o c s , N I L ] ] ] ; \r \t \t 0047120 E N D ; \r \r \r - - F i e l d L 0047140 i s t o n e P r o d \r \r F i e l 0047160 d L i s t o n e P r o d P r o c 0047200 s : \t P U B L I C F i e l d L 0047220 i s t N o d e P r o c s _ \r \t 0047240 N E W [ F i e l d L i s t N o d 0047260 e P r o c s B o d y _ [ F i 0047300 e l d L i s t o n e P r o d C a 0047320 n o n i c a l F i e l d L i s t 0047340 ] ] ; \r \r B u i l d F i e l d L 0047360 i s t o n e P r o d N o d e : \t 0047400 P U B L I C P R O C [ p o s i 0047420 t i o n : I N T , l e n g t 0047440 h : I N T , N a m e L i s t 0047460 : N a m e L i s t N o d e , 0047500 T y p e : T y p e N o d e ] \r 0047520 \t R E T U R N S [ F i e l d L i 0047540 s t N o d e ] = \r \t \t B E G I 0047560 N \r \t \t d a t a : \t F i e l d L 0047600 i s t o n e P r o d D a t a _ 0047620 \r \t \t \t N E W [ F i e l d L i s 0047640 t o n e P r o d D a t a B o d y 0047660 _ [ \r \t \t \t N a m e L i s t 0047700 , T y p e ] ] ; \r \t \t R E T U 0047720 R N [ N E W [ F i e l d L i s t 0047740 N o d e B o d y _ [ p o s i t i 0047760 o n , l e n g t h , F i e l 0050000 d L i s t o n e P r o d P r o c 0050020 s , d a t a ] ] ] ; \r \t \t E N 0050040 D ; \r \r \r - - F i e l d L i s 0050060 t m o r e P r o d \r \r F i e l d 0050100 L i s t m o r e P r o d P r o c 0050120 s : \t P U B L I C F i e l d L 0050140 i s t N o d e P r o c s _ \r \t 0050160 N E W [ F i e l d L i s t N o d 0050200 e P r o c s B o d y _ [ F i 0050220 e l d L i s t m o r e P r o d C 0050240 a n o n i c a l F i e l d L i s 0050260 t ] ] ; \r \r B u i l d F i e l d 0050300 L i s t m o r e P r o d N o d e 0050320 : \t P U B L I C P R O C [ p o 0050340 s i t i o n : I N T , l e n 0050360 g t h : I N T , F i e l d L 0050400 i s t v a l u e : F i e l d L 0050420 i s t N o d e , F i e l d L i 0050440 s t r e s t : F i e l d L i s 0050460 t N o d e ] \r \t R E T U R N S [ 0050500 F i e l d L i s t N o d e ] = 0050520 \r \t \t B E G I N \r \t \t d a t a : 0050540 \t F i e l d L i s t m o r e P r 0050560 o d D a t a _ \r \t \t \t N E W [ 0050600 F i e l d L i s t m o r e P r o 0050620 d D a t a B o d y _ [ \r \t \t 0050640 \t F i e l d L i s t v a l u e , 0050660 F i e l d L i s t r e s t ] ] 0050700 ; \r \t \t R E T U R N [ N E W [ F 0050720 i e l d L i s t N o d e B o d y 0050740 _ [ p o s i t i o n , l e n g 0050760 t h , F i e l d L i s t m o r 0051000 e P r o d P r o c s , d a t a 0051020 ] ] ] ; \r \t \t E N D ; \r \r \r - - 0051040 G r o u p i n g o n e P r o d 0051060 \r \r G r o u p i n g o n e P r o 0051100 d P r o c s : \t P U B L I C G 0051120 r o u p i n g N o d e P r o c s 0051140 _ \r \t N E W [ G r o u p i n g 0051160 N o d e P r o c s B o d y _ 0051200 [ G r o u p i n g o n e P r o d 0051220 C o e r c e G r o u p i n g , 0051240 G r o u p i n g o n e P r o d G 0051260 r o u p i n g C o n s t a n t T 0051300 o R o p e , G r o u p i n g o 0051320 n e P r o d S i z e ] ] ; \r \r B 0051340 u i l d G r o u p i n g o n e P 0051360 r o d N o d e : \t P U B L I C 0051400 P R O C [ p o s i t i o n : I 0051420 N T , l e n g t h : I N T , 0051440 C o n s t a n t : C o n s t 0051460 a n t N o d e ] \r \t R E T U R N 0051500 S [ G r o u p i n g N o d e ] 0051520 = \r \t \t B E G I N \r \t \t d a t a 0051540 : \t G r o u p i n g o n e P r o 0051560 d D a t a _ \r \t \t \t N E W [ G 0051600 r o u p i n g o n e P r o d D a 0051620 t a B o d y _ [ \r \t \t \t C o 0051640 n s t a n t ] ] ; \r \t \t R E T U 0051660 R N [ N E W [ G r o u p i n g N 0051700 o d e B o d y _ [ p o s i t i o 0051720 n , l e n g t h , G r o u p 0051740 i n g o n e P r o d P r o c s , 0051760 d a t a ] ] ] ; \r \t \t E N D ; 0052000 \r \r \r - - G r o u p i n g m o 0052020 r e P r o d \r \r G r o u p i n g 0052040 m o r e P r o d P r o c s : \t P 0052060 U B L I C G r o u p i n g N o 0052100 d e P r o c s _ \r \t N E W [ G 0052120 r o u p i n g N o d e P r o c s 0052140 B o d y _ [ G r o u p i n g 0052160 m o r e P r o d C o e r c e G r 0052200 o u p i n g , G r o u p i n g 0052220 m o r e P r o d G r o u p i n g 0052240 C o n s t a n t T o R o p e , 0052260 G r o u p i n g m o r e P r o d 0052300 S i z e ] ] ; \r \r B u i l d G r 0052320 o u p i n g m o r e P r o d N o 0052340 d e : \t P U B L I C P R O C [ 0052360 p o s i t i o n : I N T , l 0052400 e n g t h : I N T , C o n s 0052420 t a n t : C o n s t a n t N o 0052440 d e , G r o u p i n g : G r 0052460 o u p i n g N o d e ] \r \t R E T 0052500 U R N S [ G r o u p i n g N o d 0052520 e ] = \r \t \t B E G I N \r \t \t d 0052540 a t a : \t G r o u p i n g m o r 0052560 e P r o d D a t a _ \r \t \t \t N 0052600 E W [ G r o u p i n g m o r e P 0052620 r o d D a t a B o d y _ [ \r 0052640 \t \t \t C o n s t a n t , G r o 0052660 u p i n g ] ] ; \r \t \t R E T U R 0052700 N [ N E W [ G r o u p i n g N o 0052720 d e B o d y _ [ p o s i t i o n 0052740 , l e n g t h , G r o u p i 0052760 n g m o r e P r o d P r o c s , 0053000 d a t a ] ] ] ; \r \t \t E N D ; 0053020 \r \r \r - - C o n s t r u c t o 0053040 r o n e P r o d \r \r C o n s t r 0053060 u c t o r o n e P r o d P r o c 0053100 s : \t P U B L I C C o n s t r 0053120 u c t o r N o d e P r o c s _ 0053140 \r \t N E W [ C o n s t r u c t o 0053160 r N o d e P r o c s B o d y _ 0053200 [ C o n s t r u c t o r o n e 0053220 P r o d C o e r c e C o m p o n 0053240 e n t s , C o n s t r u c t o 0053260 r o n e P r o d C o n s t a n t 0053300 T o R o p e , C o n s t r u c 0053320 t o r o n e P r o d C h e c k A 0053340 l l N a m e s ] ] ; \r \r B u i l 0053360 d C o n s t r u c t o r o n e P 0053400 r o d N o d e : \t P U B L I C 0053420 P R O C [ p o s i t i o n : I 0053440 N T , l e n g t h : I N T , 0053460 B i n d i n g : B i n d i n 0053500 g N o d e ] \r \t R E T U R N S [ 0053520 C o n s t r u c t o r N o d e ] 0053540 = \r \t \t B E G I N \r \t \t d a t 0053560 a : \t C o n s t r u c t o r o n 0053600 e P r o d D a t a _ \r \t \t \t N 0053620 E W [ C o n s t r u c t o r o n 0053640 e P r o d D a t a B o d y _ 0053660 [ \r \t \t \t B i n d i n g ] ] ; \r 0053700 \t \t R E T U R N [ N E W [ C o n 0053720 s t r u c t o r N o d e B o d y 0053740 _ [ p o s i t i o n , l e n g 0053760 t h , C o n s t r u c t o r o 0054000 n e P r o d P r o c s , d a t 0054020 a ] ] ] ; \r \t \t E N D ; \r \r \r - 0054040 - C o n s t r u c t o r m o r 0054060 e P r o d \r \r C o n s t r u c t 0054100 o r m o r e P r o d P r o c s : 0054120 \t P U B L I C C o n s t r u c 0054140 t o r N o d e P r o c s _ \r \t 0054160 N E W [ C o n s t r u c t o r N 0054200 o d e P r o c s B o d y _ [ 0054220 C o n s t r u c t o r m o r e P 0054240 r o d C o e r c e C o m p o n e 0054260 n t s , C o n s t r u c t o r 0054300 m o r e P r o d C o n s t a n t 0054320 T o R o p e , C o n s t r u c 0054340 t o r m o r e P r o d C h e c k 0054360 A l l N a m e s ] ] ; \r \r B u i 0054400 l d C o n s t r u c t o r m o r 0054420 e P r o d N o d e : \t P U B L I 0054440 C P R O C [ p o s i t i o n : 0054460 I N T , l e n g t h : I N 0054500 T , B i n d i n g : B i n d 0054520 i n g N o d e , C o n s t r u 0054540 c t o r : C o n s t r u c t o 0054560 r N o d e ] \r \t R E T U R N S [ 0054600 C o n s t r u c t o r N o d e ] 0054620 = \r \t \t B E G I N \r \t \t d a t 0054640 a : \t C o n s t r u c t o r m o 0054660 r e P r o d D a t a _ \r \t \t \t 0054700 N E W [ C o n s t r u c t o r m 0054720 o r e P r o d D a t a B o d y 0054740 _ [ \r \t \t \t B i n d i n g , 0054760 C o n s t r u c t o r ] ] ; \r \t 0055000 \t R E T U R N [ N E W [ C o n s 0055020 t r u c t o r N o d e B o d y _ 0055040 [ p o s i t i o n , l e n g t 0055060 h , C o n s t r u c t o r m o 0055100 r e P r o d P r o c s , d a t 0055120 a ] ] ] ; \r \t \t E N D ; \r \r \r - 0055140 - B i n d i n g P r o d \r \r B 0055160 i n d i n g P r o d P r o c s : 0055200 \t P U B L I C B i n d i n g N 0055220 o d e P r o c s _ \r \t N E W [ 0055240 B i n d i n g N o d e P r o c s 0055260 B o d y _ [ B i n d i n g P 0055300 r o d C o e r c e C o m p o n e 0055320 n t s , B i n d i n g P r o d 0055340 C o n s t a n t T o R o p e , 0055360 B i n d i n g P r o d C h e c k 0055400 A l l N a m e s ] ] ; \r \r B u i 0055420 l d B i n d i n g P r o d N o d 0055440 e : \t P U B L I C P R O C [ p 0055460 o s i t i o n : I N T , l e 0055500 n g t h : I N T , N a m e L 0055520 i s t : N a m e L i s t N o d 0055540 e , C o n s t a n t : C o n 0055560 s t a n t N o d e ] \r \t R E T U 0055600 R N S [ B i n d i n g N o d e ] 0055620 = \r \t \t B E G I N \r \t \t d a t 0055640 a : \t B i n d i n g P r o d D a 0055660 t a _ \r \t \t \t N E W [ B i n d 0055700 i n g P r o d D a t a B o d y 0055720 _ [ \r \t \t \t N a m e L i s t , 0055740 C o n s t a n t ] ] ; \r \t \t R 0055760 E T U R N [ N E W [ B i n d i n 0056000 g N o d e B o d y _ [ p o s i t 0056020 i o n , l e n g t h , B i n 0056040 d i n g P r o d P r o c s , d 0056060 a t a ] ] ] ; \r \t \t E N D ; \r \r 0056100 \r - - N a m e L i s t e m p t 0056120 y P r o d \r \r N a m e L i s t e 0056140 m p t y P r o d P r o c s : \t P 0056160 U B L I C N a m e L i s t N o 0056200 d e P r o c s _ \r \t N E W [ N 0056220 a m e L i s t N o d e P r o c s 0056240 B o d y _ [ N a m e L i s t 0056260 e m p t y P r o d C h e c k I f 0056300 E r r o r N a m e s , N a m e 0056320 L i s t e m p t y P r o d C a n 0056340 o n i c a l F i e l d s F r o m 0056360 N a m e L i s t , N a m e L i 0056400 s t e m p t y P r o d C o e r c 0056420 e C o m p o n e n t N a m e L i 0056440 s t , N a m e L i s t e m p t 0056460 y P r o d N a m e L i s t T o R 0056500 o p e , N a m e L i s t e m p 0056520 t y P r o d E m p t y W o r k T 0056540 a b l e O f N a m e s , N a m 0056560 e L i s t e m p t y P r o d T y 0056600 p e O f N a m e L i s t ] ] ; \r 0056620 \r B u i l d N a m e L i s t e m 0056640 p t y P r o d N o d e : \t P U B 0056660 L I C P R O C [ p o s i t i o 0056700 n : I N T , l e n g t h : 0056720 I N T ] \r \t R E T U R N S [ N a 0056740 m e L i s t N o d e ] = \r \t \t 0056760 B E G I N \r \t \t R E T U R N [ N 0057000 E W [ N a m e L i s t N o d e B 0057020 o d y _ [ p o s i t i o n , l 0057040 e n g t h , N a m e L i s t e 0057060 m p t y P r o d P r o c s , N 0057100 I L ] ] ] ; \r \t \t E N D ; \r \r \r 0057120 - - N a m e L i s t o n e P r 0057140 o d \r \r N a m e L i s t o n e P 0057160 r o d P r o c s : \t P U B L I C 0057200 N a m e L i s t N o d e P r o 0057220 c s _ \r \t N E W [ N a m e L i 0057240 s t N o d e P r o c s B o d y 0057260 _ [ N a m e L i s t o n e P r 0057300 o d C h e c k I f E r r o r N a 0057320 m e s , N a m e L i s t o n e 0057340 P r o d C a n o n i c a l F i e 0057360 l d s F r o m N a m e L i s t , 0057400 N a m e L i s t o n e P r o d 0057420 C o e r c e C o m p o n e n t N 0057440 a m e L i s t , N a m e L i s 0057460 t o n e P r o d N a m e L i s t 0057500 T o R o p e , N a m e L i s t 0057520 o n e P r o d E m p t y W o r k 0057540 T a b l e O f N a m e s , N a 0057560 m e L i s t o n e P r o d T y p 0057600 e O f N a m e L i s t ] ] ; \r \r 0057620 B u i l d N a m e L i s t o n e 0057640 P r o d N o d e : \t P U B L I C 0057660 P R O C [ p o s i t i o n : 0057700 I N T , l e n g t h : I N T 0057720 , i d : i d N o d e ] \r \t R 0057740 E T U R N S [ N a m e L i s t N 0057760 o d e ] = \r \t \t B E G I N \r \t 0060000 \t d a t a : \t N a m e L i s t o 0060020 n e P r o d D a t a _ \r \t \t \t 0060040 N E W [ N a m e L i s t o n e P 0060060 r o d D a t a B o d y _ [ \r 0060100 \t \t \t i d ] ] ; \r \t \t R E T U R 0060120 N [ N E W [ N a m e L i s t N o 0060140 d e B o d y _ [ p o s i t i o n 0060160 , l e n g t h , N a m e L i 0060200 s t o n e P r o d P r o c s , 0060220 d a t a ] ] ] ; \r \t \t E N D ; \r 0060240 \r \r - - N a m e L i s t m o r 0060260 e P r o d \r \r N a m e L i s t m 0060300 o r e P r o d P r o c s : \t P U 0060320 B L I C N a m e L i s t N o d 0060340 e P r o c s _ \r \t N E W [ N a 0060360 m e L i s t N o d e P r o c s B 0060400 o d y _ [ N a m e L i s t m 0060420 o r e P r o d C h e c k I f E r 0060440 r o r N a m e s , N a m e L i 0060460 s t m o r e P r o d C a n o n i 0060500 c a l F i e l d s F r o m N a m 0060520 e L i s t , N a m e L i s t m 0060540 o r e P r o d C o e r c e C o m 0060560 p o n e n t N a m e L i s t , 0060600 N a m e L i s t m o r e P r o d 0060620 N a m e L i s t T o R o p e , 0060640 N a m e L i s t m o r e P r o d 0060660 E m p t y W o r k T a b l e O f 0060700 N a m e s , N a m e L i s t m 0060720 o r e P r o d T y p e O f N a m 0060740 e L i s t ] ] ; \r \r B u i l d N 0060760 a m e L i s t m o r e P r o d N 0061000 o d e : \t P U B L I C P R O C 0061020 [ p o s i t i o n : I N T , 0061040 l e n g t h : I N T , i d : 0061060 i d N o d e , N a m e L i s 0061100 t : N a m e L i s t N o d e ] 0061120 \r \t R E T U R N S [ N a m e L i 0061140 s t N o d e ] = \r \t \t B E G I 0061160 N \r \t \t d a t a : \t N a m e L i 0061200 s t m o r e P r o d D a t a _ 0061220 \r \t \t \t N E W [ N a m e L i s t 0061240 m o r e P r o d D a t a B o d y 0061260 _ [ \r \t \t \t i d , N a m e 0061300 L i s t ] ] ; \r \t \t R E T U R N 0061320 [ N E W [ N a m e L i s t N o d 0061340 e B o d y _ [ p o s i t i o n , 0061360 l e n g t h , N a m e L i s 0061400 t m o r e P r o d P r o c s , 0061420 d a t a ] ] ] ; \r \t \t E N D ; \r 0061440 \r \r - - N u m b e r d e c i m 0061460 a l P r o d \r \r N u m b e r d e 0061500 c i m a l P r o d P r o c s : \t 0061520 P U B L I C N u m b e r N o d 0061540 e P r o c s _ \r \t N E W [ N u 0061560 m b e r N o d e P r o c s B o d 0061600 y _ [ N u m b e r d e c i m 0061620 a l P r o d C a r d V a l u e , 0061640 N u m b e r d e c i m a l P r 0061660 o d N u m b e r T o C a r d ] ] 0061700 ; \r \r B u i l d N u m b e r d e 0061720 c i m a l P r o d N o d e : \t P 0061740 U B L I C P R O C [ p o s i t 0061760 i o n : I N T , l e n g t h 0062000 : I N T , d e c i m a l : 0062020 d e c i m a l N o d e ] \r \t R E 0062040 T U R N S [ N u m b e r N o d e 0062060 ] = \r \t \t B E G I N \r \t \t d a 0062100 t a : \t N u m b e r d e c i m a 0062120 l P r o d D a t a _ \r \t \t \t N 0062140 E W [ N u m b e r d e c i m a l 0062160 P r o d D a t a B o d y _ [ 0062200 \r \t \t \t d e c i m a l ] ] ; \r \t 0062220 \t R E T U R N [ N E W [ N u m b 0062240 e r N o d e B o d y _ [ p o s i 0062260 t i o n , l e n g t h , N u 0062300 m b e r d e c i m a l P r o d P 0062320 r o c s , d a t a ] ] ] ; \r \t 0062340 \t E N D ; \r \r \r - - N u m b e 0062360 r h e x P r o d \r \r N u m b e r 0062400 h e x P r o d P r o c s : \t P U 0062420 B L I C N u m b e r N o d e P 0062440 r o c s _ \r \t N E W [ N u m b 0062460 e r N o d e P r o c s B o d y 0062500 _ [ N u m b e r h e x P r o d 0062520 C a r d V a l u e , N u m b e 0062540 r h e x P r o d N u m b e r T o 0062560 C a r d ] ] ; \r \r B u i l d N u 0062600 m b e r h e x P r o d N o d e : 0062620 \t P U B L I C P R O C [ p o s 0062640 i t i o n : I N T , l e n g 0062660 t h : I N T , h e x : h e 0062700 x N o d e ] \r \t R E T U R N S [ 0062720 N u m b e r N o d e ] = \r \t \t 0062740 B E G I N \r \t \t d a t a : \t N u 0062760 m b e r h e x P r o d D a t a 0063000 _ \r \t \t \t N E W [ N u m b e r h 0063020 e x P r o d D a t a B o d y _ 0063040 [ \r \t \t \t h e x ] ] ; \r \t \t R 0063060 E T U R N [ N E W [ N u m b e r 0063100 N o d e B o d y _ [ p o s i t i 0063120 o n , l e n g t h , N u m b 0063140 e r h e x P r o d P r o c s , 0063160 d a t a ] ] ] ; \r \t \t E N D ; \r 0063200 \r \r - - N u m b e r o c t a l 0063220 P r o d \r \r N u m b e r o c t a 0063240 l P r o d P r o c s : \t P U B L 0063260 I C N u m b e r N o d e P r o 0063300 c s _ \r \t N E W [ N u m b e r 0063320 N o d e P r o c s B o d y _ 0063340 [ N u m b e r o c t a l P r o d 0063360 C a r d V a l u e , N u m b e 0063400 r o c t a l P r o d N u m b e r 0063420 T o C a r d ] ] ; \r \r B u i l d 0063440 N u m b e r o c t a l P r o d N 0063460 o d e : \t P U B L I C P R O C 0063500 [ p o s i t i o n : I N T , 0063520 l e n g t h : I N T , o c t 0063540 a l : o c t a l N o d e ] \r \t 0063560 R E T U R N S [ N u m b e r N o 0063600 d e ] = \r \t \t B E G I N \r \t \t 0063620 d a t a : \t N u m b e r o c t a 0063640 l P r o d D a t a _ \r \t \t \t N 0063660 E W [ N u m b e r o c t a l P r 0063700 o d D a t a B o d y _ [ \r \t 0063720 \t \t o c t a l ] ] ; \r \t \t R E T 0063740 U R N [ N E W [ N u m b e r N o 0063760 d e B o d y _ [ p o s i t i o n 0064000 , l e n g t h , N u m b e r 0064020 o c t a l P r o d P r o c s , 0064040 d a t a ] ] ] ; \r \t \t E N D ; \r 0064060 \r E N D . . \r 0064067