$ 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