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