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