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