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