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