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