[comp.sources.amiga] v89i121: fonz - set font on custom screen

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&#5\``$`$"`*`
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`&#8=
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