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