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