$ od -c -N 50000 [Indigo]<AltoSource>KPMSOURCE.DM!1 0000000 377 \0 \0 K P M . b c p l \0 376 001 \0 221 0000020 002 / / K P M . b c p l - - 0000040 t e s t f o r K P M T e m p 0000060 l a t e p a c k a g e \r / / 0000100 C o p y r i g h t X e r o x 0000120 C o r p o r a t i o n 1 9 7 9 0000140 \r \r e x t e r n a l \r [ \r S e t 0000160 u p R e a d P a r a m ; R e a 0000200 d P a r a m \r M a k e K P M T e 0000220 m p l a t e ; M a t c h K P M 0000240 T e m p l a t e \r P u t s ; W 0000260 s ; F r e e \r \r s y s Z o n e 0000300 ; d s p \r ] \r \r s t r u c t u 0000320 r e S t r i n g : [ l e n 0000340 g t h b y t e ; c h a r ^ 1 0000360 , 2 5 5 b y t e ] \r \r \r / / 0000400 - - - - - - - - - - - - - - - - 0000420 - 376 001 \0 \n 024 - - - - - - - - - - 0000440 - - - - - - - - - - - - - - - - * 0000500 - - - - - - \r l e t K P M ( ) 0000520 b e \r / / - - - - - - - - - - 0000540 - - - - - - - - - - - - - - - - * 0000620 - - - - - - - \r [ \r l e t p a 0000640 t t e r n , s t r i n g = 0000660 v e c 1 2 7 , v e c 1 2 7 0000700 \r S e t u p R e a d P a r a m ( 0000720 ) \r [ \r R e a d P a 0000740 r a m ( $ P , " P a t t e r n 0000760 : " , p a t t e r n ) \r 0001000 R e a d P a r a m ( $ P , " 0001020 S t r i n g 376 001 \0 \ i : " , 0001040 s t r i n g ) \r l e t t 0001060 e m p l a t e = M a k e K P 0001100 M T e m p l a t e ( p a t t e r 0001120 n ) \r l e t c o d e = 0001140 M a t c h K P M T e m p l a t 0001160 e ( s t r i n g , t e m p l a 0001200 t e ) \r t e s t c o d e 0001220 e q 0 \r i f s o 0001240 W s ( " S t r i n g m a t c 0001260 h e s p a t t e r n . * n " ) 0001300 \r i f n o t t e s 0001320 t c o d e e q 1 \r 0001340 i f s o W s ( " S t 0001360 r i n g d o e s n ' t m a t 0001400 c h p a t t e r n a t a l 0001420 l . * n " ) \r 376 \0 345 * 334 0001440 i f n o t \r 0001460 [ \r 0001500 W s ( " S t r i n g 0001520 m a t c h e s p a t t e r n 0001540 o n l y t h r o u g h * " " 0001560 ) \r f o 0001600 r i = 1 t o c o d e - 0001620 1 d o P u t s ( d s p , s 0001640 t r i n g > > S t r i n g . c h 0001660 a r ^ i ) \r 0001700 W s ( " * " * n " ) \r 0001720 ] \r F r 0001740 e e ( s y s Z o n e , t e m p 0001760 l a t e ) \r ] r e p e a 0002000 t \r ] \r \r 377 \0 \0 K P M T e m p l 0002020 a t e b . b c p l \0 376 001 \0 201 376 / 0002040 / K P M T e m p l a t e b . b 0002060 c p l \r / / K n u t h - P r a 0002100 t t - M o r r i s p a t t e r 0002120 n m a t c h e r f o r I F 0002140 S ( b c p l p o r t i o n ) 0002160 \r / / C o p y r i g h t X e 0002200 r o x C o r p o r a t i o n 0002220 1 9 7 9 \r \r e x t e r n a l \r [ 0002240 \r / / o u t g o i n g p r o c 0002260 e d u r e s \r M a k e K P M T e 0002300 m p l a t e \r \r / / i n c o m i 0002320 n g p r o c e d u r e s \r A l 0002340 l o c a t e ; Z e r o \r \r / / 0002360 i n c o m i n g s t a t i c s 0002400 \r s y s Z o n e \r ] \r \r \r / / a 0002420 l l t h e f o l l o w i n 376 0002440 001 \0 l a g d e c l a r a t i o 0002460 n s a r e k n o w n a b o 0002500 u t b y t h e c o d e \r / 0002520 / i n K P M T e m p l a t e a 0002540 . a s m \r \r s t r u c t u r e 0002560 T T : / / T e m p l a t e 0002600 t o k e n \r [ \r f a i l b y t 0002620 e \t / / f a i l p o i n t e r 0002640 \r c h a r b y t e \t / / c h a 0002660 r a c t e r o r s p e c i a 0002700 l m a t c h c o d e \r ] \r \r 0002720 s t r u c t u r e T ^ 1 , 2 5 0002740 5 @ T T / / T e m p l a t 0002760 e \r \r m a n i f e s t \r [ \r / / 0003000 s p e c i a l m a t c h c o 0003020 d e s ( i n p l a c e o f 0003040 c h a 376 001 \0 6 ) r a c t e r ) 0003060 \r m c E n d = 0 \t / / e n d 0003100 o f t e m p l a t e , n o 0003120 t r a i l i n g " * " \r m c 0003140 S t a r = 1 \t / / " * " m 0003160 a t c h c h a r a c t e r h 0003200 e r e \r m c E n d S t a r = 0003220 2 \t / / " * " m a t c h c h 0003240 a r a c t e r h e r e , e n 0003260 d i n g t e m p l a t e \r m c 0003300 F a i l = 3 \t / / i m m e d 0003320 i a t e f a i l i f y o u 0003340 g e t h e r e \r \r m c M a x 0003360 = 3 \t / / h i g h e s t s 0003400 p e c i a l m a t c h c o d 0003420 e \r ] \r \r / / a n n - c h a r 0003440 a c t e r t e m 376 001 \0 5 264 p l 0003460 a t e h a s n + 2 t o k e 0003500 n s . \r / / t h e l a s t t 0003520 w o a r e m c E n d a n d 0003540 m c F a i l . \r / / f a i l u 0003560 r e s f r o m t h e n o n 0003600 - * p r e f i x ( i f a n 0003620 y ) g o t o t h e m c F 0003640 a i l t o k e n . \r / / f a i 0003660 l u r e f r o m t h e m c 0003700 E n d t o k e n g o b a c 0003720 k t o t h e l a s t " * 0003740 " i f t h e r e \r / / w a s 0003760 o n e , o r t o t h e 0004000 m c F a i l t o k e n o t h 0004020 e r w i s e . \r \r s t r u c t u 0004040 r e S t r i n g [ l e 376 001 0004060 \0 352 C n g t h b y t e ; c h 0004100 a r ^ 1 , 2 5 5 b y t e ] \r 0004120 \f \r / / - - - - - - - - - - - - 0004140 - - - - - - - - - - - - - - - - * 0004220 - - - - - \r l e t M a k e K P 0004240 M T e m p l a t e ( p a t t e r 0004260 n ) = v a l o f \r / / - - - 0004300 - - - - - - - - - - - - - - - - * 0004360 - - - - - - - - - - - - - - \r / 0004400 / b u i l d s a n d r e t u 0004420 r n s a t e m p l a t e f 0004440 o r t h e s u p p l i e d 0004460 p a t 376 001 \0 202 302 t e r n s t r 0004500 i n g . \r [ \r l e t l e n g t 0004520 h = p a t t e r n > > S t r 0004540 i n g . l e n g t h \r l e t t 0004560 e m p l a t e = A l l o c a 0004600 t e ( s y s Z o n e , l e n g 0004620 t h + 2 ) \r Z e r o ( t e m p l 0004640 a t e , l e n g t h + 2 ) \r l 0004660 e t t B a s e = n i l 0004700 / / b a s e o f c u r r e n 0004720 t n o n - " * " s u b s t r 0004740 i n g \r l e t t i = n i l 0004760 / / i n d e x i n c u r 0005000 r e n t n o n - " * " s u b 0005020 s t r i n g \r l e t f i = 0005040 n i l / / c u r r e n t f 0005060 a i l p o i n 376 001 \0 7 311 t e r 0005100 \r l e t e x a c t = t r u 0005120 e / / e x a c t m a t c h 0005140 r e q u i r e d u n t i l 0005160 w e e n c o u n t e r " * " 0005200 \r f o r i = 1 t o l e 0005220 n g t h + 1 d o \r [ \r 0005240 l e t c = ( i l e 0005260 l e n g t h ? p a t t e r n > 0005300 > S t r i n g . c h a r ^ i , 0005320 m c E n d ) \r i f c g 0005340 e $ a & c l e $ z t 0005360 h e n c = c - ( $ a - $ A 0005400 ) \r t e s t c e q $ 0005420 * * \r i f n o t \r 0005440 [ \r 0005460 t e m p l a t e > > 376 001 \0 0005500 215 1 T ^ i . c h a r = c \r 0005520 t e s t e x a 0005540 c t \r i 0005560 f s o t e m p l a t e > > T ^ 0005600 i . f a i l = l e n g t h + 0005620 2 \r i f 0005640 n o t \r 0005660 [ \r 0005700 t i = t i + 1 \r 0005720 i f 0005740 t i g r 1 t h e n \r 0005760 [ 0006000 \r 0006020 f i = f i + 1 \r 0006040 t 0006060 B a s e > > T ^ t i . f a i l 0006100 = 376 001 \0 205 353 ( c n e t B a 0006120 s e > > T ^ f i . c h a r ? \r 0006140 0006160 f i , t B a s e > > T ^ f 0006200 i . f a i l ) \r 0006220 w h i l e 0006240 f i n e 0 & c n e t 0006260 B a s e > > T ^ f i . c h a r 0006300 d o \r 0006320 f i = t B a 0006340 s e > > T ^ f i . f a i l \r 0006360 0006400 ] \r 0006420 ] \r ] \r 0006440 i f s o \r 0006460 [ \r t e m 0006500 p l a t e > > 376 001 \0 g b T ^ i . 0006520 c h a r = ( i e q l e n 0006540 g t h ? m c E n d S t a r , 0006560 m c S t a r ) \r 0006600 t B a s e = t e m p l a t 0006620 e + i \r e x a 0006640 c t = f a l s e \r 0006660 t i , f i = 0 , 0006700 0 \r ] \r 0006720 ] \r t e m p l a t e > > T ^ ( l 0006740 e n g t h + 2 ) . c h a r = 0006760 m c F a i l / / a p p e n d 0007000 s p e c i a l f a i l t o 0007020 k e n \r r e s u l t i s t e m 0007040 p l a t e \r ] \r \f \r / / t h e 0007060 f o l l o w i n g p r o c e d 0007100 u r e i s h a n d - 376 001 \0 256 0007120 342 c o d e d i n K P M T e m 0007140 p l a t e a . a s m \r \r / / - - 0007160 - - - - - - - - - - - - - - - - * 0007240 - - - - - - - - - - - - - - - \r 0007260 / / a n d M a t c h K P M T e 0007300 m p l a t e ( s t r i n g , t 0007320 e m p l a t e ) = v a l o f 0007340 \r / / - - - - - - - - - - - - - 0007360 - - - - - - - - - - - - - - - - * 0007440 - - - - \r / / m a t c h e s s 0007460 t r i n g a g a i n s t t e 0007500 m p l a t e , r e t u r n i n 0007520 g 376 001 \0 356 s z e r o i f t 0007540 h e y m a t c h \r / / a n d 0007560 t h e i n d e x o f t h e 0007600 f i r s t n o n - m a t c h 0007620 i n g c h a r a c t e r o t 0007640 h e r w i s e . \r / / [ \r / / l 0007660 e t t i = 0 / / t e m 0007700 p l a t e i n d e x \r / / f o 0007720 r s i = 1 t o s t r i 0007740 n g > > S t r i n g . l e n g t 0007760 h d o \r / / [ \r / / 0010000 l e t c = s t r i n g > 0010020 > S t r i n g . c h a r ^ s i \r 0010040 / / i f c g e $ a 0010060 & c l e $ z t h e n c 0010100 = c - ( $ a - $ A ) \r / / 0010120 t i = 376 001 \0 272 v t i + 1 0010140 \r / / w h i l e t i n 0010160 e 0 & c n e t e m p l 0010200 a t e > > T ^ t i . c h a r d 0010220 o \r / / [ \r / / 0010240 t e s t t e m p l a t 0010260 e > > T ^ t i . c h a r l e 0010300 m c M a x / / s p e c i a l 0010320 m a t c h c o d e ? \r / / 0010340 i f n o t t i 0010360 = t e m p l a t e > > T ^ t 0010400 i . f a i l \r / / 0010420 i f s o s w i t c h o n 0010440 t e m p l a t e > > T ^ t i . c 0010460 h a r i n t o \r / / 0010500 [ \r / / 0010520 c a s e 376 001 \0 1 , 0010540 m c S t a r : / / " * " 0010560 - s t a r t n e w m a t c 0010600 h \r / / 0010620 [ t e m p l a t e = 0010640 t e m p l a t e + t i ; t i 0010660 = 1 ; e n d c a s e ] \r / 0010700 / c a s 0010720 e m c E n d S t a r : / / 0010740 " * " a t e n d o f t e 0010760 m p l a t e , d o n e \r / / 0011000 r e 0011020 s u l t i s 0 \r / / 0011040 c a s e m c E n 0011060 d : / / r a n o f f e n 0011100 d o f t e m p l a t e , f 0011120 a l l b a c k \r / / 0011140 376 001 \0 267 035 [ 0011160 t i = t e m p l a t e > > 0011200 T ^ t i . f a i l ; e n d c a 0011220 s e ] \r / / 0011240 c a s e m c F a i l : 0011260 / / f a i l e d b e f o r e 0011300 f i r s t " * " \r / / 0011320 r e s u 0011340 l t i s s i \r / / 0011360 ] \r / / 0011400 ] \r / / ] \r \r / / i f w 0011420 e r u n o f f t h e e n 0011440 d o f t h e s t r i n g , 0011460 t h e n e x t t e m p l a 0011500 t e \r / / t o k e n m u s t 0011520 b e a n " e n d " o r " 0011540 e n d * " 376 \0 s Y 336 \r / / l e t 0011560 t c = t e m p l a t e > > 0011600 T ^ ( t i + 1 ) . c h a r \r / / 0011620 r e s u l t i s ( t c e q 0011640 m c E n d % t c e q m c 0011660 E n d S t a r ? \r / / 0 , s 0011700 t r i n g > > S t r i n g . l e 0011720 n g t h + 1 ) \r / / ] \r \r 377 \0 \0 0011740 K P M T e m p l a t e a . a s m 0011760 \0 376 001 \0 025 _ ; K P M T e m p l 0012000 a t e a . a s m - - a s s e 0012020 m b l y p o r t i o n o f 0012040 K P M p a t t e r n m a t c 0012060 h e r \r ; C o p y r i g h t 0012100 X e r o x C o r p o r a t i o 0012120 n 1 9 7 9 \r \r . b e x t M a 0012140 t c h K P M T e m p l a t e \r \r 0012160 . s r e l \r \r M a t c h K P M T 0012200 e m p l a t e : . M a t c h K 0012220 P M T e m p l a t e \r \r . n r e 0012240 l \r \r ; M a t c h K P M T e m 0012260 p l a t e ( s t r i n g , t e 0012300 m p l a t e ) = 0 o r i 0012320 n d e x o f f a i l i n g 0012340 c h a r \r ; m a t c h e s s 0012360 t r i n g 376 001 \0 E 266 a g a i n 0012400 s t t e m p l a t e . \r ; s 0012420 e e K P M T e m p l a t e b . 0012440 b c p l f o r b c p l v e 0012460 r s i o n o f t h i s p r 0012500 o c e d u r e . \r ; * * * t 0012520 h i s v e r s i o n i s n 0012540 o t r e e n t r a n t * * * 0012560 \r \r . M a t c h K P M T e m p l 0012600 a t e : \r \t s t a 3 1 2 \r 0012620 \t s t a 0 2 2 \t \t ; s t r 0012640 i n g \r \t s t a 1 3 2 \t \t 0012660 ; t e m p l a t e \r \t l d a 0 0012700 @ 2 2 \t \t ; g e t s t r i 0012720 n g l e n g t h \r \t l d a 1 0012740 c 1 7 7 4 0 0 \r \t a n d s 1 0012760 0 \r \t i n c 0 0 376 001 \0 312 c 0013000 \t \t \t ; a d d 1 \r \t s t a 0 0013020 s C o u n t \t \t ; s t o r e 0013040 c o u n t \r \t s t a 0 i C o 0013060 u n t \t \t ; i n i t i a l c o 0013100 u n t \r \t m k o n e 0 0 \t \t 0013120 ; s t a r t o n r i g h t 0013140 b y t e \r \t s t a 0 s B y t 0013160 e \r \r ; b a c k h e r e w 0013200 h e n a l l m a t c h e s 0013220 h a v e f a i l e d a n d 0013240 w e n e e d t o r e s t a 0013260 r t \r ; t h e m a t c h w 0013300 i t h a n e w s t r i n g 0013320 c h a r a c t e r . \r r e s t 0013340 i n : \t m k z e r o 0 0 \t \t 0013360 ; i n i t i a l i z e t e m p 0013400 376 001 \0 ? 240 l a t e i n d e x \r 0013420 \t s t a 0 t I n d e x \r \r ; 0013440 g e t n e x t s t r i n g 0013460 c h a r a c t e r \r s t r n x 0013500 t : \t d s z s C o u n t \t \t ; 0013520 d e c r e m e n t a n d t e 0013540 s t s t r i n g c o u n t \r 0013560 \t j m p . + 2 \r \t j m p 0013600 s t r e n d \t \t ; e n d o f 0013620 s t r i n g \r \t l d a 0 @ 2 0013640 2 \t \t ; g e t w o r d c o 0013660 n t a i n i n g n e x t b y 0013700 t e \r \t d s z s B y t e \t \t ; 0013720 w h i c h b y t e n e x t ? 0013740 \r \t j m p s t r l f t \t \t ; 0013760 l e f t \r \t l d a 1 c 3 7 7 0014000 \t \t ; r i 376 001 \0 320 307 g h t , m 0014020 a s k i t \r \t a n d 1 0 \r 0014040 \t i s z 2 2 \t \t \t ; a d v a 0014060 n c e p o i n t e r f o r 0014100 n e x t \r \t j m p c h k l w c 0014120 \r \r s t r l f t : \t l d a 1 0014140 c 1 7 7 4 0 0 \t \t ; l e f t , 0014160 m a s k a n d s w a p \r \t a 0014200 n d s 1 0 \r \t m k o n e 1 0014220 1 \t \t ; n e x t b y t e i 0014240 s r i g h t \r \t s t a 1 s 0014260 B y t e \r \r c h k l w c : \t l d 0014300 a 1 c 1 4 0 \t \t ; l o w e r 0014320 - c a s e l e t t e r ? \r \t s 0014340 g t 0 1 \r \t j m p t m p 0014360 n x t \t \t ; n o \r \t l d a 1 0014400 c 1 7 2 \r \t s l e 376 001 \0 177 227 0 0014420 1 \r \t j m p t m p n x t \t 0014440 \t ; n o \r \t l d a 1 c 4 0 \t 0014460 \t ; y e s , c o n v e r t t 0014500 o u p p e r \r \t s u b 1 0 0014520 \r \r ; a d v a n c e t e m p 0014540 l a t e i n d e x \r t m p n x 0014560 t : \t i s z t I n d e x \r \t l 0014600 d a 1 t I n d e x \r \f \r ; 0014620 M a t c h K P M T e m p l a t e 0014640 ( c o n t ' d ) \r \r ; c o m 0014660 p a r e c u r r e n t s t r 0014700 i n g c h a r a c t e r a g 0014720 a i n s t t e m p l a t e t 0014740 o k e n \r c o m p a r : \t l d a 0014760 3 3 2 \t \t ; g e t t e m 0015000 p l a t e p o i n t e r \r \t 376 0015020 001 \0 : X a d d 1 3 \t \t \t ; m 0015040 a k e p o i n t e r t o t 0015060 o k e n \r \t l d a 3 - 1 3 0015100 \t \t ; g e t t o k e n \r \t l d 0015120 a 1 c 3 7 7 \t \t ; m a s k 0015140 j u s t c h a r i n t o k 0015160 e n \r \t a n d 3 1 \r \t s n e 0015200 0 1 \t \t \t ; s t r i n g c 0015220 h a r m a t c h t e m p l a 0015240 t e ? \r \t j m p s t r n x t 0015260 \t \t ; y e s , o n t o n e 0015300 x t \r \t n e g 1 1 s n r \t 0015320 \t ; n o , c h e c k f o r 0015340 s p e c i a l m a t c h c o 0015360 d e \r \t j m p c f a i l \t \t 0015400 ; m c E n d = 0 , t r e a 0015420 t a s 376 001 \0 350 6 f a i l \r \t 0015440 i n c 1 1 s n r \r \t j m 0015460 p c s t a r \t \t ; m c S t a r 0015500 = 1 \r \t i n c 1 1 s n 0015520 r \r \t j m p r z e r o \t \t ; 0015540 m c E n d S t a r = 2 , s 0015560 u c c e s s f u l m a t c h \r 0015600 \t i n c 1 1 s n r \r \t j 0015620 m p r f a i l \t \t ; m c F a i 0015640 l = 3 , r e t u r n f a 0015660 i l i n d e x \r \r ; h e r e 0015700 w h e n t h e c h a r a c 0015720 t e r d i d n o t m a t c 0015740 h a n d t h e t o k e n 0015760 w a s n o t \r ; a s p e c 0016000 i a l m a t c h c o d e ( 0016020 o r w a s m c 376 001 \0 K 207 E n 0016040 d ) \r c f a i l : \t l d a 1 0016060 c 1 7 7 4 0 0 \t \t ; g e t f a 0016100 i l i n d e x f r o m t o 0016120 k e n \r \t a n d s 3 1 s n 0016140 r \r \t j m p r e s t i n \t \t 0016160 ; z e r o m e a n s r e s t 0016200 a r t m a t c h \r \t s t a 1 0016220 t I n d e x \t \t ; s t o r e 0016240 n e w t e m p l a t e i n d 0016260 e x \r \t j m p c o m p a r \t \t 0016300 ; f a l l b a c k a n d r 0016320 e t r y m a t c h \r \r ; h e 0016340 r e w h e n t o k e n w a 0016360 s m c S t a r . a d v a n 0016400 c e p a s t i t a n d b 0016420 e g i n a n e w \r ; m 376 001 0016440 \0 371 270 a t c h a g a i n s t 0016460 t h e n e x t p a r t o f 0016500 t h e t e m p l a t e \r c s 0016520 t a r : \t l d a 3 3 2 \t \t 0016540 ; a d v a n c e t e m p l a t 0016560 e p o i n t e r p a s t * 0016600 \r \t l d a 1 t I n d e x \r \t 0016620 a d d 1 3 \r \t s t a 3 3 0016640 2 \r \t m k o n e 1 1 \t \t ; 0016660 r e s e t i n d e x t o 1 0016700 \r \t s t a 1 t I n d e x \r \t 0016720 j m p c o m p a r \t \t ; r e t 0016740 r y m a t c h \r \r ; h e r e 0016760 w h e n t h e e n d o f 0017000 t h e s t r i n g i s r 0017020 e a c h e d . \r ; t h e n e 0017040 x t 376 001 \0 022 . t e m p l a t e 0017060 t o k e n m u s t b e m 0017100 c E n d o r m c E n d S t a 0017120 r f o r \r ; a s u c c e s 0017140 s f u l m a t c h . \r s t r e 0017160 n d : \t l d a 1 t I n d e x 0017200 \t \t ; g e t c u r r e n t i 0017220 n d e x \r \t l d a 3 3 2 \t 0017240 \t ; g e t n e x t t o k e n 0017260 \r \t a d d 1 3 \r \t l d a 3 0017300 0 3 \r \t l d a 0 c 2 \r \t 0017320 l d a 1 c 3 7 7 \t \t ; m a s 0017340 k j u s t c h a r \r \t a n d 0017360 1 3 s z r \t \t ; m c E n d 0017400 ( = 0 ) ? \r \t s n e 0 3 0017420 \t \t \t ; m c E n d S t a r ( = 0017440 2 ) ? \r \t j 376 001 \0 243 4 m p 0017460 r z e r o \t \t ; y e s , s u c 0017500 c e s s f u l \r r f a i l : \t l 0017520 d a 0 i C o u n t \t \t ; n o 0017540 , c o m p u t e i n d e x 0017560 o f f a i l u r e \r \t l d a 0017600 1 s C o u n t \r \t s u b 1 0017620 0 s k p \t \t ; r e t u r n f 0017640 a i l i n d e x \r r z e r o : 0017660 \t m k z e r o 0 0 \t \t ; r 0017700 e t u r n z e r o f o r s 0017720 u c c e s s \r \t l d a 3 1 0017740 2 \r \t j m p 1 3 \r \r ; v a 0017760 r i a b l e s \r s C o u n t : \t 0020000 0 \r i C o u n t : \t 0 \r s B y t 0020020 e : \t 0 \r t I n d e x : \t 0 \r \r 0020040 ; c o n s t a n t s \r c 376 \0 B 0020060 Y 220 2 : \t 2 \r c 4 0 : \t 4 0 \r c 0020100 1 4 0 : \t 1 4 0 \r c 1 7 2 : \t 1 0020120 7 2 \r c 3 7 7 : \t 3 7 7 \r c 1 7 0020140 7 4 0 0 : 1 7 7 4 0 0 \r \r \t . 0020160 e n d \r 377 \0 \0 C o m p i l e K P 0020200 M . c m \0 376 \0 B 241 q b c p l / f 0020220 k p m . b c p l ; b c p l / 0020240 f k p m t e m p l a t e b . b 0020260 c p l ; a s m / e k p m t e 0020300 m p l a t e a . a s m \r 377 \0 \0 L 0020320 o a d K P M . c m \0 376 \0 & 023 u b 0020340 l d r k p m k p m t e m p l 0020360 a t e b k p m t e m p l a t e 0020400 a g p \r 377 \0 \0 K P M b r . c m 0020420 \0 376 \0 037 9 250 K P M T e m p l a t 0020440 e b . b r K P M T e m p l a t 0020460 e a . b r 377 \0 \0 K P M . c m \0 376 0020500 \0 T v a K P M . b c p l K P M 0020520 T e m p l a t e b . b c p l K 0020540 P M T e m p l a t e a . a s m 0020560 C o m p i l e K P M . c m L o 0020600 a d K P M . c m K P M b r . c 0020620 m K P M . c m 374 0020631