home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-03-23 | 60.1 KB | 1,939 lines |
- Newsgroups: comp.sources.misc
- From: heitkoet@lusty.informatik.uni-dortmund.de (Joerg Heitkoetter)
- Subject: v36i036: hodge-c - An implementation of Gerhard & Schuster's hodge-podge machine, Part02/33
- Message-ID: <1993Mar23.060827.2716@sparky.imd.sterling.com>
- X-Md4-Signature: f0c142824826a70445c35c168c481aa4
- Date: Tue, 23 Mar 1993 06:08:27 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: heitkoet@lusty.informatik.uni-dortmund.de (Joerg Heitkoetter)
- Posting-number: Volume 36, Issue 36
- Archive-name: hodge-c/part02
- Environment: ImageMagick, KHOROS
-
- #!/bin/sh
- # this is Part.02 (part 2 of a multipart archive)
- # do not concatenate these parts, unpack them in order with /bin/sh
- # file hodge-c-0.98j/config/dos.cf continued
- #
- if test ! -r _shar_seq_.tmp; then
- echo 'Please unpack part 1 first!'
- exit 1
- fi
- (read Scheck
- if test "$Scheck" != 2; then
- echo Please unpack part "$Scheck" next!
- exit 1
- else
- exit 0
- fi
- ) < _shar_seq_.tmp || exit 1
- if test ! -f _shar_wnt_.tmp; then
- echo 'x - still skipping hodge-c-0.98j/config/dos.cf'
- else
- echo 'x - continuing file hodge-c-0.98j/config/dos.cf'
- sed 's/^X//' << 'SHAR_EOF' >> 'hodge-c-0.98j/config/dos.cf' &&
- X
- X #include <os-specials.h>
- X ...
- X #ifdef __COMPILER_TYPE__
- X #include <compiler-specials.h>
- X ...
- X #endif __COMPILER_TYPE__
- X
- X #define RSC_FILE "<rsc-file-name>"
- X #define RSC_PATH "<rsc_path>" */
- X
- #include <stdio.h>
- #include <ctype.h>
- #include <math.h>
- #include <string.h>
- X
- #ifdef __TURBOC__
- #include <stdlib.h>
- #include <conio.h>
- #include <dos.h>
- #define KEYPRESSED (bioskey(1))
- #define GETKEY (bioskey(0)&0x00ff)
- #endif /* __TURBOC__ */
- X
- #define RSC_FILE "hodge.ini"
- #define RSC_PATH "c:\\;c:\\lib;."
- #endif /* __CONFIG_H__ */
- SHAR_EOF
- echo 'File hodge-c-0.98j/config/dos.cf is complete' &&
- chmod 0640 hodge-c-0.98j/config/dos.cf ||
- echo 'restore of hodge-c-0.98j/config/dos.cf failed'
- Wc_c="`wc -c < 'hodge-c-0.98j/config/dos.cf'`"
- test 1475 -eq "$Wc_c" ||
- echo 'hodge-c-0.98j/config/dos.cf: original size 1475, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= hodge-c-0.98j/config/sunos.cf ==============
- if test -f 'hodge-c-0.98j/config/sunos.cf' -a X"$1" != X"-c"; then
- echo 'x - skipping hodge-c-0.98j/config/sunos.cf (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting hodge-c-0.98j/config/sunos.cf (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hodge-c-0.98j/config/sunos.cf' &&
- X
- /* sunos.cf -- generic SunOS/Solaris configurations
- X
- X Copyright (C) 1993 Joerg Heitkoetter
- X
- X This program is free software; you can redistribute it and/or modify
- X it under the terms of the GNU General Public License as published by
- X the Free Software Foundation; either version 2, or (at your option)
- X any later version.
- X
- X This program is distributed in the hope that it will be useful,
- X but WITHOUT ANY WARRANTY; without even the implied warranty of
- X MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X GNU General Public License for more details.
- X
- X You should have received a copy of the GNU General Public License
- X along with this program; if not, write to the Free Software
- X Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
- X
- /* $Id: sunos.cf,v 1.1 1993/03/16 10:35:58 joke Exp $ */
- X
- #ifndef __CONFIG_H__
- #define __CONFIG_H__
- X
- #define V_OSTYPE "SunOS/Solaris 1.1"
- X
- /*
- X #define V_OSTYPE "OSTYPE"
- X
- X #include <os-specials.h>
- X ...
- X #ifdef __COMPILER_TYPE__
- X #include <compiler-specials.h>
- X ...
- X #endif __COMPILER_TYPE__
- X
- X #define RSC_FILE "<rsc-file-name>"
- X #define RSC_PATH "<rsc_path>" */
- X
- #include <stdio.h>
- #include <ctype.h>
- #include <math.h>
- #include <memory.h>
- #include <string.h>
- X
- #ifdef __STDC__
- #include <stdlib.h>
- #include <unistd.h>
- #endif /* __STDC__ */
- X
- #define KEYPRESSED (0)
- #define GETKEY (0)
- X
- #define RSC_FILE ".scsrc"
- #define RSC_PATH "/usr/local/lib:~:."
- #endif /* __CONFIG_H__ */
- SHAR_EOF
- chmod 0640 hodge-c-0.98j/config/sunos.cf ||
- echo 'restore of hodge-c-0.98j/config/sunos.cf failed'
- Wc_c="`wc -c < 'hodge-c-0.98j/config/sunos.cf'`"
- test 1474 -eq "$Wc_c" ||
- echo 'hodge-c-0.98j/config/sunos.cf: original size 1474, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= hodge-c-0.98j/config/sys5.cf ==============
- if test -f 'hodge-c-0.98j/config/sys5.cf' -a X"$1" != X"-c"; then
- echo 'x - skipping hodge-c-0.98j/config/sys5.cf (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting hodge-c-0.98j/config/sys5.cf (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hodge-c-0.98j/config/sys5.cf' &&
- X
- /* sys5.cf -- generic UN*X System V configurations
- X
- X Copyright (C) 1993 Joerg Heitkoetter
- X
- X This program is free software; you can redistribute it and/or modify
- X it under the terms of the GNU General Public License as published by
- X the Free Software Foundation; either version 2, or (at your option)
- X any later version.
- X
- X This program is distributed in the hope that it will be useful,
- X but WITHOUT ANY WARRANTY; without even the implied warranty of
- X MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X GNU General Public License for more details.
- X
- X You should have received a copy of the GNU General Public License
- X along with this program; if not, write to the Free Software
- X Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
- X
- /* $Id: sys5.cf,v 1.1 1993/03/16 10:35:58 joke Exp $ */
- X
- #ifndef __CONFIG_H__
- #define __CONFIG_H__
- X
- #define V_OSTYPE "generic un*x system V"
- X
- /*
- X #define V_OSTYPE "OSTYPE"
- X
- X #include <os-specials.h>
- X ...
- X #ifdef __COMPILER_TYPE__
- X #include <compiler-specials.h>
- X ...
- X #endif __COMPILER_TYPE__
- X
- X #define RSC_FILE "<rsc-file-name>"
- X #define RSC_PATH "<rsc_path>" */
- X
- #include <stdio.h>
- #include <ctype.h>
- #include <math.h>
- #include <string.h>
- X
- #ifdef __STDC__
- #include <stdlib.h>
- #include <unistd.h>
- #endif /* __STDC__ */
- X
- #define KEYPRESSED (0)
- #define GETKEY (0)
- X
- #define RSC_FILE ".hodge"
- #define RSC_PATH "/usr/local/lib:~:."
- #endif /* __CONFIG_H__ */
- SHAR_EOF
- chmod 0640 hodge-c-0.98j/config/sys5.cf ||
- echo 'restore of hodge-c-0.98j/config/sys5.cf failed'
- Wc_c="`wc -c < 'hodge-c-0.98j/config/sys5.cf'`"
- test 1456 -eq "$Wc_c" ||
- echo 'hodge-c-0.98j/config/sys5.cf: original size 1456, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= hodge-c-0.98j/config/tos.cf ==============
- if test -f 'hodge-c-0.98j/config/tos.cf' -a X"$1" != X"-c"; then
- echo 'x - skipping hodge-c-0.98j/config/tos.cf (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting hodge-c-0.98j/config/tos.cf (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hodge-c-0.98j/config/tos.cf' &&
- X
- /* tos.cf -- generic ATARI TOS configurations
- X
- X Copyright (C) 1993 Joerg Heitkoetter
- X
- X This program is free software; you can redistribute it and/or modify
- X it under the terms of the GNU General Public License as published by
- X the Free Software Foundation; either version 2, or (at your option)
- X any later version.
- X
- X This program is distributed in the hope that it will be useful,
- X but WITHOUT ANY WARRANTY; without even the implied warranty of
- X MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X GNU General Public License for more details.
- X
- X You should have received a copy of the GNU General Public License
- X along with this program; if not, write to the Free Software
- X Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
- X
- /* $Id: tos.cf,v 1.1 1993/03/16 10:35:58 joke Exp $ */
- X
- #ifndef __CONFIG_H__
- #define __CONFIG_H__
- X
- #define V_OSTYPE "TOS 2.6"
- X
- /*
- X #define V_OSTYPE "OSTYPE"
- X
- X #include <os-specials.h>
- X ...
- X #ifdef __COMPILER_TYPE__
- X #include <compiler-specials.h>
- X ...
- X #endif __COMPILER_TYPE__
- X
- X #define RSC_FILE "<rsc-file-name>"
- X #define RSC_PATH "<rsc_path>" */
- X
- #include <stdio.h>
- #include <ctype.h>
- #include <math.h>
- #include <string.h>
- X
- #ifdef __TURBOC__
- #include <stdlib.h>
- #include <tos.h>
- #define KEYPRESSED (Cconis()&0xff)
- #define GETKEY Cnecin()
- #endif /* __TURBOC__ */
- X
- #define RSC_FILE "hodge.ini"
- #define RSC_PATH "c:\\;c:\\lib;."
- #endif /* __CONFIG_H__ */
- SHAR_EOF
- chmod 0640 hodge-c-0.98j/config/tos.cf ||
- echo 'restore of hodge-c-0.98j/config/tos.cf failed'
- Wc_c="`wc -c < 'hodge-c-0.98j/config/tos.cf'`"
- test 1451 -eq "$Wc_c" ||
- echo 'hodge-c-0.98j/config/tos.cf: original size 1451, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= hodge-c-0.98j/configure ==============
- if test -f 'hodge-c-0.98j/configure' -a X"$1" != X"-c"; then
- echo 'x - skipping hodge-c-0.98j/configure (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting hodge-c-0.98j/configure (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hodge-c-0.98j/configure' &&
- #! /bin/csh -f
- # Script to `configure' HODGE-C
- # $Id: configure,v 1.1 1993/03/16 10:35:58 joke Exp $
- #
- set default=sunos
- set ostype=$default
- set configdir=./config
- set srcdir=.
- set package=HODGE-C
- #
- top:
- if ($#argv > 0) then
- X switch ($1:q)
- X
- X case --*:
- X set ostype = "$1:q"
- X shift
- X goto top
- X
- X default:
- X goto usage
- X endsw
- endif
- X
- rm -f $srcdir/config.h
- if ("$ostype" == "--sunos") then
- X ln -s $configdir/sunos.cf $srcdir/config.h
- X echo "$package configured for SunOS."
- X goto done
- endif
- X
- if ("$ostype" == "--solaris") then
- X ln -s $configdir/sunos.cf $srcdir/config.h
- X echo "$package configured for SunOS/Solaris."
- X goto done
- endif
- X
- if ("$ostype" == "--unix") then
- X echo "try either: configure --bsd, or: configure --sys5"
- X goto done
- endif
- X
- if ("$ostype" == "--sys5") then
- X ln -s $configdir/sys5.cf $srcdir/config.h
- X echo "$package configured for generic unix system V."
- X goto done
- endif
- X
- if ("$ostype" == "--bsd") then
- X ln -s $configdir/bsd.cf $srcdir/config.h
- X echo "$package configured for generic BSD unix."
- X goto done
- endif
- X
- usage:
- X echo "usage: configure --<os-type> (eg. configure --sunos)"
- X
- done:
- SHAR_EOF
- chmod 0750 hodge-c-0.98j/configure ||
- echo 'restore of hodge-c-0.98j/configure failed'
- Wc_c="`wc -c < 'hodge-c-0.98j/configure'`"
- test 1157 -eq "$Wc_c" ||
- echo 'hodge-c-0.98j/configure: original size 1157, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= hodge-c-0.98j/contrib/infekt2.c ==============
- if test ! -d 'hodge-c-0.98j/contrib'; then
- echo 'x - creating directory hodge-c-0.98j/contrib'
- mkdir 'hodge-c-0.98j/contrib'
- fi
- if test -f 'hodge-c-0.98j/contrib/infekt2.c' -a X"$1" != X"-c"; then
- echo 'x - skipping hodge-c-0.98j/contrib/infekt2.c (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting hodge-c-0.98j/contrib/infekt2.c (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hodge-c-0.98j/contrib/infekt2.c' &&
- /****************************************************************/
- /* */
- /* C-Textfile zum INFEKTIONSMODELL */
- /* von Martin Gerhardt */
- /* */
- /* Version 2.0 31. 8. 1986 */
- /* */
- /* */
- /* Bemerkungen zur Art der Simulation: */
- /* */
- /* - Rand des Feldes nicht geschlossen */
- /* - Moore-Nachbarschaft */
- /* - einzulesende Feldgroesse sollte nicht groesser als 179 sein */
- /* - als Auswertung ist das Spielfeld dargestellt: */
- /* - Tastaturbelegungen: */
- /* 'm' : Darstellung des Spielfeldes */
- /* 'B' : Beendigung der Simulation */
- /* 'w' : Halt bis neuer Tastendruck erfolgt */
- /* 'E' : Neues Einlesen der Konstanten */
- /* */
- /****************************************************************/
- X
- /*
- X * $Id: infekt2.c,v 1.1 1993/03/11 12:10:52 joke Exp $
- X */
- X
- #ifdef __STDC__ /* ATARI ST Turbo-C */
- #include <aes.h>
- #include <vdi.h>
- #include <tos.h>
- #include <stdio.h>
- #else /* Megamax-C */
- #include <osbind.h>
- #endif
- X
- int contrl[12], intin[128], ptsin[128], intout[128], ptsout[128];
- X
- int handle;
- X
- int work_out[57], work_in[12];
- X
- int set_mode, set_perimeter, set_color, set_interior, set_style, set_effect;
- X
- int Feldgr, Umschlagsgrenze, Infgeschw, k1, k2, Bgrad;
- X
- X
- long Zufallszahl, Zeitpunkt, Umschlaege;
- X
- int *Feld, *Hfeld, *Krank, *Inf;
- X
- /*************************************************/
- /* open_work */
- /*************************************************/
- X
- open_work ()
- {
- X int i;
- X
- X appl_init ();
- X for (i = 0; i < 10; work_in[i++] = 1);
- X work_in[10] = 2;
- X v_opnvwk (work_in, &handle, work_out);
- }
- X
- /*************************************************/
- /* close_work */
- /*************************************************/
- X
- close_work ()
- {
- X gemdos (0x1);
- X v_clsvwk (handle);
- X appl_exit ();
- }
- X
- /*************************************************/
- /* hide_mouse */
- /*************************************************/
- static int hidden;
- X
- hide_mouse ()
- {
- X if (!hidden) {
- X graf_mouse (256, 0x0L);
- X hidden = 1;
- X }
- }
- X
- /**************************************************/
- /* show_mouse */
- /**************************************************/
- show_mouse ()
- {
- X if (hidden) {
- X graf_mouse (257, 0x0L);
- X hidden = 0;
- X }
- }
- X
- /*************************************************/
- /* Speicherplatzreservierung */
- /*************************************************/
- Speicherplatz ()
- {
- X if ((Feld = (int *) Malloc (2l * (long) Feldgr * (long) Feldgr)) == 0) {
- X form_alert (1, "[3][Speicherplatzmangel][Abbruch]");
- X return (1);
- X }
- X if ((Hfeld = (int *) Malloc (2l * (long) Feldgr * (long) Feldgr)) == 0) {
- X form_alert (1, "[3][Speicherplatzmangel][Abbruch]");
- X return (1);
- X }
- X if ((Inf = (int *) Malloc (2l * (long) Feldgr * (long) Feldgr)) == 0) {
- X form_alert (1, "[3][Speicherplatzmangel][Abbruch]");
- X return (1);
- X }
- X if ((Krank = (int *) Malloc (2l * (long) Feldgr * (long) Feldgr)) == 0) {
- X form_alert (1, "[3][Speicherplatzmangel][Abbruch]");
- X return (1);
- X }
- X return (0);
- }
- X
- /*************************************************/
- /* Speicherplatzfreigabe */
- /*************************************************/
- Spfrei ()
- {
- X Mfree (Feld);
- X Mfree (Hfeld);
- X Mfree (Krank);
- X Mfree (Inf);
- }
- X
- /*************************************************/
- /* Zufallszahl */
- /*************************************************/
- X
- #define M 100000000
- #define m1 10000L
- #define b 31415821
- X
- long
- Multiply (p, q)
- X long p, q;
- X
- {
- X long p0, p1, q0, q1;
- X
- X p1 = p / m1;
- X p0 = p % m1;
- X q1 = q / m1;
- X q0 = q % m1;
- X
- X return ((((p0 * q1 + p1 * q0) % m1) * m1 + p0 * q0) % M);
- }
- X
- X
- rnd (maxvalue)
- X long maxvalue;
- X
- {
- X long Multiply ();
- X
- X Zufallszahl = (Multiply (Zufallszahl, b) + 1L) % M;
- X return ((((Zufallszahl / m1) * maxvalue) / m1) % 65536);
- }
- X
- X
- /*************************************************/
- /* Einlesen */
- /*************************************************/
- X
- Einlesen ()
- {
- X do {
- X
- X v_clrwk (handle);
- X printf ("\033H\033e");
- X printf ("Feldgroesse = ");
- X scanf ("%d", &Feldgr);
- X Feldgr = Feldgr + 2;
- X printf ("Umschlagsgrenze = ");
- X scanf ("%d", &Umschlagsgrenze);
- X printf ("Infektionsgeschw. = ");
- X scanf ("%d", &Infgeschw);
- X printf ("k1 = ");
- X scanf ("%d", &k1);
- X printf ("k2 = ");
- X scanf ("%d", &k2);
- X printf ("Bedeckungsgrad = ");
- X scanf ("%d", &Bgrad);
- X printf ("Zufallszahl = ");
- X scanf ("%ld", &Zufallszahl);
- X printf ("\033f");
- X
- X printf ("\n\n\n continue (y/n)\n");
- X }
- X while ((char) evnt_keybd () != 'y');
- }
- X
- /********************************************/
- /* Anfangsbelegung */
- /********************************************/
- X
- Anfangsbelegung ()
- {
- X register int i, j;
- X
- X for (i = 1; i <= Feldgr - 2; i++)
- X for (j = 1; j <= Feldgr - 2; j++) {
- X
- X if (rnd (100L) >= Bgrad)
- X *(Feld + i * Feldgr + j) = 0;
- X else
- X *(Feld + i * Feldgr + j) = rnd ((long) Umschlagsgrenze);
- X *(Hfeld + i * Feldgr + j) = 0;
- X }
- X
- X for (i = 0; i <= Feldgr - 1; i++) {
- X *(Feld + i) = -1;
- X *(Feld + i * Feldgr) = -1;
- X *(Feld + (i + 1) * Feldgr - 1) = -1;
- X *(Feld + Feldgr * (Feldgr - 1) + i) = -1;
- X
- X *(Hfeld + i) = -1;
- X *(Hfeld + i * Feldgr) = -1;
- X *(Hfeld + (i + 1) * Feldgr - 1) = -1;
- X *(Hfeld + Feldgr * (Feldgr - 1) + i) = -1;
- X }
- }
- X
- /*****************************/
- /* Hilfsfeldneu */
- /*****************************/
- Hfeldneu ()
- {
- X register int i, j;
- X
- X for (i = 1; i <= Feldgr - 2; i++)
- X for (j = 1; j <= Feldgr - 2; j++)
- X *(Hfeld + i * Feldgr + j) = 0;
- }
- X
- /********************************************/
- /* grafische Auswertung */
- /********************************************/
- X
- /*****************************/
- /* Grafiktext */
- /*****************************/
- Text ()
- {
- X char string[50];
- X
- X v_gtext (handle, 410, 20, "************************");
- X v_gtext (handle, 410, 40, "* Infektionsmodell *");
- X v_gtext (handle, 410, 60, "************************");
- X v_gtext (handle, 410, 80, " - Moore Nachbarschaft ");
- X v_gtext (handle, 410, 100, " - Feld mit Rand ");
- X set_effect = vst_effects (handle, 8);
- X v_gtext (handle, 410, 130, "Konstanten :");
- X v_gtext (handle, 410, 300, "Berechnung :");
- X set_effect = vst_effects (handle, 0);
- X sprintf (string, " Feldgroesse : %d", Feldgr - 2);
- X v_gtext (handle, 410, 150, string);
- X sprintf (string, " Umschlagsgrenze : %d", Umschlagsgrenze);
- X v_gtext (handle, 410, 170, string);
- X sprintf (string, " Infektionsgeschw. : %d", Infgeschw);
- X v_gtext (handle, 410, 190, string);
- X sprintf (string, " k1 (krank) : %d", k1);
- X v_gtext (handle, 410, 210, string);
- X sprintf (string, " k2 (infiziert) : %d", k2);
- X v_gtext (handle, 410, 230, string);
- X sprintf (string, " Bedeckungsgrad : %d", Bgrad);
- X v_gtext (handle, 410, 250, string);
- X sprintf (string, " Zufallszahl : %ld", Zufallszahl);
- X v_gtext (handle, 410, 270, string);
- X v_gtext (handle, 410, 320, " Zeitpunkt : ");
- X v_gtext (handle, 410, 340, " Umschlaege : ");
- }
- X
- /*****************************/
- /* Setze Attribute */
- /*****************************/
- X
- Setze_Attribute ()
- {
- X set_mode = vswr_mode (handle, 1);
- X set_perimeter = vsf_perimeter (handle, 0);
- X set_color = vsf_color (handle, 1);
- }
- X
- /*****************************/
- /* Hintergrund : schwarz */
- /*****************************/
- X
- Hintergrund ()
- {
- X int pxyarray[4];
- X
- X pxyarray[0] = 0;
- X pxyarray[1] = 0;
- X pxyarray[2] = (400 / (Feldgr - 2)) * (Feldgr - 2);
- X pxyarray[3] = (400 / (Feldgr - 2)) * (Feldgr - 2);
- X
- X set_interior = vsf_interior (handle, 1);
- X
- X vr_recfl (handle, pxyarray);
- }
- X
- /*****************************/
- /* welcher Farbwert ? */
- /*****************************/
- X
- Farbe (z)
- X int z;
- X
- {
- X switch (z) {
- X
- X case -1:
- X case 0:
- X return (8);
- X break;
- X default:
- X if (z >= Umschlagsgrenze)
- X return (0);
- X else
- X return (7 - ((7 * z) / Umschlagsgrenze));
- X break;
- X }
- }
- X
- /*****************************/
- /* Zeichne Rechteck */
- /*****************************/
- X
- Fill_Rectangle (x, y, Schritt, style)
- X int x, y, Schritt, style;
- X
- {
- X int pxyarray[4];
- X
- X pxyarray[0] = (y - 1) * Schritt;
- X pxyarray[1] = (x - 1) * Schritt;
- X pxyarray[2] = y * Schritt;
- X pxyarray[3] = x * Schritt;
- X
- X switch (style) {
- X
- X case 0:
- X set_interior = vsf_interior (handle, 0);
- X vr_recfl (handle, pxyarray);
- X break;
- X default:
- X set_interior = vsf_interior (handle, 2);
- X set_style = vsf_style (handle, style);
- X vr_recfl (handle, pxyarray);
- X break;
- X }
- }
- X
- /************************/
- /* Auswertfunktion */
- /************************/
- X
- Auswertung ()
- {
- X register int i, j;
- X int style, Schritt;
- X
- X Schritt = 400 / (Feldgr - 2);
- X
- X for (i = 1; i <= Feldgr - 2; i++)
- X for (j = 1; j <= Feldgr - 2; j++)
- X if ((style = Farbe (*(Feld + i * Feldgr + j))) != Farbe (*(Hfeld + i * Feldgr + j)))
- X Fill_Rectangle (i, j, Schritt, style);
- }
- X
- /********************************************/
- /* Rekursionsgleichung */
- /********************************************/
- X
- Hilfsfelder ()
- {
- X register int i, j;
- X
- X for (i = 0; i < Feldgr; i++)
- X for (j = 0; j < Feldgr; j++) {
- X
- X *(Krank + i * Feldgr + j) = 0;
- X *(Inf + i * Feldgr + j) = 0;
- X
- X if (*(Feld + i * Feldgr + j) >= Umschlagsgrenze)
- X *(Krank + i * Feldgr + j) = 1;
- X else if (*(Feld + i * Feldgr + j) > 0)
- X *(Inf + i * Feldgr + j) = 1;
- X }
- }
- X
- Rekursion ()
- {
- X register int i, j, ni, nj;
- X int krank, infiziert, infsumme;
- X int *ptr;
- X char string[50];
- X
- X Zeitpunkt = Zeitpunkt + 1l;
- X Umschlaege = 0;
- X
- X Hilfsfelder ();
- X
- X for (i = 1; i <= Feldgr - 2; i++)
- X for (j = 1; j <= Feldgr - 2; j++) {
- X
- X switch (*(Feld + i * Feldgr + j)) {
- X
- X case 0:
- X krank = 0;
- X infiziert = 0;
- X
- X for (ni = -1; ni <= 1; ni++)
- X for (nj = -1; nj <= 1; nj++) {
- X krank = krank + *(Krank + (i + ni) * Feldgr + j + nj);
- X infiziert = infiziert + *(Inf + (i + ni) * Feldgr + j + nj);
- X }
- X *(Hfeld + i * Feldgr + j) = krank / k1 + infiziert / k2;
- X break;
- X
- X default:
- X if (*(Feld + i * Feldgr + j) >= Umschlagsgrenze) {
- X *(Hfeld + i * Feldgr + j) = 0;
- X Umschlaege = Umschlaege + 1;
- X } else {
- X infsumme = 0;
- X infiziert = 0;
- X
- X for (ni = -1; ni <= 1; ni++)
- X for (nj = -1; nj <= 1; nj++) {
- X infsumme = infsumme + (*(Inf + (i + ni) * Feldgr + j + nj)
- X * *(Feld + (i + ni) * Feldgr + j + nj));
- X
- X infiziert = infiziert + *(Inf + (i + ni) * Feldgr + j + nj);
- X }
- X *(Hfeld + i * Feldgr + j) = infsumme / infiziert + Infgeschw;
- X }
- X break;
- X }
- X } /* rekursive Schleife */
- X
- X /* Kopie */
- X ptr = Hfeld;
- X Hfeld = Feld;
- X Feld = ptr;
- X
- } /* Ende */
- X
- /*******************************************************/
- main ()
- {
- X char ch;
- X char string[50];
- X
- X open_work ();
- X hide_mouse ();
- X Einlesen ();
- X if (Speicherplatz () == 1)
- X goto ENDE;
- X Setze_Attribute ();
- X v_clrwk (handle);
- X Hintergrund ();
- X Text ();
- X Anfangsbelegung ();
- X Auswertung ();
- X ch = (char) evnt_keybd ();
- X Zeitpunkt = 0l;
- X
- X while (ch != 'B') {
- X Rekursion ();
- X if (Cconis () != 0) {
- X ch = Crawcin ();
- X if (ch == 'm') {
- X Hintergrund ();
- X Hfeldneu ();
- X }
- X }
- X
- X if (ch == 'w')
- X ch = (char) evnt_keybd ();
- X
- X sprintf (string, "%ld", Zeitpunkt);
- X v_gtext (handle, 530, 320, string);
- X sprintf (string, "%ld ", Umschlaege);
- X v_gtext (handle, 530, 340, string);
- X
- X if (ch == 'm')
- X Auswertung ();
- X
- X if (ch == 'E') {
- X v_clrwk (handle);
- X Einlesen ();
- X Hintergrund ();
- X Text ();
- X Hfeldneu ();
- X ch = 'm';
- X Zeitpunkt = 0;
- X }
- X }
- X
- X v_clrwk (handle);
- X Spfrei ();
- X show_mouse ();
- X
- X ENDE:
- X close_work ();
- X return 0;
- }
- SHAR_EOF
- chmod 0640 hodge-c-0.98j/contrib/infekt2.c ||
- echo 'restore of hodge-c-0.98j/contrib/infekt2.c failed'
- Wc_c="`wc -c < 'hodge-c-0.98j/contrib/infekt2.c'`"
- test 12637 -eq "$Wc_c" ||
- echo 'hodge-c-0.98j/contrib/infekt2.c: original size 12637, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= hodge-c-0.98j/contrib/pixmon.1 ==============
- if test -f 'hodge-c-0.98j/contrib/pixmon.1' -a X"$1" != X"-c"; then
- echo 'x - skipping hodge-c-0.98j/contrib/pixmon.1 (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting hodge-c-0.98j/contrib/pixmon.1 (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hodge-c-0.98j/contrib/pixmon.1' &&
- .\" $Id$
- .TH PIXMON 1 "16 March 1993" "Version 0.3"
- .ta 0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i
- X
- \" this noise gets my name right!
- .nr 99 \n(.s
- .nr 98 \n(.f
- .ds 11 "\fRo
- .nr 11 \w'\s10\*(11'
- .nr 10 0u
- .if \n(ct>1 .nr 10 \n(10+\s10.25m\s0
- .nr 13 \s10.1m\s0
- .if \n(ct>1 .nr 13 \s10.15m\s0
- .ds 12 \s10\v'-.67m'..\v'.67m\s0'
- .nr 12 \w'\s10\*(12'
- .as 11 \h'-\n(11u-\n(12u/2u+\n(13u'\v'0-\n(10u'\*(12\v'\n(10u'\h'-\n(12u+\n(11u/2u-\n(13u'
- .ds o \x'0'\f1\s10\*(11\s\n(99\f\n(98
- X
- .SH NAME
- .B pixmon
- \- a simple pixel monitor for X11
- X
- .SH SYNOPSIS
- .LP
- .B pixmon
- [
- .I -Xt-options ...
- ]
- [
- .I -options ...
- ]
- .TP
- X [\fB-dx \fI<pixel-data-size>\fR]
- .TP
- X [\fB-dy \fI<pixel-data-size>\fR]
- .TP
- X [\fB-width \fI<window-size>\fR]
- .TP
- X [\fB-height \fI<window-size>\fR]
- .TP
- X [\fB-scale \fI<float-value>\fR]
- .TP
- X [\fB-cmap \fI<filename>[.cmap]\fR]
- .TP
- X [\fB-dither\fR]
- X
- .SH DESCRIPTION
- .B pixmon
- implements a simple
- .I pixel data monitor
- for use with the
- .I X11
- window system. It comes with the following features:
- .TP \w'\(bu'u+2n
- \(bu
- Auto-rescale when changing the window size
- .TP
- \(bu
- Loadable colormaps, you can display the same data with
- different colors
- .TP
- \(bu
- Autodetect mono servers, using dithering
- .I (ordered dither)
- instead of colors
- .TP
- \(bu
- Run length encoding support.
- X
- .SH OPTIONS
- .TP
- .B \-dx \fIpixel-data-size\fR
- Set the horizontal size of expected
- .I pixel data image.
- (Defaults to \fI100\fR.)
- .TP
- .B \-dy \fIpixel-data-size\fR
- Set the vertical size of expected
- .I pixel data image.
- (Defaults to \fI100\fR.)
- .TP
- .B \-width \fIwindow-size\fR
- Set the horizontal size of
- .I pixmon
- window in screen coordinates
- (Defaults to \fIdx * scale\fR.)
- .TP
- .B \-height \fIwindow-size\fR
- Set the vertical size of
- .I pixmon
- window in screen coordinates
- (Defaults to \fIdy * scale\fR.)
- .TP
- .B \-scale \fIfloat-value\fR
- Scale the window's size to
- .I width = dx * float-value
- and
- .I height = dy * float-value
- (Defaults to \fI2\fR.)
- .TP
- .B \-cmap \fIfilename[.cmap]\fR
- Read in \fIfilename[.cmap]\fR on program start, and use the
- colors when generating the pixmaps. The use of the
- suffix `.cmap' is encouraged, but not enforced.
- .TP
- .B \-dither
- Use an
- .I ordered dither
- for pseudo color representation on low bitplane devices,
- eg.
- .I monochrome
- XX servers.
- when used on a color device, a two color dithering generates
- some interesting effects.
- .PP
- The following standard X Toolkit command line arguments are commonly used
- with
- .BR pixmon :
- .TP
- .B \-bg \fIcolor\fP
- This option specifies the color to use for the background of the window.
- The default is ``white.''
- .TP
- .B \-bd \fIcolor\fP
- This option specifies the color to use for the border of the window.
- The default is ``black.''
- .TP
- .B \-bw \fInumber\fP
- This option specifies the width in pixels of the border surrounding the window.
- .TP
- .B \-fg \fIcolor\fP
- This option specifies the color to use for displaying pixels. The default is
- ``black.''
- .TP
- .B \-name \fIname\fP
- This option specifies the application name under which resources are to be
- obtained, rather than the default executable file name.
- \fIName\fP should not contain ``.'' or ``*'' characters. (Defaults to
- .B ``PixMon.'')
- .TP
- .B \-title \fIstring\fP
- This option specifies the window title string, which may be displayed by
- window managers if the user so chooses. The default title is `pixmon'.
- .TP
- .B \-rv
- This option indicates that reverse video should be simulated by swapping
- the foreground and background colors.
- .TP
- .B \-geometry \fIgeometry\fP
- This option specifies the preferred size and position of the
- .B pixmon window;
- see \fIX(1)\fP.
- .TP
- .B \-display \fIdisplay\fP
- This option specifies the X server to contact; see \fIX(1)\fP.
- .TP
- .B \-xrm \fIresourcestring\fP
- This option specifies a resource string to be used. This is especially
- useful for setting resources that do not have separate command line options.
- .TP
- .B \-iconic
- This option indicates that
- .B pixmon
- should ask the window manager to
- start it as an icon rather than as the normal window.
- X
- .SH OPTION SUMMARY
- To give no option at all is the same as to give the following options:
- .TP
- -dx 100 -dy 100 -scale 2 -cmap default.cmap
- X
- .SH FORMATS
- .TP \w'\(bu'u+2n
- \(bu
- .I Color map file(s), recognised by
- .B pixmon
- have the following
- .SM ASCII
- layout:
- .LP
- .nf
- .DT
- .ft B
- X # File: demo.map
- X # Creator: Joachim Sprave (sprave@gonzo)
- X # <- this is a comment line: '#' in the 1st column
- X <red intensity 0> <green intensity 0> <blue intensity 0>
- X <red intensity 1> <green intensity 1> <blue intensity 1>
- X <red intensity 2> <green intensity 2> <blue intensity 2>
- X \&.\&.\&.
- X <red intensity 255> <green intensity 255> <blue intensity 255>
- .ft R
- .fi
- X
- Thus a color map file consist of 256 lines each one containing such a
- color description. Eg. to get a greyscale `color' map, simply
- use the same intensities for all colors (see
- .SM EXAMPLES
- below).
- .TP \w'\(bu'u+2n
- \(bu
- A package header is defined as:
- .LP
- .nf
- .DT
- .ft B
- X typedef struct {
- X unsigned short magic;
- X unsigned short type;
- X short x;
- X short y;
- X unsigned short dx;
- X unsigned short dy;
- X unsigned short sizelo;
- X unsigned short sizehi;
- X } ImgHdr;
- .ft R
- .fi
- X
- With the following semantics:
- .TP
- .I magic
- used to determine byte sex, must
- be initialized to PIX_MAGIC
- .TP
- .I type
- one of:
- .RS
- .TP
- .SM PIX_DATA
- Include the pixel data following
- the header into the picture
- (without displaying instantly).
- .TP
- .SM PIX_FLUSH
- Display the internal pixmap.
- .TP
- .SM PIX_DATA | PIX_FLUSH
- Include the pixel data following
- the header into the picture
- and display it instantly.
- .TP
- .SM PIX_KILL
- Tells
- .B pixmon
- to exit, when button 1 is pressed.
- .RE
- .TP
- .I x, y
- Position of this package relative to
- the upper-left corner of the window.
- .TP
- .I dx, dy
- Width and height (in dots, not in pixels)
- of this package.
- .TP
- .I sizelo, sizehi
- Size of the following pixel data. If
- .I sizehi * 0x10000 + sizelo
- .I < dx * dy,
- .B pixmon
- expects run length encoded data.
- X
- .SH ENCODING
- If
- .SM RUN LENGTH ENCODING (RLE)
- is detected (see above), the value
- .BR PIX_RLE (0xFF)
- is treated as an escape value,
- so the number of colors is reduced by one.
- To encode your data, use the function
- .B rle_encode
- from
- .I rle.c.
- X
- .SH EXAMPLES
- .TP \w'\(bu'u+2n
- \(bu
- A
- .I greyscale
- color map looks like:
- .LP
- .nf
- .DT
- .ft R
- X 0 0 0
- X 1 1 1
- X 2 2 2
- X 3 3 3
- X \&.\&.\&.
- X 255 255 255
- .fi
- .TP \w'\(bu'u+2n
- \(bu
- To use run length encoding of your pixel data, write:
- .LP
- .nf
- .DT
- .ft B
- X my_encode ()
- X {
- X char mybuffer[MBSIZE];
- X \&.\&.\&.
- X rle_encode (mybuffer, MBSIZE, PIX_RLE);
- X \&.\&.\&.
- X }
- .ft R
- .fi
- X
- .SH FILES
- .LP
- .nf
- .DT
- .ft R
- pixmon/default.cmap \fIdefault color map\fR
- pixmon/cmaps/*.cmap \fIexample color maps\fR
- X
- pixmon/examples/README \fIguiding instructions\fR
- pixmon/examples/mbx \fIshell script that runs mbs\fR
- pixmon/examples/mbs.c \fIgenerates a mandelbrot set\fR
- pixmon/examples/showpal.c \fIgenerates a color palette\fR
- .ft R
- .fi
- X
- .SH ANIMATION
- An animation companion to
- .B pixmon
- called
- .BR playmate (1)
- is also in the making, and will be distributed in near future
- (refer to the
- .SM AVAILABILITY
- section below).
- Its application is rather simple: all there is to do is to
- include a ``tee-log'' in the `pixel generating pipe' eg.:
- .PP
- .RS
- .I example%
- .B mbs ... | tee >pmdata.pix
- .B | pixmon ...
- .RE
- .PP
- to collect
- .B pixmon
- data, that is later turned into animated pixmaps by
- .BR playmate (1).
- (See the
- .B pixmon/examples
- folder for more.)
- X
- .SH BUGS
- The known `bugs' of
- .B pixmon
- are:
- .TP \w'\(bu'u+2n
- \(bu
- `No' interaction
- .TP
- \(bu
- Could be faster
- .TP
- \(bu
- No private color maps
- .TP
- \(bu
- My first
- .I X11
- program, ugly code :-(
- X
- .SH SEE ALSO
- .BR X (1),
- .BR hodge (1),
- .BR imagemagick (1),
- .BR playmate (1)
- X
- .SH AUTHOR
- Copyright
- .if t \(co
- .if n (C)
- 1992, 1993 by
- .if n Joachim Sprave
- .if t Joachim Sprave
- .nf
- Systems Analysis Group, University of Dortmund, Germany.
- .nf
- Send bugs, comments, etc., to (sprave@ls11.informatik.uni-dortmund.de).
- .fi
- X
- .SH CREDITS
- .if n Joerg Heitkoetter
- .if t J\*org Heitk\*otter
- (joke@ls11.informatik.uni-dortmund.de) wrote the manual page.
- .fi
- X
- .SH AVAILABILITY
- .LP
- This work is protected by the terms of the
- .SM GNU
- General Public License. Please refer to the
- .SM COPYING
- file accompanying the sources of this software package for a lengthy, boring,
- but absolute complete description.
- X
- .SM PIXMON
- is available via anonymous ftp from the group's server
- .B lumpi.informatik.uni-dortmunde.de
- (129.217.36.140)
- as file `pixmon-0.3.tar.Z' in /pub/CA/src.
- X
- .SH WARRANTY
- .LP
- This program is free software; you can redistribute it and/or modify
- it under the terms of the
- .SM GNU
- General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
- X
- This program is distributed in the hope that it will be useful,
- but
- .SM WITHOUT ANY WARRANTY;
- without even the implied warranty of
- .SM MERCHANTABILITY
- or
- .SM FITNESS FOR A PARTICULAR PURPOSE.
- See the
- .SM GNU
- General Public License for more details.
- X
- You should have received a copy of the
- .SM GNU
- General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- SHAR_EOF
- chmod 0640 hodge-c-0.98j/contrib/pixmon.1 ||
- echo 'restore of hodge-c-0.98j/contrib/pixmon.1 failed'
- Wc_c="`wc -c < 'hodge-c-0.98j/contrib/pixmon.1'`"
- test 9181 -eq "$Wc_c" ||
- echo 'hodge-c-0.98j/contrib/pixmon.1: original size 9181, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= hodge-c-0.98j/contrib/pixmon.man ==============
- if test -f 'hodge-c-0.98j/contrib/pixmon.man' -a X"$1" != X"-c"; then
- echo 'x - skipping hodge-c-0.98j/contrib/pixmon.man (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting hodge-c-0.98j/contrib/pixmon.man (Binary)'
- sed 's/^X//' << 'SHAR_EOF' > _shar_tmp_.tmp &&
- begin 600 hodge-c-0.98j/contrib/pixmon.man
- M"@H*4$E834].*#$I("`@("`@("`@("`@("`@(%5315(@0T]-34%.1%,@("`@
- M("`@("`@("`@("`@("!025A-3TXH,2D*"@H*3D%-10H@("`@('!I>&UO;B`M
- M(&$@<VEM<&QE('!I>&5L(&UO;FET;W(@9F]R(%@Q,0H*"E-93D]04TE3"B`@
- M("`@<&EX;6]N(%L@+5\(6%\(="U?"&]?"'!?"'1?"&E?"&]?"&Y?"',@+BXN
- M(%T@6R`M7PAO7PAP7PAT7PAI7PAO7PAN7PAS("XN+B!="@H@("`@("`@("`@
- M("`@6RUD>"`\7PAP7PAI7PAX7PAE7PAL+5\(9%\(85\(=%\(82U?"'-?"&E?
- M"'I?"&4^70H*("`@("`@("`@("`@(%LM9'D@/%\(<%\(:5\(>%\(95\(;"U?
- M"&1?"&%?"'1?"&$M7PAS7PAI7PAZ7PAE/ET*"B`@("`@("`@("`@("!;+7=I
- M9'1H(#Q?"'=?"&E?"&Y?"&1?"&]?"'<M7PAS7PAI7PAZ7PAE/ET*"B`@("`@
- M("`@("`@("!;+6AE:6=H="`\7PAW7PAI7PAN7PAD7PAO7PAW+5\(<U\(:5\(
- M>E\(93Y="@H@("`@("`@("`@("`@6RUS8V%L92`\7PAF7PAL7PAO7PAA7PAT
- M+5\(=E\(85\(;%\(=5\(93Y="@H@("`@("`@("`@("`@6RUC;6%P(#Q?"&9?
- M"&E?"&Q?"&5?"&Y?"&%?"&U?"&4^6RY?"&-?"&U?"&%?"'!=70H*("`@("`@
- M("`@("`@(%LM9&ET:&5R70H*"D1%4T-225!424]."B`@("`@<&EX;6]N(&EM
- M<&QE;65N=',@82!S:6UP;&4@7PAP7PAI7PAX7PAE7PAL(%\(9%\(85\(=%\(
- M82!?"&U?"&]?"&Y?"&E?"'1?"&]?"'(@9F]R("!U<V4@('=I=&@*("`@("!T
- M:&4@7PA87P@Q7P@Q('=I;F1O=R!S>7-T96TN($ET(&-O;65S('=I=&@@=&AE
- M(&9O;&QO=VEN9R!F96%T=7)E<SH*"B`@("`@;P@K("!!=71O+7)E<V-A;&4@
- M=VAE;B!C:&%N9VEN9R!T:&4@=VEN9&]W('-I>F4*"B`@("`@;P@K("!,;V%D
- M86)L92!C;VQO<FUA<',L('EO=2!C86X@9&ES<&QA>2!T:&4@('-A;64@(&1A
- M=&$@('=I=&@*("`@("`@("!D:69F97)E;G0@8V]L;W)S"@H@("`@(&\(*R`@
- M075T;V1E=&5C="!M;VYO('-E<G9E<G,L('5S:6YG(&1I=&AE<FEN9R`H7PAO
- M7PAR7PAD7PAE7PAR7PAE7PAD(%\(9%\(:5\(=%\(:%\(95\(<BD*("`@("`@
- M("!I;G-T96%D(&]F(&-O;&]R<PH*("`@("!O""L@(%)U;B!L96YG=&@@96YC
- M;V1I;F<@<W5P<&]R="X*"@I/4%1)3TY3"B`@("`@+61X(%\(<%\(:5\(>%\(
- M95\(;"U?"&1?"&%?"'1?"&$M7PAS7PAI7PAZ7PAE"B`@("`@("`@("!3970@
- M=&AE(&AO<FEZ;VYT86P@<VEZ92!O9B!E>'!E8W1E9"!?"'!?"&E?"'A?"&5?
- M"&P@(%\(9%\(85\(=%\(82`@7PAI7PAM7PAA7PAG7PAE+@H@("`@("`@("`@
- M*$1E9F%U;'1S('1O(%\(,5\(,%\(,"XI"@H@("`@("UD>2!?"'!?"&E?"'A?
- M"&5?"&PM7PAD7PAA7PAT7PAA+5\(<U\(:5\(>E\(90H@("`@("`@("`@4V5T
- M('1H92!V97)T:6-A;"!S:7IE(&]F("!E>'!E8W1E9"`@7PAP7PAI7PAX7PAE
- M7PAL("!?"&1?"&%?"'1?"&$@(%\(:5\(;5\(85\(9U\(92X*("`@("`@("`@
- M("A$969A=6QT<R!T;R!?"#%?"#!?"#`N*0H*("`@("`M=VED=&@@7PAW7PAI
- M7PAN7PAD7PAO7PAW+5\(<U\(:5\(>E\(90H@("`@("`@("`@4V5T('1H92!H
- M;W)I>F]N=&%L('-I>F4@(&]F("!?"'!?"&E?"'A?"&U?"&]?"&X@('=I;F1O
- M=R`@:6X@('-C<F5E;@H@("`@("`@("`@8V]O<F1I;F%T97,@*$1E9F%U;'1S
- M('1O(%\(9%\(>"`J(%\(<U\(8U\(85\(;%\(92XI"@H@("`@("UH96EG:'0@
- M7PAW7PAI7PAN7PAD7PAO7PAW+5\(<U\(:5\(>E\(90H@("`@("`@("`@4V5T
- M('1H92`@=F5R=&EC86P@('-I>F4@(&]F("!?"'!?"&E?"'A?"&U?"&]?"&X@
- M('=I;F1O=R`@:6X@('-C<F5E;@H*"@I697)S:6]N(#`N,R`@("`@("`@3&%S
- M="!C:&%N9V4Z(#$V($UA<F-H(#$Y.3,@("`@("`@("`@("`@("`@("`@,0H*
- M"@H*"@I025A-3TXH,2D@("`@("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@
- M("`@("`@("`@("`@("`@(%!)6$U/3B@Q*0H*"@H@("`@("`@("`@8V]O<F1I
- M;F%T97,@*$1E9F%U;'1S('1O(%\(9%\(>2`J(%\(<U\(8U\(85\(;%\(92XI
- M"@H@("`@("US8V%L92!?"&9?"&Q?"&]?"&%?"'0M7PAV7PAA7PAL7PAU7PAE
- M"B`@("`@("`@("!38V%L92!T:&4@=VEN9&]W)W,@<VEZ92!T;R!?"'=?"&E?
- M"&1?"'1?"&@@/2!?"&1?"'@@*B!?"&9?"&Q?"&]?"&%?"'0M7PAV7PAA7PAL
- M7PAU7PAE(&%N9`H@("`@("`@("`@7PAH7PAE7PAI7PAG7PAH7PAT(#T@7PAD
- M7PAY("H@7PAF7PAL7PAO7PAA7PAT+5\(=E\(85\(;%\(=5\(92`H1&5F875L
- M=',@=&\@7P@R+BD*"B`@("`@+6-M87`@7PAF7PAI7PAL7PAE7PAN7PAA7PAM
- M7PAE6RY?"&-?"&U?"&%?"'!="B`@("`@("`@("!296%D(&EN(%\(9E\(:5\(
- M;%\(95\(;E\(85\(;5\(95LN7PAC7PAM7PAA7PAP72!O;B!P<F]G<F%M('-T
- M87)T+"!A;F0@('5S92`@=&AE"B`@("`@("`@("!C;VQO<G,@=VAE;B!G96YE
- M<F%T:6YG('1H92!P:7AM87!S+B!4:&4@=7-E(&]F('1H92!S=68M"B`@("`@
- M("`@("!F:7@@8"YC;6%P)R!I<R!E;F-O=7)A9V5D+"!B=70@;F]T(&5N9F]R
- M8V5D+@H*("`@("`M9&ET:&5R"B`@("`@("`@("!5<V4@86X@7PAO7PAR7PAD
- M7PAE7PAR7PAE7PAD(%\(9%\(:5\(=%\(:%\(95\(<B!F;W(@<'-E=61O("!C
- M;VQO<B`@<F5P<F5S96YT871I;VX*("`@("`@("`@(&]N("!L;W<@(&)I='!L
- M86YE("!D979I8V5S+"`@96<N("!?"&U?"&]?"&Y?"&]?"&-?"&A?"')?"&]?
- M"&U?"&4@6"!S97)V97)S+@H@("`@("`@("`@=VAE;B!U<V5D(&]N(&$@8V]L
- M;W(@9&5V:6-E+"!A('1W;R!C;VQO<B!D:71H97)I;F<@9V5N+0H@("`@("`@
- M("`@97)A=&5S('-O;64@:6YT97)E<W1I;F<@969F96-T<RX*"B`@("`@5&AE
- M(&9O;&QO=VEN9R!S=&%N9&%R9"!8(%1O;VQK:70@8V]M;6%N9"!L:6YE(&%R
- M9W5M96YT<R`@87)E"B`@("`@8V]M;6]N;'D@=7-E9"!W:71H('!I>&UO;CH*
- M"B`@("`@+6)G(%\(8U\(;U\(;%\(;U\(<@H@("`@("`@("`@5&AI<R!O<'1I
- M;VX@<W!E8VEF:65S('1H92!C;VQO<B!T;R!U<V4@(&9O<B`@=&AE("!B86-K
- M+0H@("`@("`@("`@9W)O=6YD(&]F('1H92!W:6YD;W<N(%1H92!D969A=6QT
- M(&ES(&!@=VAI=&4N)R<*"B`@("`@+6)D(%\(8U\(;U\(;%\(;U\(<@H@("`@
- M("`@("`@5&AI<R!O<'1I;VX@<W!E8VEF:65S('1H92!C;VQO<B!T;R!U<V4@
- M9F]R("!T:&4@(&)O<F1E<@H@("`@("`@("`@;V8@=&AE('=I;F1O=RX@(%1H
- M92!D969A=6QT(&ES(&!@8FQA8VLN)R<*"B`@("`@+6)W(%\(;E\(=5\(;5\(
- M8E\(95\(<@H@("`@("`@("`@5&AI<R!O<'1I;VX@<W!E8VEF:65S('1H92!W
- M:61T:"!I;B!P:7AE;',@;V8@=&AE(&)O<F1E<@H@("`@("`@("`@<W5R<F]U
- M;F1I;F<@=&AE('=I;F1O=RX*"B`@("`@+69G(%\(8U\(;U\(;%\(;U\(<@H@
- M("`@("`@("`@5&AI<R!O<'1I;VX@<W!E8VEF:65S('1H92!C;VQO<B!T;R!U
- M<V4@(&9O<B`@9&ES<&QA>6EN9PH@("`@("`@("`@<&EX96QS+B`@5&AE(&1E
- M9F%U;'0@:7,@8&!B;&%C:RXG)PH*("`@("`M;F%M92!?"&Y?"&%?"&U?"&4*
- M("`@("`@("`@(%1H:7,@;W!T:6]N('-P96-I9FEE<R!T:&4@87!P;&EC871I
- M;VX@;F%M92!U;F1E<B`@=VAI8V@*("`@("`@("`@(')E<V]U<F-E<R`@87)E
- M("!T;R!B92!O8G1A:6YE9"P@<F%T:&5R('1H86X@=&AE(&1E9F%U;'0*("`@
- M("`@("`@(&5X96-U=&%B;&4@9FEL92!N86UE+B`@7PA.7PAA7PAM7PAE('-H
- M;W5L9"!N;W0@8V]N=&%I;B!@8"XG)R!O<@H@("`@("`@("`@8&`J)R<@8VAA
- M<F%C=&5R<RX@*$1E9F%U;'1S('1O(&!@4&EX36]N+B<G*0H*("`@("`M=&ET
- M;&4@7PAS7PAT7PAR7PAI7PAN7PAG"B`@("`@("`@("!4:&ES(&]P=&EO;B!S
- M<&5C:69I97,@=&AE('=I;F1O=R`@=&ET;&4@('-T<FEN9RP@('=H:6-H"B`@
- M("`@("`@("!M87D@(&)E("!D:7-P;&%Y960@(&)Y("!W:6YD;W<@(&UA;F%G
- M97)S(&EF('1H92!U<V5R('-O"B`@("`@("`@("!C:&]O<V5S+B`@5&AE(&1E
- M9F%U;'0@=&ET;&4@:7,@8'!I>&UO;B<N"@H@("`@("UR=B`@5&AI<R!O<'1I
- M;VX@:6YD:6-A=&5S("!T:&%T("!R979E<G-E("!V:61E;R`@<VAO=6QD("!B
- M90H@("`@("`@("`@<VEM=6QA=&5D("!B>2`@<W=A<'!I;F<@('1H92`@9F]R
- M96=R;W5N9"!A;F0@8F%C:V=R;W5N9`H@("`@("`@("`@8V]L;W)S+@H*("`@
- M("`M9V5O;65T<GD@7PAG7PAE7PAO7PAM7PAE7PAT7PAR7PAY"@H*"E9E<G-I
- M;VX@,"XS("`@("`@("!,87-T(&-H86YG93H@,38@36%R8V@@,3DY,R`@("`@
- M("`@("`@("`@("`@("`R"@H*"@H*"E!)6$U/3B@Q*2`@("`@("`@("`@("`@
- M("!54T52($-/34U!3D13("`@("`@("`@("`@("`@("`@4$E834].*#$I"@H*
- M"B`@("`@("`@("!4:&ES(&]P=&EO;B!S<&5C:69I97,@=&AE('!R969E<G)E
- M9"!S:7IE("!A;F0@('!O<VET:6]N"B`@("`@("`@("!O9B!T:&4@<&EX;6]N
- M('=I;F1O=SL@<V5E(%\(6"A?"#$I+@H*("`@("`M9&ES<&QA>2!?"&1?"&E?
- M"'-?"'!?"&Q?"&%?"'D*("`@("`@("`@(%1H:7,@;W!T:6]N('-P96-I9FEE
- M<R!T:&4@(%@@('-E<G9E<B`@=&\@(&-O;G1A8W0[("!S964*("`@("`@("`@
- M(%\(6"A?"#$I+@H*("`@("`M>')M(%\(<E\(95\(<U\(;U\(=5\(<E\(8U\(
- M95\(<U\(=%\(<E\(:5\(;E\(9PH@("`@("`@("`@5&AI<R!O<'1I;VX@<W!E
- M8VEF:65S(&$@<F5S;W5R8V4@('-T<FEN9R`@=&\@(&)E("!U<V5D+@H@("`@
- M("`@("`@5&AI<R!I<R!E<W!E8VEA;&QY('5S969U;"!F;W(@<V5T=&EN9R!R
- M97-O=7)C97,@=&AA="!D;PH@("`@("`@("`@;F]T(&AA=F4@<V5P87)A=&4@
- M8V]M;6%N9"!L:6YE(&]P=&EO;G,N"@H@("`@("UI8V]N:6,*("`@("`@("`@
- M(%1H:7,@;W!T:6]N(&EN9&EC871E<R!T:&%T('!I>&UO;B!S:&]U;&0@87-K
- M('1H92!W:6YD;W<*("`@("`@("`@(&UA;F%G97(@('1O('-T87)T(&ET(&%S
- M(&%N(&EC;VX@<F%T:&5R('1H86X@87,@=&AE(&YO<BT*("`@("`@("`@(&UA
- M;"!W:6YD;W<N"@H*3U!424].(%-534U!4ED*("`@("!4;R!G:79E(&YO(&]P
- M=&EO;B!A="!A;&P@:7,@=&AE('-A;64@87,@=&\@9VEV92!T:&4@(&9O;&QO
- M=RT*("`@("!I;F<@;W!T:6]N<SH*"B`@("`@+61X(#$P,"`M9'D@,3`P("US
- M8V%L92`R("UC;6%P(&1E9F%U;'0N8VUA<`H*"D9/4DU!5%,*("`@("!O""L@
- M(%\(0U\(;U\(;%\(;U\(<B!?"&U?"&%?"'`@7PAF7PAI7PAL7PAE*%\(<RDL
- M(%\(<E\(95\(8U\(;U\(9U\(;E\(:5\(<U\(95\(9"!?"&)?"'D@<&EX;6]N
- M(&AA=F4@=&AE("!F;VQL;W<M"B`@("`@("`@:6YG($%30TE)(&QA>6]U=#H*
- M"B`@("`@("`@("`C("`@($9I;&4Z("`@("`@("`@(&1E;6\N;6%P"B`@("`@
- M("`@("`C("`@($-R96%T;W(Z("!*;V%C:&EM(%-P<F%V92`H<W!R879E0&=O
- M;GIO*0H@("`@("`@("`@(R`\+2!T:&ES(&ES(&$@8V]M;65N="!L:6YE.B`G
- M(R<@:6X@=&AE(#%S="!C;VQU;6X*("`@("`@("`@(#QR960@:6YT96YS:71Y
- M(#`^("`@/&=R965N(&EN=&5N<VET>2`P/B`\8FQU92!I;G1E;G-I='D@,#X*
- M("`@("`@("`@(#QR960@:6YT96YS:71Y(#$^("`@/&=R965N(&EN=&5N<VET
- M>2`Q/B`\8FQU92!I;G1E;G-I='D@,3X*("`@("`@("`@(#QR960@:6YT96YS
- M:71Y(#(^("`@/&=R965N(&EN=&5N<VET>2`R/B`\8FQU92!I;G1E;G-I='D@
- M,CX*("`@("`@("`@("`@("`@("`@("`@("`@("XN+@H@("`@("`@("`@/')E
- M9"!I;G1E;G-I='D@,C4U/B`\9W)E96X@:6YT96YS:71Y(#(U-3X@("`@/&)L
- M=64@:6YT96YS:71Y(#(U-3X*"B`@("`@5&AU<R!A(&-O;&]R(&UA<"!F:6QE
- M(&-O;G-I<W0@;V8@,C4V(&QI;F5S(&5A8V@@;VYE(&-O;G1A:6XM"B`@("`@
- M:6YG('-U8V@@82!C;VQO<B!D97-C<FEP=&EO;BX@16<N('1O(&=E="!A(&=R
- M97ES8V%L92!@8V]L;W(G"B`@("`@;6%P+"!S:6UP;'D@=7-E('1H92!S86UE
- M(&EN=&5N<VET:65S("!F;W(@(&%L;"`@8V]L;W)S("`H<V5E"B`@("`@15A!
- M35!,15,@8F5L;W<I+@H*("`@("!O""L@($$@<&%C:V%G92!H96%D97(@:7,@
- M9&5F:6YE9"!A<SH*"B`@("`@("`@("!T>7!E9&5F('-T<G5C="!["B`@("`@
- M("`@("`@("`@('5N<VEG;F5D('-H;W)T(&UA9VEC.PH@("`@("`@("`@("`@
- M("!U;G-I9VYE9"!S:&]R="!T>7!E.PH@("`@("`@("`@("`@("!S:&]R="`@
- M("`@("`@("!X.PH@("`@("`@("`@("`@("!S:&]R="`@("`@("`@("!Y.PH@
- M("`@("`@("`@("`@("!U;G-I9VYE9"!S:&]R="!D>#L*("`@("`@("`@("`@
- M("`@=6YS:6=N960@<VAO<G0@9'D["@H*"E9E<G-I;VX@,"XS("`@("`@("!,
- M87-T(&-H86YG93H@,38@36%R8V@@,3DY,R`@("`@("`@("`@("`@("`@("`S
- M"@H*"@H*"E!)6$U/3B@Q*2`@("`@("`@("`@("`@("!54T52($-/34U!3D13
- M("`@("`@("`@("`@("`@("`@4$E834].*#$I"@H*"B`@("`@("`@("`@("`@
- M('5N<VEG;F5D('-H;W)T('-I>F5L;SL*("`@("`@("`@("`@("`@=6YS:6=N
- M960@<VAO<G0@<VEZ96AI.PH@("`@("`@("`@?2!);6=(9'(["@H@("`@(%=I
- M=&@@=&AE(&9O;&QO=VEN9R!S96UA;G1I8W,Z"@H@("`@(%\(;5\(85\(9U\(
- M:5\(8PH@("`@("`@("`@=7-E9"!T;R!D971E<FUI;F4@8GET92`@<V5X+"`@
- M;75S="`@8F4@(&EN:71I86QI>F5D("!T;PH@("`@("`@("`@4$E87TU!1TE#
- M"@H@("`@(%\(=%\(>5\(<%\(92!O;F4@;V8Z"@H@("`@("`@("`@4$E87T1!
- M5$$*("`@("`@("`@("`@("`@26YC;'5D92!T:&4@<&EX96P@9&%T82!F;VQL
- M;W=I;F<@=&AE("!H96%D97(@(&EN=&\*("`@("`@("`@("`@("`@=&AE('!I
- M8W1U<F4@*'=I=&AO=70@9&ES<&QA>6EN9R!I;G-T86YT;'DI+@H*("`@("`@
- M("`@(%!)6%]&3%532`H@("`@("`@("`@("`@("!$:7-P;&%Y('1H92!I;G1E
- M<FYA;"!P:7AM87`N"@H@("`@("`@("`@4$E87T1!5$$@?"!025A?1DQ54T@*
- M("`@("`@("`@("`@("`@26YC;'5D92!T:&4@<&EX96P@9&%T82!F;VQL;W=I
- M;F<@=&AE("!H96%D97(@(&EN=&\*("`@("`@("`@("`@("`@=&AE('!I8W1U
- M<F4@86YD(&1I<W!L87D@:70@:6YS=&%N=&QY+@H*("`@("`@("`@(%!)6%]+
- M24Q,"B`@("`@("`@("`@("`@(%1E;&QS('!I>&UO;B!T;R!E>&ET+"!W:&5N
- M(&)U='1O;B`Q(&ES('!R97-S960N"@H@("`@(%\(>"P@7PAY(%!O<VET:6]N
- M(&]F('1H:7,@<&%C:V%G92`@<F5L871I=F4@('1O("!T:&4@('5P<&5R+6QE
- M9G0*("`@("`@("`@(&-O<FYE<B!O9B!T:&4@=VEN9&]W+@H*("`@("!?"&1?
- M"'@L(%\(9%\(>0H@("`@("`@("`@5VED=&@@86YD(&AE:6=H="`H:6X@9&]T
- M<RP@;F]T(&EN('!I>&5L<RD@;V8@=&AI<R!P86-K+0H@("`@("`@("`@86=E
- M+@H*("`@("!?"'-?"&E?"'I?"&5?"&Q?"&\L(%\(<U\(:5\(>E\(95\(:%\(
- M:0H@("`@("`@("`@4VEZ92!O9B!T:&4@9F]L;&]W:6YG('!I>&5L(&1A=&$N
- M($EF(%\(<U\(:5\(>E\(95\(:%\(:2`J(%\(,%\(>%\(,5\(,%\(,%\(,%\(
- M,"`K"B`@("`@("`@("!?"'-?"&E?"'I?"&5?"&Q?"&\@(#P@(%\(9%\(>"`@
- M*B`@7PAD7PAY+"!P:7AM;VX@97AP96-T<R!R=6X@;&5N9W1H(&5N8V]D960*
- M("`@("`@("`@(&1A=&$N"@H*14Y#3T1)3D<*("`@("!)9B!254X@3$5.1U1(
- M($5.0T]$24Y'("A23$4I(&ES(&1E=&5C=&5D("`H<V5E("!A8F]V92DL("!T
- M:&4*("`@("!V86QU92`@4$E87U),12@P>$9&*2`@:7,@('1R96%T960@87,@
- M86X@97-C87!E('9A;'5E+"!S;R!T:&4*("`@("!N=6UB97(@;V8@8V]L;W)S
- M(&ES(')E9'5C960@8GD@;VYE+B`@5&\@(&5N8V]D92`@>6]U<B`@9&%T82P*
- M("`@("!U<V4@=&AE(&9U;F-T:6]N(')L95]E;F-O9&4@9G)O;2!?"')?"&Q?
- M"&4N7PAC+@H*"D5804U03$53"B`@("`@;P@K("!!(%\(9U\(<E\(95\(>5\(
- M<U\(8U\(85\(;%\(92!C;VQO<B!M87`@;&]O:W,@;&EK93H*"B`@("`@("`@
- M("`P("`@(#`@("`@,`H@("`@("`@("`@,2`@("`Q("`@(#$*("`@("`@("`@
- M(#(@("`@,B`@("`R"@H*"E9E<G-I;VX@,"XS("`@("`@("!,87-T(&-H86YG
- M93H@,38@36%R8V@@,3DY,R`@("`@("`@("`@("`@("`@("`T"@H*"@H*"E!)
- M6$U/3B@Q*2`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@("`@("`@
- M("`@("`@("`@4$E834].*#$I"@H*"B`@("`@("`@("`S("`@(#,@("`@,PH@
- M("`@("`@("`@("`@("`N+BX*("`@("`@("`@(#(U-2`@,C4U("`R-34*"B`@
- M("`@;P@K("!4;R!U<V4@<G5N(&QE;F=T:"!E;F-O9&EN9R!O9B!Y;W5R('!I
- M>&5L(&1A=&$L('=R:71E.@H*("`@("`@("`@(&UY7V5N8V]D92`H*0H@("`@
- M("`@("`@>PH@("`@("`@("`@("`@("!C:&%R(&UY8G5F9F5R6TU"4TE:15T[
- M"B`@("`@("`@("`@("`@("XN+@H@("`@("`@("`@("`@("!R;&5?96YC;V1E
- M("AM>6)U9F9E<BP@34)325I%+"!025A?4DQ%*3L*("`@("`@("`@("`@("`@
- M+BXN"B`@("`@("`@("!]"@H*1DE,15,*("`@("!P:7AM;VXO9&5F875L="YC
- M;6%P("`@("`@7PAD7PAE7PAF7PAA7PAU7PAL7PAT(%\(8U\(;U\(;%\(;U\(
- M<B!?"&U?"&%?"'`*("`@("!P:7AM;VXO8VUA<',O*BYC;6%P("`@("`@7PAE
- M7PAX7PAA7PAM7PAP7PAL7PAE(%\(8U\(;U\(;%\(;U\(<B!?"&U?"&%?"'!?
- M"',*"B`@("`@<&EX;6]N+V5X86UP;&5S+U)%041-12`@(%\(9U\(=5\(:5\(
- M9%\(:5\(;E\(9R!?"&E?"&Y?"'-?"'1?"')?"'5?"&-?"'1?"&E?"&]?"&Y?
- M"',*("`@("!P:7AM;VXO97AA;7!L97,O;6)X("`@("`@7PAS7PAH7PAE7PAL
- M7PAL(%\(<U\(8U\(<E\(:5\(<%\(="!?"'1?"&A?"&%?"'0@7PAR7PAU7PAN
- M7PAS(%\(;5\(8E\(<PH@("`@('!I>&UO;B]E>&%M<&QE<R]M8G,N8R`@("`@
- M("`@(%\(9U\(95\(;E\(95\(<E\(85\(=%\(95\(<R!?"&$@7PAM7PAA7PAN
- M7PAD7PAE7PAL7PAB7PAR7PAO7PAT(%\(<U\(95\(=`H@("`@('!I>&UO;B]E
- M>&%M<&QE<R]S:&]W<&%L+F,@("`@(%\(9U\(95\(;E\(95\(<E\(85\(=%\(
- M95\(<R!?"&$@7PAC7PAO7PAL7PAO7PAR(%\(<%\(85\(;%\(95\(=%\(=%\(
- M90H*"D%.24U!5$E/3@H@("`@($%N(&%N:6UA=&EO;B!C;VUP86YI;VX@=&\@
- M<&EX;6]N(&-A;&QE9"!P;&%Y;6%T92@Q*2!I<R`@86QS;PH@("`@(&EN('1H
- M92!M86MI;F<L(&%N9"!W:6QL(&)E(&1I<W1R:6)U=&5D(&EN(&YE87(@9G5T
- M=7)E("AR969E<@H@("`@('1O('1H92!!5D%)3$%"24Q)5%D@('-E8W1I;VX@
- M(&)E;&]W*2X@("!)=',@(&%P<&QI8V%T:6]N("!I<PH@("`@(')A=&AE<B`@
- M<VEM<&QE.B`@86QL("!T:&5R92`@:7,@=&\@9&\@:7,@=&\@:6YC;'5D92!A
- M(&!@=&5E+0H@("`@(&QO9R<G(&EN('1H92!@<&EX96P@9V5N97)A=&EN9R!P
- M:7!E)R!E9RXZ"@H@("`@("`@("`@7PAE7PAX7PAA7PAM7PAP7PAL7PAE)2!M
- M8G,@+BXN('P@=&5E(#YP;61A=&$N<&EX('P@<&EX;6]N("XN+@H*("`@("!T
- M;R!C;VQL96-T('!I>&UO;B!D871A+"!T:&%T(&ES(&QA=&5R('1U<FYE9"`@
- M:6YT;R`@86YI;6%T960*("`@("!P:7AM87!S(&)Y('!L87EM871E*#$I+B`@
- M*%-E92!T:&4@<&EX;6]N+V5X86UP;&5S(&9O;&1E<B!F;W(*("`@("!M;W)E
- M+BD*"@I"54=3"B`@("`@5&AE(&MN;W=N(&!B=6=S)R!O9B!P:7AM;VX@87)E
- M.@H*("`@("!O""L@(&!.;R<@:6YT97)A8W1I;VX*"B`@("`@;P@K("!#;W5L
- M9"!B92!F87-T97(*"B`@("`@;P@K("!.;R!P<FEV871E(&-O;&]R(&UA<',*
- M"B`@("`@;P@K("!->2!F:7)S="!?"%A?"#%?"#$@<')O9W)A;2P@=6=L>2!C
- M;V1E(#HM*`H*"@H*"@I697)S:6]N(#`N,R`@("`@("`@3&%S="!C:&%N9V4Z
- M(#$V($UA<F-H(#$Y.3,@("`@("`@("`@("`@("`@("`@-0H*"@H*"@I025A-
- M3TXH,2D@("`@("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@
- M("`@("`@(%!)6$U/3B@Q*0H*"@I3144@04Q33PH@("`@(%@H,2DL(&AO9&=E
- M*#$I+"!I;6%G96UA9VEC:R@Q*2P@<&QA>6UA=&4H,2D*"@I!551(3U(*("`@
- M("!#;W!Y<FEG:'0@*$,I(#$Y.3(L(#$Y.3,@8GD@2F]A8VAI;2!3<')A=F4*
- M("`@("!3>7-T96US($%N86QY<VES($=R;W5P+"!5;FEV97)S:71Y(&]F($1O
- M<G1M=6YD+"!'97)M86YY+@H@("`@(%-E;F0@8G5G<RP@8V]M;65N=',L(&5T
- M8RXL('1O("AS<')A=F5`;',Q,2YI;F9O<FUA=&EK+G5N:2UD;W)T;75N9"YD
- M92DN"@H*0U)%1$E44PH@("`@($IO97)G("`@2&5I=&MO971T97(@("`H:F]K
- M94!L<S$Q+FEN9F]R;6%T:6LN=6YI+61O<G1M=6YD+F1E*0H@("`@('=R;W1E
- M('1H92!M86YU86P@<&%G92X*"@I!5D%)3$%"24Q)5%D*("`@("!4:&ES('=O
- M<FL@:7,@<')O=&5C=&5D(&)Y('1H92!T97)M<R!O9B!T:&4@1TY5($=E;F5R
- M86P@(%!U8BT*("`@("!L:6,@($QI8V5N<V4N("!0;&5A<V4@<F5F97(@=&\@
- M=&AE($-/4%E)3D<@9FEL92!A8V-O;7!A;GEI;F<*("`@("!T:&4@<V]U<F-E
- M<R!O9B!T:&ES('-O9G1W87)E('!A8VMA9V4@9F]R(&$@;&5N9W1H>2P@(&)O
- M<FEN9RP*("`@("!B=70@86)S;VQU=&4@8V]M<&QE=&4@9&5S8W)I<'1I;VXN
- M"@H@("`@(%!)6$U/3B!I<R!A=F%I;&%B;&4@('9I82`@86YO;GEM;W5S("!F
- M='`@(&9R;VT@('1H92`@9W)O=7`G<PH@("`@('-E<G9E<B!L=6UP:2YI;F9O
- M<FUA=&EK+G5N:2UD;W)T;75N9&4N9&4@*#$R.2XR,3<N,S8N,30P*2!A<PH@
- M("`@(&9I;&4@8'!I>&UO;BTP+C,N=&%R+EHG(&EN("]P=6(O0T$O<W)C+@H*
- M"E=!4E)!3E19"B`@("`@5&AI<R!P<F]G<F%M(&ES("!F<F5E("!S;V9T=V%R
- M93L@('EO=2`@8V%N("!R961I<W1R:6)U=&4@(&ET"B`@("`@86YD+V]R("!M
- M;V1I9GD@(&ET('5N9&5R('1H92!T97)M<R!O9B!T:&4@1TY5($=E;F5R86P@
- M4'5B;&EC"B`@("`@3&EC96YS92!A<R!P=6)L:7-H960@8GD@=&AE($9R964@
- M4V]F='=A<F4@1F]U;F1A=&EO;CL@96ET:&5R"B`@("`@=F5R<VEO;B`R(&]F
- M('1H92!,:6-E;G-E+"!O<B`H870@>6]U<B!O<'1I;VXI(&%N>2!L871E<B!V
- M97(M"B`@("`@<VEO;BX*"B`@("`@5&AI<R!P<F]G<F%M(&ES(&1I<W1R:6)U
- M=&5D(&EN('1H92!H;W!E('1H870@:70@=VEL;"!B92!U<V4M"B`@("`@9G5L
- M+"!B=70@5TE42$]55"!!3ED@5T%24D%.5%D[('=I=&AO=70@979E;B!T:&4@
- M:6UP;&EE9"!W87(M"B`@("`@<F%N='D@;V8@34520TA!3E1!0DE,2519(&]R
- M($9)5$Y%4U,@1D]2("!!("!005)424-53$%2("!055(M"B`@("`@4$]312X@
- M4V5E('1H92!'3E4@1V5N97)A;"!0=6)L:6,@3&EC96YS92!F;W(@;6]R92!D
- M971A:6QS+@H*("`@("!9;W4@<VAO=6QD(&AA=F4@<F5C96EV960@82!C;W!Y
- M(&]F('1H92`@1TY5("!'96YE<F%L("!0=6)L:6,*("`@("!,:6-E;G-E("!A
- M;&]N9R`@=VET:"!T:&ES('!R;V=R86T[(&EF(&YO="P@=W)I=&4@=&\@=&AE
- M($9R964*("`@("!3;V9T=V%R92!&;W5N9&%T:6]N+"`@26YC+BP@(#8W-2`@
- M36%S<R`@079E+"`@0V%M8G)I9&=E+"`@34$*("`@("`P,C$S.2P@55-!+@H*
- M"@H*"@H*"@H*"@H*5F5R<VEO;B`P+C,@("`@("`@($QA<W0@8VAA;F=E.B`Q
- D-B!-87)C:"`Q.3DS("`@("`@("`@("`@("`@("`@(#8*"@H*
- `
- end
- SHAR_EOF
- echo 'uudecoding file hodge-c-0.98j/contrib/pixmon.man' &&
- uudecode < _shar_tmp_.tmp && rm -f _shar_tmp_.tmp &&
- chmod 0640 hodge-c-0.98j/contrib/pixmon.man ||
- echo 'restore of hodge-c-0.98j/contrib/pixmon.man failed'
- Wc_c="`wc -c < 'hodge-c-0.98j/contrib/pixmon.man'`"
- test 11421 -eq "$Wc_c" ||
- echo 'hodge-c-0.98j/contrib/pixmon.man: original size 11421, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= hodge-c-0.98j/getopt.c ==============
- if test -f 'hodge-c-0.98j/getopt.c' -a X"$1" != X"-c"; then
- echo 'x - skipping hodge-c-0.98j/getopt.c (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting hodge-c-0.98j/getopt.c (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hodge-c-0.98j/getopt.c' &&
- X
- /* Getopt for GNU.
- X NOTE: getopt is now part of the C library, so if you don't know what
- X "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
- X before changing it!
- X
- X Copyright (C) 1987, 88, 89, 90, 91, 1992 Free Software Foundation, Inc.
- X
- X This program is free software; you can redistribute it and/or modify
- X it under the terms of the GNU General Public License as published by
- X the Free Software Foundation; either version 2, or (at your option)
- X any later version.
- X
- X This program is distributed in the hope that it will be useful,
- X but WITHOUT ANY WARRANTY; without even the implied warranty of
- X MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X GNU General Public License for more details.
- X
- X You should have received a copy of the GNU General Public License
- X along with this program; if not, write to the Free Software
- X Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
- X
- /* AIX requires this to be the first thing in the file. */
- X
- #ifdef __GNUC__
- #define alloca __builtin_alloca
- #else /* not __GNUC__ */
- X
- #if defined(sparc) && !defined(USG) && !defined(SVR4) && !defined(__svr4__)
- #include <alloca.h>
- #else
- X
- #ifdef _AIX
- #pragma alloca
- #else
- char *alloca ();
- #endif
- X
- #endif /* sparc */
- X
- #endif /* not __GNUC__ */
- X
- #ifdef LIBC
- /* For when compiled as part of the GNU C library. */
- #include <ansidecl.h>
- #endif
- X
- #include <stdio.h>
- X
- /* This needs to come after some library #include
- X to get __GNU_LIBRARY__ defined. */
- X
- #ifdef __GNU_LIBRARY__
- #undef alloca
- #include <stdlib.h>
- #include <string.h>
- #else /* Not GNU C library. */
- #define __alloca alloca
- #endif /* GNU C library. */
- X
- X
- #ifndef __STDC__
- #define const
- #endif
- X
- /* If GETOPT_COMPAT is defined, `+' as well as `--' can introduce a
- X long-named option. Because this is not POSIX.2 compliant, it is
- X being phased out. */
- /*
- #define GETOPT_COMPAT
- */
- X
- /* This version of `getopt' appears to the caller like standard Unix `getopt'
- X but it behaves differently for the user, since it allows the user
- X to intersperse the options with the other arguments.
- X
- X As `getopt' works, it permutes the elements of ARGV so that,
- X when it is done, all the options precede everything else. Thus
- X all application programs are extended to handle flexible argument order.
- X
- X Setting the environment variable POSIXLY_CORRECT disables permutation.
- X Then the behavior is completely standard.
- X
- X GNU application programs can use a third alternative mode in which
- X they can distinguish the relative order of options and other arguments. */
- X
- #include "getopt.h"
- X
- /* For communication from `getopt' to the caller.
- X When `getopt' finds an option that takes an argument,
- X the argument value is returned here.
- X Also, when `ordering' is RETURN_IN_ORDER,
- X each non-option ARGV-element is returned here. */
- X
- char *optarg = 0;
- X
- /* Index in ARGV of the next element to be scanned.
- X This is used for communication to and from the caller
- X and for communication between successive calls to `getopt'.
- X
- X On entry to `getopt', zero means this is the first call; initialize.
- X
- X When `getopt' returns EOF, this is the index of the first of the
- X non-option elements that the caller should itself scan.
- X
- X Otherwise, `optind' communicates from one call to the next
- X how much of ARGV has been scanned so far. */
- X
- int optind = 0;
- X
- /* The next char to be scanned in the option-element
- X in which the last option character we returned was found.
- X This allows us to pick up the scan where we left off.
- X
- X If this is zero, or a null string, it means resume the scan
- X by advancing to the next ARGV-element. */
- X
- static char *nextchar;
- X
- /* Callers store zero here to inhibit the error message
- X for unrecognized options. */
- X
- int opterr = 1;
- X
- /* Describe how to deal with options that follow non-option ARGV-elements.
- X
- X If the caller did not specify anything,
- X the default is REQUIRE_ORDER if the environment variable
- X POSIXLY_CORRECT is defined, PERMUTE otherwise.
- X
- X REQUIRE_ORDER means don't recognize them as options;
- X stop option processing when the first non-option is seen.
- X This is what Unix does.
- X This mode of operation is selected by either setting the environment
- X variable POSIXLY_CORRECT, or using `+' as the first character
- X of the list of option characters.
- X
- X PERMUTE is the default. We permute the contents of ARGV as we scan,
- X so that eventually all the non-options are at the end. This allows options
- X to be given in any order, even with programs that were not written to
- X expect this.
- X
- X RETURN_IN_ORDER is an option available to programs that were written
- X to expect options and other ARGV-elements in any order and that care about
- X the ordering of the two. We describe each non-option ARGV-element
- X as if it were the argument of an option with character code 1.
- X Using `-' as the first character of the list of option characters
- X selects this mode of operation.
- X
- X The special argument `--' forces an end of option-scanning regardless
- X of the value of `ordering'. In the case of RETURN_IN_ORDER, only
- X `--' can cause `getopt' to return EOF with `optind' != ARGC. */
- X
- static enum {
- X REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
- } ordering;
- X
- #ifdef __GNU_LIBRARY__
- #include <string.h>
- #define my_index strchr
- #define my_bcopy(src, dst, n) memcpy ((dst), (src), (n))
- #else
- X
- /* Avoid depending on library functions or files
- X whose names are inconsistent. */
- X
- char *getenv ();
- X
- static char *
- my_index (string, chr)
- X char *string;
- X int chr;
- {
- X while (*string) {
- X if (*string == chr)
- X return string;
- X string++;
- X }
- X return 0;
- }
- X
- static void
- my_bcopy (from, to, size)
- X char *from, *to;
- X int size;
- {
- X int i;
- X for (i = 0; i < size; i++)
- X to[i] = from[i];
- }
- X
- #endif /* GNU C library. */
- X
- /* Handle permutation of arguments. */
- X
- /* Describe the part of ARGV that contains non-options that have
- X been skipped. `first_nonopt' is the index in ARGV of the first of them;
- X `last_nonopt' is the index after the last of them. */
- X
- static int first_nonopt;
- static int last_nonopt;
- X
- /* Exchange two adjacent subsequences of ARGV.
- X One subsequence is elements [first_nonopt,last_nonopt)
- X which contains all the non-options that have been skipped so far.
- X The other is elements [last_nonopt,optind), which contains all
- X the options processed since those non-options were skipped.
- X
- X `first_nonopt' and `last_nonopt' are relocated so that they describe
- X the new indices of the non-options in ARGV after they are moved. */
- X
- static void
- exchange (argv)
- X char **argv;
- {
- X int nonopts_size = (last_nonopt - first_nonopt) * sizeof (char *);
- X char **temp = (char **) __alloca (nonopts_size);
- X
- X /* Interchange the two blocks of data in ARGV. */
- X
- X my_bcopy (&argv[first_nonopt], temp, nonopts_size);
- X my_bcopy (&argv[last_nonopt], &argv[first_nonopt],
- X (optind - last_nonopt) * sizeof (char *));
- X my_bcopy (temp, &argv[first_nonopt + optind - last_nonopt], nonopts_size);
- X
- X /* Update records for the slots the non-options now occupy. */
- X
- X first_nonopt += (optind - last_nonopt);
- X last_nonopt = optind;
- }
- X
- /* Scan elements of ARGV (whose length is ARGC) for option characters
- X given in OPTSTRING.
- X
- X If an element of ARGV starts with '-', and is not exactly "-" or "--",
- X then it is an option element. The characters of this element
- X (aside from the initial '-') are option characters. If `getopt'
- X is called repeatedly, it returns successively each of the option characters
- X from each of the option elements.
- X
- X If `getopt' finds another option character, it returns that character,
- X updating `optind' and `nextchar' so that the next call to `getopt' can
- X resume the scan with the following option character or ARGV-element.
- X
- X If there are no more option characters, `getopt' returns `EOF'.
- X Then `optind' is the index in ARGV of the first ARGV-element
- X that is not an option. (The ARGV-elements have been permuted
- X so that those that are not options now come last.)
- X
- X OPTSTRING is a string containing the legitimate option characters.
- X If an option character is seen that is not listed in OPTSTRING,
- X return '?' after printing an error message. If you set `opterr' to
- X zero, the error message is suppressed but we still return '?'.
- X
- X If a char in OPTSTRING is followed by a colon, that means it wants an arg,
- X so the following text in the same ARGV-element, or the text of the following
- X ARGV-element, is returned in `optarg'. Two colons mean an option that
- X wants an optional arg; if there is text in the current ARGV-element,
- X it is returned in `optarg', otherwise `optarg' is set to zero.
- X
- X If OPTSTRING starts with `-' or `+', it requests different methods of
- X handling the non-option ARGV-elements.
- X See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
- X
- X Long-named options begin with `--' instead of `-'.
- X Their names may be abbreviated as long as the abbreviation is unique
- X or is an exact match for some defined option. If they have an
- X argument, it follows the option name in the same ARGV-element, separated
- X from the option name by a `=', or else the in next ARGV-element.
- X When `getopt' finds a long-named option, it returns 0 if that option's
- X `flag' field is nonzero, the value of the option's `val' field
- X if the `flag' field is zero.
- X
- X The elements of ARGV aren't really const, because we permute them.
- X But we pretend they're const in the prototype to be compatible
- X with other systems.
- X
- X LONGOPTS is a vector of `struct option' terminated by an
- X element containing a name which is zero.
- X
- X LONGIND returns the index in LONGOPT of the long-named option found.
- X It is only valid when a long-named option has been found by the most
- X recent call.
- X
- X If LONG_ONLY is nonzero, '-' as well as '--' can introduce
- X long-named options. */
- X
- int
- _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
- X int argc;
- X char *const *argv;
- X const char *optstring;
- X const struct option *longopts;
- X int *longind;
- X int long_only;
- {
- X int option_index;
- X
- X optarg = 0;
- X
- X /* Initialize the internal data when the first call is made.
- SHAR_EOF
- true || echo 'restore of hodge-c-0.98j/getopt.c failed'
- fi
- echo 'End of part 2'
- echo 'File hodge-c-0.98j/getopt.c is continued in part 3'
- echo 3 > _shar_seq_.tmp
- exit 0
- exit 0 # Just in case...
-