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