]> granicus.if.org Git - graphviz/commitdiff
add lefty, dotty, lneato to graphviz2 tree
authorellson <devnull@localhost>
Thu, 6 Jan 2005 15:01:44 +0000 (15:01 +0000)
committerellson <devnull@localhost>
Thu, 6 Jan 2005 15:01:44 +0000 (15:01 +0000)
cmd/lefty/ws/x11/libfilereq/SFDecls.h [new file with mode: 0644]
cmd/lefty/ws/x11/libfilereq/SFinternal.h [new file with mode: 0644]
cmd/lefty/ws/x11/libfilereq/SelFile.c [new file with mode: 0644]
cmd/lefty/ws/x11/libfilereq/xstat.h [new file with mode: 0644]
cmd/lneato/.cvsignore [new file with mode: 0644]
cmd/lneato/Makefile.am [new file with mode: 0644]
cmd/lneato/Makefile.old [new file with mode: 0644]
cmd/lneato/lneato.pdf [new file with mode: 0644]

diff --git a/cmd/lefty/ws/x11/libfilereq/SFDecls.h b/cmd/lefty/ws/x11/libfilereq/SFDecls.h
new file mode 100644 (file)
index 0000000..8636666
--- /dev/null
@@ -0,0 +1,67 @@
+/* $Id$ $Revision$ */
+/* vim:set shiftwidth=4 ts=8: */
+
+/**********************************************************
+*      This software is part of the graphviz package      *
+*                http://www.graphviz.org/                 *
+*                                                         *
+*            Copyright (c) 1994-2004 AT&T Corp.           *
+*                and is licensed under the                *
+*            Common Public License, Version 1.0           *
+*                      by AT&T Corp.                      *
+*                                                         *
+*        Information and Software Systems Research        *
+*              AT&T Research, Florham Park NJ             *
+**********************************************************/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SFDecls.h */
+
+/* We don't rely on compiler doing the right thing
+ * in absence of declarations. 
+ * C compilers should never have accepted this braindamage.
+ * KG <garloff@suse.de>, 2002-01-28
+ */
+
+/* Dir.c */
+    int SFcompareEntries(const void *vp, const void *vq);
+    int SFgetDir(SFDir * dir);
+
+/* Path.c */
+    int SFchdir(char *path);
+    void SFupdatePath(void);
+    void SFsetText(char *path);
+/* void SFbuttonPressList(Widget w, int n, XButtonPressedEvent *event); */
+/* void SFbuttonReleaseList(Widget w, int n, XButtonPressedEvent *event) */
+/* void SFdirModTimer(XtPointer cl, XtIntervalId *id); */
+/* char SFstatChar (struct stat *statBuf); */
+
+/* SelFile.c */
+/* void SFpositionWidget(Widget w); */
+    FILE *SFopenFile(char *name, char *mode, char *prompt, char *failed);
+    void SFtextChanged(void);
+/* int XsraSelFile(Widget toplevel, char *prompt, char *ok, char *cancel, char *failed, */
+    /* char *init_path, char *mode, int (*show_entry)(), char *name_return, int name_size); */
+
+
+/* Draw.c */
+    void SFinitFont(void);
+    void SFcreateGC(void);
+    void SFclearList(long n, int doScroll);
+    void SFdrawList(long n, int doScroll);
+    void SFdrawLists(int doScroll);
+/*
+void SFenterList(Widget w, register int n, register XEnterWindowEvent *event);
+void SFleaveList(Widget w, register int n, XEvent *event);
+void SFmotionList(Widget w, register int n, XMotionEvent *event);
+*/
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/cmd/lefty/ws/x11/libfilereq/SFinternal.h b/cmd/lefty/ws/x11/libfilereq/SFinternal.h
new file mode 100644 (file)
index 0000000..e04d974
--- /dev/null
@@ -0,0 +1,164 @@
+/* $Id$ $Revision$ */
+/* vim:set shiftwidth=4 ts=8: */
+
+/**********************************************************
+*      This software is part of the graphviz package      *
+*                http://www.graphviz.org/                 *
+*                                                         *
+*            Copyright (c) 1994-2004 AT&T Corp.           *
+*                and is licensed under the                *
+*            Common Public License, Version 1.0           *
+*                      by AT&T Corp.                      *
+*                                                         *
+*        Information and Software Systems Research        *
+*              AT&T Research, Florham Park NJ             *
+**********************************************************/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Copyright 1989 Software Research Associates, Inc., Tokyo, Japan
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Software Research Associates not be used
+ * in advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission.  Software Research Associates
+ * makes no representations about the suitability of this software for any
+ * purpose.  It is provided "as is" without express or implied warranty.
+ *
+ * SOFTWARE RESEARCH ASSOCIATES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
+ * IN NO EVENT SHALL SOFTWARE RESEARCH ASSOCIATES BE LIABLE FOR ANY SPECIAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Erik M. van der Poel
+ *         Software Research Associates, Inc., Tokyo, Japan
+ *         erik@sra.co.jp
+ */
+
+#include <X11/Intrinsic.h>
+#include <X11/StringDefs.h>
+#include <X11/Xos.h>
+#include <X11/Xaw/Text.h>
+#include <X11/Xaw/AsciiText.h>
+
+#define SEL_FILE_CANCEL                -1
+#define SEL_FILE_OK            0
+#define SEL_FILE_NULL          1
+#define SEL_FILE_TEXT          2
+
+#define SF_DO_SCROLL           1
+#define SF_DO_NOT_SCROLL       0
+
+    typedef struct {
+       int statDone;
+       char *real;
+       char *shown;
+    } SFEntry;
+
+    typedef struct {
+       char *dir;
+       char *path;
+       SFEntry *entries;
+       int nEntries;
+       int vOrigin;
+       int nChars;
+       int hOrigin;
+       int changed;
+       int beginSelection;
+       int endSelection;
+       time_t mtime;
+    } SFDir;
+
+    extern int SFstatus;
+
+    extern char SFcurrentPath[], SFstartDir[], SFcurrentDir[];
+
+    extern Widget
+       selFile,
+       selFileCancel,
+       selFileField,
+       selFileForm,
+       selFileHScroll,
+       selFileHScrolls[],
+       selFileLists[], selFileOK, selFilePrompt, selFileVScrolls[];
+
+    extern Display *SFdisplay;
+
+    extern int SFcharWidth, SFcharHeight, SFcharAscent;
+
+    extern SFDir *SFdirs;
+
+    extern int SFdirEnd, SFdirPtr;
+
+    extern Pixel SFfore, SFback;
+
+    extern Atom SFwmDeleteWindow;
+
+    extern XSegment SFsegs[], SFcompletionSegs[];
+
+    extern XawTextPosition SFtextPos;
+
+    extern void
+     SFenterList(),
+       SFleaveList(),
+       SFmotionList(), SFbuttonPressList(), SFbuttonReleaseList();
+
+    extern void
+     SFvSliderMovedCallback(),
+       SFvFloatSliderMovedCallback(),
+       SFhSliderMovedCallback(),
+       SFpathSliderMovedCallback(),
+       SFvAreaSelectedCallback(),
+       SFhAreaSelectedCallback(), SFpathAreaSelectedCallback();
+
+    extern int SFupperX, SFlowerY, SFupperY;
+
+    extern int SFtextX, SFtextYoffset;
+
+    extern int SFentryWidth, SFentryHeight;
+
+    extern int SFlineToTextH, SFlineToTextV;
+
+    extern int SFbesideText, SFaboveAndBelowText;
+
+    extern int SFcharsPerEntry;
+
+    extern int SFlistSize;
+
+    extern int SFcurrentInvert[];
+
+    extern int SFworkProcAdded;
+    extern XtWorkProcId SFworkProcId;
+
+    extern Boolean SFworkProc();
+
+    extern XtAppContext SFapp;
+
+    extern int SFpathScrollWidth, SFvScrollHeight, SFhScrollWidth;
+
+    extern char SFtextBuffer[];
+
+    extern int SFbuttonPressed;
+
+    extern int SFcompareEntries();
+
+    extern void SFdirModTimer();
+
+    extern char SFstatChar();
+
+    extern XtIntervalId SFdirModTimerId;
+
+    extern int (*SFfunc) ();
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/cmd/lefty/ws/x11/libfilereq/SelFile.c b/cmd/lefty/ws/x11/libfilereq/SelFile.c
new file mode 100644 (file)
index 0000000..5d85389
--- /dev/null
@@ -0,0 +1,905 @@
+/* $Id$ $Revision$ */
+/* vim:set shiftwidth=4 ts=8: */
+
+/**********************************************************
+*      This software is part of the graphviz package      *
+*                http://www.graphviz.org/                 *
+*                                                         *
+*            Copyright (c) 1994-2004 AT&T Corp.           *
+*                and is licensed under the                *
+*            Common Public License, Version 1.0           *
+*                      by AT&T Corp.                      *
+*                                                         *
+*        Information and Software Systems Research        *
+*              AT&T Research, Florham Park NJ             *
+**********************************************************/
+
+#ifdef FEATURE_CS
+#include <ast.h>
+#endif
+/*
+ * Copyright 1989 Software Research Associates, Inc., Tokyo, Japan
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Software Research Associates not be used
+ * in advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission.  Software Research Associates
+ * makes no representations about the suitability of this software for any
+ * purpose.  It is provided "as is" without express or implied warranty.
+ *
+ * SOFTWARE RESEARCH ASSOCIATES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
+ * IN NO EVENT SHALL SOFTWARE RESEARCH ASSOCIATES BE LIABLE FOR ANY SPECIAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Erik M. van der Poel
+ *         Software Research Associates, Inc., Tokyo, Japan
+ *         erik@sra.co.jp
+ */
+
+/*
+ * Author's address:
+ *
+ *     erik@sra.co.jp
+ *                                            OR
+ *     erik%sra.co.jp@uunet.uu.net
+ *                                            OR
+ *     erik%sra.co.jp@mcvax.uucp
+ *                                            OR
+ *     try junet instead of co.jp
+ *                                            OR
+ *     Erik M. van der Poel
+ *     Software Research Associates, Inc.
+ *     1-1-1 Hirakawa-cho, Chiyoda-ku
+ *     Tokyo 102 Japan. TEL +81-3-234-2692
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdio.h>
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+
+#ifndef HAVE_ERRNO_DECL
+extern int errno;
+extern int sys_nerr;
+#if (linux)
+extern const char *const sys_errlist[];
+#else
+extern char *sys_errlist[];
+#endif
+#endif
+
+#include <sys/param.h>
+#include <X11/cursorfont.h>
+#include <X11/Intrinsic.h>
+#include <X11/StringDefs.h>
+#include <X11/Composite.h>
+#include <X11/Shell.h>
+#include <X11/Xaw/Form.h>
+#include <X11/Xaw/Command.h>
+#include <X11/Xaw/Scrollbar.h>
+#include <X11/Xaw/Label.h>
+#include <X11/Xaw/Cardinals.h>
+
+#include "SFinternal.h"
+
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 1024
+#endif                         /* ndef MAXPATHLEN */
+
+#include "SFDecls.h"
+
+#if !defined(SVR4) && !defined(SYSV) && !defined(USG)
+extern char *getwd();
+#endif                         /* !defined(SVR4) && !defined(SYSV) && !defined(USG) */
+
+#ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+
+int SFstatus = SEL_FILE_NULL;
+
+char SFstartDir[MAXPATHLEN],
+    SFcurrentPath[MAXPATHLEN], SFcurrentDir[MAXPATHLEN];
+
+Widget
+    selFile,
+    selFileCancel,
+    selFileField,
+    selFileForm,
+    selFileHScroll,
+    selFileHScrolls[3],
+    selFileLists[3], selFileOK, selFilePrompt, selFileVScrolls[3];
+
+Display *SFdisplay;
+
+Pixel SFfore, SFback;
+
+Atom SFwmDeleteWindow;
+
+XSegment SFsegs[2], SFcompletionSegs[2];
+
+XawTextPosition SFtextPos;
+
+int SFupperX, SFlowerY, SFupperY;
+
+int SFtextX, SFtextYoffset;
+
+int SFentryWidth, SFentryHeight;
+
+int SFlineToTextH = 3;
+
+int SFlineToTextV = 3;
+
+int SFbesideText = 3;
+
+int SFaboveAndBelowText = 2;
+
+int SFcharsPerEntry = 15;
+
+int SFlistSize = 10;
+
+int SFworkProcAdded = 0;
+XtWorkProcId SFworkProcId;
+
+XtAppContext SFapp;
+
+int SFpathScrollWidth, SFvScrollHeight, SFhScrollWidth;
+
+char SFtextBuffer[MAXPATHLEN];
+
+XtIntervalId SFdirModTimerId;
+
+int (*SFfunc) ();
+
+static char *oneLineTextEditTranslations = "\
+       <Key>Return:    redraw-display()\n\
+       Ctrl<Key>M:     redraw-display()\n\
+";
+
+/* ARGSUSED */
+static void SFexposeList(w, n, event, cont)
+Widget w;
+XtPointer n;
+XEvent *event;
+Boolean *cont;
+{
+    if ((event->type == NoExpose) || event->xexpose.count) {
+       return;
+    }
+
+    SFdrawList((long) n, SF_DO_NOT_SCROLL);
+}
+
+/* ARGSUSED */
+static void SFmodVerifyCallback(w, client_data, event, cont)
+Widget w;
+XtPointer client_data;
+XEvent *event;
+Boolean *cont;
+{
+    char buf[2];
+
+    if ((XLookupString(&(event->xkey), buf, 2, NULL, NULL) == 1) &&
+       ((*buf) == '\r')
+       ) {
+       SFstatus = SEL_FILE_OK;
+    } else {
+       SFstatus = SEL_FILE_TEXT;
+    }
+}
+
+/* ARGSUSED */
+static void SFokCallback(w, cl, cd)
+Widget w;
+XtPointer cl, cd;
+{
+    SFstatus = SEL_FILE_OK;
+}
+
+static XtCallbackRec SFokSelect[] = {
+    {SFokCallback, (XtPointer) NULL},
+    {NULL, (XtPointer) NULL},
+};
+
+/* ARGSUSED */
+static void SFcancelCallback(w, cl, cd)
+Widget w;
+XtPointer cl, cd;
+{
+    SFstatus = SEL_FILE_CANCEL;
+}
+
+static XtCallbackRec SFcancelSelect[] = {
+    {SFcancelCallback, (XtPointer) NULL},
+    {NULL, (XtPointer) NULL},
+};
+
+/* ARGSUSED */
+static void SFdismissAction(w, event, params, num_params)
+Widget w;
+XEvent *event;
+String *params;
+Cardinal *num_params;
+{
+    if (event->type == ClientMessage &&
+       event->xclient.data.l[0] != SFwmDeleteWindow)
+       return;
+
+    SFstatus = SEL_FILE_CANCEL;
+}
+
+static char *wmDeleteWindowTranslation = "\
+       <Message>WM_PROTOCOLS:  SelFileDismiss()\n\
+";
+
+static XtActionsRec actions[] = {
+    {"SelFileDismiss", SFdismissAction},
+};
+
+static void SFcreateWidgets(toplevel, prompt, ok, cancel)
+Widget toplevel;
+char *prompt;
+char *ok;
+char *cancel;
+{
+    Cardinal i;
+    long n;
+    int listWidth, listHeight;
+    int listSpacing = 10;
+    int scrollThickness = 15;
+    int hScrollX, hScrollY;
+    int vScrollX, vScrollY;
+    Cursor xtermCursor, sbRightArrowCursor, dotCursor;
+    Arg arglist[20];
+
+    i = 0;
+    XtSetArg(arglist[i], XtNtransientFor, toplevel);
+    i++;
+
+    selFile = XtAppCreateShell("selFile", "SelFile",
+                              transientShellWidgetClass, SFdisplay,
+                              arglist, i);
+
+    /* Add WM_DELETE_WINDOW protocol */
+    XtAppAddActions(XtWidgetToApplicationContext(selFile),
+                   actions, XtNumber(actions));
+    XtOverrideTranslations(selFile,
+                          XtParseTranslationTable
+                          (wmDeleteWindowTranslation));
+
+    i = 0;
+    XtSetArg(arglist[i], XtNdefaultDistance, 30);
+    i++;
+    selFileForm = XtCreateManagedWidget("selFileForm",
+                                       formWidgetClass, selFile, arglist,
+                                       i);
+
+    i = 0;
+    XtSetArg(arglist[i], XtNlabel, prompt);
+    i++;
+    XtSetArg(arglist[i], XtNresizable, True);
+    i++;
+    XtSetArg(arglist[i], XtNtop, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNbottom, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNleft, XtChainLeft);
+    i++;
+    XtSetArg(arglist[i], XtNright, XtChainLeft);
+    i++;
+    XtSetArg(arglist[i], XtNborderWidth, 0);
+    i++;
+    selFilePrompt = XtCreateManagedWidget("selFilePrompt",
+                                         labelWidgetClass, selFileForm,
+                                         arglist, i);
+
+    i = 0;
+    XtSetArg(arglist[i], XtNforeground, &SFfore);
+    i++;
+    XtSetArg(arglist[i], XtNbackground, &SFback);
+    i++;
+    XtGetValues(selFilePrompt, arglist, i);
+
+    SFinitFont();
+
+    SFentryWidth = SFbesideText + SFcharsPerEntry * SFcharWidth +
+       SFbesideText;
+    SFentryHeight = SFaboveAndBelowText + SFcharHeight +
+       SFaboveAndBelowText;
+
+    listWidth = SFlineToTextH + SFentryWidth + SFlineToTextH + 1 +
+       scrollThickness;
+    listHeight = SFlineToTextV + SFentryHeight + SFlineToTextV + 1 +
+       SFlineToTextV + SFlistSize * SFentryHeight +
+       SFlineToTextV + 1 + scrollThickness;
+
+    SFpathScrollWidth = 3 * listWidth + 2 * listSpacing + 4;
+
+    hScrollX = -1;
+    hScrollY = SFlineToTextV + SFentryHeight + SFlineToTextV + 1 +
+       SFlineToTextV + SFlistSize * SFentryHeight + SFlineToTextV;
+    SFhScrollWidth = SFlineToTextH + SFentryWidth + SFlineToTextH;
+
+    vScrollX = SFlineToTextH + SFentryWidth + SFlineToTextH;
+    vScrollY = SFlineToTextV + SFentryHeight + SFlineToTextV;
+    SFvScrollHeight = SFlineToTextV + SFlistSize * SFentryHeight +
+       SFlineToTextV;
+
+    SFupperX = SFlineToTextH + SFentryWidth + SFlineToTextH - 1;
+    SFlowerY = SFlineToTextV + SFentryHeight + SFlineToTextV + 1 +
+       SFlineToTextV;
+    SFupperY = SFlineToTextV + SFentryHeight + SFlineToTextV + 1 +
+       SFlineToTextV + SFlistSize * SFentryHeight - 1;
+
+    SFtextX = SFlineToTextH + SFbesideText;
+    SFtextYoffset = SFlowerY + SFaboveAndBelowText + SFcharAscent;
+
+    SFsegs[0].x1 = 0;
+    SFsegs[0].y1 = vScrollY;
+    SFsegs[0].x2 = vScrollX - 1;
+    SFsegs[0].y2 = vScrollY;
+    SFsegs[1].x1 = vScrollX;
+    SFsegs[1].y1 = 0;
+    SFsegs[1].x2 = vScrollX;
+    SFsegs[1].y2 = vScrollY - 1;
+
+    SFcompletionSegs[0].x1 = SFcompletionSegs[0].x2 = SFlineToTextH;
+    SFcompletionSegs[1].x1 = SFcompletionSegs[1].x2 =
+       SFlineToTextH + SFentryWidth - 1;
+
+    i = 0;
+    XtSetArg(arglist[i], XtNwidth, 3 * listWidth + 2 * listSpacing + 4);
+    i++;
+    XtSetArg(arglist[i], XtNborderColor, SFfore);
+    i++;
+
+    XtSetArg(arglist[i], XtNfromVert, selFilePrompt);
+    i++;
+    XtSetArg(arglist[i], XtNvertDistance, 10);
+    i++;
+    XtSetArg(arglist[i], XtNresizable, True);
+    i++;
+    XtSetArg(arglist[i], XtNtop, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNbottom, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNleft, XtChainLeft);
+    i++;
+    XtSetArg(arglist[i], XtNright, XtChainLeft);
+    i++;
+    XtSetArg(arglist[i], XtNstring, SFtextBuffer);
+    i++;
+    XtSetArg(arglist[i], XtNlength, MAXPATHLEN);
+    i++;
+    XtSetArg(arglist[i], XtNeditType, XawtextEdit);
+    i++;
+    XtSetArg(arglist[i], XtNwrap, XawtextWrapWord);
+    i++;
+    XtSetArg(arglist[i], XtNresize, XawtextResizeHeight);
+    i++;
+    XtSetArg(arglist[i], XtNuseStringInPlace, True);
+    i++;
+    selFileField = XtCreateManagedWidget("selFileField",
+                                        asciiTextWidgetClass, selFileForm,
+                                        arglist, i);
+
+    XtOverrideTranslations(selFileField,
+                          XtParseTranslationTable
+                          (oneLineTextEditTranslations));
+    XtSetKeyboardFocus(selFileForm, selFileField);
+
+    i = 0;
+    XtSetArg(arglist[i], XtNorientation, XtorientHorizontal);
+    i++;
+    XtSetArg(arglist[i], XtNwidth, SFpathScrollWidth);
+    i++;
+    XtSetArg(arglist[i], XtNheight, scrollThickness);
+    i++;
+    XtSetArg(arglist[i], XtNborderColor, SFfore);
+    i++;
+    XtSetArg(arglist[i], XtNfromVert, selFileField);
+    i++;
+    XtSetArg(arglist[i], XtNvertDistance, 30);
+    i++;
+    XtSetArg(arglist[i], XtNtop, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNbottom, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNleft, XtChainLeft);
+    i++;
+    XtSetArg(arglist[i], XtNright, XtChainLeft);
+    i++;
+    selFileHScroll = XtCreateManagedWidget("selFileHScroll",
+                                          scrollbarWidgetClass,
+                                          selFileForm, arglist, i);
+
+    XtAddCallback(selFileHScroll, XtNjumpProc,
+                 SFpathSliderMovedCallback, (XtPointer) NULL);
+    XtAddCallback(selFileHScroll, XtNscrollProc,
+                 SFpathAreaSelectedCallback, (XtPointer) NULL);
+
+    i = 0;
+    XtSetArg(arglist[i], XtNwidth, listWidth);
+    i++;
+    XtSetArg(arglist[i], XtNheight, listHeight);
+    i++;
+    XtSetArg(arglist[i], XtNborderColor, SFfore);
+    i++;
+    XtSetArg(arglist[i], XtNfromVert, selFileHScroll);
+    i++;
+    XtSetArg(arglist[i], XtNvertDistance, 10);
+    i++;
+    XtSetArg(arglist[i], XtNtop, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNbottom, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNleft, XtChainLeft);
+    i++;
+    XtSetArg(arglist[i], XtNright, XtChainLeft);
+    i++;
+    selFileLists[0] = XtCreateManagedWidget("selFileList1",
+                                           compositeWidgetClass,
+                                           selFileForm, arglist, i);
+
+    i = 0;
+    XtSetArg(arglist[i], XtNwidth, listWidth);
+    i++;
+    XtSetArg(arglist[i], XtNheight, listHeight);
+    i++;
+    XtSetArg(arglist[i], XtNborderColor, SFfore);
+    i++;
+    XtSetArg(arglist[i], XtNfromHoriz, selFileLists[0]);
+    i++;
+    XtSetArg(arglist[i], XtNfromVert, selFileHScroll);
+    i++;
+    XtSetArg(arglist[i], XtNhorizDistance, listSpacing);
+    i++;
+    XtSetArg(arglist[i], XtNvertDistance, 10);
+    i++;
+    XtSetArg(arglist[i], XtNtop, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNbottom, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNleft, XtChainLeft);
+    i++;
+    XtSetArg(arglist[i], XtNright, XtChainLeft);
+    i++;
+    selFileLists[1] = XtCreateManagedWidget("selFileList2",
+                                           compositeWidgetClass,
+                                           selFileForm, arglist, i);
+
+    i = 0;
+    XtSetArg(arglist[i], XtNwidth, listWidth);
+    i++;
+    XtSetArg(arglist[i], XtNheight, listHeight);
+    i++;
+    XtSetArg(arglist[i], XtNborderColor, SFfore);
+    i++;
+    XtSetArg(arglist[i], XtNfromHoriz, selFileLists[1]);
+    i++;
+    XtSetArg(arglist[i], XtNfromVert, selFileHScroll);
+    i++;
+    XtSetArg(arglist[i], XtNhorizDistance, listSpacing);
+    i++;
+    XtSetArg(arglist[i], XtNvertDistance, 10);
+    i++;
+    XtSetArg(arglist[i], XtNtop, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNbottom, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNleft, XtChainLeft);
+    i++;
+    XtSetArg(arglist[i], XtNright, XtChainLeft);
+    i++;
+    selFileLists[2] = XtCreateManagedWidget("selFileList3",
+                                           compositeWidgetClass,
+                                           selFileForm, arglist, i);
+
+    for (n = 0; n < 3; n++) {
+
+       i = 0;
+       XtSetArg(arglist[i], XtNx, vScrollX);
+       i++;
+       XtSetArg(arglist[i], XtNy, vScrollY);
+       i++;
+       XtSetArg(arglist[i], XtNwidth, scrollThickness);
+       i++;
+       XtSetArg(arglist[i], XtNheight, SFvScrollHeight);
+       i++;
+       XtSetArg(arglist[i], XtNborderColor, SFfore);
+       i++;
+       selFileVScrolls[n] = XtCreateManagedWidget("selFileVScroll",
+                                                  scrollbarWidgetClass,
+                                                  selFileLists[n],
+                                                  arglist, i);
+
+       XtAddCallback(selFileVScrolls[n], XtNjumpProc,
+                     SFvFloatSliderMovedCallback, (XtPointer) n);
+       XtAddCallback(selFileVScrolls[n], XtNscrollProc,
+                     SFvAreaSelectedCallback, (XtPointer) n);
+
+       i = 0;
+
+       XtSetArg(arglist[i], XtNorientation, XtorientHorizontal);
+       i++;
+       XtSetArg(arglist[i], XtNx, hScrollX);
+       i++;
+       XtSetArg(arglist[i], XtNy, hScrollY);
+       i++;
+       XtSetArg(arglist[i], XtNwidth, SFhScrollWidth);
+       i++;
+       XtSetArg(arglist[i], XtNheight, scrollThickness);
+       i++;
+       XtSetArg(arglist[i], XtNborderColor, SFfore);
+       i++;
+       selFileHScrolls[n] = XtCreateManagedWidget("selFileHScroll",
+                                                  scrollbarWidgetClass,
+                                                  selFileLists[n],
+                                                  arglist, i);
+
+       XtAddCallback(selFileHScrolls[n], XtNjumpProc,
+                     SFhSliderMovedCallback, (XtPointer) n);
+       XtAddCallback(selFileHScrolls[n], XtNscrollProc,
+                     SFhAreaSelectedCallback, (XtPointer) n);
+    }
+
+    i = 0;
+    XtSetArg(arglist[i], XtNlabel, ok);
+    i++;
+    XtSetArg(arglist[i], XtNresizable, True);
+    i++;
+    XtSetArg(arglist[i], XtNcallback, SFokSelect);
+    i++;
+    XtSetArg(arglist[i], XtNborderColor, SFfore);
+    i++;
+    XtSetArg(arglist[i], XtNfromVert, selFileLists[0]);
+    i++;
+    XtSetArg(arglist[i], XtNvertDistance, 30);
+    i++;
+    XtSetArg(arglist[i], XtNtop, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNbottom, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNleft, XtChainLeft);
+    i++;
+    XtSetArg(arglist[i], XtNright, XtChainLeft);
+    i++;
+    selFileOK = XtCreateManagedWidget("selFileOK", commandWidgetClass,
+                                     selFileForm, arglist, i);
+
+    i = 0;
+    XtSetArg(arglist[i], XtNlabel, cancel);
+    i++;
+    XtSetArg(arglist[i], XtNresizable, True);
+    i++;
+    XtSetArg(arglist[i], XtNcallback, SFcancelSelect);
+    i++;
+    XtSetArg(arglist[i], XtNborderColor, SFfore);
+    i++;
+    XtSetArg(arglist[i], XtNfromHoriz, selFileOK);
+    i++;
+    XtSetArg(arglist[i], XtNfromVert, selFileLists[0]);
+    i++;
+    XtSetArg(arglist[i], XtNhorizDistance, 30);
+    i++;
+    XtSetArg(arglist[i], XtNvertDistance, 30);
+    i++;
+    XtSetArg(arglist[i], XtNtop, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNbottom, XtChainTop);
+    i++;
+    XtSetArg(arglist[i], XtNleft, XtChainLeft);
+    i++;
+    XtSetArg(arglist[i], XtNright, XtChainLeft);
+    i++;
+    selFileCancel = XtCreateManagedWidget("selFileCancel",
+                                         commandWidgetClass, selFileForm,
+                                         arglist, i);
+
+    XtSetMappedWhenManaged(selFile, False);
+    XtRealizeWidget(selFile);
+
+    /* Add WM_DELETE_WINDOW protocol */
+    SFwmDeleteWindow = XInternAtom(SFdisplay, "WM_DELETE_WINDOW", False);
+    XSetWMProtocols(SFdisplay, XtWindow(selFile), &SFwmDeleteWindow, 1);
+
+    SFcreateGC();
+
+    xtermCursor = XCreateFontCursor(SFdisplay, XC_xterm);
+
+    sbRightArrowCursor = XCreateFontCursor(SFdisplay, XC_sb_right_arrow);
+    dotCursor = XCreateFontCursor(SFdisplay, XC_dot);
+
+    XDefineCursor(SFdisplay, XtWindow(selFileForm), xtermCursor);
+    XDefineCursor(SFdisplay, XtWindow(selFileField), xtermCursor);
+
+    for (n = 0; n < 3; n++) {
+       XDefineCursor(SFdisplay, XtWindow(selFileLists[n]),
+                     sbRightArrowCursor);
+    }
+    XDefineCursor(SFdisplay, XtWindow(selFileOK), dotCursor);
+    XDefineCursor(SFdisplay, XtWindow(selFileCancel), dotCursor);
+
+    for (n = 0; n < 3; n++) {
+       XtAddEventHandler(selFileLists[n], ExposureMask, True,
+                         SFexposeList, (XtPointer) n);
+       XtAddEventHandler(selFileLists[n], EnterWindowMask, False,
+                         SFenterList, (XtPointer) n);
+       XtAddEventHandler(selFileLists[n], LeaveWindowMask, False,
+                         SFleaveList, (XtPointer) n);
+       XtAddEventHandler(selFileLists[n], PointerMotionMask, False,
+                         SFmotionList, (XtPointer) n);
+       XtAddEventHandler(selFileLists[n], ButtonPressMask, False,
+                         SFbuttonPressList, (XtPointer) n);
+       XtAddEventHandler(selFileLists[n], ButtonReleaseMask, False,
+                         SFbuttonReleaseList, (XtPointer) n);
+    }
+
+    XtAddEventHandler(selFileField, KeyPressMask, False,
+                     SFmodVerifyCallback, (XtPointer) NULL);
+
+    SFapp = XtWidgetToApplicationContext(selFile);
+
+}
+
+/* position widget under the cursor */
+void SFpositionWidget(w)
+Widget w;
+{
+    Arg args[3];
+    Cardinal num_args;
+    Dimension width, height, b_width;
+    int x, y, max_x, max_y;
+    Window root, child;
+    int dummyx, dummyy;
+    unsigned int dummymask;
+
+    XQueryPointer(XtDisplay(w), XtWindow(w), &root, &child, &x, &y,
+                 &dummyx, &dummyy, &dummymask);
+    num_args = 0;
+    XtSetArg(args[num_args], XtNwidth, &width);
+    num_args++;
+    XtSetArg(args[num_args], XtNheight, &height);
+    num_args++;
+    XtSetArg(args[num_args], XtNborderWidth, &b_width);
+    num_args++;
+    XtGetValues(w, args, num_args);
+
+    width += 2 * b_width;
+    height += 2 * b_width;
+
+    x -= ((Position) width / 2);
+    if (x < 0)
+       x = 0;
+    if (x > (max_x = (Position) (XtScreen(w)->width - width)))
+       x = max_x;
+
+    y -= ((Position) height / 2);
+    if (y < 0)
+       y = 0;
+    if (y > (max_y = (Position) (XtScreen(w)->height - height)))
+       y = max_y;
+
+    num_args = 0;
+    XtSetArg(args[num_args], XtNx, x);
+    num_args++;
+    XtSetArg(args[num_args], XtNy, y);
+    num_args++;
+    XtSetValues(w, args, num_args);
+}
+
+FILE *SFopenFile(name, mode, prompt, failed)
+char *name;
+char *mode;
+char *prompt;
+char *failed;
+{
+    Arg args[1];
+    FILE *fp;
+
+    SFchdir(SFstartDir);
+    if ((fp = fopen(name, mode)) == NULL) {
+       char *buf;
+#ifdef HAVE_STRERROR
+       char *errormsg = strerror(errno);
+       if (errormsg) {
+           buf = XtMalloc(strlen(failed) + strlen(errormsg) +
+                          strlen(prompt) + 2);
+           strcpy(buf, failed);
+           strcat(buf, errormsg);
+           strcat(buf, "\n");
+#else
+       if (errno < sys_nerr) {
+           buf = XtMalloc(strlen(failed) + strlen(sys_errlist[errno]) +
+                          strlen(prompt) + 2);
+           strcpy(buf, failed);
+           strcat(buf, sys_errlist[errno]);
+           strcat(buf, "\n");
+           strcat(buf, prompt);
+#endif
+       } else {
+           buf = XtMalloc(strlen(failed) + strlen(prompt) + 2);
+           strcpy(buf, failed);
+           strcat(buf, "\n");
+           strcat(buf, prompt);
+       }
+       XtSetArg(args[0], XtNlabel, buf);
+       XtSetValues(selFilePrompt, args, ONE);
+       XtFree(buf);
+       return NULL;
+    }
+    return fp;
+}
+
+void SFtextChanged()
+{
+
+    if ((SFtextBuffer[0] == '/') || (SFtextBuffer[0] == '~')) {
+       (void) strcpy(SFcurrentPath, SFtextBuffer);
+
+       SFtextPos = XawTextGetInsertionPoint(selFileField);
+    } else {
+       (void) strcat(strcpy(SFcurrentPath, SFstartDir), SFtextBuffer);
+
+       SFtextPos = XawTextGetInsertionPoint(selFileField) +
+           strlen(SFstartDir);
+    }
+
+    if (!SFworkProcAdded) {
+       SFworkProcId = XtAppAddWorkProc(SFapp, SFworkProc, NULL);
+       SFworkProcAdded = 1;
+    }
+
+    SFupdatePath();
+}
+
+#if 0                          /* NOT USED */
+static char *SFgetText()
+{
+    return strcpy(XtMalloc((unsigned) (strlen(SFtextBuffer) + 1)),
+                 SFtextBuffer);
+}
+#endif
+
+static void SFprepareToReturn()
+{
+    SFstatus = SEL_FILE_NULL;
+    XtRemoveGrab(selFile);
+    XtUnmapWidget(selFile);
+    XtRemoveTimeOut(SFdirModTimerId);
+    if (SFchdir(SFstartDir)) {
+       XtAppError(SFapp,
+                  "XsraSelFile: can't return to current directory");
+    }
+}
+
+int
+XsraSelFile(toplevel, prompt, ok, cancel, failed,
+           init_path, mode, show_entry, name_return, name_size)
+Widget toplevel;
+char *prompt;
+char *ok;
+char *cancel;
+char *failed;
+char *init_path;
+char *mode;
+int (*show_entry) ();
+char *name_return;
+int name_size;
+{
+    static int firstTime = 1;
+    Cardinal i;
+    Arg arglist[20];
+    XEvent event;
+
+    if (!prompt) {
+       prompt = "Pathname:";
+    }
+
+    if (!ok) {
+       ok = "OK";
+    }
+
+    if (!cancel) {
+       cancel = "Cancel";
+    }
+
+    if (firstTime) {
+       firstTime = 0;
+       SFdisplay = XtDisplay(toplevel);
+       SFcreateWidgets(toplevel, prompt, ok, cancel);
+    } else {
+       i = 0;
+
+       XtSetArg(arglist[i], XtNlabel, prompt);
+       i++;
+       XtSetValues(selFilePrompt, arglist, i);
+
+       i = 0;
+       XtSetArg(arglist[i], XtNlabel, ok);
+       i++;
+       XtSetValues(selFileOK, arglist, i);
+
+       i = 0;
+       XtSetArg(arglist[i], XtNlabel, cancel);
+       i++;
+       XtSetValues(selFileCancel, arglist, i);
+    }
+
+    SFpositionWidget(selFile);
+    XtMapWidget(selFile);
+
+/* #if defined(SVR4) || defined(SYSV) || defined(USG) || defined(GNU) */
+    if (!getcwd(SFstartDir, MAXPATHLEN)) {
+/* #else defined(SVR4) || defined(SYSV) || defined(USG) */
+       /* if (!getwd(SFstartDir)) { */
+/* #endif defined(SVR4) || defined(SYSV) || defined(USG) */
+
+       XtAppError(SFapp, "XsraSelFile: can't get current directory");
+    }
+    (void) strcat(SFstartDir, "/");
+    (void) strcpy(SFcurrentDir, SFstartDir);
+
+    if (init_path) {
+       if (init_path[0] == '/') {
+           (void) strcpy(SFcurrentPath, init_path);
+           if (strncmp(SFcurrentPath, SFstartDir, strlen(SFstartDir)
+               )) {
+               SFsetText(SFcurrentPath);
+           } else {
+               SFsetText(&(SFcurrentPath[strlen(SFstartDir)]));
+           }
+       } else {
+           (void) strcat(strcpy(SFcurrentPath, SFstartDir), init_path);
+           SFsetText(&(SFcurrentPath[strlen(SFstartDir)]));
+       }
+    } else {
+       (void) strcpy(SFcurrentPath, SFstartDir);
+    }
+
+    SFfunc = show_entry;
+
+    SFtextChanged();
+
+    XtAddGrab(selFile, True, True);
+
+    SFdirModTimerId = XtAppAddTimeOut(SFapp, (unsigned long) 1000,
+                                     SFdirModTimer, (XtPointer) NULL);
+
+    while (1) {
+       XtAppNextEvent(SFapp, &event);
+       XtDispatchEvent(&event);
+       switch (SFstatus) {
+       case SEL_FILE_TEXT:
+           SFstatus = SEL_FILE_NULL;
+           SFtextChanged();
+           break;
+       case SEL_FILE_OK:
+           strncpy(name_return, SFtextBuffer, name_size);
+           SFprepareToReturn();
+           if (SFworkProcAdded) {
+               XtRemoveWorkProc(SFworkProcId);
+               SFworkProcAdded = 0;
+           }
+           return 1;
+           break;
+       case SEL_FILE_CANCEL:
+           SFprepareToReturn();
+           return 0;
+       case SEL_FILE_NULL:
+           break;
+       }
+    }
+    return 0;
+}
diff --git a/cmd/lefty/ws/x11/libfilereq/xstat.h b/cmd/lefty/ws/x11/libfilereq/xstat.h
new file mode 100644 (file)
index 0000000..2a99e92
--- /dev/null
@@ -0,0 +1,47 @@
+/* $Id$ $Revision$ */
+/* vim:set shiftwidth=4 ts=8: */
+
+/**********************************************************
+*      This software is part of the graphviz package      *
+*                http://www.graphviz.org/                 *
+*                                                         *
+*            Copyright (c) 1994-2004 AT&T Corp.           *
+*                and is licensed under the                *
+*            Common Public License, Version 1.0           *
+*                      by AT&T Corp.                      *
+*                                                         *
+*        Information and Software Systems Research        *
+*              AT&T Research, Florham Park NJ             *
+**********************************************************/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/stat.h>
+#if !defined(S_ISDIR) && defined(S_IFDIR)
+#define        S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
+#endif
+#if !defined(S_ISREG) && defined(S_IFREG)
+#define        S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
+#endif
+#if !defined(S_ISSOCK) && defined(S_IFSOCK)
+#define        S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
+#endif
+
+#ifndef S_IXUSR
+#define S_IXUSR 0100
+#endif
+#ifndef S_IXGRP
+#define S_IXGRP 0010
+#endif
+#ifndef S_IXOTH
+#define S_IXOTH 0001
+#endif
+
+#define S_ISXXX(m) ((m) & (S_IXUSR | S_IXGRP | S_IXOTH))
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/cmd/lneato/.cvsignore b/cmd/lneato/.cvsignore
new file mode 100644 (file)
index 0000000..0ccf423
--- /dev/null
@@ -0,0 +1,4 @@
+Makefile
+Makefile.in
+lneato
+*.pdf
diff --git a/cmd/lneato/Makefile.am b/cmd/lneato/Makefile.am
new file mode 100644 (file)
index 0000000..c70f3cc
--- /dev/null
@@ -0,0 +1,22 @@
+## Process this file with automake to produce Makefile.in
+
+pdfdir = $(pkgdatadir)/doc/pdf
+
+man = lneato.1
+pdf = lneato.pdf
+
+man_MANS = $(man)
+pdf_DATA = $(pdf)
+bin_SCRIPTS = lneato
+
+lneato: ${top_srcdir}/lneato/lneato.sh
+       cp ${top_srcdir}/lneato/lneato.sh lneato
+       chmod +x lneato
+
+.1.pdf:
+       groff -Tps -man $< | ps2pdf - - >$@
+
+EXTRA_DIST = $(man) $(pdf) lneato.bsh lneato.ksh lneato.sh \
+       Makefile.old mswin32 
+
+DISTCLEANFILES = $(bin_SCRIPTS) $(pdf)
diff --git a/cmd/lneato/Makefile.old b/cmd/lneato/Makefile.old
new file mode 100644 (file)
index 0000000..81f4368
--- /dev/null
@@ -0,0 +1,20 @@
+all : lneato
+
+include ../Config.mk
+include ../makearch/$(ARCH)
+
+BIN_SCRIPTS = lneato
+
+lneato: lneato.sh
+       cp lneato.sh lneato
+       chmod +x lneato
+
+install:  $(BIN_SCRIPTS)
+       $(MKPATH) $(BINDIR)
+       $(INSTALL) $(BIN_SCRIPTS) $(BINDIR)
+
+clean:
+       true
+
+distclean:
+       true
diff --git a/cmd/lneato/lneato.pdf b/cmd/lneato/lneato.pdf
new file mode 100644 (file)
index 0000000..41efcb8
--- /dev/null
@@ -0,0 +1,154 @@
+%PDF-1.2
+%Çì\8f¢
+6 0 obj
+<</Length 7 0 R/Filter /FlateDecode>>
+stream
+x\9c\95\8eÛ6\10}÷WÌ£\ 2Ä\8c(êÆÇíÖ\b\16Mw·k·iÑä\81\91h[\85nÑe\8dí7äWú\8f\1dÞd­ÖY´0\f\e$gxfæÌ\19~\ 5\9fPðÕÇþfÕêëêÝC\b\87\15¨Þr?Y\ 5?ìp\93«\85Ý~e,($\ 1$\9c\91\94îZy\1fn7Wov\7f­\82\88D\11îïòÕ\1a½§°ËVÞîNmQF¨ÝòÕ2\8bC\92à\81ÓÊûäÑOoÀù\bý\90\84ü¿91¦jçÝ\ 3¥\b\91ðH¡\\87QLX\bk\16[7\ 1åÚàVßA\11'\ fÒ¹§\9f\8d\v4ðIèc\94k\1aØC\88´¬¥\18\1aø\a®àzì\87¦*þ\16_J    ï;Ñ\1ea\93\17CÓ]@\83(Ö4&©rämÿ¸½»ßÞlgçÔ!}F_eoYÀIIL\r^ïÏ\85iDÒ\80s\e\8d·þí¹%æÌ·9\vH¤cýì<°ó\99(\99gã[)\17^Bbkâ}¾\10\94ðy\94?n¶×\ f7÷»\9b»Ûÿ\19('4¶WùÈ&®\13_ô à ³,u\96a\8fßá(áwø¨+J9ñ9³\10\8b:×niB"»¦²`(pÚZ
\8cÏ    i\ eàeOý +\ 27\83¦#%~\92.ñTâ    ¾HèÆ\1a\84\82Ö\ f¢ÎEÙÔÒâ3lM\88\8f,\9cî7T~k )g®f\9d°K\9c¹¥^ìm\ 4I\12Ï`\1a3\85¡kê\ 1d\9d«ckÆ1~ì\8dgtU9\12m[\16\99\18\8a¦î1ab\80±\97&\95=1(\ 3bkïÝ\f\90\89\1a2ôÜ5%Tc9\14-òû4%\14\v\1c:\88§\1e\1e\véú~Z-ê\ 3ä\85\18a\16¼·\97\9dDÀ³\9bg¤X3?%\b}\1d\84¯1#òCW\89\94\87\8e\19§®\18\ 6YCSÃдÐì\17ÎST\rGÞK~c\92\ 4Ö¯'L>gÖX\81Ô\15Ñ+å~xZtFJR\17û2¬\940\8e\95ù¾q\10\90 \99Å\14ÍØ.kÙ\89\8e]Û`ÉÚ®ÁÜU\95\16\9cy\13ÈìXc\85\83ÀW\1dhY\10\10K\95¶È\86±\93ýDê\89о9pT,®¡¨\aÙµ\9d\1c
+u
+\15:\8aÏB\1c\19ú1cñ\88\884#ð¾ä\19\84[~j¼\8a\ e¥¨\ f£8Hè\8bª(\ 5\82\b1K\89\1f;\8a|ü    Aäp­Ó\18¡h§N      ¼\1d¶:\12·3\10u\85#T\8a\89\8b"\93ÚVÓËtD\12c;Ñ©#\b\ f\98Æ¥r§@5-æ×ôÅKÊ \eénß!#sr#:9\91PôKuæ\84E¯S\80ù\93H\85\16ä~¬3\8d\8dÀ½M¤Ô¢Â#d+sås1­sù­\966üydF¨\f5ÐÔ\8f\93sB|Ë\8e²\119Ú"\ 5N²,\89-}\9a\9béV\8a§f\1c\90&\18l\85\ 6ðåiÙ)(`N«.6\1aª\ 1\9b&\91\93æ\81ê\83ô9\8dp"ij\16ÙQ      mo\95\ 2\83Óý\90ÉÞjZÖTÕ¨º`\90\18E1\1c\97ú\12à\80
+¢à<z.\14\82\12v\86\807\ fÇ®\19\ fGh\8bV>S,7õ¢DY\9c\87Þ¯[ó
+«¦qü~ñ®ÀA\9aøg\1c\8a×8l¡\16\95\ 4ìû¦Uu\13%vê\1eC\94=jæ[=èLi\954\8bB\95º¨MèÊ\1a\ró¢o±DnC.§n\88³èUBÏ\1e\18\93Ü\a\böü\9e\8bÍëát)\15!ÃÁ\10\9dsa\9e\11\ 1ðÊSgùX\99¦Å}\87\8dÞëÀ\1fµbEç¹#»\1est   \ 5\ eç\15Ùn6põa{÷â\16\a@gB¿"ß\82æ\84ý\9f7\83û¿x+¡\ 2\86\9c'g\17úè\8b\9eN\ 3\8bV«Öa,rIÌó\16\f0aÆ\9aªÅÍ\ e~Y©Ï¿Ì\16öµendstream
+endobj
+7 0 obj
+1221
+endobj
+5 0 obj
+<</Type/Page/MediaBox [0 0 612 792]
+/Rotate 0/Parent 3 0 R
+/Resources<</ProcSet[/PDF /Text]
+/ExtGState 14 0 R
+/Font 15 0 R
+>>
+/Contents 6 0 R
+>>
+endobj
+3 0 obj
+<< /Type /Pages /Kids [
+5 0 R
+] /Count 1
+>>
+endobj
+1 0 obj
+<</Type /Catalog /Pages 3 0 R
+>>
+endobj
+4 0 obj
+<</Type/ExtGState/Name/R4/TR/Identity>>
+endobj
+14 0 obj
+<</R4
+4 0 R>>
+endobj
+15 0 obj
+<</R9
+9 0 R/R13
+13 0 R/R11
+11 0 R>>
+endobj
+9 0 obj
+<</Subtype/Type1/BaseFont/Times-Roman/Type/Font/Name/R9/FirstChar 0/LastChar 255/Widths[
+469 541 556 611 389 444 722 980 180 500 1000 1000 1000 1000 1000 1000
+1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
+250 333 408 500 500 833 778 333 333 333 500 564 250 333 250 278
+500 500 500 500 500 500 500 500 500 500 278 278 564 564 564 444
+921 722 662 667 718 611 556 722 715 329 389 700 611 883 722 722
+552 722 662 556 611 722 722 944 722 722 611 333 278 333 333 500
+333 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500
+500 500 344 389 278 500 500 722 500 500 444 480 200 480 333 1000
+333 500 500 350 500 167 1000 500 500 500 1000 1000 556 556 1000 1000
+278 1000 333 333 333 333 333 333 333 444 444 722 278 444 889 611
+1000 333 500 500 500 500 200 500 333 760 276 333 564 564 760 333
+400 564 300 300 333 500 453 250 333 300 310 333 750 750 750 444
+722 722 722 722 722 722 889 667 611 611 611 611 333 333 333 333
+722 722 722 722 722 722 722 564 722 722 722 722 722 722 556 500
+444 444 444 444 444 444 667 444 444 444 444 444 278 278 278 278
+500 500 500 500 500 500 500 564 500 500 500 500 500 500 500 500]
+/Encoding 16 0 R>>
+endobj
+16 0 obj
+<</Type/Encoding/Differences[
+140/fi
+173/minus]>>
+endobj
+12 0 obj
+<</Type/FontDescriptor/FontName/Times-Italic>>
+endobj
+13 0 obj
+<</Subtype/Type1/BaseFont/Times-Italic/Type/Font/Name/R13/FirstChar 0/LastChar 255/Widths[
+422 541 500 556 389 389 556 980 214 500 1000 1000 1000 1000 1000 1000
+1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
+250 333 420 500 500 833 778 333 333 333 500 675 250 333 250 278
+500 500 500 500 500 500 500 500 500 500 333 333 675 675 675 500
+920 611 611 667 722 604 611 722 722 339 444 652 556 828 657 722
+603 722 616 500 556 722 611 833 611 556 556 389 278 389 333 500
+333 500 500 444 500 444 278 500 500 278 278 444 278 722 500 500
+500 500 389 389 278 500 444 667 444 444 389 400 275 400 333 1000
+333 500 500 350 500 167 1000 500 500 500 889 1000 500 500 1000 1000
+278 1000 333 333 333 333 333 333 333 556 556 667 278 556 944 556
+1000 389 500 500 500 500 275 500 333 760 276 333 675 675 760 333
+400 675 300 300 333 500 523 250 333 300 310 333 750 750 750 500
+611 611 611 611 611 611 889 667 611 611 611 611 333 333 333 333
+722 667 722 722 722 722 722 675 722 722 722 722 722 556 611 500
+500 500 500 500 500 500 667 444 444 444 444 444 278 278 278 278
+500 500 500 500 500 500 500 675 500 500 500 500 500 444 500 444]
+/Encoding 17 0 R>>
+endobj
+17 0 obj
+<</Type/Encoding/Differences[
+140/fi]>>
+endobj
+10 0 obj
+<</Type/FontDescriptor/FontName/Times-Bold>>
+endobj
+11 0 obj
+<</Subtype/Type1/BaseFont/Times-Bold/Type/Font/Name/R11/FirstChar 0/LastChar 255/Widths[
+581 520 556 667 389 444 722 1000 278 500 1000 1000 1000 1000 1000 1000
+1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
+250 333 555 500 500 1000 833 333 333 333 500 570 250 333 250 278
+500 500 500 500 500 500 500 500 500 500 333 333 570 570 570 500
+930 722 667 722 724 667 611 778 774 386 500 764 664 943 722 778
+611 778 712 556 667 722 722 1000 722 722 667 333 278 333 333 500
+333 500 556 444 556 444 333 500 556 278 333 556 278 833 556 500
+556 556 444 389 333 556 500 722 500 500 444 394 220 394 333 1000
+333 500 500 350 500 167 1000 500 500 500 1000 1000 556 556 1000 1000
+278 1000 333 333 333 333 333 333 333 500 500 722 278 500 1000 667
+1000 333 500 500 500 500 220 500 333 747 300 333 570 570 747 333
+400 570 300 300 333 556 540 250 333 300 330 333 750 750 750 500
+722 722 722 722 722 722 1000 722 667 667 667 667 389 389 389 389
+722 722 778 778 778 778 778 570 778 722 722 722 722 722 611 556
+500 500 500 500 500 500 722 444 444 444 444 444 278 278 278 278
+500 556 500 500 500 500 500 570 500 556 556 556 556 500 556 500]
+>>
+endobj
+8 0 obj
+<</Type/FontDescriptor/FontName/Times-Roman>>
+endobj
+2 0 obj
+<</Producer(GNU Ghostscript 7.07)>>endobj
+xref
+0 18
+0000000000 65535 f 
+0000001545 00000 n 
+0000005563 00000 n 
+0000001486 00000 n 
+0000001593 00000 n 
+0000001326 00000 n 
+0000000015 00000 n 
+0000001306 00000 n 
+0000005502 00000 n 
+0000001730 00000 n 
+0000004273 00000 n 
+0000004334 00000 n 
+0000002974 00000 n 
+0000003037 00000 n 
+0000001648 00000 n 
+0000001678 00000 n 
+0000002908 00000 n 
+0000004217 00000 n 
+trailer
+<< /Size 18 /Root 1 0 R /Info 2 0 R
+>>
+startxref
+5613
+%%EOF