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