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