cldlod 775 146 144 320000 5151206330 5350   @D* @ @"b@ @ @# @ @?h/(" @K \@K O^a K`dh/H   @4 d  @+/t"@# h /H  @ p#|##b#@`#`d#  |  G        /usr/lib/ld.so/dev/zerocrt0: no /usr/lib/ld.so &crt0: /usr/lib/ld.so mapping failure crt0: no /dev/zero usage: cldlod cldfile > lodfile rbcannot open input file %s㿐 @ܒa@  @" (@ib@ I? @b@ `"@ @ @@`@ 5  _END %01.*X 㿐@@WjcȀ jc@1@jcȀ jc@u@" cljcj@Vccannot seek to symbol tablecannot read symbol table entry %d.cmt_START %s p =;@`jc@  @E (jc'А  @@`   D@2 @`f 耐䀐ؠ jc@"  @`k"jchjc @@r`@ jcjch  @"  `s@ݔ@"  @ג`vcannot read file headerHeader has a bad magic numbercannot read optional file headercannot read linker file header㿐k   @@`  @"$k j c j c j c  2  j c`k`"  j c j ck`"  j c j ck`"  j c j c @"<k`$ "jc`j#Д @@J`  "Zj#pk`$ @@<`  "{@_k`$ j ccannot seek to string table lengthcannot read string table lengthcannot seek to string tablecannot read string table㿐jc* jcȠ @`@  @( lj#h  @@`  @`R   @ @`R  j& chjch!?j@T chj c@` @Ô  @ jcjch @@o`  @ ˁcannot seek to section headerscannot read section headersX jc'@`jc@  @Ð"4 4 @@`  @"Sjc 4 c@ jcinvalid string table offset for section header name㿐 `jch@ @#( ?jc PPAPBPEPIPRYYAYBYEYIYRXXAXBXEXIXRLLAALABLBALBBLELIcannot seek to raw data in section %scannot read raw data in section %s_BLOCKDATA X %01.*X %01.*X %01.*X _BLOCKDATA Y %01.*X %01.*X %01.*X _BLOCKDATA %s %01.*X %01.*X %01.*X _DATA %s %01.*X %01.*lX %01.*lX %01.*lX 㿐  m !`,  -.X.........----..d.p.|....(.4.@.L# Lc# Ic# Fc# Cc# @c# =c# :c# 7c# 4c# 1c# .c# +c# (c# %c# "c# c# c# c# c# `# `#  ` #  ` # `# `# `@* @`@r   @ @@t`   E@0$>L@ L%!@" #jc#\#` `hjc @gjc#\#` `jc @Y]@"##\jc#`#d  `jc@D H@"  `Ҕjc@8 3@" L@ L `jc @#   `j@c   ?$  @`@"  @`cannot read auxiliary entry %d for symbol entry %dP@`jc@”  @ ( jc@/А  @@`   D@@`   @@`  !@͔` 쀤jc@invalid string table offset for symbol table entry %d nameC_EFCNC_NULLC_AUTOC_EXTC_STATC_REGC_EXTDEFC_LABELC_MOSC_ARGC_STRTAGC_MOUC_UNTAGC_TPDEFC_USTATICC_ENTAGC_MOEC_REGPARMC_FIELDC_BLOCKC_FCNC_EOSC_FILEC_LINEC_HIDDENT_NULLT_CHART_SHORTT_INTT_LONGT_FLOATT_DOUBLET_STRUCTT_UNIONT_ENUMT_MOET_UCHART_USHORTT_UINTT_ULONG_SYMBOL N %-19s %c %01.*lX _SYMBOL P %-19s I %01.*lX _SYMBOL X _SYMBOL Y _SYMBOL L 㿐 I `jch@ jcȓ*` "@4$  ?jc L@ .  `kt !L*` 666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666  ` #(*` 7l7l7l7l7l7l7h7h7l7l7l7l7l7l7l7l F@` ``b #*` 78P8|87@`E@"  =`<  0 G@`@"  @U`Z@"  `ejc@K 02@`@"  `w@`@"   `@` @"  `@(@"  `G,:jc@ 0@ `㿐@㿐@ cannot write to output file㿐@,='DH@}@!Tcldlod: cldlod㿐@,('DAapH?#@b`(@a@^ @`A ap@!@| 㿈'kaX. @ @k!ز@ '@'@6?2'"''@ '&@@6?㿠@k@ 㿠@@㿠N2N`H `+2  N@ a r w"  f"   b2  ) !@6 &.!N@r2  6N@`a2    @6 @ &&& 㻠'X'L'P'TV L`2 V V  V 6 V  "V  6 & & $& @@CV 6 & & &?@㿠@`!㿠?$?V !"V V `@2V V 2 @@N 6V ?V "6 @ & 6 & & & 㿠V  " V `2V V "V   "V    ( V @V `"V V  " ?㿘 V` ``2V``` ` A` &`` k,?@l?"g?e 2V`/&@N` @{ "XV` 6`S? `````2V`@2 V`V``2 V`@h"V`7?2V`@4@ &@`. < `&` +V`". @` 6. `. = .``&` ` :  V`` "?㿠  & V '"  & 6     #6@$  N @" V  6 ?㿠V   " V V 2V *? 6 V @2#  2 @  @2 V 2  &6    %6 @A `N V ` @/ &  -& @"V   6 @k&$$@ `& V  6 & %@/ &  & V  6 V 6  &     " 6" @ "㻠V  2 V V a V 6 V "V  ?6 & & $& @AV `6 & & &?@2  ax@  ax@  `NN@ `  -/ @@!?#?4`gE@`/`&@`60r ".0k0f0c 0`.0]@`- @&@`60P ".0I0D0A 0>.0;@`/`&@@`600 ".0)0$0! 0.0&@@`0 "@00 0 02@? ?` / /`= =` / /`= =` / /`= =`%`  @` 2 0@`2 2 02 02 0 @@!@` @ @ @ " ? 3` 3`   2  㿠@ \ :`2`  :`@&"" " "  &`:'&``@2` '&㿠2  2  0*"(2 &@ @!2  "2 & @ @  2  2Հ@w&2`  @` 2      @(" * ""  2     2  8 @8뀢 " @ `㿠  :  6 . @\ 2@  \ : @@2@R \@@:@*! @8@:  *  2  2 @ :倧@ $ A@%@& %`  "` & v&@ P  "  `" ?:@ $`" $㿠 "@@ @ђ`  `*A@`d (@A  R"p&  P %@#@"  \$ " "@ :2 @ @% " *@!@) (@@2 @ "`" ΐ@@!"@ !D@{  2 㿠&@`* '@@ & `"  4" 4` 㿠  'H@ `*@`d (& @@H!fY @@V ?@O H` :  6 . *#@=`d-%@\2  @ # :(  P@ " "00"&@`@p%㿠@`\2  @*W  2 @ P  "   G" :@@* ( @!@3?@` ` "``0"`0`4`4 "`@`"'@@  %" @ 0% " 0 4 `" 4@`%@'@%㿠@ 2!@@ @@9"`"3 @t!@  " @ @ h @ Ȑ2@  ` 2@@#``@@" d'@ d%@`"@ "  4@" 4 "  8" 8t` 㿠@ p"@@ p p5" p`l 4*@@ 2!@@@-"%$  `2`#@$```'@'@$h+@"%`l@@" d d3@``@""<"<@ l"" l@ h`" h@`p""`pA "ap㿠k 0 `!k$ 0@`@ 02`C@ =㿈A!p`@ 쀐6 A"ap 㿠@Z#@ ܐH'D@'HHJ'/""`@" #`D O@ `V    2 2V2 "-?+  /Ě     0/////c      //////'/////// `%"< V"  &  && - ά@`'@@N "O@< V " @ &  a&& -  +`;`'< V`"  &  D&& -  '< -V`"  &  -'&& --  @`'@"D"D @ N@& .@  2 @@HU'"4 N@ 7 & .+@"D@'" N@ 7 & .@bD +'"  N@7 & .瀦:O@N V"  &  && -  O@XOOOOOOOʺ'`/////M/۸O' D 4`2 *`@ `*` "  "OŘ  x 2  WWt,YX` W/VX1X`$Zl%W4Y Yd(ZlZ4Z4+YdO /O /O/O//ֺ`O@  # +쀢 -퀢 0"OO@*2;O@`@в"*" Ж`"`D@ Ѐ24 ̗*  "`#`D@U@`'O /'O /A!K  O@`O@/ K/  "0 O@ .2E?`O@`*21 `@Ò"%" `"`D@J 24 ̗*  "`#`D@@`'@`'O@AJ " O@O@.`.`@ #`0`@ O@$2 @" 2`"`D@ 24 ̓,@@ #"`D@ǔI`"' z'Ow/O/O/O/6 O `d 'OD"Oi2Oր6O@  ""O@" "O@Oր " O'$OO`X2@@H"DO瀢  "#"#Oה M@ 5& .O"Oך M@ 5& .O@M@& .@ 2 O׮& h'2Od 6a ]'[b@X X o x"@P6O۲ Oۀ   '?`@ " " ""  '`@֖ "O@ ▀"O@b "O@O耣 9$ N M"TO܀ " 0N -@`O׀ "O-$ON" ON$- O܀0" &`6.` .`2 @O`d/֔  '̀c6  ''̲&` O耢02 - +-@O%`'-@Oـ2  Oր"̒ܒ%   ''6O۲ Oۀ 2'''@#`#` #`#` `'@"O@ " "O@ "O@"O耣`9$  M "_܀4N 0-N 2N 0- -%`O׀2O$O-` &@ 'N 2N 0- -`Oـ 2  Oր nܖ%  ''܀6 2O۲ Oۀ 2?'O@mO # # ## Oך`'@HO耢 -2O@  b "O@⤀ "O@bOA!KM " MMe"MM 2MM e2M E-M"OM"OٮM2O٤ 2  Oր"% ''@` /''2N@"@N   @6ON`  Oـ 2  Oր"& ''& l& i'f M@/O` x82 *`*`@ *@ @ `*`4 "  "   2  n,U^hhX^cgd^eafcgehhi^hhlhhD^EanhGeo^sghu^L^hx^O^hhhh6  6  H#`EOٸ''`%" "9" ,7L@< V " @ &  && -  L@ "9<L@V`" & L@c&&L@` `- L@ 2綦 '< 0V`" &  0C&& 0- ':6<NV"  & N&&&N  `-  ,<< 0V " @ &  0 && 0- <궦K "#Oٶ<V"  & && J -`'K 2㶦Oـ" ,< V " @ &  && -   2 O@ '#'O@`2`%&&V`"VV % @, "VV "?'L8 @ Ȯ?  %@ ;"u@bL @ AN`$28@`" 8. @bP@ /M%%NQ 5*`*`@@ `*`@ 2F @ `nIptpKplppNpdp@p\Ap\Bp\p p\p"p\Gp ĸ   & 26 &      2   "  F L8 @"@2@ '@@"  .* a q$q4qDqTqdqtqq@&@@ &@@ &@@`&@@ &@@ &@@ &@@`&@ ú`㿠 2 2 " %@ q"@bT @ wO@`$2@ @"   @bX@ c@M%%NU`5*`*`@ @ `*`@ 2J @ `qIssKsssDNss@sXAsXBsXs sXs"sXGs<İ @ '&@ "@@  &@`&@@&@@ &@ "@@`&@ &@ "@@&@ &@ x  2 " @ `&@ 2g JAJ   +`+`@J J@ J  #`0 " J$2 "@ 㿠k#X2k@""@ W`.Ap`@ *W`@)2kA  #apX@"@@T`a" @'k\`@*@+A   %ap2@ @ '@@㿠@@ k"XX "$ F/`@"!k#X $#Xk#X/`@b b#k$c\#X@ :  ')A!p`@   㿠k#X2kkcXk\@ @ 2k @G '@k#\`@ *@㿠,k#X2k@bAp@ !W``#Xkc\@ @" %k@T !"%k@%k\`@*@㿠4> @x4@?2 @%,&"&& :@#&&6  $6%%2㿠V ? ?6 V `"_V 66   "2 V 2. N   2&?@` &@V !2V $V 4V   $@& V  & %@& V " N   & V  ?6 N &@&1?"/?` & &  @,?2 ??"?&V !"N V  6  & N `?2 ??2 ?㿐$A & A B"ap& @t* k 8. @ @@&-!A"@`#`##"  `" -'@' @ǐ&!A aЀ &@H !p@C'@$!p?  ax@ > ax@ Y ax@ @ ax@ 6 ax@ m ax@ n ax@  ax@  A ap? * Ax*  ax@"x H!@@ " ;`;h;p;x;;;;;;;;;;;;+#;;;k`8D* @@LH @`hpx   l ax@㿠V  2 V V a"K?V 6 V P2D?  2@@b 2 @S"!@ﮐ`!@T#( " @戀# & V "  N  @ & & `&  "V V   6 6 V !"&V  ?6 &?  @@  @   ' @  +` @ (3`@ @ u"  0 *3`"  " 0e+`@  e#  */3` 3`  3` 3` P M 3` G D  3` 3` ; 8 3` 2 / 3`  3` 3` #   3`    3` 3`    3`    &"&     @  @   ' @  +` @ (3`@ @ u"  0 *3`"  " 0e+`@  e#  */3` 3`  3` 3` P M 3` G D  3` 3` ; 8 3` 2 / 3`  3` 3` #   3`    3` 3`    3`    & &   8? "D# /"S# "f# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #@#  @# # # # #@+ 3`@; @# # # # # # # #@+ 3`@; @# # # # # # # # # # # #@+ 3`@; @# # # # # # # # # # # # # # # #@+ 3`@; @ 4? "@# /"O# "b# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @# # # # #@ ; @+ 3`@ # # # # # # # #@ ; @+ 3`@ # # # # # # # # # # # #@ ; @+ 3`@ # # # # # # # # # # # # # # # #@ ; @+ 3`@  , f [ ` `  *@`" ` 2*@*``"`<`'` 3 *@`"*" +  3 @"@`" 3 3 2@`"*" +  3 @"@`" "  3 2@`"*" +  3 @"@`"  *"  "@` " *@`6   @ " "` *@ 㿠￐2 @9㿠 㿀N "A'@'`A`'@ '``A!pB` : 'AAp#Ab+'@@'`)A!`'@ '`'@?`` @ÒNAaO@  `2 0AO@ " N N + -" O@ 2 0 '+A NaO@" 0&@ N/ O@/ " AaJ  AaJ  AaJ  AaJ  AaJ  @AaJ  AaJ  AaJ  AaJ  AaJ  AaJ  8    *`:`, J @ 2"  \`` ` @`* " @`2**  " <`'`@`3 * "*"@+ @3 @" "`3 3 2 "*"@+ @3 @" "`" @`3 2 "*"@+ @3 @" "` *"@@"  "@* 6 @`*"+@` `*`@ *`@ #@` `6+8kJ ؀2@\2j24+kk ظ   쾐2  ``` 2 #k%kc؀"%k#k`k#p@ߒ @`iD!k#p@SaC@P#p`@*DI#p. '@`D@ /@R"mkA x$!k7 #p@#p DaE@k2<(  2D    2<   24   2,  ~ 2$  v 2  n 2  * $c  ,Ll   DaG@ "kԺ kؐ@ђ* : 6Ⱥ " A!!C#!2 k@Β̺2O@ "D!0"D!0D"a0`  0̠ "@D!, 02 kD!I@ * : 6 "2x k@Ԓ̺2O@p "'D4")DD!4)D%!4D!, 0Ẁ2X kD!Q@ * : 6-D J5"/D5w2> kD!Z#@ * : 62 "a2( kD!e2@ * : 6 " K * %c4 \(h |㿠D!q @V "@" ?`D!z @>&9 2D3!2. 츐 "' Ԓ@Ԁ /@`/@@@` @`ܐ `D! @&q 2Dk!Β2f t "_ Ԓ@ԀT /@`/@@R` H@M`C@H`>@C`9@L`4@9` /@4`$*@^`)%@~`* @y`+@t`,@o`-@E`. @@`/eka`삐 㿠&@@4 2.  J 2"@ J` "* 2`0 & `94 "`0** J` 2 * J 2J ` 2J *@ ` "*@`0`9$+  +   J# 0` 2`0*@ * J2J  2  *@*  *@*@K@ `F`N`T`Y`f`n`t쀣`y"  J "* 㻈N23@"DN 2)D@!"kN 2kJ` 2kD@!"DN 2kDka#`#`@kc`*`!k ɒ# @鵐@ d $Dx?a@ܐ@UDa@Q@N鋒 6#Aap`2Da@@;Da@7@4q &`@`2DDa@#` 2 @5@9耢 "!C@@)?#Ȑ@ $  "CT#$@"/C@?%9C'#@?Da,㿠DD DD!ѺbW괐 D"``耐 " Ȑꪐ D#~ D @<麐꜐ !D$ p D @.鬐ꎐ #D$`b D@    %DD`.@`h/`?`  D`.`0@`X/`?`  +D`D`.``@`F/`?` D`.`|@`6/`?`1D !D *` '` $` !` `  3D`㿠!C#Ȑk@c` $  ` " C#ܠ $ $ 㿠 / "@kؐ@ `/`D@b?` &/ DC#@bkDb@ Dk Db" " J  2J" J@`*   *`:`J J  2J K K@" K@K@K "K@`K@2K@K@  K2 #㿠2k#2 אN 2 @@2.@k"`k"x'D'Hk!D ''D'@' H* )aD \\耐& N/  */@  &  0.* 0/@D&" D&b $ /@ @N/  /@x'D'Hk!D''D'@Ė' Q* )b 0t&"&&   O. ,/@ 0&  /@  0.  /@/D& D&" $ /@ @N/  /@㿘'D'LJ` "@ -.@LD 1* *`D \ 0/@ߺ`/@`& @6/@ 0/@``6%D#Dc'DN@"/@N@`/@``4 N` ` 6Z`N` ` /@`/@ O  `O/@` O`2  e'`O@`0"'`O@" e` e/@``@`, - +/@`/@` .`6`@C @ N@ `02 `N@`0"`$ 4l/@ N@`@/@`_/@ %@&( 0`    ` J/@`  `/@` K@` "562` L/@`'/@`/@`   ` 0/@` ``  O " O/@` O` 2O2 /@'`O@ 0"'`O@@"/@`/@x'D'Hk!D '''D@[ܒ㿠'DD'HH .>02"gb`& .* +` $8P5&Tb54 b2bb $Jbb` $`J$`04`<,$@ `2:bb`"4bb` &O 9&  0/` &O& 9& 1` J *.`   2b` &`$bb 0` ,b` &bb4`  0.`  &b` b*!!77'P'T@ !쀐 6  *`2`@~@ 쀐 4' @ 䀐 2Dc8@ l " DcM@ dDD @ @  @" *  @N 02 ` N`0" `  @@ @@ N@`@/@ ```,P.` @` `PT.%R &䀢 @ }'P'T'X%   @  0/@`  0/@`%@!!77@ ",a"72 @:@(԰Ԓbj`Ԑ :    @ B耐 2Dcb@  " Dcx@ HH @ T`?4ET` <`5 =    2 `6 .  , 4 2 ..'@   2` `*  .4 $@,`4`5 .T.>4R  6R F *`@Y2`F " `+33`@\& . @@2 . '`@& "'`.  @̒@@ @ O@ `02 ``O@``0"``  @@ @N@`@.` ,- .  @ @& ``-%@&%@e?b'P &  0& "`  `P"6 ``2  `6  $  $@   #@耢4`c'& _'ę:3  ; + "  `:`4  <  ̺ @ '@ ` B .  @ & *&6:`2  :  ̺ @  '@ `/ :3  ; + "  #@  , ̔ $   "  , & / @ & *&@䀐"?` 2` cD?`|   ? t' '? x?` ` 6 ```2+``$&```2 `` &""  `b('?"'?t  ` 2`?`t `$` `     O@`@/   ? x?` $`6 `    0/@`@  `2Q`%&)&? t : 0 N   @ O@`02  : `O@ `0":Ī Ā " Ā "?p$ 0 O @O@ 0 6`O@  06 &!?"t O `02 ? O``0" ?"p@@  $?? &"p@6@6 @ ` 0/@  @6? ?bp `'@ L `@/  ?"p?'@ @6)`6  0O@`<   O`02#??l@6 #? O``0"?#?bl@6&    @ 0/@`  `&2 &`` b6?|      O@?/t   `  6 `  0/@`@  ` $?`?p 6    ` 0/@  @6` ?p '@ J `@/  ` @  0/``@  ?%&&"p?'@ 6)6  0N <   @O@02??"l 6 ?`O@ 0"??l6 S" 64)?2 ?`|O   0?| @ O@02?!? t: ?`O@ 0"!?? t H& |?"     O@!?/ t $`  %   @  0/@`?`t& :Ē` N  @ O@ 02   :  `O@  0"  :Ī Ā" Ж   @ 0/@  `&& .x& ?2`@&&  * 0a @#ؐؒp   & '@`@*3&@l& * 0b 3&@V& * @АВt   @  2`: `/`7`/` @ "``*z& ".   %  .   $  6  /  %@  &   /`"@&.&   2 `/`7` &.  "` !?#@  /`#?c@8% / 7 /`%@8' / 7 /`'@8) / 7 /`)#@8  / 7  "` &   %. +#4@` *@kaP"aP㿸 ?2`g2#  "  3 2 '2323  :      "   +@  "" 0@ 㿘@` ?2`&&  #``& 3`g"!6"- 5 %& & c  &  2  & #c" & < & - @& ߐ#@2  2 &  "  & & ] ' +& 㿰    '@`@*!#"$ @@"$  2 2 2 " "?#  :  㿐   @ '@`@*@ 3&& & &  %``& -@" "*+c $&  & @&   "& ? & `& & '2 &  "  & &  !  & 㿠. 6    0.@P '`/`?`* 2 㿠. 6  @   %%@. @@Q: -5  `?#@ 67`66㿠. 6   @,  %`b%.`@'@* -5'@ @  ! #6### 6--6㿠. .`6`ȑ6 㿠. 6 ! #탐ђ#*   ?@ @ 2 2@`㿠 ?#@@ؒ 2 6@`㿠. .`6`6 ! #M웒#* 㿠. .`6`y6 㿠. .`6`q6 ! #2쀒#* 㿠. .`6`6 .! #m#* * 2 * * " * *  㿠. 6 . ! #Q#* 㿠! #D#* 㿠  .`?   6`c   7:   "6 . ?Ӑ : 7 6   .`?   6`c @ @ +7@6 `" 6 )?#/  4 6  *`` 2`  +` ?"@@@@+ )  3 3@#`@ 2㿠 .`6`  ?  c@ @ 6@   :  `"6 /  !?#@g : 6@ `6 㿠  .`?  6`c @ @  7@2  `" 6 #?c/  3 6 㿠  .`?   6`c   72   "6 . ? 2 7 6 'L  @@  2 '`@& "'`&. ..  ?@ # @/ ` 4@`@2' 4.6``2 `   `'``4@`  ``" * 2 6` `L* & %@6`㿠  ?  # @@ 7@   2  `"6 /  ?c@ 2 7@ `6 㿠  " *  녒c6` # +  `@ 2   6`6`  " * Òc6` `,V /`@ @@'`@:@V  "@ 4 V  V `"@ $ V @$ 6`V &. \6 6`*2   @`+`3`@ 2`  㿠ݝA"!pDDc` /@ߒ`@0'7'TX? U _c8d7N7_#<'>3 ; _j_NdcȞᴐ#db̔  '''7'''''37_7#E7`0_c '̶>__㌛3`@''7_dN;`NdE 4T!p`ᐔ c, '''7'''؀`` "_ @ @ @ 감6@`   '   2&`'$  D#@ۘT # ̒   @ @ @*` @`+`@ "@ *`2` .` 6ʀ :78&T"* \"2TT# #@T  T 2 TV 2T6'Ā &ʶ  '̦   @'7''@ "w@+@@*  % 'V  :3`@ ;` ;2`@:`  "V 2 @+` @ *`2`7@+  **:V  6  " "  9 "87) @*`~ Ā  "@@*@ *`  { 6  2Đ2Ĕ YĤ :.6$" " +, 43@$@ * 2 '%.@*@ +`& `6   ";'@ @%+ 6@   2ʐ%* 2 ʀ@ (F '@ /`A7`'@ &/`* .` @2 _" @В` " @ǒ` &/`* .` @2 h " @`" @`Ā@2"8`@8@`@ "* 3   4 .` *23k&  6  #+@ 2. ."*2 6 @2 .6. @""! "  "@*`2` 6  " V V ..>6 ..>6 `@ `''|'    3V 3` Q T^T"@xk!D '''A& H* 8aL dd耐& @N.  */  & @ 0.* 0/`E&  E&` $ / N.  /xk!D'''& D* 8b 0t㘀&"&&  @ @N.@ `/` 0&  / @ 0.  /`&/E;E`E "&xk!D '''ܒ  ax@ y ax@㿠'X'H'L'P'T@RcH`2 @@R @R#2#@?㿈# B7''L'P'T'X''L+`  # "@ * *` "  ` `*  ` @`. 0@`6.2. 0 0 0!"# @@a%?'? 4P@`700+0&$6.66     *@`2  @ @@"&0l0 0& 0`. 6. 6.6Y. 0W006.  В 66D6 @`0?0?0@66  *@`2 @ @@"&0#0#0$& 0 @`@ @@"&0 0 0 & .6666. 㿠 l  "Ef  (  "()@M@U 㿠@ "   "  @ J@J` 2 JJ  =2J@  2 J=2   K@ " K@K@J "K@`K@ 2K@K@ "J  2     ax@ % ax@'D'H'L'P'T'X dinsert: bad block size (%d) at %#x blocksize=0 at %#x blocksize=0 at %#x free: illegal address (%#x) free: bad block size (%d) at %#x free: blocks %#x, %#x overlap free: block %#x was already free free: block %#x was already free realloc: illegal address (%#x) realloc: bad block size (%d) at %#x realloc: bad blocksize(%d) at %#x realloc: bad block size (%d) at %#x realloc: block %#x straddles free block boundary getfreehdr: out of memory`gx(null)0123456789abcdef0123456789ABCDEF-+ 0x0X-+ -+ -+ 01234567890# +-.0123456789hL$01234567890# +-.0123456789h$X: Unknown error ((((( DDDDDDDDDDAAAAAABBBBBB "<Ldn   , 8 J Y i x         ) 8 D W h ~      " C Z t      * A e       0 E X z       0DRj.?Njy[Error 0Not ownerNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo childrenNo more processesNot enough memoryPermission deniedBad addressBlock device requiredDevice busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesInappropriate ioctl for deviceText file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeArgument too largeResult too largeOperation would blockOperation now in progressOperation already in progressSocket operation on non-socketDestination address requiredMessage too longProtocol wrong type for socketOption not supported by protocolProtocol not supportedSocket type not supportedOperation not supported on socketProtocol family not supportedAddress family not supported by protocol familyAddress already in useCan't assign requested addressNetwork is downNetwork is unreachableNetwork dropped connection on resetSoftware caused connection abortConnection reset by peerNo buffer space availableSocket is already connectedSocket is not connectedCan't send after socket shutdownToo many references: can't spliceConnection timed outConnection refusedToo many levels of symbolic linksFile name too longHost is downHost is unreachableDirectory not emptyToo many processesToo many usersDisc quota exceededStale NFS file handleToo many levels of remote in pathNot a stream deviceTimer expiredOut of stream resourcesNo message of desired typeNot a data messageIdentifier removedDeadlock situation detected/avoidedNo record locks availableMachine is not on the networkObject is remoteLink has been severedAdvertise error Srmount error Communication error on sendProtocol errorMultihop attemptedEDOTDOT!!!!Remote address changedFunction not implemented  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~8:;<=>?@AB.///LC_TIMELANGINFOLC_COLLATELC_MESSAGESLC_CTYPELC_NUMERICLC_MONETARYLANGLC_defaultC/etc/locale///usr/share/lib/locale//.ciJan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November DecemberSun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday%H:%M:%S %m/%d/%y %a %b %e %T %Z %Y AM PM %A, %B %e, %Y CdefaultCyesnoNaNInfinity )-InfinityInfNaN binary exponent %d binary exponent %d decimal exponent %d decimal exponent %d libc base conversion file %s line %d: %s_XX.c _times_power failed due to exponent %d %d %d leftover: %d  NaNInfinityInfInfinityNaNag s;.?a*c&՛ap%u ,!j`;}s`+i7$fnIou^t6n16B(y$ބgW˦,6Lٲ_ ]xce,2,yI1!(dvF# wSEwޭ-􅊘7s{yΔӴ C]L>Tܝ))h|}zOePhbhcPEI[p(/CI&@j oHA^hfC&{/j]-=' !fz P:ӑ8K֤A?(5T>xSJ)j(a5XdvUd/ޏq&&RtYUC$3Q"cdb܋1(rS5#Շ #TXc* J\f_FIP yQGp3CC y'WϞփ p}LP-o64)\ޝGLRكC Kݑ5z ٭ȩFsұEƀi^ħ@-Ze1roM˵~Eʌ(ds6PAi4IAu줭I&nUxaY9btCP\zF˜k8bڔ)슐?%khnk*Gj"*|QWiUk ;.W fi5 X7J"nVntʬVn689sbTxs5U XPzrcE\W$#ÈB1APLpdܹiM޷ZJN:fH4J1h.<>Kv=R-F> y7""9dഥX|i*1DhBY%λKG&2PJJv9_?oCb J&Bq'k|*m&u':i\ gy=o.-F&%+h v!h| 席aAHl@m $+RYI"ڤ QS:RpYzsu!LFsGfQpO1@[mblՙrh{J:*貐UVP;mƋ֫?-P9G䖖ptڭJb:IX9IClyA7tU -skje$ty6lrttAɦR;@~ JrAQܳnDSh%Rq}1sa?rlLDG6Nbjo;ڢOɤ:UR}PJ牅ض/>*35^dLJQ# 1v7\\ݻz"4#FrcAo/ejB(Gq[ .z>295I!t@52+x!7u8mj "#sTP!.m\Uy#$R&MWx=MZ!FCn8jg~3n0< owPױ8' aCzG~pʾ+!t)qyL;]u$}I`lsУ||;J\u<[ M$j\ђ9hY`"Xݎ?m%*[6ҋ t*.hdby:Gu]Cوz&a!$X7gAƼG@1QS"b4.pZ7ɇIᮓXүHwwCv EDwέBrLE`5L@A]ɜ'@WR+%A4EKђX86I[qZb#' - ;WTwҤYPE}4Н&B=ʟwP)lȿL_z' ' H"f|:Pе>P& y^|i91wԷ3 M("g2#{N+ y/375~7fJ:*ɤ `Rl5ܔ` hҖVWNjkg/啌̈́ H&4B\-diEхH5Ve s$hD|gqbZQlkE=eG3 W<$[`s4ưgͦ<.ҧ&Χ'O>"@WE7bm!#vIrw}:{Eos0 D%{F]Uw{2(Y| d56"(;FDVߏ\ 1/x߿ِ "0V8 C6xb*pkM~|ez"Xn՟ QO3F}j[FcTKpRGE#;-)',NW_"QA .hVZc8"{V)`t1> p{̮9wW]\¼O֧SgI3 >yFaz\xc (l}қ_k1 "L"vZ3gZ&LB'u3(- };]y*36̓6LisWힴ .By"pBvxa}./>hY!S15 ,C = '["ERճJzBvY.Y.4y-/KG jZ ; c#1%Xݕ=I4r^8>ָ=%!YH׼-gYR Wd( Oɢ>=룘y:ͮhCʡ,rƩhE![?DBݻOaCJLN_3>ҳ6wREM2 BxRR!$>HhHa碬a5NO~&)h ςnD s)kj@)nM RM:wpƴA`sDڙ@REz|᜾w*8uH)7tyX7Xl p$ٽHd\a;*f d {ZE]Ś|E{MQ9BF" s+:!*T sǹ|gƳUymŃaM8 Tj3(edY <ǒ7v%Jei?ߏv6?5+9w('"BZ6ɇ!/9@Χ*Z#85F&ż:0:4`1[+9tvvG)OhEQ)򶅃oa``FWѵ2ߗi+INR"ˍ3os -{ObLqQ :=A9 VWanfyH`l+Y>'KZT43as,$+&HԱ %w[rGd0~9ރe{"x-21z@A쭜)ïp,I¼{Bת,PȼOg V度x\v;#þ9y{y@% ]}8ԣ*` C3f*icpSj9Lua==hcfn}^NR3Dl]& ]sl"w2hrA F+%J+M]}KXZ2hIŽ!2E%=^/iu{nz(/(C> z!+Y5{9`Tr-g6:-(BA1~rsܝ.%TSDB4 Ho ˧y-~f[yP1N=T|x\V#P$'ТhGnz/;}糑[+N :zsnľ^Rܤ)=La0ת!Gh@:",^7!%%;LD]M{=dz<ҭ%e!b\c e+6>rQ3Cmv, {.M''XLKUO]]5"cX$TUK(h T-lhUNM?oxOۧ9C@m(CPfQ_s+vORMsD2&8ivZ1ۆ-7z&$(-iFc{d%B )7&WXS o4țM`)f%CiSR f0K/()qLJ AMc"}լp|4#6{k}{>IOSv7)0OOU|b>9&xgrJ\RQIH;\tك_?~ =Tĵ?_SE&Y  5<mK9Pv=6~яQ( /H+4j&%G@.pkKv4*dڗ#1e 9,0٪[Z8rUم<aIXOŌQrp" sh3L?i 0f mu VvtMH9¡D:u~r[o |,S )}x7 O}EJH?7@ahBb0TA_1CZw ~%T3dպVD|]5-TQh}@v;_tT#8Bn/"'SAnP+yAFN7P(9IB_9Ezr6 `#cAUsЄ^Va? z!Ķ &$%u)d~K]] V~ UW&C:X1Pz9* Rav_#ĉv ԡ(KP4]=߶NvZ q eS]"Or/k[Q2k 2>i6ix]/jO!C x@nޭW){z͢%Xj8hz0'w4Oc' :+>Xg?m֏GRP΀9$V/ǘ(lChs,dS'y&1L=Jf, 6P 0J!Kuc| OP%T= wK' |IVTm d \y tarr+M$B~zr;Epbe)&dy$@h} alq7LO_d)U6&$6-z1*xh% |§L(2PX0M=kJ%L& ̡KA SM oN& '[Ȋ ,'! J7V; ?=ԍccsЫ*-\OKETS)(i!w^Ƃ=8T+kaU&WF73V7?-_)wEàc@5q F?y 0M y2x慠79&%W tڥܨ >י^g~xA_[Jua.`KdRZ7/Aiklr",0ypVgmCvKwtdIW~Toα⿕Z栰y^KrrL'Z0RC8=ulMro=W^߉BPZ7F>7avF#%U=1&+1T4o=HZ)-gLd43֤rE8GJaF!w +vauwWbUuaA%x`$5aY]J6RXю/ spL Caj!kgϓT悎DDHn,f/UMkURudlXUh[E}#BXaO ?X%fcJDY7Ǣ,>uv m #3*H' #$sX,gz,w[uF@ ՙHT]^?]-eb! )һ]y'q,(c̍R+wBO6׹ـWIG:@]FjKuϝISuhrj)Ëj0kc';Y O!:3b.j*!h(Lb(ןe*I| }{,0'E3$!(eSX#^~oFjyi6o^=vZh/Eö/.i@_g fs(ԌhGܤ'2 v,0& >y-NWLVʼn~8ZQyG7y쮦GVpk x<;_{=V]ib恻Z$a='5ϊ?P/GM̓{ϥo+HRїqBfK|"HXV6[rf$<,9sTe$DIؽ|7xPA!n?C 9M۩yyЏ LJ68RAݚA ?Oؾ.Hj氼=o .Oum$3 )poxvO>u %Ƽj@!}N%"Zuy^wO 8@a' 0 @{I/t4P=8Ck((uItrX`-Iyu#!~n1-79]GNJh%w" -1!WH I w4U{=JI[ujcǢ¼h@,]턥i9-\>Wr N"?ߵ!(Kl;3p>Hu>\.d O#)l缌.j' \fіPcDѮ xakBh&(&/ jcG$wN끱.]TSOd"p34Yɼ$Cz)t )6=N_ 6 A -CZp$ c J  fDBF % %{ ) f# "s-$$ 0$ Z%L!3 0 Kg6$ ,"ll W a` ! "|$ {&0"djz  =%# # /&d f% Shz&UY%D !D%o& FF%<h&cf j= sqW |&|P!<q  s (!e!rl{!#v 7?  "&#"/L C%1s yJ T!c!^#o  H '&Q#w n&z] !{p|" &pg #2   !0 X n Fc#Gx / hP#m  / L&n! k *#u!& !   b!\T?I pV%c T| &T~"# xYHlDC1< '1l C+ ve$ (UJ*$ /R#%"+ Y @i9X'&z G=,# 9  |}|% z#+& "2! %{< "g8]? j# i( q rk& H{"+$ v&l "4 [I!" "j$L  I /&U!&   D 1 %8V. V`!"  $~ %-!F& c@) &x 3 T, )9$GN & mu%%%~&:&<n!C% !%!41%"P # " -$@$} Sh%- P$ ]%"&; .$:! e"H )"sZ"&#% ` Q!#P 3$ r "&c'j> %W"7&W "9 (&}&@ #:~ ' e8I%fw& rn- a& 2c%>& ^< 2a&/  'V`jh%^("  $4{O%S|" >' N 6%m4 N%F "  @%P!FL 1!2 (bK j$# <o7E"l$%I!,  !1 q/K"$G ;"{&k " l yP.$:$"$ , !%  \u$ h  &,5& '%b"$ g  z W &| #Oz k A  M?U3* - <&&jM#{!n$& r s"s=&iG m&:#$/$ p" V , FO-- 9% $ E  Q)L "J{3Wz"e%=7Gw # " N [ v U . R! H 1!$ G {=ukI"_i i}f e#"; "' c  i &]Y "tZ -#&`d:@#O$! `#%     &A 0*M#z v v#A & L m #!Mf!&*!%L%  # =&R % i&i $.!a 3 >$&2  #m[(@o  e l4!Np6 "&\  & 6N%A^a ! :%J` <$; (!v /^;"!< d H}%"";| n 0"6A# o  rh Bm2@e Q@" %%! D$:$<" mH$"iz& @_'&#M %%RB{}"= &bw!51 `j&$&jgs%e/%!p$S#} wt#,#"#" (v,E0)D%7""Z%m gL  #C  $&P=_  $$v&4 B $T$ 1#<2Q&+ u MU\  EtK H i  < L N ;$ "]! !U#q ~  ;#"; HaB$"_W#< c !bi($3 j &>>$ ! %A &eh!& %x" !~ "9*Ny"#&D $1$. "L2! w   zX" m W5 z:*G`"M #H hMk y+ @!| #a o("  $tf%J`#   $&f3 y  # g"p\C 'j $oTDK_h$= @ }JD#C mOD%! i gid&%!]8$WM d&3 $A v$K8!ot& :% ( "/ f) -^$D5 o "SW #!_%" G=%@h&h= q !!B$,#^Sr \& E!g Q&rP$ $3oB ` &#M2! q i&; 0r#],lK  3 @ =" ! %&K ^!; v!Kh/ 9& +$t})!W "D$+$v*"$ n,C"  c%"u N$K2! p;"z> ] S ,m$A~#s#,%HN "[")V "Q!U ? !Lz%l=w"#$; *y% _@ " ,8"=  {$ > v0a&&Gas #' X B#L!,I#aG #[ 9 <U A #W !%+8%:" $  S ~"rZJ '#f*.&({  DIfY!)%.c<=}!Lh&U&:$%M &s #6 X#?F G  KT U 3 & T}cd hQ#6F":!X  pV8 PP#  # 9{m% D'  S?_ %E[ ! W%!n& &u #?t#P !")[i" /$lHW o!"!}#Ay@ B%    _#!I d!I `r&, |azv q\fI $$'WFq 8"^ 1 !7"#q- m d ;& &24 !4%D li %Svl&[&]"F-= ; `&% DF"Nd RM# \t% &'#^ sS R `Jc"+dL. Q#)  VX%65 B |&1h> : ( %$%b- k%&W&>+  , b\ a$f#Z8"= >#l "&  " i%3 ObcA hUs$xS% !&_%Kfr R#$'H?U% #]!> }j!"a&Y i"u 3l  C", gQr+% o + %n-_"! ~%G#I ,!c  F$|  "[]&C|wfj%u i&? %5I% L\"L:}ps S K  |Fx 8$ ZV 3M %T    0  U&# =5#"o&T? 3 M / & B 3 \$# | w     %&}#4&< l! &u4#NxG&#X}$ 9 {  0 %([ 4  91 !o""!   & !O $ !g=#"w&&%e ?i, 2&"V!G % #<  $%SS  fU  $W@ U @,Y$ e _0'"ss&= V !: X$=@w !t\&&x ] g!+"(  < %?Y G$!& I~!H#k&"\A$$&# "} $x ;f% z f   3CJ w/ G%k9\,&%"u}%k C% $m&" "  B?Wfk'",>   ##CR%w#X#v!+%A%""D!]$eR@ eb*?%BQ#r "O y Dd !q*% >!e"t D f"G$8"U B%n&#-!:&d@!F#G}  8}Gq A T$( #r &C%Q#at@ (%#"j !& "%& :K&: H$ [O\sn: U#9!b 3jE! k# %z" &H<$ 4! " IQ% )%% \ G;&q%&!O .$&d&a G0_q\PR A[` &- mk"f  2 !"U l  \>! %s  )$4,D"% :[9 J D&nE% }q$S )"@a!  HEP* uY"d%d6)%{ DP$#  )P K v&s  # $ $a&U!q$#%8 cDy )V!  K$!J"G 5WJ7 " ##%G ,  W ^#*I60 !"$ ^<K?&7[H$} ! W%w" $}KW# Y %$I& v!H%$ Ej%OT %bME! " ! d")  zV%i ? Sd`i  s$hb$6E >U%& "b]E-  h$ v /h /G"!F V n#}%J" f& 30T; xs @ v#3"6"B%= )d%$&f& ! Hb} F!e 3 *#;P; #@ V. ):  ' $s&J!Pd%c.% !y; h Q&=@ #^ ?/"c& "*$[J 3 A ` h m %0&w|k  |c%Y!-!(` &CX az!]!$W ] &i\  ## k%J z Hr >$_g#l: jh<!|  #?Z@l Ab"U 2<n+!P L P!( :$] :,-6!2Q"''#s'(  ?gzr54 != ~N   oLf .$| Q"2 #%&y ACG"vdy%"x  Gj!P(K c&j!i%xi $N% l4#r &Z|! Q j0#\k fZ j k v%a5N 3$a; &  !_"uE"# \Y ) `}#W9#9 !g [;/  )"#6 /"5 @%7$&0E %4%o&%t u WL#%# s#jIcs[w a&#QyJ%(< "C"5 L G##D ZO !t$m&vi r # ]b^%&o(%^ ~! s#7 8 " [ & U$ 6 3J 3#$_" v "Dou#~__# Nlw ;["#c"h Bs/`{"$ Hq '+} %& % BPz;t K u Z$l y#zn O 3' _ $Q594&G M!"? I!:`om;< RXA&'h% 8n kU| B&% :H & $#P  ;3$ &3$-b&  u ;2Ko}:l  hf! \M %IX?#g$ $ 9!"L_[$&aa!m d#PP g0 r "$ HZ M -M!%"_0}'Q" . mA<) %5" _S$!!   `-# $|! %D!= ! !Y % Vh2"#5# ;# 8#5 $"R %~}!!pcF c *( ~P 37Q(Xx z  !U2A ; ` "&     c#D 6 e I!8v gsA9X  ##$T ~ U X& " gb z%)kf ;#wu;! $.3 S$# F"n  N'! %;J M#EY K  w !z'"ora#3,$ >q  P " Hdt$:@ #,c ;Y # s \   " w  %>e@"(!|k2 5#. X%; # " f \GH$(! Za M:"qk" c!a yT )Q]0$i # "[&% ."u%Cf#f`#Y!&tmMF %(# ,~$..kqfo&!f&?j  UMFIM&c eRa ;#^+C +#Ob    #A$#Z"& z%j $BE jg #  $%s$!  X$ H&0 )j' ;&~@ /&;M wtV' 1% G#  T4Kzs  $6 -2B&f#C %`%T n' ^ rJ  & i5YVL=g "&~"8 N..y vk  (^ U=6? !  M4 ;~&l&r62%w#&J^ /l( ]p%?  5&s.%?u ,#q !2$&d##3 #"#z"!3  N!$$N&@,.% w "@l!t }X&/4$" t#%m?& =j!Jaa#jX )A!OO U  c$* (w  * "&" &w!g Gynilh k #s3  k R q%mI$j&  1a&& H <Z! %   q OE|tH!# :$ lXn2M$P#K ,# ."D =; r" %:! c H!j&6Q 3 $ Ed#0!r"$H \P%!t#`\|@zHY7Y !"`n !!PN@$ _ 0mPsX#l# d" t [S  -% Ks %& " "M"4&#~"Z H" 2N# C!#y$U" `  %$^"7!9 $91SHj6"\;$!i<"`V"1& [&E =$& K &$' j Z6  0& %K&9!aqW!U!c !: p !K% #UE n!& <_#&v&: b [-l Yt ;/K"@m>" y `*$M!_% \X" 'U xN# &y  _ !9U $@(# { x%A" # !! ="vE@l"&e ,%a($ /#{ "E p&|~/'"m ^ ; +v$&3m  W$6  W >## SI%c' "5  )3%#]#%?Y   !$e$# ,|2my *c s$/ >!b$a B\ $! 2m!U q1$"4 2  Ms w*. 'e4"&1 B ,: |t#hO !:x #_ e p 1%$Gi8"H8R"]#59   $h6 k KD PV  !W \^m| 6%4bDu#}'& %$ `x "h!&@!1 C!g%!|#29!!? % #y 8@#6&d Np>XSSr!j& $&< &7! #('> gQ v 9#% Z "q#38"N P {$ Y# /EmV#'cm? | cT>& $<#d{ $#]O{ 4 8 ## 1%=Q #n}  " ,8 % >F$W  l$c S! l am5C$b' s!y $ &f u ##_$\#D x v) #%e X4 c& $a kc1?"v r|W  &V eK w !Y& k F$xH##gb %!$3%$e ; ";!a|H &$&x ] C !$ 67" :"4 h T8n2$N&c\+Z$$#2i "3d ]. ( R XHsJ $  ,` &nW+X[60"' {D!jW"&kO %{k%   %> 1 w# ' N+(I5D0j B0 # { %=O &Z&"[ &#\!W =Z"@q SOZO&)A e_ S "J%#_ #"Sd y%[D&"p>/e< n!N.$!F !dL%'dU?${"%! Y{S o %C D & (v&-V$/ Ak#$y! y 7%!\!"R^ w ] +i~!#a ,_$" "% m!$LVz~\& YQ&3d]&PZZ! 2GU#&NJ #/ qz$ ( t#15 ;c=K! ]  R%% oC%#X %]+\#  @$$P$xd j *X$K; %0 $# w#"/Fj {}  mo %!()W !#Gs  \6p eW&&"mo" / ",m ZJ V9&E!S :pfo BY .zCE$ z &%"N #1%`' # -"}$!UO&&(! (3"%D Q&? t F!! 7G q"% + B ,%O&4T&Y?u < p &&T#e O"&/ f}!!#%[  L&: / u! nSo$0!R  %!!(%%`s n&ah7 b`!R@ CK&+X 7 A#!i} f Ub"W{4" &! o_n  J * 5!Jg "LG$%H# %&$d!Uhy! * 8,z rh T$ceR$&%T 'i Q6"{+o%F!81"![!\|$%|  w;!ARqT b"aw H "7 #@%\G#!!Q #6j # ~x&""a& hAB "< O$ F \ "$@" $ 7&' vSn ,# V ! `  &&&)i @ k"  x "V%.c $$ !<Ur jH" %m!&o#DC$,,#A820o w [Z% dqo  6-  Z%&|o= >%v$s9H$Q$3 "f$%8%%% 9&d { $rOES }=  " ?&}&;->![ &'!10 Xm  %OAD$:  k&"0& c J#Z Ao$:q2$U K%ds[I I+ !=#g / \( z 4s$ $T k&" {7dS &a+!<#!#%!#l:j>j$ { "@ o"Y!#  _o !=Z& 54 # >~&W1 %&$"%~${ !G 6E'D ,1p=   K 0&$p $Df6p#!M a8}p%&|"?![>S[ X B' t"1 2 $H M( !A %c< Y/6&F##w  +=Y!%  j+Q$ $R!$g#GJe  I z$9!9y%"*"tNLTt * #/y9A!aH zv!%#94z& S&> ;!o L ^"L ^ '(VN = "" d @   Z'ԥo#c^-ka>%^ OA[-mK{ɗa\c)$Rs{A+pC)T0 }G!I sLjj$ xٔeB,bE"&O'jdn8ڧ?O![/u2Sǵ4f1FU鼉:Jqwu)yeḑ'dc{%pk>_S"ay&gye=l0#fm&85,l:Ǿ.cQ`ٸ!t/P>Bvh wt;xFybQbՋwُ.C|!@ '|í%Ia)Z^Gc?]& y+|ihJfJ78F2 m^A%~=."3x|YS$fA4 #w. 8/#tڼ3&NNIg-n=X)va"_;P*rZs)3sb"N5}Ӈ;OT?gE&q a[nO*i{P4+/'cPqJ.(noIn-XʶdK(i|X-kwN16si\RC{]T7/xPlÔvZIN()e\U< ӭAO>!]2_)ٯW؄̿d1A{\8;Ok^3rW0A0:=-YnK.}ZJ-R"(PWB]}9Y8ֆwzaaj x!apP{B3y0k @xOv]ߔ3@?{as]x/Y^ڴ7YY }!x.iH}CMCZsT(Nb\龁?؛$ݐ\\7 7櫘T?M# Y=A"3T~R<. ?#&7# QExt]u۹reKLw(mQC'U'=! s`0UO+XIwX+m{_m2VKZDt9|Gi r osnFx]d!\)DJTM^#}~o]~%d~vFUD~$ %sŕBMs2֞@ȓOC u[b$R!x5Tz_yƥ-o$4"D$}~=K@1Ye?yyjqYi"cYZDCYhSi8T6t*a2s 4x<4aJk7 :ԛ-۩Ii4v\( 2p܀h8.yX!YXժfYh1(Y~ƅ;dM5i8`}@D<|AJ'nWb"ݶ3f7,>ޑdjN5jgV@;x*hk2i&dm7<κ5!M>[>_ @Q|j^I(팅h|" e=b! 3'J ar1okK 6Ϫfm-Z, 'ބ6Ja3?ꫯ#{>%辵]<+[ q] Jle9Iyuܑ!nq#m"'"|.[ӟr/PknpJՕqn&f6$Z䪆[9"3uKz-Gwn@ _l%ËBs |-Cui-+,W >-b%NûXWk-rÑ} !#}K:@"puqzaje:]TSA^l)QD|.2χiaSpM74nFS/L'I”zpOBu9:c !VFtIʚEbC9hXTa?ZI5;L"ND-KJI# MDL*=3C {k,T| X2+łaCj*#n]Tq~3ZOLᘢ3tl\}o;owb4QƋY+X,R z+>|"Zan!Pdbb{_hvjE*2-/b=6 n4Q@=nR_53Vѿnԓ^ R]EB᮴4.o?zn(wKgந;gVlȝ [H=J6RMq! JEjתL|ᥜu<A8|XKat_&8Prm.;5^HĽרyʴQI\&DLt"0畒;̨|C8^:H^ZIfT\xZR+| hF}ݸPYavH W^D/g! *9RD_2;*N>fUHn ݘROr *>Qs0E)ody ~GJ~2vr^PPܭ,8=M7sgmQᢠR#:sDٺp:RRN/M Ob{ι@!fu)/f\J?<=r(>Q%SC"``XȝWۺ$ƹȍ+ؠߐU>()PhXMu-crV;0L#fAC ſcʹ锢 3i'Mf3Jwʼӧ) ޗ54 m߲$0?LHA}Wv0BKm6 4>Kq ͎ޅ%pk#Y3q=vj~aVN.ICX0R|G+-r]o_uJ8#1 3H r@BhpOCSl h*Z#j1|{=K ȻFʍ {2TI'ܜXJ6z)? Iw#[̢r/5D2NL3v!2.L2>p6\BF8i>ùoh)].!qCPCk)lC`" 0m^gŞ;}x0ޝD^D޲M ^A)vأ% e"-]$ k&B& &0$-F- R!C b& #~4&v 3| @ \! " "z$ * h"K d="d$&:8 P k ;%%n z   9E  !%~%R 4B+ /# !Ox !N"8# A"jC$`$ *R > !' !0   $ z V K&!  +!%o[o&!!$2 EXj" #0sdx ewY#F&"n*1$|%   &  #$d 0% c z5  C R-##}{%@ &E &i h7" 4_ ? 6aXh-d!5"#G 9 $% V %\@&">  !%# m I y7"H#kn0 - q eFl `/ XZ "D" } #1 D\ B D>. + %! I\ [!; kiu %$H O^% 2 x  %|#% h&V=$d= B&; $$X&]T<SS; c Y ]Q "6"$#`Z!R$  !Y!! #JR@,+$y#&\%f%$ P C"/vG$r'+#'2XM* 1 )  >1n@$  #k&)  Z$ W5vK$- $I&sE~@%<]  &!#3 2 &QB > 4J#""zh%b;#)"%WU_qX}dw! # #/y  #+G]1 R}!y " ! {s& P%a&"" E:l`z: ]$FpG/.&o&j2B#  1!{ - !c% T&! F3  !s & $2R <$] " $ $ #yHCY&P pW -MV$A&14 : Y$ \ } e&a_$g k#i:&/&:# P "",H`  4= X N!%6 G>"%5"l&UWZ $  /~!(p;#,%#2&y+ VU%"&j#zNi/41!ss,E "T0o> %Q W . f# \k&#_ ` n!F#D"&GlD =* "7 Ej#"PRb  &1?"k%>J #$%!<J!n~ @# )" ^! 'F0  2."Szec#} "&& j$" ~"31$!"%#% E &  '&57  v %""E"[Yx: #  !/$ d 6  #v" SOs'& %#1%G*# ACU# $c! b ""E!Z O& E&t#_Q#kLJ;"E% M 0n! ~A("%!$$<0mQI 4# F#!$ Y2!=EO~hg#&lQ+ #^*$: _=8"ey + %*}.  dB" .& [W Eq#y uM&{!^ ? s h( &(.!a-   |n$J#j5 hV!R Y ci"n^,%!&R+("SQ$Y3 R#L&@=<%%k$v |?5($#}+ 'BN2!s#" %e& !r W+- $e jF I x #"&n$"E$$>>"XT%I % g,##7$ `A v#%uq $}U%{"># F! %S >i$[8M% !!w$? SP$H $ WU< ^" @dO peT~ %&wk"7cm ##B a!yv F c #!"|&"[ d5    O&  $!9   + %WV"W!DS#B ".4 ~  f4&"+ %' ks   " h&%%b($& $#&/% #="x"K4 uJRw } "L$R~Z$!i" $8 6 *On  x&# %uWM" >$&e73o#h0%S!  0 A8I$U ~ w m"%  <M  H#/!  "Mq? O!8 e ~> #a!L $Q"#   D:!h{ 0~u~!&!^6 Q$ [e & @#- z&Y [ 31SJb 4  2! ~K }": v^& 6c'wy @ ?~7 a! .!\$z!^R aJK  &!` k%h#v  ^0VS#!? <$Z* )(bw Xa!L l V v!&E_## "t}$ QoR!VBWh nD[#"G eq %@%k# -"{* &O C%,  A $ lt!1  o&^0 X ol 0 mb % &&_aEQI & !4%0  `% ! ~&( q3r`O/&f4i "#}"s$Y W$a(` =I 2  >%  ,L" M>&t %G"_#=+ gL D#&W!3 # S ww O! @!".  %m!t!%!X  /!n#~ W"3 !B$'V&/M 3@J&I Myl {"$ L B  m#u 7Mp$ "h #}##L!%U e\#J!F a b! 4q K %x&B&" C$ c "$n$ R T 8 >. $$ ~&x% m"66 &K"p%F U_Vx" "wB%{"$1e L#9;?Hm$!"A1   ~Gg &v%n U$Fd 2I84$$ " F&S%B%=L y# !!2k#7: %OT '1<IWfv #>ZwAg 6c#V.gX\+s  Q : - cldlod.c 664 146 144 42244 5151221234 5561 /* $Id: cldlod.c,v 1.20 92/02/14 15:55:24 tomc Exp $ */ #include #include #include #include #include #if defined ( __WATCOMC__ ) || defined( __DGUX__ ) || defined( macintosh ) #include #else #include #endif #if !defined ( macintosh ) #include #endif /* Headers for working with COFF files */ #include "coreaddr.h" #include "maout.h" #include "dspext.h" /* function definitions */ static void onintr(); static void cld_to_lod(); static void read_headers(); static void read_strings(); static void start_record(); static void read_sections(); static void dump_data(); #if defined ( __WATCOMC__ ) || defined( __DGUX__ ) || defined( macintosh ) static void eprintf( FILE*, char*, ... ); static void error( char*, ... ); #else static void eprintf(); static void error(); #endif /* Global variables */ FILHDR file_header; /* File header structure */ AOUTHDR opt_header; /* Optional header structure */ OPTHDR link_header; /* Linker header structure */ int absolute; /* Absolute file flag */ long num_sections; /* Number of sections */ long section_seek; /* Used to seek to first section */ long symptr; /* File pointer to symbol table entries */ long num_symbols; /* Number of symbols */ int data_width; /* width of data for printing */ int addr_width; /* width of address for printing */ char *str_tab; /* Pointer to start of string char. array */ long str_length; /* Length in bytes of string array */ FILE *ifile = NULL; /* file pointer for input file */ char *ifn = NULL; /* pointer to input file name */ /* init is to non valid memory space */ int space = 777; /* 0=p, 1=x, 2=y, 3=l, 4=N */ main (argc, argv) int argc; char *argv[]; { void exit (); /* set up for signals, save program name, check for command line options */ signal (SIGINT, onintr); /* check for correct command-line */ if ( argc != 2 ) { fprintf( stderr, "usage: cldlod cldfile > lodfile\n" ); exit ( -1 ); } if ( ( ifile = fopen( argv[1], "rb" ) ) == NULL ) error( "cannot open input file %s", argv[1] ); cld_to_lod(); fclose( ifile ); exit (0); } static void cld_to_lod() { read_headers (); read_strings (); /* blow out the _START record */ if ( symptr != 0 && num_symbols != 0 ) /* no symbols */ start_record(); read_sections (); if ( symptr != 0 && num_symbols != 0 ) /* no symbols */ dump_deb_symbols (); /* blow out the _END record */ eprintf( stdout, "\n_END %01.*X\n", addr_width, CORE_ADDR_ADDR (opt_header.entry) ); } /* blow out the first .cmt symbol with: n_sclass == C_NULL n_type == T_NULL */ static void start_record() { SYMENT se; int i = 0, sym_id = -709; if ( fseek( ifile, symptr, 0 ) != 0 ) error ("cannot seek to symbol table"); while ( i < num_symbols ) { if ( freads( (char *)&se, sizeof (SYMENT), 1, ifile ) != 1 ) error ("cannot read symbol table entry %d", i); #if !BIG_ENDIAN if ( se.n_zeroes ) swapw( se.n_name, sizeof (long), 2 ); #endif if ( strcmp( se.n_name, ".cmt" ) == 0 && se.n_sclass == C_NULL && se.n_type == T_NULL ) { sym_id = CORE_ADDR_ADDR(se.n_value); break; } i++; } /* */ eprintf( stdout, "_START " ); if ( sym_id >= 0 && str_length != 0 ) { char *str_ptr = str_tab; int len; long offset = (long) sizeof( str_length ); do { if ( offset == sym_id ) break; else { len = strlen( str_ptr ); offset += len + 1; str_ptr += len + 1; } } while ( str_ptr < ( str_tab + str_length ) ); eprintf( stdout, "%s", str_ptr ); } eprintf( stdout, "\n\n" ); } static void read_headers () { if ( freads( (char *)&file_header, sizeof (FILHDR), 1, ifile ) != 1 ) error ("cannot read file header"); /* Save the global values */ num_sections = file_header.f_nscns; num_symbols = file_header.f_nsyms; symptr = file_header.f_symptr; absolute = !!(file_header.f_flags & F_RELFLG); /* check the MAGIC number */ if ( file_header.f_magic == M56KMAGIC ) { data_width = 6; addr_width = 4; } else if ( file_header.f_magic == M96KMAGIC ) { data_width = addr_width = 8; } else if ( file_header.f_magic == M16KMAGIC ) { data_width = addr_width = 4; } else { error( "Header has a bad magic number" ); } /* optional header present */ if ( file_header.f_opthdr ) { if ( absolute ) { if ( freads( (char *)&opt_header, (int)file_header.f_opthdr, 1, ifile ) != 1 ) error( "cannot read optional file header" ); } else { if ( freads( (char *)&link_header, (int)file_header.f_opthdr, 1, ifile ) != 1 ) error( "cannot read linker file header" ); } } /* File offset for first section headers */ section_seek = sizeof(FILHDR) + file_header.f_opthdr; } static void read_strings () { long strings; strings = symptr + (num_symbols * SYMESZ); if ( fseek( ifile, strings, 0 ) != 0 ) error ( "cannot seek to string table length" ); if ( freads( (char *)&str_length, 4, 1, ifile ) != 1 && !feof( ifile )) error ( "cannot read string table length" ); if ( feof( ifile )) str_length = 0L; else if ( str_length ) { str_length -= 4; str_tab = (char *)malloc ((unsigned)str_length); if ( fseek( ifile, strings + 4, 0 ) != 0 ) error( "cannot seek to string table" ); if (fread (str_tab, (int)str_length, 1, ifile) != 1) error( "cannot read string table" ); } } static void read_sections() { int i; XCNHDR sh; /* Section header structure */ for (i = 0; i < num_sections; i++) { if (fseek (ifile, section_seek, 0) != 0) error ("cannot seek to section headers"); if (freads ((char *)&sh, sizeof (XCNHDR), 1, ifile) != 1) error ("cannot read section headers"); #if !BIG_ENDIAN if (sh._n._s_n._s_zeroes) swapw (sh._n._s_name, sizeof (long), 2); #endif section_seek += sizeof (XCNHDR); dump_data (&sh); } } char * get_secname (sh) XCNHDR *sh; { char *secname; if ( sh->_n._s_n._s_zeroes ) secname = sh->_n._s_name; else { if (sh->_n._s_n._s_offset < sizeof (str_length) || sh->_n._s_n._s_offset > str_length) error ("invalid string table offset for section header name"); secname = &str_tab[sh->_n._s_n._s_offset - sizeof (str_length)]; } return (secname); } static void dump_data (sh) XCNHDR *sh; { char *secname, *get_secname (); long *raw_data; int j; if ( sh->_s.s_scnptr && sh->_s.s_size ) { int memtype = CORE_ADDR_MAP( sh->_s.s_paddr ); int address = CORE_ADDR_ADDR( sh->_s.s_paddr ); char *mem_field; secname = get_secname( sh ); /* determine the memory field (optional counter ok) */ switch ( memtype ) { case memory_map_p: mem_field = "P"; break; case memory_map_pa: mem_field = "PA"; break; case memory_map_pb: mem_field = "PB"; break; case memory_map_pe: mem_field = "PE"; break; case memory_map_pi: mem_field = "PI"; break; case memory_map_pr: mem_field = "PR"; break; case memory_map_y: mem_field = "Y"; break; case memory_map_ya: mem_field = "YA"; break; case memory_map_yb: mem_field = "YB"; break; case memory_map_ye: mem_field = "YE"; break; case memory_map_yi: mem_field = "YI"; break; case memory_map_yr: mem_field = "YR"; break; case memory_map_x: mem_field = "X"; break; case memory_map_xa: mem_field = "XA"; break; case memory_map_xb: mem_field = "XB"; break; case memory_map_xe: mem_field = "XE"; break; case memory_map_xi: mem_field = "XI"; break; case memory_map_xr: mem_field = "XR"; break; case memory_map_l: mem_field = "L"; break; case memory_map_laa: mem_field = "LAA"; break; case memory_map_lab: mem_field = "LAB"; break; case memory_map_lba: mem_field = "LBA"; break; case memory_map_lbb: mem_field = "LBB"; break; case memory_map_le: mem_field = "LE"; break; case memory_map_li: mem_field = "LI"; break; default: mem_field = ""; break; } raw_data = (long *)malloc((unsigned)(sh->_s.s_size * sizeof (long))); if (fseek (ifile, sh->_s.s_scnptr, 0) != 0) error ("cannot seek to raw data in section %s", secname); if (freads ((char *)raw_data, (int)sh->_s.s_size, sizeof (long), ifile) != sizeof (long)) error ("cannot read raw data in section %s", secname); /* check for block data */ if ( sh->_s.s_flags & STYP_BLOCK ) { if ( mem_field[0] == 'L' ) { eprintf( stdout, "_BLOCKDATA X %01.*X %01.*X %01.*X\n", addr_width, address, addr_width, CORE_ADDR_ADDR( sh->_s.s_vaddr ), data_width, *raw_data++ ); eprintf( stdout, "_BLOCKDATA Y %01.*X %01.*X %01.*X\n", addr_width, address, addr_width, CORE_ADDR_ADDR( sh->_s.s_vaddr ), data_width, *raw_data++ ); } else { eprintf( stdout, "_BLOCKDATA %s %01.*X %01.*X %01.*X\n", mem_field, addr_width, address, addr_width, CORE_ADDR_ADDR( sh->_s.s_vaddr ), data_width, *raw_data++ ); } } else { eprintf (stdout, "_DATA %s %01.*X\n", mem_field, addr_width, address ); j = 0; while ( j < sh->_s.s_size ) { if ( mem_field[0] == 'L' ) { eprintf (stdout, "%01.*lX %01.*lX ", data_width, *(raw_data+1), data_width, *raw_data); raw_data += 2; j += 2; } else { eprintf (stdout, "%01.*lX ", data_width, *raw_data++); j++; } if ( j % 8 == 0 && j < sh->_s.s_size ) eprintf (stdout, "\n"); } eprintf (stdout, "\n"); } } } dump_deb_symbols () { SYMENT se; AUXENT ae; int i, j, k; if (fseek (ifile, symptr, 0) != 0) error ("cannot seek to symbol table"); i = 0; while (i < num_symbols) { if (freads ((char *)&se, sizeof (SYMENT), 1, ifile) != 1) error ("cannot read symbol table entry %d", i); dump_se_d (&se); /* ek */ k = i++; for (j = 0; j < se.n_numaux; j++) { if (freads ((char *)&ae, sizeof (AUXENT), 1, ifile) != 1) error ("cannot read auxiliary entry %d for symbol entry %d", j, k); i++; } } } dump_se_d (se) /* for debug symbol table */ SYMENT *se; { int old_space; char *name, *type, *sclass; char sym_type = 'I'; if (se->n_zeroes) { #if !BIG_ENDIAN swapw (se->n_name, sizeof (long), 2); #endif name = se->n_name; } else { if (se->n_offset < sizeof (str_length) || se->n_offset > str_length) error ("invalid string table offset for symbol table entry %d name", se - symptr); name = &str_tab[se->n_offset - sizeof (str_length)]; } if ( name[0] == '.' ) { return; } switch ( se->n_sclass ) { case C_EFCN: sclass = "C_EFCN"; break; case C_NULL: sclass = "C_NULL"; break; case C_AUTO: sclass = "C_AUTO"; break; case C_EXT: sclass = "C_EXT"; break; case C_STAT: sclass = "C_STAT"; break; case C_REG: sclass = "C_REG"; break; case C_EXTDEF: sclass = "C_EXTDEF"; break; case C_LABEL: sclass = "C_LABEL"; break; case C_ULABEL: sclass = "C_REG"; break; case C_MOS: sclass = "C_MOS"; break; case C_ARG: sclass = "C_ARG"; break; case C_STRTAG: sclass = "C_STRTAG"; break; case C_MOU: sclass = "C_MOU"; break; case C_UNTAG: sclass = "C_UNTAG"; break; case C_TPDEF: sclass = "C_TPDEF"; break; case C_USTATIC: sclass = "C_USTATIC"; break; case C_ENTAG: sclass = "C_ENTAG"; break; case C_MOE: sclass = "C_MOE"; break; case C_REGPARM: sclass = "C_REGPARM"; break; case C_FIELD: sclass = "C_FIELD"; break; case C_BLOCK: sclass = "C_BLOCK"; break; case C_FCN: sclass = "C_FCN"; break; case C_EOS: sclass = "C_EOS"; break; case C_FILE: sclass = "C_FILE"; break; case C_LINE: sclass = "C_LINE"; break; case C_ALIAS: sclass = "C_HIDDEN"; break; case C_HIDDEN: sclass = "C_HIDDEN"; break; default: sclass = ""; break; } switch ( BTYPE( se->n_type ) ) { case T_NULL: type = "T_NULL"; break; case T_CHAR: type = "T_CHAR"; break; case T_SHORT: type = "T_SHORT"; break; case T_INT: type = "T_INT"; break; case T_LONG: type = "T_LONG"; break; case T_FLOAT: type = "T_FLOAT"; sym_type = 'F'; break; case T_DOUBLE: type = "T_DOUBLE"; sym_type = 'F'; break; case T_STRUCT: type = "T_STRUCT"; break; case T_UNION: type = "T_UNION"; break; case T_ENUM: type = "T_ENUM"; break; case T_MOE: type = "T_MOE"; break; case T_UCHAR: type = "T_UCHAR"; break; case T_USHORT: type = "T_USHORT"; break; case T_UINT: type = "T_UINT"; break; case T_ULONG: type = "T_ULONG"; break; default: sclass = ""; break; } old_space = space; space = CORE_ADDR_MAP ( se->n_value ); switch ( space ) { case memory_map_none: if ( old_space != space ) eprintf( stdout, "_SYMBOL N\n" ); /* print symbol name and value */ eprintf (stdout, "%-19s %c %01.*lX\n", name, sym_type, data_width, CORE_ADDR_ADDR (se->n_value)); break; case memory_map_p: /* print only pointers to functions (should be ext or stat...) */ if ( ISFCN (se->n_type) ) { if ( old_space != space ) eprintf(stdout, "_SYMBOL P\n"); /* print symbol name and value */ eprintf (stdout, "%-19s I %01.*lX\n", name, data_width, CORE_ADDR_ADDR (se->n_value)); } else /* restore last written space */ space = old_space; break; case memory_map_x: if (old_space != space) eprintf (stdout, "_SYMBOL X\n"); /* print symbol name and value */ eprintf (stdout, "%-19s %c %01.*lX\n", name, sym_type, data_width, CORE_ADDR_ADDR (se->n_value)); break; case memory_map_y: if (old_space != space) eprintf (stdout, "_SYMBOL Y\n"); /* print symbol name and value */ eprintf (stdout, "%-19s %c %01.*lX\n", name, sym_type, data_width, CORE_ADDR_ADDR (se->n_value)); break; case memory_map_l: if (old_space != space) eprintf (stdout, "_SYMBOL L\n"); /* print symbol name and value */ eprintf (stdout, "%-19s %c %01.*lX\n", name, sym_type, data_width, CORE_ADDR_ADDR (se->n_value)); break; default: space = old_space; /* restore last written space */ return; break; } } /** * * name freads - swap bytes and read * * synopsis freads (ptr, size, nitems, stream) * char *ptr; pointer to buffer * int size; size of buffer * int nitems; number of items to read * FILE *stream; file pointer * * description Treats ptr as reference to union array; if necessary, * swaps bytes to maintain base format byte ordering * (big endian). Calls fread to do I/O. * **/ freads (ptr, size, nitems, stream) char *ptr; int size, nitems; FILE *stream; { int rc; rc = fread (ptr, size, nitems, stream); #if !BIG_ENDIAN swapw (ptr, size, nitems); #endif return (rc); } #if !BIG_ENDIAN union wrd { /* word union for byte swapping */ unsigned long l; unsigned char b[4]; }; /** * * name swapw - swap bytes in words * * synopsis swapw (ptr, size, nitems) * char *ptr; pointer to buffer * int size; size of buffer * int nitems; number of items to write * * description Treats ptr as reference to union array; if necessary, * swaps bytes to maintain base format byte ordering * (big endian). * **/ swapw (ptr, size, nitems) char *ptr; int size, nitems; { union wrd *w; union wrd *end = (union wrd *)ptr + ((size * nitems) / sizeof (union wrd)); unsigned i; for (w = (union wrd *)ptr; w < end; w++) { i = w->b[0]; w->b[0] = w->b[3]; w->b[3] = i; i = w->b[1]; w->b[1] = w->b[2]; w->b[2] = i; } } #endif static void onintr () /* clean up from signal */ { void exit (); exit (1); } #ifdef va_dcl #undef va_dcl #define va_dcl char *va_alist; #endif /* VARARGS */ /* call fprintf, check for errors */ static void #if defined ( __WATCOMC__ ) || defined( __DGUX__ ) || defined( macintosh ) eprintf (FILE *fp, char *fmt, ...) #else eprintf( va_alist ) va_dcl #endif { void exit (); va_list ap; #if defined ( __WATCOMC__ ) || defined( __DGUX__ ) || defined( macintosh ) va_start (ap, fmt); #else FILE *fp; char *fmt; va_start (ap); fp = va_arg (ap, FILE *); fmt = va_arg (ap, char *); #endif if (vfprintf (fp, fmt, ap) < 0) error ("cannot write to output file"); va_end (ap); } /* VARARGS */ static void #if defined ( __WATCOMC__ ) || defined( __DGUX__ ) || defined( macintosh ) error (char *fmt, ...) /* display error on stderr, exit nonzero */ #else error (va_alist) /* display error on stderr, exit nonzero */ va_dcl #endif { void exit (); va_list ap; #if !LINT int err = errno; #endif #if defined ( __WATCOMC__ ) || defined( __DGUX__ ) || defined( macintosh ) va_start (ap, fmt); #else char *fmt; va_start (ap); fmt = va_arg (ap, char *); #endif fprintf (stderr, "cldlod: "); vfprintf (stderr, fmt, ap); fprintf (stderr, "\n"); va_end (ap); #if !LINT if (err) { errno = err; perror ( "cldlod" ); } #endif exit (1); } DDR_ADDR( sh->_s.s_vaddr ), data_width, *raw_data++ ); } } else { eprintf (stdout, "_DATA %s %01.*X\n", mem_field, addr_width, address ); j = 0; while ( j < sh->_s.s_size ) { if ( mem_field[0] == 'L' ) { eprintf (stdout, "%01.*lX %01.*lX ", data_width, *(raw_data+1), data_widmakefile 664 146 144 3165 5151221271 5634 # $Id: makefile,v 1.8 92/01/14 15:44:48 jay Exp $ #CC = gcc # GNU compiler CC = cc # NeXT,DEC OS = -DBSD # Sun, DEC, Apollo #OS = # Non-BSD (PC, Mac) #OS = -DMACH # Mach (NeXT) #ARCH = -DM68020=1 # Sun 3, NeXT, Apollo, HP, Mac #ARCH = -DSPARC=1 # Sun 4 #ARCH = -DI8086=1 # PC ARCH = -DD3100=1 # DEC 3100 #ENDIAN = -DBIG_ENDIAN=1 # everything but DEC and PC ENDIAN = -DBIG_ENDIAN=0 # DEC3100 and PC INSTALL = /bin/mv INSTALLDIR = # #CLASDIR=clas56 #CLASDIR=clas96 CLASDIR=clas16 #ARCDIR=sun3 #ARCDIR=sun4 #ARCDIR=next #ARCDIR=apl ARCDIR=dec DISTDIR=../../dist/$(ARCDIR)/$(CLASDIR) DBIN=$(DISTDIR)/bin DTOOL=$(DISTDIR)/cldtools DISTSRC=cldinfo.c cldlod.c cofdmp.c srec.c strip.c tiohist.c cofdmp.h srec.h strip.h makefile DISTBIN=cldinfo cldlod cofdmp srec strip tiohist all: cldinfo cldlod srec cofdmp strip tiohist dist: test -d ../../dist || mkdir ../../dist test -d ../../dist/$(ARCDIR) || mkdir ../../dist/$(ARCDIR) test -d $(DISTDIR) || mkdir $(DISTDIR) test -d $(DBIN) || mkdir $(DBIN) test -d $(DTOOL) || mkdir $(DTOOL) for i in ${DISTBIN} ; do cp $$i $(DBIN)/. ; done for i in ${DISTSRC} ; do cp $$i $(DTOOL)/. ; done clean: rm *.o cldinfo cldlod srec cofdmp strip tiohist cldlod: $(CC) -O $(ENDIAN) -I../mcoffinc cldlod.c -o cldlod cldinfo: $(CC) -O $(ENDIAN) -I../mcoffinc cldinfo.c -o cldinfo srec: $(CC) -O $(OS) $(ARCH) -I../mcoffinc srec.c -o srec cofdmp: $(CC) -O $(OS) $(ARCH) -I../mcoffinc cofdmp.c -o cofdmp strip: $(CC) -O $(OS) $(ARCH) -I../mcoffinc strip.c -o strip tiohist: $(CC) -O $(OS) $(ARCH) tiohist.c -o tiohist install: $(INSTALL) cldinfo cldlod srec cofdmp strip tiohist $(INSTALLDIR)r, exit nonzero */ #else error (va_alist) /* display error on stderr, exit nonzero */ va_dcl #endif { void exit (); va_list ap; #if !LINT int err = errno; #endif #if defined ( __WATCOMC__ ) || defined( __DGUX__ ) || defined( macintosh ) va_start (ap, fmt); #else char *fmt; va_start (ap); fmt = va_arg (ap, char *); #endif fprintf (stderr, "cldlod: "); vfprle length" ); if ( freads( (char *)&str_length, 4, 1, ifile ) != 1 && !feof( ifile )) error ( "cannot read string table length" ); if ( feof( ifile )) str_length = 0L; else if ( str_length ) { str_length -= 4; str_tab = (char *)malloc ((unsigned)str_length); if ( fseek( ifile, strings + 4, 0 ) != 0 ) error( "cannot seek to string table" ); if (fread (str_tab, (int)str_length, 1, ifile) != 1) error( "cannot read string table" ); } } static void read_sections() { int i; XCNHDR sh; /* Section header structure */ for (i = 0; i < num_sections; i++) { if (fseek (ifile, section_seek, 0) != 0) error ("cannot seek to section headers"); if (freads ((char *)&sh, sizeof (XCNHDR), 1, ifile) != 1) error ("cannot read section headers"); #if !BIG_ENDIAN if (sh._n._s_n._s_zeroes) swapw (sh._n._s_name, sizeof (long), 2); #endif section_seek += sizeof (XCNHDR); dump_data (&sh); } } char * get_secname (sh) XCNHDR *sh; { char *secname; if( sh->_n._s_n._s_zeroes ) secname = sh->_n._s_name; else { if (sh->_n._s_n._s_offset < sizeof (str_length) || sh->_n._s_n._s_offset > str_length) error ("invalid string table offset for section header name"); secname = &str_tab[sh->_n._s_n._s_offset - sizeof (str_length)]; } return (secname); } static void dump_data (sh) XCNHDR *sh; { char *secname, *get_secname (); long *raw_data; int j; if ( sh->_s.s_scnptr && sh->_s.s_size ) { int memtype = CORE_ADD_MA( sh->_s.s_paddr ); int address = CORE_ADDR_ADDR( sh->_s.s_paddr ); char *mem_field; secname = get_secname( sh ); /* determine the memory field (optional counter ok) */ switch ( memtype ) { case memory_map_p: mem_field = "P"; break; case memory_map_pa: mem_field = "PA"; break; case memory_map_pb: mem_field = "PB"; break; case memory_map_pe: mem_field = "PE"; break; case memory_map_pi: mem_field = "PI"; break;