$ od -c -N 50000 [Indigo]<Chipmonk>xextract>extract-sources.dm!7
0000000 377 \0 \0 c h i p n e t d e f s . m
0000020 e s a \0 373 233 214 277 204 \0 \0 376 001 \0 276 322
0000040 - - C h i p N e t D e f s . m
0000060 e s a \r \r - - l a s t m o d
0000100 i f i e d b y E . M c C r
0000120 e i g h t , S e p t e m b e r
0000140 1 2 , 1 9 8 3 1 1 : 1 4
0000160 A M \r - - w r i t t e n b
0000200 y E . M c C r e i g h t ,
0000220 N o v e m b e r 3 , 1 9 8 1
0000240 1 2 : 1 4 P M \r \r D I R E
0000260 C T O R Y \r I n l i n e D e
0000300 f s , \r M i s c D e f s , \r
0000320 p p d e f s , \r S t r e
0000340 a m D e f s , \r Z o n e A l
0000360 l o c D e f s ; \r \r C h i p N e
0000400 t D e f s : D E F I N I T I O
0000420 N S I M P O R T S I n l i n
0000440 376 001 \0 326 003 e D e f s = \r B
0000460 E G I N \r \r - - T y
0000500 p e s \r \r N a n o M e t
0000520 e r s : T Y P E = L O N G
0000540 I N T E G E R ; - - o n
0000560 t h e s i l i c o n \r \r C
0000600 o o r d : T Y P E = N a n
0000620 o M e t e r s ; \r L o c N u
0000640 m S c a l e : T Y P E = {
0000660 l a m b d a R e l a t i v e ,
0000700 a b s o l u t e } ; \r C o o
0000720 r d P o i n t : T Y P E =
0000740 R E C O R D [ x , y : C o o
0000760 r d ] ; \r C o o r d R e c t
0001000 : T Y P E = R E C O R D [
0001020 x 1 , y 1 , x 2 , y 2 :
0001040 C o o r d 376 001 \0 362 331 ] ; \r
0001060 - - [ x 1 . . x 2 ) , [ y
0001100 1 . . y 2 ) \r I n t e r v a
0001120 l : T Y P E = R E C O R D
0001140 [ m i n , m a x : C o o r d ]
0001160 ; \r - - [ m i n . . m
0001200 a x ) \r \r E x t r a c t L e
0001220 v e l : T Y P E = p p d e
0001240 f s . L e v e l [ c u t . . l 3
0001260 9 ] _ u n k n o w n ; \r \r
0001300 u n k n o w n : E x t r a c
0001320 t L e v e l = N O c O L ; \r
0001340 n W e l l : E x t r a c t
0001360 L e v e l = n w e l ; \r
0001400 n W e l l R e q u i r e d : E
0001420 x t r a c t L e v e l = l 1
0001440 6 ; \r n W e l l 376 001 \0 274 3 F
0001460 o r b i d d e n : E x t r a c
0001500 t L e v e l = l 1 7 ; \r
0001520 p W e l l : E x t r a c t L e
0001540 v e l = p w e l ; \r p W
0001560 e l l R e q u i r e d : E x t
0001600 r a c t L e v e l = l 1 8 ;
0001620 \r p W e l l F o r b i d d e
0001640 n : E x t r a c t L e v e l
0001660 = l 1 9 ; \r n D e p l e t
0001700 i o n : E x t r a c t L e v e
0001720 l = i m p ; \r n D e p l
0001740 e t i o n R e q u i r e d : E
0001760 x t r a c t L e v e l = l 2
0002000 0 ; \r n D e p l e t i o n F
0002020 o r b i d d e n : E x t r a c
0002040 t L e v e l = l 2 1 ; \r 376
0002060 001 \0 $ O n B u r i e d C o n t
0002100 a c t : E x t r a c t L e v e
0002120 l = b u r ; \r n B u r i
0002140 e d C o n t a c t R e q u i r e
0002160 d : E x t r a c t L e v e l
0002200 = l 2 2 ; \r n B u r i e d
0002220 C o n t a c t F o r b i d d e n
0002240 : E x t r a c t L e v e l =
0002260 l 2 3 ; \r t h i n O x :
0002300 E x t r a c t L e v e l = l
0002320 2 4 ; \r n P l u s : E x t
0002340 r a c t L e v e l = d i f ;
0002360 \r n P l u s R e q u i r e d
0002400 : E x t r a c t L e v e l =
0002420 l 2 5 ; \r n P l u s F o r
0002440 b i d d e n : E x t r a c t L
0002460 e v e l 376 001 \0 > 255 = l 2 6 ;
0002500 \r p P l u s : E x t r a c
0002520 t L e v e l = p d i f ; \r
0002540 p P l u s R e q u i r e d :
0002560 E x t r a c t L e v e l = l
0002600 2 7 ; \r p P l u s F o r b i
0002620 d d e n : E x t r a c t L e v
0002640 e l = l 2 8 ; \r n I m p
0002660 l a n t : E x t r a c t L e v
0002700 e l = l 2 9 ; \r p I m p
0002720 l a n t : E x t r a c t L e v
0002740 e l = l 3 0 ; \r n G a t
0002760 e : E x t r a c t L e v e l
0003000 = l 3 1 ; \r n G a t e R e
0003020 q u i r e d : E x t r a c t L
0003040 e v e l = l 3 2 ; \r n G
0003060 a t e F o r b i d 376 001 \0 % 320 d e
0003100 n : E x t r a c t L e v e l
0003120 = l 3 3 ; \r p G a t e :
0003140 E x t r a c t L e v e l = l
0003160 3 4 ; \r p G a t e R e q u i
0003200 r e d : E x t r a c t L e v e
0003220 l = l 3 5 ; \r p G a t e
0003240 F o r b i d d e n : E x t r a
0003260 c t L e v e l = l 3 6 ; \r
0003300 p o l y : E x t r a c t L e
0003320 v e l = p o l ; \r p o l
0003340 y R e q u i r e d : E x t r a
0003360 c t L e v e l = l 3 7 ; \r
0003400 p o l y F o r b i d d e n :
0003420 E x t r a c t L e v e l = l
0003440 3 8 ; \r c u t F o r b i d d
0003460 e n : E x t r a c t L e v 376 001
0003500 \0 251 k e l = l 3 9 ; \r m
0003520 e t a l : E x t r a c t L e v
0003540 e l = m e t ; \r v i a :
0003560 E x t r a c t L e v e l =
0003600 c u t 2 ; \r m e t a l 2 :
0003620 E x t r a c t L e v e l = m
0003640 e t 2 ; \r p a d : E x t r
0003660 a c t L e v e l = o v g ; \r
0003700 \r L e v C o o r d R e c t :
0003720 T Y P E = R E C O R D [ l
0003740 e v : E x t r a c t L e v e l
0003760 , \r r : C o o r d R e
0004000 c t ] ; \r \r P r o p P t r :
0004020 T Y P E = L O N G P O I
0004040 N T E R T O p p d e f s . p
0004060 r o p _ N I L ; \r \r C o
0004100 n d u 376 001 \0 \n 316 c t o r s : T
0004120 Y P E = { n d i f , p d i
0004140 f , p o l y , m e t a l ,
0004160 m e t a l 2 } ; \r \r N e t P
0004200 t r , n e t P t r , n e t I
0004220 n t P t r : T Y P E = L O
0004240 N G P O I N T E R T O N e
0004260 t _ N I L ; \r C a n o n
0004300 N e t P t r : T Y P E = L
0004320 O N G P O I N T E R T O c
0004340 a n o n N e t _ N I L ; \r
0004360 L i n k N e t P t r : T Y
0004400 P E = L O N G P O I N T E
0004420 R T O l i n k N e t _
0004440 N I L ; \r N e t , n e t :
0004460 T Y P E = R E C O R D [ \r
0004500 r e f s 376 001 \0 346 301 : C
0004520 A R D I N A L _ 1 , - -
0004540 n u m b e r o f r e f e r e
0004560 n c e s p a s s i n g t h r
0004600 o u g h \r r e s t : S
0004620 E L E C T t y p e : * F R
0004640 O M \r l i n k = >
0004660 [ n x t : n e t I n t P t r
0004700 ] , \r c a n o n =
0004720 > [ i d : N e t I d P t r ]
0004740 , \r E N D C A S E \r
0004760 ] ; \r \r N e t I d P
0005000 t r : T Y P E = L O N G
0005020 P O I N T E R T O N e t I d
0005040 _ N I L ; \r F r e e N e
0005060 t I d P t r : T Y P E = L
0005100 O N G P O I N T E R T 376 001 \0
0005120 O 017 O f r e e N e t I d _
0005140 \r N I L ; \r N o r m
0005160 a l N e t I d P t r : T Y P E
0005200 = L O N G P O I N T E R
0005220 T O n o r m a l N e t I d
0005240 _ N I L ; \r \r N e t I d :
0005260 T Y P E = R E C O R D \r
0005300 [ n e x t : N e t I d P
0005320 t r , - - i n a l l N e t
0005340 s c h a i n \r f i n a
0005360 l : L e v C o o r d R e c t
0005400 _ [ r : [ x 1 : F I R S T
0005420 [ C o o r d ] , x 2 : F I R
0005440 S T [ C o o r d ] , \r
0005460 y 1 : F I R S T [ C o o r d
0005500 ] , y 2 : F I R S T [ C o o
0005520 r d 376 001 \0 302 200 ] ] ] , \r
0005540 - - f i n a l . x 2 i s
0005560 t h e g r e a t e s t x
0005600 v a l u e a t w h i c h \r
0005620 - - a n y p i e c
0005640 e o f g e o m e t r y \r
0005660 - - k n o w n t o
0005700 b e l o n g t o t h i s n
0005720 e t e x i s t s . \r v
0005740 i o l a t i o n s : V i o l a
0005760 t i o n L i s t P t r , - -
0006000 p o t e n t i a l v i o l a t
0006020 i o n s i n v o l v i n g t
0006040 h i s n e t \r d e t a
0006060 i l s : S E L E C T t y p e
0006100 : * F R O M \r f
0006120 r e e = > 376 001 \0 321 270 [ n e x
0006140 t F r e e : F r e e N e t I d
0006160 P t r ] , \r w e l l
0006200 = > [ a t t a c h e d T o :
0006220 N e t P t r ] , \r
0006240 n o r m a l = > \r
0006260 [ \r l a s t
0006300 X : C o o r d _ L A S T [
0006320 C o o r d ] , \r
0006340 - - l a s t v a l u e
0006360 o f x w h e r e c a p s
0006400 w e r e c h a n g e d \r
0006420 c a p s : A R R A Y
0006440 C o n d u c t o r s O F L
0006460 a y e r C a p , \r
0006500 s o u r c e : C e l l C a l
0006520 l P t r , - - h i g 376 001 \0 235
0006540 002 h e s t n a m e d s o u r
0006560 c e f o r \r
0006600 - - t h i s n e t , o r
0006620 i f n o n e a r e n a m
0006640 e d , h i g h e s t u n n a
0006660 m e d s o u r c e \r
0006700 h a s P a t h T o G n d ,
0006720 h a s P a t h T o V d d , h
0006740 a s D e p l e t i o n P u l l u
0006760 p : \r B O O
0007000 L E A N _ F A L S E , \r
0007020 c o u l d B e L o g
0007040 o : B O O L E A N _ T R U
0007060 E , - - i f a l l m e t
0007100 a l \r n a m e :
0007120 S E L E C T n a m e C l a s
0007140 s 376 001 \0 260 210 : * F R O M \r
0007160 a n o n y m o
0007200 u s = > [ ] , \r
0007220 n u m e r i c = > [
0007240 n : C A R D I N A L ] , \r
0007260 q u a l i f i e
0007300 d = > [ s e e : C e l l I
0007320 n d e x - - ( i n . s o u
0007340 r c e ) - - ] , \r
0007360 n a m e d = > [ n
0007400 a m e : p p d e f s . A t o m
0007420 ] , \r E N D
0007440 C A S E \r ]
0007460 , \r E N D C A S
0007500 E \r ] _ [ d e t a i
0007520 l s : n o r m a l [ l a s t X
0007540 : 0 , n 376 001 \0 4 207 a m e :
0007560 a n o n y m o u s [ ] ] ] ; \r \r
0007600 \r V i o l a t i o n L i s t
0007620 P t r : T Y P E = L O N G
0007640 P O I N T E R T O V i o l
0007660 a t i o n L i s t _ N I L ;
0007700 \r V i o l a t i o n L i s t
0007720 : T Y P E = R E C O R D
0007740 [ \r n e x t : V i o l
0007760 a t i o n L i s t P t r , \r
0010000 v : V i o l a t i o n \r
0010020 ] ; \r \r V i o l a t i
0010040 o n : T Y P E = R E C O R
0010060 D [ \r p l a c e : p
0010100 p d e f s . P o i n t _ [ 0
0010120 , 0 ] , \r i n f o : S
0010140 E L E C T t y p e : 376 001 \0 + 8
0010160 * F R O M \r u n
0010200 k n o w n , c a n t C h e c k
0010220 = > N U L L , \r
0010240 t o o N a r r o w , n o N e t
0010260 T o W e l l , b o g u s T r a
0010300 n s i s t o r , \r
0010320 c o v e r a g e N e e d e d ,
0010340 c o v e r a g e F o r b i d d
0010360 e n = > \r
0010400 [ l e v : E x t r a c t L e v
0010420 e l ] , \r t o o C l
0010440 o s e = > [ l e v 1 , l e
0010460 v 2 : E x t r a c t L e v e l
0010500 , n 1 , n 2 : n e t P t r
0010520 ] , \r c o v e r a g
0010540 e F o r b i d d e n I f N e t s
0010560 376 001 \0 201 373 D i f f e r = > \r
0010600 [ l e v : E x t
0010620 r a c t L e v e l , n 1 , n
0010640 2 : n e t P t r ] , \r
0010660 d i f f e r e n t N e t s T
0010700 o W e l l = > \r
0010720 [ l e v : E x t r a c t L e
0010740 v e l , w e l l N o d e , n
0010760 : n e t P t r ] , \r
0011000 t e r m i n a l s U n c o n n
0011020 e c t e d = > [ i t e m :
0011040 I t e m R e f ] , \r
0011060 t e r m i n a l s S h o r t e d
0011100 = > [ i t e m 1 , i t e m
0011120 2 : I t e m R e f ] , \r
0011140 E N D C A S E \r ]
0011160 ; \r \r 376 001 \0 333 2 L a y e r C
0011200 a p P t r : T Y P E = L O
0011220 N G P O I N T E R T O L a
0011240 y e r C a p _ N I L ; \r
0011260 L a y e r C a p : T Y P E =
0011300 R E C O R D [ \r c u
0011320 t S i d e s : C A R D I N A L
0011340 _ 0 , \r c u t W i d
0011360 t h : p p d e f s . l o c N u
0011400 m _ 0 , \r p e r i m
0011420 e t e r : L O N G C A R D I
0011440 N A L _ 0 , - - l o c N
0011460 u m ' s \r a r e a : L
0011500 O N G C A R D I N A L _ 0
0011520 - - l o c N u m ^ 2 \r
0011540 ] ; \r \r S o r t C l a s s
0011560 : T Y P E = { 376 001 \0 363 320 m
0011600 i n X , m a x X , m i n Y ,
0011620 m a x Y } ; \r o r i e n t
0011640 T o S o r t C l a s s : A R R
0011660 A Y p p d e f s . o r i e n t
0011700 a t i o n I n d e x O F S o
0011720 r t C l a s s ; \r \r F e a t
0011740 u r e P t r : T Y P E = L
0011760 O N G P O I N T E R T O F
0012000 e a t u r e _ N I L ; \r
0012020 F e a t u r e : T Y P E =
0012040 R E C O R D [ - - c u t b
0012060 y s c a n l i n e \r
0012100 c o v e r : C o o r d R e c t
0012120 , \r l e v : E x t r a
0012140 c t L e v e l , \r c a l
0012160 l e r : I t e m R e f , \r 376
0012200 001 \0 374 032 n e t : n e t I
0012220 n t P t r \r ] ; \r \r \r
0012240 C e l l I n s t P t : T Y P
0012260 E = R E C O R D [ - -
0012300 p r i o r i t y q u e u e i
0012320 t e m \r x : C o o r d
0012340 , \r c a l l : I t e m
0012360 R e f \r ] ; \r \r \r I
0012400 t e m R e f : T Y P E = R
0012420 E C O R D [ \r h e a d :
0012440 I n s t a n c e P t r , \r
0012460 i d x : C e l l I n d e x
0012500 _ 0 - - i n h e a d .
0012520 s e q [ ? ] a c c o r d i n g
0012540 \r - - t o h e a
0012560 d . o r i e n t \r ] ; \r
0012600 \r C 376 001 \0 031 Q e l l C a l l
0012620 P t r : T Y P E = L O N G
0012640 P O I N T E R T O c e l l
0012660 I n s t a n c e _ N I L ;
0012700 \r X s t r C a l l P t r :
0012720 T Y P E = L O N G P O I N
0012740 T E R T O x s t r I n s t
0012760 a n c e _ N I L ; \r I n
0013000 s t a n c e P t r : T Y P E
0013020 = L O N G P O I N T E R T
0013040 O I n s t a n c e _ N I L
0013060 ; \r I n s t a n c e : T Y
0013100 P E = R E C O R D [ \r
0013120 m i n : C o o r d P o i n t
0013140 , - - a s p l a c e d \r
0013160 o r i e n t : p p d e f
0013200 s . o r i e n t a 376 001 \0 C 350 t i
0013220 o n I n d e x _ 0 , - -
0013240 a s p l a c e d \r p r
0013260 o t o : P r o t o P t r , \r
0013300 c a l l e r : I t e m R
0013320 e f , \r s i b l i n g :
0013340 I n s t a n c e P t r , \r
0013360 n e t s : S E L E C T t
0013400 y p e : * F R O M - - d
0013420 e p e n d i n g o n . p r o
0013440 t o . o b . o t y p \r
0013460 c e l l = > \r
0013500 [ \r o f f s p
0013520 r i n g : I n s t a n c e P t
0013540 r , \r c l u s t
0013560 e r s : C l u s t e r P t r ,
0013600 \r n e t s : 376 001
0013620 \0 f 220 N o r m a l N e t I d P
0013640 t r \r ] , \r
0013660 x s t r = > \r
0013700 [ \r m a
0013720 p : A R R A Y X s t r T e r
0013740 m i n a l s O F n e t P t r
0013760 , \r s a m e H a
0014000 s h : X s t r C a l l P t r ,
0014020 \r i n S i m F i
0014040 l e : B O O L E A N _ F A
0014060 L S E \r ] , \r
0014100 c o n t = > [ n e
0014120 t : n e t P t r ] , \r
0014140 E N D C A S E \r ] ;
0014160 \r \r X s t r T e r m i n a l
0014200 s : T Y P E = { g a t e ,
0014220 s o 376 001 \0 M 9 u r c e , d r
0014240 a i n } ; \r \r C l u s t e r
0014260 P t r : T Y P E = L O N G
0014300 P O I N T E R T O C l u s
0014320 t e r _ N I L ; \r C l u
0014340 s t e r : T Y P E = R E C
0014360 O R D [ \r n e x t : C
0014400 l u s t e r P t r , \r n
0014420 e t N a m e : p p d e f s . A
0014440 t o m , \r f i r s t :
0014460 M u s t C o n n e c t \r
0014500 ] ; \r \r M u s t C o n n e c
0014520 t P t r : T Y P E = L O N
0014540 G P O I N T E R T O M u s
0014560 t C o n n e c t _ N I L ; \r
0014600 M u s t C o n n e c t : T
0014620 Y P E = R E 376 001 \0 N 8 C O R
0014640 D [ \r n e x t : M u s
0014660 t C o n n e c t P t r , \r
0014700 n e t : n e t P t r , \r
0014720 s o u r c e : I t e m R e
0014740 f - - n o t c o u n t e d
0014760 i n n e t M a p , b u t \r
0015000 - - c o u n t e d
0015020 i n u n s a t i s f i e d \r
0015040 ] ; \r \r \r P r o t o
0015060 P t r : T Y P E = L O N G
0015100 P O I N T E R T O C e l l
0015120 P r o t o _ N I L ; \r C
0015140 e l l P r o t o : T Y P E =
0015160 R E C O R D [ \r o b :
0015200 L O N G P O I N T E R T O
0015220 p p d e f s . o b j e c 376 001 \0
0015240 266 327 t , - - c e l l , r e
0015260 p e a t \r n a m e : S
0015300 T R I N G _ N I L , - -
0015320 f r o m c L i s t \r s
0015340 i z e : C o o r d P o i n t ,
0015360 \r i t e m C o u n t :
0015400 C e l l I n d e x _ 0 , \r
0015420 s t r e t c h M a s k s :
0015440 B O O L E A N _ T R U E ,
0015460 \r l o c N u m S c a l e
0015500 : L o c N u m S c a l e _
0015520 l a m b d a R e l a t i v e , \r
0015540 l p : p p d e f s . l
0015560 i s t P t r _ N I L , - -
0015600 o f i t e m C o u n t e l
0015620 e m e n t s \r s e q :
0015640 A R 376 001 \0 347 027 R A Y S o r t C
0015660 l a s s O F L i s t P t r S
0015700 e q P t r , \r c o n n e
0015720 c t i o n s : A R R A Y S o
0015740 r t C l a s s O F C o n n e
0015760 c t o r P t r \r ] ; \r \r
0016000 C e l l I n d e x : T Y P
0016020 E = C A R D I N A L ; \r \r
0016040 L i s t P t r S e q P t r :
0016060 T Y P E = L O N G P O I N
0016100 T E R T O L i s t P t r S e
0016120 q _ N I L ; \r L i s t P
0016140 t r S e q : T Y P E = R E
0016160 C O R D [ \r l p : S E
0016200 Q U E N C E c o u n t : C e
0016220 l l I n d e x O F p p d e f
0016240 s . l i s t P 376 001 \0 242 \n t r \r
0016260 ] ; \r \r \r C o n n e c
0016300 t o r P t r : T Y P E = L
0016320 O N G P O I N T E R T O C
0016340 o n n e c t o r _ N I L ; \r
0016360 C o n n e c t o r : T Y P
0016400 E = R E C O R D [ \r
0016420 n e x t : C o n n e c t o r
0016440 P t r , \r l e v : E x
0016460 t r a c t L e v e l , \r
0016500 r a n g e : I n t e r v a l ,
0016520 - - t h e r a n g e o f
0016540 d i s t a n c e s d o w n \r
0016560 - - t h e l e f
0016600 t e d g e o f t h e b o
0016620 u n d i n g b o x , o r t
0016640 o t h e r i g h t \r 376 001 \0 ?
0016660 004 - - a l o n g
0016700 t h e t o p e d g e o f
0016720 t h e b o u n d i n g b o x
0016740 . \r d e p t h : C o o
0016760 r d , \r - - i n w
0017000 a r d f r o m t h e e d g
0017020 e o f t h e b o u n d i n
0017040 g b o x \r n e t : n
0017060 e t I n t P t r \r ] ; \r
0017100 \f \r - - C o n s
0017120 t a n t s \r \r c h e
0017140 c k A l l : B O O L E A N =
0017160 F A L S E ; - - t u r n s
0017200 o n a l l s t r u c t u r
0017220 e - \r - - c h e c k i
0017240 n g r o u t i n e s . \r \r
0017260 f 376 001 \0 030 V e a t u r e D e l a
0017300 y : p p d e f s . l o c N u m
0017320 = 8 * p p d e f s . L a m b
0017340 d a ; \r \r l e v e l M a p :
0017360 A R R A Y p p d e f s . l e
0017400 v e l O F E x t r a c t L e
0017420 v e l ; \r l e v e l N a m e
0017440 s : A R R A Y E x t r a c t
0017460 L e v e l O F S T R I N G ;
0017500 \r i s C o n d u c t o r :
0017520 A R R A Y E x t r a c t L e v
0017540 e l O F B O O L E A N ; \r \r
0017560 - - V a r i a
0017600 b l e s \r \r f e a t u
0017620 r e Z , n e t Z , n e t I d
0017640 Z , i n s t a n c e Z , c l
0017660 u s t e r Z 376 001 \0 @ 200 , t r a
0017700 n s Z , u z : \r U N C
0017720 O U N T E D Z O N E ; \r \r
0017740 o r i g C i f S c a l e : I N
0017760 T E G E R ; - - c e n t i M
0020000 i c r o m e t e r s p e r l
0020020 a m b d a \r l a m b d a R e
0020040 l a t i v e C o o r d S c a l e
0020060 : C o o r d ; - - C o o r
0020100 d s p e r p p d e f s . l o
0020120 c N u m \r c o o r d S c a l
0020140 e : A R R A Y L o c N u m S
0020160 c a l e O F C o o r d ; \r \r
0020200 d e l t a O r i g i n : C
0020220 o o r d P o i n t ; - - a c
0020240 t u a l - i d e a l \r \r
0020260 c u r r e n t X : C 376 001 \0 030 X
0020300 o o r d ; - - s c a n i n
0020320 c r e a s e s i n x \r \r
0020340 n o t i n g M a r k : B O O L
0020360 E A N ; - - f o r d e b u
0020400 g g i n g \r e x t r a c t C
0020420 a p s : B O O L E A N ; \r
0020440 a l l N e t s : N e t I d P t
0020460 r ; \r \r s i g n a l N a m e
0020500 , i n s t a n c e N a m e :
0020520 R E A D O N L Y p p d e f s .
0020540 A t o m ; \r \r e x t e r n a
0020560 l W i r i n g F i n i s h e d :
0020600 B O O L E A N ; - - f o r
0020620 " m a g i c a l " w i r i n
0020640 g , t o b e a d d e d l
0020660 a t e r \r \r - - P r
0020700 376 001 \0 3 005 o c e d u r
0020720 e s \r \r A S S E R T :
0020740 P R O C [ c o n d i t i o n :
0020760 B O O L E A N ] = I N L I
0021000 N E { I F N O T c o n d i
0021020 t i o n T H E N E R R O R }
0021040 ; \r \r W r i t e S i m F i l
0021060 e : P R O C [ c : C e l l
0021100 C a l l P t r ] ; \r - -
0021120 e x p l o r e s t h e c a l
0021140 l t r e e r o o t e d a t
0021160 c \r \r A d d E x t e r n a
0021200 l W i r i n g : P R O C [ f
0021220 i l e N a m e : S T R I N G ,
0021240 r o o t : C e l l C a l l P
0021260 t r ] ; \r - - R e a d
0021300 s e x t 376 001 \0 313 y e r n a l
0021320 w i r i n g s p e c f r o m
0021340 f i l e , c o m p a r e s
0021360 w i t h t e r m i n a l s i
0021400 n \r - - c a l l t r
0021420 e e r o o t e d a t r o o
0021440 t . \r \r A p p e n d L o n g
0021460 S t r i n g : P R O C [ t o
0021500 , f r o m : L O N G S T R
0021520 I N G ] ; \r \r F i n d P r o
0021540 p V a l u e : P R O C [ l p
0021560 : p p d e f s . l i s t P t r
0021600 , a t t r i b u t e : p p d
0021620 e f s . A t o m ] \r R E
0021640 T U R N S [ v a l u e : p p
0021660 d e f s . A t o m ] ; \r \r F
0021700 i n d I n h e r i t 376 001 \0 " q e
0021720 d P r o p V a l u e : P R O C
0021740 [ i t e m : I t e m R e f ,
0021760 a t t r i b u t e : p p d e
0022000 f s . A t o m ] \r R E T
0022020 U R N S [ v a l u e : p p d
0022040 e f s . A t o m ] ; \r \r A p
0022060 p e n d A t o m : P R O C [
0022100 s : L O N G S T R I N G ,
0022120 a t o m : p p d e f s . A t o
0022140 m ] ; \r \r A p p e n d N e t
0022160 : P R O C [ s : S T R I N
0022200 G , n e t : n e t P t r ] \r
0022220 R E T U R N S [ C a n
0022240 o n N e t P t r ] ; \r \r A p
0022260 p e n d N e t I d : P R O C
0022300 [ s : S T R I N G , n e t 376
0022320 001 \0 O 036 I d : N o r m a l N e
0022340 t I d P t r ] ; \r \r A p p e
0022360 n d T e r m i n a l N a m e : \r
0022400 P R O C [ s : S T R
0022420 I N G , c : I t e m R e f ]
0022440 ; \r \r A p p e n d C a l l e
0022460 r C h a i n , A p p e n d C a
0022500 l l e r L i n k : \r P R
0022520 O C [ s : S T R I N G , c
0022540 : I n s t a n c e P t r ] ; \r
0022560 \r A p p e n d L o c N u m :
0022600 P R O C [ s : S T R I N G
0022620 , n : p p d e f s . l o c N
0022640 u m ] ; \r \r A p p e n d C o
0022660 o r d : P R O C [ s : S T
0022700 R I N G , n : C o o r d ] ;
0022720 \r \r 376 001 \0 246 A p p e n d C
0022740 a r d : P R O C [ s : S T
0022760 R I N G , \r n : L O N
0023000 G C A R D I N A L ] ; \r \r \r
0023020 H e S e t s P a r a m s A n d
0023040 S a y s Y e s : P R O C [ s
0023060 1 , s 2 : S T R I N G _
0023100 N I L ] \r R E T U R N S
0023120 [ b i t : B O O L E A N ] ;
0023140 \r \r I t e m I n W o r l d :
0023160 P R O C [ c : I t e m R e
0023200 f ] R E T U R N S [ C o o r
0023220 d R e c t ] ; \r \r S o r t O
0023240 r d e r : A R R A Y S o r t
0023260 C l a s s O F \r P R O
0023300 C [ l p 1 , l p 2 : p p d
0023320 e f s . l i s t P 376 001 \0 + 356 t r
0023340 ] R E T U R N S [ B O O L E
0023360 A N ] ; \r \r S o r t L i s t
0023400 P t r S e q : P R O C [ l p
0023420 s : L i s t P t r S e q P t r
0023440 , \r l e s s : P R O C
0023460 [ l p 1 , l p 2 : p p d e
0023500 f s . l i s t P t r ] R E T U
0023520 R N S [ B O O L E A N ] \r
0023540 ] ; \r \r \r N e w N e t :
0023560 P R O C [ i n i t R e f s :
0023600 C A R D I N A L _ 1 ] \r
0023620 R E T U R N S [ C a n o
0023640 n N e t P t r ] ; \r \r M e r
0023660 g e N e t s : P R O C [ n 1
0023700 , n 2 : n e t P t r ] \r
0023720 R E T U R N S [ C a n 376 001
0023740 \0 322 255 o n N e t P t r ] ; \r
0023760 - - n 1 , n 2 # N I
0024000 L \r \r R e f C a n o n N e t
0024020 : P R O C [ n : n e t P t
0024040 r , n e w R e f s : I N T E
0024060 G E R _ 1 ] \r R E T
0024100 U R N S [ C a n o n N e t P t
0024120 r ] ; \r \r U p d a t e A r e
0024140 a s : P R O C [ n : N o r
0024160 m a l N e t I d P t r ] ; \r \r
0024200 G e t N o r m a l N e t I d :
0024220 P R O C [ n : L O N G P
0024240 O I N T E R T O n e t P t r
0024260 ] \r R E T U R N S [ N
0024300 o r m a l N e t I d P t r ] ; \r
0024320 \r C a n o n N e t : P R O
0024340 C [ 376 001 \0 I 242 n : n e t P t
0024360 r ] \r R E T U R N S [
0024400 C a n o n N e t P t r ] = I
0024420 N L I N E \r { R E T U R
0024440 N [ R e f C a n o n N e t [ n :
0024460 n , n e w R e f s : 0 ] ]
0024500 } ; \r \r D e R e f N e t :
0024520 P R O C [ n : n e t P t r ,
0024540 r e m o v e d R e f s : I N
0024560 T E G E R _ 1 ] \r R
0024600 E T U R N S [ C a n o n N e t
0024620 P t r ] = I N L I N E \r
0024640 B E G I N \r [ ] _
0024660 R e f C a n o n N e t [ n :
0024700 n , n e w R e f s : - r e m
0024720 o v e d R e f s ] ; \r R
0024740 E T U R N [ N I 376 001 \0 243 264 L ] ;
0024760 \r E N D ; \r \r F e a
0025000 t u r e N e t : P R O C [ f
0025020 : F e a t u r e P t r ] R E
0025040 T U R N S [ C a n o n N e t P
0025060 t r ] ; \r - - d o e s
0025100 n ' t i n c r e a s e r e f
0025120 c o u n t , f o r c e s f
0025140 . n e t t o b e n o n - n
0025160 i l \r \r M e r g e F e a t u
0025200 r e N e t s : P R O C [ f 1
0025220 , f 2 : F e a t u r e P t r
0025240 ] ; \r \r \r I t e m R e f T o
0025260 L p : P R O C [ c : I t e
0025300 m R e f ] \r R E T U R N
0025320 S [ p p d e f s . l i s t P t
0025340 r ] = I N L I N E \r 376 001 \0
0025360 B f { R E T U R N [ c . h
0025400 e a d . p r o t o . s e q [ o r
0025420 i e n t T o S o r t C l a s s [
0025440 c . h e a d . o r i e n t ] ] \r
0025460 [ c . i d x ] ] } ;
0025500 \r \r C o o r d S i z e : P
0025520 R O C [ s i z e : C o o r d
0025540 P o i n t , \r o r i e n
0025560 t : p p d e f s . o r i e n t
0025600 a t i o n I n d e x ] R E T U
0025620 R N S [ C o o r d P o i n t ]
0025640 = \r I N L I N E \r
0025660 { R E T U R N [ I F I n l
0025700 i n e D e f s . B I T A N D [ o
0025720 r i e n t , 4 ] = 0 T H E N
0025740 s i z e \r E L S E
0025760 [ 376 001 \0 020 253 x : s i z e . y
0026000 , y : s i z e . x ] ] } ; \r
0026020 \r S c a l e T o C h i p m o
0026040 n k : P R O C [ x : C o o
0026060 r d ] \r R E T U R N S
0026100 [ p p d e f s . l o c N u m ]
0026120 = I N L I N E \r { R E
0026140 T U R N [ I n l i n e D e f s .
0026160 L o w H a l f [ x / l a m b d a
0026200 R e l a t i v e C o o r d S c a
0026220 l e ] ] } ; \r \r S c a l e P
0026240 o i n t T o C h i p m o n k :
0026260 P R O C [ p : C o o r d P o
0026300 i n t ] \r R E T U R N S
0026320 [ p p d e f s . P o i n t ]
0026340 = I N L I N E \r { R E
0026360 T U R N [ [ x 376 001 \0 220 5 : S c
0026400 a l e T o C h i p m o n k [ p .
0026420 x + d e l t a O r i g i n . x ]
0026440 , \r y : S c a l e
0026460 T o C h i p m o n k [ p . y + d
0026500 e l t a O r i g i n . y ] ] ] }
0026520 ; \r \r S c a l e F r o m C h
0026540 i p m o n k : P R O C [ x :
0026560 p p d e f s . l o c N u m ] \r
0026600 R E T U R N S [ C o o
0026620 r d ] = I N L I N E \r
0026640 { R E T U R N [ x * l a m b d
0026660 a R e l a t i v e C o o r d S c
0026700 a l e ] } ; \r \r S c a l e P
0026720 o i n t F r o m C h i p m o n k
0026740 : P R O C [ p : p p d e f
0026760 s . P o i n t ] \r 376 001 \0 c
0027000 313 R E T U R N S [ C o o r d
0027020 P o i n t ] = I N L I N E \r
0027040 { R E T U R N [ [ x :
0027060 S c a l e F r o m C h i p m o n
0027100 k [ p . x ] - d e l t a O r i g
0027120 i n . x , \r y : S
0027140 c a l e F r o m C h i p m o n k
0027160 [ p . y ] - d e l t a O r i g i
0027200 n . y ] ] } ; \r \r R e f C o
0027220 o r d P t : P R O C [ r :
0027240 C o o r d R e c t ] R E T U R
0027260 N S [ p p d e f s . P o i n t
0027300 ] ; \r \r S h o w F e a t u r
0027320 e : P R O C [ f : F e a t
0027340 u r e P t r ] ; \r - -
0027360 s h o w s i t o n t h e
0027400 s 376 \0 . 207 034 c r e e n f r o m
0027420 d e b u g g e r \r \r E N D
0027440 . - - o f C h i p N e t D
0027460 e f s \r 377 \0 \0 f e a t u r e p s
0027500 t . m e s a \0 373 231 366 320 327 \0 \0 376 001
0027520 \0 233 Y - - F e a t u r e P S T
0027540 . m e s a \r \r - - A g e n e
0027560 r i c p a c k a g e t o o
0027600 r g a n i z e l i s t e l e
0027620 m e n t s \r - - i n a p r
0027640 i o r i t y s e a r c h t r
0027660 e e b y t h e i n t e r v
0027700 a l s t h e y c o v e r , \r
0027720 - - a n d t o s e a r c h
0027740 b y i n t e r v a l . \r \r -
0027760 - l a s t m o d i f i e d
0030000 b y E . M c C r e i g h t ,
0030020 N o v e m b e r 8 , 1 9 8
0030040 2 1 2 : 4 9 P M \r - - w
0030060 r i t t e n b y E . M c C
0030100 r e i g h t , F e b r u a r y
0030120 8 , 376 001 \0 ) 353 1 9 8 2 1
0030140 1 : 5 1 A M \r \r D I R E C T O
0030160 R Y \r p p d e f s , \r C
0030200 h i p N e t D e f s , \r I n
0030220 l i n e D e f s ; \r \r F e a t u
0030240 r e P S T : D E F I N I T I O
0030260 N S \r I M P O R T S I n l
0030300 i n e D e f s = \r B E G I
0030320 N \r c h e c k T r e e : P
0030340 R I V A T E B O O L E A N =
0030360 F A L S E ; \r \r D o m a i
0030400 n : P R I V A T E T Y P E
0030420 = C h i p N e t D e f s . C o
0030440 o r d ; \r I n t e r v a l :
0030460 P R I V A T E T Y P E =
0030500 C h i p N e t D e f s . I n t e
0030520 r v a l ; \r 376 001 \0 037 340 -
0030540 - a s s u m e s [ I n t e r
0030560 v a l . m i n . . I n t e r v a
0030600 l . m a x ) \r d o m a i n O
0030620 f f s e t : P R I V A T E L
0030640 O N G C A R D I N A L = 2
0030660 0 0 0 0 0 0 0 0 0 0 B ; \r
0030700 - - b e t w e e n R a d i
0030720 x K e y a n d D o m a i n \r
0030740 I t e m : P R I V A T E
0030760 T Y P E = C h i p N e t D e
0031000 f s . F e a t u r e P t r ; \r
0031020 n u l l I t e m : P R I V A
0031040 T E I t e m = N I L ; \r \r
0031060 R a d i x K e y : P R I V
0031100 A T E T Y P E = L O N G
0031120 C A R D I N A L ; \r R 376 001 \0
0031140 v 334 a d i x I n d e x : P R I
0031160 V A T E T Y P E = [ 0 . .
0031200 3 1 ) ; \r \r F e a t u r e P
0031220 S T H a n d l e : T Y P E =
0031240 L O N G P O I N T E R T O
0031260 P S T O b j e c t _ N I L
0031300 ; \r P S T H a n d l e : P
0031320 R I V A T E T Y P E = F e
0031340 a t u r e P S T H a n d l e ; \r
0031360 P S T O b j e c t : P R I
0031400 V A T E T Y P E = R E C O
0031420 R D [ \r z o n e : U
0031440 N C O U N T E D Z O N E , \r
0031460 f r e e N o d e s : P S
0031500 T B i n N o d e P t r _ N I
0031520 L , \r - - f r e e
0031540 o 376 001 \0 % 261 n e s l i n k e
0031560 d t h r o u g h h a l v e s
0031600 [ l o w e r ] \r r o o t
0031620 : P S T N o d e P t r \r
0031640 ] ; \r \r P S T N o d e P t
0031660 r : P R I V A T E T Y P E
0031700 = L O N G P O I N T E R T
0031720 O P S T N o d e _ \r
0031740 N I L | N U L L ; \r P S
0031760 T N o d e : P R I V A T E T
0032000 Y P E = R E C O R D [ \r
0032020 S E L E C T t a r g e t :
0032040 * F R O M \r n i
0032060 l = > N U L L , \r
0032100 l e a f = > [ i t e m :
0032120 I t e m ] , \r i n t
0032140 e r n a l = 376 001 \0 244 S > [ p
0032160 s t : P S T B i n N o d e P t
0032200 r ] , \r - - n
0032220 e v e r N I L , e x c e p t
0032240 i n f r e e l i s t \r
0032260 E N D C A S E ] _ [
0032300 n i l [ ] ] ; \r \r H a l f :
0032320 P R I V A T E T Y P E =
0032340 { l o w e r , u p p e r } ; \r
0032360 \r P S T B i n N o d e P t r
0032400 : P R I V A T E T Y P E =
0032420 L O N G P O I N T E R T O
0032440 \r P S T B i n N o d e
0032460 _ N I L ; \r P S T B i n N
0032500 o d e : P R I V A T E T Y P
0032520 E = R E C O R D [ \r
0032540 - - T h i s p r i o 376 001 \0 221
0032560 366 r i t y s e a r c h t r e
0032600 e i s a k i n d o f P
0032620 a t r i c i a \r - - t
0032640 r e e ( s e e K n u t h v
0032660 . 3 p . 4 9 0 ) . \r
0032700 - - B i t s [ 0 . . u L e
0032720 n ) o f i n t . m a x o f
0032740 a l l I t e m s \r -
0032760 - i n t h i s s u b t r e
0033000 e m u s t m a t c h e a c
0033020 h o t h e r a n d t h a t
0033040 o f \r - - v M i n .
0033060 l o w e r v s u p p e r
0033100 i s d e t e r m i n e d b
0033120 y b i t u L e n . \r
0033140 - - O f a l l I t e m s
0033160 m 376 001 \0 | 314 e e t i n g t h e
0033200 s e c r i t e r i a , t h e
0033220 o n e w i t h m i n i m a
0033240 l \r - - i n t . m i n
0033260 a p p e a r s i n v M i n
0033300 . \r v M i n : I t e m
0033320 , \r u L e n : R a d i
0033340 x I n d e x , \r h a l v
0033360 e s : A R R A Y H a l f O
0033400 F P S T N o d e ] ; \r \r \r
0033420 N e w F e a t u r e P S T : P
0033440 R O C E D U R E [ z o n e : U
0033460 N C O U N T E D Z O N E ] \r
0033500 R E T U R N S [ P S T H a
0033520 n d l e ] ; \r \r D e s t r o
0033540 y F e a t u r e P S T : P R O
0033560 C E D U R E 376 001 \0 - E [ p : P
0033600 S T H a n d l e ] \r R E
0033620 T U R N S [ P S T H a n d l e ]
0033640 ; \r \r I n s e r t F e a t u
0033660 r e P S T , D e l e t e F e a
0033700 t u r e P S T : P R O C E D U
0033720 R E [ p : P S T H a n d l e ,
0033740 i t e m : I t e m ] ; \r \r
0033760 C o u l d n t D e l e t e F e
0034000 a t u r e P S T : S I G N A L
0034020 ; \r \r M a x F e a t u r e I
0034040 n C o v e r : P R O C E D U R
0034060 E [ p : P S T H a n d l e , \r
0034100 d : D o m a i n ] R
0034120 E T U R N S [ c o v e r e d :
0034140 B O O L E A N , i t e m : I
0034160 t e m ] ; \r \r S e 376 001 \0 \b Q
0034200 a r c h F e a t u r e P S T :
0034220 P R O C E D U R E [ p : P S T
0034240 H a n d l e , \r i n t :
0034260 I n t e r v a l , t o u c h
0034300 : P R O C E D U R E [ i t e m
0034320 : I t e m ] ] ; \r \r C l a
0034340 s s i f y F e a t u r e P S T I
0034360 n t e r v a l : P R O C E D U
0034400 R E [ p : P S T H a n d l e ,
0034420 \r i n t : I n t e r v
0034440 a l , \r c o v e r e d :
0034460 P R O C E D U R E [ i n t :
0034500 I n t e r v a l , r e p I t e
0034520 m : I t e m ] , \r g a
0034540 p : P R O C E D U R E [ i n t
0034560 : I n t e r v a l ] ] ; \r \r
0034600 376 001 \0 \a \n N u l l F e a t u r
0034620 e C o v e r e d : P R O C E D
0034640 U R E [ i n t : I n t e r v a
0034660 l , r e p I t e m : I t e m
0034700 ] ; \r \r N u l l F e a t u r
0034720 e G a p : P R O C E D U R E [
0034740 i n t : I n t e r v a l ] ; \r
0034760 \f \r h i g h B i t : W O R
0035000 D = 1 0 0 0 0 0 B ; \r a
0035020 l l B i t s : W O R D = 1
0035040 7 7 7 7 7 B ; \r \r - - T h e
0035060 f o l l o w i n g c o d e k
0035100 n o w s t h a t a R a d i
0035120 x K e y i s a \r - - L O N
0035140 G C A R D I N A L . \r \r T
0035160 r e e H a l f : P R I V A T E
0035200 P R O C 376 001 \0 210 271 E D U R E [
0035220 i t e m : I t e m , p r e f
0035240 : R a d i x I n d e x ] \r
0035260 R E T U R N S [ H a l f ]
0035300 = I N L I N E \r B E G
0035320 I N O P E N I n l i n e D e
0035340 f s ; \r k : R a d i x
0035360 K e y _ R a d i x M a x K e
0035400 y [ i t e m ] ; \r S E L
0035420 E C T p r e f F R O M \r
0035440 > 1 5 = > \r
0035460 R E T U R N [ \r
0035500 ( I F B I T A N D [ L o w H a
0035520 l f [ k ] , B I T S H I F T [
0035540 h i g h B i t , 1 6 - p r e f
0035560 ] ] = 0 \r T H E
0035600 N l o w e r \r 376 001 \0 021 266
0035620 E L S E u p p e r )
0035640 ] ; \r E N D C A S E
0035660 = > \r R E T U R N [
0035700 \r ( I F B I T
0035720 A N D [ H i g h H a l f [ k ] ,
0035740 B I T S H I F T [ h i g h B i
0035760 t , - p r e f ] ] = 0 \r
0036000 T H E N l o w e r \r
0036020 E L S E u p p
0036040 e r ) ] ; \r E N D ; -
0036060 - o f T r e e H a l f \r \r \r
0036100 A b o v e : P R I V A T E
0036120 P R O C E D U R E [ y : D o
0036140 m a i n , p : P S T B i n N
0036160 o d e P t r ] \r R E T U
0036200 R N S [ B O O L E A N ] = 376
0036220 001 \0 g 370 I N L I N E \r B
0036240 E G I N O P E N I n l i n e
0036260 D e f s ; \r k y : R a
0036300 d i x K e y _ T o R a d i x
0036320 K e y [ y ] ; \r k n :
0036340 R a d i x K e y _ R a d i x
0036360 M a x K e y [ p . v M i n ] ; \r
0036400 k n _ S E L E C T
0036420 p . u L e n F R O M \r
0036440 > 1 5 = > \r
0036460 L O O P H O L E [ \r
0036500 L o n g N u m b e r [
0036520 n u m [ h i g h b i t s : H i
0036540 g h H a l f [ k n ] , \r
0036560 l o w b i t s :
0036600 B I T O R [ L o w H a l f [ k
0036620 n ] , \r 376 001 \0 p 037
0036640 B I T S H I F T [
0036660 a l l B i t s , 1 6 - p . u L
0036700 e n ] ] ] ] , \r
0036720 R a d i x K e y ] , \r
0036740 E N D C A S E = > \r
0036760 L O O P H O L E [ \r
0037000 L o n g N u
0037020 m b e r [ n u m [ h i g h b i t
0037040 s : B I T O R [ H i g h H a l
0037060 f [ k n ] , \r
0037100 B I T S H I F T [ a l
0037120 l B i t s , - p . u L e n ] ]
0037140 , \r l o
0037160 w b i t s : a l l B i t s ] ]
0037200 , \r R a d i
0037220 x K e y ] ; \r 376 001 \0 247 :
0037240 R E T U R N [ k n < = k y ] ; \r
0037260 E N D ; - - o f A
0037300 b o v e \r \r \r P r e f i x T
0037320 a b l e : P R I V A T E T Y
0037340 P E = P A C K E D A R R A
0037360 Y [ 0 . . 2 5 6 ) O F [ 0
0037400 . . 8 ] ; \r - - t [ i
0037420 ] i s t h e n u m b e r
0037440 o f h i g h - o r d e r 0
0037460 b i t s i n \r - - a
0037500 n 8 - b i t r e p r e s e n
0037520 t a t i o n o f i \r P r
0037540 e f i x T a b l e P t r : P R
0037560 I V A T E T Y P E = \r
0037600 L O N G P O I N T E R T O
0037620 P r e f i x T a b l e _ 376 001
0037640 \0 031 260 N I L ; \r \r C o m m
0037660 o n L e n : P R I V A T E P
0037700 R O C E D U R E [ i 1 , i 2 :
0037720 I t e m , \r p t : P
0037740 r e f i x T a b l e P t r ] R
0037760 E T U R N S [ R a d i x I n d e
0040000 x ] = I N L I N E \r
0040020 B E G I N O P E N I n l i n
0040040 e D e f s ; \r k 1 : R
0040060 a d i x K e y _ R a d i x M
0040100 a x K e y [ i 1 ] ; \r k
0040120 2 : R a d i x K e y _ R a
0040140 d i x M a x K e y [ i 2 ] ; \r
0040160 d : W O R D ; \r
0040200 r e s u l t : R a d i x I n d
0040220 e x ; \r I F ( d _
0040240 B I T 376 001 \0 315 352 X O R [ H i g h
0040260 H a l f [ k 1 ] , H i g h H a
0040300 l f [ k 2 ] ] ) = 0 T H E N \r
0040320 B E G I N \r
0040340 I F ( d _ B I T X O R
0040360 [ L o w H a l f [ k 1 ] , L o
0040400 w H a l f [ k 2 ] ] ) = 0 T H
0040420 E N \r R E T U R
0040440 N [ L A S T [ R a d i x I n d e
0040460 x ] ] \r E L S E r
0040500 e s u l t _ 1 6 ; \r
0040520 E N D \r E L S E r
0040540 e s u l t _ 0 ; \r I
0040560 F B I T A N D [ d , 1 7 7 4
0040600 0 0 B ] = 0 T H E N r e s u
0040620 l t _ r e s u l t + 8 \r
0040640 E L S E 376 001 \0 R 211 d
0040660 _ B I T S H I F T [ d , - 8
0040700 ] ; \r R E T U R N [ r e
0040720 s u l t + p t [ d ] ] ; \r
0040740 E N D ; - - o f C o m m
0040760 o n L e n \r \r S h a l l o w
0041000 e r : P R I V A T E P R O C
0041020 E D U R E [ i 1 , i 2 : I t
0041040 e m ] R E T U R N S \r
0041060 [ B O O L E A N ] = I N L I
0041100 N E \r { R E T U R N [ S
0041120 E L E C T M i n [ i 1 ] - M i
0041140 n [ i 2 ] F R O M \r
0041160 < 0 = > T R U E , \r
0041200 > 0 = > F A L S E , \r
0041220 E N D C A S E = >
0041240 M a x [ i 2 ] < = M a x 376 001 \0
0041260 200 363 [ i 1 ] \r ] } ; \r \r
0041300 R a d i x M a x K e y : P
0041320 R I V A T E P R O C E D U R E
0041340 [ i t e m : I t e m ] \r
0041360 R E T U R N S [ R a d i x K e
0041400 y ] = I N L I N E \r
0041420 { R E T U R N [ T o R a d i x K
0041440 e y [ M a x [ i t e m ] ] ] } ;
0041460 \r \r T o R a d i x K e y :
0041500 P R I V A T E P R O C E D U R
0041520 E [ d : D o m a i n ] \r
0041540 R E T U R N S [ R a d i x K e
0041560 y ] = I N L I N E \r
0041600 { R E T U R N [ L O O P H O L E
0041620 [ d , R a d i x K e y ] + d o
0041640 m a i n O f f s e t ] } ; \r \r \r
0041660 376 001 \0 231 343 M i n : P R I V
0041700 A T E P R O C E D U R E [ i t
0041720 e m : I t e m ] - - c l o
0041740 s e d l o w e r b o u n d \r
0041760 R E T U R N S [ D o m a
0042000 i n ] = I N L I N E \r
0042020 { R E T U R N [ i t e m . c o
0042040 v e r . y 1 ] } ; \r \r M a x
0042060 : P R I V A T E P R O C E D
0042100 U R E [ i t e m : I t e m ]
0042120 - - o p e n u p p e r b o
0042140 u n d \r R E T U R N S [
0042160 D o m a i n ] = I N L I N E
0042200 \r { R E T U R N [ i t e
0042220 m . c o v e r . y 2 ] } ; \r \r
0042240 E N D . - - o f F e a t
0042260 u r e P S T \r 377 \0 \0 l e f t f e
0042300 a t u r e p q . m e s a \0 373 235 203
0042320 036 372 \0 \0 376 001 \0 ` 026 - - L e f t
0042340 F e a t u r e P Q . m e s a \r \r
0042360 - - A g e n e r i c p a c
0042400 k a g e t o o r g a n i z e
0042420 i t e m s \r - - i n a p
0042440 r i o r i t y q u e u e , s
0042460 o r t e d b y i n c r e a s
0042500 i n g o r d e r o f \r - -
0042520 V a l . \r \r - - l a s t m o
0042540 d i f i e d b y E . M c C
0042560 r e i g h t , S e p t e m b e
0042600 r 2 7 , 1 9 8 4 1 2 : 5
0042620 5 P M \r - - c u s t o m i z
0042640 e d f o r L e f t F e a t u
0042660 r e b y E . M c C r e i g
0042700 h t , \r - - M a y 6 ,
0042720 1 9 8 2 2 : 376 001 \0 x 277 3 4
0042740 P M \r - - w r i t t e n b
0042760 y E . M c C r e i g h t ,
0043000 F e b r u a r y 8 , 1 9 8 2
0043020 2 : 0 4 P M \r \r D I R E C
0043040 T O R Y \r p p d e f s , \r
0043060 C h i p N e t D e f s ; \r \r L
0043100 e f t F e a t u r e P Q : D E
0043120 F I N I T I O N S I M P O R T
0043140 S C h i p N e t D e f s = \r
0043160 B E G I N \r c h e c k T
0043200 r e e : P R I V A T E B O O
0043220 L E A N = F A L S E ; \r \r
0043240 D o m a i n : P R I V A T E
0043260 T Y P E = C h i p N e t D
0043300 e f s . C o o r d ; \r I t e
0043320 m : P R I V A T E T Y P 376 001
0043340 \0 361 J E = C h i p N e t D e
0043360 f s . F e a t u r e P t r ; \r \r
0043400 L e f t F e a t u r e P Q H
0043420 a n d l e : T Y P E = L O
0043440 N G P O I N T E R T O P Q
0043460 O b j e c t _ N I L ; \r
0043500 P Q H a n d l e : P R I V A T
0043520 E T Y P E = L e f t F e a
0043540 t u r e P Q H a n d l e ; \r
0043560 m a x N S e q s : C A R D I N
0043600 A L = 1 6 ; \r P Q O b j
0043620 e c t : P R I V A T E T Y P
0043640 E = R E C O R D [ \r
0043660 z o n e : U N C O U N T E D
0043700 Z O N E , \r s i z e :
0043720 L O N G I N T E G E R _
0043740 0 , \r 376 001 \0 312 033 t o p S
0043760 e q : [ 0 . . m a x N S e q s
0044000 ) _ 0 , \r s : A R
0044020 R A Y [ 0 . . m a x N S e q s
0044040 ) O F P Q S e q P t r _
0044060 A L L [ N I L ] \r ] ; \r
0044100 \r P Q S e q P t r : P R I
0044120 V A T E T Y P E = L O N G
0044140 P O I N T E R T O P Q S e
0044160 q _ N I L ; \r m a x I t
0044200 e m s P e r S e q : C A R D I
0044220 N A L = 1 6 0 0 0 ; \r
0044240 - - W A R N I N G : T h i
0044260 s m a n y I t e m s m u s
0044300 t f i t i n n o m o r e
0044320 t h a n 3 2 7 0 0 w o r d
0044340 s , \r - 376 001 \0 374 216 -
0044360 b e c a u s e o f f r e
0044400 e s t o r a g e p a c k a g
0044420 e l i m i t a t i o n s ! ! \r
0044440 P Q S e q : P R I V A T E
0044460 T Y P E = R E C O R D [ \r
0044500 h e a p : S E Q U E N
0044520 C E m a x : [ 0 . . m a x I
0044540 t e m s P e r S e q ] O F I
0044560 t e m \r ] ; \r \f \r L
0044600 e f t F e a t u r e P Q U n d e
0044620 r f l o w : S I G N A L ; \r \r
0044640 N e w L e f t F e a t u r e
0044660 P Q : P R O C E D U R E [ z o
0044700 n e : U N C O U N T E D Z O
0044720 N E , \r m a x : C A R
0044740 D I N A L _ 5 0 ] \r 376 001 \0
0044760 342 004 R E T U R N S [ P Q H
0045000 a n d l e ] ; \r \r D e s t r
0045020 o y L e f t F e a t u r e P Q :
0045040 P R O C E D U R E [ p : P Q
0045060 H a n d l e ] \r R E T U
0045100 R N S [ P Q H a n d l e ] ; \r \r
0045120 I n s e r t L e f t F e a t
0045140 u r e P Q : P R O C E D U R E
0045160 [ p : P Q H a n d l e , i t
0045200 e m : I t e m ] ; \r \r E x
0045220 t r a c t L e f t F e a t u r e
0045240 P Q : P R O C E D U R E [ p :
0045260 P Q H a n d l e ] R E T U R
0045300 N S [ i t e m : I t e m ] ; \r
0045320 \r M a p E q u a l L e f t F
0045340 e a t u r e P Q : P R O C E D
0045360 U R 376 001 \0 005 323 E [ p : P Q H a
0045400 n d l e , \r p r o c :
0045420 P R O C E D U R E [ I t e m ] ]
0045440 ; \r \r D e l e t e E q u a l
0045460 L e f t F e a t u r e P Q : P
0045500 R O C E D U R E [ p : P Q H a
0045520 n d l e ] ; \r \r L e f t F e
0045540 a t u r e P Q S i z e : P R O
0045560 C E D U R E [ p : P Q H a n d
0045600 l e ] R E T U R N S [ L O N G
0045620 I N T E G E R ] = \r
0045640 I N L I N E \r { R E T U
0045660 R N [ p . s i z e ] } ; \r \r
0045700 L e f t F e a t u r e P Q M i n
0045720 : P R O C E D U R E [ p : P
0045740 Q H a n d l e ] R E T U R N S
0045760 [ i t e m : 376 \0 271 020 " I t e m
0046000 ] = \r I N L I N E \r
0046020 { R E T U R N [ p . s [ 0
0046040 ] [ 0 ] ] } ; \r \r V a l L e
0046060 s s : P R O C E D U R E [ i t
0046100 e m 1 , i t e m 2 : I t e m
0046120 ] R E T U R N S [ B O O L E A
0046140 N ] = I N L I N E \r
0046160 { R E T U R N [ i t e m 1 . c o
0046200 v e r . x 1 < i t e m 2 . c o v
0046220 e r . x 1 ] } ; \r \r E N D .
0046240 - - o f L e f t F e a t u
0046260 r e P Q \r 377 \0 \0 r i g h t f e a
0046300 t u r e p q . m e s a \0 373 235 204 H
0046320 261 \0 \0 376 001 \0 253 - - - R i g h t
0046340 F e a t u r e P Q . m e s a \r \r
0046360 - - A g e n e r i c p a c
0046400 k a g e t o o r g a n i z e
0046420 i t e m s \r - - i n a p
0046440 r i o r i t y q u e u e , s
0046460 o r t e d b y i n c r e a s
0046500 i n g o r d e r o f \r - -
0046520 V a l . \r \r - - l a s t m o
0046540 d i f i e d b y E . M c C
0046560 r e i g h t , S e p t e m b e
0046600 r 2 8 , 1 9 8 4 1 0 : 1
0046620 0 A M \r - - c u s t o m i z
0046640 e d f o r R i g h t F e a t
0046660 u r e b y E . M c C r e i
0046700 g h t , \r - - M a y 6
0046720 , 1 9 8 2 376 001 \0 347 4 2 : 3
0046740 4 P M \r - - w r i t t e n
0046760 b y E . M c C r e i g h t ,
0047000 F e b r u a r y 8 , 1 9 8
0047020 2 2 : 0 4 P M \r \r D I R E
0047040 C T O R Y \r p p d e f s , \r
0047060 C h i p N e t D e f s ; \r \r
0047100 R i g h t F e a t u r e P Q :
0047120 D E F I N I T I O N S I M P O
0047140 R T S C h i p N e t D e f s
0047160 = \r B E G I N \r c h e c
0047200 k T r e e : P R I V A T E B
0047220 O O L E A N = F A L S E ; \r
0047240 \r D o m a i n : P R I V A
0047260 T E T Y P E = C h i p N e
0047300 t D e f s . C o o r d ; \r I
0047320 t e m : P R I V A T E 376 001 \0
0047340 256 211 T Y P E = C h i p N e t
0047360 D e f s . F e a t u r e P t r ;
0047400 \r \r R i g h t F e a t u r e
0047420 P Q H a n d l e : T Y P E =
0047440 L O N G P O I N T E R T O
0047460 P Q O b j e c t _ N I L ;
0047500 \r P Q H a n d l e : P R I
0047520 V A T E T Y P E = R i g h
0047540 t F e a t u r e P Q H a n d l e
0047560 ; \r m a x N S e q s : C A
0047600 R D I N A L = 1 6 ; \r P
0047620 Q O b j e c t : P R I V A T E
0047640 T Y P E = R E C O R D [
0047660 \r z o n e : U N C O U
0047700 N T E D Z O N E , \r s
0047720 i z e : L O N G I N T E G E
0047740 R 376 001 \0 o 262 _ 0 , \r
0047760 t o p S e q : [ 0 . . m a x N
0050000 S e q s ) _ 0 , \r s
0050020 : A R R A Y [ 0 . . m a x N
0050040 S e q s ) O F P Q S e q P t
0050060 r _ A L L [ N I L ] \r
0050100 ] ; \r \r P Q S e q P t r :
0050120 P R I V A T E T Y P E =
0050140 L O N G P O I N T E R T O
0050160 P Q S e q _ N I L ; \r m
0050200 a x I t e m s P e r S e q : C
0050220 A R D I N A L = 1 6 0 0 0 ;
0050240 \r - - W A R N I N G :
0050260 T h i s m a n y I t e m s
0050300 m u s t f i t i n n o
0050320 m o r e t h a n 3 2 7 0 0
0050340 w o r d s , \r 376 001 \0 031 222
0050360 - - b e c a u s e o f
0050400 f r e e s t o r a g e p a
0050420 c k a g e l i m i t a t i o n
0050440 s ! ! \r P Q S e q : P R I
0050460 V A T E T Y P E = R E C O
0050500 R D [ \r h e a p : S E
0050520 Q U E N C E m a x : [ 0 . .
0050540 m a x I t e m s P e r S e q ]
0050560 O F I t e m \r ] ; \r \f
0050600 \r R i g h t F e a t u r e P
0050620 Q U n d e r f l o w : S I G N
0050640 A L ; \r \r N e w R i g h t F
0050660 e a t u r e P Q : P R O C E D
0050700 U R E [ z o n e : U N C O U N
0050720 T E D Z O N E , \r m a
0050740 x : C A R D I N A L 376 001 \0 235
0050760 s _ 5 0 ] \r R E T U R
0051000 N S [ P Q H a n d l e ] ; \r \r
0051020 D e s t r o y R i g h t F e a
0051040 t u r e P Q : P R O C E D U R
0051060 E [ p : P Q H a n d l e ] \r
0051100 R E T U R N S [ P Q H a n
0051120 d l e ] ; \r \r I n s e r t R
0051140 i g h t F e a t u r e P Q : P
0051160 R O C E D U R E [ p : P Q H a
0051200 n d l e , i t e m : I t e m
0051220 ] ; \r \r E x t r a c t R i g
0051240 h t F e a t u r e P Q : P R O
0051260 C E D U R E [ p : P Q H a n d
0051300 l e ] R E T U R N S [ i t e m
0051320 : I t e m ] ; \r \r M a p E
0051340 q u a l R i g h t F e a t u r e
0051360 P 376 001 \0 g C Q : P R O C E D U
0051400 R E [ p : P Q H a n d l e , \r
0051420 p r o c : P R O C E D
0051440 U R E [ I t e m ] ] ; \r \r D
0051460 e l e t e E q u a l R i g h t F
0051500 e a t u r e P Q : P R O C E D
0051520 U R E [ p : P Q H a n d l e ]
0051540 ; \r \r R i g h t F e a t u r
0051560 e P Q S i z e : P R O C E D U
0051600 R E [ p : P Q H a n d l e ]
0051620 R E T U R N S [ L O N G I N T
0051640 E G E R ] = \r I N L I
0051660 N E \r { R E T U R N [ p
0051700 . s i z e ] } ; \r \r R i g h
0051720 t F e a t u r e P Q M i n : P
0051740 R O C E D U R E [ p : P Q H a
0051760 n d l e ] 376 \0 311 221 314 R E T U R
0052000 N S [ i t e m : I t e m ] =
0052020 \r I N L I N E \r
0052040 { R E T U R N [ p . s [ 0 ] [ 0
0052060 ] ] } ; \r \r V a l L e s s :
0052100 P R O C E D U R E [ i t e m 1
0052120 , i t e m 2 : I t e m ] R
0052140 E T U R N S [ B O O L E A N ]
0052160 = I N L I N E \r { R E
0052200 T U R N [ i t e m 1 . c o v e r
0052220 . x 2 < i t e m 2 . c o v e r .
0052240 x 2 ] } ; \r \r \r E N D . -
0052260 - o f R i g h t F e a t u r
0052300 e P Q \r 377 \0 \0 c e l l i n s t p
0052320 q . m e s a \0 373 231 001 244 346 \0 \0 376 001
0052340 \0 B 266 - - C e l l I n s t P Q
0052360 . m e s a \r \r - - A g e n e
0052400 r i c p a c k a g e t o o
0052420 r g a n i z e i t e m s \r - -
0052440 i n a p r i o r i t y q
0052460 u e u e , s o r t e d b y
0052500 i n c r e a s i n g o r d e r
0052520 o f \r - - V a l . \r \r - -
0052540 l a s t m o d i f i e d b y
0052560 E . M c C r e i g h t , M
0052600 a y 6 , 1 9 8 2 2 : 3 6
0052620 P M \r - - w r i t t e n b
0052640 y E . M c C r e i g h t ,
0052660 F e b r u a r y 8 , 1 9 8 2
0052700 2 : 0 4 P M \r - - c u s
0052720 t o m i z e d b y E . M c
0052740 C r e 376 001 \0 260 1 i g h t , F e
0052760 b r u a r y 8 , 1 9 8 2
0053000 3 : 3 6 P M \r \r D I R E C T O
0053020 R Y \r p p d e f s , \r C
0053040 h i p N e t D e f s ; \r \r C e l
0053060 l I n s t P Q : D E F I N I T
0053100 I O N S = \r B E G I N \r
0053120 c h e c k T r e e : P R I V
0053140 A T E B O O L E A N = F A
0053160 L S E ; \r \r D o m a i n :
0053200 P R I V A T E T Y P E = C
0053220 h i p N e t D e f s . C o o r d
0053240 ; \r I t e m : P R I V A T
0053260 E T Y P E = C h i p N e t
0053300 D e f s . C e l l I n s t P t ;
0053320 \r \r C e l l I n s t P Q H a
0053340 n d l e : T Y 376 001 \0 322 ' P E
0053360 = L O N G P O I N T E R T
0053400 O P Q O b j e c t _ N I L
0053420 ; \r P Q H a n d l e : P R
0053440 I V A T E T Y P E = C e l
0053460 l I n s t P Q H a n d l e ; \r
0053500 P Q O b j e c t : P R I V A
0053520 T E T Y P E = R E C O R D
0053540 [ \r z o n e : U N C
0053560 O U N T E D Z O N E , \r
0053600 s i z e : C A R D I N A L
0053620 _ 0 , \r s : P Q S e
0053640 q P t r \r ] ; \r \r P
0053660 Q S e q P t r : P R I V A T E
0053700 T Y P E = L O N G P O I
0053720 N T E R T O P Q S e q _
0053740 N I L ; \r P Q S e q : 376 001 \0
0053760 g z P R I V A T E T Y P E
0054000 = R E C O R D [ \r h e
0054020 a p : S E Q U E N C E m a x
0054040 : C A R D I N A L O F I t
0054060 e m \r ] ; \r \f \r C e
0054100 l l I n s t P Q U n d e r f l o
0054120 w : S I G N A L ; \r \r N e
0054140 w C e l l I n s t P Q : P R O
0054160 C E D U R E [ z o n e : U N C
0054200 O U N T E D Z O N E , \r
0054220 m a x : C A R D I N A L _
0054240 5 0 ] \r R E T U R N S
0054260 [ P Q H a n d l e ] ; \r \r D
0054300 e s t r o y C e l l I n s t P Q
0054320 : P R O C E D U R E [ p : P
0054340 Q H a n d l e ] \r R E T
0054360 U R 376 001 \0 357 : N S [ P Q H a n d
0054400 l e ] ; \r \r I n s e r t C e
0054420 l l I n s t P Q : P R O C E D
0054440 U R E [ p : P Q H a n d l e ,
0054460 i t e m : I t e m ] ; \r \r
0054500 E x t r a c t C e l l I n s t
0054520 P Q : P R O C E D U R E [ p :
0054540 P Q H a n d l e ] R E T U R
0054560 N S [ i t e m : I t e m ] ; \r
0054600 \r C e l l I n s t P Q S i z
0054620 e : P R O C E D U R E [ p :
0054640 P Q H a n d l e ] R E T U R N
0054660 S [ C A R D I N A L ] = \r
0054700 I N L I N E \r { R E
0054720 T U R N [ p . s i z e ] } ; \r \r
0054740 C e l l I n s t P Q M i n :
0054760 P R O C E D 376 \0 263 T \a U R E [
0055000 p : P Q H a n d l e ] R E T
0055020 U R N S [ i t e m : I t e m ]
0055040 = \r I N L I N E \r
0055060 { R E T U R N [ p . s . h e
0055100 a p [ 0 ] ] } ; \r \r V a l :
0055120 P R O C E D U R E [ i t e m :
0055140 I t e m ] R E T U R N S [ D
0055160 o m a i n ] = I N L I N E \r
0055200 { R E T U R N [ i t e m
0055220 . x ] } ; \r \r E N D . - -
0055240 o f C e l l I n s t P Q \r 377
0055260 \0 \0 c h i p w i r e . m e s a \0
0055300 373 231 w 024 A \0 \0 376 001 \0 331 036 - - C
0055320 h i p W i r e . m e s a \r \r - -
0055340 l a s t m o d i f i e d b
0055360 y E . M c C r e i g h t ,
0055400 A u g u s t 3 , 1 9 8 2
0055420 4 : 1 5 P M \r - - w r i t t
0055440 e n b y E . M c C r e i g
0055460 h t , M a r c h 5 , 1 9 8
0055500 2 1 0 : 0 5 A M \r \r D I R
0055520 E C T O R Y \r C h i p N e t
0055540 D e f s , \r F e a t u r e P
0055560 S T , \r p p d e f s ; \r \r C
0055600 h i p W i r e : D E F I N I T
0055620 I O N S = \r B E G I N O
0055640 P E N C h i p N e t D e f s ,
0055660 F e a t u r e P S T , p p d
0055700 e f s ; \r \r - - 376 001 \0 276
0055720 334 T y p e s \r \r S l
0055740 i c e P t r : T Y P E = L
0055760 O N G P O I N T E R T O S
0056000 l i c e _ N I L ; \r S l
0056020 i c e : T Y P E = A R R A
0056040 Y E x t r a c t L e v e l O
0056060 F F e a t u r e P S T H a n d
0056100 l e ; \r \r \r - - P r
0056120 o c e d u r e s \r
0056140 \r N e w S l i c e : P R O
0056160 C E D U R E R E T U R N S [ S
0056200 l i c e P t r ] ; \r \r D e s
0056220 t r o y S l i c e : P R O C E
0056240 D U R E [ s : S l i c e P t r
0056260 ] R E T U R N S [ S l i c e P
0056300 t r ] ; \r \r W i r e E n t e
0056320 r 376 001 \0 303 312 e d , W i r e L e
0056340 f t : P R O C E D U R E [ f :
0056360 F e a t u r e P t r , s l i
0056400 c e : S l i c e P t r ] ; \r \r
0056420 O v e r l a p I s V i o l a
0056440 t i o n : P R O C E D U R E [
0056460 p : F e a t u r e P S T H a n
0056500 d l e , \r f : F e a t
0056520 u r e P t r , \r p r o b
0056540 l e m : P R O C E D U R E [ r
0056560 : C o o r d R e c t ] ] ; \r \r
0056600 H a v e S h a r e d A r e a
0056620 : P R O C E D U R E [ r 1 ,
0056640 r 2 : C o o r d R e c t ] \r
0056660 R E T U R N S [ B O O L E
0056700 A N ] ; \r S h a r e d A r e
0056720 a : P R O 376 \0 J 375 024 C E D U R
0056740 E [ r 1 , r 2 : C o o r d R
0056760 e c t ] \r R E T U R N S
0057000 [ r : C o o r d R e c t ] ; \r
0057020 \r E N D . - - o f C h i p
0057040 W i r e \r 377 \0 \0 c h i p f e a t
0057060 u r e . m e s a \0 373 231 L 365 230 \0 \0
0057100 376 001 \0 } 365 - - C h i p F e a t
0057120 u r e . m e s a \r \r - - l a s
0057140 t m o d i f i e d b y E .
0057160 M c C r e i g h t , J u l y
0057200 2 , 1 9 8 2 5 : 4 0 P
0057220 M \r - - w r i t t e n b y
0057240 E . M c C r e i g h t , M a
0057260 r c h 1 1 , 1 9 8 2 4 :
0057300 4 8 P M \r \r D I R E C T O R Y
0057320 \r C h i p N e t D e f s , \r
0057340 C h i p W i r e , \r L e
0057360 f t F e a t u r e P Q , \r p
0057400 p d e f s ; \r \r C h i p F e a t
0057420 u r e : D E F I N I T I O N S
0057440 = \r B E G I N O P E N
0057460 p p d e f s , C h i p N e t D
0057500 e f s ; \r 376 001 \0 m 345 \r N e w
0057520 F e a t u r e : P R O C E D U
0057540 R E [ c o v e r : C o o r d R
0057560 e c t _ [ 0 , 0 , 0 , 0 ] ,
0057600 \r l e v : E x t r a c
0057620 t L e v e l _ u n k n o w n
0057640 , \r c a l l e r : I t
0057660 e m R e f _ [ N I L , 0 ]
0057700 , \r l q : L e f t F e
0057720 a t u r e P Q . L e f t F e a t
0057740 u r e P Q H a n d l e _ N I
0057760 L ] \r R E T U R N S [ F
0060000 e a t u r e P t r ] ; \r \r D
0060020 e s t r o y F e a t u r e : P
0060040 R O C E D U R E [ f : F e a t
0060060 u r e P t r ] R E T U R N S [
0060100 F e a t u r e P t r 376 \0 236 260 026 ]
0060120 ; \r \r B W C u r s o r : P
0060140 R O C E D U R E [ w o r l d :
0060160 C o o r d P o i n t ] ; \r \r
0060200 N o t e M a r k : P R O C E D
0060220 U R E [ r : C o o r d R e c t
0060240 , s : S T R I N G , \r
0060260 a r g 1 , a r g 2 , a r g
0060300 3 : P O I N T E R _ N I L
0060320 ] ; \r \r E N D . - - o f
0060340 C h i p F e a t u r e \r 377 \0 \0
0060360 c h i p e x p a n d . m e s a \0
0060400 373 231 ] 005 \n \0 \0 376 001 \0 326 D - - C
0060420 h i p E x p a n d . m e s a \r \r
0060440 - - l a s t m o d i f i e d
0060460 b y E . M c C r e i g h t
0060500 , J u l y 1 4 , 1 9 8 2
0060520 9 : 3 5 P M \r - - w r i t
0060540 t e n b y E . M c C r e i
0060560 g h t , M a r c h 1 1 , 1
0060600 9 8 2 4 : 4 8 P M \r \r D I
0060620 R E C T O R Y \r C e l l I n
0060640 s t P Q , \r C h i p N e t D
0060660 e f s , \r C h i p W i r e ,
0060700 \r L e f t F e a t u r e P Q
0060720 , \r p p d e f s , \r R i
0060740 g h t F e a t u r e P Q ; \r \r C
0060760 h i p E x p a n d : D E F I N
0061000 I T I O N S = \r B 376 001 \0 027
0061020 321 E G I N O P E N p p d e f
0061040 s , C h i p N e t D e f s ; \r
0061060 \r M a k e I n s t a n c e :
0061100 P R O C E D U R E [ i t e m :
0061120 I t e m R e f , \r s l
0061140 i c e : C h i p W i r e . S l
0061160 i c e P t r , \r f u t u
0061200 r e F e a t u r e s : L e f t
0061220 F e a t u r e P Q . L e f t F e
0061240 a t u r e P Q H a n d l e , \r
0061260 p r e s e n t F e a t u r
0061300 e s : R i g h t F e a t u r e
0061320 P Q . R i g h t F e a t u r e P
0061340 Q H a n d l e , \r c e l
0061360 l Q , d e a d C e l l Q : C
0061400 e l l I n s t P Q . C e l l I n
0061420 s 376 001 \0 331 307 t P Q H a n d l e ]
0061440 ; \r \r E x i t I n s t a n c
0061460 e : P R O C E D U R E [ i n s
0061500 t : I n s t a n c e P t r ] ;
0061520 \r \r C h e c k C l u s t e r
0061540 s : P R O C E D U R E [ c a l
0061560 l : C e l l C a l l P t r ] ;
0061600 \r - - r e m o v e s
0061620 s a t i s f i e d M u s t C o
0061640 n n e c t ' s \r \r M a k e P
0061660 r o t o : P R O C E D U R E [
0061700 o b : o b P t r , \r l
0061720 o c N u m S c a l e : L o c N
0061740 u m S c a l e _ l a m b d a
0061760 R e l a t i v e , \r n a
0062000 m e : S T R I N G _ N I L
0062020 ] R E T U 376 001 \0 ' 350 R N S [ c
0062040 : P r o t o P t r ] ; \r \r
0062060 P r o t o S e q : P R O C E D
0062100 U R E [ i n s t : I n s t a n
0062120 c e P t r ] \r R E T U R
0062140 N S [ L i s t P t r S e q P t r
0062160 ] ; \r \r N e a r e s t C e l
0062200 l I n s t a n c e : P R O C E
0062220 D U R E [ p : I n s t a n c e
0062240 P t r ] \r R E T U R N S
0062260 [ c : C e l l C a l l P t r ]
0062300 ; \r \r j o i n T o : P R I
0062320 V A T E L O N G P O I N T E
0062340 R T O n e t P t r ; \r \r
0062360 x s t r I n s t : P R I V A T
0062400 E X s t r C a l l P t r ; \r \r
0062420 e x X s t r 0 , 376 001 \0 % P
0062440 e x P X s t r 0 , e x A X s t
0062460 r 0 , e x P u 0 , e x B C 0
0062500 , \r e x B u C 0 : \r
0062520 P R I V A T E d r P r o c
0062540 ; \r \r E x t r a c t o r F e
0062560 a t u r e P r o c : P R I V A
0062600 T E T Y P E = R E C O R D
0062620 [ \r p : P R O C E D U
0062640 R E [ x 1 , y 1 , x 2 , y
0062660 2 : l o c N u m , l e v :
0062700 E x t r a c t L e v e l ] ] ; \r
0062720 \r E x t r a c t o r F e a t
0062740 u r e : P R I V A T E E x t
0062760 r a c t o r F e a t u r e P r o
0063000 c ; \r - - M e s a c
0063020 a n ' t h a n d l e a n e
0063040 376 \0 4 A / x p o r t e d p r o
0063060 c e d u r e v a r i a b l e \r
0063100 \r E N D . - - o f C h
0063120 i p E x p a n d \r 377 \0 \0 c h i p
0063140 d r c . m e s a \0 373 233 i R 306 \0 \0
0063160 376 001 \0 036 357 - - C h i p D R C .
0063200 m e s a \r \r - - l a s t m o
0063220 d i f i e d b y E . M c C
0063240 r e i g h t , A u g u s t 1
0063260 6 , 1 9 8 3 2 : 4 2 P M
0063300 \r - - w r i t t e n b y E
0063320 . M c C r e i g h t , A p r
0063340 i l 1 4 , 1 9 8 2 1 0 :
0063360 2 5 A M \r \r D I R E C T O R Y
0063400 \r C h i p N e t D e f s , \r
0063420 C h i p W i r e , \r L e
0063440 f t F e a t u r e P Q , \r R
0063460 i g h t F e a t u r e P Q , \r
0063500 p p d e f s ; \r \r C h i p D R
0063520 C : D E F I N I T I O N S =
0063540 \r B E G I N O P E N p p
0063560 d e f s , 376 001 \0 373 276 C h i p N
0063600 e t D e f s ; \r \r d o i n g
0063620 D R C : B O O L E A N ; \r \r
0063640 S e t u p D R C : P R O C E
0063660 D U R E [ c h e c k : B O O L
0063700 E A N ] ; \r \r F i n i s h D
0063720 R C : P R O C E D U R E [ r o
0063740 o t : C e l l C a l l P t r ]
0063760 ; \r \r L e f t E d g e s :
0064000 P R O C E D U R E [ p q : L e
0064020 f t F e a t u r e P Q . L e f t
0064040 F e a t u r e P Q H a n d l e ]
0064060 ; \r \r R i g h t E d g e s :
0064100 P R O C E D U R E [ \r
0064120 p q : R i g h t F e a t u r e
0064140 P Q . R i g h t F e a t u r e P
0064160 Q H a n d l e ] ; \r 376 001 \0 p S \r
0064200 P u r g e D R C V i o l a t
0064220 i o n s : P R O C E D U R E [
0064240 n : n e t P t r ] ; \r \r
0064260 N o t e V i o l a t i o n : P
0064300 R O C E D U R E [ v : V i o l
0064320 a t i o n ] ; \r \r E n u m e
0064340 r a t e V i o l a t i o n s :
0064360 P R O C E D U R E [ ] ; \r \r
0064400 C h e c k T e r m i n a l C o n
0064420 n e c t i o n s : P R O C E D
0064440 U R E [ c a l l : C e l l C a
0064460 l l P t r ] ; \r \r p o l y G
0064500 a t e O v e r l a p , m i n T
0064520 r a n s i s t o r D i f f u s i
0064540 o n W i d t h , \r d e p
0064560 l e t i o n O v e r l a p : 376
0064600 001 \0 > l o c N u m ; \r \r h
0064620 o l d V i o l a t i o n s : P
0064640 R I V A T E B O O L E A N ; \r
0064660 d r c S w a t h : P R I V
0064700 A T E C h i p W i r e . S l i
0064720 c e P t r ; - - f e a t u r
0064740 e D e l a y w i d e \r d r
0064760 c S w a t h F e a t u r e s :
0065000 P R I V A T E \r R i g h
0065020 t F e a t u r e P Q . R i g h t
0065040 F e a t u r e P Q H a n d l e ;
0065060 \r - - t h e f e a t
0065100 u r e s i n t h e s l i c
0065120 e b u t a b a n d o n e d
0065140 b y E x t r a c t N e t s \r
0065160 d r c S w a t h W i d t h :
0065200 P R I V 376 \0 220 Y 8 A T E C o o
0065220 r d ; \r \r m i n S i z e ,
0065240 c l o s e s t U n c o n n e c t
0065260 e d : \r P R I V A T E
0065300 A R R A Y E x t r a c t L e v
0065320 e l O F C o o r d ; \r \r
0065340 S e t D R C P a r a m s : P R
0065360 I V A T E P R O C E D U R E [
0065400 ] ; \r \r E N D . - - o f
0065420 C h i p D R C \r 377 \0 \0 c e l l
0065440 i n s t p q i m p l . m e s a \0
0065460 373 230 217 020 326 \0 \0 376 001 \0 Z 310 - - C
0065500 e l l I n s t P Q I m p l . m e
0065520 s a \r \r - - A g e n e r i c
0065540 p a c k a g e t o o r g a
0065560 n i z e i t e m s \r - - i n
0065600 a p r i o r i t y q u e u
0065620 e , s o r t e d b y i n c
0065640 r e a s i n g o r d e r o f
0065660 \r - - V a l . \r \r - - w r i
0065700 t t e n b y E . M c C r e
0065720 i g h t , F e b r u a r y 8
0065740 , 1 9 8 2 2 : 0 4 P M \r
0065760 - - l a s t m o d i f i e d
0066000 b y E . M c C r e i g h t
0066020 , F e b r u a r y 8 , 1 9
0066040 8 2 2 : 2 0 P M \r - - c
0066060 u s t o m i z e d b y 376 001 \0 273
0066100 9 E . M c C r e i g h t ,
0066120 F e b r u a r y 8 , 1 9 8 2
0066140 3 : 4 6 P M \r \r D I R E C
0066160 T O R Y \r C e l l I n s t P
0066200 Q ; \r \r C e l l I n s t P Q I m
0066220 p l : P R O G R A M \r I M
0066240 P O R T S C e l l I n s t P Q
0066260 \r E X P O R T S C e l l I
0066300 n s t P Q S H A R E S C e l
0066320 l I n s t P Q = \r B E G I
0066340 N O P E N C e l l I n s t P
0066360 Q ; \r \r C e l l I n s t P Q
0066400 U n d e r f l o w : P U B L I
0066420 C S I G N A L = C O D E ;
0066440 \r \r \r N e w C e l l I n s t
0066460 P Q : P U B L I C P R O C E
0066500 D 376 001 \0 313 274 U R E [ z o n e :
0066520 U N C O U N T E D Z O N E , \r
0066540 m a x : C A R D I N A
0066560 L _ 5 0 ] \r R E T U
0066600 R N S [ P Q H a n d l e ] = \r
0066620 { R E T U R N [ z o n e
0066640 . N E W [ P Q O b j e c t _
0066660 [ z o n e : z o n e , s i z
0066700 e : 0 , \r s : z
0066720 o n e . N E W [ P Q S e q [ m a
0066740 x ] ] ] ] ] } ; \r \r \r D e s
0066760 t r o y C e l l I n s t P Q :
0067000 P U B L I C P R O C E D U R E
0067020 [ p : P Q H a n d l e ] \r
0067040 R E T U R N S [ P Q H a n d
0067060 l e ] = \r B E G I N \r
0067100 z o 376 001 \0 i Y n e : U
0067120 N C O U N T E D Z O N E _
0067140 p . z o n e ; \r z o n e
0067160 . F R E E [ @ p . s ] ; \r
0067200 z o n e . F R E E [ @ p ] ; \r
0067220 R E T U R N [ N I L ] ;
0067240 \r E N D ; - - o f
0067260 D e s t r o y C e l l I n s t P
0067300 Q \r \r \r I n s e r t C e l l
0067320 I n s t P Q : P U B L I C P
0067340 R O C E D U R E [ p : P Q H a
0067360 n d l e , i t e m : I t e m
0067400 ] = \r B E G I N \r
0067420 i , j : C A R D I N A L
0067440 ; \r p q s : P Q S e q
0067460 P t r _ G r o w i n g P Q [
0067500 p ] ; \r p . s 376 001 \0 , 262
0067520 i z e _ p . s i z e + 1 ; \r
0067540 F O R j _ p . s i
0067560 z e - 1 , i W H I L E j >
0067600 0 D O \r i _ (
0067620 j - 1 ) / 2 ; \r I F
0067640 V a l [ i t e m ] > = V a l [
0067660 p q s . h e a p [ i ] ] T H E
0067700 N E X I T \r E L S
0067720 E p q s . h e a p [ j ] _
0067740 p q s . h e a p [ i ] ; \r
0067760 E N D L O O P ; \r
0070000 p q s . h e a p [ j ] _ i t
0070020 e m ; \r E N D ; \r \r
0070040 E x t r a c t C e l l I n s t P
0070060 Q : P U B L I C P R O C E D
0070100 U R E [ p : P Q H a n d l e ]
0070120 376 001 \0 214 300 \r R E T U R N
0070140 S [ i t e m : I t e m ] = \r
0070160 B E G I N \r p q
0070200 s : P Q S e q P t r _ S h
0070220 r i n k i n g P Q [ p ] ; \r
0070240 r e s u l t : I t e m _
0070260 p q s . h e a p [ 0 ] ; \r
0070300 I F ( p . s i z e _ p
0070320 . s i z e - 1 ) > 0 T H E N \r
0070340 B E G I N \r
0070360 i , j : C A R D I N A L
0070400 ; \r r : C A R D I
0070420 N A L _ p . s i z e - 1 ;
0070440 - - m a x i n d e x \r
0070460 i t e m : I t e m _
0070500 p q s . h e a p [ p . s i z e ]
0070520 ; \r 376 001 \0 026 \f F O R
0070540 i _ 0 , j D O \r
0070560 j _ i + i + 1 ;
0070600 \r I F j > r
0070620 T H E N E X I T ; \r
0070640 I F j < r A N D V a
0070660 l [ p q s . h e a p [ j + 1 ] ]
0070700 < V a l [ p q s . h e a p [ j ]
0070720 ] T H E N j _ j + 1 ; \r
0070740 I F V a l [ i
0070760 t e m ] < = V a l [ p q s . h e
0071000 a p [ j ] ] T H E N E X I T
0071020 \r E L S E p q
0071040 s . h e a p [ i ] _ p q s .
0071060 h e a p [ j ] ; \r
0071100 E N D L O O P ; \r
0071120 p q s . h e a p [ i 376 001 \0 336 \r ]
0071140 _ i t e m ; \r E
0071160 N D ; \r R E T U R N [ r
0071200 e s u l t ] ; \r E N D ;
0071220 \r \r \r G r o w i n g P Q :
0071240 P R O C E D U R E [ p : P Q H
0071260 a n d l e ] R E T U R N S [ P
0071300 Q S e q P t r ] = \r B
0071320 E G I N \r I F p . s i
0071340 z e > = p . s . m a x T H E N
0071360 \r B E G I N \r
0071400 o l d S e q : P Q S e q
0071420 P t r _ p . s ; \r
0071440 n e w S e q : P Q S e q P t
0071460 r _ \r p . z o
0071500 n e . N E W [ P Q S e q [ M A X
0071520 [ ( 1 5 * p . s i z e ) / 1 0 376
0071540 001 \0 332 252 , 5 0 ] ] ] ; \r
0071560 F O R i : C A R D I N
0071600 A L I N [ 0 . . p . s i z e
0071620 ) D O \r n e w
0071640 S e q [ i ] _ o l d S e q [
0071660 i ] ; \r E N D L
0071700 O O P ; \r p . s _
0071720 n e w S e q ; \r p
0071740 . z o n e . F R E E [ @ o l d S
0071760 e q ] ; \r E N D ; \r
0072000 R E T U R N [ p . s ] ;
0072020 \r E N D ; \r \r \r S h
0072040 r i n k i n g P Q : P R O C E
0072060 D U R E [ p : P Q H a n d l e
0072100 ] R E T U R N S [ P Q S e q P
0072120 t r ] = \r B E G I N \r
0072140 376 001 \0 220 ! W H I L E p
0072160 . s i z e < 1 D O S I G N A
0072200 L C e l l I n s t P Q U n d e
0072220 r f l o w E N D L O O P ; \r
0072240 I F M A X [ p . s i z e
0072260 , 5 0 ] < p . s . m a x / 2
0072300 T H E N \r B E G I N
0072320 \r o l d S e q : P
0072340 Q S e q P t r _ p . s ; \r
0072360 n e w S e q : P Q S
0072400 e q P t r _ \r
0072420 p . z o n e . N E W [ P Q S e q
0072440 [ M A X [ ( 1 5 * p . s i z e )
0072460 / 1 0 , 5 0 ] ] ] ; \r
0072500 F O R i : C A R D I N A
0072520 L I N [ 0 . . p . s i z e )
0072540 D O \r 376 \0 235 L 202
0072560 n e w S e q [ i ] _ o l d
0072600 S e q [ i ] ; \r
0072620 E N D L O O P ; \r p
0072640 . s _ n e w S e q ; \r
0072660 p . z o n e . F R E E [ @
0072700 o l d S e q ] ; \r E
0072720 N D ; \r R E T U R N [ p
0072740 . s ] ; \r E N D ; \r \r
0072760 E N D . - - o f C e l l
0073000 I n s t P Q I m p l \r 377 \0 \0 c h
0073020 i p a p p e n d n a m e s . m e
0073040 s a \0 373 233 214 275 S \0 \0 376 001 \0 262 241 -
0073060 - C h i p A p p e n d N a m e
0073100 s . m e s a \r \r - - S u b r o
0073120 u t i n e s t o a p p e n d
0073140 t h e n a m e s o f v a
0073160 r i o u s t h i n g s t o \r
0073200 - - s t r i n g s . \r \r - -
0073220 l a s t m o d i f i e d b y
0073240 E . M c C r e i g h t , S
0073260 e p t e m b e r 1 2 , 1 9 8
0073300 3 1 1 : 2 6 A M \r - - w
0073320 r i t t e n b y E . M c C
0073340 r e i g h t , N o v e m b e r
0073360 3 , 1 9 8 1 3 : 0 6 P
0073400 M \r \r D I R E C T O R Y \r C
0073420 h i p N e t D e f s , \r C h
0073440 i p U s e r I n t , \r I n 376
0073460 001 \0 G 362 l i n e D e f s , \r
0073500 p p d e f s , \r S t r i n g
0073520 D e f s ; \r \r C h i p A p p e n
0073540 d N a m e s : P R O G R A M \r
0073560 I M P O R T S C h i p N e
0073600 t D e f s , C h i p U s e r I
0073620 n t , I n l i n e D e f s , \r
0073640 p p d e f s , S t r i
0073660 n g D e f s \r E X P O R T S
0073700 C h i p N e t D e f s = \r
0073720 B E G I N O P E N p p d e
0073740 f s , C h i p N e t D e f s ;
0073760 \r \r \r A p p e n d N e t :
0074000 P U B L I C P R O C E D U R E
0074020 [ s : S T R I N G , n e t :
0074040 n e t P t r ] \r R E T
0074060 U R N S 376 001 \0 253 Y [ c n : C a
0074100 n o n N e t P t r ] = \r
0074120 B E G I N O P E N S t r i
0074140 n g D e f s ; \r c n _
0074160 C a n o n N e t [ n e t ] ; \r
0074200 W I T H d i d : ( c
0074220 n _ C a n o n N e t [ n e t
0074240 ] ) . i d S E L E C T F R O
0074260 M \r n o r m a l =
0074300 > A p p e n d N e t I d [ s ,
0074320 @ d i d ] ; \r E N
0074340 D C A S E = > C h i p U s e
0074360 r I n t . E x p l a i n [ " E x
0074400 t r a c t o r b u g - b o
0074420 g u s n e t " ] ; \r E
0074440 N D ; \r \r \r n e x t N u m e
0074460 r i c N e t : l 376 001 \0 003 035 o c
0074500 N u m _ 1 ; \r \r A p p e
0074520 n d N e t I d : P U B L I C
0074540 P R O C E D U R E [ s : S T R
0074560 I N G , \r n e t I d :
0074600 N o r m a l N e t I d P t r ]
0074620 = \r B E G I N O P E N
0074640 S t r i n g D e f s ; \r
0074660 I F n e t I d . n a m e C l
0074700 a s s = a n o n y m o u s T H
0074720 E N \r B E G I N \r
0074740 n e t I d . n a m e
0074760 _ n u m e r i c [ n : n e x
0075000 t N u m e r i c N e t ] ; \r
0075020 n e x t N u m e r i c N
0075040 e t _ n e x t N u m e r i c
0075060 N e t + 1 ; \r E 376 001
0075100 \0 303 N D ; \r \r W I T H
0075120 d n : n e t I d S E L E C
0075140 T F R O M \r n u m
0075160 e r i c = > { A p p e n d C
0075200 h a r [ s , ' N ] ; A p p e
0075220 n d C a r d [ s , d n . n ] }
0075240 ; \r q u a l i f i e
0075260 d = > A p p e n d T e r m i
0075300 n a l N a m e [ s , [ d n . s
0075320 o u r c e , d n . s e e ] ] ;
0075340 \r n a m e d = >
0075360 A p p e n d A t o m [ s , d n
0075400 . n a m e ] ; \r E N
0075420 D C A S E = > E R R O R ; \r
0075440 E N D ; - - o f A
0075460 p p e n d N e t I d \r \r \r A
0075500 p p e 376 001 \0 G 337 n d T e r m i n
0075520 a l N a m e : P U B L I C P
0075540 R O C E D U R E [ s : S T R I
0075560 N G , \r c : I t e m R
0075600 e f ] = \r B E G I N
0075620 O P E N S t r i n g D e f s ;
0075640 \r o l d L e n : C A R
0075660 D I N A L _ s . l e n g t h
0075700 ; \r A p p e n d C a l l
0075720 e r C h a i n [ s , c . h e a
0075740 d ] ; \r I F s . l e n
0075760 g t h > o l d L e n T H E N
0076000 A p p e n d C h a r [ s , ' .
0076020 ] ; \r A p p e n d L o n
0076040 g S t r i n g [ s , A t o m T
0076060 o S t r i n g [ F i n d P r o p
0076100 V a l u e [ I t 376 001 \0 001 ~ e m R
0076120 e f T o L p [ c ] , s i g n a
0076140 l N a m e ] ] ] ; \r E N
0076160 D ; - - o f A p p e n d T
0076200 e r m i n a l N a m e \r \r \r
0076220 A p p e n d C a l l e r C h a i
0076240 n : P U B L I C P R O C E D
0076260 U R E [ s : S T R I N G , \r
0076300 c : I n s t a n c e P t
0076320 r ] = \r B E G I N O
0076340 P E N S t r i n g D e f s ; \r
0076360 I F c . c a l l e r .
0076400 h e a d # N I L T H E N \r
0076420 B E G I N \r
0076440 o l d L e n : C A R D I N A L
0076460 _ s . l e n g t h ; \r
0076500 A p p e n d C a l l 376 001 \0
0076520 255 366 e r C h a i n [ s , c . c
0076540 a l l e r . h e a d ] ; \r
0076560 I F s . l e n g t h > o
0076600 l d L e n T H E N A p p e n
0076620 d C h a r [ s , ' . ] ; \r
0076640 A p p e n d C a l l e r
0076660 L i n k [ s , c ] ; \r
0076700 E N D ; \r E N D ;
0076720 - - o f A p p e n d C a l l
0076740 e r C h a i n \r \r \r A p p e
0076760 n d C a l l e r L i n k : P U
0077000 B L I C P R O C E D U R E [ s
0077020 : S T R I N G , \r c :
0077040 I n s t a n c e P t r ] = \r
0077060 B E G I N O P E N S
0077100 t r i n g D e f s ; \r v
0077120 : 376 001 \0 E 231 A t o m _ F i
0077140 n d P r o p V a l u e [ I t e m
0077160 R e f T o L p [ c . c a l l e r
0077200 ] , i n s t a n c e N a m e ]
0077220 ; \r l p : l i s t P t
0077240 r _ I t e m R e f T o L p [
0077260 c . c a l l e r ] ; \r i
0077300 : C A R D I N A L _ 1 ; \r
0077320 I F v # N I L T H E
0077340 N A p p e n d L o n g S t r i
0077360 n g [ s , A t o m T o S t r i
0077400 n g [ v ] ] \r -
0077420 - a s s u m e s i n s t a n
0077440 c e s a r e n a m e d u n
0077460 i q u e l y \r E L S E
0077500 - - a n o n y m o u s i n s
0077520 t a n c e \r 376 001 \0 3 362
0077540 B E G I N \r W I T
0077560 H d o b : l p . o b S E L
0077600 E C T F R O M \r
0077620 c e l l = > \r
0077640 B E G I N \r
0077660 s a m e C e l l C n t :
0077700 C A R D I N A L _ 0 ; \r
0077720 I F c . p r o
0077740 t o . n a m e # N I L T H E N
0077760 \r A p p
0100000 e n d S t r i n g [ s , c . p
0100020 r o t o . n a m e ] \r
0100040 E L S E \r
0100060 B E G I N \r
0100100 c e l l N o :
0100120 C A R D I N A L _ 1 376 001 \0 027
0100140 032 ; \r A
0100160 p p e n d S t r i n g [ s , "
0100200 A n o n C e l l " ] ; \r
0100220 F O R o b :
0100240 L O N G P O I N T E R T O
0100260 c e l l o b j e c t _ \r
0100300 G e t C
0100320 e l l S u p e r [ ] , o b . s
0100340 u p e r \r
0100360 W H I L E o b # l p . o
0100400 b A N D o b # N I L D O \r
0100420 c e
0100440 l l N o _ c e l l N o + 1 ;
0100460 \r E
0100500 N D L O O P ; \r
0100520 A p p e n d C a r d [ s
0100540 , 376 001 \0 265 032 c e l l N o ] ; \r
0100560 E N D ;
0100600 \r F O R l
0100620 p p : l i s t P t r _ c .
0100640 c a l l e r . h e a d . p r o t
0100660 o . l p , l p p . n x t \r
0100700 W H I L E
0100720 l p p # N I L D O \r
0100740 I F l p p . o b
0100760 = l p . o b T H E N \r
0101000 B E G I N \r
0101020 s a
0101040 m e C e l l C n t _ s a m e
0101060 C e l l C n t + 1 ; \r
0101100 I F ( l p p
0101120 . l x < l p . l x O R ( l p
0101140 p . l x = l 376 001 \0 205 211 p . l x
0101160 A N D l p p . l y < l p . l y
0101200 ) ) \r
0101220 T H E N i _ i + 1 ;
0101240 \r E
0101260 N D ; \r
0101300 E N D L O O P ; \r
0101320 I F s a m e C e l l C n
0101340 t > 1 T H E N \r
0101360 { A p p e n d C h a r
0101400 [ s , ' # ] ; A p p e n d C
0101420 a r d [ s , i ] } ; \r
0101440 E N D ; \r
0101460 x s t r = > \r
0101500 B E G I N \r
0101520 A p p e n d S t r i n
0101540 g [ s , " Q " ] ; \r 376 001 \0 x \t
0101560 F O R l p
0101600 p : l i s t P t r _ c . c
0101620 a l l e r . h e a d . p r o t o
0101640 . l p , l p p . n x t \r
0101660 W H I L E l
0101700 p p # N I L D O \r
0101720 I F l p p . o b .
0101740 o t y p = x s t r A N D \r
0101760 ( l p p
0102000 . l x < l p . l x O R ( l p
0102020 p . l x = l p . l x A N D l
0102040 p p . l y < l p . l y ) ) \r
0102060 T H E N
0102100 i _ i + 1 ; \r
0102120 E N D L O O P ; \r
0102140 A p p e n d C
0102160 376 001 \0 264 201 a r d [ s , i ] ; \r
0102200 E N D ; \r
0102220 c o n t = > \r
0102240 B E G I N \r
0102260 A p p e n d S
0102300 t r i n g [ s , " J " ] ; \r
0102320 F O R l p p
0102340 : l i s t P t r _ c . c a
0102360 l l e r . h e a d . p r o t o .
0102400 l p , l p p . n x t \r
0102420 W H I L E l p
0102440 p # N I L D O \r
0102460 I F l p p . o b . o
0102500 t y p = c o n t A N D \r
0102520 ( l p p .
0102540 l x < l p . l x O R ( l p p
0102560 . l x = l 376 001 \0 177 216 p . l x A
0102600 N D l p p . l y < l p . l y )
0102620 ) \r
0102640 T H E N i _ i + 1 ; \r
0102660 E N D L O O
0102700 P ; \r A p p
0102720 e n d C a r d [ s , i ] ; \r
0102740 E N D ; \r
0102760 b u s = > \r
0103000 B E G I N \r
0103020 A p p e n d S t r
0103040 i n g [ s , " B u s " ] ; \r
0103060 F O R l p p
0103100 : l i s t P t r _ c . c a
0103120 l l e r . h e a d . p r o t o .
0103140 l p , l p p . n x t \r
0103160 W H 376 001 \0 021 271 I
0103200 L E l p p # N I L D O \r
0103220 I F l p p
0103240 . o b . o t y p = b u s A N D
0103260 \r (
0103300 l p p . l x < l p . l x O R
0103320 ( l p p . l x = l p . l x A N
0103340 D l p p . l y < l p . l y ) )
0103360 \r T
0103400 H E N i _ i + 1 ; \r
0103420 E N D L O O P
0103440 ; \r A p p e
0103460 n d C a r d [ s , i ] ; \r
0103500 E N D ; \r
0103520 E N D C A S E = >
0103540 N U L L ; \r E N D ;
0103560 \r E N D ; - - o f 376
0103600 001 \0 220 u A p p e n d C a l l e
0103620 r L i n k \r \r \r A p p e n d
0103640 L o c N u m : P U B L I C P
0103660 R O C E D U R E [ s : S T R I
0103700 N G , n : l o c N u m ] =
0103720 \r B E G I N O P E N
0103740 S t r i n g D e f s ; \r
0103760 A p p e n d C h a r [ s , '
0104000 ] ; \r I F n < 0 T H
0104020 E N { A p p e n d C h a r [ s
0104040 , ' - ] ; n _ - n } ; \r
0104060 A p p e n d C a r d [ s
0104100 , n / L a m b d a ] ; \r
0104120 E N D ; \r \r A p p e n d C
0104140 o o r d : P U B L I C P R O
0104160 C E D U R E [ s : S T R I N G
0104200 , n : 376 001 \0 246 243 C o o r d ]
0104220 = \r B E G I N O P E
0104240 N S t r i n g D e f s ; \r
0104260 A p p e n d C h a r [ s ,
0104300 ' ] ; \r I F n < 0
0104320 T H E N { A p p e n d C h a r
0104340 [ s , ' - ] ; n _ - n }
0104360 ; \r A p p e n d C a r d
0104400 [ s , n ] ; \r E N D ;
0104420 \r \r A p p e n d C a r d :
0104440 P U B L I C P R O C E D U R E
0104460 [ s : S T R I N G , \r
0104500 n : L O N G C A R D I N A L
0104520 ] = \r B E G I N O P
0104540 E N S t r i n g D e f s ; \r
0104560 I F n > 9 T H E N {
0104600 A p p e n d C a r 376 001 \0 303 233 d [
0104620 s , n / 1 0 ] ; n _ n
0104640 M O D 1 0 } ; \r A p p
0104660 e n d C h a r [ s , ' 0 + I n
0104700 l i n e D e f s . L o w H a l f
0104720 [ n ] ] ; \r E N D ; \r \r
0104740 A p p e n d L o n g S t r i
0104760 n g : P U B L I C P R O C
0105000 [ t o , f r o m : L O N G
0105020 S T R I N G ] = \r B E
0105040 G I N \r F O R i : C
0105060 A R D I N A L I N [ 0 . . f
0105100 r o m . l e n g t h ) D O \r
0105120 t o [ t o . l e n g t
0105140 h + i ] _ f r o m [ i ] ; \r
0105160 E N D L O O P ; \r
0105200 t o . l e n g t h _ 376 001
0105220 \0 2 361 t o . l e n g t h + f r
0105240 o m . l e n g t h ; \r E
0105260 N D ; \r \r A p p e n d A t o
0105300 m : P U B L I C P R O C [
0105320 s : L O N G S T R I N G ,
0105340 a t o m : A t o m ] = \r
0105360 { A p p e n d L o n g S t r
0105400 i n g [ t o : s , f r o m :
0105420 L O O P H O L E [ a t o m ,
0105440 L O N G S T R I N G ] ] } ; \r
0105460 \r F i n d P r o p V a l u e
0105500 : P U B L I C P R O C [ l
0105520 p : l i s t P t r , a t t r
0105540 i b u t e : A t o m ] R E T
0105560 U R N S [ v a l u e : A t o
0105600 m ] = \r B E G I N \r
0105620 376 001 \0 337 210 I F l p # N I
0105640 L T H E N \r F O R
0105660 p : p r o p P t r _ l p
0105700 . p r o p s , p . n e x t W
0105720 H I L E p # N I L D O \r
0105740 I F p . a t t r i
0105760 b u t e = a t t r i b u t e T
0106000 H E N R E T U R N [ p . v a l
0106020 u e ] ; \r E N D
0106040 L O O P ; \r R E T U R N
0106060 [ N I L ] ; \r E N D ; \r
0106100 \r s i g n a l N a m e : P
0106120 U B L I C A t o m = M a k
0106140 e A t o m [ " S i g n a l n a
0106160 m e " ] ; \r i n s t a n c e
0106200 N a m e : P U B L I C A t o
0106220 m = M a k e 376 \0 5 ? z A t o
0106240 m [ " I n s t a n c e n a m e
0106260 " ] ; \r \r E N D . - - o
0106300 f C h i p A p p e n d N a m e
0106320 s \r 377 \0 \0 c h i p d r c i m p l
0106340 . m e s a \0 373 234 E 275 201 \0 \0 376 001 \0
0106360 ( m - - C h i p D R C I m p l
0106400 . m e s a \r \r - - l a s t m
0106420 o d i f i e d b y E . M c
0106440 C r e i g h t , J a n u a r y
0106460 3 0 , 1 9 8 4 6 : 1 6
0106500 P M \r - - w r i t t e n b y
0106520 E . M c C r e i g h t , A
0106540 p r i l 1 4 , 1 9 8 2 1
0106560 0 : 2 5 A M \r \r D I R E C T O
0106600 R Y \r C h i p D R C , \r
0106620 C h i p F e a t u r e , \r C
0106640 h i p N e t D e f s , \r C h
0106660 i p W i r e , \r L e f t F e
0106700 a t u r e P Q , \r F e a t u
0106720 r e P S T , \r p p d e f s ,
0106740 \r R i g h t F e a t u r e P
0106760 Q , 376 001 \0 266 035 \r S t r e a m
0107000 D e f s ; \r \r C h i p D R C I m
0107020 p l : P R O G R A M \r I M
0107040 P O R T S C h i p D R C , C
0107060 h i p F e a t u r e , C h i p
0107100 N e t D e f s , \r C h i
0107120 p W i r e , L e f t F e a t u
0107140 r e P Q , F e a t u r e P S T
0107160 , R i g h t F e a t u r e P Q
0107200 \r E X P O R T S C h i p D
0107220 R C S H A R E S C h i p D R
0107240 C = \r B E G I N O P E N
0107260 p p d e f s , C h i p N e t
0107300 D e f s , \r F e a t u r
0107320 e P S T , L e f t F e a t u r
0107340 e P Q , R i g h t F e a t u r
0107360 e P Q , \r 376 001 \0 274 \b C h
0107400 i p W i r e , C h i p D R C ;
0107420 \r \r d r c S w a t h W i d t
0107440 h : P U B L I C C o o r d ;
0107460 \r \r d o i n g D R C : P U
0107500 B L I C B O O L E A N _ F
0107520 A L S E ; \r \r p o l y G a t
0107540 e O v e r l a p , m i n T r a
0107560 n s i s t o r D i f f u s i o n
0107600 W i d t h , \r d e p l e
0107620 t i o n O v e r l a p : P U B
0107640 L I C l o c N u m ; \r \r m
0107660 i n S i z e , c l o s e s t U
0107700 n c o n n e c t e d : \r
0107720 P U B L I C A R R A Y E x t
0107740 r a c t L e v e l O F C o o
0107760 r d ; \r \r d r c S w 376 001 \0 355
0110000 Q a t h : P U B L I C C h i
0110020 p W i r e . S l i c e P t r ;
0110040 - - d r c S w a t h W i d t h
0110060 w i d e \r d r c S w a t h
0110100 F e a t u r e s : P U B L I C
0110120 R i g h t F e a t u r e P Q H
0110140 a n d l e ; \r - - t h
0110160 e f e a t u r e s i n t h
0110200 e s l i c e b u t a b a n
0110220 d o n e d b y E x t r a c t
0110240 N e t s \r \r S e t u p D R C
0110260 : P U B L I C P R O C E D U
0110300 R E [ c h e c k : B O O L E A
0110320 N ] = \r B E G I N \r
0110340 I F ( d o i n g D R C
0110360 _ c h e c k ) T H E N \r
0110400 376 001 \0 337 A B E G I N \r
0110420 S e t D R C P a r a m
0110440 s [ ] ; \r h o l d V
0110460 i o l a t i o n s _ N O T
0110500 H e S e t s P a r a m s A n d S
0110520 a y s Y e s [ \r
0110540 " S h o u l d I t e l l y
0110560 o u a b o u t e r r o r s
0110600 a s I f i n d t h e m ? "
0110620 ] ; \r d r c S w a t
0110640 h _ C h i p W i r e . N e w
0110660 S l i c e [ ] ; \r d
0110700 r c S w a t h F e a t u r e s
0110720 _ N e w R i g h t F e a t u r
0110740 e P Q [ u z ] ; \r E
0110760 N D ; \r E N D ; - -
0111000 o f S e t 376 001 \0 a y u p D R C
0111020 \r \r \r F i n i s h D R C :
0111040 P U B L I C P R O C E D U R E
0111060 [ r o o t : C e l l C a l l P
0111100 t r ] = \r B E G I N \r
0111120 I F d o i n g D R C
0111140 T H E N \r B E G I N
0111160 \r P u r g e S w a t
0111200 h [ L A S T [ C o o r d ] ] ; \r
0111220 d r c S w a t h _
0111240 C h i p W i r e . D e s t r o
0111260 y S l i c e [ d r c S w a t h ]
0111300 ; \r d r c S w a t h
0111320 F e a t u r e s _ D e s t r
0111340 o y R i g h t F e a t u r e P Q
0111360 [ d r c S w a t h F e a t u r e
0111400 s ] ; \r E 376 001 \0 373 Y
0111420 N D ; \r C h e c k T e r
0111440 m i n a l C o n n e c t i o n s
0111460 [ r o o t ] ; \r E n u m
0111500 e r a t e V i o l a t i o n s [
0111520 ] ; \r E N D ; - - o
0111540 f F i n i s h D R C \r \r \r
0111560 L e f t E d g e s : P U B L I
0111600 C P R O C E D U R E [ p q :
0111620 L e f t F e a t u r e P Q H a n
0111640 d l e ] = \r B E G I N
0111660 \r \r E n t e r S w a t h
0111700 : P R O C E D U R E [ f : F
0111720 e a t u r e P t r ] = \r
0111740 B E G I N \r r
0111760 L e v : E x t r a c t L e v e
0112000 l ; \r I F I n v e
0112020 376 001 \0 360 307 r s e R e q u i r e d
0112040 L e v e l [ f . l e v ] = u n k
0112060 n o w n T H E N \r
0112100 I n s e r t F e a t u r e P
0112120 S T [ p : d r c S w a t h [ f
0112140 . l e v ] , i t e m : f ] ;
0112160 \r I F ( r L e v
0112200 _ R e q u i r e d L e v e l [
0112220 f . l e v ] ) # u n k n o w n
0112240 T H E N \r N o t
0112260 e C o v e r [ l e v : r L e v
0112300 , c : f . c o v e r ] ; \r
0112320 E N D ; \r \r C
0112340 h e c k L e f t E d g e : P R
0112360 O C E D U R E [ f : F e a t u
0112400 r e P t r ] = \r B
0112420 E G I N \r 376 001 \0 241 325
0112440 l e v , r L e v , f L e v :
0112460 E x t r a c t L e v e l ; \r \r
0112500 F o r b i d d e n H
0112520 e r e : P R O C E D U R E [ i
0112540 t e m : F e a t u r e P t r ]
0112560 = \r B E G I N
0112600 \r p : P o i n
0112620 t ; \r I F N O
0112640 T H a v e S h a r e d A r e a
0112660 [ f . c o v e r , i t e m . c
0112700 o v e r ] T H E N R E T U R
0112720 N ; \r p _ R
0112740 e f C o o r d P t [ S h a r e d
0112760 A r e a [ f . c o v e r , i t
0113000 e m . c o v e r ] ] ; \r
0113020 I F f . n 376 001 \0 324 242 e
0113040 t = N I L O R i t e m . n e
0113060 t = N I L T H E N \r
0113100 N o t e V i o l a t i
0113120 o n [ [ p l a c e : p , i n
0113140 f o : c o v e r a g e F o r b
0113160 i d d e n [ l e v : l e v ] ]
0113200 ] \r E L S E -
0113220 - i t ' s a v i o l a t i
0113240 o n o n l y i f t h e y '
0113260 r e n o t t h e s a m e \r
0113300 I F ( f .
0113320 n e t _ C a n o n N e t [ f
0113340 . n e t ] ) # \r
0113360 ( i t e m . n e t _
0113400 C a n o n N e t [ i t e m . n e
0113420 t ] ) T H E N \r 376
0113440 001 \0 341 252 B E G I N \r
0113460 i d :
0113500 N o r m a l N e t I d P t r =
0113520 G e t N o r m a l N e t I d [
0113540 @ f . n e t ] ; \r
0113560 i d . v i o l a t i o
0113600 n s _ u z . N E W [ V i o l
0113620 a t i o n L i s t _ [ \r
0113640 n e x t
0113660 : i d . v i o l a t i o n s ,
0113700 \r v
0113720 : [ p l a c e : p , i n f
0113740 o : c o v e r a g e F o r b i
0113760 d d e n I f N e t s D i f f e r
0114000 [ l e v : l e v , \r
0114020 n 1 : R
0114040 e f C a 376 001 \0 m 214 n o n N e t [
0114060 i t e m . n e t ] , n 2 : R
0114100 e f C a n o n N e t [ f . n e t
0114120 ] ] ] ] ] ; \r
0114140 E N D ; \r
0114160 E N D ; \r \r I F (
0114200 r L e v _ I n v e r s e R e
0114220 q u i r e d L e v e l [ f . l e
0114240 v ] ) # u n k n o w n T H E N
0114260 \r E n s u r e C
0114300 o v e r a g e [ l e v : r L e
0114320 v , x N o w : f . c o v e r
0114340 . x 1 , \r r
0114360 : f . c o v e r , N o C o v
0114400 e r a g e : C o v e r a g e F
0114420 a i l e d ] ; \r \r l
0114440 e v _ f . l e 376 001 \0 ) x v ;
0114460 \r I F ( f L e v
0114500 _ F o r b i d d e n L e v e l
0114520 [ f . l e v ] ) # u n k n o w n
0114540 T H E N \r S e
0114560 a r c h F e a t u r e P S T [ p
0114600 : d r c S w a t h [ f L e v ]
0114620 , \r i n t :
0114640 [ f . c o v e r . y 1 , f .
0114660 c o v e r . y 2 ] , \r
0114700 t o u c h : F o r b
0114720 i d d e n H e r e ] \r
0114740 E L S E I F ( l e v _
0114760 I n v e r s e F o r b i d d e n
0115000 L e v e l [ f . l e v ] ) # u n
0115020 k n o w n T H E N \r
0115040 S e a r c h F e a t u 376 001
0115060 \0 q L r e P S T [ p : d r c S
0115100 w a t h [ l e v ] , \r
0115120 i n t : [ f . c o v
0115140 e r . y 1 , f . c o v e r . y
0115160 2 ] , \r t o
0115200 u c h : F o r b i d d e n H e
0115220 r e ] ; \r \r I F c
0115240 l o s e s t U n c o n n e c t e
0115260 d [ f . l e v ] > 0 T H E N \r
0115300 N e i g h b o r
0115320 C h e c k [ f : f , i n L e
0115340 v e l : f . l e v , d i s t
0115360 : c l o s e s t U n c o n n e
0115400 c t e d [ f . l e v ] ] ; \r \r
0115420 S E L E C T f . l e
0115440 v F R O M \r b
0115460 u r 376 001 \0 V 222 = > \r
0115500 B E G I N \r
0115520 N e i g h b o r C h e
0115540 c k [ f : f , i n L e v e l
0115560 : n G a t e , d i s t : (
0115600 3 * L a m b d a ) / 2 ] ; \r
0115620 N e i g h b o r
0115640 C h e c k [ f : f , i n L e
0115660 v e l : p G a t e , d i s t
0115700 : ( 3 * L a m b d a ) / 2 ] ;
0115720 \r E N D ; \r
0115740 n P l u s = >
0115760 N e i g h b o r C h e c k [ f
0116000 : f , i n L e v e l : p w
0116020 e l C o n t , d i s t : 3 *
0116040 L a m b d a ] ; \r
0116060 p P l u s = 376 001 \0 265 324 > N
0116100 e i g h b o r C h e c k [ f :
0116120 f , i n L e v e l : n w e l
0116140 C o n t , d i s t : 3 * L a
0116160 m b d a ] ; \r p
0116200 w e l C o n t = > N e i g h
0116220 b o r C h e c k [ f : f , i
0116240 n L e v e l : n P l u s , d
0116260 i s t : 3 * L a m b d a ] ; \r
0116300 n w e l C o n t
0116320 = > N e i g h b o r C h e c
0116340 k [ f : f , i n L e v e l :
0116360 p P l u s , d i s t : 3 *
0116400 L a m b d a ] ; \r
0116420 E N D C A S E = > N U L L
0116440 ; \r \r I F 0 < m i
0116460 n S i z e [ f . l e v ] 376 001 \0
0116500 276 233 T H E N \r L
0116520 e f t E d g e S i z e C h e c k
0116540 [ f : f , m i n S i z e :
0116560 m i n S i z e [ f . l e v ] ] ;
0116600 \r E N D ; - - o
0116620 f C h e c k L e f t E d g e \r
0116640 \r x 1 : C o o r d _
0116660 L e f t F e a t u r e P Q M i
0116700 n [ p q ] . c o v e r . x 1 ; \r
0116720 P u r g e S w a t h [ x
0116740 1 - d r c S w a t h W i d t h ]
0116760 ; \r M a p E q u a l L e
0117000 f t F e a t u r e P Q [ p : p
0117020 q , p r o c : E n t e r S w
0117040 a t h ] ; \r M a p E q u
0117060 a l L e f t F e a t u r e P Q [
0117100 p : 376 001 \0 K 025 p q , p r o c
0117120 : C h e c k L e f t E d g e ]
0117140 ; \r E N D ; - - o f
0117160 L e f t E d g e s \r \r \r R
0117200 i g h t E d g e s : P U B L I
0117220 C P R O C E D U R E [ p q :
0117240 R i g h t F e a t u r e P Q H a
0117260 n d l e ] = \r B E G I
0117300 N \r \r C h e c k R i g h
0117320 t E d g e : P R O C E D U R E
0117340 [ f : F e a t u r e P t r ]
0117360 = \r B E G I N \r
0117400 I F 0 < m i n S i z e
0117420 [ f . l e v ] T H E N \r
0117440 R i g h t E d g e S i
0117460 z e C h e c k [ f : f , m i
0117500 n S i z e : 376 001 \0 g 261 m i n S
0117520 i z e [ f . l e v ] ] ; \r \r
0117540 I F I n v e r s e R e
0117560 q u i r e d L e v e l [ f . l e
0117600 v ] = u n k n o w n T H E N \r
0117620 I n s e r t R i
0117640 g h t F e a t u r e P Q [ p :
0117660 d r c S w a t h F e a t u r e s
0117700 , i t e m : f ] \r
0117720 E L S E f _ C h i p F e
0117740 a t u r e . D e s t r o y F e a
0117760 t u r e [ f ] ; \r E
0120000 N D ; - - o f C h e c k R
0120020 i g h t E d g e \r \r x 2
0120040 : C o o r d _ R i g h t F
0120060 e a t u r e P Q M i n [ p q ] .
0120100 c o v e r . x 2 ; \r 376 001 \0 6
0120120 361 P u r g e S w a t h [ x 2
0120140 - d r c S w a t h W i d t h ] ;
0120160 \r M a p E q u a l R i g
0120200 h t F e a t u r e P Q [ p : p
0120220 q , p r o c : C h e c k R i
0120240 g h t E d g e ] ; \r E N
0120260 D ; - - o f R i g h t E d
0120300 g e s \r \r \r P u r g e S w a
0120320 t h : P R O C E D U R E [ x :
0120340 C o o r d ] = \r B E
0120360 G I N \r W H I L E R i
0120400 g h t F e a t u r e P Q S i z e
0120420 [ d r c S w a t h F e a t u r e
0120440 s ] > 0 A N D \r R
0120460 i g h t F e a t u r e P Q M i n
0120500 [ d r c S w a t h F e a t u r e
0120520 s 376 001 \0 237 345 ] . c o v e r . x 2
0120540 < x D O \r o l d F
0120560 : F e a t u r e P t r _ E
0120600 x t r a c t R i g h t F e a t u
0120620 r e P Q [ d r c S w a t h F e a
0120640 t u r e s ] ; \r D e
0120660 l e t e F e a t u r e P S T [ p
0120700 : d r c S w a t h [ o l d F .
0120720 l e v ] , i t e m : o l d F
0120740 ] ; \r S E L E C T
0120760 o l d F . l e v F R O M \r
0121000 n W e l l R e q u i
0121020 r e d , p W e l l R e q u i r
0121040 e d , n D e p l e t i o n R e
0121060 q u i r e d , \r
0121100 n B u r i e d C o n t a c t
0121120 R e q u i r 376 001 \0 204 235 e d , n
0121140 P l u s R e q u i r e d , p P
0121160 l u s R e q u i r e d , \r
0121200 n G a t e R e q u
0121220 i r e d , p G a t e R e q u i
0121240 r e d , p o l y R e q u i r e
0121260 d = > \r I
0121300 F o l d F . c o v e r . x 1 <
0121320 o l d F . c o v e r . x 2 A N
0121340 D \r o l
0121360 d F . c o v e r . y 1 < o l d F
0121400 . c o v e r . y 2 T H E N \r
0121420 N o t e V
0121440 i o l a t i o n [ [ p l a c e :
0121460 R e f C o o r d P t [ o l d F
0121500 . c o v e r ] , \r
0121520 i n f o 376 001 \0 221 253
0121540 : c o v e r a g e N e e d e d
0121560 [ l e v : I n v e r s e R e q
0121600 u i r e d L e v e l [ o l d F .
0121620 l e v ] ] ] ] ; \r
0121640 E N D C A S E = > N U L L
0121660 ; \r o l d F _ C
0121700 h i p F e a t u r e . D e s t r
0121720 o y F e a t u r e [ o l d F ] ;
0121740 \r E N D L O O P ; \r
0121760 E N D ; - - o f P
0122000 u r g e S w a t h \r \f \r
0122020 - - S i z e c h e c k i n g
0122040 e n s u r e s t h a t c o
0122060 n n e c t e d \r - - f
0122100 e a t u r e s o n t h e s
0122120 a m e l a y e r a r e d r
0122140 376 001 \0 ! t a w n \r - -
0122160 s o t h a t a s q u a r e
0122200 o f s i z e m i n S i z e
0122220 c a n b e m o v e d \r
0122240 - - a r o u n d e v e r
0122260 y i n t e r i o r b o u n d
0122300 a r y o f \r - - t h
0122320 e c o n n e c t e d r e g i
0122340 o n w i t h o u t g e t t i
0122360 n g s t u c k . \r \r -
0122400 - R a m s h a w a n d I
0122420 s p e n t a l u n c h b r
0122440 a i n s t o r m i n g , \r
0122460 - - a n d w e d e c i d
0122500 e d t h a t t h i s \r
0122520 - - i s e q u i v a l e n
0122540 t t o 376 001 \0 027 252 e v e r y
0122560 c o n n e c t e d r e g i o n
0122600 ' s \r - - c o n t a i
0122620 n i n g a s q u a r e o f
0122640 s i z e m i n S i z e o n
0122660 t h e i n t e r i o r o f
0122700 \r - - e v e r y c o
0122720 r n e r . \r \r - - C o
0122740 r n e r a r e d e s i g n a
0122760 t e d a s { n , s } { e ,
0123000 w } { C , E } . \r -
0123020 - ( I n C h i p m o n k ' s
0123040 c o - o r d i n a t e s y s
0123060 t e m , y i n c r e a s e s
0123100 \r - - s o u t h w a r
0123120 d a n d x i n c r e a s e
0123140 s e a s t w a r d 376 001 \0 303 276 )
0123160 . \r - - F o r e x a
0123200 m p l e , a n w C c o r n
0123220 e r i s a c o r n e r w
0123240 h o s e n o r t h w e s t \r
0123260 - - q u a d r a n t i
0123300 s c o v e r e d a n d a l
0123320 l o t h e r s a r e e m p
0123340 t y . A s e E c o r n e
0123360 r \r - - i s a c o
0123400 r n e r w h o s e s o u t h
0123420 e a s t q u a d r a n t i s
0123440 e m p t y a n d a l l o
0123460 t h e r s \r - - a r e
0123500 c o v e r e d . T h e r e
0123520 a r e e i g h t o f t h
0123540 e s e d e s i g n a t o r s 376
0123560 001 \0 310 005 , a n d \r - -
0123600 a c o r n e r i s c o m
0123620 p l e t e l y d e t e r m i n
0123640 e d b y a p o i n t a n
0123660 d a d e s i g n a t o r . \r
0123700 \r \r L e f t E d g e S i z e
0123720 C h e c k : P R O C E D U R E
0123740 [ f : F e a t u r e P t r ,
0123760 m i n S i z e : C o o r d ]
0124000 = \r B E G I N \r \r
0124020 L e f t M i n S i z e V i o l
0124040 a t i o n : P R O C E D U R E
0124060 [ l e v : E x t r a c t L e v
0124100 e l , \r r : C o o
0124120 r d R e c t ] R E T U R N S [
0124140 c o n t i n u e : B O O L E A
0124160 N ] = 376 001 \0 ` 202 \r
0124200 B E G I N \r M i n S
0124220 i z e V i o l a t i o n [ f :
0124240 f , r : r ] ; \r
0124260 c o n t i n u e _ T R U E ;
0124300 \r E N D ; \r \r
0124320 r : C o o r d R e c t =
0124340 f . c o v e r ; \r \r I F
0124360 r . x 1 = r . x 2 O R r .
0124400 y 1 = r . y 2 T H E N R E T
0124420 U R N ; \r - - r
0124440 i s a p o i n t o r a
0124460 l i n e . \r - - S
0124500 u c h f e a t u r e s c o r
0124520 r e s p o n d t o r e q u i
0124540 r e d a r e a s , w h o s e
0124560 a b s e n c e \r 376 001 \0 222 254
0124600 - - i s d e t e c t
0124620 e d i n o t h e r w a y s
0124640 . \r \r - - r i s k
0124660 n o w n t o b e a n o n
0124700 - e m p t y a r e a \r
0124720 I F r . y 2 < r . y 1 + m i n
0124740 S i z e \r A N D N
0124760 O T C o v e r e d [ p : [ r
0125000 . x 1 , r . y 1 - 1 ] , l e
0125020 v : f . l e v ] \r
0125040 T H E N - - [ r . x 1 , r
0125060 . y 1 ] i s a s e C c o
0125100 r n e r \r E n s u r
0125120 e C o v e r a g e [ l e v : f
0125140 . l e v , x N o w : r . x 1
0125160 + 1 , \r r : 376 001
0125200 \0 327 y [ x 1 : r . x 1 , \r
0125220 y 1 : r . y
0125240 1 , \r x 2 :
0125260 r . x 1 + 1 , \r
0125300 y 2 : r . y 1 + m i n S
0125320 i z e ] , \r
0125340 N o C o v e r a g e : L e f t
0125360 M i n S i z e V i o l a t i o n
0125400 ] ; \r E N D ; - - o
0125420 f L e f t E d g e S i z e C h
0125440 e c k \r \f \r R i g h t E d g
0125460 e S i z e C h e c k : P R O C
0125500 E D U R E [ f : F e a t u r e
0125520 P t r , m i n S i z e : C o
0125540 o r d ] = \r B E G I N
0125560 \r r i g h t C o v e r :
0125600 I n 376 001 \0 265 021 t e r v a l ;
0125620 - - [ m i n . . m a x ) \r
0125640 r : C o o r d R e c t =
0125660 f . c o v e r ; \r \r R
0125700 i g h t M i n S i z e V i o l a
0125720 t i o n : P R O C E D U R E [
0125740 l e v : E x t r a c t L e v e
0125760 l , \r r : C o o r
0126000 d R e c t ] R E T U R N S [ c
0126020 o n t i n u e : B O O L E A N
0126040 ] = \r B E G I N \r
0126060 M i n S i z e V i o
0126100 l a t i o n [ f : f , r :
0126120 r ] ; \r c o n t i n
0126140 u e _ T R U E ; \r
0126160 E N D ; \r \r E x t e n
0126200 d R i g h t Y C 376 001 \0 260 340 o v e
0126220 r : P R O C E D U R E [ i t e
0126240 m : F e a t u r e P t r ] =
0126260 \r B E G I N - -
0126300 i t e m ' s c o m e i n i
0126320 n c r e a s i n g o r d e r
0126340 o f i t e m . c o v e r . y 1
0126360 \r I F r . x 2 < i
0126400 t e m . c o v e r . x 2 A N D
0126420 \r r i g h t C o
0126440 v e r . m a x < = r . y 2 T H
0126460 E N \r B E G I N
0126500 \r I F i t e m
0126520 . c o v e r . y 1 < = r i g h t
0126540 C o v e r . m a x T H E N \r
0126560 - - e x t e
0126600 n d p r e v i o u s r 376 001 \0
0126620 9 353 i g h t c o v e r \r
0126640 r i g h t C o v e
0126660 r . m a x _ \r
0126700 M A X [ r i g h t C o v
0126720 e r . m a x , i t e m . c o v
0126740 e r . y 2 ] \r E
0126760 L S E \r B E
0127000 G I N \r C h
0127020 e c k R i g h t C o v e r A n d
0127040 G a p [ i t e m . c o v e r . y
0127060 1 ] ; \r r i
0127100 g h t C o v e r _ [ m i n :
0127120 i t e m . c o v e r . y 1 ,
0127140 m a x : i t e m . c o v e r .
0127160 y 2 ] ; \r E
0127200 N D ; \r E N D ;
0127220 \r 376 001 \0 230 352 E N D ;
0127240 - - o f E x t e n d R i g
0127260 h t Y C o v e r \r \r C h
0127300 e c k R i g h t C o v e r A n d
0127320 G a p : P R O C E D U R E [ n
0127340 e x t C o v e r : C o o r d ]
0127360 = \r B E G I N \r
0127400 - - W h e n t h i
0127420 s p r o c e d u r e i s c
0127440 a l l e d , \r - -
0127460 [ r i g h t C o v e r . m i n
0127500 . . r i g h t C o v e r . m a x
0127520 ) i s c o v e r e d , a n
0127540 d \r - - [ r i g
0127560 h t C o v e r . m a x . . n e x
0127600 t C o v e r ) i s a g a p
0127620 . \r \r 376 001 \0 ^ 371 - -
0127640 T h i s p r o c e d u r e
0127660 c h e c k s t h e f o l l o
0127700 w i n g p o s s i b i l i t i
0127720 e s : \r - - 1 )
0127740 [ x : r . x 2 , y : r
0127760 . y 1 ] i s a s w C c o
0130000 r n e r \r - - 3
0130020 ) [ x : r . x 2 , y :
0130040 r i g h t C o v e r . m a x - 1
0130060 ] i s a s e E c o r n e
0130100 r \r - - 4 )
0130120 [ x : r . x 2 , y : n e x
0130140 t C o v e r ] i s a n e E
0130160 c o r n e r \r - -
0130200 6 ) [ x : r . x 2 ,
0130220 y : r . y 2 - 1 ] i 376 001 \0 314
0130240 f s a n w C c o r n e r \r
0130260 \r S E L E C T r i
0130300 g h t C o v e r . m a x F R O
0130320 M \r < r . y 1
0130340 = > \r - -
0130360 [ x : r . x 2 , y : r .
0130400 y 1 ] c o u l d b e a s
0130420 w C c o r n e r \r
0130440 I F ( r . y 2 < r . y
0130460 1 + m i n S i z e O R \r
0130500 r . x 2 < r .
0130520 x 1 + m i n S i z e ) \r
0130540 - - f i
0130560 s n o t l a r g e e n o u
0130600 g h b y i t s e l f \r
0130620 A N D r . y
0130640 1 376 001 \0 I & < n e x t C o v e r
0130660 - - n o c o v e r t o
0130700 t h e s o u t h e a s t \r
0130720 A N D N O
0130740 T C o v e r e d [ p : [ x :
0130760 r . x 2 - 1 , y : r . y 1
0131000 - 1 ] , \r
0131020 l e v : f . l e v ] -
0131040 - n o c o v e r t o t h
0131060 e n o r t h w e s t \r
0131100 T H E N \r
0131120 B E G I N \r
0131140 E n s u r
0131160 e C o v e r a g e [ l e v : f
0131200 . l e v , x N o w : r . x 2
0131220 + 1 , \r
0131240 r : [ 376 001 \0 355 270 x 1 : r
0131260 . x 2 - m i n S i z e , \r
0131300 y 1 :
0131320 r . y 1 , \r
0131340 x 2 : r . x 2 ,
0131360 \r
0131400 y 2 : r . y 1 + m i n S i z
0131420 e ] , \r
0131440 N o C o v e r a g e :
0131460 R i g h t M i n S i z e V i o l
0131500 a t i o n ] ; \r
0131520 E N D ; \r <
0131540 r . y 2 = > \r
0131560 - - [ x : r . x 2 , y :
0131600 r i g h t C o v e r . m a x - 1
0131620 ] i s a s e E c o r n e
0131640 r \r E 376 001 \0 { 267
0131660 n s u r e C o v e r a g e [ l e
0131700 v : f . l e v , x N o w :
0131720 r . x 2 + 1 , \r
0131740 r : [ x 1 : r . x 2 - m
0131760 i n S i z e , \r
0132000 y 1 : r i g h t C o v
0132020 e r . m a x - m i n S i z e , \r
0132040 x 2 :
0132060 r . x 2 , \r
0132100 y 2 : r i g h t C o v e r
0132120 . m a x ] , \r
0132140 N o C o v e r a g e : R
0132160 i g h t M i n S i z e V i o l a
0132200 t i o n ] ; \r E N D
0132220 C A S E = > N U L L ; \r \r
0132240 S E L E C T n e x t C o
0132260 376 001 \0 \0 232 v e r F R O M \r
0132300 < = r . y 1 = > N U
0132320 L L ; \r < r . y 2
0132340 = > \r - - [
0132360 x : r . x 2 , y : n e x t
0132400 C o v e r ] i s a n e E
0132420 c o r n e r \r E
0132440 n s u r e C o v e r a g e [ l e
0132460 v : f . l e v , x N o w :
0132500 r . x 2 + 1 , \r
0132520 r : [ x 1 : r . x 2 - m
0132540 i n S i z e , \r
0132560 y 1 : n e x t C o v e
0132600 r , \r x
0132620 2 : r . x 2 , \r
0132640 y 2 : n e x t C o v
0132660 e r + m i 376 001 \0 212 u n S i z e ]
0132700 , \r N o
0132720 C o v e r a g e : R i g h t M
0132740 i n S i z e V i o l a t i o n ]
0132760 ; \r E N D C A S E
0133000 = > \r - - [ x
0133020 : r . x 2 , y : r . y 2 -
0133040 1 ] c o u l d b e a n w
0133060 C c o r n e r \r
0133100 I F ( r . y 2 < r . y 1 + m
0133120 i n S i z e O R \r
0133140 r . x 2 < r . x 1 + m i
0133160 n S i z e ) \r
0133200 - - f i s n o t l a
0133220 r g e e n o u g h b y i t
0133240 s e l f \r A N
0133260 D r i g h t C o v 376 001 \0 202 @ e
0133300 r . m a x < r . y 2 - - n o
0133320 c o v e r t o t h e n o
0133340 r t h w e s t \r
0133360 A N D N O T C o v e r e d
0133400 [ p : [ x : r . x 2 - 1 ,
0133420 y : r . y 2 ] , \r
0133440 l e v : f .
0133460 l e v ] - - n o c o v e r
0133500 t o t h e s o u t h w e s
0133520 t \r T H E N \r
0133540 E n s u r e C
0133560 o v e r a g e [ l e v : f . l
0133600 e v , x N o w : r . x 2 + 1
0133620 , \r r :
0133640 [ x 1 : r . x 2 - m i n S i z
0133660 e , \r 376
0133700 001 \0 375 201 y 1 : r . y 2 - m i
0133720 n S i z e , \r
0133740 x 2 : r . x 2 , \r
0133760 y 2 : r
0134000 . y 2 ] , \r
0134020 N o C o v e r a g e : R
0134040 i g h t M i n S i z e V i o l a
0134060 t i o n ] ; \r E N D
0134100 ; - - o f C h e c k R i g
0134120 h t C o v e r A n d G a p \r \r
0134140 I F r . x 1 = r . x 2
0134160 O R r . y 1 = r . y 2 T H E
0134200 N R E T U R N ; \r
0134220 - - r i s a p o i n t
0134240 o r a l i n e . \r
0134260 - - S u c h f e a t u r e
0134300 s c o 376 001 \0 234 225 r r e s p o n
0134320 d t o r e q u i r e d a r
0134340 e a s , w h o s e a b s e n
0134360 c e \r - - i s d
0134400 e t e c t e d i n o t h e r
0134420 w a y s . \r \r - - r
0134440 i s k n o w n t o b e
0134460 a n o n - e m p t y a r e a
0134500 \r r i g h t C o v e r
0134520 _ [ m i n : r . y 1 - 1 ,
0134540 m a x : r . y 1 - 1 ] ; \r
0134560 S e a r c h F e a t u r e P
0134600 S T [ p : d r c S w a t h [ f
0134620 . l e v ] , \r i n t
0134640 : [ m i n : r . y 1 - 1 ,
0134660 m a x : r . y 2 + 1 ] , \r
0134700 t o u c h 376 001 \0 C 351 :
0134720 E x t e n d R i g h t Y C o v e
0134740 r ] ; \r I F r i g h t
0134760 C o v e r . m a x < = r . y 2
0135000 T H E N \r C h e c k
0135020 R i g h t C o v e r A n d G a p
0135040 [ r . y 2 + 1 ] ; \r E N
0135060 D ; - - o f R i g h t E d
0135100 g e S i z e C h e c k \r \r \r
0135120 C o v e r e d : P R O C E D U
0135140 R E [ p : C o o r d P o i n t
0135160 , l e v : E x t r a c t L e
0135200 v e l ] \r R E T U R N S
0135220 [ c o v e r e d : B O O L E A
0135240 N ] = \r B E G I N \r \r
0135260 C h e c k X C o v e r :
0135300 P R O C E D U R E [ i t e 376 001
0135320 \0 d 277 m : F e a t u r e P t r
0135340 ] = \r { I F p .
0135360 x I N [ i t e m . c o v e r
0135400 . x 1 . . i t e m . c o v e r .
0135420 x 2 ) T H E N \r
0135440 c o v e r e d _ T R U E }
0135460 ; \r \r c o v e r e d _
0135500 F A L S E ; \r S e a r
0135520 c h F e a t u r e P S T [ p :
0135540 d r c S w a t h [ l e v ] , \r
0135560 i n t : [ m i n :
0135600 p . y , m a x : p . y + 1 ]
0135620 , \r t o u c h : C
0135640 h e c k X C o v e r ] ; \r
0135660 E N D ; - - o f C o v e
0135700 r e d \r \r \r M i n S i z e V
0135720 i o l 376 001 \0 326 026 a t i o n : P
0135740 R O C E D U R E [ f : F e a t
0135760 u r e P t r , r : C o o r d
0136000 R e c t ] = \r B E G I
0136020 N \r v : V i o l a t i
0136040 o n = [ p l a c e : R e f
0136060 C o o r d P t [ r ] , i n f o
0136100 : t o o N a r r o w [ l e v :
0136120 f . l e v ] ] ; \r I F
0136140 f . n e t # N I L T H E N \r
0136160 B E G I N \r
0136200 c n : C a n o n N e t P t
0136220 r _ f . n e t _ C a n o
0136240 n N e t [ f . n e t ] ; \r
0136260 W I T H d i d : c n .
0136300 i d S E L E C T F R O M \r
0136320 n 376 001 \0 314 252 o r m
0136340 a l = > \r
0136360 I F d i d . c o u l d B e L o
0136400 g o T H E N \r
0136420 { d i d . v i o l a t i
0136440 o n s _ u z . N E W [ V i o
0136460 l a t i o n L i s t _ [ n
0136500 e x t : d i d . v i o l a t i
0136520 o n s , v : v ] ] ; R E
0136540 T U R N } ; \r E
0136560 N D C A S E = > N U L L ; \r
0136600 E N D ; \r N
0136620 o t e V i o l a t i o n [ v ] ;
0136640 \r E N D ; - - o f
0136660 M i n S i z e V i o l a t i o n
0136700 \r \f \r N e i g h b o r C h e
0136720 c k : P R O C E D U R E 376 001 \0
0136740 331 316 [ f : F e a t u r e P t r
0136760 , i n L e v e l : E x t r a
0137000 c t L e v e l , d i s t : C
0137020 o o r d ] = \r B E G I
0137040 N \r \r T o o C l o s e V
0137060 i o l a t i o n : P R O C E D
0137100 U R E [ n e i g h b o r : F e
0137120 a t u r e P t r ] = \r
0137140 B E G I N \r c n
0137160 N e i g h b o r : C a n o n N
0137200 e t P t r _ n e i g h b o r
0137220 . n e t _ \r C
0137240 a n o n N e t [ n e i g h b o r
0137260 . n e t ] ; \r v :
0137300 V i o l a t i o n _ [ \r
0137320 p l a c e : R e f
0137340 C o 376 001 \0 ~ 021 o r d P t [ [ \r
0137360 x 1 : M I N
0137400 [ f . c o v e r . x 1 , n e i
0137420 g h b o r . c o v e r . x 2 ] ,
0137440 \r x 2 : f
0137460 . c o v e r . x 1 , \r
0137500 y 1 : M A X [ f . c
0137520 o v e r . y 1 - d i s t , n e
0137540 i g h b o r . c o v e r . y 1 ]
0137560 , \r y 2 :
0137600 M I N [ f . c o v e r . y 2 + d
0137620 i s t , n e i g h b o r . c o
0137640 v e r . y 2 ] ] ] , \r
0137660 i n f o : t o o C l o s
0137700 e [ l e v 1 : f . l e v , l
0137720 e v 2 : n e i g h b o r . l e
0137740 v , \r 376 001 \0 P p
0137760 n 1 : ( f . n e t _ R
0140000 e f C a n o n N e t [ f . n e t
0140020 ] ) , n 2 : R e f C a n o n
0140040 N e t [ c n N e i g h b o r ] ]
0140060 ] ; \r I F f . c o
0140100 v e r . x 1 < = c n N e i g h b
0140120 o r . i d . f i n a l . r . x 2
0140140 O R \r ( G e t
0140160 N o r m a l N e t I d [ @ f . n
0140200 e t ] . c o u l d B e L o g o
0140220 A N D \r G e t N
0140240 o r m a l N e t I d [ @ n e i g
0140260 h b o r . n e t ] . c o u l d B
0140300 e L o g o ) T H E N \r
0140320 - - n e t s c o u l
0140340 d s t i l l n o t 376 001 \0 &
0140360 271 b e i n e r r o r \r
0140400 c n N e i g h b o r .
0140420 i d . v i o l a t i o n s _
0140440 u z . N E W [ V i o l a t i o n
0140460 L i s t _ \r
0140500 [ n e x t : c n N e i g h b
0140520 o r . i d . v i o l a t i o n s
0140540 , v : v ] ] \r E
0140560 L S E N o t e V i o l a t i o
0140600 n [ v ] ; \r E N D ;
0140620 - - o f T o o C l o s e V
0140640 i o l a t i o n \r \r C h
0140660 e c k N e i g h b o r D i f f u
0140700 s i o n : P R O C E D U R E [
0140720 i t e m : F e a t u r e P t r
0140740 ] = \r B E G I N \r
0140760 376 001 \0 346 300 c n i t e
0141000 m : C a n o n N e t P t r _
0141020 i t e m . n e t _ C a n o
0141040 n N e t [ i t e m . n e t ] ; \r
0141060 \r A S S E R T [ i t
0141100 e m . c o v e r . x 1 < = f . c
0141120 o v e r . x 1 ] ; \r \r
0141140 I F f # i t e m A N D f
0141160 . c o v e r . x 1 < i t e m . c
0141200 o v e r . x 2 + d i s t A N D
0141220 \r c n i t e m #
0141240 c n f A N D i t e m . l e v
0141260 = f . l e v T H E N \r
0141300 - - M i n s e p a r
0141320 a t i o n i s n o t v i o
0141340 l a t e d i f t h e r e i
0141360 s p o l y 376 001 \0 x 373 \r
0141400 - - b e t w e e n t
0141420 h e t w o d i f f u s e d
0141440 r e g i o n s \r
0141460 B E G I N \r \r p
0141500 o l y P o s s i b l e : B O O
0141520