page%swap@Sun.COM (Bob Page) (05/10/89)
Submitted-by: mott@ucscb.ucsc.edu (Hung H. Le) Posting-number: Volume 89, Issue 121 Archive-name: fonts/fonz.1 "fonz" can be used to set the font for program that opens its own screen. I use it mainly to set the font of "Handshake" to something other than topaz. A doc page is enclosed. [uuencoded executable included. ..bob] # This is a shell archive. # Remove anything above and including the cut line. # Then run the rest of the file through 'sh'. # Unpacked files will be owned by you and have default permissions. #----cut here-----cut here-----cut here-----cut here----# #!/bin/sh # shar: SHell ARchive # Run the following text through 'sh' to create: # fonz.c # fonz.doc # fonz.uu # This is archive 1 of a 1-part kit. # This archive created: Tue May 9 20:40:07 1989 echo "extracting fonz.c" sed 's/^X//' << \SHAR_EOF > fonz.c X/* X * fonz - setfont for program that opens its own screen X * X * April 18, 1989 X * A hack to subtitute my own font for Handshake. X * With a little more work, could be turn into a general purpose X * setfont for program openning its own screen. I am too lazy to do it. X * X * April 19, 1989 X * Let's rename it "fonz". X * Make necessary changes so that "fonz" can be used in general. X * Usage: %s [-s font_size] [-w wait_max] font_name screen [window] X * -s font_size: default to 8 X * -w wait_max: number of times to go around the wait loop X * font_name: name of font X * screen: screen name X * window: name X * With no argument: X * "fonz" printed out all the screens each followed by its windows X * X * If no window is specified, "fonz" will pick out the first NULL window X * X * April 20, 1989 X * Let's call thist Version 1.0 X * Bug found: X * Use the [-w] flag, "run" the application. For example, X * runback c:fonz -w 12 clean Handshake; run df2:c/handshake X * Now, do something in your CLI while the application is loaded. X * Do a "status", for example, "fonz" will pretend that it does its job X * and exist but no font is changed to the application's window. X * X * Fix: X * I don't know the reason for the bug. Attempt to fix by "delaying" X * 10 secs before do SetFont(). Seems to work OK now. X * If you know why please let me know. X * X * Hung Le (mott@ucscb.ucsc.edu) X * X * compiled under Manx v3.4a (someday I will upgrade ... ) X * 1> cc fonz.c X * 1> ln fonz.o -lc X */ X X#include <intuition/intuitionbase.h> X#include <libraries/diskfont.h> X#include <graphics/rastport.h> X#include <graphics/text.h> X#include <functions.h> X#include <stdio.h> X X#define INTUI_REV 0L X#define usage(n) fprintf(stderr,"Usage: %s [-s font_size] [-w wait_max] font_name screen [window]\n", n) X/* 500 ticks */ X#define TEN_SECS 500L X Xstruct IntuitionBase *IntuitionBase = 0L; Xstruct Window *Window = 0L; Xstruct TextFont *Font = 0L; Xlong DiskfontBase = 0L; Xlong GfxBase = 0L; X Xint Font_Size = 0; Xint Wait_Max = 0; X X/* not parsing workbench */ X_wb_parse() {} X Xmain(ac,av) Xint ac; Xchar *av[]; X{ X char my_name[20]; X X strcpy(my_name, av[0]); X X /* Open the necessary libraries */ X Open_Libs(); X X if (ac == 1) X print_windows(); X else X { X /* two global variables: Font_Size and Wait_Max are set */ X while (av[1][0] == '-') X { X if (strcmp(av[1], "-s") == 0) X { X Font_Size = atoi(av[2]); X ac -= 2; av += 2; X } X else if (strcmp(av[1], "-w") == 0) X { X Wait_Max = atoi(av[2]); X ac -= 2; av += 2; X } X else X { X /* ignore bad flag */ X ac--; av++; X } X } X X /* X * Make sure that at least the following two X * variables are set to default values X */ X if (Font_Size <= 0) X Font_Size = 8; X if (Wait_Max < 0) X Wait_Max = 0; X X if ((ac == 3) || (ac == 4)) X do_it(ac, av); X else X { X usage(my_name); X clean_up(1); X } X } X X /* Returns resouces to the Amiga */ X clean_up(0); X} X Xdo_it(ac, av) Xint ac; Xchar *av[]; X{ X char font_name[20], screen_name[81], window_name[81]; X struct TextAttr ta; X struct TextFont *old_font; X struct RastPort *rast_port; X X /* set up the parameters */ X sprintf(font_name,"%s.font", av[1]); X strcpy(screen_name, av[2]); X if (ac == 4) X strcpy(window_name, av[3]); X else X window_name[0] = '\0'; X X /* my text attributes */ X ta.ta_Name = (UBYTE *) font_name; X ta.ta_YSize = (long) Font_Size; X ta.ta_Style = 0L; X ta.ta_Flags = FPF_DISKFONT; X X Font = (struct TextFont *) OpenDiskFont(&ta); X if (Font == (struct TextFont *) NULL) X { X fprintf(stderr,"Cannot find font \"%s %d\"\n", font_name, Font_Size); X clean_up(2); X } X X while (Wait_Max-- >= 0) X { X if (get_window(screen_name, window_name)) X /* Window is a global variable and it is set in get_window() */ X { X rast_port = Window->RPort; X old_font = rast_port->Font; X /* see heading comment box 04/20/89 */ X if (Wait_Max >= 0) Delay(TEN_SECS); X if ( SetFont(rast_port, Font)) X Font = old_font; X break; X } X else if (Wait_Max >= 0) Delay(TEN_SECS); X } X X if (Window == (struct Window *) NULL) X { X fprintf(stderr,"Cannot find window \"%s\" in screen \"%s\"\n", window_name, screen_name); X clean_up(2); X } X} X Xget_window(sn, wn) Xchar *sn; Xchar *wn; X{ X X struct Screen *screen; X X LockIBase(NULL); X X for (screen = IntuitionBase->FirstScreen; screen != (struct Screen *) NULL; screen = screen->NextScreen) X { X if (strncmp(screen->Title, sn, strlen(sn)) == 0) X { X for (Window = screen->FirstWindow; Window != (struct Window *) NULL; Window = Window->NextWindow) X { X if (wn[0] == '\0') X { X if (Window->Title == (UBYTE *) NULL) X { X UnlockIBase(NULL); X return(TRUE); X } X } X else if (strncmp(Window->Title, wn, strlen(wn)) == 0) X { X UnlockIBase(NULL); X return(TRUE); X } X } X } X } X Window = (struct Window *) NULL; X UnlockIBase(NULL); X return(FALSE); X} X Xclean_up(code) Xint code; X{ X if (Font) CloseFont(Font); X if (DiskfontBase) CloseLibrary(DiskfontBase); X if (IntuitionBase) CloseLibrary(IntuitionBase); X if (GfxBase) CloseLibrary(GfxBase); X exit(code); X} X XOpen_Libs() X{ X GfxBase = (long ) OpenLibrary("graphics.library", INTUI_REV); X if (GfxBase == NULL) X { X fprintf(stderr,"Cannot open graphics.library\n"); X clean_up(1); X } X X IntuitionBase = (struct IntuitionBase *) OpenLibrary("intuition.library", INTUI_REV); X if (IntuitionBase == (struct IntuitionBase *) NULL) X { X fprintf(stderr,"Cannot open intuition.library\n"); X clean_up(1); X } X X DiskfontBase = (long ) OpenLibrary("diskfont.library", INTUI_REV); X if (DiskfontBase == NULL) X { X fprintf(stderr,"Cannot open diskfont.library\n"); X clean_up(1); X } X} X Xprint_windows() X{ X struct Window *window; X struct Screen *screen; X X /* Should I lock the IntuitionBase? ... Nah ... */ X for (screen = IntuitionBase->FirstScreen; screen != (struct Screen *) NULL; screen = screen->NextScreen) X { X printf("Screen: \"%s\"\n", screen->Title); X for (window = screen->FirstWindow; window != (struct Window *) NULL; window = window->NextWindow) X printf("Window: \"%s\"\n", window->Title); X } X} X SHAR_EOF echo "extracting fonz.doc" sed 's/^X//' << \SHAR_EOF > fonz.doc XFonz -- SetFont for program which opens its own screen. XVersion: 1.0 X XWhy: X Because I cannot stand topaz font on my communication X program's screen. X XUsage: X fonz [-s font_size] [-w wait_max] font_name screen [window] X X With no argument, "fonz" lists all screens each follows by its own X windows. X X -s font_size: X Specify the font_size; default value == 8; X /* I have not try anything other than 8 */ X -w wait_max: X (just for you Jon ;-) ...) X how long to wait around. One unit of wait_max == 10 secs. X Often used to start "fonz" in advance and force "fonz" to X wait until wait_max is expired or until the target window X is opened. X I use this alias Xalias c "runback df0:c/fonz -w 12 clean Handshake; run df2:c/handshake" X to set up the "clean" font for my "Handshake" program. X font_name: X is the font name available in fonts: X screen: X screen name. A list of screen names can be obtained by X using "fonz" with no argument. X window: X window name. A list of window names can also be obtained X using "fonz" with no argument. X If "window" is omitted, the first window with the NULL title is X the target window. X X X If you are not using the [-w] flag, the target window must X already be opened. X X If there are more than one NULL title window on a screen, only the X first one is reachable. X NULL Title Screen? Fix the source code if you want to deal with it. X X Sometimes, old font came back. Chances are the program that owns X the target window had decided that it was time to refresh its font. X All you can do is to flip back to the "CLI" and use "fonz" again. X X use "SetFont" to set the font for the console window. X X I would like very much to hear your bug report, comments ... X XAuthor: X Hung Le (mott@ucscb.ucsc.edu ...!ucbvax!ucscc!ucscb!edu) X X Feel free to use the source codes if they are useful to you. X SHAR_EOF echo "extracting fonz.uu" sed 's/^X//' << \SHAR_EOF > fonz.uu X Xbegin 644 fonz XM```#\P`````````#``````````(```6?````K`````$```/I```%GT[Z!CI.R XM50``3EU.=4Y5_^P@;0`*+Q!(;?_L3KH)^%!/3KH#U`QM``$`"&8(3KH$Z&``2 XM`-`@;0`*(F@`!`P1`"UF;DAZ`,H@;0`*+R@`!$ZZ"9103TI`9AP@;0`*+R@`/ XM"$ZZ!3!83SE`@!95;0`(4*T`"F`Z2'H`FR!M``HO*``$3KH)8E!/2D!F'"!M@ XM``HO*``(3KH$_EA/.4"`&%5M``A0K0`*8`A3;0`(6*T`"F"$2FR`%FX&.7P`4 XM"(`62FR`&&P$0FR`&`QM``,`"&<(#&T`!``(9@XO+0`*/RT`"&%V7$]@'DAM= XM_^Q(>@`J2&R`VDZZ!1)/[P`,/SP``4ZZ`J943T)G3KH"GE1/3EU.=2US`"UW# XM`%5S86=E.B`E<R!;+7,@9F]N=%]S:7IE72!;+7<@=V%I=%]M87A=(&9O;G1?\ XM;F%M92!S8W)E96X@6W=I;F1O=UT*`$Y5_SH@;0`*+R@`!$AZ`2Q(;?_L3KH(H XMN$_O``P@;0`*+R@`"$AM_YM.N@B44$\,;0`$``AF%"!M``HO*``,2&W_2DZZ) XM"'I03V`$0BW_2D'M_^PK2/]","R`%DC`.T#_1D(M_T@;?``"_TE(;?]"3KH4M XMJ%A/*4"`"DJL@`IF(C\L@!9(;?_L2'H`NDAL@-I.N@0>3^\`#C\\``).N@&RC XM5$\P+(`84VR`&$I`;6)(;?]*2&W_FTZZ`,Y03TI`9SX@;(`&*V@`,O\Z(&W_4 XM.BMH`#3_/DIL@!AM"DAX`?1.NA,.6$\O+(`*+RW_.DZZ%`103TJ`9P8I;?\^+ XM@`I@$DIL@!AM"DAX`?1.NA+D6$]@DDJL@`9F(DAM_YM(;?]*2'H`/DAL@-I.Z XMN@.(3^\`$#\\``).N@$<5$].74YU)7,N9F]N=`!#86YN;W0@9FEN9"!F;VYT^ XM("(E<R`E9"(*`$-A;FYO="!F:6YD('=I;F1O=R`B)7,B(&EN('-C<F5E;B`B@ XM)7,B"@!.5?_\0J=.NA-T6$\@;(`"*V@`//_\8```FB\M``A.N@OB6$\_`"\MN XM``@@;?_\+R@`%DZZ!MQ/[P`*2D!F;"!M__PI:``$@`9@6B!M``Q*$&8:(&R`G XM!DJH`"!F#D*G3KH3*%A/<`%.74YU8#`O+0`,3KH+D%A//P`O+0`,(&R`!B\H0 XM`"!.N@:*3^\`"DI`9@Q"ITZZ$O183W`!8,H@;(`&*5"`!DJL@`9FH"!M__PK[ XM4/_\2JW__&8`_V)"K(`&0J=.NA+&6$]P`&"<3E4``$JL@`IG"B\L@`I.NA*&M XM6$]*K(`.9PHO+(`.3KH1[EA/2JR``F<*+RR``DZZ$=Y83TJL@!)G"B\L@!).+ XMNA'.6$\_+0`(3KH/XE1/3EU.=4Y5``!"ITAZ`(A.NA'^4$\I0(`22JR`$F86) XM2'H`A4AL@-I.N@'J4$\_/``!88!43T*G2'H`BTZZ$=)03RE`@`)*K(`"9AA(0 XM>@")2&R`VDZZ`;Y03S\\``%.NO]45$]"ITAZ`(Y.NA&D4$\I0(`.2JR`#F88_ XM2'H`BTAL@-I.N@&04$\_/``!3KK_)E1/3EU.=6=R87!H:6-S+FQI8G)A<GD`! XM0V%N;F]T(&]P96X@9W)A<&AI8W,N;&EB<F%R>0H`:6YT=6ET:6]N+FQI8G)AN XM<GD`0V%N;F]T(&]P96X@:6YT=6ET:6]N+FQI8G)A<GD*`&1I<VMF;VYT+FQIU XM8G)A<GD`0V%N;F]T(&]P96X@9&ES:V9O;G0N;&EB<F%R>0H``$Y5__@@;(`"L XM*V@`//_X8$8@;?_X+R@`%DAZ`$9.N@4\4$\@;?_X*V@`!/_\8!H@;?_\+R@`\ XM($AZ`#9.N@4>4$\@;?_\*U#__$JM__QFX"!M__@K4/_X2JW_^&:T3EU.=5-CZ XM<F5E;CH@(B5S(@H`5VEN9&]W.B`B)7,B"@!.50``2.<,("1M``@,$@`@9P8,P XM$@`)9@12BF#P>@`,$@`M9@9Z`5**8`@,$@`K9@)2BG@`8!8@2E**$!!(@#($` XMPOP`"M!!.`"8?``P$!)(@%)`0>R`+`@P``(``&;82D5G!C`$1$!@`C`$3-\$; XM,$Y=3G5.50``*6T`"()J2&T`$"\M``Q(>@`.3KH$_D_O``Q.74YU3E4``"\L( XM@FH_+0`(3KH(T%Q/3EU.=6%P0^R":D7L@FJUR68.,CP`$6L(=``BPE')__PI< XM3X)V+'@`!"E.@GI(YX"`""X`!`$I9Q!+^@`(3J[_XF`&0J?S7TYS0_H`($ZN1 XM_F@I0()^9@PN/``#@`=.KO^48`1.N@`:4$].=61O<RYL:6)R87)Y`$GY``!_6 XM_DYU3E4``"\*2'D``0``,"R"9L'\``8O`$ZZ#O103RE`@H)F%$*G2'D``0``0 XM3KH.N%!/+FR"=DYU(&R"@D)H``0@;(*",7P``0`0(FR"@C-\``$`"B!L@G8@^ XM+()VD*@`!%"`*4""AB!L@H8@O$U!3EA"ITZZ#JA83R1`2JH`K&<N+RT`#"\MP XM``@O"DZZ`+)/[P`,.7P``8**(&R"@@!H@```!"!L@H(`:(````I@1$AJ`%Q.% XMN@[&6$](:@!<3KH.@EA/*4""C"!L@HQ*J``D9Q`@;(*,(F@`)"\13KH-IEA/* XM+RR"C"\*3KKX:%!/*6R"C(*03KH-LB!L@H(@@$ZZ#=(@;(*"(4``!F<62'@#S XM[4AZ`"Q.N@VN4$\@;(*"(4``#"\L@I`_+(*43KKX+EQ/0F=.N@OJ5$\D7TY=X XM3G4J`$Y5``!(YPPP)&T`$"!M``@@*`"LY8`H`"!$("@`$.6`)D`0$TB`2,#0\ XMK0`,5(`Y0(*60J<P+(*62,`O`$ZZ#9)03RE`@IAF"$S?##!.74YU$!-(@#\`H XM($M2B"\(+RR"F$ZZ`41/[P`*2'H!.A`32(!(P-"L@I@O`$ZZ`:A03S\M``XOT XM"B\L@IA.N@%$3^\`"D)L@I0F;(*8)$L0$TB`.@"P?``@9QBZ?``)9Q*Z?``,= XM9PRZ?``-9P:Z?``*9@12BV#8#!,`(&UZ#!,`(F8N4HL@2U*+$!!(@#H`9QX@) XM2E**$(6Z?``B9A`,$P`B9@12BV`&0BK__V`"8-9@."!+4HL0$$B`.@!G)KI\^ XM`"!G(+I\``EG&KI\``QG%+I\``UG#KI\``IG""!*4HH0A6#.($I2BD(02D5FA XM`E.+4FR"E&``_UI"$D*G,"R"E%)`2,#E@"\`3KH,?%!/*4""D&8(0FR"E&``& XM_N1Z`"9L@IA@'C`%2,#E@"!L@I`ABP@`+PM.N@5J6$]20$C`U\!21;IL@I1M# XMW#`%2,#E@"!L@I!"L`@`8`#^IB``3.\#```$(`@R+P`,8`(0V5?)__QG!E)!W XM8`)"&%')__Q.=3`\?_]@!#`O``P@;P`$2AAF_%-((F\`"%-`$-E7R/_\9P)"9 XM$"`O``1.=3`\?_]@!#`O``Q30&L4(&\`!")O``BQ"68,4TA*&%?(__9P`$YU- XM8P1P`4YU</].=2!O``0@"")O``@0V6;\3G5.50``+P0I;0`(@FY(;0`0+RT`T XM#$AZ`!I.N@#<3^\`##@`(&R";D(0,`0H'TY=3G5.50``(&R";E*L@FX0+0`)8 XM$(!(@,!\`/].74YU3E4``$AM``PO+0`(2'H$<$ZZ`)A/[P`,3EU.=4Y5``!(" XMYP@@)&T`#@QM``0`$F8((&T`""@08!Q*;0`,;PP@;0`(<``P$"@`8`H@;0`(> XM,!!(P"@`0FT`$DIM``QL$$1M``Q*A&P(1(0[?``!`!(R+0`,2,$@!$ZZ`XY!S XM[(`:4XH4L```,BT`#$C!(`1.N@.$*`!FVDIM`!)G!E.*%+P`+2`*3-\$$$Y=: XM3G5.5?\B2.<(,"1M``@F;0`,0FW_^BMM`!#__"!+4HL0$$B`.`!G``+LN'P`B XM)68``LI"+?\P.WP``?_X.WP`(/_V.WPG$/_T($M2BQ`02(`X`+!\`"UF#D)MU XM__@@2U*+$!!(@#@`N'P`,&80.WP`,/_V($M2BQ`02(`X`+A\`"IF&"!M__Q4U XMK?_\.U#_\B!+4HL0$$B`.`!@,D)M__)@'#`M__+!_``*T$20?``P.T#_\B!+V XM4HL0$$B`.``P!%)`0>R`+`@P``(``&;4N'P`+F9:($M2BQ`02(`X`+!\`"IF6 XM&"!M__Q4K?_\.U#_]"!+4HL0$$B`.`!@,D)M__1@'#`M__3!_``*T$20?``P9 XM.T#_]"!+4HL0$$B`.``P!%)`0>R`+`@P``(``&;4.WP``O_PN'P`;&82($M2F XMBQ`02(`X`#M\``3_\&`0N'P`:&8*($M2BQ`02(`X`#`$2,!@>#M\``C_[F`6O XM.WP`"O_N8`X[?``0_^Y@!CM\__;_[C\M__!(;?\P/RW_[B\M__Q.NOWD3^\`E XM#"M`_^HP+?_P2,#1K?_\8%H@;?_\6*W__"M0_^HO+?_J3KH"#%A/.T#_\&!*I XM(&W__%2M__PX$$'M_R\K2/_J$(1@*)"\````8V?B4X!GE)"\````"V<`_W19P XM@&>T58!G`/]R5X!G`/]T8,Q![?\PD>W_ZCM(__`P+?_PL&W_]&\&.VW_]/_PV XM2FW_^&=H(&W_Z@P0`"UG"B)M_^H,$0`K9BX,;0`P__9F)E-M__(@;?_J4JW_0 XMZA`02(`_`$Z25$^P?/__9@IP_TS?#!!.74YU8!8_+?_V3I)43[!\__]F!'#_O XM8.12;?_Z,"W_\E-M__*P;?_P;MQ";?_N8"`@;?_J4JW_ZA`02(`_`$Z25$^PE XM?/__9@1P_V"P4FW_[B!M_^I*$&<*,"W_[K!M__1MSC`M_^[1;?_Z2FW_^&8HB XM8!@_/``@3I)43[!\__]F!G#_8`#_>%)M__HP+?_R4VW_\K!M__!NVF`6/P1.$ XMDE1/L'S__V8&</]@`/]24FW_^F``_0HP+?_Z8`#_0DCG2`!"A$J`:@1$@%)$0 XM2H%J!D2!"D0``6$^2D1G`D2`3-\`$DJ`3G5(YT@`0H1*@&H$1(!21$J!:@)$] XM@6$:(`%@V"\!81(@`2(?2H!.=2\!808B'TJ`3G5(YS``2$%*068@2$$V`30`Y XM0D!(0(##(@!(0#("@L,P`4)!2$%,WP`,3G5(028!(@!"04A!2$!"0'0/T(#3U XM@;:!8@22@U)`4<K_\DS?``Q.=2!O``0@"$H89OR1P"`(4X!.=4Y5``!(;(#$T XM/RT`"$ZZ``A<3TY=3G5.50``+P0X+0`(+RT`"C\$3KH`,%Q/N'P`"F8D(&T`! XM"A`H``Q(@`@```=G%#\\__\O+0`*3KH`]EQ/*!].74YU8/A.50``+PHD;0`*L XM(%*QZ@`$91@P+0`(P'P`_S\`+PI.N@#*7$\D7TY=3G4@4E*2$"T`"1"`2(#`( XM?`#_8.A.50``+PI![("N)$@@2M7\````%B\(81!83T'L@F:UR&7J)%].74YU8 XM3E4``$CG""`D;0`(>``@"F8*</],WP003EU.=4HJ``QG4@@J``(`#&<,/SS_G XM_R\*851<3S@`$"H`#4B`/P!.N@3R5$^(0`@J``$`#&<*+RH`"$ZZ`C!83P@JK XM``4`#&<4+RH`$DZZ`L)83R\J`!).N@(46$]"DD*J``1"J@`(0BH`##`$8(Y.Z XM5?_^2.<(("1M``A!^O]$*4B"G`@J``0`#&<*</],WP003EU.=0@J``(`#&<PU XM(!*0J@`(.``_!"\J``@0*@`-2(`_`$ZZ`H!03[!$9Q`(Z@`$``Q"DD*J``1PH XM_V#`#&W__P`,9A`(J@`"``Q"DD*J``1P`&"H2JH`"&8(+PI.N@":6$\,:@`!W XM`!!F*AMM``W__S\\``%(;?__$"H`#4B`/P!.N@(B4$^P?``!9J`P+0`,8`#_V XM:B2J``@P*@`02,#0J@`()4``!`CJ``(`#"!24I(0+0`-$(!(@,!\`/]@`/\^M XM3E4``"\*0>R`KB1(2BH`#&<8U?P````60>R"9K7(90AP`"1?3EU.=6#B0I)"! XMJ@`$0JH`""`*8.I.5?_\+PHD;0`(/SP$`$ZZ`,!43RM`__QF\``$`$"`*` XMT+P````.)4``""1?3EU.=35\!```$`CJ``$`#"5M__P`"!`J``U(@#\`3KH`G XMXE1/2D!G!@`J`(``#&#.3E4``$CG`#`D;()R8!0F4B`J``10@"\`+PI.N@0@$ XM4$\D2R`*9NA"K()R3-\,`$Y=3G5.50``+PI!^O_&*4B"H$*G("T`"%"`+P!.' XMN@/.4$\D0$J`9@AP`"1?3EU.=22L@G(E;0`(``0I2H)R(`I0@&#F3E4``'``# XM,"T`""\`8;)83TY=3G5.50``2.<`,)?+)&R"<F`.(&T`"%&(L<IG$B9*)%(@Z XM"F;N</],WPP`3EU.=2`+9P0FDF`$*5*"<B`J``10@"\`+PI.N@-R4$]P`= XM3E4``"\*,"T`",'\``8D0-7L@H)*;0`(;0XP+0`(L&R"9FP$2I)F#CE\``*") XMI'#_)%].74YU,"T`",'\``8@;(*"+S`(`$ZZ`JA83TJ`9P1P`6`"<`!@V$Y5/ XM```O+0`(3KH"<EA/2H!F#DZZ`GPY0(*D</].74YU<`!@^$Y5``!(YPP@."T`R XM"$ZZ`'`P!,'\``8D0-7L@H)*1&T*N&R"9FP$2I)F$#E\``*"I'#_3-\$,$Y=) XM3G4P*@`$P'P``V8*.7P`!8*D</]@Y'``,"T`#B\`+RT`"B\23KH".$_O``PJ* XM`+"\_____V8,3KH!_#E`@J1P_V"X(`5@M$Y5__Q(>!``0J=.N@*@4$\K0/_\$ XM"```#&<22FR"BF8(("W__$Y=3G5.N@`&<`!@]$Y5``!(>``$2'H`'DZZ`=(O6 XM`$ZZ`=1/[P`,/SP``4ZZ``Q43TY=3G5>0PH`3E4``$JL@IQG!B!L@IQ.D#\M+ XM``A.N@`(5$].74YU3E7__"\$,"T`"$C`*T#__$JL@H)G*'@`8`H_!$ZZ`-!4G XM3U)$N&R"9FWP,"R"9L'\``8O`"\L@H).N@&\4$]*K(*@9P8@;(*@3I!*K(*FV XM9PHO+(*F3KH!<EA/2JR"JF<*+RR"JDZZ`6)83TJL@JYG"B\L@JY.N@%26$\L2 XM>``$""X`!`$I9Q0O#4OZ``I.KO_B*E]@!D*G\U].<TJL@HQF,$JL@IAG*#`L# XM@I9(P"\`+RR"F$ZZ`4)03S`L@I120$C`Y8`O`"\L@I!.N@$L4$]@#DZZ`1PO1 XM+(*,3KH!3%A/("W__"YL@G9.=2@?3EU.=4Y5``!(YPX@."T`"#`$P?P`!B1`0 XMU>R"@DI$;0JX;()F;`1*DF80.7P``H*D</],WP1P3EU.=3`J``3`?(``9@@OH XM$DZZ``I83T*2<`!@X"(O``0L;()^3N[_W"(O``0L;()^3N[_@B(O``0L;()^J XM3N[_.B(O``0L;()^3N[_N"QL@GY.[O_*+&R"?D[N_WPB+P`$+&R"?D[N_RA,= XM[P`&``0L;()^3N[_XBQL@GY.[O_$3.\`#@`$+&R"?D[N_]!(YP$$3.\@@``,0 XM+&R">DZN_Y1,WR"`3G5.^@`"(F\`!"QL@GI.[OYB3.\``P`$+&R">D[N_SHBM XM;P`$+&R">D[N_MHL;()Z3N[_?")O``0@+P`(+&R">D[N_RX@;P`$+&R">D[NR XM_HQ.^@`"+&R">B)O``0@+P`(3N[]V")O``0L;()Z3N[^ADSO``,`!"QL@GI.R XM[O[.(&\`!"QL@GI.[OZ`(F\`!"QL@!).[O^R(F\`!"!O``@L;(`23N[_OBQLN XM@`(@+P`$3N[^8BQL@`(@;P`$3N[^7"!O``0L;(`.3N[_X@`````#[`````$`Z XM```!```&L`````````/R```#Z@```)H`````````````````````````````S XM```P,3(S-#4V-S@Y86)C9&5F````("`@("`@("`@,#`P,#`@("`@("`@("`@R XM("`@("`@(""00$!`0$!`0$!`0$!`0$!`#`P,#`P,#`P,#$!`0$!`0$`)"0D)L XM"0D!`0$!`0$!`0$!`0$!`0$!`0$!`4!`0$!`0`H*"@H*"@("`@("`@("`@("X XM`@("`@("`@("0$!`0"```````````````````0`````!````````````````T XM``````$!`````0`````````````````````!`@````$`````````````````' XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` X9````````%``````#\@```^L````!```#\@``M X`` Xend Xsize 6460 SHAR_EOF echo "End of archive 1 (of 1)" # if you want to concatenate archives, remove anything after this line exit