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