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