$ od -c -N 50000 [Indigo]<Spruce>12>eftp>eftppackage.dm!1 0000000 377 \0 \0 P u p E F T P . d e c l \0 0000020 373 226 \0 376 E \0 \0 376 001 \0 343 ` / / P 0000040 u p E F T P . d e c l - - D 0000060 e c l a r a t i o n s f o r 0000100 E F T P p a c k a g e \r / / 0000120 C o p y r i g h t X e r o x 0000140 C o r p o r a t i o n 1 9 7 9 0000160 , 1 9 8 0 \r \r / / L a s t 0000200 m o d i f i e d S e p t e m b 0000220 e r 3 0 , 1 9 8 0 1 : 4 0000240 4 P M b y S w i n e h a r 0000260 t \r \r g e t " P u p 0 . d e c 0000300 l " \r g e t " P u p 1 . d e c 0000320 l " \r \r / / - - - - - - - - - - 0000340 - - - - - - - - - - - - - - - - * 0000420 - - - - - - - - - - - - 376 001 \0 217 0000440 \a - - - - - - \r s t r u c t u r 0000460 e E F T P S o c : \r / / - - - 0000500 - - - - - - - - - - - - - - - - * 0000600 - - - - - - - - - \r [ \r @ P u p 0000620 S o c \r S e q N u m w o r d \r 0000640 A b o r t P B I w o r d \t \t / 0000660 / p r o v i d e s a t e m 0000700 p o r a r y p o i n t e r t 0000720 o m o s t r e c e n t o n 0000740 e \r S o m e o n e E l s e W a i 0000760 t i n g w o r d \r T r a n s f 0001000 e r N o t S t a r t e d w o r 0001020 d \t / / t r u e w h i l e 0001040 f 376 001 \0 273 326 o r e i g n s o c 0001060 k e t n o t c o m p l e t e 0001100 d \r c u r r e n t T i m e o u t 0001120 w o r d \t / / c u r r e n t 0001140 r e t r a n s m i s s i o n 0001160 t i m e o u t \r s t a r t T i m 0001200 e w o r d \t \t / / t i m e 0001220 a t w h i c h l a s t D a 0001240 t a w a s s e n t \r ] \r m a 0001260 n i f e s t l e n E F T P S o 0001300 c = s i z e E F T P S o c 0001320 / 1 6 \r \r / / - - - - - - - - - 0001340 - - - - - - - - - - - - - - - - * 0001440 - - - \r s t 376 001 \0 O 377 r u c t u 0001460 r e B y t e ^ 1 , 1 : b y t 0001500 e \r / / - - - - - - - - - - - - 0001520 - - - - - - - - - - - - - - - - * 0001620 \r \r / / - - - - - - - - - - - - 0001640 - - - - - - - - - - - - - - - - * 0001740 \r m a n i f e s t \r / / - - - - 0001760 - - - - - - - - - - - - - - - - * 0002040 - - - - - - - - - - - 376 001 \0 257 2 0002060 - - - - - - - - - - - - - \r [ \r 0002100 / / W e l l - k n o w n s o 0002120 c k e t \r s o c k e t E F T P R 0002140 e c e i v e = 2 0 b \r \r / / 0002160 E F T P p r o t o c o l p 0002200 a c k e t t y p e s \r t y p e 0002220 E F T P D a t a = 3 0 b \r t 0002240 y p e E F T P A c k = 3 1 b 0002260 \r t y p e E F T P E n d = 3 0002300 2 b \r t y p e E F T P A b o r t 0002320 = 3 3 b \r \r / / R e t u r 0002340 n v a l u e s f r o m R e 0002360 c e i v e E F T P B l o c k a 0002400 n d S e n d E F T P B l o c k 0002420 \r E F T P E n d R e c e i v e d 0002440 = 0 \t / / t h a t i s , 0002460 376 001 \0 305 021 a z e r o b y t 0002500 e c o u n t \r E F T P T i m e 0002520 o u t = - 1 \r E F T P A b o 0002540 r t R e c e i v e d = - 2 \r 0002560 E F T P A b o r t S e n t = 0002600 - 3 \r E F T P R e s e t R e c e 0002620 i v e d = - 4 \r E F T P N o 0002640 t F i r s t S y n c h = - 5 0002660 \r \r / / S o m e r e t r a n 0002700 s m i s s i o n t i m e o u t 0002720 s i n u n i t s o f 1 0 0002740 m i l l i s e c o n d s \r s t 0002760 a r t i n g T i m e o u t = 0003000 1 0 0 \t / / ~ 1 s e c . \r m 0003020 a x T i m e o u t = 1 0 0 0 0003040 \t / / ~ 1 0 s e c . \r m i n 0003060 T i m e o 376 001 \0 323 Y u t = 5 0003100 \t \t / / ~ 5 0 m s . \r d a l 0003120 l y T i m e o u t = 5 0 0 \t 0003140 / / ~ 5 s e c d a l l y 0003160 p e r i o d . \r l o n g B l o c 0003200 k T i m e o u t = 3 0 0 0 \t 0003220 / / ~ 3 0 s e c , f o r 0003240 a l o n g w a i t \r \r / / 0003260 A b o r t c o d e s , f o r 0003300 u s e w i t h i n a n E 0003320 F T P A b o r t p a c k e t \r 0003340 E x t e r n a l S e n d e r A b 0003360 o r t = 1 \r E x t e r n a l 0003400 R e c e i v e r A b o r t = 0003420 2 \r R e c e i v e r B u s y A b 0003440 o r t = 3 \r O u t O f S y n 0003460 c h A b o r t = 376 \0 e 374 m 4 0003500 \r M i s c A b o r t = 5 \r \r 0003520 / / N o s u c h p o r t 0003540 e r r o r c o d e , c a u s 0003560 e s c o n n e c t i o n t o 0003600 a b o r t i n r e c e i v 0003620 e r \r e c N o S u c h P o r t = 0003640 2 \r ] \r 377 \0 \0 P u p E F T P S e 0003660 n d . b r \0 373 226 \0 376 347 \0 \0 376 001 \0 0003700 ` d 002 002 001 367 \0 \0 \0 017 \0 \0 \0 203 \0 \0 0003720 \0 214 \0 \0 001 345 \0 \0 001 366 \0 \0 \0 \0 \0 \0 0003740 \0 020 \0 @ \0 001 \r S e n d E F T P B 0003760 l o c k \0 @ \0 002 \v S e n d E F T 0004000 P E n d \0 A \0 003 016 S e n d E F T 0004020 P P a c k e t \0 \0 A \0 004 \n A g e 0004040 T i m e o u t \0 \0 \0 \0 \0 \b S e t 0004060 T i m e r \0 \0 \0 \0 \0 006 G e t P B 0004100 I \0 \0 \0 \0 \0 \t M o v e B l o c k 0004120 \0 \0 \0 \0 \v C o m p l e t e P u p 0004140 \0 \0 \0 \0 005 B l o c k \0 \0 \0 \0 017 T 0004160 i m e r H a s E x p i r e d \0 \0 0004200 \0 \0 \a D e q u e u e \0 \0 \0 \0 006 M 0004220 u l t E q \0 \0 \0 \0 \0 \n R e l e a 0004240 s e P B I \0 \0 \0 \0 \0 \r S e n d E 0004260 F T P A b o r t \0 \0 \0 \0 003 M a x 0004300 \0 \0 376 001 \0 350 \0 \0 \0 003 M i n \0 004 \0 0004320 001 \0 001 \0 002 \0 035 \0 003 \0 E \0 004 001 $ 001 0004340 X 001 X Z 001 \f 370 \0 017 \f 367 : 006 Z \v : 0004360 \a Z \f 9 f Z \r 9 e Z 003 " 004 * 005 i 0004400 b \0 005 B \b " \b 202 J 001 006 : 004 # \r 203 0004420 \0 : 004 C \r " \b 001 001 \f 366 Z 001 \f 370 \0 0004440 \r \f 367 375 \0 Z \t : 005 Z \n 9 M Z \v 9 0004460 L Z 003 " 004 255 \0 i F \0 005 202 K 001 003 205 0004500 \0 001 024 : 004 # \r 203 \0 : 004 C \r 375 \0 Z 0004520 \t 375 \0 Z \n 9 8 Z \v 9 7 Z 003 " 004 255 0004540 \0 i 1 \0 005 204 \0 001 001 \f 366 Z 001 \f 370 \0 0004560 022 \f 367 " 004 9 G 346 \0 255 \0 i E \0 002 ! 0004600 D 306 \0 * \a i @ \0 002 " 004 i I \0 001 B 0004620 \n : 004 # \r : \n C \f " \n 9 B 346 \0 * 0004640 006 253 \0 252 220 J 003 * 005 i J \0 003 " 006 9 0004660 H 346 \0 B 003 " \n * \b i D \0 003 001 006 \0 0004700 030 \0 \b \0 \0 \0 032 376 001 \0 226 001 \0 006 ! A 0004720 306 \0 : 004 + 021 i 032 \0 002 i G \0 \0 " \a 0004740 200 \r 001 \t ! 024 306 \0 i A \0 001 202 \r 001 003 0004760 204 \0 001 c ! . 306 \0 i 9 \0 001 202 \r 001 \b 0005000 " 004 i ] \0 001 001 \ \0 022 \0 \0 \0 \t " 004 0005020 9 346 \0 i W \0 001 B \n " \n 202 \f 001 004 0005040 001 335 \0 \0 \0 023 " 004 9 362 346 \0 * \n 9 K 0005060 356 \0 i J \0 002 202 \f 001 \b " \n i K \0 001 0005100 001 315 \0 \0 \0 026 \0 \0 " 004 i 9 \0 001 001 Z 0005120 \0 \v : \n # \f : 004 ; \r 345 \f 001 \b " \n 0005140 i 9 \0 001 " 006 001 c \0 \0 \0 \0 : \n # \f 0005160 : 004 ; \r 344 J 001 / \t 025 & Y o u r 0005200 r e c e i v e r h a s g o t 0005220 t e n o u t o f s y n c h 0005240 . \0 342 \0 B 017 : \n Z 020 9 1 Z 003 " 004 0005260 ) / i / \0 004 001 \t \f 355 \0 9 \0 \0 \f 355 0005300 \0 5 \0 \0 \0 021 \0 \0 " \n i 004 376 \0 356 302 0005320 k \0 001 ! " 001 . \0 \0 " \n i 376 \0 001 001 0005340 ' \f 355 \0 022 : 004 # 016 202 \r 001 005 : 004 # 0005360 016 i 363 \0 001 " \n : 004 C 016 204 P 001 032 " 0005400 \n i 353 \0 001 001 024 : \n # \n 9 \t 347 \0 001 0005420 \b \0 \f \0 004 \0 \0 377 375 \f 355 \0 \t \0 377 \f 0005440 351 \0 002 \0 033 377 340 \0 031 377 227 001 352 001 , 001 0005460 - \f 366 Z 001 \f 370 \0 \r \f 367 ! ) 306 \0 255 0005500 \0 i ' \0 002 " 005 : 004 ; 022 345 \0 ) " \f 0005520 346 9 341 346 \0 B 005 : 004 # 021 ) 034 \f 343 J 0005540 006 9 026 Z \b ! 030 * 005 i 027 \0 002 212 \0 " 0005560 \b i 024 \0 002 * 006 216 \0 242 \0 ) \v \f 347 : 0005600 004 C 021 \f 366 \f 355 377 , \f 355 377 004 \0 005 \0 0005620 222 \0 003 \0 \a 003 350 \0 \0 \0 \0 \0 020 \0 \0 \0 0005640 \0 \0 q \0 353 001 R \0 236 \0 256 \0 260 \0 301 \0 0005660 302 \0 356 \0 360 \0 366 001 025 001 W 001 V \0 \0 377 0005700 \0 \0 P u p E F T P R e c e i v e 0005720 . b r \0 373 226 \0 377 003 \0 \0 376 001 \0 270 ! 0005740 002 002 002 352 \0 \0 \0 017 \0 \0 \0 200 \0 \0 \0 211 0005760 \0 \0 002 332 \0 \0 002 351 \0 \0 \0 \0 \0 \0 \0 016 0006000 \0 @ \0 001 020 R e c e i v e E F T P 0006020 B l o c k \0 \0 @ \0 002 021 R e c e i 0006040 v e E F T P P a c k e t \0 A \0 003 0006060 \r C h e c k S e q u e n c e \0 A 0006100 \0 004 \r A c k E F T P P a c k e t 0006120 \0 \0 \0 \0 \t M o v e B l o c k \0 \0 0006140 \0 \0 \n R e l e a s e P B I \0 \0 \0 0006160 \0 \0 \b S e t T i m e r \0 \0 \0 \0 \0 0006200 005 B l o c k \0 \0 \0 \0 017 T i m e r 0006220 H a s E x p i r e d \0 \0 \0 \0 \a D 0006240 e q u e u e \0 \0 \0 \0 006 M u l t E 0006260 q \0 \0 \0 \0 \0 \r S e n d E F T P A 0006300 b o r t \0 \0 \0 \0 006 G e t P B I \0 0006320 \0 \0 \0 \0 \v C o m p l e t e P u p 0006340 376 001 \0 O \t \0 004 \0 001 \0 001 \0 002 \0 1 \0 0006360 003 001 357 \0 004 002 4 002 P 002 P Z 001 \f 370 \0 0006400 016 \f 367 375 \0 Z \a ! e 306 \0 B 003 " 004 * 0006420 006 i a \0 003 B \b " \b 202 J 001 030 " \a 9 0006440 [ 346 \0 * \b 253 \0 252 220 J 003 212 \0 " 005 i 0006460 T \0 003 : \a 372 \r 001 \b " \a i O \0 001 " 0006500 \b 202 \f 001 002 001 337 " \b 001 \b " \b 9 K 345 0006520 \r 001 003 " \b 001 002 001 326 \f 366 Z 001 \f 370 \0 0006540 023 \f 367 \t 017 033 Y o u r s e n d e 0006560 r i s o u t o f s y n c 0006600 . 342 \0 B \a \t 025 & R e c e i v e r 0006620 b u s y , p l e a s e t r 0006640 y a g a i n l a t e r . \0 342 0006660 \0 B \b ! ` 306 \0 * 005 i ^ \0 002 i ] \0 0006700 \0 " 005 200 \r 001 020 ! V 306 \0 i W \0 001 001 0006720 006 \0 \a \0 \0 \0 023 \0 \0 \0 \0 202 \r 001 004 204 0006740 \0 001 M 377 373 376 001 \0 2 G " 004 9 L 346 \0 0006760 i K \0 001 B \n " \n 202 \f 001 002 001 343 : \n 0007000 # \f 202 \r 204 001 205 \0 B \v : \n # \n 9 a 0007020 347 \0 9 ` 345 \r 204 001 205 \0 B \f : 004 ; 020 0007040 372 \r 001 : : \f 372 \r 001 7 : \v 372 \r 001 4 0007060 : 004 # \b 9 N 347 \0 202 \r 001 025 : 004 # \b 0007100 9 H 347 \0 : \n + 020 9 D 357 \0 245 \f 001 $ 0007120 : 004 # \b 9 D 347 300 : \n + 020 9 @ 357 300 0007140 245 \f 001 032 205 \0 : 004 C 020 205 \0 : 004 C \r 0007160 " 004 9 I 346 \0 001 \t \0 \t \0 \0 \0 \0 \0 \0 0007200 \f 355 001 , \0 \v \0 \0 * \n 9 F 356 \0 9 E 0007220 Z 003 i 245 \0 003 " 004 9 6 346 \0 * \n 9 < 0007240 356 \0 9 ; Z 003 i A \0 003 202 \f 001 . : \f 0007260 372 \r 001 : \v 372 \r 001 023 : \b Z 020 : \n 0007300 Z 021 9 4 Z 003 " 004 ) ( i 1 \0 004 001 003 0007320 \0 377 \0 030 204 \0 : 004 C 017 001 \f 377 \0 : \a 0007340 Z 020 : \n Z 021 9 " Z 003 376 001 \0 321 264 " 0007360 004 ) ! i 037 \0 004 " \n i 036 \0 001 : 004 ; 0007400 020 372 \r 001 004 ! 031 001 277 \0 \b 001 027 001 030 " 0007420 004 * \n i 027 \0 002 B \r 001 \b \0 020 \0 003 001 0007440 \r 001 032 " \r 001 260 001 027 " \r 001 016 \0 \0 \0 0007460 \r \0 \0 \0 004 \0 p 377 373 \f 355 377 F \f 355 \0 0007500 264 \0 \0 \f 355 \0 \b \f 351 \0 002 \0 001 377 351 \0 0007520 \0 377 350 001 350 : 004 # \r 203 \0 : 004 C \r " 0007540 \n F 006 : \n # \t 9 020 345 \0 001 215 " 004 * 0007560 \n i 350 \0 002 B \r 001 006 001 340 001 020 " \r 001 0007600 203 001 \r " \r 001 004 \0 026 \f 355 \0 \b \f 351 \0 0007620 002 \0 001 377 363 \0 \0 377 362 001 362 " \n i 314 \0 0007640 001 : 004 # \r 203 \0 : 004 C \r ! > 306 \0 ) 0007660 J i J \0 002 i I \0 \0 ! 7 306 \0 i F \0 0007700 001 202 \r 001 003 205 \0 001 c " 004 9 c 346 \0 i 0007720 b \0 001 B \n " \n 202 \f 001 002 001 355 : \n # 0007740 \n 9 Z 347 \0 9 Y 345 \r 001 005 " \n i 244 376 0007760 001 \0 355 346 \0 001 001 342 : 004 # \r : \n ; \f 0010000 345 \f 001 006 " \n i 232 \0 001 205 \0 001 l " 004 0010020 * \n i K \0 002 " \n i 221 \0 001 001 317 001 _ 0010040 : \n # 035 9 K 345 \r 001 003 001 Y \0 016 : 004 0010060 # 016 202 \r 001 005 : 004 # 016 i A \0 001 " \n 0010100 : 004 C 016 204 P 001 O 001 364 \0 276 \0 277 \0 300 0010120 \t 026 ( U n r e c o g n i z e d 0010140 P u p t y p e o n E F T P 0010160 c o n n e c t i o n \0 342 \0 B 020 0010200 : \n Z 021 9 035 Z 003 " 004 255 P i 032 \0 004 0010220 001 \a \f 355 \0 ( \0 \v \0 304 \0 377 \0 032 " \n 0010240 i 016 \0 001 ! 017 001 037 \0 \0 001 031 : \n # \n 0010260 9 365 347 \0 001 \b \f 355 \0 022 \0 002 001 031 \0 \r 0010300 001 027 377 375 \f 350 \0 033 \0 004 377 253 377 S 377 301 0010320 377 " \f 351 \0 001 \0 004 377 244 001 273 " \n i 357 0010340 \0 001 001 Z \f 366 Z 001 \f 370 \0 016 \f 367 : 005 0010360 ; \f Z 006 376 \0 324 9 * : 004 # \r : 006 345 0010400 \0 B \a " \a 202 220 202 \f 001 016 " 004 * 005 i 0010420 317 \0 002 " \a 375 P 345 \f 001 004 " 005 i 322 \0 0010440 001 " \a 001 ( " 006 202 \r 001 032 \t 017 033 Y o 0010460 u r s e n d e r i s o u t 0010500 o f s y n c . 342 \0 B \v : 005 Z 0010520 \f 9 ' Z 003 " 004 ) % i 266 \0 004 " 005 i 0010540 261 \0 001 " 006 202 \f 001 003 ! 035 001 003 ! 255 001 0010560 001 001 001 \f 366 Z 001 \f 370 \0 \f \f 367 " 004 i 0010600 023 \0 001 B 006 : 005 # \f : 006 C \f 9 \r Z 0010620 003 " 006 ) \v i \v \0 003 \f 366 \f 355 376 032 \0 0010640 \b \0 004 377 374 \0 \0 \0 026 \0 031 \0 \0 \0 016 \0 0010660 \0 \0 m 001 037 001 320 \0 o 001 332 001 241 001 242 001 0010700 243 001 310 001 025 001 334 002 L 002 O \0 \0 377 \0 \0 0010720 P u p E F T P C o m m o n . b r 0010740 \0 373 226 \0 377 032 \0 \0 376 001 \0 340 ) 002 002 001 0010760 % \0 \0 \0 017 \0 \0 \0 220 \0 \0 \0 233 \0 \0 001 0011000 024 \0 \0 001 $ \0 \0 \0 \0 \0 \0 \0 017 \0 \0 0011020 023 \b l E F T P S o c \0 \0 @ \0 001 017 0011040 I n i t E F T P P a c k a g e \0 0011060 @ \0 002 \v O p e n E F T P S o c \0 0011100 @ \0 003 \f C l o s e E F T P S o c 0011120 \0 \0 @ \0 004 \f G e t E F T P A b o 0011140 r t \0 \0 @ \0 005 \r S e n d E F T P 0011160 A b o r t \0 \0 \0 \0 \v D e f a u l 0011200 t A r g s \0 \0 \0 \0 004 Z e r o \0 \0 0011220 \0 \0 \0 020 O p e n L e v e l 1 S o 0011240 c k e t \0 \0 \0 \0 \0 \n R e l e a s 0011260 e P B I \0 \0 \0 \0 \0 021 C l o s e L 0011300 e v e l 1 S o c k e t \0 \0 \0 \0 006 0011320 G e t P B I \0 \0 \0 \0 \0 \v S e t P 0011340 u p D P o r t \0 \0 \0 \0 021 A 376 001 \0 0011360 032 + p p e n d S t r i n g T o P 0011400 u p \0 \0 \0 \0 \v C o m p l e t e P 0011420 u p \0 005 \0 002 \0 001 \0 003 \0 006 \0 004 \0 ' 0011440 \0 005 \0 7 \0 006 \0 > \0 x \0 x Z 001 \f 370 0011460 \0 006 \f 367 \f 366 Z 001 \f 370 \0 016 \f 367 B \a 0011500 ! ] 306 \0 375 \0 Z \v 375 \0 Z \f 9 X Z 003 0011520 254 \0 i V \0 004 " 004 ) T i T \0 002 204 \0 0011540 : 004 C 020 ! P : 004 C 021 : 006 Z 003 " 004 0011560 * 005 i J \0 003 \f 366 Z 001 \f 370 \0 \b \f 367 0011600 : 004 # 016 202 \r 001 005 : 004 # 016 i > \0 001 0011620 " 004 i < \0 001 \f 366 Z 001 \f 370 \0 006 \f 367 0011640 : 004 # 016 \f 366 Z 001 \f 370 \0 017 \f 367 B \b 0011660 " 004 i - \0 001 B \t " \b 9 * 344 J 001 \f 0011700 : \a # \f : \t C \f " \a 9 # 346 \0 212 \0 0011720 " \t i \0 002 : 004 # \r : \t C \f " 005 0011740 : \t C 023 : 006 Z 003 " \t ) 022 i 024 \0 003 0011760 " \t 376 \0 J 244 035 ) 022 i 022 \0 002 \f 366 \0 0012000 \a \0 \b \0 \0 \0 023 \0 \0 \0 d \0 \0 \0 \0 \0 0012020 \0 \0 \0 \0 003 \0 020 \0 \0 \0 \0 \0 033 \0 \0 \0 0012040 017 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 j \0 0012060 l \0 n \0 o \0 p \0 q \0 t \0 u \0 w \0 0012100 \0 374 0012102