$ od -c -N 50000 [Indigo]<Casaba>7.0>Saffron3.0>Derived>SaffronAG9Impl.Mesa!34 0000000 - - S a f f r o n A G 9 I m p 0000020 l . m e s a \r - - C o p y r 0000040 i g h t 323 1 9 8 7 b y X 0000060 e 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 0000120 s e r v e d . \r - - G e n e 0000140 r a t e d b y R a u e n . p 0000160 a a t S e p t e m b e r 1 0000200 , 1 9 8 8 7 : 2 5 : 0 4 p 0000220 m P D T \r - - u s i n g 0000240 T 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 0000320 m P D T \r \r D I R E C T O R Y 0000340 \r \t S a f f r o n A G 9 D e f , 0000360 \r \t S a f f r o n G e n e r i c 0000400 D e f , \r \t S a f f r o n A T D 0000420 e f ; \r \r S a f f r o n A G 9 I 0000440 m p l : C E D A R P R O G R 0000460 A M I M P O R T S S a f f r 0000500 o n A G 9 D e f E X P O R T S 0000520 S a f f r o n A G 9 D e f = 0000540 \r B E G I N \r O P E N S a f f 0000560 r o n A G 9 D e f , S a f f r 0000600 o n G e n e r i c D e f , S a 0000620 f f r o n A T D e f ; \r \r - - 0000640 M o d u l e P i m p l P r o d \r 0000660 \r M o d u l e P i m p l P r o d 0000700 P r o c s : \t P U B L I C M o 0000720 d u l e P N o d e P r o c s _ 0000740 \r \t N E W [ M o d u l e P N o d 0000760 e P r o c s B o d y _ [ M o 0001000 d u l e P i m p l P r o d M a k 0001020 e E n v i r o n m e n t ] ] ; \r 0001040 \r B u i l d M o d u l e P i m p 0001060 l P r o d N o d e : \t P U B L I 0001100 C P R O C [ p o s i t i o n : 0001120 I N T , l e n g t h : I N 0001140 T , D i r e c t o r y : D i 0001160 r e c t o r y N o d e , I d e 0001200 n t L i s t : I d e n t L i s 0001220 t N o d e , C e d a r : C e 0001240 d a r N o d e , P r o g H e a 0001260 d : P r o g H e a d N o d e , 0001300 C h e c k e d : C h e c k e 0001320 d N o d e , B l o c k : B l 0001340 o c k N o d e ] \r \t R E T U R N 0001360 S [ M o d u l e P N o d e ] = 0001400 \r \t \t B E G I N \r \t \t d a t a : 0001420 \t M o d u l e P i m p l P r o d 0001440 D a t a _ \r \t \t \t N E W [ M o 0001460 d u l e P i m p l P r o d D a t 0001500 a B o d y _ [ \r \t \t \t D i r 0001520 e c t o r y , I d e n t L i s 0001540 t , C e d a r , P r o g H e 0001560 a d , C h e c k e d , B l o 0001600 c k ] ] ; \r \t \t R E T U R N [ N 0001620 E W [ M o d u l e P N o d e B o 0001640 d y _ [ p o s i t i o n , l e 0001660 n g t h , M o d u l e P i m p 0001700 l P r o d P r o c s , d a t a 0001720 ] ] ] ; \r \t \t E N D ; \r \r \r - - 0001740 M o d u l e P d e f P r o d \r 0001760 \r M o d u l e P d e f P r o d P 0002000 r o c s : \t P U B L I C M o d 0002020 u l e P N o d e P r o c s _ \r 0002040 \t N E W [ M o d u l e P N o d e 0002060 P r o c s B o d y _ [ M o d 0002100 u l e P d e f P r o d M a k e E 0002120 n v i r o n m e n t ] ] ; \r \r B 0002140 u i l d M o d u l e P d e f P r 0002160 o d N o d e : \t P U B L I C P 0002200 R O C [ p o s i t i o n : I N 0002220 T , l e n g t h : I N T , 0002240 D i r e c t o r y : D i r e c 0002260 t o r y N o d e , I d e n t L 0002300 i s t : I d e n t L i s t N o 0002320 d e , C e d a r : C e d a r 0002340 N o d e , D e f H e a d : D 0002360 e f H e a d N o d e , D e f B 0002400 o d y : D e f B o d y N o d e 0002420 ] \r \t R E T U R N S [ M o d u l 0002440 e P N o d e ] = \r \t \t B E G I 0002460 N \r \t \t d a t a : \t M o d u l e 0002500 P d e f P r o d D a t a _ \r \t 0002520 \t \t N E W [ M o d u l e P d e f 0002540 P r o d D a t a B o d y _ [ 0002560 \r \t \t \t D i r e c t o r y , I 0002600 d e n t L i s t , C e d a r , 0002620 D e f H e a d , D e f B o d 0002640 y ] ] ; \r \t \t R E T U R N [ N E 0002660 W [ M o d u l e P N o d e B o d 0002700 y _ [ p o s i t i o n , l e n 0002720 g t h , M o d u l e P d e f P 0002740 r o d P r o c s , d a t a ] ] 0002760 ] ; \r \t \t E N D ; \r \r \r - - D 0003000 i r e c t o r y e m p t y P r o 0003020 d \r \r D i r e c t o r y e m p t 0003040 y P r o d P r o c s : \t P U B L 0003060 I C D i r e c t o r y N o d e 0003100 P r o c s _ \r \t N E W [ D i r 0003120 e c t o r y N o d e P r o c s B 0003140 o d y _ [ D i r e c t o r y 0003160 e m p t y P r o d P r o c e s s 0003200 D i r e c t o r y C l a u s e ] 0003220 ] ; \r \r B u i l d D i r e c t o 0003240 r y e m p t y P r o d N o d e : 0003260 \t P U B L I C P R O C [ p o s 0003300 i t i o n : I N T , l e n g 0003320 t h : I N T ] \r \t R E T U R N 0003340 S [ D i r e c t o r y N o d e ] 0003360 = \r \t \t B E G I N \r \t \t R E T 0003400 U R N [ N E W [ D i r e c t o r 0003420 y N o d e B o d y _ [ p o s i t 0003440 i o n , l e n g t h , D i r 0003460 e c t o r y e m p t y P r o d P 0003500 r o c s , N I L ] ] ] ; \r \t \t 0003520 E N D ; \r \r \r - - D i r e c t 0003540 o r y m o r e P r o d \r \r D i r 0003560 e c t o r y m o r e P r o d P r 0003600 o c s : \t P U B L I C D i r e 0003620 c t o r y N o d e P r o c s _ 0003640 \r \t N E W [ D i r e c t o r y N 0003660 o d e P r o c s B o d y _ [ 0003700 D i r e c t o r y m o r e P r o 0003720 d P r o c e s s D i r e c t o r 0003740 y C l a u s e ] ] ; \r \r B u i l 0003760 d D i r e c t o r y m o r e P r 0004000 o d N o d e : \t P U B L I C P 0004020 R O C [ p o s i t i o n : I N 0004040 T , l e n g t h : I N T , 0004060 D i r e c t o r y : D i r e c 0004100 t o r y N o d e , I n c l u d 0004120 e I t e m : I n c l u d e I t 0004140 e m N o d e ] \r \t R E T U R N S 0004160 [ D i r e c t o r y N o d e ] 0004200 = \r \t \t B E G I N \r \t \t d a t a 0004220 : \t D i r e c t o r y m o r e P 0004240 r o d D a t a _ \r \t \t \t N E W 0004260 [ D i r e c t o r y m o r e P r 0004300 o d D a t a B o d y _ [ \r \t 0004320 \t \t D i r e c t o r y , I n c 0004340 l u d e I t e m ] ] ; \r \t \t R E 0004360 T U R N [ N E W [ D i r e c t o 0004400 r y N o d e B o d y _ [ p o s i 0004420 t i o n , l e n g t h , D i 0004440 r e c t o r y m o r e P r o d P 0004460 r o c s , d a t a ] ] ] ; \r \t 0004500 \t E N D ; \r \r \r - - I n c l u 0004520 d e I t e m P r o d \r \r I n c l 0004540 u d e I t e m P r o d P r o c s 0004560 : \t P U B L I C I n c l u d e 0004600 I t e m N o d e P r o c s _ \r 0004620 \t N E W [ I n c l u d e I t e m 0004640 N o d e P r o c s B o d y _ 0004660 [ I n c l u d e I t e m P r o d 0004700 P r o c e s s D i r e c t o r y 0004720 I t e m ] ] ; \r \r B u i l d I n 0004740 c l u d e I t e m P r o d N o d 0004760 e : \t P U B L I C P R O C [ p 0005000 o s i t i o n : I N T , l e 0005020 n g t h : I N T , I d l o c 0005040 a l : I d N o d e , I d O r 0005060 S t r i n g : I d O r S t r i 0005100 n g N o d e , I d m o d u l e 0005120 N a m e : I d N o d e , U s 0005140 i n g : U s i n g N o d e ] \r 0005160 \t R E T U R N S [ I n c l u d e 0005200 I t e m N o d e ] = \r \t \t B E 0005220 G I N \r \t \t d a t a : \t I n c l 0005240 u d e I t e m P r o d D a t a 0005260 _ \r \t \t \t N E W [ I n c l u d e 0005300 I t e m P r o d D a t a B o d y 0005320 _ [ \r \t \t \t I d l o c a l , 0005340 I d O r S t r i n g , I d m 0005360 o d u l e N a m e , U s i n g 0005400 ] ] ; \r \t \t R E T U R N [ N E W 0005420 [ I n c l u d e I t e m N o d e 0005440 B o d y _ [ p o s i t i o n , 0005460 l e n g t h , I n c l u d e I 0005500 t e m P r o d P r o c s , d a 0005520 t a ] ] ] ; \r \t \t E N D ; \r \r \r 0005540 - - I d O r S t r i n g i d P 0005560 r o d \r \r I d O r S t r i n g i 0005600 d P r o d P r o c s : \t P U B L 0005620 I C I d O r S t r i n g N o d 0005640 e P r o c s _ \r \t N E W [ I d 0005660 O r S t r i n g N o d e P r o c 0005700 s B o d y _ [ I d O r S t r 0005720 i n g i d P r o d R o p e F r o 0005740 m I d O r S t r i n g ] ] ; \r \r 0005760 B u i l d I d O r S t r i n g i 0006000 d P r o d N o d e : \t P U B L I 0006020 C P R O C [ p o s i t i o n : 0006040 I N T , l e n g t h : I N 0006060 T , I d : I d N o d e ] \r \t 0006100 R E T U R N S [ I d O r S t r i 0006120 n g N o d e ] = \r \t \t B E G I 0006140 N \r \t \t d a t a : \t I d O r S t 0006160 r i n g i d P r o d D a t a _ 0006200 \r \t \t \t N E W [ I d O r S t r i 0006220 n g i d P r o d D a t a B o d y 0006240 _ [ \r \t \t \t I d ] ] ; \r \t \t 0006260 R E T U R N [ N E W [ I d O r S 0006300 t r i n g N o d e B o d y _ [ p 0006320 o s i t i o n , l e n g t h , 0006340 I d O r S t r i n g i d P r o 0006360 d P r o c s , d a t a ] ] ] ; 0006400 \r \t \t E N D ; \r \r \r - - I d O 0006420 r S t r i n g s t r i n g P r o 0006440 d \r \r I d O r S t r i n g s t r 0006460 i n g P r o d P r o c s : \t P U 0006500 B L I C I d O r S t r i n g N 0006520 o d e P r o c s _ \r \t N E W [ 0006540 I d O r S t r i n g N o d e P r 0006560 o c s B o d y _ [ I d O r S 0006600 t r i n g s t r i n g P r o d R 0006620 o p e F r o m I d O r S t r i n 0006640 g ] ] ; \r \r B u i l d I d O r S 0006660 t r i n g s t r i n g P r o d N 0006700 o d e : \t P U B L I C P R O C 0006720 [ p o s i t i o n : I N T , 0006740 l e n g t h : I N T , S t r 0006760 i n g : S t r i n g N o d e ] 0007000 \r \t R E T U R N S [ I d O r S t 0007020 r i n g N o d e ] = \r \t \t B E 0007040 G I N \r \t \t d a t a : \t I d O r 0007060 S t r i n g s t r i n g P r o d 0007100 D a t a _ \r \t \t \t N E W [ I d 0007120 O r S t r i n g s t r i n g P r 0007140 o d D a t a B o d y _ [ \r \t 0007160 \t \t S t r i n g ] ] ; \r \t \t R E 0007200 T U R N [ N E W [ I d O r S t r 0007220 i n g N o d e B o d y _ [ p o s 0007240 i t i o n , l e n g t h , I 0007260 d O r S t r i n g s t r i n g P 0007300 r o d P r o c s , d a t a ] ] 0007320 ] ; \r \t \t E N D ; \r \r \r - - U 0007340 s i n g r e s t r i c t e d P r 0007360 o d \r \r U s i n g r e s t r i c 0007400 t e d P r o d P r o c s : \t P U 0007420 B L I C U s i n g N o d e P r 0007440 o c s _ \r \t N E W [ U s i n g 0007460 N o d e P r o c s B o d y _ 0007500 [ U s i n g r e s t r i c t e d 0007520 P r o d R e s t r i c t N a m e 0007540 d T G N ] ] ; \r \r B u i l d U s 0007560 i n g r e s t r i c t e d P r o 0007600 d N o d e : \t P U B L I C P R 0007620 O C [ p o s i t i o n : I N T 0007640 , l e n g t h : I N T , I 0007660 d L i s t : I d L i s t N o d 0007700 e ] \r \t R E T U R N S [ U s i n 0007720 g N o d e ] = \r \t \t B E G I N 0007740 \r \t \t d a t a : \t U s i n g r e 0007760 s t r i c t e d P r o d D a t a 0010000 _ \r \t \t \t N E W [ U s i n g r 0010020 e s t r i c t e d P r o d D a t 0010040 a B o d y _ [ \r \t \t \t I d L 0010060 i s t ] ] ; \r \t \t R E T U R N [ 0010100 N E W [ U s i n g N o d e B o d 0010120 y _ [ p o s i t i o n , l e n 0010140 g t h , U s i n g r e s t r i 0010160 c t e d P r o d P r o c s , d 0010200 a t a ] ] ] ; \r \t \t E N D ; \r \r 0010220 \r - - U s i n g n o t h i n g 0010240 P r o d \r \r U s i n g n o t h i 0010260 n g P r o d P r o c s : \t P U B 0010300 L I C U s i n g N o d e P r o 0010320 c s _ \r \t N E W [ U s i n g N 0010340 o d e P r o c s B o d y _ [ 0010360 U s i n g n o t h i n g P r o d 0010400 R e s t r i c t N a m e d T G N 0010420 ] ] ; \r \r B u i l d U s i n g n 0010440 o t h i n g P r o d N o d e : \t 0010460 P U B L I C P R O C [ p o s i 0010500 t i o n : I N T , l e n g t 0010520 h : I N T ] \r \t R E T U R N S 0010540 [ U s i n g N o d e ] = \r \t \t 0010560 B E G I N \r \t \t R E T U R N [ N 0010600 E W [ U s i n g N o d e B o d y 0010620 _ [ p o s i t i o n , l e n g 0010640 t h , U s i n g n o t h i n g 0010660 P r o d P r o c s , N I L ] ] 0010700 ] ; \r \t \t E N D ; \r \r \r - - U 0010720 s i n g u n r e s t r i c t e d 0010740 P r o d \r \r U s i n g u n r e s 0010760 t r i c t e d P r o d P r o c s 0011000 : \t P U B L I C U s i n g N o 0011020 d e P r o c s _ \r \t N E W [ U 0011040 s i n g N o d e P r o c s B o d 0011060 y _ [ U s i n g u n r e s t 0011100 r i c t e d P r o d R e s t r i 0011120 c t N a m e d T G N ] ] ; \r \r B 0011140 u i l d U s i n g u n r e s t r 0011160 i c t e d P r o d N o d e : \t P 0011200 U B L I C P R O C [ p o s i t 0011220 i o n : I N T , l e n g t h 0011240 : I N T ] \r \t R E T U R N S [ 0011260 U s i n g N o d e ] = \r \t \t B 0011300 E G I N \r \t \t R E T U R N [ N E 0011320 W [ U s i n g N o d e B o d y _ 0011340 [ p o s i t i o n , l e n g t 0011360 h , U s i n g u n r e s t r i 0011400 c t e d P r o d P r o c s , N 0011420 I L ] ] ] ; \r \t \t E N D ; \r \r \r 0011440 - - D e f B o d y P r o d \r \r 0011460 D e f B o d y P r o d P r o c s 0011500 : \t P U B L I C D e f B o d y 0011520 N o d e P r o c s _ \r \t N E W 0011540 [ D e f B o d y N o d e P r o c 0011560 s B o d y _ [ D e f B o d y 0011600 P r o d M a k e C o n t e x t T 0011620 r e e ] ] ; \r \r B u i l d D e f 0011640 B o d y P r o d N o d e : \t P U 0011660 B L I C P R O C [ p o s i t i 0011700 o n : I N T , l e n g t h : 0011720 I N T , B i n d L i s t : 0011740 B i n d L i s t N o d e , D e 0011760 c L i s t : D e c L i s t N o 0012000 d e ] \r \t R E T U R N S [ D e f 0012020 B o d y N o d e ] = \r \t \t B E 0012040 G I N \r \t \t d a t a : \t D e f B 0012060 o d y P r o d D a t a _ \r \t \t 0012100 \t N E W [ D e f B o d y P r o d 0012120 D a t a B o d y _ [ \r \t \t \t 0012140 B i n d L i s t , D e c L i s 0012160 t ] ] ; \r \t \t R E T U R N [ N E 0012200 W [ D e f B o d y N o d e B o d 0012220 y _ [ p o s i t i o n , l e n 0012240 g t h , D e f B o d y P r o d 0012260 P r o c s , d a t a ] ] ] ; \r 0012300 \t \t E N D ; \r \r \r - - D e f H 0012320 e a d P r o d \r \r D e f H e a d 0012340 P r o d P r o c s : \t P U B L I 0012360 C D e f H e a d N o d e P r o 0012400 c s _ \r \t N E W [ D e f H e a 0012420 d N o d e P r o c s B o d y _ 0012440 [ D e f H e a d P r o d G e t 0012460 A c c e s s V a l , D e f H e 0012500 a d P r o d B u i l d I n t e r 0012520 f a c e T G N ] ] ; \r \r B u i l 0012540 d D e f H e a d P r o d N o d e 0012560 : \t P U B L I C P R O C [ p o 0012600 s i t i o n : I N T , l e n 0012620 g t h : I N T , L o c k s : 0012640 L o c k s N o d e , M o d u 0012660 l e L i s t : M o d u l e L i 0012700 s t N o d e , S h a r e s : 0012720 S h a r e s N o d e , A c c e 0012740 s s : A c c e s s N o d e ] \r 0012760 \t R E T U R N S [ D e f H e a d 0013000 N o d e ] = \r \t \t B E G I N \r 0013020 \t \t d a t a : \t D e f H e a d P 0013040 r o d D a t a _ \r \t \t \t N E W 0013060 [ D e f H e a d P r o d D a t a 0013100 B o d y _ [ \r \t \t \t L o c k 0013120 s , M o d u l e L i s t , S 0013140 h a r e s , A c c e s s ] ] ; 0013160 \r \t \t R E T U R N [ N E W [ D e 0013200 f H e a d N o d e B o d y _ [ p 0013220 o s i t i o n , l e n g t h , 0013240 D e f H e a d P r o d P r o c 0013260 s , d a t a ] ] ] ; \r \t \t E N 0013300 D ; \r \r \r - - C e d a r y e s 0013320 P r o d \r \r C e d a r y e s P r 0013340 o d P r o c s : \t P U B L I C 0013360 C e d a r N o d e P r o c s _ 0013400 \r \t N E W [ C e d a r N o d e P 0013420 r o c s B o d y _ [ C e d a 0013440 r y e s P r o d I s K e y w o r 0013460 d P r e s e n t ] ] ; \r \r B u i 0013500 l d C e d a r y e s P r o d N o 0013520 d e : \t P U B L I C P R O C [ 0013540 p o s i t i o n : I N T , l 0013560 e n g t h : I N T ] \r \t R E T 0013600 U R N S [ C e d a r N o d e ] 0013620 = \r \t \t B E G I N \r \t \t R E T U 0013640 R N [ N E W [ C e d a r N o d e 0013660 B o d y _ [ p o s i t i o n , 0013700 l e n g t h , C e d a r y e s 0013720 P r o d P r o c s , N I L ] ] 0013740 ] ; \r \t \t E N D ; \r \r \r - - C 0013760 e d a r n o P r o d \r \r C e d a 0014000 r n o P r o d P r o c s : \t P U 0014020 B L I C C e d a r N o d e P r 0014040 o c s _ \r \t N E W [ C e d a r 0014060 N o d e P r o c s B o d y _ 0014100 [ C e d a r n o P r o d I s K e 0014120 y w o r d P r e s e n t ] ] ; \r 0014140 \r B u i l d C e d a r n o P r o 0014160 d N o d e : \t P U B L I C P R 0014200 O C [ p o s i t i o n : I N T 0014220 , l e n g t h : I N T ] \r \t 0014240 R E T U R N S [ C e d a r N o d 0014260 e ] = \r \t \t B E G I N \r \t \t R 0014300 E T U R N [ N E W [ C e d a r N 0014320 o d e B o d y _ [ p o s i t i o 0014340 n , l e n g t h , C e d a r 0014360 n o P r o d P r o c s , N I L 0014400 ] ] ] ; \r \t \t E N D ; \r \r \r - - 0014420 P r o g H e a d P r o d \r \r P 0014440 r o g H e a d P r o d P r o c s 0014460 : \t P U B L I C P r o g H e a 0014500 d N o d e P r o c s _ \r \t N E 0014520 W [ P r o g H e a d N o d e P r 0014540 o c s B o d y _ [ P r o g H 0014560 e a d P r o d G e t A c c e s s 0014600 V a l , P r o g H e a d P r o 0014620 d B u i l d I m p l e m e n t a 0014640 t i o n T G N ] ] ; \r \r B u i l 0014660 d P r o g H e a d P r o d N o d 0014700 e : \t P U B L I C P R O C [ p 0014720 o s i t i o n : I N T , l e 0014740 n g t h : I N T , S a f e : 0014760 S a f e N o d e , C l a s s 0015000 : C l a s s N o d e , A r g 0015020 u m e n t s : A r g u m e n t 0015040 s N o d e , L o c k s : L o 0015060 c k s N o d e , I n t e r f a 0015100 c e : I n t e r f a c e N o d 0015120 e , A c c e s s : A c c e s 0015140 s N o d e ] \r \t R E T U R N S [ 0015160 P r o g H e a d N o d e ] = \r 0015200 \t \t B E G I N \r \t \t d a t a : \t 0015220 P r o g H e a d P r o d D a t a 0015240 _ \r \t \t \t N E W [ P r o g H e 0015260 a d P r o d D a t a B o d y _ 0015300 [ \r \t \t \t S a f e , C l a s 0015320 s , A r g u m e n t s , L o 0015340 c k s , I n t e r f a c e , 0015360 A c c e s s ] ] ; \r \t \t R E T U 0015400 R N [ N E W [ P r o g H e a d N 0015420 o d e B o d y _ [ p o s i t i o 0015440 n , l e n g t h , P r o g H 0015460 e a d P r o d P r o c s , d a 0015500 t a ] ] ] ; \r \t \t E N D ; \r \r \r 0015520 - - C l a s s p r o g r a m P 0015540 r o d \r \r C l a s s p r o g r a 0015560 m P r o d P r o c s : \t P U B L 0015600 I C C l a s s N o d e P r o c 0015620 s _ \r \t N E W [ C l a s s N o 0015640 d e P r o c s B o d y _ [ C 0015660 l a s s p r o g r a m P r o d f 0015700 o o ] ] ; \r \r B u i l d C l a s 0015720 s p r o g r a m P r o d N o d e 0015740 : \t P U B L I C P R O C [ p o 0015760 s i t i o n : I N T , l e n 0016000 g t h : I N T ] \r \t R E T U R 0016020 N S [ C l a s s N o d e ] = \r 0016040 \t \t B E G I N \r \t \t R E T U R N 0016060 [ N E W [ C l a s s N o d e B o 0016100 d y _ [ p o s i t i o n , l e 0016120 n g t h , C l a s s p r o g r 0016140 a m P r o d P r o c s , N I L 0016160 ] ] ] ; \r \t \t E N D ; \r \r \r - - 0016200 C l a s s m o n i t o r P r o 0016220 d \r \r C l a s s m o n i t o r P 0016240 r o d P r o c s : \t P U B L I C 0016260 C l a s s N o d e P r o c s 0016300 _ \r \t N E W [ C l a s s N o d e 0016320 P r o c s B o d y _ [ C l a 0016340 s s m o n i t o r P r o d f o o 0016360 ] ] ; \r \r B u i l d C l a s s m 0016400 o n i t o r P r o d N o d e : \t 0016420 P U B L I C P R O C [ p o s i 0016440 t i o n : I N T , l e n g t 0016460 h : I N T ] \r \t R E T U R N S 0016500 [ C l a s s N o d e ] = \r \t \t 0016520 B E G I N \r \t \t R E T U R N [ N 0016540 E W [ C l a s s N o d e B o d y 0016560 _ [ p o s i t i o n , l e n g 0016600 t h , C l a s s m o n i t o r 0016620 P r o d P r o c s , N I L ] ] 0016640 ] ; \r \t \t E N D ; \r \r \r - - I 0016660 n t e r f a c e P r o d \r \r I n 0016700 t e r f a c e P r o d P r o c s 0016720 : \t P U B L I C I n t e r f a 0016740 c e N o d e P r o c s _ \r \t N 0016760 E W [ I n t e r f a c e N o d e 0017000 P r o c s B o d y _ [ I n t 0017020 e r f a c e P r o d f o o ] ] ; 0017040 \r \r B u i l d I n t e r f a c e 0017060 P r o d N o d e : \t P U B L I C 0017100 P R O C [ p o s i t i o n : 0017120 I N T , l e n g t h : I N T 0017140 , M o d u l e L i s t i m p o 0017160 r t s : M o d u l e L i s t N 0017200 o d e , M o d u l e L i s t e 0017220 x p o r t s : M o d u l e L i 0017240 s t N o d e , S h a r e s : 0017260 S h a r e s N o d e ] \r \t R E T 0017300 U R N S [ I n t e r f a c e N o 0017320 d e ] = \r \t \t B E G I N \r \t \t 0017340 d a t a : \t I n t e r f a c e P 0017360 r o d D a t a _ \r \t \t \t N E W 0017400 [ I n t e r f a c e P r o d D a 0017420 t a B o d y _ [ \r \t \t \t M o 0017440 d u l e L i s t i m p o r t s , 0017460 M o d u l e L i s t e x p o r 0017500 t s , S h a r e s ] ] ; \r \t \t 0017520 R E T U R N [ N E W [ I n t e r 0017540 f a c e N o d e B o d y _ [ p o 0017560 s i t i o n , l e n g t h , 0017600 I n t e r f a c e P r o d P r o 0017620 c s , d a t a ] ] ] ; \r \t \t E 0017640 N D ; \r \r \r - - M o d u l e L 0017660 i s t e m p t y P r o d \r \r M o 0017700 d u l e L i s t e m p t y P r o 0017720 d P r o c s : \t P U B L I C M 0017740 o d u l e L i s t N o d e P r o 0017760 c s _ \r \t N E W [ M o d u l e 0020000 L i s t N o d e P r o c s B o d 0020020 y _ [ M o d u l e L i s t e 0020040 m p t y P r o d f o o ] ] ; \r \r 0020060 B u i l d M o d u l e L i s t e 0020100 m p t y P r o d N o d e : \t P U 0020120 B L I C P R O C [ p o s i t i 0020140 o n : I N T , l e n g t h : 0020160 I N T ] \r \t R E T U R N S [ M 0020200 o d u l e L i s t N o d e ] = 0020220 \r \t \t B E G I N \r \t \t R E T U R 0020240 N [ N E W [ M o d u l e L i s t 0020260 N o d e B o d y _ [ p o s i t i 0020300 o n , l e n g t h , M o d u 0020320 l e L i s t e m p t y P r o d P 0020340 r o c s , N I L ] ] ] ; \r \t \t 0020360 E N D ; \r \r \r - - M o d u l e 0020400 L i s t m o r e P r o d \r \r M o 0020420 d u l e L i s t m o r e P r o d 0020440 P r o c s : \t P U B L I C M o 0020460 d u l e L i s t N o d e P r o c 0020500 s _ \r \t N E W [ M o d u l e L 0020520 i s t N o d e P r o c s B o d y 0020540 _ [ M o d u l e L i s t m o 0020560 r e P r o d f o o ] ] ; \r \r B u 0020600 i l d M o d u l e L i s t m o r 0020620 e P r o d N o d e : \t P U B L I 0020640 C P R O C [ p o s i t i o n : 0020660 I N T , l e n g t h : I N 0020700 T , M o d u l e L i s t : M 0020720 o d u l e L i s t N o d e , M 0020740 o d u l e I t e m : M o d u l 0020760 e I t e m N o d e ] \r \t R E T U 0021000 R N S [ M o d u l e L i s t N o 0021020 d e ] = \r \t \t B E G I N \r \t \t 0021040 d a t a : \t M o d u l e L i s t 0021060 m o r e P r o d D a t a _ \r \t 0021100 \t \t N E W [ M o d u l e L i s t 0021120 m o r e P r o d D a t a B o d y 0021140 _ [ \r \t \t \t M o d u l e L i 0021160 s t , M o d u l e I t e m ] ] 0021200 ; \r \t \t R E T U R N [ N E W [ M 0021220 o d u l e L i s t N o d e B o d 0021240 y _ [ p o s i t i o n , l e n 0021260 g t h , M o d u l e L i s t m 0021300 o r e P r o d P r o c s , d a 0021320 t a ] ] ] ; \r \t \t E N D ; \r \r \r 0021340 - - M o d u l e I t e m o n e 0021360 P r o d \r \r M o d u l e I t e m 0021400 o n e P r o d P r o c s : \t P U 0021420 B L I C M o d u l e I t e m N 0021440 o d e P r o c s _ \r \t N E W [ 0021460 M o d u l e I t e m N o d e P r 0021500 o c s B o d y _ [ M o d u l 0021520 e I t e m o n e P r o d f o o ] 0021540 ] ; \r \r B u i l d M o d u l e I 0021560 t e m o n e P r o d N o d e : \t 0021600 P U B L I C P R O C [ p o s i 0021620 t i o n : I N T , l e n g t 0021640 h : I N T , I d : I d N o 0021660 d e ] \r \t R E T U R N S [ M o d 0021700 u l e I t e m N o d e ] = \r \t 0021720 \t B E G I N \r \t \t d a t a : \t M 0021740 o d u l e I t e m o n e P r o d 0021760 D a t a _ \r \t \t \t N E W [ M o 0022000 d u l e I t e m o n e P r o d D 0022020 a t a B o d y _ [ \r \t \t \t I 0022040 d ] ] ; \r \t \t R E T U R N [ N E 0022060 W [ M o d u l e I t e m N o d e 0022100 B o d y _ [ p o s i t i o n , 0022120 l e n g t h , M o d u l e I t 0022140 e m o n e P r o d P r o c s , 0022160 d a t a ] ] ] ; \r \t \t E N D ; \r 0022200 \r \r - - M o d u l e I t e m t 0022220 w o P r o d \r \r M o d u l e I t 0022240 e m t w o P r o d P r o c s : \t 0022260 P U B L I C M o d u l e I t e 0022300 m N o d e P r o c s _ \r \t N E 0022320 W [ M o d u l e I t e m N o d e 0022340 P r o c s B o d y _ [ M o d 0022360 u l e I t e m t w o P r o d f o 0022400 o ] ] ; \r \r B u i l d M o d u l 0022420 e I t e m t w o P r o d N o d e 0022440 : \t P U B L I C P R O C [ p o 0022460 s i t i o n : I N T , l e n 0022500 g t h : I N T , I d r e c o 0022520 r d : I d N o d e , I d t y 0022540 p e : I d N o d e ] \r \t R E T 0022560 U R N S [ M o d u l e I t e m N 0022600 o d e ] = \r \t \t B E G I N \r \t 0022620 \t d a t a : \t M o d u l e I t e 0022640 m t w o P r o d D a t a _ \r \t 0022660 \t \t N E W [ M o d u l e I t e m 0022700 t w o P r o d D a t a B o d y 0022720 _ [ \r \t \t \t I d r e c o r d , 0022740 I d t y p e ] ] ; \r \t \t R E T 0022760 U R N [ N E W [ M o d u l e I t 0023000 e m N o d e B o d y _ [ p o s i 0023020 t i o n , l e n g t h , M o 0023040 d u l e I t e m t w o P r o d P 0023060 r o c s , d a t a ] ] ] ; \r \t 0023100 \t E N D ; \r \r \r - - S h a r e 0023120 s a b s e n t P r o d \r \r S h a 0023140 r e s a b s e n t P r o d P r o 0023160 c s : \t P U B L I C S h a r e 0023200 s N o d e P r o c s _ \r \t N E 0023220 W [ S h a r e s N o d e P r o c 0023240 s B o d y _ [ S h a r e s a 0023260 b s e n t P r o d f o o ] ] ; \r 0023300 \r B u i l d S h a r e s a b s e 0023320 n t P r o d N o d e : \t P U B L 0023340 I C P R O C [ p o s i t i o n 0023360 : I N T , l e n g t h : I 0023400 N T ] \r \t R E T U R N S [ S h a 0023420 r e s N o d e ] = \r \t \t B E G 0023440 I N \r \t \t R E T U R N [ N E W [ 0023460 S h a r e s N o d e B o d y _ [ 0023500 p o s i t i o n , l e n g t h 0023520 , S h a r e s a b s e n t P r 0023540 o d P r o c s , N I L ] ] ] ; 0023560 \r \t \t E N D ; \r \r \r - - S h a 0023600 r e s p r e s e n t P r o d \r \r 0023620 S h a r e s p r e s e n t P r o 0023640 d P r o c s : \t P U B L I C S 0023660 h a r e s N o d e P r o c s _ 0023700 \r \t N E W [ S h a r e s N o d e 0023720 P r o c s B o d y _ [ S h a 0023740 r e s p r e s e n t P r o d f o 0023760 o ] ] ; \r \r B u i l d S h a r e 0024000 s p r e s e n t P r o d N o d e 0024020 : \t P U B L I C P R O C [ p o 0024040 s i t i o n : I N T , l e n 0024060 g t h : I N T , I d L i s t 0024100 : I d L i s t N o d e ] \r \t R 0024120 E T U R N S [ S h a r e s N o d 0024140 e ] = \r \t \t B E G I N \r \t \t d 0024160 a t a : \t S h a r e s p r e s e 0024200 n t P r o d D a t a _ \r \t \t \t 0024220 N E W [ S h a r e s p r e s e n 0024240 t P r o d D a t a B o d y _ 0024260 [ \r \t \t \t I d L i s t ] ] ; \r \t 0024300 \t R E T U R N [ N E W [ S h a r 0024320 e s N o d e B o d y _ [ p o s i 0024340 t i o n , l e n g t h , S h 0024360 a r e s p r e s e n t P r o d P 0024400 r o c s , d a t a ] ] ] ; \r \t 0024420 \t E N D ; \r \r \r - - L o c k s 0024440 a b s e n t P r o d \r \r L o c k 0024460 s a b s e n t P r o d P r o c s 0024500 : \t P U B L I C L o c k s N o 0024520 d e P r o c s _ \r \t N E W [ L 0024540 o c k s N o d e P r o c s B o d 0024560 y _ [ L o c k s a b s e n t 0024600 P r o d f o o ] ] ; \r \r B u i l 0024620 d L o c k s a b s e n t P r o d 0024640 N o d e : \t P U B L I C P R O 0024660 C [ p o s i t i o n : I N T , 0024700 l e n g t h : I N T ] \r \t R 0024720 E T U R N S [ L o c k s N o d e 0024740 ] = \r \t \t B E G I N \r \t \t R E 0024760 T U R N [ N E W [ L o c k s N o 0025000 d e B o d y _ [ p o s i t i o n 0025020 , l e n g t h , L o c k s a 0025040 b s e n t P r o d P r o c s , 0025060 N I L ] ] ] ; \r \t \t E N D ; \r \r 0025100 \r - - L o c k s p r e s e n t 0025120 P r o d \r \r L o c k s p r e s e 0025140 n t P r o d P r o c s : \t P U B 0025160 L I C L o c k s N o d e P r o 0025200 c s _ \r \t N E W [ L o c k s N 0025220 o d e P r o c s B o d y _ [ 0025240 L o c k s p r e s e n t P r o d 0025260 f o o ] ] ; \r \r B u i l d L o c 0025300 k s p r e s e n t P r o d N o d 0025320 e : \t P U B L I C P R O C [ p 0025340 o s i t i o n : I N T , l e 0025360 n g t h : I N T , E x p : 0025400 E x p N o d e , L a m b d a : 0025420 L a m b d a N o d e ] \r \t R E 0025440 T U R N S [ L o c k s N o d e ] 0025460 = \r \t \t B E G I N \r \t \t d a t 0025500 a : \t L o c k s p r e s e n t P 0025520 r o d D a t a _ \r \t \t \t N E W 0025540 [ L o c k s p r e s e n t P r o 0025560 d D a t a B o d y _ [ \r \t \t 0025600 \t E x p , L a m b d a ] ] ; \r 0025620 \t \t R E T U R N [ N E W [ L o c 0025640 k s N o d e B o d y _ [ p o s i 0025660 t i o n , l e n g t h , L o 0025700 c k s p r e s e n t P r o d P r 0025720 o c s , d a t a ] ] ] ; \r \t \t 0025740 E N D ; \r \r \r - - L a m b d a 0025760 a b s e n t P r o d \r \r L a m b 0026000 d a a b s e n t P r o d P r o c 0026020 s : \t P U B L I C L a m b d a 0026040 N o d e P r o c s _ \r \t N E W 0026060 [ L a m b d a N o d e P r o c s 0026100 B o d y _ [ L a m b d a a b 0026120 s e n t P r o d f o o ] ] ; \r \r 0026140 B u i l d L a m b d a a b s e n 0026160 t P r o d N o d e : \t P U B L I 0026200 C P R O C [ p o s i t i o n : 0026220 I N T , l e n g t h : I N 0026240 T ] \r \t R E T U R N S [ L a m b 0026260 d a N o d e ] = \r \t \t B E G I 0026300 N \r \t \t R E T U R N [ N E W [ L 0026320 a m b d a N o d e B o d y _ [ p 0026340 o s i t i o n , l e n g t h , 0026360 L a m b d a a b s e n t P r o 0026400 d P r o c s , N I L ] ] ] ; \r 0026420 \t \t E N D ; \r \r \r - - L a m b 0026440 d a p r e s e n t P r o d \r \r L 0026460 a m b d a p r e s e n t P r o d 0026500 P r o c s : \t P U B L I C L a 0026520 m b d a N o d e P r o c s _ \r 0026540 \t N E W [ L a m b d a N o d e P 0026560 r o c s B o d y _ [ L a m b 0026600 d a p r e s e n t P r o d f o o 0026620 ] ] ; \r \r B u i l d L a m b d a 0026640 p r e s e n t P r o d N o d e : 0026660 \t P U B L I C P R O C [ p o s 0026700 i t i o n : I N T , l e n g 0026720 t h : I N T , I d e n t : 0026740 I d e n t N o d e , T y p e E 0026760 x p : T y p e E x p N o d e ] 0027000 \r \t R E T U R N S [ L a m b d a 0027020 N o d e ] = \r \t \t B E G I N \r 0027040 \t \t d a t a : \t L a m b d a p r 0027060 e s e n t P r o d D a t a _ \r 0027100 \t \t \t N E W [ L a m b d a p r e 0027120 s e n t P r o d D a t a B o d y 0027140 _ [ \r \t \t \t I d e n t , T 0027160 y p e E x p ] ] ; \r \t \t R E T U 0027200 R N [ N E W [ L a m b d a N o d 0027220 e B o d y _ [ p o s i t i o n , 0027240 l e n g t h , L a m b d a p 0027260 r e s e n t P r o d P r o c s , 0027300 d a t a ] ] ] ; \r \t \t E N D ; 0027320 \r \r E N D . . \r 0027330