$ od -c -N 50000 [Erinyes]<LispManual>OutputFns.im!9
0000000   \r  \r   {   B   e   g   i   n       S   u   b   S   e   c    
0000020    O   u   t   p   u   t       F   u   n   c   t   i   o   n   s
0000040    }  \r   {   T   i   t   l   e       O   u   t   p   u   t    
0000060    F   u   n   c   t   i   o   n   s   }  \r   {   T   e   x   t
0000100   \r  \r   {   i   n   d   e   x       *   P   R   I   M   A   R
0000120    Y   *       O   u   t   p   u   t       f   u   n   c   t   i
0000140    o   n   s   }  \r  \r   U   n   l   e   s   s       o   t   h
0000160    e   r   w   i   s   e       s   p   e   c   i   f   i   e   d
0000200        b   y       {   f   n       D   E   F   P   R   I   N   T
0000220    }       (   {   P   a   g   e   R   e   f       F   n       D
0000240    E   F   P   R   I   N   T   }   )   ,           p   o   i   n
0000260    t   e   r   s       o   t   h   e   r       t   h   a   n    
0000300    l   i   s   t   s   ,       s   t   r   i   n   g   s   ,    
0000320    a   t   o   m   s   ,       o   r       n   u   m   b   e   r
0000340    s   ,       a   r   e       p   r   i   n   t   e   d       i
0000360    n       t   h   e       f   o   r   m       {   l   i   s   p
0000400        {   b   r   a   c   k   e   t       {   a   r   g       D
0000420    A   T   A   T   Y   P   E   }   }   }       f   o   l   l   o
0000440    w   e   d       b   y       t   h   e       o   c   t   a   l
0000460        r   e   p   r   e   s   e   n   t   a   t   i   o   n    
0000500    o   f       t   h   e       a   d   d   r   e   s   s       o
0000520    f       t   h   e       p   o   i   n   t   e   r       (   r
0000540    e   g   a   r   d   l   e   s   s       o   f       r   a   d
0000560    i   x   )   .           F   o   r       e   x   a   m   p   l
0000600    e   ,       a   n       a   r   r   a   y       p   o   i   n
0000620    t   e   r       m   i   g   h   t       p   r   i   n   t    
0000640    a   s       {   l   i   s   p       {   b   r   a   c   k   e
0000660    t       A   R   R   A   Y   P   }   #   4   3   ,   2   7   6
0000700    0   }   .           T   h   i   s       p   r   i   n   t   e
0000720    d       r   e   p   r   e   s   e   n   t   a   t   i   o   n
0000740        i   s       f   o   r       c   o   m   p   a   c   t   n
0000760    e   s   s       o   f       d   i   s   p   l   a   y       o
0001000    n       t   h   e       u   s   e   r   '   s       t   e   r
0001020    m   i   n   a   l   ,       a   n   d       w   i   l   l    
0001040    {   e   m   p   h   a   s   i   z   e       n   o   t   }    
0001060    r   e   a   d       b   a   c   k       i   n       c   o   r
0001100    r   e   c   t   l   y   ;       i   f       t   h   e       f
0001120    o   r   m       a   b   o   v   e       i   s       r   e   a
0001140    d   ,       i   t       w   i   l   l       p   r   o   d   u
0001160    c   e       t   h   e       l   i   t   a   t   o   m       {
0001200    l   i   s   p       {   b   r   a   c   k   e   t       A   R
0001220    R   A   Y   P   }   #   4   3   ,   2   7   6   0   }   .  \r
0001240   \r  \r   N   o   t   e   :       t   h   e       t   e   r   m
0001260        "   e   n   d   -   o   f   -   l   i   n   e   "   {   i
0001300    n   d   e   x       E   n   d   -   o   f   -   l   i   n   e
0001320        c   h   a   r   a   c   t   e   r   }       a   p   p   e
0001340    a   r   i   n   g       i   n       t   h   e       d   e   s
0001360    c   r   i   p   t   i   o   n       o   f       a   n       o
0001400    u   t   p   u   t       f   u   n   c   t   i   o   n       m
0001420    e   a   n   s       t   h   e       c   h   a   r   a   c   t
0001440    e   r       o   r       c   h   a   r   a   c   t   e   r   s
0001460        u   s   e   d       t   o       t   e   r   m   i   n   a
0001500    t   e       a       l   i   n   e       i   n       t   h   e
0001520        f   i   l   e       s   y   s   t   e   m       b   e   i
0001540    n   g       u   s   e   d       b   y       t   h   e       g
0001560    i   v   e   n       i   m   p   l   e   m   e   n   t   a   t
0001600    i   o   n       o   f       I   n   t   e   r   l   i   s   p
0001620    .           F   o   r       e   x   a   m   p   l   e   ,    
0001640    i   n       I   n   t   e   r   l   i   s   p   -   D       e
0001660    n   d   -   o   f   -   l   i   n   e       i   s       i   n
0001700    d   i   c   a   t   e   d       b   y       t   h   e       c
0001720    h   a   r   a   c   t   e   r       c   a   r   r   i   a   g
0001740    e   -   r   e   t   u   r   n   .   {   i   n   d   e   x    
0001760    *   P   R   I   M   A   R   Y   *       C   a   r   r   i   a
0002000    g   e   -   r   e   t   u   r   n   }  \r  \r  \r   S   o   m
0002020    e       o   f       t   h   e       f   u   n   c   t   i   o
0002040    n   s       d   e   s   c   r   i   b   e   d       b   e   l
0002060    o   w       h   a   v   e       a       {   a   r   g       R
0002100    D   T   B   L   }       a   r   g   u   m   e   n   t   ,    
0002120    w   h   i   c   h       s   p   e   c   i   f   i   e   s    
0002140    t   h   e       {   i   n   d   e   x       r   e   a   d    
0002160    t   a   b   l   e   s   }   r   e   a   d       t   a   b   l
0002200    e       t   o       b   e       u   s   e   d       f   o   r
0002220        o   u   t   p   u   t       (   s   e   e       {   P   a
0002240    g   e   R   e   f       T   e   r   m       R   e   a   d    
0002260    T   a   b   l   e   s   }   )   .           I   f       {   a
0002300    r   g       R   D   T   B   L   }       i   s       {   l   i
0002320    s   p       N   I   L   }   ,       t   h   e       {   i   n
0002340    d   e   x       p   r   i   m   a   r   y       r   e   a   d
0002360        t   a   b   l   e   }   p   r   i   m   a   r   y       r
0002400    e   a   d       t   a   b   l   e       i   s       u   s   e
0002420    d   .  \r  \r   M   o   s   t       o   f       t   h   e    
0002440    f   u   n   c   t   i   o   n   s       d   e   s   c   r   i
0002460    b   e   d       b   e   l   o   w       h   a   v   e       a
0002500    n       a   r   g   u   m   e   n   t       {   a   r   g    
0002520    F   I   L   E   }   ,       w   h   i   c   h       s   p   e
0002540    c   i   f   i   e   s       t   h   e       s   t   r   e   a
0002560    m       o   n       w   h   i   c   h       t   h   e       o
0002600    p   e   r   a   t   i   o   n       i   s       t   o       t
0002620    a   k   e       p   l   a   c   e   .           I   f       {
0002640    a   r   g       F   I   L   E   }       i   s       {   l   i
0002660    s   p       N   I   L   }   ,       t   h   e       {   i   n
0002700    d   e   x       p   r   i   m   a   r   y       s   t   r   e
0002720    a   m   s   }   p   r   i   m   a   r   y       o   u   t   p
0002740    u   t       s   t   r   e   a   m       i   s       u   s   e
0002760    d       (   s   e   e       {   P   a   g   e   R   e   f    
0003000    T   e   r   m       p   r   i   m   a   r   y       s   t   r
0003020    e   a   m   s   }   )   .  \r  \r  \r   {   F   n   D   e   f
0003040        {   F   n   N   a   m   e       O   U   T   P   U   T   }
0003060        {   F   n   A   r   g   s       F   I   L   E   }  \r   {
0003100    T   e   x   t  \r   S   e   t   s       {   a   r   g       F
0003120    I   L   E   }       a   s       t   h   e       {   i   n   d
0003140    e   x       *   P   R   I   M   A   R   Y   *       P   r   i
0003160    m   a   r   y       o   u   t   p   u   t       s   t   r   e
0003200    a   m   }   p   r   i   m   a   r   y       o   u   t   p   u
0003220    t       s   t   r   e   a   m   ;       r   e   t   u   r   n
0003240    s       t   h   e       o   l   d       p   r   i   m   a   r
0003260    y       o   u   t   p   u   t       s   t   r   e   a   m   .
0003300            {   a   r   g       F   I   L   E   }       m   u   s
0003320    t       b   e       o   p   e   n       f   o   r       o   u
0003340    t   p   u   t   .  \r  \r   {   l   i   s   p       (   O   U
0003360    T   P   U   T   )   }       r   e   t   u   r   n   s       t
0003400    h   e       c   u   r   r   e   n   t       p   r   i   m   a
0003420    r   y       o   u   t   p   u   t       s   t   r   e   a   m
0003440    ,       w   h   i   c   h       i   s       n   o   t       c
0003460    h   a   n   g   e   d   .  \r  \r   N   o   t   e   :        
0003500    I   f       t   h   e       p   r   i   m   a   r   y       o
0003520    u   t   p   u   t       s   t   r   e   a   m       i   s    
0003540    s   e   t       t   o       a       f   i   l   e   ,       t
0003560    h   e       f   i   l   e   '   s       f   u   l   l       n
0003600    a   m   e   ,       r   a   t   h   e   r       t   h   a   n
0003620        t   h   e       s   t   r   e   a   m       i   t   s   e
0003640    l   f   ,       i   s       r   e   t   u   r   n   e   d   .
0003660            S   e   e       d   i   s   c   u   s   s   i   o   n
0003700        o   n       {   P   a   g   e   R   e   f       T   a   g
0003720        S   t   r   e   a   m   F   i   l   e   N   a   m   e   s
0003740    }   .  \r   }   }  \r  \r  \r  \r   {   F   n   D   e   f    
0003760    {   F   n   N   a   m   e       P   R   I   N   1   }       {
0004000    F   n   A   r   g   s       X       F   I   L   E   }  \r   {
0004020    T   e   x   t  \r   P   r   i   n   t   s       {   a   r   g
0004040        X   }       o   n       {   a   r   g       F   I   L   E
0004060    }   .  \r   }   }  \r  \r  \r   {   F   n   D   e   f       {
0004100    F   n   N   a   m   e       P   R   I   N   2   }       {   F
0004120    n   A   r   g   s       X       F   I   L   E       R   D   T
0004140    B   L   }  \r   {   T   e   x   t  \r   P   r   i   n   t   s
0004160        {   a   r   g       X   }       o   n       {   a   r   g
0004200        F   I   L   E   }       w   i   t   h       {   l   i   s
0004220    p       %   }   '   s       a   n   d       {   l   i   s   p
0004240        "   }   '   s       i   n   s   e   r   t   e   d       w
0004260    h   e   r   e       r   e   q   u   i   r   e   d       f   o
0004300    r       i   t       t   o       r   e   a   d       b   a   c
0004320    k       i   n       p   r   o   p   e   r   l   y       b   y
0004340        {   f   n       R   E   A   D   }   ,       u   s   i   n
0004360    g       {   a   r   g       R   D   T   B   L   }   .  \r   }
0004400    }  \r  \r  \r   B   o   t   h       {   f   n       P   R   I
0004420    N   1   }       a   n   d       {   f   n       P   R   I   N
0004440    2   }       p   r   i   n   t       a   n   y       k   i   n
0004460    d       o   f       L   i   s   p       e   x   p   r   e   s
0004500    s   i   o   n   ,       i   n   c   l   u   d   i   n   g    
0004520    l   i   s   t   s   ,       a   t   o   m   s   ,       n   u
0004540    m   b   e   r   s   ,       a   n   d       s   t   r   i   n
0004560    g   s   .           {   f   n       P   R   I   N   1   }    
0004600    i   s       g   e   n   e   r   a   l   l   y       u   s   e
0004620    d       f   o   r       p   r   i   n   t   i   n   g       e
0004640    x   p   r   e   s   s   i   o   n   s       w   h   e   r   e
0004660        h   u   m   a   n       r   e   a   d   a   b   i   l   i
0004700    t   y   ,       r   a   t   h   e   r       t   h   a   n    
0004720    m   a   c   h   i   n   e       r   e   a   d   a   b   i   l
0004740    i   t   y   ,       i   s       i   m   p   o   r   t   a   n
0004760    t   ,       e   .   g   .   ,       w   h   e   n       p   r
0005000    i   n   t   i   n   g       t   e   x   t       r   a   t   h
0005020    e   r       t   h   a   n       p   r   o   g   r   a   m    
0005040    f   r   a   g   m   e   n   t   s   .           {   f   n    
0005060    P   R   I   N   1   }       d   o   e   s       n   o   t    
0005100    p   r   i   n   t       d   o   u   b   l   e       q   u   o
0005120    t   e   s       a   r   o   u   n   d       s   t   r   i   n
0005140    g   s   ,       o   r       {   l   i   s   p       %   }    
0005160    i   n       f   r   o   n   t       o   f       s   p   e   c
0005200    i   a   l       c   h   a   r   a   c   t   e   r   s   .    
0005220        {   f   n       P   R   I   N   2   }       i   s       u
0005240    s   e   d       f   o   r       p   r   i   n   t   i   n   g
0005260        I   n   t   e   r   l   i   s   p       e   x   p   r   e
0005300    s   s   i   o   n   s       w   h   i   c   h       c   a   n
0005320        t   h   e   n       b   e       r   e   a   d       b   a
0005340    c   k       i   n   t   o       I   n   t   e   r   l   i   s
0005360    p       w   i   t   h       {   f   n       R   E   A   D   }
0005400    ;       i   .   e   .   ,       b   r   e   a   k       a   n
0005420    d       s   e   p   a   r   a   t   o   r       c   h   a   r
0005440    a   c   t   e   r   s       i   n       a   t   o   m   s    
0005460    w   i   l   l       b   e       p   r   e   c   e   d   e   d
0005500        b   y       {   l   i   s   p       %   }   '   s   .    
0005520        F   o   r       e   x   a   m   p   l   e   ,       t   h
0005540    e       a   t   o   m       "   {   l   i   s   p       (   )
0005560    }   "       i   s       p   r   i   n   t   e   d       a   s
0005600        {   l   i   s   p       %   (   %   )   }       b   y    
0005620    {   f   n       P   R   I   N   2   }   .           I   f    
0005640    t   h   e       i   n   t   e   g   e   r       o   u   t   p
0005660    u   t       r   a   d   i   x       (   a   s       s   e   t
0005700        b   y       {   i   n   d   e   x       R   A   D   I   X
0005720        F   N   }   {   f   n       R   A   D   I   X   }   ,    
0005740    {   P   a   g   e   R   e   f       F   n       R   A   D   I
0005760    X   }   )       i   s       n   o   t       1   0   ,       {
0006000    f   n       P   R   I   N   2   }       p   r   i   n   t   s
0006020        t   h   e       i   n   t   e   g   e   r       u   s   i
0006040    n   g       t   h   e       {   i   n   d   e   x       I   n
0006060    t   e   g   e   r       i   n   p   u   t       s   y   n   t
0006100    a   x   }   i   n   p   u   t       s   y   n   t   a   x    
0006120    f   o   r       n   o   n   -   d   e   c   i   m   a   l    
0006140    i   n   t   e   g   e   r   s       (   s   e   e       {   P
0006160    a   g   e   R   e   f       T   e   r   m       I   n   t   e
0006200    g   e   r       i   n   p   u   t       s   y   n   t   a   x
0006220    }   )       b   u   t       {   f   n       P   R   I   N   1
0006240    }       d   o   e   s       n   o   t       (   b   u   t    
0006260    b   o   t   h       p   r   i   n   t       t   h   e       i
0006300    n   t   e   g   e   r       i   n       t   h   e       o   u
0006320    t   p   u   t       r   a   d   i   x   )   .  \r  \r  \r   {
0006340    F   n   D   e   f       {   F   n   N   a   m   e       P   R
0006360    I   N   3   }       {   F   n   A   r   g   s       X       F
0006400    I   L   E   }   }  \r   {   F   n   D   e   f       {   F   n
0006420    N   a   m   e       P   R   I   N   4   }       {   F   n   A
0006440    r   g   s       X       F   I   L   E       R   D   T   B   L
0006460    }  \r   {   T   e   x   t  \r   {   f   n       P   R   I   N
0006500    3   }       a   n   d       {   f   n       P   R   I   N   4
0006520    }       a   r   e       t   h   e       s   a   m   e       a
0006540    s       {   f   n       P   R   I   N   1   }       a   n   d
0006560        {   f   n       P   R   I   N   2   }       r   e   s   p
0006600    e   c   t   i   v   e   l   y   ,       e   x   c   e   p   t
0006620        t   h   a   t       t   h   e   y       d   o       n   o
0006640    t       i   n   c   r   e   m   e   n   t       t   h   e    
0006660    h   o   r   i   z   o   n   t   a   l       p   o   s   i   t
0006700    i   o   n       c   o   u   n   t   e   r       n   o   r    
0006720    p   e   r   f   o   r   m       a   n   y       l   i   n   e
0006740    l   e   n   g   t   h       c   h   e   c   k   s   .        
0006760    T   h   e   y       a   r   e       u   s   e   f   u   l    
0007000    p   r   i   m   a   r   i   l   y       f   o   r       p   r
0007020    i   n   t   i   n   g       c   o   n   t   r   o   l       c
0007040    h   a   r   a   c   t   e   r   s   .  \r   }   }  \r  \r  \r
0007060   \r   {   F   n   D   e   f       {   F   n   N   a   m   e    
0007100    P   R   I   N   T   }       {   F   n   A   r   g   s       X
0007120        F   I   L   E       R   D   T   B   L   }  \r   {   T   e
0007140    x   t  \r   P   r   i   n   t   s       t   h   e       e   x
0007160    p   r   e   s   s   i   o   n       {   a   r   g       X   }
0007200        u   s   i   n   g       {   f   n       P   R   I   N   2
0007220    }       f   o   l   l   o   w   e   d       b   y       a   n
0007240        e   n   d   -   o   f   -   l   i   n   e   .           R
0007260    e   t   u   r   n   s       {   a   r   g       X   }   .  \r
0007300    }   }  \r  \r   {   F   n   D   e   f       {   N   a   m   e
0007320        P   R   I   N   T   C   C   O   D   E   }       {   A   r
0007340    g   s       C   H   A   R   C   O   D   E       F   I   L   E
0007360    }  \r   {   T   e   x   t  \r   O   u   t   p   u   t   s    
0007400    a       s   i   n   g   l   e       c   h   a   r   a   c   t
0007420    e   r       w   h   o   s   e       c   o   d   e       i   s
0007440        {   a   r   g       C   H   A   R   C   O   D   E   }    
0007460    t   o       {   a   r   g       F   I   L   E   }   .        
0007500    T   h   i   s       i   s       s   i   m   i   l   a   r    
0007520    t   o       {   l   i   s   p       (   P   R   I   N   1    
0007540    (   C   H   A   R   A   C   T   E   R       {   a   r   g    
0007560    C   H   A   R   C   O   D   E   }   )   )   }   ,       e   x
0007600    c   e   p   t       t   h   a   t       n   u   m   e   r   i
0007620    c       c   h   a   r   a   c   t   e   r   s       a   r   e
0007640        g   u   a   r   a   n   t   e   e   d       t   o       p
0007660    r   i   n   t       "   c   o   r   r   e   c   t   l   y   "
0007700    ;       e   .   g   .   ,       {   L   i   s   p       (   P
0007720    R   I   N   T   C   C   O   D   E       (   C   H   A   R   C
0007740    O   D   E       9   )   )   }       a   l   w   a   y   s    
0007760    p   r   i   n   t   s       "   {   l   i   s   p       9   }
0010000    "   ,       i   n   d   e   p   e   n   d   e   n   t       o
0010020    f       t   h   e       s   e   t   t   i   n   g       o   f
0010040        {   f   n       R   A   D   I   X   }   .  \r  \r   N   o
0010060    t   e       t   h   a   t       {   f   n       P   R   I   N
0010100    T   C   C   O   D   E   }       m   a   y       a   c   t   u
0010120    a   l   l   y       p   r   i   n   t       m   o   r   e    
0010140    t   h   a   n       o   n   e       b   y   t   e       o   n
0010160        {   a   r   g       F   I   L   E   }   ,       d   u   e
0010200        t   o       c   h   a   r   a   c   t   e   r       e   n
0010220    c   o   d   i   n   g       a   n   d       e   n   d       o
0010240    f       l   i   n   e       c   o   n   v   e   n   t   i   o
0010260    n   s   ;       t   h   u   s   ,       n   o       a   s   s
0010300    u   m   p   t   i   o   n   s       s   h   o   u   l   d    
0010320    b   e       m   a   d   e       a   b   o   u   t       t   h
0010340    e       r   e   l   a   t   i   v   e       m   o   t   i   o
0010360    n       o   f       t   h   e       f   i   l   e       p   o
0010400    i   n   t   e   r       (   s   e   e       {   f   n       G
0010420    E   T   F   I   L   E   P   T   R   }   ,       {   p   a   g
0010440    e   r   e   f       f   n       G   E   T   F   I   L   E   P
0010460    T   R   }   )       d   u   r   i   n   g       t   h   i   s
0010500        o   p   e   r   a   t   i   o   n   .  \r   }   }  \r  \r
0010520   \r   {   F   n   D   e   f       {   N   a   m   e       B   O
0010540    U   T   }       {   A   r   g   s       S   T   R   E   A   M
0010560        B   Y   T   E   }  \r   {   T   e   x   t  \r   O   u   t
0010600    p   u   t   s       a       s   i   n   g   l   e       8   -
0010620    b   i   t       b   y   t   e       t   o       {   a   r   g
0010640        S   T   R   E   A   M   }   .           T   h   i   s    
0010660    i   s       s   i   m   i   l   a   r       t   o       {   f
0010700    n       P   R   I   N   T   C   C   O   D   E   }   ,       b
0010720    u   t       f   o   r       b   i   n   a   r   y       s   t
0010740    r   e   a   m   s       t   h   e       c   h   a   r   a   c
0010760    t   e   r       p   o   s   i   t   i   o   n       i   n    
0011000    {   a   r   g       S   T   R   E   A   M   }       i   s    
0011020    n   o   t       u   p   d   a   t   e   d       (   a   s    
0011040    w   i   t   h       {   f   n       P   R   I   N   3   }   )
0011060    ,       a   n   d       e   n   d       o   f       l   i   n
0011100    e       c   o   n   v   e   n   t   i   o   n   s       a   r
0011120    e       i   g   n   o   r   e   d   .          \r   }   }  \r
0011140   \r   N   o   t   e   :           {   f   n       B   O   U   T
0011160    }       i   s       s   i   m   i   l   a   r       t   o    
0011200    {   f   n       P   R   I   N   T   C   C   O   D   E   }   ,
0011220        e   x   c   e   p   t       t   h   a   t       {   f   n
0011240        B   O   U   T   }       a   l   w   a   y   s       w   r
0011260    i   t   e   s       a       s   i   n   g   l   e       b   y
0011300    t   e   ,       w   h   e   r   e   a   s       {   f   n    
0011320    P   R   I   N   T   C   C   O   D   E   }       w   r   i   t
0011340    e   s       a       "   c   h   a   r   a   c   t   e   r   "
0011360        t   h   a   t       c   a   n       c   o   n   s   i   s
0011400    t       o   f       m   o   r   e       t   h   a   n       o
0011420    n   e       b   y   t   e   ,       d   e   p   e   n   d   i
0011440    n   g       o   n       t   h   e       c   h   a   r   a   c
0011460    t   e   r       a   n   d       i   t   s       e   n   c   o
0011500    d   i   n   g       (   s   e   e       {   i   n   d   e   x
0011520        N   S       c   h   a   r   a   c   t   e   r       I   /
0011540    O   }   {   P   a   g   e   R   e   f       T   e   r   m    
0011560    N   S       c   h   a   r   a   c   t   e   r       I   /   O
0011600    }   )   .  \r  \r  \r   {   F   n   D   e   f       {   F   n
0011620    N   a   m   e       S   P   A   C   E   S   }       {   F   n
0011640    A   r   g   s       N       F   I   L   E   }  \r   {   T   e
0011660    x   t  \r   P   r   i   n   t   s       {   a   r   g       N
0011700    }       s   p   a   c   e   s   .           R   e   t   u   r
0011720    n   s       {   l   i   s   p       N   I   L   }   .  \r   }
0011740    }  \r  \r  \r   {   F   n   D   e   f       {   F   n   N   a
0011760    m   e       T   E   R   P   R   I   }       {   F   n   A   r
0012000    g   s       F   I   L   E   }  \r   {   T   e   x   t  \r   P
0012020    r   i   n   t   s       a   n       e   n   d   -   o   f   -
0012040    l   i   n   e       c   h   a   r   a   c   t   e   r   .   {
0012060    i   n   d   e   x       E   n   d   -   o   f   -   l   i   n
0012100    e       c   h   a   r   a   c   t   e   r   }           R   e
0012120    t   u   r   n   s       {   l   i   s   p       N   I   L   }
0012140    .  \r   }   }  \r  \r   {   F   n   D   e   f       {   F   n
0012160    N   a   m   e       F   R   E   S   H   L   I   N   E   }    
0012200    {   F   n   A   r   g   s       S   T   R   E   A   M   }  \r
0012220    {   T   e   x   t  \r   E   q   u   i   v   a   l   e   n   t
0012240        t   o       {   f   n       T   E   R   P   R   I   }   ,
0012260        e   x   c   e   p   t       i   t       d   o   e   s    
0012300    n   o   t   h   i   n   g       i   f       i   t       i   s
0012320        a   l   r   e   a   d   y       a   t       t   h   e    
0012340    b   e   g   i   n   n   i   n   g       o   f       t   h   e
0012360        l   i   n   e   .           R   e   t   u   r   n   s    
0012400    {   l   i   s   p       T   }       i   f       i   t       p
0012420    r   i   n   t   s       a   n       e   n   d   -   o   f   -
0012440    l   i   n   e   ,       {   l   i   s   p       N   I   L   }
0012460        o   t   h   e   r   w   i   s   e   .  \r   }   }  \r  \r
0012500    {   F   n   D   e   f       {   F   n   N   a   m   e       T
0012520    A   B   }       {   F   n   A   r   g   s       P   O   S    
0012540    M   I   N   S   P   A   C   E   S       F   I   L   E   }  \r
0012560    {   T   e   x   t  \r   P   r   i   n   t   s       t   h   e
0012600        a   p   p   r   o   p   r   i   a   t   e       n   u   m
0012620    b   e   r       o   f       s   p   a   c   e   s       t   o
0012640        m   o   v   e       t   o       p   o   s   i   t   i   o
0012660    n       {   a   r   g       P   O   S   }   .           {   a
0012700    r   g       M   I   N   S   P   A   C   E   S   }       i   n
0012720    d   i   c   a   t   e   s       h   o   w       m   a   n   y
0012740        s   p   a   c   e   s       m   u   s   t       b   e    
0012760    p   r   i   n   t   e   d       (   i   f       {   l   i   s
0013000    p       N   I   L   }   ,       1       i   s       u   s   e
0013020    d   )   .           I   f       t   h   e       c   u   r   r
0013040    e   n   t       p   o   s   i   t   i   o   n       p   l   u
0013060    s       {   a   r   g       M   I   N   S   P   A   C   E   S
0013100    }       i   s       g   r   e   a   t   e   r       t   h   a
0013120    n       {   a   r   g       P   O   S   }   ,       {   f   n
0013140        T   A   B   }       d   o   e   s       a       {   f   n
0013160        T   E   R   P   R   I   }       a   n   d       t   h   e
0013200    n       {   l   i   s   p       (   S   P   A   C   E   S    
0013220    {   a   r   g       P   O   S   }   )   }   .           I   f
0013240        {   a   r   g       M   I   N   S   P   A   C   E   S   }
0013260        i   s       {   l   i   s   p       T   }   ,       a   n
0013300    d       t   h   e       c   u   r   r   e   n   t       p   o
0013320    s   i   t   i   o   n       i   s       g   r   e   a   t   e
0013340    r       t   h   a   n       {   a   r   g       P   O   S   }
0013360    ,       t   h   e   n       {   f   n       T   A   B   }    
0013400    d   o   e   s       n   o   t   h   i   n   g   .  \r   }   }
0013420   \r  \r  \r   N   o   t   e   :           A       s   e   q   u
0013440    e   n   c   e       o   f       {   f   n       P   R   I   N
0013460    T   }   ,       {   f   n       P   R   I   N   2   }   ,    
0013500    {   f   n       S   P   A   C   E   S   }   ,       a   n   d
0013520        {   f   n       T   E   R   P   R   I   }       e   x   p
0013540    r   e   s   s   i   o   n   s       c   a   n       o   f   t
0013560    e   n       b   e       m   o   r   e       c   o   n   v   e
0013600    n   i   e   n   t   l   y       c   o   d   e   d       w   i
0013620    t   h       a       s   i   n   g   l   e       {   l   i   s
0013640    p       P   R   I   N   T   O   U   T   }       s   t   a   t
0013660    e   m   e   n   t       (   {   P   a   g   e   R   e   f    
0013700    T   a   g       P   R   I   N   T   O   U   T   }   )   .  \r
0013720   \r  \r  \r   {   F   n   D   e   f       {   F   n   N   a   m
0013740    e       S   H   O   W   P   R   I   N   2   }       {   F   n
0013760    A   r   g   s       X       F   I   L   E       R   D   T   B
0014000    L   }  \r   {   T   e   x   t  \r   L   i   k   e       {   f
0014020    n       P   R   I   N   2   }       e   x   c   e   p   t    
0014040    i   f       {   v   a   r       S   Y   S   P   R   E   T   T
0014060    Y   F   L   G   }   =   {   l   i   s   p       T   }   {   i
0014100    n   d   e   x       S   Y   S   P   R   E   T   T   Y   F   L
0014120    G       V   a   r   }   ,       p   r   e   t   t   y   p   r
0014140    i   n   t   s       {   a   r   g       X   }       i   n   s
0014160    t   e   a   d   .           R   e   t   u   r   n   s       {
0014200    a   r   g       X   }   .  \r   }   }  \r  \r  \r   {   F   n
0014220    D   e   f       {   F   n   N   a   m   e       S   H   O   W
0014240    P   R   I   N   T   }       {   F   n   A   r   g   s        
0014260    X       F   I   L   E       R   D   T   B   L   }  \r   {   T
0014300    e   x   t  \r   L   i   k   e       {   f   n       P   R   I
0014320    N   T   }       e   x   c   e   p   t       i   f       {   v
0014340    a   r       S   Y   S   P   R   E   T   T   Y   F   L   G   }
0014360    =   {   l   i   s   p       T   }   {   i   n   d   e   x    
0014400    S   Y   S   P   R   E   T   T   Y   F   L   G       V   a   r
0014420    }   ,       p   r   e   t   t   y   p   r   i   n   t   s    
0014440    {   a   r   g       X   }       i   n   s   t   e   a   d   ,
0014460        f   o   l   l   o   w   e   d       b   y       a   n    
0014500    e   n   d   -   o   f   -   l   i   n   e   .           R   e
0014520    t   u   r   n   s       {   a   r   g       X   }   .  \r   }
0014540    }  \r  \r  \r   {   f   n       S   H   O   W   P   R   I   N
0014560    T   }       a   n   d       {   f   n       S   H   O   W   P
0014600    R   I   N   2   }       a   r   e       u   s   e   d       b
0014620    y       t   h   e       p   r   o   g   r   a   m   m   e   r
0014640    '   s       a   s   s   i   s   t   a   n   t       (   {   P
0014660    a   g   e   R   e   f       T   e   r   m       p   r   o   g
0014700    r   a   m   m   e   r   '   s       a   s   s   i   s   t   a
0014720    n   t   }   )       f   o   r       p   r   i   n   t   i   n
0014740    g       t   h   e       v   a   l   u   e   s       o   f    
0014760    e   x   p   r   e   s   s   i   o   n   s       a   n   d    
0015000    f   o   r       p   r   i   n   t   i   n   g       t   h   e
0015020        h   i   s   t   o   r   y       l   i   s   t   ,       b
0015040    y       v   a   r   i   o   u   s       c   o   m   m   a   n
0015060    d   s       o   f       t   h   e       b   r   e   a   k    
0015100    p   a   c   k   a   g   e       (   {   P   a   g   e   R   e
0015120    f       T   a   g       B   r   e   a   k   P   a   c   k   a
0015140    g   e   }   )   ,       e   .   g   .       {   B   r   e   a
0015160    k   C   o   m       ?   =   }       a   n   d       {   B   r
0015200    e   a   k   C   o   m       B   T   }       c   o   m   m   a
0015220    n   d   s   ,       a   n   d       v   a   r   i   o   u   s
0015240        o   t   h   e   r       s   y   s   t   e   m       p   a
0015260    c   k   a   g   e   s   .           T   h   e       i   d   e
0015300    a       i   s       t   h   a   t       b   y       s   i   m
0015320    p   l   y       s   e   t   t   t   i   n   g       o   r    
0015340    b   i   n   d   i   n   g       {   v   a   r       S   Y   S
0015360    P   R   E   T   T   Y   F   L   G   }   {   i   n   d   e   x
0015400        *   P   R   I   M   A   R   Y   *       S   Y   S   P   R
0015420    E   T   T   Y   F   L   G       V   a   r   }       t   o    
0015440    {   l   i   s   p       T   }       (   i   n   i   t   i   a
0015460    l   l   y       {   l   i   s   p       N   I   L   }   )   ,
0015500        t   h   e       u   s   e   r       i   n   s   t   r   u
0015520    c   t   s       t   h   e       s   y   s   t   e   m       w
0015540    h   e   n       i   n   t   e   r   a   c   t   i   n   g    
0015560    w   i   t   h       t   h   e       u   s   e   r       t   o
0015600        {   f   n       P   R   E   T   T   Y   P   R   I   N   T
0015620    }       e   x   p   r   e   s   s   i   o   n   s       (   {
0015640    P   a   g   e   R   e   f       F   n       P   R   E   T   T
0015660    Y   P   R   I   N   T   }   )       i   n   s   t   e   a   d
0015700        o   f       p   r   i   n   t   i   n   g       t   h   e
0015720    m   .  \r  \r  \r   {   F   n   D   e   f       {   F   n   N
0015740    a   m   e       P   R   I   N   T   B   E   L   L   S   }    
0015760    {   F   n   A   r   g   s       {   a   n   o   n   a   r   g
0016000    }   }  \r   {   T   e   x   t  \r   U   s   e   d       b   y
0016020        D   W   I   M       (   {   P   a   g   e   R   e   f    
0016040    T   a   g       D   W   I   M   }   )       t   o       p   r
0016060    i   n   t       a       s   e   q   u   e   n   c   e       o
0016100    f       b   e   l   l   s       t   o       a   l   e   r   t
0016120        t   h   e       u   s   e   r       t   o       s   t   o
0016140    p       t   y   p   i   n   g   .           C   a   n       b
0016160    e       a   d   v   i   s   e   d       o   r       r   e   d
0016200    e   f   i   n   e   d       f   o   r       s   p   e   c   i
0016220    a   l       a   p   p   l   i   c   a   t   i   o   n   s   ,
0016240        e   .   g   .   ,       t   o       f   l   a   s   h    
0016260    t   h   e       s   c   r   e   e   n       o   n       a    
0016300    d   i   s   p   l   a   y       t   e   r   m   i   n   a   l
0016320    .  \r   }   }  \r  \r  \r   {   F   n   D   e   f       {   N
0016340    a   m   e       F   O   R   C   E   O   U   T   P   U   T   }
0016360        {   A   r   g   s       S   T   R   E   A   M       W   A
0016400    I   T   F   O   R   F   I   N   I   S   H   }  \r   {   T   e
0016420    x   t  \r   F   o   r   c   e   s       a   n   y       b   u
0016440    f   f   e   r   e   d       o   u   t   p   u   t       d   a
0016460    t   a       i   n       {   a   r   g       S   T   R   E   A
0016500    M   }       t   o       b   e       t   r   a   n   s   m   i
0016520    t   t   e   d   .  \r  \r   I   f       {   a   r   g       W
0016540    A   I   T   F   O   R   F   I   N   I   S   H   }       i   s
0016560        n   o   n   -   {   l   i   s   p       N   I   L   }   ,
0016600        t   h   i   s       d   o   e   s   n   '   t       r   e
0016620    t   u   r   n       u   n   t   i   l       t   h   e       d
0016640    a   t   a       h   a   s       b   e   e   n       f   o   r
0016660    c   e   d       o   u   t   .  \r   }   }  \r  \r  \r   {   F
0016700    n   D   e   f       {   F   n   N   a   m   e       P   O   S
0016720    I   T   I   O   N   }       {   F   n   A   r   g   s       F
0016740    I   L   E       N   }  \r   {   T   e   x   t  \r   R   e   t
0016760    u   r   n   s       t   h   e       c   o   l   u   m   n    
0017000    n   u   m   b   e   r       a   t       w   h   i   c   h    
0017020    t   h   e       n   e   x   t       c   h   a   r   a   c   t
0017040    e   r       w   i   l   l       b   e       r   e   a   d    
0017060    o   r       p   r   i   n   t   e   d   .           A   f   t
0017100    e   r       a       e   n   d       o   f       l   i   n   e
0017120    ,       t   h   e       c   o   l   u   m   n       n   u   m
0017140    b   e   r       i   s       0   .           I   f       {   a
0017160    r   g       N   }       i   s       n   o   n   -   {   l   i
0017200    s   p       N   I   L   }   ,       {   i   t       r   e   s
0017220    e   t   s   }       t   h   e       c   o   l   u   m   n    
0017240    n   u   m   b   e   r       t   o       b   e       {   a   r
0017260    g       N   }   .  \r  \r   N   o   t   e       t   h   a   t
0017300        r   e   s   e   t   t   i   n   g       {   f   n       P
0017320    O   S   I   T   I   O   N   }       o   n   l   y       c   h
0017340    a   n   g   e   s       L   i   s   p   '   s       b   e   l
0017360    i   e   f       a   b   o   u   t       t   h   e       c   u
0017400    r   r   e   n   t       c   o   l   u   m   n       n   u   m
0017420    b   e   r   ;       i   t       d   o   e   s       n   o   t
0017440        c   a   u   s   e       a   n   y       h   o   r   i   z
0017460    o   n   t   a   l       m   o   t   i   o   n   .           A
0017500    l   s   o       n   o   t   e       t   h   a   t       {   l
0017520    i   s   p       (   P   O   S   I   T   I   O   N       {   a
0017540    r   g       F   I   L   E   }   )   }       i   s       {   i
0017560    t       n   o   t   }       t   h   e       s   a   m   e    
0017600    a   s       {   l   i   s   p       (   G   E   T   F   I   L
0017620    E   P   T   R       {   a   r   g       F   I   L   E   }   )
0017640    }       w   h   i   c   h       g   i   v   e   s       t   h
0017660    e       p   o   s   i   t   i   o   n       i   n       t   h
0017700    e       {   i   t       f   i   l   e   }   ,       n   o   t
0017720        o   n       t   h   e       {   i   t       l   i   n   e
0017740    }   .  \r   }   }  \r  \r  \r   {   F   n   D   e   f       {
0017760    F   n   N   a   m   e       L   I   N   E   L   E   N   G   T
0020000    H   }       {   F   n   A   r   g   s       N       F   I   L
0020020    E   }  \r   {   T   e   x   t  \r   S   e   t   s       t   h
0020040    e       l   e   n   g   t   h       o   f       t   h   e    
0020060    p   r   i   n   t       l   i   n   e       f   o   r       t
0020100    h   e       o   u   t   p   u   t       f   i   l   e       {
0020120    a   r   g       F   I   L   E   }       t   o       {   a   r
0020140    g       N   }   ;       r   e   t   u   r   n   s       t   h
0020160    e       f   o   r   m   e   r       s   e   t   t   i   n   g
0020200        o   f       t   h   e       l   i   n   e       l   e   n
0020220    g   t   h   .           {   a   r   g       F   I   L   E   }
0020240        d   e   f   a   u   l   t   s       t   o       t   h   e
0020260        p   r   i   m   a   r   y       o   u   t   p   u   t    
0020300    s   t   r   e   a   m   .           {   l   i   s   p       (
0020320    L   I   N   E   L   E   N   G   T   H       N   I   L       {
0020340    a   r   g       F   I   L   E   }   )   }       r   e   t   u
0020360    r   n   s       t   h   e       c   u   r   r   e   n   t    
0020400    s   e   t   t   i   n   g       f   o   r       {   a   r   g
0020420        F   I   L   E   }   .           W   h   e   n       a    
0020440    f   i   l   e       i   s       f   i   r   s   t       o   p
0020460    e   n   e   d   ,       i   t   s       l   i   n   e       l
0020500    e   n   g   t   h       i   s       s   e   t       t   o    
0020520    t   h   e       v   a   l   u   e       o   f       t   h   e
0020540        v   a   r   i   a   b   l   e       {   v   a   r       F
0020560    I   L   E   L   I   N   E   L   E   N   G   T   H   }   .   {
0020600    i   n   d   e   x       *   P   R   I   M   A   R   Y   *    
0020620    F   I   L   E   L   I   N   E   L   E   N   G   T   H       V
0020640    a   r   }  \r  \r   W   h   e   n   e   v   e   r       p   r
0020660    i   n   t   i   n   g       a   n       a   t   o   m       o
0020700    r       s   t   r   i   n   g       w   o   u   l   d       i
0020720    n   c   r   e   a   s   e       a       f   i   l   e   '   s
0020740        p   o   s   i   t   i   o   n       {   i   t       b   e
0020760    y   o   n   d   }       t   h   e       l   i   n   e       l
0021000    e   n   g   t   h       o   f       t   h   e       f   i   l
0021020    e   ,       a   n       e   n   d       o   f       l   i   n
0021040    e       i   s       a   u   t   o   m   a   t   i   c   a   l
0021060    l   y       i   n   s   e   r   t   e   d       f   i   r   s
0021100    t   .           T   h   i   s       a   c   t   i   o   n    
0021120    c   a   n       b   e       d   e   f   e   a   t   e   d    
0021140    b   y       u   s   i   n   g       {   f   n       P   R   I
0021160    N   3   }       a   n   d       {   f   n       P   R   I   N
0021200    4   }       (   {   P   a   g   e   R   e   f       F   n    
0021220    P   R   I   N   3   }   )   .  \r   }   }  \r  \r  \r  \r   {
0021240    F   n   D   e   f       {   F   n   N   a   m   e       S   E
0021260    T   L   I   N   E   L   E   N   G   T   H   }       {   F   n
0021300    A   r   g   s       N   }  \r   {   T   e   x   t  \r   S   e
0021320    t   s       t   h   e       l   i   n   e       l   e   n   g
0021340    t   h       f   o   r       t   h   e       t   e   r   m   i
0021360    n   a   l       b   y       d   o   i   n   g       {   l   i
0021400    s   p       (   L   I   N   E   L   E   N   G   T   H       {
0021420    a   r   g       N   }       T   )   }   .           I   f    
0021440    {   a   r   g       N   }       i   s       {   l   i   s   p
0021460        N   I   L   }   ,       i   t       d   e   t   e   r   m
0021500    i   n   e   s       {   a   r   g       N   }       b   y    
0021520    c   o   n   s   u   l   t   i   n   g       t   h   e       o
0021540    p   e   r   a   t   i   n   g       s   y   s   t   e   m   '
0021560    s       b   e   l   i   e   f       a   b   o   u   t       t
0021600    h   e       t   e   r   m   i   n   a   l   '   s       c   h
0021620    a   r   a   c   t   e   r   i   s   t   i   c   s   .        
0021640    I   n       I   n   t   e   r   l   i   s   p   -   D   ,    
0021660    t   h   i   s       i   s       a       n   o   -   o   p   .
0021700   \r   }   }  \r  \r  \r  \r  \r   {   B   e   g   i   n       S
0021720    u   b   S   e   c       P   R   I   N   T   L   E   V   E   L
0021740    }  \r   {   T   i   t   l   e       P   R   I   N   T   L   E
0021760    V   E   L   }  \r   {   T   e   x   t  \r  \r   W   h   e   n
0022000        u   s   i   n   g       I   n   t   e   r   l   i   s   p
0022020        o   n   e       o   f   t   e   n       h   a   s       t
0022040    o       h   a   n   d   l   e       l   a   r   g   e   ,    
0022060    c   o   m   p   l   i   c   a   t   e   d       l   i   s   t
0022100    s   ,       w   h   i   c   h       a   r   e       d   i   f
0022120    f   i   c   u   l   t       t   o       u   n   d   e   r   s
0022140    t   a   n   d       w   h   e   n       p   r   i   n   t   e
0022160    d       o   u   t   .           {   f   n       P   R   I   N
0022200    T   L   E   V   E   L   }       a   l   l   o   w   s       t
0022220    h   e       u   s   e   r       t   o       s   p   e   c   i
0022240    f   y       i   n       h   o   w       m   u   c   h       d
0022260    e   t   a   i   l       l   i   s   t   s       s   h   o   u
0022300    l   d       b   e       p   r   i   n   t   e   d   .        
0022320    T   h   e       p   r   i   n   t       f   u   n   c   t   i
0022340    o   n   s       {   i   n   d   e   x       P   R   I   N   T
0022360        F   N   }   {   f   n       P   R   I   N   T   }   ,    
0022400    {   i   n   d   e   x       P   R   I   N   1       F   N   }
0022420    {   f   n       P   R   I   N   1   }   ,       a   n   d    
0022440    {   i   n   d   e   x       P   R   I   N   2       F   N   }
0022460    {   f   n       P   R   I   N   2   }       a   r   e       a
0022500    l   l       a   f   f   e   c   t   e   d       b   y       l
0022520    e   v   e   l       p   a   r   a   m   e   t   e   r   s    
0022540    s   e   t       b   y   :  \r  \r  \r   {   F   n   D   e   f
0022560        {   F   n   N   a   m   e       P   R   I   N   T   L   E
0022600    V   E   L   }       {   F   n   A   r   g   s       C   A   R
0022620    V   A   L       C   D   R   V   A   L   }  \r   {   T   e   x
0022640    t  \r   S   e   t   s       t   h   e       {   f   n       C
0022660    A   R   }       p   r   i   n   t       l   e   v   e   l    
0022700    t   o       {   a   r   g       C   A   R   V   A   L   }   ,
0022720        a   n   d       t   h   e       {   f   n       C   D   R
0022740    }       p   r   i   n   t       l   e   v   e   l       t   o
0022760        {   a   r   g       C   D   R   V   A   L   }   .        
0023000    R   e   t   u   r   n   s       a       l   i   s   t       c
0023020    e   l   l       w   h   o   s   e       {   f   n       C   A
0023040    R   }       a   n   d       {   f   n       C   D   R   }    
0023060    a   r   e       t   h   e       o   l   d       s   e   t   t
0023100    i   n   g   s   .           {   f   n       P   R   I   N   T
0023120    L   E   V   E   L   }       i   s       i   n   i   t   i   a
0023140    l   i   z   e   d       w   i   t   h       t   h   e       v
0023160    a   l   u   e       {   l   i   s   p       (   1   0   0   0
0023200        .       -   1   )   }   .  \r  \r   I   n       o   r   d
0023220    e   r       t   h   a   t       {   f   n       P   R   I   N
0023240    T   L   E   V   E   L   }       c   a   n       b   e       u
0023260    s   e   d       w   i   t   h       {   f   n       R   E   S
0023300    E   T   F   O   R   M   }       o   r       {   f   n       R
0023320    E   S   E   T   S   A   V   E   }   ,       i   f       {   a
0023340    r   g       C   A   R   V   A   L   }       i   s       a    
0023360    l   i   s   t       c   e   l   l       i   t       i   s    
0023400    e   q   u   i   v   a   l   e   n   t       t   o       {   l
0023420    i   s   p       (   P   R   I   N   T   L   E   V   E   L    
0023440    (   C   A   R       {   a   r   g       C   A   R   V   A   L
0023460    }   )       (   C   D   R       {   a   r   g       C   A   R
0023500    V   A   L   }   )   )   }   .  \r  \r   {   l   i   s   p    
0023520    (   P   R   I   N   T   L   E   V   E   L       {   a   r   g
0023540        N   }       N   I   L   )   }       c   h   a   n   g   e
0023560    s       t   h   e       {   f   n       C   A   R   }       p
0023600    r   i   n   t   l   e   v   e   l       w   i   t   h   o   u
0023620    t       a   f   f   e   c   t   i   n   g       t   h   e    
0023640    {   f   n       C   D   R   }       p   r   i   n   t   l   e
0023660    v   e   l   .           {   l   i   s   p       (   P   R   I
0023700    N   T   L   E   V   E   L       N   I   L       {   a   r   g
0023720        N   }   )   }       c   h   a   n   g   e   s       t   h
0023740    e       {   f   n       C   D   R   }       p   r   i   n   t
0023760    l   e   v   e   l       w   i   t   h       a   f   f   e   c
0024000    t   i   n   g       t   h   e       {   f   n       C   A   R
0024020    }       p   r   i   n   t   l   e   v   e   l   .           {
0024040    l   i   s   p       (   P   R   I   N   T   L   E   V   E   L
0024060    )   }       g   i   v   e   s       t   h   e       c   u   r
0024100    r   e   n   t       s   e   t   t   i   n   g       w   i   t
0024120    h   o   u   t       c   h   a   n   g   i   n   g       e   i
0024140    t   h   e   r   .  \r  \r   N   o   t   e   :       c   o   n
0024160    t   r   o   l   -   P       (   {   P   a   g   e   R   e   f
0024200        (   I   n   t   e   r   r   u   p   t       C   h   a   r
0024220    a   c   t   e   r   )   c   o   n   t   r   o   l   -   P   }
0024240    )       c   a   n       b   e       u   s   e   d       t   o
0024260        c   h   a   n   g   e       t   h   e       {   f   n    
0024300    P   R   I   N   T   L   E   V   E   L   }       s   e   t   t
0024320    i   n   g       d   y   n   a   m   i   c   a   l   l   y   ,
0024340        e   v   e   n       w   h   i   l   e       I   n   t   e
0024360    r   l   i   s   p       i   s       p   r   i   n   t   i   n
0024400    g   .  \r   }   }  \r  \r  \r   T   h   e       {   f   n    
0024420    C   A   R   }       p   r   i   n   t   l   e   v   e   l    
0024440    s   p   e   c   i   f   i   e   s       h   o   w       "   d
0024460    e   e   p   "       t   o       p   r   i   n   t       a    
0024500    l   i   s   t   .           S   p   e   c   i   f   i   c   a
0024520    l   l   y   ,       i   t       i   s       t   h   e       n
0024540    u   m   b   e   r       o   f       u   n   p   a   i   r   e
0024560    d       l   e   f   t       p   a   r   e   n   t   h   e   s
0024600    e   s       w   h   i   c   h       w   i   l   l       b   e
0024620        p   r   i   n   t   e   d   .           B   e   l   o   w
0024640        t   h   a   t       l   e   v   e   l   ,       a   l   l
0024660        l   i   s   t   s       w   i   l   l       b   e       p
0024700    r   i   n   t   e   d       a   s       {   l   i   s   p    
0024720    &   }   .   {   i   n   d   e   x       &       (   P   r   i
0024740    n   t   e   d       b   y       S   y   s   t   e   m   )   }
0024760            I   f       t   h   e       {   f   n       C   A   R
0025000    }       p   r   i   n   t   l   e   v   e   l       i   s    
0025020    {   i   t       n   e   g   a   t   i   v   e   }   ,       t
0025040    h   e       a   c   t   i   o   n       i   s       s   i   m
0025060    i   l   a   r       e   x   c   e   p   t       t   h   a   t
0025100        a   n       e   n   d   -   o   f   -   l   i   n   e    
0025120    i   s       i   n   s   e   r   t   e   d       a   f   t   e
0025140    r       e   a   c   h       r   i   g   h   t       p   a   r
0025160    e   n   t   h   e   s   e   s       t   h   a   t       w   o
0025200    u   l   d       b   e       i   m   m   e   d   i   a   t   e
0025220    l   y       f   o   l   l   o   w   e   d       b   y       a
0025240        l   e   f   t       p   a   r   e   n   t   h   e   s   i
0025260    s   .  \r  \r  \r   T   h   e       {   f   n       C   D   R
0025300    }       p   r   i   n   t   l   e   v   e   l       s   p   e
0025320    c   i   f   i   e   s       h   o   w       "   l   o   n   g
0025340    "       t   o       p   r   i   n   t       a       l   i   s
0025360    t   .           I   t       i   s       t   h   e       n   u
0025400    m   b   e   r       o   f       t   o   p       l   e   v   e
0025420    l       l   i   s   t       e   l   e   m   e   n   t   s    
0025440    t   h   a   t       w   i   l   l       b   e       p   r   i
0025460    n   t   e   d       b   e   f   o   r   e       t   h   e    
0025500    p   r   i   n   t   i   n   g       i   s       t   e   r   m
0025520    i   n   a   t   e   d       w   i   t   h       {   l   i   s
0025540    p       -   -   }   .   {   i   n   d   e   x       -   -    
0025560    (   P   r   i   n   t   e   d       b   y       S   y   s   t
0025600    e   m   )   }           F   o   r       e   x   a   m   p   l
0025620    e   ,       i   f       {   a   r   g       C   D   R   V   A
0025640    L   }   =   2   ,       {   l   i   s   p       (   A       B
0025660        C       D       E   )   }       w   i   l   l       p   r
0025700    i   n   t       a   s       {   l   i   s   p       (   A    
0025720    B       -   -   )   }   .           F   o   r       s   u   b
0025740    l   i   s   t   s   ,       t   h   e       n   u   m   b   e
0025760    r       o   f       l   i   s   t       e   l   e   m   e   n
0026000    t   s       p   r   i   n   t   e   d       i   s       a   l
0026020    s   o       a   f   f   e   c   t   e   d       b   y       t
0026040    h   e       d   e   p   t   h       o   f       p   r   i   n
0026060    t   i   n   g       i   n       t   h   e       {   f   n    
0026100    C   A   R   }       d   i   r   e   c   t   i   o   n   :    
0026120        W   h   e   n   e   v   e   r       t   h   e       {   i
0026140    t       s   u   m   }       o   f       t   h   e       d   e
0026160    p   t   h       o   f       t   h   e       s   u   b   l   i
0026200    s   t       (   i   .   e   .       t   h   e       n   u   m
0026220    b   e   r       o   f       u   n   m   a   t   c   h   e   d
0026240        l   e   f   t       p   a   r   e   n   t   h   e   s   e
0026260    s   )       a   n   d       t   h   e       n   u   m   b   e
0026300    r       o   f       e   l   e   m   e   n   t   s       i   s
0026320        g   r   e   a   t   e   r       t   h   a   n       t   h
0026340    e       {   f   n       C   D   R   }       p   r   i   n   t
0026360    l   e   v   e   l   ,       {   l   i   s   p       -   -   }
0026400        i   s       p   r   i   n   t   e   d   .           T   h
0026420    i   s       g   i   v   e   s       a       "   t   r   i   a
0026440    n   g   u   l   a   r   "       e   f   f   e   c   t       i
0026460    n       t   h   a   t       l   e   s   s       i   s       p
0026500    r   i   n   t   e   d       t   h   e       f   a   r   t   h
0026520    e   r       o   n   e       g   o   e   s       i   n       e
0026540    i   t   h   e   r       {   f   n       C   A   R   }       o
0026560    r       {   f   n       C   D   R   }       d   i   r   e   c
0026600    t   i   o   n   .           I   f       t   h   e       {   f
0026620    n       C   D   R   }       p   r   i   n   t   l   e   v   e
0026640    l       i   s       n   e   g   a   t   i   v   e   ,       t
0026660    h   e   n       i   t       i   s       t   h   e       s   a
0026700    m   e       a   s       i   f       t   h   e       {   f   n
0026720        C   D   R   }       p   r   i   n   t   l   e   v   e   l
0026740        w   e   r   e       i   n   f   i   n   i   t   e   .  \r
0026760   \r   E   x   a   m   p   l   e   s   :  \r  \r   {   B   e   g
0027000    i   n       L   a   b   e   l   e   d   l   i   s   t       P
0027020    R   I   N   T   L   E   V   E   L       e   x   a   m   p   l
0027040    e   s   }  \r  \r   {   L   a   b   e   l       A   f   t   e
0027060    r   :   }  \r   {   T   e   x   t       {   l   i   s   p    
0027100    (   A       (   B       C       (   D       (   E       F   )
0027120        G   )       H   )       K       L   )   }       p   r   i
0027140    n   t   s       a   s   :   }  \r  \r   {   L   a   b   e   l
0027160        {   l   i   s   p       (   P   R   I   N   T   L   E   V
0027200    E   L       3       -   1   )   }   }  \r   {   T   e   x   t
0027220        {   l   i   s   p       (   A       (   B       C       (
0027240    D       &       G   )       H   )       K       L   )   }   }
0027260   \r  \r   {   L   a   b   e   l       {   l   i   s   p       (
0027300    P   R   I   N   T   L   E   V   E   L       2       -   1   )
0027320    }   }  \r   {   T   e   x   t       {   l   i   s   p       (
0027340    A       (   B       C       &       H   )       K       L   )
0027360    }   }  \r  \r   {   L   a   b   e   l       {   l   i   s   p
0027400        (   P   R   I   N   T   L   E   V   E   L       1       -
0027420    1   )   }   }  \r   {   T   e   x   t       {   l   i   s   p
0027440        (   A       &       K       L   )   }   }  \r  \r   {   L
0027460    a   b   e   l       {   l   i   s   p       (   P   R   I   N
0027500    T   L   E   V   E   L       0       -   1   )   }   }  \r   {
0027520    T   e   x   t       {   l   i   s   p       &   }   }  \r  \r
0027540    {   L   a   b   e   l       {   l   i   s   p       (   P   R
0027560    I   N   T   L   E   V   E   L       1   0   0   0       2   )
0027600    }   }  \r   {   T   e   x   t       {   l   i   s   p       (
0027620    A       (   B       -   -   )       -   -   )   }   }  \r  \r
0027640    {   L   a   b   e   l       {   l   i   s   p       (   P   R
0027660    I   N   T   L   E   V   E   L       1   0   0   0       3   )
0027700    }   }  \r   {   T   e   x   t       {   l   i   s   p       (
0027720    A       (   B       C       -   -   )       K       -   -   )
0027740    }   }  \r  \r   {   L   a   b   e   l       {   l   i   s   p
0027760        (   P   R   I   N   T   L   E   V   E   L       1       3
0030000    )   }   }  \r   {   T   e   x   t       {   l   i   s   p    
0030020    (   A       &       K       -   -   )   }   }  \r  \r   {   E
0030040    n   d       L   a   b   e   l   e   d   l   i   s   t       P
0030060    R   I   N   T   L   E   V   E   L       e   x   a   m   p   l
0030100    e   s   }  \r  \r  \r  \r   {   V   a   r   D   e   f       {
0030120    N   a   m   e       P   L   V   L   F   I   L   E   F   L   G
0030140    }  \r   {   T   e   x   t  \r   N   o   r   m   a   l   l   y
0030160    ,       {   f   n       P   R   I   N   T   L   E   V   E   L
0030200    }       o   n   l   y       a   f   f   e   c   t   s       t
0030220    e   r   m   i   n   a   l       o   u   t   p   u   t   .    
0030240        O   u   t   p   u   t       t   o       a   l   l       o
0030260    t   h   e   r       f   i   l   e   s       a   c   t   s    
0030300    a   s       t   h   o   u   g   h       t   h   e       p   r
0030320    i   n   t       l   e   v   e   l       i   s       i   n   f
0030340    i   n   i   t   e   .           H   o   w   e   v   e   r   ,
0030360        i   f       {   v   a   r       P   L   V   L   F   I   L
0030400    E   F   L   G   }       i   s       {   l   i   s   p       T
0030420    }       (   i   n   i   t   i   a   l   l   y       {   l   i
0030440    s   p       N   I   L   }   )   ,       t   h   e   n       {
0030460    f   n       P   R   I   N   T   L   E   V   E   L   }       a
0030500    f   f   e   c   t   s       o   u   t   p   u   t       t   o
0030520        f   i   l   e   s       a   s       w   e   l   l   .  \r
0030540    }   }  \r  \r   T   h   e       f   o   l   l   o   w   i   n
0030560    g       t   h   r   e   e       f   u   n   c   t   i   o   n
0030600    s       a   r   e       u   s   e   f   u   l       f   o   r
0030620        p   r   i   n   t   i   n   g       i   s   o   l   a   t
0030640    e   d       e   x   p   r   e   s   s   i   o   n   s       a
0030660    t       a       s   p   e   c   i   f   i   e   d       p   r
0030700    i   n   t       l   e   v   e   l       w   i   t   h   o   u
0030720    t       g   o   i   n   g       t   o       t   h   e       o
0030740    v   e   r   h   e   a   d       o   f       r   e   s   e   t
0030760    t   i   n   g       t   h   e       g   l   o   b   a   l    
0031000    p   r   i   n   t       l   e   v   e   l   .  \r  \r   {   F
0031020    n   D   e   f       {   F   n   N   a   m   e       L   V   L
0031040    P   R   I   N   T   }       {   F   n   A   r   g   s       X
0031060        F   I   L   E       C   A   R   L   V   L       C   D   R
0031100    L   V   L       T   A   I   L   }  \r   {   T   e   x   t  \r
0031120    P   e   r   f   o   r   m   s       {   f   n       P   R   I
0031140    N   T   }       o   f       {   a   r   g       X   }       t
0031160    o       {   a   r   g       F   I   L   E   }   ,       u   s
0031200    i   n   g       a   s       {   l   i   s   p       C   A   R
0031220    }       a   n   d       {   l   i   s   p       C   D   R   }
0031240        p   r   i   n   t       l   e   v   e   l   s       t   h
0031260    e       v   a   l   u   e   s       {   a   r   g       C   A
0031300    R   L   V   L   }       a   n   d       {   a   r   g       C
0031320    D   R   L   V   L   }   ,       r   e   s   p   e   c   t   i
0031340    v   e   l   y   .           U   s   e   s       t   h   e    
0031360    {   l   i   s   p       T   }       r   e   a   d       t   a
0031400    b   l   e   .           I   f       {   a   r   g       T   A
0031420    I   L   }       i   s       s   p   e   c   i   f   i   e   d
0031440    ,       a   n   d       {   a   r   g       X   }       i   s
0031460        a       t   a   i   l       o   f       i   t   ,       t
0031500    h   e   n       b   e   g   i   n   s       i   t   s       p
0031520    r   i   n   t   i   n   g       w   i   t   h       "   {   l
0031540    i   s   p       .   .   .   }   "   ,       r   a   t   h   e
0031560    r       t   h   a   n       o   n       o   p   e   n       p
0031600    a   r   e   n   t   h   e   s   i   s   .  \r   }   }  \r  \r
0031620    {   F   n   D   e   f       {   F   n   N   a   m   e       L
0031640    V   L   P   R   I   N   2   }       {   F   n   A   r   g   s
0031660        X       F   I   L   E       C   A   R   L   V   L       C
0031700    D   R   L   V   L       T   A   I   L   }  \r   {   T   e   x
0031720    t  \r   S   i   m   i   l   a   r       t   o       {   f   n
0031740        L   V   L   P   R   I   N   2   }   ,       b   u   t    
0031760    p   e   r   f   o   r   m   s       a       {   f   n       P
0032000    R   I   N   2   }   .  \r   }   }  \r  \r   {   F   n   D   e
0032020    f       {   F   n   N   a   m   e       L   V   L   P   R   I
0032040    N   1   }       {   F   n   A   r   g   s       X       F   I
0032060    L   E       C   A   R   L   V   L       C   D   R   L   V   L
0032100        T   A   I   L   }  \r   {   T   e   x   t  \r   S   i   m
0032120    i   l   a   r       t   o       {   f   n       L   V   L   P
0032140    R   I   N   1   }   ,       b   u   t       p   e   r   f   o
0032160    r   m   s       a       {   f   n       P   R   I   N   1   }
0032200    .  \r   }   }  \r  \r  \r   }   {   E   n   d       S   u   b
0032220    S   e   c       P   R   I   N   T   L   E   V   E   L   }  \r
0032240   \r  \r  \r   {   B   e   g   i   n       S   u   b   S   e   c
0032260        P   r   i   n   t   i   n   g       n   u   m   b   e   r
0032300    s   }  \r   {   T   i   t   l   e       P   r   i   n   t   i
0032320    n   g       n   u   m   b   e   r   s   }  \r   {   T   e   x
0032340    t  \r  \r  \r   {   i   n   d   e   x       *   P   R   I   M
0032360    A   R   Y   *       P   r   i   n   t   i   n   g       n   u
0032400    m   b   e   r   s   }  \r  \r  \r   {   n   o   t   e       t
0032420    h   i   s       s   t   u   f   f       i   s       f   a   i
0032440    r   l   y       t   r   i   c   k   y   .   .   .   .       e
0032460    x   a   m   i   n   e       t   h   i   s       c   a   r   e
0032500    f   u   l   l   y       f   o   r       e   r   r   o   r   s
0032520    }  \r  \r  \r   H   o   w       t   h   e       o   r   d   i
0032540    n   a   r   y       p   r   i   n   t   i   n   g       f   u
0032560    n   c   t   i   o   n   s       (   {   f   n       P   R   I
0032600    N   1   }   ,       {   f   n       P   R   I   N   2   }   ,
0032620        e   t   c   .   )       p   r   i   n   t       n   u   m
0032640    b   e   r   s       c   a   n       b   e       a   f   f   e
0032660    c   t   e   d       i   n       s   e   v   e   r   a   l    
0032700    w   a   y   s   .           {   f   n       R   A   D   I   X
0032720    }       i   n   f   l   u   e   n   c   e   s       t   h   e
0032740        p   r   i   n   t   i   n   g       o   f       i   n   t
0032760    e   g   e   r   s   ,       a   n   d       {   f   n       F
0033000    L   T   F   M   T   }       i   n   f   l   u   e   n   c   e
0033020    s       t   h   e       p   r   i   n   t   i   n   g       o
0033040    f       f   l   o   a   t   i   n   g       p   o   i   n   t
0033060        n   u   m   b   e   r   s   .           T   h   e       s
0033100    e   t   t   i   n   g       o   f       t   h   e       v   a
0033120    r   i   a   b   l   e       {   v   a   r       P   R   X   F
0033140    L   G   }       d   e   t   e   r   m   i   n   e   s       h
0033160    o   w       t   h   e       s   y   m   b   o   l   -   m   a
0033200    n   i   p   u   l   a   t   i   o   n       f   u   n   c   t
0033220    i   o   n   s       h   a   n   d   l   e       n   u   m   b
0033240    e   r   s   .           T   h   e       {   f   n       P   R
0033260    I   N   T   N   U   M   }       p   a   c   k   a   g   e    
0033300    p   e   r   m   i   t   s       g   r   e   a   t   e   r    
0033320    c   o   n   t   r   o   l   s       o   n       t   h   e    
0033340    p   r   i   n   t   e   d       a   p   p   e   a   r   a   n
0033360    c   e       o   f       n   u   m   b   e   r   s   ,       a
0033400    l   l   o   w   i   n   g       s   u   c   h       t   h   i
0033420    n   g   s       a   s       l   e   f   t   -   j   u   s   t
0033440    i   f   i   c   a   t   i   o   n   ,       s   u   p   p   r
0033460    e   s   s   i   o   n       o   f       t   r   a   i   l   i
0033500    n   g       d   e   c   i   m   a   l   s   ,       e   t   c
0033520    .  \r  \r  \r  \r   {   F   n   D   e   f       {   F   n   N
0033540    a   m   e       R   A   D   I   X   }       {   F   n   A   r
0033560    g   s       N   }  \r   {   T   e   x   t  \r   R   e   s   e
0033600    t   s       t   h   e       o   u   t   p   u   t       r   a
0033620    d   i   x       f   o   r       i   n   t   e   g   e   r   s
0033640        t   o       t   h   e       a   b   s   o   l   u   t   e
0033660        v   a   l   u   e       o   f       {   a   r   g       N
0033700    }   .           T   h   e       v   a   l   u   e       o   f
0033720        {   f   n       R   A   D   I   X   }       i   s       i
0033740    t   s       p   r   e   v   i   o   u   s       s   e   t   t
0033760    i   n   g   .           {   l   i   s   p       (   R   A   D
0034000    I   X   )   }       g   i   v   e   s       t   h   e       c
0034020    u   r   r   e   n   t       s   e   t   t   i   n   g       w
0034040    i   t   h   o   u   t       c   h   a   n   g   i   n   g    
0034060    i   t   .           T   h   e       i   n   i   t   i   a   l
0034100        s   e   t   t   i   n   g       i   s       1   0   .  \r
0034120   \r   N   o   t   e       t   h   a   t       {   f   n       R
0034140    A   D   I   X   }       a   f   f   e   c   t   s       o   u
0034160    t   p   u   t       {   i   t       o   n   l   y   }   .    
0034200        T   h   e   r   e       i   s       n   o       i   n   p
0034220    u   t       r   a   d   i   x   ;       o   n       i   n   p
0034240    u   t   ,       n   u   m   b   e   r   s       a   r   e    
0034260    i   n   t   e   r   p   r   e   t   e   d       a   s       d
0034300    e   c   i   m   a   l       u   n   l   e   s   s       t   h
0034320    e   y       a   r   e       e   n   t   e   r   e   d       i
0034340    n       a       n   o   n   -   d   e   c   i   m   a   l    
0034360    r   a   d   i   x       w   i   t   h       s   y   n   t   a
0034400    x       s   u   c   h       a   s       {   l   i   s   p    
0034420    1   2   3   Q   }   ,       {   l   i   s   p       |   b   1
0034440    0   1   0   1   }   ,       {   l   i   s   p       |   5   r
0034460    1   2   3   4   }       (   s   e   e       {   P   a   g   e
0034500    R   e   f       T   e   r   m       I   n   t   e   g   e   r
0034520        i   n   p   u   t       s   y   n   t   a   x   }   )   .
0034540            {   f   n       R   A   D   I   X   }       d   o   e
0034560    s       n   o   t       a   f   f   e   c   t       t   h   e
0034600        b   e   h   a   v   i   o   r       o   f       {   f   n
0034620        U   N   P   A   C   K   }   ,       e   t   c   .   ,    
0034640    u   n   l   e   s   s       t   h   e       v   a   l   u   e
0034660        o   f       {   v   a   r       P   R   X   F   L   G   }
0034700        (   b   e   l   o   w   )       i   s       {   l   i   s
0034720    p       T   }   .           F   o   r       e   x   a   m   p
0034740    l   e   ,       i   f       {   v   a   r       P   R   X   F
0034760    L   G   }       i   s       {   l   i   s   p       N   I   L
0035000    }       a   n   d       t   h   e       r   a   d   i   x    
0035020    i   s       s   e   t       t   o       8       w   i   t   h
0035040        {   l   i   s   p       (   R   A   D   I   X       8   )
0035060    }   ,       t   h   e       v   a   l   u   e       o   f    
0035100    {   l   i   s   p       (   U   N   P   A   C   K       9   )
0035120    }       i   s       {   l   i   s   p       (   9   )   }   ,
0035140        n   o   t       {   l   i   s   p       (   1       1   )
0035160    }   .  \r  \r   U   s   i   n   g       {   f   n       P   R
0035200    I   N   T   N   U   M   }       (   {   P   a   g   e   R   e
0035220    f       F   n       P   R   I   N   T   N   U   M   }   )    
0035240    o   r       t   h   e       {   l   i   s   p       P   R   I
0035260    N   T   O   U   T   }       c   o   m   m   a   n   d       {
0035300    l   i   s   p       .   I   }       (   {   P   a   g   e   R
0035320    e   f       (   P   R   I   N   T   O   U   T       C   o   m
0035340    m   a   n   d   )       I   }   )       i   s       o   f   t
0035360    e   n       a       m   o   r   e       c   o   n   v   e   n
0035400    i   e   n   t       a   n   d       a   p   p   r   o   p   r
0035420    i   a   t   e       w   a   y       t   o       p   r   i   n
0035440    t       a       s   i   n   g   l   e       n   u   m   b   e
0035460    r       i   n       a       s   p   e   c   i   f   i   e   d
0035500        r   a   d   i   x       t   h   a   n       t   o       g
0035520    l   o   b   a   l   l   y       c   h   a   n   g   e       {
0035540    f   n       R   A   D   I   X   }   .  \r   }   }  \r  \r  \r
0035560   \r   {   F   n   D   e   f       {   F   n   N   a   m   e    
0035600    F   L   T   F   M   T   }       {   F   n   A   r   g   s    
0035620    F   O   R   M   A   T   }  \r   {   T   e   x   t  \r   R   e
0035640    s   e   t   s       t   h   e       o   u   t   p   u   t    
0035660    f   o   r   m   a   t       f   o   r       f   l   o   a   t
0035700    i   n   g       p   o   i   n   t       n   u   m   b   e   r
0035720    s       t   o       t   h   e       {   l   i   s   p       F
0035740    L   O   A   T   }       f   o   r   m   a   t       {   a   r
0035760    g       F   O   R   M   A   T   }       (   s   e   e       {
0036000    f   n       P   R   I   N   T   N   U   M   }       b   e   l
0036020    o   w       f   o   r       a       d   e   s   c   r   i   p
0036040    t   i   o   n       o   f       {   l   i   s   p       F   L
0036060    O   A   T   }       f   o   r   m   a   t   s   )   .        
0036100    {   a   r   g       F   O   R   M   A   T   }   =   {   l   i
0036120    s   p       T   }       s   p   e   c   i   f   i   e   s    
0036140    t   h   e       d   e   f   a   u   l   t       "   f   r   e
0036160    e   "       f   o   r   m   a   t   t   i   n   g   :       s
0036200    o   m   e       n   u   m   b   e   r       o   f       s   i
0036220    g   n   i   f   i   c   a   n   t       d   i   g   i   t   s
0036240        (   a       f   u   n   c   t   i   o   n       o   f    
0036260    t   h   e       i   m   p   l   e   m   e   n   t   a   t   i
0036300    o   n   )       a   r   e       p   r   i   n   t   e   d   ,
0036320        w   i   t   h       t   r   a   i   l   i   n   g       z
0036340    e   r   o   s       s   u   p   p   r   e   s   s   e   d   ;
0036360        n   u   m   b   e   r   s       w   i   t   h       s   u
0036400    f   f   i   c   i   e   n   t   l   y       l   a   r   g   e
0036420        o   r       s   m   a   l   l       e   x   p   o   n   e
0036440    n   t   s       a   r   e       i   n   s   t   e   a   d    
0036460    p   r   i   n   t   e   d       i   n       e   x   p   o   n
0036500    e   n   t       n   o   t   a   t   i   o   n   .  \r  \r   {
0036520    f   n       F   L   T   F   M   T   }       r   e   t   u   r
0036540    n   s       i   t   s       c   u   r   r   e   n   t       s
0036560    e   t   t   i   n   g   .           {   l   i   s   p       (
0036600    F   L   T   F   M   T   )   }       r   e   t   u   r   n   s
0036620        t   h   e       c   u   r   r   e   n   t       s   e   t
0036640    t   i   n   g       w   i   t   h   o   u   t       c   h   a
0036660    n   g   i   n   g       i   t   .           T   h   e       i
0036700    n   i   t   i   a   l       s   e   t   t   i   n   g       i
0036720    s       {   l   i   s   p       T   }   .  \r  \r   {   c   o
0036740    m   m   e   n   t       I   n   t   e   r   l   i   s   p   -
0036760    1   0       s   p   e   c   i   f   i   c   :       I   n    
0037000    I   n   t   e   r   l   i   s   p   -   1   0   ,       {   a
0037020    r   g       F   O   R   M   A   T   }       m   a   y       a
0037040    l   s   o       b   e       a       m   a   c   h   i   n   e
0037060    -   d   e   p   e   n   d   e   n   t       {   l   i   s   p
0037100        F   L   O   A   T   }       f   o   r   m   a   t   -   c
0037120    o   d   e       a   s       r   e   t   u   r   n   e   d    
0037140    b   y       {   f   n       N   U   M   F   O   R   M   A   T
0037160    C   O   D   E   }       (   {   P   a   g   e   R   e   f    
0037200    F   n       N   U   M   F   O   R   M   A   T   C   O   D   E
0037220    }   )   .   }  \r  \r  \r   N   o   t   e   :           I   n
0037240        I   n   t   e   r   l   i   s   p   -   D   ,           {
0037260    f   n       F   L   T   F   M   T   }       i   g   n   o   r
0037300    e   s       t   h   e       {   a   r   g       W   I   D   T
0037320    H   }       a   n   d       {   a   r   g       P   A   D   }
0037340        f   i   e   l   d   s       o   f       t   h   e       f
0037360    o   r   m   a   t       (   t   h   e   y       a   r   e    
0037400    i   m   p   l   e   m   e   n   t   e   d       o   n   l   y
0037420        b   y       {   f   n       P   R   I   N   T   N   U   M
0037440    }   )   .  \r   }   }  \r  \r  \r   {   n   o   t   e       t
0037460    h   e       f   o   l   l   o   w   i   n   g       n   e   e
0037500    d   s       a       l   o   t       o   f       w   o   r   k
0037520    ,       o   n   c   e       I       f   i   n   d       o   u
0037540    t       h   o   w       i   t       s   h   o   u   l   d    
0037560    b   e   .   .   .   }  \r  \r  \r   W   h   e   t   h   e   r
0037600        p   r   i   n   t       n   a   m   e       m   a   n   i
0037620    p   u   l   a   t   i   o   n       f   u   n   c   t   i   o
0037640    n   s       (   {   f   n       U   N   P   A   C   K   }   ,
0037660        {   f   n       N   C   H   A   R   S   }   ,       e   t
0037700    c   .   )       u   s   e       t   h   e       v   a   l   u
0037720    e   s       o   f       {   f   n       R   A   D   I   X   }
0037740        a   n   d       {   f   n       F   L   T   F   M   T   }
0037760        i   s       d   e   t   e   r   m   i   n   e   d       b
0040000    y       t   h   e       v   a   r   i   a   b   l   e       {
0040020    v   a   r       P   R   X   F   L   G   }   :  \r  \r  \r   {
0040040    i   n   d   e   x       *   P   R   I   M   A   R   Y   *    
0040060    P   R   X   F   L   G       V   a   r   }  \r  \r   {   V   a
0040100    r   D   e   f       {   N   a   m   e       P   R   X   F   L
0040120    G   }  \r   {   T   e   x   t  \r   I   f       {   v   a   r
0040140        P   R   X   F   L   G   }   =   {   l   i   s   p       N
0040160    I   L   }       (   t   h   e       i   n   i   t   i   a   l
0040200        s   e   t   t   i   n   g   )   ,       t   h   e   n    
0040220    t   h   e       "   {   l   i   s   p       P   R   I   N   1
0040240    }   "       n   a   m   e       u   s   e   d       b   y    
0040260    {   f   n       P   A   C   K   }   ,       {   f   n       U
0040300    N   P   A   C   K   }   ,       {   f   n       M   K   S   T
0040320    R   I   N   G   }   ,       e   t   c   .   ,       i   s    
0040340    c   o   m   p   u   t   e   d       u   s   i   n   g       b
0040360    a   s   e       1   0       f   o   r       i   n   t   e   g
0040400    e   r   s       a   n   d       t   h   e       s   y   s   t
0040420    e   m       d   e   f   a   u   l   t       f   l   o   a   t
0040440    i   n   g       f   o   r   m   a   t       f   o   r       f
0040460    l   o   a   t   i   n   g       p   o   i   n   t       n   u
0040500    m   b   e   r   s   ,       i   n   d   e   p   e   n   d   e
0040520    n   t       o   f       t   h   e       c   u   r   r   e   n
0040540    t       s   e   t   t   i   n   g       o   f       {   f   n
0040560        R   A   D   I   X   }       o   r       {   f   n       F
0040600    L   T   F   M   T   }   .           I   f       {   v   a   r
0040620        P   R   X   F   L   G   }   =   {   l   i   s   p       T
0040640    }   ,       t   h   e   n       {   f   n       R   A   D   I
0040660    X   }       a   n   d       {   f   n       F   L   T   F   M
0040700    T   }       d   o       d   i   c   t   a   t   e       t   h
0040720    e       "   {   l   i   s   p       P   R   I   N   1   }   "
0040740        n   a   m   e       o   f       n   u   m   b   e   r   s
0040760    .           N   o   t   e       t   h   a   t       i   n    
0041000    t   h   i   s       c   a   s   e   ,       {   f   n       P
0041020    A   C   K   }       a   n   d       {   f   n       U   N   P
0041040    A   C   K   }       a   r   e       {   i   t       n   o   t
0041060    }       i   n   v   e   r   s   e   s   .  \r  \r   E   x   a
0041100    m   p   l   e   s       w   i   t   h       {   l   i   s   p
0041120        (   R   A   D   I   X       8   )   }   ,       {   l   i
0041140    s   p       (   F   L   T   F   M   T       '   (   F   L   O
0041160    A   T       4       2   )   )   }   :  \r  \r  \r   W   i   t
0041200    h       {   v   a   r       P   R   X   F   L   G   }   =   {
0041220    l   i   s   p       N   I   L   }   ,  \r  \r   {   l   i   s
0041240    p   c   o   d   e       (   U   N   P   A   C   K       1   3
0041260    )           =   >           (   1       3   )   }  \r  \r   {
0041300    l   i   s   p   c   o   d   e       (   P   A   C   K       '
0041320    (   A       9   )   )           =   >           A   9   }  \r
0041340   \r   {   l   i   s   p   c   o   d   e       (   U   N   P   A
0041360    C   K       1   .   2   3   4   5   )           =   >        
0041400    (   1       %   .       2       3       4       5   )   }  \r
0041420   \r   W   i   t   h       {   v   a   r       P   R   X   F   L
0041440    G   }   =   {   l   i   s   p       T   }   ,  \r  \r   {   l
0041460    i   s   p   c   o   d   e       (   U   N   P   A   C   K    
0041500    1   3   )           =   >           (   1       5   )   }  \r
0041520   \r   {   l   i   s   p   c   o   d   e       (   P   A   C   K
0041540        '   (   A       9   )   )           =   >           A   1
0041560    1   }  \r  \r   {   l   i   s   p   c   o   d   e       (   U
0041600    N   P   A   C   K       1   .   2   3   4   5   )           =
0041620    >           (   1       %   .       2       3   )   }  \r  \r
0041640   \r   N   o   t   e       t   h   a   t       {   v   a   r    
0041660    P   R   X   F   L   G   }       d   o   e   s       n   o   t
0041700        e   f   f   e   c   t       t   h   e       r   a   d   i
0041720    x       o   f       "   {   l   i   s   p       P   R   I   N
0041740    2   }   "       n   a   m   e   s   ,       s   o       w   i
0041760    t   h       {   l   i   s   p       (   R   A   D   I   X    
0042000    8   )   }   ,       {   l   i   s   p       (   N   C   H   A
0042020    R   S       9       T   )   }   ,       w   h   i   c   h    
0042040    u   s   e   s       {   l   i   s   p       P   R   I   N   2
0042060    }       n   a   m   e   s   ,       w   o   u   l   d       r
0042100    e   t   u   r   n       3   ,       (   s   i   n   c   e    
0042120    9       w   o   u   l   d       p   r   i   n   t       a   s
0042140        1   1   Q   )       f   o   r       e   i   t   h   e   r
0042160        s   e   t   t   i   n   g       o   f       {   v   a   r
0042200        P   R   X   F   L   G   }   .  \r  \r  \r  \r   W   a   r
0042220    n   i   n   g   :           S   o   m   e       s   y   s   t
0042240    e   m       f   u   n   c   t   i   o   n   s       w   i   l
0042260    l       n   o   t       w   o   r   k       c   o   r   r   e
0042300    c   t   l   y       i   f       {   v   a   r       P   R   X
0042320    F   L   G   }       i   s       n   o   t       {   l   i   s
0042340    p       N   I   L   }   .           T   h   e   r   e   f   o
0042360    r   e   ,       r   e   s   e   t   t   i   n   g       t   h
0042400    e       g   l   o   b   a   l       v   a   l   u   e       o
0042420    f       {   v   a   r       P   R   X   F   L   G   }       i
0042440    s       n   o   t       r   e   c   o   m   m   e   n   d   e
0042460    d   .           I   t       i   s       m   u   c   h       b
0042500    e   t   t   e   r       t   o       r   e   b   i   n   d    
0042520    {   v   a   r       P   R   X   F   L   G   }       a   s    
0042540    a       {   l   i   s   p       S   P   E   C   V   A   R   }
0042560        f   o   r       t   h   a   t       p   a   r   t       o
0042600    f       a       p   r   o   g   r   a   m       w   h   e   r
0042620    e       i   t       n   e   e   d   s       t   o       b   e
0042640        n   o   n   -   {   l   i   s   p       N   I   L   }   .
0042660   \r   }   }  \r  \r  \r   {   n   o   t   e       T   h   e    
0042700    P   R   I   N   T   N   U   M       p   a   c   k   a   g   e
0042720        w   a   s       d   e   s   i   g   n   e   d       a   n
0042740    d       i   m   p   l   e   m   e   n   t   e   d       b   y
0042760        R   .       M   .       K   a   p   l   a   n   .   }  \r
0043000   \r  \r   {   i   n   d   e   x       *   B   E   G   I   N   *
0043020        P   R   I   N   T   N   U   M       F   N   }  \r  \r  \r
0043040    T   h   e       b   a   s   i   c       f   u   n   c   t   i
0043060    o   n       f   o   r       p   r   i   n   t   i   n   g    
0043100    n   u   m   b   e   r   s       u   n   d   e   r       f   o
0043120    r   m   a   t       c   o   n   t   r   o   l       i   s    
0043140    {   f   n       P   R   I   N   T   N   U   M   }   .        
0043160    I   t   s       u   t   i   l   i   t   y       i   s       c
0043200    o   n   s   i   d   e   r   a   b   l   y       e   n   h   a
0043220    n   c   e   d       w   h   e   n       u   s   e   d       i
0043240    n       c   o   n   j   u   n   c   t   i   o   n       w   i
0043260    t   h       t   h   e       {   l   i   s   p       P   R   I
0043300    N   T   O   U   T   }       p   a   c   k   a   g   e       (
0043320    {   P   a   g   e   R   e   f       T   a   g       P   R   I
0043340    N   T   O   U   T   }   )   ,       w   h   i   c   h       i
0043360    m   p   l   e   m   e   n   t   s       a       c   o   m   p
0043400    a   c   t       l   a   n   g   u   a   g   e       f   o   r
0043420        s   p   e   c   i   f   y   i   n   g       c   o   m   p
0043440    l   i   c   a   t   e   d       s   e   q   u   e   n   c   e
0043460    s       o   f       e   l   e   m   e   n   t   a   r   y    
0043500    p   r   i   n   t   i   n   g       o   p   e   r   a   t   i
0043520    o   n   s   ,       a   n   d       m   a   k   e   s       f
0043540    a   n   c   y       o   u   t   p   u   t       f   o   r   m
0043560    a   t   s       e   a   s   y       t   o       d   e   s   i
0043600    g   n       a   n   d       s   i   m   p   l   e       t   o
0043620        p   r   o   g   r   a   m   .  \r  \r  \r   {   F   n   D
0043640    e   f       {   F   n   N   a   m   e       P   R   I   N   T
0043660    N   U   M   }       {   F   n   A   r   g   s       F   O   R
0043700    M   A   T       N   U   M   B   E   R       F   I   L   E   }
0043720   \r   {   T   e   x   t  \r   P   r   i   n   t   s       {   a
0043740    r   g       N   U   M   B   E   R   }       o   n       {   a
0043760    r   g       F   I   L   E   }       a   c   c   o   r   d   i
0044000    n   g       t   o       t   h   e       f   o   r   m   a   t
0044020        {   a   r   g       F   O   R   M   A   T   }   .        
0044040    {   a   r   g       F   O   R   M   A   T   }       i   s    
0044060    a       l   i   s   t       s   t   r   u   c   t   u   r   e
0044100        w   i   t   h       o   n   e       o   f       t   h   e
0044120        f   o   r   m   s       d   e   s   c   r   i   b   e   d
0044140        b   e   l   o   w   .  \r  \r   {   c   o   m   m   e   n
0044160    t       I   n   t   e   r   l   i   s   p   -   1   0       S
0044200    p   e   c   i   f   i   c   :  \r   {   a   r   g       F   O
0044220    R   M   A   T   }       c   a   n       a   l   s   o       b
0044240    e       a       m   a   c   h   i   n   e       d   e   p   e
0044260    n   d   e   n   t       f   o   r   m   a   t   -   c   o   d
0044300    e       a   s       r   e   t   u   r   n   e   d       b   y
0044320        {   f   n       N   U   M   F   O   R   M   A   T   C   O
0044340    D   E   }       (   {   P   a   g   e   R   e   f       F   n
0044360        N   U   M   F   O   R   M   A   T   C   O   D   E   }   )
0044400    .   I   f       {   a   r   g       N   U   M   B   E   R   }
0044420        d   o   e   s       n   o   t       f   i   t       i   n
0044440        t   h   e       f   i   e   l   d       s   p   e   c   i
0044460    f   i   e   d       b   y       {   a   r   g       F   O   R
0044500    M   A   T   }   ,       t   h   e       f   u   l   l       p
0044520    r   i   n   t       n   a   m   e       i   s       p   r   i
0044540    n   t   e   d   .           T   h   e   n       a       {   f
0044560    n       T   A   B   }       i   s       e   x   e   c   u   t
0044600    e   d       s   o       t   h   a   t       t   h   e       l
0044620    i   n   e       p   o   s   i   t   i   o   n       o   f    
0044640    t   h   e       f   i   l   e       a   f   t   e   r       {
0044660    f   n       P   R   I   N   T   N   U   M   }       i   s    
0044700    a   l   w   a   y   s       t   h   e       p   o   s   i   t
0044720    i   o   n       p   r   i   o   r       t   o       p   r   i
0044740    n   t   i   n   g       p   l   u   s       t   h   e       i
0044760    n   d   i   c   a   t   e   d       w   i   d   t   h   .   }
0045000   \r   }   }  \r  \r  \r   I   f       {   a   r   g       F   O
0045020    R   M   A   T   }       i   s       a       l   i   s   t    
0045040    o   f       t   h   e       f   o   r   m       {   l   i   s
0045060    p       (   F   I   X       {   a   r   g       W   I   D   T
0045100    H   }       {   a   r   g       R   A   D   I   X   }       {
0045120    a   r   g       P   A   D   0   }       {   a   r   g       L
0045140    E   F   T   F   L   U   S   H   }   )   }   ,       t   h   i
0045160    s       s   p   e   c   i   f   i   e   s       a       {   l
0045200    i   s   p       F   I   X   }       f   o   r   m   a   t   .
0045220    {   i   n   d   e   x       F   I   X       f   o   r   m   a
0045240    t       (   i   n       P   R   I   N   T   N   U   M   )    
0045260    T   e   r   m   }           {   a   r   g       N   U   M   B
0045300    E   R   }       i   s       r   o   u   n   d   e   d       t
0045320    o       t   h   e       n   e   a   r   e   s   t       i   n
0045340    t   e   g   e   r   ,       a   n   d       t   h   e   n    
0045360    p   r   i   n   t   e   d       i   n       a       f   i   e
0045400    l   d       {   a   r   g       W   I   D   T   H   }       c
0045420    h   a   r   a   c   t   e   r   s       l   o   n   g       w
0045440    i   t   h       r   a   d   i   x       s   e   t       t   o
0045460        {   a   r   g       R   A   D   I   X   }       (   o   r
0045500        1   0       i   f       {   a   r   g       R   A   D   I
0045520    X   }   =   {   l   i   s   p       N   I   L   }   ;       n
0045540    o   t   e       t   h   a   t       t   h   e       s   e   t
0045560    t   i   n   g       f   r   o   m       t   h   e       f   u
0045600    n   c   t   i   o   n       {   f   n       R   A   D   I   X
0045620    }       i   s       {   i   t       n   o   t   }       u   s
0045640    e   d       a   s       t   h   e       d   e   f   a   u   l
0045660    t   )   .           I   f       {   a   r   g       P   A   D
0045700    0   }       a   n   d       {   a   r   g       L   E   F   T
0045720    F   L   U   S   H   }       a   r   e       b   o   t   h    
0045740    {   l   i   s   p       N   I   L   }   ,       t   h   e    
0045760    n   u   m   b   e   r       i   s       r   i   g   h   t   -
0046000    j   u   s   t   i   f   i   e   d       i   n       t   h   e
0046020        f   i   e   l   d   ,       a   n   d       t   h   e    
0046040    p   a   d   d   i   n   g       c   h   a   r   a   c   t   e
0046060    r   s       t   o       t   h   e       l   e   f   t       o
0046100    f       t   h   e       l   e   a   d   i   n   g       d   i
0046120    g   i   t       a   r   e       s   p   a   c   e   s   .    
0046140        I   f       {   a   r   g       P   A   D   0   }       i
0046160    s       {   l   i   s   p       T   }   ,       t   h   e    
0046200    c   h   a   r   a   c   t   e   r       "   {   l   i   s   p
0046220        0   }   "       i   s       u   s   e   d       f   o   r
0046240        p   a   d   d   i   n   g   .           I   f       {   a
0046260    r   g       L   E   F   T   F   L   U   S   H   }       i   s
0046300        {   l   i   s   p       T   }   ,       t   h   e   n    
0046320    t   h   e       n   u   m   b   e   r       i   s       l   e
0046340    f   t   -   j   u   s   t   i   f   i   e   d       i   n    
0046360    t   h   e       f   i   e   l   d   ,       w   i   t   h    
0046400    t   r   a   i   l   i   n   g       s   p   a   c   e   s    
0046420    t   o       f   i   l   l       o   u   t       {   a   r   g
0046440        W   I   D   T   H   }       c   h   a   r   a   c   t   e
0046460    r   s   .  \r  \r  \r   T   h   e       f   o   l   l   o   w
0046500    i   n   g       e   x   a   m   p   l   e   s       i   l   l
0046520    u   s   t   r   a   t   e       t   h   e       e   f   f   e
0046540    c   t   s       o   f       t   h   e       {   l   i   s   p
0046560        F   I   X   }       f   o   r   m   a   t       o   p   t
0046600    i   o   n   s       o   n       t   h   e       n   u   m   b
0046620    e   r       9       (   t   h   e       v   e   r   t   i   c
0046640    a   l       b   a   r   s       i   n   d   i   c   a   t   e
0046660        t   h   e       f   i   e   l   d       w   i   d   t   h
0046700    )   :  \r  \r  \r   {   B   e   g   i   n       L   a   b   e
0046720    l   e   d   l   i   s   t       F   I   X       f   o   r   m
0046740    a   t       o   p   t   i   o   n   s       e   x   a   m   p
0046760    l   e   s   }  \r  \r   {   L   a   b   e   l       {   a   r
0047000    g       F   O   R   M   A   T   }   :   }  \r   {   T   e   x
0047020    t       {   l   i   s   p       (   P   R   I   N   T   N   U
0047040    M       {   a   r   g       F   O   R   M   A   T   }       9
0047060    )   }       p   r   i   n   t   s   :   }  \r  \r   {   L   a
0047100    b   e   l       {   l   i   s   p       (   F   I   X       2
0047120    )   }   }  \r   {   T   e   x   t       {   l   i   s   p    
0047140    |       9   |   }   }  \r  \r   {   L   a   b   e   l       {
0047160    l   i   s   p       (   F   I   X       2       N   I   L    
0047200    T   )   }   }  \r   {   T   e   x   t       {   l   i   s   p
0047220        |   0   9   |   }   }  \r  \r   {   L   a   b   e   l    
0047240    {   l   i   s   p       (   F   I   X       1   2       8    
0047260    T   )   }   }  \r   {   T   e   x   t       {   l   i   s   p
0047300        |   0   0   0   0   0   0   0   0   0   0   1   1   |   }
0047320    }  \r  \r   {   L   a   b   e   l       {   l   i   s   p    
0047340    (   F   I   X       5       N   I   L       N   I   L       T
0047360    )   }   }  \r   {   T   e   x   t       {   l   i   s   p    
0047400    |   9                   |   }   }  \r  \r   {   E   n   d    
0047420    L   a   b   e   l   e   d   l   i   s   t       F   I   X    
0047440    f   o   r   m   a   t       o   p   t   i   o   n   s       e
0047460    x   a   m   p   l   e   s   }  \r  \r  \r  \r   I   f       {
0047500    a   r   g       F   O   R   M   A   T   }       i   s       a
0047520        l   i   s   t       o   f       t   h   e       f   o   r
0047540    m       {   l   i   s   p       (   F   L   O   A   T       {
0047560    a   r   g       W   I   D   T   H   }       {   a   r   g    
0047600    D   E   C   P   A   R   T   }       {   a   r   g       E   X
0047620    P   P   A   R   T   }       {   a   r   g       P   A   D   0
0047640    }       {   a   r   g       R   O   U   N   D   }   )   }   ,
0047660        t   h   i   s       s   p   e   c   i   f   i   e   s    
0047700    a       {   l   i   s   p       F   L   O   A   T   }       f
0047720    o   r   m   a   t   .   {   i   n   d   e   x       F   L   O
0047740    A   T       f   o   r   m   a   t       (   i   n       P   R
0047760    I   N   T   N   U   M   )       T   e   r   m   }           {
0050000    a   r   g       N   U   M   B   E   R   }       i   s       p
0050020    r   i   n   t   e   d       a   s       a       d   e   c   i
0050040    m   a   l       n   u   m   b   e   r       i   n       a    
0050060    f   i   e   l   d       {   a   r   g       W   I   D   T   H
0050100    }       c   h   a   r   a   c   t   e   r   s       w   i   d
0050120    e   ,       w   i   t   h       {   a   r   g       D   E   C
0050140    P   A   R   T   }       d   i   g   i   t   s       t   o    
0050160    t   h   e       r   i   g   h   t       o   f       t   h   e
0050200        d   e   c   i   m   a   l       p   o   i   n   t   .    
0050220        I   f       {   a   r   g       E   X   P   P   A   R   T
0050240    }       i   s       n   o   t       {   l   i   s   p       0
0050260    }       (   o   r       {   l   i   s   p       N   I   L   }
0050300    )   ,       t   h   e       n   u   m   b   e   r       i   s
0050320        p   r   i   n   t   e   d       i   n       e   x   p   o
0050340    n   e   n   t       n   o   t   a   t   i   o   n   ,       w
0050360    i   t   h       t   h   e       e   x   p   o   n   e   n   t
0050400        o   c   c   u   p   y   i   n   g       {   a   r   g    
0050420    E   X   P   P   A   R   T   }       c   h   a   r   a   c   t
0050440    e   r   s       i   n       t   h   e       f   i   e   l   d
0050460    .           {   a   r   g       E   X   P   P   A   R   T   }
0050500        s   h   o   u   l   d       a   l   l   o   w       f   o
0050520    r       t   h   e       c   h   a   r   a   c   t   e   r    
0050540    {   l   i   s   p       E   }       a   n   d       a   n    
0050560    o   p   t   i   o   n   a   l       s   i   g   n       t   o
0050600        b   e       p   r   i   n   t   e   d       b   e   f   o
0050620    r   e       t   h   e       e   x   p   o   n   e   n   t    
0050640    d   i   g   i   t   s   .           {   N   o   t   e       A
0050660    l   t   h   o   u   g   h       w   r   i   t   t   e   n    
0050700    w   i   t   h       I   n   t   e   r   l   i   s   p   -   1
0050720    0       i   n       m   i   n   d   ,       t   h   i   s    
0050740    d   e   s   c   r   i   p   t   i   o   n       o   f       E
0050760    X   P   P   A   R   T       d   o   e   s       n   o   t    
0051000    a   g   r   e   e       w   i   t   h       t   h   e       I
0051020    n   t   e   r   l   i   s   p   -   1   0       i   m   p   l
0051040    e   m   e   n   t   a   t   i   o   n   !           -   -   b
0051060    v   m   }           A   s       w   i   t   h       {   l   i
0051100    s   p       F   I   X   }       f   o   r   m   a   t   ,    
0051120    p   a   d   d   i   n   g       o   n       t   h   e       l
0051140    e   f   t       i   s       w   i   t   h       s   p   a   c
0051160    e   s   ,       u   n   l   e   s   s       {   a   r   g    
0051200    P   A   D   0   }       i   s       {   l   i   s   p       T
0051220    }   .           I   f       {   a   r   g       R   O   U   N
0051240    D   }       i   s       g   i   v   e   n   ,       i   t    
0051260    i   n   d   i   c   a   t   e   s       t   h   e       d   i
0051300    g   i   t       p   o   s   i   t   i   o   n       a   t    
0051320    w   h   i   c   h       r   o   u   n   d   i   n   g       i
0051340    s       t   o       t   a   k   e       p   l   a   c   e   ,
0051360        c   o   u   n   t   i   n   g       f   r   o   m       t
0051400    h   e       l   e   a   d   i   n   g       d   i   g   i   t
0051420        o   f       t   h   e       n   u   m   b   e   r   .  \r
0051440   \r   I   n   t   e   r   l   i   s   p   -   D       i   n   t
0051460    e   r   p   r   e   t   s       {   a   r   g       W   I   D
0051500    T   H   }   =   {   l   i   s   p       N   I   L   }       t
0051520    o       m   e   a   n       n   o       p   a   d   d   i   n
0051540    g   ,       i   .   e   .   ,       t   o       u   s   e    
0051560    h   o   w   e   v   e   r       m   u   c   h       s   p   a
0051600    c   e       t   h   e       n   u   m   b   e   r       n   e
0051620    e   d   s   ,       a   n   d       i   n   t   e   r   p   r
0051640    e   t   s       {   a   r   g       D   E   C   P   A   R   T
0051660    }   =   {   l   i   s   p       N   I   L   }       t   o    
0051700    m   e   a   n       a   s       m   a   n   y       d   e   c
0051720    i   m   a   l       p   l   a   c   e   s       a   s       n
0051740    e   e   d   e   d   .  \r  \r   {   c   o   m   m   e   n   t
0051760        I   n   t   e   r   l   i   s   p   -   1   0       s   p
0052000    e   c   i   f   i   c   :           T   h   e       i   n   t
0052020    e   r   p   r   e   t   a   t   i   o   n       o   f       {
0052040    a   r   g       W   I   D   T   H   }   =   {   l   i   s   p
0052060        N   I   L   }       a   n   d       {   a   r   g       D
0052100    E   C   P   A   R   T   }   =   {   l   i   s   p       N   I
0052120    L   }       a   r   e       n   o   t       s   p   e   c   i
0052140    f   i   e   d   ,       a   n   d       a   r   e       c   u
0052160    r   r   e   n   t   l   y       a       f   u   n   c   t   i
0052200    o   n       o   f       t   h   e       i   m   p   l   e   m
0052220    e   n   t   a   t   i   o   n   .           I   n   t   e   r
0052240    l   i   s   p   -   1   0       p   r   o   h   i   b   i   t
0052260    s       {   a   r   g       W   I   D   T   H   }   =   {   l
0052300    i   s   p       N   I   L   }   ,       a   n   d       t   r
0052320    e   a   t   s       {   a   r   g       D   E   C   P   A   R
0052340    T   }   =   {   l   i   s   p       N   I   L   }       a   s
0052360        e   q   u   i   v   a   l   e   n   t       t   o       {
0052400    a   r   g       D   E   C   P   A   R   T   }   =   {   l   i
0052420    s   p       0   }   }  \r  \r   T   h   e       f   o   l   l
0052440    o   w   i   n   g       e   x   a   m   p   l   e   s       i
0052460    l   l   u   s   t   r   a   t   e       t   h   e       e   f
0052500    f   e   c   t   s       o   f       t   h   e       {   l   i
0052520    s   p       F   L   O   A   T   }       f   o   r   m   a   t
0052540        o   p   t   i   o   n   s       o   n       t   h   e    
0052560    n   u   m   b   e   r       2   7   .   6   8   9       (   t
0052600    h   e       v   e   r   t   i   c   a   l       b   a   r   s
0052620        i   n   d   i   c   a   t   e       t   h   e       f   i
0052640    e   l   d       w   i   d   t   h   )   :  \r  \r   {   B   e
0052660    g   i   n       L   a   b   e   l   e   d   l   i   s   t    
0052700    F   L   O   A   T       f   o   r   m   a   t       o   p   t
0052720    i   o   n   s       e   x   a   m   p   l   e   s   }  \r  \r
0052740    {   L   a   b   e   l       {   a   r   g       F   O   R   M
0052760    A   T   }   :   }  \r   {   T   e   x   t       {   l   i   s
0053000    p       (   P   R   I   N   T   N   U   M       {   a   r   g
0053020        F   O   R   M   A   T   }       2   7   .   6   8   9   )
0053040    }       p   r   i   n   t   s   :   }  \r  \r   {   L   a   b
0053060    e   l       {   l   i   s   p       (   F   L   O   A   T    
0053100    7       2   )   }   }  \r   {   T   e   x   t       {   l   i
0053120    s   p       |           2   7   .   6   9   |   }   }  \r  \r
0053140    {   L   a   b   e   l       {   l   i   s   p       (   F   L
0053160    O   A   T       7       2       N   I   L       T   )   }   }
0053200   \r   {   T   e   x   t       {   l   i   s   p       |   0   0
0053220    2   7   .   6   9   |   }   }  \r  \r   {   L   a   b   e   l
0053240        {   l   i   s   p       (   F   L   O   A   T       7    
0053260    2       2   )   }   }  \r   {   T   e   x   t       {   l   i
0053300    s   p       |       2   .   7   7   E   1   |   }   }  \r  \r
0053320    {   L   a   b   e   l       {   l   i   s   p       (   F   L
0053340    O   A   T       1   1       2       4   )   }   }  \r   {   T
0053360    e   x   t       {   l   i   s   p       |               2   .
0053400    7   7   E   +   0   1   |   }  \r  \r   {   c   o   m   m   e
0053420    n   t       I   n   t   e   r   l   i   s   p   -   1   0    
0053440    s   p   e   c   i   f   i   c   :           A   s       o   f
0053460        t   h   i   s       w   r   i   t   i   n   g   ,       t
0053500    h   e       I   n   t   e   r   l   i   s   p   -   1   0    
0053520    i   m   p   l   e   m   e   n   t   a   t   i   o   n       a
0053540    c   t   u   a   l   l   y       d   o   e   s       s   o   m
0053560    e   t   h   i   n   g       l   e   s   s       i   n   t   u
0053600    i   t   i   v   e       w   i   t   h       t   h   e       {
0053620    a   r   g       E   X   P   P   A   R   T   }       f   i   e
0053640    l   d   :           t   h   e       p   l   a   c   e   m   e
0053660    n   t       o   f       t   h   e       d   e   c   i   m   a
0053700    l       p   o   i   n   t       i   s       a   f   f   e   c
0053720    t   e   d       b   y       {   a   r   g       D   E   C   P
0053740    A   R   T   }   ,       a   n   d       p   a   d   d   i   n
0053760    g       n   e   v   e   r       o   c   c   u   r   s   .    
0054000        T   h   e   s   e       t   w   o       e   x   a   m   p
0054020    l   e   s       i   n       I   n   t   e   r   l   i   s   p
0054040    -   1   0       w   o   u   l   d       a   c   t   u   a   l
0054060    l   y       p   r   i   n   t       a   s       {   l   i   s
0054100    p       |   .   2   8   E   +   0   2   |   }       a   n   d
0054120        {   l   i   s   p       |   2   7   .   6   9   E   +   0
0054140    0   0   0   |   }   .   }  \r   }  \r  \r   {   L   a   b   e
0054160    l       {   l   i   s   p       (   F   L   O   A   T       7
0054200        2       N   I   L       N   I   L       1   )   }   }  \r
0054220    {   T   e   x   t       {   l   i   s   p       |           3
0054240    0   .   0   0   |   }   }  \r  \r   {   L   a   b   e   l    
0054260    {   l   i   s   p       (   F   L   O   A   T       7       2
0054300        N   I   L       N   I   L       2   )   }   }  \r   {   T
0054320    e   x   t       {   l   i   s   p       |           2   8   .
0054340    0   0   |   }   }  \r  \r   {   E   n   d       L   a   b   e
0054360    l   e   d   l   i   s   t       F   L   O   A   T       f   o
0054400    r   m   a   t       o   p   t   i   o   n   s       e   x   a
0054420    m   p   l   e   s   }  \r  \r  \r  \r   {   V   a   r   D   e
0054440    f       {   N   a   m   e       N   I   L   N   U   M   P   R
0054460    I   N   T   F   L   G   }  \r   {   T   e   x   t  \r   I   f
0054500        {   f   n       P   R   I   N   T   N   U   M   }   '   s
0054520        {   a   r   g       N   U   M   B   E   R   }       a   r
0054540    g   u   m   e   n   t       i   s       n   o   t       a    
0054560    n   u   m   b   e   r       a   n   d       n   o   t       {
0054600    l   i   s   p       N   I   L   }   ,       a       {   l   i
0054620    s   p       N   O   N   -   N   U   M   E   R   I   C       A
0054640    R   G   }       e   r   r   o   r       i   s       g   e   n
0054660    e   r   a   t   e   d   .           I   f       {   a   r   g
0054700        N   U   M   B   E   R   }       i   s       {   l   i   s
0054720    p       N   I   L   }   ,       t   h   e       e   f   f   e
0054740    c   t       d   e   p   e   n   d   s       o   n       t   h
0054760    e       s   e   t   t   i   n   g       o   f       t   h   e
0055000        v   a   r   i   a   b   l   e       {   v   a   r       N
0055020    I   L   N   U   M   P   R   I   N   T   F   L   G   }   .    
0055040        I   f       {   v   a   r       N   I   L   N   U   M   P
0055060    R   I   N   T   F   L   G   }       i   s       {   l   i   s
0055100    p       N   I   L   }   ,       t   h   e   n       t   h   e
0055120        e   r   r   o   r       o   c   c   u   r   s       a   s
0055140        u   s   u   a   l   .           I   f       i   t       i
0055160    s       n   o   n   -   {   l   i   s   p       N   I   L   }
0055200    ,       t   h   e   n       n   o       e   r   r   o   r    
0055220    o   c   c   u   r   s   ,       a   n   d       t   h   e    
0055240    v   a   l   u   e       o   f       {   v   a   r       N   I
0055260    L   N   U   M   P   R   I   N   T   F   L   G   }       i   s
0055300        p   r   i   n   t   e   d       r   i   g   h   t   -   j
0055320    u   s   t   i   f   i   e   d       i   n       t   h   e    
0055340    f   i   e   l   d       d   e   s   c   r   i   b   e   d    
0055360    b   y       {   a   r   g       F   O   R   M   A   T   }   .
0055400            T   h   i   s       o   p   t   i   o   n       f   a
0055420    c   i   l   i   t   a   t   e   s       t   h   e       p   r
0055440    i   n   t   i   n   g       o   f       n   u   m   b   e   r
0055460    s       i   n       a   g   g   r   e   g   a   t   e   s    
0055500    w   i   t   h       m   i   s   s   i   n   g       v   a   l
0055520    u   e   s       c   o   d   e   d       a   s       {   l   i
0055540    s   p       N   I   L   }   .  \r   }   }  \r  \r  \r   {   B
0055560    e   g   i   n       C   o   m   m   e   n   t   }  \r   I   n
0055600    t   e   r   l   i   s   p   -   1   0       s   p   e   c   i
0055620    f   i   c   :  \r   I   n       s   o   m   e       i   m   p
0055640    l   e   m   e   n   t   a   t   i   o   n   s   ,       f   o
0055660    r   m   a   t   t   e   d       p   r   i   n   t   i   n   g
0055700        o   f       n   u   m   b   e   r   s       r   e   c   e
0055720    i   v   e   s       a   s   s   i   s   t   a   n   c   e    
0055740    f   r   o   m       t   h   e       o   p   e   r   a   t   i
0055760    n   g       s   y   s   t   e   m   ,       p   r   o   v   i
0056000    d   e   d       t   h   a   t       t   h   e       f   o   r
0056020    m   a   t       i   s       s   p   e   c   i   f   i   e   d
0056040        i   n       s   o   m   e       s   o   r   t       o   f
0056060        s   p   e   c   i   a   l       c   o   d   e   .       {
0056100    f   n       P   R   I   N   T   N   U   M   }       w   o   r
0056120    k   s       b   y       c   o   n   v   e   r   t   i   n   g
0056140        t   h   e       m   a   c   h   i   n   e   -   i   n   d
0056160    e   p   e   n   d   e   n   t       f   o   r   m   a   t    
0056200    s   p   e   c   i   f   i   c   a   t   i   o   n   s       d
0056220    e   s   c   r   i   b   e   d       a   b   o   v   e       i
0056240    n   t   o       m   a   c   h   i   n   e   -   {   i   t    
0056260    d   e   p   e   n   d   e   n   t   }       c   o   d   e   s
0056300        t   h   e       e   x   a   c   t       f   o   r   m    
0056320    o   f       w   h   i   c   h       m   a   y       v   a   r
0056340    y       f   r   o   m       i   m   p   l   e   m   e   n   t
0056360    a   t   i   o   n       t   o       i   m   p   l   e   m   e
0056400    n   t   a   t   i   o   n   .           T   h   i   s       c
0056420    o   n   v   e   r   s   i   o   n       p   r   o   c   e   s
0056440    s       t   a   k   e   s       p   l   a   c   e       o   n
0056460        e   a   c   h       c   a   l   l       t   o       {   f
0056500    n       P   R   I   N   T   N   U   M   }   .           F   o
0056520    r       e   f   f   i   c   i   e   n   c   y       p   u   r
0056540    p   o   s   e   s   ,       i   f       t   h   e       u   s
0056560    e   r       i   s       g   o   i   n   g       t   o       b
0056600    e       p   e   r   f   o   r   m   i   n   g       a       p
0056620    a   r   t   i   c   u   l   a   r       c   a   l   l       t
0056640    o       {   f   n       P   R   I   N   T   N   U   M   }    
0056660    f   r   e   q   u   e   n   t   l   y   ,       h   e       m
0056700    a   y       w   i   s   h       t   o       s   e   p   a   r
0056720    a   t   e       t   h   e       c   o   n   v   e   r   s   i
0056740    o   n       f   r   o   m       t   h   e       a   c   t   u
0056760    a   l       p   r   i   n   t   i   n   g   ,       p   e   r
0057000    f   o   r   m   i   n   g       t   h   e       c   o   n   v
0057020    e   r   s   i   o   n       p   r   o   c   e   s   s       j
0057040    u   s   t       o   n   c   e       a   n   d       s   a   v
0057060    i   n   g       t   h   e       r   e   s   u   l   t   .    
0057100        T   h   e       f   u   n   c   t   i   o   n       {   f
0057120    n       N   U   M   F   O   R   M   A   T   C   O   D   E   }
0057140        i   s       a   v   a   i   l   a   b   l   e       f   o
0057160    r       t   h   i   s       p   u   r   p   o   s   e   :    
0057200    {   f   n       N   U   M   F   O   R   M   A   T   C   O   D
0057220    E   }       t   a   k   e   s       a       f   o   r   m   a
0057240    t   ,       p   e   r   f   o   r   m   s       t   h   e    
0057260    c   o   n   v   e   r   s   i   o   n       a   n   d       r
0057300    e   t   u   r   n   s       a       m   a   c   h   i   n   e
0057320        d   e   p   e   n   d   e   n   t       f   o   r   m   a
0057340    t   -   c   o   d   e   ,       w   h   i   c   h       c   a
0057360    n       b   e       g   i   v   e   n       t   o       {   f
0057400    n       P   R   I   N   T   N   U   M   }       i   n       p
0057420    l   a   c   e       o   f       a       l   i   s   t       s
0057440    t   r   u   c   t   u   r   e       f   o   r   m   a   t    
0057460    a   s       d   e   s   c   r   i   b   e   d       a   b   o
0057500    v   e   .       I   n       t   h   i   s       c   a   s   e
0057520    ,       {   f   n       P   R   I   N   T   N   U   M   }    
0057540    w   i   l   l       n   o   t       h   a   v   e       t   o
0057560        p   e   r   f   o   r   m       t   h   e       c   o   n
0057600    v   e   r   s   i   o   n   ,       b   u   t       c   a   n
0057620        s   i   m   p   l   y       u   s   e       t   h   e    
0057640    m   a   c   h   i   n   e   -   d   e   p   e   n   d   e   n
0057660    t       f   o   r   m   a   t       c   o   d   e       d   i
0057700    r   e   c   t   l   y   .  \r      \r  \r   {   F   n   D   e
0057720    f       {   F   n   N   a   m   e       N   U   M   F   O   R
0057740    M   A   T   C   O   D   E   }       {   F   n   A   r   g   s
0057760        F   O   R   M   A   T       S   M   A   S   H   C   O   D
0060000    E   }  \r   {   T   e   x   t  \r   C   o   n   v   e   r   t
0060020    s       t   h   e       {   l   i   s   p       F   I   X   }
0060040        o   r       {   l   i   s   p       F   L   O   A   T   }
0060060        f   o   r   m   a   t       {   a   r   g       F   O   R
0060100    M   A   T   }       t   o       a       m   a   c   h   i   n
0060120    e   -   d   e   p   e   n   d   e   n   t       f   o   r   m
0060140    a   t   -   c   o   d   e   .           I   f       {   a   r
0060160    g       S   M   A   S   H   C   O   D   E   }       i   s    
0060200    r   e   c   o   g   n   i   z   e   d       a   s       a    
0060220    f   o   r   m   a   t   -   c   o   d   e       d   a   t   a
0060240    -   s   t   r   u   c   t   u   r   e   ,       t   h   e   n
0060260        t   h   e       n   e   w       f   o   r   m   a   t   -
0060300    c   o   d   e       i   s       s   m   a   s   h   e   d    
0060320    i   n   t   o       t   h   a   t       s   t   r   u   c   t
0060340    u   r   e       i   n   s   t   e   a   d       o   f       a
0060360    l   l   o   c   a   t   i   n   g       n   e   w       s   t
0060400    o   r   a   g   e   .           {   l   i   s   p       (   N
0060420    U   M   F   O   R   M   A   T   C   O   D   E   )   }       r
0060440    e   t   u   r   n   s       a   n       u   n   i   n   i   t
0060460    i   a   l   i   z   e   d       d   a   t   u   m       t   h
0060500    a   t       c   a   n       l   a   t   e   r       b   e    
0060520    s   m   a   s   h   e   d   .  \r  \r   I   n       I   n   t
0060540    e   r   l   i   s   p   -   D   ,       t   h   i   s       f
0060560    u   n   c   t   i   o   n       i   s       a       n   o   -
0060600    o   p   ,       a   s       t   h   e   r   e       i   s    
0060620    n   o       s   p   e   c   i   a   l       i   n   t   e   r
0060640    n   a   l       r   e   p   r   e   s   e   n   t   a   t   i
0060660    o   n       f   o   r       n   u   m   b   e   r       f   o
0060700    r   m   a   t   s   .  \r   }   }  \r   {   E   n   d       C
0060720    o   m   m   e   n   t   }  \r  \r  \r   {   i   n   d   e   x
0060740        *   E   N   D   *       P   R   I   N   T   N   U   M    
0060760    F   N   }  \r  \r  \r   }   {   E   n   d       S   u   b   S
0061000    e   c       P   r   i   n   t   i   n   g       n   u   m   b
0061020    e   r   s   }  \r  \r  \r  \r   {   B   e   g   i   n       S
0061040    u   b   S   e   c       U   s   e   r       D   e   f   i   n
0061060    e   d       P   r   i   n   t   i   n   g   }  \r   {   T   i
0061100    t   l   e       U   s   e   r       D   e   f   i   n   e   d
0061120        P   r   i   n   t   i   n   g   }  \r   {   T   e   x   t
0061140   \r  \r   {   i   n   d   e   x       *   P   R   I   M   A   R
0061160    Y   *       U   s   e   r       d   e   f   i   n   e   d    
0061200    p   r   i   n   t   i   n   g   }  \r  \r   I   n   i   t   i
0061220    a   l   l   y   ,       I   n   t   e   r   l   i   s   p    
0061240    o   n   l   y       k   n   o   w   s       h   o   w       t
0061260    o       p   r   i   n   t       i   n       a   n       i   n
0061300    t   e   r   e   s   t   i   n   g       w   a   y       o   b
0061320    j   e   c   t   s       o   f       t   y   p   e       l   i
0061340    t   a   t   o   m   ,       n   u   m   b   e   r   ,       s
0061360    t   r   i   n   g   ,       l   i   s   t       a   n   d    
0061400    s   t   a   c   k   p   .           A   l   l       o   t   h
0061420    e   r       t   y   p   e   s       o   f       o   b   j   e
0061440    c   t   s       a   r   e       p   r   i   n   t   e   d    
0061460    i   n       t   h   e       f   o   r   m       {   l   i   s
0061500    p       {   b   r   a   c   k   e   t       d   a   t   a   t
0061520    y   p   e   }   }       f   o   l   l   o   w   e   d       b
0061540    y       t   h   e       o   c   t   a   l       r   e   p   r
0061560    e   s   e   n   t   a   t   i   o   n       o   f       t   h
0061600    e       a   d   d   r   e   s   s       o   f       t   h   e
0061620        p   o   i   n   t   e   r   ,       a       f   o   r   m
0061640    a   t       t   h   a   t       c   a   n   n   o   t       b
0061660    e       r   e   a   d       b   a   c   k       i   n       t
0061700    o       p   r   o   d   u   c   e       a   n       e   q   u
0061720    i   v   a   l   e   n   t       o   b   j   e   c   t   .    
0061740        W   h   e   n       d   e   f   i   n   i   n   g       u
0061760    s   e   r       d   a   t   a       t   y   p   e   s       (
0062000    u   s   i   n   g       t   h   e       {   l   i   s   p    
0062020    D   A   T   A   T   Y   P   E   }       r   e   c   o   r   d
0062040        t   y   p   e   ,       {   p   a   g   e   R   e   f    
0062060    (   r   e   c   o   r   d       t   y   p   e   )       D   A
0062100    T   A   T   Y   P   E   }   )   ,       i   t       i   s    
0062120    o   f   t   e   n       d   e   s   i   r   a   b   l   e    
0062140    t   o       s   p   e   c   i   f   y       a   s       w   e
0062160    l   l       h   o   w       o   b   j   e   c   t   s       o
0062200    f       t   h   a   t       t   y   p   e       s   h   o   u
0062220    l   d       b   e       p   r   i   n   t   e   d   ,       s
0062240    o       a   s       t   o       m   a   k   e       t   h   e
0062260    i   r       c   o   n   t   e   n   t   s       r   e   a   d
0062300    a   b   l   e   ,       o   r       a   t       l   e   a   s
0062320    t       m   o   r   e       i   n   f   o   r   m   a   t   i
0062340    v   e       t   o       t   h   e       v   i   e   w   e   r
0062360    .           T   h   e       f   u   n   c   t   i   o   n    
0062400    {   f   n       D   E   F   P   R   I   N   T   }       i   s
0062420        u   s   e   d       t   o       s   p   e   c   i   f   y
0062440        t   h   e       p   r   i   n   t   i   n   g       f   o
0062460    r   m   a   t       o   f       a       d   a   t   a       t
0062500    y   p   e   .  \r  \r   {   F   n   D   e   f       {   F   n
0062520    N   a   m   e       D   E   F   P   R   I   N   T   }       {
0062540    F   n   A   r   g   s       T   Y   P   E       F   N   }  \r
0062560    {   T   e   x   t  \r   {   a   r   g       T   Y   P   E   }
0062600        i   s       a       t   y   p   e       n   a   m   e   .
0062620            W   h   e   n   e   v   e   r       a       p   r   i
0062640    n   t   i   n   g       f   u   n   c   t   i   o   n       (
0062660    {   f   n       P   R   I   N   T   }   ,       {   f   n    
0062700    P   R   I   N   1   }   ,       {   f   n       P   R   I   N
0062720    2   }   ,       e   t   c   .   )       o   r       a       f
0062740    u   n   c   t   i   o   n       r   e   q   u   i   r   i   n
0062760    g       a       p   r   i   n   t       n   a   m   e       (
0063000    {   f   n       C   H   C   O   N   }   ,       {   f   n    
0063020    N   C   H   A   R   S   }   ,       e   t   c   .   )       e
0063040    n   c   o   u   n   t   e   r   s       a   n       o   b   j
0063060    e   c   t       o   f       t   h   e       i   n   d   i   c
0063100    a   t   e   d       t   y   p   e   ,       {   a   r   g    
0063120    F   N   }       i   s       c   a   l   l   e   d       w   i
0063140    t   h       t   w   o       a   r   g   u   m   e   n   t   s
0063160    :       t   h   e       i   t   e   m       t   o       b   e
0063200        p   r   i   n   t   e   d       a   n   d       t   h   e
0063220        n   a   m   e       o   f       t   h   e       s   t   r
0063240    e   a   m   ,       i   f       a   n   y   ,       t   o    
0063260    w   h   i   c   h       t   h   e       o   b   j   e   c   t
0063300        i   s       t   o       b   e       p   r   i   n   t   e
0063320    d   .           T   h   e       s   e   c   o   n   d       a
0063340    r   g   u   m   e   n   t       i   s       {   l   i   s   p
0063360        N   I   L   }       o   n       c   a   l   l   s       t
0063400    h   a   t       r   e   q   u   e   s   t       t   h   e    
0063420    p   r   i   n   t       n   a   m   e       o   f       a   n
0063440        o   b   j   e   c   t       w   i   t   h   o   u   t    
0063460    a   c   t   u   a   l   l   y       p   r   i   n   t   i   n
0063500    g       i   t   .  \r  \r   I   f       {   a   r   g       F
0063520    N   }       r   e   t   u   r   n   s       a       l   i   s
0063540    t       o   f       t   h   e       f   o   r   m       {   l
0063560    i   s   p       (   {   a   r   g       I   T   E   M   1   }
0063600        .       {   a   r   g       I   T   E   M   2   }   )   }
0063620    ,       {   a   r   g       I   T   E   M   1   }       i   s
0063640        p   r   i   n   t   e   d       u   s   i   n   g       {
0063660    f   n       P   R   I   N   1   }       (   u   n   l   e   s
0063700    s       i   t       i   s       {   l   i   s   p       N   I
0063720    L   }   )   ,       a   n   d       t   h   e   n       {   a
0063740    r   g       I   T   E   M   2   }       i   s       p   r   i
0063760    n   t   e   d       u   s   i   n   g       {   f   n       P
0064000    R   I   N   2   }       (   u   n   l   e   s   s       i   t
0064020        i   s       {   l   i   s   p       N   I   L   }   )   .
0064040            N   o       s   p   a   c   e   s       a   r   e    
0064060    p   r   i   n   t   e   d       b   e   t   w   e   e   n    
0064100    t   h   e       t   w   o       i   t   e   m   s   .        
0064120    T   y   p   i   c   a   l   l   y   ,       {   a   r   g    
0064140    I   T   E   M   1   }       i   s       a       r   e   a   d
0064160        m   a   c   r   o       c   h   a   r   a   c   t   e   r
0064200    .  \r  \r   I   f       {   a   r   g       F   N   }       r
0064220    e   t   u   r   n   s       {   l   i   s   p       N   I   L
0064240    }   ,       t   h   e       d   a   t   u   m       i   s    
0064260    p   r   i   n   t   e   d       i   n       t   h   e       s
0064300    y   s   t   e   m       d   e   f   a   u   l   t       m   a
0064320    n   n   e   r   .  \r  \r   I   f       {   a   r   g       F
0064340    N   }       r   e   t   u   r   n   s       {   l   i   s   p
0064360        T   }   ,       n   o   t   h   i   n   g       f   u   r
0064400    t   h   e   r       i   s       p   r   i   n   t   e   d   ;
0064420        {   a   r   g       F   N   }       i   s       a   s   s
0064440    u   m   e   d       t   o       h   a   v   e       p   r   i
0064460    n   t   e   d       t   h   e       o   b   j   e   c   t    
0064500    t   o       t   h   e       s   t   r   e   a   m       i   t
0064520    s   e   l   f   .           N   o   t   e       t   h   a   t
0064540        t   h   i   s       c   a   s   e       i   f       p   e
0064560    r   m   i   t   t   e   d       o   n   l   y       w   h   e
0064600    n       t   h   e       s   e   c   o   n   d       a   r   g
0064620    u   m   e   n   t       p   a   s   s   e   d       t   o    
0064640    {   a   r   g       F   N   }       i   s       n   o   n   -
0064660    {   l   i   s   p       N   I   L   }   ;       o   t   h   e
0064700    r   w   i   s   e   ,       t   h   e   r   e       i   s    
0064720    n   o       d   e   s   t   i   n   a   t   i   o   n       f
0064740    o   r       {   a   r   g       F   N   }       t   o       d
0064760    o       i   t   s       p   r   i   n   t   i   n   g   ,    
0065000    s   o       i   t       m   u   s   t       r   e   t   u   r
0065020    n       a   s       i   n       o   n   e       o   f       t
0065040    h   e       o   t   h   e   r       t   w   o       c   a   s
0065060    e   s   .  \r  \r  \r   {   B   e   g   i   n       c   o   m
0065100    m   e   n   t       I   n   t   e   r   l   i   s   p   -   1
0065120    0       s   p   e   c   i   f   i   c   }  \r   I   n   t   e
0065140    r   l   i   s   p   -   1   0       s   p   e   c   i   f   i
0065160    c   :           I   n       I   n   t   e   r   l   i   s   p
0065200    -   1   0   ,       {   a   r   g       T   Y   P   E   }    
0065220    m   a   y       a   l   s   o       b   e       a       t   y
0065240    p   e       n   u   m   b   e   r       (   s   e   e       {
0065260    P   a   g   e   R   e   f       F   n       N   T   Y   P   }
0065300    )   .           N   o   t   e       t   h   a   t       t   h
0065320    e       u   s   e   r       c   a   n       s   p   e   c   i
0065340    f   y       d   i   f   f   e   r   e   n   t       a   c   t
0065360    i   o   n       f   o   r       t   y   p   e       n   a   m
0065400    e   s       {   l   i   s   p       A   R   R   A   Y   P   }
0065420    ,       {   l   i   s   p       H   A   R   R   A   Y   P   }
0065440    ,       {   l   i   s   p       T   E   R   M   T   A   B   L
0065460    E   P   }   ,       {   l   i   s   p       R   E   A   D   T
0065500    A   B   L   E   P   }   ,       a   n   d       {   l   i   s
0065520    p       C   C   O   D   E   P   }   ,       e   v   e   n    
0065540    t   h   o   u   g   h       t   h   e   y       a   l   l    
0065560    h   a   v   e       t   h   e       s   a   m   e       t   y
0065600    p   e       {   i   t       n   u   m   b   e   r   }   .  \r
0065620   \r   N   o   t   e       t   h   a   t       s   i   n   c   e
0065640        {   f   n       D   E   F   P   R   I   N   T   }       a
0065660    f   f   e   c   t   s       i   n   t   e   r   n   a   l    
0065700    c   a   l   l   s       t   o       p   r   i   n   t       f
0065720    r   o   m       {   f   n       P   A   C   K   }   ,       {
0065740    f   n       C   O   N   C   A   T   }   ,       e   t   c   .
0065760    ,       i   .   e   .       a   n   y       o   p   e   r   a
0066000    t   i   o   n       t   h   a   t       i   n   v   o   l   v
0066020    e   s       o   b   t   a   i   n   i   n   g       a       p
0066040    r   i   n   t       n   a   m   e       (   s   e   e       {
0066060    P   a   g   e   R   e   f       T   a   g       P   r   i   n
0066100    t   N   a   m   e   s   }   )   ,   i   n       i   m   p   l
0066120    e   m   e   n   t   a   t   i   o   n   s       t   h   a   t
0066140        d   o       n   o   t       h   a   v   e       r   e   e
0066160    n   t   r   a   n   t       p   r   i   n   t   i   n   g    
0066200    c   o   d   e   ,       t   h   e       u   s   e   r   '   s
0066220        {   f   n       D   E   F   P   R   I   N   T   }       f
0066240    u   n   c   t   i   o   n       m   u   s   t       {   i   t
0066260        n   o   t   }       c   a   l   l       a   n   y       p
0066300    r   i   n   t       n   a   m   e       m   a   n   i   p   u
0066320    l   a   t   i   n   g       f   u   n   c   t   i   o   n   s
0066340        i   t   s   e   l   f   ,       o   r       t   h   e    
0066360    r   e   s   u   l   t   s       o   f       t   h   e       w
0066400    h   o   l   e       p   r   i   n   t   i   n   g       o   p
0066420    e   r   a   t   i   o   n       a   r   e       u   n   d   e
0066440    f   i   n   e   d   .  \r   {   E   n   d       c   o   m   m
0066460    e   n   t       I   n   t   e   r   l   i   s   p   -   1   0
0066500        s   p   e   c   i   f   i   c   }  \r   }   }  \r  \r  \r
0066520    }   {   E   n   d       S   u   b   S   e   c       U   s   e
0066540    r       D   e   f   i   n   e   d       P   r   i   n   t   i
0066560    n   g   }  \r  \r  \r  \r   {   B   e   g   i   n       S   u
0066600    b   S   e   c       P   r   i   n   t   i   n   g       U   n
0066620    u   s   u   a   l       D   a   t   a       S   t   r   u   c
0066640    t   u   r   e   s   }  \r   {   T   i   t   l   e       P   r
0066660    i   n   t   i   n   g       U   n   u   s   u   a   l       D
0066700    a   t   a       S   t   r   u   c   t   u   r   e   s   }  \r
0066720    {   T   e   x   t  \r  \r   {   n   o   t   e       T   h   e
0066740        {   f   n       H   P   R   I   N   T   }       p   a   c
0066760    k   a   g   e       w   a   s       w   r   i   t   t   e   n
0067000        b   y       L   .       M   .       M   a   s   i   n   t
0067020    e   r   .   }  \r  \r   {   i   n   d   e   x       *   P   R
0067040    I   M   A   R   Y   *       P   r   i   n   t   i   n   g    
0067060    u   n   u   s   u   a   l       d   a   t   a       s   t   r
0067100    u   c   t   u   r   e   s   }  \r  \r   {   i   n   d   e   x
0067120        *   P   R   I   M   A   R   Y   *       P   r   i   n   t
0067140    i   n   g       c   i   r   c   u   l   a   r       l   i   s
0067160    t   s   }  \r  \r   {   f   n       H   P   R   I   N   T   }
0067200        (   f   o   r       "   H   o   r   r   i   b   l   e    
0067220    P   r   i   n   t   "   )       a   n   d       {   f   n    
0067240    H   R   E   A   D   }       p   r   o   v   i   d   e       a
0067260        m   e   c   h   a   n   i   s   m       f   o   r       p
0067300    r   i   n   t   i   n   g       a   n   d       r   e   a   d
0067320    i   n   g       b   a   c   k       i   n       g   e   n   e
0067340    r   a   l       d   a   t   a       s   t   r   u   c   t   u
0067360    r   e   s       t   h   a   t       c   a   n   n   o   t    
0067400    n   o   r   m   a   l   l   y       b   e       d   u   m   p
0067420    e   d       a   n   d       l   o   a   d   e   d       e   a
0067440    s   i   l   y   ,       s   u   c   h       a   s       (   p
0067460    o   s   s   i   b   l   y       r   e   -   e   n   t   r   a
0067500    n   t       o   r       c   i   r   c   u   l   a   r   )    
0067520    s   t   r   u   c   t   u   r   e   s       c   o   n   t   a
0067540    i   n   i   n   g       u   s   e   r       d   a   t   a   t
0067560    y   p   e   s   ,       a   r   r   a   y   s   ,       h   a
0067600    s   h       t   a   b   l   e   s   ,       a   s       w   e
0067620    l   l       a   s       l   i   s   t       s   t   r   u   c
0067640    t   u   r   e   s   .           {   f   n       H   P   R   I
0067660    N   T   }       w   i   l   l       c   o   r   r   e   c   t
0067700    l   y       p   r   i   n   t       a   n   d       r   e   a
0067720    d       b   a   c   k       i   n       a   n   y       s   t
0067740    r   u   c   t   u   r   e       c   o   n   t   a   i   n   i
0067760    n   g       a   n   y       o   r       a   l   l       o   f
0070000        t   h   e       a   b   o   v   e   ,       c   h   a   s
0070020    i   n   g       a   l   l       p   o   i   n   t   e   r   s
0070040        d   o   w   n       t   o       t   h   e       l   e   v
0070060    e   l       o   f       l   i   t   e   r   a   l       a   t
0070100    o   m   s   ,       n   u   m   b   e   r   s       o   r    
0070120    s   t   r   i   n   g   s   .           {   f   n       H   P
0070140    R   I   N   T   }       c   u   r   r   e   n   t   l   y    
0070160    c   a   n   n   o   t       h   a   n   d   l   e       c   o
0070200    m   p   i   l   e   d       c   o   d   e       a   r   r   a
0070220    y   s   ,       s   t   a   c   k       p   o   s   i   t   i
0070240    o   n   s   ,       o   r       a   r   b   i   t   r   a   r
0070260    y       u   n   b   o   x   e   d       n   u   m   b   e   r
0070300    s   .  \r  \r  \r   {   f   n       H   P   R   I   N   T   }
0070320        o   p   e   r   a   t   e   s       b   y       s   i   m
0070340    u   l   a   t   i   n   g       t   h   e       I   n   t   e
0070360    r   l   i   s   p       {   f   n       P   R   I   N   T   }
0070400        r   o   u   t   i   n   e       f   o   r       n   o   r
0070420    m   a   l       l   i   s   t       s   t   r   u   c   t   u
0070440    r   e   s   .           W   h   e   n       i   t       e   n
0070460    c   o   u   n   t   e   r   s       a       u   s   e   r    
0070500    d   a   t   a   t   y   p   e       (   s   e   e       {   P
0070520    a   g   e   R   e   f       T   e   r   m       U   s   e   r
0070540        D   a   t   a       T   y   p   e   s   }   )   ,       o
0070560    r       a   n       a   r   r   a   y       o   r       h   a
0070600    s   h       a   r   r   a   y   ,       i   t       p   r   i
0070620    n   t   s       t   h   e       d   a   t   a       c   o   n
0070640    t   a   i   n   e   d       t   h   e   r   e   i   n   ,    
0070660    s   u   r   r   o   u   n   d   e   d       b   y       s   p
0070700    e   c   i   a   l       c   h   a   r   a   c   t   e   r   s
0070720        d   e   f   i   n   e   d       a   s       r   e   a   d
0070740        m   a   c   r   o       c   h   a   r   a   c   t   e   r
0070760    s       (   s   e   e       {   P   a   g   e   R   e   f    
0071000    T   a   g       R   e   a   d   M   a   c   r   o   s   }   )
0071020    .           W   h   i   l   e       c   h   a   s   i   n   g
0071040        t   h   e       p   o   i   n   t   e   r   s       o   f
0071060        a       s   t   r   u   c   t   u   r   e   ,       i   t
0071100        a   l   s   o       k   e   e   p   s       a       h   a
0071120    s   h       t   a   b   l   e       o   f       t   h   o   s
0071140    e       i   t   e   m   s       i   t       e   n   c   o   u
0071160    n   t   e   r   s   ,       a   n   d       i   f       a   n
0071200    y       i   t   e   m       i   s       e   n   c   o   u   n
0071220    t   e   r   e   d       a       s   e   c   o   n   d       t
0071240    i   m   e   ,       a   n   o   t   h   e   r       r   e   a
0071260    d       m   a   c   r   o       c   h   a   r   a   c   t   e
0071300    r       i   s       i   n   s   e   r   t   e   d       b   e
0071320    f   o   r   e       t   h   e       f   i   r   s   t       o
0071340    c   c   u   r   r   e   n   c   e       (   b   y       r   e
0071360    s   e   t   t   i   n   g       t   h   e       f   i   l   e
0071400        p   o   i   n   t   e   r       w   i   t   h       {   f
0071420    n       S   E   T   F   I   L   E   P   T   R   }   )       a
0071440    n   d       a   l   l       s   u   b   s   e   q   u   e   n
0071460    t       o   c   c   u   r   r   e   n   c   e   s       a   r
0071500    e       p   r   i   n   t   e   d       a   s       a       b
0071520    a   c   k       r   e   f   e   r   e   n   c   e       u   s
0071540    i   n   g       a   n       a   p   p   r   o   p   r   i   a
0071560    t   e       m   a   c   r   o       c   h   a   r   a   c   t
0071600    e   r   .           T   h   u   s       t   h   e       i   n
0071620    v   e   r   s   e       f   u   n   c   t   i   o   n   ,    
0071640    {   f   n       H   R   E   A   D   }       m   e   r   e   l
0071660    y       c   a   l   l   s       t   h   e       I   n   t   e
0071700    r   l   i   s   p       {   f   n       R   E   A   D   }    
0071720    r   o   u   t   i   n   e       w   i   t   h       t   h   e
0071740        a   p   p   r   o   p   r   i   a   t   e       r   e   a
0071760    d       t   a   b   l   e   .  \r  \r  \r   {   F   n   D   e
0072000    f       {   F   n   N   a   m   e       H   P   R   I   N   T
0072020    }       {   F   n   A   r   g   s       E   X   P   R       F
0072040    I   L   E       U   N   C   I   R   C   U   L   A   R       D
0072060    A   T   A   T   Y   P   E   S   E   E   N   }  \r   {   T   e
0072100    x   t  \r   P   r   i   n   t   s       {   a   r   g       E
0072120    X   P   R   }       o   n       {   a   r   g       F   I   L
0072140    E   }   .           I   f       {   a   r   g       U   N   C
0072160    I   R   C   U   L   A   R   }       i   s       n   o   n   -
0072200    {   l   i   s   p       N   I   L   }   ,       {   f   n    
0072220    H   P   R   I   N   T   }       d   o   e   s       n   o    
0072240    c   h   e   c   k   i   n   g       f   o   r       a   n   y
0072260        c   i   r   c   u   l   a   r   i   t   i   e   s       i
0072300    n       {   a   r   g       E   X   P   R   }       (   b   u
0072320    t       i   s       s   t   i   l   l       u   s   e   f   u
0072340    l       f   o   r       d   u   m   p   i   n   g       a   r
0072360    b   i   t   r   a   r   y       s   t   r   u   c   t   u   r
0072400    e   s       o   f       a   r   r   a   y   s   ,       h   a
0072420    s   h       a   r   r   a   y   s   ,       l   i   s   t   s
0072440    ,       u   s   e   r       d   a   t   a       t   y   p   e
0072460    s   ,       e   t   c   .   ,       t   h   a   t       d   o
0072500        n   o   t       c   o   n   t   a   i   n       c   i   r
0072520    c   u   l   a   r   i   t   i   e   s   )   .           S   p
0072540    e   c   i   f   y   i   n   g       {   a   r   g       U   N
0072560    C   I   R   C   U   L   A   R   }       a   s       n   o   n
0072600    -   {   l   i   s   p       N   I   L   }       r   e   s   u
0072620    l   t   s       i   n       a       l   a   r   g   e       s
0072640    p   e   e   d       a   n   d       i   n   t   e   r   n   a
0072660    l   -   s   t   o   r   a   g   e       a   d   v   a   n   t
0072700    a   g   e   .  \r  \r   N   o   r   m   a   l   l   y   ,    
0072720    w   h   e   n       {   f   n       H   P   R   I   N   T   }
0072740        e   n   c   o   u   n   t   e   r   s       a       u   s
0072760    e   r       d   a   t   a       t   y   p   e       f   o   r
0073000        t   h   e       f   i   r   s   t       t   i   m   e   ,
0073020        i   t       o   u   t   p   u   t   s       a       s   u
0073040    m   m   a   r   y       o   f       t   h   e       d   a   t
0073060    a       t   y   p   e   '   s       d   e   c   l   a   r   a
0073100    t   i   o   n   .           W   h   e   n       t   h   i   s
0073120        i   s       r   e   a   d       i   n   ,       t   h   e
0073140        d   a   t   a       t   y   p   e       i   s       r   e
0073160    d   e   c   l   a   r   e   d   .           I   f       {   a
0073200    r   g       D   A   T   A   T   Y   P   E   S   E   E   N   }
0073220        i   s       n   o   n   -   {   l   i   s   p       N   I
0073240    L   }   ,       {   f   n       H   P   R   I   N   T   }    
0073260    a   s   s   u   m   e   s       t   h   a   t       t   h   e
0073300        s   a   m   e       d   a   t   a       t   y   p   e    
0073320    d   e   c   l   a   r   a   t   i   o   n   s       w   i   l
0073340    l       b   e       i   n       f   o   r   c   e       a   t
0073360        r   e   a   d       t   i   m   e       a   s       w   e
0073400    r   e       a   t       {   f   n       H   P   R   I   N   T
0073420    }       t   i   m   e   ,       a   n   d       n   o   t    
0073440    o   u   t   p   u   t       d   e   c   l   a   r   a   t   i
0073460    o   n   s   .  \r  \r   {   f   n       H   P   R   I   N   T
0073500    }       i   s       i   n   t   e   n   d   e   d       p   r
0073520    i   m   a   r   i   l   y       f   o   r       o   u   t   p
0073540    u   t       t   o       r   a   n   d   o   m       a   c   c
0073560    e   s   s       f   i   l   e   s   ,       s   i   n   c   e
0073600        t   h   e       a   l   g   o   r   i   t   h   m       d
0073620    e   p   e   n   d   s       o   n       b   e   i   n   g    
0073640    a   b   l   e       t   o       r   e   s   e   t       t   h
0073660    e       f   i   l   e       p   o   i   n   t   e   r   .    
0073700        I   f       {   a   r   g       F   I   L   E   }       i
0073720    s       n   o   t       a       r   a   n   d   o   m       a
0073740    c   c   e   s   s       f   i   l   e       (   a   n   d    
0073760    {   a   r   g       U   N   C   I   R   C   U   L   A   R   }
0074000        =       {   l   i   s   p       N   I   L   }   )   ,    
0074020    a       t   e   m   p   o   r   a   r   y       f   i   l   e
0074040    ,       {   l   i   s   p       H   P   R   I   N   T   .   S
0074060    C   R   A   T   C   H   }   ,   {   i   n   d   e   x       H
0074100    P   R   I   N   T   .   S   C   R   A   T   C   H       (   F
0074120    i   l   e       n   a   m   e   )   }       i   s       o   p
0074140    e   n   e   d   ,       {   a   r   g       E   X   P   R   }
0074160        i   s       {   f   n       H   P   R   I   N   T   }   e
0074200    d       o   n       i   t   ,       a   n   d       t   h   e
0074220    n       t   h   a   t       f   i   l   e       i   s       c
0074240    o   p   i   e   d       t   o       t   h   e       f   i   n
0074260    a   l       o   u   t   p   u   t       f   i   l   e       a
0074300    n   d       t   h   e       t   e   m   p   o   r   a   r   y
0074320        f   i   l   e       i   s       d   e   l   e   t   e   d
0074340    .  \r   }   }  \r  \r  \r   {   F   n   D   e   f       {   F
0074360    n   N   a   m   e       H   R   E   A   D   }       {   F   n
0074400    A   r   g   s       F   I   L   E   }  \r   {   T   e   x   t
0074420   \r   R   e   a   d   s       a   n   d       r   e   t   u   r
0074440    n   s       a   n       {   f   n       H   P   R   I   N   T
0074460    }   -   e   d       e   x   p   r   e   s   s   i   o   n    
0074500    f   r   o   m       {   a   r   g       F   I   L   E   }   .
0074520   \r   }   }  \r  \r  \r   {   F   n   D   e   f       {   F   n
0074540    N   a   m   e       H   C   O   P   Y   A   L   L   }       {
0074560    F   n   A   r   g   s       X   }  \r   {   T   e   x   t  \r
0074600    C   o   p   i   e   s       d   a   t   a       s   t   r   u
0074620    c   t   u   r   e       {   a   r   g       X   }   .        
0074640    {   a   r   g       X   }       m   a   y       c   o   n   t
0074660    a   i   n       c   i   r   c   u   l   a   r       p   o   i
0074700    n   t   e   r   s       a   s       w   e   l   l       a   s
0074720        a   r   b   i   t   r   a   r   y       s   t   r   u   c
0074740    t   u   r   e   s   .  \r   }   }  \r  \r  \r   N   o   t   e
0074760    :       {   f   i   l   e   c   o   m       H   O   R   R   I
0075000    B   L   E   V   A   R   S   }   {   i   n   d   e   x       H
0075020    O   R   R   I   B   L   E   V   A   R   S       F   i   l   e
0075040    C   o   m   }       a   n   d       {   f   i   l   e   c   o
0075060    m       U   G   L   Y   V   A   R   S   }   {   i   n   d   e
0075100    x       U   G   L   Y   V   A   R   S       F   i   l   e   C
0075120    o   m   }       (   {   P   a   g   e   R   e   f       F   i
0075140    l   e   C   o   m       H   O   R   R   I   B   L   E   V   A
0075160    R   S   }   )       a   r   e       t   w   o       f   i   l
0075200    e       p   a   c   k   a   g   e       c   o   m   m   a   n
0075220    d   s       f   o   r       d   u   m   p   i   n   g       a
0075240    n   d       r   e   l   o   a   d   i   n   g       c   i   r
0075260    c   u   l   a   r       a   n   d       r   e   -   e   n   t
0075300    r   a   n   t       d   a   t   a       s   t   r   u   c   t
0075320    u   r   e   s   .           T   h   e   y       p   r   o   v
0075340    i   d   e       a       c   o   n   v   e   n   i   e   n   t
0075360        i   n   t   e   r   f   a   c   e       t   o       {   f
0075400    n       H   P   R   I   N   T   }       a   n   d       {   f
0075420    n       H   R   E   A   D   }   .      \r  \r  \r   W   h   e
0075440    n       {   f   n       H   P   R   I   N   T   }       i   s
0075460        d   u   m   p   i   n   g       a       d   a   t   a    
0075500    s   t   r   u   c   t   u   r   e       t   h   a   t       c
0075520    o   n   t   a   i   n   s       a   n       i   n   s   t   a
0075540    n   c   e       o   f       a   n       I   n   t   e   r   l
0075560    i   s   p       d   a   t   a   t   y   p   e   ,       t   h
0075600    e       d   a   t   a   t   y   p   e       d   e   c   l   a
0075620    r   a   t   i   o   n       i   s       a   l   s   o       p
0075640    r   i   n   t   e   d       o   n   t   o       t   h   e    
0075660    f   i   l   e   .           R   e   a   d   i   n   g       s
0075700    u   c   h       a       d   a   t   a       s   t   r   u   c
0075720    t   u   r   e       w   i   t   h       {   f   n       H   R
0075740    E   A   D   }       c   a   n       c   a   u   s   e       p
0075760    r   o   b   l   e   m   s       i   f       i   t       r   e
0076000    d   e   f   i   n   e   s       a       s   y   s   t   e   m
0076020        d   a   t   a   t   y   p   e   .           R   e   d   e
0076040    f   i   n   i   n   g       a       s   y   s   t   e   m    
0076060    d   a   t   a   t   y   p   e       w   i   l   l       a   l
0076100    m   o   s   t       d   e   f   i   n   i   t   e   l   y    
0076120    c   a   u   s   e       s   e   r   i   o   u   s       e   r
0076140    r   o   r   s   .           T   h   e       I   n   t   e   r
0076160    l   i   s   p       s   y   s   t   e   m       d   a   t   a
0076200    t   y   p   e   s       d   o       n   o   t       c   h   a
0076220    n   g   e       v   e   r   y       o   f   t   e   n   ,    
0076240    b   u   t       t   h   e   r   e       i   s       a   l   w
0076260    a   y   s       a       p   o   s   s   i   b   i   l   i   t
0076300    y       w   h   e   n       l   o   a   d   i   n   g       i
0076320    n       o   l   d       f   i   l   e   s       c   r   e   a
0076340    t   e   d       u   n   d   e   r       a   n       o   l   d
0076360        I   n   t   e   r   l   i   s   p       r   e   l   e   a
0076400    s   e   .  \r  \r   T   o       p   r   e   v   e   n   t    
0076420    a   c   c   i   d   e   n   t   a   l       s   y   s   t   e
0076440    m       c   r   a   s   h   e   s   ,       {   f   n       H
0076460    R   E   A   D   }       w   i   l   l       {   i   t       n
0076500    o   t   }       r   e   d   e   f   i   n   e       d   a   t
0076520    a   t   y   p   e   s   .           I   n   s   t   e   a   d
0076540    ,       i   t       w   i   l   l       c   a   u   s   e    
0076560    a   n       e   r   r   o   r       "   {   l   i   s   p    
0076600    a   t   t   e   m   p   t       t   o       r   e   a   d    
0076620    D   A   T   A   T   Y   P   E       w   i   t   h       d   i
0076640    f   f   e   r   e   n   t       f   i   e   l   d       s   p
0076660    e   c   i   f   i   c   a   t   i   o   n       t   h   a   n
0076700        c   u   r   r   e   n   t   l   y       d   e   f   i   n
0076720    e   d   }   "   .   {   i   n   d   e   x       a   t   t   e
0076740    m   p   t       t   o       r   e   a   d       D   A   T   A
0076760    T   Y   P   E       w   i   t   h       d   i   f   f   e   r
0077000    e   n   t       f   i   e   l   d       s   p   e   c   i   f
0077020    i   c   a   t   i   o   n       t   h   a   n       c   u   r
0077040    r   e   n   t   l   y       d   e   f   i   n   e   d       E
0077060    r   r   o   r   }           C   o   n   t   i   n   u   i   n
0077100    g       f   r   o   m       t   h   i   s       e   r   r   o
0077120    r       w   i   l   l       r   e   d   e   f   i   n   e    
0077140    t   h   e       d   a   t   a   t   y   p   e   .  \r  \r   {
0077160    B   e   g   i   n       N   o   t   e   }  \r   I   s       t
0077200    h   i   s       s   t   u   f   f       t   r   u   e   ?    
0077220        S   h   o   u   l   d       i   t       b   e       d   o
0077240    c   u   m   e   n   t   e   d       i   n       t   h   e    
0077260    m   a   n   u   a   l   ?  \r  \r   D   a   t   e   :        
0077300    3       N   O   V       1   9   7   4       0   1   1   0   -
0077320    P   S   T  \r   F   r   o   m   :       M   A   S   I   N   T
0077340    E   R  \r   S   u   b   j   e   c   t   :       H   P   R   I
0077360    N   T  \r  \r   T   h   e   r   e       i   s       a       f
0077400    l   a   g       H   P   R   I   N   T   A   L   L   F   L   G
0077420    :       i   f       o   n   ,       H   P   R   I   N   T    
0077440    c   h   e   c   k   s       f   o   r       E   Q  \r  \r   i
0077460    n   i   t   i   a   l   i   z   a   t   i   o   n       f   u
0077500    n   c   t   i   o   n       H   P   I   N   I   T   R   D   T
0077520    B   L   [   c   h   a   r   s   ]       i   n   i   t   '   s
0077540        t   h   e       r   e   a   d       t   a   b   l   e   .
0077560   \r  \r   c   h   a   r   s       i   s       t   h   e       l
0077600    i   s   t  \r   (   f   o   r   w   a   r   d   c   h   a   r
0077620        f   o   r   w   a   r   d   c   d   r   c   h   a   r    
0077640    b   a   k   c   h   a   r       f   i   l   l   c   h   a   r
0077660        f   i   n   a   l   c   h   a   r   )   .  \r           ^
0077700        u   s   e   d       b   e   f   o   r   e       a   n    
0077720    i   t   e   m       w   h   i   c   h       w   i   l   l    
0077740    h   a   v   e       a       b   a   c   k       r   e   f   e
0077760    r   e   n   c   e  \r  \t                       ^       u   s
0100000    e   d       b   e   f   o   r   e       a   n       i   t   e
0100020    m   ,       t   h   e       t   a   i   l       o   f       t
0100040    h   e       l   i   s   t       s   t   a   r   t   i   n   g
0100060        b   a   k   c   h   a   r       i   s       u   s   e   d
0100100        t   o       d   e   n   o   t   e       b   o   t   h    
0100120    a       b   a   c   k       r   e   f   e   r   e   n   c   e
0100140    ,       a   n   d       a       h   a   s   h       a   r   r
0100160    a   y   ,       (   w   h   e   n       f   o   l   l   o   w
0100200    e   d       b   y       H   )   ,       a       r   e   g   u
0100220    l   a   r       a   r   r   a   y       (   w   h   e   n    
0100240    f   o   l   l   o   w   e   d       b   y       A   [   )   ,
0100260        a       d   a   t   a   t   y   p   e       (   w   h   e
0100300    n       f   o   l   l   o   w   e   d       b   y       [   )
0100320    .  \r  \r   f   i   l   l   c   h   a   r       i   s       u
0100340    s   e   d       t   o       p   a   d       a   r   o   u   n
0100360    d       b   a   c   k       r   e   f   e   r   e   n   c   e
0100400        n   u   m   b   e   r   s       (   s   i   n   c   e    
0100420    i   t       j   u   s   t       l   e   a   v   e   s       s
0100440    p   a   c   e   s       a       p   r   i   o   r   i       a
0100460    n   d       g   o   e   s       b   a   c   k       a   t    
0100500    t   h   e       e   n   d       t   o  \r   r   e   m   a   r
0100520    k       t   h   e       p   l   a   c   e   s   )   .  \r  \r
0100540    f   i   n   a   l   c   h   a   r       i   s       u   s   e
0100560    d       t   o       t   e   r   m   i   n   a   t   e       t
0100600    h   e       b   a   c   k   r   e   f       n   u   m   b   e
0100620    r   s       (   a   s       w   e   l   l       a   s       a
0100640    f   t   e   r       a   r   r   a   y   s   ,       d   a   t
0100660    a   t   y   p   e   s   ,       e   t   c   )   .  \r  \r   i
0100700    n   i   t   i   a   l   l   y   ,       t   h   e   s   e    
0100720    a   r   e       s   e   t       u   p   :  \r   f   o   r   w
0100740    a   r   d   c   h   a   r       =       ^       (   u   p    
0100760    a   r   r   o   w   )  \r   f   o   r   w   r   d   c   d   r
0101000    c   h   a   r       =       `       (   a   c   c   e   n   t
0101020        g   r   a   v   e   )  \r   b   a   k   c   h   a   r    
0101040    =       {   l   b   r   a   c   k   e   t   }       (   l   e
0101060    f   t       b   r   a   c   e   )  \r   f   i   l   l   c   h
0101100    a   r       =       (   A   S   C   I   I       0   )        
0101120    (   u   s   u   a   l   l   y       n   o   n   -   p   r   i
0101140    n   t   i   n   g   )  \r   f   i   n   a   l   c   h   a   r
0101160        =       {   r   b   r   a   c   k   e   t   }       (   r
0101200    i   g   h   t       b   r   a   c   e   )  \r  \r   T   h   i
0101220    s       m   e   a   n   s       t   h   a   t       c   i   r
0101240    c   u   l   a   r       l   i   s   t   s       p   r   i   n
0101260    t       i   n       a       s   i   m   i   l   a   r       f
0101300    o   r   m   a   t  \r   t   o       C   I   R   C   L   P   R
0101320    I   N   T   '   s       o   u   t   p   u   t   .  \r   A   r
0101340    r   a   y   s       p   r   i   n   t       a   s       {   b
0101360    r   a   c   k   e   t       A   [   n   1       n   2       e
0101400    1       e   2       e   3       .   .   .   ]   }            
0101420        (   t   h   e       e   i   '   s       a   r   e       t
0101440    h   e       e   l   e   m   e   n   t   s   )  \r   H   a   s
0101460    h       a   r   r   a   y   s       p   r   i   n   t       {
0101500    b   r   a   c   k   e   t       H   [   n   1       e   1    
0101520    e   2       e   3       .   .   .   ]   }  \r   U   s   e   r
0101540        d   a   t   a   t   y   p   e   s       a   s       {   b
0101560    r   a   c   k   e   t       [   n   a   m   e       e   1    
0101600    e   2       e   3       .   .   .   ]   }           e   x   c
0101620    e   p   t       t   h   a   t       t   h   e       f   i   r
0101640    s   t       t   i   m   e       a       d   a   t   a   t   y
0101660    p   e       i   s       p   r   i   n   t   e   d   ,       t
0101700    h   e       n   a   m   e       i   s       f   o   l   l   o
0101720    w   e   d       b   y       N   W   O   R   D   S       a   n
0101740    d       N   P   O   I   N   T   E   R   S   .  \r  \r   f   o
0101760    r   w   a   r   d   c   h   a   r   ,       f   o   r   w   r
0102000    d   c   d   r   c   h   a   r   ,       a   n   d       b   a
0102020    k   c   h   a   r       a   r   e       m   a   c   r   o   s
0102040    ;      \r   f   i   l   l   c   h   a   r       a   n   d    
0102060    f   i   n   a   l   c   h   a   r       a   r   e       j   u
0102100    s   t       s   e   p   r   s       (   b   u   t       t   h
0102120    e   r   e       a   r   e       r   e   d   u   n   d   a   n
0102140    c   y       c   h   e   c   k   s       t   h   a   t       (
0102160    E   Q       (   R   E   A   D   C       .   .   )       f   i
0102200    n   a   l   c   h   a   r   )       i   n       v   a   r   i
0102220    o   u   s       p   l   a   c   e   s   )   .  \r  \r   -   -
0102240    -   -  \r   R   E   A   D   V   A   R   S   ,       i   f    
0102260    t   h   e       l   a   s   t       a   r   g       i   s    
0102300    a       l   i   s   t   ,       w   i   l   l       i   n   i
0102320    t   i   a   l   i   z   e       t   h   e       r   e   a   d
0102340        t   a   b   l   e       t   o       t   h   o   s   e    
0102360    c   o   d   e   s   .       H   O   R   R   I   B   L   E   V
0102400    A   R   S       p   r   e   t   t   y   d   e   f   m   a   c
0102420    r   o       w   i   l   l       p   u   t       o   u   t    
0102440    t   h   e       c   o   d   e   s       i   n       t   h   e
0102460        R   E   A   D   V   A   R   S       e   x   p   r   e   s
0102500    s   i   o   n       i   f       t   h   e   y       a   r   e
0102520        d   i   f   f   e   r   e   n   t       f   r   o   m    
0102540    t   h   o   s   e       i   n       H   P   D   E   F   A   U
0102560    L   T   C   H   A   R   S   .  \r   {   E   n   d       N   o
0102600    t   e   }  \r  \r  \r   }   {   E   n   d       S   u   b   S
0102620    e   c       P   r   i   n   t   i   n   g       U   n   u   s
0102640    u   a   l       D   a   t   a       S   t   r   u   c   t   u
0102660    r   e   s   }  \r  \r  \r  \r  \r   }   {   E   n   d       S
0102700    u   b   S   e   c       O   u   t   p   u   t       F   u   n
0102720    c   t   i   o   n   s   }  \r  \r  \r  \r  \r  \0  \0  \0  \0
0102740   \0 004  \0 002  \0   ?  \0   1   (   D   E   F   A   U   L   T
0102760    F   O   N   T       1       (   G   A   C   H   A       1   0
0103000    )       (   G   A   C   H   A       8   )       (   T   E   R
0103020    M   I   N   A   L       8   )   )  \0  \n  \0  \0  \0  \0  \0
0103040   \0  \0  \0  \0   ?  \0   1   (   D   E   F   A   U   L   T   F
0103060    O   N   T       1       (   G   A   C   H   A       1   0   )
0103100        (   G   A   C   H   A       8   )       (   T   E   R   M
0103120    I   N   A   L       8   )   )  \0  \n  \0  \0  \0  \0  \0  \0
0103140   \0  \0  \0  \0 022   a  \0  \0  \0  \0 002  \0  \0 001   #  \0
0103160   \0  \0  \0 001  \0  \0   r   X  \0  \0  \0  \0 002  \0  \0 205
0103200  334  \0 003   z 272                                            
0103205