$ od -c -N 50000 [_CD6_]<tapeserver>SoftwareSources>MFTPSources.dm!3 0000000 377 \0 \0 M F T P . b c p l \0 376 001 \0 0000020 ! ^ \r / / M F T P . b c p l \r / 0000040 / M a g T a p e U t i 0000060 l i t y \r / / f o r e t 0000100 h e r n e t u s e \r / / 0000120 A p r i l 2 8 , 1 9 8 0 0000140 1 2 : 5 8 P M \r / / L a s t 0000160 m o d i f i e d b y T i m 0000200 D i e b e r t , J u n e 0000220 9 , 1 9 8 0 1 0 : 4 6 A 0000240 M \r \r g e t " P u p . d e c l 0000260 " \r g e t " T S P . d e c l " 0000300 \r g e t " T a p e s . d " \r \r 0000320 \r e x t e r n a l \r [ \r I n i t 0000340 P u p L e v e l 1 ; O p e n L 0000360 e v e l 1 S o c k e t ; C l o 0000400 s e L e v e l 1 S o c k e t ; 0000420 S e 376 001 \0 - 017 t A l l o c a t i 0000440 o n \r O p e n R T P S o c k e t 0000460 ; C r e a t e B S P S t r e a 0000500 m ; G e t P a r t n e r \r B S 0000520 P F o r c e O u t p u t ; B S 0000540 P G e t M a r k ; B S P P u t 0000560 M a r k ; B S P W r i t e B l 0000600 o c k \r I n i t i a l i z e C o 0000620 n t e x t ; C a l l C o n t e 0000640 x t L i s t ; B l o c k ; E 0000660 n q u e u e ; U n q u e u e \r 0000700 I n i t i a l i z e Z o n e ; 0000720 C r e a t e D i s p l a y S t r 0000740 e a m ; S h o w D i s p l a y 0000760 S t r e a m \r G e t s ; P u t 0001000 s ; C l o s e s ; E n d o f 0001020 s ; W s ; 376 001 \0 273 s W s s ; 0001040 W o ; W o s ; E r a s e B 0001060 i t s ; C h a r W i d t h \r k 0001100 e y s ; d s p ; O p e n F i 0001120 l e ; W r i t e B l o c k ; 0001140 R e a d B l o c k ; C a l l S 0001160 w a t \r ] \r s t a t i c \r [ \r m 0001200 y D s p ; b s p S o c ; b s 0001220 p S t r ; c t x Q ; t s p B 0001240 u f f e r ; f i l e ; b l k 0001260 ; s t a t u s ; e r r o r \r 0001300 ] \r \r l e t M f t p ( ) b e 0001320 / / i n i t i a l i z a t i 0001340 o n \r [ \r W s ( " * n M F T P 0001360 , M a g t a p e F i l e T 0001400 r a n s f e r P r o g r a m , 0001420 v e r s i o n 1 . 2 376 001 \0 d 0001440 346 , J u n e 9 , 1 9 8 0 " 0001460 ) \r l e t m y Z o n e = v 0001500 e c 1 0 0 0 0 ; I n i t i a 0001520 l i z e Z o n e ( m y Z o n e , 0001540 1 0 0 0 0 ) \r l e t q = 0001560 v e c 1 ; c t x Q = q ; 0001600 c t x Q ! 0 = 0 \r I n i t 0001620 P u p L e v e l 1 ( m y Z o n e 0001640 , c t x Q , 5 ) \r l e t v = 0001660 v e c 3 0 0 \r b l k = v 0001700 \r l e t v = v e c 1 0 4 0001720 0 \r t s p B u f f e r = v \r 0001740 l e t v = v e c 9 0 0 0 0001760 \r m y D s p = C r e a t e D 0002000 i s p l a y S t r e a m ( 4 0 , 0002020 v , 9 0 0 0 ) \r S h o w D i 0002040 s 376 001 \0 , 244 p l a y S t r e a m 0002060 ( m y D s p ) \r l e t v = 0002100 v e c 3 0 0 0 \r E n q u e u e 0002120 ( c t x Q , I n i t i a l i z 0002140 e C o n t e x t ( v , 3 0 0 0 0002160 , T o p L e v e l ) ) \r C a l 0002200 l C o n t e x t L i s t ( c t x 0002220 Q ! 0 ) r e p e a t \r ] \r \r a 0002240 n d T o p L e v e l ( ) b e 0002260 / / t o p - l e v e l p r 0002300 o c e s s \r [ \r W s s ( m y D s 0002320 p , " * n C o n n e c t t o 0002340 ( C R t o e x i t p r o g 0002360 r a m ) : " ) \r l e t n a m 0002400 e = v e c 1 2 7 ; G e t 0002420 S t r i n g ( n a m e ) \r i f 0002440 n a m e > > 376 001 \0 371 n S t r i n 0002460 g . l e n g t h e q 0 t h 0002500 e n f i n i s h \r l e t f r 0002520 n P o r t = v e c l e n P 0002540 o r t \r u n l e s s G e t P a 0002560 r t n e r ( n a m e , d s p , 0002600 f r n P o r t , 0 , t a p 0002620 e S o c k e t ) d o l o o p 0002640 \r l e t v = v e c l e n 0002660 B S P S o c ; b s p S o c = 0002700 v \r O p e n L e v e l 1 S o c 0002720 k e t ( b s p S o c , 0 , f 0002740 r n P o r t ) \r u n l e s s O 0002760 p e n R T P S o c k e t ( b s p 0003000 S o c , c t x Q ) d o \r 0003020 [ \r W s s ( m y D s p , 0003040 " * n F a i l e d t 376 001 \0 N 257 0003060 o c o n n e c t " ) \r C 0003100 l o s e L e v e l 1 S o c k e t 0003120 ( b s p S o c ) \r l o o p 0003140 \r ] \r W s s ( m y D s p , 0003160 " * n O p e n ! " ) \r b s p S t 0003200 r = C r e a t e B S P S t r 0003220 e a m ( b s p S o c ) \r l e t 0003240 k e y s T o N e t C t x = v 0003260 e c 2 0 0 0 \r E n q u e u e ( 0003300 c t x Q , I n i t i a l i z e 0003320 C o n t e x t ( k e y s T o N e 0003340 t C t x , 2 0 0 0 , K e y s 0003360 T o N e t ) ) \r B l o c k ( ) 0003400 r e p e a t u n t i l b s p 0003420 S o c > > B S P S o c . s t a t 0003440 e n e s t a t e O p e n % 0003460 376 001 \0 002 334 \r @ # 1 7 7 0 3 0003500 5 e q # 1 7 7 7 7 5 / / s 0003520 e c o n d b l a n k k e y 0003540 p r e s s e d \r U n q u e u e ( 0003560 c t x Q , k e y s T o N e t C 0003600 t x ) \r C l o s e s ( b s p S t 0003620 r ) \r W s s ( m y D s p , " * n 0003640 C o n n e c t i o n C l o s e 0003660 d ! " ) \r ] r e p e a t \r \r a 0003700 n d K e y s T o N e t ( ) b 0003720 e \r [ \r / / E s t a b l i 0003740 s h c o n n e c t i o n , o 0003760 p e n d r i v e , t h e n \r 0004000 / / w a i t f o r k 0004020 e y , r \r V e r s i o 0004040 n C o m m a n d ( ) ; G e t R 0004060 e p l y ( 376 001 \0 n ( ) \r O 0004100 p e n C o m m a n d ( ) ; G e 0004120 t R e p l y ( ) \r l e t 0004140 f n a m e = v e c 1 2 7 \r 0004160 w h i l e t r u e d o 0004200 \r [ \r e r r o 0004220 r = f a l s e \r 0004240 W s s ( m y D s p , " * n C o m 0004260 m a n d ( ? f o r h e l p 0004300 ) : " ) ; l e t c h a r 0004320 = G e t K e y s ( ) \r 0004340 s w i t c h o n c h a r 0004360 i n t o \r [ \r 0004400 c a s e $ c : \r 0004420 [ \r 0004440 W s s ( m y D s p , " C l o s 0004460 e C o n n e c t i 376 001 \0 = 025 o 0004500 n " ) \r C l o 0004520 s e C o n n e c t i o n ( ) \r 0004540 e n d c a s e \r 0004560 ] \r 0004600 c a s e $ r : \r 0004620 [ \r W s 0004640 s ( m y D s p , " R e a d f 0004660 i l e , f i l e n a m e ? " 0004700 ) \r B l o c k 0004720 ( ) \r G e t S 0004740 t r i n g ( f n a m e ) \r 0004760 f i l e = O p e 0005000 n F i l e ( f n a m e ) \r 0005020 u n l e s s f i l 0005040 e d o [ \r 0005060 W s s ( m y D s p , " 376 0005100 001 \0 331 F f i l e s y s t e m 0005120 e r r o r " ) \r 0005140 e n d c a s e \r 0005160 ] \r 0005200 l e t d o n e = f 0005220 a l s e \r l e 0005240 t r e c o r d C o u n t = 0005260 0 \r u n t i l 0005300 d o n e % e r r o r d o 0005320 \r [ 0005340 / / g e t a n d p r i n t 0005360 b l o c k s u n t i l e o 0005400 f o r e r r o r \r 0005420 R e a d R e c o r 0005440 d C o m m a n d ( ) \r 0005460 d o n e = R e 0005500 a d R e 376 001 \0 344 235 p l y ( ) \r 0005520 r e c o r 0005540 d C o u n t = r e c o r d C 0005560 o u n t + 1 \r 0005600 ] \r 0005620 t e s t e r r o r \r 0005640 i f s o W s s ( m 0005660 y D s p , " R e a d e r r o r 0005700 " ) \r i f n o 0005720 t \r [ \r 0005740 W s s ( 0005760 m y D s p , " " ) \r 0006000 W o s ( m y D s p 0006020 , r e c o r d C o u n t - 1 ) \r 0006040 W s s ( 0006060 m y D s p , " r e c o r d s 0006100 r e a d " ) \r 376 001 \0 300 024 0006120 ] \r 0006140 C l o s e s ( f i l e ) 0006160 ; e n d c a s e \r 0006200 ] \r c a s e 0006220 $ w : \r [ \r 0006240 W s s ( m y D s 0006260 p , " W r i t e f i l e , 0006300 f i l e n a m e ? " ) \r 0006320 B l o c k ( ) \r 0006340 G e t S t r i n g 0006360 ( f n a m e ) \r 0006400 f i l e = O p e n F i l e 0006420 ( f n a m e , k s T y p e R e a 0006440 d O n l y , w o r d I t e m ) \r 0006460 u n l e s s 0006500 f i l e d o \r 376 001 0006520 \0 a 334 [ \r 0006540 W s s ( m y D s p 0006560 , " f i l e d o e s n o t 0006600 e x i s t " ) \r 0006620 e n d c a s e \r 0006640 ] \r 0006660 W s s ( m y D s p , " * 0006700 n R e c o r d s i z e i n 0006720 b y t e s ( 1 0 2 4 ) " ) \r 0006740 l e t r s i 0006760 z e = G e t N u m b e r ( ) 0007000 \r i f r s i 0007020 z e e q 0 t h e n \r 0007040 [ \r 0007060 W s s ( m y D s p 0007100 , " u s e d 1 0 2 4 " ) \r 0007120 376 001 \0 024 j 0007140 r s i z e = 1 0 2 4 \r 0007160 ] \r 0007200 i f r s i z e g r 0007220 2 0 4 8 t h e n \r 0007240 [ \r 0007260 W s s ( m y D s p , 0007300 " u s e d 2 0 4 8 " ) \r 0007320 r s i z e 0007340 = 2 0 4 8 \r 0007360 ] \r l e 0007400 t r e c o r d C o u n t = 0007420 0 \r u n t i l 0007440 E n d o f s ( f i l e ) % 0007460 e r r o r d o \r 0007500 [ / / g e t a 0007520 n d p r i n t 376 001 \0 347 S b l 0007540 o c k s u n t i l e o f o 0007560 r e r r o r \r 0007600 W r i t e R e c o r d C 0007620 o m m a n d ( f i l e , r s i z 0007640 e ) \r W 0007660 r i t e R e p l y ( ) \r 0007700 r e c o r d C o 0007720 u n t = r e c o r d C o u n 0007740 t + 1 \r 0007760 ] \r t e s 0010000 t e r r o r \r 0010020 i f s o \r 0010040 [ \r 0010060 W s s ( m y D 0010100 s p , " E r r o r o n W r i 0010120 t e " ) \r 376 001 \0 0010140 210 | ] \r 0010160 i f n o t \r 0010200 [ \r 0010220 E O F 0010240 C o m m a n d ( ) ; W r i t e 0010260 R e p l y ( ) \r 0010300 W o s ( m y D s p 0010320 , r e c o r d C o u n t ) \r 0010340 W s s 0010360 ( m y D s p , " r e c o r d 0010400 s w r i t t e n " ) \r 0010420 ] \r 0010440 C l o s e s ( f i l 0010460 e ) ; e n d c a s e \r 0010500 ] \r c a s 0010520 e $ f : \r [ 0010540 \r 376 001 \0 205 024 W 0010560 s s ( m y D s p , " F w d s 0010600 k i p f i l e , h o w m a 0010620 n y : " ) \r 0010640 l e t n = G e t N u m b e 0010660 r ( ) ; i f n e q 0 t 0010700 h e n \r 0010720 [ \r W 0010740 s s ( m y D s p , " 1 " ) \r 0010760 n = 1 0011000 \r ] \r 0011020 s t a t u s = 0011040 0 \r u n t i 0011060 l ( n e q 0 ) % e r r 0011100 o r % s t a t u s < < S t a 0011120 t u s . E O T d o \r 0011140 376 001 \0 V 365 [ \r 0011160 n = n 0011200 - 1 \r F 0011220 i l e F w d C o m m a n d ( ) \r 0011240 G e t Y 0011260 e s N o ( ) \r 0011300 i f e r r o r t h e n 0011320 \r 0011340 [ \r 0011360 t e s t s t a t u s < < S t 0011400 a t u s . E O T \r 0011420 i f s o W s s 0011440 ( m y D s p , " c a n ' t s 0011460 k i p p a s t E O T " ) \r 0011500 i f 0011520 n o t W s s ( m y D s p , " 0011540 e r r o r i n s k i 376 001 \0 F 0011560 s p " ) \r 0011600 ] \r 0011620 ] \r e n 0011640 d c a s e \r ] 0011660 \r c a s e $ b : \r 0011700 [ \r 0011720 W s s ( m y D s p , " 0011740 B a c k s k i p f i l e , 0011760 h o w m a n y : " ) \r 0012000 l e t n = G e 0012020 t N u m b e r ( ) ; i f n 0012040 e q 0 t h e n \r 0012060 [ \r 0012100 W s s ( m y D s p , 0012120 " 1 " ) \r 0012140 n = 1 \r 0012160 376 001 \0 B 336 ] \r 0012200 s t a t u s = 0 \r 0012220 u n t i l ( n 0012240 e q 0 ) % e r r o r % 0012260 s t a t u s < < S t a t u s . B 0012300 O T d o \r 0012320 [ \r 0012340 n = n - 1 \r 0012360 F i l e B a c k C o m 0012400 m a n d ( ) \r 0012420 G e t Y e s N o ( ) \r 0012440 i f e r r 0012460 o r t h e n W s s ( m y D s 0012500 p , " e r r o r i n s k i 0012520 p " ) \r 0012540 i f s t a t u s < < S t a t u 0012560 s . B O T 376 001 \0 n P t h e n 0012600 W s s ( m y D s p , " A t 0012620 b e g i n n i n g o f t a p 0012640 e " ) \r 0012660 ] \r e n d c a 0012700 s e \r ] \r 0012720 c a s e $ u : \r 0012740 [ \r 0012760 W s s ( m y D s p , " R e w 0013000 i n d " ) \r R 0013020 e w i n d C o m m a n d ( ) \r 0013040 G e t R e p l y 0013060 ( ) \r e n d c 0013100 a s e \r ] \r 0013120 c a s e $ ? : \r 0013140 [ \r 0013160 W s s ( m y D s p 376 001 \0 026 351 0013200 , " * n c = C l o s e , r = R 0013220 e a d f i l e , w = W r i t 0013240 e f i l e , f = F w d s k 0013260 i p f i l e , b = B a c k 0013300 s k i p f i l e , u = R e w 0013320 i n d " ) \r 0013340 e n d c a s e \r 0013360 ] \r d e f a u l t 0013400 : \r [ \r 0013420 W s s ( m y D s p , 0013440 " B a d c o m m a n d " ) \r 0013460 e n d c a s e 0013500 \r ] \r 0013520 ] \r ] \r ] \r \r a n d 0013540 G e t R e p l y ( ) b e \r [ 0013560 / / g e t b l o c k \r 0013600 376 001 \0 ) \v l e t b = 0 0013620 ; l e t h i = G e t F r 0013640 o m B s p ( ) l s h i f t 8 0013660 \r l e t l e n = h i 0013700 + G e t F r o m B s p ( ) \r 0013720 t s p B u f f e r ! 0 = 0013740 l e n \r f o r b = 0013760 1 t o l e n - 1 d o \r 0014000 [ \r h i = 0014020 G e t F r o m B s p ( ) l s 0014040 h i f t 8 \r t s p 0014060 B u f f e r ! b = h i + 0014100 G e t F r o m B s p ( ) \r 0014120 ] \r ] \r \r a n d G e t F 0014140 r o m B s p ( ) = v a l o f 0014160 \r [ \r l e t c = - 1 0014200 \r u 376 001 \0 226 I n t i l c 0014220 g e 0 d o \r 0014240 [ \r B l o c k ( ) 0014260 \r c = G e t s 0014300 ( b s p S t r ) \r 0014320 ] \r r e s u l t i s c \r 0014340 ] \r \r a n d R e a d R e p l y 0014360 ( ) = v a l o f \r [ / 0014400 / g e t b l o c k a n d i 0014420 f n o t e r r o r o r e 0014440 o f , p r i n t d a t a \r 0014460 G e t R e p l y ( ) / 0014500 / f i l l b l o c k \r s 0014520 t a t u s = t s p B u f f e 0014540 r > > H e r e I s R e c o r d . 0014560 e n d i n g S t a t u s \r 0014600 l e t i = s t 376 001 \0 . \r a 0014620 t u s & # 3 7 4 / / e 0014640 r r o r b i t s \r i f 0014660 i t h e n e r r o r = t 0014700 r u e / / e r r o r \r 0014720 i f s t a t u s < < S t a t 0014740 u s . E O F t h e n r e s u 0014760 l t i s t r u e / / E O 0015000 F \r i f s t a t u s < < 0015020 S t a t u s . E O T t h e n 0015040 e r r o r = t r u e / 0015060 / E O T \r u n l e s s s 0015100 t a t u s < < S t a t u s . R D 0015120 Y t h e n e r r o r = t 0015140 r u e / / n o t r e a d 0015160 y \r u n l e s s s t a t 0015200 u s < < S t a t u s . O N L 376 0015220 001 \0 314 310 t h e n e r r o r = 0015240 t r u e / / n o t o n 0015260 l i n e \r l e t l e n 0015300 = t s p B u f f e r > > H e 0015320 r e I s R e c o r d . r e c o r 0015340 d L e n g t h \r W r i t e 0015360 B l o c k ( f i l e , l v t s 0015400 p B u f f e r > > H e r e I s R 0015420 e c o r d . r e c o r d , ( l e 0015440 n + 1 ) / 2 ) \r r e s u l 0015460 t i s f a l s e / 0015500 / n o t d o n e \r ] \r \r a n d 0015520 W r i t e R e p l y ( ) = 0015540 v a l o f \r [ / / g e t 0015560 b l o c k a n d i f n o t 0015600 e r r o r o r e o f , r 0015620 e t u r 376 001 \0 > 361 n f a l s e 0015640 \r / / r e s u l t = d o n 0015660 e \r G e t R e p l y ( ) 0015700 / / f i l l b l o c k \r 0015720 s t a t u s = t s p B u 0015740 f f e r > > Y e s N o . c o d e 0015760 \r l e t i = s t a t 0016000 u s & # 3 7 4 / / e r 0016020 r o r b i t s \r i f i 0016040 t h e n e r r o r = t r 0016060 u e / / e r r o r \r 0016100 i f s t a t u s < < S t a t u 0016120 s . E O F t h e n e r r o r 0016140 = t r u e / / E O F \r 0016160 i f s t a t u s < < S t 0016200 a t u s . E O T t h e n e r 0016220 r o r = t r u 376 001 \0 024 337 e 0016240 / / E O T \r u n l e s 0016260 s s t a t u s < < S t a t u s 0016300 . R D Y t h e n e r r o r 0016320 = t r u e / / n o t r 0016340 e a d y \r u n l e s s s 0016360 t a t u s < < S t a t u s . O N 0016400 L t h e n e r r o r = t 0016420 r u e / / n o t o n l 0016440 i n e \r r e s u l t i s 0016460 f a l s e / / n o t 0016500 d o n e \r ] \r \r a n d G e t 0016520 Y e s N o ( ) b e \r [ \r 0016540 G e t R e p l y ( ) / / o 0016560 n l y c h e c k e r r o r , 0016600 n o t E O F , E O T , o 0016620 r B O T \r s t a t u 376 001 0016640 \0 255 s s = t s p B u f f e r 0016660 > > Y e s N o . c o d e \r 0016700 l e t i = s t a t u s & 0016720 # 3 7 4 / / e r r o r 0016740 b i t s \r i f i t h e 0016760 n e r r o r = t r u e 0017000 / / e r r o r \r u n l e 0017020 s s s t a t u s < < S t a t u 0017040 s . R D Y t h e n e r r o r 0017060 = t r u e / / n o t 0017100 r e a d y \r u n l e s s 0017120 s t a t u s < < S t a t u s . O 0017140 N L t h e n e r r o r = 0017160 t r u e / / n o t o n 0017200 l i n e \r ] \r \r a n d V e r s 0017220 i o n C o m m a n d ( ) b e \r 0017240 [ 376 001 \0 / 227 / / s e n d 0017260 [ V e r s i o n ] b l o c k 0017300 \r b l k > > V e r s i o n 0017320 . t y p e = c m d V e r s i 0017340 o n / / t y p e f i e l 0017360 d \r b l k > > V e r s i o 0017400 n . v e r s n o = 0 0017420 / / v e r s i o n n u m e 0017440 r i c \r l e t s t r = 0017460 " V e r s i o n 1 . 0 T a 0017500 p e S e r v e r P r o t o c 0017520 o l " \r l e t l e n = 0017540 3 + ( ( s t r > > S t r i 0017560 n g . l e n g t h + 2 ) / 0017600 2 ) \r b l k > > V e r s 0017620 i o n . l e n g t h = l e n 0017640 \r l e t 376 001 \0 037 355 i = 0017660 0 \r f o r i = 0 0017700 t o l e n - 4 d o \r 0017720 [ \r ( l v b l 0017740 k > > V e r s i o n . v e r s t 0017760 e x t ) ! i = s t r ! i 0020000 / / a d d t e x t i n \r 0020020 ] \r B S P W r i 0020040 t e B l o c k ( b s p S t r , b 0020060 l k , 0 , 2 * l e n ) / / 0020100 s e n d t h i s b l o c k \r 0020120 B S P F o r c e O u t p u 0020140 t ( b s p S o c ) / / n o 0020160 w \r ] \r \r a n d O p e n C o m 0020200 m a n d ( ) b e \r [ / / 0020220 s e n d [ O p e n D r i v e 0020240 ] b l o c k \r b l 376 001 \0 0020260 272 217 k > > O p e n D r i v e . t 0020300 y p e = c m d O p e n D r i 0020320 v e / / t y p e f i e l 0020340 d \r b l k > > O p e n D r 0020360 i v e . d r i v e N u m b e r 0020400 = 0 / / d r i v e 0 \r 0020420 l e t s t r = " G l 0020440 e n n " \r l e t l e n 0020460 = 3 + ( ( s t r > > S t r 0020500 i n g . l e n g t h + 2 ) 0020520 / 2 ) \r b l k > > O p e 0020540 n D r i v e . l e n g t h = 0020560 l e n \r l e t i = 0 0020600 \r f o r i = 0 t o 0020620 l e n - 4 d o \r 0020640 [ \r ( l v b l k > 0020660 > O 376 001 \0 256 6 p e n D r i v e . 0020700 u s e r I D ) ! i = s t r ! 0020720 i / / a d d t e x t i 0020740 n \r ] \r B S P 0020760 W r i t e B l o c k ( b s p S t 0021000 r , b l k , 0 , 2 * l e n ) 0021020 / / s e n d t h i s b l o 0021040 c k \r B S P F o r c e O u 0021060 t p u t ( b s p S o c ) / 0021100 / n o w \r ] \r \r a n d C l o s 0021120 e C o m m a n d ( ) b e \r [ 0021140 / / s e n d [ C l o s e 0021160 D r i v e ] b l o c k \r 0021200 b l k > > C l o s e D r i v e . 0021220 t y p e = c m d C l o s e D 0021240 r i v e / / t y p e f i 0021260 e l d \r 376 001 \0 301 k b l k > 0021300 > C l o s e D r i v e . l e n g 0021320 t h = 2 / / t h i s 0021340 i s w h o l e m e s s a g e 0021360 \r B S P W r i t e B l o c 0021400 k ( b s p S t r , b l k , 0 , 4 0021420 ) / / s e n d t h i s 0021440 b l o c k \r B S P F o r c 0021460 e O u t p u t ( b s p S o c ) 0021500 / / n o w \r ] \r \r a n d E 0021520 O F C o m m a n d ( ) b e \r [ 0021540 / / s e n d [ W r i t 0021560 e E O F ] b l o c k \r b 0021600 l k > > W r i t e E n d O f F i 0021620 l e . t y p e = c m d W r i 0021640 t e E O F / / t y p e f 0021660 i e l d \r b l k > 376 001 \0 1 0021700 325 > W r i t e E n d O f F i l e 0021720 . l e n g t h = 2 / / 0021740 t h i s i s w h o l e m e 0021760 s s a g e \r B S P W r i t 0022000 e B l o c k ( b s p S t r , b l 0022020 k , 0 , 4 ) / / s e n d 0022040 t h i s b l o c k \r B S 0022060 P F o r c e O u t p u t ( b s p 0022100 S o c ) / / n o w \r ] \r \r 0022120 a n d R e w i n d C o m m a n 0022140 d ( ) b e \r [ / / s e n 0022160 d [ R e w i n d ] b l o c 0022200 k \r b l k > > R e w i n d 0022220 . t y p e = c m d R e w i n 0022240 d / / t y p e f i e l d 0022260 \r b l k > > R e w i n d . 0022300 l 376 001 \0 024 310 e n g t h = 2 0022320 / / t h i s i s w h o l 0022340 e m e s s a g e \r B S P 0022360 W r i t e B l o c k ( b s p S t 0022400 r , b l k , 0 , 4 ) / / s 0022420 e n d t h i s b l o c k \r 0022440 B S P F o r c e O u t p u t 0022460 ( b s p S o c ) / / n o w 0022500 \r ] \r \r a n d R e a d R e c o 0022520 r d C o m m a n d ( ) b e \r [ 0022540 / / s e n d [ R e a d 0022560 R e c o r d ] b l o c k \r 0022600 W s s ( m y D s p , " . " ) 0022620 \r b l k > > R e a d R e c 0022640 o r d . t y p e = c m d R e 0022660 a d R e c o r d / / t y p 0022700 e f i e l 376 001 \0 214 N d \r 0022720 b l k > > R e a d R e c o r d . 0022740 l e n g t h = 2 / / t 0022760 h i s i s w h o l e m e s 0023000 s a g e \r B S P W r i t e 0023020 B l o c k ( b s p S t r , b l k 0023040 , 0 , 4 ) / / s e n d t 0023060 h i s b l o c k \r B S P 0023100 F o r c e O u t p u t ( b s p S 0023120 o c ) / / n o w \r ] \r \r a 0023140 n d W r i t e R e c o r d C o 0023160 m m a n d ( f i l e , r s i z e 0023200 ) b e \r [ / / s e n d 0023220 [ W r i t e R e c o r d ] b 0023240 l o c k \r W s s ( m y D s 0023260 p , " . " ) \r t s p B u 0023300 f f e r > > W r i t e 376 001 \0 340 e 0023320 R e c o r d . t y p e = c m 0023340 d W r i t e R e c o r d / 0023360 / t y p e f i e l d \r l 0023400 e t l e n = R e a d B l o 0023420 c k ( f i l e , l v t s p B 0023440 u f f e r > > W r i t e R e c o 0023460 r d . r e c o r d , r s i z e / 0023500 2 ) \r t s p B u f f e r > 0023520 > W r i t e R e c o r d . l e n 0023540 g t h = l e n + 3 \r t 0023560 s p B u f f e r > > W r i t e R 0023600 e c o r d . r e c o r d L e n g 0023620 t h = 2 * l e n \r B S 0023640 P W r i t e B l o c k ( b s p S 0023660 t r , t s p B u f f e r , 0 , 6 0023700 + 2 * l e n ) / / s e n d 0023720 376 001 \0 j 355 t h i s b l o c k 0023740 \r B S P F o r c e O u t p 0023760 u t ( b s p S o c ) / / n 0024000 o w \r ] \r \r a n d F i l e F w 0024020 d C o m m a n d ( ) b e \r [ 0024040 / / s e n d [ F w d S p 0024060 a c e F i l e ] b l o c k \r 0024100 b l k > > F w d S p a c e F 0024120 i l e . t y p e = c m d F w 0024140 d S p a c e F i l e / / t 0024160 y p e f i e l d \r b l k 0024200 > > F w d S p a c e F i l e . l 0024220 e n g t h = 2 / / t h 0024240 i s i s w h o l e m e s s 0024260 a g e \r B S P W r i t e B 0024300 l o c k ( b s p S t r , b l k , 0024320 0 , 4 ) 376 001 \0 226 365 / / s e 0024340 n d t h i s b l o c k \r 0024360 B S P F o r c e O u t p u t ( 0024400 b s p S o c ) / / n o w \r 0024420 ] \r \r a n d F i l e B a c k C 0024440 o m m a n d ( ) b e \r [ 0024460 / / s e n d [ B a c k S p a 0024500 c e F i l e ] b l o c k \r 0024520 b l k > > B a c k S p a c e F 0024540 i l e . t y p e = c m d B a 0024560 c k S p a c e F i l e / / 0024600 t y p e f i e l d \r b l 0024620 k > > B a c k S p a c e F i l e 0024640 . l e n g t h = 2 / / 0024660 t h i s i s w h o l e m e 0024700 s s a g e \r B S P W r i t 0024720 e B l o c k ( b s p 376 001 \0 O # S 0024740 t r , b l k , 0 , 4 ) / / 0024760 s e n d t h i s b l o c k \r 0025000 B S P F o r c e O u t p u 0025020 t ( b s p S o c ) / / n o 0025040 w \r ] \r \r a n d C l o s e C o 0025060 n n e c t i o n ( ) b e \r [ 0025100 C l o s e s ( b s p S t r ) 0025120 \r ] \r \r \r a n d G e t K e y s 0025140 ( ) = v a l o f \r [ \r w h i 0025160 l e E n d o f s ( k e y s ) 0025200 d o B l o c k ( ) \r r e s u l 0025220 t i s G e t s ( k e y s ) \r ] 0025240 \r \r a n d G e t S t r i n g ( 0025260 s t r i n g ) b e \r [ \r l e t 0025300 i = 1 \r w h i l e i l 0025320 e 2 5 5 d o \r [ \r 376 0025340 001 \0 355 326 l e t c h a r = 0025360 G e t K e y s ( ) \r s w 0025400 i t c h o n c h a r i n t o 0025420 \r [ \r c 0025440 a s e 1 2 7 : \r 0025460 [ \r i = 0025500 1 \r W s s ( 0025520 m y D s p , " X X X * n " ) \r 0025540 e n d c a s e 0025560 / / d e l \r ] 0025600 \r c a s e $ * n : 0025620 \r [ \r 0025640 s t r i n g > > S t r 0025660 i n g . l e n g t h = i - 1 0025700 \r r e t u r n 0025720 \r e n d c a s 0025740 e / / 376 001 \0 4 236 c r \r 0025760 ] \r c a s 0026000 e 8 : \r [ 0026020 \r i f i 0026040 g r 1 t h e n / / b a 0026060 c k s p a c e \r 0026100 [ \r 0026120 i = i - 1 \r 0026140 E r a s e 0026160 B i t s ( m y D s p , - C h a 0026200 r W i d t h ( m y D s p , s t 0026220 r i n g > > S t r i n g . c h a 0026240 r ^ i ) ) \r 0026260 ] \r e 0026300 n d c a s e \r 0026320 ] \r d e f a u l t 0026340 : \r 376 001 \0 234 ] 0026360 [ \r s t r i n 0026400 g > > S t r i n g . c h a r ^ i 0026420 = c h a r \r 0026440 P u t s ( m y D s p , c h a 0026460 r ) \r i = 0026500 i + 1 \r e 0026520 n d c a s e \r 0026540 ] \r ] \r ] \r ] 0026560 \r \r a n d G e t N u m b e r ( 0026600 ) = v a l o f \r [ \r l e t 0026620 s = v e c 1 2 7 0026640 / / s t r i n g \r l e t d 0026660 = 0 / / d i g i t 0026700 \r l e t n = - 1 \r w h i l 0026720 e n l s 0 d o \r [ 0026740 \r n = 0 \r G 376 001 0026760 \0 R 255 e t S t r i n g ( s ) \r 0027000 l e t i = 0 \r w 0027020 h i l e ( i l s s > > S t 0027040 r i n g . l e n g t h ) & ( 0027060 n g e 0 ) d o \r 0027100 [ \r i = i + 1 0027120 \r n = n * 1 0027140 0 / / n e w d i g i t \r 0027160 d = ( s > > S t 0027200 r i n g . c h a r ^ i ) - 4 0027220 8 \r n = n + 0027240 d \r i f ( d l s 0027260 0 ) % ( d g r 9 ) t 0027300 h e n n = - 1 \r 0027320 ] \r i f n l s 0 0027340 t h e n \r [ \r 0027360 376 \0 B 340 T W s s ( m y D s 0027400 p , " B a d n u m b e r * n 0027420 " ) \r n = 0 \r 0027440 ] \r ] \r r e s u 0027460 l t i s n \r ] \r \r 377 \0 \0 M F T 0027500 P . b r \0 376 001 \0 9 ( 002 002 \t 215 \0 \0 0027520 \0 017 \0 \0 001 321 \0 \0 001 374 \0 \0 \t O \0 \0 0027540 \t 214 \0 \0 \0 \0 \0 \0 \0 < \0 ! \0 \0 005 m 0027560 y D s p \0 ! \0 \0 006 b s p S o c \0 0027600 \0 ! \0 \0 006 b s p S t r \0 \0 ! \0 \0 0027620 004 c t x Q \0 \0 ! \0 \0 \t t s p B u 0027640 f f e r \0 ! \0 \0 004 f i l e \0 \0 ! 0027660 \0 \0 003 b l k \0 ! \0 \0 006 s t a t u 0027700 s \0 \0 ! \0 \0 005 e r r o r \0 A \0 001 0027720 004 M f t p \0 \0 A \0 002 \b T o p L e 0027740 v e l \0 \0 A \0 003 \t K e y s T o N 0027760 e t \0 A \0 004 \b G e t R e p l y \0 0030000 \0 A \0 005 \n G e t F r o m B s p \0 0030020 \0 A \0 006 \t R e a d R e p l y \0 A 0030040 \0 \a \n W r i t e R e p l y \0 \0 A 0030060 \0 \b \b G e t Y e s N o \0 \0 A \0 \t 0030100 016 V e r s i o n C o 376 001 \0 027 252 m 0030120 m a n d \0 \0 A \0 \n \v O p e n C o 0030140 m m a n d \0 A \0 \v \f C l o s e C 0030160 o m m a n d \0 \0 A \0 \f \n E O F C 0030200 o m m a n d \0 \0 A \0 \r \r R e w i 0030220 n d C o m m a n d \0 A \0 016 021 R e 0030240 a d R e c o r d C o m m a n d \0 0030260 A \0 017 022 W r i t e R e c o r d C 0030300 o m m a n d \0 \0 A \0 020 016 F i l e 0030320 F w d C o m m a n d \0 \0 A \0 021 017 0030340 F i l e B a c k C o m m a n d \0 0030360 A \0 022 017 C l o s e C o n n e c t 0030400 i o n \0 A \0 023 \a G e t K e y s \0 0030420 A \0 024 \t G e t S t r i n g \0 A \0 0030440 025 \t G e t N u m b e r \0 \0 \0 \0 002 0030460 W s \0 \0 \0 \0 \0 016 I n i t i a l i 0030500 z e Z o n e \0 \0 \0 \0 \0 \r I n i 376 0030520 001 \0 250 311 t P u p L e v e l 1 \0 \0 0030540 \0 \0 023 C r e a t e D i s p l a y 0030560 S t r e a m \0 \0 \0 \0 021 S h o w D 0030600 i s p l a y S t r e a m \0 \0 \0 \0 0030620 \a E n q u e u e \0 \0 \0 \0 021 I n i 0030640 t i a l i z e C o n t e x t \0 \0 0030660 \0 \0 017 C a l l C o n t e x t L i 0030700 s t \0 \0 \0 \0 003 W s s \0 \0 \0 \0 \n G 0030720 e t P a r t n e r \0 \0 \0 \0 \0 003 d 0030740 s p \0 \0 \0 \0 020 O p e n L e v e l 0030760 1 S o c k e t \0 \0 \0 \0 \0 \r O p e 0031000 n R T P S o c k e t \0 \0 \0 \0 021 C 0031020 l o s e L e v e l 1 S o c k e t 0031040 \0 \0 \0 \0 017 C r e a t e B S P S t 0031060 r e a m \0 \0 \0 \0 005 B l o c k \0 \0 0031100 \0 \0 \a U n q u e u e \0 \0 \0 \0 006 C 0031120 l o s e 376 001 \0 277 265 s \0 \0 \0 \0 \0 \b 0031140 O p e n F i l e \0 \0 \0 \0 \0 003 W o 0031160 s \0 \0 \0 \0 006 E n d o f s \0 \0 \0 \0 0031200 \0 004 G e t s \0 \0 \0 \0 \0 \n W r i t 0031220 e B l o c k \0 \0 \0 \0 \0 \r B S P W 0031240 r i t e B l o c k \0 \0 \0 \0 016 B S 0031260 P F o r c e O u t p u t \0 \0 \0 \0 0031300 \0 \t R e a d B l o c k \0 \0 \0 \0 004 0031320 k e y s \0 \0 \0 \0 \0 \t E r a s e B 0031340 i t s \0 \0 \0 \0 \t C h a r W i d t 0031360 h \0 \0 \0 \0 004 P u t s \0 \0 025 \0 \n \0 0031400 001 \0 \v \0 p \0 \f 001 9 \0 \r 004 003 \0 016 004 0031420 6 \0 017 004 K \0 020 004 226 \0 021 004 322 \0 022 004 0031440 371 \0 023 005 P \0 024 005 235 \0 025 005 266 \0 026 005 0031460 317 \0 027 005 347 \0 030 006 \b \0 031 006 C \0 032 006 0031500 ^ \0 033 006 w \0 034 006 202 \0 035 006 227 \0 036 006 0031520 373 \a R \a R Z 001 \f 370 376 001 \0 374 251 [ D 0031540 \f 367 \t " @ \r M F T P , M a g 0031560 t a p e F i l e T r a n s f 0031600 e r P r o g r a m , v e r s 0031620 i o n 1 . 2 , J u n e 9 , 0031640 1 9 8 0 \0 342 \0 i B \0 001 ! A 306 \0 0031660 B 004 " 004 ) > i > \0 002 ! = 306 \0 B 005 0031700 : 005 ] [ 205 \0 = Y C \0 9 X Z 003 " 004 0031720 - T i U \0 003 ! T 306 \0 B 006 : 006 ] Q 0031740 ! Q 306 \0 B \a : \a ] N ! N 306 \0 B \b 0031760 9 L Z 003 ! K * \b i J \0 003 E I % H 0032000 i H \0 001 ! G 306 \0 B \t = 7 Z \v = M 0032020 Z 003 " \t ) K i K \0 003 212 \0 " \v i H 0032040 \0 002 = + # \0 i W \0 001 001 374 \0 \0 \0 021 0032060 ' 020 \0 \0 ' " \f 366 Z 001 \f 370 \b 254 \f 367 0032100 \t 023 " \r C o n n e c t t o ( 0032120 C R t o e x i t p r o 376 001 0032140 \0 v 273 g r a m ) : \0 342 \0 212 \0 % 0032160 022 i Z \0 002 ! Y 306 \0 B 004 001 017 \0 \0 \0 0032200 005 \0 \0 ' $ \0 \0 ( Q \0 \0 , b # ( \0 0032220 ( \0 \0 \0 \0 \0 \0 O 213 " 004 i G \0 001 : 0032240 004 # \0 9 D 347 300 202 \f 001 006 \f 353 \0 \0 \v 0032260 270 \0 \0 \0 \0 ! ` 306 \0 B 005 : 005 Z \t 375 0032300 \0 Z \n 9 Z Z \v 9 Y Z 003 " 004 - W i 0032320 W \0 005 202 \f 001 003 001 267 \0 \0 ! R 306 \0 B 0032340 006 : 006 ] O : 005 Z 003 % L 255 \0 i K \0 0032360 003 % H - 305 i H \0 002 202 \f 001 031 \t \v 022 0032400 \r F a i l e d t o c o n n e 0032420 c t \0 342 \0 212 \0 % 276 i 006 \0 002 % 2 i 0032440 S \0 001 001 221 \0 \0 \0 017 \0 \0 377 \0 \t 005 006 0032460 \r O p e n ! \0 342 \0 212 \0 % 254 i 364 \0 0032500 002 % i B \0 001 E A ! A 306 \0 B \a = 0032520 227 Z \t = N Z 003 " \a ) L i 253 \0 003 212 0032540 \0 " \t 376 001 \0 374 $ i 250 \0 002 i F \0 \0 0032560 = \v # 016 9 C 347 \0 001 \n \0 217 \0 $ \0 006 0032600 \0 \0 \0 \0 \0 223 \0 \0 \0 \0 \0 \0 9 P 345 \f 0032620 001 005 % N 9 N 345 \f 001 352 % L * \a i K 0032640 \0 002 % 026 i I \0 001 \t \v 023 \r C o n n 0032660 e c t i o n C l o s e d ! 342 \0 0032700 212 \0 % M i 263 \0 002 001 K \0 \0 \0 \0 \0 \0 0032720 \0 333 \f 366 Z 001 \f 370 \0 214 \f 367 i C \0 \0 0032740 i B \0 \0 i ` \0 \0 i > \0 \0 ! ] 306 \0 0032760 B 004 001 [ \0 \0 \a 320 \0 \0 \0 377 375 \0 ] W 0033000 \t \r 027 \r C o m m a n d ( ? f 0033020 o r h e l p ) : 342 \0 212 \0 % 037 0033040 i 205 \0 002 i E \0 \0 B 005 001 T \0 003 376 035 0033060 377 375 \0 220 \0 \0 \0 \0 \t \n 021 C l o s 0033100 e C o n n e c t i o n 342 \0 212 \0 0033120 % 006 i G \0 002 i d \0 \0 001 c \0 233 \f 355 0033140 376 365 \0 \0 \0 \0 \t \r 376 001 \0 3 336 026 R 0033160 e a d f i l e , f i l e n a 0033200 m e ? \0 342 \0 212 \0 % 354 i - \0 002 i 0033220 267 \0 \0 " 004 i J \0 001 " 004 i H \0 001 E 0033240 f = e 372 \f 001 033 001 \a \0 \0 \0 \f \f 355 002 0033260 ] \0 \0 \0 \0 \t \v 023 f i l e s y 0033300 s t e m e r r o r 342 \0 212 \0 % 0033320 311 i \n \0 002 001 ( \f 355 002 . 375 \0 Z 006 375 0033340 \0 Z \a 001 \n \0 344 i r \0 \0 i q \0 \0 B 0033360 006 " \a 203 \0 B \a : 006 372 \f 001 004 = 332 372 0033400 \r 001 363 = 327 372 \r 001 023 \t \a \n R e a d 0033420 e r r o r \0 342 \0 212 \0 % 243 i 344 \0 0033440 002 001 ! \0 \0 \f 355 002 ! \0 346 \0 \0 \t 002 001 0033460 342 \0 212 \0 % 226 i 327 \0 002 " \a 375 P 345 0033500 \0 212 \0 % 217 i J \0 002 \t \b \r r e c 0033520 o r d s r e a d 342 \0 212 \0 % 202 i 0033540 303 \0 002 % 004 i i \0 001 001 336 \0 \0 376 001 \0 0033560 350 \t \t \r 027 W r i t e f i l e 0033600 , f i l e n a m e ? 342 \0 212 \0 0033620 % W i 254 \0 002 i U \0 \0 " 004 i 311 \0 001 0033640 9 Q Z 003 " 004 255 P i 304 \0 003 E 342 = 341 0033660 372 \f 001 027 \t \f 024 f i l e d o e 0033700 s n o t e x i s t \0 342 \0 001 003 0033720 \0 \0 \0 \0 212 \0 % 4 i 211 \0 002 001 247 \0 \0 0033740 \t 020 035 \r R e c o r d s i z e 0033760 i n b y t e s ( 1 0 2 4 ) 0034000 342 \0 212 \0 % 035 i S \0 002 i R \0 \0 B 006 0034020 " 006 202 \f 001 017 \t \a \n u s e d 1 0034040 0 2 4 \0 342 \0 212 \0 % \v i A \0 002 9 \ 0034060 Z 006 " 006 9 Z 344 J 001 024 001 005 001 j 001 } 0034100 001 K \0 002 \t \a \n u s e d 2 0 4 0034120 8 \0 342 \0 212 \0 % 364 i * \0 002 9 F Z 006 0034140 375 \0 Z \a 001 \n % 205 * 006 i f \0 002 i e 0034160 \0 \0 376 001 \0 322 9 " \a 203 \0 B \a % a i 0034200 a \0 001 202 \f 001 004 = ^ 372 \r 001 360 = [ 372 0034220 \r 001 022 \t \t 016 E r r o r o n W 0034240 r i t e \0 342 \0 212 \0 % 315 i 003 \0 002 001 0034260 032 001 277 \0 \0 i f \0 \0 i B \0 \0 % 303 * 0034300 \a i 221 \0 002 \t \n 020 r e c o r d s 0034320 w r i t t e n \0 342 \0 212 \0 % 263 i 0034340 351 \0 002 % . i 256 \0 001 001 M 004 \0 \b \0 \t 0034360 017 032 F w d s k i p f i l e 0034400 , h o w m a n y : \0 342 \0 212 0034420 \0 % 231 i 317 \0 002 i 316 \0 \0 B 006 " 006 202 0034440 \f 001 \n \t 002 001 1 342 \0 212 \0 % 214 i 302 \0 0034460 002 375 P Z 006 375 \0 ] i 001 9 \0 \0 \0 \0 002 0034500 002 \0 \0 001 245 " 006 375 P 345 \0 B 006 i _ \0 0034520 \0 i ^ \0 \0 = 367 372 \r 001 ) % W 9 307 347 0034540 004 205 P 202 \r 001 026 \t \v 023 c a n ' t 0034560 s k i p p a 376 001 \0 f : s t E 0034600 O T 342 \0 001 004 \0 \0 \f 355 \0 367 212 \0 % g 0034620 i 223 \0 002 001 016 \t \b \r e r r o r i 0034640 n s k i p 342 \0 212 \0 % Y i 205 \0 002 0034660 " 006 202 \r 001 \n = 311 372 \f 001 \a % ) 9 231 0034700 347 004 205 P 202 \r 001 302 001 340 \t 017 033 B a 0034720 c k s k i p f i l e , h o 0034740 w m a n y : 342 \0 212 \0 % 8 i V 0034760 \0 002 i U \0 \0 B 006 " 006 202 \f 001 016 \t 002 0035000 001 1 342 \0 212 \0 % + i I \0 002 001 004 \0 \0 0035020 \0 \0 \0 \0 375 P Z 006 375 \0 ] 372 001 2 " 006 0035040 375 P 345 \0 B 006 i K \0 \0 i 364 \0 \0 = 215 0035060 372 \r 001 016 \t \b \r e r r o r i n 0035100 s k i p 342 \0 212 \0 % \n i ( \0 002 % 340 0035120 9 g 347 004 205 P 202 \r 001 024 001 002 002 i \t \f 0035140 025 A t b e g i n n i n g o 0035160 f t a p e 342 \0 212 \0 % 361 376 001 \0 e 0035200 371 i 017 \0 002 " 006 202 \r 001 \n = M 372 \f 001 0035220 \a % 301 9 H 347 004 205 P 202 \r 001 304 001 p 002 0035240 240 002 241 \t 005 \a R e w i n d 342 \0 212 0035260 \0 % 330 i 366 \0 002 i K \0 \0 i J \0 \0 001 0035300 _ \0 \0 \t * P \r c = C l o s e , 0035320 r = R e a d f i l e , w = W 0035340 r i t e f i l e , f = F w d 0035360 s k i p f i l e , b = B a 0035400 c k s k i p f i l e , u = 0035420 R e w i n d \0 342 \0 212 \0 % 243 i 301 \0 0035440 002 001 . \b \0 002 351 \t \b \f B a d c 0035460 o m m a n d \0 342 \0 212 \0 % 223 i 261 \0 0035500 002 001 036 \f 355 \0 034 001 033 " 005 001 003 \0 \0 001 0035520 201 \f 350 \0 w \0 006 376 025 377 347 377 244 377 345 377 0035540 344 375 217 \f 350 \0 f \0 005 376 310 377 336 377 335 375 0035560 q 377 / \f 351 \0 001 \0 ? 377 245 001 326 001 G \f 0035600 366 376 001 \0 255 C Z 001 \f 370 \0 \f \f 367 375 \0 0035620 Z 004 i \ \0 \0 9 [ 347 300 B 005 : 005 Z 006 0035640 i U \0 \0 * 006 216 \0 J 006 " 006 = Q C \0 0035660 375 P Z \a " 006 375 P 345 \0 B \b 001 023 i F 0035700 \0 \0 9 E 347 300 B 005 : 005 Z \t i ? \0 \0 0035720 * \t 216 \0 " \a = < 236 \0 K \0 " \a 203 \0 0035740 B \a " \a : \b 344 J 001 353 \f 366 Z 001 \f 370 0035760 \0 \b \f 367 374 \0 Z 004 001 \a i U \0 \0 % T 0036000 i T \0 001 B 004 " 004 202 J 001 370 " 004 001 003 0036020 \f 355 375 004 \f 366 Z 001 \f 370 \0 \v \f 367 i 233 0036040 \0 \0 = 026 ; 002 ] d % c 9 c 347 \0 B 004 0036060 : 004 372 \r 001 003 374 \0 ] ] % Z 9 \ 347 004 0036100 205 P 202 \r 001 006 204 \0 001 1 \0 \0 \0 377 \0 226 0036120 % O 9 R 347 004 205 P 202 \r 001 003 374 \0 ] J 0036140 % G 202 @ 205 p 202 \f 001 003 374 \0 ] C % @ 0036160 9 W 347 004 205 P 202 \f 001 003 374 \0 ] ; = 350 0036200 ; 003 Z 005 % 345 376 001 \0 002 374 9 M 346 \0 * 0036220 005 253 \0 B \b 242 \0 ) k \f 344 J 003 % i * 0036240 \b i h \0 003 205 \0 001 004 002 j 001 6 \0 \0 \f 0036260 366 Z 001 \f 370 \0 006 \f 367 i ] \0 \0 = 313 ; 0036300 003 ] 031 % 030 9 030 347 \0 B 004 : 004 372 \r 001 0036320 003 374 \0 ] 022 % 017 9 021 347 004 205 P 202 \r 001 0036340 003 374 \0 ] \n % \a 9 \n 347 004 205 P 202 \r 001 0036360 \t 001 006 003 L \0 374 003 325 002 \0 004 \0 374 \0 ] 0036400 374 % 371 202 @ 205 p 202 \f 001 003 374 \0 ] 365 % 0036420 362 9 \t 347 004 205 P 202 \f 001 003 374 \0 ] 355 205 0036440 \0 001 003 @ \0 \0 004 \f 366 Z 001 \f 370 \0 006 \f 0036460 367 i ! \0 \0 = 217 ; 003 ] 335 % 334 9 334 347 0036500 \0 B 004 : 004 372 \r 001 003 374 \0 ] 326 % 323 202 0036520 @ 205 p 202 \f 001 003 374 \0 ] 317 % 314 9 343 347 0036540 004 205 P 202 \f 001 \b 374 \0 ] 307 001 005 \0 002 002 0036560 347 \0 \0 003 352 \f 366 Z 001 \f 370 \0 \r \f 367 ! 0036600 Q = Q C 001 205 \0 = N C 002 376 001 \0 370 s 0036620 \t 022 V e r s i o n 1 . 0 T 0036640 a p e S e r v e r P r o t o 0036660 c o l \0 342 \0 B 004 : 004 # \0 9 ^ 347 300 0036700 9 331 346 \0 ) 327 \f 344 9 / 356 \0 J 005 " 005 0036720 = , C \0 375 \0 Z 006 375 \0 Z \a " 005 9 246 0036740 345 \0 B \b 001 016 " \a : 004 236 \0 # \0 - 035 0036760 9 033 356 \0 : \a 276 \0 C \0 " \a 203 \0 B \a 0037000 " \a : \b 344 J 001 360 375 \0 Z \n " 005 202 P 0037020 B \v 9 T Z 003 % S - \b i R \0 004 % Q 0037040 i Q \0 001 \f 366 \0 003 \0 224 Z 001 \f 370 \0 \r 0037060 \f 367 ! a = 372 C 001 205 \0 = 367 C 002 \t 004 0037100 005 G l e n n 342 \0 B 004 : 004 # \0 9 025 0037120 347 300 9 220 346 \0 ) 216 \f 344 9 346 356 \0 J 005 0037140 " 005 = 343 C \0 375 \0 Z 006 375 \0 Z \a " 005 0037160 9 [ 345 \0 B \b 001 017 377 \0 " \a : 004 236 \0 0037200 # \0 - 323 9 321 356 \0 : \a 276 \0 C \0 " \a 0037220 376 001 \0 \0 L 203 \0 B \a " \a : \b 344 J 001 0037240 360 375 \0 Z \n " 005 202 P B \v 9 \n Z 003 % 0037260 \t - 276 i \b \0 004 % \a i \a \0 001 \f 366 \0 0037300 \a 004 223 \0 \0 001 022 \0 \0 Z 001 \f 370 \0 \n \f 0037320 367 ! 367 = 255 C 001 ! b = 252 C \0 375 \0 Z 0037340 \a 9 % Z \b 9 # Z 003 % 354 - 241 i 353 \0 0037360 004 % 352 i 352 \0 001 \f 366 \0 006 Z 001 \f 370 \0 0037400 \n \f 367 ! M = 224 C 001 ! I = 221 C \0 375 0037420 \0 Z \a 9 \f Z \b 9 \n Z 003 % 323 - 210 i 0037440 322 \0 004 % 321 i 321 \0 001 \f 366 \0 004 Z 001 \f 0037460 370 \0 \n \f 367 ! g = g C 001 ! 0 = d C 0037500 \0 375 \0 Z \a 9 363 Z \b 9 361 Z 003 % 272 - 0037520 [ i 271 \0 004 % 270 i 270 \0 001 \f 366 Z 001 \f 0037540 370 \0 \n \f 367 \t 002 001 . 342 \0 212 \0 % M i 0037560 M \0 002 ! L = H C 001 ! 021 = E C \0 375 0037600 \0 Z \a 9 324 Z \b 9 322 Z 003 % 233 - < i 0037620 232 \0 004 % 231 376 001 \0 201 245 i 231 \0 001 \f 366 0037640 \0 002 \0 016 Z 001 \f 370 \0 \r \f 367 \t 002 001 . 0037660 342 \0 212 \0 % , i , \0 002 ! H = H C 001 0037700 % F 9 F 346 \0 B \b " 005 ) 353 \f 344 J 003 0037720 " 004 * \b i V \0 003 B 006 " 006 9 9 346 \0 0037740 = 6 C \0 " 006 202 P = 2 C 002 375 \0 Z \n 0037760 " 006 202 P 9 205 346 \0 B \v 9 L Z 003 % K 0040000 - & i J \0 004 001 006 \0 020 005 O 003 s 003 222 0040020 \0 \b % H i H \0 001 \f 366 Z 001 \f 370 \0 \n 0040040 \f 367 ! M = 363 C 001 ! 274 = 360 C \0 375 \0 0040060 Z \a 9 F Z \b 9 D Z 003 % - - 347 i , 0040100 \0 004 % 0 i 0 \0 001 \f 366 \0 \t 004 g \0 003 0040120 Z 001 \f 370 \0 \n \f 367 ! L = 330 C 001 ! 241 0040140 = 325 C \0 375 \0 Z \a 9 + Z \b 9 ) Z 003 0040160 % 022 - 314 i 021 \0 004 % 025 i 025 \0 001 \f 366 0040200 \0 \0 Z 001 \f 370 \0 \a \f 367 % 005 i S \0 001 0040220 \f 366 \0 \a 005 231 005 232 Z 001 376 001 \0 017 036 \f 0040240 370 \0 \a \f 367 001 005 005 233 005 234 i G \0 \0 % 0040260 F i F \0 001 202 \f 001 372 % A i O \0 001 001 0040300 003 \0 \f \0 004 \f 366 Z 001 \f 370 \0 \r \f 367 375 0040320 P Z 005 001 Y i F \0 \0 B 006 001 D 375 P Z 0040340 005 \t 004 004 X X X \r \0 342 \0 212 \0 % 222 i 0040360 222 \0 002 001 I \0 \r " 005 375 P 345 \0 * 004 202 0040400 300 \f 360 377 \0 \f 366 001 ? " 005 375 P 344 J 001 0040420 023 " 005 375 P 345 \0 B 005 = ) Z \b " 004 * 0040440 005 \f 362 212 \0 % # i # \0 002 201 \0 212 \0 " 0040460 \b i 037 \0 002 001 ( 002 h 004 222 \0 \0 002 350 : 0040500 006 Z 003 " 004 * 005 \f 364 % 021 * 006 i 022 \0 0040520 002 " 005 203 \0 B 005 001 027 004 224 \f 355 \0 024 001 0040540 023 001 246 " 006 001 \a \f 355 \0 016 006 < \0 \0 \0 0040560 \0 \0 \0 \f 351 \0 003 \0 177 377 262 \0 \r 377 275 \0 0040600 \b 377 304 001 336 " 005 9 S 344 J 001 245 \f 366 Z 0040620 001 \f 370 \0 214 \f 367 ! 225 306 \0 B 004 375 \0 376 0040640 001 \0 : 266 Z 005 374 \0 Z 006 001 ? 375 \0 Z 006 0040660 " 004 i B \0 001 375 \0 Z \a 001 033 " \a 203 \0 0040700 B \a " 006 ) : \f 343 J 006 " 004 * \a \f 362 0040720 9 5 345 \0 B 005 " 006 : 005 346 \0 B 006 " 005 0040740 202 J 001 005 " 005 9 + 344 J 001 003 374 \0 Z 006 0040760 : 004 # \0 9 % 347 300 * \a 215 K 001 004 " 006 0041000 202 K 001 335 " 006 202 K 001 020 \t \b \f B a 0041020 d n u m b e r \r \0 342 \0 212 \0 % 251 0041040 i 020 \0 002 375 \0 Z 006 " 006 202 J 001 300 " 006 0041060 001 002 \0 377 \f 366 001 341 \0 \n \0 0 \0 \t 377 \0 0041100 006 = \0 < 006 351 006 207 006 200 001 h 006 \ 004 365 0041120 006 ; 004 267 004 271 \0 \0 \0 250 001 I 004 367 004 e 0041140 002 3 002 346 003 N 001 200 001 241 \0 \0 003 \b 003 351 0041160 002 2 002 345 003 M 003 243 001 336 006 344 \a L 003 223 0041200 \0 j \0 m \0 222 \0 232 \0 234 \0 253 \0 252 \0 276 0041220 \a Q 001 020 001 017 001 023 001 024 001 4 001 5 006 320 0041240 001 i 006 317 376 \0 032 E 356 001 342 002 9 006 322 006 0041260 340 004 366 006 201 006 210 006 v 006 321 006 353 006 352 006 0041300 354 \0 \0 377 \0 \0 L i n k M F T P . c 0041320 m \0 376 001 \0 316 255 b l d r / f M F 0041340 T P P u p 1 b P u p 1 I n i 0041360 t P u p 1 O p e n C l o s e 0041400 P u p A l 1 a P u p A l E t h 0041420 a P u p A l E t h b P u p A 0041440 l E t h I n i t A l t o B y t 0041460 e B l t A l t o Q u e u e A 0041500 l t o T i m e r P u p B S P a 0041520 P u p B S P B l o c k P u p 0041540 B S P O p e n C l o s e P u p 0041560 B S P P r o t P u p B S P S t 0041600 r e a m s C o n t e x t C o 0041620 n t e x t I n i t P u p D u m 0041640 m y G a t e I n t e r r u p t 0041660 I n t e r r u p t I n i t P 0041700 u p N a m e L o o k u p P u p 0041720 R o u t e P 376 \0 032 ' 037 u p R T 0041740 P P u p R T P O p e n C l o s 0041760 e \r \r 377 \0 \0 D u m p M F T 0042000 P S o u r c e s . c m \0 376 \0 y b 0042020 375 f t p i v y c o n n / c 0042040 T a p e S e r v e r d i r / c 0042060 > S o f t w a r e S o u r c e 0042100 s > d u m p / c M F T P S o 0042120 u r c e s . d m M F T P . b c 0042140 p l M F T P . b r L i n k M 0042160 F T P . c m D u m p M F T P S 0042200 o u r c e s . c m \r 374 0042213