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