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