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