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