$ od -c -N 50000 [_CD8_]<indigoifs>IfsScavenger.dm!5
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 235   D
0036340  034 361  \0  \0 376 001  \0   4   u   /   /       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    A   u   g   u   s   t       1   0   ,       1   9   8   4    
0036560        5   :   5   8       P   M       b   y       F   i   a   l
0036600    a  \r   /   /       L   a   s   t       m   o   d   i   f   i
0036620    e   d       F   e   b   r   u   a   r   y       1   6   ,    
0036640    1   9   8   4           3   :   3   8       P   M       b   y
0036660        B   o   g   g   s  \r  \r   g   e   t       "   I   f   s
0036700    S   c   a   v   e   n   g   e   r   .   d   e   c   l   "  \r
0036720    g   e   t       "   A   l   t   o   F   i   l   e   S   y   s
0036740    .   d   "  \r   g   e   t       " 376 001  \0 336 217   I   f
0036760    s   D   i   r   s   .   d   e   c   l   "  \r   g   e   t    
0037000    "   S   t   r   e   a   m   s   .   d   "  \r   g   e   t    
0037020    "   D   i   s   k   s   .   d   "  \r  \r   e   x   t   e   r
0037040    n   a   l  \r   [  \r   /   /       o   u   t   g   o   i   n
0037060    g       p   r   o   c   e   d   u   r   e   s  \r   I   f   s
0037100    S   c   a   v   e   n   g   e   r   ;       S   c   a   v   N
0037120    o   B   u   f   s   P   r   o   c   ;       S   c   r   a   t
0037140    c   h  \r   S   p   l   i   t   P   u   t   s   ;       L   o
0037160    g   E   r   r   o   r   s   ;       E   x   t   e   n   d   F
0037200    i   l   e  \r  \r   /   /       i   n   c   o   m   i   n   g
0037220        p   r   o   c   e   d   u   r   e   s  \r   P   a   s   s
0037240    1   ;       P   a   s   s   2   ;       D   i   s   k   E   d
0037260    i   t   o   r   ;       D   u   m   p   T   r   e   e   ;    
0037300    D   u   m   p   L   P   T  \r   C   r   e   a   t   e   K   e
0037320    y   w   o   r   d   T   a   b   l   e   ;       I   n   s   e
0037340    r   t   K   e   y   w   o   r   d   ;       C   o   n 376 001
0037360   \0   J   !   f   i   r   m   ;       G   e   t   N   u   m   b
0037400    e   r  \r   O   p   e   n   D   i   s   k   ;       C   l   o
0037420    s   e   D   i   s   k   ;       S   n   a   r   f   B   u   f
0037440    f   e   r  \r   G   e   t   K   e   y   w   o   r   d   ;    
0037460    I   n   i   t   C   m   d   ;       W   R   I   T   E   U   D
0037500    T  \r   C   l   o   s   e   s   ;       P   u   t   s   ;    
0037520    W   s   s   ;       W   s   ;       A   l   l   o   c   a   t
0037540    e   ;       F   r   e   e   ;       S   e   t   B   l   o   c
0037560    k   ;       Z   e   r   o   ;       N   o   o   p  \r   C   a
0037600    l   l   S   w   a   t   ;       I   F   S   E   r   r   o   r
0037620    ;       S   y   s   E   r   r   ;       R   e   t   u   r   n
0037640    F   r   o   m  \r   O   p   e   n   F   i   l   e   ;       C
0037660    r   e   a   t   e   D   i   s   k   S   t   r   e   a   m   ;
0037700        F   i   l   e   L   e   n   g   t   h   ;       P   o   s
0037720    i   t   i   o   n   P   a   g   e  \r   R   e   l   e   a   s
0037740    e   D   i   s   k   P   a   g   e   ;       A   s   s   i   g
0037760    n   D   i 376 001  \0 025 322   s   k   P   a   g   e   ;    
0040000    A   c   t   O   n   D   i   s   k   P   a   g   e   s   ;    
0040020    W   r   i   t   e   D   i   s   k   P   a   g   e   s  \r   D
0040040    i   s   k   F   i   n   d   H   o   l   e   ;       J   u   m
0040060    p   T   o   F   a   ;       G   e   t   C   u   r   r   e   n
0040100    t   F   a  \r  \r   /   /       o   u   t   g   o   i   n   g
0040120        s   t   a   t   i   c   s  \r   s   c   r   a   t   c   h
0040140    D   i   s   k   ;       s   c   a   v   D   i   s   k  \r   n
0040160    u   m   F   i   l   e   s   ;       n   u   m   P   a   g   e
0040200    s   ;       l   p   t   ;       p   a   s   s   ;       p   h
0040220    a   s   e  \r   e   d   i   t   H   o   m   e   F   l   a   g
0040240    ;       i   n   i   t   T   r   e   e   F   l   a   g   ;    
0040260    i   n   i   t   L   p   t   F   l   a   g   ;       d   e   b
0040300    u   g   F   l   a   g   ;       j   u   s   t   F   i   x   D
0040320    i   r   F   l   a   g  \r  \r   /   /       i   n   c   o   m
0040340    i   n   g       s   t   a   t   i   c   s  \r   d   s   p   ;
0040360        k   e   y   s   ;       s 376 001  \0   z   N   y   s   D
0040400    i   s   k   ;       n   u   m   V   M   e   m   B   u   f   s
0040420    ;       s   y   s   Z   o   n   e  \r   w   o   r   d   s   P
0040440    e   r   P   a   g   e   ;       b   y   t   e   s   P   e   r
0040460    P   a   g   e  \r   ]  \r  \r   s   t   a   t   i   c  \r   [
0040500   \r   s   c   r   a   t   c   h   D   i   s   k   ;       s   c
0040520    a   v   D   i   s   k  \r   n   u   m   F   i   l   e   s   ;
0040540        n   u   m   P   a   g   e   s   ;       l   p   t   ;    
0040560    p   a   s   s   ;       p   h   a   s   e  \r  \r   e   d   i
0040600    t   H   o   m   e   F   l   a   g       =       f   a   l   s
0040620    e  \r   i   n   i   t   T   r   e   e   F   l   a   g       =
0040640        f   a   l   s   e  \r   i   n   i   t   L   p   t   F   l
0040660    a   g       =       t   r   u   e  \r   d   e   b   u   g   F
0040700    l   a   g       =       f   a   l   s   e  \r   j   u   s   t
0040720    F   i   x   D   i   r   F   l   a   g       =       f   a   l
0040740    s   e  \r  \r   k   b   d   K   T   ;       k   b   d   C   S
0040760   \r   ]  \r  \f  \r   /   /   -   -   -   -   -   - 376 001  \0
0041000    9 024   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0041020    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0041120    -   -   -   -   -  \r   l   e   t       I   f   s   S   c   a
0041140    v   e   n   g   e   r   (   )       b   e  \r   /   /   -   -
0041160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0041300    -   -   -   -   -   -   -  \r   [  \r   W   s   (   "   I   F
0041320    S       S   c   a   v   e   n   g   e   r       o   f       1
0041340    0       A   u   g   u   s   t       1   9   8   4   "   )  \r
0041360    W   s   (   "   *   N   S   t   a   r   t   e   d       a   t
0041400        " 376 001  \0 312  \v   )   ;       W   R   I   T   E   U
0041420    D   T   (   d   s   p   ,       0   ,       t   r   u   e   )
0041440   \r  \r   k   b   d   K   T       =       C   r   e   a   t   e
0041460    K   e   y   w   o   r   d   T   a   b   l   e   (   1   3   ,
0041500        1   )  \r   I   n   s   e   r   t   K   e   y   w   o   r
0041520    d   (   k   b   d   K   T   ,       "   D   e   b   u   g   "
0041540    )   !   0       =       D   e   b   u   g  \r   I   n   s   e
0041560    r   t   K   e   y   w   o   r   d   (   k   b   d   K   T   ,
0041600        "   D   i   s   k   E   d   i   t   o   r   "   )   !   0
0041620        =       S   e   t   u   p   D   i   s   k   E   d   i   t
0041640    o   r  \r   I   n   s   e   r   t   K   e   y   w   o   r   d
0041660    (   k   b   d   K   T   ,       "   D   u   m   p   L   P   T
0041700    "   )   !   0       =       D   u   m   p   L   P   T  \r   I
0041720    n   s   e   r   t   K   e   y   w   o   r   d   (   k   b   d
0041740    K   T   ,       "   D   u   m   p   T   r   e   e   "   )   !
0041760    0       =       D   u   m   p   T   r   e   e  \r   I   n   s
0042000    e   r   t   K   e   y   w 376 001  \0 210 342   o   r   d   (
0042020    k   b   d   K   T   ,       "   E   d   i   t   H   o   m   e
0042040    "   )   !   0       =       E   d   i   t   H   o   m   e  \r
0042060    I   n   s   e   r   t   K   e   y   w   o   r   d   (   k   b
0042100    d   K   T   ,       "   I   n   i   t   L   P   T   "   )   !
0042120    0       =       I   n   i   t   L   P   T  \r   I   n   s   e
0042140    r   t   K   e   y   w   o   r   d   (   k   b   d   K   T   ,
0042160        "   I   n   i   t   T   r   e   e   "   )   !   0       =
0042200        I   n   i   t   T   r   e   e  \r   I   n   s   e   r   t
0042220    K   e   y   w   o   r   d   (   k   b   d   K   T   ,       "
0042240    J   u   s   t   F   i   x   D   i   r   "   )   !   0       =
0042260        J   u   s   t   F   i   x   D   i   r  \r   I   n   s   e
0042300    r   t   K   e   y   w   o   r   d   (   k   b   d   K   T   ,
0042320        "   P   a   s   s   1   "   )   !   0       =       P   a
0042340    s   s   1  \r   I   n   s   e   r   t   K   e   y   w   o   r
0042360    d   (   k   b   d   K   T   ,       "   P   a   s   s   2   "
0042400    )   !   0       =       S   e   t   u   p   P 376 001  \0   d
0042420    k   a   s   s   2  \r   I   n   s   e   r   t   K   e   y   w
0042440    o   r   d   (   k   b   d   K   T   ,       "   Q   u   i   t
0042460    "   )   !   0       =       Q   u   i   t  \r   I   n   s   e
0042500    r   t   K   e   y   w   o   r   d   (   k   b   d   K   T   ,
0042520        "   S   c   a   v   e   n   g   e   "   )   !   0       =
0042540        S   c   a   v   e   n   g   e  \r   I   n   s   e   r   t
0042560    K   e   y   w   o   r   d   (   k   b   d   K   T   ,       "
0042600    S   c   r   a   t   c   h   "   )   !   0       =       S   c
0042620    r   a   t   c   h  \r  \r               [  \r               k
0042640    b   d   C   S       =       I   n   i   t   C   m   d   (   5
0042660    0   0   ,       1   5   )       r   e   p   e   a   t   u   n
0042700    t   i   l       k   b   d   C   S       n   e       0  \r    
0042720            W   s   s   (   k   b   d   C   S   ,       "   *   N
0042740    *   *   "   )  \r               l   e   t       k   t   e    
0042760    =       G   e   t   K   e   y   w   o   r   d   (   k   b   d
0043000    C   S   ,       k   b   d   K   T   )  \r               P   u
0043020    t 376 001  \0 367 200   s   (   k   b   d   C   S   ,       $
0043040    *   S   )  \r               (   k   t   e   !   0   )   (   )
0043060   \r               C   l   o   s   e   s   (   k   b   d   C   S
0043100    )  \r               ]       r   e   p   e   a   t  \r   ]  \r
0043120   \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -   -
0043140    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0043240    -   -   -   -   -   -   -   -   -   -   -   -  \r   a   n   d
0043260        S   e   t   u   p   (   P   r   o   c   ,       n   u   m
0043300    V   P   a   g   e   s   )       b   e  \r   /   /   -   -   -
0043320    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0043420    -   -   -   -   -   - 376 001  \0   :   9   -   -   -   -   -
0043440    -   -   -   -   -   -   -   -   -   -   -  \r   [  \r   l   e
0043460    t       b   u   f   f   P   t   r   ,       n   u   m   B   u
0043500    f   f   s       =       n   i   l   ,       (   n   u   m   V
0043520    M   e   m   B   u   f   s   -   n   u   m   V   P   a   g   e
0043540    s   )       *   4  \r               [  \r               b   u
0043560    f   f   P   t   r       =       S   n   a   r   f   B   u   f
0043600    f   e   r   (   0   ,       n   u   m   B   u   f   f   s   )
0043620    ;       i   f       b   u   f   f   P   t   r       n   e    
0043640    0       b   r   e   a   k  \r               n   u   m   B   u
0043660    f   f   s       =       n   u   m   B   u   f   f   s       -
0043700    1  \r               i   f       n   u   m   B   u   f   f   s
0043720        e   q       0       t   h   e   n       I   F   S   E   r
0043740    r   o   r   (   1   3   )  \r               ]       r   e   p
0043760    e   a   t  \r   P   r   o   c   (   b   u   f   f   P   t   r
0044000    ,       n   u   m   B   u   f   f   s   )  \r   ]  \r  \r   /
0044020    /       T   h   e       1   6       b   e 376 001  \0 203 331
0044040    l   o   w       i   s       4       o   p   e   n       f   i
0044060    l   e   s       (   l   p   t       +       3       s   o   r
0044100    t       f   i   l   e   s   )       +       1   2       p   a
0044120    g   e   s       f   o   r       o   v   e   r   l   a   y   s
0044140   \r   /   /       T   h   e       1   2       p   a   g   e   s
0044160        f   o   r       o   v   e   r   l   a   y   s       i   s
0044200        d   e   t   e   r   m   i   n   e   d       e   m   p   i
0044220    r   i   c   a   l   l   y  \r   /   /   -   -   -   -   -   -
0044240    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0044360    -   -   -  \r   a   n   d       S   e   t   u   p   P   a   s
0044400    s   2   (   )       b   e       S   e   t   u   p   (   P   a
0044420    s   s   2   ,       1   6   )  \r   /   /   -   -   -   -   -
0044440  376 001  \0 210 263   -   -   -   -   -   -   -   -   -   -   -
0044460    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0044560    -   -   -   -   -   -   -   -   -  \r  \r   /   /   -   -   -
0044600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0044720    -   -   -   -   -   -  \r   a   n   d       S   e   t   u   p
0044740    D   i   s   k   E   d   i   t   o   r   (   )       b   e    
0044760    S   e   t   u   p   (   D   i   s   k   E   d   i   t   o   r
0045000    ,       1   0   )  \r   /   /   -   -   -   -   -   -   -   -
0045020    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0045040    -   -   -   -   - 376 001  \0   y 300   -   -   -   -   -   -
0045060    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0045140    -   -   -   -   -   -  \r  \f  \r   /   /   -   -   -   -   -
0045160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0045300    -   -   -   -  \r   a   n   d       S   c   a   v   e   n   g
0045320    e   (   )       b   e  \r   /   /   -   -   -   -   -   -   -
0045340    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0045440    -   -   -   -   -   -   -   -   -   - 376 001  \0 321   n   -
0045460    -   -   -   -   -   -   -  \r   [  \r   l   e   t       q   u
0045500    i   t   F   l   a   g       =       f   a   l   s   e  \r   l
0045520    e   t       d   r   i   v   e   L   i   s   t       =       v
0045540    e   c       7   ;       S   e   t   B   l   o   c   k   (   d
0045560    r   i   v   e   L   i   s   t   ,       -   1   ,       8   )
0045600   \r   i   f       C   o   n   f   i   r   m   (   k   b   d   C
0045620    S   ,       "   *   N   A   r   e       a   l   l       o   f
0045640        t   h   e       p   a   c   k   s       s   p   i   n   n
0045660    i   n   g   ?       "   )       t   h   e   n  \r            
0045700    [  \r               W   s   s   (   k   b   d   C   S   ,    
0045720    "   *   N   H   o   w       m   a   n   y       p   a   c   k
0045740    s       a   r   e       t   h   e   r   e   ?       "   )  \r
0045760                l   e   t       n   u   m   P   a   c   k   s    
0046000    =       G   e   t   N   u   m   b   e   r   (   k   b   d   C
0046020    S   )  \r               i   f       n   u   m   P   a   c   k
0046040    s       g   r       8       t   h   e   n       [       W 376
0046060  001  \0 254 321   s   s   (   k   b   d   C   S   ,       "   *
0046100    N   T   o   o       m   a   n   y   :       8       m   a   x
0046120    "   )   ;       r   e   t   u   r   n       ]  \r            
0046140                [  \r                           l   e   t       d
0046160    i   s   k       =       O   p   e   n   D   i   s   k   (   "
0046200    *   N   S   c   a   n       p   a   c   k       o   n       d
0046220    r   i   v   e       "   ,       0   ,       t   r   u   e   ,
0046240        f   a   l   s   e   )  \r                           i   f
0046260        d   i   s   k       n   e       0       t   h   e   n  \r
0046300                                        [  \r                    
0046320                    l   e   t       d   r   i   v   e   N   u   m
0046340    b   e   r       =       d   i   s   k   >   >   D   S   K   .
0046360    d   r   i   v   e   N   u   m   b   e   r  \r                
0046400                        C   l   o   s   e   D   i   s   k   (   d
0046420    i   s   k   )  \r                                       l   e
0046440    t       d   u   p   l   i   c   a   t   e   ,       h   o   l
0046460    e       =     376 001  \0   d   3   f   a   l   s   e   ,    
0046500    -   1  \r                                       f   o   r    
0046520    i       =       0       t   o       7       d   o  \r        
0046540                                            [  \r                
0046560                                    i   f       d   r   i   v   e
0046600    L   i   s   t   !   i       e   q       d   r   i   v   e   N
0046620    u   m   b   e   r       t   h   e   n       d   u   p   l   i
0046640    c   a   t   e       =       t   r   u   e  \r                
0046660                                    i   f       d   r   i   v   e
0046700    L   i   s   t   !   i       e   q       -   1       &       h
0046720    o   l   e       e   q       -   1       t   h   e   n       h
0046740    o   l   e       =       i  \r                                
0046760                    ]  \r                                       t
0047000    e   s   t       d   u   p   l   i   c   a   t   e  \r        
0047020                                            i   f   s   o       W
0047040    s   s   (   k   b   d   C   S   ,       "   *   N   S   a   m
0047060    e       d   r   i   v   e       s 376 001  \0 242   c   p   e
0047100    c   i   f   i   e   d       t   w   i   c   e   "   )  \r    
0047120                                                i   f   n   o   t
0047140   \r                                                            
0047160    [  \r                                                        
0047200        d   r   i   v   e   L   i   s   t   !   h   o   l   e    
0047220    =       d   r   i   v   e   N   u   m   b   e   r  \r        
0047240                                                        i   f    
0047260    h   o   l   e   +   1       e   q       n   u   m   P   a   c
0047300    k   s       b   r   e   a   k  \r                            
0047320                                    ]  \r                        
0047340                ]  \r                           ]       r   e   p
0047360    e   a   t  \r               q   u   i   t   F   l   a   g    
0047400    =       C   o   n   f   i   r   m   (   k   b   d   C   S   ,
0047420        "   *   N   R   e   t   u   r   n       t   o       E   x
0047440    e   c       i   f       a   l   l       g   o   e   s       w
0047460    e   l   l   ?       "   )  \r               ]  \r   i 376 001
0047500   \0 326 234   n   i   t   L   p   t   F   l   a   g       =    
0047520    t   r   u   e  \r   l   e   t       d   r   i   v   e   I   n
0047540    d   e   x       =       0  \r   l   e   t       o   k       =
0047560        v   a   l   o   f  \r               [  \r               o
0047600    k       =       P   a   s   s   1   (   d   r   i   v   e   L
0047620    i   s   t   !   d   r   i   v   e   I   n   d   e   x   )  \r
0047640                d   r   i   v   e   I   n   d   e   x       =    
0047660    d   r   i   v   e   I   n   d   e   x       +   1  \r        
0047700        u   n   l   e   s   s       o   k       r   e   s   u   l
0047720    t   i   s       f   a   l   s   e           /   /   s   o   m
0047740    e   t   h   i   n   g       i   s       w   r   o   n   g  \r
0047760                i   f       o   k       e   q       1   2   3   4
0050000    5   6   b       r   e   s   u   l   t   i   s       t   r   u
0050020    e           /   /   a   l   l       p   a   c   k   s       p
0050040    r   e   s   e   n   t       a   n   d       a   c   c   o   u
0050060    n   t   e   d       f   o   r  \r               /   /       o
0050100    k       s 376 001  \0 376 345   h   o   u   l   d       b   e
0050120        -   1       n   o   w   ,       i   n   d   i   c   a   t
0050140    i   n   g       s   u   c   c   e   s   s       s   c   a   n
0050160    n   i   n   g       t   h   a   t       p   a   c   k  \r    
0050200            ]       r   e   p   e   a   t  \r   i   f       o   k
0050220        t   h   e   n       S   e   t   u   p   P   a   s   s   2
0050240    (   )  \r   i   f       q   u   i   t   F   l   a   g       t
0050260    h   e   n       Q   u   i   t   (   )  \r   ]  \r  \f  \r   /
0050300    /   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0050320    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0050420    -   -   -   -   -   -   -   -   -   -  \r   a   n   d       D
0050440    e   b   u   g   (   )       b   e       T   o   g   g   l   e
0050460    F   l   a   g   (   l   v       d   e   b   u   g   F   l   a
0050500    g   )  \r   /   /   -   -   - 376 001  \0 036 261   -   -   -
0050520    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0050640    -   -   -  \r  \r   /   /   -   -   -   -   -   -   -   -   -
0050660    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0051000   \r   a   n   d       I   n   i   t   L   P   T   (   )       b
0051020    e       T   o   g   g   l   e   F   l   a   g   (   l   v    
0051040    i   n   i   t   L   p   t   F   l   a   g   )  \r   /   /   -
0051060    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0051100    -   -   -   -   -   -   -   -   -   -   -   -   - 376 001  \0
0051120    x 375   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0051140    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0051200    -   -   -   -   -   -   -   -   -   -   -   -   -  \r  \r   /
0051220    /   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0051240    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0051340    -   -   -   -   -   -   -   -   -   -  \r   a   n   d       I
0051360    n   i   t   T   r   e   e   (   )       b   e       T   o   g
0051400    g   l   e   F   l   a   g   (   l   v       i   n   i   t   T
0051420    r   e   e   F   l   a   g   )  \r   /   /   -   -   -   -   -
0051440    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0051520    -   - 376 001  \0  \b   D   -   -   -   -   -   -   -   -   -
0051540    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0051560    -   -   -   -   -   -   -   -   -  \r  \r   /   /   -   -   -
0051600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0051720    -   -   -   -   -   -  \r   a   n   d       E   d   i   t   H
0051740    o   m   e   (   )       b   e       T   o   g   g   l   e   F
0051760    l   a   g   (   l   v       e   d   i   t   H   o   m   e   F
0052000    l   a   g   )  \r   /   /   -   -   -   -   -   -   -   -   -
0052020    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0052120    -   -   -   -   -   -   - 376 001  \0 237   w   -   -   -   -
0052140    -   -   -   -   -  \r  \r   /   /   -   -   -   -   -   -   -
0052160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0052300    -   -  \r   a   n   d       J   u   s   t   F   i   x   D   i
0052320    r   (   )       b   e       T   o   g   g   l   e   F   l   a
0052340    g   (   l   v       j   u   s   t   F   i   x   D   i   r   F
0052360    l   a   g   )  \r   /   /   -   -   -   -   -   -   -   -   -
0052400    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0052520   \r  \r   /   /   -   -   -   -   -   -   -   - 376 001  \0  \r
0052540  336   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0052560    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0052660    -   -  \r   a   n   d       Q   u   i   t   (   )       b   e
0052700        f   i   n   i   s   h  \r   /   /   -   -   -   -   -   -
0052720    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0053040    -   -   -  \r  \r   /   /   -   -   -   -   -   -   -   -   -
0053060    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0053140    - 376 001  \0 261   [   -   -   -   -   -   -   -   -   -   -
0053160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0053200    -   -   -   -   -  \r   a   n   d       T   o   g   g   l   e
0053220    F   l   a   g   (   l   v   F   l   a   g   )       b   e  \r
0053240    /   /   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0053260    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0053360    -   -   -   -   -   -   -   -   -   -   -  \r   /   /       t
0053400    o   g   g   l   e       a       f   l   a   g  \r   [  \r   l
0053420    v   F   l   a   g   !   0       =       n   o   t       l   v
0053440    F   l   a   g   !   0  \r   W   s   s   (   k   b   d   C   S
0053460    ,       l   v   F   l   a   g   !   0   ?       "   Y   e   s
0053500    "   ,       "   N   o   "   )  \r   ]  \r  \r   /   /   -   -
0053520    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0053540    -   -   -   -   -   - 376 001  \0   /   k   -   -   -   -   -
0053560    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0053640    -   -   -   -   -   -   -   -   -   -   -   -  \r   a   n   d
0053660        S   c   r   a   t   c   h   (   n   i   l   ;       n   u
0053700    m   a   r   g   s       n   a   )       =       v   a   l   o
0053720    f  \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -
0053740    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0054040    -   -   -   -   -   -   -   -   -   -   -   -   -  \r   [  \r
0054060    i   f       s   c   r   a   t   c   h   D   i   s   k       n
0054100    e       0       &       s   c   r   a   t   c   h   D   i   s
0054120    k       n   e       s   y   s   D   i   s   k       t   h   e
0054140    n  \r               C   l   o   s   e   D 376 001  \0   H 265
0054160    i   s   k   (   s   c   r   a   t   c   h   D   i   s   k   ,
0054200        t   r   u   e   )  \r   i   f       n   a       g   r    
0054220    0       t   h   e   n       W   s   (   "   *   N   S   c   r
0054240    a   t   c   h       "   )  \r   s   c   r   a   t   c   h   D
0054260    i   s   k       =       O   p   e   n   D   i   s   k   (   "
0054300    d   i   s   k   :       "   ,       t   r   u   e   ,       f
0054320    a   l   s   e   ,       t   r   u   e   )  \r   i   f       s
0054340    c   r   a   t   c   h   D   i   s   k       e   q       0    
0054360    t   h   e   n       W   s   s   (   k   b   d   C   S   ,    
0054400    "       (   I   s       t   h   e       p   a   c   k       f
0054420    o   r   m   a   t   t   e   d   ?   )   "   )  \r   r   e   s
0054440    u   l   t   i   s       s   c   r   a   t   c   h   D   i   s
0054460    k  \r   ]  \r  \f  \r   /   /   -   -   -   -   -   -   -   -
0054500    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0054560  376 001  \0   D 220   -   -   -   -   -   -   -   -   -   -   -
0054600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0054620    -   -   -   -   -   -  \r   a   n   d       S   c   a   v   N
0054640    o   B   u   f   s   P   r   o   c   (   )       b   e       C
0054660    a   l   l   S   w   a   t   (   "   N   o       V   M   e   m
0054700        b   u   f   f   e   r   s   "   )  \r   /   /   -   -   -
0054720    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0055040    -   -   -   -   -   -  \r  \r   /   /   -   -   -   -   -   -
0055060    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0055160    -   -   -   -   - 376 001  \0 273 312   -   -   -   -   -   -
0055200    -   -   -   -   -   -   -   -  \r   l   e   t       S   p   l
0055220    i   t   P   u   t   s   (   s   t   ,       i   t   e   m   )
0055240        b   e  \r   /   /   -   -   -   -   -   -   -   -   -   -
0055260    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0055360    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0055400    /   /       s   p   l   i   t       s   t   r   e   a   m    
0055420    o   p   e   r   a   t   i   o   n       f   o   r       d   s
0055440    p  \r   [  \r   P   u   t   s   (   s   t   >   >   S   T   .
0055460    p   a   r   1   ,       i   t   e   m   )  \r   P   u   t   s
0055500    (   s   t   >   >   S   T   .   p   a   r   2   ,       i   t
0055520    e   m   )  \r   ]  \r  \r   /   /   -   -   -   -   -   -   -
0055540    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0055560    -   -   -   -   -   -   -   -   -   - 376 001  \0 331 356   -
0055600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0055660    -   -   -   -   -   -   -  \r   a   n   d       L   o   g   E
0055700    r   r   o   r   s   (   s   t   ,       e   c   ,       p   a
0055720    r   a   m   )       =       v   a   l   o   f  \r   /   /   -
0055740    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0056060    -   -   -   -   -   -   -   -  \r   [  \r   m   a   n   i   f
0056100    e   s   t  \r               [  \r               B   F   S   D
0056120    i   s   k   F   u   l   l       =       1   1   0   2  \r    
0056140            T   F   S   D   i   s   k   F   u   l   l       =    
0056160    1   4   0   2  \r               ]  \r   i   f       e   c 376
0056200  001  \0 254   #       e   q       B   F   S   D   i   s   k   F
0056220    u   l   l       %       e   c       e   q       T   F   S   D
0056240    i   s   k   F   u   l   l       t   h   e   n  \r            
0056260    [  \r               C   l   o   s   e   s   (   d   s   p   >
0056300    >   S   T   .   p   a   r   2   )  \r               d   s   p
0056320    >   >   S   T   .   p   a   r   2       =       A   l   l   o
0056340    c   a   t   e   (   s   y   s   Z   o   n   e   ,       l   S
0056360    T   )  \r               S   e   t   B   l   o   c   k   (   d
0056400    s   p   >   >   S   T   .   p   a   r   2   ,       N   o   o
0056420    p   ,       l   S   T   )  \r               W   s   (   "   *
0056440    N   D   P   0       i   s       f   u   l   l       -       l
0056460    o   g       f   i   l   e       t   r   u   n   c   a   t   e
0056500    d   *   N   "   )  \r               R   e   t   u   r   n   F
0056520    r   o   m   (   P   u   t   s   )  \r               ]  \r   S
0056540    y   s   E   r   r   (   s   t   ,       e   c   ,       p   a
0056560    r   a   m   )  \r   ]  \r  \f  \r   /   /   -   -   -   -   -
0056600    -   -   -   - 376 001  \0 343 245   -   -   -   -   -   -   -
0056620    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0056720    -   -   -   -   -   -   -   -   -  \r   a   n   d       E   x
0056740    t   e   n   d   F   i   l   e   (   t   f   s   N   a   m   e
0056760    ,       m   a   x   P   N   ,       m   i   n   P   N   )    
0057000    b   e  \r   /   /   -   -   -   -   -   -   -   -   -   -   -
0057020    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0057120    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   [
0057140   \r   /   /       E   x   t   e   n   d   s       a       f   i
0057160    l   e       u   s   i   n   g       t   h   e       l   e   a
0057200    s   t       p   o   s   s   i   b 376 001  \0   [ 273   l   e
0057220        n   u   m   b   e   r       o   f       p   a   g   e    
0057240    r   u   n   s   ,  \r   /   /           e   a   c   h       a
0057260    s       l   o   n   g       a   s       p   o   s   s   i   b
0057300    l   e   .  \r   l   e   t       i   f   p       =       v   e
0057320    c       l   F   P   ;       Z   e   r   o   (   i   f   p   ,
0057340        l   F   P   )  \r   l   e   t       p   n   ,       f   a
0057360        =       -   1   ,       v   e   c       l   F   A  \r   l
0057400    e   t       c   a       =       A   l   l   o   c   a   t   e
0057420    (   s   y   s   Z   o   n   e   ,       w   o   r   d   s   P
0057440    e   r   P   a   g   e   )   ;       Z   e   r   o   (   c   a
0057460    ,       w   o   r   d   s   P   e   r   P   a   g   e   )  \r
0057500                [  \r               l   e   t       h   o   l   e
0057520    S   i   z   e       =       n   i   l  \r               l   e
0057540    t       h   o   l   e   V   D   A       =       D   i   s   k
0057560    F   i   n   d   H   o   l   e   (   s   c   a   v   D   i   s
0057600    k   ,       m   a   x   P   N   -   p   n   ,       l 376 001
0057620   \0 232 343   v       h   o   l   e   S   i   z   e   )  \r    
0057640            i   f       h   o   l   e   V   D   A       e   q    
0057660    -   1       t   e   s   t       p   n       u   l   s       m
0057700    i   n   P   N  \r                           i   f   s   o    
0057720    I   F   S   E   r   r   o   r   (   e   c   F   i   l   e   S
0057740    y   s   t   e   m   F   u   l   l   )  \r                    
0057760        i   f   n   o   t       b   r   e   a   k  \r            
0060000    R   e   l   e   a   s   e   D   i   s   k   P   a   g   e   (
0060020    s   c   a   v   D   i   s   k   ,       A   s   s   i   g   n
0060040    D   i   s   k   P   a   g   e   (   s   c   a   v   D   i   s
0060060    k   ,       h   o   l   e   V   D   A   -   1   )   )  \r    
0060100            l   e   t       s   t       =       n   i   l   ;    
0060120    t   e   s   t       p   n       e   q       -   1  \r        
0060140                    i   f   s   o       s   t       =       O   p
0060160    e   n   F   i   l   e   (   t   f   s   N   a   m   e   ,    
0060200    0   ,       0   ,       0   ,       i   f   p   ,       0   ,
0060220        0   , 376 001  \0   Z   @       0   ,       s   c   a   v
0060240    D   i   s   k   )  \r                           i   f   n   o
0060260    t  \r                                       [  \r            
0060300                            l   e   t       D   A   s       =    
0060320    v   e   c       2  \r                                       D
0060340    A   s   !   0       =       e   o   f   D   A   ;       D   A
0060360    s   !   1       =       f   i   l   l   I   n   D   A   ;    
0060400    D   A   s   !   2       =       e   o   f   D   A  \r        
0060420                                W   r   i   t   e   D   i   s   k
0060440    P   a   g   e   s   (   s   c   a   v   D   i   s   k   ,    
0060460    0   ,       D   A   s   -   p   n   ,       i   f   p   ,    
0060500    p   n   +   1   ,       p   n   +   1   ,       D   C   w   r
0060520    i   t   e   L   D   ,       0   ,       b   y   t   e   s   P
0060540    e   r   P   a   g   e   ,       c   a   )  \r                
0060560                        D   A   s   !   0       =       f   a   >
0060600    >   F   A   .   d   a  \r                                    
0060620    W   r   i   t   e   D   i   s 376 001  \0 203   @   k   P   a
0060640    g   e   s   (   s   c   a   v   D   i   s   k   ,       0   ,
0060660        D   A   s   -   p   n   ,       i   f   p   ,       p   n
0060700    +   1   ,       p   n   +   1   ,       -   1   ,       0   ,
0060720        b   y   t   e   s   P   e   r   P   a   g   e   ,       c
0060740    a   )  \r                                       D   A   s   !
0060760    0       =       f   i   l   l   I   n   D   A   ;       D   A
0061000    s   !   1       =       f   a   >   >   F   A   .   d   a   ;
0061020        D   A   s   !   2       =       f   i   l   l   I   n   D
0061040    A  \r                                       A   c   t   O   n
0061060    D   i   s   k   P   a   g   e   s   (   s   c   a   v   D   i
0061100    s   k   ,       0   ,       D   A   s   -   p   n   +   1   ,
0061120        i   f   p   ,       p   n   ,       p   n   ,       D   C
0061140    r   e   a   d   D   ,       0   ,       0   ,       c   a   )
0061160   \r                                       D   A   s   !   2    
0061200    =       h   o   l   e   V   D   A  \r                        
0061220                W   r   i   t   e   D   i   s   k   P 376 001  \0
0061240  340 257   a   g   e   s   (   s   c   a   v   D   i   s   k   ,
0061260        0   ,       D   A   s   -   p   n   +   1   ,       i   f
0061300    p   ,       p   n   ,       p   n   ,       -   1   ,       0
0061320    ,       b   y   t   e   s   P   e   r   P   a   g   e   ,    
0061340    c   a   )  \r                                       s   t    
0061360    =       C   r   e   a   t   e   D   i   s   k   S   t   r   e
0061400    a   m   (   i   f   p   ,       0   ,       0   ,       0   ,
0061420        0   ,       0   ,       0   ,       s   c   a   v   D   i
0061440    s   k   )  \r                                       f   a   >
0061460    >   F   A   .   d   a       =       h   o   l   e   V   D   A
0061500   \r                                       f   a   >   >   F   A
0061520    .   p   a   g   e   N   u   m   b   e   r       =       p   n
0061540    +   1  \r                                       f   a   >   >
0061560    F   A   .   c   h   a   r   P   o   s       =       0  \r    
0061600                                    J   u   m   p   T   o   F   a
0061620    (   s   t   ,       f   a   )  \r                            
0061640          376  \0 224 270 206   ]  \r               P   o   s   i
0061660    t   i   o   n   P   a   g   e   (   s   t   ,       p   n   +
0061700    h   o   l   e   S   i   z   e   )  \r               G   e   t
0061720    C   u   r   r   e   n   t   F   a   (   s   t   ,       f   a
0061740    )  \r               C   l   o   s   e   s   (   s   t   )  \r
0061760                p   n       =       f   a   >   >   F   A   .   p
0062000    a   g   e   N   u   m   b   e   r  \r               ]       r
0062020    e   p   e   a   t   u   n   t   i   l       p   n       e   q
0062040        m   a   x   P   N  \r   F   r   e   e   (   s   y   s   Z
0062060    o   n   e   ,       c   a   )  \r   ]  \r 377  \0  \0   I   f
0062100    s   S   c   a   v   O   v   I   n   i   t   .   b   c   p   l
0062120   \0 373 224 214   !   h  \0  \0 376 001  \0 342   Z   /   /    
0062140    I   f   s   S   c   a   v   O   v   I   n   i   t   .   b   c
0062160    p   l       -       o   n   c   e       o   n   l   y       c
0062200    o   d   e  \r   /   /       C   o   p   y   r   i   g   h   t
0062220        X   e   r   o   x       C   o   r   p   o   r   a   t   i
0062240    o   n       1   9   7   9  \r   /   /       L   a   s   t    
0062260    m   o   d   i   f   i   e   d       D   e   c   e   m   b   e
0062300    r       2   2   ,       1   9   7   9           3   :   0   3
0062320        P   M       b   y       B   o   g   g   s  \r  \r   g   e
0062340    t       "   D   i   s   k   s   .   d   "  \r  \r   e   x   t
0062360    e   r   n   a   l  \r   [  \r   /   /       o   u   t   g   o
0062400    i   n   g       p   r   o   c   e   d   u   r   e   s  \r   D
0062420    e   c   l   a   r   e   A   l   l   O   E   P   s   ;       I
0062440    n   i   t   D   i   s   k   s   F   i   n   i   s   h  \r  \r
0062460    /   /       i   n   c   o   m   i   n   g       p   r   o   c
0062500    e   d   u   r   e   s  \r   P   a   s   s   1   ;       P   a
0062520    s   s   2   ;       D   i   s   k   E   d   i   t 376 001  \0
0062540  200 276   o   r   ;       D   u   m   p   L   P   T   ;       D
0062560    u   m   p   T   r   e   e  \r  \r   D   e   c   l   a   r   e
0062600    O   E   P   ;       I   n   i   t   B   T   r   e   e   O   E
0062620    P   ;       I   n   i   t   D   i   s   k   S   t   r   e   a
0062640    m   s   O   E   P  \r   I   n   i   t   C   m   d   S   c   a
0062660    n   O   E   P   ;       I   n   i   t   K   e   y   w   o   r
0062700    d   O   E   P   ;       I   n   i   t   S   t   r   i   n   g
0062720    O   E   P  \r  \r   T   F   S   W   r   i   t   e   P   a   g
0062740    e   s   ;       T   F   S   A   s   s   i   g   n   D   i   s
0062760    k   P   a   g   e   ;       T   F   S   C   r   e   a   t   e
0063000    F   i   l   e  \r   T   F   S   D   e   l   e   t   e   P   a
0063020    g   e   s   ;       T   F   S   R   e   l   e   a   s   e   D
0063040    i   s   k   P   a   g   e   ;       T   F   S   C   l   o   s
0063060    e  \r   I   F   S   O   p   e   n   D   D   ;       B   F   S
0063100    F   l   u   s   h   D   D   ;       B   F   S   D   e   s   t
0063120    r   o   y   D   D   M   g   r  \r   I   F   S   C   l   o   s
0063140    e   D 376 001  \0 212   :   D   ;       I   F   S   L   o   c
0063160    k   D   D   ;       I   F   S   U   n   l   o   c   k   D   D
0063200    ;       I   F   S   R   e   a   d   D   D   P   a   g   e  \r
0063220    B   F   S   C   l   o   s   e   D   D   ;       B   F   S   L
0063240    o   c   k   D   D   ;       B   F   S   U   n   l   o   c   k
0063260    D   D   ;       B   F   S   R   e   a   d   D   D   P   a   g
0063300    e  \r   B   F   S   W   r   i   t   e   P   a   g   e   s   ;
0063320        B   F   S   A   s   s   i   g   n   D   i   s   k   P   a
0063340    g   e   ;       B   F   S   C   r   e   a   t   e   F   i   l
0063360    e  \r   B   F   S   D   e   l   e   t   e   P   a   g   e   s
0063400    ;       B   F   S   R   e   l   e   a   s   e   D   i   s   k
0063420    P   a   g   e   ;       B   F   S   C   l   o   s   e  \r  \r
0063440    I   F   S   F   i   n   i   s   h   ;       W   s   s   ;    
0063460    I   F   S   E   r   r   o   r   ;       P   r   i   n   t   R
0063500    e   a   l   D   A  \r  \r   /   /       i   n   c   o   m   i
0063520    n   g       s   t   a   t   i   c   s  \r   l   v   U   s   e
0063540    r   F   i   n   i   s   h 376 001  \0 272   )   P   r   o   c
0063560    ;       b   f   s   D   D   M   g   r   ;       s   y   s   D
0063600    i   s   k  \r   ]  \r  \r   m   a   n   i   f   e   s   t    
0063620    e   c   B   a   d   U   F   P       =       2   3  \r  \f  \r
0063640    /   /   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0063660    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0063740    -   -   -   -   -   -   -   -   -   -   -   -   -  \r   l   e
0063760    t       D   e   c   l   a   r   e   A   l   l   O   E   P   s
0064000    (   o   e   v   )       b   e  \r   /   /   -   -   -   -   -
0064020    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0064120    -   -   -   -   -   -  \r   [  \r   I   n   i   t   B   T   r
0064140    e   e   O   E   P   (   o   e   v   )  \r   I 376 001  \0 034
0064160    m   n   i   t   D   i   s   k   S   t   r   e   a   m   s   O
0064200    E   P   (   o   e   v   )  \r   I   n   i   t   C   m   d   S
0064220    c   a   n   O   E   P   (   o   e   v   )  \r   I   n   i   t
0064240    K   e   y   w   o   r   d   O   E   P   (   o   e   v   )  \r
0064260    I   n   i   t   S   t   r   i   n   g   O   E   P   (   o   e
0064300    v   )  \r  \r   i   f       @   l   v   U   s   e   r   F   i
0064320    n   i   s   h   P   r   o   c       n   e       I   F   S   F
0064340    i   n   i   s   h       t   h   e   n       I   F   S   E   r
0064360    r   o   r   (   e   c   B   a   d   U   F   P   )  \r  \r   D
0064400    e   c   l   a   r   e   O   E   P   (   o   e   v   ,       l
0064420    v       D   i   s   k   E   d   i   t   o   r   ,       l   v
0064440        P   a   s   s   1   ,       l   v       P   a   s   s   2
0064460    ,  \r       l   v       D   u   m   p   L   P   T   ,       l
0064500    v       D   u   m   p   T   r   e   e   )  \r   D   e   c   l
0064520    a   r   e   O   E   P   (   o   e   v   ,       l   v       I
0064540    F   S   O   p   e   n   D   D   ,       l   v       I   F   S
0064560    C 376 001  \0   e 315   l   o   s   e   D   D   ,       l   v
0064600        I   F   S   L   o   c   k   D   D   ,  \r       l   v    
0064620    I   F   S   U   n   l   o   c   k   D   D   ,       l   v    
0064640    I   F   S   R   e   a   d   D   D   P   a   g   e   )  \r   D
0064660    e   c   l   a   r   e   O   E   P   (   o   e   v   ,       l
0064700    v       T   F   S   W   r   i   t   e   P   a   g   e   s   ,
0064720        l   v       T   F   S   D   e   l   e   t   e   P   a   g
0064740    e   s   ,       l   v       T   F   S   C   r   e   a   t   e
0064760    F   i   l   e   ,  \r       l   v       T   F   S   A   s   s
0065000    i   g   n   D   i   s   k   P   a   g   e   ,       l   v    
0065020    T   F   S   R   e   l   e   a   s   e   D   i   s   k   P   a
0065040    g   e   ,       l   v       T   F   S   C   l   o   s   e   )
0065060   \r   D   e   c   l   a   r   e   O   E   P   (   o   e   v   ,
0065100        l   v       B   F   S   C   l   o   s   e   D   D   ,    
0065120    l   v       B   F   S   L   o   c   k   D   D   ,       l   v
0065140        B   F   S   U   n   l   o   c   k   D   D   ,  \r       l
0065160    v       B   F   S   R 376 001  \0 275 005   e   a   d   D   D
0065200    P   a   g   e   ,       l   v       B   F   S   F   l   u   s
0065220    h   D   D   ,       l   v       B   F   S   D   e   s   t   r
0065240    o   y   D   D   M   g   r   )  \r   D   e   c   l   a   r   e
0065260    O   E   P   (   o   e   v   ,       l   v       B   F   S   W
0065300    r   i   t   e   P   a   g   e   s   ,       l   v       B   F
0065320    S   D   e   l   e   t   e   P   a   g   e   s   ,       l   v
0065340        B   F   S   C   r   e   a   t   e   F   i   l   e   ,  \r
0065360        l   v       B   F   S   A   s   s   i   g   n   D   i   s
0065400    k   P   a   g   e   ,       l   v       B   F   S   R   e   l
0065420    e   a   s   e   D   i   s   k   P   a   g   e   ,       l   v
0065440        B   F   S   C   l   o   s   e   )  \r   D   e   c   l   a
0065460    r   e   O   E   P   (   o   e   v   ,       l   v       I   F
0065500    S   F   i   n   i   s   h   ,       l   v       W   s   s   ,
0065520        l   v       P   r   i   n   t   R   e   a   l   D   A   )
0065540   \r   ]  \r  \r   /   /   -   -   -   -   -   -   -   -   -   -
0065560    -   -   -   -   -   -   -   -   -   -   - 376 001  \0   z   #
0065600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0065660    -   -   -   -   -   -  \r   a   n   d       I   n   i   t   D
0065700    i   s   k   s   F   i   n   i   s   h   (   )       b   e  \r
0065720    /   /   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0065740    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0066020    -   -   -   -   -   -   -   -   -   -   -   -   -  \r   [  \r
0066040    @   l   v   U   s   e   r   F   i   n   i   s   h   P   r   o
0066060    c       =       I   F   S   F   i   n   i   s   h           /
0066100    /   n   o   w       i   n   s   t   a   l   l       p   o   i
0066120    n   t   e   r       t   o       s   w   a   p   p   a   b   l
0066140    e       v   e   r   s   i   o   n  \r  \r   s   y   s   D   i
0066160    s   k   >   >   D   S   K   .   W   r   i   t   e   D   i   s
0066200  376 001  \0   A 210   k   P   a   g   e   s       =       B   F
0066220    S   W   r   i   t   e   P   a   g   e   s  \r   s   y   s   D
0066240    i   s   k   >   >   D   S   K   .   A   s   s   i   g   n   D
0066260    i   s   k   P   a   g   e       =       B   F   S   A   s   s
0066300    i   g   n   D   i   s   k   P   a   g   e  \r   s   y   s   D
0066320    i   s   k   >   >   D   S   K   .   C   r   e   a   t   e   D
0066340    i   s   k   F   i   l   e       =       B   F   S   C   r   e
0066360    a   t   e   F   i   l   e  \r   s   y   s   D   i   s   k   >
0066400    >   D   S   K   .   D   e   l   e   t   e   D   i   s   k   P
0066420    a   g   e   s       =       B   F   S   D   e   l   e   t   e
0066440    P   a   g   e   s  \r   s   y   s   D   i   s   k   >   >   D
0066460    S   K   .   R   e   l   e   a   s   e   D   i   s   k   P   a
0066500    g   e       =       B   F   S   R   e   l   e   a   s   e   D
0066520    i   s   k   P   a   g   e  \r   s   y   s   D   i   s   k   >
0066540    >   D   S   K   .   C   l   o   s   e   D   i   s   k       =
0066560        B   F   S   C   l   o   s   e  \r  \r   b   f   s   D   D
0066600    M   g   r   >   > 376  \0 346 260 220   D   D   M   g   r   .
0066620    L   o   c   k   D   D       =       B   F   S   L   o   c   k
0066640    D   D  \r   b   f   s   D   D   M   g   r   >   >   D   D   M
0066660    g   r   .   R   e   a   d   D   D   P   a   g   e       =    
0066700    B   F   S   R   e   a   d   D   D   P   a   g   e  \r   b   f
0066720    s   D   D   M   g   r   >   >   D   D   M   g   r   .   U   n
0066740    l   o   c   k   D   D       =       B   F   S   U   n   l   o
0066760    c   k   D   D  \r   b   f   s   D   D   M   g   r   >   >   D
0067000    D   M   g   r   .   F   l   u   s   h   D   D       =       B
0067020    F   S   F   l   u   s   h   D   D  \r   b   f   s   D   D   M
0067040    g   r   >   >   D   D   M   g   r   .   C   l   o   s   e   D
0067060    D       =       B   F   S   C   l   o   s   e   D   D  \r   b
0067100    f   s   D   D   M   g   r   >   >   D   D   M   g   r   .   D
0067120    e   s   t   r   o   y   D   D   M   g   r       =       B   F
0067140    S   D   e   s   t   r   o   y   D   D   M   g   r  \r   ]  \r
0067160  377  \0  \0   I   f   s   S   c   a   v   C   S   D   s   p   .
0067200    b   c   p   l  \0 373 226   ? 027   S  \0  \0 376 001  \0 317
0067220  263   /   /       I   f   s   S   c   a   v   C   S   D   s   p
0067240    .   b   c   p   l       -   -       I   f   s       S   c   a
0067260    v   e   n   g   e   r       d   e   p   e   n   d   e   n   t
0067300        p   o   r   t   i   o   n       o   f       t   h   e  \r
0067320    /   /  \t   c   o   m   m   a   n   d       s   c   a   n   n
0067340    e   r       p   a   c   k   a   g   e   .           T   h   i
0067360    s       f   i   l   e       s   t   a   r   t   e   d       o
0067400    u   t       l   i   f   e       a   s  \r   /   /  \t   C   m
0067420    d   S   c   a   n   D   i   s   p   l   a   y   .   b   c   p
0067440    l  \r   /   /       C   o   p   y   r   i   g   h   t       X
0067460    e   r   o   x       C   o   r   p   o   r   a   t   i   o   n
0067500        1   9   7   9   ,       1   9   8   0  \r   /   /       L
0067520    a   s   t       m   o   d   i   f   i   e   d       N   o   v
0067540    e   m   b   e   r       1   6   ,       1   9   8   0        
0067560    3   :   1   1       P   M       b   y       B   o   g   g   s
0067600   \r  \r   g   e   t       "   C   m   d   S   c   a   n   .   d
0067620    e 376 001  \0   $ 216   c   l   "  \r   g   e   t       "   A
0067640    l   t   o   D   e   f   s   .   d   "  \r  \r   e   x   t   e
0067660    r   n   a   l  \r   [  \r   /   /       o   u   t   g   o   i
0067700    n   g       p   r   o   c   e   d   u   r   e   s  \r   D   e
0067720    f   E   r   a   s   e   ;       D   e   f   E   r   r   o   r
0067740    ;       D   e   f   B   r   e   a   k   ;       D   e   f   E
0067760    c   h   o   ;       C   m   d   E   r   r   o   r   ;       I
0070000    n   v   e   r   t   W   i   n   d   o   w  \r  \r   /   /    
0070020    i   n   c   o   m   i   n   g       p   r   o   c   e   d   u
0070040    r   e   s  \r   C   h   a   r   W   i   d   t   h   ;       G
0070060    e   t   B   i   t   P   o   s   ;       G   e   t   L   m   a
0070100    r   g   ;       E   r   a   s   e   B   i   t   s  \r   P   u
0070120    t   s   ;       R   e   s   e   t   s   ;       W   s   s   ;
0070140        S   y   s   E   r   r   ;       N   o   o   p  \r   C   u
0070160    r   r   e   n   t   P   h   r   a   s   e   ;       B   a   c
0070200    k   u   p   P   h   r   a   s   e   ;       D   i   s   m   i
0070220    s   s  \r   F   i   l 376 001  \0 356  \t   e   P   o   s   ;
0070240        S   e   t   F   i   l   e   P   o   s   ;       D   o   u
0070260    b   l   e   I   n   c   r   e   m   e   n   t  \r   ]  \r  \r
0070300   \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -   -
0070320    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0070400    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   l
0070420    e   t       D   e   f   E   r   a   s   e   (   c   s   ,    
0070440    f   i   r   s   t   ,       l   a   s   t   ,       c   o   n
0070460    t   e   x   t   )       b   e  \r   /   /   -   -   -   -   -
0070500    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0070600    -   -   -   -   -   -  \r   [  \r   /   /   s   c   a   v   e
0070620    n   g   e   r   '   s       d   s   p     376 001  \0   ? 032
0070640    i   s       a       s   p   l   i   t       s   t   r   e   a
0070660    m   :  \r   l   e   t       d   s       =       c   s   >   >
0070700    C   S   .   d   s   p   S   >   >   S   T   .   p   a   r   1
0070720            /   /   p   a   r   1       -   >       d   i   s   p
0070740    l   a   y       s   t   r   e   a   m  \r   l   e   t       k
0070760    s       =       c   s   >   >   C   S   .   d   s   p   S   >
0071000    >   S   T   .   p   a   r   2           /   /   p   a   r   2
0071020        -   >       d   i   s   k       s   t   r   e   a   m  \r
0071040    l   e   t       b   i   t   s       =       0  \r   l   e   t
0071060        c   h   a   r   s       =       0  \r   f   o   r       i
0071100        =       f   i   r   s   t       t   o       l   a   s   t
0071120        d   o  \r               [  \r               l   e   t    
0071140    c   h   a   r       =       c   s   >   >   C   S   .   b   u
0071160    f   >   >   B   u   f   ^   i  \r               i   f       c
0071200    h   a   r       l   s       #   2   0   0       t   h   e   n
0071220   \r                           [  \r                           i
0071240  376 001  \0  \r 233   f       c   h   a   r       e   q       $
0071260    *   n       t   h   e   n       b   i   t   s       =       9
0071300    9   9   9  \r                           c   h   a   r   s    
0071320    =       c   h   a   r   s       +   1  \r                    
0071340        b   i   t   s       =       b   i   t   s       +       (
0071360    c   h   a   r       g   e       #   4   0   ?       C   h   a
0071400    r   W   i   d   t   h   (   d   s   ,       c   h   a   r   )
0071420    ,  \r                               C   h   a   r   W   i   d
0071440    t   h   (   d   s   ,       $   ^   )   +   C   h   a   r   W
0071460    i   d   t   h   (   d   s   ,       c   h   a   r   +   #   1
0071500    0   0   )   )  \r                           ]  \r            
0071520    ]  \r   t   e   s   t       b   i   t   s       l   e       G
0071540    e   t   B   i   t   P   o   s   (   d   s   )   -   G   e   t
0071560    L   m   a   r   g   (   d   s   )  \r               i   f   s
0071600    o       E   r   a   s   e   B   i   t   s   (   d   s   ,    
0071620    -   b   i   t   s   )  \r               i   f   n   o   t  \r
0071640                      376 001  \0 323   E       [           /   /
0071660    e   r   a   s   i   n   g       p   a   s   t       l   e   f
0071700    t       m   a   r   g   i   n  \r                           R
0071720    e   s   e   t   s   (   d   s   )  \r                        
0071740    f   o   r       i       =       0       t   o       f   i   r
0071760    s   t   -   1       d   o  \r                                
0072000        i   f       c   s   >   >   C   S   .   b   u   f   >   >
0072020    B   u   f   ^   i       l   s       #   2   0   0       t   h
0072040    e   n       P   u   t   s   (   d   s   ,       c   s   >   >
0072060    C   S   .   b   u   f   >   >   B   u   f   ^   i   )  \r    
0072100                        ]  \r   u   n   l   e   s   s       k   s
0072120    >   >   S   T   .   p   u   t   s       e   q       N   o   o
0072140    p       d   o  \r               [  \r               l   e   t
0072160        f   i   l   e   P   o   s       =       v   e   c       1
0072200    ;       F   i   l   e   P   o   s   (   k   s   ,       f   i
0072220    l   e   P   o   s   )  \r               D   o   u   b   l   e
0072240    I   n   c   r   e   m   e   n   t   ( 376 001  \0   R   =   f
0072260    i   l   e   P   o   s   ,       -   c   h   a   r   s   )  \r
0072300                S   e   t   F   i   l   e   P   o   s   (   k   s
0072320    ,       f   i   l   e   P   o   s   )  \r               ]  \r
0072340    ]  \r  \r  \r   /   /   -   -   -   -   -   -   -   -   -   -
0072360    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0072460    -  \r   a   n   d       D   e   f   B   r   e   a   k   (   c
0072500    s   ,       c   h   a   r   )       =       c   h   a   r    
0072520    e   q       $   *   n       %       c   h   a   r       e   q
0072540        $   *   s       %       c   h   a   r       e   q       $
0072560    *   0   3   3  \r   /   /   -   -   -   -   -   -   -   -   -
0072600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0072640    -   -   -   -   -   -   -   -   -   -   -   -   -   -   - 376
0072660  001  \0   G 305   -   -   -   -   -   -   -   -   -   -   -   -
0072700    -   -   -   -   -   -   -  \r  \r   /   /   -   -   -   -   -
0072720    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0073020    -   -   -   -   -   -  \r   a   n   d       D   e   f   E   c
0073040    h   o   (   c   s   ,       c   h   a   r   )       =       n
0073060    o   t       C   u   r   r   e   n   t   P   h   r   a   s   e
0073100    (   c   s   )   >   >   P   D   .   P   h   r   a   s   e   T
0073120    e   r   m   i   n   a   t   o   r   (   c   s   ,       c   h
0073140    a   r   )  \r   /   /   -   -   -   -   -   -   -   -   -   -
0073160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0073260    -  \r  \f  \r 376 001  \0 031 335   /   /   -   -   -   -   -
0073300    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0073400    -   -   -   -   -   -  \r   a   n   d       D   e   f   E   r
0073420    r   o   r   (   c   s   ,       e   c   )       b   e  \r   /
0073440    /   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0073460    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0073540    -   -   -   -   -   -   -   -   -   -   -   -  \r   [  \r   c
0073560    s   >   >   C   S   .   e   r   r   o   r   C   o   d   e    
0073600    =       e   c  \r   s   w   i   t   c   h   o   n       e   c
0073620        i   n   t   o  \r               [  \r               c   a
0073640    s   e       e   c   C   m   d   D   e   l   e   t   e   :  \r
0073660                            W   s   s 376 001  \0 330 316   (   c
0073700    s   >   >   C   S   .   d   s   p   S   ,       "       X   X
0073720    X   "   )           /   /   f   a   l   l       i   n   t   o
0073740        n   e   x   t       c   a   s   e  \r               c   a
0073760    s   e       e   c   C   m   d   D   e   s   t   r   o   y   :
0074000   \r                           [       c   s   >   >   C   S   .
0074020    d   e   s   t   r   o   y       =       t   r   u   e   ;    
0074040    B   a   c   k   u   p   P   h   r   a   s   e   (   c   s   ,
0074060        c   s   >   >   C   S   .   i   P   h   O   u   t   )    
0074100    ]  \r               c   a   s   e       e   c   C   m   d   T
0074120    o   o   L   o   n   g   :           /   /   j   u   s   t    
0074140    b   l   i   n   k       w   i   n   d   o   w       a   n   d
0074160        d   o       n   o   t   h   i   n   g  \r                
0074200            [       C   m   d   E   r   r   o   r   (   c   s   )
0074220    ;       e   n   d   c   a   s   e       ]  \r               c
0074240    a   s   e       e   c   K   e   y   A   m   b   i   g   u   o
0074260    u   s   :  \r               c   a   s   e       e   c 376 001
0074300   \0 026   0   B   a   c   k   u   p   A   p   p   e   n   d   :
0074320   \r                           [       C   m   d   E   r   r   o
0074340    r   (   c   s   )   ;       B   a   c   k   u   p   P   h   r
0074360    a   s   e   (   c   s   ,       0   ,       e   d   i   t   A
0074400    p   p   e   n   d   )       ]  \r               c   a   s   e
0074420        e   c   T   o   o   M   a   n   y   P   h   r   a   s   e
0074440    s   :  \r               c   a   s   e       e   c   E   n   d
0074460    O   f   P   h   r   a   s   e   :  \r                        
0074500    S   y   s   E   r   r   (   c   s   ,       e   c   )  \r    
0074520            d   e   f   a   u   l   t   :           /   /   a   l
0074540    l       t   y   p   e   s       o   f       s   y   n   t   a
0074560    x       e   r   r   o   r   s       g   e   t       s   a   m
0074600    e       h   a   n   d   l   i   n   g  \r                    
0074620        C   m   d   E   r   r   o   r   (   c   s   ,       "    
0074640    ?   "   )           /   /   f   a   l   l       i   n   t   o
0074660        n   e   x   t       c   a   s   e  \r               c   a
0074700    s   e     376 001  \0   L 237   e   c   B   a   c   k   u   p
0074720    R   e   p   l   a   c   e   :  \r                           B
0074740    a   c   k   u   p   P   h   r   a   s   e   (   c   s   )  \r
0074760                ]  \r   ]  \r  \r  \r   /   /   -   -   -   -   -
0075000    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0075100    -   -   -   -   -   -  \r   a   n   d       C   m   d   E   r
0075120    r   o   r   (   c   s   ,       s   t   r   i   n   g   ;    
0075140    n   u   m   a   r   g   s       n   a   )       b   e  \r   /
0075160    /   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0075200    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0075260    -   -   -   -   -   -   -   -   -   -   -   -  \r   /   /   D
0075300    i   s   p   l   a   y   s     376 001  \0 235 257   s   t   r
0075320    i   n   g       i   f       p   r   e   s   e   n   t   ,    
0075340    b   l   i   n   k   s       d   i   s   p   l   a   y       w
0075360    i   n   d   o   w   ,       a   n   d       r   e   s   e   t
0075400    s       k   e   y   b   o   a   r   d  \r   [  \r   i   f    
0075420    n   a       g   r       1       &       s   t   r   i   n   g
0075440        n   e       0       t   h   e   n       W   s   s   (   c
0075460    s   ,       s   t   r   i   n   g   )  \r   I   n   v   e   r
0075500    t   W   i   n   d   o   w   (   c   s   >   >   C   S   .   d
0075520    s   p   S   >   >   S   T   .   p   a   r   1   )  \r   D   i
0075540    s   m   i   s   s   (   5   0   )  \r   I   n   v   e   r   t
0075560    W   i   n   d   o   w   (   c   s   >   >   C   S   .   d   s
0075600    p   S   >   >   S   T   .   p   a   r   1   )  \r   R   e   s
0075620    e   t   s   (   c   s   >   >   C   S   .   k   e   y   S   )
0075640   \r   ]  \r  \r  \r   /   /   -   -   -   -   -   -   -   -   -
0075660    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0075700    -   -   -   -   -   -   -   -   -   -   -   -   - 376 001  \0
0075720    e 177   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0075740    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0075760    -   -   -   -   -   -   -  \r   a   n   d       I   n   v   e
0076000    r   t   W   i   n   d   o   w   (   d   s   )       b   e  \r
0076020    /   /   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0076040    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0076120    -   -   -   -   -   -   -   -   -   -   -   -   -  \r   [  \r
0076140    l   e   t       d   c   b       =       d   s   >   >   D   S
0076160    .   f   d   c   b  \r               [  \r               d   c
0076200    b   >   >   D   C   B   .   b   a   c   k   g   r   o   u   n
0076220    d       =       n   o   t       d   c   b   >   >   D   C   B
0076240    .   b   a   c   k   g   r   o   u   n   d  \r               i
0076260    f       d   c   b       e   q       d   s   >   >   D   S   .
0076300    l   d   c   b       t   h   e   n       b   r   e   a   k  \r
0076320          376  \0   # 257   o       d   c   b       =       d   c
0076340    b   >   >   D   C   B   .   n   e   x   t  \r               ]
0076360        r   e   p   e   a   t  \r   ]  \r 377  \0  \0   I   f   s
0076400    S   c   a   v   L   p   t   .   b   c   p   l  \0 373 231   p
0076420    j 211  \0  \0 376 001  \0 023   C   /   /       I   f   s   S
0076440    c   a   v   L   p   t   .   b   c   p   l       -   -       r
0076460    o   u   t   i   n   e   s       f   o   r       a   c   c   e
0076500    s   s   i   n   g       t   h   e       l   e   a   d   e   r
0076520        p   a   g   e       t   a   b   l   e  \r   /   /       C
0076540    o   p   y   r   i   g   h   t       X   e   r   o   x       C
0076560    o   r   p   o   r   a   t   i   o   n       1   9   7   9   ,
0076600        1   9   8   0   ,       1   9   8   2  \r   /   /       L
0076620    a   s   t       m   o   d   i   f   i   e   d       J   u   l
0076640    y       2   9   ,       1   9   8   2           3   :   0   6
0076660        P   M       b   y       B   o   g   g   s  \r  \r   g   e
0076700    t       "   I   f   s   S   c   a   v   e   n   g   e   r   .
0076720    d   e   c   l   "  \r   g   e   t       "   S   t   r   e   a
0076740    m   s   .   d   "  \r   g   e   t       "   D   i   s   k   s
0076760    .   d   "  \r   g   e   t       "   I   f   s   .   d   e   c
0077000    l   "  \r  \r   e   x   t   e   r   n   a   l  \r   [  \r   /
0077020    /       o   u   t   g   o   i   n 376 001  \0 240 275   g    
0077040    p   r   o   c   e   d   u   r   e   s  \r   O   p   e   n   L
0077060    P   T   ;       C   l   o   s   e   L   P   T   ;       E   n
0077100    u   m   e   r   a   t   e   L   P   T   ;       F   l   u   s
0077120    h   L   P   T  \r   G   e   t   L   p   t   L   p   t   e   ;
0077140        G   e   t   L   p   t   F   a   ;       G   e   t   L   p
0077160    t   F   s   ;       G   e   t   L   p   t   H   o   m   e  \r
0077200    R   e   a   d   L   P   T   E   ;       W   r   i   t   e   L
0077220    P   T   E   ;       G   e   t   L   p   t   S   o   r   t   e
0077240    d   ;       S   e   t   L   p   t   S   o   r   t   e   d  \r
0077260   \r   G   e   t   L   p   t   e   T   y   p   e   ;       G   e
0077300    t   L   p   t   e   F   l   a   g   s   ;       G   e   t   L
0077320    p   t   e   L   e   n   g   t   h   ;       G   e   t   L   p
0077340    t   e   D   I   F   R   e   c  \r   G   e   t   L   p   t   e
0077360    I   f   p   ;       G   e   t   L   p   t   e   F   a   ;    
0077400    G   e   t   L   p   t   e   I   f   s   N   a   m   e   ;    
0077420    G   e   t   L   p   t   e   T   f   s   N   a   m   e 376 001
0077440   \0 353   u  \r  \r   S   e   t   L   p   t   e   T   y   p   e
0077460    ;       S   e   t   L   p   t   e   F   l   a   g   s   ;    
0077500    S   e   t   L   p   t   e   L   e   n   g   t   h   ;       S
0077520    e   t   L   p   t   e   D   I   F   R   e   c  \r   S   e   t
0077540    L   p   t   e   I   f   p   ;       S   e   t   L   p   t   e
0077560    F   a   ;       S   e   t   L   p   t   e   I   f   s   N   a
0077600    m   e   ;       S   e   t   L   p   t   e   T   f   s   N   a
0077620    m   e  \r  \r   /   /       i   n   c   o   m   i   n   g    
0077640    p   r   o   c   e   d   u   r   e   s  \r   Z   e   r   o   ;
0077660        M   o   v   e   B   l   o   c   k   ;       S   e   t   B
0077700    l   o   c   k   ;       D   e   f   a   u   l   t   A   r   g
0077720    s   ;       C   o   p   y   S   t   r   i   n   g   ;       E
0077740    x   t   r   a   c   t   S   u   b   s   t   r   i   n   g  \r
0077760    O   p   e   n   F   i   l   e   ;       T   r   u   n   c   a
0100000    t   e   D   i   s   k   S   t   r   e   a   m   ;       D   e
0100020    l   e   t   e   F   i   l   e   ;       R   e   a   d   L   e
0100040    a   d   e 376 001  \0 315 314   r   P   a   g   e  \r   F   i
0100060    l   e   L   e   n   g   t   h   ;       F   i   l   e   P   o
0100100    s   ;       S   e   t   F   i   l   e   P   o   s   ;       J
0100120    u   m   p   T   o   F   a   ;       G   e   t   C   u   r   r
0100140    e   n   t   F   a   ;       C   l   e   a   n   u   p   D   i
0100160    s   k   S   t   r   e   a   m  \r   E   n   d   o   f   s   ;
0100200        G   e   t   s   ;       P   u   t   s   ;       C   l   o
0100220    s   e   s   ;       R   e   s   e   t   s   ;       W   r   i
0100240    t   e   B   l   o   c   k   ;       R   e   a   d   B   l   o
0100260    c   k  \r   D   o   u   b   l   e   D   i   f   f   e   r   e
0100300    n   c   e   ;       D   o   u   b   l   e   I   n   c   r   e
0100320    m   e   n   t   ;       R   e   a   d   C   a   l   e   n   d
0100340    a   r   ;       P   r   i   n   t   T   i   m   e  \r   I   F
0100360    S   E   r   r   o   r   ;       A   l   l   o   c   a   t   e
0100400    ;       F   r   e   e   ;       E   n   q   u   e   u   e   ;
0100420        D   e   q   u   e   u   e   ;       C   a   l   l   S   w
0100440    a   t  \r  \r   /   /       i 376 001  \0   l 322   n   c   o
0100460    m   i   n   g       s   t   a   t   i   c   s  \r   s   y   s
0100500    Z   o   n   e   ;       d   e   b   u   g   F   l   a   g   ;
0100520        p   a   s   s   ;       p   h   a   s   e   ;       s   c
0100540    r   a   t   c   h   D   i   s   k  \r   ]  \r  \r   m   a   n
0100560    i   f   e   s   t  \r   [  \r   e   c   S   e   t   L   P   T
0100600    E       =       5   0   7  \r   e   c   M   a   l   f   o   r
0100620    m   e   d   L   P   T   E       =       5   0   8  \r   d   v
0100640    T   y   p   e   H   o   m   e       =       2  \r   ]  \r  \f
0100660   \r   s   t   r   u   c   t   u   r   e       L   P   T   E   :
0100700   \t  \t   /   /       L   e   a   d   e   r       P   a   g   e
0100720        T   a   b   l   e       E   n   t   r   y  \r   [  \r   t
0100740    y   p   e       b   i   t       2  \t  \t   /   /       d   v
0100760    T   y   p   e   F   i   l   e   ,       d   v   T   y   p   e
0101000    F   r   e   e   ,       d   v   T   y   p   e   H   o   m   e
0101020   \r   f   l   a   g   s       b   i   t       4  \t  \t   /   /
0101040        b   i   t   s       d   e   f   i   n   e   d 376 001  \0
0101060  247   ]       i   n       I   f   s   S   c   a   v   e   n   g
0101100    e   r   .   d   e   c   l  \r   p   r   i   v   a   t   e   F
0101120    l   a   g   s       b   i   t       2       =  \r            
0101140    [  \r               d   i   r   t   y       b   i   t  \r    
0101160            g   o   t   L   o   n   g   e   r       b   i   t  \r
0101200                ]  \r   l   e   n   g   t   h       b   y   t   e
0101220   \t  \t   /   /       i   n       w   o   r   d   s       i   n
0101240    c   l   u   d   i   n   g       t   h   i   s       o   n   e
0101260   \r   i   f   p       w   o   r   d       =       @   I   F   P
0101300   \r   f   a       w   o   r   d       =       @   F   A  \t  \t
0101320    /   /       o   f       l   a   s   t       b   y   t   e    
0101340    i   n       f   i   l   e  \r   /   /       F   o   l   l   o
0101360    w   i   n   g       t   h   r   e   e       i   t   e   m   s
0101400        a   r   e       o   f   f   s   e   t   s       r   e   l
0101420    a   t   i   v   e       t   o       L   P   T   E   .   t   y
0101440    p   e   .  \r   /   /       I   f       t   h   e   y       a
0101460    r   e 376 001  \0   + 033       z   e   r   o   ,       t   h
0101500    e   n       n   o       s   p   a   c   e       h   a   s    
0101520    b   e   e   n       a   l   l   o   c   a   t   e   d   .  \r
0101540    i   f   s   N   a   m   e       w   o   r   d  \r   t   f   s
0101560    N   a   m   e       w   o   r   d  \r   d   i   f   R   e   c
0101600        w   o   r   d  \r   ]  \r   m   a   n   i   f   e   s   t
0101620   \r   [  \r   l   e   n   L   P   T   E   H   e   a   d   e   r
0101640        =       s   i   z   e       L   P   T   E   /   1   6  \r
0101660    m   a   x   L   e   n   L   P   T   E       =       1       l
0101700    s   h   i   f   t       s   i   z   e       L   P   T   E   .
0101720    l   e   n   g   t   h  \r   ]  \r  \r   s   t   r   u   c   t
0101740    u   r   e       L   P   T   :  \t  \t   /   /       l   p   t
0101760    >   >   S   T   .   p   a   r   1       p   o   i   n   t   s
0102000        a   t       t   h   i   s  \r   [  \r   f   a       w   o
0102020    r   d       l   F   A  \r   l   p   t   e       w   o   r   d
0102040        m   a   x   L   e   n   L   P   T   E  \r   l   p   t   h
0102060        w   o   r   d       = 376 001  \0 325   4  \r            
0102100    [  \r               s   o   r   t   e   d       w   o   r   d
0102120   \t  \t   /   /       t   r   u   e       i   f       n   o   t
0102140        w   r   i   t   t   e   n       s   i   n   c   e       l
0102160    a   s   t       s   o   r   t   e   d  \r               f   s
0102200        w   o   r   d       n   D   i   s   k   s  \r            
0102220    h   o   m   e       w   o   r   d       l   e   n   H   o   m
0102240    e  \r               ]  \r   ]  \r   m   a   n   i   f   e   s
0102260    t  \r   [  \r   l   e   n   L   P   T       =       s   i   z
0102300    e       L   P   T   /   1   6  \r   l   e   n   L   P   T   H
0102320        =       l   e   n   L   P   T       -       o   f   f   s
0102340    e   t       L   P   T   .   l   p   t   h   /   1   6  \r   ]
0102360   \r  \f  \r   /   /       R   o   u   t   i   n   e   s       f
0102400    o   r       d   e   a   l   i   n   g       w   i   t   h    
0102420    L   e   a   d   e   r       P   a   g   e       T   a   b   l
0102440    e       f   i   l   e   s  \r  \r   /   /   -   -   -   -   -
0102460    -   -   -   -   -   -   -   -   -   -   -   - 376 001  \0   7
0102500  302   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0102520    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0102600    -   -   -   -   -   -   -   -   -  \r   l   e   t       O   p
0102620    e   n   L   P   T   (   n   a   m   e   ,       m   a   k   e
0102640    E   m   p   t   y   )       =       v   a   l   o   f  \r   /
0102660    /   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0102700    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0103000    -   -   -   -   -   -   -   -   -   -  \r   [  \r   l   e   t
0103020        s   t       =       O   p   e   n   F   i   l   e   (   n
0103040    a   m   e   ,       0   ,       0   ,       0   ,       0   ,
0103060        0   ,       0   ,       0   ,       s   c   r   a   t   c
0103100    h 376 001  \0  \f 265   D   i   s   k   )  \r   i   f       s
0103120    t       e   q       0       t   h   e   n       I   F   S   E
0103140    r   r   o   r   (   e   c   S   c   r   a   t   c   h   F   i
0103160    l   e   ,       n   a   m   e   )  \r   l   e   t       l   p
0103200    t       =       A   l   l   o   c   a   t   e   (   s   y   s
0103220    Z   o   n   e   ,       l   e   n   L   P   T   )   ;       Z
0103240    e   r   o   (   l   p   t   ,       l   e   n   L   P   T   )
0103260   \r   s   t   >   >   S   T   .   p   a   r   1       =       l
0103300    p   t  \r   t   e   s   t       m   a   k   e   E   m   p   t
0103320    y  \r               i   f   s   o  \r                        
0103340    [  \r                           S   e   t   B   l   o   c   k
0103360    (   l   v       l   p   t   >   >   L   P   T   .   f   s   ,
0103400        -   1   ,       n   D   i   s   k   s   )  \r            
0103420                F   l   u   s   h   L   P   T   (   s   t   )  \r
0103440                            T   r   u   n   c   a   t   e   D   i
0103460    s   k   S   t   r   e   a   m   (   s   t   )  \r            
0103500                ]  \r     376 001  \0 325   4           i   f   n
0103520    o   t  \r                           [  \r                    
0103540        l   e   t       l   p   t   e       =       G   e   t   s
0103560    (   s   t   )  \r                           i   f       l   p
0103600    t   e   <   <   L   P   T   E   .   t   y   p   e       n   e
0103620        d   v   T   y   p   e   H   o   m   e       t   h   e   n
0103640        I   F   S   E   r   r   o   r   (   e   c   M   a   l   f
0103660    o   r   m   e   d   L   P   T   E   )  \r                    
0103700        R   e   a   d   B   l   o   c   k   (   s   t   ,       l
0103720    v       l   p   t   >   >   L   P   T   .   l   p   t   h   ,
0103740        l   e   n   L   P   T   H   )  \r                        
0103760    F   i   l   e   L   e   n   g   t   h   (   s   t   )        
0104000    /   /   a   p   p   e   n   d       t   o       l   p   t  \r
0104020                            ]  \r   G   e   t   C   u   r   r   e
0104040    n   t   F   a   (   s   t   ,       l   v       l   p   t   >
0104060    >   L   P   T   .   f   a   )  \r   r   e   s   u   l   t   i
0104100    s       s   t  \r   ]  \r  \r   /   /   - 376 001  \0 242   k
0104120    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0104240    -   -   -   -   -   -   -   -  \r   a   n   d       C   l   o
0104260    s   e   L   P   T   (   s   t   ,       d   e   l   e   t   e
0104300    )       =       v   a   l   o   f  \r   /   /   -   -   -   -
0104320    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0104440    -   -   -   -   -  \r   [  \r   i   f       d   e   b   u   g
0104460    F   l   a   g       t   h   e   n       d   e   l   e   t   e
0104500        =       f   a   l   s   e  \r   u   n   l   e   s   s    
0104520  376 001  \0   / 332   d   e   l   e   t   e       d   o       F
0104540    l   u   s   h   L   P   T   (   s   t   )  \r   F   r   e   e
0104560    (   s   y   s   Z   o   n   e   ,       s   t   >   >   S   T
0104600    .   p   a   r   1   )  \r   l   e   t       l   d       =    
0104620    n   i   l  \r   i   f       d   e   l   e   t   e       t   h
0104640    e   n  \r               [  \r               l   d       =    
0104660    A   l   l   o   c   a   t   e   (   s   y   s   Z   o   n   e
0104700    ,       1       l   s   h   i   f   t       s   c   r   a   t
0104720    c   h   D   i   s   k   >   >   D   S   K   .   l   n   P   a
0104740    g   e   S   i   z   e   )  \r               R   e   a   d   L
0104760    e   a   d   e   r   P   a   g   e   (   s   t   ,       l   d
0105000    )  \r               ]  \r   C   l   o   s   e   s   (   s   t
0105020    )  \r   i   f       d   e   l   e   t   e       t   h   e   n
0105040   \r               [  \r               D   e   l   e   t   e   F
0105060    i   l   e   (   l   v       l   d   >   >   L   D   .   n   a
0105100    m   e   ,       0   ,       0   ,       0   ,       0   ,    
0105120    s   c   r   a   t 376 001  \0   g   `   c   h   D   i   s   k
0105140    )  \r               F   r   e   e   (   s   y   s   Z   o   n
0105160    e   ,       l   d   )  \r               ]  \r   r   e   s   u
0105200    l   t   i   s       0  \r   ]  \r  \r   /   /   -   -   -   -
0105220    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0105340    -   -   -   -   -  \r   a   n   d       F   l   u   s   h   L
0105360    P   T   (   s   t   )       b   e  \r   /   /   -   -   -   -
0105400    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0105520    -   -   -   -   -  \r   [  \r   R   e 376 001  \0   @ 227   s
0105540    e   t   s   (   s   t   )  \r   l   e   t       l   p   t   e
0105560        =       0  \r   l   p   t   e   <   <   L   P   T   E   .
0105600    t   y   p   e       =       d   v   T   y   p   e   H   o   m
0105620    e  \r   l   p   t   e   <   <   L   P   T   E   .   l   e   n
0105640    g   t   h       =       1   +   l   e   n   L   P   T   H  \r
0105660    P   u   t   s   (   s   t   ,       l   p   t   e   )  \r   W
0105700    r   i   t   e   B   l   o   c   k   (   s   t   ,       l   v
0105720        s   t   >   >   S   T   .   p   a   r   1   >   >   L   P
0105740    T   .   l   p   t   h   ,       l   e   n   L   P   T   H   )
0105760   \r   C   l   e   a   n   u   p   D   i   s   k   S   t   r   e
0106000    a   m   (   s   t   )  \r   ]  \r  \f  \r   /   /   -   -   -
0106020    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0106120    -   -   -   -   -   -   -   -   -   -   -   -   -   -   - 376
0106140  001  \0 214 335   -   -   -   -   -   -   -  \r   a   n   d    
0106160    R   e   a   d   L   P   T   E   (   s   t   ,       l   p   t
0106200    e   ;       n   u   m   a   r   g   s       n   a   )       =
0106220        v   a   l   o   f  \r   /   /   -   -   -   -   -   -   -
0106240    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0106360    -   -  \r   /   /       R   e   a   d   s       t   h   e    
0106400    n   e   x   t       l   p   t   e       f   r   o   m       l
0106420    p   t      \r   /   /       R   e   t   u   r   n   s       p
0106440    o   i   n   t   e   r       t   o       l   p   t   e       o
0106460    r       z   e   r   o       i   f       E   O   F       e   n
0106500    c   o   u   n   t   e   r   e   d   .  \r   [  \r   i   f    
0106520    E   n   d   o   f   s   (   s   t   )       r   e   s   u   l
0106540    t   i   s     376 001  \0 353   d   0  \r   i   f       n   a
0106560        l   s       2       t   h   e   n       l   p   t   e    
0106600    =       l   v       s   t   >   >   S   T   .   p   a   r   1
0106620    >   >   L   P   T   .   l   p   t   e  \r   l   p   t   e   !
0106640    0       =       G   e   t   s   (   s   t   )  \r   R   e   a
0106660    d   B   l   o   c   k   (   s   t   ,       l   p   t   e   +
0106700    1   ,       l   p   t   e   >   >   L   P   T   E   .   l   e
0106720    n   g   t   h   -   1   )  \r   l   p   t   e   >   >   L   P
0106740    T   E   .   p   r   i   v   a   t   e   F   l   a   g   s    
0106760    =       0           /   /   c   l   e   a   r       d   i   r
0107000    t   y       a   n   d       g   o   t   L   o   n   g   e   r
0107020        b   i   t   s  \r   r   e   s   u   l   t   i   s       l
0107040    p   t   e  \r   ]  \r  \r   /   /   -   -   -   -   -   -   -
0107060    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0107140    -   -   -   -   -   -   -   -   - 376 001  \0   <   R   -   -
0107160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0107200    -   -   -   -   -   -   -  \r   a   n   d       W   r   i   t
0107220    e   L   P   T   E   (   s   t   ,       l   p   t   e   ;    
0107240    n   u   m   a   r   g   s       n   a   )       b   e  \r   /
0107260    /   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0107300    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0107400    -   -   -   -   -   -   -   -   -   -  \r   /   /       W   r
0107420    i   t   e       a   n       l   p   t   e       a   t       t
0107440    h   e       c   u   r   r   e   n   t       s   t   r   e   a
0107460    m       p   o   s   i   t   i   o   n  \r   /   /       B   y
0107500        d   e   f   a   u   l   t   ,       t   h   e       l   p
0107520    t   e       c   o   m   e   s       f   r   o   m       t   h
0107540    e       l   p   t  \r   [  \r   i   f       n   a     376 001
0107560   \0 332 256   l   s       2       t   h   e   n       l   p   t
0107600    e       =       l   v       s   t   >   >   S   T   .   p   a
0107620    r   1   >   >   L   P   T   .   l   p   t   e  \r   i   f    
0107640    l   p   t   e   >   >   L   P   T   E   .   l   e   n   g   t
0107660    h       e   q       0       t   h   e   n       C   a   l   l
0107700    S   w   a   t   (   "   L   P   T   E       w   i   t   h    
0107720    0       l   e   n   g   t   h   "   )  \r   W   r   i   t   e
0107740    B   l   o   c   k   (   s   t   ,       l   p   t   e   ,    
0107760    l   p   t   e   >   >   L   P   T   E   .   l   e   n   g   t
0110000    h   )  \r   s   t   >   >   S   T   .   p   a   r   1   >   >
0110020    L   P   T   .   s   o   r   t   e   d       =       f   a   l
0110040    s   e  \r   ]  \r  \r   /   /   -   -   -   -   -   -   -   -
0110060    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0110160    -   -   - 376 001  \0 350 330   -   -   -   -   -   -   -   -
0110200    -   -   -   -   -   -  \r   a   n   d       G   e   t   L   p
0110220    t   L   p   t   e   (   s   t   ,       i   n   i   t   I   t
0110240    ;       n   u   m   a   r   g   s       n   a   )       =    
0110260    v   a   l   o   f  \r   /   /   -   -   -   -   -   -   -   -
0110300    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0110420    -  \r   /   /       G   e   t       a       p   o   i   n   t
0110440    e   r       t   o       t   h   e       l   p   t   e       i
0110460    n       '   l   p   t   '   .  \r   /   /       G   e   t    
0110500    i   t       r   e   a   d   y       f   o   r       f   i   l
0110520    l   i   n   g       i   f       '   i   n   i   t   I   t   '
0110540        i   s       t   r   u   e   .  \r   [  \r   l   e   t    
0110560    l   p   t   e       =       l 376 001  \0 267   |   v       s
0110600    t   >   >   S   T   .   p   a   r   1   >   >   L   P   T   .
0110620    l   p   t   e  \r   i   f       n   a       g   r       1    
0110640    &       i   n   i   t   I   t       t   h   e   n  \r        
0110660        [  \r               Z   e   r   o   (   l   p   t   e   ,
0110700        m   a   x   L   e   n   L   P   T   E   )  \r            
0110720    S   e   t   L   p   t   e   L   e   n   g   t   h   (   l   p
0110740    t   e   ,       l   e   n   L   P   T   E   H   e   a   d   e
0110760    r   )  \r               S   e   t   L   p   t   e   T   y   p
0111000    e   (   l   p   t   e   ,       d   v   T   y   p   e   F   i
0111020    l   e   )  \r               ]  \r   r   e   s   u   l   t   i
0111040    s       l   p   t   e  \r   ]  \r  \r   /   /   -   -   -   -
0111060    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0111160    -   -   -   -   -   -   -   -   -   -   -   -   - 376 001  \0
0111200  302 245   -   -   -   -   -   -   -   -  \r   a   n   d       G
0111220    e   t   L   p   t   F   s   (   s   t   )       =       l   v
0111240        s   t   >   >   S   T   .   p   a   r   1   >   >   L   P
0111260    T   .   f   s  \r   /   /   -   -   -   -   -   -   -   -   -
0111300    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0111420   \r  \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -
0111440    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0111540    -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a   n
0111560    d       G   e   t   L   p   t   F   a   (   s   t   )       =
0111600        l 376 001  \0   S 020   v       s   t   >   >   S   T   .
0111620    p   a   r   1   >   >   L   P   T   .   f   a  \r   /   /   -
0111640    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0111760    -   -   -   -   -   -   -   -  \r  \r   /   /   -   -   -   -
0112000    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0112120    -   -   -   -   -  \r   a   n   d       G   e   t   L   p   t
0112140    H   o   m   e   (   s   t   )       =       l   v       s   t
0112160    >   >   S   T   .   p   a   r   1   >   >   L   P   T   .   h
0112200    o   m   e  \r   /   /   - 376 001  \0   Y 323   -   -   -   -
0112220    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0112340    -   -   -   -  \r  \r   /   /   -   -   -   -   -   -   -   -
0112360    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0112500    -  \r   a   n   d       G   e   t   L   p   t   S   o   r   t
0112520    e   d   (   s   t   )       =       s   t   >   >   S   T   .
0112540    p   a   r   1   >   >   L   P   T   .   s   o   r   t   e   d
0112560   \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -   -
0112600    -   -   -   -   -   -   -   -   -   -   -   - 376 001  \0 346
0112620  021   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0112640    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0112720    -  \r  \r   /   /   -   -   -   -   -   -   -   -   -   -   -
0112740    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0113040    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a
0113060    n   d       S   e   t   L   p   t   S   o   r   t   e   d   (
0113100    s   t   ,       v   a   l   )       b   e       s   t   >   >
0113120    S   T   .   p   a   r   1   >   >   L   P   T   .   s   o   r
0113140    t   e   d       =       v   a   l  \r   /   /   -   -   -   -
0113160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0113220    - 376 001  \0 006 356   -   -   -   -   -   -   -   -   -   -
0113240    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0113300    -   -   -   -   -   -   -   -   -   -  \r  \f  \r   /   /   -
0113320    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0113440    -   -   -   -   -   -   -   -  \r   a   n   d       E   n   u
0113460    m   e   r   a   t   e   L   P   T   (   s   t   ,       P   r
0113500    o   c   ,       a   r   g   )       b   e  \r   /   /   -   -
0113520    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0113620    -   -   -   -   -   - 376 001  \0   ` 323   -   -   -   -   -
0113640    -   -   -   -   -   -   -   -   -   -   -   -  \r   /   /    
0113660    E   n   u   m   e   r   a   t   e   s       t   h   e       L
0113700    P   T   ,       c   a   l   l   i   n   g       P   r   o   c
0113720    (   l   p   t   e   ,       a   r   g   )       f   o   r    
0113740    e   a   c   h       l   p   t   e   .  \r   /   /       T   h
0113760    e       e   n   u   m   e   r   a   t   i   o   n       b   e
0114000    g   i   n   s       a   t       t   h   e       f   i   r   s
0114020    t       r   e   c   o   r   d       f   o   r       t   h   e
0114040        c   u   r   r   e   n   t       p   a   c   k   .  \r   /
0114060    /       I   f       P   r   o   c       d   i   r   t   i   e
0114100    s       t   h   e       l   p   t   e   ,       i   t       i
0114120    s       w   r   i   t   t   e   n       b   a   c   k       o
0114140    n   t   o       t   h   e       f   i   l   e   .  \r   /   /
0114160        I   f       t   h   e       l   e   n   g   t   h       c
0114200    h   a   n   g   e   d       s   o       t   h   a   t       i
0114220    t       c   a   n   '   t       b   e     376 001  \0 003 255
0114240    w   r   i   t   t   e   n       b   a   c   k       i   n    
0114260    p   l   a   c   e   ,  \r   /   /           i   t       i   s
0114300        w   r   i   t   t   e   n       o   n       a       t   e
0114320    m   p   o   r   a   r   y       f   i   l   e   ,       a   n
0114340    d       a   p   p   e   n   d   e   d       t   o       t   h
0114360    e       r   e   a   l       f   i   l   e  \r   /   /        
0114400    a   f   t   e   r       t   h   e       e   n   u   m   e   r
0114420    a   t   i   o   n       i   s       c   o   m   p   l   e   t
0114440    e   .  \r   [  \r   l   e   t       o   v   f   l   L   p   t
0114460        =       0  \r   J   u   m   p   T   o   F   a   (   s   t
0114500    ,       l   v       s   t   >   >   S   T   .   p   a   r   1
0114520    >   >   L   P   T   .   f   a   )  \r   l   e   t       s   t
0114540    a   r   t   T   i   m   e       =       v   e   c       1   ;
0114560        R   e   a   d   C   a   l   e   n   d   a   r   (   s   t
0114600    a   r   t   T   i   m   e   )  \r  \r               [  \r    
0114620            l   e   t       l   p   t   e       =       R   e   a
0114640  376 001  \0   C   "   d   L   P   T   E   (   s   t   )  \r    
0114660            i   f       l   p   t   e       e   q       0       b
0114700    r   e   a   k           /   /   e   n   d       o   f       f
0114720    i   l   e  \r               l   e   t       l   e   n   g   t
0114740    h       =       l   p   t   e   >   >   L   P   T   E   .   l
0114760    e   n   g   t   h  \r               P   r   o   c   (   s   t
0115000    ,       l   p   t   e   ,       a   r   g   )  \r            
0115020    i   f       l   p   t   e   >   >   L   P   T   E   .   d   i
0115040    r   t   y       t   h   e   n  \r                           [
0115060   \r                           i   f       l   p   t   e   >   >
0115100    L   P   T   E   .   g   o   t   L   o   n   g   e   r       t
0115120    h   e   n  \r                                       [  \r    
0115140                                    i   f       o   v   f   l   L
0115160    p   t       e   q       0       t   h   e   n  \r            
0115200                                        o   v   f   l   L   p   t
0115220        =       O   p   e   n   L   P   T   (   "   I   f   s   S
0115240    c   a   v   e   n 376 001  \0   b   x   g   e   r   .   o   v
0115260    f   l   L   p   t   "   ,       t   r   u   e   )  \r        
0115300                                W   r   i   t   e   B   l   o   c
0115320    k   (   o   v   f   l   L   p   t   ,       l   p   t   e   ,
0115340        l   p   t   e   >   >   L   P   T   E   .   l   e   n   g
0115360    t   h   )  \r                                       l   p   t
0115400    e   >   >   L   P   T   E   .   t   y   p   e       =       d
0115420    v   T   y   p   e   F   r   e   e  \r                        
0115440                l   p   t   e   >   >   L   P   T   E   .   l   e
0115460    n   g   t   h       =       l   e   n   g   t   h  \r        
0115500                                ]  \r                           l
0115520    e   t       f   i   l   e   P   o   s       =       v   e   c
0115540        1   ;       F   i   l   e   P   o   s   (   s   t   ,    
0115560    f   i   l   e   P   o   s   )  \r                           D
0115600    o   u   b   l   e   I   n   c   r   e   m   e   n   t   (   f
0115620    i   l   e   P   o   s   ,       -   (   l   e   n   g   t   h
0115640        l   s   h   i   f   t       1   ) 376 001  \0 302 327   )
0115660   \r                           S   e   t   F   i   l   e   P   o
0115700    s   (   s   t   ,       f   i   l   e   P   o   s   )  \r    
0115720                        W   r   i   t   e   B   l   o   c   k   (
0115740    s   t   ,       l   p   t   e   ,       l   e   n   g   t   h
0115760    )  \r                           s   t   >   >   S   T   .   p
0116000    a   r   1   >   >   L   P   T   .   s   o   r   t   e   d    
0116020    =       f   a   l   s   e  \r                           ]  \r
0116040                ]       r   e   p   e   a   t  \r  \r   i   f    
0116060    o   v   f   l   L   p   t       n   e       0       t   h   e
0116100    n  \r               [  \r               R   e   s   e   t   s
0116120    (   o   v   f   l   L   p   t   )  \r                        
0116140    [  \r                           l   e   t       l   p   t   e
0116160        =       R   e   a   d   L   P   T   E   (   o   v   f   l
0116200    L   p   t   )  \r                           i   f       l   p
0116220    t   e       e   q       0       b   r   e   a   k  \r        
0116240                    i   f       l   p   t   e   >   >   L   P 376
0116260  001  \0   k 255   T   E   .   t   y   p   e       e   q       d
0116300    v   T   y   p   e   F   i   l   e       t   h   e   n  \r    
0116320                                    W   r   i   t   e   B   l   o
0116340    c   k   (   s   t   ,       l   p   t   e   ,       l   p   t
0116360    e   >   >   L   P   T   E   .   l   e   n   g   t   h   )  \r
0116400                            ]       r   e   p   e   a   t  \r    
0116420            C   l   o   s   e   L   P   T   (   o   v   f   l   L
0116440    p   t   ,       t   r   u   e   )  \r               s   t   >
0116460    >   S   T   .   p   a   r   1   >   >   L   P   T   .   s   o
0116500    r   t   e   d       =       f   a   l   s   e  \r            
0116520    ]  \r  \r   P   r   i   n   t   T   i   m   e   (   s   t   a
0116540    r   t   T   i   m   e   )  \r   ]  \r  \f  \r   /   /   t   h
0116560    e   s   e       r   o   u   t   i   n   e   s       g   e   t
0116600        f   i   e   l   d   s       o   f       a   n       l   p
0116620    t   e  \r  \r   /   /   -   -   -   -   -   -   -   -   -   -
0116640    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0116660    -   -   -   - 376 001  \0   =  \r   -   -   -   -   -   -   -
0116700    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0116760    -   -   -   -  \r   a   n   d       G   e   t   L   p   t   e
0117000    T   y   p   e   (   l   p   t   e   )       =       l   p   t
0117020    e   >   >   L   P   T   E   .   t   y   p   e  \r   /   /   -
0117040    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0117160    -   -   -   -   -   -   -   -  \r  \r   /   /   -   -   -   -
0117200    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0117260    -   -   -   -   -   -   -   -   - 376 001  \0 214 332   -   -
0117300    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0117320    -   -   -   -   -   -   -   -   -   -  \r   a   n   d       G
0117340    e   t   L   p   t   e   F   l   a   g   s   (   l   p   t   e
0117360    )       =       l   p   t   e   >   >   L   P   T   E   .   f
0117400    l   a   g   s  \r   /   /   -   -   -   -   -   -   -   -   -
0117420    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0117540   \r  \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -
0117560    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0117660    -   -   -   -   -   -   -   -   -   -   -   -   -  \r 376 001
0117700   \0   g  \v   a   n   d       G   e   t   L   p   t   e   L   e
0117720    n   g   t   h   (   l   p   t   e   )       =       l   p   t
0117740    e   >   >   L   P   T   E   .   l   e   n   g   t   h  \r   /
0117760    /   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0120000    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0120100    -   -   -   -   -   -   -   -   -   -  \r  \r   /   /   -   -
0120120    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0120240    -   -   -   -   -   -   -  \r   a   n   d       G   e   t   L
0120260    p   t   e   I   f   p   (   l   p   t   e   )       =       l
0120300    v       l 376 001  \0   I   =   p   t   e   >   >   L   P   T
0120320    E   .   i   f   p  \r   /   /   -   -   -   -   -   -   -   -
0120340    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0120460    -  \r  \r   /   /   -   -   -   -   -   -   -   -   -   -   -
0120500    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0120600    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a
0120620    n   d       G   e   t   L   p   t   e   F   a   (   l   p   t
0120640    e   )       =       l   v       l   p   t   e   >   >   L   P
0120660    T   E   .   f   a  \r   /   /   -   -   -   -   -   -   -   -
0120700    -   -   -   -   -   -   -   - 376 001  \0   P 367   -   -   -
0120720    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0121020    -   -   -   -   -   -  \r  \r   /   /   -   -   -   -   -   -
0121040    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0121160    -   -   -  \r   a   n   d       G   e   t   L   p   t   e   I
0121200    f   s   N   a   m   e   (   l   p   t   e   )       =       v
0121220    a   l   o   f  \r   /   /   -   -   -   -   -   -   -   -   -
0121240    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0121300    -   -   -   -   -   -   -   -   -   -   -   -   - 376 001  \0
0121320    # 301   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0121340    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0121360    -   -   -   -   -  \r   [  \r   l   e   t       i   f   s   N
0121400    a   m   e       =       l   p   t   e   >   >   L   P   T   E
0121420    .   i   f   s   N   a   m   e  \r   r   e   s   u   l   t   i
0121440    s       l   p   t   e       +       (   i   f   s   N   a   m
0121460    e   ?       i   f   s   N   a   m   e   ,       o   f   f   s
0121500    e   t       L   P   T   E   .   i   f   s   N   a   m   e   /
0121520    1   6   )  \r   ]  \r  \r   /   /   -   -   -   -   -   -   -
0121540    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0121660    -   -  \r   a   n   d       G   e   t   L   p   t   e   T   f
0121700    s   N   a   m   e   (   l   p   t   e   )       =       v   a
0121720    l   o 376 001  \0 330 006   f  \r   /   /   -   -   -   -   -
0121740    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0122060    -   -   -   -  \r   [  \r   l   e   t       t   f   s   N   a
0122100    m   e       =       l   p   t   e   >   >   L   P   T   E   .
0122120    t   f   s   N   a   m   e  \r   r   e   s   u   l   t   i   s
0122140        l   p   t   e       +       (   t   f   s   N   a   m   e
0122160    ?       t   f   s   N   a   m   e   ,       o   f   f   s   e
0122200    t       L   P   T   E   .   t   f   s   N   a   m   e   /   1
0122220    6   )  \r   ]  \r  \r   /   /   -   -   -   -   -   -   -   -
0122240    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0122320    -   -   -   -   -   -   - 376 001  \0 267  \b   -   -   -   -
0122340    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0122360    -   -   -   -   -   -  \r   a   n   d       G   e   t   L   p
0122400    t   e   D   I   F   R   e   c   (   l   p   t   e   )       =
0122420        v   a   l   o   f  \r   /   /   -   -   -   -   -   -   -
0122440    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0122560    -   -  \r   [  \r   l   e   t       d   i   f   R   e   c    
0122600    =       l   p   t   e   >   >   L   P   T   E   .   d   i   f
0122620    R   e   c  \r   r   e   s   u   l   t   i   s       d   i   f
0122640    R   e   c       n   e       0   ?       l   p   t   e   +   d
0122660    i   f   R   e   c   ,       0  \r   ]  \r  \f  \r   /   /    
0122700    T   h   e   s   e       r   o   u   t   i   n   e   s       s
0122720    e   t       f   i   e   l   d   s       o   f 376 001  \0   C
0122740  320       a   n       l   p   t   e  \r  \r   /   /   -   -   -
0122760    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0123100    -   -   -   -   -   -  \r   a   n   d       S   e   t   L   p
0123120    t   e   T   y   p   e   (   l   p   t   e   ,       t   y   p
0123140    e   )       b   e  \r   /   /   -   -   -   -   -   -   -   -
0123160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0123300    -  \r   [  \r   l   p   t   e   >   >   L   P   T   E   .   t
0123320    y   p   e       =       t   y   p   e  \r   l   p   t   e   >
0123340    > 376 001  \0  \n 337   L   P   T   E   .   d   i   r   t   y
0123360        =       t   r   u   e  \r   ]  \r  \r   /   /   -   -   -
0123400    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0123520    -   -   -   -   -   -  \r   a   n   d       S   e   t   L   p
0123540    t   e   F   l   a   g   s   (   l   p   t   e   ,       f   l
0123560    a   g   s   )       b   e  \r   /   /   -   -   -   -   -   -
0123600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0123720    -   -   -  \r   [  \r   l   p   t   e   >   >   L   P   T   E
0123740    .   f   l   a   g   s 376 001  \0  \n 343       =       f   l
0123760    a   g   s  \r   l   p   t   e   >   >   L   P   T   E   .   d
0124000    i   r   t   y       =       t   r   u   e  \r   ]  \r  \r   /
0124020    /   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0124040    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0124140    -   -   -   -   -   -   -   -   -   -  \r   a   n   d       S
0124160    e   t   L   p   t   e   L   e   n   g   t   h   (   l   p   t
0124200    e   ,       l   e   n   g   t   h   )       b   e  \r   /   /
0124220    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0124340    -   -   -   -   -   -   -   -   -  \r   [ 376 001  \0 266 363
0124360   \r   l   p   t   e   >   >   L   P   T   E   .   l   e   n   g
0124400    t   h       =       l   e   n   g   t   h  \r   l   p   t   e
0124420    >   >   L   P   T   E   .   d   i   r   t   y       =       t
0124440    r   u   e  \r   ]  \r  \r   /   /   -   -   -   -   -   -   -
0124460    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0124600    -   -  \r   a   n   d       S   e   t   L   p   t   e   I   f
0124620    p   (   l   p   t   e   ,       i   f   p   )       b   e  \r
0124640    /   /   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0124660    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0124760  376 001  \0 366   {   -   -   -   -   -   -   -   -   -   -   -
0125000   \r   [  \r   M   o   v   e   B   l   o   c   k   (   l   v    
0125020    l   p   t   e   >   >   L   P   T   E   .   i   f   p   ,    
0125040    i   f   p   ,       l   F   P   )  \r   l   p   t   e   >   >
0125060    L   P   T   E   .   d   i   r   t   y       =       t   r   u
0125100    e  \r   ]  \r  \r   /   /   -   -   -   -   -   -   -   -   -
0125120    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0125240   \r   a   n   d       S   e   t   L   p   t   e   F   a   (   l
0125260    p   t   e   ,       f   a   )       b   e  \r   /   /   -   -
0125300    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0125360    -   -   -   -   - 376 001  \0 253   8   -   -   -   -   -   -
0125400    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0125420    -   -   -   -   -   -   -   -   -   -   -   -  \r   [  \r   M
0125440    o   v   e   B   l   o   c   k   (   l   v       l   p   t   e
0125460    >   >   L   P   T   E   .   f   a   ,       f   a   ,       l
0125500    F   A   )  \r   l   p   t   e   >   >   L   P   T   E   .   d
0125520    i   r   t   y       =       t   r   u   e  \r   ]  \r  \f  \r
0125540    /   /   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0125560    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0125660    -   -   -   -   -   -   -   -   -   -   -  \r   a   n   d    
0125700    S   e   t   L   p   t   e   I   f   s   N   a   m   e   (   l
0125720    p   t   e   ,       i   f   s   N   a   m   e   )       b   e
0125740   \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -   -
0125760    -   -   -   -   -   -   -   -   -   - 376 001  \0   C   `   -
0126000    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0126100    -  \r   [  \r   i   f       (   l   p   t   e   >   >   L   P
0126120    T   E   .   i   f   s   N   a   m   e       e   q       0   )
0126140    ?       t   r   u   e   ,       (   i   f   s   N   a   m   e
0126160    >   >   S   t   r   i   n   g   .   l   e   n   g   t   h    
0126200    g   r  \r       (   l   p   t   e   +   l   p   t   e   >   >
0126220    L   P   T   E   .   i   f   s   N   a   m   e   )   >   >   S
0126240    t   r   i   n   g   .   l   e   n   g   t   h   )       t   h
0126260    e   n  \r               [  \r               l   p   t   e   >
0126300    >   L   P   T   E   .   i   f   s   N   a   m   e       =    
0126320    l   p   t   e   >   >   L   P   T   E   .   l   e   n   g   t
0126340    h  \r               l   p   t   e   >   >   L   P   T   E   .
0126360    l   e   n   g   t   h       =       l   p   t   e   >   > 376
0126400  001  \0 317   Z   L   P   T   E   .   l   e   n   g   t   h    
0126420    +       i   f   s   N   a   m   e   >   >   S   t   r   i   n
0126440    g   .   l   e   n   g   t   h       r   s   h   i   f   t    
0126460    1       +   1  \r               i   f       l   p   t   e   >
0126500    >   L   P   T   E   .   l   e   n   g   t   h       g   r    
0126520    m   a   x   L   e   n   L   P   T   E       t   h   e   n    
0126540    I   F   S   E   r   r   o   r   (   e   c   S   e   t   L   P
0126560    T   E   )  \r               l   p   t   e   >   >   L   P   T
0126600    E   .   g   o   t   L   o   n   g   e   r       =       t   r
0126620    u   e  \r               ]  \r   C   o   p   y   S   t   r   i
0126640    n   g   (   l   p   t   e   +   l   p   t   e   >   >   L   P
0126660    T   E   .   i   f   s   N   a   m   e   ,       i   f   s   N
0126700    a   m   e   )  \r   l   p   t   e   >   >   L   P   T   E   .
0126720    d   i   r   t   y       =       t   r   u   e  \r   ]  \r  \r
0126740    /   /   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0126760    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0127000    -   -   -   - 376 001  \0 037 365   -   -   -   -   -   -   -
0127020    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0127100   \r   a   n   d       S   e   t   L   p   t   e   T   f   s   N
0127120    a   m   e   (   l   p   t   e   ,       t   f   s   N   a   m
0127140    e   )       b   e  \r   /   /   -   -   -   -   -   -   -   -
0127160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0127300    -  \r   [  \r   i   f       (   l   p   t   e   >   >   L   P
0127320    T   E   .   t   f   s   N   a   m   e       e   q       0   )
0127340    ?       t   r   u   e   ,       (   t   f   s   N   a   m   e
0127360    >   >   S   t   r   i   n   g   .   l   e   n   g   t   h    
0127400    g   r  \r       (   l   p   t   e 376 001  \0 334 340   +   l
0127420    p   t   e   >   >   L   P   T   E   .   t   f   s   N   a   m
0127440    e   )   >   >   S   t   r   i   n   g   .   l   e   n   g   t
0127460    h   )       t   h   e   n  \r               [  \r            
0127500    l   p   t   e   >   >   L   P   T   E   .   t   f   s   N   a
0127520    m   e       =       l   p   t   e   >   >   L   P   T   E   .
0127540    l   e   n   g   t   h  \r               l   p   t   e   >   >
0127560    L   P   T   E   .   l   e   n   g   t   h       =       l   p
0127600    t   e   >   >   L   P   T   E   .   l   e   n   g   t   h    
0127620    +       t   f   s   N   a   m   e   >   >   S   t   r   i   n
0127640    g   .   l   e   n   g   t   h       r   s   h   i   f   t    
0127660    1       +   1  \r               i   f       l   p   t   e   >
0127700    >   L   P   T   E   .   l   e   n   g   t   h       g   r    
0127720    m   a   x   L   e   n   L   P   T   E       t   h   e   n    
0127740    I   F   S   E   r   r   o   r   (   e   c   S   e   t   L   P
0127760    T   E   )  \r               l   p   t   e   >   >   L   P   T
0130000    E   .   g   o   t   L   o   n   g   e   r       =     376 001
0130020   \0 366 370   t   r   u   e  \r               ]  \r   C   o   p
0130040    y   S   t   r   i   n   g   (   l   p   t   e   +   l   p   t
0130060    e   >   >   L   P   T   E   .   t   f   s   N   a   m   e   ,
0130100        t   f   s   N   a   m   e   )  \r   l   p   t   e   >   >
0130120    L   P   T   E   .   d   i   r   t   y       =       t   r   u
0130140    e  \r   ]  \r  \r   /   /   -   -   -   -   -   -   -   -   -
0130160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0130300   \r   a   n   d       S   e   t   L   p   t   e   D   I   F   R
0130320    e   c   (   l   p   t   e   ,       d   i   f   R   e   c   )
0130340        b   e  \r   /   /   -   -   -   -   -   -   -   -   -   -
0130360    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0130420    -   -   - 376 001  \0 200   c   -   -   -   -   -   -   -   -
0130440    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0130500    -   -   -   -  \r   [  \r   i   f       l   p   t   e   >   >
0130520    L   P   T   E   .   d   i   f   R   e   c       e   q       0
0130540        t   h   e   n  \r               [  \r               l   p
0130560    t   e   >   >   L   P   T   E   .   d   i   f   R   e   c    
0130600    =       l   p   t   e   >   >   L   P   T   E   .   l   e   n
0130620    g   t   h  \r               l   p   t   e   >   >   L   P   T
0130640    E   .   l   e   n   g   t   h       =       l   p   t   e   >
0130660    >   L   P   T   E   .   l   e   n   g   t   h       +       l
0130700    e   n   D   I   F   R   e   c  \r               i   f       l
0130720    p   t   e   >   >   L   P   T   E   .   l   e   n   g   t   h
0130740        g   r       m   a   x   L   e   n   L   P   T   E       t
0130760    h   e   n       I   F   S   E   r   r   o   r   (   e   c   S
0131000    e   t   L   P   T   E   )  \r               l   p   t   e   >
0131020    >   L   P   T   E   .   g   o 376  \0   c 322 250   t   L   o
0131040    n   g   e   r       =       t   r   u   e  \r               ]
0131060   \r   M   o   v   e   B   l   o   c   k   (   l   p   t   e   +
0131100    l   p   t   e   >   >   L   P   T   E   .   d   i   f   R   e
0131120    c   ,       d   i   f   R   e   c   ,       l   e   n   D   I
0131140    F   R   e   c   )  \r   l   p   t   e   >   >   L   P   T   E
0131160    .   d   i   r   t   y       =       t   r   u   e  \r   ]  \r
0131200  377  \0  \0   I   f   s   S   c   a   v   K   b   d   .   b   c
0131220    p   l  \0 373 224 223   c 025  \0  \0 376 001  \0 242   d   /
0131240    /       I   f   s   S   c   a   v   K   b   d   .   b   c   p
0131260    l       -       v   a   r   i   o   u   s       k   e   y   b
0131300    o   a   r   d       i   n   t   e   r   a   c   t   i   o   n
0131320        p   r   o   c   e   d   u   r   e   s  \r   /   /       C
0131340    o   p   y   r   i   g   h   t       X   e   r   o   x       C
0131360    o   r   p   o   r   a   t   i   o   n       1   9   7   9  \r
0131400    /   /       L   a   s   t       m   o   d   i   f   i   e   d
0131420        D   e   c   e   m   b   e   r       2   7   ,       1   9
0131440    7   9           1   :   4   4       P   M       b   y       B
0131460    o   g   g   s  \r  \r   g   e   t       "   C   m   d   S   c
0131500    a   n   .   d   e   c   l   "  \r   g   e   t       "   D   i
0131520    s   k   s   .   d   "  \r  \r   e   x   t   e   r   n   a   l
0131540   \r   [  \r   /   /       o   u   t   g   o   i   n   g       p
0131560    r   o   c   e   d   u   r   e   s  \r   O   p   e   n   D   i
0131600    s   k   ;       S   c   a   v   C   o   n   f   i   r   m  \r
0131620   \r   /   /       i   n   c   o   m   i   n   g       p   r 376
0131640  001  \0 244   ?   o   c   e   d   u   r   e   s  \r   T   F   S
0131660    I   n   i   t   ;       B   F   S   I   n   i   t  \r   D   e
0131700    f   a   u   l   t   A   r   g   s   ;       D   i   s   m   i
0131720    s   s  \r   R   e   s   e   t   s   ;       E   r   r   o   r
0131740    s   ;       W   s   ;       W   s   s   ;       G   e   t   s
0131760    ;       P   u   t   s   ;       C   l   o   s   e   s  \r   C
0132000    r   e   a   t   e   K   e   y   w   o   r   d   T   a   b   l
0132020    e   ;       D   e   s   t   r   o   y   K   e   y   w   o   r
0132040    d   T   a   b   l   e   ;       I   n   s   e   r   t   K   e
0132060    y   w   o   r   d  \r   I   n   i   t   C   m   d   ;       E
0132100    n   a   b   l   e   C   a   t   c   h   ;       E   n   d   C
0132120    a   t   c   h   ;       T   e   r   m   i   n   a   t   i   n
0132140    g   C   h   a   r  \r   B   e   g   i   n   D   e   f   a   u
0132160    l   t   P   h   r   a   s   e   ;       E   n   d   D   e   f
0132200    a   u   l   t   P   h   r   a   s   e  \r   G   e   t   K   e
0132220    y   w   o   r   d   ;       G   e   t   N   u   m   b   e   r
0132240    ;       I   n 376 001  \0 224 366   v   e   r   t   W   i   n
0132260    d   o   w  \r  \r   /   /       i   n   c   o   m   i   n   g
0132300        s   t   a   t   i   c   s  \r   s   y   s   Z   o   n   e
0132320    ;       s   y   s   D   i   s   k   ;       k   e   y   s   ;
0132340        d   s   p   ;       t   f   s   D   D   M   g   r   ;    
0132360    b   f   s   D   D   M   g   r  \r   ]  \r  \r   /   /   -   -
0132400    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0132500    -   -   -   -   -   -   -   -   -   -  \r   l   e   t       O
0132520    p   e   n   D   i   s   k   (   s   t   r   i   n   g   ,    
0132540    a   l   l   o   c   ,       f   r   e   s   h   ,       d   i
0132560    a   b   l   o   ;       n   u   m   a   r   g   s       n   a
0132600    )       =       v   a   l   o   f  \r   /   /   -   -   -   -
0132620    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0132640    -   -   -   -   -   -   -   -   - 376 001  \0   e   Z   -   -
0132660    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0132720    -   -   -   -   -   -   -   -   -   -   -   -   -  \r   [  \r
0132740    D   e   f   a   u   l   t   A   r   g   s   (   l   v       n
0132760    a   ,       1   ,       t   r   u   e   ,       f   a   l   s
0133000    e   ,       f   a   l   s   e   )  \r   l   e   t       c   s
0133020        =       I   n   i   t   C   m   d   (   2   5   6   ,    
0133040    5   )   ;       i   f       c   s       e   q       0       r
0133060    e   s   u   l   t   i   s       0  \r   W   s   s   (   c   s
0133100    ,       s   t   r   i   n   g   )  \r   l   e   t       d   K
0133120    T       =       n   i   l  \r   i   f       E   n   a   b   l
0133140    e   C   a   t   c   h   (   c   s   )       t   h   e   n    
0133160    [       D   e   s   t   r   o   y   K   e   y   w   o   r   d
0133200    T   a   b   l   e   (   d   K   T   )   ;       E   n   d   C
0133220    a   t   c   h   (   c   s   )       ]  \r   d   K   T       =
0133240        C   r   e   a   t   e   K   e   y   w   o   r   d 376 001
0133260   \0 035   '   T   a   b   l   e   (   2   ,       1   )  \r   i
0133300    f       d   i   a   b   l   o       t   h   e   n       I   n
0133320    s   e   r   t   K   e   y   w   o   r   d   (   d   K   T   ,
0133340        "   D   P   "   )   !   0       =       -   1  \r   I   n
0133360    s   e   r   t   K   e   y   w   o   r   d   (   d   K   T   ,
0133400        "   T   P   "   )   !   0       =       1  \r   l   e   t
0133420        t   r   i   d   e   n   t       =       G   e   t   K   e
0133440    y   w   o   r   d   (   c   s   ,       d   K   T   ,       f
0133460    a   l   s   e   ,       P   h   r   a   s   e   T   e   r   m
0133500    i   n   a   t   o   r   )   !   0       g   r       0  \r   l
0133520    e   t       t   e   r   m   C   h   a   r       =       T   e
0133540    r   m   i   n   a   t   i   n   g   C   h   a   r   (   c   s
0133560    )  \r   /   /       t   h   e   r   e       m   u   s   t    
0133600    b   e       a       b   e   t   t   e   r       w   a   y    
0133620    t   o       d   o       t   h   i   s   .   .   .  \r   B   e
0133640    g   i   n   D   e   f   a   u   l   t   P   h   r   a   s   e
0133660    (   c   s 376 001  \0 210 033   )  \r   P   u   t   s   (   c
0133700    s   ,       t   e   r   m   C   h   a   r   )  \r   E   n   d
0133720    D   e   f   a   u   l   t   P   h   r   a   s   e   (   c   s
0133740    )  \r   c   s   >   >   C   S   .   e   d   i   t   C   o   n
0133760    t   r   o   l       =       e   d   i   t   A   p   p   e   n
0134000    d  \r   l   e   t       d   r   i   v   e   N   u   m   b   e
0134020    r       =       G   e   t   N   u   m   b   e   r   (   c   s
0134040    ,       8   )  \r   l   e   t       d   i   s   k       =    
0134060    n   i   l  \r   t   e   s   t       t   r   i   d   e   n   t
0134100   \r               i   f   s   o       d   i   s   k       =    
0134120    T   F   S   I   n   i   t   (   s   y   s   Z   o   n   e   ,
0134140        a   l   l   o   c   ,       d   r   i   v   e   N   u   m
0134160    b   e   r   ,       t   f   s   D   D   M   g   r   ,       f
0134200    r   e   s   h   )  \r               i   f   n   o   t       t
0134220    e   s   t       d   r   i   v   e   N   u   m   b   e   r    
0134240    e   q       s   y   s   D   i   s   k   >   >   D   S   K   .
0134260    d   r   i   v   e   N   u   m 376 001  \0 024 341   b   e   r
0134300   \r                           i   f   s   o       d   i   s   k
0134320        =       s   y   s   D   i   s   k  \r                    
0134340        i   f   n   o   t       d   i   s   k       =       B   F
0134360    S   I   n   i   t   (   s   y   s   Z   o   n   e   ,       t
0134400    r   u   e   ,       d   r   i   v   e   N   u   m   b   e   r
0134420    ,       b   f   s   D   D   M   g   r   )  \r   i   f       d
0134440    i   s   k       e   q       0       t   h   e   n       E   r
0134460    r   o   r   s   (   c   s   ,       0   )  \r   D   e   s   t
0134500    r   o   y   K   e   y   w   o   r   d   T   a   b   l   e   (
0134520    d   K   T   )  \r   C   l   o   s   e   s   (   c   s   )  \r
0134540    r   e   s   u   l   t   i   s       d   i   s   k  \r   ]  \r
0134560   \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -   -
0134600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0134660    -   -   -   -   -   -   -   -   -   -   -   -   - 376 001  \0
0134700  327   ,   -   -  \r   a   n   d       P   h   r   a   s   e   T
0134720    e   r   m   i   n   a   t   o   r   (   c   s   ,       c   h
0134740    a   r   )       =  \r   /   /   -   -   -   -   -   -   -   -
0134760    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0135060    -   -   -   -  \r               c   h   a   r       l   s    
0135100    $   A       %       (   c   h   a   r       g   r       $   Z
0135120        &       c   h   a   r       l   s       $   a   )       %
0135140        c   h   a   r       g   r       $   z  \r  \f  \r   /   /
0135160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0135260    -   -   -   -   -   -   -   -   -   -   -   -  \r   a   n   d
0135300        S 376 001  \0 354 254   c   a   v   C   o   n   f   i   r
0135320    m   (   s   t   r   i   n   g   ;       n   u   m   a   r   g
0135340    s       n   a   )       =       v   a   l   o   f  \r   /   /
0135360    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0135460    -   -   -   -   -   -   -   -   -   -   -   -  \r   [  \r   i
0135500    f       n   a       g   r       0       t   h   e   n       W
0135520    s   (   s   t   r   i   n   g   )  \r   W   s   (   "       [
0135540    C   o   n   f   i   r   m   ]       "   )  \r   s   w   i   t
0135560    c   h   o   n       G   e   t   s   (   k   e   y   s   )    
0135600    i   n   t   o  \r               [  \r               c   a   s
0135620    e       $   Y   :       c   a   s   e       $   y   :       c
0135640    a   s   e       $   *   N   :  \r                           [
0135660        W   s   (   "   Y   e   s   .   "   )   ;       r   e   s
0135700    u   l   t   i   s       t 376 001  \0   H 363   r   u   e    
0135720    ]  \r               c   a   s   e       $   N   :       c   a
0135740    s   e       $   n   :       c   a   s   e       $   *   1   7
0135760    7   :  \r                           [       W   s   (   "   N
0136000    o   .   "   )   ;       r   e   s   u   l   t   i   s       f
0136020    a   l   s   e       ]  \r               c   a   s   e       $
0136040    ?   :  \r                           [       W   s   (   "   Y
0136060    e   s       =       Y   |   y   |   <   c   r   >   ,       N
0136100    o       =       N   |   n   |   <   d   e   l   >   "   )   ;
0136120        e   n   d   c   a   s   e       ]  \r               d   e
0136140    f   a   u   l   t   :  \r                           [  \r    
0136160                        I   n   v   e   r   t   W   i   n   d   o
0136200    w   (   d   s   p   >   >   S   T   .   p   a   r   1   )  \r
0136220                            D   i   s   m   i   s   s   (   1   0
0136240    0   )  \r                           I   n   v   e   r   t   W
0136260    i   n   d   o   w   (   d   s   p   >   >   S   T   .   p   a
0136300    r   1   )  \r                           R   e 376  \0   !   2
0136320  276   s   e   t   s   (   k   e   y   s   )  \r                
0136340            ]  \r               ]       r   e   p   e   a   t  \r
0136360    ]  \r 377  \0  \0   I   f   s   S   c   a   v   P   r   i   n
0136400    t   .   b   c   p   l  \0 373 224 223   S 260  \0  \0 376 001
0136420   \0   q   W   /   /       I   f   s   S   c   a   v   P   r   i
0136440    n   t   .   b   c   p   l  \r   /   /       C   o   p   y   r
0136460    i   g   h   t       X   e   r   o   x       C   o   r   p   o
0136500    r   a   t   i   o   n       1   9   7   9  \r   /   /       L
0136520    a   s   t       m   o   d   i   f   i   e   d       D   e   c
0136540    e   m   b   e   r       2   8   ,       1   9   7   9        
0136560    3   :   5   9       A   M       b   y       B   o   g   g   s
0136600   \r  \r   g   e   t       "   I   f   s   S   c   a   v   e   n
0136620    g   e   r   .   d   e   c   l   "  \r   g   e   t       "   A
0136640    l   t   o   F   i   l   e   S   y   s   .   d   "  \r   g   e
0136660    t       "   D   i   s   k   s   .   d   "  \r   g   e   t    
0136700    "   T   f   s   .   d   "  \r  \r   e   x   t   e   r   n   a
0136720    l  \r   [  \r   /   /       o   u   t   g   o   i   n   g    
0136740    p   r   o   c   e   d   u   r   e   s  \r   P   r   i   n   t
0136760    T   i   m   e   ;       P   r   i   n   t   P   L   M   E  \r
0137000    P   r   i   n   t   D   i   s   k   E   r   r   o   r   ;    
0137020    P   r   i 376 001  \0   = 027   n   t   R   e   a   l   D   A
0137040   \r  \r   /   /       i   n   c   o   m   i   n   g       p   r
0137060    o   c   e   d   u   r   e   s  \r   P   u   t   T   e   m   p
0137100    l   a   t   e   ;       W   s  \r   R   e   a   d   C   a   l
0137120    e   n   d   a   r   ;       D   o   u   b   l   e   D   i   f
0137140    f   e   r   e   n   c   e  \r  \r   /   /       i   n   c   o
0137160    m   i   n   g       s   t   a   t   i   c   s  \r   d   s   p
0137200    ;       p   a   s   s   ;       p   h   a   s   e   ;       p
0137220    l   m   e  \r   ]  \r  \r   /   /   -   -   -   -   -   -   -
0137240    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0137340    -   -   -   -   -  \r   l   e   t       P   r   i   n   t   T
0137360    i   m   e   (   s   t   a   r   t   T   i   m   e   )       b
0137400    e  \r   /   /   -   -   -   -   -   -   -   -   -   -   -   -
0137420    -   -   -   -   -   -   -   - 376 001  \0   2 003   -   -   -
0137440    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0137520    -   -   -   -   -  \r   [  \r   l   e   t       s   t   o   p
0137540    T   i   m   e       =       v   e   c       1   ;       R   e
0137560    a   d   C   a   l   e   n   d   a   r   (   s   t   o   p   T
0137600    i   m   e   )  \r   l   e   t       s   e   c   o   n   d   s
0137620        =       D   o   u   b   l   e   D   i   f   f   e   r   e
0137640    n   c   e   (   s   t   o   p   T   i   m   e   ,       s   t
0137660    a   r   t   T   i   m   e   )  \r   i   f       p   a   s   s
0137700        n   e       0       t   h   e   n       P   u   t   T   e
0137720    m   p   l   a   t   e   (   d   s   p   ,       "   *   N   [
0137740    $   D   -   $   D   ]       "   ,       p   a   s   s   ,    
0137760    p   h   a   s   e   )  \r   P   u   t   T   e   m   p   l   a
0140000    t   e   (   d   s   p   ,       "   T   i   m   e       =    
0140020    $   D   :   $   2   F   0   D   "   ,       s   e 376 001  \0
0140040  017 254   c   o   n   d   s   /   6   0   ,       s   e   c   o
0140060    n   d   s       r   e   m       6   0   )  \r   ]  \r  \r   /
0140100    /   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0140120    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0140200    -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a   n
0140220    d       P   r   i   n   t   P   L   M   E   (   v   d   a   )
0140240        b   e  \r   /   /   -   -   -   -   -   -   -   -   -   -
0140260    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0140360    -   -  \r   [  \r   P   u   t   T   e   m   p   l   a   t   e
0140400    (   d   s   p   ,       "   *   N   [   $   D   -   $   D   ]
0140420    *   T   F   I   D       $   E   U   O   ;   $   U   O   ,    
0140440    p   a 376 001  \0 360 331   g   e       n   u   m   b   e   r
0140460        $   U   O   ,       n   u   m       c   h   a   r   s    
0140500    $   U   O   "   ,  \r       p   a   s   s   ,       p   h   a
0140520    s   e   ,       l   v       p   l   m   e   >   >   P   L   M
0140540    E   .   s   n   1   ,       p   l   m   e   >   >   P   L   M
0140560    E   .   v   n   ,  \r       p   l   m   e   >   >   P   L   M
0140600    E   .   p   n   ,       p   l   m   e   >   >   P   L   M   E
0140620    .   n   u   m   C   h   a   r   s   )  \r   P   u   t   T   e
0140640    m   p   l   a   t   e   (   d   s   p   ,       "   *   N   [
0140660    $   D   -   $   D   ]   *   T   c   u   r   r   e   n   t    
0140700    v   d   a       $   U   O   ,       p   r   e   v   i   o   u
0140720    s       v   d   a       $   U   O   ,       n   e   x   t    
0140740    v   d   a       $   U   O   "   ,  \r       p   a   s   s   ,
0140760        p   h   a   s   e   ,       v   d   a   ,       p   l   m
0141000    e   >   >   P   L   M   E   .   b   a   c   k   P   ,       p
0141020    l   m   e   >   >   P   L   M   E   .   n   e   x   t   P   )
0141040   \r   ]  \r  \f  \r   /   / 376 001  \0   0 231   -   -   -   -
0141060    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0141160    -   -   -   -   -   -   -   -  \r   a   n   d       P   r   i
0141200    n   t   D   i   s   k   E   r   r   o   r   (   c   b   )    
0141220    b   e  \r   /   /   -   -   -   -   -   -   -   -   -   -   -
0141240    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0141340    -  \r   /   /       C   a   l   l   e   d       f   r   o   m
0141360        v   a   r   i   o   u   s       H   a   r   d       d   i
0141400    s   k       e   r   r   o   r       r   o   u   t   i   n   e
0141420    s   .  \r   [  \r   i   f       p   a   s   s       n   e    
0141440    0       t   h   e   n       P   u   t   T   e 376 001  \0   r
0141460  330   m   p   l   a   t   e   (   d   s   p   ,       "   *   N
0141500    [   $   D   -   $   D   ]       "   ,       p   a   s   s   ,
0141520