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