$ od -c -N 50000 [Indigo]<Casaba>7.0>Saffron3.0>Derived>SaffronCG7Impl.Mesa!15
0000000    -   -       S   a   f   f   r   o   n   C   G   7   I   m   p
0000020    l   .   m   e   s   a  \r       -   -       C   o   p   y   r
0000040    i   g   h   t     323       1   9   8   7       b   y       X
0000060    e   r   o   x       C   o   r   p   o   r   a   t   i   o   n
0000100    .           A   l   l       r   i   g   h   t   s       r   e
0000120    s   e   r   v   e   d   .  \r       -   -       G   e   n   e
0000140    r   a   t   e   d       b   y       R   a   u   e   n   .   p
0000160    a       a   t       A   u   g   u   s   t       7   ,       1
0000200    9   8   8       7   :   5   8   :   0   3       p   m       P
0000220    D   T  \r       -   -           u   s   i   n   g       T   h
0000240    r   e   e   C   a   s   a   b   a   F   o   u   r       [   1
0000260    .   2   ]       o   f       J   u   n   e       1   ,       1
0000300    9   8   7       6   :   0   0   :   0   0       p   m       P
0000320    D   T  \r  \r   D   I   R   E   C   T   O   R   Y  \r  \t   S
0000340    a   f   f   r   o   n   A   G   1   a   D   e   f   ,  \r  \t
0000360    S   a   f   f   r   o   n   A   G   7   a   D   e   f   ,  \r
0000400   \t   S   a   f   f   r   o   n   A   G   6   a   D   e   f   ,
0000420   \r  \t   S   a   f   f   r   o   n   A   G   6   b   D   e   f
0000440    ,  \r  \t   S   a   f   f   r   o   n   A   G   8   D   e   f
0000460    ,  \r  \t   S   a   f   f   r   o   n   A   G   4   D   e   f
0000500    ,  \r  \t   S   a   f   f   r   o   n   A   G   5   D   e   f
0000520    ,  \r  \t   S   a   f   f   r   o   n   A   G   2   D   e   f
0000540    ,  \r  \t   S   a   f   f   r   o   n   A   G   9   D   e   f
0000560    ,  \r  \t   S   a   f   f   r   o   n   A   G   6   c   D   e
0000600    f   ,  \r  \t   S   a   f   f   r   o   n   G   e   n   e   r
0000620    i   c   D   e   f   ,  \r  \t   T   h   r   e   e   C   4   S
0000640    u   p   p   o   r   t   ,  \r  \t   S   a   f   f   r   o   n
0000660    C   G   7   D   e   f       U   S   I   N   G   [   ]   ,  \r
0000700   \t   S   a   f   f   r   o   n   A   T   D   e   f   ;  \r  \r
0000720    S   a   f   f   r   o   n   C   G   7   I   m   p   l   :    
0000740    C   E   D   A   R       P   R   O   G   R   A   M       I   M
0000760    P   O   R   T   S       S   a   f   f   r   o   n   A   G   1
0001000    a   D   e   f   ,       S   a   f   f   r   o   n   A   G   7
0001020    a   D   e   f   ,       S   a   f   f   r   o   n   A   G   6
*
0001060    b   D   e   f   ,       S   a   f   f   r   o   n   A   G   8
0001100    D   e   f   ,       S   a   f   f   r   o   n   A   G   4   D
0001120    e   f   ,       S   a   f   f   r   o   n   A   G   5   D   e
0001140    f   ,       S   a   f   f   r   o   n   A   G   2   D   e   f
0001160    ,       S   a   f   f   r   o   n   A   G   9   D   e   f   ,
0001200        S   a   f   f   r   o   n   A   G   6   c   D   e   f    
0001220    E   X   P   O   R   T   S       S   a   f   f   r   o   n   C
0001240    G   7   D   e   f   =      \r   B   E   G   I   N  \r   O   P
0001260    E   N       S   a   f   f   r   o   n   A   G   1   a   D   e
0001300    f   ,       S   a   f   f   r   o   n   A   G   7   a   D   e
0001320    f   ,       S   a   f   f   r   o   n   A   G   6   a   D   e
0001340    f   ,       S   a   f   f   r   o   n   A   G   6   b   D   e
0001360    f   ,       S   a   f   f   r   o   n   A   G   8   D   e   f
0001400    ,       S   a   f   f   r   o   n   A   G   4   D   e   f   ,
0001420        S   a   f   f   r   o   n   A   G   5   D   e   f   ,    
0001440    S   a   f   f   r   o   n   A   G   2   D   e   f   ,       S
0001460    a   f   f   r   o   n   A   G   9   D   e   f   ,       S   a
0001500    f   f   r   o   n   A   G   6   c   D   e   f   ,       S   a
0001520    f   f   r   o   n   G   e   n   e   r   i   c   D   e   f   ,
0001540        T   h   r   e   e   C   4   S   u   p   p   o   r   t   ,
0001560        S   a   f   f   r   o   n   A   T   D   e   f   ;  \r   S
0001600    a   f   f   r   o   n   C   G   7   L   i   n   k   P   r   o
0001620    c   :       P   U   B   L   I   C       P   R   O   C   [   p
0001640    r   o   d   L   i   n   k   A   r   r   a   y   :       S   e
0001660    e   P   r   o   d   L   i   n   k   A   r   r   a   y   ,    
0001700    t   k   n   L   i   n   k   A   r   r   a   y   :       T   o
0001720    k   e   n   L   i   n   k   A   r   r   a   y   ]       =  \r
0001740    B   E   G   I   N  \r   p   r   o   d   L   i   n   k   A   r
0001760    r   a   y   [   4   1   6   ]       _       S   e   e   t   y
0002000    p   e   l   i   s   t   a   ;  \r   p   r   o   d   L   i   n
0002020    k   A   r   r   a   y   [   4   1   7   ]       _       S   e
0002040    e   t   y   p   e   l   i   s   t   b   ;  \r   p   r   o   d
0002060    L   i   n   k   A   r   r   a   y   [   4   1   8   ]       _
0002100        S   e   e   t   y   p   e   l   i   s   t   c   ;  \r   p
0002120    r   o   d   L   i   n   k   A   r   r   a   y   [   4   1   9
0002140    ]       _       S   e   e   t   y   p   e   l   i   s   t   d
0002160    ;  \r   p   r   o   d   L   i   n   k   A   r   r   a   y   [
0002200    4   2   0   ]       _       S   e   e   t   y   p   e   l   i
0002220    s   t   e   ;  \r   p   r   o   d   L   i   n   k   A   r   r
0002240    a   y   [   4   2   1   ]       _       S   e   e   t   y   p
0002260    e   l   i   s   t   f   ;  \r   p   r   o   d   L   i   n   k
0002300    A   r   r   a   y   [   4   2   2   ]       _       S   e   e
0002320    t   y   p   e   l   i   s   t   g   ;  \r   p   r   o   d   L
0002340    i   n   k   A   r   r   a   y   [   4   2   3   ]       _    
0002360    S   e   e   t   y   p   e   l   i   s   t   h   ;  \r   p   r
0002400    o   d   L   i   n   k   A   r   r   a   y   [   4   2   4   ]
0002420        _       S   e   e   m   o   d   u   l   e   l   i   s   t
0002440    a   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a   y
0002460    [   4   2   5   ]       _       S   e   e   m   o   d   u   l
0002500    e   l   i   s   t   b   ;  \r   p   r   o   d   L   i   n   k
0002520    A   r   r   a   y   [   4   2   6   ]       _       S   e   e
0002540    m   o   d   u   l   e   i   t   e   m   o   n   e   ;  \r   p
0002560    r   o   d   L   i   n   k   A   r   r   a   y   [   4   2   7
0002600    ]       _       S   e   e   m   o   d   u   l   e   i   t   e
0002620    m   t   w   o   ;  \r   p   r   o   d   L   i   n   k   A   r
0002640    r   a   y   [   4   2   8   ]       _       S   e   e   t   i
0002660    l   d   e   a   ;  \r   p   r   o   d   L   i   n   k   A   r
0002700    r   a   y   [   4   2   9   ]       _       S   e   e   t   i
0002720    l   d   e   b   ;  \r   p   r   o   d   L   i   n   k   A   r
0002740    r   a   y   [   4   3   0   ]       _       S   e   e   p   a
0002760    i   r   l   i   s   t   o   n   e   ;  \r   p   r   o   d   L
0003000    i   n   k   A   r   r   a   y   [   4   3   1   ]       _    
0003020    S   e   e   p   a   i   r   l   i   s   t   m   a   n   y   ;
0003040   \r   p   r   o   d   L   i   n   k   A   r   r   a   y   [   4
0003060    3   2   ]       _       S   e   e   p   a   i   r   i   t   e
0003100    m   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a   y
0003120    [   4   3   3   ]       _       S   e   e   t   y   p   e   i
0003140    d   a   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a
0003160    y   [   4   3   4   ]       _       S   e   e   t   y   p   e
0003200    i   d   b   ;  \r   p   r   o   d   L   i   n   k   A   r   r
0003220    a   y   [   4   3   5   ]       _       S   e   e   t   y   p
0003240    e   i   d   c   ;  \r   p   r   o   d   L   i   n   k   A   r
0003260    r   a   y   [   4   3   6   ]       _       S   e   e   t   y
0003300    p   e   i   d   P   a   ;  \r   p   r   o   d   L   i   n   k
0003320    A   r   r   a   y   [   4   3   7   ]       _       S   e   e
0003340    t   y   p   e   i   d   P   b   ;  \r   p   r   o   d   L   i
0003360    n   k   A   r   r   a   y   [   4   3   8   ]       _       S
0003400    e   e   e   x   p   l   i   s   t   o   r   d   e   r   l   i
0003420    s   t   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a
0003440    y   [   4   3   9   ]       _       S   e   e   e   x   p   l
0003460    i   s   t   k   e   y   l   i   s   t   ;  \r   p   r   o   d
0003500    L   i   n   k   A   r   r   a   y   [   4   4   0   ]       _
0003520        S   e   e   k   e   y   l   i   s   t   o   n   e   ;  \r
0003540    p   r   o   d   L   i   n   k   A   r   r   a   y   [   4   4
0003560    1   ]       _       S   e   e   k   e   y   l   i   s   t   m
0003600    o   r   e   ;  \r   p   r   o   d   L   i   n   k   A   r   r
0003620    a   y   [   4   4   2   ]       _       S   e   e   k   e   y
0003640    i   t   e   m   a   ;  \r   p   r   o   d   L   i   n   k   A
0003660    r   r   a   y   [   4   4   3   ]       _       S   e   e   k
0003700    e   y   i   t   e   m   b   ;  \r   p   r   o   d   L   i   n
0003720    k   A   r   r   a   y   [   4   4   4   ]       _       S   e
0003740    e   l   o   c   k   s   p   r   e   s   e   n   t   ;  \r   p
0003760    r   o   d   L   i   n   k   A   r   r   a   y   [   4   4   5
0004000    ]       _       S   e   e   l   o   c   k   s   a   b   s   e
0004020    n   t   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a
0004040    y   [   4   4   6   ]       _       S   e   e   l   a   m   b
0004060    d   a   p   r   e   s   e   n   t   ;  \r   p   r   o   d   L
0004100    i   n   k   A   r   r   a   y   [   4   4   7   ]       _    
0004120    S   e   e   l   a   m   b   d   a   a   b   s   e   n   t   ;
0004140   \r   p   r   o   d   L   i   n   k   A   r   r   a   y   [   4
0004160    4   8   ]       _       S   e   e   o   p   e   n   b   i   n
0004200    d   l   i   s   t   ;  \r   p   r   o   d   L   i   n   k   A
0004220    r   r   a   y   [   4   4   9   ]       _       S   e   e   o
0004240    p   e   n   e   m   p   t   y   ;  \r   p   r   o   d   L   i
0004260    n   k   A   r   r   a   y   [   4   5   0   ]       _       S
0004300    e   e   b   i   n   d   l   i   s   t   i   t   e   m   ;  \r
0004320    p   r   o   d   L   i   n   k   A   r   r   a   y   [   4   5
0004340    1   ]       _       S   e   e   b   i   n   d   l   i   s   t
0004360    l   i   s   t   ;  \r   p   r   o   d   L   i   n   k   A   r
0004400    r   a   y   [   4   5   2   ]       _       S   e   e   c   a
0004420    s   e   h   e   a   d   p   l   a   i   n   ;  \r   p   r   o
0004440    d   L   i   n   k   A   r   r   a   y   [   4   5   3   ]    
0004460    _       S   e   e   c   a   s   e   h   e   a   d   d   i   s
0004500    c   r   i   m   ;  \r   p   r   o   d   L   i   n   k   A   r
0004520    r   a   y   [   4   5   4   ]       _       S   e   e   s   c
0004540    o   p   e   a   ;  \r   p   r   o   d   L   i   n   k   A   r
0004560    r   a   y   [   4   5   5   ]       _       S   e   e   s   c
0004600    o   p   e   b   ;  \r   p   r   o   d   L   i   n   k   A   r
0004620    r   a   y   [   4   5   6   ]       _       S   e   e   e   n
0004640    a   b   l   e   s   a   ;  \r   p   r   o   d   L   i   n   k
0004660    A   r   r   a   y   [   4   5   7   ]       _       S   e   e
0004700    e   n   a   b   l   e   s   b   ;  \r   p   r   o   d   L   i
0004720    n   k   A   r   r   a   y   [   4   5   8   ]       _       S
0004740    e   e   e   n   a   b   l   e   s   c   ;  \r   p   r   o   d
0004760    L   i   n   k   A   r   r   a   y   [   4   5   9   ]       _
0005000        S   e   e   e   n   a   b   l   e   s   d   ;  \r   p   r
0005020    o   d   L   i   n   k   A   r   r   a   y   [   4   6   0   ]
0005040        _       S   e   e   e   n   a   b   l   e   s   e   ;  \r
0005060    p   r   o   d   L   i   n   k   A   r   r   a   y   [   4   6
0005100    1   ]       _       S   e   e   s   t   a   t   e   m   e   n
0005120    t   l   i   s   t   e   m   p   t   y   ;  \r   p   r   o   d
0005140    L   i   n   k   A   r   r   a   y   [   4   6   2   ]       _
0005160        S   e   e   s   t   a   t   e   m   e   n   t   l   i   s
0005200    t   b   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a
0005220    y   [   4   6   3   ]       _       S   e   e   s   t   a   t
0005240    e   m   e   n   t   l   i   s   t   c   ;  \r   p   r   o   d
0005260    L   i   n   k   A   r   r   a   y   [   4   6   4   ]       _
0005300        S   e   e   s   t   a   t   e   m   e   n   t   l   i   s
0005320    t   P   a   ;  \r   p   r   o   d   L   i   n   k   A   r   r
0005340    a   y   [   4   6   5   ]       _       S   e   e   s   t   a
0005360    t   e   m   e   n   t   l   i   s   t   P   b   ;  \r   p   r
0005400    o   d   L   i   n   k   A   r   r   a   y   [   4   6   6   ]
0005420        _       S   e   e   s   a   f   e   e   m   p   t   y   ;
0005440   \r   p   r   o   d   L   i   n   k   A   r   r   a   y   [   4
0005460    6   7   ]       _       S   e   e   s   a   f   e   n   o   ;
0005500   \r   p   r   o   d   L   i   n   k   A   r   r   a   y   [   4
0005520    6   8   ]       _       S   e   e   s   a   f   e   y   e   s
0005540    ;  \r   E   N   D   ;  \r  \r   S   e   e   t   y   p   e   l
0005560    i   s   t   a   :       P   R   O   C       [   n   o   d   e
0005600    s   :       L   I   S   T       O   F       R   E   F       A
0005620    N   Y   ,       p   o   s   i   t   i   o   n   :       I   N
0005640    T   ,       l   e   n   g   t   h   :       I   N   T   ]  \r
0005660   \t   R   E   T   U   R   N   S       [   L   I   S   T       O
0005700    F       R   E   F       A   N   Y   ]       =  \r   B   E   G
0005720    I   N  \r   s   t   a   c   k   :       L   I   S   T       O
0005740    F       R   E   F       A   N   Y       _       n   o   d   e
0005760    s   ;  \r   t   y   p   e   c   o   n   s   :       T   y   p
0006000    e   E   x   p   N   o   d   e   ;  \r   d   e   f   a   u   l
0006020    t   :       D   e   f   a   u   l   t   N   o   d   e   ;  \r
0006040    d   e   f   a   u   l   t       _       N   A   R   R   O   W
0006060    [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s
0006100    t   a   c   k       _       s   t   a   c   k   .   r   e   s
0006120    t   ;  \r   t   y   p   e   c   o   n   s       _       N   A
0006140    R   R   O   W   [   s   t   a   c   k   .   f   i   r   s   t
0006160    ]   ;  \r   s   t   a   c   k       _       s   t   a   c   k
0006200    .   r   e   s   t   ;  \r   s   t   a   c   k       _       C
0006220    O   N   S   [   B   u   i   l   d   T   y   p   e   L   i   s
0006240    t   o   n   e   P   r   o   d   N   o   d   e   [   p   o   s
0006260    i   t   i   o   n   ,       l   e   n   g   t   h   ,       B
0006300    u   i   l   d   T   y   p   e   I   t   e   m   P   r   o   d
0006320    N   o   d   e   [   t   y   p   e   c   o   n   s   .   p   o
0006340    s   i   t   i   o   n   ,       d   e   f   a   u   l   t   .
0006360    p   o   s   i   t   i   o   n       +       d   e   f   a   u
0006400    l   t   .   l   e   n   g   t   h       -       t   y   p   e
0006420    c   o   n   s   .   p   o   s   i   t   i   o   n   ,       t
0006440    y   p   e   c   o   n   s   ,       d   e   f   a   u   l   t
0006460    ]   ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U
0006500    R   N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r
0006520   \r   S   e   e   t   y   p   e   l   i   s   t   b   :       P
0006540    R   O   C       [   n   o   d   e   s   :       L   I   S   T
0006560        O   F       R   E   F       A   N   Y   ,       p   o   s
0006600    i   t   i   o   n   :       I   N   T   ,       l   e   n   g
0006620    t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N
0006640    S       [   L   I   S   T       O   F       R   E   F       A
0006660    N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c
0006700    k   :       L   I   S   T       O   F       R   E   F       A
0006720    N   Y       _       n   o   d   e   s   ;  \r   t   y   p   e
0006740    i   d   :       T   y   p   e   I   d   N   o   d   e   ;  \r
0006760    d   e   f   a   u   l   t   :       D   e   f   a   u   l   t
0007000    N   o   d   e   ;  \r   d   e   f   a   u   l   t       _    
0007020    N   A   R   R   O   W   [   s   t   a   c   k   .   f   i   r
0007040    s   t   ]   ;  \r   s   t   a   c   k       _       s   t   a
0007060    c   k   .   r   e   s   t   ;  \r   t   y   p   e   i   d    
0007100    _       N   A   R   R   O   W   [   s   t   a   c   k   .   f
0007120    i   r   s   t   ]   ;  \r   s   t   a   c   k       _       s
0007140    t   a   c   k   .   r   e   s   t   ;  \r   s   t   a   c   k
0007160        _       C   O   N   S   [   B   u   i   l   d   T   y   p
0007200    e   L   i   s   t   o   n   e   P   r   o   d   N   o   d   e
0007220    [   p   o   s   i   t   i   o   n   ,       l   e   n   g   t
0007240    h   ,       B   u   i   l   d   T   y   p   e   I   t   e   m
0007260    P   r   o   d   N   o   d   e   [   t   y   p   e   i   d   .
0007300    p   o   s   i   t   i   o   n   ,       d   e   f   a   u   l
0007320    t   .   p   o   s   i   t   i   o   n       +       d   e   f
0007340    a   u   l   t   .   l   e   n   g   t   h       -       t   y
0007360    p   e   i   d   .   p   o   s   i   t   i   o   n   ,       B
0007400    u   i   l   d   T   y   p   e   E   x   p   t   y   p   e   i
0007420    d   P   r   o   d   N   o   d   e   [   t   y   p   e   i   d
0007440    .   p   o   s   i   t   i   o   n   ,       t   y   p   e   i
0007460    d   .   l   e   n   g   t   h   ,       t   y   p   e   i   d
0007500    ]   ,       d   e   f   a   u   l   t   ]   ]   ,       s   t
0007520    a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t
0007540    a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   t   y
0007560    p   e   l   i   s   t   c   :       P   R   O   C       [   n
0007600    o   d   e   s   :       L   I   S   T       O   F       R   E
0007620    F       A   N   Y   ,       p   o   s   i   t   i   o   n   :
0007640        I   N   T   ,       l   e   n   g   t   h   :       I   N
0007660    T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I   S
0007700    T       O   F       R   E   F       A   N   Y   ]       =  \r
0007720    B   E   G   I   N  \r   s   t   a   c   k   :       L   I   S
0007740    T       O   F       R   E   F       A   N   Y       _       n
0007760    o   d   e   s   ;  \r   I   d   :       I   d   N   o   d   e
0010000    ;  \r   I   d       _       N   A   R   R   O   W   [   s   t
0010020    a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c
0010040    k       _       s   t   a   c   k   .   r   e   s   t   ;  \r
0010060    s   t   a   c   k       _       C   O   N   S   [   B   u   i
0010100    l   d   T   y   p   e   L   i   s   t   o   n   e   P   r   o
0010120    d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,    
0010140    l   e   n   g   t   h   ,       B   u   i   l   d   T   y   p
0010160    e   I   t   e   m   P   r   o   d   N   o   d   e   [   I   d
0010200    .   p   o   s   i   t   i   o   n   ,       I   d   .   p   o
0010220    s   i   t   i   o   n       +       I   d   .   l   e   n   g
0010240    t   h       +       I   d   .   p   o   s   i   t   i   o   n
0010260        +       I   d   .   l   e   n   g   t   h       -       I
0010300    d   .   p   o   s   i   t   i   o   n       -       I   d   .
0010320    l   e   n   g   t   h       -       I   d   .   p   o   s   i
0010340    t   i   o   n   ,       B   u   i   l   d   T   y   p   e   E
0010360    x   p   t   y   p   e   i   d   P   r   o   d   N   o   d   e
0010400    [   I   d   .   p   o   s   i   t   i   o   n   ,       I   d
0010420    .   l   e   n   g   t   h   ,       B   u   i   l   d   T   y
0010440    p   e   I   d   i   d   P   r   o   d   N   o   d   e   [   I
0010460    d   .   p   o   s   i   t   i   o   n   ,       I   d   .   l
0010500    e   n   g   t   h   ,       I   d   ]   ]   ,       B   u   i
0010520    l   d   D   e   f   a   u   l   t   e   m   p   t   y   P   r
0010540    o   d   N   o   d   e   [   I   d   .   p   o   s   i   t   i
0010560    o   n       +       I   d   .   l   e   n   g   t   h   ,    
0010600    I   d   .   p   o   s   i   t   i   o   n       +       I   d
0010620    .   l   e   n   g   t   h       -       I   d   .   p   o   s
0010640    i   t   i   o   n       -       I   d   .   l   e   n   g   t
0010660    h   ]   ]   ]   ,       s   t   a   c   k   ]   ;  \r   R   E
0010700    T   U   R   N       [   s   t   a   c   k   ]  \r   E   N   D
0010720    ;  \r  \r   S   e   e   t   y   p   e   l   i   s   t   d   :
0010740        P   R   O   C       [   n   o   d   e   s   :       L   I
0010760    S   T       O   F       R   E   F       A   N   Y   ,       p
0011000    o   s   i   t   i   o   n   :       I   N   T   ,       l   e
0011020    n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U
0011040    R   N   S       [   L   I   S   T       O   F       R   E   F
0011060        A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t
0011100    a   c   k   :       L   I   S   T       O   F       R   E   F
0011120        A   N   Y       _       n   o   d   e   s   ;  \r   I   d
0011140    :       I   d   N   o   d   e   ;  \r   d   e   f   a   u   l
0011160    t   o   p   t   :       D   e   f   a   u   l   t   N   o   d
0011200    e   ;  \r   d   e   f   a   u   l   t   o   p   t       _    
0011220    N   A   R   R   O   W   [   s   t   a   c   k   .   f   i   r
0011240    s   t   ]   ;  \r   s   t   a   c   k       _       s   t   a
0011260    c   k   .   r   e   s   t   ;  \r   I   d       _       N   A
0011300    R   R   O   W   [   s   t   a   c   k   .   f   i   r   s   t
0011320    ]   ;  \r   s   t   a   c   k       _       s   t   a   c   k
0011340    .   r   e   s   t   ;  \r   s   t   a   c   k       _       C
0011360    O   N   S   [   B   u   i   l   d   T   y   p   e   L   i   s
0011400    t   o   n   e   P   r   o   d   N   o   d   e   [   p   o   s
0011420    i   t   i   o   n   ,       l   e   n   g   t   h   ,       B
0011440    u   i   l   d   T   y   p   e   I   t   e   m   P   r   o   d
0011460    N   o   d   e   [   I   d   .   p   o   s   i   t   i   o   n
0011500    ,       d   e   f   a   u   l   t   o   p   t   .   p   o   s
0011520    i   t   i   o   n       +       d   e   f   a   u   l   t   o
0011540    p   t   .   l   e   n   g   t   h       -       I   d   .   p
0011560    o   s   i   t   i   o   n   ,       B   u   i   l   d   T   y
0011600    p   e   E   x   p   t   y   p   e   i   d   P   r   o   d   N
0011620    o   d   e   [   I   d   .   p   o   s   i   t   i   o   n   ,
0011640        I   d   .   l   e   n   g   t   h   ,       B   u   i   l
0011660    d   T   y   p   e   I   d   i   d   P   r   o   d   N   o   d
0011700    e   [   I   d   .   p   o   s   i   t   i   o   n   ,       I
0011720    d   .   l   e   n   g   t   h   ,       I   d   ]   ]   ,    
0011740    d   e   f   a   u   l   t   o   p   t   ]   ]   ,       s   t
0011760    a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t
0012000    a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   t   y
0012020    p   e   l   i   s   t   e   :       P   R   O   C       [   n
0012040    o   d   e   s   :       L   I   S   T       O   F       R   E
0012060    F       A   N   Y   ,       p   o   s   i   t   i   o   n   :
0012100        I   N   T   ,       l   e   n   g   t   h   :       I   N
0012120    T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I   S
0012140    T       O   F       R   E   F       A   N   Y   ]       =  \r
0012160    B   E   G   I   N  \r   s   t   a   c   k   :       L   I   S
0012200    T       O   F       R   E   F       A   N   Y       _       n
0012220    o   d   e   s   ;  \r   t   y   p   e   c   o   n   s   :    
0012240    T   y   p   e   E   x   p   N   o   d   e   ;  \r   d   e   f
0012260    a   u   l   t   :       D   e   f   a   u   l   t   N   o   d
0012300    e   ;  \r   t   y   p   e   l   i   s   t   :       T   y   p
0012320    e   L   i   s   t   N   o   d   e   ;  \r   t   y   p   e   l
0012340    i   s   t       _       N   A   R   R   O   W   [   s   t   a
0012360    c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k
0012400        _       s   t   a   c   k   .   r   e   s   t   ;  \r   d
0012420    e   f   a   u   l   t       _       N   A   R   R   O   W   [
0012440    s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t
0012460    a   c   k       _       s   t   a   c   k   .   r   e   s   t
0012500    ;  \r   t   y   p   e   c   o   n   s       _       N   A   R
0012520    R   O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]
0012540    ;  \r   s   t   a   c   k       _       s   t   a   c   k   .
0012560    r   e   s   t   ;  \r   s   t   a   c   k       _       C   O
0012600    N   S   [   B   u   i   l   d   T   y   p   e   L   i   s   t
0012620    m   a   n   y   P   r   o   d   N   o   d   e   [   p   o   s
0012640    i   t   i   o   n   ,       l   e   n   g   t   h   ,       B
0012660    u   i   l   d   T   y   p   e   L   i   s   t   o   n   e   P
0012700    r   o   d   N   o   d   e   [   t   y   p   e   c   o   n   s
0012720    .   p   o   s   i   t   i   o   n   ,       d   e   f   a   u
0012740    l   t   .   p   o   s   i   t   i   o   n       +       d   e
0012760    f   a   u   l   t   .   l   e   n   g   t   h       -       t
0013000    y   p   e   c   o   n   s   .   p   o   s   i   t   i   o   n
0013020    ,       B   u   i   l   d   T   y   p   e   I   t   e   m   P
0013040    r   o   d   N   o   d   e   [   t   y   p   e   c   o   n   s
0013060    .   p   o   s   i   t   i   o   n   ,       d   e   f   a   u
0013100    l   t   .   p   o   s   i   t   i   o   n       +       d   e
0013120    f   a   u   l   t   .   l   e   n   g   t   h       -       t
0013140    y   p   e   c   o   n   s   .   p   o   s   i   t   i   o   n
0013160    ,       t   y   p   e   c   o   n   s   ,       d   e   f   a
0013200    u   l   t   ]   ]   ,       t   y   p   e   l   i   s   t   ]
0013220    ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N
0013240        [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S
0013260    e   e   t   y   p   e   l   i   s   t   f   :       P   R   O
0013300    C       [   n   o   d   e   s   :       L   I   S   T       O
0013320    F       R   E   F       A   N   Y   ,       p   o   s   i   t
0013340    i   o   n   :       I   N   T   ,       l   e   n   g   t   h
0013360    :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S    
0013400    [   L   I   S   T       O   F       R   E   F       A   N   Y
0013420    ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k   :
0013440        L   I   S   T       O   F       R   E   F       A   N   Y
0013460        _       n   o   d   e   s   ;  \r   t   y   p   e   i   d
0013500    :       T   y   p   e   I   d   N   o   d   e   ;  \r   d   e
0013520    f   a   u   l   t   :       D   e   f   a   u   l   t   N   o
0013540    d   e   ;  \r   t   y   p   e   l   i   s   t   :       T   y
0013560    p   e   L   i   s   t   N   o   d   e   ;  \r   t   y   p   e
0013600    l   i   s   t       _       N   A   R   R   O   W   [   s   t
0013620    a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c
0013640    k       _       s   t   a   c   k   .   r   e   s   t   ;  \r
0013660    d   e   f   a   u   l   t       _       N   A   R   R   O   W
0013700    [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s
0013720    t   a   c   k       _       s   t   a   c   k   .   r   e   s
0013740    t   ;  \r   t   y   p   e   i   d       _       N   A   R   R
0013760    O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]   ;
0014000   \r   s   t   a   c   k       _       s   t   a   c   k   .   r
0014020    e   s   t   ;  \r   s   t   a   c   k       _       C   O   N
0014040    S   [   B   u   i   l   d   T   y   p   e   L   i   s   t   m
0014060    a   n   y   P   r   o   d   N   o   d   e   [   p   o   s   i
0014100    t   i   o   n   ,       l   e   n   g   t   h   ,       B   u
0014120    i   l   d   T   y   p   e   L   i   s   t   o   n   e   P   r
0014140    o   d   N   o   d   e   [   t   y   p   e   i   d   .   p   o
0014160    s   i   t   i   o   n   ,       d   e   f   a   u   l   t   .
0014200    p   o   s   i   t   i   o   n       +       d   e   f   a   u
0014220    l   t   .   l   e   n   g   t   h       -       t   y   p   e
0014240    i   d   .   p   o   s   i   t   i   o   n   ,       B   u   i
0014260    l   d   T   y   p   e   I   t   e   m   P   r   o   d   N   o
0014300    d   e   [   t   y   p   e   i   d   .   p   o   s   i   t   i
0014320    o   n   ,       d   e   f   a   u   l   t   .   p   o   s   i
0014340    t   i   o   n       +       d   e   f   a   u   l   t   .   l
0014360    e   n   g   t   h       -       t   y   p   e   i   d   .   p
0014400    o   s   i   t   i   o   n   ,       B   u   i   l   d   T   y
0014420    p   e   E   x   p   t   y   p   e   i   d   P   r   o   d   N
0014440    o   d   e   [   t   y   p   e   i   d   .   p   o   s   i   t
0014460    i   o   n   ,       t   y   p   e   i   d   .   l   e   n   g
0014500    t   h   ,       t   y   p   e   i   d   ]   ,       d   e   f
0014520    a   u   l   t   ]   ]   ,       t   y   p   e   l   i   s   t
0014540    ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R
0014560    N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r
0014600    S   e   e   t   y   p   e   l   i   s   t   g   :       P   R
0014620    O   C       [   n   o   d   e   s   :       L   I   S   T    
0014640    O   F       R   E   F       A   N   Y   ,       p   o   s   i
0014660    t   i   o   n   :       I   N   T   ,       l   e   n   g   t
0014700    h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S
0014720        [   L   I   S   T       O   F       R   E   F       A   N
0014740    Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k
0014760    :       L   I   S   T       O   F       R   E   F       A   N
0015000    Y       _       n   o   d   e   s   ;  \r   I   d   :       I
0015020    d   N   o   d   e   ;  \r   t   y   p   e   l   i   s   t   :
0015040        T   y   p   e   L   i   s   t   N   o   d   e   ;  \r   t
0015060    y   p   e   l   i   s   t       _       N   A   R   R   O   W
0015100    [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s
0015120    t   a   c   k       _       s   t   a   c   k   .   r   e   s
0015140    t   ;  \r   I   d       _       N   A   R   R   O   W   [   s
0015160    t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a
0015200    c   k       _       s   t   a   c   k   .   r   e   s   t   ;
0015220   \r   s   t   a   c   k       _       C   O   N   S   [   B   u
0015240    i   l   d   T   y   p   e   L   i   s   t   m   a   n   y   P
0015260    r   o   d   N   o   d   e   [   p   o   s   i   t   i   o   n
0015300    ,       l   e   n   g   t   h   ,       B   u   i   l   d   T
0015320    y   p   e   L   i   s   t   o   n   e   P   r   o   d   N   o
0015340    d   e   [   I   d   .   p   o   s   i   t   i   o   n   ,    
0015360    I   d   .   p   o   s   i   t   i   o   n       +       I   d
0015400    .   l   e   n   g   t   h       +       I   d   .   p   o   s
0015420    i   t   i   o   n       +       I   d   .   l   e   n   g   t
0015440    h       -       I   d   .   p   o   s   i   t   i   o   n    
0015460    -       I   d   .   l   e   n   g   t   h       -       I   d
0015500    .   p   o   s   i   t   i   o   n   ,       B   u   i   l   d
0015520    T   y   p   e   I   t   e   m   P   r   o   d   N   o   d   e
0015540    [   I   d   .   p   o   s   i   t   i   o   n   ,       I   d
0015560    .   p   o   s   i   t   i   o   n       +       I   d   .   l
0015600    e   n   g   t   h       +       I   d   .   p   o   s   i   t
0015620    i   o   n       +       I   d   .   l   e   n   g   t   h    
0015640    -       I   d   .   p   o   s   i   t   i   o   n       -    
0015660    I   d   .   l   e   n   g   t   h       -       I   d   .   p
0015700    o   s   i   t   i   o   n   ,       B   u   i   l   d   T   y
0015720    p   e   E   x   p   t   y   p   e   i   d   P   r   o   d   N
0015740    o   d   e   [   I   d   .   p   o   s   i   t   i   o   n   ,
0015760        I   d   .   l   e   n   g   t   h   ,       B   u   i   l
0016000    d   T   y   p   e   I   d   i   d   P   r   o   d   N   o   d
0016020    e   [   I   d   .   p   o   s   i   t   i   o   n   ,       I
0016040    d   .   l   e   n   g   t   h   ,       I   d   ]   ]   ,    
0016060    B   u   i   l   d   D   e   f   a   u   l   t   e   m   p   t
0016100    y   P   r   o   d   N   o   d   e   [   I   d   .   p   o   s
0016120    i   t   i   o   n       +       I   d   .   l   e   n   g   t
0016140    h   ,       I   d   .   p   o   s   i   t   i   o   n       +
0016160        I   d   .   l   e   n   g   t   h       -       I   d   .
0016200    p   o   s   i   t   i   o   n       -       I   d   .   l   e
0016220    n   g   t   h   ]   ]   ]   ,       t   y   p   e   l   i   s
0016240    t   ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U
0016260    R   N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r
0016300   \r   S   e   e   t   y   p   e   l   i   s   t   h   :       P
0016320    R   O   C       [   n   o   d   e   s   :       L   I   S   T
0016340        O   F       R   E   F       A   N   Y   ,       p   o   s
0016360    i   t   i   o   n   :       I   N   T   ,       l   e   n   g
0016400    t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N
0016420    S       [   L   I   S   T       O   F       R   E   F       A
0016440    N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c
0016460    k   :       L   I   S   T       O   F       R   E   F       A
0016500    N   Y       _       n   o   d   e   s   ;  \r   I   d   :    
0016520    I   d   N   o   d   e   ;  \r   d   e   f   a   u   l   t   o
0016540    p   t   :       D   e   f   a   u   l   t   N   o   d   e   ;
0016560   \r   t   y   p   e   l   i   s   t   :       T   y   p   e   L
0016600    i   s   t   N   o   d   e   ;  \r   t   y   p   e   l   i   s
0016620    t       _       N   A   R   R   O   W   [   s   t   a   c   k
0016640    .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _
0016660        s   t   a   c   k   .   r   e   s   t   ;  \r   d   e   f
0016700    a   u   l   t   o   p   t       _       N   A   R   R   O   W
0016720    [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s
0016740    t   a   c   k       _       s   t   a   c   k   .   r   e   s
0016760    t   ;  \r   I   d       _       N   A   R   R   O   W   [   s
0017000    t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a
0017020    c   k       _       s   t   a   c   k   .   r   e   s   t   ;
0017040   \r   s   t   a   c   k       _       C   O   N   S   [   B   u
0017060    i   l   d   T   y   p   e   L   i   s   t   m   a   n   y   P
0017100    r   o   d   N   o   d   e   [   p   o   s   i   t   i   o   n
0017120    ,       l   e   n   g   t   h   ,       B   u   i   l   d   T
0017140    y   p   e   L   i   s   t   o   n   e   P   r   o   d   N   o
0017160    d   e   [   I   d   .   p   o   s   i   t   i   o   n   ,    
0017200    d   e   f   a   u   l   t   o   p   t   .   p   o   s   i   t
0017220    i   o   n       +       d   e   f   a   u   l   t   o   p   t
0017240    .   l   e   n   g   t   h       -       I   d   .   p   o   s
0017260    i   t   i   o   n   ,       B   u   i   l   d   T   y   p   e
0017300    I   t   e   m   P   r   o   d   N   o   d   e   [   I   d   .
0017320    p   o   s   i   t   i   o   n   ,       d   e   f   a   u   l
0017340    t   o   p   t   .   p   o   s   i   t   i   o   n       +    
0017360    d   e   f   a   u   l   t   o   p   t   .   l   e   n   g   t
0017400    h       -       I   d   .   p   o   s   i   t   i   o   n   ,
0017420        B   u   i   l   d   T   y   p   e   E   x   p   t   y   p
0017440    e   i   d   P   r   o   d   N   o   d   e   [   I   d   .   p
0017460    o   s   i   t   i   o   n   ,       I   d   .   l   e   n   g
0017500    t   h   ,       B   u   i   l   d   T   y   p   e   I   d   i
0017520    d   P   r   o   d   N   o   d   e   [   I   d   .   p   o   s
0017540    i   t   i   o   n   ,       I   d   .   l   e   n   g   t   h
0017560    ,       I   d   ]   ]   ,       d   e   f   a   u   l   t   o
0017600    p   t   ]   ]   ,       t   y   p   e   l   i   s   t   ]   ,
0017620        s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N    
0017640    [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e
0017660    e   m   o   d   u   l   e   l   i   s   t   a   :       P   R
0017700    O   C       [   n   o   d   e   s   :       L   I   S   T    
0017720    O   F       R   E   F       A   N   Y   ,       p   o   s   i
0017740    t   i   o   n   :       I   N   T   ,       l   e   n   g   t
0017760    h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S
0020000        [   L   I   S   T       O   F       R   E   F       A   N
0020020    Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k
0020040    :       L   I   S   T       O   F       R   E   F       A   N
0020060    Y       _       n   o   d   e   s   ;  \r   m   o   d   u   l
0020100    e   i   t   e   m   :       M   o   d   u   l   e   I   t   e
0020120    m   N   o   d   e   ;  \r   m   o   d   u   l   e   i   t   e
0020140    m       _       N   A   R   R   O   W   [   s   t   a   c   k
0020160    .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _
0020200        s   t   a   c   k   .   r   e   s   t   ;  \r   s   t   a
0020220    c   k       _       C   O   N   S   [   B   u   i   l   d   M
0020240    o   d   u   l   e   L   i   s   t   m   o   r   e   P   r   o
0020260    d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,    
0020300    l   e   n   g   t   h   ,       B   u   i   l   d   M   o   d
0020320    u   l   e   L   i   s   t   e   m   p   t   y   P   r   o   d
0020340    N   o   d   e   [   m   o   d   u   l   e   i   t   e   m   .
0020360    p   o   s   i   t   i   o   n   ,       m   o   d   u   l   e
0020400    i   t   e   m   .   p   o   s   i   t   i   o   n       -    
0020420    m   o   d   u   l   e   i   t   e   m   .   l   e   n   g   t
0020440    h   ]   ,       m   o   d   u   l   e   i   t   e   m   ]   ,
0020460        s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N    
0020500    [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e
0020520    e   m   o   d   u   l   e   l   i   s   t   b   :       P   R
0020540    O   C       [   n   o   d   e   s   :       L   I   S   T    
0020560    O   F       R   E   F       A   N   Y   ,       p   o   s   i
0020600    t   i   o   n   :       I   N   T   ,       l   e   n   g   t
0020620    h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S
0020640        [   L   I   S   T       O   F       R   E   F       A   N
0020660    Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k
0020700    :       L   I   S   T       O   F       R   E   F       A   N
0020720    Y       _       n   o   d   e   s   ;  \r   m   o   d   u   l
0020740    e   l   i   s   t   :       M   o   d   u   l   e   L   i   s
0020760    t   N   o   d   e   ;  \r   m   o   d   u   l   e   i   t   e
0021000    m   :       M   o   d   u   l   e   I   t   e   m   N   o   d
0021020    e   ;  \r   m   o   d   u   l   e   i   t   e   m       _    
0021040    N   A   R   R   O   W   [   s   t   a   c   k   .   f   i   r
0021060    s   t   ]   ;  \r   s   t   a   c   k       _       s   t   a
0021100    c   k   .   r   e   s   t   ;  \r   m   o   d   u   l   e   l
0021120    i   s   t       _       N   A   R   R   O   W   [   s   t   a
0021140    c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k
0021160        _       s   t   a   c   k   .   r   e   s   t   ;  \r   s
0021200    t   a   c   k       _       C   O   N   S   [   B   u   i   l
0021220    d   M   o   d   u   l   e   L   i   s   t   m   o   r   e   P
0021240    r   o   d   N   o   d   e   [   p   o   s   i   t   i   o   n
0021260    ,       l   e   n   g   t   h   ,       m   o   d   u   l   e
0021300    l   i   s   t   ,       m   o   d   u   l   e   i   t   e   m
0021320    ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R
0021340    N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r
0021360    S   e   e   m   o   d   u   l   e   i   t   e   m   o   n   e
0021400    :       P   R   O   C       [   n   o   d   e   s   :       L
0021420    I   S   T       O   F       R   E   F       A   N   Y   ,    
0021440    p   o   s   i   t   i   o   n   :       I   N   T   ,       l
0021460    e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T
0021500    U   R   N   S       [   L   I   S   T       O   F       R   E
0021520    F       A   N   Y   ]       =  \r   B   E   G   I   N  \r   s
0021540    t   a   c   k   :       L   I   S   T       O   F       R   E
0021560    F       A   N   Y       _       n   o   d   e   s   ;  \r   I
0021600    d   :       I   d   N   o   d   e   ;  \r   I   d       _    
0021620    N   A   R   R   O   W   [   s   t   a   c   k   .   f   i   r
0021640    s   t   ]   ;  \r   s   t   a   c   k       _       s   t   a
0021660    c   k   .   r   e   s   t   ;  \r   s   t   a   c   k       _
0021700        C   O   N   S   [   B   u   i   l   d   M   o   d   u   l
0021720    e   I   t   e   m   o   n   e   P   r   o   d   N   o   d   e
0021740    [   p   o   s   i   t   i   o   n   ,       l   e   n   g   t
0021760    h   ,       I   d   ]   ,       s   t   a   c   k   ]   ;  \r
0022000    R   E   T   U   R   N       [   s   t   a   c   k   ]  \r   E
0022020    N   D   ;  \r  \r   S   e   e   m   o   d   u   l   e   i   t
0022040    e   m   t   w   o   :       P   R   O   C       [   n   o   d
0022060    e   s   :       L   I   S   T       O   F       R   E   F    
0022100    A   N   Y   ,       p   o   s   i   t   i   o   n   :       I
0022120    N   T   ,       l   e   n   g   t   h   :       I   N   T   ]
0022140   \r  \t   R   E   T   U   R   N   S       [   L   I   S   T    
0022160    O   F       R   E   F       A   N   Y   ]       =  \r   B   E
0022200    G   I   N  \r   s   t   a   c   k   :       L   I   S   T    
0022220    O   F       R   E   F       A   N   Y       _       n   o   d
0022240    e   s   ;  \r   I   d   r   e   c   o   r   d   :       I   d
0022260    N   o   d   e   ;  \r   I   d   t   y   p   e   :       I   d
0022300    N   o   d   e   ;  \r   I   d   t   y   p   e       _       N
0022320    A   R   R   O   W   [   s   t   a   c   k   .   f   i   r   s
0022340    t   ]   ;  \r   s   t   a   c   k       _       s   t   a   c
0022360    k   .   r   e   s   t   ;  \r   I   d   r   e   c   o   r   d
0022400        _       N   A   R   R   O   W   [   s   t   a   c   k   .
0022420    f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _    
0022440    s   t   a   c   k   .   r   e   s   t   ;  \r   s   t   a   c
0022460    k       _       C   O   N   S   [   B   u   i   l   d   M   o
0022500    d   u   l   e   I   t   e   m   t   w   o   P   r   o   d   N
0022520    o   d   e   [   p   o   s   i   t   i   o   n   ,       l   e
0022540    n   g   t   h   ,       I   d   r   e   c   o   r   d   ,    
0022560    I   d   t   y   p   e   ]   ,       s   t   a   c   k   ]   ;
0022600   \r   R   E   T   U   R   N       [   s   t   a   c   k   ]  \r
0022620    E   N   D   ;  \r  \r   S   e   e   t   i   l   d   e   a   :
0022640        P   R   O   C       [   n   o   d   e   s   :       L   I
0022660    S   T       O   F       R   E   F       A   N   Y   ,       p
0022700    o   s   i   t   i   o   n   :       I   N   T   ,       l   e
0022720    n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U
0022740    R   N   S       [   L   I   S   T       O   F       R   E   F
0022760        A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t
0023000    a   c   k   :       L   I   S   T       O   F       R   E   F
0023020        A   N   Y       _       n   o   d   e   s   ;  \r   s   t
0023040    a   c   k       _       C   O   N   S   [   B   u   i   l   d
0023060    J   u   n   k   P   r   o   d   N   o   d   e   [   p   o   s
0023100    i   t   i   o   n   ,       l   e   n   g   t   h   ]   ,    
0023120    s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [
0023140    s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e
0023160    t   i   l   d   e   b   :       P   R   O   C       [   n   o
0023200    d   e   s   :       L   I   S   T       O   F       R   E   F
0023220        A   N   Y   ,       p   o   s   i   t   i   o   n   :    
0023240    I   N   T   ,       l   e   n   g   t   h   :       I   N   T
0023260    ]  \r  \t   R   E   T   U   R   N   S       [   L   I   S   T
0023300        O   F       R   E   F       A   N   Y   ]       =  \r   B
0023320    E   G   I   N  \r   s   t   a   c   k   :       L   I   S   T
0023340        O   F       R   E   F       A   N   Y       _       n   o
0023360    d   e   s   ;  \r   s   t   a   c   k       _       C   O   N
0023400    S   [   B   u   i   l   d   J   u   n   k   P   r   o   d   N
0023420    o   d   e   [   p   o   s   i   t   i   o   n   ,       l   e
0023440    n   g   t   h   ]   ,       s   t   a   c   k   ]   ;  \r   R
0023460    E   T   U   R   N       [   s   t   a   c   k   ]  \r   E   N
0023500    D   ;  \r  \r   S   e   e   p   a   i   r   l   i   s   t   o
0023520    n   e   :       P   R   O   C       [   n   o   d   e   s   :
0023540        L   I   S   T       O   F       R   E   F       A   N   Y
0023560    ,       p   o   s   i   t   i   o   n   :       I   N   T   ,
0023600        l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R
0023620    E   T   U   R   N   S       [   L   I   S   T       O   F    
0023640    R   E   F       A   N   Y   ]       =  \r   B   E   G   I   N
0023660   \r   s   t   a   c   k   :       L   I   S   T       O   F    
0023700    R   E   F       A   N   Y       _       n   o   d   e   s   ;
0023720   \r   p   a   i   r   i   t   e   m   :       P   a   i   r   I
0023740    t   e   m   N   o   d   e   ;  \r   p   a   i   r   i   t   e
0023760    m       _       N   A   R   R   O   W   [   s   t   a   c   k
0024000    .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _
0024020        s   t   a   c   k   .   r   e   s   t   ;  \r   s   t   a
0024040    c   k       _       C   O   N   S   [   B   u   i   l   d   P
0024060    a   i   r   L   i   s   t   o   n   e   P   r   o   d   N   o
0024100    d   e   [   p   o   s   i   t   i   o   n   ,       l   e   n
0024120    g   t   h   ,       p   a   i   r   i   t   e   m   ]   ,    
0024140    s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [
0024160    s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e
0024200    p   a   i   r   l   i   s   t   m   a   n   y   :       P   R
0024220    O   C       [   n   o   d   e   s   :       L   I   S   T    
0024240    O   F       R   E   F       A   N   Y   ,       p   o   s   i
0024260    t   i   o   n   :       I   N   T   ,       l   e   n   g   t
0024300    h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S
0024320        [   L   I   S   T       O   F       R   E   F       A   N
0024340    Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k
0024360    :       L   I   S   T       O   F       R   E   F       A   N
0024400    Y       _       n   o   d   e   s   ;  \r   p   a   i   r   l
0024420    i   s   t   :       P   a   i   r   L   i   s   t   N   o   d
0024440    e   ;  \r   p   a   i   r   i   t   e   m   :       P   a   i
0024460    r   I   t   e   m   N   o   d   e   ;  \r   p   a   i   r   i
0024500    t   e   m       _       N   A   R   R   O   W   [   s   t   a
0024520    c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k
0024540        _       s   t   a   c   k   .   r   e   s   t   ;  \r   p
0024560    a   i   r   l   i   s   t       _       N   A   R   R   O   W
0024600    [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s
0024620    t   a   c   k       _       s   t   a   c   k   .   r   e   s
0024640    t   ;  \r   s   t   a   c   k       _       C   O   N   S   [
0024660    B   u   i   l   d   P   a   i   r   L   i   s   t   m   a   n
0024700    y   P   r   o   d   N   o   d   e   [   p   o   s   i   t   i
0024720    o   n   ,       l   e   n   g   t   h   ,       p   a   i   r
0024740    l   i   s   t   ,       B   u   i   l   d   P   a   i   r   L
0024760    i   s   t   o   n   e   P   r   o   d   N   o   d   e   [   p
0025000    a   i   r   i   t   e   m   .   p   o   s   i   t   i   o   n
0025020    ,       p   a   i   r   i   t   e   m   .   l   e   n   g   t
0025040    h   ,       p   a   i   r   i   t   e   m   ]   ]   ,       s
0025060    t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s
0025100    t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   p
0025120    a   i   r   i   t   e   m   :       P   R   O   C       [   n
0025140    o   d   e   s   :       L   I   S   T       O   F       R   E
0025160    F       A   N   Y   ,       p   o   s   i   t   i   o   n   :
0025200        I   N   T   ,       l   e   n   g   t   h   :       I   N
0025220    T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I   S
0025240    T       O   F       R   E   F       A   N   Y   ]       =  \r
0025260    B   E   G   I   N  \r   s   t   a   c   k   :       L   I   S
0025300    T       O   F       R   E   F       A   N   Y       _       n
0025320    o   d   e   s   ;  \r   i   d   e   n   t   l   i   s   t   :
0025340        I   d   e   n   t   L   i   s   t   N   o   d   e   ;  \r
0025360    p   u   b   l   i   c   :       A   c   c   e   s   s   N   o
0025400    d   e   ;  \r   t   y   p   e   e   x   p   :       T   y   p
0025420    e   E   x   p   N   o   d   e   ;  \r   d   e   f   a   u   l
0025440    t   :       D   e   f   a   u   l   t   N   o   d   e   ;  \r
0025460    d   e   f   a   u   l   t       _       N   A   R   R   O   W
0025500    [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s
0025520    t   a   c   k       _       s   t   a   c   k   .   r   e   s
0025540    t   ;  \r   t   y   p   e   e   x   p       _       N   A   R
0025560    R   O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]
0025600    ;  \r   s   t   a   c   k       _       s   t   a   c   k   .
0025620    r   e   s   t   ;  \r   p   u   b   l   i   c       _       N
0025640    A   R   R   O   W   [   s   t   a   c   k   .   f   i   r   s
0025660    t   ]   ;  \r   s   t   a   c   k       _       s   t   a   c
0025700    k   .   r   e   s   t   ;  \r   i   d   e   n   t   l   i   s
0025720    t       _       N   A   R   R   O   W   [   s   t   a   c   k
0025740    .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _
0025760        s   t   a   c   k   .   r   e   s   t   ;  \r   s   t   a
0026000    c   k       _       C   O   N   S   [   B   u   i   l   d   P
0026020    a   i   r   I   t   e   m   P   r   o   d   N   o   d   e   [
0026040    p   o   s   i   t   i   o   n   ,       l   e   n   g   t   h
0026060    ,       i   d   e   n   t   l   i   s   t   ,       p   u   b
0026100    l   i   c   ,       t   y   p   e   e   x   p   ,       d   e
0026120    f   a   u   l   t   ]   ,       s   t   a   c   k   ]   ;  \r
0026140    R   E   T   U   R   N       [   s   t   a   c   k   ]  \r   E
0026160    N   D   ;  \r  \r   S   e   e   t   y   p   e   i   d   a   :
0026200        P   R   O   C       [   n   o   d   e   s   :       L   I
0026220    S   T       O   F       R   E   F       A   N   Y   ,       p
0026240    o   s   i   t   i   o   n   :       I   N   T   ,       l   e
0026260    n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U
0026300    R   N   S       [   L   I   S   T       O   F       R   E   F
0026320        A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t
0026340    a   c   k   :       L   I   S   T       O   F       R   E   F
0026360        A   N   Y       _       n   o   d   e   s   ;  \r   I   d
0026400    a   :       I   d   N   o   d   e   ;  \r   I   d   b   :    
0026420    I   d   N   o   d   e   ;  \r   I   d   b       _       N   A
0026440    R   R   O   W   [   s   t   a   c   k   .   f   i   r   s   t
0026460    ]   ;  \r   s   t   a   c   k       _       s   t   a   c   k
0026500    .   r   e   s   t   ;  \r   I   d   a       _       N   A   R
0026520    R   O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]
0026540    ;  \r   s   t   a   c   k       _       s   t   a   c   k   .
0026560    r   e   s   t   ;  \r   s   t   a   c   k       _       C   O
0026600    N   S   [   B   u   i   l   d   T   y   p   e   I   d   q   u
0026620    a   l   i   f   i   e   r   P   r   o   d   N   o   d   e   [
0026640    p   o   s   i   t   i   o   n   ,       l   e   n   g   t   h
0026660    ,       B   u   i   l   d   T   y   p   e   I   d   i   d   P
0026700    r   o   d   N   o   d   e   [   I   d   b   .   p   o   s   i
0026720    t   i   o   n   ,       I   d   b   .   l   e   n   g   t   h
0026740    ,       I   d   b   ]   ,       I   d   a   ]   ,       s   t
0026760    a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t
0027000    a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   t   y
0027020    p   e   i   d   b   :       P   R   O   C       [   n   o   d
0027040    e   s   :       L   I   S   T       O   F       R   E   F    
0027060    A   N   Y   ,       p   o   s   i   t   i   o   n   :       I
0027100    N   T   ,       l   e   n   g   t   h   :       I   N   T   ]
0027120   \r  \t   R   E   T   U   R   N   S       [   L   I   S   T    
0027140    O   F       R   E   F       A   N   Y   ]       =  \r   B   E
0027160    G   I   N  \r   s   t   a   c   k   :       L   I   S   T    
0027200    O   F       R   E   F       A   N   Y       _       n   o   d
0027220    e   s   ;  \r   I   d   :       I   d   N   o   d   e   ;  \r
0027240    t   y   p   e   i   d   :       T   y   p   e   I   d   N   o
0027260    d   e   ;  \r   t   y   p   e   i   d       _       N   A   R
0027300    R   O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]
0027320    ;  \r   s   t   a   c   k       _       s   t   a   c   k   .
0027340    r   e   s   t   ;  \r   I   d       _       N   A   R   R   O
0027360    W   [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r
0027400    s   t   a   c   k       _       s   t   a   c   k   .   r   e
0027420    s   t   ;  \r   s   t   a   c   k       _       C   O   N   S
0027440    [   B   u   i   l   d   T   y   p   e   I   d   q   u   a   l
0027460    i   f   i   e   r   P   r   o   d   N   o   d   e   [   p   o
0027500    s   i   t   i   o   n   ,       l   e   n   g   t   h   ,    
0027520    t   y   p   e   i   d   ,       I   d   ]   ,       s   t   a
0027540    c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a
0027560    c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   t   y   p
0027600    e   i   d   c   :       P   R   O   C       [   n   o   d   e
0027620    s   :       L   I   S   T       O   F       R   E   F       A
0027640    N   Y   ,       p   o   s   i   t   i   o   n   :       I   N
0027660    T   ,       l   e   n   g   t   h   :       I   N   T   ]  \r
0027700   \t   R   E   T   U   R   N   S       [   L   I   S   T       O
0027720    F       R   E   F       A   N   Y   ]       =  \r   B   E   G
0027740    I   N  \r   s   t   a   c   k   :       L   I   S   T       O
0027760    F       R   E   F       A   N   Y       _       n   o   d   e
0030000    s   ;  \r   t   y   p   e   i   d   P   :       T   y   p   e
0030020    I   d   N   o   d   e   ;  \r   t   y   p   e   i   d   P    
0030040    _       N   A   R   R   O   W   [   s   t   a   c   k   .   f
0030060    i   r   s   t   ]   ;  \r   s   t   a   c   k       _       s
0030100    t   a   c   k   .   r   e   s   t   ;  \r   s   t   a   c   k
0030120        _       C   O   N   S   [   t   y   p   e   i   d   P   ,
0030140        s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N    
0030160    [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e
0030200    e   t   y   p   e   i   d   P   a   :       P   R   O   C    
0030220    [   n   o   d   e   s   :       L   I   S   T       O   F    
0030240    R   E   F       A   N   Y   ,       p   o   s   i   t   i   o
0030260    n   :       I   N   T   ,       l   e   n   g   t   h   :    
0030300    I   N   T   ]  \r  \t   R   E   T   U   R   N   S       [   L
0030320    I   S   T       O   F       R   E   F       A   N   Y   ]    
0030340    =  \r   B   E   G   I   N  \r   s   t   a   c   k   :       L
0030360    I   S   T       O   F       R   E   F       A   N   Y       _
0030400        n   o   d   e   s   ;  \r   I   d   a   :       I   d   N
0030420    o   d   e   ;  \r   I   d   b   :       I   d   N   o   d   e
0030440    ;  \r   I   d   b       _       N   A   R   R   O   W   [   s
0030460    t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a
0030500    c   k       _       s   t   a   c   k   .   r   e   s   t   ;
0030520   \r   I   d   a       _       N   A   R   R   O   W   [   s   t
0030540    a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c
0030560    k       _       s   t   a   c   k   .   r   e   s   t   ;  \r
0030600    s   t   a   c   k       _       C   O   N   S   [   B   u   i
0030620    l   d   T   y   p   e   I   d   q   u   a   l   i   f   i   e
0030640    r   P   r   o   d   N   o   d   e   [   p   o   s   i   t   i
0030660    o   n   ,       l   e   n   g   t   h   ,       B   u   i   l
0030700    d   T   y   p   e   I   d   i   d   P   r   o   d   N   o   d
0030720    e   [   I   d   a   .   p   o   s   i   t   i   o   n   ,    
0030740    I   d   a   .   l   e   n   g   t   h   ,       I   d   a   ]
0030760    ,       I   d   b   ]   ,       s   t   a   c   k   ]   ;  \r
0031000    R   E   T   U   R   N       [   s   t   a   c   k   ]  \r   E
0031020    N   D   ;  \r  \r   S   e   e   t   y   p   e   i   d   P   b
0031040    :       P   R   O   C       [   n   o   d   e   s   :       L
0031060    I   S   T       O   F       R   E   F       A   N   Y   ,    
0031100    p   o   s   i   t   i   o   n   :       I   N   T   ,       l
0031120    e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T
0031140    U   R   N   S       [   L   I   S   T       O   F       R   E
0031160    F       A   N   Y   ]       =  \r   B   E   G   I   N  \r   s
0031200    t   a   c   k   :       L   I   S   T       O   F       R   E
0031220    F       A   N   Y       _       n   o   d   e   s   ;  \r   t
0031240    y   p   e   i   d   P   :       T   y   p   e   I   d   N   o
0031260    d   e   ;  \r   I   d   :       I   d   N   o   d   e   ;  \r
0031300    I   d       _       N   A   R   R   O   W   [   s   t   a   c
0031320    k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k    
0031340    _       s   t   a   c   k   .   r   e   s   t   ;  \r   t   y
0031360    p   e   i   d   P       _       N   A   R   R   O   W   [   s
0031400    t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a
0031420    c   k       _       s   t   a   c   k   .   r   e   s   t   ;
0031440   \r   s   t   a   c   k       _       C   O   N   S   [   B   u
0031460    i   l   d   T   y   p   e   I   d   q   u   a   l   i   f   i
0031500    e   r   P   r   o   d   N   o   d   e   [   p   o   s   i   t
0031520    i   o   n   ,       l   e   n   g   t   h   ,       t   y   p
0031540    e   i   d   P   ,       I   d   ]   ,       s   t   a   c   k
0031560    ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c   k
0031600    ]  \r   E   N   D   ;  \r  \r   S   e   e   e   x   p   l   i
0031620    s   t   o   r   d   e   r   l   i   s   t   :       P   R   O
0031640    C       [   n   o   d   e   s   :       L   I   S   T       O
0031660    F       R   E   F       A   N   Y   ,       p   o   s   i   t
0031700    i   o   n   :       I   N   T   ,       l   e   n   g   t   h
0031720    :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S    
0031740    [   L   I   S   T       O   F       R   E   F       A   N   Y
0031760    ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k   :
0032000        L   I   S   T       O   F       R   E   F       A   N   Y
0032020        _       n   o   d   e   s   ;  \r   o   r   d   e   r   l
0032040    i   s   t   :       O   r   d   e   r   L   i   s   t   N   o
0032060    d   e   ;  \r   o   r   d   e   r   l   i   s   t       _    
0032100    N   A   R   R   O   W   [   s   t   a   c   k   .   f   i   r
0032120    s   t   ]   ;  \r   s   t   a   c   k       _       s   t   a
0032140    c   k   .   r   e   s   t   ;  \r   s   t   a   c   k       _
0032160        C   O   N   S   [   B   u   i   l   d   E   x   p   L   i
0032200    s   t   o   r   d   e   r   l   i   s   t   P   r   o   d   N
0032220    o   d   e   [   p   o   s   i   t   i   o   n   ,       l   e
0032240    n   g   t   h   ,       o   r   d   e   r   l   i   s   t   ]
0032260    ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N
0032300        [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S
0032320    e   e   e   x   p   l   i   s   t   k   e   y   l   i   s   t
0032340    :       P   R   O   C       [   n   o   d   e   s   :       L
0032360    I   S   T       O   F       R   E   F       A   N   Y   ,    
0032400    p   o   s   i   t   i   o   n   :       I   N   T   ,       l
0032420    e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T
0032440    U   R   N   S       [   L   I   S   T       O   F       R   E
0032460    F       A   N   Y   ]       =  \r   B   E   G   I   N  \r   s
0032500    t   a   c   k   :       L   I   S   T       O   F       R   E
0032520    F       A   N   Y       _       n   o   d   e   s   ;  \r   k
0032540    e   y   l   i   s   t   :       K   e   y   L   i   s   t   N
0032560    o   d   e   ;  \r   k   e   y   l   i   s   t       _       N
0032600    A   R   R   O   W   [   s   t   a   c   k   .   f   i   r   s
0032620    t   ]   ;  \r   s   t   a   c   k       _       s   t   a   c
0032640    k   .   r   e   s   t   ;  \r   s   t   a   c   k       _    
0032660    C   O   N   S   [   B   u   i   l   d   E   x   p   L   i   s
0032700    t   k   e   y   l   i   s   t   P   r   o   d   N   o   d   e
0032720    [   p   o   s   i   t   i   o   n   ,       l   e   n   g   t
0032740    h   ,       k   e   y   l   i   s   t   ]   ,       s   t   a
0032760    c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a
0033000    c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   k   e   y
0033020    l   i   s   t   o   n   e   :       P   R   O   C       [   n
0033040    o   d   e   s   :       L   I   S   T       O   F       R   E
0033060    F       A   N   Y   ,       p   o   s   i   t   i   o   n   :
0033100        I   N   T   ,       l   e   n   g   t   h   :       I   N
0033120    T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I   S
0033140    T       O   F       R   E   F       A   N   Y   ]       =  \r
0033160    B   E   G   I   N  \r   s   t   a   c   k   :       L   I   S
0033200    T       O   F       R   E   F       A   N   Y       _       n
0033220    o   d   e   s   ;  \r   k   e   y   i   t   e   m   :       K
0033240    e   y   I   t   e   m   N   o   d   e   ;  \r   k   e   y   i
0033260    t   e   m       _       N   A   R   R   O   W   [   s   t   a
0033300    c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k
0033320        _       s   t   a   c   k   .   r   e   s   t   ;  \r   s
0033340    t   a   c   k       _       C   O   N   S   [   B   u   i   l
0033360    d   K   e   y   L   i   s   t   o   n   e   P   r   o   d   N
0033400    o   d   e   [   p   o   s   i   t   i   o   n   ,       l   e
0033420    n   g   t   h   ,       k   e   y   i   t   e   m   ]   ,    
0033440    s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [
0033460    s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e
0033500    k   e   y   l   i   s   t   m   o   r   e   :       P   R   O
0033520    C       [   n   o   d   e   s   :       L   I   S   T       O
0033540    F       R   E   F       A   N   Y   ,       p   o   s   i   t
0033560    i   o   n   :       I   N   T   ,       l   e   n   g   t   h
0033600    :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S    
0033620    [   L   I   S   T       O   F       R   E   F       A   N   Y
0033640    ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k   :
0033660        L   I   S   T       O   F       R   E   F       A   N   Y
0033700        _       n   o   d   e   s   ;  \r   k   e   y   l   i   s
0033720    t   :       K   e   y   L   i   s   t   N   o   d   e   ;  \r
0033740    k   e   y   i   t   e   m   :       K   e   y   I   t   e   m
0033760    N   o   d   e   ;  \r   k   e   y   i   t   e   m       _    
0034000    N   A   R   R   O   W   [   s   t   a   c   k   .   f   i   r
0034020    s   t   ]   ;  \r   s   t   a   c   k       _       s   t   a
0034040    c   k   .   r   e   s   t   ;  \r   k   e   y   l   i   s   t
0034060        _       N   A   R   R   O   W   [   s   t   a   c   k   .
0034100    f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _    
0034120    s   t   a   c   k   .   r   e   s   t   ;  \r   s   t   a   c
0034140    k       _       C   O   N   S   [   B   u   i   l   d   K   e
0034160    y   L   i   s   t   m   o   r   e   P   r   o   d   N   o   d
0034200    e   [   p   o   s   i   t   i   o   n   ,       l   e   n   g
0034220    t   h   ,       k   e   y   l   i   s   t   ,       k   e   y
0034240    i   t   e   m   ]   ,       s   t   a   c   k   ]   ;  \r   R
0034260    E   T   U   R   N       [   s   t   a   c   k   ]  \r   E   N
0034300    D   ;  \r  \r   S   e   e   k   e   y   i   t   e   m   a   :
0034320        P   R   O   C       [   n   o   d   e   s   :       L   I
0034340    S   T       O   F       R   E   F       A   N   Y   ,       p
0034360    o   s   i   t   i   o   n   :       I   N   T   ,       l   e
0034400    n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U
0034420    R   N   S       [   L   I   S   T       O   F       R   E   F
0034440        A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t
0034460    a   c   k   :       L   I   S   T       O   F       R   E   F
0034500        A   N   Y       _       n   o   d   e   s   ;  \r   I   d
0034520    :       I   d   N   o   d   e   ;  \r   o   p   t   e   x   p
0034540    :       O   p   t   E   x   p   N   o   d   e   ;  \r   o   p
0034560    t   e   x   p       _       N   A   R   R   O   W   [   s   t
0034600    a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c
0034620    k       _       s   t   a   c   k   .   r   e   s   t   ;  \r
0034640    I   d       _       N   A   R   R   O   W   [   s   t   a   c
0034660    k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k    
0034700    _       s   t   a   c   k   .   r   e   s   t   ;  \r   s   t
0034720    a   c   k       _       C   O   N   S   [   B   u   i   l   d
0034740    K   e   y   I   t   e   m   P   r   o   d   N   o   d   e   [
0034760    p   o   s   i   t   i   o   n   ,       l   e   n   g   t   h
0035000    ,       I   d   ,       o   p   t   e   x   p   ]   ,       s
0035020    t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s
0035040    t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   k
0035060    e   y   i   t   e   m   b   :       P   R   O   C       [   n
0035100    o   d   e   s   :       L   I   S   T       O   F       R   E
0035120    F       A   N   Y   ,       p   o   s   i   t   i   o   n   :
0035140        I   N   T   ,       l   e   n   g   t   h   :       I   N
0035160    T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I   S
0035200    T       O   F       R   E   F       A   N   Y   ]       =  \r
0035220    B   E   G   I   N  \r   s   t   a   c   k   :       L   I   S
0035240    T       O   F       R   E   F       A   N   Y       _       n
0035260    o   d   e   s   ;  \r   I   d   :       I   d   N   o   d   e
0035300    ;  \r   o   p   t   e   x   p   :       O   p   t   E   x   p
0035320    N   o   d   e   ;  \r   o   p   t   e   x   p       _       N
0035340    A   R   R   O   W   [   s   t   a   c   k   .   f   i   r   s
0035360    t   ]   ;  \r   s   t   a   c   k       _       s   t   a   c
0035400    k   .   r   e   s   t   ;  \r   I   d       _       N   A   R
0035420    R   O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]
0035440    ;  \r   s   t   a   c   k       _       s   t   a   c   k   .
0035460    r   e   s   t   ;  \r   s   t   a   c   k       _       C   O
0035500    N   S   [   B   u   i   l   d   K   e   y   I   t   e   m   P
0035520    r   o   d   N   o   d   e   [   p   o   s   i   t   i   o   n
0035540    ,       l   e   n   g   t   h   ,       I   d   ,       o   p
0035560    t   e   x   p   ]   ,       s   t   a   c   k   ]   ;  \r   R
0035600    E   T   U   R   N       [   s   t   a   c   k   ]  \r   E   N
0035620    D   ;  \r  \r   S   e   e   l   o   c   k   s   p   r   e   s
0035640    e   n   t   :       P   R   O   C       [   n   o   d   e   s
0035660    :       L   I   S   T       O   F       R   E   F       A   N
0035700    Y   ,       p   o   s   i   t   i   o   n   :       I   N   T
0035720    ,       l   e   n   g   t   h   :       I   N   T   ]  \r  \t
0035740    R   E   T   U   R   N   S       [   L   I   S   T       O   F
0035760        R   E   F       A   N   Y   ]       =  \r   B   E   G   I
0036000    N  \r   s   t   a   c   k   :       L   I   S   T       O   F
0036020        R   E   F       A   N   Y       _       n   o   d   e   s
0036040    ;  \r   p   r   i   m   a   r   y   :       E   x   p   N   o
0036060    d   e   ;  \r   l   a   m   b   d   a   :       L   a   m   b
0036100    d   a   N   o   d   e   ;  \r   l   a   m   b   d   a       _
0036120        N   A   R   R   O   W   [   s   t   a   c   k   .   f   i
0036140    r   s   t   ]   ;  \r   s   t   a   c   k       _       s   t
0036160    a   c   k   .   r   e   s   t   ;  \r   p   r   i   m   a   r
0036200    y       _       N   A   R   R   O   W   [   s   t   a   c   k
0036220    .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _
0036240        s   t   a   c   k   .   r   e   s   t   ;  \r   s   t   a
0036260    c   k       _       C   O   N   S   [   B   u   i   l   d   L
0036300    o   c   k   s   p   r   e   s   e   n   t   P   r   o   d   N
0036320    o   d   e   [   p   o   s   i   t   i   o   n   ,       l   e
0036340    n   g   t   h   ,       p   r   i   m   a   r   y   ,       l
0036360    a   m   b   d   a   ]   ,       s   t   a   c   k   ]   ;  \r
0036400    R   E   T   U   R   N       [   s   t   a   c   k   ]  \r   E
0036420    N   D   ;  \r  \r   S   e   e   l   o   c   k   s   a   b   s
0036440    e   n   t   :       P   R   O   C       [   n   o   d   e   s
0036460    :       L   I   S   T       O   F       R   E   F       A   N
0036500    Y   ,       p   o   s   i   t   i   o   n   :       I   N   T
0036520    ,       l   e   n   g   t   h   :       I   N   T   ]  \r  \t
0036540    R   E   T   U   R   N   S       [   L   I   S   T       O   F
0036560        R   E   F       A   N   Y   ]       =  \r   B   E   G   I
0036600    N  \r   s   t   a   c   k   :       L   I   S   T       O   F
0036620        R   E   F       A   N   Y       _       n   o   d   e   s
0036640    ;  \r   s   t   a   c   k       _       C   O   N   S   [   B
0036660    u   i   l   d   L   o   c   k   s   a   b   s   e   n   t   P
0036700    r   o   d   N   o   d   e   [   p   o   s   i   t   i   o   n
0036720    ,       l   e   n   g   t   h   ]   ,       s   t   a   c   k
0036740    ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c   k
0036760    ]  \r   E   N   D   ;  \r  \r   S   e   e   l   a   m   b   d
0037000    a   p   r   e   s   e   n   t   :       P   R   O   C       [
0037020    n   o   d   e   s   :       L   I   S   T       O   F       R
0037040    E   F       A   N   Y   ,       p   o   s   i   t   i   o   n
0037060    :       I   N   T   ,       l   e   n   g   t   h   :       I
0037100    N   T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I
0037120    S   T       O   F       R   E   F       A   N   Y   ]       =
0037140   \r   B   E   G   I   N  \r   s   t   a   c   k   :       L   I
0037160    S   T       O   F       R   E   F       A   N   Y       _    
0037200    n   o   d   e   s   ;  \r   i   d   e   n   t   :       I   d
0037220    e   n   t   N   o   d   e   ;  \r   t   y   p   e   e   x   p
0037240    :       T   y   p   e   E   x   p   N   o   d   e   ;  \r   t
0037260    y   p   e   e   x   p       _       N   A   R   R   O   W   [
0037300    s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t
0037320    a   c   k       _       s   t   a   c   k   .   r   e   s   t
0037340    ;  \r   i   d   e   n   t       _       N   A   R   R   O   W
0037360    [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s
0037400    t   a   c   k       _       s   t   a   c   k   .   r   e   s
0037420    t   ;  \r   s   t   a   c   k       _       C   O   N   S   [
0037440    B   u   i   l   d   L   a   m   b   d   a   p   r   e   s   e
0037460    n   t   P   r   o   d   N   o   d   e   [   p   o   s   i   t
0037500    i   o   n   ,       l   e   n   g   t   h   ,       i   d   e
0037520    n   t   ,       t   y   p   e   e   x   p   ]   ,       s   t
0037540    a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t
0037560    a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   l   a
0037600    m   b   d   a   a   b   s   e   n   t   :       P   R   O   C
0037620        [   n   o   d   e   s   :       L   I   S   T       O   F
0037640        R   E   F       A   N   Y   ,       p   o   s   i   t   i
0037660    o   n   :       I   N   T   ,       l   e   n   g   t   h   :
0037700        I   N   T   ]  \r  \t   R   E   T   U   R   N   S       [
0037720    L   I   S   T       O   F       R   E   F       A   N   Y   ]
0037740        =  \r   B   E   G   I   N  \r   s   t   a   c   k   :    
0037760    L   I   S   T       O   F       R   E   F       A   N   Y    
0040000    _       n   o   d   e   s   ;  \r   s   t   a   c   k       _
0040020        C   O   N   S   [   B   u   i   l   d   L   a   m   b   d
0040040    a   a   b   s   e   n   t   P   r   o   d   N   o   d   e   [
0040060    p   o   s   i   t   i   o   n   ,       l   e   n   g   t   h
0040100    ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R
0040120    N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r
0040140    S   e   e   o   p   e   n   b   i   n   d   l   i   s   t   :
0040160        P   R   O   C       [   n   o   d   e   s   :       L   I
0040200    S   T       O   F       R   E   F       A   N   Y   ,       p
0040220    o   s   i   t   i   o   n   :       I   N   T   ,       l   e
0040240    n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U
0040260    R   N   S       [   L   I   S   T       O   F       R   E   F
0040300        A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t
0040320    a   c   k   :       L   I   S   T       O   F       R   E   F
0040340        A   N   Y       _       n   o   d   e   s   ;  \r   b   i
0040360    n   d   l   i   s   t   :       B   i   n   d   L   i   s   t
0040400    N   o   d   e   ;  \r   b   i   n   d   l   i   s   t       _
0040420        N   A   R   R   O   W   [   s   t   a   c   k   .   f   i
0040440    r   s   t   ]   ;  \r   s   t   a   c   k       _       s   t
0040460    a   c   k   .   r   e   s   t   ;  \r   s   t   a   c   k    
0040500    _       C   O   N   S   [   b   i   n   d   l   i   s   t   ,
0040520        s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N    
0040540    [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e
0040560    e   o   p   e   n   e   m   p   t   y   :       P   R   O   C
0040600        [   n   o   d   e   s   :       L   I   S   T       O   F
0040620        R   E   F       A   N   Y   ,       p   o   s   i   t   i
0040640    o   n   :       I   N   T   ,       l   e   n   g   t   h   :
0040660        I   N   T   ]  \r  \t   R   E   T   U   R   N   S       [
0040700    L   I   S   T       O   F       R   E   F       A   N   Y   ]
0040720        =  \r   B   E   G   I   N  \r   s   t   a   c   k   :    
0040740    L   I   S   T       O   F       R   E   F       A   N   Y    
0040760    _       n   o   d   e   s   ;  \r   s   t   a   c   k       _
0041000        C   O   N   S   [   B   u   i   l   d   B   i   n   d   L
0041020    i   s   t   e   m   p   t   y   P   r   o   d   N   o   d   e
0041040    [   p   o   s   i   t   i   o   n   ,       l   e   n   g   t
0041060    h   ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U
0041100    R   N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r
0041120   \r   S   e   e   b   i   n   d   l   i   s   t   i   t   e   m
0041140    :       P   R   O   C       [   n   o   d   e   s   :       L
0041160    I   S   T       O   F       R   E   F       A   N   Y   ,    
0041200    p   o   s   i   t   i   o   n   :       I   N   T   ,       l
0041220    e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T
0041240    U   R   N   S       [   L   I   S   T       O   F       R   E
0041260    F       A   N   Y   ]       =  \r   B   E   G   I   N  \r   s
0041300    t   a   c   k   :       L   I   S   T       O   F       R   E
0041320    F       A   N   Y       _       n   o   d   e   s   ;  \r   b
0041340    i   n   d   i   t   e   m   :       B   i   n   d   I   t   e
0041360    m   N   o   d   e   ;  \r   b   i   n   d   i   t   e   m    
0041400    _       N   A   R   R   O   W   [   s   t   a   c   k   .   f
0041420    i   r   s   t   ]   ;  \r   s   t   a   c   k       _       s
0041440    t   a   c   k   .   r   e   s   t   ;  \r   s   t   a   c   k
0041460        _       C   O   N   S   [   B   u   i   l   d   B   i   n
0041500    d   L   i   s   t   m   o   r   e   P   r   o   d   N   o   d
0041520    e   [   p   o   s   i   t   i   o   n   ,       l   e   n   g
0041540    t   h   ,       B   u   i   l   d   B   i   n   d   L   i   s
0041560    t   e   m   p   t   y   P   r   o   d   N   o   d   e   [   b
0041600    i   n   d   i   t   e   m   .   p   o   s   i   t   i   o   n
0041620    ,       b   i   n   d   i   t   e   m   .   p   o   s   i   t
0041640    i   o   n       -       b   i   n   d   i   t   e   m   .   l
0041660    e   n   g   t   h   ]   ,       b   i   n   d   i   t   e   m
0041700    ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R
0041720    N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r
0041740    S   e   e   b   i   n   d   l   i   s   t   l   i   s   t   :
0041760        P   R   O   C       [   n   o   d   e   s   :       L   I
0042000    S   T       O   F       R   E   F       A   N   Y   ,       p
0042020    o   s   i   t   i   o   n   :       I   N   T   ,       l   e
0042040    n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U
0042060    R   N   S       [   L   I   S   T       O   F       R   E   F
0042100        A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t
0042120    a   c   k   :       L   I   S   T       O   F       R   E   F
0042140        A   N   Y       _       n   o   d   e   s   ;  \r   b   i
0042160    n   d   l   i   s   t   :       B   i   n   d   L   i   s   t
0042200    N   o   d   e   ;  \r   b   i   n   d   i   t   e   m   :    
0042220    B   i   n   d   I   t   e   m   N   o   d   e   ;  \r   b   i
0042240    n   d   i   t   e   m       _       N   A   R   R   O   W   [
0042260    s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t
0042300    a   c   k       _       s   t   a   c   k   .   r   e   s   t
0042320    ;  \r   b   i   n   d   l   i   s   t       _       N   A   R
0042340    R   O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]
0042360    ;  \r   s   t   a   c   k       _       s   t   a   c   k   .
0042400    r   e   s   t   ;  \r   s   t   a   c   k       _       C   O
0042420    N   S   [   B   u   i   l   d   B   i   n   d   L   i   s   t
0042440    m   o   r   e   P   r   o   d   N   o   d   e   [   p   o   s
0042460    i   t   i   o   n   ,       l   e   n   g   t   h   ,       b
0042500    i   n   d   l   i   s   t   ,       b   i   n   d   i   t   e
0042520    m   ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U
0042540    R   N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r
0042560   \r   S   e   e   c   a   s   e   h   e   a   d   p   l   a   i
0042600    n   :       P   R   O   C       [   n   o   d   e   s   :    
0042620    L   I   S   T       O   F       R   E   F       A   N   Y   ,
0042640        p   o   s   i   t   i   o   n   :       I   N   T   ,    
0042660    l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E
0042700    T   U   R   N   S       [   L   I   S   T       O   F       R
0042720    E   F       A   N   Y   ]       =  \r   B   E   G   I   N  \r
0042740    s   t   a   c   k   :       L   I   S   T       O   F       R
0042760    E   F       A   N   Y       _       n   o   d   e   s   ;  \r
0043000    e   x   p   :       E   x   p   N   o   d   e   ;  \r   e   x
0043020    p       _       N   A   R   R   O   W   [   s   t   a   c   k
0043040    .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _
0043060        s   t   a   c   k   .   r   e   s   t   ;  \r   s   t   a
0043100    c   k       _       C   O   N   S   [   B   u   i   l   d   S
0043120    e   l   e   c   t   H   e   a   d   p   l   a   i   n   P   r
0043140    o   d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,
0043160        l   e   n   g   t   h   ,       e   x   p   ]   ,       s
0043200    t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s
0043220    t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   c
0043240    a   s   e   h   e   a   d   d   i   s   c   r   i   m   :    
0043260    P   R   O   C       [   n   o   d   e   s   :       L   I   S
0043300    T       O   F       R   E   F       A   N   Y   ,       p   o
0043320    s   i   t   i   o   n   :       I   N   T   ,       l   e   n
0043340    g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R
0043360    N   S       [   L   I   S   T       O   F       R   E   F    
0043400    A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a
0043420    c   k   :       L   I   S   T       O   F       R   E   F    
0043440    A   N   Y       _       n   o   d   e   s   ;  \r   b   i   n
0043460    d   i   t   e   m   :       B   i   n   d   I   t   e   m   N
0043500    o   d   e   ;  \r   o   p   t   e   x   p   :       O   p   t
0043520    E   x   p   N   o   d   e   ;  \r   o   p   t   e   x   p    
0043540    _       N   A   R   R   O   W   [   s   t   a   c   k   .   f
0043560    i   r   s   t   ]   ;  \r   s   t   a   c   k       _       s
0043600    t   a   c   k   .   r   e   s   t   ;  \r   b   i   n   d   i
0043620    t   e   m       _       N   A   R   R   O   W   [   s   t   a
0043640    c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k
0043660        _       s   t   a   c   k   .   r   e   s   t   ;  \r   s
0043700    t   a   c   k       _       C   O   N   S   [   B   u   i   l
0043720    d   S   e   l   e   c   t   H   e   a   d   d   i   s   c   r
0043740    i   m   i   n   a   t   i   n   g   P   r   o   d   N   o   d
0043760    e   [   p   o   s   i   t   i   o   n   ,       l   e   n   g
0044000    t   h   ,       b   i   n   d   i   t   e   m   ,       o   p
0044020    t   e   x   p   ]   ,       s   t   a   c   k   ]   ;  \r   R
0044040    E   T   U   R   N       [   s   t   a   c   k   ]  \r   E   N
0044060    D   ;  \r  \r   S   e   e   s   c   o   p   e   a   :       P
0044100    R   O   C       [   n   o   d   e   s   :       L   I   S   T
0044120        O   F       R   E   F       A   N   Y   ,       p   o   s
0044140    i   t   i   o   n   :       I   N   T   ,       l   e   n   g
0044160    t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N
0044200    S       [   L   I   S   T       O   F       R   E   F       A
0044220    N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c
0044240    k   :       L   I   S   T       O   F       R   E   F       A
0044260    N   Y       _       n   o   d   e   s   ;  \r   o   p   e   n
0044300    :       B   i   n   d   L   i   s   t   N   o   d   e   ;  \r
0044320    e   n   a   b   l   e   s   :       C   a   t   c   h   N   o
0044340    d   e   ;  \r   s   t   a   t   e   m   e   n   t   l   i   s
0044360    t   :       S   t   a   t   e   m   e   n   t   L   i   s   t
0044400    N   o   d   e   ;  \r   s   t   a   t   e   m   e   n   t   l
0044420    i   s   t       _       N   A   R   R   O   W   [   s   t   a
0044440    c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k
0044460        _       s   t   a   c   k   .   r   e   s   t   ;  \r   e
0044500    n   a   b   l   e   s       _       N   A   R   R   O   W   [
0044520    s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t
0044540    a   c   k       _       s   t   a   c   k   .   r   e   s   t
0044560    ;  \r   o   p   e   n       _       N   A   R   R   O   W   [
0044600    s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t
0044620    a   c   k       _       s   t   a   c   k   .   r   e   s   t
0044640    ;  \r   s   t   a   c   k       _       C   O   N   S   [   B
0044660    u   i   l   d   S   c   o   p   e   P   r   o   d   N   o   d
0044700    e   [   p   o   s   i   t   i   o   n   ,       l   e   n   g
0044720    t   h   ,       o   p   e   n   ,       e   n   a   b   l   e
0044740    s   ,       B   u   i   l   d   O   p   t   D   e   c   L   i
0044760    s   t   a   b   s   e   n   t   P   r   o   d   N   o   d   e
0045000    [   s   t   a   t   e   m   e   n   t   l   i   s   t   .   p
0045020    o   s   i   t   i   o   n   ,       s   t   a   t   e   m   e
0045040    n   t   l   i   s   t   .   p   o   s   i   t   i   o   n    
0045060    -       s   t   a   t   e   m   e   n   t   l   i   s   t   .
0045100    l   e   n   g   t   h   ]   ,       s   t   a   t   e   m   e
0045120    n   t   l   i   s   t   ]   ,       s   t   a   c   k   ]   ;
0045140   \r   R   E   T   U   R   N       [   s   t   a   c   k   ]  \r
0045160    E   N   D   ;  \r  \r   S   e   e   s   c   o   p   e   b   :
0045200        P   R   O   C       [   n   o   d   e   s   :       L   I
0045220    S   T       O   F       R   E   F       A   N   Y   ,       p
0045240    o   s   i   t   i   o   n   :       I   N   T   ,       l   e
0045260    n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U
0045300    R   N   S       [   L   I   S   T       O   F       R   E   F
0045320        A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t
0045340    a   c   k   :       L   I   S   T       O   F       R   E   F
0045360        A   N   Y       _       n   o   d   e   s   ;  \r   o   p
0045400    e   n   :       B   i   n   d   L   i   s   t   N   o   d   e
0045420    ;  \r   e   n   a   b   l   e   s   :       C   a   t   c   h
0045440    N   o   d   e   ;  \r   d   e   c   l   i   s   t   :       D
0045460    e   c   L   i   s   t   N   o   d   e   ;  \r   s   t   a   t
0045500    e   m   e   n   t   l   i   s   t   :       S   t   a   t   e
0045520    m   e   n   t   L   i   s   t   N   o   d   e   ;  \r   s   t
0045540    a   t   e   m   e   n   t   l   i   s   t       _       N   A
0045560    R   R   O   W   [   s   t   a   c   k   .   f   i   r   s   t
0045600    ]   ;  \r   s   t   a   c   k       _       s   t   a   c   k
0045620    .   r   e   s   t   ;  \r   d   e   c   l   i   s   t       _
0045640        N   A   R   R   O   W   [   s   t   a   c   k   .   f   i
0045660    r   s   t   ]   ;  \r   s   t   a   c   k       _       s   t
0045700    a   c   k   .   r   e   s   t   ;  \r   e   n   a   b   l   e
0045720    s       _       N   A   R   R   O   W   [   s   t   a   c   k
0045740    .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _
0045760        s   t   a   c   k   .   r   e   s   t   ;  \r   o   p   e
0046000    n       _       N   A   R   R   O   W   [   s   t   a   c   k
0046020    .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _
0046040        s   t   a   c   k   .   r   e   s   t   ;  \r   s   t   a
0046060    c   k       _       C   O   N   S   [   B   u   i   l   d   S
0046100    c   o   p   e   P   r   o   d   N   o   d   e   [   p   o   s
0046120    i   t   i   o   n   ,       l   e   n   g   t   h   ,       o
0046140    p   e   n   ,       e   n   a   b   l   e   s   ,       B   u
0046160    i   l   d   O   p   t   D   e   c   L   i   s   t   p   r   e
0046200    s   e   n   t   P   r   o   d   N   o   d   e   [   d   e   c
0046220    l   i   s   t   .   p   o   s   i   t   i   o   n   ,       d
0046240    e   c   l   i   s   t   .   l   e   n   g   t   h   ,       d
0046260    e   c   l   i   s   t   ]   ,       s   t   a   t   e   m   e
0046300    n   t   l   i   s   t   ]   ,       s   t   a   c   k   ]   ;
0046320   \r   R   E   T   U   R   N       [   s   t   a   c   k   ]  \r
0046340    E   N   D   ;  \r  \r   S   e   e   e   n   a   b   l   e   s
0046360    a   :       P   R   O   C       [   n   o   d   e   s   :    
0046400    L   I   S   T       O   F       R   E   F       A   N   Y   ,
0046420        p   o   s   i   t   i   o   n   :       I   N   T   ,    
0046440    l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E
0046460    T   U   R   N   S       [   L   I   S   T       O   F       R
0046500    E   F       A   N   Y   ]       =  \r   B   E   G   I   N  \r
0046520    s   t   a   c   k   :       L   I   S   T       O   F       R
0046540    E   F       A   N   Y       _       n   o   d   e   s   ;  \r
0046560    c   a   t   c   h   c   a   s   e   :       C   a   t   c   h
0046600    C   a   s   e   N   o   d   e   ;  \r   c   a   t   c   h   c
0046620    a   s   e       _       N   A   R   R   O   W   [   s   t   a
0046640    c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k
0046660        _       s   t   a   c   k   .   r   e   s   t   ;  \r   s
0046700    t   a   c   k       _       C   O   N   S   [   B   u   i   l
0046720    d   C   a   t   c   h   P   r   o   d   N   o   d   e   [   p
0046740    o   s   i   t   i   o   n   ,       l   e   n   g   t   h   ,
0046760        B   u   i   l   d   C   a   t   c   h   C   a   s   e   L
0047000    i   s   t   m   o   r   e   P   r   o   d   N   o   d   e   [
0047020    c   a   t   c   h   c   a   s   e   .   p   o   s   i   t   i
0047040    o   n   ,       c   a   t   c   h   c   a   s   e   .   p   o
0047060    s   i   t   i   o   n       +       c   a   t   c   h   c   a
0047100    s   e   .   l   e   n   g   t   h       -       c   a   t   c
0047120    h   c   a   s   e   .   p   o   s   i   t   i   o   n   ,    
0047140    B   u   i   l   d   C   a   t   c   h   C   a   s   e   L   i
0047160    s   t   e   m   p   t   y   P   r   o   d   N   o   d   e   [
0047200    c   a   t   c   h   c   a   s   e   .   p   o   s   i   t   i
0047220    o   n   ,       c   a   t   c   h   c   a   s   e   .   p   o
0047240    s   i   t   i   o   n       -       c   a   t   c   h   c   a
0047260    s   e   .   l   e   n   g   t   h   ]   ,       c   a   t   c
0047300    h   c   a   s   e   ]   ,       B   u   i   l   d   C   a   t
0047320    c   h   A   n   y   a   b   s   e   n   t   P   r   o   d   N
0047340    o   d   e   [   c   a   t   c   h   c   a   s   e   .   p   o
0047360    s   i   t   i   o   n       +       c   a   t   c   h   c   a
0047400    s   e   .   l   e   n   g   t   h   ,       c   a   t   c   h
0047420    c   a   s   e   .   p   o   s   i   t   i   o   n       +    
0047440    c   a   t   c   h   c   a   s   e   .   l   e   n   g   t   h
0047460        -       c   a   t   c   h   c   a   s   e   .   p   o   s
0047500    i   t   i   o   n       -       c   a   t   c   h   c   a   s
0047520    e   .   l   e   n   g   t   h   ]   ]   ,       s   t   a   c
0047540    k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c
0047560    k   ]  \r   E   N   D   ;  \r  \r   S   e   e   e   n   a   b
0047600    l   e   s   b   :       P   R   O   C       [   n   o   d   e
0047620    s   :       L   I   S   T       O   F       R   E   F       A
0047640    N   Y   ,       p   o   s   i   t   i   o   n   :       I   N
0047660    T   ,       l   e   n   g   t   h   :       I   N   T   ]  \r
0047700   \t   R   E   T   U   R   N   S       [   L   I   S   T       O
0047720    F       R   E   F       A   N   Y   ]       =  \r   B   E   G
0047740    I   N  \r   s   t   a   c   k   :       L   I   S   T       O
0047760    F       R   E   F       A   N   Y       _       n   o   d   e
0050000    s   ;  \r   c   a   t   c   h   a   n   y   :       C   a   t
0050020    c   h   A   n   y   N   o   d   e   ;  \r   c   a   t   c   h
0050040    a   n   y       _       N   A   R   R   O   W   [   s   t   a
0050060    c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k
0050100        _       s   t   a   c   k   .   r   e   s   t   ;  \r   s
0050120    t   a   c   k       _       C   O   N   S   [   B   u   i   l
0050140    d   C   a   t   c   h   P   r   o   d   N   o   d   e   [   p
0050160    o   s   i   t   i   o   n   ,       l   e   n   g   t   h   ,
0050200        B   u   i   l   d   C   a   t   c   h   C   a   s   e   L
0050220    i   s   t   e   m   p   t   y   P   r   o   d   N   o   d   e
0050240    [   c   a   t   c   h   a   n   y   .   p   o   s   i   t   i
0050260    o   n   ,       c   a   t   c   h   a   n   y   .   p   o   s
0050300    i   t   i   o   n       -       c   a   t   c   h   a   n   y
0050320    .   l   e   n   g   t   h   ]   ,       c   a   t   c   h   a
0050340    n   y   ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T
0050360    U   R   N       [   s   t   a   c   k   ]  \r   E   N   D   ;
0050400   \r  \r   S   e   e   e   n   a   b   l   e   s   c   :       P
0050420    R   O   C       [   n   o   d   e   s   :       L   I   S   T
0050440        O   F       R   E   F       A   N   Y   ,       p   o   s
0050460    i   t   i   o   n   :       I   N   T   ,       l   e   n   g
0050500    t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N
0050520    S       [   L   I   S   T       O   F       R   E   F       A
0050540    N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c
0050560    k   :       L   I   S   T       O   F       R   E   F       A
0050600    N   Y       _       n   o   d   e   s   ;  \r   c   a   t   c
0050620    h   l   i   s   t   :       C   a   t   c   h   N   o   d   e
0050640    ;  \r   c   a   t   c   h   l   i   s   t       _       N   A
0050660    R   R   O   W   [   s   t   a   c   k   .   f   i   r   s   t
0050700    ]   ;  \r   s   t   a   c   k       _       s   t   a   c   k
0050720    .   r   e   s   t   ;  \r   s   t   a   c   k       _       C
0050740    O   N   S   [   c   a   t   c   h   l   i   s   t   ,       s
0050760    t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s
0051000    t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   e
0051020    n   a   b   l   e   s   d   :       P   R   O   C       [   n
0051040    o   d   e   s   :       L   I   S   T       O   F       R   E
0051060    F       A   N   Y   ,       p   o   s   i   t   i   o   n   :
0051100        I   N   T   ,       l   e   n   g   t   h   :       I   N
0051120    T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I   S
0051140    T       O   F       R   E   F       A   N   Y   ]       =  \r
0051160    B   E   G   I   N  \r   s   t   a   c   k   :       L   I   S
0051200    T       O   F       R   E   F       A   N   Y       _       n
0051220    o   d   e   s   ;  \r   c   a   t   c   h   l   i   s   t   :
0051240        C   a   t   c   h   N   o   d   e   ;  \r   c   a   t   c
0051260    h   l   i   s   t       _       N   A   R   R   O   W   [   s
0051300    t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a
0051320    c   k       _       s   t   a   c   k   .   r   e   s   t   ;
0051340   \r   s   t   a   c   k       _       C   O   N   S   [   c   a
0051360    t   c   h   l   i   s   t   ,       s   t   a   c   k   ]   ;
0051400   \r   R   E   T   U   R   N       [   s   t   a   c   k   ]  \r
0051420    E   N   D   ;  \r  \r   S   e   e   e   n   a   b   l   e   s
0051440    e   :       P   R   O   C       [   n   o   d   e   s   :    
0051460    L   I   S   T       O   F       R   E   F       A   N   Y   ,
0051500        p   o   s   i   t   i   o   n   :       I   N   T   ,    
0051520    l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E
0051540    T   U   R   N   S       [   L   I   S   T       O   F       R
0051560    E   F       A   N   Y   ]       =  \r   B   E   G   I   N  \r
0051600    s   t   a   c   k   :       L   I   S   T       O   F       R
0051620    E   F       A   N   Y       _       n   o   d   e   s   ;  \r
0051640    s   t   a   c   k       _       C   O   N   S   [   B   u   i
0051660    l   d   C   a   t   c   h   P   r   o   d   N   o   d   e   [
0051700    p   o   s   i   t   i   o   n   ,       l   e   n   g   t   h
0051720    ,       B   u   i   l   d   C   a   t   c   h   C   a   s   e
0051740    L   i   s   t   e   m   p   t   y   P   r   o   d   N   o   d
0051760    e   [   p   o   s   i   t   i   o   n   ,       l   e   n   g
0052000    t   h   ]   ,       B   u   i   l   d   C   a   t   c   h   A
0052020    n   y   a   b   s   e   n   t   P   r   o   d   N   o   d   e
0052040    [   p   o   s   i   t   i   o   n   ,       l   e   n   g   t
0052060    h   ]   ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T
0052100    U   R   N       [   s   t   a   c   k   ]  \r   E   N   D   ;
0052120   \r  \r   S   e   e   s   t   a   t   e   m   e   n   t   l   i
0052140    s   t   e   m   p   t   y   :       P   R   O   C       [   n
0052160    o   d   e   s   :       L   I   S   T       O   F       R   E
0052200    F       A   N   Y   ,       p   o   s   i   t   i   o   n   :
0052220        I   N   T   ,       l   e   n   g   t   h   :       I   N
0052240    T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I   S
0052260    T       O   F       R   E   F       A   N   Y   ]       =  \r
0052300    B   E   G   I   N  \r   s   t   a   c   k   :       L   I   S
0052320    T       O   F       R   E   F       A   N   Y       _       n
0052340    o   d   e   s   ;  \r   s   t   a   c   k       _       C   O
0052360    N   S   [   B   u   i   l   d   S   t   a   t   e   m   e   n
0052400    t   L   i   s   t   e   m   p   t   y   P   r   o   d   N   o
0052420    d   e   [   p   o   s   i   t   i   o   n   ,       l   e   n
0052440    g   t   h   ]   ,       s   t   a   c   k   ]   ;  \r   R   E
0052460    T   U   R   N       [   s   t   a   c   k   ]  \r   E   N   D
0052500    ;  \r  \r   S   e   e   s   t   a   t   e   m   e   n   t   l
0052520    i   s   t   b   :       P   R   O   C       [   n   o   d   e
0052540    s   :       L   I   S   T       O   F       R   E   F       A
0052560    N   Y   ,       p   o   s   i   t   i   o   n   :       I   N
0052600    T   ,       l   e   n   g   t   h   :       I   N   T   ]  \r
0052620   \t   R   E   T   U   R   N   S       [   L   I   S   T       O
0052640    F       R   E   F       A   N   Y   ]       =  \r   B   E   G
0052660    I   N  \r   s   t   a   c   k   :       L   I   S   T       O
0052700    F       R   E   F       A   N   Y       _       n   o   d   e
0052720    s   ;  \r   s   t   a   t   e   m   e   n   t   l   i   s   t
0052740    P   :       S   t   a   t   e   m   e   n   t   L   i   s   t
0052760    N   o   d   e   ;  \r   s   t   a   t   e   m   e   n   t   l
0053000    i   s   t   P       _       N   A   R   R   O   W   [   s   t
0053020    a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c
0053040    k       _       s   t   a   c   k   .   r   e   s   t   ;  \r
0053060    s   t   a   c   k       _       C   O   N   S   [   s   t   a
0053100    t   e   m   e   n   t   l   i   s   t   P   ,       s   t   a
0053120    c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a
0053140    c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   s   t   a
0053160    t   e   m   e   n   t   l   i   s   t   c   :       P   R   O
0053200    C       [   n   o   d   e   s   :       L   I   S   T       O
0053220    F       R   E   F       A   N   Y   ,       p   o   s   i   t
0053240    i   o   n   :       I   N   T   ,       l   e   n   g   t   h
0053260    :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S    
0053300    [   L   I   S   T       O   F       R   E   F       A   N   Y
0053320    ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k   :
0053340        L   I   S   T       O   F       R   E   F       A   N   Y
0053360        _       n   o   d   e   s   ;  \r   s   t   a   t   e   m
0053400    e   n   t   l   i   s   t   P   :       S   t   a   t   e   m
0053420    e   n   t   L   i   s   t   N   o   d   e   ;  \r   s   t   a
0053440    t   e   m   e   n   t   l   i   s   t   P       _       N   A
0053460    R   R   O   W   [   s   t   a   c   k   .   f   i   r   s   t
0053500    ]   ;  \r   s   t   a   c   k       _       s   t   a   c   k
0053520    .   r   e   s   t   ;  \r   s   t   a   c   k       _       C
0053540    O   N   S   [   s   t   a   t   e   m   e   n   t   l   i   s
0053560    t   P   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U
0053600    R   N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r
0053620   \r   S   e   e   s   t   a   t   e   m   e   n   t   l   i   s
0053640    t   P   a   :       P   R   O   C       [   n   o   d   e   s
0053660    :       L   I   S   T       O   F       R   E   F       A   N
0053700    Y   ,       p   o   s   i   t   i   o   n   :       I   N   T
0053720    ,       l   e   n   g   t   h   :       I   N   T   ]  \r  \t
0053740    R   E   T   U   R   N   S       [   L   I   S   T       O   F
0053760        R   E   F       A   N   Y   ]       =  \r   B   E   G   I
0054000    N  \r   s   t   a   c   k   :       L   I   S   T       O   F
0054020        R   E   F       A   N   Y       _       n   o   d   e   s
0054040    ;  \r   s   t   a   t   e   m   e   n   t   :       S   t   a
0054060    t   e   m   e   n   t   N   o   d   e   ;  \r   s   t   a   t
0054100    e   m   e   n   t       _       N   A   R   R   O   W   [   s
0054120    t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a
0054140    c   k       _       s   t   a   c   k   .   r   e   s   t   ;
0054160   \r   s   t   a   c   k       _       C   O   N   S   [   B   u
0054200    i   l   d   S   t   a   t   e   m   e   n   t   L   i   s   t
0054220    m   o   r   e   P   r   o   d   N   o   d   e   [   p   o   s
0054240    i   t   i   o   n   ,       l   e   n   g   t   h   ,       B
0054260    u   i   l   d   S   t   a   t   e   m   e   n   t   L   i   s
0054300    t   e   m   p   t   y   P   r   o   d   N   o   d   e   [   s
0054320    t   a   t   e   m   e   n   t   .   p   o   s   i   t   i   o
0054340    n   ,       s   t   a   t   e   m   e   n   t   .   p   o   s
0054360    i   t   i   o   n       -       s   t   a   t   e   m   e   n
0054400    t   .   l   e   n   g   t   h   ]   ,       s   t   a   t   e
0054420    m   e   n   t   ]   ,       s   t   a   c   k   ]   ;  \r   R
0054440    E   T   U   R   N       [   s   t   a   c   k   ]  \r   E   N
0054460    D   ;  \r  \r   S   e   e   s   t   a   t   e   m   e   n   t
0054500    l   i   s   t   P   b   :       P   R   O   C       [   n   o
0054520    d   e   s   :       L   I   S   T       O   F       R   E   F
0054540        A   N   Y   ,       p   o   s   i   t   i   o   n   :    
0054560    I   N   T   ,       l   e   n   g   t   h   :       I   N   T
0054600    ]  \r  \t   R   E   T   U   R   N   S       [   L   I   S   T
0054620        O   F       R   E   F       A   N   Y   ]       =  \r   B
0054640    E   G   I   N  \r   s   t   a   c   k   :       L   I   S   T
0054660        O   F       R   E   F       A   N   Y       _       n   o
0054700    d   e   s   ;  \r   s   t   a   t   e   m   e   n   t   l   i
0054720    s   t   P   :       S   t   a   t   e   m   e   n   t   L   i
0054740    s   t   N   o   d   e   ;  \r   s   t   a   t   e   m   e   n
0054760    t   :       S   t   a   t   e   m   e   n   t   N   o   d   e
0055000    ;  \r   s   t   a   t   e   m   e   n   t       _       N   A
0055020    R   R   O   W   [   s   t   a   c   k   .   f   i   r   s   t
0055040    ]   ;  \r   s   t   a   c   k       _       s   t   a   c   k
0055060    .   r   e   s   t   ;  \r   s   t   a   t   e   m   e   n   t
0055100    l   i   s   t   P       _       N   A   R   R   O   W   [   s
0055120    t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a
0055140    c   k       _       s   t   a   c   k   .   r   e   s   t   ;
0055160   \r   s   t   a   c   k       _       C   O   N   S   [   B   u
0055200    i   l   d   S   t   a   t   e   m   e   n   t   L   i   s   t
0055220    m   o   r   e   P   r   o   d   N   o   d   e   [   p   o   s
0055240    i   t   i   o   n   ,       l   e   n   g   t   h   ,       s
0055260    t   a   t   e   m   e   n   t   l   i   s   t   P   ,       s
0055300    t   a   t   e   m   e   n   t   ]   ,       s   t   a   c   k
0055320    ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c   k
0055340    ]  \r   E   N   D   ;  \r  \r   S   e   e   s   a   f   e   e
0055360    m   p   t   y   :       P   R   O   C       [   n   o   d   e
0055400    s   :       L   I   S   T       O   F       R   E   F       A
0055420    N   Y   ,       p   o   s   i   t   i   o   n   :       I   N
0055440    T   ,       l   e   n   g   t   h   :       I   N   T   ]  \r
0055460   \t   R   E   T   U   R   N   S       [   L   I   S   T       O
0055500    F       R   E   F       A   N   Y   ]       =  \r   B   E   G
0055520    I   N  \r   s   t   a   c   k   :       L   I   S   T       O
0055540    F       R   E   F       A   N   Y       _       n   o   d   e
0055560    s   ;  \r   s   t   a   c   k       _       C   O   N   S   [
0055600    B   u   i   l   d   S   a   f   e   e   m   p   t   y   P   r
0055620    o   d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,
0055640        l   e   n   g   t   h   ]   ,       s   t   a   c   k   ]
0055660    ;  \r   R   E   T   U   R   N       [   s   t   a   c   k   ]
0055700   \r   E   N   D   ;  \r  \r   S   e   e   s   a   f   e   n   o
0055720    :       P   R   O   C       [   n   o   d   e   s   :       L
0055740    I   S   T       O   F       R   E   F       A   N   Y   ,    
0055760    p   o   s   i   t   i   o   n   :       I   N   T   ,       l
0056000    e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T
0056020    U   R   N   S       [   L   I   S   T       O   F       R   E
0056040    F       A   N   Y   ]       =  \r   B   E   G   I   N  \r   s
0056060    t   a   c   k   :       L   I   S   T       O   F       R   E
0056100    F       A   N   Y       _       n   o   d   e   s   ;  \r   s
0056120    t   a   c   k       _       C   O   N   S   [   B   u   i   l
0056140    d   S   a   f   e   n   o   P   r   o   d   N   o   d   e   [
0056160    p   o   s   i   t   i   o   n   ,       l   e   n   g   t   h
0056200    ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R
0056220    N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r
0056240    S   e   e   s   a   f   e   y   e   s   :       P   R   O   C
0056260        [   n   o   d   e   s   :       L   I   S   T       O   F
0056300        R   E   F       A   N   Y   ,       p   o   s   i   t   i
0056320    o   n   :       I   N   T   ,       l   e   n   g   t   h   :
0056340        I   N   T   ]  \r  \t   R   E   T   U   R   N   S       [
0056360    L   I   S   T       O   F       R   E   F       A   N   Y   ]
0056400        =  \r   B   E   G   I   N  \r   s   t   a   c   k   :    
0056420    L   I   S   T       O   F       R   E   F       A   N   Y    
0056440    _       n   o   d   e   s   ;  \r   s   t   a   c   k       _
0056460        C   O   N   S   [   B   u   i   l   d   S   a   f   e   y
0056500    e   s   P   r   o   d   N   o   d   e   [   p   o   s   i   t
0056520    i   o   n   ,       l   e   n   g   t   h   ]   ,       s   t
0056540    a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t
0056560    a   c   k   ]  \r   E   N   D   ;  \r  \r   E   N   D   .   .
0056600   \r                                                            
0056601